Está en la página 1de 34

Estructura: unidad de proceso (CPU), memoria RAM, memoria ROM y Puertos de

entrada/salida.
Dispositivo Programable que puede ejecutar un sinnmero de tareas y procesos.
Un Microcontrolador esta compuesto bsicamente por cuatro componentes principales:

1.
2.
3.
4.

Memoria ROM, EEPROM, EPROM o FLASH; es la memoria donde se almacena el programa.


Memoria RAM o SRAM: es la memoria donde se almacenan los datos.
Lneas de Entrada / Salida (I / O)
CPU: controla y ejecuta todas las instrucciones que conforman el programa.

Existen diferentes familias de microcontroladores: Intel, Motorola, Microchip, entre otras.


En esta charla se utilizar el microcontrolador PIC16F873, que pertenece a la familia de
Microchip; esta familia de microchip se caracteriza por tener procesador RISC y arquitectura
Harvard caracterizada por la independencia entre la memoria de cdigo (programa) y la de
memoria de datos.

Memoria de Cdigo
(Flash)

Procesador
Bus de Direccin de
Instrucciones

Memoria de
programa
FLASH

Memoria de Datos
(SRAM)
Bus de Direccin de Datos

Memoria de
datos SRAM

Procesador

Bus de Instrucciones

Bus de Datos

MAPA DE MEMORIA DEL PIC16F873, CON 192 BYTES TILES.


INDF
TMR0
PCL
STATUS
FSR
PORTA
PORTB
PORTC
PORTD (1)
PORTE (1)
PCLATH
INTCON
PIR1
PIR2
TMR1L
TMR1H
T1CON
TMR2
T2CON
SSPBUF
SSPCON
CCPR1L
CCPR1H
CCP1CON
RCSTA
TXREG
RCREG
CCPR2L
CCPR2H
CCP2CON
ADRESH
ADCON0
Registros de
propsito
general
96 Bytes

00h
01h
02h
03h
04h
05h
06h
07h
08h
09h
0Ah
0Bh
0Ch
0Dh
0Eh
0Fh
10h
11h
12h
13h
14h
15h
16h
17h
18h
19h
1Ah
1Bh
1Ch
1Dh
1Eh
1Fh
20h

INDF
OPTION_REG
PCL
STATUS
FSR
TRISA
TRISB
TRISC
TRISD (1)
TRISE (1)
PCLATH
INTCON
PIE1
PIE2
PCON

SSPCON2
PR2
SSPADD
SSPSTAT

TXSTA
SPBRG

ADRESL
ADCON1
Registros de
propsito
general
96 Bytes

INDF
TMR0
PCL
STATUS
FSR
PORTB

PCLATH
INTCON
EEDATA
EEADR
EEDATH
EEDRH

Mapeados
con 20h-7Fh

FFh

7Fh
Banco 0

80h
81h
82h
83h
84h
85h
86h
87h
88h
89h
8Ah
9Bh
8Ch
8Dh
8Eh
8Fh
90h
91h
92h
93h
94h
95h
96h
97h
98h
99h
9Ah
9Bh
9Ch
9Dh
9Eh
9Fh
A0h

Banco 1

100h
INDF
180h
101h OPTION_REG 181h
102h
PCL
182h
103h
STATUS
183h
104h
FSR
184h
105h
185h
106h
TRISB
186h
107h
187h
108h
188h
109h
189h
10Ah
PCLATH
18Ah
10Bh
INTCON
18Bh
10Ch
EECON1
18Ch
10Dh
EECON2
18Dh
10Eh
Reservado
18Eh
10Fh
Reservado
18Fh
110h
190h
111h
191h
112h
192h
113h
193h
114h
194h
115h
195h
116h
196h
117h
197h
118h
198h
119h
199h
11Ah
19Ah
11Bh
19Bh
11Ch
19Ch
11Dh
19Dh
11Eh
19Eh
11Fh
19Fh
120h Mapeados con 1A0h
A0h-FFh

17Fh
Banco 2

1FFh
Banco 3

Caractersticas Generales
Microcontroladores de la serie 16F87X
Arquitectura general de la serie 16F87X
Organizacin de la memoria
Set de Instrucciones
Conclusiones

CPU

Perifricos

Procesador de Arquitectura RISC (Solo


35 instrucciones)

Timer o contador de 8 bits con prescalas de


8 bits

Instrucciones de un ciclo simple de


duracin (4 ciclos cristal) excepto los
saltos que requieren dos ciclos simples

Timer de 16 bits

Velocidad de operacin: 20 MHz


Memorias FLASH, RAM y EEPROM
Soporte para hasta 14 fuentes de
interrupcin

Watchdog timer (WDT) para lograr


modo de operacin ms seguro
Proteccin de cdigo programado
(Encriptado)

ndice

Puertos Comparadores/PWM
(Multiplexados) [16 bits resolucin]
Convertidor A/D de 10 bits

SPI (Puerto serial sincrnico para conexin


de perifricos esclavos)
USART (Universal Synchronous
Asynchronous Receiver Transmitter) Para
comunicacin serial con paquetes de 8 o 9
bits
Puerto paralelo esclavo de 8 bits

