《LED显示器接口及显示程序.pptx》由会员分享,可在线阅读,更多相关《LED显示器接口及显示程序.pptx(15页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第八章 LED显示器接口及显示程序 单片机应用系统中使用的显示器主要有:发光二极管显示器,简称LED(Light Emitting Diode);液晶显示器,简称LCD(Liquid Crystal Display);CRT显示器1.LED显示器结构原理单片机中通常使用7段LED有共阴极和共阳极两种,如图9-11所示。发光二极管的阳极连在一起的(公共端K0)称为共阳极显示器阴极连在一起的(公共端K0)称为共阴极显示器。一位显示器由8个发光二极管组成,其中,7个发光二极管构成字型“8”的各个笔划(段)ag,另一个小数点为dp发光二极管。当在某段发光二极管上施加一定的正向电压时,该段笔划即亮;不加
2、电压则暗。为了保护各段LED不被损坏,须外加限流电阻。以共阴极LED为例,如图9-11(a)所示,各LED公共阴极K0接地。若向各控制端a、b、g、dp顺次送入11100001信号,则该显示器显示“7.”字型。共阴极与共阳极7段LED显示数字0F、“-”符号及“灭”的编码(a段为最低位,dp点为最高位)如表9-1所列。图图8-11 8-11 LED 7LED 7段显示器段显示器表8-1 共阴极和共阳极7段LED显示字型编码表显示字符012345678共阴极段选码3F(BF)06(36)5B(DB)4F(CF)66(F6)6D(FD)7D(FD)07(87)7F(FF)共阳极段选码C0(40)F
3、9(79)A4(24)B0(30)99(19)92(12)82(02)F8(78)80(00)显示字符9ABCDEF-熄灭共阴极段选码6F(EF)77(F7)7C(FC)39(B9)5E(DE)79(F9)71(F1)40(C0)00(80)共阳极段选码90(10)88(08)82(03)C6(46)A1(21)86(06)8E(0E)BF(3F)FF(7F)2.LED显示器接口方式LED显示器有硬件译码方式和软件译码方式两种方式。3.LED显示器接口及显示方式LED显示器有静态显示和动态显示两种方式。1)LED静态显示方式静态显示就是当显示器显示某个字符时,相应的段(发光二极管)恒定地导通或
4、截止,直到显示另一个字符为止。LED显示器工作于静态显示方式时,各位的共阴极(公共端K0)接地;若为共阳极(公共端K0),则接+5v电源。每位的段选线(adp)分别与一个8位锁存器的输出口相连,显示器中的各位相互独立,而且各位的显示字符一经确定,相应锁存的输出将维持不变。因此,静态显示器的亮度较高。这种显示方式编程容易,管理也较简单,但占用口线资源较多。在显示位数较多的情况下,一般都采用动态显示方式。2)LED动态显示方式在多位LED显示时,将所有位的段选线并联在一起,由一个8位口控制。而共阴(或共阳)极公共端分别由相应的线控制,实现各位的分时选通。图9-12所示为6位共阴极LED动态显示接口
5、电路。图9-12 6位LED动态显示接口电路图9-13 6位动态扫描显示状态图图9-12 69-12 6位位LEDLED动态显示接口电路动态显示接口电路例如,要求显示“E020”时,I/O口1和I/O口2轮流送入段选码、位选码及显示状态如图9-13所示。段选码、位选码每送入一次后延时1 ms,因人眼的视觉暂留时间为 s(100 ms),所以每位显示的间隔不必超过20 ms,并保持延时一段时间,以造成视觉暂留效果,给人看上去每个数码管总在亮。这种方式称为软件扫描显示。图图9-13 69-13 6位动态扫描显示状态位动态扫描显示状态3.LED显示器与89C51接口及显示子程序图9-14图中,P0口
6、输出段选码,P1口输出位选码,位选码占用输出口的线数决定于显示器位数,比如6位就要占6条。75452(或7406)是反相驱动器(30 V高电压,OC门),这是因为89C51 P1口正逻辑输出的位控与共阴极LED要求的低电平点亮正好相反,即当P1口位控线输出高电平时,点亮一位LED。7407是同相OC门,作段选码驱动器。逐位轮流点亮各个LED,每一位保持1 ms,在1020 ms之内再一次点亮,重复不止。这样,利用人的视觉暂留,好像6位LED同时点亮一样。扫描显示子程序流程如图9-15所示。图图9-14 69-14 6只只LEDLED动态显示接口动态显示接口图图9 915 DIS15 DIS显示
7、显示子程序流程图子程序流程图DIS显示子程序清单如下:DIS:MOVR0,#7EH;显示缓冲区末地址R0MOVR2,#01H;位控字,先点亮最低位(右边)MOVA,R2MOVDPTR,#TAB;字型表头地址DPTRLP0:MOVP1,AMOVA,R0;取显示数据MOVCA,A+DPTR;取出字形码MOVP0,A;送出显示ACALLD1MS;调延时子程序DECR0;数据缓冲区地址减1MOVA,R2JBACC.5,LP1;扫描到最左面的显示器了吗?RLA;没有到,左移1位MOVR2,AAJMPLP0LP1:RETTAB:DB3FH,06H,5BH,4FH,66H,6DHDB7DH,07H,7FH,
8、6FH,77H,7CHDB39H,5EH,79H,71H,40H,00HD1MS:MOVR7,#02H;延时1 ms子程序DL:MOVR6,#0FFHDL1:DJNZR6,DL1DJNZR7,DLRET4.LED显示器与8255接口及显示子程序 DIR:MOV A,#10000000B ;设置8255的工作方式,A、B口为输出 MOV DPTR,#0FFFFH ;8255的命令口地址送DPTR MOVX DPTR,A MOV R0,#50H ;50H-57H为显示缓冲区 MOV R3,#7FH ;第1位的位选码 MOV A,R3 SCAN:MOV DPTR,#0FFFDH ;指向B口 MOVX
9、 DPTR,A ;位选码送B口 MOV A,R0 ;取显示数据 MOV DPTR,#TAB ;取字形码表首址 MOVC A,A+DPTR ;取字形码 MOV DPTR,#0FFFCH ;指向A口 MOVX DPTR,A ;字形码送A口 ACALL DL1ms ;调延时1ms子程序 INC R0 ;指向下一显示数据单元 MOV A,R3 JNB ACC.0,ED ;8位显示完,退出 RR A ;指向下一位 MOV R3,A AJMP SCAN ;继续显示下一位ED:RETTAB:DB 3FH,06H,5BH,4FH,66H ;共阴0F的字型码表 DB 6DH,7DH,07H,7FH,6FHDL1ms:MOV R7,#01H ;延时1ms子程序DL0:MOV R6,#0FFHDL1:DJNZ R6,DLI;DJNZ R7,DLORET