Autor Tema: Sobre la instrucción: addwf PCL,F (Libro RA-MA)  (Leído 11047 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado GUEORK

  • PIC10
  • *
  • Mensajes: 20
Sobre la instrucción: addwf PCL,F (Libro RA-MA)
« en: 28 de Febrero de 2005, 07:18:00 »
HOLA A TODOS:
Lo que pregunto es para aclararmelo porque el programa funciona. Si alguno tiene el libro PIC16F84A de RA-MA (Fernandez Remiro), es un programita para probar los saltos indexados (Indexado_01.asm pag.134). Si no, no importa porque el programa es muy simple.
Lo que no entiendo es lo de la "F" mayúscula, de dónde es que sale. Sé que la instrucción es: addwf f,d (suma W + "f" y coloca el resultado en W si d=0 y en "f" si "d=1"), en este programa el resultado se coloca en PCL y produce el salto esperado. Evidentemente "F" tiene el valor de "1", pero esto es lo que no entiendo de dónde lo toma.

Transcribo a continuación el programita para que veáis como usa la instrucción y para cualquiera que le interese. La modificación que le hice a este programa, además de probarlo original, fue de modificar los literales que carga en W de cada configuración para que me presente un dígito decimal  en un display de siete segmentos conectado a la salida del PortB, con un resistor de 330R en cada línea, (el PIC lo alimento a 5V). Por ej. en Configuracion0 le puse: movlw  b"00111111" y el display está conectado así: seg "a" a RB0; seg "b" a RB1; etc. (RB7 queda libre o se usa como punto decimal en el display).
Gracias a todos y hasta la próxima.
Saludos desde Málaga.

;*********************** Indexado_01.asm ***********************
;
;
;Del libro "MICROCONTROLADOR PIC16F84. DESARROLLO DE PROYECTOS"
;     E. Palacios, F. Remiro y L. López.
;      Editorial Ra-Ma.  www.ra-ma.es
;
;
; Implementar una tabla de la verdad mediante el manejo de tablas grabadas en
; ROM.
; Por ejemplo, la tabla será de 3 entradas y 6 salidas tal como la siguiente:
;
;       C  B  A  | S5  S4  S3  S2  S1  S0
;       -----------|---------------------------
;       0   0   0   |   0    0    1    0    1    0   ; (Configuración 0).
;       0   0   1   |   0    0    1    0    0    1   ; (Configuración 1).
;       0   1   0   |   1    0    0    0    1    1   ; (Configuración 2).
;       0   1   1   |   0    0    1    1    1    1   ; (Configuración 3).
;       1   0   0   |   1    0    0    0    0    0   ; (Configuración 4).
;       1   0   1   |   0    0    0    1    1    1   ; (Configuración 5).
;       1   1   0   |   0    1    0    1    1    1   ; (Configuración 6).
;       1   1   1   |   1    1    1    1    1    1   ; (Configuración 7).
;
; Las entradas C, B, A se conectarán a las líneas del puerto A: RA2 (C), RA1 (B) y
; RA0 (A).
; Las salidas se obtienen en el puerto B:
; RB5 (S5), RB4 (S4), RB3 (S3), RB2 (S2), RB1 (S1) y RB0 (S0).
;
; ZONA DE DATOS **
   __CONFIG   _CP_OFF &  _WDT_OFF & _PWRTE_ON & _XT_OSC
   LIST      P=16F84A
   INCLUDE  <P16F84A.INC>

; ZONA DE CÓDIGOS **

   ORG    0      ; El programa comienza en la dirección 0.
Inicio
   bsf   STATUS,RP0   ; Acceso al Banco 1.
   clrf   TRISB      ; Las líneas del Puerto B se  
                                                                ;configuran como salida.
   movlw   b"00011111"   ; Las 5 líneas del Puerto A se
                                                                ;configuran como entrada.
   movwf   TRISA
   bcf   STATUS,RP0   ; Acceso al Banco 0.
Principal
   movf   PORTA,W      ; Lee el valor de las variables de entrada.
   andlw   b"00000111"   ; Se queda con los tres bits de entrada.
   addwf   PCL,F                   ; Salta a la configuración adecuada.
Tabla
   goto   Configuracion0
   goto   Configuracion1
   goto   Configuracion2
   goto   Configuracion3
   goto   Configuracion4
   goto   Configuracion5
   goto   Configuracion6
   goto   Configuracion7
Configuracion0
   movlw    b"00001010"      ; (Configuración 0).
   goto   ActivaSalida
Configuracion1
   movlw    b"00001001"      ; (Configuración 1).
   goto   ActivaSalida
Configuracion2
   movlw    b"00100011"      ; (Configuración 2).
   goto   ActivaSalida
Configuracion3
   movlw    b"00001111"      ; (Configuración 3).
   goto   ActivaSalida
Configuracion4
   movlw    b"00100000"      ; (Configuración 4).
   goto   ActivaSalida
Configuracion5
   movlw    b"00000111"      ; (Configuración 5).
   goto   ActivaSalida
Configuracion6
   movlw    b"00010111"      ; (Configuración 6).
   goto   ActivaSalida
Configuracion7
   movlw    b"00111111"      ; (Configuración 7).
ActivaSalida
   movwf   PORTB         ; Visualiza por el puerto de salida.
   goto    Principal

   END
   
;   
;Del libro "MICROCONTROLADOR PIC16F84. DESARROLLO DE PROYECTOS"
;     E. Palacios, F. Remiro y L. López.
;      Editorial Ra-Ma.  www.ra-ma.es
;


Desconectado Golden_Eagle

  • PIC16
  • ***
  • Mensajes: 135
RE: Sobre la instrucción: addwf PCL,F (Libro RA-MA)
« Respuesta #1 en: 28 de Febrero de 2005, 09:56:00 »
el valor de "F" esta definido en el archivo P16F84A.INC
al cual haces referencia con esta linea del codigo "INCLUDE <P16F84A.INC>"

Desconectado GUEORK

  • PIC10
  • *
  • Mensajes: 20
RE: Sobre la instrucción: addwf PCL,F (Libro RA-MA)
« Respuesta #2 en: 01 de Marzo de 2005, 13:33:00 »
GRACIAS AMIGO!!
Encontré lo que me dices.
Ahora, en el programa <PIC16F84A.INC>, luego de "Register Definitions" pone:
W  EQU  H"0000"; luego: F  EQU  H"0001", continúa luego "Register Files" con los registros del SFR, ¿pero entonces "F" es un registro? Entiendo que W es el registro de trabajo, luego el "F" no lo entiendo. Bueno, pero voy llegando...
Saludos y gracias.

Desconectado adrian2a1

  • Colaborador
  • PIC12
  • *****
  • Mensajes: 75
RE: Sobre la instrucción: addwf PCL,F (Libro RA-MA)
« Respuesta #3 en: 01 de Marzo de 2005, 15:17:00 »
Yo uso el mismo libro y esa duda la tienes explicada en la página 76.

Salu2.

Desconectado GUEORK

  • PIC10
  • *
  • Mensajes: 20
RE: Sobre la instrucción: addwf PCL,F (Libro RA-MA)
« Respuesta #4 en: 03 de Marzo de 2005, 12:21:00 »
Gracias a ti también amigo.

Desconectado omibaya

  • PIC12
  • **
  • Mensajes: 57
RE: Sobre la instrucción: addwf PCL,F (Libro RA-MA)
« Respuesta #5 en: 11 de Marzo de 2005, 11:31:00 »
a proposito de este libro, me parece interesante, pero aqui en peru no hay, y no tengo tarjeta de credito, alguien sabe como conseguirlo, o si me lo pueden mandar, claro despues de haberlo pagado por deposito o algo, gracias y ojala alguien me haga caso Sonrisa

Desconectado omibaya

  • PIC12
  • **
  • Mensajes: 57
RE: Sobre la instrucción: addwf PCL,F (Libro RA-MA)
« Respuesta #6 en: 11 de Marzo de 2005, 11:31:00 »
a proposito de este libro, me parece interesante, pero aqui en Peru no hay, y no tengo tarjeta de credito, alguien sabe como conseguirlo, o si me lo pueden mandar, claro despues de haberlo pagado por deposito o algo, gracias y ojala alguien me haga caso Sonrisa, mi correo es omibaya@hotmail.com