📄 led板显示程序.txt
字号:
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 + -