单片机LED数码管显示实验代码 
时间: 2023-05-26 07:07:00 浏览: 32
这是一个基础的单片机LED数码管显示实验代码,使用了51单片机和共阳数码管。
```
#include <reg51.h>
// 定义数码管引脚
sbit DIGIT1 = P2^0;
sbit DIGIT2 = P2^1;
sbit DIGIT3 = P2^2;
sbit DIGIT4 = P2^3;
// 定义数码管段选引脚
sbit SEG_A = P0^0;
sbit SEG_B = P0^1;
sbit SEG_C = P0^2;
sbit SEG_D = P0^3;
sbit SEG_E = P0^4;
sbit SEG_F = P0^5;
sbit SEG_G = P0^6;
sbit SEG_DP = P0^7;
// 数码管显示字符表,0-F
unsigned char code digit[16] = {
0x3F, // 0
0x06, // 1
0x5B, // 2
0x4F, // 3
0x66, // 4
0x6D, // 5
0x7D, // 6
0x07, // 7
0x7F, // 8
0x6F, // 9
0x77, // A
0x7C, // b
0x39, // C
0x5E, // d
0x79, // E
0x71, // F
};
// 主函数
void main()
{
unsigned char i = 0;
while(1)
{
// 显示0-F
for(i=0; i<16; i++)
{
DIGIT1 = 0; // 数码管1
P0 = digit[i];
delay(1); // 延时
DIGIT1 = 1;
delay(1);
DIGIT2 = 0; // 数码管2
P0 = digit[i];
delay(1);
DIGIT2 = 1;
delay(1);
DIGIT3 = 0; // 数码管3
P0 = digit[i];
delay(1);
DIGIT3 = 1;
delay(1);
DIGIT4 = 0; // 数码管4
P0 = digit[i];
delay(1);
DIGIT4 = 1;
delay(1);
}
}
}
// 1ms延时函数
void delay(unsigned int ms)
{
unsigned int i,j;
for(i=0; i<ms; i++)
{
for(j=0; j<120; j++);
}
}
```
相关推荐


















