51数码管动态显示教程
数码管显示6,5,4,3,2,1,0,0,流水灯从上到下8个,然后数码管出现love,所有灯闪烁200ms一次,6秒钟之后所有灯亮,数码管停留在love.
下面是数码管编码
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
:
数字 h g f e d c b a 编码 0 0 0 1 1 1 1 1 1 0x3f 1 0 0 0 0 0 1 1 0 0x06 2 0 1 0 1 1 0 1 1 0x5b 3 0 1 0 0 1 1 1 1 0x4f 4 0 1 1 0 0 1 1 0 0x66 5 0 1 1 0 1 1 0 1 0x6d 6 0 1 1 1 1 1 0 1 0x7d 7 0 0 0 0 0 1 1 1 0x07 8 0 1 1 1 1 1 1 1 0x7f 9 0 1 1 0 0 1 1 1 0x67 a 0 1 1 1 0 1 1 1 0x77 b 0 1 1 1 1 1 0 0 0x7c c 0 0 1 1 1 0 0 1 0x39 d 0 1 0 1 1 1 1 0 0x5e e 0 1 1 1 1 0 0 1 0x79 f 0 1 1 1 0 0 0 1 0x71 H 0 1 1 1 0 1 1 0 0x76
L 0 0 1 1 1 0 0 0 0x38
u 0 0 1 1 1 1 1 0 0x3e
00 1 1 0 0 0 1 1 0x63
. 1 0 0 0 0 0 0 0 0x80
h 0 1 1 1 0 1 0 0 0x74
g 0 1 1 0 1 1 1 1 0x6f 程序如下
#include
#include
sbit dula=P2^6;
sbit wela=P2^7;
unsigned char code table[]={
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x67,0x77,0x7c,0x39,0x5e,0x79,0x71,0x76,0x3
8,0,0x3e,0x63
} ;
unsigned char temp,t0,i,temp1,flag; void display(unsigned char a,unsigned char b,unsigned char c,unsigned char d,unsigned char
e,unsigned char f);
void display1(unsigned char a,unsigned char b,unsigned char c,unsigned char d,unsigned char
e,unsigned char f);
void delay(unsigned int z)
{
unsigned int x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void main()
{
TMOD=0x01;
EA=1;
ET0=1;
TR0=1;
i=6;
temp=0xfe;
temp1=0xfe;
while(1)
{
if(t0%10==0&&t0>5&&t0<69)
{
P0=temp1;
wela=1;
wela=0;
P0=table[i];
dula=1;
dula=0;
temp1=_crol_(temp1,1);
i--;
P0=0xff;
delay(500);
}
if(t0%10==0&&t0>69&&t0<71)
{
P0=table[0];
dula=1;
dula=0;
P0=0xff;
}
if(t0%10==0&&t0>69&&t0<85)
{
P0=~P0;
wela=1;
wela=0;
delay(200);
}
if(t0%4==0&&t0>89&&t0<211)
{
display(20,17,0,19,14,20) ;
}
if(flag==1)
{
display1(20,17,0,19,14,20) ;
}
}
}
void T0_time()interrupt 1 {
TH0=(65536-46080)/256;
TL0=(65536-46080)%256;
t0++;
if(t0%10==0&&t0>5&&t0<85)
{
P1=temp;
temp=_crol_(temp,1);
}
if(t0==89)
{
P1=0xff;
t0=t0+2;
}
if(t0%4==0&&t0>89)
{
P1=~P1;
}
if(t0-92==120)
{
P1=0;
TR0=0;
flag=1;
}
}
void display(unsigned char a,unsigned char b,unsigned char c,unsigned char d,unsigned char
e,unsigned char f)
{
P0=0xfe;
wela=1;
wela=0;
P0=table[a];
dula=1;
dula=0;
delay(100);
P0=0xfd;
wela=1;
wela=0;
P0=table[b];
dula=1;
dula=0;
delay(100);
P0=0xfb;
wela=1;
wela=0;
P0=table[c];
dula=1;
dula=0;
delay(100);
P0=0xf7;
wela=1;
wela=0;
P0=table[d];
dula=1;
dula=0;
delay(100);
P0=0xef;
wela=1;
wela=0;
P0=table[e];
dula=1;
dula=0;
delay(2);
P0=0xdf;
wela=1;
wela=0;
P0=table[f];
dula=1;
dula=0;
delay(100); }
void display1(unsigned char a,unsigned char b,unsigned char c,unsigned char d,unsigned char
e,unsigned char f)
{
P0=0xfe;
wela=1;
wela=0;
P0=table[a];
dula=1;
dula=0;
delay(1);
P0=0xfd;
wela=1;
wela=0;
P0=table[b];
dula=1;
dula=0;
delay(1);
P0=0xfb;
wela=1;
wela=0;
P0=table[c];
dula=1;
dula=0;
delay(1);
P0=0xf7;
wela=1;
wela=0;
P0=table[d];
dula=1;
dula=0;
delay(1);
P0=0xef;
wela=1;
wela=0;
P0=table[e];
dula=1;
dula=0;
delay(1);
P0=0xdf;
wela=1;
wela=0;
P0=table[f];
dula=1;
dula=0;
delay(1); }
protues仿真结果如下
程序烧进去就可以动态显示了
大家可以在开发板上试下的哈。
特以此文献给可爱的帮帮老婆,嘻嘻~