这条语句temp=temp<<=1;没弹错???管脚Reset接高电平了没?就如你程序所设计,6.1口应给高电平。另外使能端接地了没??检查下你的硬件电路,如果都正确,试下我的程序。
给你一个我一直用的595程序:
void set595(uchar data)
{
uchar a,b;
a = data;
SCK_L;
RCK_L;
for(b=0;b<8;b++)
{
if(a&0x01)
{
DAT_H;
}
else
{
DAT_L;
}
SCK_H;
a >>= 1;
NOP();
NOP();
SCK_L;
}
}
RCK为主时钟,SCK为锁存时钟。
呵呵,你可以参考一下这个595驱动数码管的例子。http://blog.sina.com.cn/s/blog_534a5d500100c6us.html
去csdn上问比较好 我只懂一些人文的 帮你顶一下吧