键盘显示器接口8279


补充:键盘接口
一、 8279引脚及逻辑符号
补充:键盘接口 8279采用40引脚封装,其管脚、引线功能如图所示。其引脚功 能如下: D0~D7(数据总线):双向、三态总线,和系统数据总线相连; 用于CPU和8279间的数据/命令传递。 CLK(系统时钟):输入线,为8279提供内部时钟的输入端。 RESET(复位):输入线,当RESET=1时,8279复位,其复位状 态为:16个字符显示; 编码扫描键盘--双键锁定; 程序时钟 编码为31。 CS(片选):输入线,当CS=0时8279被选中,允许CPU对其读、 写,否则被禁止。 A0(C/D):输入线。当A0=1时CPU写入数据为命令字,读出数 据为状态字;A0=0时CPU读、写的字节均为数据。
补充:键盘接口
非编码键盘按键的识别:
行扫描法和线反转法
补充:键盘接口
(1)行扫描法识别按键
行扫描法识别按键的过程是:首先判断是否有键被按下, 即先进行全扫描,将所有行线置成低电平;然后扫描全部 列线,如果扫描的列值全是高电平,则说明没有任何一个 键被按下;如果读入的列值不是全1,则说明有键按下, 再用逐行扫描的方法确定哪一个键被按下。先扫描第一行, 即置该行为低电平,其他行为高电平,然后检查列线,如 果某条列线为低电平,则说明第一行与该列相交的位置上 的按键被按下;如果所有列线全是高电平,则说明第一行 没有键被按下,接着扫描第二行,以此类推,直到找到被 按下的键。
补充:键盘接口
RD、WR(读、写信号):输入线。低电平有效,来自CPU的控制信 号,控制8279的读、写操作。 IRQ(中断请求):输出线。高电平有效。 在键盘工作方式中,当FIFO/传感器RAM存有数据时,IRQ为高电平。 CPU每次从RAM中读出数据时,IRQ变为低电平。若RAM中仍有数据, 则IRQ再次恢复高电平。 在传感器工作方式中,每当检测到传感器状态变化时,IRQ就出现 高电平。 SL0~SL3(扫描线):输出线。用来扫描键盘和显示器。它们可以 编程设定为编码(4中取1)或译码输出(16取1)。 RL0~RL7(回复线):输入线。它们是键盘矩阵或传感矩阵的列 (或行)信号输入线。 SHIFT(移位信号):输入线,高电平有效,该信号是8279键盘数 据的次高位D6,通常用来补充键盘开关的功能,可以用作键盘上 下档功能键。
JNZ FCOL
ADD BL,8 LOOP FROW JMP DONE
补充:键盘接口
行反转法识别按键
将行线接一个并行口,先让它工作在输出方式,将 列线出接到一个并行口,先让它工作在输入方式。编程使 CPU通过输出端口往各行线全部送低电平,然后读入列线 的值。如果有某一个键被按下,则必有一条列线为低电平。 然后进行线反转,通过编程对两个并行端口进行方式设置, 使连接行线的端口工作在输入方式,并将刚才读到的列线 值通过所连接的并行口再输出到列线,然后读取行线的值, 那么闭合键所对应的行线必为低电平,这样当一个键被按 下时,就可以读到一对唯一的列值和行值。
补充:键盘接口
3)扫描计数器
4位的计数器,有译码、编码两种方式,由编程设定. 扫描计数器有两种工作方式。 按编码方式工作时,计数器作二进制计数,四位计数状态 从扫描线SL0—SL3输出,经外部译码器译码后,为键盘和显示 器提供扫描线; 按译码方式工作时,扫描计数器的最低二位被译码后,从 SL0—SL3输出,因此SL0—SL3提供4中取1的扫描译码。
补充:键盘接口 CNTL/STB控制:输入线,高电平,在键盘方式下,该输入信号 是键盘数据的最高位,通常用来扩充键盘开头的控制功能,作为 控制键用。 OUTA0~OUTA3(A组显示信号):输出线。 OUTB0~OUTB3(B组显示信号):输出线。 这两组引线都是显示数据输出线,与多位数字显示的扫描线 SL0~SL3同步,两组可以独立使用,也可以合并使用。 BD(显示消隐):显示熄灭控制输出线,它输出一个控制信号, 低电平有效。通过硬件使七段LED显示熄灭。
补充:键盘接口
行反转法
补充:键盘接口
8255A的A口行线,B口列线。
补充:键盘接口
START:MOV AL,82H OUT 63H,AL WAIT0: MOV AL,0 CALL DELAY MOV AL,90H OUT 63H,AL
OUT 60H,AL
IN AL,61H CMP AL, 0FFH JZ WAIT0 PUSH AX PUSH AX
补充:键盘接口
去抖动和防串键
在键盘设计时,除了对键码的识别外,还有两个问题 需要解决:抖动和串键。 当用手按下一个键时,往往会出现按键在闭合位置 和断开位置之间跳几下才稳定到闭合状态的情况;在释放 一个键时,也会出现类似的情况,这就是抖动。抖动的持 续时间随操作员而异,不过通常总是不大于10ms。大家容 易想到,抖动问题不解决就会引起对闭合键的错误识别。
补充:键盘接口
FROW :MOV AL,BH;扫描一行 MOV DX,PORT0 FCOL: RCR AL,1
OUT DX,AL
ROL BH,1 MOV DX,PORT1;读进列值 IN AL,DX CMP AL,0FFH
JNC PROCE
INC BL JMP FCOL PROCE:….;键译码程序 DONE : …;后序处理程序
补充:键盘接口
2)控制与定时寄存器及定时控制
控制与定时寄存器用来寄存键盘及显示的工作方式以及CPU编 程的其他方式。这些寄存器一旦接收并锁存送来的命令,就通 过译码产生相应的控制信号,从而完成相应的控制功能。
定时控制包括基本的计数链。首级计数器是一个可编程的N级计 数器,N可以在2—31之间由软件编程,以便从外部时钟CLK得 到内部所需要的100KHz时钟。然后经过分频为键盘扫描提供适 当的逐行扫描频率和显示扫描时间。
补充:键盘接口
补充:键盘接口
1)数据缓冲器及输入输出控制
数据缓冲器是双向缓冲器,它将内部总线和外部总线连通,用于 传送CPU和8279之间的命令和数据。
输入输出控制线控制数据向各种内部寄存器和缓冲器发送或接收。 CS是片选信号,只有CS=0时,8279才被选通,CPU才能对其进行 读写操作。 RD、WR来自CPU的读、写控制信号。 A0用于区分信息的特征,当A0=0时,表示输入输出的信息是数 据;当A0=1时,表示输入的信息是指令,而输出的信息是状态 字。
补充:键盘接口
补充:键盘接口
AGAIN:XOR AL,AL MOV DX,PORT0 OUT DX,AL MOV DX,PORT1 IN AL,DX CMP AL,0FFH JZ AGAIN CALL DELAY
PROG:MOV BL,0;键号初值为0
MOV BH,0FEH;送扫描初值 MOV CX,8;计9的组成原理和工作原理
8279内部结构框图
补充:键盘接口
工作原理
• 由SL0~SL3输出键盘和显示器的扫描线 • 回复线RL0~RL7作为键盘的列线以搜索闭合键将 键盘数据送入FIFO存储器, • 有键闭合时数据进入FIFO存储器,使IRQ置位向 CPU申请中断。 • 显示缓冲区(RAM)存放显示数据的段码,数据 轮流从显示寄存器输出,在SL0~SL3的配合下, 实现动态显示。(OUTA和OUTB)
补充:键盘接口
(二)8279的工作方式
1 数据输入方式 :8279有三种数据输入方式 (1)键盘扫描方式
5) FIFO /传感器RAM 及其状态寄存器
FIFO/传感器RAM是一个8*8位RAM。 在键盘方式时,它是FIFO存储器,每次以新的顺序写入到 RAM单元中;而每次读出时,总是按输入的先后顺序,将最先 输入的数据读出。
FIFO状态寄存器用来存放FIFO RAM的工作状态,像FIFO RAM是空还是满,其中存有多少个字符,是否操作出错等。 当FIFO RAM不空时,状态逻辑将产生IRQ=1信号,向CPU发 出中断申请。
POP AX
OUT 61H,AL IN AL,60H POP BX MOV AH,BL;列值送AH,行值送AL LEA SI,TABLE;取键码表首址
补充:键盘接口
MOV CX,40H
LOOP1: CMP AX,[SI] JZ KEYPRO INC SI INC SI LOOP LOOP1;未完,继续。 JMP START;未找到相同码,重新开始找。 KEYPRO:…;键译码程序 TABLE:DW 0FEFEH;键码表,K0 DW 0FEFDH DW 0FEFBH DW 0FEF7H………..
补充:键盘接口
“1”
“0” <10ms
抖动时间 <10ms
开关动作时间 >100ms
补充:键盘接口
有按键信号? Y
N
延时等待10ms
仍有按键信号? N Y 键盘处理 按键释放? Y N
补充:键盘接口
串键问题
所谓的串键是指在键盘上同时按下两个或多个键。防 止因串键而产生错误代码的方法很多,常用的方法: 采用软件进行扫描,直到检测到只有一个键闭合时, 才从键盘读取代码。这种方法认定最后一个仍然保持按下 的键是正确的键,它一般用于采用软件对键盘进行扫描的 场合。 硬件方法进行锁定,在第一个键未释放之前,按其它 的键不产生选通信号。这种方法认为第一个按下的键有效。
补充:键盘接口 控制(CNTL)和移位(SHIFT)的状态由两个独立的附加 开关状态决定,而扫描(D5D4D3)和回复(D2D1D0)则是被按 键的行列位置数据。D5D4D3三位来自扫描计数器,是被按键的 行编码,而D2D1D0三位则是来自列计数器,它们是根据回复信 息而确定的列编码。
补充:键盘接口
补充:键盘接口
第二节 8279可编程键盘/显示器接口芯片
8279是一种通用的可编程的键盘、显示器接口芯片,能 完成键盘输入和显示控制的功能,可以大大提高CPU效率,并 可使接口电路更具有通用性。 8279的功能主要包括键盘输入和显示控制两部分,其中 键盘部分提供扫描工作方式,可连接64个键的矩形键盘,并 具有自动消抖和多键同时按下保护功能。显示部分则提供扫 描方式的显示接口,可与8位或16位LED数码管连接构成。 实现对键盘和显示器的自动扫描 识别闭合键的键号 完成显示器的动态扫描
合集下载

8279的资料

8279的资料

第九节键盘与LED显示电路应用设计键盘与显示器是机电一体化系统中典型的人-机接口。

通过键盘,操作者可向控制系统发出指令或输入数据,系统的各种信息又可通过显示设备反馈给操作者。

键盘与显示器是实现人-机交互的关键部件。

键盘主要有独立式和矩阵式两种,显示器主要有LED、LCD和CRT等。

本节主要介绍矩阵式键盘与LED显示器。

2.软件设计Intel公司的8279芯片就显示出了其独特的优点。

Intel 8279是一种通用的可编程键盘、显示器接口芯片,它能完成键盘输入和显示控制两种功能。

键盘部分提供扫描工作方式,可与64个按键的矩阵键盘进行连接,能对键盘实行不间断的自动扫描,自动消除抖动,自动识别按键并给出键值。

显示部分为发光二极管、荧光管等显示器件提供了按扫描方式工作的接口电路,它为显示器提供多路复用信号,可显示多达16位的字符。

1.8279的引脚功能8279的引脚按其功能可分为三部分:第一部分面向CPU,第二部分面向键盘,第三部分面向显示器,如图5-63所示。

2.8279的键盘管理(1)SL3~SL0采用译码扫描当设定8279的扫描线SL3~SL0工作在译码扫描方式时,SL3~SL0四个引脚轮流输出负脉冲。

