首页 第十章键盘显示器

第十章键盘显示器

举报
开通vip

第十章键盘显示器10.1LED显示器接口原理10.2键盘接口原理10.3键盘/显示器接口设计实例10.4MCS-51与液晶显示器LCD的接口第10章MCS-51与键盘显示器接口的设计第10章MCS-51与键盘、显示器、拨盘、打印机的接口设计输入外设:键盘、BCD码拨盘等;输出外设:LED显示器、LCD显示器、打印机等。10.1LED显示器接口原理LED(LightEmittingDiode):发光二极管的缩写。显示器前面冠以“LED”。10.1.1LED显示器的结构常用的LED显示器为8段(或7段,8段比7段多了一个小数点“dp”...

第十章键盘显示器
10.1LED显示器接口原理10.2键盘接口原理10.3键盘/显示器接口 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 实例10.4MCS-51与液晶显示器LCD的接口第10章MCS-51与键盘显示器接口的设计第10章MCS-51与键盘、显示器、拨盘、打印机的接口设计输入外设:键盘、BCD码拨盘等;输出外设:LED显示器、LCD显示器、打印机等。10.1LED显示器接口原理LED(LightEmittingDiode):发光二极管的缩写。显示器前面冠以“LED”。10.1.1LED显示器的结构常用的LED显示器为8段(或7段,8段比7段多了一个小数点“dp”段)。有共阳极和共阴极两种。如图10-1所示。为使LED显示不同的符号或数字,要为LED提供段码(或称字型码)。提供给LED显示器的段码(字型码)正好是一个字节(8段)。各段与字节中各位对应关系如下:按上述格式,8段LED的段码如 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 10-1所示。………83H7CHbFFH00H“灭”88H77FHAC7H38HL90H6FH989H76HH80H7FH891H6EHyF8H07H7CEH31HT82H7DH6C1H3EHU92H6DH58CH73HP99H66H48EH71HFB0H4FH386H79HEA4H5BH2A1H5EHdF9H06H1C6H39HcC0H3FH0共阳极段码共阴极段码显示字符共阳极段码共阴极段码显示字符表10-1LED段码(8段)表10-1只列出了部分段码,可根据实际情况选用。另外,段码是相对的,它由各字段在字节中所处的位决定。例如表10-1中8段LED段码是按格式:而形成的,“0”的段码为3FH(共阴)。反之,如将格式改为下列格式:则“0”的段码为7EH(共阴)。字型及段码由设计者自行设定,习惯上还是以“a”段对应段码的最低位。N个LED显示块有N位位选线和8×N根段码线。10.1.2LED显示器工作原理图10-2是4位LED显示器的结构原理图。段码线控制显示的字型,位选线控制该显示位的亮或暗。静态显示和动态显示两种显示方式。1.静态显示方式各位的公共端连接在一起(接地或+5V)。每位的段码线(a~dp)分别与一个8位的锁存器输出相连。显示字符一确定,相应锁存器的段码输出将维持不变,直到送入另一个段码为止。显示的亮度高。图10-3:4位静态LED显示器电路。该电路各位可独立显示。2.动态显示方式所有位的段码线相应段并在一起,由一个8位I/O口控制,形成段码线的多路复用,各位的公共端分别由相应的I/O线控制,形成各位的分时选通。图10-4:4位8段LED动态显示电路。其中段码线占用一个8位I/O口,而位选线占用一个4位I/O口。图10-5为8位LED动态显示2003.10.10的过程。图(a)是显示过程,某一时刻,只有一位LED被选通显示,其余位则是熄灭的;图(b)是实际显示结果,人眼看到的是8位稳定的同时显示的字符。10.2键盘接口原理1.键盘输入的特点键盘:一组按键开关的集合。行线电压信号通过键盘开关机械触点的断开、闭合,输出波形如图10-6。2.按键的确认检测行线电平,便可确认按键按下与否。高电平:断开;低电平:闭合,常用软件来消除按键抖动。基本思想:检测到有键按下,键对应的行线为低,软件延时10ms后,行线如仍为低,则确认该行有键按下。3.如何消除按键的抖动当键松开时,行线变高,软件延时10ms后,行线仍为高,说明按键已松开。采取以上措施,躲开了两个抖动期t1和t3的影响。10.2.2键盘接口的工作原理独立式按键接口和行列式键盘接口。1.独立式键盘接口各键相互独立,每个按键各接一根输入线,通过检测输入线的电平状态可很容易判断那个键被按下。此种接口适于键数较少或操作速度较高的场合。图10-7(a)为中断方式的独立式键盘工作电路图10-7(b)为查询方式的独立式键盘工作电路。图10-8为8255A扩展I/O口的独立式按键接口电路。图10-9用三态缓冲器扩展的I/O口的按键接口电路。对图10-9独立式键盘编程,软件消抖,查询方式检测键的状态。仅有一键按下时才有效才处理。KEYIN:MOVDPTR,#0BFFFH;键盘端口地址BFFFHMOVXA,@DPTR;读键盘状态ANLA,#1FH;屏蔽高三位MOVR3,A;保存键盘状态值LCALLDELAY10;延时10ms去键盘抖动MOVXA,@DPTR;再读键盘状态ANLA,#1FH;屏蔽高三位CJNEA,R3,RETURN;两次不同,抖动引起转RETURNCJNEA,#1EH,KEY2;相等,有键按下,不等转KEY2LJMPKEY1;是K1键按下,转K1键处理;子程序PKEY1KEY2:CJNEA,#1DH,KEY3;S2键未按下,转KEY3LJMPKEY2;S2键按下,转PKEY2处理KEY3:CJNEA,#1BH,KEY4;S3未按下,转KEY4LJMPKEY3;S3按下,转PKEY3处理KEY4:CJNEA,#17H,KEY5;S4键未按下,转KEY5LJMPKEY4;S4按下,转PKEY4处理KEY5:CJNEA,#0FH,PASS;S5未按下,转RETURNLJMPKEY5;S5按下,转PKEY5处理RETURN:RET;重键或无键按下,从子程序返回识别和编程简单,用在按键数较少的场合。2.行列式(矩阵式)键盘接口用于按键数目较多的场合,由行线和列线组成,按键位于行、列的交叉点上。如图10-10所示。按键数目较多的场合,行列式键盘与独立式键盘相比,要节省很多的I/O口线。(1)行列式键盘工作原理无键按下,该行线为高电平,当有键按下时,行线电平有列线的电平来决定。由于行、列线为多键共用,各按键彼此将相互发生影响,必须将行、列线信号配合起来并作适当的处理,才能确定闭合键的位置。(2)按键的识别方法a.扫描法图10-10(b)中3号键被按下为例,来说明此键时如何被识别出来的。识别键盘有无键被按下的方法,分两步进行:第1步:识别键盘有无键按下;第2步:如有键被按下,识别出具体的按键。把所有列线置0,检查各行线电平是否有变化,如有变化,说明有键按下,如无变化,则无键按下。上述方法称为扫描法,即先把某一列置低电平,其余各列为高电平,检查各行线电平的变化,如果某行线电平为低,可确定此行列交叉点处的按键被按下。b.线反转法只需两步便能获得此按键所在的行列值,线反转法的原理如图10-11。第1步:列线输出为全低电平,则行线中电平由高变低的所在行为按键所在行。第2步:行线输出为全低电平,则列线中电平由高变低所在列为按键所在列。结合上述两步,可确定按键所在行和列。(3)键盘的编码根据实际需要灵活编码。10.2.3键盘的工作方式单片机在忙于各项工作任务时,如何兼顾键盘的输入,取决于键盘的工作方式。原则:即要保证能及时响应按键操作,又不要过多占用CPU的工作时间。通常,键盘工作方式有3种,即编程扫描、定时扫描和中断扫描。1.编程扫描方式只有当单片机空闲时,才调用键盘扫描子程序,扫描键盘。工作过程:(1)在键盘扫描子程序中,先判断有无键按下。方法:PA口8位输出全0,读PC口低4位状态,若PC0~PC3为全1,则说明键盘无键按下;若不全为1,则说明键盘可能有键按下。(2)用软件来消除按键抖动的影响。如有键按下,则进行下一步。(3)求按下键的键号。(4)等待按键释放后,再进行按键功能的处理操作。2.定时扫描工作方式利用单片机内的定时器,产生10ms的定时中断,对键盘进行扫描。3.中断工作方式只有在键盘有键按下时,才执行键盘扫描程序,如无键按下,单片机将不理睬键盘。键盘所做的工作分为三个层次,如图10-13。第1层:单片机如何来监视键盘的输入。三种工作方式:①编程扫描②定时扫描③中断扫描。第2层:确定具体按键的键号。体现在按键的识别方法上就是:①扫描法;②线反转法。第3层:执行键处理程序。10.3键盘/显示器接口设计实例一般把键盘和显示器放在一起考虑。10.3.1利用并行I/O芯片实现键盘/显示器接口图10-14:8031用扩展I/O接口芯片8155H实现的6位LED显示和32键的键盘/显示器接口电路。图中的8155H也可用8255A来替代。8031外扩一片8155H。RAM地址为7E00H~7EFFH。I/O口地址为7F00H~7F05H。PA口为输出口,控制键盘列线的扫描,同时又是6位共阴极显示器的位扫描口。PB口作为显示器段码输出口,PC口作为键盘的行线状态的输入口。75452:反相驱动器,7407:同相驱动器。1.动态显示程序设计8031内部RAM设置6个显示缓冲单元79H~7EH,存放要显示的6位数据。8155H的PB口输出相应位的段码,依次的改变PA口输出为高的位使某一位显示某一字符,其它位为暗。动态地显示出由缓冲区中显示数据所确定的字符。程序流程如图10-15。参考程序如下:DIR:MOVR0,#79H;置缓冲器指针初值MOVR3,#01H;位选码的初值送R3MOVA,R3LD0:MOVDPTR,#7F01H;位选码→PA口(PA.0位);最左边LED亮MOV@DPTR,AINCDPTR;数据指针指向PB口MOVA,@R0;显示数据→AADDA,#0DH;加偏移量(下条指令到表首间;所有指令占的单元数)MOVCA,@A+PC;根据显示数据来查表取段码DIR1:MOVX@DPTR,A;段码→8155HPB口ACALLDL1ms;该位显示1msINCR0;指针指向下一个数据单元MOVA,R3;位选码送入A中JBAcc.5,LD1;判断是否扫描到最右边的;LED,如到最右边则返回RLA;位选码向左移一位,准备让;右边的下一位LED亮位选码MOVR3,A;送R3中保存AJMPLD0;LD1:RET;DSEG:DB3FH,06H,5BH,4FH,66H,6DH;共阴极段码表DB7DH,07H,7FH,6FH,77H,7CHDB39H,5EH,79H,71H,73H,3EHDB31H,6EH,1CH,23H,40H,03HDB18H,00HDL1ms:MOVR7,#02H;延时1ms子程序DL:MOVR6,#0FFHDL6:DJNZR6,DL6DJNZR7,DLRET2.键盘程序设计(1)判别键盘上有无键闭合(2)去除键的机械抖动(3)判别闭合键的键号(4)使CPU对键的一次闭合仅作一次处理键盘程序的流程如图10-16。键盘子程序如下:KEYI:ACALLKS1;调用判有无键闭合子程序JNZLK1;有键闭合,跳LK1NI:ACALLDIR;无键闭合,调用显示子程序,延;迟6ms后,跳KEYIAJMPKEYILK1:ACALLDIR;可能有键闭合,延迟12ms,软件去抖ACALLDIRACALLKS1;调用判有无键闭合子程序JNZLK2;经去抖,判键确实闭合,跳LK2处理ACALLDIR;调用显示子程序延迟6msAJMPKEYI;抖动引起,跳KEYILK2:MOVR2,#0FEH;列选码→R2MOVR4,#00H;R4为列号计数器LK4:MOVDPTR,#7F01H;列选码→8155H的PA口MOVA,R2;MOVX@DPTR,A;INCDPTR;数据指针增2,指向PC口INCDPTR;MOVXA,@DPTR;读8155HPC口JBAcc.0,LONE;0行线为高,无键闭合,跳LONE,转判1行MOVA,#00H;0行有键闭合,首键号0→AAJMPLKP;跳LKP,计算键号LONE:JBAcc.1,LTW0;1行线为高,无键闭合,跳LTW0,;转判2行MOVA,#08H;1行有键闭合,首键号8→AAJMPLKPLTW0:JBA.2,LTHR;2行线为高,无键闭合,跳LTHR,;转判3行MOVA,#10H;2行有键闭合,首键号10H→AAJMPLKP;跳LKP,计算键号LTHR:JBAcc.3,NEXT;3行线为高,无键;闭合,跳NEXT,准备下一列扫描MOVA,#18H;3行有键闭合,首键号18H→ALKP:ADDA,R4;计算键号:首键号+列号=键号PUSHA;键号进栈保护LK3:ACALLDIR;调用显示子程序,延时6msACALLKS1;调用判有无键闭合子程序,延时;6msJNZLK3;判键释放否,未释放,则循环POPA;键已释放,键号出栈→ARETNEXT:INCR4;列计数器加1,为下一列扫描作准备MOVA,R2;判是否已扫到最后一列(最右一列)JNBAcc.7,KND;键扫描已扫到最后一列,跳KND,;重新进行整个键盘扫描RLA;键扫描未扫到最后一列,,位选码左移;一位MOVR2,A;位选码→R2AJMPLK4;KND:AJMPKEYI;KS1:MOVDPTR,#7F01H;判有无键闭合子程序,全“0”→;扫描口(PA口)MOVA,#00H;即列线全为低电平MOVX@DPTR,A;INCDPTR;DPTR增2,指向PC口INCDPTR;指针增1,指向PC口MOVXA,@DPTR;从PC口读行线的状态CPLA;行线取反,如无键按下,则A为0;ANLA,#0FH;屏蔽无用的高4位RET10.3.2利用8031的串行口实现键盘/显示器接口串行口未作它用,可用来外扩键盘/显示器。串行口为方式0输出,串行口外接移位寄存器74LS164。接口电路如图10-17。74LS164(0)~74LS164(7):作为8位LED的段码输出,8031的P3.4、P3.5:两行键的行状态输入P3.3(TXD):同步移位脉冲输出控制线,优点:亮度大,容易做到显示不闪烁,且CPU不必频繁的为显示服务,从而使单片机有更多的时间处理其它事务。显示子程序:DIR:SETBP3.3;P3.3=1允许TXD脚同步移位;脉冲输出MOVR7,#08H;送出的段码个数,R7为段;码个数计数器MOVR0,#7FH;7FH~78H为显示数据缓冲区DL0:MOVA,@R0;取出要显示的数送AADDA,#0DH;加上偏移量MOVCA,@A+PC;查段码表SEGTAG,取出段码MOVSBUF,A;将段码送SBUFDL1:JNBTI,DL1;输出段码,查询TI状态,1个字节;的段码输出完否?CLRTI;1个字节的段码输出完,清TI标志DECR0;指向下一个显示数据单元DJNZR7,DL0;段码个数计数器R7是否为0,如不;为0,继续送段码CLRP3.3;8个段码输出完毕,关显示器输出RET;返回SEGTAB:DB0C0H,0F9H,0A4H,0B0H,99H;共阳极段码表,;0,1,2,3,4DB92H,82H,0F8H,90H;5,6,7,8,9DB88H,83H,0C6H,0A1H,86H;A,B,C,D,EDB8FH,0BFH,8CH,0FFH,0FFH;F,-,P,暗键盘扫描子程序:KEYI:MOVA,#00H;判有无键按下,使所有列线为0;的编码送AMOVSBUF,A;扫描键盘的(8)号74LS164输;出为00H,使所有列线为0KL0:JNBTI,KL0;串行输出完否?CLRTI;串行输出完毕,清TIKL1:JNBP3.4,PK1;第1行有闭合键吗?如有,跳;PK1进行处理JBP3.5,KL1;在第2行键中有闭合键吗?无闭;合键跳KL1PK1:ACALLDL10;调用延时10ms子程序DL10,软;件消除抖动JNBP3.4,PK2;判是否抖动引起的?JBP3.5,KL1PK2:MOVR7,#08H;不是抖动引起的MOVR6,#0FEH;判别是哪一个键按下,FEH为最;左一列为低MOVR3,#00H;R3为列号寄存器MOVA,R6;KL5:MOVSBUF,A;列扫描码从串行口输出KL2:JNBTI,KL2;等待串行口发送完CLRTI;串行口发送完毕,清TI标志JNBP3.4,PKONE;读第1行线状态,第1行有键闭;合,跳PKONE处理JBP3.5,NEXT;读第2行状态,是第2行某键否?MOVR4,#08H;第2行键中有键被按下,行首键;号08H送R4AJMPPK3;PKONE:MOVR4,#00H;第1行有键按下,行首键号00H送R4PK3:MOVSBUF,#00H;等待键释放,发送00H使所有列;线为低KL3:JNBTI,KL3;CLRTI;发送完毕,清标志KL4:JNBP3.4,KL4;判行线状态JNBP3.5,KL4;MOVA,R4;两行线均为高,说明键已释放ADDA,R3;计算得键码→ARETNEXT:MOVA,R6;列扫描码左移一位,判下列键RLA;MOVR6,A;记住列扫描码于R6中INCR3;列号增1DJNZR7,KL5;列计数器R7减1,8列键都检查;完?AJMPKEYI;8列键扫描完毕,开始下一个键;盘扫描周期DL10:MOVR7,#0AH;延时10ms子程序DL:MOVR6,#0FFHDL6:DJNZR6,DL6DJNZR7,DLRET10.3.3利用通用键盘/显示器接口芯片8279实现键盘/显示器接口Intel8279芯片:通用可编程键盘/显示器接口芯片。对键盘部分提供扫描工作方式,能对64个键键盘阵列不断扫描,自动消抖,自动识别出闭合的键并得到键号,能对双键或N键同时按下进行处理。扫描方式作的显示接口,可显示多达16位的字符。1.8279的引脚及内部结构2.引脚功能介绍(1)与CPU的接口引脚DB0~DB7:数据总线、双向、三态,与单片机数据总线相连,在CPU和8279之间传送命令或数据。CLK:系统时钟,用于8279内部定时,以产生其工作所需的时序。RESET:高电平时,8279被复位,复位后的状态如下:*16个字符左边输入显示方式*编码扫描键盘、双键锁定方式CS*:片选A0:=1,写入的是命令字节;读出的是状态字节。=0,写入或读出的字节均为数据。RD*、WR*:读、写控制引脚IRQ:中断请求线。在键盘方式中,当键盘RAM(先进先出)中存有按下键的数据时,IRQ为高电平,向CPU提出中断申请。(2)扫描信号输出引脚CPU每次从键盘RAM中读出一个字节数据时,IRQ就变为低电平。如果键盘RAM中还有未读完的数据,IRQ将再次变为高电平,再次提出中断请求。SL0~SL3扫描输出。用来扫描键盘和显示器。可编程设定为编码输出,即SL0~SL3需外接4-16译码器,输出16取1的扫描信号,也可编程设定为译码输出,即由SL0~SL3直接输出4取1的扫描信号。(3)与键盘连接的引脚RL0~RL7键盘矩阵的行信号输入线。SHIFT输入线,通常用作键盘上、下档功能的控制键。CNTL/STB输入线,高电平有效。在键盘方式时,通常用来作为键盘控制功能键使用。(4)与显示器连接的引脚OUTA0~OUTA3(A组显示数据)、OUTB0~OUTB3(B组显示数据):向LED显示器输出的段码,与扫描信号线SL0~SL3同步。两组可独立使用,也可合并使用。BD*:消隐显示控制。3.8279的基本功能部件(1)扫描计数器编码方式:扫描线SL0~SL3输出,经外部4-16译码器译码后,为键盘和显示器提供16取1的扫描线。译码方式:计数器的最低二位在8279内部译码后,从SL0~SL3输出,为键盘和显示器提供4取1扫描线。回复扫描SHIFTCNTLD0D1D2D3D4D5D6D7(2)键盘去抖动及回复缓冲器RL0~RL7被接到键盘的行线。在逐列扫描时,当某一键闭合,消抖电路延时等待10ms之后,再检验该键是否仍闭合。若闭合,则该键的行、列地址和附加的移位、控制状态一起形成键盘数据,送入8279内部的键盘RAM存储器。格式为:控制(CNTL)和移位(SHIFT)的状态由两个独立的附加开关决定,而扫描(D5、D4、D3)是被按键的行编码,而回复(D2、D1、D0)则是被按键的列位置数据。(3)键盘RAM及其状态寄存器键盘RAM:8字节先进先出(FIFO)存储器。内部的FIFO状态寄存器存放FIFO的工作状态,如FIFO是空还是满,其中存有多少字符,是否操作出错等等。当FIFO存储器空间不足时,状态逻辑将产生IRQ=1信号,向CPU发出中断申请。(4)显示RAM和显示地址寄存器显示RAM:存显示数据。共16个字节,最多可存放16位显示信息。显示RAM的输出与显示扫描配合,同时轮流驱动被选中的显示位,使显示器呈现稳定的显示(动态扫描)。4.8279的命令字和状态字命令字:D7、D6、D5为命令特征位,来区分8条不同的命令字。状态字:主要用于键盘工作方式,以指示键盘RAM中的字符数和有无错误发生。5.8279与键盘/显示器的接口图10-20为8279与8位显示器,4×8键盘的接口电路。行线接8279的RL0~RL3,8279选用外部译码方式,SL0~SL2经74LS138(1)译码输出,接列线,实现键盘逐列扫描。SL0~SL2又由74LS138(2)译码输出到显示器各位的公共阴极,进行逐位扫描显示。OUTB0~3、OUTA0~3输出8位段码。当位切换时,BD*输出为低电平,使74LS138(2)输出全为高电平,显示消隐。当键盘上出现有效的闭合键时,键输入数据自动进入中断读取键盘RAM中的键输入数据。若要更新显示器输出,仅需改变8279中显示RAM中的内容。图10-20:8279的命令/状态口地址为7FFFH,数据口地址为7FFEH。8279初始化程序:INITI:SETBEX1;允许外部中断1中断MOVDPTR,#7FFFH;命令/状态口地址写入DPTRMOVA,#0D1H;控制字D1H送AMOVX@DPTR,A;向命令/状态口写入控制字LP:MOVXA,@DPTR;读8279的状态JBAcc.7,LPMOVA,#00HMOVX@DPTR,A8279的键盘RAM存储器,并向8031请求中断,8031响应MOVA,#2AHMOVX@DPTR,ASETBEA……键输入中断服务程序:PINT1:PUSHPSWPUSHDPHPUSHDPLPUSHAccMOVDPTR,#7FFFH;向命令口写入读键盘RAM命令MOVA,#40HMOVX@DPTR,AMOVDPTR,#7FFEH;读键输入值MOVXA,@DPTRCJNEA,#37H,PRI1;判输入停机命令否SETB20HPRI1:POPAccPOPDPLPOPDPHPOPPSWRETI显示子程序:DIR:MOVDPTR,#7FFFH;输出写显示RAM命令MOVA,#90HMOVX@DPTR,AMOVR0,#70HMOVR7,#08H;送显示RAM数据的个数MOVDPTR,#7FFEHDL0:MOVA,@R0ADDA,#05H;05H为查表偏移量MOVCA,@A+PC;查表得到段码MOVX@DPTR,A;写入显示RAMINCR0;显示数据单元地址增1DJNZR7,DL0;8个显示数据是否输出完毕RETADSEG:DB3FH,06H,5BH,4FH,66H,6DH;段码表(共阴极)DB7DH,07H,7FH,6FH,77H,7CHDB39H,5EH,79H,71H,73H,3EHDB31H,6EH,1CH,23H,40H,03HDB18H,38H,00H10.4MCS-51与液晶显示器(LCD)的接口LCD(LiquidCrystalDisplay):液晶显示器的缩写,一种被动式的显示器,即液晶本身并不发光,而是经液晶经过处理后能改变光线通过方向的特性,而达到白底黑字或黑底白字显示的目的。液晶显示器具有功耗低、抗干扰能力强等优点,广泛地应用在仪器仪表和控制系统中。10.4.1LCD显示器的分类按排列形状分:字段型、点阵字符型和点阵图形。(1)字段型广泛用于电子表、数字仪表、计算器中。(2)点阵字符型显示字母、数字、符号。它是由5×7或5×10点阵组成,广泛应用在单片机应用系统中。(3)点阵图形型笔记本电脑和彩色电视等设备中。10.4.2点阵字符型液晶显示模块介绍点阵字符型LCD显示器,需相应的LCD控制器、驱动器,来对LCD显示器进行扫描、驱动,以及一定空间的RAM和ROM来存储写入的命令和显示字符的点阵。现在已将LCD控制器、驱动器、RAM、ROM和LCD显示器用PCB连接到一起,称为液晶显示模块LCM(LCdModule)。用户只向LCM送入相应的命令和数据就可实现所需要的显示内容,与单片机接口简单,使用灵活方便。产品分为字符和图形两种。1.基本结构(1)液晶板在液晶板上排列着若干5×7或5×10点阵的字符显示位,从规格上分为每行8、16、20、24、32、40位,有一行、两行及四行三类,用户可根据需要,来选择购买。(2)模块电路框图由控制器HD44780、驱动器HD44100及几个电阻电容组成。HD44100是扩展显示字符位用的(例如:16字符×1行模块就可不用HD44100,16字符×2行模块就要用一片HD44100)。数据传输8位数据线DB0~DB77~14下降沿触发使能E61:读;0:写读/写R/W*51:数据寄存器;0:命令寄存器寄存器选择RS4液晶驱动电压VEE35V±5%电源VDD20V地VSS1功能名称符号引线号表10-2液晶显示模块的引脚模块14个引脚,其中有8条数据线,3条控制线,3条电源线,见表10-2。通过单片机写入模块的数据和指令,就可对显示方式和显示内容作出选择。数据寄存器读出11数据寄存器写入01忙标志和地址计数器读出10命令寄存器写入00操作R/W*RS表10-3寄存器的选择命令格式及命令功能说明(1)命令格式LCD控制器HD44780内有多个寄存器,如表10-3所示。RS位和R/W*引脚上的电平来选择寄存器,而DB7~DB0则决定命令功能。命令共11种:清除,返回,输入方式设置,显示开关控制,移位控制,功能设置,CGRAM(字符生成RAM)地址设置,DDRAM(显示数据RAM)地址设置,读忙标志和地址,写数据到CGRAM或DDRAM,从CGRAM或DDRAM读数据。这些命令功能强:可组合成各种输入、显示、移位方式以满足不同的 要求 对教师党员的评价套管和固井爆破片与爆破装置仓库管理基本要求三甲医院都需要复审吗 。(2)MATCH_WORD_1713985770802_ 0字 个人自传范文3000字为中华之崛起而读书的故事100字新时代好少年事迹1500字绑架的故事5000字个人自传范文2000字 符库图10-23:字符库的内容、字符码和字型的对应关系。例如“A”的字符码为41H,“B”的字符码为42H。10.4.38031与LCD的接口及软件编程1.8031与LCD模块的接口接口电路见图10-24。将LCM挂接在8031的总线上,通过对数据总线的读写实现对LCM的控制。1.软件编程初始化用户所编的显示程序,开始必须进行初始化,否则模块无法正常显示。显示程序编写(自己阅读)10.5MCS-51与微型打印机的接口内部有一个控制用单片机,固化有控打程序,智能化程度高。常用的微型打印机:TPμP-40A/16A、GP16以及XLF嵌入仪器面板上的汉字微型打印机。10.5.1MCS-51与TPμP-40A/16A微型打印机的接口1.TPμP-40A/16A微型打印机单片机控制的微型智能打印机。TPμP-40A与TPμP-16A的接口信号与时序完全相同,操作方式相近,硬件电路及插脚完全兼容,只是指令代码不完全相同。TPμP-40A每行打印40个字符,TPμP-16A则每行打印16个字符。2.主要性能、接口要求及时序(1)TPμP-40A主要技术性能单片机控制,2KB控打程序及标准的Centronics并行接口。可打印全部ASCII代码字符及128个非标准字符和图符。16个代码字符(6×7点阵)由用户定义。可打印出8×240点阵的图样(汉字或图案点阵)。字符、图符和点阵图可在宽和高的方向放大为×2、×3、×4倍。每行字符的点行数(包括字符的行间距)可用命令更换。即字符行间距空点行在0~256间任选。2.接口信号采用国际上流行的Centronics打印机并行接口,与单片机间是通过一条20芯扁平电缆及接插件相连。打印机有一个20线扁平插座,信号引脚排列如图10-26所示。引脚介绍:DB0~DB7:数据线,单向传输,由单片机输入给打印机。STB*:数据选通信号。在该信号的上升沿时,数据线上的8位并行数据被打印机读入机内锁存。BUSY:打印机“忙”状态信号。当该信号有效(高电平)时,表示打印机正忙。此时,单片机不得向打印机送入新的数据。ACK*:打印机的应答信号。低电平有效,表明打印机已取走数据线上的数据。ERR*:“出错”信号。当送入打印机的命令格式出错时,打印机立即打印一行出错信息,提示出错。在打印出错信息之前,该信号线出现一个负脉冲,脉冲宽度为30μs。3.接口信号时序接口信号时序如图10-27所示。选通信号STB*宽度需大于0.5μs。应答信号ACK*可与STB*信号作为一对应答联络信号,也可与BUSY作为一对应答联络信号。2.字符代码及打印命令写入的全部代码共256个,其中00H无效。代码:01H~0FH为打印命令;代码:10H~1FH为用户自定义代码;代码:20H~7FH为标准ASCII代码;代码:80H~FFH为非ASCII代码,如图10-28所示。其中包括少量汉字、希腊字母、块图图符和一些特殊字符。3.TPμP-40A/16A与MCS-51单片机接口设计TPμP-40A/16A内部控制电路由单片机构成,在输入电路中有锁存器,在输出电路中有三态门控制。因此可直接与单片机相接。TPμP-40A/16A只有握手线STB*、BUSY(或ACK*),接口电路如图10-29所示。图10-30:并行I/O口连接的打印机接口电路。图中的扩展I/O口为8255A的PA口,采用了查询法,即通过读8255A的PC0脚的状态来判断送给打印机的一个字节的数据是否处理完毕。也可用中断法(BUSY直接与单片机的P3.3脚相连)。例把MCS-51单片机内部RAM3FH~4FH单元中的ASCII码数据送到打印机。8255A设置为方式0,即端口A与端口C的上半部为输出方式。端口C的下半部为输入方式。打印程序如下:PRINT:MOVR0,#7FH;控制口地址→R0MOVA,#81H;8255A控制字→AMOVX@R0,A;控制字→控制口MOVR1,#3FH;数据区首地址→R1MOVR2,#0FH;打印数据个数的计数LOOP:MOVA,@R1;打印数据单元内容→AINCR1;指向下一个数据单元MOVR0,#7CH;8255A的端口A地址→R0MOVX@R0,A;打印数据送8255A的口A并锁存MOVR0,#7FH;8255A的控制口地址→R0MOVA,#0EH;PC7的复位控制字→AMOVX@R0,A;PC7=0MOVA,#0FH;PC7的置位控制字→AMOVX@R0,A;PC7由0变1LOOP1:MOVR0,#7EF;口C地址→R0MOVXA,@R0;读入C口的值ANLA,#01H;屏蔽C口的高7位,只留PC0位JNZLOOP1;查询BUSY的状态,如为1跳LOOP1DJNZR2,LOOP;未打完,循环10.5.2MCS-51与GP16微型打印机的接口1.GP16微型打印机的接口信号控制器为8031单片机。接口信号如下:各信号的功能如下:IO0~IO7:双向三态数据总线,是CPU与GP16打印机之间命令、状态和数据信息传输线。CS*:设备选择线。RD*、WR*:读、写信号线。BUSY:打印机状态输出,高电平表示GP16处于忙状态,可供CPU查询或作中断请求线。GP16控制器具有数据锁存器,与单片机接口十分方便。1.打印命令及打印方式GP16的打印命令占两个字节,其格式如下:第一个字节D7-----D4D3-----D0操作码点行数n第二个字节D7------------------D0打印行数NNGP16为微型针打,字符本身占据7个点行。命令字中的点行数n是选择字符行之间的行距的参数,若n=10,则行距为3个点行数,应大于或等于8。打印行数是执行本条命令时打印(或空走纸)的字符行数。GP16的命令编码如下表。D7D6D5D4命令功能1000空走纸1001打印字符串1010十六进制数据打印1011图形打印3.MCS-51单片机和GP16的接口GP16内部有三态锁存器,能锁存数据总线上的数据,,故GP16可以直接与MCS-51数据总线相连而不须外加锁存器。图10-32为GP16与8031数据总线口相连的接口电路。图中BUSY接(P3.3),直接可用于中断方式。如要以查询方式工作时,BUSY可以不连接,通过查询状态字来获取BUSY的状态。如果使用其它I/O或扩展I/O口,只须将P0口线换成其他I/O或扩展I/O口即可。按照图10-32的连接,GP16的打印机地址为7FFFH,读取GP16状态字时,8031执行下列程序段:MOVDPTR,#7FFFHMOVXA,@DPTR将命令或数据写入GP16时,8031执行下列程序段:MOVDPTR,#7FFFHMOVA,#DATA/COMMANDMOVX@DPTR,A10.6MCS-51单片机与BCD码拨盘的接口设计10.6.1BCD码拨盘有时需输入一些控制参数,参数一经设定将维持不变。使用的最方便的拨盘是十进制输入,BCD码输出的BCD码拨盘。这种拨盘如图10-33,为四片BCD码拨盘拼接的4位十进制输入拨盘组。每片拨盘具有0~9十个位置,每个位置都有相应的数字显示。BCD码拨盘后面有5个接点,A为输入控制线,另外4是BCD码输出线。拨盘拨到不同位置时,输入控制线A分别与4根BCD码输出线中的某根或某几根接通,其接通的BCD码输出线状态正好与拨盘指示的十进制数相一致。表10-10为BCD码拨盘的输入输出状态表。1001190001181110170110161010150010141100130100121000110000101248输出状态控制端A拨盘输入表10-10BCD码拨盘的输入输出状态10.6.2BCD码拨盘与单片机的接口1.与单片BCD码拨盘的接口图10-34是8031通过P1.0~P1.3与单片BCD码拨盘的接口电路。A端接+5V,当拨盘拨至某十进制数时,相应的8,4,2,1有效端输出高电平(如拨至“6”时,4,2,端为“1”)无效端为低电平。输出的BCD码为正逻辑。如A端接地,8,4,2,1输出端通过电阻上拉至高电平时,拨盘输出的BCD码为负逻辑(反码)。2.多片BCD码拨盘与单片机的接口如按图10-34,N位拨盘需占用4×N根I/O口线,为减少I/O口线,可将拨盘的输出线分别通过4个与非门与单片机的I/O口相连,每片拨盘的控制端A不再接+5V或地,而是分别与I/O口线相连,用来控制选择多片拨盘中的任意一片。这时,N位十进制拨盘,用N片BCD码拨盘拼成时只需占用4+N根I/O口线。图10-35通过P1与4片BCD码拨盘相连的4位BCD码输入电路。4片拨盘的BCD码输出相同端接入同一个4个与非门。四个与非门输出8,4,2,1端分别接入P1.3,P1.2,P1.1,P1.0。其余的P1.6,P1.5,P1.4分别与千、百、十、个位BCD码拨盘的控制端相连。当选中某位时,该位的控制端置0,其它三个控制端置1。例如选中千位时,P1.7置0,P1.4~P1.6置1,此时四个与非门所有其它位连接的输入端均为1状态,因此四个与非门输出的状态完全取决于千位数BCD拨盘输出状态。由于该位的控制端置0,因此,拨盘所置之数输出为BCD反码,通过与非门输出为该千位数的BCD码下面以图10-35为例,介绍BCD码拨盘输入子程序。例如输入为9345,这时,每位BCD码输出端上有相应的数字与A接通。本程序将读入的4位BCD码按千、百、十、个依次存放在片内RAM的30H~33H单元,每个单元的高4位为0,低4位为BCD码。程序如下:RDS:MOVR0,#30H;初始化,存放单元首址MOVR2,#7FH;P1口高4位置控制字及低4位置输入;方式MOVR3,#04H;读入4个BCD码LOOP:MOVA,R2MOVP1,A;P1口送控制字及低4位置输入方式MOVA,P1;读入BCD码ANLA,#0FH;屏蔽高4位MOV@R0,A;送入存储单元INCR0;指向下个存储单元MOVA,R2;准备下一片拨盘的控制端置0RRA;MOVR2,A;DJNZR3,LOOP;未读完返回RET;读完结束
本文档为【第十章键盘显示器】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_652056
暂无简介~
格式:ppt
大小:5MB
软件:PowerPoint
页数:0
分类:生产制造
上传时间:2012-03-06
浏览量:30