Hola chicos estoy haciendo una practica y pues verán intento hace que un teclado matricial con pushbottom me genere números del 1 al 16 en en display pero solo eh logrado hasta el nueve tengo duda pues intente una subrutina time 3 para que se pase al otro display uso el compilador mplab pic 16f886 no se exactamente en que estoy mal les dejo el programa para que checen y si encuentran el error díganme por favor gracias por cierto les dejo el diagrama en isis para que sepan que hice es un pequeño detalle no se por que me marca errores den la parte de
DIEZ (por ejemplo)
MOVLW D'5'
Aquí me marca en error en todas del 10 al 15 MOVWF OX23
También les dejo el archivo en MPLAB
.........................
DIEZ (por ejemplo)
MOVLW D'5'
Aquí me marca en error en todas del 10 al 15 MOVWF OX23
También les dejo el archivo en MPLAB
.........................
Código:
list p=16f886 ; list directive to define processor
#include <p16f886.inc> ; processor specific variable definitions
; '__CONFIG' directive is used to embed configuration data within .asm file.
; The labels following the directive are located in the respective .inc file.
; See respective data sheet for additional information on configuration word.
__CONFIG _CONFIG1, _LVP_OFF & _FCMEN_ON & _IESO_OFF & _BOR_OFF & _CPD_OFF & _CP_OFF & _MCLRE_ON & _PWRTE_ON & _WDT_OFF & _INTRC_OSC_NOCLKOUT
__CONFIG _CONFIG2, _WRT_OFF & _BOR21V
RESET_VECTOR CODE 0x0000 ; processor reset vector
nop
goto start ; go to beginning of program
INT_VECTOR CODE 0x0004 ; interrupt vector location
start
MOVLW 0X20
MOVWF STATUS
CLRF TRISA
MOVLW B'11110000'
MOVWF TRISB
CLRF TRISC
MOVLW 0X60
MOVWF STATUS
CLRF ANSEL
CLRF ANSELH
CLRF STATUS
PROG
MOVLW B'11111110'
MOVWF PORTB
CALL PREG
MOVLW B'11111101'
MOVWF PORTB
CALL PREG1
MOVLW B'11111011'
MOVWF PORTB
CALL PREG2
MOVLW B'11110111'
CALL PREG3
MOVLW B'11101111'
CALL PREG4
MOVLW B'11101111'
GOTO PROG
MAIN_PROG
TIME
MOVLW D'2'
MOVWF 0X21
TIME1
MOVLW D'100'
MOVWF 0X22
TIME2 NOP
NOP
NOP
DECFSZ 0X22
GOTO TIME2
DECFSZ 0X21
GOTO TIME1
RETURN
TIME3
MOVLW D'100'
MOVWF 0X25
TIME4 NOP
NOP
NOP
DECFSZ 0X25
GOTO TIME4
RETURN
PREG
BTFSS PORTB,4
CALL TRES
BTFSS PORTB,5
CALL DOS
BTFSS PORTB,6
CALL UNO
BTFSS PORTB,7
CALL CERO
RETURN
PREG1
BTFSS PORTB,4
CALL SIETE
BTFSS PORTB,5
CALL SEIS
BTFSS PORTB,6
CALL CINCO
BTFSS PORTB,7
CALL CUATRO
RETURN
PREG2
BTFSS PORTB,4
CALL ONCE
BTFSS PORTB,5
CALL DIEZ
BTFSS PORTB,6
CALL NUEVE
BTFSS PORTB,7
CALL OCHO
RETURN
PREG3
BTFSS PORTB,4
CALL TRECE
BTFSS PORTB,5
CALL DOCE
BTFSS PORTB,6
CALL ONCE
BTFSS PORTB,7
CALL DIEZ
RETURN
PREG4
BTFSS PORTB,4
CALL QUINCE
BTFSS PORTB,5
CALL CATORCE
RETURN
CERO
MOVLW B'00111111'
MOVWF PORTA
MOVLW B'00000010'
MOVWF PORTC
CALL TIME
RETURN
UNO
MOVLW B'00000110'
MOVWF PORTA
MOVLW B'00000010'
MOVWF PORTC
CALL TIME
RETURN
DOS
MOVLW B'01011011'
MOVWF PORTA
MOVLW B'00000010'
MOVWF PORTC
CALL TIME
RETURN
TRES
MOVLW B'01001111'
MOVWF PORTA
MOVLW B'00000010'
MOVWF PORTC
CALL TIME
RETURN
CUATRO
MOVLW B'01100110'
MOVWF PORTA
MOVLW B'00000010'
MOVWF PORTC
CALL TIME
RETURN
CINCO
MOVLW B'01101101'
MOVWF PORTA
MOVLW B'00000010'
MOVWF PORTC
CALL TIME
RETURN
SEIS
MOVLW B'01111101'
MOVWF PORTA
MOVLW B'00000010'
MOVWF PORTC
CALL TIME
RETURN
SIETE
MOVLW B'00000111'
MOVWF PORTA
MOVLW B'00000010'
MOVWF PORTC
CALL TIME
RETURN
OCHO
MOVLW B'01111111'
MOVWF PORTA
MOVLW B'00000010'
MOVWF PORTC
CALL TIME
RETURN
NUEVE
MOVLW B'01101111'
MOVWF PORTA
MOVLW B'00000010'
MOVWF PORTC
CALL TIME
RETURN
DIEZ
MOVLW D'5'
MOVWF OX23
DIEZ1
MOVLW B'00100000'
MOVWF PORTA
MOVLW B'11000000'
MOVWF PORTC
CALL TIME3
MOVLW B'0001000'
MOVWF PORTA
MOVLW B'11111100'
MOVWF PORTC
CALL TIME3
DECFSZ 0X23
GOTO DIEZ1
RETURN
ONCE
MOVLW D'5'
MOVWF OX22
ONCE1
MOVLW B'00100000'
MOVWF PORTA
MOVLW B'11000000'
MOVWF PORTC
CALL TIME3
MOVLW B'0001000'
MOVWF PORTA
MOVLW B'11000000'
MOVWF PORTC
CALL TIME3
DECFSZ 0X23
GOTO ONCE1
RETURN
DOCE
MOVLW D'5'
MOVWF OX22
DOCE1
MOVLW B'00100000'
MOVWF PORTA
MOVLW B'11000000'
MOVWF PORTC
CALL TIME3
MOVLW B'0001000'
MOVWF PORTA
MOVLW B'10110110'
MOVWF PORTC
CALL TIME3
DECFSZ 0X23
GOTO DOCE1
RETURN
TRECE
MOVLW D'5'
MOVWF OX22
TRECE1
MOVLW B'00100000'
MOVWF PORTA
MOVLW B'11000000'
MOVWF PORTC
CALL TIME3
MOVLW B'0001000'
MOVWF PORTA
MOVLW B'11100110'
MOVWF PORTC
CALL TIME3
DECFSZ 0X23
GOTO TRECE1
RETURN
CATORCE
MOVLW D'5'
MOVWF OX22
CATORCE1
MOVLW B'00100000'
MOVWF PORTA
MOVLW B'11000000'
MOVWF PORTC
CALL TIME3
MOVLW B'0001000'
MOVWF PORTA
MOVLW B'01101110'
MOVWF PORTC
CALL TIME3
DECFSZ 0X23
GOTO CATORCE1
RETURN
QUINCE
MOVLW D'5'
MOVWF OX22
QUINCE1
MOVLW B'00100000'
MOVWF PORTA
MOVLW B'11000000'
MOVWF PORTC
CALL TIME3
MOVLW B'0001000'
MOVWF PORTA
MOVLW B'01101110'
MOVWF PORTC
CALL TIME3
DECFSZ 0X23
GOTO QUINCE1
RETURN
END
Adjuntos
Última edición: