74HC595级联控制程序错

2020-01-04 19:04发布

我现在连接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;
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
24条回答
qinglong
1楼-- · 2020-01-06 18:13
cu_ice 发表于 2019-6-19 21:08
默纳克的东东?

朋友你知道程序怎么写吗,给一下指点
qinglong
2楼-- · 2020-01-06 20:06
mon51 发表于 2019-6-20 17:33
595ser的驱动可以省略。LED点阵条屏,要驱动多片595,中间要加245驱动。

不是驱动能力的问题,问题原因找到了,是第一块板子的最后一片595的最后一位移到第二块板子的第一片595的第一位,造成第二块板子的所有595输出都后移一位,但是不知道什么原因造成一位,请大能指点
cu_ice
3楼-- · 2020-01-07 01:41
qinglong 发表于 2019-6-22 14:15
朋友你知道程序怎么写吗,给一下指点

没用过他们的硬件来写软件,只是见他们很喜欢用14这个IC,才猜说是默的
alias
4楼-- · 2020-01-07 05:57
 精彩回答 2  元偷偷看……
zhoupy
5楼-- · 2020-01-07 10:14
有可能是595数据输出经过14后再从第二块板的14输入再到595,这中间的时序问题
qinglong
6楼-- · 2020-01-07 14:15
zhoupy 发表于 2019-6-22 21:57
有可能是595数据输出经过14后再从第二块板的14输入再到595,这中间的时序问题 ...

我感觉也是这里的问题,从理论上说应该没问题
但是就是这出错了。应该给14有很大的关系。哪位高手给解释一下

一周热门 更多>