找回密码
 立即注册

QQ登录

只需一步,快速开始

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

求思路 51单片机用两个开关分别控制流水灯和数码管

[复制链接]
跳转到指定楼层
楼主
ID:1078227 发表于 2023-5-26 00:23 来自手机 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
由于本论坛禁止直接求程序,禁止伸手党,所以向大家请教一下大致的实现方法与思路,理清头绪后我自己来写程序去实现,谢谢大家




51单片机在IO串口   协议那里     用两个开关分别控制流水灯和数码管 要求按下开关先反馈回来其中一个灯亮,亮了之后后边流水灯(数码管)启动  ,另一个开关  是另一个灯亮
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:45879 发表于 2023-5-26 09:19 | 只看该作者
初始化外设IO、串口及中断等

主函数
按键+消抖,亮灯1,串口发送第一个灯亮;
按键+消抖,亮灯2,串口发送第二个灯亮;






回复

使用道具 举报

板凳
ID:123289 发表于 2023-5-26 14:34 | 只看该作者
1、将所有【流动】显示,分切成N个【静止】的显示,形成一个N个元素的数组A(N)。A(N)中的每个成员,都是一个【静止】的显示状态。如某个成员=1000001,表示七个LED灯的首尾是亮的。
2、以X为参数,编写一个显示程序XS(X),显示A(N)的【静止】状态,X指向A(N)的的成员。也即X=什么,七个LED的显示组合变是什么。
3、用定时器做个时间隔为T的中断,每次中断执行一次XS(X),X如果取值,就决定了你显示的方式(倒、顺、混、旋……),你想如何组合就如何组合,只要事先对X的序列设计一下即可,这可序列,也可以做成一个数组,例如:顺跑S(i)、逆行N(i)。如此,每间隔时间T,七个LED就更换一个显示状态。
4、现在可以谈论按键1、2了。例如按了键1,就运行S(i),则顺跑;例如按了键2,就运行N(i),则逆行。
道理一样,自己仔细想想,是否非常机动?
想如何显示,修改几个数组的值即可。且可以花样百出、随心所欲。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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