一、8279的基本功能
8279是可编程的键盘、显示接口芯片。它既具有按键处理功能,又具有自动显示功能。8279内部有键盘FIFO(先进先出堆栈)/传感器,双重功能的8*8=64B RAM,键盘控制部分可控制8*8=64个按键或8*8阵列方式的传感器。该芯片能自动消抖并具有双键锁定保护功能。显示RAM容量为16*8,即显示器最大配置可达16位LED数码显示。 (1)数据线
DB0→DB7是双向三态数据总线,在接口电路中与系统数据总线相连,用以传送CPU和8279之间的数据和命令。 (2)地址线
/CS=0选中8279,当A0=1时,为命令字及状态字地址;当A0=0时,为片内数据地址,故8279芯片占用2个端口地址。 (3)控制线
CLK:8279的时钟输入线。
IRQ:中断请求输出线,高电平有效。 /RD、/WR:读、写输入控制线。 SL0---SL3:扫描输出线,用来作为扫描键盘和显示的代码输出或直接输出线。
RL0---RL7:回复输入线,它们是键盘或传感器矩阵的信号输入线。
SHIFT:来自外部键盘或传感器矩阵的输入信号,它是8279键盘数据的次高位即D6位的状态,该位状态控制键盘上/下档功能。在传感器方式和选通方式中,该引脚无用。
CNTL/S:控制/选通输入线,高电平有效。键盘方式时,键盘数据最高位(D7)的信号输入到该引脚,以扩充键功能;选通方式时,当该引脚信号上升沿到时,把RL0---RL7的数据存入FIFO RAM中。
OUTA0---OUTA3:通常作为显示信号的高4位输出线。 OUTB0---OUTB3:通常作为显示信号的低4位输出线。
/BD:显示熄灭输出线,低电平有效。当/BD=0时将显示全熄灭。
二、工作方式
8279有三种工作方式:键盘方式、显示方式和传感器方式。 (1) 键盘工作方式
8279在键盘工作方式时,可设置为双键互锁方式和N键循回方式。
双键互锁方式:若有两个或多个键同时按下时,不管按键先后顺序如何,只能识别最后一个被释放的键,并把该键值送入FIFO RAM中。
N键循回方式:一次按下任意个键均可被识别,按键值按扫描次序被送入FIFO RAM中。 (2) 显示方式
8279的显示方式又可分为左端入口和右端入口方式。
显示数据只要写入显示RAM,则可由显示器显示出来,因此显示数据写入显示RAM的顺序,决定了显示的次序。
左端入口方式即显示位置从显示器最左端1位(最高位)开始,以后显示的字符逐个向右顺序排列;右端入口方式即显示位置从显示器最右端1位(最低位)开始,已显示的字符逐个向左移位。但无论左右入口,后输入的总是显示在最右边。
三、8279的命令字及格式
8279共有8种命令,通过这些命令设置工作寄存器,来选择各种工作方式。命令寄存器共8位,格式为:
表3.3 8279命令特征表
(1)键盘/显示命令
特征位D7 D6 D5=000
D4、D3两位用来设定4种显示方式,D2---D0三位用以设定8种键盘/显示扫描方式,分别如表3.4和表3.5所示。
表3.4 显示方式
表3.5 键盘/显示扫描方式
表3.5中所谓译码扫描指扫描代码直接由扫描线SL0---SL3输出,每次只有1位是低电平(4选1)。所谓编码扫描是指扫描代码经SL0---SL3外接译码器输出。
由于键盘最大8*8=64个键,由SL0---SL2接3---8译码器,译码器的8位输出作为键盘扫描输出线(列线),RL0---RL7为输入线(行线)。
8279最多驱动16位显示器,故可由SL0---SL3接4---16译码器,译码器的16位输
出作为显示扫描输出线(16选1),决定第几位显示。显示字段码由OUTA0---OUTA3和OUTB0---OUTB3输出。
表3.3、表3.4、表3.5三个表相互组合可得到各种键盘显示命令。
例1:若希望设置8279为键盘译码扫描方式、N键轮回,显示8个字符、右端入口方式,确定其命令字。
根据题目要求可进行分析,因为具有下列条件: 是键盘/显示命令特征位:D7 D6 D5=000 (表3.3); 8个字符右端入口显示:D4 D3=10(表3.4); 键盘译码扫描,N键轮回:D2 D1 D0=011(表3.5);
所以8位命令器存器状态D7---D0=00010011B,即该命令字13H送入命令寄存器口地址则可满足题目要求。 (2) 时钟编程命令 10分频
特征位D7 D6 D5=001
D4---D0用来设定分频系数,分频系数范围在0---31之间。
有的设计会用单片机的ALE端接8279的CLK端,但ALE端输出的脉冲频率比8279所需工作时钟频率(100KHz)高出很多,通过设置分频系数就可使8279得到所需的时钟频率。(注意:实验板上8279的CLK并不直接连到ALE)。
例:若8279 CLK的输入信号频率为3.1 MHz,则分频系数应为31D=1FH,于是 D4---D0=11111,则控制字为:D7---D0=00111111B=3FH (3) 读FIFO/传感器RAM命令。
特征位D7 D6 D5=010
D2---D0为8279中FIFO及传感器RAM的首地址。 D3 无效位。
D4 控制RAM地址自动加1位:D4=1时,CPU读完一个数据,RAM地址自动加1,准备 读下一个单元数据;D4=0时,CPU读完一个数据,地址不变。
例:欲编程使单片机连续读8279内FIFO/传感器RAM中000---111单元的数据,设置读命令。
分析:因为要连续读数,地址又连续。所以最好设置为自动加1方式,即D4=1,RAM
内首地址000即D2---D0=000,再加上特征位,所以该命令控制字为:
D7---D0=01010000B=50H (无用位D3设为0)。送入50H控制字,在执行读命令时,先从FIFO/传感器RAM中000单元读数,读完一个数,地址自动加1,又从001单元读数,依次类推,直到读完所需数据。 (4) 读显示RAM命令
特征位D7 D6 D5=011
D4=1 RAM地址自动加1,D4=0不加1。 D3---D0为显示RAM中的地址。
例:欲读显示RAM中1000单元地址,求命令字。
分析:因为只读一个数,地址不需自动加1,即设置D4=0,特征位为011,地址为1000,所以其控制命令字为D7---D0=01101000B=68H。 (5) 写显示RAM命令 显示位置
特征位D7 D6 D5=100。
D4是地址自动加1控制,D4=1,地址自动加1;D4=0,地址不加1。D3---D0是欲写入的RAM地址,若连续写入则表示RAM首地址。命令格式同读显示RAM。 (6) 显示器禁止写入/熄灭命令
特征位D7 D6 D5=101 D4:无用位。
D3:禁止A组显示RAM写入,D3=1,禁止。 D2:禁止B组显示RAM写入,D2=1,禁止。
D1:A组显示熄灭控制。D1=1,熄灭;D1=0,恢复显示。 D0:B组显示熄灭控制。D0=1,熄灭;D0=0,恢复显示。
利用该命令可以控制A、B两组显示器,哪组继续显示,哪组被熄灭。 例:假设A、B两组灯均已被点亮,现在希望A组灯继续亮,B组灯熄灭,确定其命令字。
分析:根据命令格式,A组灯继续亮应禁止A组RAM再写入其他数据,故D3=1;B组显示熄灭D0=1,除特征位外其余位设为“0”。故其控制命令字为D7---D0=10101001B=A9H。
(7) 清除(显示RAM和FIFO中的内容)命令
特征位D7 D6 D5=110
D0为总清除特征位,D0=1把显示RAM和FIFO全部清除。
D1=1清除FIFO状态,使中断输出线复位,传感器RAM的读出地址清0。 D4---D2:设定清除显示RAM的方式,如表3.6所示。
表3.6 清除显示RAM方式
例:将全部显示RAM清0,其命令字为:D7---D0=11010001B=D1H
四、8279的状态字及其格式 键盘扫描
状态字显示出8279的工作状态。状态字和8种命令字共用一个地址口。当A0=1时,从8279命令/状态口地址读出的是状态字。状态字各位意义如下:
D7:D7=1表示显示无效,此时不能对显示RAM写入。
D6:D6=1表示至少有一个键闭合;在特殊错误方式时有多键同时按下错误。 D5:D5=1表示FIFO RAM已满,再输入一个字则溢出。 D4:D4=1表示FIFO RAM中已空,无数据可读。 D3:D3=1表示FIFO RAM中数据已满。 D2---D0:FIFO RAM中数据个数。
显然,状态字主要用于键盘和选通工作方式,以指示FIFO RAM中的字符数及有无错误发生。
五、8279数据输入/输出格式 键值
对8279输入/输出数据不仅要先确定地址口,而且数据存放也要按一定格式,其格式在键盘和传感器方式有所不同。 (1) 键盘扫描方式数据输入格式
键盘的行号、列号及控制键位置如下:
D7:控制键 “CNTL”状态。 1 默认 D6:控制键 “SHIFT”状态。 1 默认
D5 D4 D3:被按键所在列号(由SL0---SL2)状态确定)。 D2 D1 D0:被按键所在行号(由RL0---RL7)状态确定)。
六、8279译码和编码方式
8279的内、外译码由键盘/显示命令字的最低位D0选择决定。
D0=1选择内部译码,也称为译码方式,SL0—SL3每时刻只能有一位为低电平。此时8279只能接4位显示器和4×8矩阵式键盘。
D0=0选择内部编码,也称为编码方式,SL0—SL3为计数分频式波形输出,显示方式可外接4—16译码器驱动16位显示器。键盘方式可接3—8译码器,构成8×8矩阵式键盘。
8279与6位显示器、3×8键盘的接口
图2为6位显示器、3×8键盘和8279的接口电路。图中键盘的行线接8279的RL0—RL7,8279选用外部译码方式,SL0—SL2经74LSl38译码输出的Y0—Y2接键盘的列线,译码输出的Yo~Y5又经过SN75451驱动后输出到显示器各位的公共阴极,8279的输出线OUT B0—OUT
B3、OUT A0—OUT A3作为8位段数据输出口,接LED的a—g及dp等8段上。BD控制74LSl38
的译码(G1),当位切换时,BD输出低电平,使74LSl38输出全为高电平。 当键盘上出现有效的闭合键时,键输入数据自动地进入8279的FIFO RAM存储器,并有IRQ=1请求中断,8031响应中断读取FIFO RAM中的输入键值。该实验台的IRQ线没有连接,键盘响
应方式应采用查询方式,通过读取8279的状态,判断是否有键闭合(状态字的后4位)。更新显示器输出,仅需改变8279中显示缓冲器RAM中的内容。
在本系统中,8279的命令/状态口地址为0cfe9h,数据口地址为0cfe8h。
8279芯片接口数据CFE8,命令CFE9
因篇幅问题不能全部显示,请点此查看更多更全内容