設(shè)計(jì)功能:
1.ST188光電傳感器檢測(cè)脈搏信號(hào),并有脈搏信號(hào)指示燈;
2.具有溫度檢測(cè)功能,可檢測(cè)人體溫度,溫度傳感器為DS18B20;
3.脈搏和溫度檢測(cè)完成后,LCD1602會(huì)顯示當(dāng)前溫度和脈搏數(shù)值;
4.增加語(yǔ)音播報(bào)功能,顯示完成后可語(yǔ)音播報(bào)脈搏和溫度數(shù)值;
5.按鍵可設(shè)置脈搏檢測(cè)的安全范圍;
6.超出所設(shè)安全范圍時(shí),蜂鳴器報(bào)警;
EX0=1; //允許外部中斷0中斷
EA=1; //開(kāi)總中斷
IT0 = 1; //外部中斷0負(fù)跳變中斷
}
/********************獨(dú)立按鍵程序*****************/
uchar key_can; //按鍵值
void key() //獨(dú)立按鍵程序
{
static uchar key_new;
key_can = 20; //按鍵值還原
P3 |= 0x78; //對(duì)應(yīng)的按鍵IO口輸出為1
if((P3 & 0x78) != 0x78) //按鍵按下
{
delay_1ms(2); //按鍵消抖動(dòng)
if(((P3 & 0x78) != 0x78) && (key_new == 1))
{ //確認(rèn)是按鍵按下
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;
}
/**********************設(shè)置函數(shù)************************/
void key_with()
{
if(key_can == 1) //設(shè)置鍵
{
menu_1++;
if(menu_1 > 2) //回到正常顯示
{
menu_1 = 0;
write_guangbiao(1,2,0); //關(guān)閉光標(biāo)
init_1602(); //初始化液晶顯示
}
}
/***************設(shè)置*********************/
if(menu_1 != 0)
{
if(menu_1 == 1) //設(shè)置上限報(bào)警
{
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) //設(shè)置下限報(bào)警
{
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) // 光標(biāo)顯示
{
case 1: write_guangbiao(2,4,1); break;
case 2: write_guangbiao(2,11,1); break;
}
}
}
/****************報(bào)警函數(shù)***************/
void clock_h_l()
{
if(rate != 0)
{
?