第九章 显示器及键盘接口

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第十章显示器及键盘接口

§10.1 显示器接口

一.LED原理简述

LED显示块是用发光二极管显示字段,单片机应用系统常用的是七段LED,如下图,它有其阴极和共阳极两种:

a

c

e

f

g

共阴极共阳极例如,要显示‘0’字符,对于共阴极管应输出段码:

h g f e d c b a a

0 0 1 1 1 1 1 1

3 F H f b

g

e c

对于共阳极管则应输出段码: d h.

h g f e d c b a

1 1 0 0 0 0 0 0 C 0 H

共阳极管和共阴极管的段码是互为补码的。

二.动态显示的七段LED基本用法:

1.动态显示的七段LED与单片机的硬件接口

扩展显示器接口实质是输出口的扩展,例如设计一个6位的数码管显示系统,它需要扩充两个8位输出口,一个输出8段码,一个输出位选码。如下图:

由图可知,要显示哪个字符,该字符的段码从1#377输出,要使1#377输出只要A0 = 0即可,因此1#377的地址为FEH。该段码输出到6个数码管上是相同的,要哪个管亮,必须使该管的相应段二极管导通,则由2#377输出的位码控制,对应哪个管为0,则该管可以亮。要使2#377输出只要A1 = 0,2#377的地址为FDH。

在软件设计上将6个LED管轮流点亮,每管延时约1Ms,利用人的视觉残留,则可以看成持续点亮。

2.动态显示的软件设计:

要点:①代码转换:直接驱动7段LED发光的是段码,而我们习惯的是字符0、1、2、…F等,因此软件中必须将待显示

的字符转换成段码。

②每次只能输出同样的段码,因此要使某管亮,必须用软

件保证逐位轮流点亮并适当延时,给人的眼睛产生持续

发光的效果。

程序中使用的显示缓冲区示意图:

显示缓冲区共6个单元,自左至右一一对应6个数码管,其中存放待显示字符在段码表中的查表偏移量。

程序如下:

ORG 8100H

DISUP: MOV R0 , #79H ;置显示缓冲区首地址

MOV R2 , #0DFH ;11011111 位码初值,最左面管亮DSP1: MOV A , @R0

MOV DPTR , #TABL

MOVC A , @A+DPTR ;查表求段码

MOV R1 , #0FEH ;选1#377

MOVX @R1 , A ;送段码

MOV R1 , #0FDH ;选2#377

MOV A , R2

MOVX @R1 , A ;输出位码,最左面管亮

LCALL D1ms ;延时

1NC R0 ;指向显示缓冲区的下一地址

MOV A , R2

RR A ;位码右移一位

MOV R2 , A

XRL A , #7FH ;位码右移6次后为7FH时6

管全显示完

JNZ DSP1 ;不为7FH则未显示完,返回

送下一个LED

RET

TABL: 段码转换表略

D1ms: 延时子程序略

三.LED静态显示

在静态显示方式中,数码管的共阴极或共阳极接地或十5V,每一个数码管的8段码需扩展一个8位输出口与之相连接,输出口可将令该管显示某字符的段码锁存,同一时间里,每一位的段码均可不同,即显示不同字符。如图:

静态显示方式中,有N位数码管则需扩展N个8位输出口,占用I/O资源较多。它的优点是软件不必动态扫描,送出段码后可锁存,直到需更改显示字符,软件简单,同时由于始终保持显示而亮度较好。

P160页中的串行口扩展也可用于静态显示的扩展。

§10.2 按键、键盘及其接口

在单片机应用系统中,为了控制系统的工作状态,或向系统内部输入数据,常设有按键或键盘,使用这些键的开关状态来设置控制功能或输入数据。

键盘的扩展实质是输入口的扩展。

一.键输入过程及软件结构:

当所设置的数字键或功能键按下的时候,单片机应用系统应能完成该键所设定的功能。因此,键输入的信息与软件结构密切相关。不少应用系统键扫描程序是应用程序的核心部分。键输入程序的软件框图大致如下:

CPU通过查讯或中断方式扫描有无键按下及哪一键按下,将键号送入A,根据A的内容跳转到该键所应完成的功能的程序中去,键处理完毕后再回到键扫描程序,查找有无另一键按下。

二.键输入接口与软件应解决的问题:

1.保证键开关状态的可靠输入

键是一种常开式按钮开关,按键和键盘都是利用机械触点的闭合和断开来输入电平信号的,在键的闭合和断开的瞬间的有抖动过程,会出现一系列负脉冲,一般为5~10ms ,为了保证CPU 对键的一次闭合只进行一次键处理,必须消除抖动的影响。

通常去抖动措施可分别采用硬件和软件两种方法来解决,硬件的方法是在按键的硬件电路上增加RS触发器或单稳态电路,这需要增加硬件开销。较为方便的软件去抖措施是当检测到有键按下时,执行一个延时10ms的子程序,而后再检测该键是否仍保持闭合状态,若仍闭合才确认为该键按下。

2.对所有按键进行编码,确定键值或直接确定键号。

给每一按键确定一个键值或编号,当CPU扫描键盘时,可根据接收到的键输入信息确定是哪一个键按下。

3.选择键盘监测方法:

在应用系统软件中,键扫描程序、键处理程序只是应用程序的一部分,在程序运行过程中什么时候查询键输入的情况,可有查询方式和中断方式两种:

①查询方式

在程序中以一定的时间间隔扫描键盘输入的情况,无键按下则可执行其它程序,有键按下则执行键处理程序。

②中断方式

中断方式是当有键按下时引起中断,在中断服务程序中进行键处理,无键按下时CPU不必顾及键盘的工作情况。一般在键盘使用不多的情况采用中断方式。

4.编制好键盘处理程序:

它应解决如下问题:

①扫描有无键按下。

②有键按下时,若无硬件去抖措施应以软件延时去抖动。

③有可靠的逻辑处理,保证一次只处理一个键,一次键按下

只进行一次键处理。

④输出确定的键号,一个键按下后能准确跳转到该键的处理

程序,处理结束后再返回键扫描。

三.独立式按键结构:

指直接用I/O线构成的单个按键电路。每一键互相独立地各自接通一条输入线,每根I/O线上的按键工作状态不影响其它I/O线的工作状态,此亦称非编码键盘结构。如下图:

相关文档
最新文档