Notas Unidad 2-1
Notas Unidad 2-1
Notas Unidad 2-1
CARACTERISTICAS DE UN MICROCONTROLADOR
Pipelining
Ejemplo:
8
TCY0 lee la instrucción MOVLW 55h (no importando para nosotros en
este momento que instrucción fue ejecutada).
TCY1 ejecuta la instrucción MOVLW 55h y lee MOVWF PORTB.
TCY2 ejecuta la instrucción MOVWF PORTB y lee CALL SUB_1.
TCY3 ejecuta la llamada a una subrutina CALL SUB_1 y lee la
instrucción BSF PORTA,BIT3. Ya que esta instrucción no es la
que se necesita o no es la primera instrucción de SUB_1, la
instrucción debe ser leída nuevamente. Este es un claro ejemplo
de una instrucción que necesita más de un ciclo para ejecutarse.
TCY4 se usa totalmente para leer la primera instrucción de la subrutina
SUB_1.
TCY5 ejecuta la primera instrucción de SUB_1 y lee la siguiente
instrucción.
Descripción de líneas.
9
Las líneas del PIC16F84 tienen el siguiente significado:
Las líneas RB4 a RB7 pueden usarse también como entradas para
detectar algún cambio de estado en las mismas.
10
Generador de reloj – oscilador.
Tipos de osciladores.
Oscilador XT.
11
Figura II.4. Oscilador XT.
12
El circuito de reset.
15
3) Reset durante el estado SLEEP.
4) Reset al ocurrir un sobreflujo (overflow) en el watchdog timer
(WDT).
5) Reset al ocurrir un sobreflujo (overflow) en el watchdog timer
(WDT) encontrándose en el estado SLEEP.
16
La unidad central de procesamiento (CPU).
18
La CPU conecta todas las partes del microcontrolador de manera
centralizada y tal vez la función más importante es decodificar las
instrucciones del programa. Esta conexión se lleva a cabo por medio de
los buses de datos y direcciones.
19
Figura II.12. Diagrama general de la ALU.
20
“General Purpose Register-Registro de Propósito General” y SFR es
“Special Function Register-Registro de Función Especial”.
21
Figura II.13. Diagrama de bloques del PIC16F84.
22
Registro STATUS.
R/W-0 R/W-0 R/W-0 R/W-1 R/W-1 R/W-x R/W-x R/W-x
23
Bit 3-PD (Power-down).
Este bit es puesto a 1 lógico al suministrar energía o encender la fuente
de alimentación, después de cada reset regular y después de ejecutar la
instrucción CLRWDT. La instrucción SLEEP lo limpia cuando el
microcontrolador pasa al modo de bajo consumo de energía. Colocarlo
en uno también es posible al ocurrir una señal en la línea RB0/INT, al
completarse una escritura en la EEPROM interna y por un watchdog
también.
1 = Después de encender la fuente de alimentación.
0 = Ejecutando la instrucción SLEEP.
24
El registro STATUS contiene bits de estado aritméticos del ALU (C,
DC, Z), de estado de reset (TO, PD) y para seleccionar un banco de
memoria (RP, RP1, RP0). Ya que es por medio de este registro que se
selecciona un banco de registros, debe establecerse antes de usar un
banco específico. El registro STATUS puede ser un destino para cada
instrucción con cualquier otro registro. Si el registro STATUS es el
destino de instrucciones que afectan los bits Z, DC o C, entonces el
escribir a cualquiera de esos tres bits no es posible.
25
ORGANIZACION DE LA MEMORIA
26
procedimiento estricto para escribir en la memoria EEPROM, el cual
debe ser seguido para evitar escrituras erróneas o accidentales.
III.3. Registros.
Registros SFR.
27
Figura III.1. Organización de memoria del PIC16F84.
28
Bancos de memoria.
Ejemplo:
bcf STATUS,RP0
bsf STATUS,RP0
29
Usualmente, se agrupan las instrucciones más comúnmente usadas en
unidades llamadas macros y que fácilmente se pueden llamar o invocar
en un programa, donde el nombre de esos grupos tiene un significado
claro y relacionado con la función del grupo. Por ejemplo, se puede
escribir un macro para seleccionar uno de los dos bancos y hacer el
programa más legible.
BANK0 macro
bcf STATUS, RP0 ;Selecciona el banco 0
endm
BANK1 macro
bsf STATUS, RP0 ;Selecciona el banco 1
endm
30
Program counter.
Stack.
31