单片机0-99数码管显示程序
时间: 2024-05-04 15:17:33 浏览: 107
单片机数码管显示0到9程序代码
下面是一个基于51单片机的0-99数码管显示程序:
```
#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar code table[] = { // 0-9 数码管段码表
0xc0, 0xf9, 0xa4, 0xb0, 0x99,
0x92, 0x82, 0xf8, 0x80, 0x90
};
void delay(uint i) { // 延时函数
while (i--);
}
void main() {
uchar cnt = 0; // 计数器,从0开始
while (1) { // 无限循环
P0 = table[cnt / 10]; // 显示十位
P2 = 1 << 0; // 第一个数码管选通
delay(1000); // 延时一段时间
P2 = 0x00; // 取消选通
P0 = table[cnt % 10]; // 显示个位
P2 = 1 << 1; // 第二个数码管选通
delay(1000); // 延时一段时间
P2 = 0x00; // 取消选通
cnt++; // 计数器加1
if (cnt == 100) { // 如果计数器达到100,则重新从0开始
cnt = 0;
}
}
}
```
代码的原理是,通过循环计数器的值,将其分解为十位和个位,然后通过数码管段码表来显示相应的数字。每次显示一个数码管前,需要先选通该数码管的控制引脚,显示完成后再取消选通。通过不断循环计数器的值,就可以让数码管不断显示从0到99的数字。
阅读全文