TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: tornar en 28 de Diciembre de 2004, 03:08:00
-
Hola, stoy teniendo problemas a la hora de realizar la simulacion de un PIC18F242 con un LCD en Proteus, con un PIC16F84a y la libreria modificada por mi LCD_MPT.C para que funcionase con el MicroPic Trainer, me iba bien.
Pero ahora al usar la libreria LCD.C que viene por defecto con el CCS, y un PIC18F242 no consigo hacer que funcione el LCD, al ejecutar mi programa no muestra nada, no se si estare realizando alguna conexion mal o algo.
Respecto al codigo es correcto, pq usando el PIC16F84A y la libreria LCD_MPT.C modificada funciona bien.
-
Bájate el archivo de este enlace que te puede venir bien:
http://personal.auna.com/asencio5/Ejemplos%20C/MEMORIA%20EXTERNA/RAM/
-
Si lo estas simulando quítale los FUSES, con los FUSES no funciona.
-
Gracias por la ayuda, finalmente use un ejemplo que venia en Proteus con un PIC18 sobre una calculadora, y me cargue todo menos el LCD y el PIC.

saludos.
-
A mí con los fuses me va perfectamente.Lo único que hay que prestar atención a las conexiones de las señales de control del lcd y que el orden de éstas coincida con el de la estructura lcd_pin_map de "lcd.c"
-
Modulay añade el FUSE NOWDT a cualquier programilla que tengas por ahí y nos reiremos un poquito.
-
Tengo la costumbre de añadirlo siempre y no me da problemas
-
A ver si sacamos porqué a mí no me va.
Utilizo un 452, la versión es la 6.5 SP5 y la del compilador la 3.211, poniendo ese fuse no se activan las salidas en ningún programa.
Le pasa a alguién más?
-
Tal ves se te olvido conectar el MCLR a vcc en el Proteus, si no lo conectas ,te da ese error.
#include <18F452.h>
#fuses H4,NOOSCSEN,NOBROWNOUT,NOPROTECT,NOWDT,NOPUT,NOLVP,NODEBUG /*PLL*/
#use delay(clock=4000000)
#use fast_io(A)
#use fast_io(B)
#define use_portb_lcd TRUE /*CONEXIONADO EN PORTB*/
#include <lcd.c>
#byte ADCON1=0xFC1
void MAIN()
{ INT I;
ADCON1=7; /*DESHABILITAMOS COMPARADORES*/
set_tris_a(2);
lcd_init();
while(1){
output_bit(pin_a0,0);
lcd_putc("f Oprime Boton.
");
while(input(pin_a1)) { /*ESPERAMOS A RA1= 0 */
};
output_bit(pin_a0,1);
lcd_putc("f OK~~~....
");
delay_ms(2000); /* x 4 del pll, 2 segundos*/
};
}
Salu2
-
Sí era eso. Otro "truco" que no hay que olvidar.
Resulta que en la mayor parte de los diseños para ganar tiempo no dibujo ni el MCLR ni el oscilador, y eso con los PICs16 no dá problema con los fuses y los circuitos van bien (incluso sin poner los fuses), pero con los PICs18 si usas NOWDT, como no conectes el MCLR no va.
Otra cosilla a apuntar. Gracias Lager.
Un saludo
-
Tonces ya podemos echarnos unas risas
-
No hay nada que agradecer pana pocher.
un abrazo