8279芯片c语言编程,8279芯片.doc

8279芯片

8279键盘、显示接口芯片

特性:Intel8279芯片是一种通用的可编程序的键盘、显示接口器件,单个芯片就能完成键盘输入和LED

显示控制两种功能。其内部结构如图6-10-1所示。8279包括键盘输入和显示输出两个部分。

????? 键盘部分提供的扫描方式,可以和64个按键或传感器的阵列相连。能自动消除开关抖动以及N个键

同时按下的保护。

????? 显示部分按扫描的方式工作。可以显示8或16位LED显示块。

????? 一、8279电路工作原理

????? 根据结构框图,分别介绍各部分电路工作原理。

????? 1.I/O控制及数据缓冲器

????? 数据缓冲器是双向缓冲器,连接内、外总线,用于传送CPU和8279之间的命令或数据;I/O控制线是

CPU对8279进行控制的引线。CS是8279的片选信号,CS=0时,8279才被允许读出或写入信息。WR、RD为来自

CPU的控制信号。

????? A0用于区别信息特性:A0=1时,表示数据缓冲器输入为指令、输出为状态字;A=0时,输入、输出皆为数据。

????? 2.控制与定时寄存器及定时控制

????? 控制与定时寄存器用来寄存键盘及显示的工作方式,以及由CPU编程的其它操作方式。这些寄存器一旦接受并锁存送来的命令,就通过译码产生相应的信号,从而完成相应的控制功能。

????? 定时控制包含基本记数键。首级计数器是一个可编程的N级计数器。N可以2~31之间由软件编程,以便

从外界时钟CLK分频得到内部所需要的100KHZ时钟。然后再经过分频为键盘扫描提供适当的逐行扫描频率和显示扫描时间。

???? 3.扫描计数器

????? 扫描计数器有两种工作方式。按编码方式工作时,计数器作二进制记数。4位记数状态从扫描线SL0~SL3

输出,经外部译码器译码后,为键盘和显示器提供扫描线;按译码方式工作时,扫描计数器的最低二位被译码后,从SL0~SL3输出。因此,SL0~SL3提供了4中取1的扫描译码。

???? 4.回复缓冲器、键盘去抖及控制

???? 来自RL0~RL3的8根回复线的回复信号,由回复缓冲器缓冲并锁存。

???? 在键盘工作方式中,回复线作为行列式键盘的行列输入线。在逐行列输入时,在逐行列扫描时,回复线用来搜索每一行列中闭合的键。当某一键闭合时,去抖电路被置位,延时等待10ms后,再检验该键是否继续闭和,并将该键的地址和附加的移位、控制状态一起形成键盘数据被送入8279内部FIFO(先进先出)存储器。键盘数据格式如下:

??

???? 在传感器开关状态矩阵方式中,回复线的内容直接被送往和相应的传感器RAM(即FIFO存储器)。

在选通输入方式中,回复线的内容在CNTL/STB线的脉冲上升沿被送入FIFO存储器。

????? 5.FIFO/传感器及其状态寄存器

FIFO/传感器RAM是一个双重功能的8×8RAM。

???? 在键盘或选通方式工作时,它是FIFO存储器,其输入或读出遵循先入先出的原则。FIFO状态寄存器用于存放FIFO的工作状态。例如,RAM是满还是空;其中存有多少数据;是否操作出错等。当FIFO存储器不空,状态逻辑将产生IRQ=1信号向CPU申请中断。

???? 在传感器矩阵方式工作时,这个存储器以是传感器不是存储器。它存放着传感器矩阵中的每一个传感器状态。在此方式中,若检索出传感器的变化,IRQ信号变为高电平,向CPU申请中断。

???? 6.显示RAM和显示地址寄存器

??? 显示RAM用来存储显示数据。容量为16×8位。在显示过程中,存储的显示数据轮流从显示寄存器输出。显示寄存器分别为A、B两组,OUTA0~3和OUTB0~3可以单独送数,也可以组成一个8位的字。显示寄存器的输出与显示扫描配合,不断从显示RAM中读出显示数据,同时轮流驱动被选中的显示器件,以达到多路复用的目的,使显示器件呈现稳定的显示状态。

??? 显示地址寄存器用来寄存由CPU进行读/写显示RAM的地址,它可以由命令设定,也可以设置成每次读写或写入之后自动递减。

??? 二.管脚、引线与功能

??? 8279采用40引脚封装,其管脚、引线功能如图6-10-2所示。其引脚功能如下:

???? D0~D7(数据总线):双向、三态总线,和系统数据总线相连;用于CPU和8279间的数据/命令传递。

?? CLK(系统时钟):输入线,为8279提供内部时钟的输入端。

RESET(复位):输入线,当RESET=1时,8279复位,其复位状态为:

??? 16个字符显示;

??? 编码扫描键盘--双键锁定;

