AYUDA PARA EL TALLER
AUTOR: xxxxxxxxxxxxxxxxxxxx
CODIGO: xxxxxxxxxxxxxxxxxxxxxxx
FILE: *************
VERSION: 1.0
FECHA INICIO: xxxxxxxxxxxxxxx
FECHA FINAL: xxxxxxxxxxxxxxxxx
DESCRIPCION: Programa para identificar si dos numeros son iguales ?
;*****************************************
TITLE "PARCIAL"
LIST P= 16F887
INCLUDE <p16f887.inc>
errorlevel -302
;*****************************************
;*****************************************
;BIT DE CONFIGURACION
__CONFIG _CONFIG1, _HS_OSC & _WDT_OFF & _PWRTE_ON & _MCLRE_ON & _CP_OFF & _CPD_OFF & _BOR_ON & _IESO_ON & _FCMEN_ON & _LVP_OFF & _DEBUG_OFF
;**************** REGISTROS *************************
;
;
STATUS EQU 03
PORTA EQU 05
PORTB EQU 06
PORTC EQU 07
PORTD EQU 08
PORTE EQU 09
TRISA EQU 0X85
TRISB EQU 0X86
TRISC EQU 0X87
TRISD EQU 0X88
TRISE EQU 0X89
WPUB EQU 0X95
ANSEL EQU 0X188
ANSELH EQU 0X189
OSCOON EQU 0X8F
OSCTUNE EQU 0X90
PSTRCON EQU 0X9D
;*************** VARIABLES **************************
;
VAR01 EQU 20
VAR02 EQU 21
VAR03 EQU 22
CONT EQU 25
DDA EQU 26
DDB EQU 27
SUMA EQU 28
TECLA1 EQU 26
TECLA2 EQU 27
TECLA3 EQU 28
TECLA4 EQU 29
TECLA5 EQU 30
;*****************************************
ORG 0X00
GOTO INICIO
;*****************************************
; ZONA UFOOOOOOOOOOO¡
;******************************************
ORG 0X30
INICIO
;*****************************************
;
CALL CONFIG_PORTA
CALL CONFIG_PORTB
CALL CONFIG_PORTC
CALL CONFIG_PORTD
BCF STATUS,0X05
MOVLW 0X00; *** OJO MI NIÑOS ****
MOVWF PORTC
MOVWF PORTD
CALL DELAY_5S
;-----------------------------------------
LEE:
MOVF PORTA,W
MOVWF DDA
MOVF PORTB,W
MOVWF DDB
;----------------------------------------------
; CON DDA= 0 CON COMPARADO CON LAS OTRAS 4 OPCIONES
MOVLW 0X00 ; DDA = 0 ?
SUBWF DDA,W
BTFSS STATUS,0X02
GOTO DDA_UNO
DDA_CERO:
MOVLW 0X00 ; DDB = 0 ?
SUBWF DDB,W
BTFSS STATUS,0X02
GOTO SERA_UNO
DDB_CERO:
NOP
;-----------
;----- FUE IGUAL ------
;-----------
;-----------
GOTO LEE
SERA_UNO:
MOVLW 0X01 ; DDB = 1 ?
SUBWF DDB,W
BTFSS STATUS,0X02
GOTO SERA_DOS
DDB_UNO:
NOP
;-------------
;----FUE IGUAL ---------
;-------------
;------------
GOTO LEE
SERA_DOS:
MOVLW 0X02 ; DDB = 2 ?
SUBWF DDB,W
BTFSS STATUS,0X02
GOTO SERA_TRES
DDB_DOS:
NOP
;-------------
;----FUE IGUAL ---------
;-------------
;------------
GOTO LEE
SERA_TRES:
MOVLW 0X03 ; DDB = 3 ?
SUBWF DDB,W
BTFSS STATUS,0X02
GOTO DDA_UNO
DDB_TRES:
NOP
;-------------
;-------------
;-------------
;------------
GOTO LEE
;---------------------------------------------------
DDA_UNO:
ASI SUCESIVAMENTE.
CONFIG_PORTA
BANKSEL PORTA;
CLRF PORTA; init PORTD
BANKSEL TRISA
MOVLW 0XFF
MOVWF TRISA
RETURN
CONFIG_PORTB
BANKSEL PORTB;
CLRF PORTB; init PORTD
BANKSEL TRISB
MOVLW 0XFF
MOVWF TRISB
RETURN
CONFIG_PORTC
BANKSEL PORTC;
CLRF PORTC; init PORTD
BANKSEL TRISC
MOVLW 0X00
MOVWF TRISC
RETURN
CONFIG_PORTD
BANKSEL PORTD
CLRF PORTD
BANKSEL TRISD
MOVLW 0X00
MOVWF TRISD
RETURN
;*****************************************
DELAY_5S
MOVLW 0X023
MOVWF VAR01
WWWW MOVLW 0X026
MOVWF VAR02
YYYY MOVLW 0X027
MOVWF VAR03
XXXX MOVLW 0X024
DECFSZ VAR03,
GOTO XXXX
DECFSZ VAR02
GOTO YYYY
DECFSZ VAR01
GOTO WWWW
NOP
NOP
RETURN
;******************************************
END