找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2420|回复: 9
收起左侧

(有意思)单片机控制关机后偶尔会重启

[复制链接]
ID:913564 发表于 2021-4-28 15:08 | 显示全部楼层 |阅读模式
P5.5开关读取状态   读取到关机控制P5.4 RST关机,但是偶尔出现重启的现象,自己控制不好,只能来求助大神了。哪位知道为什么?
回复

使用道具 举报

ID:155507 发表于 2021-4-28 17:18 | 显示全部楼层
问题描述太少,不好贸然回答

这种问题最好是电路和程序一起发上来,不然就是"开局一句话,过程全靠猜"
回复

使用道具 举报

ID:684049 发表于 2021-4-28 17:27 | 显示全部楼层
程序和硬件都可能,不一定哪里问题。最好提供一下程序和原理图
回复

使用道具 举报

ID:159060 发表于 2021-4-28 20:01 | 显示全部楼层
这可能是单片机关机时,电源电压下降慢,单片机发生复位,重新开机
回复

使用道具 举报

ID:913564 发表于 2021-4-29 10:20 | 显示全部楼层
sbit  IO_buzz = P1^6;
xdata unsigned int       bpdel=0; ///蜂鸣器延时变量
xdata unsigned int       exbpdel=0; ///外部报警灯蜂鸣器延时变量

bdata unsigned char         bcon=0  ;
sbit       bcon4    =        bcon^3 ;
sbit       stbit    =        bcon^4 ;
sbit       bpbit    =        bcon^5 ;
sbit       exstbit    =      bcon^6 ;
sbit       exbpbit    =      bcon^7 ;


void int_t1(void) interrupt 1
{
        if(P55 = 0)//如果关机键按下
        {
         bcon4 = 1;
        }
        if(bcon4)
        {
                if(stbit)
                {
                                bpdel--;
                                if(bpdel==0)
                                {
                                        bpdel = 10; ///间歇鸣叫
                                        bpbit = ~bpbit;
                                        IO_buzz = bpbit;
                                        if(IO_buzz){P54 = 0;}//鸣叫结束关机  RST拉低
                                        else {bpdel = 150;}
                                                       
                                }
                }
                else
                {
                                stbit = 1;
                                bpdel = 80;
                                IO_buzz = bpbit = 0;
                }                                               
        }
}
回复

使用道具 举报

ID:913564 发表于 2021-4-29 10:20 | 显示全部楼层
sbit  IO_buzz = P1^6;
xdata unsigned int       bpdel=0; ///蜂鸣器延时变量
xdata unsigned int       exbpdel=0; ///外部报警灯蜂鸣器延时变量

bdata unsigned char         bcon=0  ;
sbit       bcon4    =        bcon^3 ;
sbit       stbit    =        bcon^4 ;
sbit       bpbit    =        bcon^5 ;
sbit       exstbit    =      bcon^6 ;
sbit       exbpbit    =      bcon^7 ;


void int_t1(void) interrupt 1
{
        if(P55 = 0)//如果关机键按下
        {
         bcon4 = 1;
        }
        if(bcon4)
        {
                if(stbit)
                {
                                bpdel--;
                                if(bpdel==0)
                                {
                                        bpdel = 10; ///间歇鸣叫
                                        bpbit = ~bpbit;
                                        IO_buzz = bpbit;
                                        if(IO_buzz){P54 = 0;}//鸣叫结束关机  RST拉低
                                        else {bpdel = 150;}
                                                       
                                }
                }
                else
                {
                                stbit = 1;
                                bpdel = 80;
                                IO_buzz = bpbit = 0;
                }                                               
        }
}
回复

使用道具 举报

ID:913564 发表于 2021-4-29 10:25 | 显示全部楼层
C:\Users\Public\Pictures\Sample Pictures\111
回复

使用道具 举报

ID:913564 发表于 2021-4-29 10:32 | 显示全部楼层
不知道怎么发图片,分享在网盘:https://pan.baidu.com/s/1YktEp8JeOGix0x780NCGlw
提取码:1m7r
回复

使用道具 举报

ID:913564 发表于 2021-4-29 10:43 | 显示全部楼层
只有长按才能关机
回复

使用道具 举报

ID:879348 发表于 2021-4-29 11:13 | 显示全部楼层
检查按键代码
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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