- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 对应8个按键的键处理子程序Pkey0~Pkey7,要根据按键功能的具体要求来编写。但是需要注意的是,进入键处理子程序后,应先判断按下的按键是否松开,确认松开后,再进行按键功能的处理。所以指令“JNB P1.x, Pkeyx”(x=0~7)用来判断按键是否松开。 2. 独立式键盘的中断扫描方式 上面介绍的独立式键盘的查询方式,即使键盘无按键按下,也要查询。为提高键盘扫描的工作效率,可采用中断扫描方式,即只有在按键按下时,才进行扫描查询与处理,因此中断扫描方式的键盘实时性强,工作效率高。 【例5-9】设计一个采用中断方式的独立式键盘,只有在键盘有按键按下时,才向单片机发出中断请求。单片机进入中断服务程序后,再对按下的键进行查询。中断方式的独立式键盘的原理电路见图5-23。图中P1.0~P1.7口线接上拉电阻至+5V,当键盘中没有按键按下时,P1.0~P1.7口线均为高电平。 图5-23 中断扫描方式的独立式键盘的接口电路 当某个按键按下时,按键所在行的行线为低电平,经过8输入与非门74LS30的输出以及74LS04反相后向单片机的中断请求输入引脚发出低电平的外部中断请求信号,单片机响应中断,进入外部中断的中断服务子程序,在中断服务子程序中,再进行按键的查询扫描,根据扫描结果跳向按下键的键处理程序。 * * * 5.6.3 矩阵式键盘的设计 按键数目较多的场合常采用矩阵式(也称行列式)键盘。键盘由行线和列线组成,按键位于行、列的交叉点上。如图5-24所示,一个4×4的行列结构可构成一个16个按键k0~k15的键盘,需要一个8位的并行I/O口。如果采用8×8的行列结构,可构成一个8×8=64键的键盘,只需要两个8位的并行I/O口。很明显,在按键数目较多的场合,矩阵式键盘要比独立式键盘节省较多的I/O口线。 * 图5-24 矩阵式(行列式)键盘的接口电路 对图5-24的矩阵式键盘的查询扫描,一般包括以下4个步骤。 (1)首先判别整个键盘有无按键按下,方法为单片机驱动列线P1.4~P1.7输出全“0”,然后读行线P1.0~P1.3的状态,若为全“1”,则键盘上没有闭合键,若P1.0~P1.3不全为“1”,则有键按下。 (2)去除键的抖动,当判别出可能有键按下时,软件延时一段时间(10ms左右)再判别键盘的状态,若仍有键闭合,则认为键盘上有确定的键按下,否则是键抖动。 (3)求出按下键的键号, 图5-24中的16个按键,键号依次为0,1,┄15。各行的首键号分别为0,4,8,12,列号依次为0,1,2,3。行线通过上拉电阻接+5V,当无键按下时,行线为高电平,当有按键按下时,对应的行线与列线短接,行线的电平将由此行线相连的列线电平决定。 * 如果把行线设置为单片机的输入口线,列线设置为单片机的输出口线,则按键号的识别过程是:先令0列线P1.4为低电平“0”,其余3根列线都为高电平,逐行检查行线状态。如果行线P1.0~P1.3都为高电平“1”,则P1.4这一列上没有按键闭合,若P1.0~P1.3中有一行为低电平,则该行线与列线交叉的按键按下。如果P1.4这一列上没有按键闭合,接着再使P1.5为低电平,其余列线为高电平。用同样的方法检查P1.5这一列上有无按键闭合,以此类推。这样采用逐列扫描(只有一列为低),然后读入各行线的电平,即可求出按下键的键号N为:N=行的首键号+列号。各行的首键号分别为0,4,8,12,列号依次为0,1,2,3。编程时设置1个列号计数器,初值为0,每扫描1列,列号计数器加1。 * (4)判闭合键是否松开,如果松开则将键号送入A中保存,单片机根据按下键的键号,对该键的一次闭合仅作一次键功能处理。 1. 矩阵式键盘的查询扫描的编程 【例5-10】对图5-24的矩阵式键盘,编写键盘的查询扫描程序。 查询扫描的参考程序如下。 * * * * 上述的键盘扫描程序将按下键的键号存于累加器A中,如果想要把键号显示出来,只需在P2口接一个共阳极数码管,通过下面的程序,将存于累加器A中的键号,通过查表的方法,将键值的段码通过P2口输出给数码管即可。参考的显示子程序如下。 查询扫描键盘无论是否有键按下,都需要进行扫描。为提高键盘扫描的工作效率,可采用中断扫描方式。 2. 矩阵式键盘的中断扫描查询方式 采用中断扫描方式,只有在键盘有按键按下时,才会向单片机发出中断请求,单片机执行中断服务子程序去扫描查询键盘,识别出按下的键号。如果无键按下,单片机将不会扫描键盘。该方式的优点是,实时性强,工作效率高。 【例5-11】矩阵式键盘的中断查询扫描方式的设计,接口电路如图5-25所示。 键盘的列线与P1口的高4位相连,行线与P1口的低4位
原创力文档


文档评论(0)