数码管扫描显示中的清屏操作

注意:
在以扫描的方式显示多位数码管时,在切换到下一位数码管的显示之前,要做清屏操作,即让数码管熄灭。否则刚刚被被显示的图样会在下一位数码管上被短暂显示。导致显示不正常。
以下面的代码为例,在切换位之间的P1=0x00实现清屏操作。

void Display()
{
    
     
	   P1=dispbitcode[dispbuf[3]];
		 dis1=0;
		 dis2=1;
		 dis3=1;
		 dis4=1;
		 Delay(10);
	//	 P1=0x00;
		 P1=dispbitcode[dispbuf[2]];
		 P17=1;
		 dis1=1;
		 dis2=0;
		 dis3=1;
		 dis4=1;
		 Delay(10);
	//	 P1=0x00; 
		 P1=dispbitcode[dispbuf[1]];
		 dis1=1;
		 dis2=1;
		 dis3=0;
		 dis4=1;
		 Delay(10);
	//	 P1=0x00;
		 P1=dispbitcode[dispbuf[0]];
		 dis1=1;
		 dis2=1;
		 dis3=1;
		 dis4=0;
		 Delay(10);
	//	 P1=0x00;
}

假使P1=0x00被注释,则在proteus中的仿真现象如图所示。
在这里插入图片描述
但如果消除注释加上清屏操作后,仿真结果便恢复正常。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/xiaobaoAlex/article/details/115001760
今日推荐