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





《单片机之键盘工作原理ppt课件.ppt》由会员分享,可在线阅读,更多相关《单片机之键盘工作原理ppt课件.ppt(31页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、键盘工作原理键盘工作原理1. 按键输入的特点按键输入的特点 键盘实质上是一组按键开关的组合。通常使用的是触键盘实质上是一组按键开关的组合。通常使用的是触点式的机械弹性开关。利用机械触点的通断,实现点式的机械弹性开关。利用机械触点的通断,实现按下按下时开关导通,释放时开关断开时开关导通,释放时开关断开的功能。的功能。 按键触点的一端和单片机的按键触点的一端和单片机的I/OI/O端口引脚连接,另一端口引脚连接,另一端与电压信号相连,触点的通断即可引起端口引脚上的端与电压信号相连,触点的通断即可引起端口引脚上的电压变化,单片机通过程序读入电压变化,单片机通过程序读入I/OI/O端口引脚电平信号端口引
2、脚电平信号便可判断按键的状态。如下图所示。便可判断按键的状态。如下图所示。当按键未按下压时,当按键未按下压时,Px.nPx.n端口为高电平端口为高电平; ;按压按键后为按压按键后为低电平。低电平。按键在闭合和断开时,触点会存在抖动现象:按键在闭合和断开时,触点会存在抖动现象: 图为键闭合时列线电压波形。键闭合和断开过程中存在抖图为键闭合时列线电压波形。键闭合和断开过程中存在抖动期动期( (呈现一串负脉冲呈现一串负脉冲) ),抖动时间长短与开关的机械特性有关,抖动时间长短与开关的机械特性有关,一般为一般为5 51010msms之间之间;稳定闭合期由操作员的按键动作所确定,;稳定闭合期由操作员的按
3、键动作所确定,一般为数百毫秒到几秒。为了保证一般为数百毫秒到几秒。为了保证CPUCPU对键的闭合做一次处理对键的闭合做一次处理,必须去除抖动必须去除抖动,在键的稳定闭合或断开时,读键的状态。,在键的稳定闭合或断开时,读键的状态。软件消抖方法:当判别到键盘上有键闭合后,延时一段时间再软件消抖方法:当判别到键盘上有键闭合后,延时一段时间再 判别键盘的状态,若仍有键闭合,则认为键盘判别键盘的状态,若仍有键闭合,则认为键盘 上有一个键处于稳定的闭合状态,否则认为键上有一个键处于稳定的闭合状态,否则认为键 抖动。抖动。 键盘有两种结构:独立式按键和矩阵式按键。键盘有两种结构:独立式按键和矩阵式按键。 1
4、.1.独立式按键独立式按键 独立式键盘中每个按键都单独连接到单片机的一个独立式键盘中每个按键都单独连接到单片机的一个I/OI/O端口引脚上。端口引脚上。特点是电路简单,但占用特点是电路简单,但占用I/OI/O口线较多。口线较多。例:按下按键,对应的例:按下按键,对应的LED灯亮灯亮#includevoid delay(unsigned int z)unsigned int x,y;for(x=z;x0;x-) for(y=125;y0;y-);void main() unsigned char key; P2=0 x00; P0=0 x01; while(1) key=P0; if(key!=
5、0 x01) delay(10); if(key!=0 x01) P2=key; 实例实例 独立按键识别独立按键识别【要求要求】采用独立按键方式实现下述功能:开机时采用独立按键方式实现下述功能:开机时LEDLED全熄,全熄,然后根据按键动作使相应灯亮,并将亮灯保持到按压其它键然后根据按键动作使相应灯亮,并将亮灯保持到按压其它键时为止。时为止。做输入,做输入,先写先写1 1 按键的闭合电平为按键的闭合电平为0, 0, 但但LEDLED的驱动电平为的驱动电平为1 1,故不能直接将,故不能直接将P0P0口的状态送到口的状态送到P2P2口,而应使口,而应使其先取反再送出;其先取反再送出; 使按键按下使
6、按键按下LEDLED点亮,松开点亮,松开时保持不变。时保持不变。【分析分析】#includevoid delay(unsigned int z)unsigned int x,y;for(x=z;x0;x-) for(y=125;y0;y-);void main() unsigned char key; P2=0 x00; P0=0 x0f; while(1) key=P0; if(key!=0 x0f) delay(10); if(key!=0 x0f) P2=key; 实例实例 键控流水灯键控流水灯 【要求要求】 K1 K1为为“启动键启动键”,按压,按压K1K1可产生可产生“自下向上自下向
7、上” 的流水灯运动的流水灯运动; ; K2 K2 为为“方向键方向键”,按压,按压K2K2可产生可产生“自下向上自下向上”运动。运动。启动启动停止停止run(=1)(=0)dir(=1)(=0)获取按下键值(键值函数)流程获取按下键值(键值函数)流程键值:键值:按压按压K1K1xxxx xx10 xxxx xx10(0 x020 x02)按压按压K2K2xxxx xx01xxxx xx01(0 x010 x01)无按键无按键0000 xx110000 xx11(0 x030 x03)按键动作判断按键动作判断(P0 & 0 x03P0 & 0 x03)是否等于)是否等于 0 x030 x03若是
8、,则无按键动作,反之则有按键动作若是,则无按键动作,反之则有按键动作则由得到的键值对应确定则由得到的键值对应确定dun、dir的值,用的值,用switch语句实现。语句实现。 temp=P0&0 x03;switch(temp)case 0 x02:run=1; dir=1; break;case 0 x01:dir=0;break;亮灯亮灯P2P2输出输出:xxxx 0001xxxx 0001xxxx 0010 xxxx 0010 xxxx 0100 xxxx 0100 xxxx 1000 xxxx 1000LEDLED循环流程循环流程LEDLED状态码数组状态码数组 = 0 x01= 0
9、x01,0 x020 x02,0 x040 x04,0 x080 x08分析分析搞清全部逻辑关系搞清全部逻辑关系总体关系(主函数)流程总体关系(主函数)流程( (键值函数键值函数) ) 参考程序:参考程序: #includeunsigned char led=0 x01,0 x02,0 x04,0 x08; /从上到下的流水灯bit run,dir;unsigned char temp,i;void delay(unsigned int z)unsigned int x,y;for(x=z;x0;x-) for(y=125;y0;y-); void main() while(1) temp=P
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 键盘 工作 原理 ppt 课件

限制150内