标题: 单片机程序 为啥充电部分数码管数据没有实时刷新 [打印本页]

作者: 1481509156    时间: 2024-12-21 10:29
标题: 单片机程序 为啥充电部分数码管数据没有实时刷新
大佬们帮忙看下数码管显示部分,其中开机工作时可以正常刷新数据,但是我充电时没法实时刷新,是为啥?

else
        {
            CLRWDT();
            //Timer0_INIT();
            des_sever(); //接收数据
            //if(RX_LVD==0x66){POWER=0;}
            if(tc_flag==1)
            {
                if(RX==0)        //充电拔电后关机休眠
                {
                    rx_cnt++;
                    if(rx_cnt>50){K1_SDA=0;PIN9=1;PIN10=1;rx_cnt=0;tc_flag=0;POWER=0;}
                }
                else{rx_cnt=0;}
            }
            
               
               
                    if(RX_NUM==0x88)//充电区域 ,档位不显示,电量闪烁
                    {
                            CLRWDT();
                            T0MD   = 0X00;
                            tc_flag=1;
                            //lvd_h1=lvd;
                            //lvd_h2=lvd_h1+1;
                            if(RX_LVD==0x00)
                            {
                                LED_SCAN(0);
                                LED_SCAN1(6);   
                            }
                            else
                            {
                                  des_sever();
                                  if(RX_LVD==0xE0)//满电
                                {
                                    LED_SCAN(0);
                                       LED_SCAN1(5);
                                       CH_cnt=0;
                                
                                    //tc_flag=1;
                                }
                                else
                                {
                                    if(RX_LVD==0x60)//4格3.9-4.2
                                    {
                                         if(CH_cnt<20000){lvd=4;}
                                         else if(CH_cnt<40000){lvd=5;}
                                         else{CH_cnt=0;}
                                    }
                                    else
                                    {
                                        if(RX_LVD==0xA0)//3格3.7-3.9
                                        {
                                            if(CH_cnt<20000){lvd=3;}
                                            else if(CH_cnt<40000){lvd=4;}
                                            else{CH_cnt=0;}
                                        }
                                        else
                                        {
                                            if(RX_LVD==0x20)//2格3.5-3.7
                                            {
                                                if(CH_cnt<20000){lvd=2;}
                                                else if(CH_cnt<40000){lvd=3;}
                                                else{CH_cnt=0;}
                                            }
                                            else
                                            {
                                                if(RX_LVD==0xC0)//1格,闪烁3.3-3.5
                                                {
                                                    if(CH_cnt<20000){lvd=1;}
                                                    else if(CH_cnt<40000){lvd=2;}
                                                    else{CH_cnt=0;}
                                                }
                                                else
                                                {
                                                    if(RX_LVD==0x40)//1格电,闪烁对应3.0-3.3V
                                                    {
                                                        if(CH_cnt<20000){lvd=1;}
                                                        else if(CH_cnt<40000){lvd=2;}
                                                        else{CH_cnt=0;}
                                                    }
                                                    else
                                                    {
                                                        if(RX_LVD==0x80) //0格电3.0以下
                                                        {
                                                            if(CH_cnt<20000){lvd=0;}
                                                            else if(CH_cnt<40000){lvd=1;}
                                                            else{CH_cnt=0;}
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    
                                    }
                                }
                                
                                LED_SCAN(temp);
                                LED_SCAN1(lvd);
                                

                            }
                           
                    }
                    else                //开机工作区域
                    {
                            //des_sever();
                            CLRWDT();
                                    
                                    
                                     if(RX_NUM==0xF0)
                                        {
                                            SOP_H1=10000;
                                            PIN9=PIN10=1;
                                            POWER=0;K1_SDA=0;
                                        }
                                        else
                                        {
                                            
                                            if(RX_NUM==0x00 || RX_LVD==0x00)
                                            {
                                                temp=0;lvd=6;PIN9=PIN10=1;
                                            }
                                            else
                                            {
                                                if(RX_LVD==0x80)
                                                {
                                                    PWM_H1=0;
                                                    if(PWM_C<3)//低电量闪烁三次关机
                                                    {
                                                        if(PWM_H2<12000){lvd=6;}
                                                        else if(PWM_H2<24000){lvd=7;}
                                                        else{PWM_H2=0;PWM_C++;}
                                                    }
                                                    else
                                                    {
                                                        POWER=0;K1_SDA=0;
                                                    }
                                                   
                                                }
                                                else
                                                {
                                                    PWM_H2=0;PWM_C=0;        //低电量闪烁显示
                                                    if(RX_LVD==0x40)
                                                    {
                                                        if(PWM_H1<12000){lvd=0;}
                                                        else if(PWM_H1<24000){lvd=1;}
                                                        else{PWM_H1=0;}
                                                    }
                                                    else
                                                    {
                                                        PWM_H1=0;PWM_H2=0;
                                                    }
                                                }
                                            }
                                        }   
                                    LED_SCAN(temp);
                                    LED_SCAN1(lvd);   
                                    
                    }
                    
        }

作者: man1234567    时间: 2024-12-24 14:59
没有电路图和全套程序无法猜。
如果此程序某时刻能正常工作,那就找其他触发条件。
作者: 1481509156    时间: 2024-12-27 10:54
man1234567 发表于 2024-12-24 14:59
没有电路图和全套程序无法猜。
如果此程序某时刻能正常工作,那就找其他触发条件。

谢谢。已经解决了,是因为我定时器分频那里冲突了,充电部分和工作部分用的都是同一个定时器。需要错开才能分别使用,不然有一边是没法显示的




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1