键盘设计与实现.ppt
《键盘设计与实现.ppt》由会员分享,可在线阅读,更多相关《键盘设计与实现.ppt(61页珍藏版)》请在三一办公上搜索。
1、项目四 键盘设计与实现,教学目的,掌握键盘的接口方法和编程方法。了解中断的基本概念和功能。掌握51单片机中断系统的结构和控制方式。掌握中断系统的中断处理过程。,模块九 独立式键盘设计与实现,使用AT89S52单片机,设计一个具有8个按键的独立式键盘,每个按键对应一个发光二极管。功能要求:无键按下时,键盘输出全为“1”,发光二极管全部熄灭;有键按下时,其所对应发光二极管点亮。,认识键盘,键盘是单片机应用系统中人机交流不可缺少的输入设备。键盘由一组规则排列的按键组成,一个按键实际上是一个开关元件。键盘通常使用机械触点式按键开关,其主要功能是把机械上的通断转换为电气上的逻辑关系(1和0)。常见的种类
2、有:查询(独立)式键盘 矩阵式键盘,键盘分类,按键按照结构原理可分为两类触点式开关按键,如机械式开关、导电橡胶式开关等;无触点开关按键,如电气式按键,磁感应按键等。前者造价低,后者寿命长。按键按照接口原理可分为两类按键按照接口原理可分为两类 编码键盘,主要是用硬件来实现对按键的识别,硬件结构复杂;非编码键盘,主要是由软件来实现按键的定义与识别,硬件结构简单,软件编程量大。这里我们主要介绍单片机中常用的触点式开关按键、非编码键盘。,独立式键盘电路,独立式键盘电路设计时,每个按键的一端与P0口的一个引脚相连,另一端接地。无键按下时,P0的8个I/O口均通过电阻接高电平,信息为“1”,键盘输出全为“
3、1”发光二极管全部熄灭。有键按下,将使对应的I/O口通过该键接地,信息为“0”,对应发光二极管点亮。CPU可以通过检测P0的8个I/O口线哪个是“0”就可以识别是否有键按下,并能识别出是哪一个键按下。,独立式键盘程序,程序要判断是否有2个或2个以上的键盘同时按下,以免键盘分析错误。独立式键盘程序假设8个按键分别为18,试一试能否用数码管显示按下的按键。,键盘设计应注意的问题,机械式按键在按下或释放时,由于机械弹性作用的影响,通常伴随有一定时间的触点机械抖动,然后其触点才稳定下来。其抖动过程如右图所示,抖动时间的长短与开关的机械特性有关,一般为510ms。若有抖动,按键按下会被错误地认为是多次操
4、作。,按键触点的机械抖动,防抖动措施,为了克服按键触点机械抖动所致的检测误判,必须采取去抖动措施,可从硬件、软件两方面予以考虑。键数较少时,采用硬件去抖;键数较多时,采用软件去抖。软件上采取的措施是在检测到有按键按下时,执行一个10ms左右(具体时间应视所使用的按键进行调整)的延时程序,再确认该键电平是否仍保持闭合状态电平,若仍保持闭合状态电平,则确认该键处于闭合状态,从而消除抖动的影响。,软件去抖,在检测到有按键按下时执行一个10ms左右(具体时间应视所使用的按键进行调整)的延时程序后;再确认该键电平是否仍保持闭合状态电平,若仍保持闭合状态电平,则确认该键是处于闭合状态。,技能训练4-1,一
5、键多功能按键识别设计与实现按键接在P3.0管脚上,在AT89S52单片机的P1 端口接有四个发光二极管。上电的时候,接在P1.0管脚上的发光二极管D1在闪烁;当第一次按下按键的时候,接在P1.1 管脚上的发光二极管D2在闪烁;再按下按键的时候,接在P1.2 管脚上的发光二极管D3在闪烁,再按下按键的时候,接在P1.3 管脚上的发光二极管D4在闪烁,再按下按键的时候,又轮到D1 在闪烁了,如此轮流下去。,一键多功能按键识别电路设计,一键多功能按键识别程序设计,对于要通过一个按键来识别每种不同的功能,我们给每个不同的功能模块用不同的ID号标识,这样,每按下一次按键,ID 的值是不相同的,所以单片机
6、就很容易识别不同功能的身份了。从上面的要求我们可以看出,D1到D4发光二极管在每个时刻的闪烁的时间是受按键来控制,我们给D1到D4闪烁的时段,定义出不同的ID号:D1在闪烁时,ID0;D2在闪烁时,ID1;D3在闪烁时,ID2;D4在闪烁时,ID3;很显然,只要每次按下按键时,分别给出不同的ID号我们就能够完成上面的任务了。一键多功能按键识别程序,矩阵式键盘设计与实现,4X4小键盘,16个键分别对应09、AF;有键按下,数码管显示;无键按下,数码管无显示;通过输出的列码和读取的行码来判断按下什么键;有键按下,要有一定的延时,防止由于键盘抖动而引起误操作。,矩阵式键盘电路,键盘的结构与原理,矩阵
7、式键盘 单片机系统中,若使用按键较多时,通常采用矩阵式键盘,其结构如下图所示。由图可知,一个44的行、列结构,可以构成一个含有16个按键的键盘,节省了很多I/O口。控制方式:先判断是否有键按下。如有,再判断哪一键按下,并得到 键码值,然后根据键码值转向不同 的功能程序。最常用的识别方法是键盘扫描法。,判断按键按下的方法,判断是否有键按下的方法是:向所有的列输出口线输出低电平(不能为高电平,因为若为高电平,按键按下与否都不会引起行线电平的变化),然后将行线的电平状态读入。若无键按下,所有的行线仍保持高电平状态;若有键按下,行线中至少应有一条线为低电平。例如:第2行与第2列交叉点的键被按下,则第2
8、行与第2列导通,第2行电平被拉低,读入的行信号就为低电平,表示有键按下。,识别按键的方法,按键识别的扫描方法:往列线上按顺序一列一列的送出低电平。先送第0列为低电平,其他列为高电平,读入的行的电平状态就表明了第0列的4个键的情况,若读入的行值全为高电平,则表示无键按下;再送第1列为低电平,其他列为高电平,读入的行的电平状态则显示了该行上的4个按键的情况;依次轮流给各列送出低电平,直至4列全部送完,再从第0列开始,依此循环。采用键盘扫描,我们再来观察第2行与第2列交叉点的键按下时的判断过程,当第2列送出低电平时,读第2行为低电平,而其他列送出低电平时,读第2行却为高电平,由此即可断定按下的键应是
9、第2行与第2列交叉点的键。,键盘扫描程序具体实现方法,判断有无键按下去除按键的抖动求按键的键值判断闭合键是否释放,判断有无键按下,P0.4P0.7输出0,然后读P0口;若低4位P0.0P0.3全为1,则键盘上没有键按下;若P0.0P0.3不全为1,则有键按下。while(tmp=0 x0f)/循环判断是否有键按下 P0=0 x0f;/所有列输出低电平 tmp=P0;/读行信号,去除按键的抖动,当判断到键盘上有键按下后;延时一段时间再判断键盘的状态;若仍为有键按下状态,则认为有一个键按下,否则当作按键抖动来处理。delay10ms();/延时10ms去抖P0=0 x0f;/所有列输出低电平tmp
10、=P0;/再次读键盘状态if(tmp=0 x0f)continue;/如果无键按下则认为是按键抖动,重新扫描键盘,求按键的键值,对键盘的列线进行扫描,P0.4P0.7循环输出1110、1101、1011和0111,依次读P0口,若低4位全为1,则断定该列上没有键按下;否则,该列上就有键按下,并且就是行线为0,列线为0的交叉点,行号和列号按公式:rol*4+col 计算得到按下键的键值。例如,P0.4P0.7输出1101时,P0口的低四位读入的值为1011,不全为1,就可以断定有键按下,并且是第2行和第1列交叉点的键。于是,该键的键值=24+1=9。按照相同的方法可以得到所有键的键值。如:ret
11、urn(rol*4+col);,判断闭合键是否释放,按键闭合一次只能进行一次功能操作,因此,等按键释放后才能根据键号执行相应的功能键操作。key=scan_key();/有键按下,调用键盘扫描程序,并把键值送key while(k!=-1)/判断闭合键是否释放,直到其释放 delay10ms();k=scan_key();,矩阵式键盘程序,程序要判断是否有2个或2个以上的键盘同时按下,以免键盘分析错误。16个按键分别为09、AF,用数码管显示按下的按键。矩阵式键盘程序,工作模块11 中断方式矩阵键盘,独立式键盘识别键盘比较容易,编程也比较简单,很适合于功能键较少的单片机应用系统。独立式键盘每一
12、个按键上用一根口线,当按键较多时(超过8个)应采用矩阵式键盘。无论是否按键,CPU都要按时扫描键盘,而单片机应用系统工作时,并非经常需要键盘输入。因此,很多扫描工作是不必要的,浪费了CPU的时间。为了提高CPU的工作效率,可以采用中断扫描工作方式。,中断的概念,当CPU在执行程序时,由单片机内部或外部的原因引起的随机事件要求CPU暂时停止正在执行的程序,而转向执行一个用于处理该随机事件的程序,处理完后又返回被中止的程序断点处继续执行,这一过程就称为中断。向CPU发出中断请求的来源,或引起中断的原因称为中断源。中断源可分为两大类:一类来自单片机内部,称之为内部中断源;一类来自单片机外部,称之为外
13、部中断源。中断源要求服务的请求称为中断请求。,中断的功能,中断系统是指能实现中断功能的硬件和软件。中断系统的功能一般包括以下几个方面。进行中断优先级排队实现中断嵌套自动响应中断实现中断返回中断的特点。可以提高CPU的工作效率实现实时处理处理故障,进行中断优先级排队,通常,单片机中有多个中断源,设计人员能按轻重缓急给每个中断源的中断请求赋予一定的中断优先级。当两个或两个以上的中断源同时请求中断时,CPU可通过中断优先级排队电路首先响应中断优先级高的中断请求,等到处理完优先级高的中断请求后,再来响应优先级低的中断请求。,实现中断嵌套,CPU在响应某一中断源中断请求而进行中断处理时,若有中断优先级更
14、高的中断源发出中断请求,CPU会暂停正在执行的中断服务程序,转向执行中断优先级更高的中断源的中断服务程序,等处理完这个高优先级的中断请求后,再返回来继续执行被暂停的中断服务程序。这个过程称为中断嵌套。,自动响应中断,中断源向CPU发出的中断请求是随机的。CPU总是在每条指令的最后状态对中断请求信号进行检测。当某一中断源发出中断请求时,CPU能根据相关条件(如中断优先级、是否允许中断)进行判断,决定是否响应这个中断请求。若允许响应这个中断请求,CPU在执行完相关指令后,会自动完成断点地址压入堆栈、中断矢量地址送入程序计数器PC、撤除本次中断请求标志,转入执行相应中断服务程序。,实现中断返回,CP
15、U响应某一中断源中断请求,转入执行相应中断服务程序,在执行中断服务程序最后的中断返回指令时,会自动弹出堆栈区中保存的断点地址,返回到中断前的原程序中。,中断方式矩阵键盘,采用中断扫描工作方式中断方式矩阵式键盘电路中断方式矩阵式键盘程序,中断方式矩阵键盘电路,中断方式矩阵键盘程序,采用中断扫描工作方式,工作过程如下:有按键按下时,产生中断请求,进入键盘扫描程序,并识别键码、显示,然后返回。无键按下时,不执行键盘扫描程序。中断扫描工作方式键盘程序,中断系统结构,8051单片机的中断系统主要由与中断有关的4个特殊功能寄存器和硬件查询电路等组成。定时器控制寄存器TCON 主要用于保存中断信息。串行口控
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 键盘 设计 实现

链接地址:https://www.31ppt.com/p-5881307.html