51单片机数码管静态展示程序
时间: 2023-06-14 13:08:02 浏览: 115
以下是51单片机数码管静态展示程序的示例代码:
```c
#include <reg51.h>
// 定义数码管显示的数字编码
unsigned char code num[10] = {0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90};
void main()
{
unsigned char i;
while(1)
{
// 数码管0显示0-9的数字
for(i = 0; i < 10; i++)
{
P0 = num[i]; // 将数字编码写入P0口
P2 = 0xFE; // 使数码管0对应的位选端口为低电平
delay(50000); // 延时一段时间,让数码管显示数字
}
// 数码管1显示0-9的数字
for(i = 0; i < 10; i++)
{
P0 = num[i]; // 将数字编码写入P0口
P2 = 0xFD; // 使数码管1对应的位选端口为低电平
delay(50000); // 延时一段时间,让数码管显示数字
}
// 数码管2显示0-9的数字
for(i = 0; i < 10; i++)
{
P0 = num[i]; // 将数字编码写入P0口
P2 = 0xFB; // 使数码管2对应的位选端口为低电平
delay(50000); // 延时一段时间,让数码管显示数字
}
// 数码管3显示0-9的数字
for(i = 0; i < 10; i++)
{
P0 = num[i]; // 将数字编码写入P0口
P2 = 0xF7; // 使数码管3对应的位选端口为低电平
delay(50000); // 延时一段时间,让数码管显示数字
}
}
}
// 延时函数
void delay(unsigned int x)
{
unsigned int i, j;
for(i = x; i > 0; i--)
{
for(j = 110; j > 0; j--);
}
}
```
需要注意的是,上述代码中使用了P0口来控制数码管的段选端口,使用了P2口来控制数码管的位选端口。具体的端口设置需要根据实际硬件连接情况进行调整。
阅读全文