我现在连接6片74HC595,分两块板子连接,每块板子有三片74HC595,在写数据时,先写入的三片数据偏移一位数据,后三片显示正常,不知道什么愿意,哪位朋友遇到过,帮解决一下原因
void hc595out_data1(u8 *data,u8 by)
{
u8 i;
u8 j=by;
// HC595_SCK1 = 1;
// HC595_LCK1=1;
for(;j>0;j--)
{
for (i=0;i<8;i++)
{
if(((data[j-1]<< i) & 0x80)!=0)
{
HC595_SER1=1;
}
else
{
HC595_SER1=0;
}
delay_us(5);
HC595_LCK1=1;
delay_us(5);
HC595_LCK1=0;
// delay_us(10);
// DataSend <<= 1;
}
}
delay_us(50);
HC595_SCK1 = 0;
delay_us(50);
HC595_SCK1=1;
// delay_us(500);
// HC595_SCK1 = 1;
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
那个是控制8位存储器输出的
电路没问题,应该是程序问题,我写 0xfe ,0xfe , 0xfe ,0xfe 0xfe ,0xfe,74hc595输出 0xfd,0xfd,0xfd,0xfe,0xfe,0xfe,先写的三个字节向左移动了一位,但是后三个字节正确,不知道是哪里的原因,前三个字节是连接远的一块板子,后三个是近的板子
一周热门 更多>