微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 定时器/计数器 的使用(自然中断优先级)

定时器/计数器 的使用(自然中断优先级)

时间:12-01 来源:互联网 点击:
定时器/计数器的使用可以分成两大步骤与代码

1、初始化定时器
2、编写中断子程序(也叫中断函数通俗点就是调用一个函数)

初始化定时器
1)设置定时器/计数器的模式(在前面有)
2) 开启定时器中断(定时器/计数器 0或者1或者其他)
3) 启用定时器/计数器(定时器/计数器 0或者1或者其他)
4)打开总中断
5)给定时器赋值
注:以上步骤可以打乱但是不可以少。(如果有的条件在其他函数里面初始化了这里可以省略)

编写中断子程序

void tim0_isr (void) interrupt 1
1)void tim0_isr(void) (这个就是中断后需要执行的函数)
2) interrupt 1 (中断号前面有详细的中断号说明)

代 码
#include
sbit LED=P0^7;//定义点亮的LED管脚
unsigned int i=0;

void tim0_isr (void) interrupt 1 //这个是中断执行的函数
{
i++; //每中断一次i+1
}

void csh_dsq_0()//初始化定时器/计数器0
{
TMOD = 0x02;//使用模式3(自动重装模式)
TH0=0x00;//定时器0的重装数据(这里是给定时赋值)
TL0=0x00;//初始化(这里是给定时赋值)
ET0=1;//开启定时器0中断
TR0=1;//启用定时0
EA =1;//打开总中断
}void main()
{
LED = 0;
csh_dsq_0(); //调用中断初始化
while(1)
{
if(i==5000)//中断5000次LED亮或灭一次
{
LED=~LED;//LED亮或灭
i=0;//清零i使中断计数从新开始
}
}
}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top