当前位置: 代码迷 >> 单片机 >> 51单片机 定时器,该怎么解决
  详细解决方案

51单片机 定时器,该怎么解决

热度:384   发布时间:2016-04-28 14:48:10.0
51单片机 定时器
以stc12c5a60s2单片机为例,小弟对定时器还有些迷惑,求大神拍醒~~~
1 TF1是定时器1的溢出标志位,那是不是可以理解为只有TF1=1时(也就是定时器溢出时),单片机才会响应定时器1的中断服务函数?那我在定时器1的初始化中要不要先将TF1先清0(因为我看很多别人的程序没有将TF1位清0,为什么?)?
2 我搞不清楚在什么条件下可以让单片机相应定时器中断,有哪些条件?
3  既然定时器1是由硬件自动清0,那什么时候需要使用软件清0?(可不可以认为使用软件清0主要是为了采用轮询方式,而不是中断的方式?)
------解决思路----------------------
1 TF1是定时器1的溢出标志位,那是不是可以理解为只有TF1=1时(也就是定时器溢出时),单片机才会响应定时器1的中断服务函数?那我在定时器1的初始化中要不要先将TF1先清0(因为我看很多别人的程序没有将TF1位清0,为什么?)?

如果TR1=1,那么,定时计数器返回0的时刻,就会发生TF1=1
如果中断允许,那么如果TF1=1,定时器1的代码就会被执行,进入定时中断程序后,TF1会自动复位


2 我搞不清楚在什么条件下可以让单片机相应定时器中断,有哪些条件?
见1

3  既然定时器1是由硬件自动清0,那什么时候需要使用软件清0?(可不可以认为使用软件清0主要是为了采用轮询方式,而不是中断的方式?)
一般情况下,不需要软件清0
------解决思路----------------------
1.  51复位时,已经是TF1=0
2. GATE=0, TR1=1,开始计时或计数,若EA, IT1置1,溢出时TF1=1;
3. 中断方式,TF1=1时调用中断,硬件自动置零;查询方式,需软件clr
  相关解决方案