Caracterstica

Microcontrolador
PIC 16F873

PIC 16F874

PIC 16F876

PIC 16F877

Frecuencia de operacin
(MHz)

20

20

20

20

Memoria FLASH
(Espacios de 14 bits)

4K

4K

8K

8K

Memoria para datos


(Bytes)

192

192

368

368

Memoria EEPROM
(Bytes)

128

128

256

256

Fuentes de Interrupcin

13

14

13

14

Puertos Entrada/Salida

A,B,C

A,B,C,D,E

A,B,C

A,B,C,D,E

Timers o Contadores

Puertos PWM o
Comparadores

Comunicacin Serial

USART

USART

USART

USART

Comunicacin Paralela

PSP

PSP

Convertidor ADC

5 Canales entrada

8 Canales entrada

5 Canales entrada

8 Canales entrada

Set de Instrucciones

35 instrucciones

35 instrucciones

35 instrucciones

35 instrucciones

ndice

Regresar

Puerto B
Puerto D
Puerto C
Puerto E
Puerto A

Regresar

Posee 6 bits bi-direccionales


Se configura en el registro TRISA
Un 1 configura una entrada, un 0 configura una salida
en el pin correspondiente al bit
El registro de datos de entrada/salida es PORTA
El pin RA4 es multiplexado con el Timer
Los pines RA0RA3 y RA5 son multiplexados con el
ADC

Regresar

Posee 8 bits bi-direccionales


Se configura en el registro TRISB
Un 1 configura una entrada, un 0 configura una salida en el pin
correspondiente al bit
El registro de datos de entrada/salida es PORTB
Puede activar/desactivar las resistencias internas de Pull Up (Con el bit RBPU
del registro OPTION)
El pull up est normalmente inactivo
Los pines RB7RB4 pueden usarse como entradas de interrupcin externa
por cambio
Las interrupciones se configuran en el bit RBIF del registro INTCON
Uso: Teclado hexadecimal con atencin de teclas por interrupcin

Regresar

Posee 8 bits bi-direccionales


Se configura en el registro TRISC
Un 1 configura una entrada, un 0 configura una salida en el pin
correspondiente al bit
El registro de datos de entrada/salida es PORTC
Tiene sus pines de entrada con buffers tipo Schmitt Trigger
Comparte pines con funciones de conexin serial de perifricos externos
(Protocolo I2C para SPI) [RC3:RC4]
Comparte pines con salidas PWM o entradas de comparadores [RC0:RC2]
Comparte pines con sistema comunicacin serial USART [RC7:RC6]

Regresar

Posee 8 bits bi-direccionales


Se configura en el registro TRISD
Un 1 configura una entrada, un 0 configura una salida en el pin
correspondiente al bit
El registro de datos de entrada/salida es PORTD
Tiene sus pines de entrada con buffers tipo Schmitt Trigger
El bit PSPMODE del registro TRISE permite usar este puerto
como puerto de expansin de memoria del microprocesador o
para conexin a sistemas multiprocesador como esclavo con
transferencias paralelas.

Regresar

Posee 3 bits bi-direccionales


Se configura en el registro TRISE
Un 1 configura una entrada, un 0 configura una salida
en el pin correspondiente al bit
El registro de datos de entrada/salida es PORTE
Son entradas Schmitt Trigger
Sus pines se convierten en seales de control cuando
se configura en modo de expansin de memoria o en
sistemas multiprocesador con transferencia paralela
de datos.

Regresar

Registro de trabajo
Recibe los resultados de las operaciones ejecutadas
por la ALU
Puede ser escrito
Se usa para las transferencias indirectas entre
registros y ubicaciones de memoria

Regresar

Ejecuta las operaciones con los operandos de entrada


Tiene un registro acumulador W donde se almacenan los
resultados
El registro W puede realimentar su valor como dato de
entrada a la ALU
Ejecuta operaciones segn el cdigo que reciba en las entradas
de control.

Regresar

Ubicado en 03h,83h,103h y 183h


Resume las condiciones en que se encuentra el microcontrolador
Bits:
IRP: Selecciona bancos altos (2 y 3) cuando vale 1 y bancos bajos (1 y 0) cuando vale 0
RP1 y RP0: Selectores de bancos para acceso directo.

00: Banco 0
01: Banco 1
10: Banco 2
11: Banco 3

#TO: Bit de Time Out. Se pone en 0 cuando hay un RESET

#PD: Bit de Power Down. Se pone en 0 cuando entra en SLEEP


Z: Bandera del Cero. Se pone en 1 si el resulatado de la ltima operacin realizada es un
0.

DC: Bandera de Acarreo Intermedio. Se pone en 1 si hay un carry de los 4 bits menos

segnificativos a los 4 bits ms significativos.


C: Bandera de Acarreo. Se pone en 1 si el resultado de una operacin excede la
capacidad de 8 bits y requiere de un acarreo.

Regresar

Ubicado en 04h, 84h, 104h y 184h