组成矩阵键盘时可将这四根输出线作为行扫描线,如图5-64所示。

采用译码扫描时,提供的行线最多只有4根,与8根列线相交,只能得到32个按键,键的个数不多。

在图5-64中,矩阵键盘由4行6列组成,共有24个键,键值计算如下:其中:CNTL=SHIFT=0(图中已将此二引脚接地);NNN表示行的位置,其值为SL i=0时的标号i,即NNN=i(写成二进制);KKK表示列的位置,其值为RL j=0时的标号j,即KKK=j (写成二进制)。

图5-65 8279扫描线编码扫描管理键盘3.8279的显示管理8279可用来管理16位×8段的LED或荧光管。

它的内部有专门用于存储显示数据的RAM区(显示RAM),共有16个字节,地址排列从00H到0FH。

单片机芯片8279用法讲解

单片机芯片8279用法讲解

0:写入后地址不变 1:每次写入地址自动加
键盘显示接口芯片8279
⑥ 禁写显示RAM/消隐命令
1 0 1 IWA IWB BLA BLB
特征 无 A组 B组 A组 B组
位
效 禁写 禁写 消隐 消隐
IWA:禁止A组显示 RAM写。D3=1,A组禁写;D3=0,允许A组写。
OUTA3~OUTA0与OUTB3~OUTB0单独使用时,若只想改变B组的输出 值而A组的输出不受影响,就可以让D3=1即禁止向A组显示RAM写数据,这 样在向显示RAM的一个单元写入8位字节数据时就只写入字节的低4位而字节 的高4位不写入RAM单元。
3.8279的工作方式
8279有三种工作方式——键盘输入(键扫描)、传感器扫描、选通输入 键盘输入方式:有键按下时,回复缓冲器缓冲并锁存行列式键盘的列输入线。在
逐行列扫描时,回复线用来搜寻每一行列中闭合的键,当某一键闭合时,去抖 电路被置位,延时等待10ms后,再检查该键是否仍处在闭合状态,如不是闭合, 则当做干扰信号不予理睬;如是闭合,则将该键的列扫描码、行回复码、引脚 CNTL和引脚SHIFT的状态(两个独立附加的开关)一起形成键盘数据被送入 8279内部的FIFO(先进先出)存储器。键盘数据格式如下:
FIFO RAM的状态寄存器: (a)键盘输入方式或选通输入方式,寄存FIFO RAM的工作状态,FIFO
RAM不空时,会使IRQ变高; (b) 传感器方式,若检测出传感器的状态发生了变化,会使IRQ变高
⑥ 显示RAM及显示地址寄存器
显示RAM:16×8位,存储字符的字形码,显示时,从OUTA3~0和OUTB3~0输出
8个数码管从左至右依次 0 1 2 3 4 5 6 7
显示RAM地址单元

