《哈工大单片机》PPT课件.ppt_第1页
《哈工大单片机》PPT课件.ppt_第2页
《哈工大单片机》PPT课件.ppt_第3页
《哈工大单片机》PPT课件.ppt_第4页
《哈工大单片机》PPT课件.ppt_第5页
已阅读5页,还剩95页未读 继续免费阅读

下载本文档

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

文档简介

第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的段码如表10-1所示。,表10-1LED段码(8段),表10-1只列出了部分段码,可根据实际情况选用。,另外,段码是相对的,它由各字段在字节中所处的位决定。例如表10-1中8段LED段码是按格式:,而形成的,“0”的段码为3FH(共阴)。反之,如将格式改为下列格式:,则“0”的段码为7EH(共阴)。,字型及段码由设计者自行设定,习惯上还是以“a”段对应段码的最低位。,N个LED显示块有N位位选线和8N根段码线。,10.1.2LED显示器工作原理,图10-2是4位LED显示器的结构原理图。,段码线控制显示的字型,,位选线控制该显示位的亮或暗。,静态显示和动态显示两种显示方式。,1.静态显示方式,各位的公共端连接在一起(接地或+5V)。,每位的段码线(adp)分别与一个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;两次不同,抖动引起转RETURN,CJNEA,#1EH,KEY2;相等,有键按下,不等转KEY2,LJMPPKEY1;是K1键按下,转K1键处理;子程序PKEY1KEY2:CJNEA,#1DH,KEY3;S2键未按下,转KEY3LJMPPKEY2;S2键按下,转PKEY2处理KEY3:CJNEA,#1BH,KEY4;S3未按下,转KEY4LJMPPKEY3;S3按下,转PKEY3处理KEY4:CJNEA,#17H,KEY5;S4键未按下,转KEY5LJMPPKEY4;S4按下,转PKEY4处理KEY5:CJNEA,#0FH,PASS;S5未按下,转RETURNLJMPPKEY5;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位状态,若PC0PC3为全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地址:7E00H7EFFH。I/O口地址:7F00H7F05H。,PA口为输出口,控制键盘列线的扫描,同时又是6位共阴极显示器的位扫描口。,PB口作为显示器段码输出口,PC口作为键盘的行线状态的输入口。,75452:反相驱动器,7407:同相驱动器。,1动态显示程序设计,内部RAM6个显示缓冲单元:79H7EH,存放要显示的6位数据。,8155H的PB口输出相应位的段码,依次改变PA口输出为高的位使某一位显示某一字符,其它位为暗。动态地显示出由缓冲区中显示数据所确定的字符。程序流程如图10-15。,参考程序:,DIR:MOVR0,79H;置缓冲器指针初值,MOVR3,01H;位选码的初值送R3,MOVA,R3,LD0:MOVDPTR,7F01H;位选码PA口(PA.0位),;最左边LED亮,MOVXDPTR,A,INCDPTR;数据指针指向PB口,MOVA,R0;显示数据A,ADDA,0DH;加偏移量(下条指令到表首间;所有指令占的单元数),MOVCA,APC;根据显示数据来查表取段码,DIR1:MOVXDPTR,A;段码8155HPB口,ACALLDL1ms;该位显示1ms,INCR0;指针指向下一个数据单元,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,3EH,DB31H,6EH,1CH,23H,40H,03H,DB18H,00H,DL1ms:MOVR7,02H;延时1ms子程序,DL:MOVR6,0FFH,DL6:DJNZR6,DL6,DJNZR7,DL,RET,2键盘程序设计,(1)判别键盘上有无键闭合,(2)去除键的机械抖动,(3)判别闭合键的键号,(4)使CPU对键的一次闭合仅作一次处理,键盘程序的流程如图10-16。,键盘子程序如下:,KEYI:ACALLKS1;调用判有无键闭合子程序,JNZLK1;有键闭合,跳LK1,NI:ACALLDIR;无键闭合,调用显示子程序,延,;迟6ms后,跳KEYI,AJMPKEYI,LK1:ACALLDIR;可能有键闭合,软件延迟12ms去抖,ACALLDIR,ACALLKS1;调用判有无键闭合子程序,JNZLK2;经去抖,判键确实闭合,跳LK2,ACALLDIR;调用显示子程序延迟6ms,AJMPKEYI;抖动引起,跳KEYI,LK2:MOVR2,0FEH;列选码R2,MOVR4,00H;R4为列号计数器,LK4:MOVDPTR,7F01H;列选码8155H的PA口,MOVA,R2;,MOVXDPTR,A;,INCDPTR;数据指针增2,指向PC口,INCDPTR;,MOVXA,DPTR;读8155HPC口,JBAcc.0,LONE;0行线为高,无键闭合,跳LONE,转判1行,MOVA,00H;0行有键闭合,首键号0A,AJMPLKP;跳LKP,计算键号,LONE:JBAcc.1,LTW0;1行线为高,无键闭合,跳LTW0,;转判2行,MOVA,08H;1行有键闭合,首键号8A,AJMPLKP,LTW0:JBA.2,LTHR;2行线为高,无键闭合,跳;LTHR,转判3行,MOVA,10H;2行有键闭合,首键号10HA,AJMPLKP;跳LKP,计算键号,LTHR:JBAcc.3,NEXT;3行线为高,无键,;闭合,跳NEXT,准备下一列扫描,MOVA,18H;3行有键闭合,首键号18HA,LKP:ADDA,R4;计算键号:首键号列号=键号,PUSHA;键号进栈保护,LK3:ACALLDIR;调用显示子程序,延时6ms,ACALLKS1;调用判有无键闭合子程序,延时;6ms,JNZLK3;判键释放否,未释放,则循环,POPA;键已释放,键号出栈A,RET,NEXT:INCR4;列计数器加1,为下一列扫描作准备,MOVA,R2;判是否已扫到最后一列(最右一列),JNBAcc.7,KND;键扫描已扫到最后一列,跳KND,;重新进行整个键盘扫描,RLA;键扫描未扫到最后一列,位选码左移;一位,MOVR2,A;位选码R2,AJMPLK4;,KND:AJMPKEYI;,KS1:MOVDPTR,#7F01H;判有无键闭合子程序,全“0”;扫描口(PA口),MOVA,00H;即列线全为低电平,MOVXDPTR,A;,INCDPTR;DPTR增2,指向PC口,INCDPTR;指针增1,指向PC口,MOVXA,DPTR;从PC口读行线的状态,CPLA;行线取反,如无键按下,则A为0;,ANLA,0FH;屏蔽无用的高4位,RET,10.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;7FH78H为显示数据缓冲区,DL0:MOVA,R0;取出要显示的数送A,ADDA,0DH;加上偏移量,MOVCA,APC;查段码表SEGTAG,取出段码,MOVSBUF,A;将段码送SBUF,DL1: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,4,DB92H,82H,0F8H,90H;5,6,7,8,9,DB88H,83H,0C6H,0A1H,86H;A,B,C,D,E,DB8FH,0BFH,8CH,0FFH,0FFH;F,P,暗,键盘扫描子程序:,KEYI:MOVA,00H;判有无键按下,使所有列线为0;的编码送A,MOVSBUF,A;扫描键盘的(8)号74LS164输;出为00H,使所有列线为0,KL0:JNBTI,KL0;串行输出完否?,CLRTI;串行输出完毕,清TI,KL1:JNBP3.4,PK1;第1行有闭合键吗?如有,跳;PK1进行处理,JBP3.5,KL1;在第2行键中有闭合键吗?无闭;合键跳KL1,PK1:ACALLDL10;调用延时10ms子程序DL10,软;件消除抖动,JNBP3.4,PK2;判是否抖动引起的?,JBP3.5,KL1;不是抖动引起的,往下执行,PK2:MOVR7,08H;R7为列计数器,扫一列减1,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送R4,AJMPPK3;,PKONE:MOVR4,00H;第1行有键按下,行首键号00H送R4,PK3:MOVSBUF,00H;等待键释放,发送00H使所有列;线为低,KL3:JNBTI,KL3;,CLRTI;发送完毕,清标志,KL4:JNBP3.4,KL4;判行线状态,JNBP3.5,KL4;,MOVA,R4;两行线均为高,说明键已释放,ADDA,R3;计算得到键码A,RET,NEXT:MOVA,R6;列扫描码左移一位,判下列键,RLA;,MOVR6,A;记住列扫描码于R6中,INCR3;列号增1,DJNZR7,KL5;列计数器R7减1,8列键都检查;完?,AJMPKEYI;8列键扫描完毕,开始下一个键;盘扫描周期,DL10:MOVR7,0AH;延时10ms子程序,DL:MOVR6,0FFH,DL6:DJNZR6,DL6,DJNZR7,DL,RET,10.3.3利用通用键盘/显示器接口芯片8279实现键盘/显示器接口,Intel8279芯片:通用可编程键盘/显示器接口芯片。,对键盘部分提供扫描工作方式,能对64个键键盘阵列不断扫描,自动消抖,自动识别出闭合的键并得到键号,能对双键或N键同时按下进行处理。,扫描方式的显示接口,可显示多达16位的字符。,1.8279的引脚及内部结构,2.引脚功能介绍,(1)与CPU的接口引脚,DB0DB7:数据总线、双向、三态,与单片机数据总线相连,在CPU和8279之间传送命令或数据。,CLK:系统时钟,用于8279内部定时,以产生其工作所需的时序。,RESET:高电平时,8279被复位,复位后的状态如下:,*16个字符左边输入显示方式,*编码扫描键盘、双键锁定方式,CS*:片选,A0:=1,写入的是命令字节;读出的是状态字节。,=0,写入或读出的字节均为数据。,RD*、WR*:读、写控制引脚,IRQ:中断请求线。在键盘方式中,当键盘RAM(先进先出)中存有按下键的数据时,IRQ为高电平,向CPU提出中断申请。,(2)扫描信号输出引脚,CPU每次从键盘RAM中读出一个字节数据时,IRQ就变为低电平。如果键盘RAM中还有未读完的数据,IRQ将再次变为高电平,再次提出中断请求。,SL0SL3,扫描输出。用来扫描键盘和显示器。可编程设定为编码输出,即SL0SL3需外接4-16译码器,输出16取1的扫描信号,也可编程设定为译码输出,即由SL0SL3直接输出4取1的扫描信号。,(3)与键盘连接的引脚,RL0RL7,键盘矩阵的行信号输入线。,SHIFT,输入线,通常用作键盘上、下档功能的控制键。,CNTL/STB,输入线,高电平有效。在键盘方式时,通常用来作为键盘控制功能键使用。,(4)与显示器连接的引脚,OUTA0OUTA3(A组显示数据)、OUTB0OUTB3(B组显示数据):向LED显示器输出的段码,与扫描信号线SL0SL3同步。两组可独立使用,也可合并使用。,BD*:消隐显示控制。,3.8279的基本功能部件,(1)扫描计数器,编码方式:扫描线SL0SL3输出,经外部4-16译码器译码后,为键盘和显示器提供16取1的扫描线。,译码方式:计数器的最低二位在8279内部译码后,从SL0SL3输出,为键盘和显示器提供4取1扫描线。,(2)键盘去抖动及回复缓冲器,RL0RL7被接到键盘的行线。,在逐列扫描时,当某一键闭合,消抖电路延时等待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位显示器,48键盘的接口电路。行线接8279的RL0RL3,8279选用外部译码方式,SL0SL2经74LS138(1)译码输出,接列线,实现键盘逐列扫描。,SL0SL2又由74LS138(2)译码输出到显示器各位的公共阴极,进行逐位扫描显示。OUTB03、OUTA03输出8位段码。,当位切换时,BD*输出为低电平,使74LS138(2)输出全为高电平,显示消隐。,当键盘上出现有效的闭合键时,键输入数据自动进入,中断读取键盘RAM中的键输入数据。若要更新显示器输出,仅需改变8279中显示RAM中的内容。,图10-20:8279的命令/状态口地址为7FFFH,数据口地址为7FFEH。8279初始化程序:,INITI:SETBEX1;允许外部中断1中断,MOVDPTR,#7FFFH;命令/状态口地址写入DPTR,MOVA,#0D1H;控制字D1H送A,MOVXDPTR,A;向命令/状态口写入控制字,LP:MOVXA,DPTR;读8279的状态,JBAcc.7,LP,MOVA,#00H,MOVXDPTR,A,8279的键盘RAM存储器,并向8031请求中断,8031响应,MOVA,2AH,MOVXDPTR,A,SETBEA,键输入中断服务程序:,PINT1:PUSHPSW,PUSHDPH,PUSHDPL,PUSHAcc,MOVDPTR,7FFFH;向命令口写入读键盘RAM命令,MOVA,40H,MOVXDPTR,A,MOVDPTR,7FFEH;读键输入值,MOVXA,DPTR,CJNEA,37H,PRI1;判输入停机命令否,SETB20H,PRI1:POPAcc,POPDPL,POPDPH,POPPSW,RETI,显示子程序:,DIR:MOVDPTR,7FFFH;输出写显示RAM命令,MOVA,90H,MOVXDPTR,A,MOVR0,70H,MOVR7,08H;送显示RAM数据的个数,MOVDPTR,7FFEH,DL0:MOVA,R0,ADDA,05H;05H为查表偏移量,MOVCA,A+PC;查表得到段码,MOVXDPTR,A;写入显示RAM,INCR0;显示数据单元地址增1,DJNZR7,DL0;8个显示数据是否输出完毕,RET,ADSEG:DB3FH,06H,5BH,4FH,66H,6DH;段码表(共阴极)DB7DH,07H,7FH,6FH,77H,7CHDB39H,5EH,79H,71H,73H,3EHDB31H,6EH,1CH,23H,40H,03HDB18H,38H,00H,10.4MCS-51与液晶显示器(LCD)的接口,LCD(LiquidCrystalDisplay):液晶显示器的缩写,被动式显示器-液晶本身并不发光,而是经液晶经过处理后能改变光线通过方向的特性,而达到白底黑字或黑底白字显示的目的。,液晶显示器具有功耗低、抗干扰能力强等优点,广泛用在仪器仪表和控制系统中。,10.4.1LCD显示器的分类,按排列形状分:字段型、点阵字符型和点阵图形。,(1)字段型,广泛用于电子表、数字仪表、计算器中。,(2)点阵字符型,显示字母、数字、符号。它是由57或510点阵组成,广泛应用在单片机应用系统中。,(3)点阵图形型,笔记本电脑和彩色电视等设备中。,10.4.2点阵字符型液晶显示模块介绍,点阵字符型LCD显示器,需相应的LCD控制器、驱动器,来对LCD显示器进行扫描、驱动,以及一定空间的RAM和ROM来存储写入的命令和显示字符的点阵。,现在已将LCD控制器、驱动器、RAM、ROM和LCD显示器用PCB连接到一起,称为液晶显示模块LCM(LCdModule)。,用户只向LCM送入相应的命令和数据就可实现所需要的显示内容,与单片机接口简单,使用灵活方便。产品分为字符和图形两种。,1.基本结构,(1)液晶板,在液晶板上排列着若干57或510点阵的字符显示位,从规格上分为每行8、16、20、24、32、40位,有一行、两行及四行三类,用户可根据需要,来选择购买。,(2)模块电路框图,由控制器HD44780、驱动器HD44100及几个电阻电容组成。HD44100是扩展显示字符位用的(例如:16字符1行模块就可不用HD44100,16字符2行模块就要用一片HD44100)。,表10-2液晶显示模块的引脚,模块14个引脚,其中有8条数据线,3条控制线,3条电源线,见表10-2。通过单片机写入模块的数据和指令,就可对显示方式和显示内容作出选择。,表10-3寄存器的选择,命令格式及命令功能说明,(1)命令格式,控制器HD44780内有多个寄存器,如表10-3所示。,RS位和R/W*引脚上的电平来选择寄存器,而DB7DB0则决定命令功能。,命令共11种:清除,返回,输入方式设置,显示开关控制,移位控制,功能设置,CGRAM(字符生成RAM)地址设置,DDRAM(显示数据RAM)地址设置,读忙标志和地址,写数据到CGRAM或DDRAM,从CGRAM或DDRAM读数据。,这些命令功能强:可组合成各种输入、显示、移位方式以满足不同的要求。,(2)标准字符库,图10-23:字符库的内容、字符码和字型的对应关系。例如“A”的字符码为41H,“B”的字符码为42H。,10.4.38031与LCD的接口及软件编程,1.8031与LCD模块的接口,接口电路见图10-24。将LCM挂接在8031的总线上,通过对数据总线的读写实现对LCM的控制。,1.软件编程,初始化,用户所编的显示程序,开始必须进行初始化,否则模块无法正常显示。,显示程序编写(自己阅读),10.5MCS-51与微型打印机的接口,内部有一个控制用单片机,固化有控打程序,智能化程度高。,常用的微型打印机:TPP-40A/16A、GP16以及XLF嵌入仪器面板上的汉字微型打印机。,10.5.1MCS-51与TPP-40A/16A微型打印机的接口,1.TPP-40A/16A微型打印机,单片机控制的微型智能打印机。TPP-40A与TPP-16A的接口信号与时序完全相同,操作方式相近,硬件电路及插脚完全兼容,只是指令代码不完全相同。TPP-40A每行打印40个字符,TPP-16A则每行打印16个字符。,2.主要性能、接口要求及时序,(1)TPP-40A主要技术性能,单片机控制,2KB控打程序及标准的Centronics并行接口。,可打印全部ASCII代码字符及128个非标准字符和图符。16个代码字符(67点阵)由用户定义。,可打印出8240点阵的图样(汉字或图案点阵)。,字符、图符和点阵图可在宽和高的方向放大为2、3、4倍。,每行字符的点行数(包括字符的行间距)可用命令更换。即字符行间距空点行在0256间任选。,2接口信号,采用国际上流行的Centronics打印机并行接口,与单片机间是通过一条20芯扁平电缆及接插件相连。打印机有一个20线扁平插座,信号引脚排列如图10-26所示。,引脚介绍:,DB0DB7:数据线,单向传输,由单片机输入给打印机。,STB*:数据选通信号。在该信号的上升沿时,数据线上的8位并行数据被打印机读入机内锁存。,BUSY:打印机“忙”状态信号。当该信号有效(高电平)时,表示打印机正忙。此时,单片机不得向打印机送入新的数据。,ACK*:打印机的应答信号。低电平有效,表明打印机已取走数据线上的数据。,ERR*:“出错”信号。当送入打印机的命令格式出错时,打印机立即打印一行出错信息,提示出错。在打印出错信息之前,该信号线出现一个负脉冲,脉冲宽度为30s。,3接口信号时序,接口信号时序如图10-27所示。,选通信号STB*宽度需大于0.5s。应答信号ACK*可与STB*信号作为一对应答联络信号,也可与BUSY作为一对应答联络信号。,2.字符代码及打印命令,写入的全部代码共256个,其中00H无效。,代码:01H0FH为打印命令;,代码:10H1FH为用户自定义代码;,代码:20H7FH为标准ASCII代码;,代码:80HFFH为非ASCII代码,如图10-28所示。其中包括少量汉字、希腊字母、块图图符和一些特殊字符。,3.TPP-40A/16A与MCS-51单片机接口设计,TPP-40A/16A内部控制电路由单片机构成,在输入电路中有锁存器,在输出电路中有三态门控制。因此可直接与单片机相接。,TPP-40A/16A只有握手线STB*、BUSY(或ACK*),接口电路如图10-29所示。,图10-30:并行I/O口连接的打印机接口电路。图中的扩展I/O口为8255A的PA口,采用查询法,即通过读8255A的PC0脚的状态来判断送给打印机的一个字节的数据是否处理完毕。也可用中断法(BUSY直接与单片机的P3.3脚相连)。,例把MCS-51单片机内部RAM3FH4FH单元中的ASCII码数据送到打印机。8255A设置为方式0,即端口A与端口C的上半部为输出方式。端口C的下半部为输入方式。,打印程序如下:,PRINT:MOVR0,#7FH;控制口地址R0,MOVA,#81H;8255A控制字A,MOVXR0,A;控制字控制口,MOVR1,#3FH;数据区首地址R1,MOVR2,#0FH;打印数据个数的计数,LOOP:MOVA,R1;打印数据单元内容A,INCR1;指向下一个数据单元,MOVR0,#7CH;8255A的端口A地址R0,MOVXR0,A;打印数据送8255A的口A并锁存,MOVR0,#7FH;8255A的控制口地址R0,MOVA,#0EH;PC7的复位控制字A,MOVXR0,A;PC7=0,MOVA,#0FH;PC7的置位控制字A,MOVXR0,A;PC7由0变1,LOOP1:MOVR0,#7EH;口C地址R0,MOVXA,R0;读入C口的值,ANLA,#01H;屏蔽C口的高7位,只留PC0位,JNZLOOP1;查询BUSY的状态,如为1跳LOOP1,DJNZR2,LOOP;未打完,循环,10.5.2MCS-51与GP16微型打印机的接口,1.GP16微型打印机的接口信号,控制器为8031单片机。接口信号如下:,各信号的功能如下:,IO0IO7:双向三态数据总线,是CPU与GP16打印机之间命令、状态和数据信息传输线。,CS*:设备选择线。,RD*、WR*:读、写信号线。,BUSY:打印机状态输出,高电平表示GP16处于忙状态,可供CPU查询或作中断请求线。,GP16控制器具有数据锁存器,与单片机接口十分方便。,1打印命令及打印方式,GP16的打印命令占两个字节,其格式如下:,第一个字节D7-D4D3-D0,操作码点行数n,第二个字节D7-D0,打印行数NN,GP16为微型针打,字符本身占据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

温馨提示

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

评论

0/150

提交评论