Professional Documents
Culture Documents
Pic 16f877a LCD
Pic 16f877a LCD
Autores:
Fecha:
Descripcin:
Delay_ms(2000);
Lcd_Cmd(_LCD_CLEAR);
// Clear display
(1,POSICION)
(ABAJO,",tx
Lcd_Out(1,1,txt1);
// Write text in first row
Lcd_Out(2,2,txt2);
// Write text in second row
Delay_ms(2000);
/**************TEXTO MOVIL*************/
for(i1=0; i1<3; i1++) {
// Move text to the right 3 times
Lcd_Cmd(_LCD_SHIFT_RIGHT);
Move_Delay();
}
for(i1=0; i1<5; i1++) {
// Move text to the right 5 times
Lcd_Cmd(_LCD_SHIFT_LEFT);
Move_Delay();
}
}
void mFloatToString(float num, unsigned char num_dec) {
if(num<0)
{
num*=-1;
Vector_datos[0]=-3;
}
else
Vector_datos[0]=-16;
for(i=0;num>1;i++)
{
num=num/10;
ent++;
}
for(i=1;i<ent+num_dec+1;i++)
{
num*=10;
Vector_datos[i]=num;
num-=Vector_datos[i];
}
}
void mVisualizaResultadoLcd(void)
{ // Write text in second row
Delay_ms(1000);
Lcd_Cmd(_LCD_CLEAR);
Lcd_Out(1,1,"F1="); //Funcion de mikroC
for(i=0;i<ent+1;i++)
{
Lcd_Chr_Cp(Vector_datos[i]+48);
}
Lcd_Out_Cp(".");
for(i=ent+1;i<ent+dec+1;i++)
{
Lcd_Chr_Cp(Vector_datos[i]+48);
}
}
/******forma 2**********/
void mForma2(float num, unsigned char deci) {
Lcd_Out(2,1,"F2=");
if(num<0)
{
num=num*-1;
}
for(j=0;j<(dec);j++) //aux1
{
aux1=aux1*10;
}
numero=(num*aux1);
while(finalizar!=1)
{
coc=(long)(numero/(aux1));
if(coc>0)
{
i++;
}
else
{
finalizar=1;
}
aux1=aux1*10;
}
ent=i;
//aux2 para eliminar decimales
for(j2=0;j2<dec+(i-1);j2++)
{
aux2= aux2*10;
}
for(j2 =(dec+(i));j2>0;j2-- )
{
coc=(long )(numero/(aux2));
resultado=(long )(numero-((aux2)*coc));
aux2=(aux2/10);
Vector_datos[k]=(coc+48);
numero=resultado;
k++;
}
}
void mVisualizaResultadoLcd2(void)
{
for(j2=0; j2<=dec+ent; j2++)
{
if(num<0)
{
Lcd_chr_cp('-');
}
if(ent==0)
{
Lcd_chr_cp(46);
}
if(j2==ent)
{
Lcd_chr_cp(46);
}
Lcd_Chr_Cp(Vector_datos[j2]);
}
}