Tải bản đầy đủ (.docx) (34 trang)

Thiết kế thi công thành công mạch điện đo nhịp tim và hiển thị lên LCD

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (536.1 KB, 34 trang )

Lời cam đoan
Chúng em xin cam đoan nội dung của đồ án này không phải là bản sao chép của bất cứ
đồ án hoặc công trình đã có từ trước.
Kí tên:
Ngô Đinh Nhật Hoàng Nguyễn Đình Dũng
Mục lục
Lời mở đầu ………………………………………………………………………………
Phần 1: Lý thuyết
Chương 1: Tìm hiểu về nhịp tim và phương pháp đo nhịp tim bằng hấp thụ quang
học
1.1 Giới thiệu chương ……………………………………………………………………
1.2 Tìm hiểu về nhịp tim…………………………………………………………………
1.3 Phương pháp đo nhịp tim bằng hấp thụ quang học…………………………………….
1.4 Kết luận chương………………………………………………………………………
Chương 2: Sơ đồ khối
2.1 Giới thiệu chương………………………………………………………………………
2.2 Sơ đồ khối và chức năng các khối……………………………………………………
2.2.1 Sơ đồ khối tổng quan…………………………………………………………………
2.2.2 Chức năng các khối…………………………………………………………………
2.3 Chọn linh kiện sử dụng cho các khối…………………………………………………
2.4 Kết luận chương………………………………………………………………………
Phần 2: Thiết kế, tính toán và thi công mạch
Chương 3: Thiết kế và tính toán sơ đồ mạch
3.1 Giới thiệu chương………………………………………………………………………
3.2 Thiết kế, tính toán khối nguồn………………………………………………………….
3.3 Thiết kế, tính toán khối cảm biến……………………………………………………….
3.4 Thiết kế, tính toán khối lọc và khuếch đại……………………………………………
3.5 Thiết kế, tính toán khối xử lý trung tâm và khổi hiển thị………………………………
3.6 Kết luận chương………………………………………………………………………
Chương 4: Lưu đồ thuật toán và lập trình
4.1 Giới thiệu chương………………………………………………………………………


4.2 Lưu đồ thuật toán chương trình chính…………………………………………………
4.3 Lưu đồ thuật toán đo nhịp tim…………………………………………………………
4.4 Lưu đồ thuật toán hiển thị LCD………………………………………………………
4.5 Code lập trình…………………………………………………………………………
4.5 Kết luận chương………………………………………………………………………
Chương 5: Thi công mạch
5.1 Giới thiệu chương………………………………………………………………………
5.1 Layout ……………………………………………………………………………
5.2 Lắp ráp và kiểm tra mạch……………………………………………………………….
5.3 Kết luận chương………………………………………………………………………
Kết luận và hướng phát triển đề tài
Tài liệu tham khảo
Phần phụ lục
Mở đầu
- Nội dung đồ án: Tìm hiểu, thiết kế, tính toán và thi công mạch đo nhịp tim
- Đồ án gồm có 4 chương:
+ Chương 1: Tìm hiểu về nhịp tim và các phương pháp đo nhịp tim
+ Chương 2: Sơ đồ khối
+ Chương 3: Thiết kế và tính toán sơ đồ mạch
+ Chương 4: Lưu đồ thuật toán và lập trình
+ Chương 5: Thi công mạch
- Phương pháp nghiên cứu, thực hiện đồ án: tính toán thiết kế mạch, xây dựng các lưu đồ
thuật toán và thi công lắp ráp để kiểm chứng tính đúng đắn của phần thiết kế và các lưu
đồ thuật toán đã xây dựng.
- Kết quả đạt được của đồ án: Thiết kế thi công thành công mạch điện đo nhịp tim và hiển
thị lên LCD
Phần 1: Lý thuyết
Chương 1: Tìm hiểu về nhịp tim và phương pháp đo nhịp tim bằng hấp thụ
quang học
1.1 Giới thiệu chương:

Chương này sẽ tìm hiểu về nhịp tim và đo nhịp bằng phương pháp hấp thụ quang học.
1.2 Tìm hiểu về nhịp tim:
- Khái niệm: Nhịp tim là số nhịp đập của tim trên một đơn vị thời gian, thường được tính
và nhịp/phút. Nhịp tim có thể thay đổi theo nhu cầu hấp thụ Oxi và bài tiết CO2 của cơ
thể, ví dụ như lúc tập thể dục và lúc ngủ.
- Bảng thông số đánh giá nhịp tim ở trạng thái nghỉ ngơi:
Bảng 1.1 [1]: Thông số đánh giá nhịp tim người ở trạng thái nghỉ ngơi
1.3 Đo nhịp tim bằng phương pháp hấp thụ quang học:
1.3.1 Cơ sở lý thuyết:
- Khi tim đập, máu sẽ được dồn đi khắp cơ thể qua động mạch, tạo ra sự thay đổi về áp
suất trên thành động mạch và lượng máu chảy qua động mạch. Vì vậy, ta có thể đo nhịp
tim bằng cách đo những sự thay đổi đó.
Hình 1.1: Dạng tín hiệu nhịp tim
- Khi lượng máu trong thành động mạch thay đổi sẽ làm thay đổi mức độ hấp thụ ánh
sáng của động mạch, do đó khi một tia sáng được truyền qua động mạch thì cường độ
ánh sáng sau khi truyền qua sẽ biến thiên đồng bộ với nhịp tim.
- Khi tim giãn ra, lượng máu qua động mạch nhỏ nên hấp thụ ít ánh sáng, ánh sáng sau
khi truyền qua động mạch có cường độ lớn, ngược lại khi tim co vào, lượng máu qua
động mạch lớn hơn, ánh sáng sau khi truyền qua động mạch sẽ có cường độ nhỏ hơn.
Hình 1.2: Sự hấp thụ ánh sáng của động mạch khi truyền qua ngón tay.
- Ánh sáng sau khi truyền qua ngón tay gồm 2 thành phần AC và DC:
+ Thành phần DC đặc trưng cho cường độ ánh sáng cố định truyền qua mô, xương và
tĩnh mạch.
+ Thành phần AC đặc trưng cho cường độ ánh sáng thay đổi khi lượng máu thay đổi
truyền qua động mạch, tần số của tín hiệu này đồng bộ với tần số nhịp tim.
=> Nếu ta lọc bỏ thành phần DC sẽ thu được tín hiệu AC đồng bộ với tín hiệu nhịp tim.
1.3.2 Vị trí đặt cảm biến:
* Yêu cầu:
- Phải đặt nguồn phát và nguồn thu để thu được kết quả tốt nhất.
- Vị trí dễ dàng đặt cảm biến, khoảng cách thu phát không quá gần cũng không quá xa.

=> Chọn ngón tay là nơi đặt cảm biến.
Hình 1.3: Vị trí đặt cảm biến
1.4 Kết luận chương:
- Từ việc tìm hiểu về nhịp tim và phương pháp đo nhịp tim bằng hấp thụ quang học, ta có
thể thiết kế cảm biến ánh sáng để phục vụ cho việc đo nhịp tim.
CHƯƠNG 2: SƠ ĐỒ KHỐI
2.1 Giới thiệu chương
Ở chương trước chúng ta đã được tìm hiểu về nhịp tim con người và phương pháp đo
nhịp tim bằng phương pháp quang học. Chương này chúng ta sẽ đi xây dựng sơ đồ khối
và chức năng tổng quan của từng khối.
2.2 Sơ đồ khối và chức năng các khối
2.2.1 Sơ đồ khối tổng quan:
Khối hiển thị
Khối xử lý trung
tâm
Khối lọc và
khuếch đại
Khối cảm biến
nhịp tim
Khối nguồn
2.2.2 Chức năng các khối:
- Khối cảm biến nhịp tim: cảm biến nhịp đập của tim và khuếch đại tín hiệu.
- Khối lọc và khuếch đại: Lọc tín hiệu DC và khuếch đại tín hiệu để đưa vào vi điều
khiển xử lý
- Khối xử lý trung tâm: dùng để xử lý các tín hiệu vào và xuất tín hiệu ra,điều khiển mọi
hoạt động của hệ thống và chuyển đôi ADC.
- Khối hiển thị: hiển thị kết quả.
- Khối nguồn : cung cấp nguồn cho các khối khác.
2.3 Chọn linh kiện sử dụng cho các khối:
2.3.1 Chọn vi điều khiển cho khối xử lý trung tâm:

