TODOPIC

Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: esteban_pic en 26 de Diciembre de 2010, 18:30:46

Título: migracion 18f84a a 16f873a
Publicado por: esteban_pic en 26 de Diciembre de 2010, 18:30:46
Hola!!!  ya hace varios años trabaje con el 16f84a este año quise volver a trabajar con pic pero quise saltar a un pic más nuevo el 16f873a y me lleve la sorpresa de tener que cambiar de grabador, salvando este problema comprando un nuevo grabador de pic, segui programado y grave el 16f873a y nunca lo logre hacer andar verifique todas las configuraciones que pude pero no funciono, les paso el código que quise hacer andar, solo quiero que prenda un led al pulsar un botón con una temporización , cosa que yo asia con facilidad en el 16f84a y ahora no logro realizar nada en el nuevo pic.

     El problema me dicen es de digitalizar las entradas, pero configuro las entradas como digitales y sigo igual sin que el pic me responda.

     Programo y gravo con el Mplab y el grabador es un pickit2.

     La verdad e leido los manuales y las hojas de datos del pic y buscado la mayor información posible y puesto todo el esfuerzo posible, pero me a sido en vano, por eso recurro a ustedes espero que me puedan ayudar, desde ya muchas gracias anticipadas, saludos esteban


este es el código el cual e modificado un montón de veces pero no me responde al pulsarlo, si me responde la lógica interna pero no logro controlar nada desde el exterior:


list p=16f873 a

#include <p16f873a.inc>

__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC

;ver pwrte_on   cp_off

;ver forma de onda de la alimentacion
;a que valor esta configurado el puerto a?
; org 0x05 ORG 5  Línea de inicio


status equ 0x03 
porta equ 0x05
portb equ 0x06
intcon equ 0x0B 
optionr equ 0x81
trisa equ 0x85
trisb equ 0x86
TEMP1 equ 0x21
TEMP2 equ 0x22




#define LED porta,0           
#define BANK1 bsf status,5
#define BANK0 bcf status,5

org 0x00 ;aparentemente bien


;///// Etapa configuración

;BANK0

       bcf status,5 ; bank0
       bcf status,6 ; bank0

       bcf intcon,4


;saco watch_dog

   ;   bcf CON_WORD,2




; Deshabilito las int

       bcf intcon, 7

;BANK1

       bsf status,5 ; bank1
       bcf status,6 ; bank1

; Puerto B como salida entero 

       movlw 00h
       movwf trisb

;BANK0

       bcf status,5 ; bank0
       bcf status,6 ; bank0



       movlw 00h
       movwf portb

 
; Puerto A como entrada



;BANK1
       bsf status,5 ; bank1
       bcf status,6 ; bank1


       movlw 0ffh
       movwf trisa


;BANK0
      bcf status,5 ; bank0
      bcf status,6 ; bank0

 
       movlw 00h
       movwf porta


funciona   
         

 vuelta 
       call encendido
       btfsc porta,0
       goto vuelta
       goto tr

 
  tr   call apagado
       btfsc porta,0
       goto tr
       goto vuelta

goto funciona


encendido

       movlw   0xff
       movwf   portb

call retardo
call retardo

       movlw   0x00
       movwf   portb

call retardo
call retardo

       movlw   0xff
       movwf   portb

call retardo
call retardo

       movlw   0x00
       movwf   portb

return



apagado

       movlw   0x00
       movwf   portb

call retardo
call retardo
call retardo

return



retardo

      DEL500 MOVLW .200
     MOVWF TEMP1
  BBBB MOVLW .250
     MOVWF TEMP2
  AAAA NOP
     NOP
     NOP
     NOP
     NOP
     NOP
     NOP
     NOP
     NOP
     NOP
     DECFSZ TEMP2
     GOTO AAAA
     DECFSZ TEMP1
     GOTO BBBB
     RETLW 0

return 


end
Título: Re: migracion 18f84a a 16f873a
Publicado por: AngelGris en 26 de Diciembre de 2010, 19:09:11
  Tené en cuenta que el PIC16F873A tiene comparadores y conversor A/D. Por defecto (después de un reset) las entradas quedan configuradas como analógicas, por lo tanto dentro del bloque donde configurás el puerto A para que sea entrada deberías también configurar los registros CMCON y ADCON1 para que dichas entradas sean digitales y no analógicas.
