Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

14/09/2013 #1

Avatar de dario9669

Problema en contador sumador con pic de 0 a 999
Hola. Necesito terminar un proyecto de un contador con un pic16f84, tengo un código en assembler lo probé y anda bien, es un contador ascendente y descendente con pulsadores, el inconveniente es que cuando se pulsa el pulsador de suma, solo suma 1 y si se mantiene apretado se queda ahí, no sigue subiendo.
Lo que estoy necesitando es que cuando se pulsa sume 1 y sin soltar después de 1 segundo comience a subir rápido hasta que se suelte.
Habría que modificar solo eso, pido ayuda a quien me pueda dar una mano ya que no estoy ducho en esto de programar.
El código es este:

Código:
LIST P=16F84A    
#include "P16F84A.INC"
__CONFIG _WDT_OFF &_XT_OSC &_PWRTE_ON &_CP_OFF
;
LSB    EQU    H'0021'
MSB    EQU    H'0022'
SAYI1    EQU    H'0023'
SAYI2    EQU    H'0024'
SAYI3    EQU    H'0025'
SAYI4    EQU    H'0026'
SAYI5    EQU    H'0027'
DEGER    EQU    H'0028'
BIR    EQU    H'0029'
ON    EQU    H'002A'
YUZ    EQU    H'002B'
BIN    EQU    H'002C'
RAKAM    EQU    H'002D'
RAKAM1    EQU    H'002E'
TEMP    EQU    H'002F'
;-------------
BASLA
CLRF     MSB
CLRF     LSB
BSF     STATUS,5
MOVLW B'11110000'
MOVWF TRISA
MOVLW B'10000000'    
MOVWF     TRISB
BCF     STATUS,5
CLRF    PORTB
CLRF    PORTA
CLRF    BIR
CLRF    ON
CLRF    YUZ
CLRF    BIN
CLRF    SAYI1
CLRF    SAYI2
CLRF    SAYI3
CLRF    SAYI4 
GOTO    ANA
;-----------
ART
INCF    BIR,F
MOVLW    .10
SUBWF    BIR,W
BTFSS    STATUS,Z
GOTO    ASON
CLRF    BIR
INCF    ON,F
MOVLW    .10
SUBWF    ON,W
BTFSS    STATUS,Z
GOTO    ASON
CLRF    ON
INCF    YUZ,F
MOVLW    .10
SUBWF    YUZ,W
BTFSS    STATUS,Z
GOTO    ASON
CLRF    YUZ
INCF    BIN,F
MOVLW    .10
SUBWF    BIN,W
BTFSS    STATUS,Z
GOTO    ASON
CLRF    BIN
ASON
CALL    EKRAN
BTFSS    PORTB,7
GOTO    ASON
GOTO    ANA
;-----------
AZAL
MOVLW    .1
SUBWF    BIR,F
BTFSC    STATUS,C
GOTO    ESON
CLRF    BIR
MOVLW    .1
SUBWF    ON,F
BTFSC    STATUS,C
GOTO    BIR9
CLRF    ON
MOVLW    .1
SUBWF    YUZ,F
BTFSC    STATUS,C
GOTO    ON9
CLRF    YUZ
MOVLW    .1
SUBWF    BIN,F
BTFSC    STATUS,C
GOTO    YUZ9
CLRF    BIN
GOTO    ESON
;----------
YUZ9
MOVLW    .9
MOVWF    YUZ
ON9
MOVLW    .9
MOVWF    ON
BIR9
MOVLW    .9
MOVWF    BIR
ESON
CALL    EKRAN
BTFSS    PORTA,4
GOTO    ESON
GOTO    ANA
;-----------
ANA
CALL    EKRAN
BTFSS    PORTA,4
GOTO    AZAL
BTFSS    PORTB,7
GOTO    ART
GOTO    ANA
;----------
EKRAN
MOVLW    .5
MOVWF    RAKAM
CLRF    PORTB
MOVLW    .255
MOVWF    PORTA
GOSTER
BCF    PORTA,0
BSF    PORTA,1
BSF    PORTA,2
BSF    PORTA,3
MOVF BIR,W
CALL    TABLO
MOVWF PORTB
CALL    GECIKME
CALL    GECIKME
CLRF    PORTB
BSF    PORTA,0
BCF    PORTA,1
BSF    PORTA,2
BSF    PORTA,3
MOVF ON,W
CALL    TABLO
MOVWF PORTB
CALL    GECIKME
CLRF    PORTB
BSF    PORTA,0
BSF    PORTA,1
BCF    PORTA,2
BSF    PORTA,3
MOVF YUZ,W
CALL    TABLO
MOVWF PORTB
CALL    GECIKME
CLRF    PORTB
BSF    PORTA,0
BSF    PORTA,1
BSF    PORTA,2
BCF    PORTA,3
MOVF BIN,W
CALL    TABLO
MOVWF PORTB
CALL    GECIKME
DECFSZ    RAKAM,F
GOTO    GOSTER
RETURN
GECIKME
MOVLW    .5
MOVWF    MSB
D11    
MOVLW    .55
MOVWF    LSB
D22
DECFSZ    LSB,F
GOTO    D22
DECFSZ    MSB,F
GOTO    D11
RETURN
TABLO
ADDWF    PCL,F
RETLW    h'3F'
RETLW    h'06'
RETLW    h'5B'
RETLW    h'4F'
RETLW    h'66'
RETLW    h'6D'
RETLW    h'7D'
RETLW    h'07'
RETLW    h'7F'
RETLW    h'6F'
RETLW    h'77'
RETLW    h'7C'
RETLW    h'39'
RETLW    h'5E'
RETLW    h'79'
RETLW    h'71'
RETLW    h'80'

;-------------------------------------------------------------------

END
Desde ya, gracias al que me pueda ayudar.
15/09/2013 #2


Hola Dario. De ansambler nada de nada, pero por si te sirve creo que al pulsar debería quedar algo como:
sumar
si tecla pulsada
incrementar contador
demora
go to sumar
sino
return
Así cada vez que reingrese y encuentre la tecla presionada sumara 1 sino saldrá a leer o lo que sea.
Si no te ha sido util disculpa y espero logres tu proyecto. Un abrazo
15/09/2013 #3

Avatar de dario9669

lucegiar2005 dijo: Ver Mensaje
Hola Dario. De ansambler nada de nada, pero por si te sirve creo que al pulsar debería quedar algo como:
sumar
si tecla pulsada
incrementar contador
demora
go to sumar
sino
return
Así cada vez que reingrese y encuentre la tecla presionada sumara 1 sino saldrá a leer o lo que sea.
Si no te ha sido util disculpa y espero logres tu proyecto. Un abrazo
gracias de todos modos
10/11/2013 #4


hola.. quiza podrias fijarte que sea automatico, con la bandera de Z que haga resta y cambie de unidad a decena y asi seguidamente. yo necesito algo asi tambien pero se me complica no puedo avanzar. perdon que no te haga algo en codigo pero la idea está. saludos
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.