8279资料

8279资料

8279预习资料一、8279的功能及工作原理8279是Intel公司生产的通用可编程键盘和显示器I/O接口部件。

利用8279,可实现对键盘/显示器的自动扫描,并识别键盘上闭合键的键号,不仅可以大大节省CPU对键盘/显示器的操作时间,从而减轻CPU的负担,而且显示稳定,程序简单,不会出现误动作,由于这些优点,8279芯片日益被设计者所采用。

1.8279的引脚及内部结构8279的引脚如图1所示。

8279主要由下列部件组成,各部件的作用以及引脚的作用如下:(1) I/O控制和数据缓冲器双向的三态数据缓冲器将内部总线和外部总线DBo —DB7,用于传送CPU和8279之间的命令,数据和状态。

SC为片选信号。

当SC为低电平时,CPU才选中8279读写。

A。

用以区分信息的特性。

当A。

为1时,CPU写入8279的信息为命令,CPU从 8279读出的信息为8279的状态。

当A。

为0时,I/O信息都为数据。

图1 8279的引脚图(2) 控制逻辑控制与定时寄存器用以寄存键盘及显示器的工作方式,锁存操作命令,通过译码产生相应的控制信号,使8279的各个部件完成一定的控制功能。

定时控制含有一些计数器,其中有一个可编程的5位计数器,对外部输入时钟信号进行分频,产生100kHz的内部定时信号。

外部时钟输入信号的周期不小于500ns。

(3) 扫描计数器扫描计数器有两种输出方式。

一种为外部译码方式(也称编码方式),计数器以二进制方式计数,4位计数状态从扫描线SL。

~SL3输出,经外部译码器译码出16位扫描线,另一种为内部译码方式(也称译码方式),即扫描计数器的低二位经片内译码器译码后从SL。

一SL3输出。

(4) 键输入控制这个部件完成对键盘的自动扫描,锁存RL。

~RL7的键输入信息,搜索闭合键,去除键的抖动,并将键输入数据写入内部先进先出(FIFO)的存储器RAM。

(5)FIFO RAM和显示缓冲器RAM8279具有8个先进先出(FIFO)的键输入缓冲器,并提供16个字节的显示缓冲器RAM。

