定时器0初始化和定时器中断函数
- void Timer0Init()
- {
- TMOD|=0x01;//0000 0001,最后2位-工作方式的选择,这里选择16位定时器‘01’
- TH0 = (65536-10000)/256; //定时10ms //高八位赋初值
- TL0 = (65536-10000)%256; //低八位赋初值
- EA=1;//开中断
- ET0=1;//定时器0的中断运行
- TR0=1;//运行控制位,置1位为工作
- }
-
- void Timer0() interrupt 1
- {
- static unsigned int i=0;
- static unsigned int j=0;
- TH0=(65535-10000)/256; //给定时器赋初值,定时10ms
- TL0=(65535-10000)%256;
-
- }
定时器1初始化和定时器中断函数
- void Timer1Init()
- {
- TMOD|=0x10;//0000 0001,最后2位-工作方式的选择,这里选择16位定时器‘01’
- TH1 = (65536-10000)/256; //定时10ms //高八位赋初值
- TL1 = (65536-10000)%256; //低八位赋初值
- EA=1;//开中断
- ET1=1;//定时器0的中断运行
- TR1=1;//运行控制位,置1位为工作
- }
-
- void Timer1() interrupt 3
- {
- static unsigned int i=0;
- static unsigned int j=0;
- TH1=(65535-10000)/256; //给定时器赋初值,定时10ms
- TL1=(65535-10000)%256;
-
- }
中断源 | 默认中断级别 | 中断号 |
外部中断0 INT0 | 最高 | 0 |
定时器0中断 T0 | 1 | 1 |
外部中断1 INT1 | 2 | 2 |
定时器1中断 T1 | 3 | 3 |
串口中断 TX/RX | 4 | 4 |
定时器控制寄存器,作用是控制定时器的启、停,标志定时器溢出和中断情况。
TF1 :TF1=1表示T1有中断产生。(Timer Flag,定时器标志位)
TR1 :TR1=1表示T1开始运行。(单片机中T0引脚,需要高低电平的驱动)
TF0 :TF0=1表示T0有中断产生。
TR0 :TR0=1表示T0开始运行。(单片机中T1引脚,需要高低电平的驱动)
IE1 :IE1=1表示INT1有中断产生。
IT1 :IT1=1表示INT1为下降沿触发,IT1=0表示INT1为低电平触发。
IE0 :IE0=1表示INT0有中断产生。
IT0 :IT0=1表示INT0为下降沿(负跳变)触发,IT0=0表示INT0为低电平触发。