Título: Re: migracion 18f84a a 16f873a
Publicado por: esteban_pic en 26 de Diciembre de 2010, 22:56:34
Que bueno que allas respondido, investigare lo que me decis, gracias!!!!
Título: Re: migracion 18f84a a 16f873a
Publicado por: esteban_pic en 27 de Diciembre de 2010, 09:58:40
Una consulta, para digitalizar las salidas, busque y entendi que en el registrro ADCON1 pongo en uno los bit de bit0 al bit3 para digitalizar, esto es correcto?

Lo que no se, es que hacer con el otro registro que me das el CMCON me habla de comparaciones, que tengo que hacer con ese registro para digitalizar las entradas?


                                                                                    Saludos, Esteban
Título: Re: migracion 18f84a a 16f873a
Publicado por: AngelGris en 27 de Diciembre de 2010, 11:02:21
Una consulta, para digitalizar las salidas, busque y entendi que en el registrro ADCON1 pongo en uno los bit de bit0 al bit3 para digitalizar, esto es correcto?

  Sí, exacto.

Lo que no se, es que hacer con el otro registro que me das el CMCON me habla de comparaciones, que tengo que hacer con ese registro para digitalizar las entradas?

  Dejar los bit CM0 a CM2 en 1 para que las entradas sean digitales y no se asignen a los comparadores.
Título: Re: migracion 18f84a a 16f873a
Publicado por: esteban_pic en 08 de Enero de 2011, 20:18:02


yo de vuelta!!!! sigo sin poder hacer andar el proyecto aca subo el codigo modificado, aver si alguien ve algo malo.


                                                                                 saludos, esteban!!!!!!!!!!!!
Título: Re: migracion 18f84a a 16f873a
Publicado por: BrunoF en 08 de Enero de 2011, 21:28:01
Esta mal configurado el pin PORTA,0.

;BANK1
       bsf status,5 ; bank1

       movlw b'00000001'
       movwf trisa


;BANK0
      bcf status,5 ; bank0

      movlw 0x00
      movwf porta


Saludos.
Título: Re: migracion 18f84a a 16f873a
Publicado por: esteban_pic en 08 de Enero de 2011, 23:15:12
Esta mal configurado el pin PORTA,0.

;BANK1
       bsf status,5 ; bank1

       movlw b'00000001'
       movwf trisa


;BANK0
      bcf status,5 ; bank0

      movlw 0x00
      movwf porta


Saludos.

Buenicimo!!! gracias por la ayuda, ahora voy a provar los cambios!!!

                                                                                                   saludos  y gracias!!  Esteban   :-/ :-/
Título: Re: migracion 18f84a a 16f873a
Publicado por: esteban_pic en 08 de Enero de 2011, 23:51:30
sigue igual!!!  aca mando el circuito haber si sirve de algo!!!! 
Título: Re: migracion 18f84a a 16f873a
Publicado por: BrunoF en 09 de Enero de 2011, 15:09:30
Reemplazá:

     bsf ADCON1,0
     bsf ADCON1,1
     bsf ADCON1,2
     bsf ADCON1,3

Por:

     MOVLW 0x06 ; Configure all pins
     MOVWF ADCON1 ; as digital inputs

El valor 0x06 es el que configura todos los pines del  PORTA como digitales. Para mas información ver el datasheet de la familia 16F87X página 29.

Por otro lado, ojo que  el comportamiento cuando se presiona el pulsador es bastante similar al otro en tu algoritmo. Revisa que ese sea realmente el comportamiento que estas buscando.

Saludos.
Título: Re: migracion 18f84a a 16f873a
Publicado por: esteban_pic en 09 de Enero de 2011, 18:36:54
Reemplazá:

     bsf ADCON1,0
     bsf ADCON1,1
     bsf ADCON1,2
     bsf ADCON1,3

Por:

     MOVLW 0x06 ; Configure all pins
     MOVWF ADCON1 ; as digital inputs

El valor 0x06 es el que configura todos los pines del  PORTA como digitales. Para mas información ver el datasheet de la familia 16F87X página 29.

Por otro lado, ojo que  el comportamiento cuando se presiona el pulsador es bastante similar al otro en tu algoritmo. Revisa que ese sea realmente el comportamiento que estas buscando.

Saludos.


Lo que es la casualidad!!!!    esa es la repuesta!!!!!  la alle en el manual y la prove hace un rato, pero lo que me desis es la respuesta a tanto tiempo perdido, gracias!!!!!!


                                                                                                                     de vuelta gracias!!! saludos esteban     :-/ :-/