Autor Tema: Ayuda con el PIC16F7x...  (Leído 4632 veces)

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

Desconectado agauss

  • PIC16
  • ***
  • Mensajes: 147
Ayuda con el PIC16F7x...
« en: 04 de Marzo de 2010, 18:28:09 »
Pasa lo siguiente, estoy tratando de simular el ADC del PIC16F77/74/76/73 en PROTEUS y sucede que al revisar el registro de resultado del PIC (ADRES) este varia segun el voltaje ingresado por un potenciometro lineal colocado sobre el canal analogico AN0, pero al tratar de leer este registro para tomar el dato y enviarlo por un puerto o bien procesar de alguna forma el dato, pues no sucede nada, es decir, no puedo leer este registro, la pregunta es: ¿sera un error del simulador?. He de señalar que el PIC16F77 no existe en version F en PROTEUS por lo cual tengo que usar la version C (PIC16C77) ¿sera por ahi el problema?

En fin espero que alguien pueda ayudarme con esto ya que no he dado con la solucion en el tiempo que he dedicado.

P.D. Se que otros modelos de PIC funcionan sin problema (877A, 2550, etc), pero yo tengo algunos de estos modelos (16F77) y megustaria dar con la solucion.
No es el conocimiento, sino el acto de aprendizaje, y no la posesión, sino el acto de llegar allí, que concede el mayor disfrute.
"Carl Friedrich Gauss"

El tacto es el arte de hacer un punto sin hacer un enemigo.
"Isaac Newton"

Desconectado septiembre_negro

  • PIC18
  • ****
  • Mensajes: 310
Re: Ayuda con el PIC16F7x...
« Respuesta #1 en: 04 de Marzo de 2010, 19:59:49 »
En espera de que alguien te conteste si hay cambios de c a f  (creo que si) por que no lo pruebas en una placa de prototipos.

Desconectado agauss

  • PIC16
  • ***
  • Mensajes: 147
Re: Ayuda con el PIC16F7x...
« Respuesta #2 en: 05 de Marzo de 2010, 02:58:00 »
Gracias por responder...

Resulta que he trabajado fisicamente con este PIC y se que funciona perfectamente, solo que cuando quiero simular algun programa que involucra al ADC me topo con este problema. En fin, si alguien tiene algo le agradeceria compartir en el foro.

Saludos...
No es el conocimiento, sino el acto de aprendizaje, y no la posesión, sino el acto de llegar allí, que concede el mayor disfrute.
"Carl Friedrich Gauss"

El tacto es el arte de hacer un punto sin hacer un enemigo.
"Isaac Newton"

Desconectado Chenao

  • PIC18
  • ****
  • Mensajes: 414
Re: Ayuda con el PIC16F7x...
« Respuesta #3 en: 08 de Marzo de 2010, 20:39:34 »
Saludos

Por que no pones el còdigo y el esquemàtico para empezar a descartar los posibles errores
Un saludo desde Pereira - Colombia

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Ayuda con el PIC16F7x...
« Respuesta #4 en: 09 de Marzo de 2010, 00:41:27 »
Pues, que sepa, la diferencia es que los C se pueden programar una sola vez, mientras que los F pueden ser programados muchas veces.
El papel lo aguanta todo

Desconectado agauss

  • PIC16
  • ***
  • Mensajes: 147
Re: Ayuda con el PIC16F7x...
« Respuesta #5 en: 11 de Marzo de 2010, 21:49:23 »
El codigo fuente es este...


title "PIC16F77, test.asm"
   list p=16f77, f=inhx8m
   #include <p16f77.inc>
   __Config _XT & _WDT_OFF & _CP_OFF & _PWRTE_ON


STATUS   equ   0x03
PORTA   equ   0x05
PORTB   equ   0x06
ADRES   equ   0x1E
ADCON   equ   0x1F


   org   0x00
   goto   inicio

   org   0x04
   goto   rsi

   org   0x05

inicio:   bsf   STATUS,RP0
   movlw   0x00
   movwf   ADCON
   movwf   0x00
   movwf   PORTB
   bcf   STATUS,RP0

   movlw   0x41
   movwf   ADCON

main:   call   T100ms
   bsf   ADCON,1

busy:   btfss   ADCON,1
   goto   busy

   movf   ADRES,0
   movwf   PORTB

   goto   main



T100ms:   movlw   0x1F
   movwf   PDelT

DLoop:   decfsz   PDelT,1
   goto   DLoop

   nop
   nop

   return


rsi:   retfie


   end


Espero sus comentarios, saludos....
No es el conocimiento, sino el acto de aprendizaje, y no la posesión, sino el acto de llegar allí, que concede el mayor disfrute.
"Carl Friedrich Gauss"

El tacto es el arte de hacer un punto sin hacer un enemigo.
"Isaac Newton"

Desconectado agauss

  • PIC16
  • ***
  • Mensajes: 147
Re: Ayuda con el PIC16F7x...
« Respuesta #6 en: 11 de Marzo de 2010, 22:00:03 »
Simplemente coloco un potenciometro lineal sobre el canal analogico 0 del PIC, sobre el visualizador de registros del PROTEUS coloco los registros ADRES y PORTB. En el ADRES puedo ver que conforme vario el POT varia el dato en el ADRES, pero al tratar de mandar este dato al PORTB no pasa nada. Nuevamente señalo que uso el PIC16C77 ya que no se dispone de la version F en PROTEUS. Espero sus comentarios compañeros...
No es el conocimiento, sino el acto de aprendizaje, y no la posesión, sino el acto de llegar allí, que concede el mayor disfrute.
"Carl Friedrich Gauss"

