#include"ledshow.h"
#include"change.h"
#include"head.h"
unsigned char LedShow[8]={0};
unsigned int RANGE[8]={0,0,0,0,0,0,0,0};
void LEDshow(float Date) //LED显示
{
unsigned int i,a;
float temp;
unsigned int b_ad=4186;
unsigned char LED_TABLE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x7f,
0x89,0xbf,0xc7,0xff,
0x88,0x83,0xc6,0xa1}; //0-9 . 10
//H - L NULL 11-14
//ABCD 15-18
if(Change==1)
{
if(RANGE[0]!=10&&RANGE[4]!=10) //正数
{
temp= ((arrtoi(RANGE,0)-arrtoi(RANGE,4))/b_ad * Date+arrtoi(RANGE,4));
LedShow[0]=LED_TABLE[(unsigned int)temp /1000];
LedShow[1]=LED_TABLE[(unsigned int)temp /100%10];
LedShow[2]=LED_TABLE[(unsigned int)temp /10%10];
LedShow[3]=LED_TABLE[(unsigned int)temp %10];
}
if(RANGE[0]==10&&RANGE[4]==10) //全附属
{
LedShow[0]=LED_TABLE[12];
if(rg==10&&(unsigned int)((arrtoi(RANGE,5)-(arrtoi(RANGE,5)-arrtoi(RANGE,1))/b_ad *Date))<10)
{
temp=((arrtoi(RANGE,5)-(arrtoi(RANGE,5)-arrtoi(RANGE,1))/b_ad *Date)*100);
LedShow[1]=LED_TABLE[(unsigned int) temp /100]&0x7f;
LedShow[2]=LED_TABLE[(unsigned int)temp /10%10];
LedShow[3]=LED_TABLE[(unsigned int) temp%10];
}
else if(rg==100&&(unsigned int)((arrtoi(RANGE,5)-(arrtoi(RANGE,5)-arrtoi(RANGE,1))/b_ad *Date)<100))
{
temp=(arrtoi(RANGE,5)-(arrtoi(RANGE,5)-arrtoi(RANGE,1))/b_ad *Date)*10;
if((unsigned int)(arrtoi(RANGE,5)-((arrtoi(RANGE,5)-arrtoi(RANGE,1))/b_ad *Date))<10)
{
LedShow[1]=LED_TABLE[0];
LedShow[2]=LED_TABLE[(unsigned int)temp /10]&0x7f;
LedShow[3]=LED_TABLE[(unsigned int)temp %10];
}
else
{
LedShow[1]=LED_TABLE[(unsigned int)temp /100];
LedShow[2]=LED_TABLE[(unsigned int)temp /10%10]&0x7f;
LedShow[3]=LED_TABLE[(unsigned int)temp %10];
}
}
else
{
temp= arrtoi(RANGE,5)-(arrtoi(RANGE,5)-arrtoi(RANGE,1))/b_ad *Date;
LedShow[1]=LED_TABLE[(unsigned int)temp /100];
LedShow[2]=LED_TABLE[(unsigned int)temp /10%10];
LedShow[3]=LED_TABLE[(unsigned int)temp %10];
}
}
if(RANGE[0]!=10&&RANGE[4]==10) //一正一负
{
if(RANGE[0]!=10&&RANGE[4]==10)
{
if(Date>(arrtoi(RANGE,5)/(arrtoi(RANGE,0)+arrtoi(RANGE,5))*b_ad)) //大于0的部分
{
temp=(arrtoi(RANGE,0)+arrtoi(RANGE,5))/b_ad * Date-arrtoi(RANGE,5);
LedShow[0]=LED_TABLE[(unsigned int)temp /1000];
LedShow[1]=LED_TABLE[(unsigned int)temp /100%10];
LedShow[2]=LED_TABLE[(unsigned int)temp /10%10];
LedShow[3]=LED_TABLE[(unsigned int)temp %10];
}
else //<0的部分
{
temp= arrtoi(RANGE,5)-(arrtoi(RANGE,0)+arrtoi(RANGE,5))/b_ad * Date;
LedShow[0]=LED_TABLE[12];
LedShow[1]=LED_TABLE[(unsigned int)temp /100];
LedShow[2]=LED_TABLE[(unsigned int)temp /10%10];
LedShow[3]=LED_TABLE[(unsigned int)temp %10];
}
}
}
LedShow[4]=LED_TABLE[rg/1000];
LedShow[5]=LED_TABLE[rg/100%10];
LedShow[6]=LED_TABLE[rg/10%10];
LedShow[7]=LED_TABLE[rg%10];
}
if(Change==3) //标度变换
{
LedShow[0]=LED_TABLE[0]; //标度 0-5v
LedShow[1]=LED_TABLE[(unsigned int )Date/800]&0x7f;
LedShow[2]=LED_TABLE[(unsigned int )Date*10/800%10];
LedShow[3]=LED_TABLE[(unsigned int )Date*100/800%10];
LedShow[4]=LED_TABLE[(unsigned int )Date/1000];
LedShow[5]=LED_TABLE[(unsigned int )Date/100%10];
LedShow[6]=LED_TABLE[(unsigned int )Date/10%10];
LedShow[7]=LED_TABLE[(unsigned int )Date%10];
}
if(Change==2) //改变范围
{
if(RANGE[0]==10)
{
a=1;
LedShow[0]=LED_TABLE[12];
}
else
{
a=0;
}
for(i=a;i<4;i++)
{
LedShow[i]=LED_TABLE[(unsigned int)RANGE[i]];
}
if(RANGE[4]==10)
{
a=5;
LedShow[4]=LED_TABLE[12];
}
else
{
a=4;
}
for(i=a;i<8;i++)
{
LedShow[i]=LED_TABLE[(unsigned int)RANGE[i]];
}
}
if(Change==5)
{
LedShow[0]=LED_TABLE[15];//a
LedShow[1]=LED_TABLE[13];//l
LedShow[2]=LED_TABLE[12];//-
LedShow[3]=LED_TABLE[11];//H
for(i=4;i<8;i++)
{
LedShow[i]=LED_TABLE[KEYBORD_H[i-4]];
}
if(KEYBORD_H[0]==10)
{
LedShow[4]=LED_TABLE[12];
}
}
if(Change==4)
{
LedShow[0]=LED_TABLE[15];//a
LedShow[1]=LED_TABLE[13];//l
LedShow[2]=LED_TABLE[12];//-
LedShow[3]=LED_TABLE[13];//L
for(i=4;i<8;i++)
{
LedShow[i]=LED_TABLE[KEYBORD_L[i-4]];
}
if(KEYBORD_L[0]==10)
{
LedShow[4]=LED_TABLE[12];
}
}
if(Change==6)
{
LedShow[0]=LED_TABLE[13];//L
LedShow[1]=LED_TABLE[12];//-
LedShow[2]=LED_TABLE[12];//-
LedShow[3]=LED_TABLE[17];//C
LedShow[4]=LED_TABLE[rg/1000];
LedShow[5]=LED_TABLE[rg/100%10];
LedShow[6]=LED_TABLE[rg/10%10];
LedShow[7]=LED_TABLE[rg%10];
}
}