You are on page 1of 15

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT HƯNG YÊN

KHOA ĐIỆN – ĐIỆN TỬ

BÀI TẬP LỚN


HỌC PHẦN: LẬP TRÌNH C ỨNG DỤNG

Đề tài: Thiết kế mạch và lập trình điều khiển hệ thống đèn quang báo với các chế
độ điều khiển: Tự động, bằng tay. Có thể điều chỉnh tốc độ thay đổi trạng thái led.

Giảng viên hướng dẫn : Ths. Trần Xuân Tiến


Sinh viên : Nguyễn Văn Quỳnh (Mã
SV:12221551)
Phạm Mạnh Tiến (Mã SV)
Lớp : 122211.2

Hưng Yên năm 2023


Mục lục
1. Giới thiệu

Huyết áp và nhịp tim là gì?

Huyết áp là áp lực mà máu đẩy vào thành tĩnh mạch trong quá trình hoạt động của
tim, được đo bằng đơn vị mmHg. Huyết áp được phân thành hai thang đo là huyết áp
tâm thu và huyết áp tâm trương. Nhịp tim là số lần tim co bóp trong một phút, được đo
bằng đơn vị bpm (beats per minute). Chỉ số đo huyết áp và nhịp tim là 2 chỉ số cơ bản
được dùng làm căn cứ cơ bản để đánh giá tình trạng sức khỏe của một người. Việc đo
huyết áp và nhịp tim định kỳ giúp phát hiện sớm các vấn đề về sức khỏe liên quan đến
tim mạch và huyết áp tại giai đoạn còn khá nhẹ.

Tại sao phải đo huyết áp và nhịp tim?

Đo huyết áp và nhịp tim là cách đánh giá tình trạng sức khỏe của một người. Huyết áp
là áp lực mà máu đẩy lên động mạch khi bơm từ tim ra cơ thể. Nếu huyết áp của bạn
quá cao hoặc quá thấp, có thể gây ra những vấn đề sức khỏe nghiêm trọng, như bệnh
tim, đột quỵ hoặc suy tim. Nhịp tim là số lần tim đập trong một phút và cũng cần được
đo để đánh giá hệ thống tim mạch của bạn. Nếu nhịp tim của bạn quá cao hoặc quá
thấp, có thể là dấu hiệu của một số vấn đề sức khỏe, ví dụ như bệnh tim, rối loạn nhịp
tim hoặc suy tim. Vì vậy, đo huyết áp và nhịp tim là cách tiên đoán và phát hiện sớm
các vấn đề sức khỏe liên quan đến hệ thống tuần hoàn của cơ thể.

Các loại máy đo huyết áp và nhịp tim hiện nay có gì khác nhau?

Hiện nay trên thị trường có nhiều loại máy đo huyết áp và nhịp tim khác nhau, tùy vào
mục đích sử dụng và tính năng của từng loại mà sẽ có những khác biệt sau:
1. Máy đo huyết áp cổ tay: đây là loại máy đo huyết áp thuận tiện nhất, dễ sử dụng và
có thể mang theo bên mình mọi lúc mọi nơi. Tuy nhiên, độ chính xác không cao như
máy đo huyết áp cánh tay hay máy đo huyết áp đồng hồ thông minh.
2. Máy đo huyết áp cánh tay: đây là loại máy đo huyết áp được khuyến cáo sử dụng
nhiều nhất, độ chính xác cao, thuận tiện với việc đeo bên cánh tay. Tuy nhiên, giá
thành có thể cao hơn so với các loại máy đo huyết áp khác.
3. Máy đo huyết áp đồng hồ thông minh: đây là loại máy đo huyết áp kết hợp với tính
năng đồng hồ thông minh, thuận tiện cho việc giám sát sức khỏe. Tuy nhiên, độ chính
xác có thể không cao lắm và giá thành cũng khá đắt đỏ.
4. Máy đo huyết áp điện tử: loại máy này có thể có độ chính xác cao và nhiều tính
năng tiện lợi. Tuy nhiên, việc sử dụng đòi hỏi kỹ năng và kinh nghiệm để không đo sai
chỉ số.
Về máy đo nhịp tim, hiện nay các loại máy đo huyết áp đều tích hợp chức năng đo
nhịp tim, tuy nhiên độ chính xác có thể không cao bằng máy đo nhịp tim riêng biệt.
Máy đo nhịp tim riêng biệt thường có màn hình hiển thị số nhịp tim và dễ dàng mang
theo khi vận động thể thao.
Vì vậy, tùy theo mục đích sử dụng và nhu cầu cá nhân mà người dùng có thể lựa chọn
loại máy đo huyết áp và nhịp tim phù hợp nhất.

