独立按键式直接用I/O口线构成的单个按键电路,其特点式每个按键单独占用一根I/O口线,每个按键的工作不会影响其他I/O口线的状态。独立式按键电路配置灵活,软件结构简单,但每个按键必须占用一个I/O口线,因此,在按键较多时,I/O口线浪费较大,不宜采用。
独立按键的软件常采用查询式结构。先逐位查询没跟I/O口线的输入状态,如某一根I/O口线输入为低电平,则可确认该I/O口线所对应的按键已按下,然后,再转向该键的功能处理程序。
独立键盘理想的波形是按下去时保持低电平,实际上在上升沿和下降沿的过程中(即按键和离键时的一段微小时间)会出现抖动。消抖的方法有两种,一种是通过硬件:在电路上连个电容;另一种是软件消抖,根据经验增加10ms的延时。
这样即能起到消抖的作用。
独立键盘有扫描法和中断法。
下面主要介绍中断法:
1.打开总中断
2.设置外部中断的触发方式 (TCON寄存器)
IT0:INT0: 1 负边缘触发(下降) 0 低电平触发
IE0:中断请求标志位
IT1:INT1: 1 负边缘触发(下降) 0 低电平触发
3.打开外部中断
EX0 = 0;
4.外部中断服务函数
void isr_exito() interrupt 0
{
EX0 = 0;
/* 你所实现的功能程序*/
EX0 = 1;
}
下面是一个例子:
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!