Professional Documents
Culture Documents
ARQUITECTURA
Memoria de programa
En sus 1024 posiciones (1Kwords) contiene el programa con las instrucciones que gobiernan la aplicacin. Es del tipo no voltil.
El byte bajo PC<0:7> se denomina PCL y est disponible en la memoria de datos (Banco 0, posicin 02h), es un registro que se puede leer y escribir directamente desde programa. El cuasibyte alto PC<12:8> se denomina PCH y no est disponible en la memoria de datos. Este registro no se puede leer ni escribir directamente. La escritura debe realizarse usando los 5 bits menos significativos del registro PCLATH que s es un registro de 8 bits accesible en la memoria de datos (Banco 0, posicin 08h). Los saltos relativos afectan a los 8 bits de menor peso del PC (PCL) y los 5 bits de mayor peso los aporta el PCLATH. En las instrucciones GOTO y CALL, los 11 bits de menor peso del PC se suministran desde el cdigo de operacin, los 2 bits de ms peso del PC se cargan con los bits [4:3] del PCLATH. Con los 11 bits se posicionan los 2K de cada pgina y con los 2 bits se posiciona una de las 4 pginas.
12 8 7 0 12 11 10 0
PC
5
7 6 5 4 0
PCL
2
7 6 5 4 3 2 1 0
11
EN GOTO y CALL PROCEDEN DEL CDIGO DE PROGRAMA
PCLATH
El vector de RESET est siempre en la posicin 0000h de la memoria de programa. Cualquier reset (interno o externo) que se genere en un microcontrolador har que su contador de programa pase a tener el valor 0000h y que por tanto el microcontrolador pase a ejecutar la instruccin situada en dicha posicin. El RESET tambin limpia el contenido del registro PCLATH.
El vector de INTERRUPCION est siempre en la posicin 0004h de la memoria de programa. Cualquier interrupcin que se fuerce a un microcontrolador har que su contador de programa pase a tener el valor 0004h y que por tanto el microcontrolador pase a ejecutar la instruccin situada en dicha posicin. El salto a la rutina de interrupcin no modifica el contenido del PCLATH, por lo que cualquier modificacin que se realice del PC en la rutina de interrupcin debe realizarse con cuidado de lo que se tiene cargado en el PCLATH.
10
11
Registros de propsito general GPR. Se pueden usar para guardar datos temporales. El PIC16F84 dispone de 68.
Algunos SFR son accesibles desde dos o ms bancos.
12
13
mowf TMR0
14
addwf PCL,F
Direccionamiento inmediato: El valor del dato inmediato lo contiene el cdigo de operacin y se carga en el registro. iorlw K Direccionamiento de BIT: La direccin del dato es un bit. Bcf STATUS,RP0
15
Dir. Indirecto
7 bits (8 bits)*
Dir. Directo: 7 bits . Con los bits STATUS (RP1 y RP0) se obtiene el banco
16
17
REGISTRO POSICIN 05h CONTIENE 10h REGISTRO POSICIN 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
18
EECON1
EECON2
:
:
19
CARRY (bit 0): bit de desbordamiento. Este bit se pone a "1" cuando la operacin 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 nmero no cabe en cuatro bits. Z (zero) (bit 2): Se pone a "1" si la operacin anterior ha sido cero. Y pasa a "0" si la operacin anterior no ha sido cero. PD (Power - Down bit) (bit3): se pone a "0" despus de ejecutar la instruccin SLEEP*, se pone a "1" despus de ejecutar la instruccin CLRWDT o despus de un power-up. TO (Timer Up) (bit4): se pone a "0" cuando se acaba el tiempo del WATCHDOG, Se pone a "1" despus de ejecutar las instrucciones, CLRWDT o SLEEP o despus de un power-up. RP0 y RP1 (seleccin de banco) (bit 5 y 6): Como el PIC16F84 solo tiene dos bancos de memoria el RP1 no se usa para nada, la seleccin 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.
20
Puerto B: 8 bits
RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0/INT0
BSF STATUS,RP0 BANCO 1 Para trabajar con TRIS f BCF STATUS,RP0 BANCO 0 Para trabajar con PORT f
21
22
;Banco 0
23
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 24
25
26
27