基于51单片机的心率计仿真设计

1.本设计基于STC89C51/52(与AT89S51/52、AT89C51/52通用,可任选)单片机。
2.LCD1602液晶显示当前的心率,单位是心率/分钟
3.手指放到红外对管中,2秒内读出心率。
4.按键可以设置报警的上下限心率。


使用方法:
三个按键:一个设置,一个加,一个减。
按下设置的时候才可以加减。

由于仿真中没有红外,手指也模拟不了,其实就是单片机的IO口检测脉冲信号,那样用个方波信号模拟就ok


单片机源程序如下:

  1. #include <reg52.h>
  2. #include <intrins.h>         //                         包含头文件
  3. #define uint            unsigned int
  4. #define uchar           unsigned char
  5. #define ulong           unsigned long         //宏定义
  6. #define LCD_DATA        P0                                 //定义P0口为LCD_DATA
  7. sbit LCD_RS =P2^5;
  8. sbit LCD_RW =P2^6;
  9. sbit LCD_E  =P2^7;                                                 //定义LCD控制引脚
  10. sbit Xintiao =P1^0 ;                                         //脉搏检测输入端定义
  11. sbit speaker =P2^4;                                                 //蜂鸣器引脚定义
  12. void delay5ms(void);   //误差 0us
  13. void LCD_WriteData(uchar LCD_1602_DATA);         /********LCD1602数据写入***********/
  14. void LCD_WriteCom(uchar LCD_1602_COM);                 /********LCD1602命令写入***********/
  15. void lcd_1602_word(uchar Adress_Com,uchar Num_Adat,uchar *Adress_Data); /*1602字符显示函数,变量依次为字符显示首地址,显示字符长度,所显示的字符*/
  16. void InitLcd();//液晶初始化函数
  17. void Tim_Init();
  18. uchar Xintiao_Change=0;           //
  19. uint  Xintiao_Jishu;
  20. uchar stop;
  21. uchar View_Data[3];
  22. uchar View_L[3];
  23. uchar View_H[3];
  24. uchar Xintiao_H=100;        //脉搏上限
  25. uchar Xintiao_L=40;                //脉搏下限
  26. uchar Key_Change;
  27. uchar Key_Value;                //按键键值
  28. uchar View_Con;                        //设置的位(0正常工作,1设置上限,2设置下限)
  29. uchar View_Change;
  30. void main()          //主函数
  31. {
  32. InitLcd();
  33. Tim_Init();
  34. lcd_1602_word(0x80,16,"Heart Rate:     ");          //初始化显示
  35. TR0=1;
  36. TR1=1;                                  //打开定时器
  37. while(1)                          //进入循环
  38.   {
  39.    if(Key_Change)          //有按键按下并已经得出键值
  40.     {
  41.          Key_Change=0;          //将按键使能变量清零,等待下次按键按下
  42.          View_Change=1;
  43.          switch(Key_Value)                                //判断键值
  44.           {
  45.            case 1:                                                //设置键按下
  46.                  {
  47.                           View_Con++;                        //设置的位加
  48.    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

石更单片机

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值