Autor Tema: 16F628 Diferencia entre TRIS PORTB - MOVWF PORTB - MOVWF TRISB ???  (Leído 12552 veces)

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

Desconectado pacocable

  • PIC10
  • *
  • Mensajes: 13
la diferencia entre MOVWF PORTB y MOVWF TRISB la tengo clara los bancos, pero he modificado un asm de la red cambiando TRIS PORTB por MOVWF PORTB he creado el hex con mpsamwin y no funciona.
¿Me lo podria explicar??

Desconectado AKENAFAB

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3227
Re: 16F628 Diferencia entre TRIS PORTB - MOVWF PORTB - MOVWF TRISB ???
« Respuesta #1 en: 06 de Junio de 2010, 04:46:16 »
Que pic es???

Porque TRIS PORTB es muy muy viejo.

Para manipular el puerto , ya sea leerlo o escrbir(enviar 1-0) se usa el PORT

Para configurar dichos pines ya sean entrada-salida se usa el registro TRIS
la diferencia entre MOVWF PORTB y MOVWF TRISB la tengo clara los bancos, pero he modificado un asm de la red cambiando TRIS PORTB por MOVWF PORTB he creado el hex con mpsamwin y no funciona.
¿Me lo podria explicar??

Creo que lo deberia cambiar por MOVWF TRISB

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Re: 16F628 Diferencia entre TRIS PORTB - MOVWF PORTB - MOVWF TRISB ???
« Respuesta #2 en: 06 de Junio de 2010, 10:36:07 »
exacto. la instruccion tris PORTB es mas bien utilizada en la serie 12Fxxx.
y aunque cambies esta instrucion,deberias inspeccionar bien el codigo.ya que al haberse hecho para diferentes pic,es posible que tengas mas diferencias.
no solo de la configuracion de los puertos.
« Última modificación: 06 de Junio de 2010, 10:40:59 por groundman »
Montando mi primera impresora 3D (Raprep Prusa i3)

Desconectado tapi8

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1506
Re: 16F628 Diferencia entre TRIS PORTB - MOVWF PORTB - MOVWF TRISB ???
« Respuesta #3 en: 06 de Junio de 2010, 13:52:03 »
Nunca he usado esta instruccion, gracias a Dios, porque nunca la entendi muy bien, esta es la explicacion que viene en el DATA SHEET del 12F508/509/16F505, sigo sin entenderla del todo, pero estos PICs ya los tango fichados, nunca los usare.

Operation: (W) → TRIS register f  ; deduzco que esto es igual a "movwf  TRIS F", verdad???


PIC12F508/509/16F505
DS41236E-page 64 © 2009 Microchip Technology Inc.
TRIS Load TRIS Register
Syntax: [ label ] TRIS f
Operands: f = 6
Operation: (W) → TRIS register f
Status Affected: None
Description: TRIS register ‘f’ (f = 6 or 7) is
loaded with the contents of the W register

Desconectado pacocable

  • PIC10
  • *
  • Mensajes: 13
Re: 16F628 Diferencia entre TRIS PORTB - MOVWF PORTB - MOVWF TRISB ???
« Respuesta #4 en: 06 de Junio de 2010, 15:19:21 »
antes estaba asi:
            MOVLW   0xE0
            TRIS    PORTA
           MOVLW   0xFF
            TRIS    PORTB
y ahora asi:
BSF     STATUS    , RP0
BCF     STATUS    , RP1
MOVLW   0xE0
MOVWF   TRISA
MOVLW   0xFF
MOVWF   TRISB
BCF     STATUS    , RP0
BCF     STATUS    , RP1
pero ahora no funciona

Desconectado tapi8

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1506
Re: 16F628 Diferencia entre TRIS PORTB - MOVWF PORTB - MOVWF TRISB ???
« Respuesta #5 en: 07 de Junio de 2010, 12:01:12 »
 El programa original ya estaba hecho para el 16f628? O estaba hecho para otro PIC y tu lo has adaptado?

Desconectado willynovi

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 546
Re: 16F628 Diferencia entre TRIS PORTB - MOVWF PORTB - MOVWF TRISB ???
« Respuesta #6 en: 07 de Junio de 2010, 12:47:01 »
Aparentemente estaria todo bien.
Para el 16F628 los registros TRISA y TRISB estan en el Banco 1, y para acceder al ese banco necesitas tener RP0=1 y RP1=0

Que es lo que no te funciona especificamente?
Con esto lo que haces es solo configurar los puertos como entrada o salidas, nada mas.

Para poder leer o escribir a los puertos debes usar los registros PORTA y PORTB, y tener en cuenta que estan en el Banco 0.
leer el estado de los puertos
BCF     STATUS,RP0
BCF     STATUS,RP1
MOVF   PORTA, W       ; hace que W = PORTA
escribir en un puerto
BCF     STATUS,RP0
BCF     STATUS,RP1
MOVWF  PORTB          ; hace que PORTB = W

no lo he prbado, lo he escrito de memoria nomas. Espero te sirva, saludos
Intento enseñarte a pescar, si solo quieres pescados, espera que un pescador te regale los suyos.

Desconectado tapi8

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1506
Re: 16F628 Diferencia entre TRIS PORTB - MOVWF PORTB - MOVWF TRISB ???
« Respuesta #7 en: 07 de Junio de 2010, 16:11:14 »
Lo digo mas que nada porque la configuracion aparte de los TRIS, hay que configurarlos en el CMCON, y tambien puede haber variaciones en el CBLOCK, por citar dos errores muy corrientes.
Asi recomtenda microchip hacerlo para i/O DIGITALES.


CLRF PORTA ;Initialize PORTA by
;setting
;output data latches
MOVLW 0x07 ;Turn comparators off and
MOVWF CMCON ;enable pins for I/O
;functions
BCF STATUS, RP1
BSF STATUS, RP0 ;Select Bank1
MOVLW 0x1F ;Value used to initialize
;data direction
MOVWF TRISA ;Set RA<4:0> as inputs
;TRISA<5> always
;read as ‘1’.
;TRISA<7:6>
;depend on oscillator