ORG 0000H
AJMP MAIN
// 定时0.5s //
delay: MOV TMOD,#01H //定时器T0模式1定时
MOV TCON,#0 //溢出位清零
MOV R7,#10 // 循环次数
NEXT: MOV TL0,#0b0h //载入初值 一次50ms
MOV TH0,#3ch
SETB TR0 //启动定时器t0
LOOP: JNB TF0,LOOP //等待定时器溢出位置1,定时时间到
CLR TF0 //清除溢出位
CLR TR0 //关闭定时器
DJNZ R7,NEXT //判定循环次数
RET //返回子程序
AJMP MAIN
// 定时0.5s //
delay: MOV TMOD,#01H //定时器T0模式1定时
MOV TCON,#0 //溢出位清零
MOV R7,#10 // 循环次数
NEXT: MOV TL0,#0b0h //载入初值 一次50ms
MOV TH0,#3ch
SETB TR0 //启动定时器t0
LOOP: JNB TF0,LOOP //等待定时器溢出位置1,定时时间到
CLR TF0 //清除溢出位
CLR TR0 //关闭定时器
DJNZ R7,NEXT //判定循环次数
RET //返回子程序
MAIN: MOV A,#0FEH
MOV P2,A
MOV R6,#7
LCALL delay //掉用子程序
CYCLE: RL A //循环左移
MOV P2,A
LCALL delay
DJNZ R6,CYCLE
SJMP MAIN
END
MOV P2,A
MOV R6,#7
LCALL delay //掉用子程序
CYCLE: RL A //循环左移
MOV P2,A
LCALL delay
DJNZ R6,CYCLE
SJMP MAIN
END