89c51单片机数码管低3位模拟从0加1到100c语言代码
时间: 2024-03-19 12:44:23 浏览: 15
以下是89C51单片机数码管低3位模拟从0加1到100的C语言代码:
```
#include <reg51.h>
unsigned char code table[] = { // 数码管显示0-9
0xc0, 0xf9, 0xa4, 0xb0, 0x99,
0x92, 0x82, 0xf8, 0x80, 0x90
};
void delay(unsigned int time) { // 延时函数
unsigned int i, j;
for(i = time; i > 0; i--) {
for(j = 110; j > 0; j--);
}
}
void main() {
unsigned char i = 0, j = 0, k = 0; // i为百位,j为十位,k为个位
while(1) {
for(i = 0; i < 10; i++) { // 百位
for(j = 0; j < 10; j++) { // 十位
for(k = 0; k < 10; k++) { // 个位
P1 = table[i]; // 显示百位
P2 = 0xfe; // 使能个位
delay(5); // 延时
P2 = 0xff; // 关闭数码管
P1 = table[j]; // 显示十位
P2 = 0xfd; // 使能十位
delay(5); // 延时
P2 = 0xff; // 关闭数码管
P1 = table[k]; // 显示个位
P2 = 0xfb; // 使能个位
delay(5); // 延时
P2 = 0xff; // 关闭数码管
}
}
}
}
}
```
代码注释已经比较详细,主要是通过三重循环控制数码管显示0-99的数字,每个数字显示的时间为5ms,通过延时函数实现。