#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
uchar code table[]={0x05,0xcf,0x26,0x86,0xcc,0x94,0x14,0xc5,0x04,0x84};
sbit SHcp=P2^2;
sbit STcp=P2^1;
sbit DS=P2^0;
uchar cont;
uchar shu;
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void input (uchar aa)
{
uchar i;
STcp=0;
for(i=0;i<8;i++)
{
DS=aa&0x80;
SHcp=0;
delay(1);
SHcp=1;
aa<<=1;
}
STcp=1;
delay(1);
STcp=0;
}
void zj()
{
uchar i,j;
for(i=0;i<10;i++)
{
for(j=0;j<5;j++)
input(table[i]);
delay(1000);
}
}
void main()
{
zj();
}
这个程序能正常显示, 因为是静态显示,数码管的位都连在一起,该怎么选位呢,比如我要让高三位不显示就显示低两位,或者就叫它显示最高位和最低位,中间三位不显示 分别需要怎么写呢, 还有如何能使其每位显示不同的数字后停住, 比如显示12345,就停在那里, 我能让其每位显示不同的数字但是停不下来,比如显示12345,我写出来就会是12345,23451,34512,45123,54321.我不需要他滚动,如何叫它停在那里! 谢谢了!!! |