*Chọn vi xử lý PIC16F877A:
- Là loại vi xử lý khá phổ biến dễ tìm mua ở thị trường Đà Nẵng
- Đã được học về lý thuyết và thực hành ở trường
- Giá thành phù hợp.
Hình 2.1: Pic 16F877A
*Giới thiệu tổng quan về vi xử lý PIC16F877A:
PIC 16F877A là một dòng PIC phổ biến (đủ mạnh về tính năng, 40 chân, bộ nhớ đủ cho
hầu hết các ứng dụng thông thường). Cấu trúc tổng quát của PIC 16F877A như sau:
- 8 K Flash ROM.
- 368 Bytes RAM.
- 256 Bytes EEPROM.
- 5 ports (A, B, C, D, E) vào ra với tín hiệu điều khiển độc lập.
- 2 bộ định thời 8 bits (Timer 0 và Timer 2).
- Một bộ định thời 16 bits (Timer 1) có thể hoạt động trong chế độ tiết kiệm năng lượng
(SLEEP MODE) với nguồn xung Clock ngoài.
- 2 bô CCP( Capture / Compare/ PWM).
- 1 bộ biến đổi AD 10 bits, 8 ngõ vào.
- 2 bộ so sánh tương tự (Compartor).
- 1 bộ định thời giám sát (WatchDog Timer).
- Một cổng song song 8 bits với các tín hiệu điều khiển.
- Một cổng nối tiếp.
- 15 nguồn ngắt.
- Có chế độ tiết kiệm năng lượng.
- Nạp chương trình bằng cổng nối tiếp ICSP(In-Circuit Serial Programming)
- Được chế tạo bằng công nghệ CMOS
- 35 tập lệnh có độ dài 14 bits.
- Tần số hoạt động tối đa 20MHz.
2.3.2 Chọn LCD hiển thị kế quả:
*Chọn LCD loại 16x2
Đặc điểm:

- Là loại LCD dễ kiếm.
- Dễ sử dụng.
- Phù hợp với yêu cầu hiển thị của đồ án.
- Giá thành phù hợp.
*Giới thiệu tổng quan về LCD 16x2:
- Chân cấp nguồn Vcc-GND 2.7V đến 5.5V
- Điện áp vào mức cao VIH 2.2V đến Vcc
- Điện áp vào mức thấp VIL -0.3V đến 0.6V
- Điện áp ra mức cao (DB0-DB7) Min 2.4V (khi IOH = -0.205mA)
- Điện áp ra mức thấp (DB0-DB7) Max 0.4V (khi IOL = 1.2mA)
- Dòng điện ngõ vào ILI -1uA đến 1uA (khi VIN = 0 đến Vcc)
- Dòng điện cấp nguồn ICC 350uA(typ.) đến 600uA
- Tần số dao động nội fOSC
190kHz đến 350kHz (điển hình là
270kHz)
Hình 2.2: LCD 16x2
Chức năng các chân:
Chân Ký hiệu
Mô tả

