TODOPIC

Microcontroladores PIC => Primeros pasos - Iniciación a los microcontroladores => Mensaje iniciado por: tavisho en 14 de Abril de 2011, 23:14:55

Título: En qué estoy fallando?
Publicado por: tavisho en 14 de Abril de 2011, 23:14:55
Saludos, últimamente me decidí a desempolvar mis conocimientos en pic y veo con tristeza que ya he olvidado mucho. Quise hacer un simple programa para mostrar el mensaje "hola" en la pantalla LCD conectada al 16f877A y no lo he logrado. Pongo por acá el código fuente para ver si alguno detecta mi error  :5]  :5]

Código: [Seleccionar]
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Mi segundo programa después de retomar el PIC16F877A. En esta situación quiero mostrar;;;
;;; la palabra "Hola" por un LCD 2x16 conectado al puerto B   ;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
List P=16f877A
include p16f877a.inc


ORG 0x00
goto Inicio
ORG 0x05 ; Salta el vector de Reset

Mensajes

ADDWF PCL,F
Mensaje1
DT "HOLA",0 ; mensaje a mostrar

Inicio
bsf STATUS,RP0 ; pasa a banco 1
clrf PORTB ; borra puerta b
movlw 0x06
movwf ADCON0 ; puerto A entradas/salidas digitales
bcf STATUS,RP0 ; regresa a banco 0
call LCD_Inicializa ; llama a inicializar lcd
Bucle movlw Mensaje1 ; indica el mensaje a mostrar
call LCD_Mensaje ; rutina para mostrar el mensaje indicado
goto Bucle ; un bucle que solo muestra ese mensaje

INCLUDE <LCD_4BIT.INC>
INCLUDE <RETARDOS.INC>
INCLUDE <LCD_MENS.INC>
end

Como ven es un programa muy fácil pero se me ha complicado, estoy de inicio en los pic de nuevo y quiero meterme a fondo. Espero que me ayuden y por cierto, los include asociados al lcd ( 4bit, retardos y lcd_mens) son iguales a cmo publica ra-ma
Título: Re: En qué estoy fallando?
Publicado por: BrunoF en 15 de Abril de 2011, 00:28:31
El mismo proteus ya te esta marcando algo mal, al ver que el puertoA en la simulacion posee un estado desconocido. Esto es porque no has configurado las entradas y salidas del puerto A.

Saludos.
Título: Re: En qué estoy fallando?
Publicado por: tavisho en 15 de Abril de 2011, 00:42:34
he puesto puerto a a salidas y sigue igual ( clrf trisa)
Título: Re: En qué estoy fallando?
Publicado por: BrunoF en 15 de Abril de 2011, 10:50:37
Hola.

Mira dentro de LCD_4BIT.INC, donde se define:

#DEFINE  LCD_PinRS      PORTB,1
#DEFINE  LCD_PinRW      PORTB,3
#DEFINE  LCD_PinEnable   PORTB,2
#DEFINE  LCD_BusDatos      PORTB


y no coincide con tu circuito. O cambias las definiciones, o recableas el circuito.
Título: Re: En qué estoy fallando?
Publicado por: tavisho en 15 de Abril de 2011, 15:37:23
Eeres un capo BrunoF, hago los cambios necesarios y publico los resultados. Pues bien he modificado el conexiado y el error persiste, no muestra nada la pantalla LCD  :5] :5]. Seguiré trabajando
Título: Re: En qué estoy fallando?
Publicado por: BrunoF en 16 de Abril de 2011, 00:17:25
Por las dudas, agrega, ademas de todo lo anterior, una demora de medio segundo antes de inicializar el LCD. Hay  un tiempo durante el cual el LCD no responde y deberia esperarse para que inicialice correctamente.
Título: Re: En qué estoy fallando?
Publicado por: banistelrroy en 11 de Mayo de 2011, 01:22:19
anda al archivos 4BITS.INC y ve la configuracion que tiene el lcd y conecta como te dice
Título: Re: En qué estoy fallando?
Publicado por: Pablo Alfa en 18 de Noviembre de 2011, 14:44:19
Bueno, a mí me esta pasando lo mismo que a quien abrió el hilo, solo que yo he podido encontrar el problema pero no sé cómo resolver.... El pic (16F84A) corre con un oscilador de 4Mhz, pero el display esta en 270Khz, cuando en el proteus lo paso a 4Mhz al display, bualá! funciona excelente, pero si lo vuelvo a poner al display en su frecuencia original, no aparece nada.. alguien me puede dar una manito? Necesito conectar el oscilador al display? o debo ajustar de alguna manera la frecuencia del pic con respecto del display? Pregunto ésto por ser muy novato en éste tema de los pics... Gracias de antemano a quien me pueda ayudar.
Título: Re: En qué estoy fallando?
Publicado por: Vtronic en 04 de Diciembre de 2011, 17:47:24
creo que deberias implementar algunos delays en los comandos que envias a la lcd y que driver tiene tu lcd?
Título: Re: En qué estoy fallando?
Publicado por: Pablo Alfa en 15 de Diciembre de 2011, 16:09:21
creo que deberias implementar algunos delays en los comandos que envias a la lcd y que driver tiene tu lcd?

La verdad es que no sé que driver tiene, solo sé que es de 16x2 compatible con el Hitachi 44780 (es un ccm-1620csl-v2); y como estoy empezando, el inicio del LCD Display lo copié del libro RA-MA. Ver http://www.todopic.com.ar/asm/rama/lcd_4bit.asm

Gracias por tu respuesta.

Pablo.