需要看看你是不是正确的定时器中断服务程序,或者在关闭定时器中断的情况下进行测试。给你一个修正后的代码示例:
#include <reg52.h> // 导入51单片机的寄存器定义
void main(void) {
EA = 1; // 允许中断
EX0 = 1; // 设定接收INT0的中断
TMOD = 0x01; // 定时器初始化为模式1
TH0 = 0xFF;
TL0 = 0xF6;
TR0 = 1; // 启动定时器
ET0 = 0; // 关闭定时器中断,如果不需要定时器中断,可以设置为0
while (1);
}
void decode(void) interrupt 0 using 2 { // 外部中断函数,内容为红外遥控器解码函数
// 这里是红外遥控器解码的相关代码
}
在这个修正后的代码中,我将ET0设置为0,即关闭了定时器中断。这样,在主函数中就不会触发定时器中断了,从而不会影响到外部中断的执行。
|