
Protues-ATmega8仿真
老杨工作室 young45@126.com
第三讲
键盘扫描的学习
提要:主要学习 Atmega8 通用数字 I/O 接口扫描键盘的应用。
前面我们学习了 ATmega8的 I/O 口作为通用数字输入/输出口来用时对 LED
数码管控制的应用,其实主要是作为输出口的应用。下面我们就来学习一下用作
输入口的应用――扫描键盘。
3.1 按键的使用特点:
按键的应用主要就是在按键闭合时改变电路的电平,但是一般情况下按键的
开关都是机械弹性触点开关,它利用触点的接触和分离来实现电路的通断,在按
键按下和释放时往往会产生抖动干扰,所以要想办法消除抖动干扰。
消除抖动干扰即可用硬件设计也可用软件设计的方法。硬件消抖就要在硬件
设计上增加消抖电路,如用 R-S 触发器等,这样就会增加系统成本。软件消抖就
是要在软件中对按键进行二次测试确认,既当第一次检测到按键被按下后,间隔
10 毫秒左右再次检测该按键是否被按下,只有两次都册到按键按下时才确认该
按键被按下了,从而消除抖动干扰。另外我们还要判别按键的释放,为了设计方
便,我们现不考虑长时间按下按键的情况,只简单考虑检测到按下和释放才计作
一次按键操作。
3.2 单键盘扫描的应用
下面我们就用软件消抖的方法来做个简单的应用,我们用PB 口接一个 LED
数码管,用来显示数据,用 PC0 端口接一个按键电路,我先画出电路:
我们要实现的功能是每按一次按键,LED 数码管显示的数据加 1,到 9 回 0。
怎么样不是很复杂吧,是不是很快就可以些出来了呢?下面是我写的,你也参考
一下吧: