Autor Tema: migracion 18f84a a 16f873a  (Leído 4768 veces)

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

Desconectado esteban_pic

  • PIC10
  • *
  • Mensajes: 21
migracion 18f84a a 16f873a
« 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

Desconectado AngelGris

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2480
Re: migracion 18f84a a 16f873a
« Respuesta #1 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.
De vez en cuando la vida
nos besa en la boca
y a colores se despliega
como un atlas

Desconectado esteban_pic

  • PIC10
  • *
  • Mensajes: 21
Re: migracion 18f84a a 16f873a
« Respuesta #2 en: 26 de Diciembre de 2010, 22:56:34 »
Que bueno que allas respondido, investigare lo que me decis, gracias!!!!

Desconectado esteban_pic

  • PIC10
  • *
  • Mensajes: 21
Re: migracion 18f84a a 16f873a
« Respuesta #3 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

Desconectado AngelGris

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2480
Re: migracion 18f84a a 16f873a
« Respuesta #4 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.
De vez en cuando la vida
nos besa en la boca
y a colores se despliega
como un atlas

Desconectado esteban_pic

  • PIC10
  • *
  • Mensajes: 21
Re: migracion 18f84a a 16f873a
« Respuesta #5 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!!!!!!!!!!!!

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: migracion 18f84a a 16f873a
« Respuesta #6 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.
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Desconectado esteban_pic

  • PIC10
  • *
  • Mensajes: 21
Re: migracion 18f84a a 16f873a
« Respuesta #7 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   :-/ :-/

Desconectado esteban_pic

  • PIC10
  • *
  • Mensajes: 21
Re: migracion 18f84a a 16f873a
« Respuesta #8 en: 08 de Enero de 2011, 23:51:30 »
sigue igual!!!  aca mando el circuito haber si sirve de algo!!!! 

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: migracion 18f84a a 16f873a
« Respuesta #9 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.
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Desconectado esteban_pic

  • PIC10
  • *
  • Mensajes: 21
Re: migracion 18f84a a 16f873a
« Respuesta #10 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     :-/ :-/



 

anything