本帖最后由 小猪同学 于 2018-6-13 11:53 编辑
Timer0工作在模式3(不可屏蔽中断的16位自动重装模式), 如果同时启用了Timer1的中断,即ET1 =1, 即使TR1=0, Timer1也会启动
我迷失了,附上代码,请大家斧正
#include "stc/stc15.h"
sbit LED0 = P5^2;
sbit LED1 = P5^1;
void Timer0_ISR() interrupt 1 {
static int times =0;
if(times>100) {
TR1=0;
TR0=0;
} else {
times++;
}
LED0 = LED0 ? 0: 1;
}
void Timer1_ISR() interrupt 3 {
LED1 = LED1 ? 0: 1;
}
void main() {
P5M1=0;
P5M0=0; //灌电流驱动
EA = 1;
TMOD |= 0x03; //Timer0模式3运行(不可屏蔽16位自动重装)
TL0 = 0x00;
TH0 = 0x70;
ET0 = 1; //启用Timer0中断
TR0 = 1; //启用Timer0
TL1 = 0x00;
TH1 = 0x70;
ET1 = 1; //启用Timer1中断
TR1 = 0; //禁止Timer1
while(1);
} |