Autor Tema: PIC18F2550 LCD 2x16 por que tengo que poner esta linea ?  (Leído 2679 veces)

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

Desconectado halowin

  • PIC16
  • ***
  • Mensajes: 151
PIC18F2550 LCD 2x16 por que tengo que poner esta linea ?
« en: 02 de Marzo de 2014, 15:35:44 »
Hola, he estado configurando un lcd 2x16 en mikroc por el PORTB, y no me funcionaba haciendo las mismas conexiones que he hecho siempre con  pic 16f---; hasta que he visto un ejemplo en el que lo unico que me variaba era esta linea:

Código: [Seleccionar]
CMCON = 0x07; // Disable comparators

que no entiendo porque hay que ponerle ese valor, si pongo 0 tambien funciona, la cosa es que lo he visto en varios sitios.

Código: [Seleccionar]
// Conexiones del módulo LCD a 4bits por PORTB
sbit LCD_RS at RB7_bit;
sbit LCD_EN at RB6_bit;

sbit LCD_D4 at RB5_bit;
sbit LCD_D5 at RB4_bit;
sbit LCD_D6 at RB3_bit;
sbit LCD_D7 at RB2_bit;

sbit LCD_RS_Direction at TRISB7_bit;
sbit LCD_EN_Direction at TRISB6_bit;

sbit LCD_D4_Direction at TRISB5_bit;
sbit LCD_D5_Direction at TRISB4_bit;
sbit LCD_D6_Direction at TRISB3_bit;
sbit LCD_D7_Direction at TRISB2_bit;
// Final de las conexiones del módulo LCD


void main() {
   //oscilador interno a 8 MHz
   OSCCON = 0x7F;
   //while (OSCCON.IOFS=0){};         //esto no se si es muy necesario en este PIC
  
  
   CMCON = 0x07;    // Disable comparators
   ADCON1 = 0x0F;
  
  
   Lcd_Init();                       // Inicialización del visualizador LCD
   delay_ms(300);

   Lcd_Cmd(_LCD_CURSOR_OFF);         // Comando LCD (apagar el cursor)
   Lcd_Cmd(_LCD_CLEAR);              // Comando LCD (borrar el LCD)

   Lcd_Out(1,1,"Hola lcd.");        //Lcd_Out(fila,columna)


   while(1){}
    
}



« Última modificación: 02 de Marzo de 2014, 16:14:08 por halowin »

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: PIC18F2550 LCD 2x16 por que tengo que poner esta linea ?
« Respuesta #1 en: 02 de Marzo de 2014, 16:24:17 »
El datasheet tiene la respuesta.

Sección 22.0. Ahí explica que el valor 0x07 es el que apaga todos los comparadores.

Saludos.
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Desconectado ppyote

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 929
Re: PIC18F2550 LCD 2x16 por que tengo que poner esta linea ?
« Respuesta #2 en: 02 de Marzo de 2014, 20:54:47 »
te pondre 2 imagenes del datasheet del 16F628A que es el que ahora tengo a mano, lo veras claramente por que hay que incluir esa linea...

PPyote... siempre estareis en mi corazon.... Te quiero Hermano...

Desconectado halowin

  • PIC16
  • ***
  • Mensajes: 151
Re: PIC18F2550 LCD 2x16 por que tengo que poner esta linea ?
« Respuesta #3 en: 03 de Marzo de 2014, 04:54:31 »
te pondre 2 imagenes del datasheet del 16F628A que es el que ahora tengo a mano, lo veras claramente por que hay que incluir esa linea...



Gracias ppyote por tu ayuda.

La cosa es que si comento esa linea tambien funciona !!!!.

Saludos

Desconectado ppyote

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 929
Re: PIC18F2550 LCD 2x16 por que tengo que poner esta linea ?
« Respuesta #4 en: 03 de Marzo de 2014, 05:40:23 »
Usas el puerto A para el lcd? Sí no lo usas ese es el motivo por el cual funciona igual,
en el momento que quieras usar el puerto A como entrada/salida digital necesitaras configurar el puerto como es debido o de lo contrario no funcionara
PPyote... siempre estareis en mi corazon.... Te quiero Hermano...


 

anything