标题: 用单片机+74HC595移位寄存器驱动流水灯怎么赋值? [打印本页]

作者: 忆1709    时间: 2024-1-18 17:02
标题: 用单片机+74HC595移位寄存器驱动流水灯怎么赋值?
用了7个移位寄存器(74HC595D)控制流水LED灯,这个移位寄存器是串行输入,8位并行输出的。用单片机的1个IO口发送数据,总共有54颗灯,要发送54个二进制数据给移位寄存器。

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

作者: cedtek    时间: 2024-1-19 06:47
可以直接使用 unsigned char 类型的数组

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

作者: wangxiangtan    时间: 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控制的方式。
作者: xianfajushi    时间: 2024-1-19 09:59
通常用unsigned char变量多个即可,当然多个变量也可以是数组,还要看要什么样的流水效果,不同流水效果值就不同,分别计算几个不同的值就能实现;当然用INT变量也是可以的就要减少变量个数,基本没多大区别。
作者: wulin    时间: 2024-1-19 17:26
7个74HC595级联,只占用3个IO口,流水花样用二维数组存储,54个灯7个字节连续发送。只要存储器够用爱编多少花样随意。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1