数码管循环显示单个数字

电路图

此图中数码管共阳极(低电平有效,不控制小数点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);
	}	
   }	
}

效果图

猜你喜欢

转载自blog.csdn.net/weixin_48524215/article/details/111398111