查看: 1591|回复: 2

74HC595的疑惑终于解开

[复制链接]

该用户从未签到

发表于 2019-5-25 16:00 | 显示全部楼层 |阅读模式
本帖最后由 rui_cn 于 2019-5-25 16:04 编辑

对于74HC595的教程中和网上的资料看完还是模糊,于是一边接线测试,一边反复看图研究和教程研究,总算是搞清楚了。做了一个双流水灯的程序,通过了验证,效果如图。
总结了以下一些使用要点(以下一单流水灯为例):(附件为代码和效果图,Ligth2Led()是双灯效果)
1.SCLR(10脚)低电平清零(接arduino的8脚)
在loop中清零后执行函数LigthLed(),发现只有函数LigthLed()执行完毕,再次进入loop时,才会真正执行LigthLed()中的功能。
虽然在试验中,脉冲指示红灯在第一次进入执行LigthLed()时也会按照脉冲周期闪烁,但寄存器未输出数据点亮流水等,
当第二次进入LigthLed()时,才按照程序点亮流水灯。
2.ST_CP(12脚)数据输出(接arduino的5脚)
移位寄存器有8位,初始时可理解位数据分别位********(0和1的随机数,如果清零操作,则为00000000),初始时,将SH_CP和ST_CP置低电平,DS置高电平(数值为1),延迟500ms,(实际发现延迟后DS输出才能稳定存入存储器),当SH_CP上升沿到达,移位寄存器先移位,然后存储器中的1移入移位寄存器的最低位中,寄存器中各位状态由高到低为*******1,当ST_CP置高电平时,移位寄存器输出到对应的Q7~Q0,Q0会点亮对应的LED等,Q7~Q1保持原状态。
延迟500ms后,将将SH_CP和ST_CP置低电平,DS置低电平(数值为0),0保存在存储器中,当SH_CP上升沿到达,移位寄存器先移位,原来在移位寄存器0位置的数值1移入到1位置,然后存储器中的0移入移位寄存器的最低位中,寄存器中各位状态由高到低为******10,对应控制Q7~Q0状态为 *******10,当ST_CP置高电平,移位寄存器输出到对应的Q7~Q0,Q0灭第一个LED,Q1点亮第二个LED。如此循环,产生流水灯效果。

wx_camera_1558768404484.mp4_20190525_155935.167.jpg

code17-liushuideng.rar

1.02 KB, 下载次数: 22

  • TA的每日心情
    奋斗
    2019-3-22 20:44
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    发表于 2019-5-26 14:22 | 显示全部楼层
    整理资料实在是辛苦lz,感谢lz为社区作出的贡献
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    热门推荐

    [限时福利]5分钟带你快速了解新一代开发板:M5STACK
    [限时福利]5分钟带你快速
    一、什么是M5Stack M5Stack是一种模块化、可堆叠扩展的开发板,每个模块
    天猫精灵接入语音提示找不到该设备?
    天猫精灵接入语音提示找不
    今天又刷了一遍代码,天猫精灵提示 没有找到你要操作的设备! 怎么回事啊??? 折腾
    引入库的问题,不知道怎么叙述 看图吧
    引入库的问题,不知道怎么
    最左边的是主文件 也就是启动的文件 后边三个是引入的 在后边这个文件再引入库就报错
    blinker电源插座
    blinker电源插座
    这台blinker电源插座有blinker控制和手动控制两种工作方式. 1.blinker控制:滑条用于设
    blinker灯、环境传感器套件意见收集
    blinker灯、环境传感器套
    计划春节后推出blinker氛围灯和环境检测套件。 本帖收集相关建议,如若采纳,发红包(
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
    快速回复 返回顶部 返回列表