一、数码管基础知识
1.数码管结构
一般数码管通常由八段LED灯组成,又分成共阳数码管和共阴数码管(如下图所示)。共阴极数码管即为LED阴极连接在一起为公共阴极,共阳极数码光即为LED阳极连接在一起为公共阳极。以共阴极数码管为例,当某个LED阳极通入高电平时,LED灯点亮,相对应的段也就被显示出来,共阳极数码管恰好与之相反。
![](https://img-blog.csdnimg.cn/472013546a5547da9a8ac8cdfddd149b.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5aSnIOWKmyDlh7og5aWHIOi_uQ==,size_4,color_FFFFFF,t_70,g_se,x_16)
2.数码管段码
显示字符共阴极段码共阳极段码显示字符共阴极段码共阳极段码03FHC0Hb7CH83H106HF9Hc39HC6H25BHA4Hd5EHA1H34FHB0HE79H86H466H99HF71H8EH56DH92HP73H8CH67DH82HU3EHC1H707HF8HT31HCEH87FH80Hy6EH91H96FH90HH76H89HA77H88HL38HC7H
3.数码管动态显示
动态扫描显示方式的依据是利用人眼的滞留现象,只要在1秒内一个发光管亮24次以上,每次点亮时间维持2ms以上,则人眼感觉不到闪烁,宏观上仍可看到多位LED同时显示的效果。动态显示可以简化硬件、降低成本、减小功耗。具体实现时通常将所有位的段选线相应的并联在一起,由一个l/O口控制,形成段选线的多路复用。而各位的共阳极和共阴极分别由相应的I/o口控制,实现分时复用。
二、动态数码管显示实例———显示(0-999)
1.电路原理图
![](https://img-blog.csdnimg.cn/7179a21e02144df2bdef8d6f3aef93ca.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5aSnIOWKmyDlh7og5aWHIOi_uQ==,size_20,color_FFFFFF,t_70,g_se,x_16)
二、执行代码
ORG 0000H
MAIN: MOV DPTR,#LEDTAB
MOV R4,#0
QIAN:
MOV R3,#0
BAI:
MOV R2,#0
SHI:
MOV R1,#0
G:
MOV R0,#50
START:
MOV R7,#0DFH
LCALL OPEN
SETB P2.6
MOV A,R1
MOVC A,@A+DPTR
MOV P0,A
LCALL DELAY
CLR P2.6
MOV R7,#0EFH
LCALL OPEN
SETB P2.6
MOV A,R2
MOVC A,@A+DPTR
MOV P0,A
LCALL DELAY
CLR P2.6
MOV R7,#0FBH
LCALL OPEN
SETB P2.6
MOV A,R3
MOVC A,@A+DPTR
MOV P0,A
LCALL DELAY
CLR P2.6
MOV R7,#0F7H
LCALL OPEN
SETB P2.6
MOV A,R4
MOVC A,@A+DPTR
MOV P0,A
LCALL DELAY
CLR P2.6
DJNZ R0,START
INC R1
CJNE R1,#10,G
INC R2
CJNE R2,#10,SHI
INC R3
CJNE R3,#1O,BAI
INC R4
CJNE R4,#10,QIAN
LCALL MAIN
DELAY: MOV R6,#1
DELAY1: MOV R5,#250
DELAY2: DJNZ R5,DELAY2
DJNZ R6,DELAY1
RET
OPEN:
SETB P2.7
MOV A,R7
MOV P0,A
CLR P2.7
RET
ORG 1000H
LEDTAB:
DB 03FH,006H,05BH,04FH,066H,06DH,07DH,007H,07FH,06FH
END
|