Đồ Án Mạch Đo Nhịp Tim ( PIC16F877A)

31 3.9K 57
Đồ Án Mạch Đo Nhịp Tim ( PIC16F877A)

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

TRƯỜNG ĐẠI HỌC MỎ - ĐỊA CHẤT BỘ MÔN KỸ THUẬT ĐIỆN - ĐIỆN TỬ ====o0o==== BÁO CÁO BÀI TẬP DỤNG CỤ VÀ THIẾT BỊ ĐO LƯỜNG ĐIỆN TỬ ĐỀ TÀI: THIẾT KẾ MẠCH ĐO NHỊP TIM GVHD: ThS Tống Ngọc Quang Người thực hiện: Hồng Văn Nhật (Trưởng nhóm) Lê Thị Hương Đặng Văn Trung Hà Nội, 10/2016 MẠCH ĐO NHỊP TIM October 17, 2016 Phần 1: Lý Thuyết Chương 1: Tìm hiểu nhịp tim Phương pháp đo nhịp tim 1.1 Giới thiệu chương: Chương tìm hiểu nhịp tim đo nhịp 1.2 Tìm hiểu nhịp tim: - Khái niệm: Nhịp tim số nhịp đập tim đơn vị thời gian, thường tính nhịp/phút Nhịp tim thay đổi theo nhu cầu hấp thụ Oxi tiết CO2 thể, ví dụ lúc tập thể dục 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 phương pháp hấp thụ quang học: 1.3.1 Cơ sở lý thuyết: - Khi tim đập, máu dồn khắp thể qua động mạch, tạo thay đổi áp suất thành động mạch lượng máu chảy qua động mạch Vì vậy, ta đo nhịp tim cách đo thay đổi ĐĐTAK58-NHOM Page MẠCH ĐO NHỊP TIM October 17, 2016 Hình 1.1: Dạng tín hiệu nhịp tim - Khi lượng máu thành động mạch thay đổi làm thay đổi mức độ hấp thụ ánh sáng động mạch, tia sáng truyền qua động mạch cường độ ánh sáng sau truyền qua biến thiên đồng với nhịp tim - Khi tim giãn ra, lượng máu qua động mạch nhỏ nên hấp thụ ánh sáng, ánh sáng sau truyền qua động mạch có cường độ lớn, ngược lại tim co vào, lượng máu qua động mạch lớn hơn, ánh sáng sau truyền qua động mạch có cường độ nhỏ Hình 1.2: Sự hấp thụ ánh sáng động mạch truyền qua ngón tay - Ánh sáng sau truyền qua ngón tay gồm thành phần AC DC: ĐĐTAK58-NHOM Page MẠCH ĐO NHỊP TIM October 17, 2016 + Thành phần DC đặc trưng cho cường độ ánh sáng cố định truyền qua mô, xương tĩnh mạch + Thành phần AC đặc trưng cho cường độ ánh sáng thay đổi lượng máu thay đổi truyền qua động mạch, tần số tín hiệu đồng với tần số nhịp tim =>Nếu ta lọc bỏ thành phần DC thu tín hiệu AC đồng 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 nguồn thu để thu kết tốt - Vị trí dễ dàng đặt cảm biến, khoảng cách thu phát không gần khơng q xa => Chọn ngón tay 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 nhịp tim phương pháp đo nhịp tim hấp thụ quang học, ta thiết kế cảm biến ánh sáng để phục vụ cho việc đo nhịp tim ĐĐTAK58-NHOM Page MẠCH ĐO NHỊP TIM October 17, 2016 Chương 2:Sơ Đồ Khối 2.1 Giới thiệu chương Ở chương trước tìm hiểu nhịp tim người phương pháp đo nhịp tim phương pháp quang học Chương xây dựng sơ đồ khối chức tổng quan khối 2.2 Sơ đồ khối chức khối 2.2.1 Sơ đồ khối tổng quan: Tín hiệu vào Cảm biến Lọc khuếch đại Nguồn 5V, 500mA Vi điểu khiển Hiển thị LCD 2.2.2 Chức khối: ĐĐTAK58-NHOM Page MẠCH ĐO NHỊP TIM October 17, 2016 - Khối cảm biến nhịp tim: cảm biến nhịp đập tim - Khối lọc khuếch đại: Lọc tín hiệu DC 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ý tín hiệu vào xuất tín hiệu ra,điều khiển hoạt động hệ thống chuyển đôi ADC - Khối hiển thị: hiển thị kết - Khối nguồn : cung cấp nguồn cho khối khác 2.3 Chọn linh kiện sử dụng cho khối: 2.3.1 Chọn cảm biến: Dùng cảm biến nhịp tim: Mặt trước cảm biến Mặt sau cảm biến Nhìn tổng thể cảm biến Cảm biến hoạt động dựa sensor quang đo nhịp tim với khuếch đại tín hiệu lọc nhiễu Thơng số kỹ thuật: - Nguồn: – 5V - Dòng tiêu thụ: < 4mA - Ngõ ra: Analog - Độ dài dây: 61 cm (24 inch) - Đường kính cảm biến: 1.6 cm (0.625 inch) ĐĐTAK58-NHOM Page MẠCH ĐO NHỊP TIM October 17, 2016 2.3.2 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ý phổ biến - Đã học lý thuyết 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 vi xử lý PIC16F877A: PIC 16F877A dòng PIC phổ biến(đủ mạnh tính năng, 40 chân, nhớ đủ cho hầu hết ứng dụng thông thường) Cấu trúc tổng quát PIC 16F877A sau: - K Flash ROM - 368x8 bytes RAM - 256x8 bytes EEPROM - ports (A, B, C, D, E) vào với tín hiệu điều khiển độc lập - định thời bits (Timer Timer 2) - Một định thời 16 bits (Timer 1) hoạt động chế độ tiết kiệm lượng (SLEEP MODE) với nguồn xung Clock ngồi - bơ CCP( Capture / Compare/ PWM) - biến đổi AD 10 bits, ngõ vào ĐĐTAK58-NHOM Page MẠCH ĐO NHỊP TIM October 17, 2016 - so sánh tương tự (Compartor) - định thời giám sát (WatchDog Timer) - Một cổng song song bits với 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 lượng - Nạp chương trình cổng nối tiếp ICSP(In-Circuit Serial Programming) - Được chế tạo 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.3 Chọn LCD hiển thị kế quả: *Chọn LCD loại 16x2 Đặc điểm: - Là loại LCD phổ biến - Dễ sử dụng - Giá thành phù hợp *Giới thiệu tổng quan 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 mức cao (DB0-DB7) Min 2.4V - Điện áp mức thấp (DB0-DB7) Max 0.4V (khi IOL = 1.2mA) - Dòng điện ngõ vào ILI -1uA đến 1uA - Dòng điện cấp nguồn ICC 350uA(typ.) đến 600uA - Tần số dao động nội fOSC ĐĐTAK58-NHOM (khi IOH = -0.205mA) (khi VIN = đến Vcc) 190kHz đến 350kHz (điển hình 270kHz) Page MẠCH ĐO NHỊP TIM October 17, 2016 Hình 2.2: LCD 16x2 Chức chân: Chân Ký hiệu Vss VDD VEE Mô tả Chân nối đất cho LCD, thiết kế mạch ta nối chân với GND mạch điều khiển Chân cấp nguồn cho LCD, thiết kế mạch ta nối chân với VCC=5V mạch điều khiển Điều chỉnh độ tương phản LCD Chân chọn ghi (Register select) Nối chân RS với logic “0” (GND) logic “1” (VCC) để chọn ghi + Logic “0”: Bus DB0-DB7 nối với ghi lệnh IR RS LCD (ở chế độ “ghi” - write) nối với đếm địa LCD (ở chế độ “đọc” - read) + Logic “1”: Bus DB0-DB7 nối với ghi liệu DR bên LCD Chân chọn chế độ đọc/ghi (Read/Write) Nối chân R/W với logic R/W “0” để LCD hoạt động chế độ ghi, nối với logic “1” để E LCD chế độ đọc Chân cho phép (Enable) Sau tín hiệu đặt lên bus DB0-DB7, lệnh chấp nhận có xung cho phép chân E + Ở chế độ ghi: Dữ liệu bus LCD chuyển vào(chấp nhận) ghi bên phát xung (high-tolow transition) tín hiệu chân E ĐĐTAK58-NHOM Page MẠCH ĐO NHỊP TIM October 17, 2016 + Ở chế độ đọc: Dữ liệu LCD xuất DB0-DB7 phát cạnh lên (low-to-high transition) chân E LCD giữ bus đến chân E xuống mức thấp Tám đường bus liệu dùng để trao đổi thông tin với MPU Có chế độ sử dụng đường bus : - 14 DB0 - + Chế độ bit : Dữ liệu truyền đường, với bit DB7 MSB bit DB7 + Chế độ bit : Dữ liệu truyền đường từ DB4 tới 15 - 16 - DB7, bit MSB DB7 Nguồn dương cho đèn GND cho đèn 2.3.3 Chọn linh kiện khối lọc khuếch đại: - Chọn IC LM324 có Opamp Hình 2.3: IC LM324 2.3.4 Khối nguồn: Ta sử dụng ngồn pin 5V 500mA, cấp qua cổng USB cắm vào máy tính xạc dự phòng 2.4 Kết luận chương: ĐĐTAK58-NHOM Page 10 MẠCH ĐO NHỊP TIM October 17, 2016 Hình 4.2: Lưu đồ thuật tốn đo nhịp tim 4.4 Lưu đồ thuật toán giao tiếp LCD ĐĐTAK58-NHOM Page 17 MẠCH ĐO NHỊP TIM October 17, 2016 Hình 4.3: Lưu đồ thuật tốn giao tiếp LCD 4.5 Code lập trình: ĐĐTAK58-NHOM Page 18 MẠCH ĐO NHỊP TIM October 17, 2016 - 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 #include //#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); /* Define LCD I/O port */ #define LCD_RS #define LCD_RW #define LCD_EN RB3 RB2 RB1 #define LCD_DATA PORTD #define LCD_DIR_RS TRISB3 #define LCD_DIR_RW #define LCD_DIR_EN TRISB2 TRISB1 #define LCD_DIR_DATA TRISD #define LCD_STROBE() ((LCD_EN = 1), NOP(), (LCD_EN=0)) /* write a byte to the LCD in bit mode */ ĐĐTAK58-NHOM Page 19 MẠCH ĐO NHỊP TIM October 17, 2016 void lcd_write(unsigned char c) { delay_us(70); LCD_DATA = c; LCD_STROBE(); } /* * Clear and home the LCD */ void lcd_clear(void) { LCD_RS = 0; lcd_write(0x1); delay_ms(5); } /* write a string of chars to the LCD */ void lcd_puts(const char * s) { LCD_RS = 1; // write characters while(*s) lcd_write(*s++); } ĐĐTAK58-NHOM Page 20 MẠCH ĐO NHỊP TIM October 17, 2016 /* write one character to the LCD */ void lcd_putch(char c) { LCD_RS = 1; // write characters lcd_write( c ); } /* * Go to the specified position */ void lcd_goto(unsigned char pos) { LCD_RS = 0; lcd_write(0x80+pos); } /* initialise the LCD - put into bit mode */ void lcd_init() { // Set pins output LCD_DIR_RS = 0; LCD_DIR_RW = 0; LCD_DIR_EN = 0; LCD_DIR_DATA = 0x00; ĐĐTAK58-NHOM Page 21 MẠCH ĐO NHỊP TIM October 17, 2016 // Clear output LCD_RS = 0; LCD_EN = 0; LCD_RW = 0; LCD_DATA = 0x00; // wait 15mSec after power applied, delay_ms(400); lcd_write(0x3C); // Function set; delay_ms(10); lcd_write(0x0F); // Turn on display delay_ms(10); lcd_write(0x01); // Clear display delay_ms(10); lcd_write(0x02); // Go to home delay_ms(10); lcd_write(0x06); // Entry mode set delay_ms(10); } unsigned long time[MAX_SAMPLE]; ĐĐTAK58-NHOM Page 22 MẠCH ĐO NHỊP TIM October 17, 2016 unsigned long time_tmp = 0x00; unsigned char index = 0x00; void timer0_config(); 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)) { ĐĐTAK58-NHOM Page 23 MẠCH ĐO NHỊP TIM October 17, 2016 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 nhip tim"); lcd_goto(0x40); // Xuong dong thu lcd_puts("Nhip tim: "); INTE = 1; GIE = 1; // Cho phep ngat ngoai // Cho phep ngat toan cuc for(i = 0; i < MAX_SAMPLE; i++) // Xoa du lieu { time[i] = 0x00; ĐĐTAK58-NHOM Page 24 MẠCH ĐO NHỊP TIM October 17, 2016 } while(1) { // Hien thi nhip tim sum = 0x00; for(i = 0; i < MAX_SAMPLE; i++) { sum += time[i]; } sum = sum/MAX_SAMPLE; sum = 15625.0/(4*sum); sum = 60*sum; // Gia tri thoi gian trung binh // f = fTimer / average_timer_value // Nhip tim = sum * 60 nhip/phut tmp = (int)sum; // Lay phan nguyen lcd_goto(0x4A); //lcd_putch(tmp); 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); } } ĐĐTAK58-NHOM Page 25 MẠCH ĐO NHỊP TIM October 17, 2016 // Thiet lap Timer0 void timer0_config() { TMR0 = 0x00; // Xoa gia tri ghi TMR0 TMR0IE = 0; // Khong cho phep ngat Timer0 OPTION_REG = 0xC7; TMR0IE = 1; GIE // Thiet lap ghi Option // Cho phep ngat Timer0 = 1; // Cho phep ngat toan cuc } Kết luận chương: Sau xây dựng sơ đồ thuật toán, ta sử dụng ngơn ngữ lập trình C để viết chương trình cho vi điều khiển Có thể sử dụng số phần mềm biên dịch phổ biến lập trình cho Pic CCS, Mplap,… Chương 5: Thi Công Mạch ĐĐTAK58-NHOM Page 26 MẠCH ĐO NHỊP TIM October 17, 2016 5.1 Giới thiệu chương: Sau thực việc tính tốn thiết kế viết chương trình tiến hành thi công mạch thực tế.Sử dụng phần mềm Orcad Capture Orcad layout để vẽ mạch nguyên lý mạch in 5.1 Layout: Hình 5.1: Layout mạch 5.2 Một số hình ảnh q trình thi cơng ĐĐTAK58-NHOM Page 27 MẠCH ĐO NHỊP TIM October 17, 2016 Hình 5.2 Hình ảnh 3D mạch Hình 5.3 Mạch in dùng in trực tiếp lên phím đồng ĐĐTAK58-NHOM Page 28 MẠCH ĐO NHỊP TIM October 17, 2016 Hình 5.4 Mạch in dùng in giám tiếp qua giấy sau nhiệt lên phím đồng Hình 5.5 Mạch in giấy ĐĐTAK58-NHOM Hình 5.6 Là mạch in lên phíp đồng Page 29 MẠCH ĐO NHỊP TIM October 17, 2016 Hình 5.7 Mạch sau ăn mòn Hình 5.9 Test thử mạch board test Hình 5.8 Mạch hồn thiện Hình 5.10 Test mạch hoàn thiện 5.2 Lắp ráp kiểm tra mạch: Sau lắp ráp mạch, nạp chương trình, kiểm tra được: - Mức điện áp DC tín hiệu nhịp tim khoảng 1,8 V - Mức điện áp AC tín hiệu nhịp tim chưa khuếch đại khoảng vài mV - Điện áp sau khuếch đại tầng thứ khoảng vài trăm mV - Điện áp sau khuếch đại tầng thứ đưa vào vi điều khiển khoảng 2,5 – 3,8 V ĐĐTAK58-NHOM Page 30 MẠCH ĐO NHỊP TIM October 17, 2016 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI - Kết luận: Việc thực đề tài kiểm chứng lý thuyết phương pháp đo nhịp tim phương pháp hấp thụ hồng ngoại Từ thiết kế máy đo nhịp tim sử dụng phương pháp để đưa vào sử dụng đời sống thực tế - Hướng phát triển đề tài: + Với phương pháp hấp thụ hồng ngoại, ta khơng đo nhịp tim mà phát triển để đo nồng độ bão hòa Oxi máu Để đo nồng độ bão hòa Oxi máu, ta sử dụng nguồn sáng với bước sóng khác nhau, việc phân tích cường độ sáng thu đo đạc nồng độ bão hòa Oxi máu + Ngồi phát triển đề tài theo hướng máy đo đạc đa với khả đo đạc thêm thông số y sinh khác huyết áp, thân nhiệt, điện tâm đồ… + Có thể phát triển lựa chọn linh kiện dán LCD nhỏ để thu gọi diện tích mạch in tích hợp thành thiết bị đeo tay để kiểm soát nhịp tim nhỏ gọn… Tài liệu tham khảo: Internet ĐĐTAK58-NHOM Page 31

Ngày đăng: 02/01/2018, 23:24

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan