Sie sind auf Seite 1von 5

Manejar pantalla lcd 16x2 con pic 16d877

;pongo ahora el codigo que muestra un par de mensajes en los renglones de la pantalla #INCLUDE ;DECLARO LA LIBRERIA

;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!!

Das könnte Ihnen auch gefallen