1 Vss
Chân nối đất cho LCD, khi thiết kế mạch ta nối chân này với GND của
mạch điều khiển
2 VDD
Chân cấp nguồn cho LCD, khi thiết kế mạch ta nối chân này với
VCC=5V của mạch điều khiển
3 VEE Điều chỉnh độ tương phản của LCD.
4 RS
Chân chọn thanh ghi (Register select). Nối chân RS với logic “0”
(GND) hoặc logic “1” (VCC) để chọn thanh ghi.

+ Logic “0”: Bus DB0-DB7 sẽ nối với thanh ghi lệnh IR của LCD (ở
chế độ “ghi” - write) hoặc nối với bộ đếm địa chỉ của LCD (ở chế độ
“đọc” - read)
+ Logic “1”: Bus DB0-DB7 sẽ nối với thanh ghi dữ liệu DR bên trong
LCD.
5 R/W
Chân chọn chế độ đọc/ghi (Read/Write). Nối chân R/W với logic “0”
để LCD hoạt động ở chế độ ghi, hoặc nối với logic “1” để LCD ở chế
độ đọc.
6 E
Chân cho phép (Enable). Sau khi các tín hiệu được đặt lên bus DB0-
DB7, các lệnh chỉ được chấp nhận khi có 1 xung cho phép của chân E.
+ Ở chế độ ghi: Dữ liệu ở bus sẽ được LCD chuyển vào(chấp nhận)
thanh ghi bên trong nó khi phát hiện một xung (high-to-low transition)
của tín hiệu chân E.
+ Ở chế độ đọc: Dữ liệu sẽ được LCD xuất ra DB0-DB7 khi phát hiện
cạnh lên (low-to-high transition) ở chân E và được LCD giữ ở bus đến
khi nào chân E xuống mức thấp.
7 - 14
DB0 -
DB7
Tám đường của bus dữ liệu dùng để trao đổi thông tin với MPU. Có 2
chế độ sử dụng 8 đường bus này :
+ Chế độ 8 bit : Dữ liệu được truyền trên cả 8 đường, với bit MSB là
bit DB7.
+ Chế độ 4 bit : Dữ liệu được truyền trên 4 đường từ DB4 tới DB7, bit
MSB là DB7
15 -
Nguồn dương cho đèn nền


16 -
GND cho đèn nền

2.3.3 Chọn linh kiện khối cảm biến nhịp tim:
- Led phát: chọn led phát hồng ngoại 5mm.
- Led thu: photo diode 5mm.
2.3.4 Chọn linh kiện khối lọc và khuếch đại:
- Với yêu cầu số Opamp sử dụng là 3, ta chọn IC LM324 có 4 bộ Opamp.
2.3.4 Khối nguồn:
Ta sử dụng ngồn pin 9V và dùng 7805 cấp nguồn riêng cho vi điều khiển.
2.4 Kết luận chương:
Quá trình xây dựng sơ đồ khối là việc làm đầu tiên và có lẽ là quan trọng nhất của bất kì
đồ án nào.
Nó cho ta thấy rõ được tính khả thi cũng như cái nhìn trực quan nhất về những việc mình
cần làm tiếp theo.
Phần 2: Thiết kế, tính toán và thi công mạch
Chương 3: Thiết kế và tính toán sơ đồ mạch
3.1 Giới thiệu chương:
- Quá trình xây dựng bước đầu và nền tảng lý thuyết đã cho ta thấy được tính khả thi của
đồ án.
- Việc thiết kế và tính toán mạch tốt sẽ tạo thuận lợi cho việc thi công mạch sau này.
3.2 Thiết kế, tính toán khối nguồn:
- Như đã nói ở trên, để thuận tiện, trong đồ án này ta sử dụng nguồn Pin DC 9V và ổn áp
L7805 để cấp nguồn cho toàn mạch.
3.3 Thiết kế, tính toán khối cảm biến:
- Khối cảm biến ở đây ta dùng là 2 con led thu phát hồng ngoại.
- Đặc điểm của thu phát hồng ngoại là ít bị nhiễu, tín hiệu thu phát tốt hơn so với dùng
led siêu sáng. Giá thành rẻ, dễ mua, dễ sử dụng.
3.3.1 Sơ đồ mạch:
Hình 3.1: Sơ đồ mạch khối cảm biển.

