单片机8279键盘显示实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
6.4 可编程键盘/显示器接口——Intel 8279
Intel 8279是一种可编程键盘/显示器接口芯片,它含有键盘输入和显示器输出两种功能。键盘输入时,它提供自动扫描,能与按键或传感器组成的矩阵相连,接收输入信息,它能自动消除开关抖动并能对多键同时按下提供保护。显示输出时,它有一个16×8位显示RAM,其内容通过自动扫描,可由8位或16位LED数码管显示。
1.8279的内部结构和工作原理
8279的内部结构框图如图6.28所示。下面分别介绍电路各部分的工作原理。
1) I/O控制及数据缓冲器
数据缓冲器是双向缓冲器,连接内外总线,用于传送CPU和8279之间的命令或数据,对应的引脚为数据总线D0~D7。
I/O控制线是CPU对8279进行控制的引线,对应的引脚为数据选择线A0、片选线、读/写信号线和。
2) 控制与定时寄存器及定时控制
控制与定时寄存器用来寄存键盘及显示工作方式控制字,同时还用来寄存其它操作方式控制字。这些寄存器接收并锁存各种命令,再通过译码电路产生相应的信号,从而完成相应的控制功能。与其对应的引脚为时钟输入端CLK及复位端RESET。
定时控制电路由N个基本计数器组成,其中,第一个计数器是一个可编程的N级计数器,N为2~31之间的数。定时控制经软件编程,将外部时钟CLK分频,得到内部所需的100 kHz 时钟,为键盘提供适当的扫描频率和显示扫描时间。与其相关的引脚是显示熄灭控制端。
3) 扫描计数器
扫描计数器由键盘和显示器共用,为它们提供扫描信号。扫描计数器有两种工作方式:编码方式和译码方式。按编码方式工作时,计数器作二进制计数,4位计数状态从扫描线SL0~SL3输出,经外部译码器译码后,为键盘和显示器提供扫描信号。按译码方式工作时,扫描计数器的最低两位被译码后,从SL0~SL3输出,提供了4选1的扫描译码。与其相关的引脚是扫描线SL0~SL3。
4) 回复缓冲器、键盘去抖及控制
在键盘工作方式下,回复线作为行列式键盘的列输入线,相应的列输入信号称为回复信号,由回复缓冲器缓冲并锁存。在逐行列扫描时,回复线用来搜寻每一行列中闭合的键,当某一键闭合时,去抖电路被置位,延时等待10 ms后,再检查该键是否仍处在闭合状态。如不闭合,则当作干扰信号不予理睬;如闭合,则将该键的地址和附加的移位、控制状态等键
盘数据送入8279内部的FIFO(先进先出)存储器。键盘数据格式如下:
控制和移位(D6、D7)的状态由两个独立的附加开关决定,而扫描(D5、D4、D3)和回复(D2、D1、D0)则是被按键置位的数据。D5、D4、D3来自扫描计数器,它们是根据回复信号而确定的行/列编码。
在传感器矩阵方式下,回复线的内容直接被送往相应的传感器RAM(即FIFO存储器)。在选通输入方式工作时,回复线的内容在CNTL/STB线的脉冲上升沿被送入FIFO存储器。
与其相关的引脚是回复线RL0 RL7,控制/选通线CNTL/STB。
5) FIFO/传感器RAM及其状态寄存器
FIFO/传感器RAM是一个双重功能的8×8 RAM。在键盘选通工作方式下,它是FIFO 存储器,其输入/输出遵循先入先出的原则。此时,FIFO状态寄存器用来存放FIFO的工作状态,如RAM是满还是空,其中存有多少数据,操作是否出错等。当FIFO存储器中有数据时,状态逻辑将产生IRQ=1信号,向CPU申请中断。
在传感器矩阵方式下,这个存储器用作传感器存储器,它存放着传感器矩阵中的每一个传感器状态。在此方式下,若检测出传感器有变化,IRQ信号就变为高电平,向CPU申请中断。
与其相关的引脚是中断请求线IRQ。
6) 显示RAM和显示寄存器
显示RAM用来存储显示数据,容量为16×8位。在显示过程中,显示RAM存储的显示数据轮流从显示寄存器输出。显示寄存器分为A、B两组,OUTA0~OUTA3和OUTB0~OUTB3。它们既可单独送数,也可组成一个8位(A组为高4位,B组为低4位)的字。显示寄存器的输出与显示扫描配合,不断从显示RAM中读出显示数据;同时轮流驱动被选中的显示器件,以达到多路复用的目的,使显示器件呈稳定显示状态。
与其相关的引脚是数据显示线OUTA0~OUTA3和OUTB0~OUTB3。
显示地址寄存器用来寄存由CPU进行读/写显示的RAM地址,它可以由命令设定,也可以设置成每次读出或写入后自动递增。
2.8279的引脚和功能
8279采用40引脚双列直插封装,其引脚排列及功能分别如图6.29(a)、(b)所示。
8279的引脚功能如下:
D0~D7:数据总线,双向三态总线。
CLK:系统时钟输入端。
RESET:系统复位输入端,高电平有效。复位状态为:16个字符显示;编码扫描键盘,双键锁定;程序时钟编程为31。
:片选输入端,低电平有效。
A0:数据选择输入端。A0=1时,CPU写入的数据为命令字,读出的为状态字;A0=0时,CPU读、写的均为数据。
、:读、写信号输入端,低电平有效。
IRQ:中断请求输出端,高电平有效。
SL0~SL3:扫描输出端,用于扫描键盘和显示器。可编程设定为编码(4选1)或译码输出(16选1)。
RL0~RL7:回复线,它们是键盘或传感器的列信号输入端。
SHIFT:移位信号输入端,高电平有效。它是8279键盘数据的次高位(D6),通常用作键盘上、下挡功能键。在传感器和选通方式下,SHIFT无效。
CNTL/STB:控制/选通输入端,高电平有效。在键盘工作方式下,它是键盘数据的最高位,通常用作控制键。在选通输入方式下,它的上升沿可把来自RL0 RL7的数据存入FIFO/传感器RAM中。在传感器方式下,它无效。
OUTA0~OUTA3:A组显示信号输出端。
OUTB0~OUTB3:B组显示信号输出端。
:显示熄灭输出端,低电平有效。它在数字切换显示或使用熄灭命令时关显示。3. 8279的工作方式
8279工作方式的确定是通过CPU对8279送入命令字来实现的。当数据选择端A0置1时,CPU对8279写入的数据为命令字,读出的数据为状态字。在叙述命令字、状态字前,先说明8279的几种工作方式。
1) 键盘工作方式
通过对键盘/显示方式命令字的设置,可置8279为双键互锁方式和N键巡回方式。
双键互锁是为两键同时按下提供的保护方法。若有两键或多个键同时按下,则无论这些键是以什么次序按下的,它只识别最后一个释放的键,并把该键值送入FIFO/传感器
RAM中。
N键巡回是为N个键同时按下时提供的保护方法。若有多个键同时按下,则键盘扫描时可按按键先后顺序依次将键值送入FIFO/传感器RAM中。
2) 显示器工作方式
通过对键盘/显示方式命令字和写显示RAM命令字的设置,可将显示数据写入显示缓冲器的方式置为左端送入和右端送入两种方式。左端送入为依次填入方式,右端送入为移位方式。
3) 传感器矩阵方式
通过对读FIFO/传感器RAM命令字的设置可将8279设置成传感器矩阵方式,此时,传感器的开关状态直接送到传感器RAM中。CPU对传感器阵列扫描时,如果检测到某个传感器状态发生了变化,则使中断申请信号IRQ变为高电平。如果AI(D4)=0,则对传感器RAM 的第一次读操作即清除IRQ;如果AI(D4)=1,则由中断结束命令清除IRQ。
4. 8279的命令格式和命令字A0=1
8279共有8条命令,其格式及功能如下所述。
1) 键盘/显示方式设置命令字
键盘/显示方式设置命令字的命令格式如下: