设计一个计数器,用以分别统计外部中断0和外部中断1的中断次数,并在同屏显示(每个中断源占两位显示)
时间: 2023-05-18 22:03:17 浏览: 114
以下是一个简单的计数器设计,用于分别统计外部中断0和外部中断1的中断次数,并在同屏显示:
```c
#include <reg52.h>
sbit INT0 = P3^2; // 外部中断0
sbit INT1 = P3^3; // 外部中断1
unsigned int count0 = 0; // 中断0计数器
unsigned int count1 = 0; // 中断1计数器
void display_count() {
// 在同屏显示中断0和中断1的计数值
// 这里省略具体实现
}
void int0_isr() interrupt 0 {
// 处理外部中断0
count0++;
display_count();
}
void int1_isr() interrupt 2 {
// 处理外部中断1
count1++;
display_count();
}
void main() {
// 初始化外部中断0和中断1
IT0 = 1; // 边沿触发
EX0 = 1; // 允许中断0
IT1 = 1; // 边沿触发
EX1 = 1; // 允许中断1
// 启用全局中断
EA = 1;
while (1) {
// 主循环
}
}
```
这个计数器使用了两个变量 `count0` 和 `count1` 来分别统计外部中断0和外部中断1的中断次数。当有中断发生时,对应的计数器会加1,并调用 `display_count()` 函数在同屏显示中断0和中断1的计数值。注意,这个计数器只是一个简单的示例,实际应用中可能需要更复杂的设计。
阅读全文