Descargar

Gama media PIC16F84 (página 2)

Enviado por Pablo Turmero


Partes: 1, 2
edu.red

13 . MODOS DE DIRECCIONAMIENTO DE DATOS Existen varios modos de direccionamiento para acceder a cualquiera de las posiciones de datos: Direccionamiento directo Direccionamiento indirecto Direccionamiento indexado Direccionamiento inmediato Direccionamiento de bit

Direccionamiento directo: La posición de memoria con la que se trabaja viene directamente definida en el código de la instrucción.

mowf TMR0

edu.red

14 . MODOS DE DIRECCIONAMIENTO DE DATOS Direccionamiento indirecto: La posición de memoria con la que se trabaja viene definida por el contenido del registro FSR (Posición 04h, 84h), es decir, el registro FSR actúa como puntero de la posición de memoria con la que se pretende operar.

movwf INDF

Direccionamiento indexado: Se utiliza el PC, concretamente el PCL para direccionar.

addwf PCL,F

Direccionamiento inmediato: El valor del dato inmediato lo contiene el código de operación y se carga en el registro. iorlw K Direccionamiento de BIT: La dirección del dato es un bit. Bcf STATUS,RP0

edu.red

15 . MODOS DE DIRECCIONAMIENTO DE LA MEMORIA DE DATOS (Cont.)

7 bits para direccionar la RAM (9 bits)*

Dir. Indirecto 7 bits (8 bits)* Dir. Directo: 7 bits . Con los bits STATUS (RP1 y RP0) se obtiene el banco (X bits)* en otros PIC de la GAMA

edu.red

16 . MODOS DE DIRECCIONAMIENTO DE LA MEMORIA DE DATOS (Cont.) Tanto para el direccionamiento directo como el indirecto la dirección completa (7 bits) no se puede obtener del código de la operación (5 bits) o del registro FSR (7 bits). Para direccionamiento directo, la dirección a operar se obtiene completando la dirección incluida en el código de la instrucción (posición en el banco) con los bits RP1:RP0 del registro STATUS (selección de banco). Para direccionamiento indirecto, la dirección se obtiene completando el contenido del registro FSR (posición en el banco) con el bit IRP del registro STATUS y el bit de mayor peso del FSR (selección del banco). [El PIC16F84 no utiliza el bit IRP -solo 2 bancos-].

edu.red

17 . MODOS DE DIRECCIONAMIENTO INDIRECTO: INDF y FSR

EL DIRECCIONANMIENTO INDIRECTO UTILIZA EL INDF, NO ES UN REGISTRO FÍSICO. DIRECCIONANDO INDF SE DIRECCIONA REALMENTE EL REGISTRO CUYA DIRECCIÓN CONSTA EN EL REGISTRO FSR. El direccionamiento indirecto es muy útil para el procesamiento de posiciones consecutivas de memoria o para el direccionamiento de datos en subrutinas. REGISTRO POSICIÓN 05h CONTIENE 10h REGISTRO POSICIÓN 06h CONTIENE 0Ah CARGA DE 05h EN EL REGISTRO FSR LECTURA DE INDF DA UN VALOR DE 10h INCREMENTAR EL CONTENIDO DE FSR (FRS=06h) LECTURA DE INDF DA UN VALOR DE 0Ah

edu.red

18 INDF y EECON2 son utilizados por otros registros . REGISTROS ESPECIALES

edu.red

19 CARRY (bit 0): bit de desbordamiento. Este bit se pone a "1" cuando la operación anterior ha rebasado la capacidad de un byte.

DC (digit carry) (bit 1): lo mismo que el anterior pero esta vez nos avisa si el número no cabe en cuatro bits.

Z (zero) (bit 2): Se pone a "1" si la operación anterior ha sido cero. Y pasa a "0" si la operación anterior no ha sido cero.

PD (Power – Down bit) (bit3): se pone a "0" después de ejecutar la instrucción SLEEP*, se pone a "1" después de ejecutar la instrucción CLRWDT o después de un power-up.

TO (Timer Up) (bit4): se pone a "0" cuando se acaba el tiempo del WATCHDOG, Se pone a "1" después de ejecutar las instrucciones, CLRWDT o SLEEP o después de un power-up.

RP0 y RP1 (selección de banco) (bit 5 y 6): Como el PIC16F84 solo tiene dos bancos de memoria el RP1 no se usa para nada, la selección del banco se hace mediante RP0 (BIT 5), si está a "0" nos encontramos en el banco 0, y si está a "1" nos encontramos en el banco 1.

IRP (bit 7): En este PIC no se usa para nada. . REGISTROS ESPECIALES: STATUS REGISTER (Address 03h,83h)

edu.red

20 . REGISTROS ESPECIALES: PUERTOS ENTRADA/SALIDA

(Gp:) RB7

RB6

RB5

RB4

RB3

RB2

RB1

RB0/INT0 (Gp:) RA4/TOCK1

RA3

RA2

RA1

RA0

Puerto A: 5 bits Puerto B: 8 bits Definición IN-OUT por TRIS f Nivel IN-OUT por PORT f BSF STATUS,RP0 BANCO 1 Para trabajar con TRIS f BCF STATUS,RP0 BANCO 0 Para trabajar con PORT f

edu.red

21 . REGISTROS ESPECIALES: PUERTOS ENTRADA/SALIDA

Definición IN-OUT por TRIS f Salida: 0 Entrada: 1 Nivel IN-OUT por PORT f Guardar el contenido del Puerto en W

edu.red

22 Puertos de entrada/salida Definición IN-OUT por TRIS f Salida: 0 Entrada: 1 BSF Status, RP0 ;Banco 1 CLRF TRISA ;Puerto A OUT MOVLW b'11111111' ;Puerto B IN MOVWF TRISB BCF Status, RP0 ;Banco 0 MOVLW b'xxxxxxxx' MOVWF TRISf (Gp:) Nivel IN-OUT por PORT f Guardar el contenido del Puerto en W (Gp:) ;SI PUERTO f ES DE SALIDA

MOVLW b'01010101' ;Guarda en W el valor MOVWF PORTB ;Lo envía a la salida

; SI PUERTO f ES DE ENTRADA

MOVF PORTB,W ;Guarda los datos en W

BSF TRISf,x BCF TRISf,x

edu.red

23 . REGISTROS ESPECIALES: PUERTOS ENTRADA/SALIDA

PORT B: resistencias de PULL-UP conectadas

Se habilitan o Deshabilitan todas a la vez por registro: OPTION_REG

BSF OPTION_REG,RBPU BCF OPTION_REG,RBPU

Si el puerto se define como SALIDA, las resistencias NO ACTUAN

PORT A: El pin RA4/TOCKI es un COLECTOR ABIERTO – Si se utiliza de SALIDA: Resistencia EXTERNA de Pull-up – Como ENTRADA: puede ser utilizada como Trigger-Schmitt (Gp:) Vcc

edu.red

24 . SEGÚN FUNCIONALIDAD DATA SHEET

edu.red

25 . SEGÚN FUNCIONALIDAD

edu.red

26 . SEGÚN FUNCIONALIDAD

Partes: 1, 2
 Página anterior Volver al principio del trabajoPágina siguiente