这段代码的作用是控制数码管显示不同的图案。首先,头像的部分使用了四个数码管,分别显示温度值的百位、十位、个位,以及一个空位。然后,如果检测到S4按键被按下,程序会进入循环,依次显示另外两种图案。第一个图案是一个四位数码管,依次显示'0'、'2'、'16'、'5'。第二个图案是三个数码管,分别显示温度值的十位、百位和个位,以及一个空位。最后,程序用DelaySMG(100)函数控制了每个数码管显示的时间间隔,以达到闪烁的效果。

DisplaySMG_Bit(7,SMG_NoDot[12]);
DelaySMG(100);
DisplaySMG_Bit(6,SMG_NoDot[(temp/10)%10]);
DelaySMG(100);
DisplaySMG_Bit(5,SMG_NoDot[(temp/100)%10]);
DelaySMG(100);
DisplaySMG_Bit(4,0xff);
DelaySMG(100);

DisplaySMG_Bit(3,0xff);
DelaySMG(100);
DisplaySMG_Bit(2,0xff);
DelaySMG(100);
DisplaySMG_Bit(1,SMG_NoDot[1]);
DelaySMG(100);
DisplaySMG_Bit(0,0xc1);
DelaySMG(100);

if(S4==0)
	{		
		while(1)
		{
		DelaySMG(100);		
		DisplaySMG_Bit(7,SMG_NoDot[0]);
		DelaySMG(100);
		DisplaySMG_Bit(6,SMG_NoDot[2]);
		DelaySMG(100);
		DisplaySMG_Bit(5,SMG_NoDot[16]);
		DelaySMG(100);
		DisplaySMG_Bit(4,SMG_NoDot[5]);
		DelaySMG(100);
		
		DisplaySMG_Bit(3,SMG_NoDot[0]);
		DelaySMG(100);
		DisplaySMG_Bit(2,0xff);
		DelaySMG(100);
		DisplaySMG_Bit(1,SMG_NoDot[2]);
		DelaySMG(100);
		DisplaySMG_Bit(0,0xc1);
		DelaySMG(100);
		if(S4==0)	
		break;
			}	
	}
	if(S4==0)
{		
		while(1)
		{
		DelaySMG(100);
		DisplaySMG_Bit(7,SMG_NoDot[(temp/10)%10]);
		DelaySMG(100);
		DisplaySMG_Bit(6,SMG_NoDot[(temp/100)%10]);
		DelaySMG(100);
		DisplaySMG_Bit(5,0xff);
		DelaySMG(100);
		DisplaySMG_Bit(4,0xff);
		DelaySMG(100);
		
		DisplaySMG_Bit(3,0xff);
		DelaySMG(100);
		DisplaySMG_Bit(2,0xff);
		DelaySMG(100);
		DisplaySMG_Bit(1,SMG_NoDot[3]);
		DelaySMG(100);
		DisplaySMG_Bit(0,0xc1);
		DelaySMG(100);
			break;		
		}
}
检查S4是否等于0 让三个程序顺序显示不同的显示效果

这段代码使用了多个函数,例如:

  • DisplaySMG_Bit(bit,data):控制数码管的显示,bit参数表示数码管的位数,data参数表示要显示的数据。
  • DelaySMG(time):延时函数,time参数表示延时的时间。

代码通过检测S4按键的状态来控制不同的显示效果,并使用DelaySMG()函数控制每个数码管的显示时间间隔,以达到闪烁的效果。

数码管显示头像和图案的代码分析

原文地址: https://www.cveoy.top/t/topic/m8av 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录