Tư vấn: 0979.466.469 / 0938.128.290

MENU

Máy đo nhịp tim sử dụng 8051

Gia cong pcb 600*150px

Đây là một bài viết về mạch đo nhịp tim đơn giản sử dụng vi điều khiển 8051. Trong dự án này, vi điều khiển AT89S51 được sử dụng, và thiết bị cảm nhận nhịp tim từ ngón tay bằng cách sử dụng phương pháp phản chiếu tia hồng ngoại và hiển thị nó trên màn hình bảy đoạn ba số ở dạng nhịp tim trên mỗi phút. Mạch này có độ chính xác là 4 nhịp mỗi phút và rất dễ sử dụng. Trong lĩnh vực y học, phương pháp sử dụng tại đây để cảm nhận nhịp tim được gọi là phương pháp quang dược thế mạch.

Phương pháp quang dược thế mạch. Phương pháp quang dược thế mạch là quá trình ước tính thể tích của một cơ quan bằng cách sử dụng tia tử ngoại. Các ứng dụng phổ biến của phương pháp quang dược thế mạch bao gồm đo oxy huyết, giám sát tim mạch, theo dõi hô hấp, và đo nhịp tim. Chúng ta sẽ xem xét cách phương pháp quang dược thế mạch được áp dụng để đo nhịp tim từ ngón tay. Khi trái tim giãn nở (tâm trương), thể tích máu bên trong đầu ngón tay tăng lên, và khi trái tim co bóp (tâm thu), thể tích máu bên trong đầu ngón tay giảm. Sự dao động của thể tích máu bên trong đầu ngón tay kết quả từ nhịp tim và nếu bạn có cách nào đó đếm số lần đập trong một phút, đó là nhịp tim trong nhịp mỗi phút (bpm). Để làm điều này, cặp truyền phát tia hồng ngoại / bộ thu được đặt gần ngón tay. Khi trái tim đập, thể tích của các tế bào máu dưới bộ cảm biến tăng lên và phản chiếu thêm sóng hồng ngoại đến bộ cảm biến và khi không có nhịp, độ sáng của tia phản chiếu giảm đi. Sự phản chiếu đập nở này được chuyển đổi thành xung dòng hoặc điện áp thích hợp bằng bộ cảm biến. Đầu ra của cảm biến được xử lý bởi các mạch điện tử thích hợp để thu được một chỉ số hiển thị (màn hình kỹ thuật số hoặc đồ thị).

Mạch đo nhịp tim sử dụng 8051. Mạch đo nhịp tim sử dụng 8051 này sử dụng bộ cảm biến phản chiếu tia hồng ngoại LTH1550-01. LTH1550-01 đơn giản là cặp bóng hồng ngoại - photo transistor trong một gói duy nhất. Mặt trước của bóng hồng ngoại và photo transistor được tiếp xúc và các phần còn lại được cách ly tốt. Khi đầu ngón tay được đặt lên bộ cảm biến, sự dao động thể tích của máu bên trong đầu ngón tay do nhịp tim biến đổi độ sáng của tia phản chiếu và biến đổi này theo nhịp tim.
sơ đồ mạch

Khi có nhiều ánh sáng chiếu vào photo transistor, nó dẫn điện nhiều hơn, dòng thu thu thập của nó tăng và điện áp thu thập giảm. Khi có ít ánh sáng chiếu vào photo transistor, nó dẫn điện ít, dòng thu thu thập của nó giảm và điện áp thu thập giảm. Biến đổi điện áp thu thập này sẽ tỷ lệ thuận với nhịp tim. Dù sao, biến đổi điện áp này rất yếu và cần có các bước xử lý tín hiệu bổ sung để chuyển nó thành dạng có thể nhận dạng bởi vi điều khiển.

Phần tiếp theo của mạch bao gồm hai bộ lọc thấp qua hoạt động thấp bằng bộ khuếch đại LM324. LM324 là một bộ khuếch đại ba cấp có thể hoạt động từ một nguồn cung cấp đơn. Điện trở R23, R17 và tụ điện C5 thiết lập độ tăng và tần số cắt của bộ lọc đầu tiên. Với các giá trị thành phần đã cho, độ tăng sẽ là 11 và tần số cắt sẽ là 2,5Hz. Độ tăng và tần số cắt được xác định bằng các phương trình sau. Tụ điện C15 được sử dụng để loại bỏ nhiễu nếu có thể gây ra kích hoạt sai của bộ so sánh.