8279芯片

8279芯片
时钟前置分频器被置为31,RESET信号为高电平有效。
CS:片选输入线,低电平有效,单片机在CS端为低时可以对8279读/写操作。
A0:缓冲器低位地址,当A0为高电平时,表示数据总线上为命令或状态, 当为低电平时,
表示数据总线上为命令或状态,当为低电平时,表示数据总线上为数据。
SHIFT:换位功能,当有开关闭合时被拉为低电平,没有按下SHIFT开关时,SHIFT输入端保
持高电平,在键盘扫描方式中,按键一闭合,按键位置和换位输入状态一起被存贮起来。
CNTL/STB:当CNTL/STB开关闭合时将其拉到低电平,否则始终保持高电平, 对于键盘输入
方式,此线用作控制输入端,当键被按下时,按键位置就和控制输 RAM中。
OUTA3~OUTA0及OUTB3~OUTB0:显示输出A口及B口,这两个口是16×4切换的数字显示。这
两个端口可被独立控制,也可看成一个8位端口。
SL0~SL3:扫描线,用来扫描按键开关,传感器阵列和显示数字, 这些可被编程或被译码。
RL0~RL7:回送线,经过按键或传感器开关与扫描线联接, 这些回送线内部设置有上拉电
路,使之保持为高电平,只有当一个按闭合时,对应的返回线变为低电平;无按键闭合时,
均保持高电平。
IRQ:中断请求输出线,高电平有效,在键盘工作方式下,当FIFO/传感器RAM中有数据时,
此中断线变为高电平,在FIFO/传感器RAM每次读出时,中断线就下降为低电平,若在RAM
中还有信息,则此线重又变为高电平。在传感器工作方式中, 每当探测到传感器信号变
化时,中断线就变为高电平。
IRQ-- 4 37 --CNTL/STB
RL4-- 5 36 --SHIFT

8279键盘和显示程序

8279键盘和显示程序

8279键盘和显示程序#include<at89c52.h>#include<absacc.h>#include<stdio.h>#define COM8279 XBYTE [0xF2FF] //定义8279控制口#define DATA8279 XBYTE [0xF0FF] //定义8279数据口#define uchar unsigned char#define uint unsigned intuint keyval //定义键内码传递参数uint time //定义延时参数void delay(uint time)void key(void)void main(){delay(1300) //开机延时COM8279 = 0xD2 //清除RAM和FIFO delay(1)EA=1EX1=1 //开总中断,开外部中断1;IT1=1 //外部中断1选用下降沿COM8279=0x03 //8279键盘N键巡回,编码扫描,左端入口COM8279=0x2a //时钟分频设置,分频数为10COM8279=0x70 //设置读显示命令COM8279=0x90; //设置写显示命令while(1)}void delay (uint time) //传递参数为time{uchar jwhile (time--) //用time-1来进行循环{for (j=100;j>0;j--) //用j来进行125次循环,大约8us }}}void intsvr1(void) interrupt 2 using 1{keyval=DATA8279key()}//按键确认程序void key(void){switch(keyval){case 0xC3: //0号键赋值{P0=0x3F;DATA8279=P0;break;}case 0xC2: //1号键赋值;{P0=0x06;DATA8279=P0;break;}case 0xC1: //2号键赋值;{P0=0x5B;DATA8279=P0;break;}case 0xc0: //3号键赋值;{P0=0x4F;DATA8279=P0;break;}case 0xCB: //4号键赋值;{P0=0x66;DATA8279=P0;break;}case 0xCC: //5号键赋值;{P0=0x6D;DATA8279=P0;break;}case 0xC9: //6号键赋值;{P0=0x7D;DATA8279=P0;break;}case 0xC8: //7号键赋值;{P0=0x07;DATA8279=P0;break;}case 0xD3: //8号键赋值;{P0=0x7F;DATA8279=P0;break;}case 0xD2: //9号键赋值;{P0=0x6F;DATA8279=P0;break;}case 0xD1: //A号键赋值;{P0=0x77;DATA8279=P0;break;}case 0xD0: //B号键赋值;{P0=0x7C;DATA8279=P0;break;}case 0xE3: //C号键赋值;{P0=0x39;DATA8279=P0;break;}case 0xE1: //D号键赋值;{P0=0x5E;DATA8279=P0;break;}case 0xE2: //E号键赋值;{P0=0x79;DATA8279=P0;break;}case 0xE0: //F号键赋值;{P0=0x71;DATA8279=P0;break;}default:break;}}。

