4.3键盘和LED显示实例..ppt_第1页
4.3键盘和LED显示实例..ppt_第2页
4.3键盘和LED显示实例..ppt_第3页
4.3键盘和LED显示实例..ppt_第4页
4.3键盘和LED显示实例..ppt_第5页
已阅读5页,还剩113页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第三节、键盘/显示器接口实例,一、利用8155芯片实现键盘/显示器接口二、利用8051的串行口实现键盘/显示器接口三、利用8279专用键盘/显示器接口芯片实现键盘/显示器接口,四、利用7289芯片实现键盘/显示器接口,一、利用8155芯片实现键盘/显示器接口,1.接口电路,一、利用8155芯片实现键盘/显示器接口,1.接口电路,8031外扩一片8155,8155的RAM地址为7E007EFFH,I/O口地址为7F00H7F05H。8155的PA口为输出口,控制键盘的列线的电位,同时又是6位显示器的扫描口。PB口作为显示器的段数据口,8155的PC口作为键输入口,PC0PC3接4根行线。图中75452为反相驱动器,7407为同相驱动器。,一、利用8155芯片实现键盘/显示器接口,2.接口程序设计,对于图中的6位显示器,在8031内部RAM中设置6个显示缓冲单元79H7EH,分别存放显示器的6位字符代码,显示时先通过软件转换为段码。8155的PA口输出位选择信号,8155H的PB口输出相应位的段数据。,8155芯片实现键盘/显示器接口程序,显示子程序清单:,DIR:MOVDPTR,#7F00H;8155初始化MOVA,#03HMOVXDPTR,AMOVR0,#79H;置缓冲器指针初值MOVR3,#01H;扫描位初值LD0:MOVDPTR,#7F02H;关显示MOVA,#00HMOVXDPTR,AMOVDPTR,#7F01H;扫描模式8155PA口MOVA,R3,8155芯片实现键盘/显示器接口程序,MOVXDPTR,AINCDPTRMOVA,R0;取显示数据ADDA,#17H;加偏移量MOVCA,A+PC;查表取段数据DIR1:MOVXDPTR,A;段数据8155PB口ACALLDL1;延时1msINCR0MOVA,R3JBACC.5,LD1;6位都显示完?RLA;未完,准备显示下一位MOVR3,A,8155芯片实现键盘/显示器接口程序,AJMPLD0LD1:RETDL1:MOVR7,#02H;延时子程序DL:MOVR6,#0FFHDL6:DJNZR6,DL6DJNZR7,DLRETDSEG:DB3FH,06H,;段数据表,一、利用8155芯片实现键盘/显示器接口,2.接口程序设计,键输入子程序,先调用KS1子程序,判断有无键闭合。若有键闭合,则进一步分析此按键在哪一行、哪一列,并进而获得键读数。程序中多处调用显示子程序,是为了使显示器保持稳定显示,有时还起到延时的作用。,8155芯片实现键盘/显示器接口程序,键输入子程序清单:,KEY1:ACALLKS1;调用判有无键闭合子程序JNZLK1;有键闭合,转NI:ACALLDIR;无键,调用显示子程序延迟6msAJMPKND;无键返回LK1:ACALLDIR;延迟12msACALLDIRACALLKS1;调用判有无键闭合子程序JNZLK2;有键闭合ACALLDIR;无键,调用显示子程序延迟6msAJMPKND;返回,8155芯片实现键盘/显示器接口程序,LK2:MOVR2,#0FEH;扫描模式R2MOVR4,#00H;列计数器置初值LK4:MOVDPTR,#7F01H;扫描模式8155PA口MOVA,R2MOVXDPTR,AINCDPTRINCDPTRMOVXA,DPTR;读8155PC口JBACC.0,LONE;0行无键,转判1行MOVA,#00H;0行有键闭合,首键号0AAJMPLKP,8155芯片实现键盘/显示器接口程序,LONE:JBACC.1,LTWO;1行无键,转判2行MOVA,#08H;1行有键闭合,首键号8AAJMPLKPLTWO:JBACC.2,LTHR;2行无键,转判3行MOVA,#10H;2行有键闭合,首键号10HAAJMPLKPLTHR:JBACC.3,NEXT;转判下一列MOVA,#18H;3行有键闭合,首键号18HALKP:ADDA,R4PUSHA;键号进栈保护,8155芯片实现键盘/显示器接口程序,LK3:ACALLDIR;判键释放否ACALLKS1JNZLK3POPA;键号ARETNEXT:INCR4;列计数器加1MOVA,R2;判是否已扫描到最后一列JNBACC.7,KND;是,无键入再查RLA;未到最后列,扫描模式左移一位MOVR2,AAJMPLK4,8155芯片实现键盘/显示器接口程序,KND:MOVA,#0FFH;无键,置A为全1,返回RETKS1:MOVDPTR,#7F01H;全“0”扫描口MOVA,#00HMOVXDPTR,AINCDPTRINCDPTRMOVXA,DPTR;读入键状态CPLAANLA,#0FH;屏蔽高位RET,二、利用8051的串行口实现键盘/显示器接口,应用8051的串行口方式0输出,在串行口外接74LS164移位寄存器,构成键盘/显示器接口,其硬件接口电路如下图所示:,二、利用8051的串行口实现键盘/显示器接口,二、利用8051的串行口实现键盘/显示器接口,图中下边的8个74LS164作为8位七段显示器的静态显示口,上边的74LS164作为键扫描输出口,8051的P3.4、P3.5作为键输入线,P3.3作为同步脉冲输出控制线。这种静态显示方式显示亮度高、不闪烁。CPU不必频繁地为显示服务,软件设计比较简单,从而使单片机有更多的时间处理其它事务。下面分别列出显示子程序和键盘扫描子程序的清单。,二、利用8051的串行口实现键盘/显示器接口,显示子程序:,DIR:SETBP3.3;开放显示输出MOVR7,#08H;8位显示器计数MOVR0,#7FH;7FH78H为显示缓冲器DL0:MOVA,R0;取出要显示的数ADDA,#0DH;加上偏移量MOVCA,A+PC;查表取出字形数据MOVSBUF,A;送出显示DL1:JNBTI,DL1;输出完否?CLRTI;完,清中断标志DECR0;准备再取下一个数DJNZR7,DL0CLRP3.3;关闭显示器输出RET;返回,二、利用8051的串行口实现键盘/显示器接口,显示子程序:,SEGTAB:DB0C0H,0F9H,0A4H,0B0H,99H;0,1,2,3,4DB92H,82H,0F8H,90H,88H;5,6,7,8,9DB83H,0C6H,0A1H,86H,8FH;A,B,C,D,EDB0BFH,8CH,0FFH,0FFH;F,-,P,暗,键盘扫描子程序:,KEY:MOVA,#00HMOVSBUF,A;使扫描键盘的164输出为00HKL0:JNBTI,KL0;输出完否?CLRTI;清0中断标志KL1:JNBP3.4,PK1;第一行键中有闭合键吗?有转JBP3.5,NOKEY;在第二行键有闭合键吗?无转,二、利用8051的串行口实现键盘/显示器接口,键盘扫描子程序:,PK1:ACALLDL10;延时JNBP3.4,PK2;是否抖动引起的?不是,转PK2JBP3.5,NOKEY;是抖动引起的PK2:MOVR7,#08H;不是抖动引起的,由R7控制8列MOVR6,#0FEH;判别是哪个键被按下,从最左开始MOVR3,#00H;列计数,最左列开始,键读数由;该行首键号加上列号码MOVA,R6KL5:MOVSBUF,AKL2:JNBTI,KL2;等待串行口发送完CLRTIJNBP3.4,PKONE;是第一行某键否?是,转JBP3.5,NEXT;是第二行某键否?不是,转,二、利用8051的串行口实现键盘/显示器接口,键盘扫描子程序:,MOVR4,#08H;第二行有键被按下,;首键号08HR4AJMPPK3PKONE:MOVR4,#00H;第一行有键被按下,;首键号00HR4PK3:MOVSBUF,#00H;等待键释放KL3:JNBTI,KL3CLRTIKL4:JNBP3.4,KL4;检测键释放JNBP3.5,KL4MOVA,R4;键释放,取得键码ADDA,R3;键码等于行首键号列号码RET,二、利用8051的串行口实现键盘/显示器接口,键盘扫描子程序:,NEXT:MOVA,R6;判下一列键是否按下RLAMOVR6,AINCR3DJNZR7,KL5;8列键都检查完否?未完继续NOKEY:MOVA,#0FFH;完了,无键,置A为全1RET;返回DL10:MOVR7,#0AH;延时10ms子程序DL:MOVR6,#0FFHDL6:DJNZR6,DL6DJNZR7,DLRET,三、利用8279专用键盘显示器接口芯片实现键盘显示器接口,8279是Intel公司生产的专用可编程键盘和显示器接口芯片。可实现对键盘/显示器的自动扫描,并识别键盘上闭合键的键号,不仅可以大大节省CPU对键盘/显示器的操作时间,而且显示稳定,接口程序简单。,三、利用8279专用键盘显示器接口芯片实现键盘显示器接口,(一)8279的引脚及内部结构,8279的引脚及逻辑结构图如下所示:,三、利用8279专用键盘显示器接口芯片实现键盘显示器接口,(一)8279的引脚及内部结构,8279的内部结构图如下所示:,(一)8279的引脚及内部结构,1.I/O控制和数据缓冲器,双向的三态数据缓冲器将内部总线和外部总路线DB07连接,用于传送CPU和8279之间的命令、数据和状态。CS片选信号,低电平有效。A0:用以区分信息的特性。当A0为1时,CPU写入8279的信息为命令,CPU从8279读出的信息为状态。当A0为0时,I/O信息都为数据。,(一)8279的引脚及内部结构,2.控制逻辑,控制与定时寄存器用于寄存键盘及显示器的工作方式,锁存操作命令,通过译码产生相应的控制信号,使8279的各个部件完成一定的控制功能。定时控制逻辑含有一个可编程的5位计数器,对外部输入时钟信号进行分频,以产生100kHz的内部定时信号。外部时钟输入信号的周期不小于500ns。,(一)8279的引脚及内部结构,3.扫描计数器,扫描计数器有两种输出方式:外部译码方式,计数器以二进制方式计数,4位计数状态从扫描线SL0SL3输出。经外部译码器译出16位扫描线;内部译码方式,即扫描计数器的低二位经片内译码器译码后从SL0SL3输出,直接作为扫描信号。,(一)8279的引脚及内部结构,4.键输入控制,这个部件完成对键盘的自动扫描,锁存RL0RL7的键输入信息,搜索闭合键,去除键的抖动,并将键输入数据写入内部先进先出存贮器FIFORAM。,(一)8279的引脚及内部结构,5.FIFORAM和显示缓冲器RAM,8279具有8个先进先出(FIFO)的键输入缓冲器,并提供16个字节的显示缓冲器RAM。将段码写入显示缓冲器RAM,8279自动对显示器扫描,将其内部显示缓冲器RAM中的数据在显示器上显示出来。,(一)8279的引脚及内部结构,5.FIFORAM和显示缓冲器RAM,IRQ为中断请求输出线,高电平有效。当FIFORAM缓冲器中存有键盘上闭合键的信息时,IRQ线升高,向CPU请求中断,当CPU将缓冲器中的输入键信息全部读取时,中断请求线下降为低电平。,(一)8279的引脚及内部结构,5.FIFORAM和显示缓冲器RAM,SHIFT、CNTL/STB为控制键输入线,由内部拉高电阻拉成高电平,也可由外部控制按键拉成低电平。RL0RL7为反馈输入线,作为键输入线,由内部拉高电阻拉成高电平,也可由键盘上按键拉成低电平。,(一)8279的引脚及内部结构,5.FIFORAM和显示缓冲器RAM,SL0SL3为扫描输出线,用于对键盘显示器扫描。OUTB03、OUTA03为显示段数据输出线,可分别作为两个半字节输出,也可作为8位段数据输出口,此时OUTB0为最低位,OUTA3为最高位。,(一)8279的引脚及内部结构,5.FIFORAM和显示缓冲器RAM,BD为消隐输出线,低电平有效,当显示器切换时或使用显示消隐命令时,将显示消隐。RESET为复位输入线,高电平有效,当RESET输入端出现高电平时,8279被初始复位。,(二)8279的操作命令字,8279内部的命令寄存器和状态寄存器合用一个地址(由A0C/D1选中),对其写入的是命令,读出的是状态。8279共有8条命令,每条命令8位,用其中的高三位(特征位)来区分8条命令。,(二)8279的操作命令字,(1)键盘/显示器方式设置命令字,键盘工作方式选择,设置显示方式,特征位,(二)8279的操作命令字,(1)键盘/显示器方式设置命令字,D4D3两位用来设定显示方式,其定义如下:,(二)8279的操作命令字,(1)键盘/显示器方式设置命令字,CPU将显示数据写入缓冲器RAM单元,有左边输入和右边输入两种方式。左边输入地址为015的显示缓冲器,分别对应于显示器的0(左)位15(右)位。CPU依次从0地址或某一个地址开始将段数据写入显示缓冲器。当16个显示缓冲器都已写满(从0地址开始写,写了16次)时,第17次写,再从0地址开始写入,写入过程如下:,(二)8279的操作命令字,(1)键盘/显示器方式设置命令字,(二)8279的操作命令字,(1)键盘/显示器方式设置命令字,右边输入方式是移位输入方式,输入数据总是写入右边的显示缓冲器,数据写入显示缓冲器后,原来缓冲器的内容左移一个字节,原最左边显示器缓冲器的内容被移出。写入过程如下:在右边输入方式中,显示器的各位和显示缓冲器RAM的地址并不是对应的。,(二)8279的操作命令字,(1)键盘/显示器方式设置命令字,1,(二)8279的操作命令字,(1)键盘/显示器方式设置命令字,D2、D1、D0为键盘工作方式选择位,见下表:,(二)8279的操作命令字,(1)键盘/显示器方式设置命令字,键扫描方式:扫描线SL3SL0(或经外部译码后)和返回线RL7RL0与矩阵式键盘的行、列线相连,当有按键时8279自动识别,并将被按键的行列信息送入FIFORAM同时产生IRQ信号。,(二)8279的操作命令字,(1)键盘/显示器方式设置命令字,扫描传感矩阵方式:片内去抖动逻辑被禁止,能对每一行传感器的状态进行扫描,当扫描的行中任何一个列位状态发生变化时便自动产生IRQ信号,并将返回线状态直接送往传感器RAM(即FIFORAM),(二)8279的操作命令字,(1)键盘/显示器方式设置命令字,选通输入方式:返回线RL7RL0作为选通输入口,CNTL/STB作为选通信号输入端。在选通信号CNTL/STB上升沿将返回线上的数据传送到FIFORAM中。,(二)8279的操作命令字,(1)键盘/显示器方式设置命令字,双键互锁,当键盘中同时有两个以上的键被按下时,任何一个键的编码信息均不能进入FIFORAM中,直至仅剩下一键保持闭合时,该键的信息方能进入FIFO,这种工作方式可以避免部分误操作信号进入计算机。,(二)8279的操作命令字,(1)键盘/显示器方式设置命令字,N键依次读出方式:当多个键同时按下时,则所有键均以扫描顺序被识别,按键信息依次写入FIFORAM中。,(二)8279的操作命令字,(2)时钟编程命令字,8279的内部定时信号由外部的输入时钟经过分频后产生,分频系数由时钟编程命令字确定,时钟编程命令字格式如下:,分频系数,特征位,(二)8279的操作命令字,(2)时钟编程命令字,D4-D0为分频系数,可在231次分频中进行选择,将进入8279的时钟频率进行N次分频后,可获得8279内部所需的100khz的时钟。,(二)8279的操作命令字,(3)读FIFORAM命令字,特征位,起始地址,起始地址自动增量标志,(二)8279的操作命令字,(3)读FIFORAM命令字,在键扫描方式中,AI、AAA均被忽略,CPU读键输入数据时,总是按先进先出的规律读出,直至输入键全部读出为止。在传感器矩阵扫描中,若AI1,CPU则从起始地址开始依次读出,每次读出后地址自动加1;AI0时,CPU仅读一个单元的内容。,(二)8279的操作命令字,(4)写显示缓冲器RAM命令字,特征位,起始地址自动增量标志,起始地址,(二)8279的操作命令字,(4)写显示缓冲器RAM命令字,当CPU执行写显示缓冲RAM时,首先用该命令字给出要写入的显示缓冲器RAM的地址。四位二进制代码AAAA用来寻址显示缓冲器RAM的一个缓冲单元,若AI1,则CPU在第一次写入时须给出地址,以后每次写入,地址自动加1,直至所有显示缓冲器RAM全部写毕。,(二)8279的操作命令字,(5)读显示缓冲器RAM命令字,特征位,起始地址,起始地址自动增量标志,(二)8279的操作命令字,(5)读显示缓冲器RAM命令字,在CPU读显示数据之前,必须先输出读显示缓冲器RAM的命令。四位二进制代码AAAA用来寻址显示缓冲器RAM的一个缓冲单元,AI为自动增量标志,若AI1,则CPU每次读出后,地址自动加1。,(二)8279的操作命令字,(6)显示屏蔽消隐命令字,屏蔽A组显示缓冲器RAM,屏蔽B组显示缓冲器RAM,消隐A组显示输出,消隐B组显示输出,特征位,(二)8279的操作命令字,(6)显示屏蔽消隐命令字,高3位101为该命令字的特征位。IWA和IWB分别用以屏蔽A组和B组显示缓冲器RAM。在使用双4位显示器时,即OUTA0-3和OUTB0-3独立地作为两个半字节输出时,可改写显示缓冲器RAM中的低半字节而不影响高半字节的状态(D31),反之D21时可改写高半字节而不影响低半字节。BL位是消隐特征位,要消隐两组显示输出,必须使D0,D1同时为1,BL0时,则恢复显示。,(二)8279的操作命令字,(7)清除命令字,总清特征位,清除FIFORAM位,设置清除显示RAM的方式,特征位,(二)8279的操作命令字,(7)清除命令字,清除显示RAM大约需要100us,在此期间,不能向显示RAM写数据。,CDCDCD,(二)8279的操作命令字,(7)清除命令字,CA,0不清除,1清除FIFO和显示RAM,显示RAM清除方式由D3、D2决定。,用来置空FIFORAM,执行CF1的清除命令,FIFORAM被置空,使IRQ线复位,同时显示RAM的地址被置“0”。,CF,(二)8279的操作命令字,(8)结束中断/错误方式设置命令,其中:D7D6D5111为该命令的特征位。此命令有两种不同的作用。,特征位,(二)8279的操作命令字,(8)结束中断/错误方式设置命令,.作为结束中断命令。在传感器工作方式中。每当传感器状态出现变化时,扫描检测电路将其状态写入传感器RAM中,并启动中断逻辑,使IRQ变高,向CPU请求中断,并且禁止写入传感器RAM。此时,若传感器RAM读出地址自动增量标志AI1,CPU对传感器RAM的读出并不能清除IRQ,而必须通过给8279写入结束中断/错误方式设置命令(E1)才能使IRQ变低,结束传感器RAM的中断请求。,(二)8279的操作命令字,(8)结束中断/错误方式设置命令,.作为特定错误方式设置命令。在8279已被设定为键盘扫描N键依次读出方式以后,如果CPU给8279又写入结束中断/错误方式设置命令(E=1),则8279将以一种特定的错误方式工作。这种方式的特点是:在8279的消颤周期内,如果发现多个按键同时按下,则状态字中的错误特征位S/E将置1,并产生中断请求信号和阻止写入FIFORAM。,(二)8279的操作命令字,上述八种用于确定8279操作方式的命令字皆由D7D6D5特征位确定,输入8279后能自动寻址相应的命令寄存器。因此,写入命令字时唯一的要求是使数据选择信号A0=1。,(三)状态字节,8279的状态字节用于键输入和选通输入方式中,指出FIFORAM中的字符个数和是否出错,状态字的格式如下:,(三)状态字节,表示FIFORAM中数据的个数,为1时表示FIFORAM已满,当FIFORAM为空时,若CPU读FIFO则置“1”标志,当FIFORAM已满,又输入一个字符,发生溢出,该位置置1,错误的特征位,在清除命令执行期间该位为1,此时对显示RAM的写操作无效,(三)状态字节,错误特征位,1、在传感器矩阵方式,当几个传感器同时闭合时,该位置1。,2、在键扫描,N键依次读出,且工作在特定错误工作方式时,若S/E=1,表示出现了多键同时按下的错误。,(四)输入数据格式,在键扫描方式中,键输入数据格式如下:,指出输入键据的列号(RL0-7状态确定),指出输入键所在的行号(扫描计数值),指出控制键SHIFT的状态。,指出控制键CNTL的状态。,(四)输入数据格式,控制键CNTL、SHIFT为单独的开关键。CNTL与其它键连用作为特殊命令键,SHIFT可作为上下档控制键。若与键盘(88)配合,使键盘各键具有上、下键功能,这样键盘可扩充到128个键。CNTL线可接一键用作控制键,这样,最多可扩充到256键。2、在传感器扫描方式或选通输入方式中,输入数据即为RL7RL0的输入状态。,D7,D0,(五)8279与键盘/显示器接口,下图为8位显示器、48键盘和8279的接口电路。图中键盘的行线接8279的RL0RL3,8279用外部译码方式,SL0-SL2经74LS138(1)译码输出Y0Y7接键盘的列线,SL0SL2又由74LS138(2)译码输出Y0Y7,经驱动后输出到显示器各位的公共阴极,输出线OUTB0-3、OUTA0-3作为8位段数据输出口。,(五)8279与键盘/显示器接口,BD控制74LS138(2)的译码。当位切换时,BD输出低电平,使74LS138(2)输出全为高电平。当键盘上出现有效的闭合键时,键输入数据自动地进入8279的FIFORAM存储器,并向8051请求中断,8051响应中断读取FIFORAM的输入键值。要更新显示器输出,仅需改变8279中显示缓冲器RAM中的内容。,(五)8279与键盘/显示器接口,上图中,8279的命令/状态口地址为7FFFH,数据口地址为7FFEH,键输入中断服务程序和更新显示器的输出子程序流程图如下所示:,键输入中断服务程序流程,显示输出子程序流程,(五)8279与键盘/显示器接口,8279与键盘/显示器接口程序清单如下:,初始化程序清单:INITl:SETBEX1;开INT1中断MOVDPTR,#7FFFHMOVA,#0DlH;清除命令MOVXDPTR,ALP:MOVXA,DPTR;读状态字节JBACC.7,LPMOVA,#00H;键盘/显示器方式设置命令MOVXDPTR,AMOVA,#2AH;时钟编程命令MOVXDPTR,ASETBEA,(五)8279与键盘/显示器接口,8279与键盘/显示器接口程序清单如下:,键输入中断服务程序清单:PINTl:PUSHPSWPUSHDPHPUSHDPLPUSHACCMOVDPTR,#7FFFH;输出读FIFO命令MOVA,#40HMOVXDPTR,AMOVDPTR,#7FFEHMOVXA,DPTR;此接口中只要将键信息;的b5b4b3与b2b1b0交换即得到键值。MOVB,A,ANLA,#07H;取b2b1b0RLA;左移3次RLARLAMOVR2,AMOVA,BANLA,#38H;取b5b4b3RRA;右移3次RRARRAORLA,R2;合并得到键值MOVB,A;键值在B中,(五)8279与键盘/显示器接口,(五)8279与键盘/显示器接口,8279与键盘/显示器接口程序清单如下:,PRI1:POPAPOPDPLPOPDPHPOPPSWRETI,显示子程序:DIR:MOVDPTR,#7FFFH;输出写显示RAM命令MOVA,#90H;0地址开始自动增1MOVXDPTR,AMOVR0,#70H;显示缓冲区指针初值MOVR7,#08H;8位显示器计数初值MOVDRTR,#7FFEH,(五)8279与键盘/显示器接口,8279与键盘/显示器接口程序清单如下:,DL0:MOVA,R0ADDA,#05HMOVCA,A+PC;转换为段数据MOVXDPTR,A;写入显示RAMINCR0DJNZR7,DL0RETADSEG:DB3FH,06H,5BH,4FH;段数据表(共阴极),四、利用7289芯片实现键盘/显示接口,7289是具有SPI串行接口功能的可同时驱动8位共阴式数码管(或64只独立LED)的智能显示驱动芯片,该芯片同时还可连接多达64键的键盘矩阵,单片即可完成LED显示、键盘接口的全部功能。7289内部含有译码器,可直接接受BCD码或16进制码,并同时具有2种译码方式,此外,还具有多种控制指令如消隐、闪烁、左移、右移、段寻址等。7289具有片选信号,可方便地实现多于8位的显示或多于64键的键盘接口。,(一)概述,串行接口无需外围元件可直接驱动LED各位独立控制译码/不译码及消隐和闪烁属性(循环)左移/(循环)右移指令具有段寻址指令方便控制独立LED64键键盘控制器内含去抖动电路,7289特点:,(一)概述,四、利用7289芯片实现键盘/显示接口,(一)概述,(一)概述,1.纯指令(1)复位(清除)指令,当7289收到该指令后,将所有的显示清除,所有设置的字符消隐、闪烁等属性也被一起清除。执行该指令后,芯片所处的状态与系统上电后所处的状态一样。,(二)控制指令:,(2)测试指令,该指令使所有的LED全部点亮,并处于闪烁状态,主要用于测试。,(二)控制指令:,(3)左移指令,使所有的显示自右向左(从第1位向第8位)移动一位(包括处于消隐状态的显示位),但对各位所设置的消隐及闪烁属性不变。移动后,最右边一位为空(无显示)。,(二)控制指令:,例如,原显示为:,其中第2位2和第4位4为闪烁显示,执行了左移指令后,显示变为,第二位3和第四位5为闪烁显示。,(二)控制指令:,(4)右移指令,与左移指令类似,但所做移动为自左向右(从第8位向第1位)移动,移动后,最左边一位为空。,(二)控制指令:,(5)循环左移指令:,与左移指令类似,不同之处在于移动后原最左边一位(第8位)的内容显示于最右位(第1位)。例如:,执行完循环左移指令后的显示为,(二)控制指令:,(6)循环右移指令,与循环左移指令类似,但移动方向相反。,(二)控制指令:,2.带有数据的指令:(1)下载数据且按方式0译码,a)此命令由二个字节组成,前半部分为指令,其中a2,a1,a0为位地址,见下表:,(二)控制指令:,(二)控制指令:,2.带有数据的指令:(1)下载数据且按方式0译码,b)第二字节为数据,x=无影响;c)小数点的显示由DP位控制,DP=1时,小数点显示,DP=0时,小数点不显示;d)d0d3为数据,收到此指令时,zlg7289A按以下规则(译码方式0)进行译码。,(二)控制指令:,2.带有数据的指令:(1)下载数据且按方式0译码,方式0译码,(二)控制指令:,2.带有数据的指令:(2)下载数据且按方式1译码,X=无影响此指令与上一条指令基本相同,所不同的是译码方式,该指令的译码按下表进行:,(二)控制指令:,方式1译码,(二)控制指令:,2.带有数据的指令:(3)下载数据,但不译码,其中:(1)a2a1a0为位地址,(2)A-G和DP为显示数据,分别对应8段LED数码管的各段。当相应的数据位为1时该段点亮,否则不亮。,(二)控制指令:,2.带有数据的指令:(4)闪烁控制,此命令控制各个数码管的消隐属性。d1d8分别对应数码管18,0=闪烁,1=不闪烁。开机后,缺省的状态为各位均不闪烁。,(二)控制指令:,2.带有数据的指令:(5)消隐控制,此命令控制各个数码管的消隐属性。d1d8分别对应数码管18,1=显示,0=消隐。当某一位被赋予了消隐属性后,7289在扫描时将跳过该位,该位不被显示,但写入的值将被保留。将该位重新设为显示状态后,最后一次写入的数据将被显示出来。注意:至少应有一位保持显示状态,如果消隐控制指令中d1d8全部为0,该指令将不被接受,7289保持原来的消隐状态不变。,(二)控制指令:,2.带有数据的指令:(6)段点亮指令,此为段寻址指令,作用为点亮数码管中某一指定的段,或LED矩阵中某一指定的LED。指令中,X=无影响;d0d5段地址,范围从00H3FH,具体分配为:第1个数码管的G段地址为00H,F段为01H,.A段为06H,小数点DP为07H,第2个数码管的G段为08H,F段为09H,依此类推直至第8个数码管的小数点DP地址为3FH。,(二)控制指令:,2.带有数据的指令:(7)段关闭指令,段寻址命令,作用为关闭(熄灭)数码管中的某一段,指令结构与段点亮指令相同。,(二)控制指令:,2.带有数据的指令:(8)读键盘数据指令,该指令从7289读出当前的按键代码。与其它指令不同,此命令的前一个字节0001010B为单片机传送到7289的指令,而后一个字节d0d7则为7289返回的按键代码,其范围是03FH(无键按下时为0Xff),,(二)控制指令:,(三)SPI串行接口,7289的指令结构有三种类型:1.不带数据的纯指令,指令的宽度为8个BIT,即微处理器需发送8个CLK脉冲。2.带有数据的指令,宽度为16个BIT,即微处理器需发送16个CLK脉冲。3.读取键盘数据指令,宽度为16个BIT,前8个为微处理器发送到7289的指令,后8个BIT为7289返回的键盘代码。执行此指令时,7289的DATA端在第9个CLK脉冲的上升沿变为输出状态,并与第16个脉冲的下降沿恢复为输入状态,等待接收下一个指令。,串行接口时序图:1.纯指令,(三)SPI串行接口,串行接口时序图:1.带数据指令,(三)SPI串行接口,(三)SPI串行接口,串行接口时序图:1.读键盘指令,(三)SPI串行接口,串行接口时序图:,(三)SPI串行接口,串行接口时序图:,(四)应用设计实例,(四)应用设计实例,以下为7289与8051单片机的接口例程。当系统开机时显示HELLO,键盘采用中断模式;当用户按下键盘时,进入中断服务模式,读取按键的键值并存放在REC_BUF之中。,BIT_CNTDATA30H;定义BIT_CNT为内部RAM的30HDELAY1DATA31H;定义DELAY1为内部RAM的31HDELAYDATA33H;定义DELAY为内部RAM的33HDECIMALDATA32H;定义DECIMAL为内部RAM的32HREC_BUFDATA20H;定义REC_BUF为内部RAM的20HSEND_BUFDATA21H;定义SEND_BUF为内部RAM

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论