找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 9041|回复: 14
收起左侧

关于用51单片机控制21个LED灯 要求I/O口不超过16个

  [复制链接]
ID:44262 发表于 2017-2-22 23:20 | 显示全部楼层 |阅读模式
请教大家一个问题。
用 51控制21个LED灯   要求I/O口不超过16个。 我用了74HC595控制了16个 剩下的5个用I/O口控制的     这21个灯用4个按键控制      一个按键是停止 一个是开始  一个向左 一个是向右  21个灯排成一排  开机默认中间的那个灯是亮的   然后向左或者向右为流水灯    具体方向根据按键控制    单纯的595控制的16个也好判断   单纯I/O口也好控制 但是 这两个放在前一起    如果先向右跑了一段 按下向左   那此时灯的那个位置怎么确定,  来回反复左右跑两次   中间掺杂个I/O口  那个位置在程序中我不会确定具体在哪
0.png 0.png



还有5个LED是用I/O连接的
回复

使用道具 举报

ID:2318 发表于 2017-2-22 23:23 | 显示全部楼层
三个595就能全部控制了
送串行信号
0000000100000000
中间亮 0.png


00000000 00000010 00000000
就是中间亮

然后左移 或 右移都可以
右移到尽头在移一次就全零
回复

使用道具 举报

ID:123289 发表于 2017-2-23 01:12 | 显示全部楼层
硬件设计无需用74HC595和74HC04.
21个灯+4个键分两路扫描显示、采样即可,加两个三极控制共公端,13+2个IO口搞定。
回复

使用道具 举报

ID:111634 发表于 2017-2-23 09:53 | 显示全部楼层
本帖最后由 zl2168 于 2017-2-23 17:25 编辑

74HC595串入并出控制16循环灯


Proteus仿真一下,确认有效。
实例44 74HC595串行输出控制8-16循环灯.rar (72.58 KB, 下载次数: 33)
回复

使用道具 举报

ID:111634 发表于 2017-2-23 09:54 | 显示全部楼层
本帖最后由 zl2168 于 2017-2-23 17:27 编辑

CC4094串入并出控制16循环灯


Proteus仿真一下,确认有效。
实例43 CC4094串行输出控制8-16循环灯.rar (67.45 KB, 下载次数: 17)
回复

使用道具 举报

ID:166142 发表于 2017-2-23 11:51 | 显示全部楼层
74HC595串转并足够用了
回复

使用道具 举报

ID:111634 发表于 2017-2-23 17:31 | 显示全部楼层
本帖最后由 zl2168 于 2017-2-23 17:33 编辑

74HC164串入并出控制16循环灯


Proteus仿真一下,确认有效。
实例42 74HC164串行输出控制8-16循环灯.rar (53.19 KB, 下载次数: 12)
回复

使用道具 举报

ID:165180 发表于 2017-2-23 19:54 | 显示全部楼层
74H164 串转幷
回复

使用道具 举报

ID:166264 发表于 2017-2-23 20:41 | 显示全部楼层
三个565并行控制
回复

使用道具 举报

ID:153041 发表于 2017-2-23 22:20 | 显示全部楼层
楼主想要问的是位置怎么确定吧。
我建议程序做2层设计,首先把21个灯用21位的变量来表示,按键只对这个变量进行处理;
其次做一个驱动函数,将变量的内容驱动到具体的输出管脚上去,硬件无论怎么变,只要改这个驱动函数就好了。
你想要确定当前led跑到的位置,在变量上找,不要考虑具体怎么输出,IO怎么编排。
回复

使用道具 举报

ID:166475 发表于 2017-2-24 20:51 来自手机 | 显示全部楼层
我是初学者
回复

使用道具 举报

ID:166519 发表于 2017-2-24 23:42 | 显示全部楼层
我是初学者
回复

使用道具 举报

ID:165010 发表于 2017-2-25 10:47 | 显示全部楼层
 新手正在学习
回复

使用道具 举报

ID:261637 发表于 2017-12-15 14:39 | 显示全部楼层
新手正在学习
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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