×
单片机 > 单片机程序设计 > 详情

C8051F020定时器中断使用

发布时间:2020-06-04 发布时间:
|

      C8051F020内部有5 个计数器/定时器:其中三个16 位计数器/定时器与标准8051 中的计数器/定时器兼容,还有两个16 位自动重装载定时器可用于ADC、SMBus、UART1 或作为通用定时器使用。这些计数器/定时器可以用于测量时间间隔,对外部事件计数或产生周期性的中断请求。
  
  将定时器与中断系统的结合将给我们编程带来很大的帮助,程序条理性强易编写易读。 

  下面我将利用可装载的计数器中断程序编写流程总结如下: 

  一:定时器初始化 

    1:停止定时器,清中断溢出位。 

      通过设置SFR中TMRnCN,停止将TMRnCN^2置0,清中断溢出位TMRnCN^7。 

    2:计数值和装载值的设置 

      通过SFR中TMRnL,TMRnH,TMRnRLL, TMRnRLH设置。 

    3:打开中断系统允许位 

      通过SFR中的IE,EIE1,EIE2实现,将对应定时中断位置1即可允许。 

    4:打开定时器 

      通过TMRnCN^2置1启动。 

 二:中断部分 

    1:打开全局中断 

      将IE^7置1。一般将该部分写在定时器初始化前面。 

    2:中断服务程序(ISR) 

     以C语言为例 

     void ADD (void) interrupt  N 

     {  具体程序  } 

    其中ADD位程序名,N为中断优先级(具体详见相应MCU说明书) 

    注意:由于定时器溢出位不能硬件清零,需要在中断程序编写清零程序,如所使用定时器为非重载,可以在中断程序中编写计数值的初始化。



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
51单片机CO2检测显示程序解析