Professional Documents
Culture Documents
Laboratorio # 2
Bachilleres:
Seccin: M1
DELGADO SAMUEL
HERNANDEZ MARIA
SANCHEZ MANUEL
#include "p16F1787.inc"
; CONFIG1
;__config 0xFFEC
__CONFIG _CONFIG1, _FOSC_INTOSC & _WDTE_SWDTEN & _PWRTE_OFF & _MCLRE_ON & _CP_OFF
& _CPD_OFF & _BOREN_ON & _CLKOUTEN_OFF & _IESO_ON & _FCMEN_ON
; CONFIG2
; __config 0xFFFF
__CONFIG _CONFIG2, _WRT_OFF & _VCAPEN_OFF & _PLLEN_ON & _STVREN_ON & _BORV_LO &
_LPBOR_OFF & _LVP_ON
EQU 0X71
CONT4
EQU 0X72
CONT5
EQU 0X73
EQU 0X75
EQU 0X76
NUMTECLA
EQU 0X77
Ret_Loops2
EQU 0x78
ORG 0X00
GOTO INICIO
ORG 0X04
GOTO INTERRUPCION
;ORG 0X06
INICIO
BANKSEL PCON
MOVF
PCON,W
MOVWF AUX2
PROGRAMA_PRINCIPAL
CALL CONFIGURAR_LCD
CALL BIENVENIDA
GOTO $
INTERRUPCION
BANKSEL
WDTCON
BCF
WDTCON,0
BANKSEL
IOCAF
BTFSC IOCAF,2
CALL PULS_3
BANKSEL
CLRF
IOCAF
IOCAF
BANKSEL
WDTCON
BSF
WDTCON,0
RETFIE
MENSJ_RBOR
BTFSS AUX2,1
CALL
MENSJ_RPOR
BANKSEL PCON
BTFSS PCON,3
CALL
MENSJ_RMCLR
BTFSS PCON,4
CALL
BSF
MENSJ_RWDT
PCON,0
BSF
PCON,1
BSF
PCON,3
BSF
PCON,4
BANKSEL CONTA1
MOVLW .10
MOVWF CONTA1
CILO
CALL
ESPERA_05
DECFSZ CONTA1,F
GOTO
CILO
CALL
CALL
CLEAR_LCD
BIENVENIDA
RETURN
DATO
MOVLW
CALL
'M'
'I'
DATO
MOVLW
'C'
CALL
DATO
MOVLW
CALL
DATO
MOVLW
CALL
'S'
DATO
MOVLW
CALL
'E'
DATO
MOVLW
CALL
'R'
DATO
MOVLW
CALL
'D'
DATO
MOVLW
CALL
'A'
DATO
MOVLW
CALL
'S'
DATO
MOVLW
CALL
'E'
DATO
MOVLW
CALL
'C'
DATO
MOVLW
CALL
'O'
DATO
MOVLW
CALL
'R'
DATO
MOVLW
CALL
'P'
DATO
MOVLW
CALL
'O'
DATO
MOVLW
CALL
'R'
DATO
''
MOVLW
CALL
'1'
DATO
RETURN
PORTC
P3
BANKSEL NUMTECLA
GOTO TECLADO_M
MUESTRA
MOVF NUMTECLA,0
CALL DATO
CALL
MENSJ_RBOR
MOVLW '#'
XORWF NUMTECLA,0
BTFSS STATUS,Z
GOTO P3
GOTO BIENVENIDA
;--------------------------------D_SW-------------------------------------------D_SW
CALL CLEAR_LCD
CALL HOME
BANKSEL
PCON
BTFSC PCON,4;
CALL
BIENVENIDA
GOTO $-2
;-----------------------------------------CONFIGURACION DE PUERTOS---------------------------------CONFIGURAR_PUERTOS
BANKSEL ANSELA
CLRF ANSELA; CONFIGURO LOS PUERTOS COMO DIGITALES
CLRF ANSELD
CLRF ANSELE
CLRF
ANSELB
BANKSEL TRISA
MOVLW 0X0F
MOVWF TRISA; CONFIGURO RA0,RA1,RA2,RA3, COMO ENTRADA, Y LOS RESTANTES
COMO SALIDA
MOVLW 0X00
MOVWF TRISD; CONFIGURO EL PUERTO D COMO SALIDA
MOVLW 0X00
MOVWF TRISE;
MOVLW 0XF0
MOVWF
TRISC
BANKSEL OPTION_REG
BCF OPTION_REG,7; HABILITO LA RESISITENCIAS PULL UP
BANKSEL WPUA
MOVLW 0X0F
MOVWF WPUA;PULL UP PUERTO A
MOVLW
0XF0
INTCON
BANKSEL IOCAN
MOVLW 0X0F
MOVWF IOCAN; HABILITO LAS INTERRUPCIONES POR FLANCO NEGATIVO
RETURN
;-------------------------------------------CONFIGURAR PERRO--------------------------------------------
CONFIGURAR_PERRO
BANKSEL WDTCON
MOVLW 0X1B ; b'00011011'
MOVWF
RETURN
;-------------------------------------------CONFIGURAR LCD---------------------------------------------CONFIGURAR_LCD
CALL DISPLAY ; 8 bits, Display 2 lineas y 5x7
CALL RETARDO
CALL CLEAR_LCD ; Limpia LCD
CALL RETARDO
CALL
HOME
CALL RETARDO
CALL ENTRY; Incrementa(escribe bien) y Display shift On
CALL RETARDO
CALL ON_LCD ; Set ON/OFF full Display (D)
CALL RETARDO
CALL ADDRES_LINE1 ; UBICACION EN LA LINEA 1 DIRECCION 0
RETURN
;-------------------------------------------- COMANDDO LCDS----------------------------------------DISPLAY
MOVLW 0X38
MOVWF AUX
CALL COMANDO
RETURN
CURSOR_IZQ
MOVLW 0X1C
MOVWF AUX
CALL COMANDO
RETURN
ON_LCD
MOVLW 0X0F
MOVWF AUX
CALL COMANDO
RETURN
ENTRY
MOVLW 0X06
MOVWF AUX
CALL COMANDO
RETURN
CLEAR_LCD
MOVLW 0X01
MOVWF AUX
CALL COMANDO
RETURN
HOME
MOVLW 0X02
MOVWF AUX
CALL COMANDO
RETURN
ADDRES_LINE1
MOVLW 0X81
MOVWF AUX
CALL COMANDO
RETURN
ADDRES_LINE2
MOVLW 0XB8
MOVWF AUX
CALL COMANDO
RETURN
PORTE,RE1 ; ENABLE
BCF
PORTE,RE0 ; RS
BANKSEL PORTD
MOVF AUX,0
MOVWF PORTD
CALL
RETARDO
BANKSEL PORTE
BCF
PORTE,RE1
CALL
RETARDO ;
RETURN
PORTE,RE1 ; ENABLE
BSF
PORTE,RE0 ; RS
MOVWF AUX
MOVF AUX,0
BANKSEL PORTD
MOVWF PORTD
CALL
RETARDO
BANKSEL PORTE
BCF
PORTE,RE1
CALL
RETARDO ; MICROSEGUNDOS
.50
CONTA7
CUENTA
DECFSZ
CONTA7,F
GOTO CUENTA
RETURN
; Retardo de 2 ms ---------------------------------------------------------------------;------------------------------------ MENSAJES PROGRAMA PRINCIPAL---------------------------;----BIENVENIDA------;
BIENVENIDA
CALL ADDRES_LINE1
MOVLW 'M'
CALL DATO
MOVLW 'E'
CALL DATO
MOVLW 'N'
CALL DATO
MOVLW 'U'
CALL DATO
MOVLW ' '
CALL DATO
MOVLW 'O'
CALL DATO
MOVLW 'P'
CALL DATO
MOVLW 'C'
CALL DATO
MOVLW 'I'
CALL DATO
MOVLW 'O'
CALL DATO
MOVLW 'N'
CALL DATO
MOVLW 'E'
CALL DATO
MOVLW 'S'
CALL DATO
MOVLW ' '
CALL DATO
MOVLW '1'
CALL DATO
MOVLW '.'
CALL DATO
MOVLW 'R'
CALL DATO
MOVLW 'E'
CALL DATO
MOVLW 'S'
CALL DATO
MOVLW 'E'
CALL DATO
MOVLW 'T'
CALL DATO
CALL ADDRES_LINE2
MOVLW '2'
CALL DATO
MOVLW '.'
CALL DATO
MOVLW 'M'
CALL DATO
MOVLW 'E'
CALL DATO
MOVLW 'N'
CALL DATO
MOVLW 'S'
CALL DATO
MOVLW 'A'
CALL DATO
MOVLW 'J'
CALL DATO
MOVLW 'E'
CALL DATO
MOVLW ' '
CALL DATO
MOVLW ' '
CALL DATO
MOVLW '3'
CALL DATO
MOVLW '.'
CALL DATO
MOVLW 'T'
CALL DATO
MOVLW 'E'
CALL DATO
MOVLW 'C'
CALL DATO
MOVLW 'L'
CALL DATO
MOVLW 'A'
CALL DATO
MOVLW 'D'
CALL DATO
MOVLW 'O'
CALL DATO
MOVLW ' '
CALL DATO
MOVLW 'M'
CALL DATO
MOVLW '.'
CALL DATO
RETURN
;------------------------------------------------ MENSAJES DE INTERRUPCION------------------;--- MENSAJE RESET POR BOR------MENSJ_RBOR
CALL CLEAR_LCD ;Limpia LCD
DATO
DATO
DATO
DATO
MOVLW 'R'
CALL
DATO
MOVLW 'E'
CALL
DATO
MOVLW 'S'
CALL
DATO
MOVLW 'E'
CALL
DATO
MOVLW 'T'
CALL
DATO
DATO
MOVLW 'B'
CALL
DATO
MOVLW 'O'
CALL
DATO
MOVLW 'R'
CALL
DATO
BANKSEL PCON
BSF PCON,0
RETURN
;--- MENSAJE RESET POR POR------MENSJ_RPOR
CALL CLEAR_LCD ;Limpia LCD
CALL HOME
DATO
MOVLW 'E'
CALL
DATO
MOVLW 'S'
CALL
DATO
MOVLW 'E'
CALL
DATO
MOVLW 'T'
CALL
DATO
DATO
MOVLW 'P'
CALL
DATO
MOVLW 'O'
CALL
DATO
MOVLW 'R'
CALL
DATO
BANKSEL PCON
BSF PCON,1
RETURN
;--- MENSAJE RESET POR MASTER RESET-------
MENSJ_RMCLR
CALL CLEAR_LCD ;Limpia LCD
CALL HOME
DATO
MOVLW 'E'
CALL
DATO
MOVLW 'S'
CALL
DATO
MOVLW 'E'
CALL
DATO
MOVLW 'T'
CALL
DATO
DATO
MOVLW 'M'
CALL
DATO
MOVLW 'C'
CALL
DATO
MOVLW 'L'
CALL
DATO
MOVLW 'R'
CALL
DATO
BANKSEL PCON
BSF PCON,3
RETURN
;--- MENSAJE RESET POR WDTN------MENSJ_RWDT
DATO
MOVLW
CALL
'D'
DATO
MOVLW
CALL
'W'
DATO
MOVLW
CALL
''
DATO
MOVLW
CALL
'T'
DATO
MOVLW
CALL
'E'
DATO
MOVLW
CALL
'S'
DATO
MOVLW
CALL
'E'
DATO
MOVLW
CALL
'R'
'T'
DATO
BANKSEL PCON
BSF PCON,4
RETURN
TECLADO_M
TECLA NOP
NEW_SCAN
CLRF NUMTECLA ; Borra el contenido de numTecla
MONTAJE