3.3.2 Tính toán linh kiện:
- Chọn Vcc=5v
- Để đảm bảo led hồng ngoại phát đủ sáng, chọn dòng phân cực cho led = 20mv
- Điện áp rơi trên D
1
là 2V
- Điện áp trên R
1
: V
R1
= Vcc-V
D1

= 5- 2 = 3 v
 R
2
=VR
2
/R
2
= 3/ (20 * 10^-3) = 150Ω
Chọn R
2
= 150 Ω
- Tín hiệu thu được để đưa vào tầng lọc và khuếch đại phụ thuộc vào giá trị của R3.
Chọn R3 khoảng vài chục k Ω .
=> Chọn R3 = 33k Ω
3.5. Thiết kế, tính toán tầng lọc và khuếch đại:
3.4.1 Sơ đồ mạch:
Hình 3.2: Sơ đồ mạch khối lọc và khuếch đại.

3.4.2 Tính chọn linh kiện:
- Để khuếch đại lên nhiều lần ta sử dụng các bộ khuếch đại. ta mắc các opamp nối tiếp
nhau.
- Sử dụng 2 bộ lọc RC để khuếch đại và lọc tín hiệu và 1 bộ đệm để ỏn định tín hiệu và
nâng dòng.
+ Nhịp tim con người ở trạng thái bình thường từ 60 – 160 nhịp . tuy nhiên với các vận
động viên thì nhịp tim từ 40- 60 nhịp, đối với những người có bệnh về tim mạch thì nhịp
tim dao động từ 40- 160 nhịp.
Do vậy ta thiết kế bộ lọc có thể đo được tần số
40/60 < f
tim
< 160/60
 0,7 < f
tim
< 2,67 hz
+ (R
4
, C
1
) tạo thành bộ lọc thong thấp với tần số cắt f
1
=0,7 hz
F
1
= = 0,7
 R
4
*C
1
=0,23

Chọn C
1
= 4,7 uF suy ra R
4
= 48 K
Chọn R
4
= 47K
+ (R
6
, C
2
) tạo thành bộ lọc thông cao với tần số cắt f
2
= 2,67 hz
F
2
= = 2,6 hz
R
6
*C
2
= = 0,061
Chọn C
2
= 100nF suy ra R
6
= 680K
+ chọn hệ số khuêch đại của tầng khuêch đại opamp là 101 lần
K1 = +1 = 101 lần

Suy ra R
6
= 100 R
5
Chọn R
5
= 6,8 k suy ra R
6
= 680k
- Sử dụng tầng khuếch đại OPAMP2 tương tự.
Vậy hệ số khuếch đại của 2 tàng khuêch đại sẽ là tích của mỗi tầng.
K=K
1
* K
2
= 101 * 101 = 10100 lần.
Tín hiệu vào sẽ khoảng vài mV được khuếch đại lên cỡ vài volt để đưa vào vi điều khiển
để xử lý.
- Chọn R
10
= 1k Ω để phân cực cho Led D1
3.5 Thiết kế, tính toán khối xử lý trung tâm và khổi hiển thị
3.5.1 Sơ đồ mạch:
Hình 3.3: Sơ đồ mạch khối xử lý trung tâm và hiển thị
3.5.2 Tính toán:
- Chọn thạch anh 4MHz với 2 tụ C1, C2 có giá trị 33p để tạo mạch dao động cho
Pic16f877a.
- Chọn biến trở 10k để cấp áp cho chân Vee của LCD để chỉnh độ tương phản.
3.6 Kết luận chương
Ở chương này chúng ta đã xây dựng được mạch nguyên lý cho đồ án. Tính toán được chi

