Autor Tema: URGENTE  (Leído 1486 veces)

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

Desconectado pimai

  • PIC10
  • *
  • Mensajes: 4
URGENTE
« en: 16 de Enero de 2006, 15:38:00 »
hola de nuevo.. ya siento por ser tan pesada .. pero tengo todavia mas dudas!!

Ayer me solucionasteis y tenias razón lo de poner que fueran entradas o salidas pero… me sigue dando errores.

Mi programa consistía en que con dos pulsadores (grados y minutos) iban cada uno por su parte; cada pulsador iba incrementando de uno en uno y
luego, y si activábamos un interruptor decrementa solo los minutos, cuando este llega a cero, se enciende el led.

He probado en simularlo en el proteuss, creo q  esta bien montado... pero con este programa que e cargado lo unico que me hace es que los dos contadores(minutos y grados) vayan inrementando solos los dos a la vez.

Por favor, si alguien me sabe solucionar el programa un poco mas.. se lo agradecería. Es bastante urgente e importante que me salga; pero es que ya no se como arreglarlo mas!! no se si esta mal, lo de descender.. no se como hacer para que me funcionen los pulsadores por separado.. me estoy volviendo loka desquiciado!

Adjunto el programa por si alguien me puede ayudar!! GRACIAS Flash


   list p=16F84A
      #include "P16F84A.inc"

CONTG   EQU       0x0C   
CONTM   EQU       0x0D   
CONTDES   EQU      0x0E
TEMP1      EQU      0x0F   
TEMP2      EQU      0x10

   org   0x000
      GOTO      INICIO   
   org   0x004
      GOTO      INTER   
   org   0x005

INICIO      BSF      STATUS,RP0   
      CLRF      TRISB   
      MOVLW      B"00000111"
      MOVWF      TRISA      
      MOVLW      B"00000101"
      MOVWF      OPTION_REG
      MOVLW      B"10100000"
      MOVWF      INTCON   
      BCF      STATUS,RP0   

      CLRF      GRADOS
      CLRF      MINUTOS   

BUCLE      BTFSC      PORTA,0   
      CALL      GRADOS   
      BTFSC      PORTA,1   
      CALL      MINUTOS   
      BTFSC      PORTA,2   
      CALL      DESCENDER   
      GOTO      BUCLE

GRADOS      CALL       ESPERA30MS   
      INCF      CONTG,F   
      MOVLW      0x0A      
      SUBWF      CONTG,W   
      BTFSC      STATUS,Z   
      CLRF      CONTG   
      BTFSC      PORTA,0   
      GOTO      $-1      
      CALL      ESPERA30MS
      RETURN

MINUTOS      CALL      ESPERA30MS   
      INCF      CONTM,F   
      MOVLW      0x0A
      SUBWF      CONTM,W   
      BTFSC      STATUS,Z   
      CLRF      CONTM   
      BTFSC      PORTA,1   
      GOTO      $-1      
      CALL      ESPERA30MS   
      RETURN

DESCENDER   CALL      ESPERA30MS
      DECF      CONTDES,F
      MOVLW      0x00
      SUBWF      CONTDES,W   
      BTFSC      STATUS,Z   
      DECFSZ      CONTDES      
      GOTO      $-2
      BSF      PORTB,7   
      CALL      ESPERA30MS
      RETURN

INTER      BCF      INTCON,T0IF   
      BTFSS      PORTA,3
      GOTO      VERGRADOS   
      GOTO       VERMINUTOS

VERGRADOS   BCF      PORTA,4   
      MOVFW      CONTG      
      CALL      SIETESEG
      MOVWF      PORTB      
      BSF      PORTA,3   
      RETFIE            

VERMINUTOS   BCF      PORTA,3   
      MOVFW      CONTM   
      CALL      SIETESEG   
      MOVWF      PORTB   
      BSF      PORTA,4   
      RETFIE         

SIETESEG   ADDWF      PCL,F
      RETLW      B"10111111"
      RETLW      B"10000110"
      RETLW      B"11011011"
      RETLW      B"11001111"
      RETLW      B"11100110"
      RETLW      B"11101101"
      RETLW      B"11111101"
      RETLW      B"10000111"
      RETLW      B"11111111"
      RETLW      B"11100111"

ESPERA30MS   MOVLW      .40
      MOVWF      TEMP1
      DECFSZ      TEMP1,F
      GOTO      $+2
      RETURN
      CLRF      TEMP2
      DECFSZ      TEMP2,F
      GOTO      $-1
      GOTO      $-6

   END

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
RE: URGENTE
« Respuesta #1 en: 16 de Enero de 2006, 20:14:00 »
Hola. ¿se incrementan solos? A ver si aca esta el error:

BUCLE BTFSC PORTA,0
CALL GRADOS
BTFSC PORTA,1
CALL MINUTOS
BTFSC PORTA,2
CALL DESCENDER
GOTO BUCLE

¿que tipo de pulsadores estas utilizando?Fijate que segun tu programa, cuando NO estas presionando el pulsador, los pines correspondientes del PUERTOA deben estar en bajo(0) Para lograr esto deberias por ejemplo estar utilizando pulsadores NC, y enviando masa constantemente.Y cuando presionas el boton, el pulsador pasa a estado NA, y ahi deberias tener una pull up colocada para que el pin pase a alto.
Otra opcion es poner una "pull down"(resistencia desde el pin a masa) y utilizando un pulsador NA conectado a 5v.

Te recomiendo:

BUCLE BTFSS PORTA,0
CALL GRADOS
BTFSS PORTA,1
CALL MINUTOS
BTFSS PORTA,2
CALL DESCENDER
GOTO BUCLE

Y en esos 3 pines del puerto A colocar una pull up por pin (resistencia de 10k por ej. Una pata de la resistencia va conectada al pin, y la otra a 5v. La conexion al pin debe estar luego del pulsador, es decir, mas cercana al pin del PIC.)
A los pulsadores NA los conectas a 0v.

Tambien deberias modificar esto si sigues mi consejo:

GRADOS CALL ESPERA30MS
INCF CONTG,F
MOVLW 0x0A
SUBWF CONTG,W
BTFSC STATUS,Z
CLRF CONTG
BTFSS PORTA,0
GOTO $-1
CALL ESPERA30MS
RETURN

MINUTOS CALL ESPERA30MS
INCF CONTM,F
MOVLW 0x0A
SUBWF CONTM,W
BTFSC STATUS,Z
CLRF CONTM
BTFSS PORTA,1
GOTO $-1
CALL ESPERA30MS
RETURN


Por ahi ese es el problema de que se autoincrementen...

Otra cosita:fijate que seguis comentiendo el mismo error que te mencione anteriormente en el RA3:

INICIO BSF STATUS,RP0
CLRF TRISB
MOVLW B"00000111" ;configuraste RA3 como salida
MOVWF TRISA

INTER BCF INTCON,T0IF
BTFSS PORTA,3     ;aca lees el estado del RA3 como si lo hubieses configurado como entrada


VERGRADOS BCF PORTA,4
MOVFW CONTG
CALL SIETESEG
MOVWF PORTB
BSF PORTA,3      ;aca seteas a 1 el RA3, utilizandolo como salida
RETFIE


Cuando disponga de un poquito mas de tiempo, si puedo, te ayudo para que te funcione de una buena vez por todas.
No desesperes, manten la cordura, que quedan pocas personas cuerdas...Sonrisa GiganteSonrisa GiganteSonrisa GiganteRebotado
Exitos
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Desconectado pimai

  • PIC10
  • *
  • Mensajes: 4
RE: URGENTE
« Respuesta #2 en: 24 de Enero de 2006, 13:11:00 »
Hola a todos!!

Ya lo siento, no he podido contestar antes. Pero es que he estado muy liada  solo queria escribir para daros las gracias por vuestra ayuda.

Al final con los cambios que me recomendaste que hiciera y unos cuantos retoques mas, ya me salio en el proteus, es decir, me salió proyecto a la perfeccioón!! Flash

El foro esta muy bien, ya que con vuestra ayuda he solucionado todo!!
Muchas gracias de verdad, nos vemos!!

Agur!!! Sonrisa

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
RE: URGENTE
« Respuesta #3 en: 24 de Enero de 2006, 18:13:00 »
Pues de nada!Sonrisa GiganteSonrisa GiganteSonrisa Gigante Eres siempre bienvenida)Muchas risas
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.


 

anything