(原文件名:未命名.jpg)
引用图片
-----------------------------------------------------------------------
用两只三极管组成,自锁就可以了吧 凡是用单片机上电后输出信号自锁类的单键开关,都得面对这样一个问题:关机的时候随着电压下降单片机将进入跑飞状态或者说复位,电源控制引脚会跳动,会重新上电。可以考虑在单片机输出口上接上RC来吸收这个波动,当然,这个吸收电路也会延长开启时的按键时间。抛砖引玉。 方案都不错...学习了 用D触发器呢? mark mark mark 回复【109楼】qilujie 福大狗
凡是用单片机上电后输出信号自锁类的单键开关,都得面对这样一个问题:关机的时候随着电压下降单片机将进入跑飞状态或者说复位,电源控制引脚会跳动,会重新上电。可以考虑在单片机输出口上接上rc来吸收这个波动,当然,这个吸收电路也会延长开启时的按键时间。抛砖引玉。
-----------------------------------------------------------------------
我用的是STC52.出现你说的情况了。关机成了复位。
怎么改进?能够画个图吗?我加电容,没有作用。
谢谢。 http://cache.amobbs.com/bbs_upload782111/files_36/ourdev_615166TI16MM.jpg
(原文件名:ourdev_608023KF4ZFM.jpg) mark 我是用的STC下载器直接做的试验,PO接的是LED.现在是在间歇输出。LED亮的时间长,但是暗很短的时间,然后再亮,如此循环。
测试程序如下;
void main(void)
{
P31=1;
P0=0;
delayms(1000);
P31=0;
delayms(600);
} 马克 正在用“大虾电子”“coody”的电路试验,可以长按开机、长按关机,还可以用作普通按键操作,即“一个I/O 一键ON/OFFPLAY/PAUSE/STOP”确实不错。只可惜出现“都得面对”的低电压复位重启:在关机状态瞬间触通按键,等效于继电器的那个开关管导通MCU启动工作,按说程序立刻判断到按键瞬间触通后已经脱开 发出关机了信号 关断开关管,而电源也确实断开,可是MCU STC12C5A32S2却检测到供电电压在下降(去不掉的几十微法电解并在电源上),降到3.26V时又重新启动,这时初始的I/O状态接通了开关管、MCU开始工作、判断按键脱开 发关机信号......如此以几十mS周期循环,在示波器上看到一个个"V"字;如果按键超过这几十mS(远小于3~5S)则电源只降不升不会开机(这段程序与电路相互间还没弄清)。调整复位电容大小、添加延时电容...都不行。看资料单片机里面集成有MAX810复位芯片,可是没找到如何让它不工作。哪位先生有办法解决?
coody的电路在http://www.daxia.com/bibis/moredata.asp?syid=1742204&userid=74648
附上程序 真快
main()
{ unsigned int i,dd,ee;
for(;;)
{
if(P1_5==0)
{dd++;
if(dd>55555)
{ee++;
if(ee>55555)
{dd=0;ee=0;P1_5=1; break;}//按下键若干时间 开机 跳出死循环(或长时间?)
}
}
if(P1_5==1) //else
{ dd++;
if(dd>555)
{dd=0;ee=0;P0_4=0;P1_5=0;}//for(;;)
} //这里P0_4=0 灯闪一下后断电
}
while(1)
{
P0_4=0;
for(i=0;i<255;i++){send_char(0xAA);} //开机后等一会 不许连续开关
//..............
if(P1_5==0)//按下钮 开始结束计时
{
for(;;)
{ee++;
if(ee>=55555) //计时若干
{ dd++;
if(dd>55555){for(;;){ P0_4=1;P1_5=0;}}//灭灯 工作结束
}
if(P1_5==1)}//松开按钮不关机
{ ee=0;dd=0;
P0_4=0;
//........PLAY/PAUSE......
break;
}
}
} 没说清:按键超过这几十mS(远小于3~5S)则电源只降不升。
按下这几十mS电源接通,松开按键电源彻底断 标记,路过一下,说不定以后能用到 "原文件名:ourdev_608023KF4ZFM.jpg"
move R2 to Q2's base. mark mark! 不管复位芯片了,直接掉电(状态)然后外电路关断 成功! 血压升了?
main()
{ unsigned int i,dd,ee;
for(;;)
{
if(P1_5==0)
{dd++;
if(dd>55555)
{ee++;
if(ee>55555)
{dd=0;ee=0;P1_5=1; break;}//按下键若干时间 开机 跳出死循环(或长时间?)
}
}
if(P1_5==1) //else
『
P1_5=0;PCON=0x02;//PCON-00000010 PD=1
} }
想把coody的电路贴上怕违规,那个很好找 MARK 实际上主要是51上电时是高电平惹得祸。如果把开机改为低电平就可以了。 请教个问题。51的IO输出高电平时,内部有30K的上拉电阻。那么在非P0口的情况下接NPN管,还要串接电阻吗?我没有接的情况下输出3MA的电流。能够可靠工作吗?
还有一个问题。
P0口是开漏输出的,如果是5伏的MCU.我外接10K的上拉电阻到10伏的电源上可以吗?能够长时间正常工作吗?
这是51的基础,我还还没有搞明白,惭愧。 回复【122楼】wjhhh
没说清:按键超过这几十ms(远小于3~5s)则电源只降不升。
按下这几十ms电源接通,松开按键电源彻底断
-----------------------------------------------------------------------
是电源电容上存储的电用没了。我用的是开关电源,电容容量大,很长时间才能够关掉。 mark 上面的点触开关方案在一些单片机上会与电源电压监控功能冲突,因为单片机控制电平跳变瞬间单片机会在电源电压低到阙值时自动复位,这会使电平又跳变回去导致自动关机变成自动复位。《请教马老师》
----------------------------------------------------------------------- 2011上班第一个回复 先让单片机发出外电路关机信号,紧跟着进入掉电状态。能从掉电中唤醒MCU的只是P3_0、_2_3_4_5这几个脚。掉电时CPU,看门狗等等停止工作也就无从复位重启了,即使电源极缓慢下降也不怕。请看宏晶 STC12C5A62S2 PDF文档第44页 2.2.3掉电模式/...... mark 回复【楼主位】edisonjia
-----------------------------------------------------------------------
双稳态 mark 有收获 今天看双稳态,看着就跑这贴来了,哈哈 回复【135楼】wjhhh
-----------------------------------------------------------------------
你和他们讨论的貌似不是在一种情况下的话题 正是我需要的 这些电路系统供电没了,再次有电时就不能自动开机了。比如太阳能供电的设备阴天好几天,再次开机需要按下按钮。
我的方案是每次系统为MCU供一段时间电,单片机运行后读出上次系统开机状态。是继续在关机状态还是开机。 mark mark 很好,非常不错的,受教了! mark党! 8楼改成MOS管是正路,很多MP4就是这样做的。而手机因为有专用的电源管理芯片,对硬件工程师来说工作反而非常简单了 mark mark 保存 学习下 谢谢分享 MARK单键开机 正在做,
MARK单键开机 太牛啦。先做个标签,以后慢慢看。 MARK mark...................... 都是不是很懂有没全一点的软件和硬件一起的 很好很强大,标记学习!
tomhe666 发表于 2009-10-29 17:09 static/image/common/back.gif
我也发个开机电路,这是我经常用的一个电路,不光能开机,而且开机后,按键还能当正常的按键使用,费话不多 ...
收了,去试试看效果~ 强帖留标记! 好电路。 受教了 好好研究研究 MARK 学习一下,单键开关电路 MARK!一直想做个这样的! 留着以后用 这么多,太好了,做个标记啊! 路过,学习一下 MARK.去试下。 做个记号先 有用,mark mark{:biggrin:}{:biggrin:} 单键开关机电路 记号! 可以做个逻辑:
1.开机键同时给MCU供电;
2.开机后MCU自己保持供电;
3.掉电MCU监控按键,自己掉电。
nice啊!!!
我们做一般用睡眠,1u左右电流,不过前提是外围也可低功耗。
这个不错,作为初学者我以前都是自锁开关直接关电源……
页:
1
[2]