2. Xác định đặc điểm phần cứng

2.1 Sơ đồ khối
- Mô tả cấu trúc tổng quan của hệ thống sử dụng sơ đồ khối.
- Định rõ các thành phần chính như bo mạch điều khiển, đèn LED, cảm biến (nếu
có).

Tín hiệu đầu Xử lý, điều Tín hiệu đầu ra


vào khiển

Sơ đồ gồm 3 phần:
- Tín hiệu đầu vào: dùng để cấp tín hiệu đầu vào cho vi điều khiển
Vd: Nút ấn, cảm biến, biến trở…
- Xử lý, điều khiển: dùng để xử lý tín hiệu đầu vào và chuyển đổi thành tín kiệu
đầu ra cấp cho tải.
- Tín hiệu đầu ra: dùng tín hiệu đầu ra của vi điều khiển để điều khiển tải như:
động cơ, đèn LED, mà hình LCD…

2.2 Đặc điểm phần cứng


*Phần điều khiển
- PIC 16f877a
* Đầu vào
- Cảm biến nhịp tim: thiết bị đo nhịp tim, để thuận tiện cho việc mô phỏng, ta thay
thế cảm biến nhịp tim bằng biến trở
- 4 nút ấn: dùng để tạo tín hiệu cho PIC16f877a
- Nút ấn reset: dùng để reset vi điều khiển PIC16f877a
* Đầu ra:
- Màn hình LCD: Hiển thi kết quả trên LCD
- Led đơn: dùng để hiển thị đèn nháy cảnh báo
2.3 Sơ đồ nguyên lý:
- Mô tả cách sơ đồ nguyên lý thể hiện mạch điều khiển trên phần mềm Proteus.
- Chú thích linh kiện và kết nối.
Bắt đầu

LCD1
LM016L

RV1
C1
chọn chế độ

VDD
VSS

VEE
1nF

RW
RS

D0
D1
D2
D3
D4
D5
D6
D7
E
X1 C2

1
2
3

4
5
6

7
8
9
10
11
12
13
14
CRYSTAL 1k

1nF

U1
CAMBIEN 13 33
OSC1/CLKIN RB0/INT 1
14 34
1-4 TUOI OSC2/CLKOUT RB1
35
2
RB2 3
73% 2 36
1 RA0/AN0 RB3/PGM 4
3 37
5-9TUOI 4
RA1/AN1 RB4
38
RA2/AN2/VREF-/CVREF RB5
5 39
2 RA3/AN3/VREF+ RB6/PGC
1k 6 40
TREN 10 TUOI 7 Gọi trễ
RA4/T0CKI/C1OUT RB7/PGD
RA5/AN4/SS/C2OUT
15
3 RC0/T1OSO/T1CKI
VAN DONG VIEN R1 8
RE0/AN5/RD RC1/T1OSI/CCP2
16
100 9 17
RE1/AN6/WR RC2/CCP1
10 18
4 RE2/AN7/CS RC3/SCK/SCL
23
RC4/SDI/SDA
1 24
MCLR/Vpp/THV RC5/SDO
25
RC6/TX/CK
26
RC7/RX/DT
C3 19
RD0/PSP0
20
RD1/PSP1
RD2/PSP2
21 D1
1nF 22 LED-RED
RD3/PSP3
27
RD4/PSP4
RD5/PSP5
28 thông báp lỗi
29
RD6/PSP6
RD7/PSP7
30 R2
100
PIC16F877A

số lượng chế độ: n

3. Thiết kế phần mềm


cảm biến nhịp tim
3.1 Lưu đồ thuật toán
- Hiển thị lưu đồ thuật toán cho cả chế độ tự động và bằng tay.
- Giải thích từng bước trong thuật toán.
n<2

Xử lý dữ liệu

so sánh điều Cảnh báo và


kiện nháy led

Xuất dữ liệu
3.2 Chương trình điều khiển

#include<16f877a.h> //khai bao thu vien PIC16f877q

#device ADC=10 //thiet lap so bit

#use delay(crystal=20M) //thiet lap delay

#define LCD_ENABLE_PIN PIN_C2 //thiet lap lcd

#define LCD_RS_PIN PIN_C0

#define LCD_RW_PIN PIN_C1

#define LCD_DATA4 PIN_C3

#define LCD_DATA5 PIN_C4

#define LCD_DATA6 PIN_C5

#define LCD_DATA7 PIN_C6

#include<lcd.c> //khai bao lcd

void main()