正确使用8279芯片应注意的几个问题

正确使用8279芯片应注意的几个问题

正确使用8279芯片应注意的几个问题蒋敦斌 李文英(天津职业大学,天津,300402) 众所周知,输入和显示是各种控制系统中必不可少的组成部分。

In tel公司设计的8279可编程键盘 显示接口芯片,可以连接64个触点的键盘矩阵,提供扫描式键盘接口。

键盘触点也可以代换为传感器,用于检测开关量信息;显示部分可以接16位8段数字显示器或指示灯。

然而,由于硬件接线或软件设计不合理,在8279芯片的使用中产生各种各样的问题。

本文就科技开发工作中遇到的一些实际问题及解决方法进行阐述。

11 正确使用键盘的按钮功能8279芯片有两种工作方式:扫描键盘工作方式和扫描传感器工作方式。

8279芯片处于扫描键盘工作方式时,只要有键按下,I RQ 引脚处于高电平,向CPU发出中断申请。

该信号一直持续到从F1F0RAM中读取键值后,I RQ信号才恢复到低电平。

当8279芯片处于扫描传感器工作方式时,每个传感器的开关状态直接输入到传感器RAM中。

将此种功能应用在我们研制的“数控恒流源”中,既希望每按动一次键,电流增加或减少一个微小的值,又希望在按住增加或减少键时电流值连续上升或下降。

具体实施方法是:初始化时使8279处于键盘工作方式,当有键按下时,使I RQ=“1”,向CPU发出中断申请;在中断服务程序中读取键值,使I RQ=“0”。

返回到主程序后根据键值是增加还是减少,转入相应的增加或减少电流处理模块中。

这时8279芯片改设为传感器工作方式,开关中断。

在增加和减少电流模块中,要不断检测I RQ信号(如果按键松开,则I RQ=“1”)。

检测到I RQ=“0”时,电流值不断上升或下降;检测到I RQ=“1”时跳出增加或减少电流处理模块,重新设置为键盘工作方式,并开中断,返回到主程序。

但这时又产生两个问题:第一个问题是:按住增加键,电流值不断增加,但松开键后,电流值仍上升,不能停止。

经查找原因,发现当设为传感器方式后,键松开,I RQ=“1”,只要一开中断,就进入中断服务程序读取键值,虽使I RQ=“0”,但由于此时读的代码值为00H,恰好与增加键的代码00H一致,程序误以为有增加键按下,又进入增加电流处理模块,使电流值一直上升。

8279介绍

8279功能介绍一、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中。

8279键盘显示实验

8279键盘显示实验一、实验目的与要求了解8279的内部结构、工作原理;了解8279与8088的接口逻辑;掌握对8279的编程方法,掌握使用8279扩展键盘、显示器的方法。

认真预习,做好实验前的准备工作,自行编写程序,填写实验报告二、实验设备STAR系列实验仪一套、PC机一台三、实验内容1、编写程序:利用8279实现对F4区的键盘扫描,将键号显示于8位数码管上2、按图连线,运行程序,观察实验结果,能熟练运用8279扩展显示器和键盘。

四、实验原理图五、实验步骤1、连线说明:2、运行程序,观察实验结果(任意按下F4区4X4键盘几个键,它上面的8个LED显示器会将按键的编码从左至右依次显示出来),可依此验证对8279芯片操作的正确性。

