Autor Tema: Problemas con la temporizacion del TMR0  (Leído 1529 veces)

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

Desconectado G3rard0

  • PIC10
  • *
  • Mensajes: 1
Problemas con la temporizacion del TMR0
« en: 04 de Noviembre de 2010, 18:59:35 »
hola a todos. de ante mano gracias a aquellos q den su opinion.

mi problema es que estoy haciendo un contador temporizador con TMR0 en un PIC16F84 y el programa MPLAB al momento de ejecutar el programa el no me da errores en MPLAB ya que este no me chequea la logica con la que estoy trabajando lo compilo hago todo para crear el archivo .hex para despues cargarlo al montaje que esta hecho en el proteus el problema esta en que se supone que debe hacer el conteo descendiente de 8 a 0 en 8 segundos es decir cada 1 segundo debe dar un cambio pero no lo hace al momento que graba el primer valor que es el 8 se va a cero a una velocidad demasiado alta porq noc estoy trabajando con una frecuencia de 1Mhz ya los calculos de cuantas veces tiene el TMR0 que hacer el desbordamiento para que cuente un segundo lo he hecho demas de veces por lo que creo q el error esta en la logica aki esta el programa que estoy tratando de que me de.

estoy usando un display de anodo comun. me explicare de que se quiere: al momento de que el pic recibe un pulso que viene por la entrada en este caso RA0 se debe encender el led al mismo tiempo se activa el conteo regresivo que va de 1 en 1 segundo y que el display iniciara en 8 despues de llegar a 0 se apaga todo el display y el led.

noce porque despues del primer valor se va a cero tan rapido creo es algo que me vino a la cabeza que habria que crearle subrutinas en las que despues de grabar el primer valor valla a ellas y se quede esperando que pase un segundo y siga el conteo regresivo pero noc si es eso o algo que este mal en la logica agradesco cualque ayuda que se pueda prestas.



          LIST P=16F84
   #INCLUDE "P16F84.INC"
   AUX1 EQU 0C
   AUX2 EQU 1C
   ORG 0
   GOTO INICIO
   ORG 04
   GOTO INT
   ORG 5
INICIO    BSF STATUS, RP0      
   MOVLW b'00000001'
   MOVWF TRISA
   CLRF TRISB
   MOVLW b'00000111'
   MOVWF 81
   BCF STATUS, RP0
   MOVLW b'01111111'
        MOVWF PORTB
        CLRF PORTA
   CLRF PORTB
   CLRF AUX1
   CLRF AUX2
Ciclo   BTFSS PORTA, 0
   GOTO CICLO
   CONFIGURA
   MOVLW b'10100000'
   MOVWF INTCON
   MOVLW D'217'
   MOVWF TMR0
   MOVLW D'25'
   MOVWF AUX2
   MOVLW D'8'
   MOVWF AUX1   
   BSF PORTA, 1
   MOVLW B'00110000'
   MOVWF PORTB
CICLO1
   GOTO CICLO1
   INT DECFSZ AUX2
   GOTO RTT
   MOVF AUX1, W
   SUBLW D'0'
   BTFSC STATUS, Z
   GOTO PON0   
   MOVF AUX1, W
   SUBLW D'1'
   BTFSC STATUS, Z
   GOTO PON1
   MOVF AUX1, W
   SUBLW D'2'
   BTFSC STATUS, Z
   GOTO PON2
   MOVF AUX1, W
   SUBLW D'3'
   BTFSC STATUS, Z
   GOTO PON3   
   MOVF AUX1, W
   SUBLW D'4'
   BTFSC STATUS, Z
   GOTO PON4
   MOVF AUX1, W
   SUBLW D'5'
   BTFSC STATUS, Z
   GOTO PON5   
   MOVF AUX1, W
   SUBLW D'6'
   BTFSC STATUS, Z
   GOTO PON6   
   MOVF AUX1, W
   SUBLW D'7'
   BTFSC STATUS, Z
   GOTO PON7   
   MOVF AUX1, W
   SUBLW D'8'
   BTFSC STATUS, Z
   GOTO PON8       
PON0 MOVLW B'01000000'
   MOVWF PORTB
   CLRF INTCON
   CLRF PORTA
   GOTO CICLO 
PON1 MOVLW B'01110011'
   MOVWF PORTB
   GOTO RC 
PON2 MOVLW B'00001001'
   MOVWF PORTB
   GOTO RC 
PON3 MOVLW B'00100001'
   MOVWF PORTB
   GOTO RC 
PON4 MOVLW B'00110010'
   MOVWF PORTB
   GOTO RC
PON5 MOVLW B'00100100'
   MOVWF PORTB
   GOTO RC 
PON6 MOVLW B'00000100'
   MOVWF PORTB
   GOTO RC
PON7 MOVLW B'01110001'
   MOVWF PORTB
   GOTO RC 
PON8 MOVLW B'00000000'
   MOVWF PORTB
   GOTO RC 
RTT   MOVLW D'217'
   MOVWF TMR0
   GOTO FIN
RC    MOVLW D'217'
   MOVWF TMR0
   MOVLW D'25'
   MOVWF AUX2
   DECF AUX1
FIN
RETFIE
end
 


 

anything