TODOPIC
Microcontroladores PIC => * PROYECTOS * => Mensaje iniciado por: Angel Zavala Ocaña en 18 de Noviembre de 2020, 13:03:14
-
Buen día, necesito de sus ayuda para hacer que pueda decrementar el conteo del 0-9 ya que solo incrementa y no he logrado hacer que decremento, intenté hacer lo inverso del incremento, pero no me funcionó o quizá no lo hice del todo bien, la programación que tengo es la siguiente:
list p=16F84A
#include <P16F84A.INC>
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
Boton EQU 0
ContadorDisplay EQU 0x0C
RContadorA EQU 0x0D
RContadorB EQU 0x0E
RESET org 0x00
goto Inicio
org 0x05
TABLA7SEG:
addwf PCL,1
retlw b'0111111' ; 0
retlw b'0000110' ; 1
retlw b'1011011' ; 2
retlw b'1001111' ; 3
retlw b'1100110' ; 4
retlw b'1101101' ; 5
retlw b'1111101' ; 6
retlw b'0000111' ; 7
retlw b'1111111' ; 8
retlw b'1101111' ; 9
clrf ContadorDisplay
retlw b'0111111' ; 0
Inicio
bsf STATUS,RP0
movlw b'00000000'
movwf TRISB
movlw b'00001'
movwf TRISA
bcf STATUS,RP0
movlw b'0111111'
movwf PORTB
clrf ContadorDisplay
Testeo
btfss PORTA,Boton
goto Testeo
call Retardo_20ms
btfss PORTA,Boton
goto Testeo
incf ContadorDisplay,1
movfw ContadorDisplay
call TABLA7SEG
movwf PORTB
btfsc PORTA,Boton
goto $-1
call Retardo_20ms
btfsc PORTA,Boton
goto $-4
goto Testeo
Retardo_20ms
movlw d'20'
goto Retardo_ms
Retardo_ms
movwf RContadorB
Retardo_BucleExterno
movlw d'249'
movwf RContadorA
Retardo_BucleInterno
nop
decfsz RContadorA,F
goto Retardo_BucleInterno
decfsz RContadorB,F
goto Retardo_BucleExterno
return
end
-
Hola,
Dentro de la rutina de testeo, para incrementar el valor del registro "ContadorDisplay" estas utilizando la instrucción "INCF".
Para decrementar el registro debes de utilizar la instrucción "DECF". Claro que previamente deberías de tener asignado un valor inicial al registro, en caso contrario si antes del incremento lo tenias con el valor =0, al decrementarse pasará a tener el valor 255, luego 254 y así sucesivamente.
F.
-
Hola, sabe cómo podría asignar ese valor inicial al registro, no soy muy bueno en esto xc
-
movlw TU_VALOR
movwf TU_REGISTRO
-
Hola, sabe cómo podría asignar ese valor inicial al registro, no soy muy bueno en esto xc
Yo pensaba que el programa estaba en ASM.
-
Esta en ASM.
No se si el xc era una "carita" o tal vez sea que lo esta usando desde el compilador XC, debido a que desde no recuerdo que version del MPLAB X no posee mas el compilador de ASM incorporado.
-
Una disculpa, el xc es una carita _:D