找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 782|回复: 4
打印 上一主题 下一主题
收起左侧

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

[复制链接]
跳转到指定楼层
楼主
用了7个移位寄存器(74HC595D)控制流水LED灯,这个移位寄存器是串行输入,8位并行输出的。用单片机的1个IO口发送数据,总共有54颗灯,要发送54个二进制数据给移位寄存器。

请问是不是要定义一个54位的变量?这应该用什么数据类呢?谢谢。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:866313 发表于 2024-1-19 06:47 | 只看该作者
可以直接使用 unsigned char 类型的数组

图中演示的是使用 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变量也是可以的就要减少变量个数,基本没多大区别。
回复

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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