数码管循环显示单个数字

电路图

此图中数码管共阳极(低电平有效,不控制小数点dp)
数码管循环显示单个数字_第1张图片

数码管内部电路

数码管循环显示单个数字_第2张图片

  • 共阴极:a,b,c,d,e,f,g,dp高电平有效
  • 共阳极:a,b,c,d,e,f,g,dp低电平有效

举例:显示数字0(显示其余数字进行类比)

数码管循环显示单个数字_第3张图片

数码管循环显示单个数字_第4张图片

要求

  • 先显示偶数(0、2、4、6、8)
  • 偶数显示完后,显示奇数(1、3、5、7、9)

完整程序

#include
//数码管显示数字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);
	}	
   }	
}

效果图

数码管循环显示单个数字_第5张图片

你可能感兴趣的:(默认分类,单片机)