⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 led板显示程序.txt

📁 LED板显示程序 LED板显示程序
💻 TXT
📖 第 1 页 / 共 2 页
字号:
            disp_led2=Tab_cathode[bcd2];//第二个数码管显示的值
            disp_led3=Tab_cathode[bcd3];//符号
            disp_led4=Tab_cathode[bcd4];//消隐
            disp_led5=Tab_cathode[bcd5];//消隐
            disp_led6=Tab_cathode[num_axis];
        }
        else if(d>-1000&&d<=-100)
        {
            abs_d=abs(d);
            bcd5=10;
            bcd4=NEGATIVE;
            bcd3=abs_d/100;
            bcd2=(abs_d%100)/10;
            bcd1=(abs_d%100)%10;
            disp_led1=Tab_cathode[bcd1];//第一个数码管显示的值
            disp_led2=Tab_cathode[bcd2];//第二个数码管显示的值
            disp_led3=Tab_cathode[bcd3];//符号
            disp_led4=Tab_cathode[bcd4];//消隐
            disp_led5=Tab_cathode[bcd5];//消隐
            disp_led6=Tab_cathode[num_axis];
        }
        else if(d>-10000&&d<=-1000)
        {
            abs_d=abs(d);
            bcd5=NEGATIVE;
            bcd4=abs_d/1000;
            bcd3=(abs_d%1000)/100;
            bcd2=((abs_d%1000)%100)/10;
            bcd1=((abs_d%1000)%100)%10;
            disp_led1=Tab_cathode[bcd1];//第一个数码管显示的值
            disp_led2=Tab_cathode[bcd2];//第二个数码管显示的值
            disp_led3=Tab_cathode[bcd3];//符号
            disp_led4=Tab_cathode[bcd4];//消隐
            disp_led5=Tab_cathode[bcd5];//消隐
            disp_led6=Tab_cathode[num_axis];
        }
    }
    else  //如果轴数为正数
    {
        if(d<10)
        {
            bcd1=d;
            bcd2=10;
            bcd3=10;
            bcd4=10;
            bcd5=10;
            disp_led1=Tab_cathode[bcd1];//第一个数码管显示的值
            disp_led2=Tab_cathode[bcd2];//符号
            disp_led3=Tab_cathode[bcd3];//消隐
            disp_led4=Tab_cathode[bcd4];//消隐
            disp_led5=Tab_cathode[bcd5];//消隐
            disp_led6=Tab_cathode[num_axis];
        }
        else if(d<100&&d>=10)
        {            
            bcd5=10;
            bcd4=10;
            bcd3=10;
            bcd2=d/10;
            bcd1=d%10;
            disp_led1=Tab_cathode[bcd1];//第一个数码管显示的值
            disp_led2=Tab_cathode[bcd2];//第二个数码管显示的值
            disp_led3=Tab_cathode[bcd3];//符号
            disp_led4=Tab_cathode[bcd4];//消隐
            disp_led5=Tab_cathode[bcd5];//消隐
            disp_led6=Tab_cathode[num_axis];
        }
        else if(d<1000&&d>=100)
        {            
            bcd5=10;
            bcd4=10;
            bcd3=d/100;
            bcd2=(d%100)/10;
            bcd1=(d%100)%10;
            disp_led1=Tab_cathode[bcd1];//第一个数码管显示的值
            disp_led2=Tab_cathode[bcd2];//第二个数码管显示的值
            disp_led3=Tab_cathode[bcd3];//符号
            disp_led4=Tab_cathode[bcd4];//消隐
            disp_led5=Tab_cathode[bcd5];//消隐
            disp_led6=Tab_cathode[num_axis];
        }
        else if(d<10000&&d>=1000)
        {
            bcd5=10;
            bcd4=d/1000;
            bcd3=(d%1000)/100;
            bcd2=((d%1000)%100)/10;
            bcd1=((d%1000)%100)%10;
            disp_led1=Tab_cathode[bcd1];//第一个数码管显示的值
            disp_led2=Tab_cathode[bcd2];//第二个数码管显示的值
            disp_led3=Tab_cathode[bcd3];//符号
            disp_led4=Tab_cathode[bcd4];//消隐
            disp_led5=Tab_cathode[bcd5];//消隐
            disp_led6=Tab_cathode[num_axis];
        }
    }
}

