圣龙扬特-AVR电子

标题: 前辈、小弟请求赐教!关于单片机的流水灯。 [打印本页]

作者: ganggangshenfen    时间: 2014-1-15 16:57
标题: 前辈、小弟请求赐教!关于单片机的流水灯。
设计内容:
采用单片机设计彩灯控制器,有自动和手动两种工作模式,自动工作时,按预先设定的顺序输出10种流水效果;手动工作时,可在10种流水效果中任选一种,并可调节流水速度和流水方向。
问题1:设计一个流水灯时、10种花样、怎么再设计一个按键是让着当前的流水花样反转?(例:当前花样是从左到右循环点亮、按下反转的按键立刻从右往左点亮、)难道真的要设计20个程序来实现?
问题2:设计的流水灯能控制它的频率。我的构思是:把延时子程序的循环次数的那个自然数放在一个地址单元内,比方说是32H内,每次都是来调用这个32H内的自然数,然后想让彩灯快就通过按键来减小32H内的自然数,想要满就加大这个32H内的自然数。这个构思对么?
问题3:彩灯有自动和手动两种控制方法。怎么来控制在自动的时候其它按键全部失效?


作者: 箫天    时间: 2014-1-15 21:39
问题一:没必要20个程序,赋流水灯驱动PORT不同的点位值。用什么数据结构可自行设计。
问题二:延时也是一种办法。如果我做,会用定时器控制。
问题三:设个控制变量进行判断。

作者: ganggangshenfen    时间: 2014-1-16 22:25
箫天 发表于 2014-1-15 21:39
问题一:没必要20个程序,赋流水灯驱动PORT不同的点位值。用什么数据结构可自行设计。
问题二:延时也是一 ...

问题一的答复PORT点位值我不懂啊。。。。问题二的定时控制器怎么能加减呢?那是变相的延时么?问题三的变量判断我懂点、
作者: 箫天    时间: 2014-1-16 22:35
问题一:比如流水灯是8个LED,这8个LED接某PORT端口的8个引脚,想要LED灯隔一个亮一个,给PORT口赋二进制数值就是10101010。通过赋不同的值,使8个LED产生不同的变化。
问题二:改变定时器的初始值,使定时中断时间变化。




欢迎光临 圣龙扬特-AVR电子 (http://avr.cnta.net/) Powered by Discuz! X2.5