[51单片机]

关于单片机跑马灯的问题(不简单)

[复制链接]
1867|13
手机看帖
扫描二维码
随时随地手机跟帖
tianqi911|  楼主 | 2018-6-1 16:47 | 显示全部楼层 |阅读模式
本帖最后由 john_lee 于 2018-6-2 17:30 编辑

求助。问题如下,实现跑马灯,但是MCU的口是这样的。从左向右,P31 P00 P01 P02 P03 P06 P07 P34.
要求是这样的,第一下按键:P02 P03亮;然后P01 P06亮;P00 P07亮;P31 P34亮。(每一对灯依次亮,每次只有一对灯亮)
                     第二下按键:反向;
                     第三下按键:同时闪烁;
                     地四下按键:全灭。

高人指点,特别有2点,我很困惑解决不了,1,两个IO口拼成一个8bit的,怎么处理?
                                                           2,怎么调节灯闪烁的速度;(我试了delay,循环等方法都不好)

请高手写程序出来,我好学习,调试。非常感谢。
评论
copower 2018-6-12 00:54 回复TA
你的问题描述不清。 按一下按键 亮到P31 P34之后接下来怎么亮?亮的完整循环都没有说清楚。亮到P31 P34之后是从头亮P02 P03?还是掉头从P00 P07 返回去? 第二下按键 : 反向 ?怎么反向 方向亮的顺序也没描述,谁愿意猜测你的想法? 第三下按键 : 同时闪烁?怎样闪?闪的周期多少? 8个灯同时亮 同时灭的 闪? 还是4亮4灭的闪? 问题都不描述清楚。别人怎么回答你? 

相关帖子

Cjy_JDxy| | 2018-6-1 17:00 | 显示全部楼层
这字根本看不清

使用特权

评论回复
wsnsyy| | 2018-6-1 17:04 | 显示全部楼层
很简单

使用特权

评论回复
chongdongchen| | 2018-6-1 20:02 | 显示全部楼层
发帖请注意颜色

使用特权

评论回复
资深技术| | 2018-6-1 20:55 | 显示全部楼层
太难了,看不懂问题

使用特权

评论回复

求助。问题如下,实现跑马灯,但是MCU的口是这样的。从左向右,P31 P00 P01 P02 P03 P06 P07 P34.
要求是这样的,第一下按键:P02 P03亮;然后P01 P06亮;P00 P07亮;P31 P34亮。(每一对灯依次亮,每次只有一对灯亮)
                     第二下按键:反向;
                     第三下按键:同时闪烁;
                     地四下按键:全灭。

高人指点,特别有2点,我很困惑解决不了,1,两个IO口拼成一个8bit的,怎么处理?
                                                           2,怎么调节灯闪烁的速度;(我试了delay,循环等方法都不好)

请高手写程序出来,我好学习,调试。非常感谢。

使用特权

评论回复
xyz549040622| | 2018-6-2 08:28 | 显示全部楼层
好歹修改下背景颜色。
1.很简单,按照顺序逻辑执行就好了,没有卡死很严格的时间,用延时足够了。
2.两个IO并成1个8bit,用移位,每个IO当成1个数据的一位,可以这样P31<<1|P00<<2|P01<<3,这样以此类推就好了。

使用特权

评论回复
henangongda123| | 2018-6-2 10:52 | 显示全部楼层
看不清图片里面的文字
51单片机?

使用特权

评论回复
elife| | 2018-6-6 21:01 | 显示全部楼层
可以用1个模式寄存器,记录四个运行模式。 用一个指针,记录当前动画步,读取动画每步表格,直接输出到口就行了。 按一次按键,模式更改为下一模式,并清除动画步指针,重新开始读取动画表格,输出到口。 两个口P3,P0用两表格,输出注意MASK,不要影响其他的口。

使用特权

评论回复
dukecheng| | 2018-6-7 10:07 | 显示全部楼层
elife 发表于 2018-6-6 21:01
可以用1个模式寄存器,记录四个运行模式。 用一个指针,记录当前动画步,读取动画每步表格,直接输出到口就 ...

好象很简单,新手什么模式寄存器,用指针都不会。

使用特权

评论回复
天命风流| | 2018-6-11 13:24 | 显示全部楼层
赞           

使用特权

评论回复
blust5| | 2018-6-11 13:56 | 显示全部楼层
很简单,按键4个状态,对应灯的四个状态。按键的状态根据按下次数循环变动,然后灯根据按键的状态进行显示。这是最简单的方法,什么指针,寄存器,移位都不需要,很适合新手。延时的话用delay足够,不过用定时器会更方便一些。

使用特权

评论回复
lxa0| | 2018-6-12 23:52 | 显示全部楼层
我以为这个不难
自己慢慢搞定

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

48

主题

235

帖子

2

粉丝