//LED显示程序
void display(void)
{
    A5=0;
    A4=1;
    A3=1;
    A2=1;
    A1=1;
    A0=1;
    P1=disp_led1;
    A5=0;
    delayXms(5);

    A5=1;
    A4=0;//选择最左边的数码管
    A3=1;
    A2=1;
    A1=1;
    A0=1;
    P1=disp_led2;
    A5=1;
    delayXms(5);

    A5=1;
    A4=1;
    A3=0;//选择从左面数第二个数码管
    A2=1;
    A1=1;
    A0=1;
    P1=disp_led3;
    A5=1;
    delayXms(5);
    
    A5=1;
    A4=1;
    A3=1;
    A2=0;//选择从左面数第三个数码管
    A1=1;
    A0=1;
    P1=disp_led4;
    A5=1;
    delayXms(5);
    
    A5=1;
    A4=1;
    A3=1;
    A2=1;
    A1=0;//选择从左面数第四个数码管
    A0=1;
    P1=disp_led5;
    A5=1;
    delayXms(5);
    
    A5=1;    
    A4=1;
    A3=1;
    A2=1;
    A1=1;
    A0=0;//选择从左面数第五个数码管
    P1=disp_led6;
    A5=1;
    delayXms(5);
}    

//主函数入口
void main(void)
{   
    int i=0,j=0;
    for(i=0;i<10;i++) //显示器自检程序显示"00000--99999"
    {
        disp_led1=Tab_cathode[i];
        disp_led2=Tab_cathode[i];
        disp_led3=Tab_cathode[i];
        disp_led4=Tab_cathode[i];
        disp_led5=Tab_cathode[i];
        disp_led6=Tab_cathode[i];
        for(j=0;j<20;j++)
        {
            display();
        }
        //先让数码管灭了,在送下面的数据
        disp_led1=Tab_cathode[10];
        disp_led2=Tab_cathode[10];
        disp_led3=Tab_cathode[10];
        disp_led4=Tab_cathode[10];
        disp_led5=Tab_cathode[10];
        disp_led6=Tab_cathode[10];
        display();
        delayXms(200);
    }
    init_timer();
    init_serialcomm();
    EA=1;
    TR0=1;
    ES=1;
    for(;;)
    {
        if(receive_flag==1)
        {
            if(sec_timer_flag==1)
            {
                sec_timer_flag=0;
                if(error_num==0) //data receive ok
                {
                    if(switch_flag)
                    {
                    switch_flag=~switch_flag;
                    num_axis=1;
                     seperate_bcd(axis1_num);
                     }
                     else 
                     {
                     switch_flag=~switch_flag;
                    num_axis=2;
                     seperate_bcd(axis2_num);
                     }
                 }
                 else
                 {
                     if(error_num==1)     //begin error
                     {
                            disp_led6=Tab_cathode[10];
                             disp_led5=Tab_cathode[10];
                             disp_led4=Tab_cathode[1];
                            disp_led3=Tab_cathode[1];
                            disp_led2=Tab_cathode[1];
                            disp_led1=Tab_cathode[1];
                            
                        }
                        else if(error_num==2) //last error
                        {
                            disp_led6=Tab_cathode[10];
                            disp_led5=Tab_cathode[10];
                             disp_led4=Tab_cathode[2];
                            disp_led3=Tab_cathode[2];
                            disp_led2=Tab_cathode[2];
                            disp_led1=Tab_cathode[2];
                        }
                        else if(error_num==3) //function error
                        {
                            disp_led6=Tab_cathode[10];
                            disp_led5=Tab_cathode[10];
                             disp_led4=Tab_cathode[3];
                            disp_led3=Tab_cathode[3];
                            disp_led2=Tab_cathode[3];
                            disp_led1=Tab_cathode[3];
                        }    
                   }
                }
           } 
            else 
           {
            if(sec_timer_flag==1)
            {
                sec_timer_flag=0;
                if(switch_temp_flag)
                {
                        switch_temp_flag=~switch_temp_flag;
                        disp_led6=Tab_cathode[11];
                        disp_led5=Tab_cathode[11];//显示"- - - - -"    
                        disp_led4=Tab_cathode[11];
                        disp_led3=Tab_cathode[11];
                        disp_led2=Tab_cathode[11];
                        disp_led1=Tab_cathode[11];
                }
                else
                {
                        switch_temp_flag=~switch_temp_flag;
                        disp_led6=Tab_cathode[10];
                        disp_led5=Tab_cathode[10];//显示"          "    
                        disp_led4=Tab_cathode[10];
                        disp_led3=Tab_cathode[10];
                        disp_led2=Tab_cathode[10];
                        disp_led1=Tab_cathode[10];
                }
            }
        }
         display();
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -