"); //-->
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说明书)
注意:由于定时器溢出位不能硬件清零,需要在中断程序编写清零程序,如所使用定时器为非重载,可以在中断程序中编写计数值的初始化。
大家可以编写简单的程序体会其中的知识!OVER!
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。