资源描述
第四章 键盘、显示接口的扩展1.按键、键盘及其接口按键、键盘及其接口2.2.静态静态LEDLED数码显示电路数码显示电路3.3.动态动态LEDLED数码显示电路数码显示电路4.4.动态扫描时序图动态扫描时序图5.5.由单片机实现数据的动态显示由单片机实现数据的动态显示6.6.由由8155/82558155/8255构成的键盘扫描电路构成的键盘扫描电路7.7.82798279构成的动态显示电路构成的动态显示电路8.8.可编程键盘扫描可编程键盘扫描/显示芯片显示芯片8279 8279 内部结构图内部结构图9.9.82798279内部的主要结构内部的主要结构10.10.82798279引脚说明引脚说明11.11.82798279的命令字和状态字的命令字和状态字12.12.82798279的应用的应用继续键盘电路分为键盘电路分为独立式按键独立式按键和和行列式键盘行列式键盘两种。两种。独立式按键:独立式按键:是直接用是直接用I/OI/O口线构成的单个按键电路,每个独口线构成的单个按键电路,每个独立式按键单独占有一根立式按键单独占有一根I/OI/O口线,每一根口线,每一根I/OI/O口线上按键的口线上按键的工作状态不会影响其它工作状态不会影响其它I/OI/O口线的工作状态。这种方式电口线的工作状态。这种方式电路简单,软件也简单,但占用路简单,软件也简单,但占用I/OI/O资源多。资源多。行列式键盘:行列式键盘:是将按键排成是将按键排成“行行”和和“列列”的矩阵形式,配的矩阵形式,配合软件编程,产生按键的编码。这种形式电路极为简单,合软件编程,产生按键的编码。这种形式电路极为简单,占用占用I/OI/O资源少,因此被广泛的应用于微机、单片机的硬资源少,因此被广泛的应用于微机、单片机的硬件系统中。件系统中。独立式按键上学期的实验上学期的实验:利用利用中断引脚监测按键中断引脚监测按键操作。操作。由于每一个按键对由于每一个按键对应一个中断,所以应一个中断,所以通过不同的中断服通过不同的中断服务成程序完成不同务成程序完成不同的按键的处理。的按键的处理。MPUINT0INT1T0K1K2K3VCC1独立式按键接口结构独立式按键接口结构图图5.5 独立式按键的接口电路示意图独立式按键的接口电路示意图(a)中断方式;中断方式;(b)查询方式查询方式 2独立式按键的软件结构独立式按键的软件结构下面是查询方式的键盘程序。K0K7为功能程序入口地址标号,其地址间隔应能容纳JMP指令字节,PROM0PROM7分别为每个按键的功能程序。设I/O为P1口。START:MOVA,#0FFH;MOVP1,A;置P1口为输入状态MOVA,P1;键状态输入JNBACC.0,K0;检测0号键是否按下,按下转JNBACC.1,K1;检测1号键是否按下,按下转JNBACC.2,K2;检测2号键是否按下,按下转JNBACC.3,K3;检测3号键是否按下,按下转JNBACC.4,K4;检测4号键是否按下,按下转JNBACC.5,K5;检测5号键是否按下,按下转JNBACC.6,K6;检测6号键是否按下,按下转JNBACC.7,K7;检测7号键是否按下,按下转JMPSTART;无键按下返回,再顺次检测K0:LJMPPROM0K1:LJMPPROM1K7:LJIMPPROM7;入口地址表PROM0:;0号键功能程序JMPSTART;0号键功能程序执行完返回PROM1:;0号键功能程序JMPSTART;1号键功能程序执行完返回;7号键功能程序PROM7:JMPSTART;7号键功能程序执行完返回4.1 按键、键盘及其接口按键、键盘及其接口4.1.1 键输入过程与软件结构键输入过程与软件结构图4.1MCS51单片机键输入过程4.1.2 键盘接口和键输入软件中应解决的几个问题键盘接口和键输入软件中应解决的几个问题 1消除键抖动消除键抖动键稳定键按下后沿抖动前沿抖动图4.2键合断时的电压抖动图4.3消除键抖动电路硬件去抖动电路还可用单稳态触发器实现去抖动功能,P140图4.2-3(b)软件去抖动方法软件去抖动方法在检测到有键按下时在检测到有键按下时,先延时一定的时间之后再检测键盘的先延时一定的时间之后再检测键盘的状态状态,避开前沿抖动区域避开前沿抖动区域,再读取键盘信息再读取键盘信息,可得到稳定的键可得到稳定的键信息。不同的键,抖动时间不同,但一般小于信息。不同的键,抖动时间不同,但一般小于10mS10mS。键稳定键按下后沿抖动前沿抖动键合断时的电压抖动波形2键编码及键值键编码及键值(1)用键盘连接的I/O线的二进制组合表示键码。例如用4行、4列线构成的16个键的键盘,可使用一个8位I/O口线的高、低4位口线的二进制数的组合表示16个键的编码,如图5.4(a)所示。各键相应的键值为88H、84H、82H、81H、48H、44H、42H、41H、28H、24H、22H、21H、18H、14H、12H、11H。这种键值编码软件较为简单直观,但离散性大,不便安排散转程序的入口地址。图5.4行列式键盘的编码与键值(a)二进制组合编码;(b)顺序排列编码(2)顺序排列键编码。如图5.4(b)所示。这种方法,键值的形成要根据I/O线的状态作相应处理。键码可按下式形成:键码=行首键码+列号 3键盘的监测方法键盘的监测方法对于计算机应用系统,键盘扫描只是CPU工作的一部分,键盘处理只是在有键按下时才有意义。对是否有键按下的信息输入方式有中断方式与查询方式两种。4.1.4 行列式键盘行列式键盘行列式键盘又叫矩阵式键盘。用I/O口线组成行、列结构,按键设置在行列的交点上。例如44的行列结构可组成16个键的键盘。因此,在按键数量较多时,可以节省I/O口线。1行列式键盘的接口行列式键盘的接口行列式键盘的接口方法有许多,例如直接接口于单片机的I/O口上;利用扩展的并行I/O接口;用串行口扩展并行I/O口接口;利用一种可编程的键盘、显示接口芯片8279进行接口等。其中,利用扩展的并行I/O接口方法方便灵活,在单片机应用系统中比较常用。图5.68155扩展I/O口组成的行列式键盘 2键盘工作原理键盘工作原理按键设置在行、列线的交点上,行、列线分别连接到按键开关的两端。行线通过上拉电阻接+5V,被箝位在高电平状态。对键盘的工作过程可分两步:第一步是CPU首先检测键盘上是否有键按下;第二步是再识别是哪一个键按下。键扫描方法:列输出全扫描字(00H),读入行的状态,如全为1则没有键按下,如不全为“1”,则有键按下。键的识别方法:逐列输出列扫描字(本列为0,其它列为1)读入行的状态,如全为1则所按的键不在此列中,如不全为“1”,则所按下的键在0所在的列与行的交叉点上。键盘的检测方法:可采用查询工作方式、定时扫描工作方式和中断工作方式。1)查询工作方式键盘中有无键按下是由列线送入全扫描字,读入行线状态来判别的。其方法是:PA口输出00H,即所有列线置成低电平,然后将行线电平状态读入累加器A中。如果有键按下,总会有一根行线电平被拉至低电平,从而使行输入状态不全为1。键盘中哪一个键按下是由列线逐列置低电平后,检查行输入状态,称为逐列扫描。其方法是:从PA0开始,依次输出0,置对应的列线为低电平,然后从PC口读入行线状态,如果全为1,则所按下之键不在此列;如果不全为1,则所按下的键必在此列,而且是与0电平行线相交的交点上的那个键。为求取键码,在逐列扫描时,可用计数器记录下当前扫描列的列号,然后用行线值为0的行首键码加列号的办法计算。8155扩展I/O口组成的行列式键盘例:编一程序读出所按下键的键号KS1:MOV DPTR,#7F01H;DPTR指向8155PA口 MOV A,#00H ;全扫描字A MOVX DPTR,A ;全扫描字送8155PA口INC DPTR ;DPTR指向8155PC口INC DPTR MOVX A,DPTR;读入PC口行状态CPL A ;变正逻辑,以高电平表示有键按下ANL A,#0FH ;屏蔽高4位,只保留低4位 ;行线值RET ;出口状态:(A)0时有键按下键盘扫描子程序如下:SCANKEY:ACALLKS1;调用判断有无键按下子程序JZSCANKEY;无键按下返回.LK1:ACALLTM12S;有键按下时,调12ms延时子程序ACALLKS1;查有无键按下,若有则真有键按下JZSCANKEY;不是真有键按下,返回;键(A)0逐列扫描LK2;MOVR2,#0FEH;初始列扫描字(0列)送入R2MOVR4,#00H;初始列(0列)号送入R4LK4:MOVDPTR,#7F01H;DPTR指向8155PA口MOVA,R2;列扫描字送至8155PA口MOVXDPTR,AINCDPTR;DPTR指向8155PC口INCDPTRMOVXA,DPTR;从8155PC口读入行状态JBACC.0,LONE;查第0行无键按下,转查第1行MOVA,#00H;第0行有键按下,行首键码#00HAAJMPLKP;转求键码LONE:JBACC.1,LTWO;查第1行无键按下,转查第2行MOVA,#08H;第1行有键按下,行首键码#08HAAJMPLKP;转求键码LTWO:JBACC.2,LTHR;查第2行无键按下,转查第3行MOVA,#10H;第2行有键按下,行首键码#10HAAJMPLKP;转求键码LTHR:JBACC.3,NEXT;查第3行无键按下,转该查下一列MOVA,#18H;第3行有键按下,行首键码#18HALKP:ADDA,R4;求键码,键码=行首键码+列号PUSHACC;键码进栈保护LK3:ACALLKS1;等待键释放JNZLK3;键未释放,等待POPACC;键释放,键码ARET;键扫描结束,出口状态(A)=键码NEXT:INCR4;准备扫描下一列,列号加1MOVA,R2;取列号送累加器AJNBACC.7,KEND;判断8列扫描否?扫描完返回RLA;扫描字左移一位,变为下一列扫描字MOVR2,A;扫描字送入R2AJMPLK4;转下一列扫描KEND:AJMPKEY1TM12ms:MOV R7,#18H;延时12 ms子程序TM1:MOV R6,#0FFHTM6:DJNZ R6,TM6 DJNZ R7,TM1 RET2)定时扫描工作方式键盘上有键闭合否开始KM=1KP=1返回1 KM0 KM0 KP图5.8定时扫描方式程序框图查询键码1 KPNNNYYY3)中断工作方式计算机应用系统工作时,并不经常需要键输入。但无论是查询工作方式还是定时扫描工作方式,CPU经常处于空扫描状态。为了提高CPU的效率,可采用中断工作方式。这种工作方式是当键盘上有键按下时,向CPU发一个中断请求信号,CPU响应中断后,在中断服务程序中扫描键盘,执行键功能程序。中断请求信号的接口电路可参考图5.5(a)。中断服务程序中应完成键识别、消除抖动、排除多次执行键功能操作等功能,可参考查询工作方式键盘程序。4.2 显示及显示器接口显示及显示器接口4.2.1 LED显示器结构与原理显示器结构与原理图图5.9 七段显示块管脚与结构图七段显示块管脚与结构图 表表5.1 七段七段LED的段选码的段选码显示字符共阴极段选码共阳极段选码显示字符共阴极段选码共阳极段选码03FHC0HC39HC6H106HF9HD5EHA1H25BHA4HE79H86H34FHB0HF71H8EH466H99HP73H8CH56DH92HU3EHC1H67DH82H31HCEH707HF8Hy6EH91H87FH80H8.FFH00H96FH90H“灭”00HFFHA77H88HB7CH83H4.2.2 LED显示器与显示方式显示器与显示方式图5.10N位LED显示器1LED静态显示方式静态显示方式LED工作在静态显示方式下,共阴极接地或共阳极接+5V;每一位的段选线(ag、dp)与一个8位并行I/O口相连,如图5.10所示。该图表示了一个4位静态LED显示器电路,显示器的每一位可独立显示,只要在该位的段选线上保持段选码电平,该位就能保持相应的显示字符。由于每一位由一个8位输出口控制段选码,故在同一时刻各位可以显示不同的字符。N位静态显示器要求有N8根I/O口线,占用I/O口线较多。故在位数较多时往往采用动态显示方式。2LED动态显示方式动态显示方式图5.118位LED动态显示器电路七段译码器BCD码动态扫描时序图返回总电流为50mADS4DS3DS2DS1DS0DS4DS3DS2DS1DS0 动态扫描时序图00H 01H 02H 03H 04H万位 仟位 佰位 十位 个位位扫描万位仟位佰位十位个位BCD码返回上一次返回4.2.3 LED显示器接口显示器接口1硬件译码显示器接口硬件译码显示器接口图图5.12 MC14495内部逻辑与引脚图内部逻辑与引脚图图5.13使用MC14495的多位LED静态显示接口MC14499MC14499是串行接口的是串行接口的BCDBCD码显示译码器,可驱动四位码显示译码器,可驱动四位LEDLED显示器。显示器。硬件译码显示器接口(硬件译码显示器接口(2)MC14499MC14499的数据格式的数据格式一帧串行数据要20位。MC14499MC14499的串行输入时序要求的串行输入时序要求MC14499MC14499的典型应用的典型应用-用并行接口驱动用并行接口驱动MC14499MC14499以以30H32H30H32H为显示缓冲区,编写显示驱动程序。为显示缓冲区,编写显示驱动程序。CLK EQU P1.2ENB EQU P1.0DATA EQU P1.1DIS:CLR ENB CLR CLK MOV R0,#30H DIS2:MOV R2,#08H MOV A,R0 INC R0DIS1:RLC A SETB CLK MOV DATA,C CLR CLK DJNZ R2,DIS1 CJNE R0,#33H,DIS2 RET30H31H32H用串行接口驱动用串行接口驱动MC14499MC14499几个问题几个问题:串行接口工作于什么方式?为什么?CPU的晶振频率可用到多高?8031串行接口传送数据时,是先发低位还是高位呢?与MC14499的要求是否矛盾?怎么处理?MAIN:MOV SCON,#00000000B MOV PCON,#00H LCALL DIS .以以30H32H30H32H为显示缓冲区,编写显示驱动程序。为显示缓冲区,编写显示驱动程序。DIS:MOV R0,#DISBUF MOV R2,#03HDIS2:MOV A,R0 MOV R3,#08HDIS1:RLC A XCH A,B RRC A XCH A,B DJNZ R3,DIS1 MOV SBUF,B JNB TI,$CLR TI INC R0 DJNZ R2,DIS2 RET2软件译码显示器接口软件译码显示器接口图图5.14 通过扩展通过扩展8155 I/O口控制的口控制的8位位LED动态显示接口动态显示接口 3动态显示程序设计:动态显示程序设计:78H7FH为显示缓冲器为显示缓冲器MAIN:MOVA,#00000011B;8155初始化MOVDPTR,#7F00H;使DPTR指向8155控制寄存器端口MOVXDPTR,AMA1:LCALLDISPLAYSJMPMA1DISPLAY:MOVR0,#78H;动态显示初始化,使R0指向缓冲区首址MOVR3,#7FH;首位位选字送R3MOVA,R3;LD0:MOVDPTR,#7F01H;使DPTR指向PA口MOVXDPTR,A;选通显示器低位(最右端一位)INCDPTR;使DPTR指向PB口MOVA,R0;读要显示数ADDA,#DATA;调整距段选码表首的偏移量MOVCA,A+PC;查表取得段选码MOVXDPTR,A;段选码从PB口输出ACALLDL1;调用1ms延时子程序INCR0;指向缓冲区下一单元MOVA,R3;位选码送累加器AJNBACC.0,LD1;判断8位是否显示完毕,显示完返回RRA;未显示完,把位选字变为下一位选字MOVR3,A;修改后的位选字送R3AJMPLD0;循环实现按位序依次显示LD1:RETADD A,#0DHDSEG:DB3FH,06H,5BH;4FH,66H,6DH,7DH;段码表DB07H,7FH,6FH,77H,7CH,39H,5EH,79HDL1:MOVR7,#02H;延时子程序DL:MOVR6,#0FFHDL0:DJNZR6,DL6DJNZR7,DLRET4.2.4 键盘、显示器组合接口键盘、显示器组合接口1)键盘、显示器组合接口电路)键盘、显示器组合接口电路图5.15是一个采用8155并行扩展口构成的键盘、显示器组合接口电路。图中设置了32个键。如果多使用PC口线,可以增加按键,最多可达88=64个键。可根据需要进行设置。LED显示器采用共阴极。段选码由8155PB口提供,位选码由PA口提供。键盘的列输入由PA口提供,与显示器的位选输入公用,行输入由PC0PC3提供。显然,因为键盘与显示器公用了PA口,比单独接口节省了一个I/O口。1用通用的用通用的I/O口扩展键盘、显示接口电路口扩展键盘、显示接口电路图图5.15 8155扩展扩展I/O口的键盘、显示器组合接口口的键盘、显示器组合接口 2)软件设计)软件设计LED采用动态显示、软件译码,键盘采用逐列扫描查询工作方式。由于键盘与显示做成一个接口电路,因此在软件中合并考虑键盘查询与动态显示,键盘消抖的延时子程序可用显示子程序替代。相应的程序如下:KD1:MOVA,#03H;初始化8155PA、PB口为基本输出,PC口为输入MOVDPTR,#7F00HMOVXDPTR,AKEY1:ACALLKS1JNZLK1ACALLDISPLAY;调用显示子程序实现延时,防止抖动引起按键拒认AJMPKEY1;延时后再检测键盘LK1:ACALLDISPLAY;调用两次显示实现延时,防止抖动引起误处理ACALLDISPLAYACALLKS1JNZLK2ACALLDISPLAYAJMPKEY1LK2:MOVR2,#07FHMOVR4,#00HLK4:MOVDPTR,#7F02HMOVA,R2MOVXDPTR,AINCDPTRMOVXA,DPTRJBACC.0,LONEMOVA,#00HAJMPPADDLONE:JBACC.1,LTWOMOVA,#08HAJMPPADDLTWO:JBACC.2,LTHRMOVA,#10HAJMPPADDLHR:JBACC.3,NEXTMOVA,#18HPADD:ADDA,R4PUSHACCLK3:ACALLDISPLAYACALLKS1JNZLK3POPACCRETNEXT:INCR4MOVA,R2JNBACC.0,KENDRRAMOVR2,AAJMPLK4KEND:AJMPKEY12.用串行接口扩展键盘显示接口用74164串入并出移位芯片扩展键盘显示模块,见P174图4.3-21用74164与MC14499等芯片组合产生键盘显示模块,见P178图4.3-243.用专用的键盘显示芯片扩展,如8279、CH451等。4.6 8279构成的动态显示电路使用单片机或通过使用单片机或通过8255/81558255/8155构成的动态键盘扫描构成的动态键盘扫描/数据显数据显示电路缺点是要占用示电路缺点是要占用CPUCPU的资源,以保证不断刷新动态扫的资源,以保证不断刷新动态扫描信号,这样大大的降低了单片机的使用效率。描信号,这样大大的降低了单片机的使用效率。可编程键盘扫描可编程键盘扫描/动态显示芯片动态显示芯片82798279是一个内部具有动态是一个内部具有动态键盘扫描键盘扫描/数据显示功能的芯片。数据显示功能的芯片。实现数据的动态显示:单片机实现数据的动态显示:单片机将要显示的数据送到将要显示的数据送到82798279的的RAMRAM中即可实现动态的数据显示;中即可实现动态的数据显示;自动实现键盘扫描,并将自动实现键盘扫描,并将发生按键的键值自动的送出。发生按键的键值自动的送出。由8279构成的8位LED动态显示电路 8279 OUTB0OUTB3OUTA0OUTA3/CS SL0SL1SL2SL3DB0 :DB7 驱动电路3-8译码器由可编程键盘/显示芯片8279 构成的8位LED数码管动态显示电路框图所有的“动态显示和键盘扫描”均有8279 内部自动完成。返回上一次4.74.7可编程键盘扫描可编程键盘扫描/显示芯片显示芯片8279 8279 内部结构图内部结构图FIFO/传感器RAM状态键盘抖动和控制I/O控制数据缓冲器8*8FIFO/传感器RAM控制和时序寄存器显示地址寄存器16*8显示用RAM回送扫描计数器时序和控制显示寄存器OUTA03、OUTB03/BDSL03RL07移位控制CLKRESETDB07/RD/WR/CSA0IRQ返回前一次返回4.8:8279内部的主要结构输入输出数据缓冲器:输入输出数据缓冲器:用来接收用来接收CPU CPU 送来得命令或数据,送来得命令或数据,82798279与与CPUCPU之间的数据通道。之间的数据通道。控制与时序寄存器:控制与时序寄存器:用来寄存显示与键盘的工作方式,并用来寄存显示与键盘的工作方式,并通过译码产生相应的操作。通过译码产生相应的操作。扫描计数器:扫描计数器:用于输出用于输出动态显示动态显示和和键盘键盘的的扫描信号扫描信号。在在“编码方式编码方式”中该电路输出中该电路输出二进制计数器的代码二进制计数器的代码(此(此时外部必须使用一个译码器对其译码产生真正的扫描信号。时外部必须使用一个译码器对其译码产生真正的扫描信号。此方式的特点:此方式的特点:4 4条线可以产生多达条线可以产生多达1616位扫描信号。位扫描信号。在在“译码方式译码方式”时,电路直接输出时,电路直接输出4 4选选1 1的扫描信号的扫描信号(外部不必使用译码器),缺点是只能产生(外部不必使用译码器),缺点是只能产生4 4位扫描线的位扫描线的信号。信号。回复缓冲器、键盘消抖及控制:回复缓冲器、键盘消抖及控制:通过通过RL0-7RL0-7用来接收键盘用来接收键盘的数据,并自动加入的数据,并自动加入10mS10mS的延时进行防抖。的延时进行防抖。FIFO/FIFO/传感器传感器 RAMRAM及状态寄存器:及状态寄存器:双重功能的双重功能的8*88*8位位RAMRAM。在键盘或选通方式中在键盘或选通方式中:它是:它是FIFOFIFO寄存器。进入和寄存器。进入和读出数据是按读出数据是按FIFOFIFO规则进行的。此时规则进行的。此时FIFOFIFO状态字用状态字用来存放来存放FIFO RAMFIFO RAM的工作状态。每当的工作状态。每当FIFOFIFO不空时(由不空时(由键盘数据)键盘数据),IRQ=1,IRQ=1向向CPUCPU发中断申请。发中断申请。在传感器矩阵方式时在传感器矩阵方式时:它又是传感器:它又是传感器RAMRAM。用来。用来存放每一个传感器的状态存放每一个传感器的状态,如果传感器的状态发生变如果传感器的状态发生变化,则是化,则是IRQ=1IRQ=1向向CPUCPU发中断申请。发中断申请。显示显示RAM RAM 和显示地址寄存器:和显示地址寄存器:由由1616*8 8位位RAMRAM构成构成,可以存放可以存放1616个显示用的数个显示用的数据。据。82798279在动态显示数据时在动态显示数据时,就是将此就是将此RAMRAM单元单元中的数据轮流从显示中的数据轮流从显示RAMRAM中输出。中输出。数据的输出分为两组数据的输出分为两组OUTAOUTA、OUTBOUTB。它们可以。它们可以单独使用也可以单独使用也可以合并为合并为8 8位位。在输出。在输出RAMRAM中的数中的数据时据时,扫描电路扫描电路同步的发出与位对应的显示驱动位同步的发出与位对应的显示驱动位扫描信号扫描信号,以实现数据的动态显示。以实现数据的动态显示。显示地址寄存器是寄存显示地址寄存器是寄存CPU CPU 进行读进行读/写的显示写的显示RAMRAM地址地址,它可由命令字中的低它可由命令字中的低4 4位来设定位来设定,也可以也可以按照命令字中的按照命令字中的AIAI的状态自动加一或自动减一。的状态自动加一或自动减一。返回4.9:8279引脚说明DB0DB0DB7:DB7:具有三态的双向数据总线。用于具有三态的双向数据总线。用于82798279与外部与外部 CPUCPU之间传递命令(控制字)和数据。之间传递命令(控制字)和数据。CLK CLK :系统时钟输入。用于系统时钟输入。用于82798279内部产生工作的时序。内部产生工作的时序。RESET RESET:复位信号输入端。当复位信号输入端。当RESET=1RESET=1时时,8279,8279被复位,被复位,复位后复位后82798279内部状态如下内部状态如下 1 1,1616个字符显示,左入口;个字符显示,左入口;2 2,编码扫描键盘,双键锁定;,编码扫描键盘,双键锁定;3 3,程序时钟编程为,程序时钟编程为3131。/CS/CS:片选控制端。低电平有效;片选控制端。低电平有效;A0 A0 :缓冲器选择端。缓冲器选择端。A0=1A0=1时时:若若CPUCPU对对82798279执行写入操执行写入操 作时作时,写入是命令字;若写入是命令字;若CPUCPU从从82798279读数据时,读出读数据时,读出 的是的是82798279的状态。的状态。A0=0A0=0时时:写入和读出的均为数据。写入和读出的均为数据。电路图逻辑结构图/RD/RD、/WR:/WR:读写控制线。来自读写控制线。来自CPUCPU的控制信号,控制外部对的控制信号,控制外部对 82798279的读写操作。的读写操作。IRQ :IRQ :中断请求信号。输出线,高电平有效。中断请求信号。输出线,高电平有效。SL0SL0SL3:SL3:扫描输出线。作为键盘、显示器的扫描信号,扫描输出线。作为键盘、显示器的扫描信号,通过编程可定为通过编程可定为“编码输出编码输出”(外接(外接4-164-16译码译码器产器产 生生1616选选1 1的扫描信号);也可设定为的扫描信号);也可设定为“译码输出译码输出”直接输出选的直接输出选的4 4位扫描信号。位扫描信号。RL0RL0RL7:RL7:回复输入线。用来接收扫描键盘的回复信号。回复输入线。用来接收扫描键盘的回复信号。SHIFTSHIFT:移位信号的输入线,高电平有效。该信号是移位信号的输入线,高电平有效。该信号是82798279 键盘数据的次高位(键盘数据的次高位(D6D6位),通常用来补充键盘位),通常用来补充键盘 开关的功能,如键盘的上、下挡功能。在传感器方开关的功能,如键盘的上、下挡功能。在传感器方 式和选通方式中,式和选通方式中,SHIFTSHIFT无效。无效。电路图逻辑结构图CNTL/STB:CNTL/STB:控制控制/选通输入线,高电平有效。键盘方式时该选通输入线,高电平有效。键盘方式时该输入信号是键盘信号的最高位(输入信号是键盘信号的最高位(D7D7),通常用来扩充键盘开通常用来扩充键盘开关的控制功能,作为键盘控制功能键用。在传感器方式和关的控制功能,作为键盘控制功能键用。在传感器方式和选通方式中,选通方式中,CNTLCNTL无效。在选通方式中,该信号的上升沿无效。在选通方式中,该信号的上升沿可将来可将来RL0RL0RL7RL7的数据存放到的数据存放到FIFO RAMFIFO RAM中。中。OUTA0OUTA0OUTA3:OUTA3:A A组显示输出线组显示输出线(接接LEDLED的的e eg,dpg,dp划划)。OUTB0OUTB0OUTB3:OUTB3:B B组显示输出线组显示输出线(接接LEDLED的的a ad d划划)。上面两组线均为显示用的信息输出线上面两组线均为显示用的信息输出线,数据的输出与数据的输出与SL0SL0SL7SL7的数字扫描信号同步的数字扫描信号同步,实现数据的动态扫描显示。实现数据的动态扫描显示。A A组与组与B B组输出线可以单独使用(如输出组输出线可以单独使用(如输出BCDBCD码经外部的码经外部的“BCD-BCD-七段译码器七段译码器”与显示器连接);也可以将与显示器连接);也可以将A A、B B两组两组合并使用,直接输出七段的合并使用,直接输出七段的“字形码字形码”供显示器使用。供显示器使用。/BD:/BD:消隐显示输出线,低电平有效。该输出信号在数字切换消隐显示输出线,低电平有效。该输出信号在数字切换显示或使用显示消隐命令时,控制显示器将显示消隐。显示或使用显示消隐命令时,控制显示器将显示消隐。返回逻辑结构图电路图4.10:8279的命令字和状态字82798279是可编程接口芯片,其工作方式、工作特点等均是通是可编程接口芯片,其工作方式、工作特点等均是通过过CPUCPU向向82798279发送命令实现的,因此对发送命令实现的,因此对82798279的编程实际的编程实际上就是向上就是向82798279写入命令字的过程。写入命令字的过程。82798279共有共有8 8条控制字,命令字是由每个字节中的条控制字,命令字是由每个字节中的D7D7D5D5为特征区分。具体的命令字格式如下:为特征区分。具体的命令字格式如下:D7 D6 D5 D0命令字特征位 000111(1),键盘/显示方式命令字D7,D6,D5=000:D7,D6,D5=000:方式命令字的特征位。方式命令字的特征位。D3,D4D3,D4=DD:=DD:显示工作方式设定。显示工作方式设定。0 00 0:8:8位字符显示,左入口(打字机方式);位字符显示,左入口(打字机方式);0 0 1 1:16:16位字符显示,左入口(打字机方式);位字符显示,左入口(打字机方式);1 01 0:8:8位字符显示,右入口(计算器方式);位字符显示,右入口(计算器方式);1 11 1:16:16位字符显示,右入口(计算器方式)。位字符显示,右入口(计算器方式)。0 00 00 0D DD DK KK KK KD7 D6 D5 D4 D3 D2 D1 D0命令字特征位 显示工作方式 键盘工作方式 显示方式的左、右入口过程示意图显示方式的左、右入口过程示意图设向设向82798279的显示的显示RAMRAM的的0000000001110111单元逐一存放单元逐一存放0 07 7的字形码。的字形码。1 12 21 11 12 23 34 45 56 67 78 81 11 12 23 34 45 56 67 78 81 12 2左入口:填入式打字机模式右入口:移位式计算器模式显示RAM地址0000显示RAM地址0000显示RAM地址0000显示RAM地址0000数码管位置写第1个数写第2个数写第8个数写第1个数写第2个数写第8个数数码管数码管D2,D1,D0=KKK:D2,D1,D0=KKK:设定键盘工作方式。设定键盘工作方式。0 0 00 0 0:编码扫描键盘,双键锁定;编码扫描键盘,双键锁定;0 0 10 0 1:译码扫描键盘,双键锁定;译码扫描键盘,双键锁定;0 1 00 1 0:编码扫描键盘,编码扫描键盘,N N键轮回;键轮回;0 1 10 1 1:译码扫描键盘,译码扫描键盘,N N键轮回;键轮回;1 0 01 0 0:编码扫描传感器;编码扫描传感器;1 0 11 0 1:译码扫描传感器;译码扫描传感器;1 1 01 1 0:选通输入,编码显示扫描;选通输入,编码显示扫描;1 1 11 1 1:选通输入,译码显示扫描;选通输入,译码显示扫描;【说明说明】:.“.“双键锁定双键锁定”指有指有2 2个键按下时,取最后弹起的键;个键按下时,取最后弹起的键;.“N.“N键轮回键轮回”指有指有N N个键按下时,根据它们按下的顺序依个键按下时,根据它们按下的顺序依 次存入次存入FIFO RAMFIFO RAM中。中。.“.“编码输出编码输出”指按二进制计数器规律输出数据;指按二进制计数器规律输出数据;.“.“译码输出译码输出”指按译码器输出的规律输出指按译码器输出的规律输出(如(如4 4选选1)1)。(2),程序时钟命令82798279内部有自己的时序电路,其时钟信号来源于外部输入内部有自己的时序电路,其时钟信号来源于外部输入的的CLKCLK,为了使输入的时钟满足内部,为了使输入的时钟满足内部100KHz100KHz的要求,就的要求,就要对外部输入的要对外部输入的CLKCLK进行适当的分频。进行适当的分频。D4,D3,D2,D1,D0=PPPPP:D4,D3,D2,D1,D0=PPPPP:分频系数范围:分频系数范围:2 23131。0 00 01 1P PP PP PP PP PD7 D6 D5 D4 D3 D2 D1 D0命令字特征位 对输入信号CLK的分频系数(3),读FIFO RAM命令FIFO RAMFIFO RAM为为存放扫描键盘时获得的存放扫描键盘时获得的“键值键值”数据数据,容量,容量为为8*88*8。CPU CPU 读读82798279的数据口的数据时,可能有两类数据:的数据口的数据时,可能有两类数据:,FIFO RAMFIFO RAM中扫描键盘时获得的中扫描键盘时获得的“键值键值”数据;数据;,显示,显示RAMRAM中的显示数据。中的显示数据。所以必须事先通过命令字来选择读两者其一。所以必须事先通过命令字来选择读两者其一。D4=AI:D4=AI:地址增量控制。若地址增量控制。若AI=1,AI=1,在每次读在每次读FIFO RAMFIFO RAM后,后,地址自动地址自动+1+1。否则读出后,地址不变。否则读出后,地址不变。AIAI的使用简化了编程,不用每读一次数据给出一个地址。的使用简化了编程,不用每读一次数据给出一个地址。0 01 10 0AIAIX XA AA AA AD7 D6 D5 D4 D3 D2 D1 D0命令字特征位 地址自动增量 FIFO RAM地址 (4),读显示 RAM命令显示显示RAMRAM用来存放用来存放82798279动态显示的数据,容量动态显示的数据,容量16*816*8。在显示在显示RAMRAM中,数据的存放顺序与在数码管上显示的数据中,数据的存放顺序与在数码管上显示的数据顺序是相对应得。因此,要显示的数据要按顺序存放到显顺序是相对应得。因此,要显示的数据要按顺序存放到显示示RAMRAM中。中。在在82798279的显示方式中有的显示方式中有8 8位显示和位显示和1616位显示两种,对应占位显示两种,对应占用显示用显示RAM8RAM8字节或字节或1616字节。字节。0 01 11 1AIAIA AA AA AA AD7 D6 D5 D4 D3 D2 D1 D0命令字特征位 地址自动增量 显示 RAM地址 (5),写显示RAM命令在向在向82798279的数据口写入要显示的数据前,要先向的数据口写入要显示的数据前,要先向82798279的的命令命令/状态口写入一个状态口写入一个“写显示写显示RAM”RAM”命令。其作用是通过命令。其作用是通过“写显示写显示RAM”RAM”命令设定命令设定要写入的显示数据到显示要写入的显示数据到显示RAMRAM中的中的地址。地址。例如:当例如:当82798279设定为设定为“8 8位右入口位右入口”工作方式时,要显示工作方式时,要显示的的8 8位数据就要从位数据就要从00000000地址依次写入(地址依次写入(AI=1AI=1),这样命令),这样命令字的格式为字的格式为 10010000B 10010000B 既既90H90H。1 10 00 0AIAIA AA AA AA AD7 D6 D5 D4 D3 D2 D1 D0命令字特征位 地址自动增量 显示 RAM地址 (6),显示禁止写入/消隐命令此命令用于此命令用于OUTA,OUTBOUTA,OUTB分为两组分为两组4 4位显示方式时使用。位显示方式时使用。D3,D2=IW/A,IWB:D3,D2=IW/A,IWB:分别屏蔽分别屏蔽A A或或B B组的显示。组的显示。如:如:IW/A=1IW/A=1时禁止写入时禁止写入A A组显示组显示RAMRAM。当当CPU CPU 向向82798279的的B B组显示组显示RAM
展开阅读全文