Autor Tema: Hola, me precento con dudas  (Leído 2387 veces)

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

Desconectado marquitosro20

  • PIC10
  • *
  • Mensajes: 4
Hola, me precento con dudas
« en: 15 de Marzo de 2010, 17:53:46 »
Hola, mi nombre es Marcos y soy de la ciudad de La Plata, Argentina y soy tecnico electronico recibido hace 9 y lo unico que programe es el MC14500b de motorola y el 6800 y ahora estoy querindo incurcionar en el 16f84 mas especificamente la parte de puertos osea leer por ejemplo RB2 y escribir RA3 asi de simple leer y escribir nada mas porque no logro entender lo de PORTa PORTb TRISa TRISb. desde ya espero me respondan y poder seguir adelante.

Muchas Gracias.-

Desconectado Fer_TACA

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4069
Re: Hola, me precento con dudas
« Respuesta #1 en: 15 de Marzo de 2010, 18:32:03 »
Hola marquitosro20:

Antes de nada bienvenido al foro.

Para empezar a aprender de pics, te diria que lo primero que tienes que realizar es leer mucho. Bajate algun manual en español de ello de google que hay muchos.
Por lo que indicas vas a empezar con ASM. Creo que es lo mejor para empezar y conocer un poco del interior de los mismos, antes de pasar a otro lenguaje de programacion mas cercano al humano como C, basic,.........
si utilzas el buscador del foro puedes encontrar ejemplos muy basicos, te aconsejo que intentes comprenderlos y despues preguntes las dudas. Hay ejemplos como "empezar en ASM desde 0"; "ejemplos basicos con pic16f628",................. Todos ellos muy basicos.

Para empezar con lo preguntas del port, TRis,..... puedes cojerte el datshhet dl micro elgido para empezar y alli encontraras una circuito de descripcion de como funcionan los pines como entrada, como salida,...... Es electronica pura y dura, pero sencillota.
Baste de decirte que TRIS son registros que configuran el(os) pin(es) como van a funcionar como entrada, salida, analogico,........
PORTx son ya los registros del propio puerto. Por ejemplo para llere el puerto A seria:
-movlw 11111111
- movwf TRiSA 1 (configura el puerto A como entrada)
-movf portA, W (lee el puerto A y deja el resultado en W)

Ya nos diras tus avances

Fermin
Todos los días se aprende algo nuevo.

Desconectado marquitosro20

  • PIC10
  • *
  • Mensajes: 4
Re: Hola, me precento con dudas
« Respuesta #2 en: 15 de Marzo de 2010, 23:46:37 »
Gracias capo tengo el libro microcontrolador pic 16f84 y hay cosas que ya las tengo mas o menos entendidas, se me complica lo que te decia anteriormente, leer un pin especifico y no todo el puerto, a mi me interesa el dato de una pata del micro, pero voy a ver como resulevo

Desconectado agauss

  • PIC16
  • ***
  • Mensajes: 147
Re: Hola, me precento con dudas
« Respuesta #3 en: 16 de Marzo de 2010, 01:41:21 »
Saludos marquitosro20!!!

Pues esto es lo que se me ocurrio segun entiendo, es lo que necesitas, pongo en un adjunto el codigo fuente, ejecutable y simulacion (PROTEUS 7.6), espero te sea de utilidad. Te explico:

En este programa se verifica el estado del bit RB1 del PIC16F84A, donde se ha colocado un push button NA, si este button es presionado se activa el bit RB0 encendiendo un LED-GREEN colocado con su respectiva resistencia de 330 Ohms.

Respecto a la teoria detras de todo esto, creo que deberias seguir el consejo de Fer_TACA.

Checa el codigo y comenta... bye!!!


                title "PIC16F84A, bitest.asm"
   list p=16f84a, f=inhx8m
   #include <p16f84a.inc>
   __config _XT_OSC & _PWRTE_ON & _WDT_OFF & _CP_OFF


STATUS   equ   0x03
PORTB   equ   0x06


   org   0x00
   goto   inicio

   org   0x04
   goto   rsi

   org   0x05

inicio:   bsf   STATUS,RP0
   movlw   0xFE
   movwf   PORTB
   bcf   STATUS,RP0

main:   btfss   PORTB,1
   goto   bitset

bitclr:   bcf   PORTB,0
   goto   main

bitset:   bsf   PORTB,0

   goto   main


rsi:   retfie


   end

 
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 Fer_TACA

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4069
Re: Hola, me precento con dudas
« Respuesta #4 en: 16 de Marzo de 2010, 06:53:52 »
Con las instrucciones:

BTfss= compruebas si un pin esta a 1 y si se cumple saltas a 2 posiciones despues de donde colocaste el BTFSS
btfsc= compruebas si un pin esta a 0 y si se cumple saltas a 2 posiciones despues de donde colocaste el BTFSC

Con estas 2 instrucciones puedes comprobar el estado de cualquier pin de cualquier puerto.

fermin
Todos los días se aprende algo nuevo.

Desconectado marquitosro20

  • PIC10
  • *
  • Mensajes: 4
Re: Hola, me precento con dudas
« Respuesta #5 en: 18 de Marzo de 2010, 23:54:04 »
me estoy poniendo mal, ya con miras de abandonar, me levo bien con todo lo que es la programacion del pic, pero no entiendo la configuracion de los puertos como la programa, porque todo los tutoriales que miro lo hacen diferente, y no saco una conclucion ni de chiste, sera posible que me den un mini instructivo como para nene de 2 años, porque se me queman las neuronas.

Desconectado agauss

  • PIC16
  • ***
  • Mensajes: 147
Re: Hola, me precento con dudas
« Respuesta #6 en: 19 de Marzo de 2010, 02:06:06 »
Traquilo, mira tratare de ponerlo lo mas simple...


         bsf        STATUS,RP0   ; ---> con esta linea entras a la seccion de configurar registros (banco 1).
         movlw   0xFE              ; ---> donde colocas un 'cero' haces una salida, donde pones un 'uno' haces una entrada.
         movwf   PORTB           ; ---> en este caso coloco el bit 0 del puerto B como una salida (RB0) el resto como entrada.
         bcf        STATUS,RP0   ; ---> con esta linea regreso al banco 0, que es la seccion donde puedes usar los registros segun
                                          ; ---> hayas configurado entradas o salidas.

main: bsf        PORTB,0        ; ---> Poner a uno el bit RB0. 
         call        delay            ; ---> Se demora por un tiempo especificado en la subrutina 'delay'.
         bcf        PORTB,0        ; ---> Poner a cero el bit RB0.
         call        delay            ; ---> La misma demora. Tenemos un oscilador con periodo 2*delay o frecuencia 1/(2*delay).

         goto       main

Simplemente se hizo lo siguiente:

PORTB = EEEE EEES = 1111 1110 = 0xFE

Al escribir sobre el puerto B estando en el banco 1, estaras configurando los pines del puerto como entradas o salidas. Si recuerdas esto sera mas sencillo:

0 = Output
1 = Input

Espero te sea de utilidad... 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 AngelGris

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2480
Re: Hola, me precento con dudas
« Respuesta #7 en: 19 de Marzo de 2010, 11:26:27 »


0 = Output
1 = Input

Espero te sea de utilidad... saludos!!!



Si mal no recuerdo en un datasheet de microchip me parecío leer 0utput (el primer caracter es un "cero") e 1nput (el primer caracter es un "uno"). Como una forma para que podamos recordar muy fácilmente que con un 0 se configura como salida al puerto y con un 1 se configura como entrada.
De vez en cuando la vida
nos besa en la boca
y a colores se despliega
como un atlas