可编程计算机键盘显示器接口电路设计_第1页
可编程计算机键盘显示器接口电路设计_第2页
可编程计算机键盘显示器接口电路设计_第3页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、可编程计算机键盘显示器接口-电路设计可编程计算机键盘显示器接口电路设计第一章引言随着信息技术和互联网的飞速发展,以及计算机、通讯、数码产品等领域已经来临。嵌入式设备是数字化时代的主流产品,嵌入式软件是数字 化产品的核心,作为嵌入式软件的基础和关键,嵌入式操作系统在产业发 展过程中扮演着越来越重要的角色,应用遍及工业自动化、网络通信、航 天等领域。可编程计算机键盘显示器接口电路设计就是采用一种8279单片机芯片。本设计采用8279单片机为控制芯片,8279是一种专用于键盘显示可编程器的接口电路,能对键盘自动扫描,给出闭合健的键码,能自动向数码管显示器输出显示代码和位代码。其中键盘接口电路可与64

2、键点阵式键盘连接,具有二键封锁或N键巡回功能,可自动消除按键抖动。显示器接口电路可与8或16位数码管显示器连接,8279与键盘、显 示器的连接,其中包括一个8键盘和8位LED显示器,代码驱动器选用8708, SL2SL0信号译码器选用74LS138,时钟信号由单片机的ALE提供。在振荡 器频率为12MHZ寸ALE输出频率为2MHZ 8279选择2键封锁、编码扫描方 式,显示器左端输入。第二章LED显示器的结构与原理 显示器常作为单片机系统中最简单的输出设备,用以显示单片机系统的运 行结果与运行状态等。常用的显示器主要有LED数码显示器、LCD液晶显示 器和CRTS示器。在单片机系统中,通常用

3、LED数码显示器显示各种数字 或符号。由于它具有显示清晰、亮度高、使用电压低、寿命长的特点,因 此使用非常广泛。本节以LED为例,介绍其结构、工作原理及与单片机的 接口技术。LED显示器的结构与原理LED显示器是由发光二极管显示字段的显示器件, 也可称为数码管。单片机 系统中通常使用8段LED数码显示器,其外形及引脚如图1(a)所示,由 图可见8段LED显示器由8个发光二极管组成。其中7个长条形的发光二 极管排列成“日”字形,另一个圆点形的发光二极管在显示器的右下角作 为显示小数点用,通过不同的组合可用来显示各种数字,包括AF在内的部分英文字母和小数点“”等字样。LED显示器有两种不同的形式:

4、一种是 8个发光二极管的阳极都连在一起 的,称为共阳极LED显示器;另一种是8个发光二极管的阴极都连在一起 的,称为共阴极LED显示器。如图1 (b)所示。共阴和共阳结构的LED显示器各笔划段名和安排位置是相同的,当二极管 导通时,相应的笔划段发亮,由发亮的笔划段组合从而显示各种字符。 8 个笔划段 dpgfedcba 对应于 1B( 8 位)的 D7、 D6、 D5、 D4、 D3、 D2、 D1、 DO,于是用8位二进制码就可以表示欲显示字符的字形代码。例如,对于共阴极LED显示器,当公共阴极接地(为零电平),而阳极 dpgfedcba各 段为01110011时,显示器显示“ P”字符,即

5、对于共阴极LED显示器,“P” 字符的字形码是0>73。如果是共阳极LED显示器,公共阳极接高电平,显 示“P'字符的字形代码应为10001100 (0x8C)。这里必须注意的是:很多 产品为方便接线,常不按规则的方法去对应字段与位的关系,这时字形码 就必须根据接线自行设计了。2 com a bI I 1 I Ic d com c dpcnmOGND共阴极&段数码汁妃示器com(»共阳极&段数码怦显示器图丄8段LED数码显示器LED显示器的显示方法有静态显示与动态显示两种,下面分别予以介绍编辑11.L ED静态显示接口数码管工作在静态显示方式时,共阴极(

6、共阳极)的公共端COMH接在一起接地(电源)。每位的段选线与一个 8位并行口相连。只要在该位的段选线上保持段选码电平,该位就能保持相应的显示字符。这里的8位并行口可以直接采用并行I/O接口片(例如80C51的P1端口、8155和8255的 I/O端口等),也可以采用串行输入/并行输出的移位寄存器。考虑到若采 用并行I/O接口,占用I/O资源较多,因而静态显示方式常采用串行接口 方式,外接8位移位寄存器74HCI64构成显示电路,图2是通过串行口扩 展8位LED显示器静态驱动电路,在TXD(P3.1)运行时钟信号,将显示数据 由RXD(P3.0) 口串行输出,串行口工作在移位寄存器方式(方式0)

