登录
首页 单片机论坛
回帖 发帖
正文

主题:关于定时的问题请指教

点击:1080 回复:2

org 0000h
ajmp start
org 000bh
ajmp time0
org 30h
start:
setb p2.7
mov r7,#00h
mov r6,#00h
mov tmod,#00000001b
mov th0,#3ch
mov tl0,#0b0h
setb ea
setb et0
jb p3.2,$
setb tr0
clr p2.7
loop:jb p3.3, loop
clr tr0
setb p2.7
ajmp start
time0:inc r7
cjne r7,#20,t_ret
mov r7,#0
inc r6
cjne r6,#10,t_ret
mov r6,#0
setb p2.7
clr tr0
ajmp start
t_ret:mov th0,#3ch
mov tl0,#0b0h
reti
end
请问该程序为什么第一次定时时间是正常,第二次再按p3.2启动就不正常呢?按复位键再启动就正常????????
05-03-29 00:20
怎么没人回一下呢?这应该不是个大难题,我相信会有很多人会答的??????
05-03-29 18:03
你的定时中断目的不明确,按P3.2后,启动定时器,P2.7点亮,然后等待,按P3.3后程序继续运行。没按P3.3时,定时中断后又回到LOOP: JB P3.3,LOOP这条上,注意:你在time0中有一条ajmp start,这一条没用,reti后接下去是中断前的一步,是LOOP: JB P3.3,LOOP。所以,你的程序在执行时的过程是:按下P3。2,P2。7点亮,松开P3。2,然后等定时时间过后,按P3。3,松开P3。3,再按P3。2,P2。7熄灭,松开P3。2,等定时时间过后,按P3。3,重复上述步骤,P2。7才会点亮、熄灭。如果P3。2和P3。3同时按下或按下的相隔时间太短的话,都不会使程序正常工作,因为按P3。2启动定时器,定时时间还没到就按P3。3,把定时器关掉,P2。7置位后程序又从start开始。
05-03-30 14:32

工控新闻

更多新闻资讯