Autor Tema: Pregunta Sobre PIC16F628A...  (Leído 4517 veces)

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

Desconectado DML

  • PIC10
  • *
  • Mensajes: 8
Pregunta Sobre PIC16F628A...
« en: 13 de Septiembre de 2009, 11:07:12 »
Hola...
Tengo un problema con RA4 como salida... (No es por el Open Drain le puse una resistencia a Vcc...)

El problema es que le pongo un led a RA4 y a RA2 en este caso y...

RA4 enciende (supuestamente lo dejo prendido por programa) y cuando enciendo RA2 se me apaga RA4

este es el codigo:


Código: ASM
  1. LIST   P=16F628A
  2.         include "P16F628A.inc"
  3.         errorlevel -302         ;Sin advertencias de Bancos
  4.         __CONFIG _CP_OFF & _LVP_OFF & _BODEN_OFF & _MCLRE_OFF & _WDT_OFF & _PWRTE_ON & _INTRC_OSC_NOCLKOUT
  5.                                
  6. ;****************************************************************************
  7. ;
  8. ;                                               DEFINICION DE ETIQUETAS Y VARIABLES
  9. ;
  10. ;****************************************************************************
  11.  
  12. RA0                                     EQU             0               ;RA0
  13. RA1                                     EQU             1               ;RA1
  14. RA2                                     EQU             2               ;RA2
  15. RA3                                     EQU             3               ;RA3
  16. RA4                                     EQU             4               ;RA4
  17. Ret00                           EQU             0x20
  18. Ret01                           EQU             0x21
  19.  
  20. ;****************************************************************************
  21. ;
  22. ;               +++++++++++++ ASIGNACION DE MEMORIA DE PROGRAMA ++++++++++++++
  23. ;
  24. ;****************************************************************************
  25.  
  26.  
  27.         ORG             0x000                                   ;Vector de reset del PIC16F628A
  28.         CLRF    PCLATH
  29.         GOTO    INICIAR
  30.  
  31. #define BANK0           banksel 0x00    ;Select Bank0
  32. #define BANK1           banksel 0x80    ;Select Bank1
  33. #define BANK2           banksel 0x100   ;Select Bank2
  34. #define BANK3           banksel 0x180   ;Select Bank3
  35.  
  36. INICIAR
  37.         MOVLW   0x07                                    ;Comparador
  38.         MOVWF   CMCON                                   ;deshabilitado
  39.         CLRF    T1CON
  40.         BANK1                                                   ;Selecciona banco 1
  41.         BSF             PCON, OSCF                              ;Oscilador interno a 4 MHz
  42.         MOVLW   0x20                                    ;RA5 entrada solamente...
  43.         MOVWF   TRISA
  44.         MOVLW   0xFF
  45.         MOVFW   TRISB                                   ;PORTB entradas
  46.         CLRF    VRCON                                   ;VRef apagado
  47.         CLRF    INTCON
  48.         BANK0                                                   ;Selecciona banco 0
  49.  
  50. PR
  51.  
  52.         BSF             PORTA, RA4
  53.  
  54.         MOVLW   0xFF
  55.         CALL    RETARDOS
  56.         MOVLW   0xFF
  57.         CALL    RETARDOS
  58.         MOVLW   0xFF
  59.         CALL    RETARDOS
  60.         MOVLW   0xFF
  61.         CALL    RETARDOS
  62.         MOVLW   0xFF
  63.         CALL    RETARDOS
  64.  
  65.         BSF             PORTA, RA2                              ;ACÁ SE ME APAGA RA4!!!!!!!!!!!!!!!!
  66.  
  67.         MOVLW   0xFF
  68.         CALL    RETARDOS
  69.         MOVLW   0xFF
  70.         CALL    RETARDOS
  71.         MOVLW   0xFF
  72.         CALL    RETARDOS
  73.         MOVLW   0xFF
  74.         CALL    RETARDOS
  75.         MOVLW   0xFF
  76.         CALL    RETARDOS
  77.  
  78.         BCF             PORTA, RA2
  79.  
  80.         MOVLW   0xFF
  81.         CALL    RETARDOS
  82.         MOVLW   0xFF
  83.         CALL    RETARDOS
  84.         MOVLW   0xFF
  85.         CALL    RETARDOS
  86.         MOVLW   0xFF
  87.         CALL    RETARDOS
  88.         MOVLW   0xFF
  89.         CALL    RETARDOS
  90.  
  91.        
  92.         GOTO    PR
  93.  
  94.  
  95. ;*****************************************************************************
  96. ;
  97. ;       100             Rutina para generar un Retardo dado     por el valor de W       RETARDO  
  98. ;
  99. ;*****************************************************************************
  100.  
  101. RETARDO
  102.         MOVWF   Ret00                           ;Contador de retardo
  103. RETARDO0
  104.         NOP
  105.         NOP
  106.         DECFSZ  Ret00, 1                        ;Decrementar registro
  107.         GOTO    RETARDO0                        ;Repetir retardo
  108.         RETLW   0                                       ;Regresar limpiando W
  109.  
  110. RETARDOS
  111.         MOVWF   Ret01                           ;Contador de retardo
  112. RETARDO1
  113.         MOVLW   0xFF
  114.         CALL    RETARDO
  115.         NOP
  116.         NOP
  117.         DECFSZ  Ret01, 1                        ;Decrementar registro
  118.         GOTO    RETARDO1                        ;Repetir retardo
  119.         RETLW   0                                       ;Regresar limpiando W
  120.  
  121.         END

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: Pregunta Sobre PIC16F628A...
« Respuesta #1 en: 13 de Septiembre de 2009, 11:20:16 »
Hola, solo se me ocurre que se apague RA4 porque no estés conectando una R de 220ohms a RA2. Y la corriente se vaya completamente a RA4.  :z)

