打印

遇到一个头疼的问题

[复制链接]
2929|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
inter_zhou|  楼主 | 2008-9-27 22:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现在遇到一个头疼的问题:用单片机控制一个LED,LED有几种工作状态,常亮,半亮,快闪,慢闪等等,只有一个按键,既是电源开关键,又是状态切换键。由于机构的原因,每按一次键电源就会断开然后又回连接上,要求LED的状态切换到下一个状态。因为每次按键后相当于重新复位工作,而又要切换到下一个状态,就要求必须将每次状态变化的变量LED_ststus保存。上电复位时再读出该状态就可以做到。
难度是成本必须控制在一块之内,IC的成本,如果用EEPROM保存LED_ststus成本这关肯定会过不去,请问大侠们有什么好的方法?小弟在此感激不尽!

相关帖子

沙发
2shift| | 2008-9-27 22:18 | 只看该作者

确实比较麻烦

使用特权

评论回复
板凳
inter_zhou|  楼主 | 2008-9-27 22:33 | 只看该作者

是啊,不知道有没有办法实现

使用特权

评论回复
地板
hotyong| | 2008-9-27 23:35 | 只看该作者

oo看错了,回答错了

-

使用特权

评论回复
5
hotyong| | 2008-9-27 23:44 | 只看该作者

成本在一块钱之内??

那确实是难,单片机也不够买的呀,

使用特权

评论回复
6
icmap| | 2008-9-28 00:27 | 只看该作者

想吃免费午餐,难!

使用特权

评论回复
7
dad123123| | 2008-9-28 09:38 | 只看该作者

几个中断向量地址是预留的

几个中断向量地址是预留的,若不使用中断的话,可否将其视为存储空间使用,仅仅提供一种思路

使用特权

评论回复
8
zjh006| | 2008-9-28 09:56 | 只看该作者

如果按键时电源断开的时间很小的话

可以考虑加大电源两端并联的电容,用220uf的试试看,短时间内保存RAM内容应该是可以的。

使用特权

评论回复
9
天雨粟| | 2008-9-28 11:10 | 只看该作者

这样行不行

按键带动一个BCD拨码盘,拨码盘是循环切换的,每按一次,拨码盘切换一次,意即由拨码盘和按键共同决定开机模式.

理论上讲,单片机复位后,就是一个改朝换代,前朝的一切都被扫入历史,决不带进新朝,如果前朝还对新朝有足够的影响,那就不成其为新朝,如强行成立新朝,那就朝纲大乱了,单片机也是这个原理.

仅仅靠单片机自己来解决这个问题,理论上是不通的,呵呵!

使用特权

评论回复
10
天雨粟| | 2008-9-28 11:26 | 只看该作者

还得强调一下

单片机的改朝换代系指如楼主讲的断电后上电复位,如系热启动,按有些资料上讲的,内部RAM数据保持不变(这点还要请这里的老师们帮看看,是不是这样).
如热启动RAM保持原状,利用这个原理,楼主可让片子上电后即处于低功耗的睡眠状态,按键放在外中断上,由外中断唤醒单片机,如RAM数据不变,可以传到下一个唤醒,只要从软件上想想办法,楼主的功能就能基本实现!

使用特权

评论回复
11
天雨粟| | 2008-9-28 13:41 | 只看该作者

以上说法尚未详尽

楼主要求的功能是:开机→模式1→关机→开机→模式2→关机……循环,按键的任务有三:1启动系统;2开启一个功能模块;3结束执行并关闭系统。根据以上分析,单靠单片机自己是无法解决这个问题的,如借助外力,如EEPROM、机械**等,成本上不能接受。则应走第三条路,用低功耗单片机——即用低功耗模式代替断电状态,在低功耗模式下保留RAM值,不让系统发生改朝换代式的革命。参考方案如下:(按键在外中断上)
按键中断→键龄加1→键龄等于偶数→关闭LED,返回低功耗模式
                    键龄等于奇数→标志加1(标志大于4,标志等于1)→调根据标志执行的模块
按键任务有二,奇数次按键,标志加1并执行,偶数次按键,结束执行。将原来的开/关两种任务分配到两次按键上。

使用特权

评论回复
12
inter_zhou|  楼主 | 2008-9-28 14:44 | 只看该作者

感谢 天雨粟 的热情

由于机构的原因已经将按键做成了电源键(每一次按键的动作会将电源完全切断然后再接通),这时候还必须切换状态。之前使用一个类似如FPGA的东西做的,IC内部集成了EEPROM之内的东西,所以很好做,成本在1.5左右,但是现在改用单片机做到1块左右可能确实比较难做。不过还是非常感谢天雨粟的热心!

使用特权

评论回复
13
hotyong| | 2008-9-28 16:47 | 只看该作者

有那么便宜的FPGA吗??

哪有这么便宜的FPGA哦,楼主有没有搞错呀,1.5呀,这也太便宜了!!

使用特权

评论回复
14
inter_zhou|  楼主 | 2008-9-28 17:00 | 只看该作者

根据功能量身定做的东西,可以做成掩膜的,很便宜

使用特权

评论回复
15
谈的元| | 2008-9-28 20:59 | 只看该作者

贴图出来。也许用153就可以

你开关的特性,如果断开的时间不长,就可以利用RAM来完成。建议你将有开关的部分贴出来。

使用特权

评论回复
16
后学| | 2008-9-29 18:02 | 只看该作者

rtc可以么?

RTC上的SRAM+电池。。。

使用特权

评论回复
17
李冬发| | 2008-9-29 23:30 | 只看该作者

用个大电容做电源,这样电源开关切断时,暂时MCU不掉电

使用特权

评论回复
18
dong1021| | 2008-10-6 14:17 | 只看该作者

简单呀,做电源开关时,按键时间长点呀1用程序控制呀

使用特权

评论回复
19
fuzichun| | 2008-10-6 14:34 | 只看该作者

+2个2极管+个稍微大点的电容,单片机程序写好点就可以了

使用特权

评论回复
20
merryme| | 2008-10-6 15:34 | 只看该作者

各位真是有心人啊,

使用特权

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

本版积分规则

26

主题

272

帖子

0

粉丝