久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 7155|回復(fù): 2
收起左側(cè)

基于51單片機(jī)'ST188心率脈搏檢測(cè)程序與原理圖分享

[復(fù)制鏈接]
ID:274459 發(fā)表于 2021-1-9 20:02 | 顯示全部樓層 |閱讀模式
內(nèi)含完整原理圖設(shè)計(jì)、文檔等

原理圖

原理圖
傳感器的引腳圖.png

元件清單:
51hei.png
元件型號(hào)    元件名稱    元件標(biāo)號(hào)
10uF    電容    C1
20PF    電容    C2, C3
10uF    電容    C4
1uF    電容    C5, C6
LED-R-3mm    指示燈    D1
LCD12864    液晶    LCD1
10K    可調(diào)電阻    RV1
10K    電阻    R2
330歐    電阻    R3, R4, R13
20K    電阻    R5, R6
10K    電阻    R7, R8
56k    電阻    R9
6.8K    電阻    R10
24K    電阻    R11
100K    電阻    R12
SW-PB    按鍵    S1
STC89C52    單片機(jī)    U1
ST188    光電開(kāi)關(guān)    U2
LM358    放大器    U3
12M    晶振    Y1


單片機(jī)源程序如下:
  1. #include <reg52.h>                 //調(diào)用單片機(jī)頭文件
  2. #define uchar unsigned char  //無(wú)符號(hào)字符型 宏定義        變量范圍0~255
  3. #define uint  unsigned int         //無(wú)符號(hào)整型 宏定義        變量范圍0~65535



  4. sbit rs=P2^5;         //寄存器選擇信號(hào) H:數(shù)據(jù)寄存器          L:指令寄存器
  5. sbit rw=P2^6;         //寄存器選擇信號(hào) H:數(shù)據(jù)寄存器          L:指令寄存器
  6. sbit e =P2^7;         //片選信號(hào)   下降沿觸發(fā)

  7. unsigned char i=0,timecount=0,displayOK=0,rate=0,aa=0;
  8. unsigned int time[6]={0};


  9. /***********************1ms延時(shí)函數(shù)*****************************/
  10. void delay_1ms(uint q)
  11. {
  12.         uint i,j;
  13.         for(i=0;i<q;i++)
  14.                 for(j=0;j<120;j++);
  15. }

  16.                                           
  17. /************ 延時(shí)函數(shù)  *****************/
  18. void delay_uint(uint z)
  19. {
  20.    while(z--);
  21. }


  22. /************ 寫命令函數(shù)  *****************/
  23. void write_com(uchar com)
  24. {

  25.    P0=com;
  26.    rw=0;
  27.    rs=0;
  28.    delay_uint(25);
  29.    e=1;
  30.    delay_uint(50);
  31.    e=0;
  32. }
  33. /************ 寫數(shù)據(jù)函數(shù)  *****************/
  34. void write_data(uchar dat)
  35. {

  36.    P0=dat;;
  37.    rw=0;
  38.    rs=1;
  39.    delay_uint(25);
  40.    e=1;
  41.    delay_uint(50);
  42.    e=0;
  43. }

  44. /**********************************************************
  45. *函數(shù)名: addr_12864
  46. *功能:寫地址
  47. *說(shuō)明:寫漢字時(shí)要寫個(gè)地址
  48. *輸入:無(wú)
  49. *返回:無(wú)
  50. **********************************************************/
  51. void addr_12864(uchar hang,uchar lie)          //地址轉(zhuǎn)換
  52. {
  53.         uchar address;
  54.         switch(hang)
  55.         {
  56.                 case 1: address=0x80 + lie ;
  57.                                 break;
  58.                 case 2: address=0x90 + lie ;
  59.                                 break;
  60.                 case 3: address=0x88 + lie ;
  61.                                 break;
  62.                 case 4: address=0x98 + lie ;
  63.                                 break;
  64.                 default :
  65.                                 break;
  66.         }        
  67.         write_com(address);
  68. }

  69. /***********************lcd1602上顯示兩位十進(jìn)制數(shù)************************/
  70. void write_sfm3(uchar hang,uchar add,uint date)
  71. {
  72.         addr_12864(hang,add);         
  73.         write_data(':');
  74.         write_data(0x30+date/100%10);
  75.         write_data(0x30+date/10%10);
  76.         write_data(0x30+date%10);        
  77. }


  78. /**********************************************************
  79. *函數(shù)名: write_string
  80. *功能:在12864上顯示字符數(shù)據(jù)
  81. *說(shuō)明:
  82. *輸入:無(wú)
  83. *返回:無(wú)
  84. **********************************************************/

  85. void write_string(uchar hang,uchar lie,uchar *p)
  86. {
  87.         addr_12864(hang,lie);          //地址轉(zhuǎn)換
  88.         while(*p != '\0')
  89.         {
  90.                 write_data(*p);
  91.                 p++;
  92.                 delay_uint(50);
  93.         }
  94. }

  95. /********************************************************************
  96. * 名稱 : init_12864()
  97. * 功能 : 初始化函數(shù)
  98. * 輸入 : cmdcode
  99. * 輸出 : 無(wú)
  100. ***********************************************************************/
  101. void init_12864()
  102. {  
  103.     write_com(0x30);
  104.     write_com(0x0c);
  105.     write_com(0x01);
  106.     delay_uint(5000);
  107.         write_string(1,0,"               ");
  108.         write_string(2,0," 心率:000/min  ");
  109.         write_string(3,0,"               ");
  110.         write_string(4,0,"               ");
  111. }

  112. /*************定時(shí)器0初始化程序***************/
  113. void time_init()         
  114. {
  115.         EA   = 1;                   //開(kāi)總中斷
  116.         TMOD = 0X01;          //定時(shí)器0、定時(shí)器1工作方式1
  117.         ET0  = 1;                  //開(kāi)定時(shí)器0中斷
  118.         TR0  = 1;                  //允許定時(shí)器0定時(shí)
  119. }


  120. /***********外部中斷0初始化程序****************/
  121. void init_int0()          //外部中斷0初始化程序
  122. {
  123.         EX0=1;                          //允許外部中斷0中斷
  124.         EA=1;                           //開(kāi)總中斷
  125.         IT0 = 1;                   //外部中斷0負(fù)跳變中斷
  126. }

  127. /****************主函數(shù)***************/
  128. void main()
  129. {        
  130.         init_12864();     //12864初始化        
  131.         time_init();      //初始化定時(shí)器
  132.         init_int0();          //外部中斷0初始化程序
  133.         while(1)
  134.         {                        
  135.                 if(displayOK==0)//如果顯示關(guān)
  136.                 {
  137.                          rate = 0;
  138.                 }
  139.                 else//如果顯示開(kāi)
  140.                 {
  141.                         rate=60000/(time[1]/5+time[2]/5+time[3]/5+time[4]/5+time[5]/5);
  142.                 }
  143.                 write_sfm3(2,5,rate);

  144.                 delay_1ms(300);
  145.         }
  146. }

  147. void int0() interrupt 0
  148. {
  149.         if(timecount<8)   //當(dāng)連續(xù)兩次檢測(cè)時(shí)間間隔小于8*50ms=400ms不處理
  150.         {
  151.                         TR0=1;//開(kāi)定時(shí)器
  152.         }
  153.         else
  154.         {
  155.                 time[i]=timecount*50+TH0+TL0;//算出間隔時(shí)間
  156.                 TH0 = 0x3c;
  157.                 TL0 = 0xb0;     // 50ms         12M
  158.                 timecount=0;//50ms計(jì)數(shù)清零
  159.                 i++;
  160.                 if(i==6)//記錄到超過(guò)等于6次時(shí)間
  161.                 {
  162.                         i=1;//計(jì)數(shù)從1開(kāi)始
  163.                         displayOK=1;    //測(cè)得5次開(kāi)始顯示?
  164.                 }                                                               
  165.         }
  166. }

  167. /*************定時(shí)器0中斷服務(wù)程序***************/
  168. void time0_int() interrupt 1
  169. {        
  170.         TH0 = 0x3c;
  171.         TL0 = 0xb0;     // 50ms         12M
  172.         timecount++;//每50ms一次計(jì)數(shù)
  173.         if(timecount>25)     //當(dāng)超過(guò)25*50ms=1.5s沒(méi)有檢測(cè)到信號(hào)停止顯示
  174.         {
  175.                         i=0;//數(shù)據(jù)個(gè)數(shù)清零
  176.                         timecount=0;//50ms計(jì)數(shù)清零
  177.                         displayOK=0;//顯示關(guān)
  178.                         TR0=0;//定時(shí)器關(guān)
  179.                         TH0 = 0x3c;
  180.                         TL0 = 0xb0;     // 50ms         12M
  181.         }
  182. }