六、演示程序.MODEL TINYCMD_8279 EQU 0BF01H ;8279命令字、状态字地址DATA_8279 EQU 0BF00H ;8279读写数据口的地址.STACK 100.DATAKEYCOUNT DB ?LED_TAB DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8HDB 080H,90H,88H,83H,0C6H,0A1H,86H,8EH.CODESTART: MOV AX,@DATAMOV DS,AXNOPCALL INIT8279 ;初始化子程序MOV KEYCOUNT,0START1: CALL SCAN_KEY ;键扫描JNC START1 ;没有按键XCHG AL,KEYCOUNTINC ALCMP AL,9JNZ START2MOV KEYCOUNT,0CALL INIT8279_1;8个数码块全有字符显示后,再按键,清除显示JMP START1START2: XCHG AL,KEYCOUNTCALL KEY_NUM ;键值转换为键号LEA BX,LED_TAB ;字型码表XLATCALL WRITE_DATAJMP START1START_EXIT: JMP $;8279初始化INIT8279 PROC NEARMOV DX,CMD_8279 ;CMD_8279为写命令地址、读状地址MOV AL,34H;可编程时钟设置,设置分频系数(20分频)OUT DX,ALMOV AL,0;8*8字符显示,左边输入,外部译码键扫描方式OUT DX,AL; MOV AL,0A0H; OUT DX,ALCALL INIT8279_1RETINIT8279 ENDPINIT8279_1 PROC NEARCALL CLEAR ;清显示MOV AL,90H ;从第一个数码管开始移位显示OUT DX,ALRETINIT8279_1 ENDPCLEAR PROC NEARMOV DX,CMD_8279MOV AL,0DEH ; 清除命令OUT DX,ALWAIT1: IN AL,DXTEST AL,80HJNZ WAIT1 ; 显示RAM清除完毕吗?RETCLEAR ENDPSCAN_KEY PROC NEARMOV DX,CMD_8279IN AL,DX ;读状态READ_FIFO: AND AL,7JZ NO_KEY ;是否有键按下READ: MOV AL,40HOUT DX,AL ;读FIFO RAMMOV DX,DATA_8279IN AL,DXSTC ;有键SCAN_KEY1: RETNO_KEY: CLC ;无键按下,清CYJMP SCAN_KEY1SCAN_KEY ENDPKEY_NUM PROC NEARAND AL,3FHRETKEY_NUM ENDPWRITE_DATA PROC NEARMOV DX,DATA_8279OUT DX,ALRETWRITE_DATA ENDPEND START七、实验扩展及思考重新编写软件实验二,自己编写键扫描、显示程序。

键盘-显示器专用接口芯片8279

3. 与显示器接口的引脚
OUTA0~OUTA3:A组显示信号输出线。 OUTB0~OUTB3:B组显示信号输出线。
DB:消隐输出线,低电平有效。 该输出信号在数字切换显示或使用显示消隐命令时,将显示消
隐。
1.3 8279的寄存器
1. 命令寄存器
8279的命令寄存器为8位寄存器,我们以D7~D0表示它的 各位,其中高3位(D7、D6、D5)是命令的特征位,不同的状 态组合代表着不同的命令。8279共有8条命令:
(1)键盘/显示方式设置命令(D7D6D5=000)
此命令用于设置键盘与显示器的工作方式,各位定义如下:
D7
D6 D5
D4
D3
D2
D1
D0
0
0
0
D
D
K
K
K
DD两位用来设定显示方式:
00 8个字符显示——左入(指在显示时,显示字符是从左 面向右面移动)。
01 16个字符显示——左入。
10 8个字符显示——右入(指在显示时,显示字符从右面 向左面移动)。
若8279被设定为键盘扫描N键轮回方式,如果发现有多个键被同 时按下,则FIFO状态字中的错误特征位S/E将置位,并产生中断请 求信号和阻止写入FIFO RAM。
2. 状态寄存器
8279的状态寄存器为8位寄存器,主要用于键盘和选通工 作方式,以指示FIFO RAM中的字符数是否有错误发生,其字位 意义如下:
清除显示RAM大约需要100μs的时间。在此期间,FIFO状态字 的最高位Du=1,表示显示无效,CPU不能向显示RAM写入数据。
(8)结束中断/错误方式设置命令(D7D6D5=111)
D7
D6
D5
D4

8279A可编程键盘显示接口

8279A可编程键盘显示接口实验内容一、实验目的学习8279A与微机8088系统的接口方法,了解8279A用在译码扫描和编码扫描方式时的编程方法,以及8088CPU用查询方式和中断方式对8279A进行控制的编程方法。

二、实验原理如图所示,系统中8279A接口芯片及其相关电路完成键盘扫描和显示,本实验以查询方式获取键盘状态信息,读取键值。

键值转换成显示代码供显示。

根据原理图5-20,得到键值和键名的对照表5-5,显示值和显示代码对照表。

