用keil写一个数码管中断控制函数
时间: 2023-05-19 16:06:45 浏览: 68
好的,以下是一个使用 Keil 编写的数码管中断控制函数的示例代码:
```c
#include <reg52.h>
// 数码管显示的数字
unsigned char code LED_Disp[10] = {
0xC0, 0xF9, 0xA4, 0xB0, 0x99,
0x92, 0x82, 0xF8, 0x80, 0x90
};
// 数码管显示的位置
unsigned char code LED_Pos[8] = {
0xFE, 0xFD, 0xFB, 0xF7,
0xEF, 0xDF, 0xBF, 0x7F
};
// 数码管显示的值
unsigned char LED_Value[8] = {0};
// 数码管中断处理函数
void LED_ISR() interrupt 1 {
static unsigned char i = 0;
P0 = LED_Pos[i];
P2 = LED_Disp[LED_Value[i]];
i = (i + 1) % 8;
}
// 主函数
void main() {
TMOD = 0x01; // 定时器 0 工作在模式 1
TH0 = 0xFC; // 定时器 0 计数初值
TL0 = 0x67;
ET0 = 1; // 允许定时器 0 中断
EA = 1; // 允许总中断
TR0 = 1; // 启动定时器 0
while (1) {
// 这里可以添加其它的代码
}
}
```
这个函数使用定时器 0 的中断来控制数码管的显示,每次中断时将当前位置的数码管显示出来,并将位置加 1。在主函数中,我们可以添加其它的代码来控制数码管的显示内容。