Está en la página 1de 3

//******** Funciones para la visualizacin de la informacin nmerica en la patalla LC

D *********
///////////////////////////////////////////////////////
//******************************************************************************
*******************
//******************************************************************************
*******************
//******************************************************************************
*******************
void conver_bcd (float g,unsigned int x, unsigned int y,unsigned int unidad,char
tipo){
unsigned char punto;
g=fabs(g);
int h;
switch (tipo)
{
case 'f':
if(g>=1000)punto=0;
if(g<1000&&g>=100)punto=1,g=g*10;
if(g<100&&g>=10)punto=2,g=g*100;
if(g<10&&g>=1e-3)punto=3,g=g*1000;
if(g<1e-3)punto=3,g=0;
bcd_cent=0,bcd_dec=0,bcd_unid=0,bcd_mil=0,bcd_mild=0;
while(g>=10000){
g= g-10000;
++bcd_mild;
}
while(g>=1000){
g= g-1000;
++bcd_mil;
}
while(g>=100){
g= g-100;
++bcd_cent;
}
while(g>=10){
g= g-10;
++bcd_dec;
}
bcd_unid=g;
GLCD_TextGoTo(x, y);
GLCD_SetSentidoCursor(Derecha);
GLCD_WriteCommand(0x42);
//comando de escritura
bcd_mil = bcd_mil+ 0x30;
GLCD_WriteChar(bcd_mil);
if(punto==3)GLCD_WriteChar(46);
bcd_cent = bcd_cent+0x30;
GLCD_WriteChar(bcd_cent);
if(punto==2)GLCD_WriteChar(46);
bcd_dec = bcd_dec+ 0x30;
GLCD_WriteChar(bcd_dec);
if(punto==1)GLCD_WriteChar(46);
bcd_unid = bcd_unid+ 0x30;
GLCD_WriteChar(bcd_unid);
break;
case 'i':
h=ceil(g);
if(h>=1000)punto=0;

if(h<1000&&h>=100)punto=1,h=h*10;
if(h<100&&h>=10)punto=2,h=h*100;
if(h<10&&h>=0)punto=3,h=h*1000;
bcd_cent=0,bcd_dec=0,bcd_unid=0,bcd_mil=0,bcd_mild=0;
while(h>=10000){
h= h-10000;
++bcd_mild;
}
while(h>=1000){
h= h-1000;
++bcd_mil;
}
while(h>=100){
h= h-100;
++bcd_cent;
}
while(h>=10){
h= h-10;
++bcd_dec;
}
bcd_unid=h;
GLCD_TextGoTo(x, y);
GLCD_SetSentidoCursor(Derecha);
GLCD_WriteCommand(0x42);
//comando de escritura
bcd_mil = bcd_mil+ 0x30;
GLCD_WriteChar(bcd_mil);
if(punto==3)GLCD_WriteChar(46);
bcd_cent = bcd_cent+0x30;
GLCD_WriteChar(bcd_cent);
if(punto==2)GLCD_WriteChar(46);
bcd_dec = bcd_dec+ 0x30;
GLCD_WriteChar(bcd_dec);
if(punto==1)GLCD_WriteChar(46);
bcd_unid = bcd_unid+ 0x30;
GLCD_WriteChar(bcd_unid);
break;
}
switch(unidad)
{
case 0x0:
mensajes_texto("Hz$",(x+5),y);
//String, X, Y
break;
case 0x1:
mensajes_texto("V$",(x+5),y); //String, X, Y
break;
case 0x2:
mensajes_texto("P$",(x+5),y); //String, X, Y
break;
case 0x3:
mensajes_texto("mS$",(x+5),y);
//String, X, Y
break;
case 0x4:
mensajes_texto("%$",(x+5),y); //String, X, Y
break;
case 0x5:
mensajes_texto("uS$",(x+5),y);
//String, X, Y

break;
case 0x6:
mensajes_texto("nS$",(x+5),y);
break;

//String, X, Y

}
}
//******************************************************************************
*******************
//******************************************************************************
*******************
//******************************************************************************
*******************
void bcd_int (int g){
bcd_cent=0,bcd_dec=0,bcd_unid=0,bcd_mil=0,bcd_mild=0;
g=fabs(g);
while(g>=10000){
g= g-10000;
++bcd_mild;
}
while(g>=1000){
g= g-1000;
++bcd_mil;
}
while(g>=100){
g= g-100;
++bcd_cent;
}
while(g>=10){
g= g-10;
++bcd_dec;
}
bcd_unid=g;
datosx[0]= bcd_mild+ 0x30;
datosx[1]= bcd_mil+ 0x30;
datosx[2]= bcd_cent+ 0x30;
datosx[3]= bcd_dec+ 0x30;
datosx[4]= bcd_unid+ 0x30;
datosx[5]= 36;
}

También podría gustarte