BIN a BCD
call Retardo_5ms
; banksel TRISD ; Configura las líneas conectadas al pines RS,
; movlw b'00000000'
; movwf TRISD
clrf STATUS
bcf LCD_PinRW ; En caso de queesté conectado le indica
; que se va a escribir en el LCD.
bcf LCD_PinEnable ; Impide funcionamiento del LCD poniendo E=0.
bcf LCD_PinRS ; Activa el Modo Comando poniendo RS=0.call Retardo_20ms
movlw b'00110000'
call LCD_EscribeLCD ; Escribe el dato en el LCD.
call Retardo_5ms
movlw b'00110000'
call LCD_EscribeLCD
call Retardo_200micros
movlwb'00110000'
call LCD_EscribeLCD
call Retardo_200micros
movlw b'00100000' ; Interface de 4 bits.
call LCD_EscribeLCD
; Ahora configura el resto de los parámetros:
callLCD_2Lineas4Bits5x7 ; LCD de 2 líneas y caracteres de 5x7 puntos.
call LCD_Borra ; Pantalla encendida y limpia. Cursor al principio
call LCD_Linea1
call LCD_CursorOFF ; de la línea 1.Cursor apagado.
call LCD_CursorIncr ; Cursor en modo incrementar.
return
; Subrutina "LCD_EscribeLCD" -----------------------------------------------------------
;
; Envía eldato del registro de trabajo W al bus de dato y produce un pequeño pulso en el pin
; Enable del LCD. Para no alterar el contenido de las líneas de la parte baja del Puerto B que
; no son utilizadaspara el LCD (pines RB3:RB0), primero se lee estas líneas y después se
; vuelve a enviar este dato sin cambiarlo.
LCD_EscribeLCD
andlw b'11110000' ; Se queda con el nibble alto del datoque es el
movwf LCD_Dato ; que hay que enviar y lo guarda.
movf DATO_LCD,W ; Lee la información actual de la parte baja
andlw b'00001111' ; del Puerto B, que no se debe alterar.iorwf LCD_Dato,F ; Enviará la parte alta del dato de entrada
; y en la parte baja lo que había antes.
banksel PORTA ; Acceso al Banco 1.
movf DATO_LCD,W ; Guarda la configuración...
Regístrate para leer el documento completo.