单片机0-99数码管显示程序
时间: 2024-05-01 08:21:40 浏览: 12
以下是一个基于8051单片机的0-99数码管显示程序,使用了共阴数码管:
```c
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
// 数码管显示表
uchar code displayTable[] = {
0xc0, // 0
0xf9, // 1
0xa4, // 2
0xb0, // 3
0x99, // 4
0x92, // 5
0x82, // 6
0xf8, // 7
0x80, // 8
0x90, // 9
};
// 延时函数
void delay(uint t) {
uint i,j;
for (i=0; i<t; i++) {
for (j=0; j<120; j++);
}
}
void main() {
uchar i,j;
while (1) {
for (j=0; j<100; j++) {
i = j / 10; // 十位
P0 = displayTable[i];
P2 = 0xfe; // 打开第一位数码管
delay(1);
i = j % 10; // 个位
P0 = displayTable[i];
P2 = 0xfd; // 打开第二位数码管
delay(1);
}
}
}
```
程序中通过循环从0到99依次显示在数码管上。`displayTable`数组存放了0-9十个数码的对应的显示值,通过计算十位和个位的值来查表显示。`delay`函数是一个简单的延时函数,用于控制数码管显示的时间。