C语言应答函数代码解析:数据脚状态检测与床位呼叫处理
这段代码是一个应答函数,用于检测数据脚的状态变化并记录床位号,同时检测按键是否被按下。如果有床位呼叫,则打开背光、关闭蜂鸣器、清除标志位、清除床位号并记录当前引脚状态,并在LCD上显示'I Know';如果没有床位呼叫,则只点亮背光。最后,清屏并等待按键释放和延时。
void know() //应答函数
{
if(D0!=fu_D0)
num_D0=1;
if(D1!=fu_D1)
num_D1=2;
if(D2!=fu_D2)
num_D2=3;
if(D3!=fu_D3)
num_D3=4;
//数据脚状态改变,将床号赋给变量
if(key==0) //检测按键
{
delay(5);
if(key==0)
{
if((num_D0!=0)||(num_D1!=0)||(num_D2!=0)||(num_D3!=0))//如果有呼叫时
{
bg_1602=0; //打开背光
Beep=1; //关闭蜂鸣器
flag=0; //标志位清零
num_D0=0;num_D1=0;num_D2=0;num_D3=0;
fu_D0=D0;fu_D1=D1;fu_D2=D2;fu_D3=D3;//将床位清零,并记录当前引脚状态
com_1602(0x01); //清屏
dis_1602(7,1,4,2,0); //显示I Know
}
else //如果没有呼叫时
bg_1602=0; //只点亮背光
}
while(!key); //按键释放
delay(2000);
com_1602(0x01);//清屏
}
}
代码的主要功能是:
- 检测数据脚状态变化,并根据变化情况更新床位号变量。
- 检测按键是否被按下。
- 如果有床位呼叫,则执行以下操作:
- 打开背光
- 关闭蜂鸣器
- 清除标志位
- 清除床位号
- 记录当前引脚状态
- 在LCD上显示'I Know'
- 如果没有床位呼叫,则只点亮背光。
- 等待按键释放并延时。
- 清屏。
代码中的变量含义如下:
- D0-D3:数据脚状态
- fu_D0-fu_D3:数据脚状态的备份
- num_D0-num_D3:床位号
- key:按键状态
- bg_1602:背光状态
- Beep:蜂鸣器状态
- flag:标志位
代码中的函数含义如下:
- delay():延时函数
- com_1602():LCD控制函数
- dis_1602():LCD显示函数
原文地址: https://www.cveoy.top/t/topic/mOWz 著作权归作者所有。请勿转载和采集!