Độ tăng điện áp Av = 1 + (R17 / R23)

Tần số cắt Fc = 1 / (2π * R17 * C5)

Quảng cáo đặt hàng nhập

Bộ lọc thấp qua thứ hai cũng có cùng độ tăng và tần số cắt. Hai bộ lọc thấp qua này tạo thành một phần rất quan trọng của mạch, vì bất kỳ nhiễu hoặc tín hiệu sai nào trôi vào giai đoạn vi điều khiển sẽ sản xuất kết quả thảm họa. Đầu ra của giai đoạn bộ lọc sẽ là một mức điện áp biến đổi giữa 0 và 0,35 volt và biến đổi này được chuyển thành một dãy giữa 0 và 5V bằng cách sử dụng bộ so sánh dựa trên bộ khuếch đại ba (IC1c). Điện áp tham chiếu của bộ so sánh được thiết lập thành 0,3V. Bất cứ khi nào điện áp đầu ra của giai đoạn bộ lọc vượt qua 0,3V, đầu ra của bộ so sánh trở thành không và bất cứ khi nào điện áp đầu ra của giai đoạn bộ lọc thấp hơn 0,3V, đầu ra của bộ so sánh trở thành bão hòa dương. Kết quả sẽ là một xung sạch biến đổi giữa 0 và 5V với tốc độ bằng với nhịp tim. Xung này được đưa vào vi điều khiển để đếm.

Program.

ORG 000H                   // origin
MOV DPTR,#LUT              // moves starting address of LUT to DPTR
MOV P1,#00000000B          // sets P1 as output port
MOV P0,#00000000B          // sets P0 as output port
MAIN: MOV R6,#230D         // loads register R6 with 230D
      SETB P3.5            // sets P3.5 as input port
      MOV TMOD,#01100001B  // Sets Timer1 as Mode2 counter & Timer0 as Mode1 timer
      MOV TL1,#00000000B   // loads TL1 with initial value
      MOV TH1,#00000000B   // loads TH1 with initial value
      SETB TR1             // starts timer(counter) 1
BACK: MOV TH0,#00000000B   // loads initial value to TH0
      MOV TL0,#00000000B   // loads initial value to TL0
      SETB TR0             // starts timer 0
HERE: JNB TF0,HERE         // checks for Timer 0 roll over
      CLR TR0              // stops Timer0
      CLR TF0              // clears Timer Flag 0
      DJNZ R6,BACK
      CLR TR1              // stops Timer(counter)1
      CLR TF0              // clears Timer Flag 0
      CLR TF1              // clears Timer Flag 1
      ACALL DLOOP          // Calls subroutine DLOOP for displaying the count
      SJMP MAIN            // jumps back to the main loop
DLOOP: MOV R5,#252D
BACK1: MOV A,TL1           // loads the current count to the accumulator
       MOV B,#4D           // loads register B with 4D
       MUL AB              // Multiplies the TL1 count with 4
       MOV B,#100D         // loads register B with 100D
       DIV AB              // isolates first digit of the count
       SETB P1.0           // display driver transistor Q1 ON
       ACALL DISPLAY       // converts 1st digit to 7seg pattern
       MOV P0,A            // puts the pattern to port 0
       ACALL DELAY
       ACALL DELAY
       MOV A,B
       MOV B,#10D
       DIV AB              // isolates the second digit of the count
       CLR P1.0            // display driver transistor Q1 OFF
       SETB P1.1           // display driver transistor Q2 ON
       ACALL DISPLAY       // converts the 2nd digit to 7seg pattern
       MOV P0,A
       ACALL DELAY
       ACALL DELAY
       MOV A,B             // moves the last digit of the count to accumulator
       CLR P1.1            // display driver transistor Q2 OFF
       SETB P1.2           // display driver transistor Q3 ON
       ACALL DISPLAY       // converts 3rd digit to 7seg pattern
       MOV P0,A            // puts the pattern to port 0
       ACALL DELAY         // calls 1ms delay
       ACALL DELAY
       CLR P1.2
       DJNZ R5,BACK1       // repeats the subroutine DLOOP 100 times
       MOV P0,#11111111B
       RET

DELAY: MOV R7,#250D        // 1ms delay
 DEL1: DJNZ R7,DEL1
       RET

