定时器
我们学单片机是首先学的就是led闪烁,那是用延时程序做的,现在回想起来,这样做不很恰当,为什么呢?我们的主程序做了灯的闪烁,就不能再干其它的事了,难道单片机只能这样工作吗?当然不是,我们能用定时器来实现灯的闪烁的功能。
例1:查询方式
ORG 0000H
AJMP STARTORG 30H
START:
MOV P1,#0FFH ;关所 灯
MOV TMOD,#00000001B ;定时/计数器0工作于方式1
MOV TH0,#15H
MOV TL0,#0A0H ;即数5536
SETB TR0 ;定时/计数器0开始运行
LOOP:JBC TF0,NEXT ;如果TF0等于1,则清TF0并转NEXT处
AJMP LOOP ;不然跳转到LOOP处运行
NEXT:CPL P1.0
MOV TH0,#15H
MOV TL0,#9FH;重置定时/计数器的初值
AJMP LOOP
END AJMP LOOP
END
全文内容电子电路网:从零开始学51单片机定时器
你这样达不到你所需要的效果,单片机仍然腾不出空来做其他事情,只能不停地查询TF0的状态。比如说:怎么查询某一I/O端口电平的变化?
你可以试一试使用T0中断的方式来达到你预期目的。不要使用查询TF0的方式。中断到来之前,单片机可以做其他事情;中断发生了,单片机放下手中的活,去处理中断请求,处理完了中断,接着做刚才停下来的事情。。
不错,挺一下。
欢迎光临 (http://www.51hei.com/bbs/) | Powered by Discuz! X3.1 |