• 大小: 578KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-06
  • 语言: 其他
  • 标签: 51单片机  心率  

资源简介

基于51单片机的人体心率采集设计,包含源代码,仿真图和设计报告。

资源截图

代码片段和文件信息

#include 
#include   //  包含头文件

#define uint            unsigned int
#define uchar           unsigned char
#define ulong           unsigned long  //宏定义
#define LCD_DATA        P0  //定义P0口为LCD_DATA

sbit LCD_RS =P2^5;
sbit LCD_RW =P2^6;
sbit LCD_E  =P2^7;  //定义LCD控制引脚

sbit Xintiao =P1^0 ;  //脉搏检测输入端定义
sbit speaker =P2^4;  //蜂鸣器引脚定义

void delay5ms(void);   //误差 0us
void LCD_WriteData(uchar LCD_1602_DATA);  /********LCD1602数据写入***********/
void LCD_WriteCom(uchar LCD_1602_COM);  /********LCD1602命令写入***********/
void lcd_1602_word(uchar Adress_Comuchar Num_Adatuchar *Adress_Data); /*1602字符显示函数,变量依次为字符显示首地址,显示字符长度,所显示的字符*/
void InitLcd();//液晶初始化函数

void Tim_Init();

uchar Xintiao_Change=0;    //
uint  Xintiao_Jishu;
uchar stop;
uchar View_Data[3];
uchar View_L[3];
uchar View_H[3];
uchar Xintiao_H=100; //脉搏上限
uchar Xintiao_L=40; //脉搏下限


uchar Key_Change;
uchar Key_Value; //按键键值
uchar View_Con; //设置的位(0正常工作,1设置上限,2设置下限)
uchar View_Change;

