找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 12495|回復: 13
收起左側

51單片機脈搏心電測量儀設計 含程序 原理圖及仿真文件

  [復制鏈接]
ID:115111 發(fā)表于 2016-4-20 21:24 | 顯示全部樓層 |閱讀模式

基于51單片機的心電測量儀的實物圖:
HeMon1.jpg HeMon2.jpg

脈搏測量儀電路原理圖:
圖1.gif

0.png

波形:
Pulse1.gif

0.png
脈搏心電測量儀的仿真圖


脈搏測量儀的源程序:
  1. #include <reg51.h>
  2. unsigned char i,j,t,m,DelayTime,DispBuf[3];
  3. //單片機脈搏測量儀源程序
  4. //作者:吳漢清
  5. unsigned int n,mb;
  6. unsigned char code
  7. BitTab[3]={0xf7,0xef,0xdf};//位驅動碼
  8. unsigned char code
  9. DispTab[10]={0x81,0xcf,0x92,0x86,0xcc,0xa4,0xa0,0x8f,0x80,0x84};//字形碼
  10. sbit P3_0=P3^0;
  11. void delay(DelayTime);
  12. main()         //主程序
  13. {       
  14.         TMOD=0x01;        //定時器T0工作于方式1
  15.         TH0=0xec;
  16.         TL0=0x78;        //T0定時時間為5ms
  17.         IE=0X83;         //開中斷
  18.         IT0=1;           //外部中斷0為邊沿觸發(fā)方式
  19.         TR0=1;           //開定時器T0
  20.         for(;;)          //脈搏指示燈控制
  21.         {       
  22.                 if(P3_0==0)
  23.                 {
  24.                         delay(200);
  25.                         P3_0=1;
  26.                 }
  27.         }
  28. }
  29. external0() interrupt 0//外部中斷服務程序
  30. {
  31.         P3_0=0;          //點亮指示燈
  32.         if(n==0)
  33.         mb=0;
  34.         else
  35.         mb=12000/n;      //計算每分鐘脈搏數(shù)
  36.         DispBuf[2]=mb%10;//取個位數(shù)
  37.         mb=mb/10;
  38.         DispBuf[1]=mb%10;//取十位數(shù)
  39.         DispBuf[0]=mb/10;//取百位數(shù)
  40.         n=0;
  41. }
  42. Timer0() interrupt 1//定時中斷服務程序
  43. {       
  44.         TH0=0xec;
  45.         TL0=0x78;
  46.         t=BitTab[j];//取位值
  47.         P3=P3|0x38;//P3.3-P3.5送1
  48.         P3=P3&t;   //P3.3-P3.5輸出取出的位值
  49.         t=DispBuf[j];//取出待顯示的數(shù)
  50.         t=DispTab[t];//取字形碼
  51.         P1=t; //字型碼由P3輸出顯示
  52.         j++;  //j作為數(shù)碼管的計數(shù)器,取值0-2,顯示程序通過它確認顯示哪個數(shù)碼管
  53.         if(j==3)
  54.         j=0;
  55.         n++;
  56.         if(n==2000)//10秒鐘測不到心率,n復位
  57.         n=0;
  58. }
  59. void delay(DelayTime)//延時子程序
  60. {
  61.         for(;DelayTime>0;DelayTime--)
  62.         {
  63.                 for(i=0;i<250;i++)
  64.                         ;
  65.         }
  66. }
復制代碼

0.png

所有資料打包下載(包含c語言和匯編2個版本的脈搏計單片機設計資料):
51單片機脈搏測量儀的電路設計和源碼.rar (220.31 KB, 下載次數(shù): 251)

評分

參與人數(shù) 2黑幣 +13 收起 理由
肖軍 + 1 很給力!
練氏 + 12 贊一個!

查看全部評分

回復

使用道具 舉報

ID:235588 發(fā)表于 2017-10-21 19:51 | 顯示全部樓層
樓主好人
回復

使用道具 舉報

ID:240522 發(fā)表于 2017-10-22 09:30 | 顯示全部樓層
留存,有空做來試試。。。
回復

使用道具 舉報

ID:244004 發(fā)表于 2017-10-29 20:58 | 顯示全部樓層
樓主好人
回復

使用道具 舉報

ID:244426 發(fā)表于 2017-10-31 00:52 | 顯示全部樓層
樓主可以
回復

使用道具 舉報

ID:246166 發(fā)表于 2017-11-8 18:40 | 顯示全部樓層
樓主太強了,學習學習
回復

使用道具 舉報

ID:76133 發(fā)表于 2017-11-16 14:48 | 顯示全部樓層

樓主太強了,學習學習
回復

使用道具 舉報

ID:489935 發(fā)表于 2019-3-13 14:23 | 顯示全部樓層
樓主對我們這種小白來說幫助太大了 謝謝樓主
回復

使用道具 舉報

ID:488047 發(fā)表于 2019-3-15 10:13 | 顯示全部樓層
好東西,學習一下,謝謝!
回復

使用道具 舉報

ID:371527 發(fā)表于 2019-3-30 09:25 | 顯示全部樓層
謝了,學習
回復

使用道具 舉報

ID:666407 發(fā)表于 2019-12-18 14:24 來自觸屏版 | 顯示全部樓層
為啥仿真圖沒出來啊
回復

使用道具 舉報

ID:838382 發(fā)表于 2020-11-14 16:56 | 顯示全部樓層
進行仿真的時候一直有兩個錯誤是怎么回事啊
回復

使用道具 舉報

ID:838382 發(fā)表于 2020-11-14 17:21 | 顯示全部樓層
想問下樓主為什么仿真的時候一直保持在60不變哪
回復

使用道具 舉報

ID:357153 發(fā)表于 2020-12-28 14:48 | 顯示全部樓層
感謝樓主的分享。收藏、值得學習
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表