写一段51单片机定时器0>定时器2>定时器1的中断优先级C语言代码
时间: 2024-05-05 12:16:18 浏览: 206
以下是一段51单片机定时器0>定时器2>定时器1的中断优先级C语言代码:
```
#include <reg52.h>
// 定义中断服务函数
void timer0_isr() interrupt 1 {
// 定时器0中断服务函数
}
void timer2_isr() interrupt 5 {
// 定时器2中断服务函数
}
void timer1_isr() interrupt 3 {
// 定时器1中断服务函数
}
void main() {
// 初始化定时器0
TMOD &= 0xF0; // 清零低四位
TMOD |= 0x01; // 设置为模式1(16位定时器)
TH0 = 0xFC; // 设置定时器初值(0xFC67 = 65535-5000+1)
TL0 = 0x67;
ET0 = 1; // 允许定时器0中断
TR0 = 1; // 启动定时器0
// 初始化定时器2
T2CON = 0x04; // 设置为模式2(8位自动重装载定时器)
RCAP2H = 0xFF; // 设置重装载值(0xFF80 = 65536-5000)
RCAP2L = 0x80;
ET2 = 1; // 允许定时器2中断
TR2 = 1; // 启动定时器2
// 初始化定时器1
TMOD &= 0x0F; // 清零高四位
TMOD |= 0x10; // 设置为模式1(16位定时器)
TH1 = 0xFC; // 设置定时器初值(0xFC67 = 65535-5000+1)
TL1 = 0x67;
ET1 = 1; // 允许定时器1中断
TR1 = 1; // 启动定时器1
EA = 1; // 开启全局中断
while(1) {
// 主循环
}
}
```
阅读全文