DISPLAY: MOVC A,@A+DPTR    // gets 7seg digit drive pattern for current value in A
         CPL A
         RET
LUT: DB 3FH                // LUT starts here
     DB 06H
     DB 5BH
     DB 4FH
     DB 66H
     DB 6DH
     DB 7DH
     DB 07H
     DB 7FH
     DB 6FH
END
  • Để thực hiện việc đếm, cả hai bộ đếm của 8051 (Timer0 và Timer1) được sử dụng. Timer1 được cấu hình như một bộ đếm tự động 8 bit để đếm số xung "zero-going" đầu vào và Timer0 được cấu hình như một bộ đếm 16 bit để tạo khoảng thời gian 1 giây cần thiết cho Timer1 để đếm. Để đếm số lần đập tim, Timer0 và Timer1 được sử dụng. Timer1 được đặt là một bộ đếm tự động 8 bit để đếm số lần xung (biểu thị nhịp tim) và Timer0 được đặt là một bộ đếm 16 bit tạo ra độ trễ 65536 µs. Khi lặp 230 lần, nó sẽ tạo ra một khoảng thời gian 15 giây (230 x 65536 µs = 15 giây) để Timer1 đếm. Số lần đếm thu được trong 15 giây được nhân với 4 để lấy được nhịp tim trong nhịp mỗi phút.

  • Timer 0, tạo ra khoảng thời gian 1 giây, được cấu hình ở Chế độ 1 (bộ đếm 16 bit). Vì vậy, nó có thể đếm tối đa là 2^16 và là 65536. Trong 8051, tần số tinh thể được chia cho 12 bằng một mạng chia tần số nội bộ trước khi áp dụng nó làm đồng hồ cho bộ đếm. Điều đó có nghĩa là bộ đếm sẽ tăng lên một lần cho mỗi 1/12 tần số tinh thể. Đối với một hệ thống dựa trên 8051 được đồng hồ bởi tinh thể 12 MHz, thời gian cần cho một lần bộ đếm sẽ là 1 µs (tức là 1/12 MHz). Vì vậy, thời gian trễ tối đa có thể thu được bằng cách sử dụng một phiên của bộ đếm sẽ là 65536 µs. Hãy đọc bài viết "Delay using 8051 timer" để hiểu rõ hơn về điều này.

Cài đặt mạch.

  • Khi năng lượng được bật, đèn LED chỉ thị D4 sẽ sáng liên tục. Bây giờ đặt đầu ngón tay lên cảm biến và điều chỉnh potentiometer R14 sao cho đèn LED D4 bắt đầu nhấp nháy. Sau khi bạn đã thấy đèn LED nhấp nháy, đặt lại năng lượng và chờ 15 giây. Màn hình sẽ hiển thị nhịp tim của bạn trong nhịp mỗi phút.

