Autor Tema: Contador 0-9 Incremento y decremento  (Leído 159 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Angel Zavala Ocaña

  • PIC10
  • *
  • Mensajes: 3
Contador 0-9 Incremento y decremento
« 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

Desconectado Fer_TACA

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3646
Re:Contador 0-9 Incremento y decremento
« Respuesta #1 en: 18 de Noviembre de 2020, 14:26:58 »
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.

Desconectado Angel Zavala Ocaña

  • PIC10
  • *
  • Mensajes: 3
Re:Contador 0-9 Incremento y decremento
« Respuesta #2 en: 18 de Noviembre de 2020, 17:19:23 »
Hola, sabe cómo podría asignar ese valor inicial al registro, no soy muy bueno en esto xc

Conectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 7950
Re:Contador 0-9 Incremento y decremento
« Respuesta #3 en: 18 de Noviembre de 2020, 17:40:25 »
Código: ASM
  1.    movlw   TU_VALOR
  2.    movwf   TU_REGISTRO

Desconectado Fer_TACA

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3646
Re:Contador 0-9 Incremento y decremento
« Respuesta #4 en: 18 de Noviembre de 2020, 19:13:20 »
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.

Conectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 7950
Re:Contador 0-9 Incremento y decremento
« Respuesta #5 en: 18 de Noviembre de 2020, 19:16:06 »
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.

Desconectado Angel Zavala Ocaña

  • PIC10
  • *
  • Mensajes: 3
Re:Contador 0-9 Incremento y decremento
« Respuesta #6 en: 18 de Noviembre de 2020, 19:57:47 »
Una disculpa, el xc es una carita  _:D