单片机中断一直搞的不太明白

2019-07-15 17:48发布

这个程序到底怎么理解,THO的数值怎么理解

void timer0_isr(void) interrupt 1
{
TH0=0xfe;       
TL0=frq;     

SPK=!SPK;      

}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
5条回答
将军问鼎
2019-07-16 07:22
你这样理解,1、计算机暂停正在执行的程序去执行别的程序,2、你附上的程序,是定时器0的中断程序,你这样理解,定时器是单片机内部钟表,它的值为0~65535,相当于表转一圈,现在你可以想象,你家的表转一圈,你就去喝杯水,那么,单片机也是这样,当单片机定时器从0~65535走一圈的时候,它就执行一次,你给他的中断函数,也就是你写的这个,那么如果你把你家的表实现设定一个时间,那么你喝水的时间就不是表走十二个小时的时间了,可能是6个小时,定时器也是这个道理,这就是初值的意义,在中断函数中需要不断重复对TH0 ,TL0进行赋值就是为了总是给他设定一个时间初值,理解了吗?

评分

参与人数 1积分 +1 收起 理由 526117922 + 1

查看全部评分

一周热门 更多>