```c
#include<reg51.h>
#include<intrins.h>
#define uc unsigned char
#define ut unsigned int
sbit SE=P3^5; //数据
sbit SR=P3^6; //移位寄存器时钟
sbit RC=P3^4; //存储 寄存器时钟
uc led_D=~0x01;
uc i;
void delay(ut t)
{
while(t--);
}
void K74H595(uc cdata)
{
uc i=0;
for(i=0;i<8;i++)
{
SE=cdata>>7; // 先保留数据的高位
cdata<<=1; //在次高位 依次。。。。
SR=0;
_nop_();
SR=1;
}
RC=0;
_nop_();
RC=1;
}
void main()
{
while(1)
{
led_D=~0x01;
for(i=0;i<8;i++)
{
K74H595(led_D);
led_D<<=1; //数据移位 实现流水效果
delay(30000);
}
led_D=~0x80;
for(i=0;i<8;i++)
{
K74H595(led_D);
led_D>>=1;
delay(30000);
}
}
}
入代码片