lcd_init(); //khoi dong lcd

while(true)

setup_adc(ADC_CLOCK_INTERNAL); //thiet lap chan adc

setup_adc_ports(AN0);

set_adc_channel(0);

lcd_putc(' ');

int a1,a2,a3,a4;

a1=input_state(pin_b0); //thiet lap dau vao nut bam a1

a2=input_state(pin_b1); //thiet lap dau vao nut bam a2

a3=input_state(pin_b2); //thiet lap dau vao nut bam a3


a4=input_state(pin_b3); //thiet lap dau vao nut bam a4
if(a1==0 && a2==0 && a3==0 && a4==0) //chon che do

lcd_putc(' ');

lcd_gotoxy(1, 1);

lcd_putc(" ");

lcd_gotoxy(1, 2);

lcd_putc("chon doi tuong");

delay_ms(50);

else

if(a2==0 && a1==1 && a3==0 && a4==0) //che do 1


{

lcd_putc(' ');

lcd_gotoxy(1, 1);

lcd_putc("DT: 1-4 tuoi ");

delay_ms(50);

if(a2==1 && a1==0 && a3==0 && a4==0) //che do 2

lcd_putc(' ');

lcd_gotoxy(1, 1);

lcd_putc("DT: 5-9 tuoi ");

delay_ms(50);

if(a2==0 && a1==0 && a3==1 && a4==0) //che do 3

lcd_putc(' ');

lcd_gotoxy(1, 1);

lcd_putc("DT: tren 10 tuoi");

delay_ms(50);

if(a2==0 && a1==0 && a3==0 && a4==1) //che do 4


{

lcd_putc('f');

lcd_gotoxy(1, 1);

lcd_putc("DT:van dong vien");

delay_ms(50);

if(a1==1 && a2==1 ||a1==1 && a3==1||a1==1 && a4==1||a2==1 &&


a3==1||a2==1 && a4==1||a3==1 && a4==1) //xet loi nut an

lcd_putc(' ');

Lcd_gotoxy(1, 1);

lcd_putc("loi che do ");

lcd_gotoxy(1, 2);

lcd_putc("hai ba nut an");

delay_ms(50);

else

int16 i;

float value;

value=read_adc();

i=value*130/1024; //bien doi tin hieu adc


lcd_putc(' ');

lcd_gotoxy(1, 2);

lcd_putc("NT:");

lcd_gotoxy(4, 2);

printf(lcd_putc," %4lu",i);

if(a1==1) //xet trang thai nut an a1

if(i<130 && i>80) //xet dieu kien

lcd_gotoxy(9, 2);

lcd_putc("an toan ");

else

lcd_gotoxy(9, 2);

lcd_putc("canh bao");

output_high(pin_d0);

delay_ms(300);

output_low(pin_d0);

delay_ms(300);

}
}

if(a2==1) //xet trang thai nut an a2

if(i<115 && i>70) //xet dieu kien

lcd_gotoxy(9, 2);

lcd_putc("an toan ");

else

lcd_gotoxy(9, 2);

lcd_putc("canh bao");

output_high(pin_d0);

delay_ms(300);

output_low(pin_d0);

delay_ms(300);

if(a3==1) //xet trang thai nut an a3

if(i<100 && i>60) //xet dieu kien


{

lcd_gotoxy(9, 2);

lcd_putc("an toan ");

else

lcd_gotoxy(9, 2);

lcd_putc("canh bao");

output_high(pin_d0);

delay_ms(300);

output_low(pin_d0);

delay_ms(300);

if(a4==1) //xet trang thai nut an a4

if(i<60 && i>40) //xet dieu kien

lcd_gotoxy(9, 2);

lcd_putc("an toan ");

}
else

lcd_gotoxy(9, 2);

lcd_putc("canh bao");

output_high(pin_d0);

delay_ms(300);

output_low(pin_d0);

delay_ms(300);

4. Khảo sát kết quả

Mô tả quá trình kiểm tra và xác minh tính đúng đắn của hệ thống
5. Kết luận

Tóm tắt kết quả chính và nhận xét về hiệu suất của hệ thống.
Nêu rõ các khía cạnh đã hoàn thành và hướng phát triển.
- Mạch hoạt động tốt, màn hình LCD hiện rõ ràng, không có dấu hiệu bị nhiễu
- Cảm biến, nút ấn hoạt động ổn định và đúng theo yêu cầu

6. Tài liệu tham khảo

Liệt kê các nguồn tài liệu, sách, và bài báo đã được sử dụng trong quá trình nghiên
cứu và triển khai dự án.

You might also like