这段代码是一个应答函数,用于检测数据脚的状态变化并记录床位号,同时检测按键是否被按下。如果有床位呼叫,则打开背光、关闭蜂鸣器、清除标志位、清除床位号并记录当前引脚状态,并在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);//清屏
	}
}

代码的主要功能是:

  1. 检测数据脚状态变化,并根据变化情况更新床位号变量。
  2. 检测按键是否被按下。
  3. 如果有床位呼叫,则执行以下操作:
    • 打开背光
    • 关闭蜂鸣器
    • 清除标志位
    • 清除床位号
    • 记录当前引脚状态
    • 在LCD上显示'I Know'
  4. 如果没有床位呼叫,则只点亮背光。
  5. 等待按键释放并延时。
  6. 清屏。

代码中的变量含义如下:

  • D0-D3:数据脚状态
  • fu_D0-fu_D3:数据脚状态的备份
  • num_D0-num_D3:床位号
  • key:按键状态
  • bg_1602:背光状态
  • Beep:蜂鸣器状态
  • flag:标志位

代码中的函数含义如下:

  • delay():延时函数
  • com_1602():LCD控制函数
  • dis_1602():LCD显示函数
C语言应答函数代码解析:数据脚状态检测与床位呼叫处理

原文地址: https://www.cveoy.top/t/topic/mOWz 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录