#INCLUDE
;declaraciones necesarias para las subrutinas de manejo de la LCD
#DEFINE EN PORTA,0 ;defino al pin EN en el PORTA,0
#DEFINE RS PORTA,1 ;defino al pin RS en el PORTA,1
PORTLCD EQU PORTB ;si, si se puede declarar asi un registro
; en casi de que quieras poner otro puerto simplemente ponlo en
;lugar de PORTB
;declaro un par de comandos que ocupare despues
RENGLON1 EQU B'10000000' ;este comando posiciona el cursor en el renglon1
RENGLON2 EQU B'11000000' ;este comando posiciona el cursor en el renglon2
CBLOCK 0X20 ;DECLARO LOS REGISTROS A OCUPAR
NUM1,NUM2,NUM3; REGISTROS PARA EL RETARDO
ENDC
ORG 0X00 ;DECLARO EL ORIGEN DEL PROGRAMA
;CONFIGURO LOS PUERTOS
BSF STATUS,RP0 ;CAMBIO A BANCO1
CLRF PORTB DECLARO PORTB COMO SALIDA
;COMO EN ESTE CASO EL PORTA TIENE EL CAD,
; LO DESABILITO CON LAS INSTRUCCIONES
MOVLW 0X07
MOVWF ADCON1
CLRF PORTA DECLARO PORTA COMO SALIDA
BCF STATUS,RP0 ;CAMBIO A BANCO 0
CALL INIT_LCD ;INICIALIZO LA PANTALLA LCD
MOVLW "M" ;COLOCO EL DATO QUE QUIERO ESCRIBIR EN LA LCD EN W
CALL DATO ;Y LLAMO ALA SUBRUTINA QUE LO VA A DESPLEGAR EN LA PANTALLA
MOVLW "E" ;COLOCO EL DATO QUE QUIERO ESCRIBIR EN LA LCD EN W
CALL DATO ;Y LLAMO ALA SUBRUTINA QUE LO VA A DESPLEGAR EN LA PANTALLA
MOVLW "X" ;COLOCO EL DATO QUE QUIERO ESCRIBIR EN LA LCD EN W
CALL DATO ;Y LLAMO ALA SUBRUTINA QUE LO VA A DESPLEGAR EN LA PANTALLA
MOVLW "A" ;COLOCO EL DATO QUE QUIERO ESCRIBIR EN LA LCD EN W
CALL DATO ;Y LLAMO ALA SUBRUTINA QUE LO VA A DESPLEGAR EN LA PANTALLA
MOVLW "T" ;COLOCO EL DATO QUE QUIERO ESCRIBIR EN LA LCD EN W
CALL DATO ;Y LLAMO ALA SUBRUTINA QUE LO VA A DESPLEGAR EN LA PANTALLA
MOVLW "R" ;COLOCO EL DATO QUE QUIERO ESCRIBIR EN LA LCD EN W
CALL DATO ;Y LLAMO ALA SUBRUTINA QUE LO VA A DESPLEGAR EN LA PANTALLA
MOVLW "O" ;COLOCO EL DATO QUE QUIERO ESCRIBIR EN LA LCD EN W
CALL DATO ;Y LLAMO ALA SUBRUTINA QUE LO VA A DESPLEGAR EN LA PANTALLA
MOVLW "N" ;COLOCO EL DATO QUE QUIERO ESCRIBIR EN LA LCD EN W
CALL DATO ;Y LLAMO ALA SUBRUTINA QUE LO VA A DESPLEGAR EN LA PANTALLA
MOVLW "I" ;COLOCO EL DATO QUE QUIERO ESCRIBIR EN LA LCD EN W
CALL DATO ;Y LLAMO ALA SUBRUTINA QUE LO VA A DESPLEGAR EN LA PANTALLA
MOVLW "C" ;COLOCO EL DATO QUE QUIERO ESCRIBIR EN LA LCD EN W
CALL DATO ;Y LLAMO ALA SUBRUTINA QUE LO VA A DESPLEGAR EN LA PANTALLA
MOVLW "A" ;COLOCO EL DATO QUE QUIERO ESCRIBIR EN LA LCD EN W
CALL DATO ;Y LLAMO ALA SUBRUTINA QUE LO VA A DESPLEGAR EN LA PANTALLA
MOVLW RENGLON1 LLAMO A LA SUBRUTINA QUE EJECUTA COMANDOS
CALL COMANDO ; PARA CAMBIAR DE RENGLON
MOVLW "H" ;COLOCO EL DATO QUE QUIERO ESCRIBIR EN LA LCD EN W
CALL DATO ;Y LLAMO ALA SUBRUTINA QUE LO VA A DESPLEGAR EN LA PANTALLA
MOVLW "O" ;COLOCO EL DATO QUE QUIERO ESCRIBIR EN LA LCD EN W
CALL DATO ;Y LLAMO ALA SUBRUTINA QUE LO VA A DESPLEGAR EN LA PANTALLA
MOVLW "L" ;COLOCO EL DATO QUE QUIERO ESCRIBIR EN LA LCD EN W
CALL DATO ;Y LLAMO ALA SUBRUTINA QUE LO VA A DESPLEGAR EN LA PANTALLA
MOVLW "A" ;COLOCO EL DATO QUE QUIERO ESCRIBIR EN LA LCD EN W
CALL DATO ;Y LLAMO ALA SUBRUTINA QUE LO VA A DESPLEGAR EN LA PANTALLA
MOVLW " " ;COLOCO EL DATO QUE QUIERO ESCRIBIR EN LA LCD EN W
CALL DATO ;Y LLAMO ALA SUBRUTINA QUE LO VA A DESPLEGAR EN LA PANTALLA
MOVLW "M" ;COLOCO EL DATO QUE QUIERO ESCRIBIR EN LA LCD EN W
CALL DATO ;Y LLAMO ALA SUBRUTINA QUE LO VA A DESPLEGAR EN LA PANTALLA
MOVLW "U" ;COLOCO EL DATO QUE QUIERO ESCRIBIR EN LA LCD EN W
CALL DATO ;Y LLAMO ALA SUBRUTINA QUE LO VA A DESPLEGAR EN LA PANTALLA
MOVLW "N" ;COLOCO EL DATO QUE QUIERO ESCRIBIR EN LA LCD EN W
CALL DATO ;Y LLAMO ALA SUBRUTINA QUE LO VA A DESPLEGAR EN LA PANTALLA
MOVLW "D" ;COLOCO EL DATO QUE QUIERO ESCRIBIR EN LA LCD EN W
CALL DATO ;Y LLAMO ALA SUBRUTINA QUE LO VA A DESPLEGAR EN LA PANTALLA
MOVLW "O" ;COLOCO EL DATO QUE QUIERO ESCRIBIR EN LA LCD EN W
CALL DATO ;Y LLAMO ALA SUBRUTINA QUE LO VA A DESPLEGAR EN LA PANTALLA
STOP GOTO STOP ;DETENGO EL PROGRAMA PARA NO ESCRIBIR MAS
;SUBRUTINAS
INIT_LCD:
MOVLW B'00110000'
CALL COMANDO
MOVLW B'00110000'
CALL COMANDO
MOVLW B'00110000'
CALL COMANDO
MOVLW B'00111100'
CALL COMANDO
MOVLW B'00001000'
CALL COMANDO
MOVLW B'00000001'
CALL COMANDO
MOVLW B'00000110'
CALL COMANDO
MOVLW B'00001111';
CALL COMANDO ;
RETURN
COMANDO MOVWF PORTLCD
BCF RS
BSF EN
CALL RETARDO5
BCF EN
RETURN
DATO MOVWF PORTLCD
BSF RS
BSF EN
CALL RETARDO5mS
BCF EN
RETURN
RETARDO5mS: movlw d'1' ; d significa que es decimal. Mueve l a w, l = 10
movwf num3 ;mueve w = 10 al registro num3
otra2 movlw d'8' ; mueve l = 203 a w
movwf num2 ; mueve w = 203 al registro num2
otra1 movlw d'207'
movwf num1
otra decfsz num1,1 ; decrementa num1 de 1 en 1 hasta llegar a cero.
goto otra ;El # 1 del destino es para que relice la instruccion
decfsz num2,1 ;dentro del registro f
goto otra1
decfsz num3,1
goto otra2
Return
;Listo!
; a escribir mensajitos en la LCD
;saludos!!
No hay comentarios:
Publicar un comentario