⊙IC-8279
☆8279的编程方法
1.8279可按其功能分为:键盘功能块;显示功能块;控制功能块;与CPU接口功能块控制功能块包括
控制和定时寄存器,定时和控制,扫描计数器三部分,它主要用来控制键盘和显示功能块工作.
::控制和定时寄存器:用于存贮来自CPU的编程命令,CPU对8279编程以确定键盘与显示器工作
方式和其它工作条件时,先把命令控制数据放到数据总线上,然后使A0=1,WR=0CS=0,并在WR
上升沿把命令键存在控制和定时寄存器中,并经译码,建立适当的功能.
::定时和控制:它含基本的定时计数器,第一个计数器是一个分频系数为2-31的前置定时器,
分频系数可由程序预置,使内部频率为100KHz,从而能给出5.1ms键盘扫描时间和10.3ms反
跳时间,其它计数器将此基本频率分频后,提供适当的按键扫描.行扫描.键盘阵列扫描.以
及显示器扫描次数.
::扫描计数器:扫描计数器有两种工作方式,在编码工作方式时,计数器提供一种二进制计数,
通过管脚SL0-SL3输出后经外部译码才能提供给键盘和显示器的扫描作用,在译码工作方式
时,扫描计数器对最低二位进行译码,SL0-SL3输出4选1的译码信号,作为显示器和键盘的译
码扫描.
::键盘功能块包括:返回缓冲器,键盘反跳及控制,8x8
FIFO传感器RAM,FIFO/传感器RAM状态.
2.返回缓冲器与键盘反跳及控制
8条返回线被返回缓冲器缓冲,在键盘工作方式中,这几条线被逐个检测,以找出该行键中闭合
的键,如果反跳电路测知某键闭合,则它等待10.3ms,然后重核此键是否仍然闭合,如果仍闭合,
那么该键在矩阵中的行列地址以及SHIFT和CNTL的状态一起被送到FIFORAM中,其在FIFO
RAM中
的数据格式如下:
D7 D6 D5 D4 D3 D2 D1 D0
CNTL SHIFT SCAN RET URN
数据格式中,最高位CNTL,次高位为SHIFT状态,D5-D3来自扫描计数器,D2-D0来自返回计数器,
扫描线计数器和回扫线计数器的值分别反映出被按下键的行.列的值,如果在传感器阵列中,
返回线上的数据直接进入传感器RAM中相应于阵列中正被扫中的那行,这样每个开关位置就直
接反映为一个传感器RAM的位置.
::FIFO/传感器RAM
一个8x8 RAM,在键盘方式和选通方式中它是一个先入先出(FIFO)存贮器,每一条新的信息顺次
写入,然后又按写入顺序读出,在传感器阵列扫描方式时,存贮器作为传感器RAM,这时RAM中的
各行存着传感器阵列中相应行的状态.
::FIF0/传感器RAM状态
在键盘或选通方式中,FIFO状态跟踪FIFO中字符数量注意它是"满"还是"空",写入或读出过多
均被认作出错,当FIFO非空时,状态逻辑提供一个中断申请IRQ信号,在传感器阵列扫描方式中,
若测知某一传感器变化时,IRQ则为有效高电平.FIFO状态字的低3位表示FIFO中的字符数,F表
示FIFORAM已满;O(over mn)表示越限错误,即试图向已满的FIFO送另一字符;U(Under
done)
表示取空错误,即试图读取已空的FIFO.S/F有两种含义:在传感器扫描方式时,S/F表示在传感
器RAM中至少包含了一个传感器闭合指示,在特殊错误方式时S/F位是出错标志,用来指示是否
发生了多路同时闭合错误,Du位表示由于 CLEAR DISPLAY或CLEAR
ALL命令尚末完成其消除操
作而使显示RAM尚不可用.
3.显示功能块包括:显示寄存器,16X8显示RAM,显示地址寄存器.
::显示RAM和显示寄存器
8279内部有16X8的显示RAM,通过显示寄存器和两个四位端口0UT
A0-3,0UT BO-3来刷新显示,
显示器可以是白炽灯,也可以是8段数码管,显示RAM可以是16X8的形式,也可以构成两个16x4
的RAM形式,显示RAM可由CPU进行读写,被读写的RAM字节地址由显示地址寄存器指示.
::显示地址寄存器保存当前CPU读或写的那个RAM地址,以及正显示着的那两个4位半字节的地址,
读写地址由CPU命令编程,也可置为每次读写后地址自动加1的工作方式,在设置了正确的工作
方式后,显示RAM可直接由CPU读出,半字节A和半字节B地址自动由8279更新,以适应由CPU送入
的数据,A和B半字节可独立送入,也可作为一个字送入,随CPU所设置的工作方式而定
3.I/O 接口功能块
8279通过数据缓冲器与I/O控制,使8279与CPU系统总线接口,I/O控制部分用CS.A0.RD和WR四条
线控制CPU与8279之间的数据交换,数据缓冲器是数据交换的双向通道,控制信号与数据交换间
的逻辑关系见下表:
CS A0 WR RD
1 0 CPU从8279读状态
0 1 0 1 CPU向8279写状态
1 0 CPU从8279读数据
0 0 1 CPU向8279写数据
1 X X X 数据缓冲器输出呈三态
x为任意数(0或1)
BACK<<
>>NEXT
|
|