标题: 从零开始----51单片机定时器 [打印本页]

作者: sindeer    时间: 2012-6-14 16:14
标题: 从零开始----51单片机定时器

定时器

 

我们学单片机是首先学的就是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单片机定时器

 

 



作者: 青苹果    时间: 2012-6-14 17:06
怎么有两个END
作者: ahshmj    时间: 2012-6-14 20:09

你这样达不到你所需要的效果,单片机仍然腾不出空来做其他事情,只能不停地查询TF0的状态。比如说:怎么查询某一I/O端口电平的变化?

 

你可以试一试使用T0中断的方式来达到你预期目的。不要使用查询TF0的方式。中断到来之前,单片机可以做其他事情;中断发生了,单片机放下手中的活,去处理中断请求,处理完了中断,接着做刚才停下来的事情。。


作者: ahshmj    时间: 2012-6-14 20:11
前面一个“END”之后的语句将被忽略。
作者: 大山儿子    时间: 2012-6-15 01:37

不错,挺一下。

 






欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1