void main()   //主函数
{
 InitLcd();
 Tim_Init();
 lcd_1602_word(0x8016“Heart Rate:     “);   //初始化显示
 TR0=1;
 TR1=1;   //打开定时器
 while(1)   //进入循环
  {
   if(Key_Change)   //有按键按下并已经得出键值
    {
 Key_Change=0;   //将按键使能变量清零,等待下次按键按下
 View_Change=1;
 switch(Key_Value) //判断键值
  {
   case 1: //设置键按下
         {
  View_Con++; //设置的位加
  if(View_Con==3) //都设置好后将此变量清零
   View_Con=0;
  break; //跳出,下同
 }
   case 2: //加键按下
         {
  if(View_Con==2) //判断是设置上限
   {
    if(Xintiao_H<150) //上限数值小于150
 Xintiao_H++; //上限+
   }
  if(View_Con==1) //如果是设置下限
   {
    if(Xintiao_L  Xintiao_L++; //下限值加
   }
  break;
 }
   case 3: //减键按下
         {
  if(View_Con==2) //设置上限
   {
    if(Xintiao_H>Xintiao_L+1)//上限数据大于下限+1(同样上限值不能小于下限)
 Xintiao_H--; //上限数据减
   }
  if(View_Con==1) //设置下限
   {
    if(Xintiao_L>30) //下限数据大于30时
 Xintiao_L--; //下限数据减
   }
  break;
 } 
 }
}
   if(View_Change)//开始显示变量
    {
 View_Change=0;//变量清零
 if(stop==0)   //心率正常时
  {
   if(View_Data[0]==0x30) //最高位为0时不显示
    View_Data[0]=‘ ‘;
  }
 else   //心率不正常(计数超过5000,也就是两次信号时间超过5s)不显示数据
  {
   View_Data[0]=‘ ‘;
   View_Data[1]=‘ ‘;
   View_Data[2]=‘ ‘;
  }

 switch(View_Con)
  {
   case 0: //正常显示
          {
   lcd_1602_word(0x8016“Heart Rate:     “);//显示一行数据
   lcd_1602_word(0xc016“                “);//显示第二行数据
   lcd_1602_word(0xcd3View_Data);  //第二行显示心率
   break;
  }
   case 1: //设置下限时显示
          {
   lcd_1602_word(0x8016“Heart Rate:     “);//第一行显示心率
   lcd_1602_word(0x8d3View_Data);
   
   View_L[0]=Xintiao_L/100+0x30; //将下限数据拆字
   View_L[1]=Xintiao_L%100/10+0x30;
   View_L[2]=Xintiao_L%10+0x30;

   if(View_L[0]==0x30) //最高位为0时,不显示
    View_L[0]=‘ ‘;

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       4951  2016-12-26 21:38  心率计\新建文件夹\1-程序注释\程序

     文件       9722  2016-12-26 21:46  心率计\新建文件夹\1-程序注释\程序.c

     文件       4701  2016-12-26 21:38  心率计\新建文件夹\1-程序注释\程序.hex

     文件         40  2016-12-26 21:38  心率计\新建文件夹\1-程序注释\程序.lnp

     文件      21170  2016-12-26 21:38  心率计\新建文件夹\1-程序注释\程序.LST

     文件      18655  2016-12-26 21:38  心率计\新建文件夹\1-程序注释\程序.M51

     文件       7014  2016-12-26 21:38  心率计\新建文件夹\1-程序注释\程序.OBJ

     文件        829  2013-09-05 23:41  心率计\新建文件夹\1-程序注释\程序.opt.bak

     文件        531  2016-12-26 21:47  心率计\新建文件夹\1-程序注释\程序.plg

     文件       2100  2013-09-05 23:36  心率计\新建文件夹\1-程序注释\程序.Uv2.bak

     文件      55329  2016-12-26 21:47  心率计\新建文件夹\1-程序注释\程序.uvopt

     文件      13202  2013-09-06 19:59  心率计\新建文件夹\1-程序注释\程序.uvproj

     文件        825  2013-09-05 23:36  心率计\新建文件夹\1-程序注释\程序_Opt.Bak

     文件       1662  2011-04-09 18:58  心率计\新建文件夹\1-程序注释\程序_Uv2.Bak

     文件      55329  2016-12-26 21:46  心率计\新建文件夹\1-程序注释\程序_uvopt.bak

     文件      16594  2015-06-17 01:26  心率计\新建文件夹\1-程序注释\程序流程图.docx

     文件      37376  2014-09-09 21:55  心率计\新建文件夹\10-开题报告\开题报告.doc

     文件     447802  2014-11-14 11:31  心率计\新建文件夹\12-pcb\pcb图.jpg

    ..A.SH.     33280  2014-11-19 12:52  心率计\新建文件夹\12-pcb\Thumbs.db

     文件      71275  2014-08-18 17:11  心率计\新建文件夹\12-pcb\焊接图.JPG

     文件      34154  2014-08-18 17:11  心率计\新建文件夹\12-pcb\焊接图.pdf

     文件      13908  2014-11-14 11:28  心率计\新建文件夹\13-使用说明及功能介绍\主要功能.docx

     文件         47  2014-11-12 14:54  心率计\新建文件夹\13-使用说明及功能介绍\演示视频.txt

     文件        283  2014-09-21 11:16  心率计\新建文件夹\4-相关软件下载和教程\串口下载程序软件stc.txt

     文件        339  2014-09-21 11:09  心率计\新建文件夹\4-相关软件下载和教程\仿真软件proteus7.8.txt

     文件        120  2014-09-21 11:15  心率计\新建文件夹\4-相关软件下载和教程\单片机十天征服你视频教程及课件.txt

     文件        584  2014-09-21 11:13  心率计\新建文件夹\4-相关软件下载和教程\画图软件protel99se.txt

     文件        664  2014-09-21 11:18  心率计\新建文件夹\4-相关软件下载和教程\编写c程序软件keil4.txt

     文件     120848  2014-07-21 20:24  心率计\新建文件夹\5-仿真\Last Loaded 心率计.DBK

     文件      22528  2014-07-21 19:16  心率计\新建文件夹\5-仿真\仿真说明.doc

............此处省略15个文件信息

评论

共有 条评论