第13讲51单片机按键电路
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
标题:键盘接口电路
教学目标与要求:
1.键盘去抖动和连接、控制方式
2.独立式按键及其接口电路
3.矩阵式键盘及其接口电路
授课时数:2
教学重点:.矩阵式键盘及其接口电路
教学内容及过程:
一、键盘接口概述
1、按键开关去抖动问题
机械式按键再按下或释放时,由于机械弹性作用的影响,通常伴随有一定时间的触点机械抖动,然后其触点才稳定下来。其抖动过程如图9-11所示,抖动时间的长短与开关的机械特性有关,一般为5 10 ms
在触点抖动期间检测按键的通与断状态,可能导致判断出错,即按键一次按下或释放被错误地认为是多次操作,这种情况是不允许出现的。为了克服按键触点机械抖动所致的检测误判,必须采取去抖动措施。这一点可从硬件、软件两方面予以考虑。在键数较少时,可采用硬件去抖,而当键数较多时,采用软件去抖。在硬件上可采用在键输出端加R-S触发器(双稳态触发器)或单稳态触发器构成去抖动电路。图9-12是一种由R-S触发器构成的去抖动电路,当触发器一旦翻转,触点抖动不会对其产生任何影响。
软件上采取的措施是:在检测到有按键按下时,执行一个10 ms左右(具体时间应视所使用的按键进行调整)的延时程序后,再确认该键电平是否仍保持闭合状态电平,若仍保持闭合状态电平,则确认该键处于闭合状态。同理,在检测到该键释放后,也应采用相同的步
骤进行确认,从而可消除抖动的影响。
2.编制键盘程序
一个完善的键盘控制程序应具备以下功能:
(1) 检测有无按键按下,并采取硬件或软件措施,消除键盘按键机械触点抖动的影响。
(2) 有可靠的逻辑处理办法。每次只处理一个按键,其间对任何按键的操作对系统不产生影响,且无论一次按键时间有多长,系统仅执行一次按键功能程序。
(3) 准确输出按键值(或键号),以满足跳转指令要求。
二、独立式按键
单片机控制系统中,往往只需要几个功能键,此时,可采用独立式按键结构。
1. 独立式按键结构
独立式按键是直接用I/O口线构成的单个按键电路,其特点是每个按键单独占用一根I/O口线,每个按键的工作不会影响其它I/O口线的状态。独立式按键的典型应用如图7.4所示。
独立式按键电路配置灵活,软件结构简单,但每个按键必须占用一根I/O口线,因此,在按键较多时,I/O口线浪费较大,不宜采用。
2.矩阵式键盘
I/O端线分为行线和列线,按键跨接在行线和列线上,按键按下时,行线与列线发生短路。特点:
①占用I/O端线较少;
②软件结构教复杂。
适用于按键较多的场合。
3.键盘扫描控制方式
⑴程序控制扫描方式
键处理程序固定在主程序的某个程序段。
特点:对CPU工作影响小,但应考虑键盘处理程序的运行间隔周期不能太长,否则会影响对键输入响应的及时性。
⑵定时控制扫描方式
利用定时/计数器每隔一段时间产生定时中断,CPU响应中断后对键盘进行扫描。
特点:与程序控制扫描方式的区别是,在扫描间隔时间内,前者用CPU工作程序填充,后者用定时/计数器定时控制。定时控制扫描方式也应考虑定时时间不能太长,否则会影响对键输入响应的及时性。
⑶中断控制方式
中断控制方式是利用外部中断源,响应键输入信号。
特点:克服了前两种控制方式可能产生的空扫描和不能及时响应键输入的缺点,既能及时处理键输入,又能提高CPU运行效率,但要占用一个宝贵的中断资源。
三、独立式按键及其接口电路
1、按键直接与I/O口连接
【例9-8】按图9-13(a)、(b),试分别编制按键扫描子程序。
解:按图9-13(a)编程如下:
KEYA:ORL P1,#07H ;置P1.0~P1.2为输入态
MOV A,P1 ;读键值,键闭合相应位为0
CPL A ;取反,键闭合相应位为1
ANL A,#00000111B;屏蔽高5位,保留有键值信息的低3位
JZ GRET ;全0,无键闭合,返回
LCALL DY10ms ;非全0,有键闭合,延时10ms,软件去抖动
MOV A,P1 ;重读键值,键闭合相应位为0
CPL A ;取反,键闭合相应位为1
ANL A,#00000111B;屏蔽高5位,保留有键值信息的低3位
JZ GRET ;全0,无键闭合,返回;非全0,确认有键闭合
JB Acc.0,KA0 ;转0#键功能程序
JB Acc.1,KA1 ;转1#键功能程序
JB Acc.2,KA2 ;转2#键功能程序
GRET:RET
KA0: LCALL WORK0 ;执行0#键功能子程序
RET
KA1: LCALL WORK1 ;执行1#键功能子程序
RET
KA2: LCALL WORK2 ;执行2#键功能子程序
RET
按图9-13(b)编程如下:
KEYB:ORL P1,#07H ;置P1.0~P1.2为输入态
MOV A,P1 ;读键值,键闭合相应位为1
ANL A,#00000111B ;屏蔽高5位,保留有键值信息的低3位
JZ GRET ;全0,无键闭合,返回
LCALL DY10ms ;非全0,有键闭合,延时10ms,软件去抖动MOV A,P1 ;重读键值,键闭合相应位为1
ANL A,#00000111B ;屏蔽高5位,保留有键值信息的低3位
JZ GRET ;全0,无键闭合,返回;非全0,确认有键闭合JB Acc.0,KB0 ;转0#键功能程序