Autor Tema: Rutinas simplificadas para la pantalla lcd en c  (Leído 1614 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado camachoc

  • PIC10
  • *
  • Mensajes: 8
Rutinas simplificadas para la pantalla lcd en c
« en: 08 de Agosto de 2011, 16:39:44 »
////registros del puerto d 16f877a   
#bit rs=0x08.0///PIN_D0
#bit rw=0x08.1//PIN_D1
#bit e=0x08.2///PIN_D2
#bit d7=0x08.7//PIN_D7
#bit d6=0x08.6//PIN_D6
#bit d5=0x08.5//PIN_D5
#bit d4=0x08.4//PIN_D4
/*
#bit rs=0xf83.0////registros del puerto d 18f2220   ////checar datasheet
#bit rw=0xf83.1
#bit e=0xf83.2
#bit d7=0xf83.7
#bit d6=0xf83.6
#bit d5=0xf83.5
#bit d4=0xf83.4
*/
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void inicializar_lcd();
void putc(char a);
void send_dato(int a,int1 band);
void gotoxy(int x, int y);
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void inicializar_lcd()
{
int x;/////variable para usarse en el contador del for
set_tris_d(0b00001000);/////establesco los pines del puerto d como salidas
rs=rw=e=d7=0;//inicializao los pines de control a 0
delay_ms(15);//retardo requerido por la lcd para establecer sus niveles de voltaje
for(x=0;x<3;x++)//envia tres veces el comando para inicializar la lcd
  {
 d4=d5=1;/////
 e=1; delay_us(5);
 e=0; delay_ms(5);
  }
 d4=0;
 e=1; delay_us(5);
 e=0;
 d7=0;d4=d5=d6=0;
 e=1; delay_us(5);
 d5=d4=e=0;d7=d6=1;
 e=1; delay_us(5);
 e=0;
 send_dato(0b00101100,0);
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void send_dato(int a,int1 band=1)
{
rs=band;
d7=bit_test(a,7);
d6=bit_test(a,6);
d5=bit_test(a,5);
d4=bit_test(a,4);
e=1;delay_us(5);
e=0;d7=bit_test(a,3);
d6=bit_test(a,2);
d5=bit_test(a,1);
d4=bit_test(a,0);
e=1;delay_us(5);
e=0;rs=0;
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void putc(char a)
{
send_dato(a,1);
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void gotoxy(int x, int y)
{
if(y==1)
send_dato(0b10000000|(x-1),0);
else if(y==2)
send_dato(0b10000000|(63+x),0);
else if(y==3)
send_dato(0b10000000|(19+x),0);
else if(y==4)
send_dato(0b10000000|(84+x),0);
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Desconectado camachoc

  • PIC10
  • *
  • Mensajes: 8
Re: Rutinas simplificadas para la pantalla lcd en c
« Respuesta #1 en: 08 de Agosto de 2011, 16:44:19 »
aqui les comparto esta rutina mas simplificada para el manejo de la pantaya lcd, si quieren usar un puerto diferente al puerto D, verifiquen la direccion del registro del puerto que van a utilizar y establecer los pines como salida del puerto correspondiente. Si tiene sugerencias de otras rutinas mas eficientes y legibles favor de compartir.....
 Saludos desde Sinaloa Mexico....


 

anything