当前位置:   article > 正文

74HC595实战篇

74hc595

1.74hc595的级联电路

上篇文章中指出引脚13不是什么情况下都可以链接gnd的,在单片机复位时,到初始化等配置完成,这个时候时mcu对电路控制的真空期,这时候若13引脚若直连gnd,那么595默认输出高电平,这时候就需要评估595上电输出高电平是否会对项目产生影响。比如,若你控制的是一些柜门(高电平开门)上电时柜门会全打开显然不合理,此时13引脚OE需用IO控制并加上拉电阻,在让595在不受控制时输出高阻态。

2.595的输出函数

原理参考上一篇文章中的:4.595的工作和使用流程。

  1. /****************************************************************************
  2. * 名称:HC595_INIT()
  3. * 功能:595初始化函数
  4. * 入口参数:无
  5. * 出口参数:无
  6. ****************************************************************************/
  7. void HC595_INIT()
  8. {
  9. OE_L=1;//使能关闭
  10. SCK_L=0;
  11. RCK_L=0;
  12. }
  13. /****************************************************************************
  14. * 名称:HC595_In_L
  15. * 功能:595输入函数
  16. * 入口参数:j:
  17. * 出口参数:无
  18. * 说明:完成一个字节8位的输入,数据进入595存储寄存器
  19. ****************************************************************************/
  20. void HC595_In_L(unsigned char j) //完成一个字节8位的输入
  21. {
  22. int i;
  23. for(i=0;i<8;i++)
  24. {
  25. if((j<<i)&0x80)//只取最高位
  26. {
  27. DATA_DS_L=1;
  28. }
  29. else
  30. {
  31. DATA_DS_L=0;
  32. }
  33. SCK_L=0; //上升沿
  34. CLK_SysTickLongDelay(10); //延时10us
  35. SCK_L=1;
  36. CLK_SysTickLongDelay(10); //延时10us
  37. }
  38. }
  39. /****************************************************************************
  40. * 名称:HC595_Out_L
  41. * 功能:595输出函数
  42. * 入口参数:无
  43. * 出口参数:无
  44. * 说明:完成并出数据功能,寄存器中的数据被输出
  45. ****************************************************************************/
  46. void HC595_Out_L(void) //完成并出数据功能
  47. {
  48. OE_L =0; //使能输出,不使用OE引脚就注释掉
  49. RCK_L=0; //上升沿
  50. CLK_SysTickLongDelay(10);//延时10us
  51. RCK_L=1;
  52. }

3.可能的问题

 理论上595可以无限级联但需注意595在5v电压下的驱动能力为6ma。

工业现场也会受到外界的干扰,如交流接触器等;

级联的电路如果线束过长信号会产生衰减,产生时序问题。

当信号通过长线束传输时,导致电压下降;由于线束的电阻和电感,信号的波形可能会发生失真

在单步调试时,信号的传输速度较慢,因此电压下降的影响相对较小,可能不容易被察觉。
解决办法(仅供参考):

1. 使用更粗的导线:通过增加导线的截面积,可以降低线束的电阻和电感,从而减少信号传输时的电压下降、使用传输介质更好的线材

2.使用屏蔽线束:屏蔽线束可以减少外界电磁干扰对信号传输的影响,从而提高信号的稳定性和可靠性。

3.调整信号驱动能力:如果线束过长导致信号下降严重,考虑增加信号源的驱动能力,以补偿信号传输过程中的损耗。

4.增加补偿电路: 在接收端添加补偿电路,如电压补偿电路或放大器,可以对信号进行补偿。

5.确定特性阻抗:首先需要确定线束的特性阻抗。根据线束材料和几何形状等参数,计算出特性阻抗值.安装终端匹配电阻:根据特性阻抗值选择合适的终端匹配电阻并安装在信号线的终端,以确保信号质量(这个需要自己多做几次实验);

6.时序优化:
考虑时钟频率,确保信号线能够满足时钟频率要求。
控制时钟上升/下降时间: 控制时钟信号的上升/下降时间,避免信号过渡过快导致反射和干扰。

增加电容:你可以通过在74HC595的时钟线上添加一个电容来延迟时钟信号的上升和下降时间,从而低时钟速度。

软件延时:在控制74HC595的代码中添加软件延时来减慢时钟速度,你可以在每次时钟脉冲之间插入适当的延时,以控制数据传输速度。

7.595对毛刺干扰特别敏感,若不是线束过长导致的问题可以尝试在595的第11,12,14脚接102电容到地。

8.线束建议不超过60cm

参考文章:

74HC595级联介绍篇(一)_壹二叁的博客-CSDN博客

74HC595级联电路篇(二)_壹二叁的博客-CSDN博客

74HC595级联电路编程篇(三)_hc595 连级_壹二叁的博客-CSDN博客

74HC595级联电路编程篇(四)_sn74hc595 spi控制程序_壹二叁的博客-CSDN博客

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/801777
推荐阅读
相关标签
  

闽ICP备14008679号