靜態:
<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>