51单片机数码管多位同时显示代码
时间: 2023-10-10 12:13:02 浏览: 114
51单片机使用8个数码管,在8个数码管上分别显示“12345678”这八个数字。
5星 · 资源好评率100%
以下是基于51单片机的4位共阳数码管同时显示数字0~9的代码:
```c
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
uchar code table[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; // 数码管对应数字表
void delay(uint xms) // 延时函数
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
void main()
{
uchar i,j,k,m;
while(1)
{
for(i=0;i<10;i++) // 第一位数码管显示0~9
{
for(j=0;j<10;j++) // 第二位数码管显示0~9
{
for(k=0;k<10;k++) // 第三位数码管显示0~9
{
for(m=0;m<10;m++) // 第四位数码管显示0~9
{
P0 = 0xff; // 数码管关闭
P2 = 0x7f; // 第一位数码管打开
P0 = table[i]; // 显示数字i
delay(5); // 延时
P0 = 0xff; // 数码管关闭
P2 = 0xbf; // 第二位数码管打开
P0 = table[j]; // 显示数字j
delay(5); // 延时
P0 = 0xff; // 数码管关闭
P2 = 0xdf; // 第三位数码管打开
P0 = table[k]; // 显示数字k
delay(5); // 延时
P0 = 0xff; // 数码管关闭
P2 = 0xef; // 第四位数码管打开
P0 = table[m]; // 显示数字m
delay(5); // 延时
}
}
}
}
}
}
```
说明:在P2口接4位共阳数码管,在P0口接74HC595移位寄存器,通过移位寄存器来控制数码管的显示。循环嵌套四次,每一次循环控制一个数码管的显示,使用延时函数产生适当的时间间隔。
阅读全文