Desconectado DML

  • PIC10
  • *
  • Mensajes: 8
Re: Pregunta Sobre PIC16F628A...
« Respuesta #2 en: 13 de Septiembre de 2009, 11:41:20 »
Hola, solo se me ocurre que se apague RA4 porque no estés conectando una R de 220ohms a RA2. Y la corriente se vaya completamente a RA4.  :z)

Gracias por tu respuesta...

cuando yo me refiero a que le pongo un led es con resistencia y todo (1k)

no es ese el problema...

es un problema con el BSF, cuando trato de modificar solo un bit

Si yo en vez de usar BSF sobre el puerto, lo hago en un temp y lo cargo en el puerto despues, funciona...

Código: ASM
  1. BSF     Temp_0, RA4
  2. BSF     Temp_0, RA2
  3. MOVFW   Temp_0
  4. MOVWF   PORTA



Desconectado tapi8

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1506
Re: Pregunta Sobre PIC16F628A...
« Respuesta #3 en: 13 de Septiembre de 2009, 12:18:22 »
No tienes que hacer BCF PORTA,4 al estar a +5v el pin tiene que hacer de masa, no?

Desconectado jim_17

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 309
    • Blog personal
Re: Pregunta Sobre PIC16F628A...
« Respuesta #4 en: 13 de Septiembre de 2009, 13:28:39 »
Claro, eso depende de la manera en que hayas conectado el LED. ¿ Lo has echo en serie con la pata del pic o lo has echo mediante una resistencia pull-up ?
Pon un esquema rápido de las conexiones que tienes hechas en ambas patillas y lo vemos. ¿ Has probado de simularlo en algún simulador ?

Salu2.
« Última modificación: 13 de Septiembre de 2009, 13:31:57 por jim_17 »
Share the world !

Blog's

http://www.area0x33.com

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Pregunta Sobre PIC16F628A...
« Respuesta #5 en: 13 de Septiembre de 2009, 14:08:10 »
tapi8  y jim_17 aquí el problema es otro, la cuestión es que actúa sobre el pin RA2 y se modifica el estado del pin RA4  :z) Muéstranos en esquema para analizarlo, pero no se me ocurre porque!  :undecided:
No contesto mensajes privados, las consultas en el foro

Desconectado DML

  • PIC10
  • *
  • Mensajes: 8
Re: Pregunta Sobre PIC16F628A...
« Respuesta #6 en: 13 de Septiembre de 2009, 15:58:06 »
Hola...
Gracias a todos, ya resolví el problema busque en internet y encontre que esto:

•En modelos más antiguos de PIC, el pin RA4 es una salida "open drain". Si el búfer de salida de RA4 es '1', pero el pin es llevado externamente a "low", cualquier instrucción que modifica otro pin de PORTA va a tener el efecto colateral de cambiar el búfer de salida de RA4 a '0'. De este manera, el conductor ahora es mantenido en "low" por el PIC.

al cargarle mucho el RA4 (con pull-up de 1K) y el led con 330 se me venia a bajo cuando modificaba el Port

Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5544
    • Picmania by Redraven
Re: Pregunta Sobre PIC16F628A...
« Respuesta #7 en: 13 de Septiembre de 2009, 18:09:25 »
Lamento haber llegado tarde a este hilo pero aquí te dejo algo por si te interesa leertelo. El PORTA de los PIC's y una de sus particularidades : RA4
Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania


 

anything