ORG 0000H
AJMP ST
ORG 000BH ;采用定时器T0溢出中断
AJMP T0_INT
ORG 0030H
ST: MOV SP,#60H
MOV TMOD,#01H ;定时器T1不使用,定时器T0采用方式一
MOV R4,#20 ;20次50ms中断产生1s定时
MOV TH0,#4BH ;定时器T0定时初始值
MOV TL0,#0FDH
SETB EA ;开总中断
SETB ET0 ;开定时器T0中断
SETB TR0 ;启动定时器T0
MOV DPTR,#TAB ;查表地址
MOV R1,#0
AJMP $ ;等待中断
T0_INT: MOV TH0,#4BH ;T0中断方式一重新计入初值
MOV TL0,#0FDH
DJNZ R4,EXIT
MOV R4,#20 ;20次没到先退出
MOV A,R1 ;保证连续20次50ms中断后执行灯的流水顺序变化
MOVC A,@A+DPTR ;查表查出流水灯的显示字
MOV P1,A ;P1口接流水灯
INC R1
CJNE R1,#8,EXIT ;八种显示方式循环显示完后重新开始
MOV R1,#0
EXIT: RETI
TAB: DB 0FAH,0F5H,0AFH,5FH,0AAH,55H,00H,0FFH
END
|