Autor Tema: Pic 16F628A no Funciona  (Leído 6789 veces)

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

Desconectado Goodfrey

  • PIC12
  • **
  • Mensajes: 87
Pic 16F628A no Funciona
« en: 25 de Febrero de 2010, 12:59:20 »
Disculpen las molestias, ya e usado el buscador para ver si consigo una solucion a mi problema pero nada...

solo me estoy inicializando con este pic e usado el PIC16F84A para programar y me va muy bien... pero ahora me piden que programe con el 628 en assembler....

pero estoy molesto por que no puedo dar con la solucion, y de seguro es algo tan tonto como el mismo codigo....

lo unico que intento hacer es declarar puertos y cambio de banco para que simplemente cuando inicialize el micro me encienda un led en Portb,0 mas nada

pero siempre me da error.... algo estoy haciendo mal... y quisiera su ayuda para solventar este problema....

Cuando complio en proteus me da un error de libreria... uso PROTEUS 7.5 SP3

Aqui pongo el codigo para ver que puede ser....

Citar
; **** Encabezado ****

LIST    P=16F628A
#INCLUDE P16F628A.INC            ; processor specific variable definitions

;**** Definiciones para el ensamblador ****

PDel1      equ   20h
PDel0      equ   21h

;**** Inicio del Micro ****

RESET   ORG    0x00             ; Aquí comienza el micro.-
   CALL   CONFI
   GOTO   INICIO            ; Salto a inicio de mi programa.-
   ORG   0x05   
                  ; Origen del codigo de programa.-
CONFI   BCF   STATUS,   RP1
   BSF   STATUS,   RP0
   MOVLW   B'11111'
   MOVWF   TRISA
   MOVLW   B'00000000'
   MOVWF   TRISB
   BCF   STATUS,RP0
   BCF   STATUS,RP1

INICIO   
   BSF   PORTB,0
   CALL   DEMORA
   BCF   PORTB,0
   GOTO   INICIO

DEMORA  movlw   .197               ; 1 set numero de repeticion  (B)
        movwf   PDel0             ; 1 |
   PLoop1   movlw     .253            ; 1 set numero de repeticion  (A)
          movwf   PDel1              ; 1 |
   PLoop2  clrwdt                       ; 1 clear watchdog
          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
   PDelL1   goto PDelL2              ; 2 ciclos delay
   PDelL2 
          return                       ; 2+2 Fin.
END         

Y este es el error que me genera el proteus cuando complilo...

Citar
Warning[205] ..\..\..\..\MICRO\628.ASM 3 : Found directive in column 1. (LIST)
Error[105]   ..\..\..\..\MICRO\628.ASM 4 : Cannot open file (Include File "P16F628A.INC" not found)
Error[113]   ..\..\..\..\MICRO\628.ASM 18 : Symbol not previously defined (STATUS)
Error[113]   ..\..\..\..\MICRO\628.ASM 18 : Symbol not previously defined (RP1)
Error[113]   ..\..\..\..\MICRO\628.ASM 19 : Symbol not previously defined (STATUS)
Error[113]   ..\..\..\..\MICRO\628.ASM 19 : Symbol not previously defined (RP0)
Error[113]   ..\..\..\..\MICRO\628.ASM 21 : Symbol not previously defined (TRISA)
Error[113]   ..\..\..\..\MICRO\628.ASM 23 : Symbol not previously defined (TRISB)
Error[113]   ..\..\..\..\MICRO\628.ASM 24 : Symbol not previously defined (STATUS)
Error[113]   ..\..\..\..\MICRO\628.ASM 24 : Symbol not previously defined (RP0)
Error[113]   ..\..\..\..\MICRO\628.ASM 25 : Symbol not previously defined (STATUS)
Error[113]   ..\..\..\..\MICRO\628.ASM 25 : Symbol not previously defined (RP1)
Error[113]   ..\..\..\..\MICRO\628.ASM 28 : Symbol not previously defined (PORTB)
Error[113]   ..\..\..\..\MICRO\628.ASM 30 : Symbol not previously defined (PORTB)
Warning[207] ..\..\..\..\MICRO\628.ASM 35 : Found label after column 1. (PLoop1)
Warning[207] ..\..\..\..\MICRO\628.ASM 37 : Found label after column 1. (PLoop2)
Warning[207] ..\..\..\..\MICRO\628.ASM 43 : Found label after column 1. (PDelL1)
Warning[207] ..\..\..\..\MICRO\628.ASM 44 : Found label after column 1. (PDelL2)
Warning[205] ..\..\..\..\MICRO\628.ASM 46 : Found directive in column 1. (END)

