- 3
- 0
- 约5.49千字
- 约 34页
- 2017-11-28 发布于湖北
- 举报
数码显示和键盘接口
第8章 数码显示和键盘接口 8.1 数码显示 8.2 键盘接口 8.2 键盘接口 键盘是计算机不可缺少的输入设备,用户可通过键盘向单片机系统输入指令和数据等,是实现人机对话的枢纽。 8.2.1 键盘的工作原理 1. 按键输入的特点 键盘实质上是一组按键开关的组合。通常使用的是机械弹性开关,利用机械触点的通断,实现按下时开关导通,释放时开关断开的功能。 按键触点的一端和单片机的I/O端口引脚连接,另一端与电压信号相连,触点的通断即可引起端口引脚上的电压变化,单片机通过程序读入I/O端口引脚电平信号便可判断按键的状态。如图1所示。 抖动时间长短与开关的机械特性有关,一般为5~10ms。这种抖动对于人来说是感觉不到的,但对计算机来说,则是完全可以感应到的,因为单片机处理的速度是在微秒级。在实际工作中,按键有时灵,有时不灵,实际上可能是这个因素引起的,你只按了一次按键,可是计算机却已执行了好几次任务。 按键的稳定闭合期,由操作人员的按键动作所决定,一般为十分之几秒到几秒不等。 2.按键抖动的处理措施(去抖动处理) 为了能够使CPU能正确地读出与按键相连的I/O端口的状态,并对每一次按键只作一次按键输入处理,就必须去除抖动影响。常用的去抖动方法有两种:硬件方法和软件方法。 1)滤波消除抖动 这种电路是利用RC电路的充放电特性,通过调整RC的值选择合适的时间常数,将按键抖动信号消除。适用于按键数目较少的情况下。 2).软件消抖 在按键数目较多的情况下一般采用软件延时的方法,即在单片机获得P1.7口为低的信息后,不是立即认定S已被按下,而是延时10~20ms时间后再次检测P1.7口,如果仍为低,说明S键的确按下了,避开了按键按下时的抖动时间。并且在检测到按键释放后(P1.7为高)再延时10~20ms,消除后沿的抖动,然后再对键值处理。 当然,实际应用中,对按键的要求也是千差万别,要根据不同的需要来编制处理程序。 8.2.2 独立式键盘及其接口程序 1. 独立式键盘接口 独立式按键是指直接用I/O口线构成的单个按键电路。每个独立式按键单独占有一根I/O口线,每根I/O口线上的按键工作状态不会影响其他I/O口线上的工作状态。最简单的独立式键盘结构如图3(a)所示,每个按键的输出连接到单片机的某个端口引脚上,当某个按键按下时,对应的输出为0,断开时输出为1. 图3中为独立式按键电路,通过I/O口连接,将每个按键的一端接到单片机的I/O口,另一端接地,这是最简单的方法。图中3个按键分别与P1.2~P1.0相连。对于这种按键程序可以采用不断查询的方法,功能就是:检测是否有键闭合,如有键闭合,则P1.2~P1.0有一只引脚为低电平,否则全为高电平;然后延时去抖动,判断键号并转入相应的键处理程序。 通常按键输入都采用低电平有效,图中上拉电阻保证了按键断开时,I/O口有确定的高电平。 2. 独立式按键的软件实现 1).按键的识别 按键的识别指找出被按下的键盘,一个完整的键盘识别程序主要包含以下几个步骤: ① 键盘扫描,测试是否有键按下。 ② 有键按下后,延时去抖动。 ③ 确定有键按下,进行键处理得到键值。 ④ 等待键释放,保证键的一次闭合仅进行一次处理,避免多键、串键。 AJ: MOV A,P1 ANL A,#0FH CJNE A,#0FH,AJSM SJMP AJOUT AJSM: MOV 40H,A LCALL DLY MOV A,P1 ANL A,#0FH CJNE A,40H,AJOUT XRL A,#0FH MOV 50H,A AJSF: MOV A,P1 ANL A,#0FH CJNE A,#0FH,AJSF LCALL DLY MOV A,P1 ANL A,#0FH CJNE A,#0FH,AJSF AJOUT: RET 独立式按键电路配置灵活,软件结构简单,但每个按键必须占用一根I/O口线,在按键数量较多时,浪费较大,此一般适用于按键数量不多的情况。 8.2.3 行列式键盘(也称矩阵式键盘)接口设计 1. 行列式键盘工作原理 在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式,如图4所示行列式键盘,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。这样,本来一个端口(如P1口)最多只有
原创力文档

文档评论(0)