tiết các linh kiện cần sử dụng.
Chương 4: Lưu đồ thuật toán và lập trình
4.1 Giới thiệu chương:
- Chương này sẽ xây dựng lưu đồ thuật toán đo tần số nhịp tim sử dụng vi điều khiển từ
đó lập trình cho vi điều khiển bằng ngôn ngữ lập trình C.
4.2 Lưu đồ thuật toán chương trình chính:
Hình 4.1: Lưu đồ thuật toán chương trình chính
4.3 Lưu đồ thuật toán đo nhịp tim:
Hình 4.2: Lưu đồ thuật toán đo nhịp tim
4.4 Lưu đồ thuật toán giao tiếp LCD
Hình 4.3: Lưu đồ thuật toán giao tiếp LCD
4.5 Code lập trình:
- Sử dụng ngôn ngữ lập trình Hi-Tech C, phần mềm biên dịch MPLABXIDE.
4.5.1 Chương trình chính
#include <htc.h>
#include "lcd.h"
#define _XTAL_FREQ 4000000
#define MAX_SAMPLE 10
__CONFIG(FOSC_HS & WDTE_OFF & PWRTE_OFF & BOREN_OFF & LVP_OFF
& CPD_OFF & WRT_OFF & CP_OFF);
// Khai bao cac bien
unsigned long time[MAX_SAMPLE];
unsigned long time_tmp = 0x00;
unsigned char index = 0x00;
void timer0_config();
// Chuong trinh con xu ly ngat
void interrupt ISR()
{
/* Ngat ngoai INT0 */
if((INTF == 1) && (INTE == 1))

{
time[index] = time_tmp + TMR0;
// Tang bien dem
index++;
if(index == MAX_SAMPLE)
index = 0x00;
// Xoa du lieu
TMR0 = 0x00;
time_tmp = 0x00;
// Xoa co ngat
INTF = 0;
}
/* Ngat Timer0 */
if((TMR0IE == 1) && (TMR0IF == 1))
{
time_tmp += 0xFF;
TMR0 = 0x00;
TMR0IF = 0;
}
}
// Chuong trinh chinh
void main(void)
{
unsigned char i;
unsigned int tmp;
float sum;
lcd_init(); // Khoi tao LCD
timer0_config(); // Thiet lap Timer0
lcd_goto(0); // Ve dau dong
lcd_puts("Mach do nhip tim");

lcd_goto(0x40); // Xuong dong thu 2
lcd_puts("Nhip tim: ");
INTE = 1; // Cho phep ngat ngoai
GIE = 1; // Cho phep ngat toan cuc
for(i = 0; i < MAX_SAMPLE; i++) // Xoa du lieu
{
time[i] = 0x00;
}
while(1)
{
// Hien thi nhip tim
sum = 0x00;
for(i = 0; i < MAX_SAMPLE; i++)
{
sum += time[i];
}
sum = sum/MAX_SAMPLE; // Gia tri thoi gian trung binh
sum = 15625.0/(4*sum); // f = fTimer / average_timer_value
sum = 60*sum; // Nhip tim = sum * 60 nhip/phut
tmp = (int)sum; // Lay phan nguyen
lcd_goto(0x4A);
lcd_putch((tmp/100) + 48); // Hien thi hang tram
tmp = tmp%100;
lcd_putch((tmp/10) + 48); // Hien thi hang chuc
lcd_putch((tmp%10) + 48); // Hien thi hang don vi
__delay_ms(600);
}
}
// Thiet lap Timer0
void timer0_config()

{
TMR0 = 0x00; // Xoa gia tri thanh ghi TMR0
TMR0IE = 0; // Khong cho phep ngat Timer0
OPTION_REG = 0xC7; // Thiet lap thanh ghi Option
TMR0IE = 1; // Cho phep ngat Timer0
GIE = 1; // Cho phep ngat toan cuc
}

×