Espero de su ayuda.... solo necesito que se encienda un led para saber como se configuran los puertos y listo del resto de la programacion la hago yo...

saludos xD gracias por la respuesta

Desconectado Goodfrey

  • PIC12
  • **
  • Mensajes: 87
Re: Pic 16F628A no Funciona
« Respuesta #1 en: 25 de Febrero de 2010, 13:39:53 »
acabo de ver este tema...

http://www.todopic.com.ar/foros/index.php?topic=12659.0

y nada no me funciona todo lo que declaro como trisa y trisb me da error parece que es error de libreria...

como puedo solucionarlo...

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Pic 16F628A no Funciona
« Respuesta #2 en: 25 de Febrero de 2010, 14:38:10 »
Nunca use proteus para compilar  :? Puede que falte indicar la carpeta de libreria. Y sino puedes compilarlo en MPLab que no va a tener problemas.


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado Goodfrey

  • PIC12
  • **
  • Mensajes: 87
Re: Pic 16F628A no Funciona
« Respuesta #3 en: 25 de Febrero de 2010, 16:03:45 »
Nunca use proteus para compilar  :? Puede que falte indicar la carpeta de libreria. Y sino puedes compilarlo en MPLab que no va a tener problemas.


Saludos!

Amigo que grande... ese compilador de proteus no me habia fallado con el 16F84A pero con el 628 no me queria funcionar me baje el mpaswin2005 y funciono de maravilla...

lamento haberlos molestado con esta simple tonteria xq sinceramente eso fue... gracias por la respuesta saludos xD

Desconectado mtristan

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 395
Re: Pic 16F628A no Funciona
« Respuesta #4 en: 25 de Febrero de 2010, 20:00:46 »
.

En este caso no vas a tener problemas, pero hay un error que vas a notar cuando quieras usar el PORTA. Y es que tenés los comparadores analógicos del PIC activados desde el inicio del programa (vienen activados en el reset). Es recomendable, aunque no uses ninuno de los pines involucrados, desactivarlos al inicio del código.
No me lo tomes a mal, es solo un recordatorio  ;-)
Saludos.


When you see a good move, look for a better one (Emanuel Lasker)

Desconectado Goodfrey

  • PIC12
  • **
  • Mensajes: 87
Re: Pic 16F628A no Funciona
« Respuesta #5 en: 26 de Febrero de 2010, 09:31:29 »
.

En este caso no vas a tener problemas, pero hay un error que vas a notar cuando quieras usar el PORTA. Y es que tenés los comparadores analógicos del PIC activados desde el inicio del programa (vienen activados en el reset). Es recomendable, aunque no uses ninuno de los pines involucrados, desactivarlos al inicio del código.
No me lo tomes a mal, es solo un recordatorio  ;-)
Saludos.

y como hago eso amigo, lo que pasa es que no soy muy experto con este micro, tambien necesito que me digan como hago para configurar el micro y usar el cristal de 4MHZ interno por favor...

Desconectado MarkKnopfler81

  • PIC12
  • **
  • Mensajes: 64
    • PICs, Electrónica y Robótica
Re: Pic 16F628A no Funciona
« Respuesta #6 en: 26 de Febrero de 2010, 11:28:36 »
Hola, mira todavía no utilice ese PIC pero leyendo el Datasheet vi que para configurar, actvar y desactivar las entradas analogicas utiliza los registros CMCON y VRCON en las direcciones 1Fh y 9Fh respectivamente... en principio por lo que lei por arriba poniendo CMCON a 0xFF y VRCON a 0x00, estarias usando el puerto A como digital...

pero de todos modos leete el este Datasheet


saludos

Desconectado Goodfrey

  • PIC12
  • **
  • Mensajes: 87
Re: Pic 16F628A no Funciona
« Respuesta #7 en: 26 de Febrero de 2010, 11:53:17 »
no puedo dejar de usar ese pic por que es el que me piden para la universidad... tengo que usarlo ajuro....

Desconectado mtristan

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 395
Re: Pic 16F628A no Funciona
« Respuesta #8 en: 26 de Febrero de 2010, 21:20:09 »
.


Para descativar los comparadores analógicos hay que guardar 0x07 en el registro CMCON, y te deja los pines del puerto A como digitales.
Para usar el cristal interno de 4MHz, a la hora de programarlo tenés que seleccionar intRC en el IC-Prog (o el programa que uses para programar el uC)

¡Saludos!


When you see a good move, look for a better one (Emanuel Lasker)

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Pic 16F628A no Funciona
« Respuesta #9 en: 27 de Febrero de 2010, 01:09:53 »
Tenes el siguiente enlace que puede servirte de ayuda.


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado Goodfrey

  • PIC12
  • **
  • Mensajes: 87
Re: Pic 16F628A no Funciona
« Respuesta #10 en: 27 de Febrero de 2010, 10:19:06 »
Tenes el siguiente enlace que puede servirte de ayuda.


Saludos!

Gracias por el link siempre estoy pendiete de el me a ayudado mucho....

mira estoy copilando con mplab y me da 0 errores pero tengo estas advertencias...

Citar
Message[302] C:\MICRO\PRACT1.ASM 23 : Register in operand not in bank 0.  Ensure that bank bits are correct.
Message[302] C:\MICRO\PRACT1.ASM 25 : Register in operand not in bank 0.  Ensure that bank bits are correct.

como puedo solucionar eso....

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Pic 16F628A no Funciona
« Respuesta #11 en: 27 de Febrero de 2010, 10:47:26 »
Hace doble click en el mensaje y te señala la linea que tiene el inconveniente, luego asegura si estas trabajando en el banco correcto el registro tratado.



Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado Goodfrey

  • PIC12
  • **
  • Mensajes: 87
Re: Pic 16F628A no Funciona
« Respuesta #12 en: 27 de Febrero de 2010, 14:31:15 »
Amigos necesito una ayuda con respecto a un programa que estoy tratando de hacer...

Tengo que ir comparando los valores de una fotoresistencia.... con 5 comparadores de ventana que van conectados desde RA0 A RB4 dependiendo de cual de estas entradas este activa debo detectar un cruce por 0 que se encuentra en PORTB,1 Y sacar por PORTB,0 una serie de retardos para activar unos SCR que hacen el control de potencia de un bombillo y de un motor... pero eso es lo de menos...   el problema que tengo es que cuando voy a probar con el proteus 6.9 sp3 si me hace lo que necesito siempre me da error o me salen los puertos del pic16f628 desactivados... y no puedo avanzar con la practica... saben como resolver este problema o como puedo hacerlo....

esta es una explicacion un poco mas sencilla de lo que debe hacer el programa para ver si me entienden la idea

Si PORTA,0 esta activo llama a la rutina SEC1

SEC1 DETECTA EL CRUCE POR CERO proveniente del PORTB,1 si esta activo.... entonces
hace una secuencia de retardos.... y eso tiene que hacerlo siempre hasta que
PORTA,1 ya no este activo....

No se si me entienden de todas maneras aqui dejo el codigo ok

Citar
; **** Encabezado ****

      LISt       p=16F628A
      #include    P16F628A.inc
      __CONFIG   0x3F88

;**** Definicion de variables ****


RET   equ      20h
RET1   equ      21h
RET2   equ      22h
RET3   equ      23h
RET4   equ      24h
RET5   equ      25h
RET6   equ      26h
RET7   equ      27h
CONT   equ      28h

#DEFINE      BOTON   PORTA,0
#DEFINE      BOTON1   PORTA,1
#DEFINE      BOTON2   PORTA,2
#DEFINE      BOTON3   PORTA,3
#DEFINE      BOTON4   PORTA,4

