#include
#include
sbit SCK=P3^6;
sbit RCK=P3^5;
sbit SI =P3^4;
#define DELAY /*微秒级延时*/
void spi_595(unsigned char dat);
void Delay999ms() //@11.0592MHz
{
unsigned char i, j, k;
_nop_();
i = 7;
j = 0;
k = 40;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
void main(void)
{
unsigned char i;
for(i=0;;++i)
{
spi_595(i);
Delay999ms();
}
}
void spi_595(unsigned char dat)
{
unsigned char i;
SCK=0;
DELAY;
RCK=0;
DELAY;
for(i=0;i<8;++i)
{
SI=dat&0x80?1:0;
SCK=1;
DELAY;
dat<<=1;
SCK=0;
DELAY;
}
RCK=1;
DELAY;
RCK=0;
DELAY;
}