静态:
<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>