Está en la página 1de 23

;TRABAJO Mostrar en un LCD un reloj digital

LIST P=18F4550 ; Dispositivo

INCLUDE <P18F4550.INC> ; Libreria

CBLOCK ; Area de variables

UNIDAD ;VARIABLE DE CONTEO

DECENA

UNIDADM

DECENAM

UNIDADH

DECENAH

T1 ; Variables de tiempo

T2

T3

ENDC

CONFIG FOSC = HS

CONFIG WDT = OFF

CONFIG MCLRE = OFF

ORG 0X0000 ;Inicio de la ROM

MOVLW B'00000000' ;Port D de salida al LCD, DATA

MOVWF TRISD

BCF TRISC,0 ;RC0 de salida al rs del lcd

BCF TRISC,1 ;RC1 de salida al E del LCD

InicioLCD: BCF PORTC,0 ;RS=0 Modo comando

BCF PORTC,1 ;E=0

CALL TLCD
MOVLW 0X38 ; Primer comando (estamos trabajando a 8 bits , tenemos 2 lineas)

MOVWF PORTD

CALL ENABLE

MOVLW 0X0C ; Segundo comando

MOVWF PORTD

CALL ENABLE

MOVLW 0X06 ; Tercer comando ... hacia donde va a salir el mensaje

MOVWF PORTD

CALL ENABLE

MOVLW 0X01 ; Cuarto comando

MOVWF PORTD

CALL ENABLE

Mensaje: BSF PORTC,0 ;RS=1 Modo caracter

BCF PORTC,1 ;E=0

CALL TLCD

MOVLW " "

MOVWF PORTD

CALL ENABLE

MOVLW "R"

MOVWF PORTD

CALL ENABLE

MOVLW "E"

MOVWF PORTD

CALL ENABLE

MOVLW "L"

MOVWF PORTD
CALL ENABLE

MOVLW "O"

MOVWF PORTD

CALL ENABLE

MOVLW "J"

MOVWF PORTD

CALL ENABLE

MOVLW " "

MOVWF PORTD

CALL ENABLE

MOVLW " "

MOVWF PORTD

CALL ENABLE

MOVLW "D"

MOVWF PORTD

CALL ENABLE

MOVLW "I"

MOVWF PORTD

CALL ENABLE

MOVLW "G"

MOVWF PORTD

CALL ENABLE

MOVLW "I"

MOVWF PORTD

CALL ENABLE

MOVLW "T"

MOVWF PORTD
CALL ENABLE

MOVLW "A"

MOVWF PORTD

CALL ENABLE

MOVLW "L"

MOVWF PORTD

CALL ENABLE

GOTO CONTEO

CONTEO: CLRF DECENAH ; Cuenta inicial 00

CEROUNIH: CLRF UNIDADH

SALIDAH: CLRF DECENAM

CEROUNIM: CLRF UNIDADM

SALIDAM: CLRF DECENA

CEROUNI: CLRF UNIDAD

SALIDA: CALL DISPLAY

CALL DELAY

INCF UNIDAD, F

MOVF UNIDAD, W

XORLW .10

BTFSS STATUS, Z

GOTO SALIDA

INCF DECENA, F

MOVF DECENA, W

XORLW .6

BTFSS STATUS, Z

GOTO CEROUNI
INCF UNIDADM, F

MOVF UNIDADM, W

XORLW .10

BTFSS STATUS, Z

GOTO SALIDAM

INCF DECENAM, F

MOVF DECENAM, W

XORLW .6

BTFSS STATUS, Z

GOTO CEROUNIM

INCF UNIDADH, F

MOVF UNIDADH, W

XORLW .10

BTFSS STATUS, Z

GOTO SALIDAH

INCF DECENAH, F

MOVF DECENAH, W

XORLW .2

BTFSS STATUS, Z

GOTO CEROUNIH

GOTO CONTEO

DISPLAY: CALL CURSOR

BSF PORTC,0 ;RS=1 Modo caracter

BCF PORTC,1 ;E=0

CALL TLCD

MOVF DECENAH, W
ADDLW 0X30 ; CONVERSION DE BINARIO A ASCII

MOVWF PORTD

CALL ENABLE

MOVF UNIDADH, W

ADDLW 0X30 ; CONVERSION DE BINARIO A ASCII

MOVWF PORTD

CALL ENABLE

MOVLW ":"

MOVWF PORTD

CALL ENABLE

MOVF DECENAM, W

ADDLW 0X30 ; CONVERSION DE BINARIO A ASCII

MOVWF PORTD

CALL ENABLE

