其中其时序图见这里:http://blog.21ic.com/user1/6248/archives/2010/67056.html
分析过,应该是8位串行数据输入,首先是锁存到锁存器,然后再输出,而且是Qa先输出,然后是Qb,Qc,...Qh最后输出。但是实验发现串行输入00000010,输出从Qa到Qh变为了00000100,串行输入00000100,输出从Qa到Qh变为了00000010,串行输入00001000,输出从Qa到Qh变为了00000001,请问为什么后四位倒置了?
另外,关于QH'(串行输出),从时序图看出QH1'输出比DS晚了7个周期,但是那个时序图中为什么DS只有一个啊?是不是指只输入了一个串行数据(还差7个)。因为我控制数码管需要两个74hc595串联,第二个的串行输入接到第一个的串行输出上面,思路是将第一个595先输入
期望从第二个595输出的数据,然后在来一次循环(全部输入0)将第一次输入的“压”到第二个上面。可是我不懂QH’的时序。
刚刚接触芯片,手册看不太明白,望指点。多谢
我看是这么写的:
void drive595(unsigned char byte)
{
unsigned char i;
for(i=0;i<8;i++) //第一次循环,期望从第二个595输出的数据
{
SCK_595=0;
byte=byte<<1;
DS_595=CY;
SCK_595=1;
}
for(i=0;i<8;i++) //第二次循环(全部输入0)
{
SCK_595=0;
DS_595=0;
SCK_595=1;
}
RCK_595=0;
RCK_595=1;
}
74HC595的驱动(单个595)我是这么写的:
void drive595(unsigned char byte)
{
unsigned char i;
for(i=0;i<8;i++)
{
SCK_595=0;
byte=byte<<1;
DS_595=CY;
SCK_595=1;
}
RCK_595=0;
RCK_595=1;
}