搜索
bottom↓
回复: 24

74HC595级联控制程序错

[复制链接]

出0入4汤圆

发表于 2019-6-19 20:19:24 | 显示全部楼层 |阅读模式
我现在连接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;
}

出0入4汤圆

 楼主| 发表于 2019-6-19 20:23:33 | 显示全部楼层
电路原理图

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2019-6-19 20:39:09 | 显示全部楼层
为啥要加反相器和RC延时?

出0入4汤圆

 楼主| 发表于 2019-6-19 20:55:13 | 显示全部楼层
lcw_swust 发表于 2019-6-19 20:39
为啥要加反相器和RC延时?

这是电梯上的按键板,我们拿来用的,你感觉程序哪有问题吗

出0入0汤圆

发表于 2019-6-19 21:08:32 | 显示全部楼层
默纳克的东东?

出0入0汤圆

发表于 2019-6-19 21:27:38 | 显示全部楼层
本帖最后由 lcw_swust 于 2019-6-19 21:28 编辑
qinglong 发表于 2019-6-19 20:55
这是电梯上的按键板,我们拿来用的,你感觉程序哪有问题吗


首先是觉得电路有问题
再看了一下,似乎程序也有问题,百度说“在SCK 的上升沿,串行数据由SDL输入到内部的8位位移缓存器”,
程序里似乎把时钟搞反了。

建议将8次循环之后的四句去掉:
delay_us(50);
        HC595_SCK1 = 0;
  delay_us(50);
  HC595_SCK1=1;

出0入0汤圆

发表于 2019-6-19 22:46:49 | 显示全部楼层
先把C41,C42电容去掉,把软件调通,103电容太大

出0入4汤圆

发表于 2019-6-20 08:27:32 | 显示全部楼层
C41,C42我们都是用330P

出0入4汤圆

 楼主| 发表于 2019-6-20 09:06:29 | 显示全部楼层
lcw_swust 发表于 2019-6-19 21:27
首先是觉得电路有问题
再看了一下,似乎程序也有问题,百度说“在SCK 的上升沿,串行数据由SDL输入到内部 ...

那个是控制8位存储器输出的

出0入4汤圆

 楼主| 发表于 2019-6-20 09:12:33 | 显示全部楼层
sf49ers 发表于 2019-6-19 22:46
先把C41,C42电容去掉,把软件调通,103电容太大

电路没问题,应该是程序问题,我写 0xfe ,0xfe , 0xfe  ,0xfe  0xfe  ,0xfe,74hc595输出    0xfd,0xfd,0xfd,0xfe,0xfe,0xfe,先写的三个字节向左移动了一位,但是后三个字节正确,不知道是哪里的原因,前三个字节是连接远的一块板子,后三个是近的板子

出0入0汤圆

发表于 2019-6-20 09:14:47 | 显示全部楼层
只是程序没调通,慢慢调就好。

出0入4汤圆

 楼主| 发表于 2019-6-20 09:15:09 | 显示全部楼层
从工作原理上分析,我认为,既然程序有问题,那六个芯片输出都应该左移一位的,但是为什么三个队,三个错

出0入4汤圆

发表于 2019-6-20 09:17:35 | 显示全部楼层
这种问题就是时序问题, 把电路板上stcp ,shcp对地加几百p的电容应该就好了。

以前遇到过, 尤其是线长的情况出现时序错乱。   或者就把程序上延时加大点

出0入4汤圆

发表于 2019-6-20 12:04:33 | 显示全部楼层
上示波器看看

出0入0汤圆

发表于 2019-6-20 16:28:16 | 显示全部楼层
qinglong 发表于 2019-6-20 09:06
那个是控制8位存储器输出的

哦,是哦,报歉我眼花了。
加大延时试试吧。

出0入20汤圆

发表于 2019-6-20 17:31:05 | 显示全部楼层
驱动595的SCK,RCK的IO电流够吗?

出0入20汤圆

发表于 2019-6-20 17:33:10 | 显示全部楼层
595ser的驱动可以省略。LED点阵条屏,要驱动多片595,中间要加245驱动。

出0入0汤圆

发表于 2019-6-20 18:48:23 来自手机 | 显示全部楼层
感觉是驱动能力不够

出0入0汤圆

发表于 2019-6-20 20:40:17 | 显示全部楼层
锁存记得是下降沿的。试试
HC595_SCK1 = 1;
  delay_us(50);
  HC595_SCK1=0;

出0入4汤圆

 楼主| 发表于 2019-6-22 14:15:46 | 显示全部楼层

朋友你知道程序怎么写吗,给一下指点

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入4汤圆

 楼主| 发表于 2019-6-22 14:20:48 | 显示全部楼层
mon51 发表于 2019-6-20 17:33
595ser的驱动可以省略。LED点阵条屏,要驱动多片595,中间要加245驱动。

不是驱动能力的问题,问题原因找到了,是第一块板子的最后一片595的最后一位移到第二块板子的第一片595的第一位,造成第二块板子的所有595输出都后移一位,但是不知道什么原因造成一位,请大能指点

出0入0汤圆

发表于 2019-6-22 14:58:31 | 显示全部楼层
qinglong 发表于 2019-6-22 14:15
朋友你知道程序怎么写吗,给一下指点

没用过他们的硬件来写软件,只是见他们很喜欢用14这个IC,才猜说是默的

出0入0汤圆

发表于 2019-6-22 18:17:34 | 显示全部楼层
HC595 只要求在移位时钟由低至高时,SER必需稳定,但其它任何时间SER都能改变,所以74HC14是完全没用的,不知是那方"高人"所加,有谁可以说明说明。

出0入4汤圆

发表于 2019-6-22 21:57:34 来自手机 | 显示全部楼层
有可能是595数据输出经过14后再从第二块板的14输入再到595,这中间的时序问题

出0入4汤圆

 楼主| 发表于 2019-6-24 19:37:52 | 显示全部楼层
zhoupy 发表于 2019-6-22 21:57
有可能是595数据输出经过14后再从第二块板的14输入再到595,这中间的时序问题 ...

我感觉也是这里的问题,从理论上说应该没问题
但是就是这出错了。应该给14有很大的关系。哪位高手给解释一下
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-20 09:50

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表