三、实验程序清单见随机光盘,文件名为H8279.ASM四、实验步骤运行实验程序在DVCC-8086JHN上显示"8279-1"在系统键盘上输入数字键,在系统显示器上显示相应数字,按EXEC键显示"8279 good",按其它键不予理睬。

源程序:CODE SEGMENTASSUME CS:CODESTART: JMP KEYLEDCONTPORT EQU 00DFHDA TAPORT EQU 00DEHDA TA1 EQU 0500HDA TA2 EQU 0508HDA TA3 EQU 0510HDA TA4 EQU 0518HDA TA5 EQU 0580HKEYLED: CALL FORMATCLDMOV DI,DATA5MOV CX,08HXOR AX,AXREP STOSBMOV SI,DATA2CALL LEDDISP ;DISP 8279-1MOV BYTE PTR DS:[0601H],00HKEY0: MOV DX,CONTPORTIN AL,DXTEST AL,07HJZ KEY0MOV CX,0FFFHDELAY1: LOOP DELAY1MOV DX,CONTPORTMOV AL,40HOUT DX,ALMOV DX,DATAPORTIN AL,DXMOV DI,AX ;AND AL,0F0HJZ KEY1MOV AX,DI ;CMP AL,10HJNZ KEY0MOV SI,DATA3CALL LEDDISPKEYEND: JMP KEYENDKEY1: CALL CONVERSMOV SI,DATA5CALL LEDDISPDJMP KEY0CONVERS:MOV BH,0HMOV AX,DIAND AL,0FHMOV BL,ALMOV AL,CS:[BX+DATA4]MOV Bl,DS:[0601H]MOV BH,0HMOV BYTE PTR DS:[BX+DA TA5],ALINC BXMOV DS:[0601H],BXCMP BX,08HJZ SA VE0RETSA VE0: MOV BYTE PTR DS:[0601H],0H RETLEDDISP:MOV AL,90HMOV DX,CONTPORTOUT DX,ALMOV BYTE PTR DS:[0600H],00LED1: CMP BYTE PTR DS:[0600H],07H JA LED2MOV BL,DS:[0600H]MOV BH,0HMOV AL,CS:[BX+SI]MOV DX,DATAPORTOUT DX,ALADD BYTE PTR DS:[0600H],01HJNZ LED1LED2: RETLEDDISPD:MOV AL,90HMOV DX,CONTPORTOUT DX,ALMOV BYTE PTR DS:[0600H],00LEDD1: CMP BYTE PTR DS:[0600H],07H JA LEDD2MOV BL,DS:[0600H]MOV BH,0HMOV AL,DS:[BX+SI]MOV DX,DATAPORTOUT DX,ALADD BYTE PTR DS:[0600H],01HJNZ LEDD1LEDD2: RETFORMAT: MOV BX,0MOV WORD PTR DS:[BX+0500H],5050HADD BX,2MOV WORD PTR DS:[BX+0500H],0079HADD BX,2MOV WORD PTR DS:[BX+0500H],0000HADD BX,2MOV WORD PTR DS:[BX+0500H],0000HADD BX,2MOV WORD PTR DS:[BX+0500H],4006HADD BX,2MOV WORD PTR DS:[BX+0500H],4040HADD BX,2MOV WORD PTR DS:[BX+0500H],076FHADD BX,2MOV WORD PTR DS:[BX+0500H],7F5BH ADD BX,2MOV WORD PTR DS:[BX+0500H],3F5EHADD BX,2MOV WORD PTR DS:[BX+0500H],3F5CH ADD BX,2MOV WORD PTR DS:[BX+0500H],076FHADD BX,2MOV WORD PTR DS:[BX+0500H],7F5BH ADD BX,2MOV WORD PTR DS:[BX+0500H],063FHADD BX,2MOV WORD PTR DS:[BX+0500H],4F5BH ADD BX,2MOV WORD PTR DS:[BX+0500H],6D66H ADD BX,2MOV WORD PTR DS:[BX+0500H],077DH ADD BX,2MOV WORD PTR DS:[BX+0500H],6F7FHADD BX,2MOV WORD PTR DS:[BX+0500H],7C77HADD BX,2MOV WORD PTR DS:[BX+0500H],5E39HADD BX,2MOV WORD PTR DS:[BX+0500H],7179HRETCODE ENDSEND START。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档