22 键盘接口技术
- 格式:ppt
- 大小:156.50 KB
- 文档页数:32
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★作者:周兴华键盘接口技术及C51编程键盘是单片机不可缺少的输入设备,是实现人机对话的纽带。
键盘按结构形式可分为非编码键盘和编码键盘,前者是用软件方法产生键码,而后者则用硬件方法来产生键码。
在单片机中使用的都是非编码键盘,因为非编码键盘结构简单、成本低廉。
非编码键盘的类型很多,常用的有独立式键盘、行列式键盘等。
19.1 独立式键盘独立式键盘是指将每个按键按一对一的方式直接连接到I/O 输入线上所构成的键盘,如图19-1所示。
图19-1在图19-1中,键盘接口中使用多少根I/O 线,键盘中就有几个按键。
键盘接口使用了8根I/O 口线,该键盘就有8个按键。
这种类型的键盘,键盘的按键比较少,且键盘中各个按键的工作互不干扰。
因此,用户可以根据实际需要对键盘中的按键灵活地编码。
最简单的编码方式就是根据I/O 输入口所直接反映的相应接键按下的状态进行编码,称按键直接状态码。
假如图l 中的K0键被按下,则P1口的输入状态是11111110,则K0键的直接状态编码就是FEH 。
对于这样编码的独立式键盘,CPU 可以通过直接读取I/O 口的状态来获取按键的直接状态编码值,根据这个值直接进行按键识别。
这种形式的键盘结构简单,按键的识别容易。
独立式键盘的缺点是需要占用较多的I/O 口线。
当单片机应用系统键盘中需要的按键比较少或I/O 口线比较富余时,可以采用这种类型键盘。
19.2 行列式键盘★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★行列式键盘是用n 条I/O 线作为行线,m 条I/O 线作为列线组成的键盘。
在行线和列线的每一个交叉点上,设置一个按键。
这样,键盘中按键的个数是mxn 个。
这种形式的键盘结构,能够有效地提高单片机系统中I/O 口的利用率。
键盘接口技术♦线反转连接方式♠电路特点:列线和行线都通过上拉电阻连接到VCC♠使用特点:先令行线作为输出口线,列线作为输入口线再令列线作为输出口线,行线作为输入口线♠编程特点:①行线输出全“0”,查列线是否有“0”,若有进入②②列线输出全“0”,查行线是否有“0”,找到对应按键。
3. 键盘接口功能●键扫描,判定是否有键按下●键识别,判定按键位置●产生闭合按键键码(键值)●去抖动♦开关动作示意前后沿抖动时间<20ms稳定时间>100ms♦去抖动硬件电路双稳态消抖电路4. 独立按键接口设计♠并行口扩展三个独立按键●硬件设计●软件设计(按键识别及处理子程序)ORG 2000HKEYS:MOV P1, # 0FFH ; 置P1口为输入态MOV A , P1; 读键值CPL A ; 取反ANL A , # 00000111B ; 屏蔽高5位JZ GORET ; A=0, 说明无键闭合,返回LCALL DELAY ; 有键闭合,延时去抖JB ACC.0, KEY0; (ACC.0 = 1) S0 按下JB ACC.1, KEY1; (ACC.1 = 1) S1 按下JB ACC.2, KEY2; (ACC.2 = 1) S2 按下GORET:RETKEY0:LCALL S0AJMP GORETKEY1: LCALL S1AJMP GORETKEY2:LCALL S2AJMP GORETEND●关键语句分析若没有任何键按下,则P1口及读进累加器A的内容为:取反后的结果为:同数据00000111B相与后的结果为:●8个独立按键连接的通用软件结构-分支结构START:MOV P1, #0FFHMOV A, P1CPL AJZ STARTJB ACC.0, KEY0JB ACC.1, KEY1JB ACC.2, KEY2JB ACC.3, KEY3JB ACC.4, KEY4JB ACC.5, KEY5JB ACC.6, KEY6SJPM KEY7KEY0 :…LJMP STARTKEY1 :…LJMP STARTKEY7 :…LJMP STARTEND● 8独立按键连接的通用软件结构—子程序嵌套结构 KEYS: MOV P1, #0FFH MOV A, P1CPL AJZ GORETJB ACC.0, KEY0 JB ACC.1, KEY1 JB ACC.2, KEY2 JB ACC.3, KEY3 JB ACC.4, KEY4 JB ACC.5, KEY5 JB ACC.6, KEY6JB ACC.7, KEY7GORET: RETKEY0 : LCALL SUB0 AJMP GORET KEY1 : LCALL SUB1 AJMP GORET KEY7 : LCALL SUB7 AJMP GORET SUB0 : …RETSUB1 : …SUB7 : RETEND♠利用外中断信号输入口线扩展两个独立按键A8H88HB8H主程序中的设置MAIN:SETB EA ; 开放中断总开关SETB EX0 ;INT0开放中断SETB EX1 ;INT1开放中断CLR IT0 ;设INT0电平触发,低有效CLR IT1 ;设INT1电平触发,低有效SETB PX0 ; 设INT0中断优先级为高优先级SETB PX1 ;设INT1中断优先级为高优先级这种方法的特点是: 不需进行键扫描,速度快,但由于外中断源个数有限,只适合于按键极少且外中断源无它用的情况下使用。