;**** Configuracion de puertos ***

Reset   
   org   0x00      ; Aqui comienza el micro.-
   goto   Inicio      ; Salto a inicio de mi programa.-
   org   0x05      ; Origen del codigo de programa.-
Inicio   
   bsf   STATUS,RP0    ; Pasamos de Banco 0 a Banco 1.-
   movlw   b'11111'   ; Muevo 11111 a W.-
   movwf   TRISA      ; Cargo en TRISA.-
   movlw   b'11111101'   
   movwf   TRISB
   bcf   STATUS,rp0   ; Paso del Banco 1 al Banco 0



;**** Control de Led ****

BUCLE   
   BTFSS   BOTON
   GOTO   BUCLE1
   BTFSS   PORTB,0
   GOTO    $-1
   CALL   SEC1
   GOTO   BUCLE

SEC1
   BCF   PORTB,1
   CALL   RET25
   BSF   PORTB,1
   CALL   RET75
   RETURN

BUCLE1
   BTFSS    BOTON1
   GOTO   BUCLE
   CALL   SEC2
   GOTO   BUCLE1

SEC2
   BTFSS   PORTB,1
   GOTO   $-1
   BCF   PORTB,0
   CALL   RET75
   BSF   PORTB,0
   CALL   RET25
   RETURN


; ********* RETARDO DEL 25% DE LA ONDA *******
RET0
   MOVLW   .166
   MOVFW   CONT
   DECFSZ   CONT,1
   GOTO   $-1
   RETURN

; ********* RETARDO DEL 25% DE LA ONDA *******

RET25   
   movlw     .7
        movwf     RET   
PLoop1  movlw     .222 
        movwf     RET1   
PLoop2  clrwdt           
        decfsz    RET1,1
        goto      PLoop2
        decfsz    RET,1
        goto      PLoop1   
        clrwdt             
        return

; ********* RETARDO DEL 50% DE LA ONDA *******

RET50   
   movlw     .35
        movwf     RET2
PLoop3  movlw     .23
        movwf     RET3
PLoop4  clrwdt       
        clrwdt       
        decfsz    RET3,1
        goto      PLoop4
        decfsz    RET2,1
        goto      PLoop3
        return         

; ********* RETARDO DEL 75% DE LA ONDA *******

RET75   
   movlw     .5
        movwf     RET4
PLoop5  movlw     .83
        movwf     RET5
PLoop6  clrwdt       
        clrwdt       
        decfsz    RET5,1
        goto      PLoop6
        decfsz    RET4,1
        goto      PLoop5
        return

; ********* RETARDO DEL 100% DE LA ONDA *******

RET100   
   movlw     .29
        movwf     RET6
PLoop7  movlw     .61
        movwf     RET7
PLoop8  clrwdt       
        clrwdt       
        decfsz    RET7,1
        goto      PLoop8
        decfsz    RET6,1
        goto      PLoop7
        return


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

   end

Desconectado pablomanieri

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 639
Re: Pic 16F628A no Funciona
« Respuesta #13 en: 27 de Febrero de 2010, 18:14:44 »
acuerdate de conectar el pin Mclr a vcc cuando simules y en físico también, sino el micro siempre está en reset

Desconectado mtristan

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 395
Re: Pic 16F628A no Funciona
« Respuesta #14 en: 28 de Febrero de 2010, 22:23:21 »
.


Message[302] C:\MICRO\PRACT1.ASM 23 : Register in operand not in bank 0.  Ensure that bank bits are correct.
Message[302] C:\MICRO\PRACT1.ASM 25 : Register in operand not in bank 0.  Ensure that bank bits are correct.


Esto es un mensaje de advertencia más que un mensaje de error y el MPASM lo larga siempre que uses registros fuera del banco 0. Si no te interesa que aparezcan, podés poner al principio del programa la línea
     ERRORLEVEL -302
Que suprimirá las molestas advertencias.
Saludos.


When you see a good move, look for a better one (Emanuel Lasker)


 

anything