Se utiliza para construir direcciones indirectas
Registro de 8 bits
Se utiliza para hacer barridos de RAM

Regresar

Define si a la RAM ingresa la direccin directa o la indirecta


La direccin directa se lee de la memoria de programa
La direccin indirecta se construye a partir de condiciones en el
registro FSR.
Por ejemplo: Saltos condicionados

Regresar

Memoria destinada para almacenamiento temporal de datos.


Dividida en 4 bancos seleccionados con los bits RP0 y RP1 del
registro Status
Cada banco es de 128 bytes
Las ubicaciones ms bajas son reservadas para registros de
control/configuracin
Cada banco se constituye por registros de propsito general.
Cada registro es una localidad de memoria de 13 bits
Cada registro se accesa como direccin de memoria, por
ejemplo:
07F9h es una localidad vlida de memoria de datos

Regresar

Contador de 13 bits.
Capacidad de direccionar programas de hasta 8k
instrucciones de 14 bits
La ubicacin del vector de RESET (0000h) es el valor
del contador de programa cuando la mquina se
inicializa
La ubicacin del vector de interrupciones es (0004h) y
funciona como ndice para cargar el contador de
programa con el valor de la localidad de memoria
que tiene el cdigo de programa para atender una
interrupcin.

Regresar

Almacena la secuencia de instrucciones que corresponde al


programa escrito
Almacena cdigos hexadecimales generados en un archivo
*.hex por el compilador o el ensamblador
Consta de pginas de 2kbytes
Se ubica en la parte alta de la memoria, despus del vector de
interrupciones
En 16F877 y 16F876 se tienen 4 pginas
En 16F874 y 16F873 se tienen 2 pginas
Es memoria de tipo FLASH

Regresar

Registro que almacena la instruccin siguiente a ejecutar


tomada de la memoria de programa
Enva la instruccin a RAM en casos que requieren la
modificacin de algn registro
Enva la instruccin a la unidad de decodificacin para
preparase a ejecutar la siguiente instruccin

Regresar

Recibe la instruccin siguiente a ejecutar


Realiza la decodificacin del dato recibido al cdigo de
operacin que debe utilizarse
El cdigo de operacin se aplica a la ALU, unidad de RESET,
unidad de WDT, etc segn sea la operacin

Regresar

Es la unidad que transforma la seal del cristal en una


seal de reloj adecuada para el funcionamiento del
sistema
Incluye divisores de frecuencia para generar seales
de reloj de diferentes frecuencias para los timers y
otros elementos que requieren seales de reloj como el
ADC
Genera adems la seal de RESET externo tomada de
un pulsador.

Regresar

Contiene las siguientes sub-etapas:


Contador de inicializacin. Hace que el sistema espere cierto tiempo para
estabilizarse despus de un RESET.
Contador de inicio del oscilador. Espera a que el oscilador se estabilice
luego de un RESET.
Power On RESET: Genera la seal interna que ejecuta el RESET por
inicializacin del sistema.
Watchdog Timer: Si el sistema entra en un ciclo infinito, el contador del
WDT ejecuta un RESET despus de transcurrido un tiempo considerable
Debugger: Herramienta de pruebas utilizada por el fabricante.
Programacin: Genera las seales que escriben el programa en la
memoria correspondiente.
RESET por Brown-Out: Genera un RESET que puede controlarse por
software para ciertas aplicaciones.

Regresar

Capacidad de 8 bits
Lectura y escritura
Prescala de 8 bits controlada
por software
Reloj interno o externo con
seleccin de flanco
Interrupcin por rebaso
activada al cambiar de FFh a
00h

Registros de datos en TMR0,


TMR1 y TMR2
EL TMR1 es de 16 bits, y usa los
registros TMR1L para los 8 bits
menos significativos y TMR1H
para los ms significativos
El TMR2 se usa como base de
tiempo para el PWM
Los registros de configuracin
son T0CON, T1CON y T2CON

En los PIC existen tres tipos de memoria:


a- Memoria de Programa
b- Memoria de Datos
c- EEPROM data MEM
Cada bloque tiene una funcin dentro de la arquitectura

ndice

Regresar

Esquema general:
-Posee un contador de 13 bits
-Vector de reset se ubica en 00H
-Vector de interrupcin ubicado en 04H
Mapa de memoria

Regresar

Regresar

Particionada en mltiples bancos de registros de propsito


general, seleccionados por RP0, RP1.
Extensin de cada banco: 128 bytes
Memoria tipo RAM esttica
Los registros permiten la configuracin de las caractersticas
del MCU

Regresar

Regresar

Los registros de funcin especial permiten configurar las


diferentes posibilidades de operacin del sistema:
STATUS

Regresar

Arquitectura RISC de 35 instrucciones.


Operaciones de duracin igual, excepto saltos.
Compatible con otras familias de PIC.
Pila de 8 niveles y 14 fuentes de interrupcin.
Proteccin de cdigo programable.
Frecuencia de operacin programable.
Comunicacin serie
ADCs de 10 bits de Resolucin

ndice