Autor Tema: Comportamiento raro PIC 16F88  (Leído 1931 veces)

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

Desconectado iFranco

  • PIC10
  • *
  • Mensajes: 2
Comportamiento raro PIC 16F88
« en: 09 de Noviembre de 2011, 22:39:53 »
Hola a todos:

Soy un usuario novato de los pics, y estaba realizando mis primeros pasos con ellos. Hice un programa muy basico para controlar un puente H. En la salida 0 del puerto hay ponia un 1, lo limpiaba, ponia un 1 en la salida 1 del mismo puerto y asi continua. Pensaba lograr que el motor vaya y vuelva.

Probe si funcionaba mi programa con led y estos se prendian y apagaban intermitentemente.

Cuando conecto el motor, que funciona con 12V (a la entrada del pic coloque un 7805) el pic se "tilda" y deja un alto en la salida de un solo puerto (casi siempre en PORTA 0). Y obviamente el motor solo gira en una direccion.
Alguien sabe, y me puede decir que estoy haciendo mal o que hay que tener en cuenta en estos casos? Probe con varias fuentes y siempre tengo el mismo problema, el PIC se queda ahi y no sigue con el curso del programa...

desde ya muchas gracias por las respuestas.

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: Comportamiento raro PIC 16F88
« Respuesta #1 en: 10 de Noviembre de 2011, 02:28:42 »
Publica tu programa y tu esquema para que podamos ayudarte.

Desconectado iFranco

  • PIC10
  • *
  • Mensajes: 2
Re: Comportamiento raro PIC 16F88
« Respuesta #2 en: 10 de Noviembre de 2011, 07:42:18 »
Mi programa como le habia dicho, es muy sencillo:
Citar
__CONFIG    _CONFIG1, _CP_OFF & _CCP1_RB0 & _DEBUG_OFF & _WRT_PROTECT_OFF & _CPD_OFF & _LVP_OFF & _BODEN_OFF & _MCLR_ON & _PWRTE_OFF & _WDT_OFF & _INTRC_IO


PDel0    EQU   0X30   
PDel1    EQU   0X31


ORG      0x00
GOTO   COMIENZO


COMIENZO
CALL   CONFIG1


UNO
BSF      PORTA,0
CALL   RETARDO
CALL   RETARDO
CALL   RETARDO
BCF      PORTA,0

BSF      PORTA,1
CALL   RETARDO
CALL   RETARDO
CALL   RETARDO
BCF      PORTA,1

BSF      PORTA,0
CALL   RETARDO
CALL   RETARDO
CALL   RETARDO
BCF      PORTA,0

BSF      PORTA,1
CALL   RETARDO
CALL   RETARDO
CALL   RETARDO
BCF      PORTA,1

GOTO UNO

CONFIG1       

      BANKSEL   PORTB;VOY AL BANCO 0
      CLRF      PORTB
      BANKSEL ANSEL;BANCO 1
      MOVLW   0X00
      MOVWF   ANSEL;TODAS SON ENTRADAS DIGITALES
      MOVLW   B'11110000';PUERTOB
      MOVWF   TRISB
      BANKSEL PORTA;VOY AL BANCO 0
      CLRF    PORTA
      BANKSEL ANSEL;BANCO 1
      MOVLW   0X00
      MOVWF   ANSEL;TODAS SON ENTRADAS DIGITALES
      MOVLW   B'00000000';PUERTOA
      MOVWF   TRISA
   
      BANKSEL   OSCCON
      MOVLW   B'01100000'
      MOVWF   OSCCON
      
      BANKSEL   PORTA
   
      RETURN

RETARDO
      movlw     .147      ; 1 set numero de repeticion  (B)
        movwf     PDel0     ; 1 |
PLoop1  movlw     .247      ; 1 set numero de repeticion  (A)
        movwf     PDel1     ; 1 |
PLoop2  clrwdt              ; 1 clear watchdog
PDelL1  goto PDelL2         ; 2 ciclos delay
PDelL2  goto PDelL3         ; 2 ciclos delay
PDelL3  goto PDelL4         ; 2 ciclos delay
PDelL4  clrwdt              ; 1 ciclo delay
        decfsz    PDel1, 1  ; 1 + (1) es el tiempo 0  ? (A)
        goto      PLoop2    ; 2 no, loop
        decfsz    PDel0,  1 ; 1 + (1) es el tiempo 0  ? (B)
        goto      PLoop1    ; 2 no, loop
PDelL5  goto PDelL6         ; 2 ciclos delay
PDelL6  goto PDelL7         ; 2 ciclos delay
PDelL7  goto PDelL8         ; 2 ciclos delay
PDelL8  goto PDelL9         ; 2 ciclos delay
PDelL9 
        return              ; 2+2 Fin.


END


El cicuito que use fue este, que esta exactamente asi, y si ll hago manualmente (poner 5V en la entrada A o en la entrada B el motor se mueve como debe, no funcoina cuando lo conecto al pic)



Esto es toda la informacion adicional que puedo aportar, ojala sirva para darme una ayuda. Desde ya gracias.




 

anything