文档介绍:单元5 按键模块设计
1
精品课件
回顾
1,数码管显示原理?
2,静态数码管工作原理?
3,动态数码管工作原理?
4,AT89C51有几个定时器?各是多少位的?请简述定时器实现定时原理?
5,8051单片机定时/计数器工作方式有多少种?
6,如何设置8051单片机工作在定时/计数模式下?
7,如何启动定时器工作?
8,请简述DS1302读取时间的编程过程?
2
精品课件
本单元任务
任务1 独立式键盘设计
任务2 键盘中断设计
任务3 矩阵式键盘设计
任务4 多个外部中断设计
3
精品课件
任务1 独立式键盘设计
任务描述:
任务分析:
众多嵌入式单片机系统、嵌入式单片机产品设备中,键盘模块都是必不可少的,比如手机及各种智能家电等。本任务通过按键控制点亮流水灯(8个按键分别对应控制8个LED),学****最简单的键盘—独立式按键设计方法。
键盘实际上是一组开关的集合:当键按下时,两根导线接通;释放时,两根导线不通。8个按键的键盘电路可考虑在P2口上设计,8个LED电路仍然安装在单片机P1口。8个按键分别对应控制8个LED,按下按键则点亮对应的灯。
4
精品课件
独立式键盘工作原理及应用
独立式键盘的组成是由若干个按键与单片机的I/O口一一的对应连接,然后通过读取单片机I/O的电平状态来确认哪个对应的按键被按下,一般一个独立式按键对应一个功能,可以通过按键的组合来实现多个功能。
key1
key2
key3
key0
key4
key5
key6
key7
5
精品课件
抖动:当用手按下一个键时,往往出现按键在闭合和断开位置之间来回跳动多次才能到闭合稳定状态的现象;在 释放一个键时,也会出现类似的情况,这种情况就是抖动。按下一个键时产生前沿抖动,释放一个键时产生后沿抖动。抖动的持续时间随键盘簧片的材料和操作员而异,通常在5~10ms。而5~10ms已经对程序进行多次循环扫描执行,显而易见,抖动问题不解决,就会引起对闭合键的多次识别。 。
键按下
前沿抖动
后沿抖动
闭合稳定
6
精品课件
应用举例:例5-1
7
精品课件
#include""
void main()
{
while(1)
{
if(P2_0==0) //判断key0被按下
{
key_delay();//去抖延时10ms
if(P2_0==0) //再次判断key0按下
{
while(!P2_0); //等待闭合释放
P1_0=0; //点亮LED
}
}
if(P2_1==0) //判断key1被按下
{
key_delay();//去抖延时10ms
if(P2_1==0) //再次判断key1按下
{
while(!P2_1); //等待闭合释放
P1_0=1; //熄灭LED
}
}
}
}
8
精品课件
1. Proteus电路设计
2. Keil C51程序设计
3. Proteus-Keil联合调试仿真
任务实施
9
精品课件
硬件电路图
10
精品课件