MOVF UNIDADM, W

ADDLW 0X30 ; CONVERSION DE BINARIO A ASCII

MOVWF PORTD

CALL ENABLE

MOVLW ":"

MOVWF PORTD

CALL ENABLE

MOVF DECENA, W

ADDLW 0X30 ; CONVERSION DE BINARIO A ASCII

MOVWF PORTD

CALL ENABLE

MOVF UNIDAD, W

ADDLW 0X30 ; CONVERSION DE BINARIO A ASCII


MOVWF PORTD

CALL ENABLE

RETURN

CURSOR: BCF PORTC,0 ;RS=0 Modo comando

BCF PORTC,1 ;E=0

CALL TLCD

MOVLW 0XC4 ; 2DA LINEA, SEXTO Caracter

MOVWF PORTD

CALL ENABLE

RETURN

ENABLE: CALL TLCD

BSF PORTC,1 ; E=1

CALL TLCD

BCF PORTC,1 ; E=0

CALL TLCD

RETURN

DELAY: MOVLW .1 ; Retardo de 1 seg.

MOVWF T3

LAZO3: CALL T100MS

DECFSZ T3,F

GOTO LAZO3

RETURN

T100MS: MOVLW .1 ; Retardo de 100 mseg.


MOVWF T2

LAZO2: CALL T1MSEG

DECFSZ T2,F

GOTO LAZO2

RETURN

TLCD:

T1MSEG: MOVLW .1 ; Retardo de 1 mseg.

MOVWF T1

LAZO1: NOP

DECFSZ T1,F

GOTO LAZO1

RETURN

END

;P13 Mostrar en un LCD UN MINUTERO (00-59)

LIST P=18F4550 ; Dispositivo

INCLUDE <P18F4550.INC> ; Libreria

CBLOCK ; Area de variables

UNIDAD ;VARIABLE DE CONTEO

DECENA

T1 ; Variables de tiempo

T2

T3

ENDC

CONFIG FOSC = HS
CONFIG WDT = OFF

CONFIG MCLRE = OFF

ORG 0X0000 ;Inicio de la ROM

MOVLW B'00000000' ;Port D de salida al LCD, DATA

MOVWF TRISD

BCF TRISC,0 ;RC0 de salida al rs del lcd

BCF TRISC,1 ;RC1 de salida al E del LCD

InicioLCD: BCF PORTC,0 ;RS=0 Modo comando

BCF PORTC,1 ;E=0

CALL TLCD

MOVLW 0X38 ; Primer comando (estamos trabajando a 8 bits , tenemos 2 lineas)

MOVWF PORTD

CALL ENABLE

MOVLW 0X0C ; Segundo comando

MOVWF PORTD

CALL ENABLE

MOVLW 0X06 ; Tercer comando ... hacia donde va a salir el mensaje

MOVWF PORTD

CALL ENABLE

MOVLW 0X01 ; Cuarto comando

MOVWF PORTD

CALL ENABLE

Mensaje: BSF PORTC,0 ;RS=1 Modo caracter

BCF PORTC,1 ;E=0


CALL TLCD

MOVLW " "

MOVWF PORTD

CALL ENABLE

MOVLW "R"

MOVWF PORTD

CALL ENABLE

MOVLW "E"

MOVWF PORTD

CALL ENABLE

MOVLW "L"

MOVWF PORTD

CALL ENABLE

MOVLW "O"

MOVWF PORTD

CALL ENABLE

MOVLW "J"

MOVWF PORTD

CALL ENABLE

MOVLW " "

MOVWF PORTD

CALL ENABLE

MOVLW " "

MOVWF PORTD

CALL ENABLE

MOVLW "D"

MOVWF PORTD
CALL ENABLE

MOVLW "I"

MOVWF PORTD

CALL ENABLE

MOVLW "G"

MOVWF PORTD

CALL ENABLE

MOVLW "I"

MOVWF PORTD

CALL ENABLE

MOVLW "T"

MOVWF PORTD

CALL ENABLE

MOVLW "A"

MOVWF PORTD

CALL ENABLE

MOVLW "L"

MOVWF PORTD

CALL ENABLE

GOTO CONTEO

CONTEO: CLRF DECENAH ; Cuenta inicial 00

CEROUNI: CLRF UNIDADH

SALIDA: CLRF DECENAM

CLRF UNIDADM

CLRF DECENA

CLRF UNIDAD
CALL DISPLAY

CALL DELAY

INCF UNIDAD, F

MOVF UNIDAD, W

XORLW .10

BTFSS STATUS, Z

GOTO SALIDA

INCF DECENA, F

MOVF DECENA, W

XORLW .6

BTFSS STATUS, Z

GOTO CEROUNI

INCF UNIDADM, F

MOVF UNIDADM, W

XORLW .10

BTFSS STATUS, Z

GOTO SALIDA

INCF DECENAM, F

MOVF DECENAM, W

XORLW .6

BTFSS STATUS, Z

GOTO CEROUNI

INCF UNIDADH, F

MOVF UNIDADH, W

XORLW .10

BTFSS STATUS, Z

GOTO SALIDA
INCF DECENAH, F

MOVF DECENAH, W

XORLW .6

BTFSS STATUS, Z

GOTO CEROUNI

GOTO CONTEO

DISPLAY: CALL CURSOR

BSF PORTC,0 ;RS=1 Modo caracter

BCF PORTC,1 ;E=0

CALL TLCD

MOVLW ":"

MOVWF PORTD

CALL ENABLE

MOVF DECENA, W

ADDLW 0X30 ; CONVERSION DE BINARIO A ASCII

MOVWF PORTD

CALL ENABLE

MOVF UNIDAD, W

ADDLW 0X30 ; CONVERSION DE BINARIO A ASCII

MOVWF PORTD

CALL ENABLE

RETURN

CURSOR: BCF PORTC,0 ;RS=0 Modo comando

BCF PORTC,1 ;E=0

CALL TLCD
MOVLW 0XCC ; 2DA LINEA, SEXTO Caracter

MOVWF PORTD

CALL ENABLE

RETURN

ENABLE: CALL TLCD

BSF PORTC,1 ; E=1

CALL TLCD

BCF PORTC,1 ; E=0

CALL TLCD

RETURN

DELAY: MOVLW .10 ; Retardo de 1 seg.

MOVWF T3

LAZO3: CALL T100MS

DECFSZ T3,F

GOTO LAZO3

RETURN

T100MS: MOVLW .100 ; Retardo de 100 mseg.

MOVWF T2

LAZO2: CALL T1MSEG

DECFSZ T2,F

GOTO LAZO2

RETURN

TLCD:

T1MSEG: MOVLW .249 ; Retardo de 1 mseg.


MOVWF T1

LAZO1: NOP

DECFSZ T1,F

GOTO LAZO1

RETURN

END

;P12 Mostrar en un LCD UN CONTADOR DE MÓDULO 10

LIST P=18F4550 ; Dispositivo

INCLUDE <P18F4550.INC> ; Libreria

CBLOCK ; Area de variables

CUENTA ;VARIABLE DE CONTEO

T1 ; Variables de tiempo

T2

T3

ENDC

CONFIG FOSC = HS

CONFIG WDT = OFF

CONFIG MCLRE = OFF

ORG 0X0000 ;Inicio de la ROM

MOVLW B'00000000' ;Port D de salida al LCD, DATA

MOVWF TRISD

BCF TRISC,0 ;RC0 de salida al RS del lcd

BCF TRISC,1 ;RC1 de salida al E del LCD

InicioLCD: BCF PORTC,0 ;RS=0 Modo comando


BCF PORTC,1 ;E=0

CALL TLCD

MOVLW 0X38 ; Primer comando (estamos trabajando a 8 bits , tenemos 2 lineas)

MOVWF PORTD

CALL ENABLE

MOVLW 0X0C ; Segundo comando

MOVWF PORTD

CALL ENABLE

MOVLW 0X06 ; Tercer comando ... hacia donde va a salir el mensaje

MOVWF PORTD

CALL ENABLE

MOVLW 0X01 ; Cuarto comando

MOVWF PORTD

CALL ENABLE

Mensaje: BSF PORTC,0 ;RS=1 Modo caracter

BCF PORTC,1 ;E=0

CALL TLCD

MOVLW " "

MOVWF PORTD

CALL ENABLE

MOVLW " "

MOVWF PORTD

CALL ENABLE

MOVLW " "

MOVWF PORTD

CALL ENABLE
MOVLW " "

MOVWF PORTD

CALL ENABLE

MOVLW "C"

MOVWF PORTD

CALL ENABLE

MOVLW "O"

MOVWF PORTD

CALL ENABLE

MOVLW "N"

MOVWF PORTD

CALL ENABLE

MOVLW "T"

MOVWF PORTD

CALL ENABLE

MOVLW "A"

MOVWF PORTD

CALL ENABLE

MOVLW "D"

MOVWF PORTD

CALL ENABLE

MOVLW "O"

MOVWF PORTD

CALL ENABLE

MOVLW "R"

MOVWF PORTD

CALL ENABLE
CONTEO: CLRF CUENTA ; Cuenta inicial 0

SALIDA: CALL DISPLAY

CALL DELAY

INCF CUENTA, F

MOVF CUENTA, W

XORLW .10

BTFSS STATUS, Z

GOTO SALIDA

GOTO CONTEO

DISPLAY: CALL CURSOR

BSF PORTC,0 ;RS=1 Modo caracter

BCF PORTC,1 ;E=0

CALL TLCD

MOVF CUENTA, W

ADDLW 0X30 ; CONVERSION DE BINARIO A ASCII

MOVWF PORTD

CALL ENABLE

RETURN

CURSOR: BCF PORTC,0 ;RS=0 Modo comando

BCF PORTC,1 ;E=0

CALL TLCD

MOVLW 0XC7 ; 2da lina, sexto caracter

MOVWF PORTD
CALL ENABLE

RETURN

ENABLE: CALL TLCD

BSF PORTC,1 ; E=1

CALL TLCD

BCF PORTC,1 ; E=0

CALL TLCD

RETURN

DELAY: MOVLW .10 ; Retardo de 1 seg.

MOVWF T3

LAZO3: CALL T100MS

DECFSZ T3,F

GOTO LAZO3

RETURN

T100MS: MOVLW .100 ; Retardo de 100 mseg.

MOVWF T2

LAZO2: CALL T1MSEG

DECFSZ T2,F

GOTO LAZO2

RETURN

TLCD:

T1MSEG: MOVLW .249 ; Retardo de 1 mseg.

MOVWF T1

LAZO1: NOP
DECFSZ T1,F

GOTO LAZO1

RETURN

END

;P11 Mostrar en un LCD la expresión "UTP"

LIST P=18F4550 ; Dispositivo

INCLUDE <P18F4550.INC> ; Libreria

CBLOCK ; Area de variables

T1 ; Variables de tiempo

T2

T3

ENDC

CONFIG FOSC = HS

CONFIG WDT = OFF

CONFIG MCLRE = OFF

ORG 0X0000 ;Inicio de la ROM

MOVLW B'00000000' ;Port D de salida al LCD, DATA

MOVWF TRISD

BCF TRISC,0 ;RC0 de salida al RS del lcd

BCF TRISC,1 ;RC1 de salida al E del LCD

InicioLCD: BCF PORTC,0 ;RS=0 Modo comando

BCF PORTC,1 ;E=0

CALL TLCD
MOVLW 0X38 ; Primer comando (estamos trabajando a 8 bits , tenemos 2 lineas)

MOVWF PORTD

CALL ENABLE

MOVLW 0X0C ; Segundo comando

MOVWF PORTD

CALL ENABLE

MOVLW 0X06 ; Tercer comando ... hacia donde va a salir el mensaje

MOVWF PORTD

CALL ENABLE

MOVLW 0X01 ; Cuarto comando

MOVWF PORTD

CALL ENABLE

Mensaje: BSF PORTC,0 ;RS=1 Modo caracter

BCF PORTC,1 ;E=0

CALL TLCD

MOVLW 0X55 ; 'U'

MOVWF PORTD

CALL ENABLE

MOVLW 0X54 ; 'T'

MOVWF PORTD

CALL ENABLE

MOVLW 0X50 ; 'P'

MOVWF PORTD

CALL ENABLE

GOTO $
ENABLE: CALL TLCD

BSF PORTC,1 ; E=1

CALL TLCD

BCF PORTC,1 ; E=0

CALL TLCD

RETURN

TLCD:

T1MSEG: MOVLW .249

MOVWF T1

LAZO1: NOP

DECFSZ T1,F

GOTO LAZO1

RETURN

END

;PO1 PRENDER 7 LEDS EN EL PUERTO C Y 8 LEDS EN EL PUERTO D

LIST P=18F4550 ; DISPOSITIVO A PROGRAMAR

INCLUDE <P18F4550.INC> ;LIBRERIA

CBLOCK ;AREA DE VARIABLES

ENDC

CONFIG FOSC = HS

CONFIG WDT = OFF

CONFIG MCLRE = OFF


ORG 0X0000 ;INICIO DE LA ROM

MOVLW B'00000000' ;LEDS SALEN POR PUERTO C

MOVWF TRISC

MOVLW D'00000000'

MOVWF TRISD

INICIO: MOVLW B'00000000' ;LEDS ON

MOVWF PORTC

COMF PORTC,W

MOVWF PORTD

GOTO $

END

También podría gustarte