程序时钟编码为31。

CS(片选):输入线,当CS=0时8279被选中,允许CPU对其读、写,否则被禁止。

A0(数据选择):输入线。当A0=1时CPU写入数据为命令字,读出数据为状态字;

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
8279编程设置型键盘 ;键盘和LED显示程序 ; ;********************************************* ;* 8279 初始化 * ;* KEYCOM为8279命令口 KEYDAT为8279数据口 * ;********************************************* KEYCOM XDATA 0E601H KEYDAT XDATA 0E600H KEYCAM EQU 30H ;定义存放按键值RAM起始地址 ORG 0000H AJMP START ORG 0003H LJMP AAA ORG 0060H START: MOV R0,#10 MOV DPTR,#KEYCOM ;命令口地址 MOV A, #10H ;键盘/显示方式命令字8字符显示左入口,编码键盘,双键锁定 MOVX @DPTR,A MOV A,#34H ;程序时钟命令 26分频对外部输入时钟 MOVX @DPTR,A MOV A,#0DFH ;清除显示缓冲区命令 MOVX @DPTR,A BUSY1: MOVX A,@DPTR JB ACC.7,BUSY1 MOV IE,#81H MOV DPTR,#KEYDAT MOV A,#0C8H MOVX @DPTR,A ;字型送入8279 INC DPTR MOV A,#90H MOVX @DPTR,A ;字位送入8279(显示P) HA7S2: MOV 30H,#80H MOV 31H,#40H HA7S3: MOV DPTR,#KEYCOM MOVX A ,@DPTR ANL A,#07H CJNE A,#00H ,HA7S4; AJMP HA7S3 HA7S4: MOV DPTR ,#KEYDAT MOVX A,@DPTR MOV B,A ;取键值 MOV R1,#00H MOV DPTR ,#KEYTAB ;数字键键值表 HA7S5: MOV A , #00H MOVC A,@A+DPTR CJNE A , B ,HA7S6;查键值表是否相同 AJMP HA7SA; 转数字键处理程序 HA7S6: INC DPTR ;键值表地址加1 INC R1 ;查找次数加1 MOV A,R1 JB ACC.4 ,HA7S7 ;是功能键吗? AJMP HA7S5 ; 继续查找 HA7S7: MOV R1,#00H MOV DPTR ,#KEYTAB1 ;功能键表地址 HA7S8: MOV A,#00H MOVC A,@A+DPTR ;取出功能键键值 CJNE A,B,HA7S9 ;键值相同吗? AJMP HA7SC ;转功能键处理子程序 HA7S9: INC DPTR INC R1 MOV A,R1 JNB ACC.2,HA7S8 ;继续查找 LJMP START ;;; AJMP HA7SD ;无按键返回 HA7SD: LJMP START HA7SA: MOV A ,30H MOV DPTR ,#0FE01H MOVX @DPTR ,A; 字位送入8279 MOV A,R1 MOV R0,31H MOV @R0,A INC 31H MOV DPTR ,#CDATA MOVC A,@A+DPTR;取字型代码 MOV DPTR,#KEYDAT MOVX @DPTR,A ;送8279显示 INC 30H MOV A,30H ;字位加1 CJNE A,#88H,HA7SB ; LJMP HA7S2 HA7SB: AJMP HA7S3 HA7SC: MOV DPTR ,#KJPADDR MOV A,R1 RL A ;; ADD A,R1 ADD A,#00H JMP @A+DPTR ; KJPADDR: LJMP LOOP0 LJMP LOOP1 LJMP LOOP2 KEYTAB: DB 0C1H,0C8H,0C9H,0D0H,0D8H,0E0H,0C2H,0CAH,0D1H,0D9H DB 0DAH,0C3H,0CBH,0D2H,0D3H,0DBH KEYTAB1:DB 0E3H,0E2H,0E1H CDATA: DB 0CH,9FH,4AH,0BH,99H,29H,28H,8FH,08H,09H,88H,38H,6CH,1AH,68H,0E8H LOOP0:MOV R5,#0CH ;0 LJMP DISPC LOOP1:MOV R5,#9FH ;1 LJMP DISPC LOOP2:MOV R5,#4aH ;2 DISPC: MOV R6,#80H DISPC1: MOV DPTR ,#KEYCOM MOVX @DPTR,A ;字位送8279 MOV A ,R5 MOV DPTR ,#KEYDAT ;字形送8279 MOVX @DPTR ,A LCALL DELAY1 ; MOV A ,#0FFH ; MOVX @DPTR ,A ;关显示 ; INC R6 ; ; CJNE R6,#88H,DISPC1 ; AJMP DISPC; LJMP HA7S2 AAA: NOP NOP RETI DELAY1:MOV R1,#0FAH DELAY2:NOP NOP DJNZ R1,DELAY2 DJNZ R0,DELAY1 RET END
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值