模块十一 8279键盘/显示器接口实验
一、知识点
8279的结构与工作原理,8279的命令字、状态字及编程方法,MCS-51单片机与8279的接口方法及程序设计方法。
二、知识点分析
8279是Intel公司为8位微处理器设计的一种通用键盘/显示器接口器件,其功能是接收来自键盘的输入数据并作预处理,完成数据显示的管理和数据显示器的控制。单片机应用系统采用8279管理键盘和显示器,其软件编程简单,显示稳定,减轻了主机的负担,单个芯片就能完成键盘输入和LED显示器显示控制两种功能。
1)8279内部结构框图和引脚说明
8279内部逻辑电路如图3.22所示。
图3.22 8279结构框图
8279引脚说明如下:
DB0~DB7:具有三态的双向数据总线。用于在8279与CPU之间传递命令(控制字)和数据。
CLK:系统时钟输入。用于8279内部产生工作时序。
RESET:复位信号输入端。当RESET=1时,8279被复位。复位后8279内部状态如下:
●16个字符显示,左入口;
●编码扫描键盘,双键锁定;
●程序时钟编程为31。
:片选端,低电平有效。当时8279被选中,允许CPU对其读写;否则被禁止。
A0:选择输入端。当A0=1时CPU写入的数据为命令字,读出的数据为状态字;A0=0时CPU读、写的字节均为数据。:读、写控制线。用来自CPU的控制信号,控制8279的读写操作。
IRQ:中断请求信号的输出线,高电平有效。在键盘工作方式中,当FIFO/传感器RAM中存有数据时,IRQ为高电平;CPU每次从RAM中读出数据时,IRQ变为低电平,若RAM中仍有数据,则IRQ再次恢复为高电平。
SL0~SL3:扫描输出线。输出键盘、显示器的扫描信号。通过编程可设定为“编码输出”(经外接译码器产生扫描信号),或“译码输出”(直接输出4选1的扫描信号)。
RL0~RL7:回复输入线。用来接收扫描键盘的回复信号。
SHIFT:移位信号的输入线,高电平有效。该信号是8279键盘数据的次高位(D6位),通常用来扩充键开关的功能,如键盘的上、下挡功能。在传感器方式和选通方式中,SHIFT无效。
CNTL/STB:控制/选通输入线,高电平有效。键盘方式时,该输入信号是键盘数据的最高位(D7位),通常用来扩充键盘开关的控制功能,作为键盘控制功能键用。在选通输入方式时,该信号的上升沿可将来自RL0~RL7的数据存入FIFO RAM中。在传感器方式下,该信号无效。
OUTA0~OUTA3:A组显示输出线。OUTB0~OUTB3:B组显示输出线。
上述两组线均为显示用的信息输出线,数据的输出与SL0~SL3的数字扫描信号同步,实现数据的动态扫描显示。A组与B组输出线可以单独使用(如输出BCD码经外部的“BCD七段译码器”与显示器连接),也可将A、B两组合并使用,直接输出七段的字形码供显示器使用(其中OUTB0~3接LED的a~d,OUTA0~3接LED的e~g、dp)。
BD:消隐显示输出线,低电平有效。该输出信号在数字切换显示或使用显示消隐命令时,控制显示器将显示消隐。
2)8279的命令字、状态字及编程
8279是可编程接口芯片,其工作方式、工作特点等均通过CPU向8279发送命令实现,因此对8279的编程实际上就是向8279写入命令字的过程。
8279共有8条命令字和1个状态字。具体的命令字格式与功能如下:
(1)键盘/显示方式设置命令字
命令格式:
其中:D7D6D5=000为“键盘/显示方式设置”命令字的特征位。
DD(D4D3)用于设置显示方式,具体定义见表3.2。
表3.2 DD(D403)具体定义
所谓左入口,即显示位置从最左一位(最高位)开始,以后逐次输入的显示字符逐个向右顺序排列;所谓右入口,则是显示位置从最右一位(最低位)开始,以后逐次输入显示字符时,已有的显示字符依次向左移动。
D2D1D0=KKK:用来设定八种键盘、显示工作方式,见表3.3。
表3.3 八种键盘、显示工作方式
双键锁定和N键轮回是多键按下时的两种不同的保护方式。双键锁定是指双键同时按下时,认可最后弹起的键,以起到双键防抖功能;N键轮回是指若干键按下时,键盘扫描根据发现它们的顺序,依次将它们的状态送入FIFO RAM中。
(2)程序时钟命令
命令格式:
其中:D7D6D5=001为“程序时钟”命令字的特征位。
D4~D0=PPPPP为对外来输入时钟CLK进行分频的分频系数N,N的取值为2~31。例如,外部时钟频率为2MHz,PPPPP被置成为10100(N=20),即对CLK输入的外部时钟20分频,以获得8279内部要求的100kHz基本频率。
(3)读FIFO/传感器RAM命令
命令格式:
其中:D7D6D5=010为“读FIFO/传感器RAM”命令字的特征位。
AI为自动加1标志。
AAA(D2D1D0)为FIFO/传感器RAM的地址。
在键盘工作方式中,由于读取数据操作严格按照先入先出顺序,因此不需要使用这条命令。
(4)读显示RAM命令
命令格式:
其中:D7D6D5=011为“读显示RAM”命令字的特征位。
AAAA(D3D2D1D0)用来寻址显示RAM中的存储单元地址。
AI(D4)为自动增量特征位。AI=1时,每次读出后地址自动加1,指向下一个地址。
(5)写显示RAM命令
命令格式:
其中:D7D6D5=100为“写显示RAM”命令字的特征位。
AAAA(D3D2D1D0)为将要写入的显示RAM中的存储单元地址。
AI(D4)为自动增量特征位。AI=1时,每次写入后地址自动加1,指向下一次要写入的地址。
(6)显示禁止写入/消隐命令
命令格式:
其中:D7D6D5=101为“显示禁止写入/消隐”命令字的特征位。
D3、D2=IWA、IWB:分别用来屏蔽A、B两组显示。如IWA(D3)=1时,A组的显示RAM禁止写入,这样当CPU向显示RAM写入数据时不会影响A组的显示。
D1、D0=BLA、BLB:分别对A、B组进行消隐控制。BL*=1,对应组的显示输出被消隐;BL*=0,则恢复显示。
(7)清除命令
命令格式:
其中:D7D6D5=110为“清除RAM”命令字的特征位。
Cd Cd Cd(D4D3D2)用来设定清除显示RAM的4种方式,见表3.4。
表3.4 设定清除显示RAM的4种方式
Cf(D1)用来置空FIFO存储器。当Cf=1时,执行清除命令后,FIFO RAM被置空,使中断输出线复位,同时,传感器RAM的读出地址也被置为0。
Ca(D0)为总清的特征位。它具有Cd和Cf的联合效能。在Cf=1时,对显示RAM的清除方式由D3、D2的编码决定。
注意:清除显示RAM约需160μs,在此期间8279状态字的最高位Du=1,表示显示无效。
(8)结束中断/错误方式设置命令
命令格式:
其中:D7D6D5=111为“结束中断/错误方式设置”命令字的特征位。该命令有两种不同的应用:
①作为结束中断命令。在传感器工作方式中,该命令用来结束传感器RAM的中断请求。
②作为特定错误方式设置命令。在8279被设定为键盘扫描N键轮回方式以后,如果CPU又对8279写入该命令(E=1),则8279就以一种错误的方式工作。这种工作方式的特点是,8279在消抖期间,如果有多个键被按下,则8279状态字中的错误特征位S/E将被置1,并产生中断请求信号和阻止其写入FIFO RAM。
上述8种命令字均是由D7、D6、D5特征位来确定的,当这些命令字输入到8279之后能自动寻址到对应的命令寄存器。写入命令时唯一的要求是使选择输入端信号A0=1。
(9)8279的状态字
8279的状态字主要用于键盘和选通方式,指示FIFO RAM中的字符数和有无错误发生。
状态字格式:
Du(D7)为显示无效特征位。Du=1表示显示无效。当显示RAM清除显示或全清命令尚未完成时,Du=1。
S/E(D6)为传感器信号结束/错误特征位。该特征位在读出状态字时被读出,在执行Cf=1的清除命令时被复位。当8279工作在传感器工作方式时,若S/E=1,表示最后一个传感器信号已经进入传感器RAM中;而当8279工作在特殊错误方式时,若S/E=1表示出现了多键同时按下错误。
O、U(D5、D4)为超出、不足错误特征位。对FIFO RAM的操作可能出现两种错误:超出或不足。当FIFO RAM已经充满,其他键盘数据还企图写入时,出现超出错误,O(D5)位置1;当FIFO RAM已经置空,CPU还企图读出时,则出现不足错误,U(D4)位置1。
F(D3)表示FIFO RAM是否已满。F=1时,表明已满。
NNN(D2D1D0)表示FIFO RAM中的字符数,最多为8个。
在键盘扫描方式中,8279中键输入数据按下列格式存放:
RETURN(D2D1D0)为键所在的列号(由RL0~RL7的状态确定)。
SCAN(D5D4D3)为键所在的行号(由SL0~SL2的状态确定)。
SHIFT、CNTL(D6、D7)为相应开关键的状态位。
三、实践训练
1)实验目的
(1)掌握在MCS-51单片机系统中扩展8279键盘显示接口的方法;
(2)掌握8279工作原理和编程方法;
(3)进一步熟悉中断处理程序的编程方法。
2)实验设备
PC机,XZNU MCUS-Ⅰ单片机实验箱1台,伟福V8/L型仿真器1台。
3)实验内容及说明
利用实验箱上提供的8279、键盘电路和LED显示电路,组成一个键盘分析电路,编写程序,要求在键盘上按一个数字键,该键的代码就显示在LED数码管上。
本实验用到了8279的键盘输入部分。键盘部分提供的扫描方式最多可和64个按键或传感器阵列相连,能自动消除键抖动并对多键同时按下采取保护。
本实验给出的程序采用中断方式来处理键盘输入值。主程序的任务是初始化8279和外部中断0,中断服务程序则进行键值处理并显示。
4)实验电路及连线
8279键盘/显示器接口实验电路原理图如图3.23所示。首先将开关S4、S5、S6置于导通状态;再使用专用连接导线,将J58的79A0端与J3的A0端对应相接,J58的CS79端与J2的A15端对应相接,J58的IRQ端与J54的EOC1端相接,J54的EOC/INVS端与J4的INT0端相接(反相)。LED数码显示电路及接线方法与模块七“按键识别与显示实验”的显示部分完全相同,请参照前文。
图3.23 8279键盘/显示器接口实验电路原理图
5)程序设计
(1)流程图
8279键盘/显示器接口实验的主程序及中断服务程序流程如图3.24所示。
(2)参考程序
图3.24 8279键盘/显示器接口实验及中断服务程序流程图
6)思考题
(1)利用8279和6个LED数码管,设计一个电脑时钟;
(2)总结实验过程中所遇到的问题与解决的办法。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。