定时器/计数器的使用可以分成两大步骤与代码 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 <reg51.h> 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使中断计数从新开始 } } }
|