找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3049|回复: 2
打印 上一主题 下一主题
收起左侧

基于AT89c52的脉搏检测程序

[复制链接]
跳转到指定楼层
楼主
ID:209881 发表于 2017-6-10 16:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

单片机脉搏检测源程序如下:
  1. unsigned char key_value;            //存放键盘返回
  2. unsigned char key_flag=0;//定义有键按下的标志
  3. unsigned char i,j,t,m,DelayTime,DispBuf[3];
  4. unsigned int n,mb;


  5. #include "reg52.h"
  6. #include "lcd.c"
  7. #include "hardware.c"
  8. #include "user.c"
  9. #include "key.c"
  10. #include "string.h"
  11. #include "intrins.h"

  12. void delay(DelayTime);
  13. void main()
  14. {
  15.         EA=0;
  16.         LCD_Initial();
  17.         delay_20ms(10);
  18.         LCD_Write(0,0x01);           //清屏
  19.         LCD_Print(5,0,"Welcome!");
  20.         delay_20ms(10);
  21.         LCD_Print(0,0,"MaiBoCeLiang");
  22.         LCD_Print(0,1,"e Control!");
  23.         delay_20ms(10);
  24.         LCD_Write(0,0x01);           //清屏
  25.         LCD_Print(0,0,"LSTC");
  26.         LCD_Print(0,1,"by LWL&MZL");
  27.         delay_20ms(10);
  28.         LCD_Write(0,0x01);           //清屏
  29.        
  30.         TMOD=0x01;        //定时器T0工作于方式1
  31.         TH0=0xec;
  32.         TL0=0x78;        //T0定时时间为5ms
  33.         IE=0X83;         //开中断
  34.         IT0=1;           //外部中断0为边沿触发方式
  35.         TR0=1;           //开定时器T0
  36.         for(;;)          //脉搏指示灯控制
  37.         {       
  38.                 if(P3_0==0)
  39.                 {
  40.                         delay(200);
  41.                         P3_0=1;
  42.                 }
  43.         }

  44. }
  45. external0() interrupt 0//外部中断服务程序
  46. {
  47.         P3_0=0;          //点亮指示灯
  48.         if(n==0)
  49.         mb=0;
  50.         else
  51.         mb=12000/n;      //计算每分钟脉搏数
  52.         DispBuf[2]=mb%10;//取个位数
  53.         mb=mb/10;
  54.         DispBuf[1]=mb%10;//取十位数
  55.         DispBuf[0]=mb/10;//取百位数
  56.         n=0;
  57. }
  58. Timer0() interrupt 1//定时中断服务程序
  59. {       
  60.         TH0=0xec;
  61.         TL0=0x78;
  62.         t=BitTab[j];//取位值
  63.         P3=P3|0x38;//P3.3-P3.5送1
  64.         P3=P3&t;   //P3.3-P3.5输出取出的位值
  65.         t=DispBuf[j];//取出待显示的数
  66.         t=DispTab[t];//取字形码
  67.         P1=t; //字型码由P3输出显示
  68.         j++;  //j作为数码管的计数器,取值0-2,显示程序通过它确认显示哪个数码管
  69.         if(j==3)
  70.         j=0;
  71.         n++;
  72.         if(n==2000)//10秒钟测不到心率,n复位
  73.         n=0;
  74. }
  75. ……………………

  76. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
脉搏程序.rar (22.63 KB, 下载次数: 29)



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:210017 发表于 2017-6-11 09:44 | 只看该作者
此帖仅作者可见

使用道具 举报

板凳
ID:346704 发表于 2018-6-7 09:50 | 只看该作者
此帖仅作者可见

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表