《C51与显示器LED的接口设计.ppt》由会员分享,可在线阅读,更多相关《C51与显示器LED的接口设计.ppt(29页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、第第1010章章 89C5189C51与键盘、显示器、拨盘、打印机的接口设计与键盘、显示器、拨盘、打印机的接口设计输入外设:输入外设:键盘、键盘、BCDBCD码拨盘等;码拨盘等;输出外设:输出外设:LEDLED显示器、显示器、LCDLCD显示器、打印机等。显示器、打印机等。10.1 10.1 LEDLED显示器接口原理显示器接口原理LEDLED(Light Emitting Diode)(Light Emitting Diode):发光二极管的发光二极管的缩写。显示器前面冠以缩写。显示器前面冠以“LED”LED”。10.1.1 10.1.1 LEDLED显示器的结构显示器的结构常用的常用的LE
2、DLED显示器为显示器为8 8段段(或(或7 7段段,8 8段比段比7 7段多段多了一个小数点了一个小数点“dp”dp”段)。段)。有有共阳极共阳极和和共阴极共阴极两种。如两种。如图图10-110-1所示。所示。图图10-110-1LEDLED显示器的扩展显示器的扩展(结构结构)LEDLED数码管的数码管的结构结构:共阳与共阴共阳与共阴 单片机系统扩展单片机系统扩展LEDLED数码管时数码管时多用多用共阳共阳LEDLED:共阳数码管每个段笔画是用低电平共阳数码管每个段笔画是用低电平(“0”)(“0”)点亮的点亮的,要求驱要求驱动功率很小;而共阴数码管段笔画是用高电平动功率很小;而共阴数码管段笔
3、画是用高电平(“0”)(“0”)点亮点亮的,要求驱动功率较大。的,要求驱动功率较大。通常每个段笔画要串一个数百欧姆的通常每个段笔画要串一个数百欧姆的降压电阻降压电阻。公共公共阳阳极极h g f e d c b ah g f e d c b aa ab bc cd dg ge ef fh h公共公共阴阴极极h g f e d c b ah g f e d c b aa ab bc cd dg ge ef fh hh g f ah g f a高电平点亮高电平点亮低电平点亮低电平点亮接高电平接高电平接地接地LEDLED数码管的数码管的译码译码:硬件译码与软件译码硬件译码与软件译码硬件译码特点硬件译码
4、特点:采用专用的译码采用专用的译码/驱动器件驱动器件,驱动功驱动功率较大率较大;增加了硬件的开销增加了硬件的开销;软件软件编程简单编程简单;字型固字型固定定(比如比如:只有七段只有七段,只可译数字只可译数字,字型不好看字型不好看)。共阴共阴LEDa ab bc cd dg ge ef fh hg gf fe ed dc cb b a aD DC CB BA ACD4511CD4511AT89C51AT89C517474LS48/CD4511LS48/CD4511是是“BCDBCD码码七段七段共阴共阴译码译码/驱动驱动”IC;IC;74LS4774LS47是是“BCDBCD码码七段七段共阳共阳译
5、码译码/驱动驱动”ICICLEDLED显示器的扩展显示器的扩展(结构结构)LEDLED显示器的扩展显示器的扩展(软件译码软件译码)LEDLED数码管的译码:数码管的译码:软件译码软件译码软件译码特点软件译码特点:不用专用的译码不用专用的译码/驱动器件,驱动驱动器件,驱动功率较小功率较小;不增不增加加硬件的开销;软件硬件的开销;软件编程较复杂编程较复杂;字型;字型灵活灵活(比如:比如:有八段,只可译多种字符,字型好看有八段,只可译多种字符,字型好看)。共阳共阳LEDa ab bc cd dg ge ef fh h+5+5V VAT89C51AT89C51硬件译码特点硬件译码特点:采用专用译码采用
6、专用译码/驱动器件,驱动器件,驱动功率较大;增加了硬驱动功率较大;增加了硬件的开销;软件编程简单;件的开销;软件编程简单;字型固定字型固定(比如:只有七比如:只有七段,只可译数字,字型不段,只可译数字,字型不好看好看)。LEDLED数码管的软件译码数码管的软件译码八段八段LEDLED数码管数码管段代码编码表段代码编码表(连线不同可有多种表连线不同可有多种表):):公共阳极公共阳极h g f e d c b ah g f e d c b aa ab bc cd dg ge ef fh h公共阴极公共阴极h g f e d c b ah g f e d c b aa ab bc cd dg ge
7、ef fh hh g f ah g f a高电平点亮高电平点亮低电平点亮低电平点亮接高电平接高电平接地接地字形字形0123456789黑黑共阳共阳0C00F90A40B09992820F880900FF共阴共阴3F065B4F666D7D077F6F00LEDLED数码管分类:数码管分类:按按其内部结构可分为其内部结构可分为共阴型共阴型和和共阳型共阳型;按按其外形尺寸有多种形式,使用较多的其外形尺寸有多种形式,使用较多的是是0.50.5和和0.80.8;按按显示颜色也有多种形式,主要有显示颜色也有多种形式,主要有红色红色和和绿色绿色;正向压降一般为正向压降一般为1.51.52 2V V,额定电
8、流为额定电流为1010mAmA,最大电流为最大电流为4040mAmA。静态显示静态显示时取时取1010mAmA为宜,为宜,动态扫描显示动态扫描显示,可加大脉冲电流,但,可加大脉冲电流,但一般不超过一般不超过4040mAmA。按按亮度强弱可分为亮度强弱可分为超亮超亮、高亮高亮和和普亮普亮。N N个个LEDLED显示块有显示块有N N位位位选线位选线和和88N N根根段码线段码线。段码线段码线控制控制显示显示的字型的字型,位选线位选线控制控制该显示位的亮或暗。该显示位的亮或暗。10.1.2 10.1.2 LEDLED显示器工作原理显示器工作原理图图10-210-2是是4 4位位 LEDLED显示器
9、的结构原理图显示器的结构原理图。图图10-210-2静态显示静态显示和和动态显示动态显示两种显示方式。两种显示方式。1.1.LEDLED静态显示方式静态显示方式2.2.各位的公共端连接在一起(接地或各位的公共端连接在一起(接地或+5+5V V)。)。3.3.每位的段码线(每位的段码线(a adpdp)分别分别与一个与一个8 8位的锁存器输出相位的锁存器输出相连。连。4.4.显示字符一确定,相应锁存器的段码输出将维持不变,显示字符一确定,相应锁存器的段码输出将维持不变,直到送入另一个段码为止。直到送入另一个段码为止。显示的亮度高显示的亮度高。5.5.图图10-3:10-3:4 4位静态位静态LE
10、DLED显示器电路显示器电路。该电路各位可独立显。该电路各位可独立显示示 2.2.LEDLED动态显示方式动态显示方式所有位的段码线所有位的段码线相应段并在一起,由一个相应段并在一起,由一个8 8位位I/OI/O口控制口控制,形,形成成段码线的多路复用,段码线的多路复用,各位的各位的公共端公共端分别由相应的分别由相应的I/OI/O线控制,线控制,形成各位的形成各位的分时选通。分时选通。图图10-410-4:4 4位位8 8段段LEDLED动态显示电路。其中段码线占用一个动态显示电路。其中段码线占用一个8 8位位I/OI/O口,而位选线占用一个口,而位选线占用一个4 4位位I/OI/O口。口。图
11、图10-510-5为为8 8位位LEDLED动态显示动态显示200200的过程的过程。图(图(a)a)是显示过程,是显示过程,某一时刻,只有一位某一时刻,只有一位LEDLED被选通显示,其被选通显示,其 余位则是熄灭的;余位则是熄灭的;图(图(b)b)是实际显示结果,是实际显示结果,人眼看到的是人眼看到的是8 8位稳定位稳定的的同时显示同时显示 的字符。的字符。图图10-510-51 1、并行扩展静态显示电路并行扩展静态显示电路 应用:静态显示电路应用:静态显示电路【例【例1 1】按上图编制显示子程序,显示数(】按上图编制显示子程序,显示数(255255)存在内)存在内RAM 30HRAM 3
12、0H中。中。DIR1:MOV A,30H ;DIR1:MOV A,30H ;读显示数读显示数 MOV B,#100MOV B,#100 ;置除数置除数 DIV AB ;DIV AB ;产生百位显示数字产生百位显示数字 MOVC A,A+DPTR ;MOVC A,A+DPTR ;读百位显示符读百位显示符 MOV DPTR,#0MOV DPTR,#0D DFFFH ;FFFH ;置置74377(74377(百位百位)地址地址 MOVX DPTR,A ;MOVX DPTR,A ;输出百位显示符输出百位显示符 MOV A,B ;MOV A,B ;读余数读余数 MOV B,#10MOV B,#10 ;置
13、除数置除数 DIV AB ;DIV AB ;产生十位显示数字产生十位显示数字 MOV DPTR,#TAB ;MOV DPTR,#TAB ;置共阳字段码表首址置共阳字段码表首址 MOVC A,A+DPTR ;MOVC A,A+DPTR ;读十位显示符读十位显示符 MOV DPTR,#0MOV DPTR,#0B BFFFH ;FFFH ;置置74377(74377(十位十位)地址地址 MOVX DPTR,A ;MOVX DPTR,A ;输出十位显示符输出十位显示符 MOV A,B ;MOV A,B ;读个位显示数字读个位显示数字 MOV DPTR,#TAB ;MOV DPTR,#TAB ;置共阳字
14、段码表首址置共阳字段码表首址 MOVC A,A+DPTR ;MOVC A,A+DPTR ;读个位显示符读个位显示符 MOV DPTR,#MOV DPTR,#7 7FFFH ;FFFH ;置置74377(74377(个位个位)地址地址 MOVX DPTR,A ;MOVX DPTR,A ;输出个位显示符输出个位显示符 RET ;RET ;TAB:DB 0C0H,0F9H,0A4H,0B0H,99H;TAB:DB 0C0H,0F9H,0A4H,0B0H,99H;共阳字段码表共阳字段码表 DB 92H,82H,0F8H,80H,90H;DB 92H,82H,0F8H,80H,90H;2 2、串行串行扩
15、展静态显示电路扩展静态显示电路 DIR2:DIR2:MOV SCON,#00H ;MOV SCON,#00H ;置串口方式置串口方式0 0 CLR ES ;CLR ES ;串口禁中串口禁中 SETB SETB P1.0P1.0 ;“;“与与”门门开开,允允许许TXDTXD发发移移位位脉脉冲冲 MOV SBUF,MOV SBUF,30H30H ;串行输出个位显示字段码串行输出个位显示字段码 JNB TI,$;JNB TI,$;等待串行发送完毕等待串行发送完毕 CLR TI ;CLR TI ;清串行中断标志清串行中断标志 MOV SBUF,MOV SBUF,31H31H ;串行输出十位显示字段码串
16、行输出十位显示字段码 JNB TI,$;JNB TI,$;等待串行发送完毕等待串行发送完毕 CLR TI ;CLR TI ;清串行中断标志清串行中断标志 MOV SBUF,MOV SBUF,32H32H ;串行输出百位显示字段码串行输出百位显示字段码 JNB TI,$;JNB TI,$;等待串行发送完毕等待串行发送完毕 CLR TI ;CLR TI ;清串行中断标志清串行中断标志 CLR CLR P1.0P1.0 ;“;“与与”门门关关,禁禁止止TXDTXD发发移移位位脉脉冲冲 RET ;RET ;【例例2 2】按上图编制显示子程序,显示字段码已分别存在】按上图编制显示子程序,显示字段码已分别
17、存在3232H H30H30H内内RAMRAM中。中。解:解:要求:要求:根据上图编写通过串行口和根据上图编写通过串行口和7474LS164LS164驱动驱动共共 阳阳LEDLED数码管数码管查表显示的子程序。查表显示的子程序。条件:条件:系统有系统有6 6个个LEDLED数码管数码管,待显数据待显数据(00(00H09H)H09H)已放在已放在3535H30HH30H单元中单元中(分别对应分别对应十万位十万位个位个位),DSPLYDSPLY:MOV DPTR,#TABLE:MOV DPTR,#TABLE;共阳共阳LEDLED数码管译码数码管译码表首址表首址 MOV R0MOV R0,#30H
18、#30H ;待显数据缓冲区的待显数据缓冲区的个位个位地址地址REDOREDO:MOV AMOV A,R0 R0 ;通过通过R0R0实现寄存器实现寄存器间接寻址间接寻址 MOVC A,A+DPTR MOVC A,A+DPTR ;查表查表 MOV SBUF,A MOV SBUF,A ;经串行口经串行口发送发送到到7474LS164LS164 JNB TI,$JNB TI,$;查询查询送完一个字节的第送完一个字节的第8 8位?位?CLR TI CLR TI ;为下一字节发送为下一字节发送作准备作准备 INC R0 INC R0 ;R0;R0指向下一个指向下一个数据缓冲单元数据缓冲单元 CJNE R0
19、CJNE R0,#36H#36H,REDO REDO ;判断判断是否发完是否发完6 6个数?个数?RET RET ;发完发完6 6个数就个数就返回返回TABLETABLE:DB 0C0H,0F9H,0A4H,0B0H,99H DB 0C0H,0F9H,0A4H,0B0H,99H ;共阳共阳LEDLED译码表译码表 DB 92H,82H,0F8H,80H,90HDB 92H,82H,0F8H,80H,90H3 3、BCDBCD码输出静态显示电路码输出静态显示电路 CD4511CD4511是是“BCDBCD码码七段共阴译码七段共阴译码/驱动驱动”IC;IC;45114511是是4 4线线-7-7段
20、锁存段锁存/译码译码/驱动电路,能将驱动电路,能将BCDBCD码译成码译成7 7段显示段显示符输出。图中:符输出。图中:4511 4511 ABCDABCD为为0 09 9二进制数输入端二进制数输入端(A A是低位是低位),abcdefgabcdefg为显示段码输出端,为显示段码输出端,LELE为输入信号锁存为输入信号锁存控制控制(低电平有效低电平有效),数码管为共阴数,数码管为共阴数码管。码管。利用利用45114511实现静态显示与一般静态显示电路实现静态显示与一般静态显示电路不同,不同,一是一是节省节省I I0 0端线,段码输出只需端线,段码输出只需4 4根;根;二二是是不需专用驱动电路,
21、可直接输出;不需专用驱动电路,可直接输出;三是三是不需译不需译码,直接输出二进制数,编程简单;码,直接输出二进制数,编程简单;缺点是缺点是只能只能显示数字,不能显示各种符号。显示数字,不能显示各种符号。解:编程如下:解:编程如下:DIR3:MOV P1,#111DIR3:MOV P1,#1110 00000B 0000B;选通个位选通个位 ORL P1,30H ORL P1,30H ;输出个位显示数输出个位显示数 MOV P1,#11MOV P1,#110 010000B 10000B;选通十位选通十位 ORL P1,31H ORL P1,31H ;输出十位显示数输出十位显示数 MOV P1,
22、#1MOV P1,#10 0110000B 110000B;选通百位选通百位 ORL P1,32H ORL P1,32H ;输出百位显示数输出百位显示数 RET RET ;【例【例4 4】按图】按图9-59-5试编制显示子程序(小数点固定试编制显示子程序(小数点固定在第二位),已知显示数存在内在第二位),已知显示数存在内RAM 30HRAM 30H32H32H中。中。动态显示电路动态显示电路连结形式:连结形式:显示各位的所有显示各位的所有相同字段线连在一起,相同字段线连在一起,共共8 8段,由一个段,由一个8 8位位I/OI/O口控制;口控制;每一位的公共端每一位的公共端(共阳或共阴(共阳或共
23、阴COMCOM)由另一个由另一个I/OI/O口控制。口控制。应用:应用:动态显示方式动态显示方式及其典型应用电路及其典型应用电路LEDLED数码管数码管动态动态显示举例显示举例P0.7 P0.7 P0.6 P0.6 P0.5 P0.5 P0.4 P0.4 P0.3 P0.3 P0.2 P0.2 P0.1 P0.1 P0.0P0.07406 7406 OCOC门门 X 3X 3上拉上拉电阻电阻1414+5+5V VAT89C51AT89C51工作原理工作原理:从从P0P0口送段代码口送段代码,P1P1口送位选信号口送位选信号。段码虽同时。段码虽同时到达到达 6 6个个LEDLED,但但一次仅一个
24、一次仅一个LEDLED被选中被选中。利用。利用“视觉暂留视觉暂留”,每送一个字符并选中相应位线,延时一会儿,每送一个字符并选中相应位线,延时一会儿,再送再送/选选下一个下一个循环扫描循环扫描即可。即可。共阴共阴 数码管数码管位位选选线线段段代代码码P0.7 P0.7 P0.6 P0.6 P0.5 P0.5 P0.4 P0.4 P0.3 P0.3 P0.2 P0.2 P0.1 P0.1 P0.0P0.07406 7406 OCOC门门 X 3X 3+5+5V VAT89C51AT89C51位位选选线线段段代代码码要求要求:此处为共阴数码管,此处为共阴数码管,P0P0口送段代码,口送段代码,P1P
25、1口送位选信号。口送位选信号。通过查表实现动态显示。通过查表实现动态显示。条件条件:待显数据待显数据(00(00H09H)H09H)已放在已放在:7 7FH7AHFH7AH单元中单元中(分别对分别对应应十万位十万位个位个位)说明说明:由于用了由于用了反相驱动器反相驱动器74067406,要用共阳译码表。,要用共阳译码表。共阴共阴 数码管数码管上拉上拉电阻电阻14147406 7406 OCOC门门 X 3X 3+5+5V V(7FH)(7EH)(7DH)(7CH)(7BH)(7AH)十万十万 万位万位 千位千位 百位百位 十十位位 个位个位数据缓冲区数据缓冲区/显示缓冲区显示缓冲区P0P0口口
26、送段送段代码,代码,P1P1口口送位选送位选信号。信号。待显数据待显数据已经放在已经放在:7 7FH7AHFH7AH单元单元(分别分别对应对应十万十万位位个位个位)使用共阳使用共阳译码表译码表。DIRDIR:MOV DPTR,:MOV DPTR,#DSEG#DSEG ;数码管译码数码管译码表首址表首址 MOV R0MOV R0,#7AH#7AH ;待显缓冲区待显缓冲区个位个位地址地址 MOV R3MOV R3,#01H#01H ;个位的个位的位选信号位选信号=01=01H HLD1LD1:MOV A MOV A,R0 R0 ;通过通过R0R0间接寻址间接寻址 MOVC A,A+DPTRMOVC
27、 A,A+DPTR ;查表查表 MOV P0,A MOV P0,A ;字段码送到字段码送到P0P0口口 MOV P1MOV P1,R3 R3 ;字位选择送到字位选择送到P1P1口口 LCALL DELYLCALL DELY ;调延时调延时1 1msms子程序子程序 INC R0 INC R0 ;R0;R0 指向下一字节指向下一字节 MOV AMOV A,R3R3 JB ACC.5 JB ACC.5,LD2LD2 ;判判是否发完是否发完6 6个数?个数?RL A RL A ;R1;R1指向下一个位指向下一个位 MOV R3MOV R3,A A ;位选信号存回位选信号存回R1R1 SJMP SJM
28、P LD1LD1 ;跳去再显示下一个数跳去再显示下一个数LD2LD2:RET RET ;发完发完6 6个数就个数就返回返回DSEGDSEG:DB 0C0H,0F9H,0A4H,0B0H,99HDB 0C0H,0F9H,0A4H,0B0H,99H;共阳译码表共阳译码表 DB 92H,82H,0F8H,DB 92H,82H,0F8H,80H80H,90H,90HP0P0口口送段送段代码,代码,P1P1口口送位选送位选信号。信号。待显数据待显数据已经放在已经放在:7 7FH7AHFH7AH单元单元(分别分别对应对应十万十万位位个位个位)使用共阳使用共阳译码表译码表。1 1、共阴型共阴型8 8位动态显
29、示电路位动态显示电路DIR4:MOV R2,#10 DIR4:MOV R2,#10 ;置循环扫描次数置循环扫描次数 MOV DPTR,#7FFFH MOV DPTR,#7FFFH ;置置7437774377口地址口地址DLP1:ANL P1,#11111000B DLP1:ANL P1,#11111000B;第第0 0位先显示位先显示 MOV R0,#30H MOV R0,#30H ;置显示字段码首址置显示字段码首址DLP2:MOV A,R0 DLP2:MOV A,R0 ;读显示字段码读显示字段码 MOVX DPTR,A MOVX DPTR,A ;输出显示字段码输出显示字段码 LCALL DY
30、2ms LCALL DY2ms ;调用延时调用延时2 2msms子程序子程序(参阅例参阅例4.13)4.13)INC R0 INC R0 ;指向下一位字段码指向下一位字段码 INC P1 INC P1 ;选通下一位显示选通下一位显示 CJNE R0,#38H,DLP2 CJNE R0,#38H,DLP2 ;判判8 8位扫描显示完否位扫描显示完否?未完继续未完继续 DJNZ R2,DLP1 DJNZ R2,DLP1 ;8;8位扫描显示完毕位扫描显示完毕,判判1010次循环完否次循环完否?CLR A CLR A ;10;10次循环完毕次循环完毕,显示暗显示暗 MOVX DPTR,A MOVX DP
31、TR,A ;RET RET ;子程序返回子程序返回【例【例5 5】按上图,试编制循环扫描(】按上图,试编制循环扫描(1010次)显示子程序,已知次)显示子程序,已知显示字段码存在以显示字段码存在以3030H H(低位)为首址的低位)为首址的8 8字节内字节内RAMRAM中。中。解:编程如下:解:编程如下:2 2、共阳型共阳型3 3位动态显示电路位动态显示电路DIR5:MOV DPTR,#0BFFFH DIR5:MOV DPTR,#0BFFFH ;置置7437774377地址地址 MOV R2,#100 MOV R2,#100 ;置循环显示次数置循环显示次数DIR50:SETB P1.2 DIR
32、50:SETB P1.2 ;百位停显示百位停显示 MOV A,40H MOV A,40H ;取个位字段码取个位字段码 MOVX DPTR,A MOVX DPTR,A ;输出个位字段码输出个位字段码 CLR P1.0 CLR P1.0 ;个位显示个位显示 LCALL DY2ms LCALL DY2ms ;调用延时调用延时2 2msms子程序子程序(参阅例参阅例4.13)4.13)DIR51:SETB P1.0 DIR51:SETB P1.0 ;个位停显示个位停显示 MOV A,41H MOV A,41H ;取十位字段码取十位字段码 MOVX DPTR,A MOVX DPTR,A ;输出十位字段码
33、输出十位字段码 CLR P1.1 CLR P1.1 ;十位显示十位显示 LCALL DY2ms LCALL DY2ms ;延时延时2 2msmsDIR52:SETB P1.1 DIR52:SETB P1.1 ;十位停显示十位停显示 MOV A,42H MOV A,42H ;取百位字段码取百位字段码 MOVX DPTR,A MOVX DPTR,A ;输出百位字段码输出百位字段码 CLR P1.2 CLR P1.2 ;百位显示百位显示 LCALL DY2ms LCALL DY2ms ;延时延时2 2msms DJNZ R2,DIR50 DJNZ R2,DIR50 ;判循环显示结束否判循环显示结束否?未完继续未完继续 ORL P1,#00000111B ORL P1,#00000111B;3;3位灭显示位灭显示 RET RET ;【例【例6 6】根据上图,试编制】根据上图,试编制3 3位动态扫描显示程序位动态扫描显示程序(循环循环100100次次),),已知显示字段码存在以已知显示字段码存在以4040H(H(低位低位)为首址的为首址的3 3字节内字节内RAMRAM中。中。解:编程如下:解:编程如下:
限制150内