có sơ đồ nguyên lý, sơ đồ khối và lưu đồ giải thuật, mạch in và code đầy đủ cho MẠCH đo NHỊP TIM XUẤT LCD dùng 89c51 ...............................................................................................................................................................
Trang 1Đề tài: Mạch đo nhịp tim xuất LCD
BÁO CÁO ĐỒ ÁN 2 MẠCH ĐO NHỊP TIM XUẤT LCD
MỤC LỤC
Trang 2Đề tài: Mạch đo nhịp tim xuất LCD
DANH MỤC HÌNH ẢNH
Trang 3Đề tài: Mạch đo nhịp tim xuất LCD
DANH MỤC BẢNG BIỂU
Trang 4CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI1.1 KHẢO SÁT VÀ PHÂN TÍCH BÀI TOÁN
Sức khỏe là một vấn đề quan trọng bậc nhất trong cuộc sống từ xưa đến nay Sức khỏe liên quan mật thiết đến hầu hết các hoạt động của chúng ta từ làm việc, học tập cho đến vui chơi Sức khỏe không phải là thứ chúng ta có thể mua Tuy nhiên, nó
có thể là một tài khoản tiết kiệm cực kỳ giá trị Vì vậy, để tài khoản ấy được ổn định chúng ta cần theo dõi thường xuyên và chủ động hơn
Một trong những cơ quan quan trọng nhất và ảnh hưởng nhiều nhất đến sức khỏe chúng ta đó là tim, với chức vụ co bóp đều đặn để đẩy máu theo các động mạch và đem dưỡng khí và các chất dinh dưỡng đến toàn bộ cơ thể, đồng thời loại bỏ các chất thải trong quá trình trao đổi chất Tim hút máu từ tĩnh mạch về tim sau đó đẩy máu đến phổi để trao đổi khí CO2 lấy khí O2
Với những chức năng tối quan trọng với sức khỏe thì tim là cơ quan cần được theo dõi thường xuyên nhất nhằm chẩn đoán và chữa trị kịp thời khi có những vấn đề
về tim mạch Ngoài ra, việc theo dõi tim thông qua số nhịp tim cũng rất quan trọng trong việc luyện tập thể thao nhằm tránh tình trạng luyện tập quá sức và nguy hiểm đến tính mạng
1.1.1 Ý tưởng
Với cuộc sống hiện đại ngày nay, chúng ta không có nhiều thời gian cho các công việc đến bệnh viện và kiểm tra sức khỏe định kỳ cụ thể là việc đo và theo dõi nhịp tim Dựa trên nhu cầu thực tế đó đòi hỏi cần có một sản phẩm giúp
đo nhịp tim nhanh chóng và chính xác nhằm giải quyết những khó khăn trên
1.1.2 Mục tiêu
Mục tiêu của đồ án là sử dụng LED hồng ngoại với chức năng cảm biến
và đếm xung nhịp tim cùng với vi điều khiển AT89C51 để thiết kế và thi công mạch đo nhịp tim Nhằm phục vụ cho việc theo dõi tim mạch dễ dàng và chính xác hơn phương pháp bắt mạch cổ điển
Trang 51.2 LỰA CHỌN GIẢI PHÁP THỰC HIỆN
1.2.1 Giải pháp thiết kế
Đầu vào hệ thống lấy dữ liệu từ LED hồng ngoại, là linh kiện có chức năng quan sát
và đếm số xung nhịp tim tương ứng với số lần tim co bóp và bơm máu
Xử lý tín hiệu bằng mạch lọc RC và mạch khuếc đại thuật toán Ghi dữ liệu lên
vi điều khiển AT89C51 Lập trình vi điều khiển để xử lý dữ liệu
Để hiển thị: Lấy giá trị số nhịp tim được lưu tạm trong RAM vi điều khiển xuất lên LCD
Xóa dữ liệu sau khi đo, để mạch quay lại trạng thái ban đầu
1.2.2 Xác định bài toán và giới hạn của đề tài:
Đầu vào hệ thống lấy dữ liệu từ LED hồng ngoại, là linh kiện cảm biến đếm và cung cấp số nhịp tim Đầu ra được hiển thị trên LCD
Hiển thị chính xác số nhịp tim
Làm việc với điện áp cấp từ nguồn 5V
Làm việc được lâu dài và ổn định
Trang 6CHƯƠNG 2: CƠ SỞ LÝ THUYẾT2.1 NGUYÊN LÝ THIẾT KẾ
Dựa vào quá trình tìm hiểu và phân tích thì Mạch đo nhịp tim có nguyên lý hoạt động như sau:
Hình 2 Sơ đồ nguyên lý
o Cảm biến: sử dụng LED hồng ngoại dựa vào mức độ che sáng khác nhau của mạch máu trên ngón tay Khi tim co bóp, tiết diện và áp suất trong máu thay đổi, dẫn đến mức độ che sáng đi qua thay đổi
o Mạch lọc và mạch khuếch đại: có chức năng loại bỏ thành phần một chiều và khuếch đại tín hiệu Nó giúp vi điều khiên dễ dàng xử lý Ngoài
ra, sau khi lọc, ta sẽ chỉ lấy sóng xung tạo ra mỗi lần tim bắt đầu co bóp nên rất dễ dàng khi tính nhịp tim
o Vi điều khiển: có chức năng xử lý tín hiệu ngõ vào, đếm số xung nhịp tim
và điều khiển trình xuất ra LCD
Hiển thị LCD Vi điều khiển
xử lý đếm xung nhịp tim
Mạch khuếch đại thuật toánMạch lọc RC
Cảm biến nhận
tín hiệu
Trang 72.2 LỰA CHỌN LINH KIỆN:
2.2.1 LED thu phát hồng ngoại:
Hình 2 LED thu phát hồng ngoại
LED là viết tắt của Light Emitting Diode (Diode phát quang) là các diode
có khả năng phát ra ánh sáng hay tia hồng ngoại,tử ngoại.Cũng giống như diode,LED được cấu tạo từ một khối bán dẫn loại P ghép với một khối bán dẫn loại N
Nguyên lý: khi LED thu không nhận được tín hiệu từ LED phát,điện trở của LED thu rấtlớn, lối ra điện áp bằng 0 khi LED thu nhận được tín hiệu từ LED phát,điện trở của LEDthu giảm xuống mạnh (việc giảm này phụ thuộc vào cường độ LED phát),khi đó lối ra điệnáp bằng 5v.Khi gặp vật cản tín hiệu hồng ngoại sẽ va chạm và phản xạ ngược lại,còn trường hợp không gặp vật cảntín hiệu hồng ngoạisẽ chạm vào LED thu
2.2.2 IC LM358:
IC LM358 là bộ khuếch đại thuật toán kép, gồm hai bộ khuếch đại thuật
toán bên trong Mỗi Op-amp có 3 chân, ngõ vào đảo, ngõ vào không đảo và ngõ ra Hoạt động với một nguồn cung cấp, ngưỡng điện áp vào thay đổi trong phạm vi rộng
Hình 2 IC LM 358
Trang 82.2.2Vi điều khiển AT89C51
AT89C51 là một vi điều khiển 8 bit, chế tạo theo công nghệ CMOS chất lượng cao, với 4 KB EEPROM (Flash Programmable and erasable read only memory) Thiết bị này được chế tạo bằng việc sử dụng bộ nhớ không bốc hơi mật độ cao của ATMEL và tương thích với chuẩn công nghiệp MCS-51 về tập lệnh và các chân ra ATMEL AT89C51 là một vi điều khiển mạnh (có công suất lớn) mà nó cung cấp một sự linh động cao và giải pháp về giá cả đối với nhiều ứng dụng vi điều khiển
Các đặc điểm của AT89C51 được tóm tắt như sau:
o 4 KB bộ nhớ có thể lập trình lại nhanh
o Tần số hoạt động từ 0Hz đến 24 MHz
o 2 bộ Timer/Counter 16 bit
o 128 byte RAM nội
o Port xuất nhập I/O 8 bit
o Giao tiếp nối tiếp
Trang 9Chức năng các chân của vi điều khiển AT89C51:
89C51 có tất cả 40 chân có chức năng như các đường xuất nhập Trong
đó có 24 chân có tác dụng kép (1 chân có 2 chức năng), mỗi đường có thể hoạt động như đường xuất nhập, đường điều khiển hay hoạt động như thành phần của các bus dữ liệu và bus địa chỉ
Port 0 có 8 chân (32-39) và có hai chức năng sau:
Chức năng xuất/nhập: bình thường thì các chân của port 0 có chức năng xuất dữ liệu Khi muốn nhận dữ liệu từ bên ngoài talập trình đưa các chân đó lên mức 1
Chức năng làm bus dữ liệu và bus địa chỉ: trong các thiết kế lớn có dùng
bộ nhớ ngoài,các chân này còn có nhiệm vụ nhận dữ liệu từ ROM và RAM ngoại
Port 1 (P1):
Port 1 có 8 chân (1-8) chỉ có chức năng là xuất/nhập, được dùng để giao tiếp với thiết bị bên ngoài khi có yêu cầu Ngoài ra không có chức năng nào khác, nghĩa là chúng chỉ được sử dụng để giao tiếp với các thiết bị ngoại vi
Port 2 (P2):
Port 2 gồm 8 chân (21-28) có 2 công dụng: làm nhiệm vụ xuất/nhập và làm byte địa chỉ cao của bus địa chỉ 16-bit cho các thiết kế có bộ nhớ chương trình ngoài hoặc các thiết kế có nhiều hơn 256 byte bộ nhớ dữ liệu ngoài
Trang 10Port 3 (P3):
Port 3 gồm các chân từ(10-17) có 2 công dụng Khi không hoạt động xuất/nhập, các chân của port 3 có các chức năng như bảng sau:
P3.0 RxD Ngõ vào nhận dữ liệu nối tiếp
P3.1 TxD Ngõ xuất dữ liệu nối tiếp
P3.2 INT0 Ngõ vào ngắt cứng thứ 0
P3.3 INT1 Ngõ vào ngắt cứng thứ 1
P3.4 T0 Ngõ vào của Timer/Counter thứ 0
P3.5 T1 Ngõ vào của Timer/Counter thứ 1
P3.6 WR Ngõ điều khiển ghi dữ liệu lên bộ nhớ ngoài
P3.7 RD Ngõ điều khiển đọc dữ liệu từ bộ nhớ bên ngoàiP1.0 T2 Ngõ vào của Timer/Counter thứ 2
P1.1 T2X Ngõ nạp lại/thu nhận của Timer/Counter thứ 2
Bảng 2 Chức năng của các chân của port 3 và port 1
Chân RESET (RST):
Ngõ vào RST ở chân 9 là ngõ vào xóa chính của 89C51 dùng để thiết lập lại trạng thái ban đầu cho hệ thống Khi ngõ vào này được treo ở logic 1 tối thiểu hai chu kì máy, các thanh ghi bên trong của 89C51 được nạp các giá trị thích hợp cho việc khởi động lại toàn hệ thống
Hình 2 Cấu hình ngõ vào của chân reset
Chân XTAL1 và XTAL2:
Trang 11Hai chân này có vị trí chân là 18 và 19 được sử dụng để nhận nguồn xung clock từ bên ngoài để hoạt động, thường được ghép nối với thạch anh và các tụ
để tạo nguồn xung clock ổn định Cách kết nối trên hai chân XTAL1 và XTAL2:
Hình 2 Mạch tạo dao động cho vi điều khiển
Chân EA:
Ngõ vào chân 31 có thể được nối với 5 V hoặc với GND Khi chân này nối lên 5 V, vi điều khiển thực thi chương trình trong ROM nội, nếu nối với GND thì vi điều khiển thực thi chương trình từ bộ nhớ ngoài
Chân cho phép chốt địa chỉ ALE:
Khi vi điều khiển truy xuất bộ nhớ từ bên ngoài, port 0 vừa có chức năng
là bus địa chỉ vừa có chức năng là bus dữ liệu Do đó cần phải tách các đường
dữ liệu và địa chỉ Tín hiệu ở chân ALE dùng làm tín hiệu điều khiển để giải đa hợp Các xung tín hiệu ALE có tốc độ bằng 1/6 tần số dao động của mạch dao động bên trong vi điều khiển và có thể được dùng làm xung clock cho phần còn lại của hệ thống
Chân cho phép bộ nhớ chương trình PSEN:
Tín hiệu cho phép bộ nhớ chương trình PSEN là tín hiệu xuất trên chân
29 Đây là tín hiệu điều khiển cho phép truy xuất bộ nhớ ngoài của chương trình Chân này thường được nối với chân OE của EPROM để cho phép đọc các byte lệnh Khi vi điều khiển làm việc với chương trình ngoài, chân này phát ra
Trang 12tín hiệu kích hoạt ở mức thấp và được kích hoạt 2 lần trong một chu kỳ máy Khi thực thi một chương trình ở ROM nội, chân này được duy trì ở logic 0.
2.2.3 LCD 16x2:
Sử dụng LCD 16x2, hiển thị số nhịp tim linh hoạt, hiển thị được nhiều ký
tự, giúp cho việc hiển thị dễ dàng và giải quyết hạn chế khi hiển thị bằng LED 7 đoạn
Hình 2 LCD 16x2
Trang 13Bảng 2 Chức năng các chân LCD16x2
CHƯƠNG 3: THIẾT KẾ VÀ THI CÔNG HỆ THỐNG
3.1 SƠ ĐỒ KHỐI CỦA HỆ THỐNG
Theo nguyên lý hoạt động của hệ thống, ta có sơ đồ khối của hệ thống như sau:
Trang 153.2.3 Khối Vi điều khiển và hiển thị:
Hình 3 Khối điều khiển và hiển thị
3.2.4 Mạch in
Hình 3 Mạch in
Trang 163.3 LƯU ĐỒ GIẢI THUẬT
Hình 3 Lưu đồ giải thuật
BẮT ĐẦU
KIỂM TRA TÍN HIỆU TỪ LED
NHẤN CLEAR
KẾT THÚC
Trang 17Lần 1: 64 BPM Dùng làm tham số
chuẩnLần 2: 69 BPM
Lần 3: 75 BPM
Dùng mạch đo
nhịp tim
Sử dụng LED hồng ngoại dựa vào mức
độ che sáng khác nhau của mạch máu trên ngón tay
Lần 1: 70 BPM Sai số
khoảng 5 -10%Lần 2: 66 BPM
Lần 3: 78 BPM
Dùng phương pháp
cổ điển: Bắt mạch Dùng ngón tay bắt mạch ở cổ tay hoặc
ở cổ và đếm số nhịp tim
Lần 1: 72 BPM Sai số
Khoảng 5 - 10%Lần 2: 72 BPM
Lần 3: 78 BPM
Bảng 3 Đánh giá chất lượng
• Đánh giá: Mạch đo nhịp tim cho kết quả sai số tương đương phương pháp bắt mạch nhưng việc đo nhịp dễ dàng và nhanh chóng hơn
Trang 18CHƯƠNG 4: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
Sau thời gian tìm hiểu lý thuyết và thực hiện đề tài dưới sự hướng dẫn tận tình của TS.Đặng Ngọc Minh Đức, em đã hoàn thành đề tài “Mạch đo nhịp tim xuất LCD”
Mạch hiển thị được nhịp tim sau khi xử lý bằng vi điều khiển, có thể đo được nhiều lần
Do thời gian có hạn và kiến thức còn hạn chế nên đề tài còn một số khuyết điểm:
o LED thu phát hồng ngoại cho kết quả sai số còn lớn và chưa tối ưu
o Chưa thể hiển thị được dạng sóng nhịp tim
Qua việc thực hiện đồ án này, em được củng cố kiến thức vi xử lý đã học, kết hợp được với thực tiễn và phục vụ cho công việc tương lai rất nhiều
Cũng với đề tài này, trong tương lai em có thể phát triển nó ở mức cao hơn: nâng cấp cảm biến và thêm chức năng lưu trữ và so sánh kết quả sau nhiều lần
đo, kết hợp với các thiết bị khác để sử dụng trong thực tiễn cuộc sống như đồng
hồ thời gian thực kèm đo nhiệt độ, hẹn giờ
Trang 19DANH MỤC CÁC TÀI LIỆU THAM KHẢO
[1] Tống Văn On & Hoàng Đức Hải,Họ vi điều khiển 8051, Nhà xuất bản lao động xã
Trang 20PHỤ LỤCCode của chương trình được viết bằng hợp ngữAssembly
;===============CHUONG TRINH DO NHIP TIM==============
;=================KHAI BAO GIAO TIEP LCD===============
MOV IE,#82H;// CHO PHEP NGAT, NGAT TIMER 0
LCALL LCD_INIT;// KHOI DONG LCD
MOV DPTR,#TEXT1;// QUANG NHUT
MOV A,#80H;// DONG 1
Trang 21MOV DPTR,#TEXT3;// nhan START
MOV A,#80H;// DONG 1
;=======XU LY XUNG NHIP TIM=================
MOV A,TL1;LAY SO XUNG DEM DUOC SAU 10S
MOV B,#6; NHAN VOI 6 LA DUOC 60S=1P
MOV 23,A;// O NHO 23 LUU GIA TRI HANG CHUC CHUA DOI
MOV 24,B;// O NHO 24 LUU GIA TRI HANG DON VI CHUA DOI
;======HIEN THI KET QUA=========
Trang 22MOV A,#01H ;XOA LCD
ACALL COMMAND
MOV DPTR,#TEXT5;// ket qua nhip tim
MOV A,#80H;// DONG 1
LCALL COMMAND
LCALL HIENTHIMACDINH
MOV DPTR,#TEXT6 ;// la: BPM
MOV R0,#50 ;DU LIEU HT DONG 1 CAT TU O 50-59
Trang 23MOV DPTR,#TEXT4;// DOI 15S
MOV A,#80H;// DONG 1
MOV DPTR,#TEXT7;// da xoa ket qua !
MOV A,#80H;// DONG 1
Trang 24ACALL READY ;is LCD ready?
CLR RS ;RS=0 for command;RS=1 for data reg
CLR RW ;R/W=0 to write to LCD
MOV LCD,A ;issue command code
SETB EN ;E=1 for H-to-L pulse
CLR EN ;E=0 ,latch in
RET
;=========GUI DU LIEU HIEN THI TREN LCD========
Trang 25ACALL READY ;is LCD ready?
SETB RS ;RS=1 for data
CLR RW ;R/W=0 to write to LCD
MOV LCD,A ;issue data
SETB EN ;E=1 for H-to-L pulse
CLR EN ;E=0 ,latch in
RET
READY:
CLR RS ;RS=0 access command reg
SETB RW ;R/W=1 read command reg
MOV LCD,#0FFH ;make P1.7 input port
;read command reg and check busy flag
BACK:
CLR EN ;E=1 for H-to-L pulse
SETB EN ;E=0 H-to-l pulse
JB BUSY,BACK ;stay until busy flag=0