TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: halowin 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:
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.
// 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){}
}
-
El datasheet tiene la respuesta.
Sección 22.0. Ahí explica que el valor 0x07 es el que apaga todos los comparadores.
Saludos.
-
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...
-
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
-
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