El tacto es el arte de hacer un punto sin hacer un enemigo.
"Isaac Newton"

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: Ayuda con el PIC16F7x...
« Respuesta #7 en: 12 de Marzo de 2010, 11:28:23 »
Hola, ¿qué justificación le das a la conversión ADC? ¿Izquierda o derecha?

¿Configuraste el puerto B como salida? TRISB=0x00

Desconectado agauss

  • PIC16
  • ***
  • Mensajes: 147
Re: Ayuda con el PIC16F7x...
« Respuesta #8 en: 12 de Marzo de 2010, 20:06:17 »
El ADC de este micro es de solo 8 bits, por lo tanto no aplica lo de la justificacion izquierda/derecha. El puerto B esta configurado como salidas totalmente.

      bsf        STATUS,RP0
      movlw   0x00
      movwf   ADCON
      movlw   0x00              ; Configuro todo el puerto B
      movwf   PORTB           ; como salidas.
      bcf        STATUS,RP0

Trato de evitar el uso de TRISB debido a un ¡WARNING! que se genera al compilar.
No es el conocimiento, sino el acto de aprendizaje, y no la posesión, sino el acto de llegar allí, que concede el mayor disfrute.
"Carl Friedrich Gauss"

El tacto es el arte de hacer un punto sin hacer un enemigo.
"Isaac Newton"

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: Ayuda con el PIC16F7x...
« Respuesta #9 en: 13 de Marzo de 2010, 11:43:46 »
El ADC de este micro es de solo 8 bits, por lo tanto no aplica lo de la justificacion izquierda/derecha. El puerto B esta configurado como salidas totalmente.

      bsf        STATUS,RP0
      movlw   0x00
      movwf   ADCON
      movlw   0x00              ; Configuro todo el puerto B
      movwf   PORTB           ; como salidas.
      bcf        STATUS,RP0

Trato de evitar el uso de TRISB debido a un ¡WARNING! que se genera al compilar.

Debes configurar el TRISB para las direcciones, no el PORTB.

Código: [Seleccionar]
      movlw   0x00              ; Configuro todo el puerto B
      movwf   TRISB            ; como salidas.

Desconectado agauss

  • PIC16
  • ***
  • Mensajes: 147
Re: Ayuda con el PIC16F7x...
« Respuesta #10 en: 13 de Marzo de 2010, 14:22:42 »
Escribir en el PORTB estando en el banco 1 es equivalente a escribir sobre el TRISB. Trata a probar con el codigo que puse y veras que es correcto. Cualquier simulacion con el PIC16F77 que he realizado en PROTEUS ha sido exitosa, el unico detalle que he encontrado es con el ADC.

Saludos...
No es el conocimiento, sino el acto de aprendizaje, y no la posesión, sino el acto de llegar allí, que concede el mayor disfrute.
"Carl Friedrich Gauss"

El tacto es el arte de hacer un punto sin hacer un enemigo.
"Isaac Newton"

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: Ayuda con el PIC16F7x...
« Respuesta #11 en: 13 de Marzo de 2010, 15:51:18 »
Sí es cierto, disculpa, estaba pensando en PIC18.

Talvez si adjuntas el archivo de proteus se pueda encontrar el problema. Yo no pude encontrar algo raro en el asm.

Desconectado agauss

  • PIC16
  • ***
  • Mensajes: 147
Re: Ayuda con el PIC16F7x...
« Respuesta #12 en: 15 de Marzo de 2010, 23:53:26 »
Ustedes disculparan mi torpeza caballeros pero no pude subir el esquematico al foro, a lo mas que logre es a ponerlo como un adjunto, apenas empiezo asi que... sorry.

En fin, espero que esta imagen sea util... saludos!!!
No es el conocimiento, sino el acto de aprendizaje, y no la posesión, sino el acto de llegar allí, que concede el mayor disfrute.
"Carl Friedrich Gauss"

El tacto es el arte de hacer un punto sin hacer un enemigo.
"Isaac Newton"

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: Ayuda con el PIC16F7x...
« Respuesta #13 en: 15 de Marzo de 2010, 23:56:45 »
Hola, puedes comprimir el archivo en un zip o rar y adjuntarlo.

Sobre la imagen que pones, no encontré problemas de conexión.

Desconectado agauss

  • PIC16
  • ***
  • Mensajes: 147
Re: Ayuda con el PIC16F7x...
« Respuesta #14 en: 16 de Marzo de 2010, 01:05:08 »
Antes que nada agradezco el interes y el seguimiento que ha dado a este tema migsantiago. Pues bien, he agregado los archivos necesarios para que verifiquen el problema al que me refiero. Sobre el visor de registros de PROTEUS coloco los registros ADRES, ADATO y PORTB, como podran ver el dato en ADRES (el cual si cambia) no se transfiere ni al registro de usuario (ADATO) ni al puerto.

Cabe mencionar que utilizo la version 7.6 de PROTEUS y el compilador MPASMwin v5.20. Espero sus valiosos comentarios, saludos!!!   
No es el conocimiento, sino el acto de aprendizaje, y no la posesión, sino el acto de llegar allí, que concede el mayor disfrute.
"Carl Friedrich Gauss"

El tacto es el arte de hacer un punto sin hacer un enemigo.
"Isaac Newton"