1、定时器查询法实现LED闪烁
;2013/4/23
;延时1s闪烁
org 0000h
ajmp start
org 30h
start:mov r0,#20
mov p0,#0ffh ;关灯
mov TMOD,#00000001B
mov TH0,#3CH ;50ms定时
mov TL0,#0B0H
setb TR0
loop: jbc TF0,next ;TF1为1时转移
ljmp loop
next: mov TH0,#3CH
mov TL0,#0B0H
djnz r0,loop ;r0减1不为0跳转
cpl p0.0
mov r0,#20
ljmp loop
end
2、定时器中断实现LED闪烁
;2013/4/24
org 0000h
ajmp start
org 000bh ;定时器0的中断向量地址
ajmp time0
org 30h
start:mov p0,#0ffh
mov TMOD,#00000001B
mov TH0,#3Ch
mov TL0,#0b0h
setb EA
setb ET0
setb TR0
loop: ajmp loop
time0:cpl p0.0
mov TH0,#3Ch
mov TL0,#0b0h
reti ;中断返回
end
本文介绍了两种使用定时器实现LED闪烁的方法:一种是通过查询方式,另一种是利用定时器中断。前者通过循环检测TF0标志位来判断是否定时结束;后者则通过设置定时器中断,每触发一次中断就切换LED的状态。
2918

被折叠的 条评论
为什么被折叠?



