#include <reg51.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
//--------------定义------------------
sbit DS=P2^2; //数据端
sbit SCLK=P2^1; //时钟信号
//--------------函数声明------------------
void In_164(uchar dat);
void Delay_1ms(uint x);
//--------------主程序------------------
void Delay_1ms(uint x)
{
uchar i;
while(x--)
{
for(i=0;i<120;i++);
}
}
void In_164(uchar dat) //送数据进 74LS164
{
uchar i,x;
// for(i=0;i<8;i++)
// {
//dat=dat>>1; //移位 8 位
// DS=CY; //溢出位给数据端
// SCLK=0; //时钟脉冲
// _nop_();
// _nop_();
// SCLK=1;
// _nop_();
// _nop_();
// SCLK=0;
// }
SCLK=0;
x=dat;
for(i=0;i<8;i++)
{
DS=0;
if(x&0x01==1)
DS=1;
SCLK=1;
x=x>>1;
SCLK=0;
}
}
void main(void)
{
uchar temp=0x01;
//uchar i;
In_164(0x55);
while(1)
{
//for(i=0;i<8;i++)
//{
Delay_1ms(1000); //延时 1s
// temp=(temp<<1)|(temp>>7); //循环移位
//}
}
}