80c51单片机,计数器溢出中断后为什么停止计数,设初值再开始计数,因为中断时计数器还在计数吗?

ORG 0000H
AJMP MAIN
ORG 000BH
AJMP TIM0
ORG 0030H
MAIN: MOV SP,#30H ; 设置栈底
MOV TMOD,#02H
MOV TL0,#206
MOV TH0,#206
MOV IE,#82H
SETB P1.0
SETB TR0
SJMP $

ORG 0100H
TIM0: CLR TR0
JNB P1.0,AA
CLR P1.0
MOV TL0,#106
MOV TH0,#106
SETB TR0
RETI
AA: SETB P1.0
MOV TL0,#206
MOV TH0,#206
SETB TR0
RETI
END
此外p1.0在中断时在输出吗?还是停止的?为什么啊?中断到底是停止了什么啊

第1个回答  推荐于2017-12-15
计数器溢出中断后如果不手动停止计数,那计数器还是会继续计数的,因为计数脉冲还在。再次设置初值,就是为了使下次中断时间可知,可控。
p1.0在中断时还是在输出的,要吗输出高电平,要吗低电平。当然有的单片机也可以让IO口处于高阻态。
中断到底是停止了什么,呵呵。我们说的中断是指,单片机正在做某件事情的时候,由于定时器溢出,单片机就中断了正在做的事情,跑去处理定时器溢出时指定要处理的事务,就是去执行终中断服务函数啦。追问

p1.0在中断时也在输出的话,那么计时器溢出时间的周期就和p1.0变化的周期不一样,有略微差别了吧?

追答

有差别,微妙级别的差别,可以忽略啦。

本回答被网友采纳
相似回答