设计功能:
1.ST188光电传感器检测脉搏信号,并有脉搏信号指示灯;
2.具有温度检测功能,可检测人体温度,温度传感器为DS18B20;
3.脉搏和温度检测完成后,LCD1602会显示当前温度和脉搏数值;
4.增加语音播报功能,显示完成后可语音播报脉搏和温度数值;
5.按键可设置脉搏检测的安全范围;
6.超出所设安全范围时,蜂鸣器报警;
EX0=1; //允许外部中断0中断
EA=1; //开总中断
IT0 = 1; //外部中断0负跳变中断
}
/********************独立按键程序*****************/
uchar key_can; //按键值
void key() //独立按键程序
{
static uchar key_new;
key_can = 20; //按键值还原
P3 |= 0x78; //对应的按键IO口输出为1
if((P3 & 0x78) != 0x78) //按键按下
{
delay_1ms(2); //按键消抖动
if(((P3 & 0x78) != 0x78) && (key_new == 1))
{ //确认是按键按下
key_new = 0;
switch(P3 & 0x78)
{
case 0x68: key_can = 3; break; //得到按键值
case 0x58: key_can = 2; break; //得到按键值
case 0x38: key_can = 1; break; //得到按键值
}
}
}
else
key_new = 1;
}
/**********************设置函数************************/
void key_with()
{
if(key_can == 1) //设置键
{
menu_1++;
if(menu_1 > 2) //回到正常显示
{
menu_1 = 0;
write_guangbiao(1,2,0); //关闭光标
init_1602(); //初始化液晶显示
}
}
/***************设置*********************/
if(menu_1 != 0)
{
if(menu_1 == 1) //设置上限报警
{
if(key_can == 2) //加
{
rate_h ++;
if(rate_h >= 255)
rate_h = 0;
}
if(key_can == 3) //减
{
rate_h -- ;
if(rate_h <= rate_l)
rate_h = rate_l + 1;
}
}
else if(menu_1 == 2) //设置下限报警
{
if(key_can == 2) //加
{
rate_l ++;
if(rate_l >= rate_h)
rate_l = rate_h - 1;
}
if(key_can == 3) //减
{
if(rate_l == 0x00)
rate_l = 1;
rate_l -- ;
}
}
write_sfm3(2,4,rate_h);
write_sfm3(2,11,rate_l);
switch(menu_1) // 光标显示
{
case 1: write_guangbiao(2,4,1); break;
case 2: write_guangbiao(2,11,1); break;
}
}
}
/****************报警函数***************/
void clock_h_l()
{
if(rate != 0)
{
阅读全文