【51單片機】靜態與動態點亮數碼管

靜態:

<span style="font-family:Microsoft YaHei;font-size:18px;">#include<reg52.h>

sbit dula=P2^6; //數碼管寄存器
sbit  wela=P2^7;  //位寄存器

void main()
{
	wela=1;
	P0=0xf8;
	wela=0;     //確定幾位數碼管亮,且使其狀態保持
	
	dula=1;
	P0=0x3f;    //顯示的數字
	dula=0;

	while(1);   //保持常亮
}</span>

 

動態:

<span style="font-family:Microsoft YaHei;font-size:18px;">#include<reg52.h>

sbit dula=P2^6;
sbit  wela=P2^7;

unsigned char num;

unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00};//定義一個數組,存儲數碼管的即將點亮的數值

void delay(unsigned int z)	;

void main()
{
	wela=1;
	P0=0xc0;
	wela=0;  //使得所有數碼管都亮,且保持狀態不變

	while(1)
	{
		for(num=0;num<16;num++)//循環點亮		{
			dula=1;
			P0=table[num];
			dula=0;
			delay(200);//延遲,達到閃爍的效果
		}
	}

}

void delay(unsigned int z)//延遲函數
{
	unsigned int x,y;
	for( x=0;x<50;x++)
		for(y=0;y<z;y++);
}
</span>



 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章