AT89C51串并转换驱动数码管实验指导
实验内容:
按下图连接器件:
程序如下所示:
C程序
#includereg52.h>
#includeintrins.h>
#defineucharunsignedchar
#defineuintunsignedint
sbitSDA=P1^1;
sbitSHIFT = P1^2;
sbitST = P1^0;
#defineNOP _nop_()
uchar led[] = {0x5b,0x3f,0x3f,0x6f};
uchar select[] = {0x0fe,0xfd,0xfb,0xf7};
uchar i=0;
voidInit()
{
SDA = 0;
SHIFT = 0;
ST = 0;
}
voiddelay()
{
uchar jj;
for(jj=0;jj200;jj++);
while(jj--);
}
voiddisplay(uchar dat)
{
uchar ii;
uchar sdata=dat;
for(ii=0;ii8;ii++)
{
if(sdata0x80)
SDA=1;
else
SDA = 0;
sdata=1;
SHIFT =0;
NOP;
NOP;
SHIFT = 1;
NOP;
NOP;
}
ST = 1;
NOP;
NOP;
ST = 0;
}
voidmain()
{
Init();
while(1)
{
delay();
delay();
P2 = select[i];
display(led[i]);
i=(i+1)%4;
}
}
评论