找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1789|回复: 8
收起左侧

MCU一键开关机电路,为什么只能控制开机,不能控制关机,求解

[复制链接]
ID:858009 发表于 2021-11-4 16:57 | 显示全部楼层 |阅读模式
1.png
MCU代码
#include "..\Public\CH552.H"                                                   
#include "..\Public\Debug.H"
#include "GPIO.H"
#include "stdio.h"
#include <string.h>

sbit LED1 = P1^5;
sbit KEY1 = P1^4;

void main( )
{               
    while(1)
                {
                        if(KEY1==0)
                        {                                
                        LED1 = 0;
                        }
                }
}

回复

使用道具 举报

ID:725110 发表于 2021-11-4 18:59 | 显示全部楼层
你这代码逻辑就只有开机啊
回复

使用道具 举报

ID:824490 发表于 2021-11-4 20:32 | 显示全部楼层
http://www.51hei.com/bbs/dpj-203511-1.html
给你参考一下现成的代码
回复

使用道具 举报

ID:584814 发表于 2021-11-4 21:18 | 显示全部楼层
void main( )
{               
    while(1)
                {
                        if(KEY1==0)
                        {                                
                        LED1 = ~ LED1 ;
                        }
                }
}
回复

使用道具 举报

ID:624769 发表于 2021-11-4 23:06 | 显示全部楼层
开机靠电路,关机靠程序。你要检测GPIO-IN 得到低电平后,等GPIO-IN 恢复高电平之后,GPIO-OUT 给低电平。不然会在释放按键的时候因为按键的抖动,变成重启。
回复

使用道具 举报

ID:230742 发表于 2021-11-5 03:53 | 显示全部楼层
我感觉不如装一个555或者4013简单。
回复

使用道具 举报

ID:592807 发表于 2021-11-5 09:56 | 显示全部楼层
51单片机不是STM32,要想检测电平要先拉高,也就是KEY1 =1 ;然后才能if(KEY1 ==0)判断,你程序上就有漏洞



回复

使用道具 举报

ID:17204 发表于 2021-11-18 17:02 | 显示全部楼层
楼主搞定了问题没,也在关注这个电路实用性能
回复

使用道具 举报

ID:624769 发表于 2021-11-18 17:11 | 显示全部楼层
szkalwa 发表于 2021-11-18 17:02
楼主搞定了问题没,也在关注这个电路实用性能

电路时可行的,但是要写程序,还占用两个IO口,电路还复杂,实用角度而言,其实,不如直接一个自锁开关实在。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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