此项目仍使用SST芯片,数码管和流水灯(详见:流水灯制作)一起制作,电路图如下:
R14—R21为上拉电阻,数码管和流水灯均占用了P0口,所以需要复用,这里的办法是:将三极管的发射极(E)的+5V断开,将LED的正极断开(共阳),从左往右依次为:流水灯+5V,电源+5V,数码管+5V,用流水灯时,连接中间和左边;用数码管时,连接中间和右边,从而达到复用目的。如下图:
实物图如下:
全显示效果(8.):
显示5201314:
汇编代码如下:
全显示:
ORG 0000H
AJMP MAIN
ORG 0050H
MAIN:
MOV R0, #8
MOV R1, #0xFE
DISPLAY_LOOP:
MOV P0, #0x00
MOV P2, R1
ACALL DELAY
RL A
MOV R1, A
DJNZ R0, DISPLAY_LOOP
AJMP MAIN
DELAY:
MOV R7,#1
D1: MOV R6,#1
D2: DJNZ R6,D2
DJNZ R7,D1
RET
END
显示5201314:
DISSTART EQU 40H
LED_DATA EQU P0
ORG 0000H
AJMP MAIN
ORG 0030H
MAIN:
MOV SP,#60H
MOV P0,#0FFH
MOV P2,#0FFH
MOV R2,#08H
MOV R0,#DISSTART
MOV R1,#00H
MAIN1:
MOV A,R1
MOV @R0,A
INC R1
INC R0
DJNZ R2,MAIN1
M_LOOP:
ACALL PLAY
JMP M_LOOP
PLAY:
CLR P3.4
MOV R0,#DISSTART
MOV R1,#0FEH
MOV R2,#08H
DISP1:
MOV A,@R0
MOV DPTR,#TAB_NU
MOVC A,@A+DPTR
MOV LED_DATA,A
MOV P2,R1
MOV A,R1
RL A
MOV R1,A
INC R0
LCALL DELAY2MS
DJNZ R2,DISP1
MOV P2,#0FFH
RET
DELAY2MS:
MOV R6,#10
DEL1:
MOV R7,#100
DJNZ R7,$
DJNZ R6,DEL1
RET
TAB_NU:
DB 92H,0A4H,0C0H,0F9H,0B0H,0F9H,99H
END