org 0000h
LJMP MAIN
org 0003h
ljmp int0
org 000Bh
ljmp timer0
MAIN:
MOV SP,#60h
mov TCON,#00000001b
mov IE,#10000011b
START:
mov A,#0fh
clr c
MOV R2,#08H
LOOP: RLC A ;左移一位
MOV P1,A ;输出至P0
LCALL DELAY ;延时0.2秒
DJNZ R2,LOOP ;左移7次?
MOV R2,#07H
LOOP1:RRC A ;右移一位
MOV P1,A ;输出至P0
LCALL DELAY
DJNZ R2,LOOP1 ;右移7次?
JMP START
int0: push psw
push a
mov TMOD,#00000001b
mov TL0,#0f0h
mov TH0,#0D8h
mov r2,#3
mov a,#00010000b
clr c
setb tr0
mov p1,a
HERE: cjne r2,#0,HERE
pop a
pop psw
RETI
timer0:
push psw
clr tr0
dec r2
RLC a
mov p1,a
mov TL0,#0f0h
mov TH0,#0D8h
setb tr0
pop psw
RETI
DELAY:MOV R3,#20 ;延时0.2秒
D1: MOV R4,#40
D2: MOV R5,#248
DJNZ R5,$
DJNZ R4,D2
DJNZ R3,D1
RET
END