Ensamblador - Contador de 0 a 99 cuando pasa de 9 muestra en hexadecimal los numeros del 10 al 15

 
Vista:

Contador de 0 a 99 cuando pasa de 9 muestra en hexadecimal los numeros del 10 al 15

Publicado por Javier (1 intervención) el 06/05/2024 01:21:45
PROCESSOR 16F877A
LIST P=16F877A
#INCLUDE <P16F877A.INC>
#INCLUDE "P16F877A.INC"

;PROGRAMACION DE FUSIBLES
__CONFIG _FOSC_XT & _WDTE_OFF & _PWRTE_OFF & _BOREN_OFF & _LVP_OFF & _CPD_OFF & _WRT_OFF & _CP_OFF

CBLOCK 0X21
T0
T1
T2
T3
CONT
CONT2
ENDC

ORG 0X0
#DEFINE SUMADOR PORTC,RC5
#DEFINE RESTADOR PORTC,RC6


BANKSEL TRISB
CLRF TRISB
BANKSEL PORTB
CLRF PORTB

BANKSEL TRISC
MOVLW B'11111111'
MOVWF TRISC
BANKSEL PORTC
CLRF PORTC



INICIO


X4 BTFSS SUMADOR
GOTO X5
CALL AUMENTA
CALL RETARDO

;
X5 BTFSS RESTADOR
GOTO X4
CALL RESTA
CALL RETARDO
GOTO INICIO


FIN
MOVLW .0
MOVWF CONT2

RESETT

MOVLW .0
MOVWF CONT2
MOVLW .0
MOVWF CONT

CALL DISPLAY
CALL RETARDO
INCF CONT,F
MOVF CONT,W
XORLW 10
BTFSS STATUS, Z
GOTO $-6
INCF CONT2,F

MOVF CONT2,W
XORLW 10 ; Cambiado de .10 a 10
BTFSS STATUS,Z
GOTO RESETT
GOTO FIN


DISPLAY
SWAPF CONT2,W
ADDWF CONT,W
MOVWF PORTB
RETURN





AUMENTA
INCF CONT,F ;1
MOVF CONT,W ;0
MOVWF PORTB
RETURN

RESTA
DECF CONT,1 ;1
MOVF CONT,0 ;0
MOVWF PORTB
RETURN






;//////////////////////////////////////////////////////////////////
;///////// 1S /////////
RETARDO
MOVLW .4
MOVWF T3
X3 CALL RETARDO1
DECFSZ T3
GOTO X3
RETURN
;//////// 100mS /////////
RETARDO1
MOVLW .100
MOVWF T2
X2 CALL RETARDO2
DECFSZ T2
GOTO X2
RETURN
;//////// 1mS //////////
RETARDO2
MOVLW .249
MOVWF T1
X1 NOP
DECFSZ T1
GOTO X1
RETURN

END
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder