miércoles, 14 de septiembre de 2011

LCD- Hola Mundo

;====================================================================
; Programa principal
;====================================================================
inicio
call LCD_Inicializa
call Retardo_1ms
movlw 'H'
Call LCD_Caracter
movlw 'o'
Call LCD_Caracter
movlw 'l'
Call LCD_Caracter
movlw 'a'
Call LCD_Caracter
movlw ' '
Call LCD_Caracter
movlw 'm'
Call LCD_Caracter
movlw 'u'
Call LCD_Caracter
movlw 'n'
Call LCD_Caracter
movlw 'd'
Call LCD_Caracter
movlw 'o'
call LCD_Caracter

goto $

 INCLUDE <RETARDOS.INC>
 INCLUDE <LCD_4BIT.INC>

;====================================================================
END ;Directiva que indica la finalización del pgm

Para no tener problemas con el LCD, modificamos la subrutina  "LCD_Inicializa" de la siguiente manera:

; Subrutina "LCD_Inicializa" ------------------------------------------------------------
;
; Inicialización del módulo LCD: Configura funciones del LCD, produce reset por software,
; borra memoria y enciende pantalla. El fabricante especifica que para garantizar la
; configuración inicial hay que hacerla como sigue:
;
LCD_Inicializa
bsf STATUS,RP0
bcf LCD_PinRS
bcf LCD_PinEnable

bcf LCD_PinRW
bcf STATUS,RP0
bcf LCD_PinRW


bcf LCD_PinEnable
bcf LCD_PinRS
call Retardo_20ms
movlw b'00110000'
call LCD_EscribeLCD
call Retardo_5ms
movlw b'00110000'
call LCD_EscribeLCD
call Retardo_200micros
movlw b'00110000'
call LCD_EscribeLCD
call    Retardo_20micros                    ; NUEVO
movlw b'00100000'
call LCD_EscribeLCD
call    Retardo_20micros                     ; NUEVO


1 comentario: