#include <reg52.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit DIO=P3^4;
sbit S_CLK=P3^5;
sbit R_CLK=P3^6;
uchar code lie[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};
uchar code hang[]={0xff,0xff,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
void delay(uint z)
{ uint x,y;
for(x=z;x>0;x--)
for(y=144;y>0;y--);
}
void main()
{ uchar num,i;
while(1)
{
for(num=0;num<8;num++)
{for(i=0;i<8;i++)
{
R_CLK=0;
S_CLK=0;
if(hang[num]&0x01)
DIO=1;
else
DIO=0;
S_CLK=0;
hang[num]=_cror_(hang[num],1) ;
}
for(i=0;i<8;i++)
{
R_CLK=0;
S_CLK=0;
if(lie[num]&0x01)
DIO=1;
else
DIO=0;
S_CLK=0;
lie[num]=_cror_(lie[num],1) ;
}
R_CLK=0;
delay(10);
}
}
}
不对照原理图是很难看嵌入式程序的,加注释是个好习惯