小坤 发表于 2024-11-16 08:35:16

vb2002 发表于 2024-11-15 12:04
这个是完整的电路图.

贴出完整版的电路,包括你的开关怎么控制的 电源

vb2002 发表于 2024-11-16 10:48:46

小坤 发表于 2024-11-16 08:35
贴出完整版的电路,包括你的开关怎么控制的 电源

22楼,有电路图,
23楼有代码,
麻烦你了

小坤 发表于 2024-11-16 13:08:51

这样的吗?

vb2002 发表于 2024-11-16 13:13:26

小坤 发表于 2024-11-16 13:08
这样的吗?

对,是的,
是机械开关.
通过开关通断的时间. 判定P32高低电平
然后通过P32高低电平选择不同的操作

vb2002 发表于 2024-11-16 14:30:07

晓飛飛 发表于 2024-11-14 21:09
单片机上电时判断电容有电就换下一挡,没电就认为是冷开机,调用恢复关机前存储的状态,是这个想法吧,我 ...

我加了肖特基二极管了
电压也正常了
但是io口读不到高低电平了
通过开关电源 能看到电压的变化.4.98v至0.3v
但就是读不到高低电平


小坤 发表于 2024-11-16 14:40:55

vb2002 发表于 2024-11-16 14:30
我加了肖特基二极管了
电压也正常了
但是io口读不到高低电平了


试试

vb2002 发表于 2024-11-16 14:52:16

小坤 发表于 2024-11-16 14:40
试试

试了
P32读出了一直是高电平
我用万用表测了电压,IO和gnd的电压 0.3--4,95变化

vb2002 发表于 2024-11-16 14:54:22

小坤 发表于 2024-11-16 14:40
试试

有点懂了.
万用表测出来.电压必须接近0.00v才能低电平
但是串联电阻和电容...电压到不了0.00v
只能到0.3v

小坤 发表于 2024-11-16 14:55:57

我验证了可以检测到高低电平 时间大概2秒


#include <STC32G.H>

void sys_init(void);

int main(void)
{
        static long n = 0;
       
        sys_init();
        while(1)
        {
                if(P16 == 0)                //检测到的初始电平为低高阻检测
                {
                        P20 = 0;
                        P1M0 = 0XFF;
                        P1M1 = 0X00;                //推挽 充电
                        while(!P16);
                        P21 = 0;                        //满;
                }
                else                                //检测到的初始电平为高
                {
                        P20 = 1;       
                        n++;
                        if(n>1000000)                //定时把电容充满 下次做准备
                        {
                                n= 0;
                                P1M0 = 0XFF;
                                P1M1 = 0X00;
                                while(!P16);
                                P21 = 0;
                        }
                }
        }
}

void sys_init(void)
{
        P3M0 = P3M1 = 0X00;
        P2M0 = P2M1 = 0X00;
        P35 = 0;
}

vb2002 发表于 2024-11-16 14:59:26

小坤 发表于 2024-11-16 14:55
我验证了可以检测到高低电平 时间大概2秒

超过两秒 ,判断为 低电平
没超过两秒,判断为高电平吗?
页: 1 2 3 4 [5] 6 7
查看完整版本: (已解决)刚解决一个问题,又来新的问题.关于电容充电时间