欢迎来到天天文库
浏览记录
ID:62188939
大小:4.22 MB
页数:77页
时间:2021-04-20
《最新课件第10章-键盘接口课件ppt.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、课件第10章-键盘接口第十章键盘接口知识目标:掌握独立式与行列式键盘的工作原是,理解键盘接口程序的编制方法;掌握按键抖动的原因及处理方法。技能目标:能设计两种键盘电路,会编写简单的独立式键盘程序。素质目标:养成扩展嵌入式系统芯片外围相关知识的习惯。项目四数字万年历的设计要求:设计一单片机控制的数字万年历。它采用液晶显示,可以显示年、月、日、星期,小时、分钟、秒及当前的温度等信息。项目四任务1万年历键盘的设计要求设计4个输入键的键盘,它能调整日期、时间。任务分析:万年历中的时间或日期要经常进行效正,这里就牵涉到从外部输入到单片机信息的问题,即人要输入接口。
2、键盘基本问题键盘分编码键盘和非编码键盘。键盘上闭合键的识别由专用的硬件编码器实现,并产生键编码号或键值的称为编码键盘,如BCD码键盘、ASCLL码键盘等;而靠软件来识别的称为非编码键盘;非编码键盘有分为:独立式非编码键盘和行列式非编码键盘。在单片机组成的测控系统及智能化仪器中,用的最多的是非编码键盘。键的识别即如何识别键盘的问题。键盘由一组规则排列的按键组成,一个按键实际上是一个开关元件,也就是说键盘是一组规则排列的开关。单片机使用的按键是一种常开型的开关,平时按键的两个触点处于断开状态,按下键时它们才闭合。按键按键在闭合和断开时,触点会存在抖动现象:键
3、的抖动图10.1键盘抖动示意图抖动时间一般为5~10ms。抖动会引起一次按键被误读多次。为确保CPU对键的一次闭合仅做一次处理,必须去除键抖动。抖动的去除可以采用硬件的办法,也可以软件的办法。硬件去抖动的方法这里不予介绍,可参考数字电路相关的书籍。软件去抖动的方法其实就是利用延时来去掉这一抖动时间,在具体程序设计中再讨论独立式键盘图10.2独立键盘电路图独立式按键是指各按键相互独立地接通一条输入数据线。当任何一个键按下时,与之相连的输入数据线即可读入数据0,而没有按下时读入1。图10.2独立键盘电路图独立式键盘的电路简单,易于编程,但占用的IO口线较多,
4、当需要较多按键时可能产生IO资源紧张问题。设计一个独立式按键的键盘接口,并编写键扫描程序,电路原理图如图10.2所示,键号从上到下分别为0~7。C语言程序清单:#includevoidkey(){unsignedchark;P0=0xff;//输入时P0口置全1k=P0;//读取按键状态if(k==0xff)//无键按下,返回return;delay20ms();//有键按下,延时去抖k=P0;if(k==0xff)//确认键按下return;//抖动引起,返回while(P0!=0xff);//等待键释放switch(k){case:
5、0xfe…//0号键按下时执行程序段break;case:0xfd…//1号键按下时执行程序段break;…//2~6号键程序省略case:0x7f…//7号键按下时执行程序段break;}行列式键盘为了减少键盘与单片机接口时所占用I/O线的数目,在键数较多时,通常都将键盘排列成行列矩阵形式。每一水平线(行线)与垂直线(列线)的交叉处通过一个按键来连通。将IO口分为行线和列线,按键跨接在行线和列线上,列线通过上拉电阻接正电源。利用这种结构只需N条行线和M条列线,即可组成具有N×M个按键的键盘。键值:按键闭合时的数值,键模:按键代表的数值。特点:占用IO口
6、线较少,但软件将较为复杂。矩阵式键盘按键的识别:行扫描法及线反转法工作原理1.扫描法2.线反转法图10.3矩阵键盘电路图一、扫描法判别键盘中有无键按下。向行线输出全0,读入列线状态。如果有键按下,总有一列线被拉至低电平,从而使列输入不全为1。查找按下键所在位置。依次给行线送低电平,查列线状态。全为1,则所按下的键不在此行;否则所按下的键必在此行且是在与零电平列线相交的交点上的那个键。图10.3矩阵键盘电路图对按键位置进行编码。找到所按下按键的行列位置后,对按键进行编码,即求得按键键值。二、线反转法1、判断哪一列有键压下写端口(0xf0):行线电平=0;列
7、线电平=1。读端口进行判断:若P3=0xf0→没有按键压下;若P3≠0xf0→某列有键压下→K12、判断哪一行有键压下写端口(0x0f):行线电平=1;列线电平=0。读端口进行判断:若P3=0x0f→没有按键压下;若P3≠0x0f→某行有键压下→K23、将K1与K2相“或”并存于K2(形成键值)——闭合键所在行、列的状态均为0,其余皆为1。第一行的键值:11101110、11011110、10111110、01111110整个键盘的键值(对应为0-F):0xee,0xde,0xbe,0x7e,0xed,0xdd,0xbd,0x7d,0xeb,0xdb,0
8、xbb,0x7b,0xe7,0xd7,0xb7,0x774、利用查表比对法求出闭
此文档下载收益归作者所有