51单片机八个数码管上显示12345678
时间: 2023-11-26 15:05:23 浏览: 92
以下是使用51单片机控制8个共阳数码管显示12345678的简单代码:
```
#include <reg52.h> // 引入 51 单片机头文件
// 定义数码管使用的引脚
sbit dula = P2^6;
sbit wela = P2^7;
sbit beep = P1^5;
// 数码管显示用的字符数组
unsigned char code table[] = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f};
void delay(unsigned int i) // 延时函数
{
while(i--);
}
void main()
{
unsigned char i = 0;
while(1)
{
for (i=0; i<8; i++)
{
dula = 1; // 打开数码管锁存器
P0 = table[i]; // 显示相应数字
dula = 0; // 关闭数码管锁存器
wela = 1; // 打开位选锁存器
P0 = 0xfe >> i; // 选择相应位
wela = 0; // 关闭位选锁存器
delay(1000); // 延时一段时间,以便观察显示效果
}
}
}
```
该程序通过循环控制8个数码管的显示,每次显示一个数字,最后显示完毕后再重新从头开始显示。其中,`table` 数组存储了数码管显示用的字符,`delay` 函数用于延时,`dula` 和 `wela` 分别对应数码管的锁存器和位选锁存器,`P0` 用于控制数码管的引脚,`beep` 可以用于控制蜂鸣器。