单片机之键盘工作原理课件.ppt

单片机之键盘工作原理课件.ppt

ID:57294758

大小:1.40 MB

页数:31页

时间:2020-08-10

单片机之键盘工作原理课件.ppt_第1页
单片机之键盘工作原理课件.ppt_第2页
单片机之键盘工作原理课件.ppt_第3页
单片机之键盘工作原理课件.ppt_第4页
单片机之键盘工作原理课件.ppt_第5页
资源描述:

《单片机之键盘工作原理课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、键盘工作原理1.按键输入的特点键盘实质上是一组按键开关的组合。通常使用的是触点式的机械弹性开关。利用机械触点的通断,实现按下时开关导通,释放时开关断开的功能。按键触点的一端和单片机的I/O端口引脚连接,另一端与电压信号相连,触点的通断即可引起端口引脚上的电压变化,单片机通过程序读入I/O端口引脚电平信号便可判断按键的状态。如下图所示。当按键未按下压时,Px.n端口为高电平;按压按键后为低电平。按键在闭合和断开时,触点会存在抖动现象:图为键闭合时列线电压波形。键闭合和断开过程中存在抖动期(呈现一串负脉冲)

2、,抖动时间长短与开关的机械特性有关,一般为5~10 ms之间;稳定闭合期由操作员的按键动作所确定,一般为数百毫秒到几秒。为了保证CPU对键的闭合做一次处理,必须去除抖动,在键的稳定闭合或断开时,读键的状态。软件消抖方法:当判别到键盘上有键闭合后,延时一段时间再判别键盘的状态,若仍有键闭合,则认为键盘上有一个键处于稳定的闭合状态,否则认为键抖动。键盘有两种结构:独立式按键和矩阵式按键。1.独立式按键独立式键盘中每个按键都单独连接到单片机的一个I/O端口引脚上。特点是电路简单,但占用I/O口线较多。例:按下

3、按键,对应的LED灯亮#includevoiddelay(unsignedintz){unsignedintx,y;for(x=z;x>0;x--)for(y=125;y>0;y--);}voidmain(){unsignedcharkey;P2=0x00;P0=0x01;while(1){key=P0;if(key!=0x01){delay(10);if(key!=0x01)P2=~key;}}}实例独立按键识别【要求】采用独立按键方式实现下述功能:开机时LED全熄,然后根据按键动作

4、使相应灯亮,并将亮灯保持到按压其它键时为止。做输入,先写1①按键的闭合电平为0,但LED的驱动电平为1,故不能直接将P0口的状态送到P2口,而应使其先取反再送出;②使按键按下LED点亮,松开时保持不变。【分析】#includevoiddelay(unsignedintz){unsignedintx,y;for(x=z;x>0;x--)for(y=125;y>0;y--);}voidmain(){unsignedcharkey;P2=0x00;P0=0x0f;while(1){key=P

5、0;if(key!=0x0f){delay(10);if(key!=0x0f)P2=~key;}}}实例键控流水灯【要求】K1为“启动键”,按压K1可产生“自下向上”的流水灯运动;K2为“方向键”,按压K2可产生“自下向上”运动。启动停止run(=1)(=0)↓↑dir(=1)(=0)获取按下键值(键值函数)流程键值:按压K1——xxxxxx10(0x02)按压K2——xxxxxx01(0x01)无按键——0000xx11(0x03)按键动作判断——(P0&0x03)是否等于0x03若是,则无按键动作,

6、反之则有按键动作则由得到的键值对应确定dun、dir的值,用switch语句实现。temp=P0&0x03;switch(temp){case0x02:run=1;dir=1;break;case0x01:dir=0;break;}亮灯P2输出:xxxx0001xxxx0010xxxx0100xxxx1000LED循环流程LED状态码数组[]={0x01,0x02,0x04,0x08}分析——搞清全部逻辑关系总体关系(主函数)流程(键值函数)参考程序:#includeunsignedc

7、harled[]={0x01,0x02,0x04,0x08};//从上到下的流水灯bitrun,dir;unsignedchartemp,i;voiddelay(unsignedintz){unsignedintx,y;for(x=z;x>0;x--)for(y=125;y>0;y--);}voidmain(){while(1){temp=P0&0x03;switch(temp){case0x02:run=1;dir=1;//启动,自上往下break;case0x01:dir=0;//自下往上break

8、;}if(run==1){if(dir==1)for(i=0;i<=3;i++){P2=led[i];delay(200);}elsefor(i=4;i>=1;i--){P2=led[i-1];delay(200);}}elseP2=0;}}实例采用共阴极的数码管实现功能要求:当按键按下时显示“L2”,松开时显示“H3”独立按键+数码管综合算出L2H3的段码分别为:0x38,0x5b,0x76,0x4f位选信号构成位码:0xfe,0xfd参

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。