找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 535|回复: 2
打印 上一主题 下一主题
收起左侧

单片机程序 为啥充电部分数码管数据没有实时刷新

[复制链接]
跳转到指定楼层
楼主
ID:1125252 发表于 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);   
                                    
                    }
                    
        }
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:584814 发表于 2024-12-24 14:59 | 只看该作者
没有电路图和全套程序无法猜。
如果此程序某时刻能正常工作,那就找其他触发条件。
回复

使用道具 举报

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

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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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