Phiên bản màn hình LCD của máy đo nhịp tim.

  • Phiên bản màn hình LCD đơn giản của máy đo nhịp tim được hiển thị dưới đây. Đây chỉ là một biến thể của mạch trước. Màn hình LCD hiện rất phổ biến và hầu hết các nhà thiết kế hệ thống nhúng ưa thích chúng hơn so với các màn hình đa điểm đa dạng LED. Sử dụng màn hình LCD, bạn có thể hiển thị văn bản, ký tự tùy chỉnh, đồ họa và nhiều nội dung khác và đó là một ưu điểm lớn hơn so với các màn hình LED. JHD162 là màn hình LCD được sử dụng ở đây. Đó là một màn hình LCD 16X2 dựa trên IC điều khiển HD44780. Hãy xem liên kết sau đây để biết thêm về JHD162 và cách giao tiếp với vi điều khiển 8051. Giao tiếp màn hình LCD với 8051. Sơ đồ mạch của phiên bản màn hình LCD của máy đo nhịp tim được hiển thị dưới đây.

    Program.
    RS EQU P2.7
    RW EQU P2.6
    EN EQU P2.5
    ORG 000H
    ACALL INIT
    ACALL TEXT1
    ACALL LINE2
    ACALL TEXT3
    MOV DPTR,#LUT
    MOV P1,#00000000B
    MOV P0,#00000000B
    MAIN: MOV R6,#230D
    SETB P3.5
    MOV TMOD,#01100001B
    MOV TL1,#00000000B
    MOV TH1,#00000000B
    SETB TR1
    BACK: MOV TH0,#00000000B
    MOV TL0,#00000000B
    SETB TR0
    HERE: JNB TF0,HERE
    CLR TR0
    CLR TF0
    DJNZ R6,BACK
    CLR TR1
    CLR TF0
    CLR TF1
    MOV A,TL1
    MOV B,#4D
    MUL AB
    ACALL SPLIT
    ACALL INIT
    ACALL TEXT1
    ACALL LINE2
    ACALL TEXT2
    ACALL BPM
    
    SJMP MAIN
    
    
    
    INIT:
    
    ACALL CMD
    MOV A,#0FH
    ACALL CMD
    MOV A,#01H
    ACALL CMD
    MOV A,#06H
    ACALL CMD
    MOV A,#83H
    ACALL CMD
    MOV A,#3CH
    ACALL CMD
    RET
    
    TEXT1:
    MOV A,#48H
    ACALL DISPLAY
    MOV A,#65H
    ACALL DISPLAY
    MOV A,#61H
    ACALL DISPLAY
    MOV A,#72H
    ACALL DISPLAY
    MOV A,#74H
    ACALL DISPLAY
    MOV A,#20H
    ACALL DISPLAY
    MOV A,#52H
    ACALL DISPLAY
    MOV A,#61H
    ACALL DISPLAY
    MOV A,#74H
    ACALL DISPLAY
    MOV A,#65H
    ACALL DISPLAY
    RET
    
    LINE2:
    
    MOV A,#0C0H
    ACALL CMD
    RET
    TEXT2:
    MOV A,#62H
    ACALL DISPLAY
    MOV A,#70H
    ACALL DISPLAY
    MOV A,#6DH
    ACALL DISPLAY
    MOV A,#20H
    ACALL DISPLAY
    RET
    TEXT3:
    MOV A,#63H
    ACALL DISPLAY
    MOV A,#6FH
    ACALL DISPLAY
    MOV A,#75H
    ACALL DISPLAY
    MOV A,#6EH
    ACALL DISPLAY
    MOV A,#74H
    ACALL DISPLAY
    MOV A,#69H
    ACALL DISPLAY
    MOV A,#6EH
    ACALL DISPLAY
    MOV A,#67H
    ACALL DISPLAY
    MOV A,#2EH
    ACALL DISPLAY
    MOV A,#2EH
    ACALL DISPLAY
    MOV A,#2EH
    ACALL DISPLAY
    RET
    
    
    BPM:
    MOV A,R1
    ACALL ASCII
    ACALL DISPLAY
    MOV A,R2
    ACALL ASCII
    ACALL DISPLAY
    MOV A,R3
    ACALL ASCII
    ACALL DISPLAY
    RET
    
    
    
    CMD: MOV P0,A
    CLR RS
    CLR RW
    SETB EN
    CLR EN
    ACALL DELAY
    RET
    
    DISPLAY:MOV P0,A
    SETB RS
    CLR RW
    SETB EN
    CLR EN
    ACALL DELAY
    RET
    
    DELAY: CLR EN
    CLR RS
    SETB RW
    MOV P0,#0FFh
    SETB EN
    MOV A,P0
    JB ACC.7,DELAY
    
    CLR EN
    CLR RW
    RET
    
    DELAY1:MOV R5,#255D
    HERE2:DJNZ R5,HERE2
    RET
    
    SPLIT: MOV B,#10D
    DIV AB
    MOV R3,B
    MOV B,#10D
    DIV AB
    MOV R2,B
    MOV R1,A
    RET
    
    ASCII: MOVC A,@A+DPTR
    RET
    LUT: DB 48D
    DB 49D
    DB 50D
    DB 51D
    DB 52D
    DB 53D
    DB 54D
    DB 55D
    DB 56D
    DB 57D
    
    END
Gia công pcb 932*150
Sản phẩm nổi bật
Sale 0%
18000 /Cái
/ Cái

Code: 7201-019 Còn hàng

Lưu xem sau
Sale 0%
50000 /Cái
/ Cái

Code: 7201-023 Còn hàng

Lưu xem sau
Sale 0%
35000 /Cái
/ Cái

Code: 7201-001 Còn hàng

Lưu xem sau
Hỗ trợ liên kết
0979466469
0899909838
0938128290
0899909838
Khiếu nại: 0964238397
0979466469
0868565469
0868565469

Hotline: 0979 466 469

Loading
0964238397
Bạn cần linh kiện mẫu ? 7-11 ngày