找回密码
 立即注册

QQ登录

只需一步,快速开始

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

74HC595控制流水灯灯数怎么增减

[复制链接]
跳转到指定楼层
楼主
ID:956872 发表于 2021-9-25 19:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用74HC595做了流水灯,卡在增减灯数上了,temp=0xffff,用限制循环次数得方式减灯,假如减掉4个灯,从左往右会在右边空出减掉得灯数temp=0xf000,反过来又是左边空出来 减掉得灯数temp=0x000f。
有没有好的加减灯的方法

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:624769 发表于 2021-9-25 20:25 | 只看该作者
做一个数组, 对应:  unsigned short Led[16] = {0x8000, 0xc000,0xe000,0xf000,0xf800,…………}
根据你需要的量灯数, 调用这个数组就好了。
回复

使用道具 举报

板凳
ID:624769 发表于 2021-9-25 20:40 | 只看该作者
刚才有疏忽, 包括全灭状态,应该17个状态,
unsigned short Led[17] = {0x0000,0x8000, 0xc000,0xe000,0xf000,0xf800,…………}

还有个非常不推建的方法:
LED_Buff |= _iror_ (LED_Buff, 1);            //加一个灯
LED_Buff &= _iror_ (LED_Buff, 1);            //减一个灯
此方法,在全亮或全灭时无效。需要额外语句处理。
回复

使用道具 举报

地板
ID:161164 发表于 2021-9-25 23:15 | 只看该作者
for(i = 0;i<12;i++)
  temp = 0xFFFF << i;
for(i = 0;i<12;i++)
  temp = 0xFFFF >> i;
回复

使用道具 举报

5#
ID:332444 发表于 2021-9-26 08:09 | 只看该作者
什么玩艺,亮灯就送亮灯的值就好了,发送次数不变.
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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