找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 364|回复: 4
收起左侧

用单片机+74HC595移位寄存器驱动流水灯怎么赋值?

[复制链接]
ID:847776 发表于 2024-1-18 17:02 | 显示全部楼层 |阅读模式
用了7个移位寄存器(74HC595D)控制流水LED灯,这个移位寄存器是串行输入,8位并行输出的。用单片机的1个IO口发送数据,总共有54颗灯,要发送54个二进制数据给移位寄存器。

请问是不是要定义一个54位的变量?这应该用什么数据类呢?谢谢。
回复

使用道具 举报

ID:866313 发表于 2024-1-19 06:47 | 显示全部楼层
可以直接使用 unsigned char 类型的数组 20240119064417_hzGjXX2Eht7.gif

图中演示的是使用 8 颗 74HC595 静态驱动 64 个乐一地进行简单的流水模式显示
回复

使用道具 举报

ID:1057978 发表于 2024-1-19 08:56 | 显示全部楼层
74HC595可以位选,也可以段选,按8个八段数码管,用轮流片选显示的方法两片74HC595就可以了。
74HC595两片级联,可以先8位片选数据再8位段选数据后显示一次,然后选择下一个,你这54个LED灯是不规则图形的话依然可以分组去显示。
当然你想用7个74HC595分别去控制显示对应的LED也是可以的,用沙发的方法定义一个unsigned char[8]={0x0a,0xbc……},把要显示的东西都定义到数组里面,循环发送到级联起来的74HC595,一次显示出来。做流水灯的话,你得让一个1或者0在这8个unsigned char里面移动,对应出来的就是流水灯效果。
我还是喜欢前面的两片74HC595控制的方式。

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:332444 发表于 2024-1-19 09:59 | 显示全部楼层
通常用unsigned char变量多个即可,当然多个变量也可以是数组,还要看要什么样的流水效果,不同流水效果值就不同,分别计算几个不同的值就能实现;当然用INT变量也是可以的就要减少变量个数,基本没多大区别。
回复

使用道具 举报

ID:213173 发表于 2024-1-19 17:26 | 显示全部楼层
7个74HC595级联,只占用3个IO口,流水花样用二维数组存储,54个灯7个字节连续发送。只要存储器够用爱编多少花样随意。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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