资源描述
,单片机原理及应用在线开放课程,键盘接口技术:独立按键,1,CONTENTS,目录,道艺兼修 敬业乐群,2,Part,键盘简介,3,01,键盘简介,键盘是电子系统中人机对话的重要组成部分,是人向机器发出指令、输入信息的必须设备,也是在单片机应用系统中使用最广泛的一种数据输入设备。,键盘是由多个按键组成的。,4,Part,独立按键,5,02,独立按键,按键通常是一种常开型开关,常态下按键的两个触点处于断开状态,按下按键时它们才闭合。,A,B,C,B,A,D,按键1,按键2,6,02,独立按键与单片机的接口原理,330,P1.6,P1.7,VCC,GND,按键不按下时,P1.7通过一个电阻接到VCC上,P1.7为高电平状态,,按键按下时,按键抬起时,又接到VCC上,P1.7再次回到高电平状态。,P1.7接到了GND上,P1.7被拉低为低电平,7,02,多个独立按键的单片机接口电路,图2-20 独立式连接的非编码键盘,0,0,8,02,实际按键的抖动问题,实际按键的按下与释放是通过机械触点的闭合与断开来实现的,因机械触点的弹性作用,在闭合与断开的瞬间均有一个抖动的过程,抖动必须清除。,9,02,常用消抖方法,1硬件方法,硬件方法是设计一个滤波延时电路或单稳态电路、RS触发器等硬件电路来避开按键的抖动时间。每个按键一套电路。,10,02,常用消抖方法,2软件方法 软件方法是指编制一段时间大于20ms的延时程序,在第一次检测到有键按下时,执行延时子程序,使键的前沿抖动消失后再检测该键状态,如果该键仍保持闭合状态电平,则确认为该键已稳定按下,否则无键按下,从而消除了抖动的影响。 同理,在检测到按键释放后,也同样要延迟一段时间,以消除后沿抖动,然后转入对该按键的处理,11,02,软件消抖流程图,12,Part,简单独立按键实例,13,03,任务显示电路图如下,用第一个数码管 将独立按键接于单片机P3.0引脚,独立按键接于单片机P3.0, 当每按下一次按键数码管的值加1,初始值为0,加到9后归零。,14,03,程序代码,#include #define uchar unsigned char #define uint unsigned int sbit wei = P27; /数码管位选 sbit duan = P26; /数码管段选 sbit key_s2 = P30;/S2按键位定义 uchar code leddata= 0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F, ;/0-9显示码 void delay(uint z) uint x,y; for(x = z; x 0; x-) for(y = 114; y 0 ; y-); ,void main() uchar num; we = 1; P0 = 0xfe; /选通第一个数码管 wei = 0; while(1) duan = 1; P0 = leddatanum; /显示S2按下次数 duan = 0; if(key_s2 = 0)/判断S2是否按键 delay(20);/软件延时 if(key_s2 = 0) num+; /计数加1 while(!key_s2); /松手检测 if(num = 10) /当数值为超过9时归零 num = 0; ,15,谢谢收看!,16,
展开阅读全文