Kết luận và hướng phát triển đề tài:

Một phần của tài liệu Đồ Án VI Xử Lý Máy Đo Nhịp TIm (Trang 28 - 33)

ĐỒ ÁN VI XỬ LÝ VÀ MÁY TÍNH – BỘ MÔN KỸ THUẬT MÁY TÍNH Trạng thái : Nghỉ ngơ

6.3Kết luận và hướng phát triển đề tài:

- Kết luận: Việc thực hiện đề tài đã kiểm chứng được lý thuyết về phương pháp đo nhịp tim bằng phương pháp hấp thụ hồng ngoại. Từ đó có thế thiết kế các máy đo nhịp tim sử dụng phương pháp này để đưa vào sử dụng trong đờ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 chỉ đo nhịp tim mà có thể phát triển để đo nồng độ bão hòa Oxi trong máu. Để đo nồng độ bão hòa Oxi trong máu, ta sử dụng 2 nguồn sáng với các bước sóng khác nhau, việc phân tích cường độ sáng thu được có thể đo đạc được nồng độ bão hòa Oxi trong máu.

+ Ngoài ra cũng có thể phát triển đề tài theo hướng máy đo đạc đa năng với khả năng đo đạc thêm các thông số y sinh khác như huyết áp, thân nhiệt, điện tâm đồ…

PHỤ LỤC

Danh mục CODE:

1 #include <msp430g2553.h>

2 unsigned int so[10]={0xc0,0x79,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

ĐỒ ÁN VI XỬ LÝ VÀ MÁY TÍNH – BỘ MÔN KỸ THUẬT MÁY TÍNH

3 unsigned int nhiptim=0; 4 unsigned int dem; 5 int k=0;

6 void hienthi(unsigned int x) 7 { unsigned int tram=x/100; 8 unsigned int x1=x%100; 9 unsigned int chuc=x1/10; 10 unsigned int donvi=x1%10; 11 for(int j=0;j<1000;j++) 12 {

13 P2OUT &=~ BIT1 ;//P2.1=0, bat BJT DK hang tram 14 P1OUT=so[tram];//xuat du lieu ra

15 __delay_cycles(5000);//thoi gian hien thi 16 P2OUT |= BIT1 ;//tat

17 P2OUT &=~ BIT2 ;//P2.2=0 bat BJT DK hang chuc 18 P1OUT=so[chuc];//xuat du lieu ra

19 __delay_cycles(5000);//thoi gian hien thi 20 P2OUT |= BIT2 ;//tat

21 P2OUT &=~ BIT4 ;//P2.4=0 bat BJT DK hang don vi 22 P1OUT=so[donvi];//xuat du lieu ra

23 __delay_cycles(5000);//thoi gian hien thi 24 P2OUT |= BIT4 ; //tat

25 }26 } 26 }

27 #pragma vector=PORT2_VECTOR 28 __interrupt void Port_2(void) 29 {

ĐỒ ÁN VI XỬ LÝ VÀ MÁY TÍNH – BỘ MÔN KỸ THUẬT MÁY TÍNH

30 dem++;

31 P2IFG &= ~BIT0; 32 }

33 void battimer() 34 {

35 TA0CCTL0 = CCIE; // CCR0 interrupt enabled 36 TA0CCR0 = 50000; //50ms

37 TA0CTL = TASSEL_2 + MC_1; // SMCLK, upmode 38 } 39 void tattimer() 40 { 41 TA0CTL = 0X00; 42 } 43 #pragma vector=TIMER0_A0_VECTOR 44 __interrupt void Timer_A (void) 45 { 46 if(k<1200) k++; 47 else 48 { k=0; 49 nhiptim=dem; 50 hienthi(nhiptim); 51 dem=0; 52 tattimer(); 53 } 54 }

55 //Ham cau hinh 1Mhz 56 void Cofigure_Clock(void)

ĐỒ ÁN VI XỬ LÝ VÀ MÁY TÍNH – BỘ MÔN KỸ THUẬT MÁY TÍNH

57 {

58 if (CALBC1_1MHZ == 0XFF)// if calibration const ant erased 59 { 60 while(1); 61 } 62 DCOCTL=0; 63 BCSCTL1 = CALBC1_1MHZ; 64 DCOCTL = CALDCO_1MHZ; 65 BCSCTL2 |= SELM_0;

66 // chon nguon clock CPU MCLK la DCO 67 }

68 void main(void) 69 {

70 WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer 71 Cofigure_Clock();

72 P1DIR |= BIT0 + BIT1 + BIT2 + BIT3 + BIT4 + BIT5 + BIT6 ;//output 73 P2DIR |= BIT1 + BIT2 + BIT4;//output

74 P2IE |= BIT0; // P2.0 interrupt enabled 75 P2IES |= BIT0; // P2.0 Hi/lo edge

76 P2IFG &= ~BIT0; // P2.0 IFG cleared

77 _BIS_SR(GIE); //BAT NGAT DEM NHIP TIM78 P2DIR &= ~BIT3; 78 P2DIR &= ~BIT3;

79 while(1) 80 { 81 while((P2IN&BIT3)); 82 for(int i=0;i<400;i++); 83 while(!(P2IN&BIT3)); Nhóm 39 Page 31

ĐỒ ÁN VI XỬ LÝ VÀ MÁY TÍNH – BỘ MÔN KỸ THUẬT MÁY TÍNH 84 for(int i=0;i<400;i++); 84 for(int i=0;i<400;i++); 85 dem=0; 86 battimer(); 87 } 88 } Nhóm 39 Page 32

Một phần của tài liệu Đồ Án VI Xử Lý Máy Đo Nhịp TIm (Trang 28 - 33)