51单片机数码管显示0-9999的代码
时间: 2024-03-10 12:46:53 浏览: 63
51单片机 数码管显示
以下是基于51单片机的数码管显示0-9999的代码:
```
#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar code table[] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; // 数码管显示0-9的编码表
void delay(uint x) // 延时函数
{
uint i,j;
for(i=x;i>0;i--)
for(j=110;j>0;j--);
}
void main()
{
uchar i,j,k;
while(1)
{
for(i=0;i<10;i++) // 第一位
{
for(j=0;j<10;j++) // 第二位
{
for(k=0;k<10;k++) // 第三位
{
P2 = 0x00; // 关闭所有数码管
P0 = table[i]; // 显示第一位
P2 = 0x01; // 打开第一位数码管
delay(5); // 稍作延时
P2 = 0x00; // 关闭所有数码管
P0 = table[j]; // 显示第二位
P2 = 0x02; // 打开第二位数码管
delay(5); // 稍作延时
P2 = 0x00; // 关闭所有数码管
P0 = table[k]; // 显示第三位
P2 = 0x04; // 打开第三位数码管
delay(5); // 稍作延时
P2 = 0x00; // 关闭所有数码管
P0 = table[0]; // 显示第四位,这里默认显示0
P2 = 0x08; // 打开第四位数码管
delay(5); // 稍作延时
}
}
}
}
}
```
这个程序中,我们使用了延时函数来控制数码管的刷新时间,可以根据实际情况进行调整。同时,我们使用了三重循环来分别控制数码管的四位显示,每一位上都显示0-9中的一个数字。
阅读全文