Advertisement

Using proteus, a 51 series microcontroller simulation project (No. 53) based on a 4-key scan circuit.

阅读量:

1、本例实现用4个按键控制8位流水灯的不同显示效果。

按下KEY1键时,接在P3口的8位流水灯从P0.0开始依次点亮;

按下KEY2键时,接在P3口的8位流水灯从P0.7开始依次点亮;

按下KEY3键时,接在P3口的8位流水灯全部点亮;

按下KEY4键时,接在P3口的8位流水灯全部熄灭;

2、在本例中设置了4个按钮,并为每个按钮都赋予了不同的功能。由于每个按钮都对应着不同的功能,在此基础上进行了详细说明了各项配置设置。

KEY1键:键值为1;

KEY2键:键值为2;

KEY3键:键值为3;

KEY4键:键值为4;

3、4个按键分别接在P1口的P0.0--P0.3这4个引脚上,按键判别过程如下:

首先检测按键是否被按下。将P1口的低四位设为高电平后进行读取操作(考虑这一操作的原因:在数字电路中,高位信号通常用于标识某种特定状态),如果所得数据中至少有一位未达到高电平标准,则表明存在按键按下情况.具体操作步骤如下:

P1=0x0f;

if((P1&&0x0f)!=0x0f);

//将低四位与1进行按位与操作后发现结果不为1时,则意味着在低四位中至少有一位二进制位为0的状态出现。

2)按动作抖动消除方法如下:一旦检测到按键被按下,在一段固定时间内不响应(触发延时函数执行),一段时间过后再次检测判断;若仍检测到按动作,则进入键值识别过程;否则视为干扰信号停止进

全部评论 (0)

还没有任何评论哟~