好文档 - 专业文书写作范文服务资料分享网站

基于单片机心率计程序文件

天下 分享 时间: 加入收藏 我要投稿 点赞

. .

#include #include

#define uint unsigned int #define uchar unsigned char

#define ulong unsigned long //宏定义 #define LCD_DATA P0

sbit LCD_RS =P2^5; sbit LCD_RW =P2^6; sbit LCD_E =P2^7;

sbit Xintiao =P3^2 ; sbit speaker =P2^4;

void delay5ms(void); //误差 0us void LCD_WriteData(uchar LCD_1602_DATA); ***********/

void LCD_WriteCom(uchar LCD_1602_COM); ***********/

void lcd_1602_word(uchar Adress_Com,uchar Num_Adat,uchar *Adress_Data); /*1602字符显示函数,变量依次为字符显示首地址,显示字符长度,所显示的字符*/ void InitLcd();//液晶初始化函数

void Tim_Init();

. . .

// 包含头文件

//定义P0口为LCD_DATA

//定义LCD控制引脚

//脉搏检测输入端定义 //蜂鸣器引脚定义

/********LCD1602数据写入

/********LCD1602命令写入

. .

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; uchar View_Change;

void main() //主函数 {

InitLcd(); Tim_Init();

lcd_1602_word(0x80,16,\ //初始化显示 TR0=1; TR1=1; while(1) {

if(Key_Change) //有按键按下并已经得出键值

//打开定时器 //进入循环

//按键键值

//设置的位(0正常工作,1设置上限,2设置下限) //脉搏上限 //脉搏下限

. . .

. .

{

超过上限)

. 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(同样上限

值不能小于下限)

}

if(View_Change)//显示变量 {

View_Change=0;//变量清零 if(stop==0) {

if(View_Data[0]==0x30) //最高位为0时不显示

//心率正常时

}

}

}

if(View_Con==1) { } break;

if(Xintiao_L>30) Xintiao_L--;

//下限数据大于30时 //下限数据减 //设置下限

Xintiao_H--;

//上限数据减

. . .

. .

}

View_Data[0]=' ';

else //心率不正常(计数超过5000,也就是两次信

号时间超过5s)不显示数据 { View_Data[0]=' '; View_Data[1]=' '; View_Data[2]=' ';

}

switch(View_Con) { case 0: //正常显示 { lcd_1602_word(0x80,16,\ lcd_1602_word(0xc0,16,\

lcd_1602_word(0xcd,3,View_Data);

率 break;

}

case 1: //设置下限时显示 { lcd_1602_word(0x80,16,\ lcd_1602_word(0x8d,3,View_Data);

View_L[0]=Xintiao_L/100+0x30;

View_L[1]=Xintiao_L0/10+0x30;

. . 显示一行数据 显示第二行数据

//第二行显示心

第一行显示心率 //将下限数据拆字

.

基于单片机心率计程序文件

..#include#include#defineuintunsignedint#defineucharunsignedchar#defineulong
推荐度:
点击下载文档文档为doc格式
2n04u67ht477t6k14pg60zn011oo6h01ako
领取福利

微信扫码领取福利

微信扫码分享