一、概述
键盘在单片机应用系统中,实现输入数据、传送命令的功能,是人工干预的主要手段。键盘分两大类:编码键盘和非编码键盘。
编码键盘:由硬件逻辑电路完成必要的键识别工作与可靠性措施。每按一次键,键盘自动提供被按键的读数,同时产生一选通脉冲通知微处理器,一般还具有反弹跳和同时按键保护功能。这种键盘易于使用,但硬件比较复杂,对于主机任务繁重之情况,采用8279可编程键盘管理接口芯片构成编码式键盘系统是很实用的方案。
非编码键盘:只简单地提供键盘的行列与矩阵,其他操作如键的识别,决定按键的读数等仅靠软件完成,故硬件较为简单,但占用CPU较多时间。有:独立式按键结构、矩阵式按键结构。
二、键盘系统设计
首先,确定键盘编码方案:采用编码键盘或非编码键盘。随后,确定键盘工作方式:采用中断或查询方式输入键操作信息。然后,设计硬件电路。非编码键盘系统中,键闭合和键释放的信息的获取,键抖动的消除,键值查找及一些保护措施的实施等任务,均由软件来完成。
(一)非编码键盘的键输入程序应完成的基本任务
1.监测有无键按下;键的闭合与否,反映在电压上就是呈现出高电平或低电平,所以通过电平的高低状态的检测,便可确认按键按下与否。
2.判断是哪个键按下。
3.完成键处理任务。
(二)从电路或软件的角度应解决的问题
1.消除抖动影响。键盘按键所用开关为机械弹性开关,利用了机械触点的合、断作用。由于机械触点的的弹性作用,一个按键开关在闭合和断开的瞬间均有一连串的抖动,波形如下:
抖动时间的长短由按键的机械特性决定,一般为5~10ms,这是一个很重要的参数。抖动过程引起电平信号的波动,有可能令CPU误解为多次按键操作,从而引起误处理。
为了确保CPU对一次按键动作只确认一次按键,必须消除抖动的影响。按键的消抖,通常有软件,硬件两种消除方法。
这种方法只适用于键的数目较少的情况。
软件消抖:如果按键较多,硬件消抖将无法胜任,常采用软件消抖。通常采用软件延时的方法:在第一次检测到有键按下时,执行一段延时10ms的子程序后,再确认电平是否仍保持闭合状态电平,如果保持闭合状态电平,则确认真正有键按下,进行相应处理工作,消除了抖动的影响。(这种消除抖动影响的软件措施是切实可行的。)
2.采取串键保护措施。串键:是指同时有一个以上的键按下,串键会引起CPU错误响应。
通常采取的策略:单键按下有效,多键同时按下无效。
3.处理连击。连击:是一次按键产生多次击键的效果。要有对按键释放的处理,为了消除连击,使得一次按键只产生一次键功能的执行(不管一次按键持续的时间多长,仅采样一个数据)。否则的话,键功能程序的执行次数将是不可预知,由按键时间决定。连击是可以利用的。连击对于用计数法设计的多功能键特别有效。
三、键盘工作方式
单片及应用系统中,键盘扫描只是CPU的工作内容之一。CPU忙于各项任务时,如何兼顾键盘的输入,取决于键盘的工作方式。考虑仪表系统中CPU任务的份量,来确定键盘的工作方式。
键盘的工作方式选取的原则是:既要保证能及时响应按键的操作,又不过多的占用CPU的工作时间。
键盘的工作方式有:查询方式(编程扫描,定时扫描方式)、中断扫描方式。
四、键盘电路结构
(一)独立式按键接口设计
独立式按键就是各按键相互独立,每个按键单独占用一根I/O口线,每根I/O口线的按键工作状态不会影响其他I/O口线上的工作状态。因此,通过检测输入线的电平状态可以很容易判断哪个按键被按下了。
优点:电路配置灵活,软件结构简单。
缺点:每个按键需占用一根I/O口线,在按键数量较多时,I/O口浪费大,电路结构显得复杂。
因此,此键盘是用于按键较少或操作速度较高的场合。
也可以用扩展I/O口搭接独立式按键接口电路,可采用8255扩展I/O口,用三态缓冲器扩展。这两种配接方式,都是把按键当作外部RAM某一工作单元的位来对待,通过读片外RAM 的方法,识别按键的工作状态。
上电路中独立式按键电路,各按键开关均采用了上拉电阻,是为了保证在按键断开时,各I/O有确定的高电平。如输入口线内部已有上拉电阻,则外电路的上拉电阻可省去。
(二)矩阵式键盘接口设计
矩阵式键盘适用于按键数量较多的场合,由行线和列线组成,按键位于行列的交叉点上。节省I/O口。
矩阵键盘工作原理:行线通过上拉电阻接到+5V上。无按键,行线处于高电平状态,有键按下,行线电平状态将由与此行线相连的列线电平决定。列线电平为低,则行线电平为低;列线电平为高,则行线电平为高。
五、双功能及多功能键设计
在单片机应用系统中,为简化硬件线路,缩小整个系统的规模,总希望设置最少的按键,获得最多的控制功能。
矩阵键盘与独立式按键键盘相比,硬件电路大大节省。可通过软件的方法让一键具有多功能。方法:选择一个RAM工作单元,对某一个按键进行按键计数,根据不同计数值,转到子程序。这种计数多功能键最好与显示器结合用,以便知道当前计数值,同时配合一个启动键。
复合键是使用软件实现一键多功能的另一个途径。所谓复合键,就是两个或两个以上的键的联合,当这些键同时按下时,才能执行相应的功能程序。实际情况做不到“同时按下”,他们的时间差别可以长到50ms,解决策略是:定义一个或两个引导键,这些引导键按下时没什么意义,执行空操作。引导键的例子:微机键盘上的CTRL、SHIFT、ALT。
缺点:一是操作变得复杂,二是操作时间变长。
多功能键的利用,应具体情况具体分析。要求速度的场合最好做一键一功能。如果系统功能很多,一键一功能不现实,可采取一键多功能。
六、功能开关及拨码盘接口设计
设计原因:键盘输入灵活性大,操纵方便。但某些重要功能或数据由键盘输入,误操作将产生一些不良后果。因此常设定静态开关的方法来执行这些功能或输入数据。静态开关一经设定,将不再改变,一直维持设定的开关状态。通常这些开关状态是在单片机系统加电时由CPU读入内存RAM的,以后CPU将不再关注这些开关的状态,因此,即使加电后,这些开关的状态发生变化,也不会影响CPU的正常工作,只有在下一次加电时,这些新状态才能生效。
第一,功能开关:主要是根据开关的状态执行一些重要的功能。
第二,拨码盘:单片机应用系统中,有时要输入一些控制参数,这些参数一经设定,将维持不变,除非给系统断电后重新设定。这时使用数字拨码盘既简单直观,又方便可靠。
七、按键介绍
常用的按键有三种:机械触点式按键、导电橡胶式和柔性按键(又称触摸式键盘)。
机械触点式按键是利用弹性使键复位,手感明显,连线清晰,工艺简单,适合单件制造。但是触点处易侵入灰尘而导致接触不良,体积相对较大。
导电橡胶按键是利用橡胶的弹性来复位,通过压制的方法把面板上所有的按键制成一块,体积小,装配方便,适合批量生产。但是时间长了,橡胶老化而使弹力下降,同时易侵入灰尘。
柔性按键是近年来迅速发展的一种新型按键,可以分为凸球型和平面型两种。凸球型动作幅度触感明显,富有立体感,但制造工艺相对复杂;平面型幅度微小,触感较弱,但工艺简单,寿命长。柔性按键最大特点是防尘、防潮、耐蚀,外形美观,装嵌方便。而且外形和面板的布局、色彩、键距可按照整机的要求来设计。
八、单片机系统键盘设计实例
本次设计中,键盘结构采用非编码键盘系统中的独立式按键结构。用三态缓冲器573扩展I/O口搭接独立式按键接口电路,按键状态由573锁存。
键盘工作方式采用定时扫描方式。采用定时器T0定时,CPU每隔200ms扫描键盘一次,即通过读取573的输出数据,识别按键的工作状态。
设计中对于重键和连击的处理:对于重键(串键:指同时有一个以上的键按下),采用软件提供保护,当判断为一个以上的键按下,则不处理,返回重新进行监测。只有监测到一个键按下时,才判断键值,执行相应键处理工作。
九、结语
键盘是单片机系统设计中一种主要的信息输入接口,合理的设计,不仅可以节省系统的设计成本,更可使仪器设备的操作变得更为简单、方便,很大程度上提高系统综合性能。
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
第!"卷第"期
!**!年+月
延安大学学报#自然科学版$
$,&-./0’&120/0/3/456.7489#)08-.0’:;46/;6<=484&/
(!")&("%&’(!**!>0.;?
单片机系统键盘与显示器接口的一种设计BC">A:
邵思飞
陕西延安F#延安大学信息学院E"G***$
D
摘
要H针对数据处理任务不大I串行口不被使用的>A设计了一种键盘显示BC"单片机系统E:器接口电路J具有电路简单I成本低I性能稳定等特点E可广泛应用J关键词H单片机系统K键盘显示器接口K设计中图分类号H++NLM
文献标识码HO
文章编号H"**NPG*!#!**!$*!P**+"P*+Q
键盘I显示器接口的设计E应满足功能和可靠性两个基本要求E但系统不同E要求就不同E接口设计也就不同J本文针对系统数据处理任务不大I串行口不专用的>A设计了一种键盘IBC"单片机系统E:显示器接口电路J该接口具有电路简单I性能稳定等特点J
其中a*_aC又作为3!输出接数码管的显示段E
键盘列线E+(NI+(C为键盘行线JMM
!显示原理及动态显示程序设计
"设计原理
为移位寄BC"单片机串行口置方式*时E>A:
存器输入输出方式E可外接移位寄存器E以扩展RST口J在输出方式时EEAM3可通过>T%:U3VO指令实现字符发送E数据#低WQX引脚串行输出YZ48位在先$当Y发送完ELQX引脚输出移位脉冲EZ48
"\后E由硬件置位[J本设计采用FN+F+锁存器]:LR
和串行口外接F显示N"GN移位寄存器构成键盘I]:
器接口电路E如图"所示J显示器由G个共阴数码管并联构成E键盘为!^G结构J图"中E*_XC接A*(*BM*(CE+(XM3的MMNI+(CIII‘W分别接AM3的对应引脚EMLQXWQX
决定着G位2"接系统地址锁存器的2"输出引脚E
显示器的端口地址J3"输出分别接数码管各阴极E
在YbC!内部WAO>中设置G个显示缓冲单
元E如H分别存放显示器的G位待显示Fbc_F<cE的字符J其一位字符的显示过程为H取出待显示字符E并查表转换为段码E后经AM3串行口方式*输
D
收稿日期H!**"B*NB"!
基金项目H延安大学校级科研基金项目#!**"B!G$2X作者简介H邵思飞#男E陕西横山县人E延安大学讲师
J"bGC_$E
)#延安大学学报P自然科学版Q第#*卷
出!在"#并行输出该显示段码$之"#串并转换!后!向显示端口%&)%)写入相应的位码并进行锁’(存!其他位为高电"*的输出总是只有一位低电平!平!即有某一位字符点亮!其他位为暗!实现了一位字符的显示+如果依次送出段码和位码!则可实现,位数码管的轮流显示+显示子程序流程如图#所示+
延时&&$8A8’’/’FGFG
I/#$,位显示完否ED>C8H0(位码左环一位6’8$&!1236890>A698D14/0(子程序清单./0(
.123/456!74265$
送显示端口地址1238!79::;$关显示123<=/456!8>24
1236&!79:?;$
置位扫描码初值12369!7%@;$置显示缓冲区首址/0(9.1238!
=69$取显示数据8//8!7<<;$加偏移量<<;
123A8!=8B4A
$查表取段数据123(C":!8$串行送出段数据/0(*.D>C50!/0(
*$输出完否EA’650
$完!清中断标志1238!6&$送位扫描码123<=/456!8
/0(#.6?5/(?J.
段码表略)键盘工作原理及键输入程序设计
图*中!键盘行线通过电阻接I3电平!
当键盘上没有键闭合时!所有的行线和列线断开!行线<9-<
*呈高电平$当键盘上某一键闭合时!该键所对应的行线与列线短路!此时该行线电平由短路的列线电平所决定+
键输入程序的功能有&个方面!即.判别键盘上有无键闭合-去除键的机械抖动-判别闭合键的键
号-判键释放等!文献K
*L
中有详细介绍!这里不再赘述+键输入子程序流程如图)所示+
程序清单.M>"1.
123/456!74265$
送显示端口地址1238!79::;$关显示123<=/456!8>24
M?N*.1238!799;$
使键盘列线N9ONI为99;
第A期邵思飞-L;4单片机系统键盘与显示器接口的一种设计!2$66
(!"#$%&’),-,*+./%01*+
2+301
第一排键中有闭合键吗:4-678(9*+./%55*4
第二排键中有闭合键吗:67;(9./%55*4无键转移).!5<=109
延时8-895*4)2)++>+?@?@
是否抖动引起的:678(9./%55*A
67;(./%55*A
抖动引起转).!5<=109
不是抖动引起的-B(C,D5*A!"#3E9
判断是哪一个键按下D(CB!"#3’E9
6(C,,!"#3ED!"#)(3;-(*+!"#$%&’)A-(A*+./%01*+
2+304
是第一排某键否:678(9./%55*"/<
是第二排某键否:67;(.%5/<=09第二排键中有键被按下8(C,D!"#3E9).!55*6
第一排中有键按下-8(C,,5*"/<!"#3E9
等待键释放-C,,5*6!"#)(E9
(!"#$%&’)参考文献-
6-(6*+./%01*+
2+3018-678(8*+./%5*+
67;(8./%5*+
键释放(取得键值89!"#)(36)>>)(33<0
D/<=0-!"#)(3
33)D(!"#3)61/23
B(;>./F3*+3<0
无键按下返回,,<=10-!"#)(’’E9’’E
3<0
8结束语
该接口电路(仅用了A块通用集成芯片
具有电路简B84D8GB86B6和4个或非门组成(+$+$
单G成本低等特点9当数码管增加为H位时(可通过修改软件即可(而不需要改变接口电路I在键输入程本文仅给出了一种较为典型的编程方序设计方面(
8K法(亦可采用文献J中所给出的编程方法I
彭喜源(谭晓均7哈尔滨-哈尔滨工业大学出版社(J4K张毅刚(L;4单片机应用设计J74MMB(48AN4D,7!2$!K单片机原理及其接口技术J北京-清华大学出版社(JAK胡汉才774MMD(AD4NAB87!K
孙晓民(李红青7北京-北京航空航天大学出版社(J6K李华(L;4系列单片机实用接口技术J74MM6(466NAAH7!2$!K邵思飞(刘根据7一种单片机键盘显示系统的设计J延安大学学报(J8K樊延虎(K7A,,A(A4OAP7.
责任编辑Q朱联营R
cSTUVWXYZ[\]U^U_‘ZabTTWVdea_WY\Ub[afU‘ZabT[Zb
L;4VghiWYXeUf]Wd
k$E)"$jlmj
O2((4D,,,(noompmnl1qlnr?stjnqusqsq&jqvmr@jtwusqsqB2xjqsP
-(kL;4jS‘V\baf\1qtxj@ysymrsjqtmrlszmzjrz{jtnl*mw|nsr}}j@yoswnl!2$@}m@jpqm}lnrtxmzs@m~xmqjt@7((@mrjsoynrtj@qnt{@m}0xm}m@jpqxs@s@j?yomzjrz{jton~zn@tsq}@ts|omymrlnr?sqzmsq}zsq|m{@m}7~j}mow
-9k9!U_"ZbTV@jqpomzxjy*mw|nsr}}j@yoswjqtmrlszm}m@jpq
单片机课程设计心得体会这个学期的单片机课已经早早的上完了但是理论纯属理论没有与实践的结合总让我们学的不踏实感觉没有达到学以致用的效…
本科课程设计(论文)单片机控制流水灯的正常工作及外部中断控制灯的亮灭学院名称:汽车与交通工程学院专业:汽车服务工程班级:13汽服B…
单片机课程设计心得体会文章发布课程设计网发布时间20xx0505做了两周的课程设计有很多的心得体会有关于单片机方面的更多的是关于人…
单片机课程设计多功能无线数字钟摘要本系统装置的主要功能包括数字钟无线控制和温度计数字钟通过时钟芯片DS1302实现时钟准确误差小无…
四周的毕业设计结束了,在这次的毕业设计中不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事…
51单片机课程设计报告学院:专业班级:姓名:指导教师:设计时间:51单片机课程设计一、设计任务与要求1.任务:制作并调试51单片机…
四周的毕业设计结束了,在这次的毕业设计中不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事…
单片机数字钟设计心得体会经过一周的课程设计,我收获颇多,有深刻的心得体会。实训让我们受益匪浅。首先是关于单片机方面的。我们学到了许…
单片机硬件设计的经验总结下面是总结的一些设计中应注意的问题,和单片机硬件设计原则,希望大家能看完(1)在元器件的布局方面,应该把相…
湖州师范学院求真学院课程设计总结报告课程名称单片机应用系统设计设计题目基于STC89C51的数字电子钟设计专业电子科学与技术班级0…