7、。图上串行扩展8位LED显示器静态驱动电路图2中使用的是共阴极数码管,因而各数码管的公共极COMS接地,要显示某字段,则相应的移位寄存器 74HC164的输出线必须是高电平。显然,要显示某字符,首先要把这个字符转换成相应的字形码,然后再通过串行口发送到74HC164 74HC164把串行口收到的数变为并行输出加到数 码管上。先建立一个字形码表,以十六进制数的次序存放它们的相应字形码,共阴 极字形码表如表1所示mi共阴极宇形码表显示字符宇形码显示宇符宇形码0OsJ fA0x?710x06B0x5bC0x3930x-4fD0x5c40x66E5F0x71<50x7 dP(MFU0x3c$0x

8、7 f8Osff90s6f灭0x002. LED动态扫描显示接口LED动态显示的基本做法在于分时轮流选通数码管的公共端,使得各数码管 轮流导通,在选通相应LED后,即在显示字段上得到显示字形码。这种方 式不但能提高数码管的发光效率,而且由于各个数码管的字段线是并联使 用的,从而大大简化了硬件线路。动态扫描显示接口是单片机系统中应用最为广泛的一种显示方式。其接口电路是把所有显示器的8个笔划段adp同名端并联在起,而每一个显示 器的公共极COM是各自独立地受I/O线控制。CPU向字段输出口送出字形码 时,所有显示器由于同名端并连接收到相同的字形码,但究竟是哪个显示 器亮,则取决于COM端,而这一端

9、是由I/O控制的,所以就可以自行决定 何时显示哪一位了。而所谓动态扫描是指采用分时的方法,轮流控制各个 显示器的COM端,使各个显示器轮流点亮在轮流点亮扫描过程中,每位显示器的点亮时间是极为短暂的(约1mS ,但由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位显示 器并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的 显示数据,不会有闪烁感。图3是一个典型的动态扫描8位LED显示接口电路。该电路由74HC245提供段adp的驱动,74LS145提供位COMGCOM的驱动。请注意89C52的P0.0P0.7每个口线上有1个10kW的上拉电阻,图中未示出。图3动态扫描显示接口

10、电路3. LEDS示器接口 :丄ED原理简述LED显示块是用发光二极管显示字段,单片机应用系统常用的是七段LED如下图,它有其阴极和共阳极两种:+5Vaafbbgcedcdh eOhch<b<b共阴极共阳极例如,要显示 O'字符,对于共阴极管应输出段码:h g f e d c b aa0 0 1 1 1 1 1 13 F Hf bII对于共阳极管则应输出段码:d h.h g f e d c b a11 0 0 0 0 0 0 C 0 H共阳极管和共阴极管的段码是互为补码的。二.动态显示的七段LED基本用法:1.动态显示的七段LED与单片机的硬件接口扩展显示器接口实质是输出口

11、的扩展, 例如设计一个6位的数码管显示系统,它需要扩充两个8位输出口,一个输出8段码,一个输出位选码。如下图:+5V1D1Q8D1#377CLK8 8 8 8 8 8AOFEHWRFDHA1CLKE+5V)1Q2#3778D 8Q由图可知,要显示哪个字符,该字符的段码从 1#377输出,要使1#377输出 只要A0 = 0即可,因此1#377的地址为FEH该段码输出到6个数码管上是 相同的,要哪个管亮,必须使该管的相应段二极管导通,则由 2#377输出的 位码控制,对应哪个管为0,则该管可以亮。要使2#377输出只要A1 = 0, 2#377的地址为FDH在软件设计上将6个LED管轮流点亮,每

12、管延时约1Ms利用人的视觉残留, 则可以看成持续点亮。2.动态显示的软件设计:要点:代码转换:直接驱动7段LED发光的是段码,而我们习惯的是字符0、1、2、F等,因此软件中必须将待显示的字符转换成段码。每次只能输出同样的段码,因此要使某管亮,必须用软件保证逐位轮流点亮并适当延时,给人的眼睛产生持续发光的效果。程序中使用的显示缓冲区示意图:01020304050679H 7AH 7BH 7CH 7DH 7EH显示缓冲区共6个单元,自左至右在段码表中的查表偏移量。程序如下:对应6个数码管,其中存放待显示字符ORG 8100HDISUP: MOV R0 , #79H;置显示缓冲区首地址MOV R2

13、, #0DFH ;11011111位码初值,最左面管亮DSP1: MOV A , R0MOV DPTR , #TABLMOVC A , A+DPTR ;查表求段码MOV R1 , #0FEH ;选 1#377MOVX R1 , A ;送段码MOV R1 , #0FDH ;选 2#377MOV A , R2MOVX R1 , A ;输出位码,最左面管亮LCALL D1ms;延时1NC R0 ;指向显示缓冲区的下一地址MOV A , R2RR A ;位码右移一位MOV R2 , AXRL A , #7FH;位码右移6次后为7FH时6管全显示完JNZ DSP1;不为7FH则未显示完,返回送下一个 L

14、EDRETTABL: 段码转换表略D1ms: 延时子程序略三丄ED静态显示在静态显示方式中,数码管的共阴极或共阳极接地或十5V,每一个数码管的8段码需扩展一个8位输出口与之相连接,输出口可将令该管显示某字符 的段码锁存,同一时间里,每一位的段码均可不同,即显示不同字符。如图:1#3772#3773#3774#377静态显示方式中,有N位数码管则需扩展N个8位输出口,占用I/O资源较多。它的优点是软件不必动态扫描,送出段码后可锁存,直到需更改显示 字符,软件简单,同时由于始终保持显示而亮度较好第三章键盘接口在单片机应用系统中,为了控制系统的工作状态,或向系统内部输入数据, 常设有按键或键盘,使用

15、这些键的开关状态来设置控制功能或输入数据。键盘的扩展实质是输入口的扩展。二键输入过程及软件结构:当所设置的数字键或功能键按下的时候,单片机应用系统应能完成该键所设定的功能。因此,键输入的信息与软件结构密切相关。不少应用系统键扫描程序是应用程序的核心部分。键输入程序的软件框图大致如下:NO有键按下?/YES判哪一键按下 求键值A0#键处理程序1#键处理程序CPU通过查讯或中断方式扫描有无键按下及哪一键按下,将键号送入A,根据A的内容跳转到该键所应完成的功能的程序中去,键处理完毕后再回到键 扫描程序,查找有无另一键按下。二. 键输入接口与软件应解决的问题:1. 保证键开关状态的可靠输入键是一种常开

16、式按钮开关,按键和键盘都是利用机械触点的闭合和断开来输入电平信号的,在键的闭合和断开的瞬间的有抖动过程,会出现一系列负脉冲,一般为510ms,为了保证CPU对键的一次闭合只进行一次键 处理,必须消除抖动的影响。通常去抖动措施可分别采用硬件和软件两种方法来解决,硬件的方法是在按键的硬件电路上增加 RS触发器或单稳态电路,这需要增加硬件开销。较为方便的软件去抖措施是当检测到有键按下时,执行一个延时10ms的子程序,而后再检测该键是否仍保持闭合状态,若仍闭合才确认为该键按下。2. 对所有按键进行编码,确定键值或直接确定键号。给每一按键确定一个键值或编号,当 CPU扫描键盘时,可根据接收到的键输入信息

17、确定是哪一个键按下。3. 选择键盘监测方法:在应用系统软件中,键扫描程序、键处理程序只是应用程序的一部分, 在程序运行过程中什么时候查询键输入的情况,可有查询方式和中断方式 两种: 查询方式 在程序中以一定的时间间隔扫描键盘输入的情况, 无键按下则可执行 其它程序,有键按下则执行键处理程序。 中断方式 中断方式是当有键按下时引起中断,在中断服务程序中进行键处理,无键按下时CPU不必顾及键盘的工作情况。一般在键盘使用不多的情况 采用中断方式。4. 编制好键盘处理程序:它应解决如下问题: 扫描有无键按下。 有键按下时,若无硬件去抖措施应以软件延时去抖动。 有可靠的逻辑处理,保证一次只处理一个键,一

18、次键按下只进行一 次键处理。 输出确定的键号,一个键按下后能准确跳转到该键的处理程序,处理结束后再返回键扫描。三. 独立式按键结构:指直接用I/O线构成的单个按键电路。每一键互相独立地各自接通一条输入线,每根I/O线上的按键工作状态不影响其它I/O线的工作状态,此亦称非编码键盘结构。如下图:+5VP1.0P1.1P1.2P1.3110 11 18031K3K2K1P1.0P1.1P1.2P1.38031KO(a)查询式电路查询I/O输入线0有效即为0者该线上键闭合INTO+5VK3多输入与门2K1K0(b)中断式电路任一键按下则INT0触发中断在中断服务程序中查询哪一键按下独立式按键结构的优点

19、是配置灵活, 软件简单, 缺点是使用 I/O 口线多,适于 按键数量不多时使用。独立式按键的软件结构:STRAT:MOV A,#0FFHMOV P1 , A;置 P1 口输入方式MOV A , P1;键状态输入JNB ACC.0 , P0 ;0号键按下转JNB ACC.1 , P1JNB ACC.2 , P2JNB ACC.3 , P3LJMP START键处理程序略 注:该程序中未包括软件去抖措施,实际应用中应考虑去抖动处理四. 行列式键盘结构:1.键盘工作原理:如图3+5VP1.7P1.67BP1.5/2 /00行/65/4 1/行11A9 / 82/行F E D / C / 行P1.43

20、列P1.3 2列P1.21列P1.1P1.0用I/O 口线组成行列式结构,按键设置在行列的交叉点上,2>2的键盘结构可构成4个键的键盘,4>4的键盘结构可构成16个键的键盘。键扫描的过程: 判断有无键按下列线输出全0码(D0D3),将行线状态读入累加器 A(D4D7),若读入状态不全为1则有键按下,否则无键按下。 当有键按下时,判断哪一键按下:由列线逐列置0,检查行输入状态。例如列线输出 D3-D0为1110,即D0=0, 读入行线状态D7D4,若为0111,即D7=Q则可判断为0键按下,若此时读 出行线状态为全1,则本列无键按下,即0、4、8 C均未按下。接着再将下 一列线置0输

21、出,检查下一列键是否有键按下,直到每一列均查完为止。键盘上每一个键均有一个唯一的键值,一般用直接赋值方法定义键值,每个键的键值为当它按下时,键扫描程序的列码和行码按一定顺序由二进制数排列。例如当0键按下时,键扫描程序输出的列码为 1110,读入的行码为0111,将 它们按D7D0的顺序排列为:01111110,则0键的键值定义为7EH类似的方 法可得到:1键的键值为7DH4键的键值为BEHF键的键值为E7H键扫描程序中只要将列码输出,再读入行码,然后将行列码拼接,与键值比较, 即可确定为哪一键按下。键扫描的方式可采取编程扫描、定时扫描或中断方式定时器中断原理:中断的原理 有关中断的概念 什么是

22、中断,我们从一个生活中的例子引入。你正在家中看书,突然电话铃 响了,你放下书本,去接电话,和来电话的人交谈,然后放下电话,回来继续看 你的书。这就是生活中的“中断”的现象,就是正常的工作过程被外部的事件打 断了。仔细研究一下生活中的中断, 对于我们学习单片机的中断也很有好处。 第一、什么可经引起中断,生活中很多事件可以引起中断:有人按了门铃 了,电话铃响了,你的闹钟闹响了,你烧的水开了.等等诸如此类的事件, 我们把可以引起中断的称之为中断源,单片机中也有一些可以引起中断的 事件, 8031中一共有 5 个:两个外部中断, 两个计数 / 定时器中断,一个串 行口中断。第二、中断的嵌套与优先级处理

23、:设想一下,我们正在看书,电话铃响 了,同时又有人按了门铃,你该先做那样呢?如果你正是在等一个很重要 的电话,你一般不会去理会门铃的,而反之,你正在等一个重要的客人, 则可能就不会去理会电话了。如果不是这两者(即不等电话,也不是等人 上门),你可能会按你通常的习惯去处理。总之这里存在一个优先级的问 题,单片机中也是如此,也有优先级的问题。优先级的问题不仅仅发生在两个中断同时产生的情况,也发生在一个中断已产生,又有一个中断产生 的情况,比如你正接电话,有人按门铃的情况,或你正开门与人交谈,又 有电话响了情况。考虑一下我们会怎么办吧。第三、中断的响应过程:当有事件产生,进入中断之前我们必须先记住

24、现在看书的第几页了,或拿一个书签放在当前页的位置,然后去处理不同 的事情(因为处理完了,我们还要回来继续看书):电话铃响我们要到放 电话的地方去,门铃响我们要到门那边去,也说是不同的中断,我们要在 不同的地点处理,而这个地点通常还是固定的。计算机中也是采用的这种 方法,五个中断源,每个中断产生后都到一个固定的地方去找处理这个中 断的程序,当然在去之前首先要保存下面将执行的指令的地址,以便处理 完中断后回到原来的地方继续往下执行程序。具体地说,中断响应可以分 为以下几个步骤: 1、保护断点,即保存下一将要执行的指令的地址,就是 把这个地址送入堆栈。 2、寻找中断入口,根据 5 个不同的中断源所产

25、生的 中断,查找 5 个不同的入口地址。以上工作是由计算机自动完成的,与编 程者无关。在这 5 个入口地址处存放有中断处理程序(这是程序编写时放 在那儿的,如果没把中断程序放在那儿,就错了,中断程序就不能被执行 到)。 3、执行中断处理程序。 4、中断返回:执行完中断指令后,就从中 断处返回到主程序,继续执行。究竟单片机是怎么样找到中断程序所在位置,又怎么返回的呢?我们稍后 再谈.MCS-51中断系统的结构:由与中断有关的特殊功能寄存器、中断入口、顺序查询逻辑电路等组成,包括5个中断请求源,4个用于中断控制的寄存器IE、IP、ECON SCON来控制中断 类弄、中断的开、关和各种中断源的优先级

26、确定。中断请求源:(1)外部中断请求源:即外中断 0和 1,经由外部引脚引入的,在单 片机上有两个引脚,名称为 I NT0、 I NT1 ,也就是 P3.2、P3.3 这两个引脚。 在内部的TCON中有四位是与外中断有关的。IT0 : INTO触发方式控制位,可由软件进和置位和复位,IT0=0,INTO为低 电平触发方式,IT0=1,INTO为负跳变触发方式。这两种方式的差异将在以 后再谈。IE0 : INTO中断请求标志位。当有外部的中断请求时,这位就会置1 (这由硬件来完成),在CPJ向应中断后,由硬件将IE0清0。IT1 、 IE1 的用途和 IT0、 IE0 相同。( 2)内部中断请求

27、源TF0:定时器T0的溢出中断标记,当T0计数产生溢出时,由硬件置位 TF0。当CPJ向应中断后,再由硬件将 TF0清0。TF1: 与 TF0类似。TI、RI :串行口发送、接收中断,在串口中再讲解。2、中断允许寄存器IE在MC&51中断系统中,中断的允许或禁止是由片内可进行位寻址的8位中断允许寄存器IE来控制的。见下表其中EA是总开关,如果它等于0,则所有中断都不允许ES-串行口中断允许ET1定时器1中断允许EX1外中断1中断允许。ET0-定时器0中断允许EX0-外中断0中断允许。如果我们要设置允许外中断1,定时器1中断允许,其它不允许,则IE可以是EAxxESET1EX1ET0EX

28、0100011100即8CH当然,我们也可以用位操作指令SETB EASETB ET1SETB EX1来实现它。3、五个中断源的自然优先级与中断服务入口地址外中断 0: 0003H定时器 0: 000BH外中断 1: 0013H定时器 1: 001BH串口 :0023H它们的自然优先级由高到低排列。写到这里,大家应当明白,为什么前面有一些程序一始我们这样写:ORG 0000HLJMP STARTORG 0030HSTART。这样写的目的,就是为了让出中断源所占用的向量地址。当然,在程 序中没用中断时,直接从0000H开始写程序,在原理上并没有错,但在实 际工作中最好不这样做。优先级:单片机米用

29、了自然优先级和人工设置咼、低优先级的策略, 即可以由程序员设定那些中断是高优先级、哪些中断是低优先级,由于只 有两级,必有一些中断处于同一级别,处于同一级别的,就由自然优先级 确定。开机时,每个中断都处于低优先级,我们可以用指令对优先级进行设置。 看表2中断优先级中由中断优先级寄存器IP来高置的,IP中某位设为1,相应 的中断就是高优先级,否则就是低优先级。例:设有如下要求,将TO、外中断1设为高优先级,其它为低优先级,求IP的值。IP的首3位没用,可任意取值,设为000,后面根据要求写就可以了xxxPSPT1PX1PT0PX000000110第四章8279的内部结构原Intel8279芯片是

30、一种通用的可编程序的键盘、 显示接口器件,单个芯片就 能完成键盘输入和LED显示控制两种功能。其内部结构如图6-10-1所示。8279包括键盘输入和显 示输出两个部分。键盘部分提供的扫描方式,可以和 64个按键或传感器的阵列相连。 能自动消除开关抖动以及N个键同时按下的保护。显示部分按扫描的方式工作。可以显示 8或16位LED显示块一、8279电路工作原理单片机系统中有两种LED显示方式,即静态显示和动态显示,静态显示的 优点是显示效果好,编程简单,但由于输出的每一位都需要锁存,使用的 硬件较多;动态显示方式中,各位数码管的 a-h端并连在一起,每一时刻只有一位数码管被点亮,各位依次轮流被点亮

31、,硬件电路简单,但由于需要不停地进行刷新显示,降低了 CPU勺效率,而且编程的工作量很大。为了解决动态显示中存在的问题, Intel 公司研制出了专用的键盘、显示器 接口电路芯片 8279,该芯片能自动完成对显示的刷新,同时还可以对键盘 自动扫描,识别闭合键的键号,使用非常方便。8279用A0来区分信息特征, 当A0为0时,CPU从8279读出的是状态,写入的是命令,且每个命令也有 自己的特征;当A0=1时读出和写入的都是数据。8279内部有两个缓冲区, 即一个8字节的FIFO(First In First Out )键盘RAM和一个16字节的显 示RAM显示数据时只要将待显示数据的段码写入显

32、示 RAM即可;当有键闭 合时, 8279 会自动执行去抖、得到键值、等待按键释放等操作,最后 , 将键 值存入FIFO RAM中,程序只需从FIFO中读取键值即可,编程十分简单,具 体实验线路图 17所示。POOFD.lPMP03P04FOJF0j6P0.7ALETO蔽im213912231T371436153516:IRQkO 0DFFFEH-OFFFFH nO336J?OL2 3 4567K dbdbdbdedbdbdbdbclkA0OUTBOOUTB1OUTB2RESET °11703OUTAOSHIFT OlITAlCNTL OUTA20LTTA3迪3?33342L卫292

33、2逅25241/9 tAz4EbJe引曰口bl- c. eJ 2Jl330 Kg图17键盘显示器芯片279实验连线图8279键盘、显示器接口器件是实现人机对话的主要部件,它已为广大用户 欢迎和广泛应用。然而在有些应用场合,既要键盘具有普通的数据输入和 控制功能,又要键盘具备按钮功能。例如,微机控制的注塑机,在手动控 制时需要有点动功能:按钮按下进行调模运动,按钮松开,调模运动停止。 本文介绍使8279构成的键盘具有以上功能的实现方法,供读者参考使用。为了使8279具有合适的键盘、显示功能,首先要对芯片初始化。可适 当地挑选8279的控制字,例如:使8279具有8位显示、右端输入、编码 键盘、双

34、键锁定时可选控制字10H.这时每次按键都将产生键特征码,并且 存放在FIFORO中,同时使8279的IRQ引脚变为高电平,可作为向 CPU申请中断信号,如果CPU是中断开放的,则转向中断服务程序,可在中断服 务程序中读取特征码。每当 CPU读取FIFORO中的数据后,8279自动撤消IRQ信号,IRQ引脚变为低电平。CPU返回主程序后,可由键特征码来决定 程序的流向。问题是,当 CPL从 8279的FIFORO中读取键特征码后,IRQ 虽然恢复底电平,但FIFOROh中的数据并没有消失,仍保存在里面,这时 即使使用对改8279清除的指令D3H也不能将FIFOROM中的数改变,只有 按其它键才能

35、改变FIFOROM的数据,因这样是无法实现按钮功能的。IMTiPC8031 議 °而P2. 1P2. 2 Fl T ALE为了使键盘具有按钮功能,应该利用 8279的传感方式功能,在传感器 方式中,8279每当检测到传感状态变化时,IRQ就变为高电平,图1是以 8031CPU勾成的系统为例,说明IRQ引脚电平的翻新过程。瓯A 3-010-7B5-0他阿qBLOCSBL1ACSLUCLKSLl8279 的IRQ端经反相器接到8031的INT1 端(即 P3.3 弓I脚)。先将8279设置成编码键盘,允许INT1中断,当键按下时,反相器输出低电平,CPU进入中断服务程序,读取键特征码后,

36、又为高电平。返回主程序后,转向功能程序(例如调模进)。输出控制信号 (例如 P1.0 为“ 1”时 调模进电磁阀得电) 后,将 8279 设置为传 感器方式,并且不允许 INT1 中断,然后调试 P3.3 是否为低电平。如 果按键松开,8279将测 出传感器状态发生变 化,而使IRQ由低电平 转为高电平。 也就是说 P3.3 脚为低电平时,按 键已经松开, 程序重新 设置 8279 为编码键盘, INT1 中断开放,以便使 键盘脱离按钮功能。实现以上功能的程序清单如下:根据结构框图,分别介绍各部分电路工作原理。1.I/O 控制及数据缓冲器数据缓冲器是双向缓冲器,连接内、外总线,用于传送CPI和

37、8279之间的命令或数据; I/O 控制线是CPU寸8279进行控制的引线。CS是8279的片选信号,CS=(时,8279才被 允许读出或写入信息。WR RD为来自CPU的控制信号。A o用于区别信息特性:Ao=1时,表示数据缓冲器输入为指令、输出 为状态字;A=0时,输入、输出皆为数据。2. 控制与定时寄存器及定时控制控制与定时寄存器用来寄存键盘及显示的工作方式,以及由CPU编程的其它操作方式。这些寄存器一旦接受并锁存送来的命令,就通过译码 产生相应的信号,从而完成相应的控制功能。定时控制包含基本记数键。首级计数器是一个可编程的 N级计数器。 N可以231之间由软件编程,以便 从外界时钟CL

38、K分频得到内部所需要的100KHZ寸钟。然后再经过分频为键 盘扫描提供适当的逐行扫描频率和显示扫描时间。3. 扫描计数器 扫描计数器有两种工作方式。按编码方式工作时,计数器作二进制记数。 4 位记数状态从扫描线 SL0SL3 输出,经外部译码器译码后,为键盘和显示器提供扫描线;按译码方式工作时,扫描计数器的最低二位被译码后,从 SL)SL3输出。因此,S9SL3 提供了 4中取1的扫描译码。4. 回复缓冲器、键盘去抖及控制来自RL0RL3勺8根回复线的回复信号,由回复缓冲器缓冲并锁存。在键盘工作方式中,回复线作为行列式键盘的行列输入线。在逐行列 输入时,在逐行列扫描时,回复线用来搜索每一行列中

39、闭合的键。当某一 键闭合时,去抖电路被置位,延时等待10ms后,再检验该键是否继续闭和, 并将该键的地址和附加的移位、控制状态一起形成键盘数据被送入 8279内 部FIFO (先进先出)存储器。键盘数据格式如下:D7D5D5D4D3D2D D0控制移位扫描回复控制和移位(8 D0的状态由两个独立的附加开关决定, 而扫描(D5D4、DO和回复(D、D、D0)则是被按键置位的数据。 圧D4、D3来自动扫描 计数器,是按下键的行列编码,而(D7D7D7)则来自行/列计数器,它们是 根据回复信号而确定的行/列编码。在传感器开关状态矩阵方式中,回复线的内容直接被送往和相应的传 感器RAM(即卩FIFO存

40、储器)。在选通输入方式中,回复线的内容在CNTL/STB线的脉冲上升沿被送入FIFO 存储器。5. FIFO/传感器及其状态寄存器FIFO/传感器RAM是一个双重功能的8X 8RAM在键盘或选通方式工作时,它是 FIFO存储器,其输入或读出遵循先 入先出的原则。FIFO状态寄存器用于存放FIFO的工作状态。例如,RAM! 满还是空;其中存有多少数据;是否操作出错等。当FIFO存储器不空,状态逻辑将产生IRQ=1信号向CPU申请中断。在传感器矩阵方式工作时,这个存储器以是传感器不是存储器。它存 放着传感器矩阵中的每一个传感器状态。在此方式中,若检索出传感器的 变化,IRQ信号变为高电平,向CPU

41、申请中断。6. 显示RAM和显示地址寄存器显示RAM用来存储显示数据。容量为16X8位。在显示过程中,存储的 显示数据轮流从显示寄存器输出。显示寄存器分别为A、B两组,OUTA3和OUTB3可以单独送数,也可以组成一个 8位的字。显示寄存器的输出与 显示扫描配合,不断从显示 RAM中读出显示数据,同时轮流驱动被选中的 显示器件,以达到多路复用的目的,使显示器件呈现稳定的显示状态。显示地址寄存器用来寄存由 CPU®行读/写显示RAM勺地址,它可以由 命令设定,也可以设置成每次读写或写入之后自动递减。二. 管脚、引线与功能8279 采用 40引脚封装,其管脚、引线功能如图 6-10-2

42、所示。其引脚 功能如下:D oD7 (数据总线):双向、三态总线,和系统数据总线相连;用于 CPU和8279间的数据/命令传递。CLK (系统时钟):输入线,为 8279提供内部时钟的输入端。RESET (复位):输入线,当 RESET=时,8279复位,其复位状态为:16 个字符显示;编码扫描键盘 - 双键锁定;程序时钟编码为 31 。CS (片选):输入线,当CS=O时8279被选中,允许CPU寸其读、写, 否则被禁止。A o (数据选择):输入线。当 Ao=1时CPU写入数据为命令字,读出数 据为状态字;Ao=O时CPU卖、写的字节均为数据。RD、WR(读、写信号):输入线。低电平有效,

43、来自 CPU勺控制信号, 控制 8279的读、写操作。IRQ (中断请求):输出线。高电平有效。在键盘工作方式中,当FIFO/传感器RAM存有数据时,IRQ为高电平。CPU每次从RAM中读出数据时,IRQ变为低电平。若RAM中仍有数据,则IRQ 再次恢复高电平。在传感器工作方式中,每当检测到传感器状态变化时,IRQ就出现高电 平。SL 0SL3 (扫描线):输出线。用来扫描键盘和显示器。它们可以编程 设定为编码( 4中取 1)或译码输出( 16取1)。RLoRL7 (回复线) :输入线。它们是键盘矩阵或传感矩阵的列(或 行)信号输入线。SHIFT (移位信号):输入线、高电平有效。该输入信号是

44、键盘数据的最高位(D7),通常用来扩充键开关的功能,作为控制功能键用在选通输入方式时,该信号的上升沿可将来自RLoRL7的数据存入FIFO RAM 中。在传感器输入下,该信号无效。OUTA oOUTA(A组显示信号):输出线。OUTB oOUTB(B组显示信号):输出线。这两组引线都是显示数据输出线,与多位数字显示的扫描线SLoSL3同步,两组可以独立使用,也可以合并使用。BD (显示消隐):输出线。低电平有效。该信号在数字切换显示或使 用消隐命令时,将显示消隐。三、命令格式与命令字8279 的操作方式是通过CPU对8279送入命令时来实现编程的。当数 据选择端Ao置1时,CPU对8279写入

45、数据为命令字,读出的数据为状态字。8279 共有八条命令。其功能及命令字定义分述如下。1.键盘/显示方式设置命令字命令格式:D 7 Ds D5 D4 D3 D2 D D0000DDKKK其中:D 7、p、D5=000方式设置命令特征位。D D ( CH、D):来设定显示方式,其定义如下:00: 8 个字符显示,左入口00:16 个字符显示,左入口00: 8 个字符显示,右入口00:16 个字符显示,右入口所谓左入口,即显示位置从最左一位(最高位)开始,以后逐次输入的显示字符逐个向右顺序排列; 所谓右入口,即显示位置从最右一位(最低位)开始,以后逐次输入的显示字符时,已有的显示字符逐个向左顺序移

46、动。KKK ( D2、 D1、D0):用来设定七种键盘、显示工作方式:000编码扫描键盘,双键锁定001译码扫描键盘,双键锁定010编码扫描键盘,N键轮回011译码扫描键盘,N键轮回100编码扫描传感器矩阵101译码扫描传感器矩阵110选通输入,编码显示扫描111选通输入,译码显示扫描双键锁定与 N 键轮回是多键按下时的两种不同的保护方式。双键锁定 为两键同时按下提供的保护方法。再消颤周期里,如果有两键同时按下, 则只有其中一个键弹起,而另一个键保持在按下位置时, 才被认可。N键轮 回为N键同时按下的保护方法。当有若干键按下时,键盘扫描能够根据发 现他们的顺序,依次将它们的状态送入 FIFO

47、RAM中2.程序时钟命令命令格式:D 7 Ds D5 D4 D3 D2 Di DoOO1PPPP其中:D 7、D5、Db=001为时钟命令特征位。PPPPP ( D4 D、C2、D、DO)用来设定外部输入 CLK端的时钟进行分频的分频数No N取值为231。例如外部时钟频率为2MHZ PPPPP被置为10100(N=2O,则对输入的外部时钟 20分频,以获得8279内部要求的1OOKMZ 的基本频率。3. 读FIFO/传感器RAM命令命令格式:D 7 Ds D5 D4 D3 D2 D DO其中:D 7住住=010为读FIFO/传感器RAM命令特征位。该命令字只在传感器方式时使用。在CPU卖传感

48、器RAM之前,必须使用这条命令来设定传感器 RAM 中的8个地址(每个地址一个字节)。AAA (D2、Di、D)为传感器RAM中的八个字节地址。AI(D4)为自动增量特征位。当 AI=1时,每次读出传感器RAM后地址自动加1使地址指针指向下一个存储单元。这样,下一个数据便从下一个 地址读出,而不必重新设置读 FIFO/传感器RAM命令。在键盘工作方式中,由于读出操做严格按照先入先出顺序,因此,不 需使用此命令。4. 读显示RAM命令命令格式:7 Ds D5 D4 D3 D2D D0其中:D 7D5D5 =011为读显示RAM命令字的特征位。该命令用来设定将要读出 的显示RAM地址。AAAA (

49、 D3、C2、Di、Dd)用来寻址显示 RAM命令字的特征位。由位显示RAM 中有16个字节单元故需要4位寻址。AI ( D4)为自动增量特征位。当AI=1时,每次读出后地址自动加1指 向下一地址。5. 写显示RAM命令命令格式:D 7D6D5DD3 D2D DO10 0 AI A AAA其中:D 7D5D5 =100为写显示RAM命令字的特征位。在写显示器 RAM之前用该 命令用来设定将要写入的显示 RAM地址。AAAA ( D3、D2、Di、Dd)为将要写入的存储单元地址。AI (D)为自动增量特征位。当 AI=1时,每次写入后地址自动加1指 向下一次写入地址。6. 显示禁止写入/消隐命令

50、特征位命令格式:D 7 Ds D5 D4 D3 D2 D D0101XIWIWBLBLABAB其中:D 7D5DB =101为显示禁止写入/消隐命令特征位。IW/A、IW/B( 8 D0为A、B组显示RAM写入屏蔽位。由于显示寄存器分成A、B两组,可以单独送数,故用两位来分别屏蔽。当A组的屏蔽位Db=1时,A组的显示RAM禁止写入。因此,从CPU写入显示器RAM数据时,不会 影响A的显示。这种情况通常在采用双 4位显示器时使用。因为两个双四 位显示器是相互独立的。为了给其中一个双四位显示器输入数据而又不影 响另一个四位显示器,因此必须对另一组的输入实行屏蔽。BL/A、BL/B(Di、D)为消隐

51、显示位。用于对两组显示输出消隐。若BL=1 时,对应组的显示输出被消隐。当 BL=0时,贝U恢复显示。7. 清除命令命令格式:D 7 D6 D5 Di D3 C2Di Do1 1 0 Cd Cd Cd CF CA其中:D 7D5D5 =110清除命令特征位。C dCDCD (D4D3D2用来设定清除显示RAM方式。共有四种消除方式,见表6-10-1。C f (Di)用来置空FIFO存储器,当=1时,执行清除命令后,FIFO RAM被 置空,使中断输出线复位。同时,传感器 RAM勺读出地址也被置0。CA ( D0)为总清的特征位。它兼有CD和CF的联合效能。在CD=1时,对显 示的清除方式由D、

52、D2的编码决定。清除显示RAM勺需160pS0在此期间FIFO状态时的最高位 D=1,表示显示无效。CPU不能向显示RAM写入数据8. 结束中断/错误方式设置命令命令格式:D 7 Ds D5 D4 D3 D2 Di Do11订二XXXX其中:D 7D5D5 =m 为该命令的特征位。此命令有两种不同的作用。(1) 作为结束中断命令。在传感器工作方式中使用。每当传感器状态出现变化时,扫描检测电路将其状态写入传感器RAM并启动中断逻辑,使IRQ变高,向CPU青求中断,并且禁止写入传感器 RAM此时,若传感器RAM 读出地址的自动递增特征没有置位(AI=0),则中断请求IRQ在CPU第一 次从传感器R

53、AMS出数据时就被清除。若自动递增特征已置位(AI=1 ),则CPU寸传感器RAM勺读出并不能清除IRQ,而必须通过给8279写入结束 中断/错误方式设置命令才能使IRQ变低。因此在传感器工作方式中,此命 令用来结束传感器RAM勺中断请求。(2) 作为特定错误方式设置命令。在 8279已被设定为键盘扫描N键轮 回方式以后,如果CPC给8279又写入结束中断/错误方式设置命令(E=1), 则8279将以一种特定的错误方式工作。这种方式的特点是:在 8279的消 颤周期内,如果发现多个按键同时按下,则FIFO状态字中的错误特征位S/E 将置1,并产生中断请求信号和阻止写入 FIFO RAM上述八种用于确定8279操作方式的命令字皆由特征位确定,输 入8279后能自动寻址相应的命令寄存器。因此,写入命令字时唯一的要求 是使数据选择信号Ao=1。四、状态格式与状态字8279 的FIFO状态字,主要用于键盘和选通工作方式,以指示 FIFO RAM 中的字符数和有无错误发生。其格式为:D 7 Ds D5 D4 D3 D2 Di DODuS/EOUFNNN其中:D u( D7)为显示无效特征位。当 D=1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论