电路图
此图中数码管共阳极(低电平有效,不控制小数点dp)
数码管内部电路
- 共阴极:a,b,c,d,e,f,g,dp高电平有效
- 共阳极:a,b,c,d,e,f,g,dp低电平有效
举例:显示数字0(显示其余数字进行类比)
要求
- 先显示偶数(0、2、4、6、8)
- 偶数显示完后,显示奇数(1、3、5、7、9)
完整程序
#include<reg51.h>
//数码管显示数字0~9对应的十六进制
unsigned char code led[]={
0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
unsigned char i;
void delay(int a)//延时函数,增大从一个状态到另一个状态之间的时间,避免因变化过快而超出人眼视觉停留的最佳时间
{
while(a--);
}
void main()
{
while(1)
{
for(i=0;i<=4;i++){
//led[0]、led[2]、led[4]、led[6]、led[8]
P0=led[i*2]; // 0 2 4 6 8
delay(300000);
}
delay(300000);
for(i=1;i<=5;i++){
//led[1]、led[3]、led[5]、led[7]、led[9]
P0=led[i*2-1];// 1 3 5 7 9
delay(300000);
}
}
}