一般数码管通常由八段LED灯组成,又分成共阳数码管和共阴数码管(如下图所示)。共阴极数码管即为LED阴极连接在一起为公共阴极,共阳极数码光即为LED阳极连接在一起为公共阳极。以共阴极数码管为例,当某个LED阳极通入高电平时,LED灯点亮,相对应的段也就被显示出来,共阳极数码管恰好与之相反。
显示字符 | 共阴极段码 | 共阳极段码 | 显示字符 | 共阴极段码 | 共阳极段码 |
---|---|---|---|---|---|
0 | 3FH | C0H | b | 7CH | 83H |
1 | 06H | F9H | c | 39H | C6H |
2 | 5BH | A4H | d | 5EH | A1H |
3 | 4FH | B0H | E | 79H | 86H |
4 | 66H | 99H | F | 71H | 8EH |
5 | 6DH | 92H | P | 73H | 8CH |
6 | 7DH | 82H | U | 3EH | C1H |
7 | 07H | F8H | T | 31H | CEH |
8 | 7FH | 80H | y | 6EH | 91H |
9 | 6FH | 90H | H | 76H | 89H |
A | 77H | 88H | L | 38H | C7H |
动态扫描显示方式的依据是利用人眼的滞留现象,只要在1秒内一个发光管亮24次以上,每次点亮时间维持2ms以上,则人眼感觉不到闪烁,宏观上仍可看到多位LED同时显示的效果。动态显示可以简化硬件、降低成本、减小功耗。具体实现时通常将所有位的段选线相应的并联在一起,由一个l/O口控制,形成段选线的多路复用。而各位的共阳极和共阴极分别由相应的I/o口控制,实现分时复用。
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