復(fù)制代碼

所有資料51hei提供下載:
單片機(jī)脈搏計(jì) 12864.7z (1.45 MB, 下載次數(shù): 81)

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:1144925 發(fā)表于 2025-3-6 16:07 | 顯示全部樓層
電源模塊的p1是什么元件啊
回復(fù)

使用道具 舉報(bào)

ID:136013 發(fā)表于 2025-3-7 12:15 | 顯示全部樓層
safoji 發(fā)表于 2025-3-6 16:07
電源模塊的p1是什么元件啊

DC座唄
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 日本一区二区不卡视频 | 日韩中文字幕一区二区 | ass亚洲尤物裸体pics | 亚洲三级黄色片 | 国产精品久久久久久久免费看 | 中文字幕日韩在线观看 | 师生出轨h灌满了1v1 | 五月天久久 | av手机在线观看 | 国产三级黄色片 | 美女黄色一级片 | a视频| 亚洲视频中文字幕 | 手机看片日韩 | 在线一区视频 | 国产一级片视频 | 视频一区在线观看 | 久久久久亚洲精品 | 97久久久久| 国产欧美一区二区精品忘忧草 | 久久久久国产视频 | 国产欧美日韩一区二区三区 | 男人在线天堂 | 天天澡天天狠天天天做 | 国产一区二区影院 | 日韩精品在线观看视频 | 久草资源站| 久久在线播放 | 深夜福利视频在线观看 | 精品毛片一区二区三区 | 亚洲国产一区二区三区 | 亚洲播放 | 亚洲成人毛片 | 国产日韩精品一区二区 | 欧美性一区二区 | 欧美性猛交xxxx免费看久久久 | 国产成人精品一区二区三区福利 | 欧美中文字幕在线观看 | 欧美a一级 | 免费a在线观看 | 国产高清91 |