Está en la página 1de 26

Electrnica Industrial

Tema 11. Introduccin a los Microprocesadores y Microcontroladores

Unidad 11 Introduccin a los microprocesadores y microcontroladores


Andres.Iborra@upct.es Juan.Suardiaz@upct.es Septiembre 2002

Electrnica Industrial

Tema 11. Introduccin a los Microprocesadores y Microcontroladores

CONTENIDO
Unidad 11. Introduccin a los microprocesadores y microcontroladores.
11.1 Elementos bsicos de un sistema microprocesador. 11.2 Microprocesadores frente a microcontroladores. 11.3 Arquitectura del PIC16F84. 11.4 Fundamentos de programacin del PIC16F84. 11.5 Ejemplos de programacin del PIC16F84.

OBJETIVOS ESPECFICOS
! Estudiar los bloques bsicos de un microprocesador. ! Comprender la diferencia entre lenguaje mquina y lenguaje ensamblador. ! Comprender el funcionamiento bsico de una CPU. ! Estudiar la arquitectura bsica del microcontrolador PIC 16F84 ! Distinguir entre puerto de E/S dedicado y puerto de E/S mapeado en memoria. ! Estudiar la E/S por sondeo (polling), la E/S controlada por interrupcin, y las interrupciones software. ! Saber programar aplicaciones sencillas en un PIC16F84.

Electrnica Industrial

Tema 11. Introduccin a los Microprocesadores y Microcontroladores

1. ELEMENTOS BSICOS DE UN SISTEMA MICROPROCESADOR El microprocesador El microprocesador es un circuito integrado digital que puede programarse con una serie de instrucciones, para realizar funciones especficas con los datos. Cuando un microprocesador se conecta a un dispositivo de memoria y se provee de dispositivos de entrada salida, pasa a ser un sistema microprocesador.

Electrnica Industrial

Tema 11. Introduccin a los Microprocesadores y Microcontroladores

1. ELEMENTOS BSICOS DE UN SISTEMA MICROPROCESADOR


Bus de direcciones Bus de datos

CPU (P)

Bus de control

Memoria

Puerto de entrada

Puerto de salida

Perifrico (Teclado, ratn, monitor)

Perifrico (Impresora, monitor)

Existen tres bloques funcionales bsicos: CPU, memoria y puertos. Los tres se encuentran conectados mediante buses. Los dispositivos de entrada y salida se conectan mediante puertos. Un puerto es una interfaz fsica de una computadora a travs del la cual pasan los datos haca y desde los perifricos. Los programas son un conjunto de instrucciones que entiende la CPU y que se ejecutan para resolver un problema especfico. El programa se almacena en memoria. Cada posicin de memoria tiene asignada una direccin exclusiva. Las instrucciones son ledas por la CPU a travs del bus de datos cuando sta las solicita. La CPU las interpreta, y las ejecuta secuencialmente. Con frecuencia las instrucciones vienen acompaadas de datos o direcciones, con objeto de modificarlos. La CPU genera seales de control para coordinar las transacciones.

Electrnica Industrial

Tema 11. Introduccin a los Microprocesadores y Microcontroladores

1. ELEMENTOS BSICOS DE UN SISTEMA MICROPROCESADOR Unidad central de proceso(CPU) (I). Unidades funcionales
Es un circuito de gran escala de integracin que contiene la CPU completa de una computadora en un nico circuito integrado. Los microprocesadores contienen diversas unidades funcionales que realizan trabajos especficos. El modo de relacionarse entre ellas establece la arquitectura interna del P, el conjunto de instrucciones disponibles y el modo de ejecutarse cada una de ellas.

6800 de Motorola

Unidad aritmtico lgica (ALU) Es el elemento clave de procesamiento del P. Esta gobernada por la unidad de control. Se utiliza para realizar operaciones aritmticas y lgicas. Los datos de la ALU se obtienen de la matriz de registros. Matriz de registros Es la coleccin de registros disponibles pro el programador dentro del microprocesador. Existen tambin, registros invisibles no disponibles por el programador. Unidad de control Proporciona las seales de temporizacin y control.
5

Electrnica Industrial

Tema 11. Introduccin a los Microprocesadores y Microcontroladores

1. ELEMENTOS BSICOS DE UN SISTEMA MICROPROCESADOR Unidad central de proceso(CPU) (II). Buses

Bus de direcciones Es un bus de un solo sentido a travs del cual el microprocesador enva un cdigo de direccin a una memoria o dispositivo externo. 16 lneas = 216= 65.536 posisiones = 64 K (8080) 20, 24 bits 32 lneas = 232= 4.294.467.296 = 4 Gigas (Pentium) Bus de datos Es un bus de dos sentidos (8, 16, 32 o 64 bits). Bus de control Seales para ciclos de lectura / escritura, ciclos de espera, interrupciones, etc.
6

Electrnica Industrial

Tema 11. Introduccin a los Microprocesadores y Microcontroladores

1. ELEMENTOS BSICOS DE UN SISTEMA MICROPROCESADOR Unidad central de proceso(CPU) (III)Programacin.

Todos los P disponen de un conjunto bsico de instrucciones que se pueden agrupar segn su funcionalidad. En el Pentium se pueden distinguir siete grupos bsicos: Transferencia de datos. Aritmtica. Manipulacin de bits. Bucles y saltos. Cadenas de caracteres. Subrutinas e interrupciones. Control del procesador.

Las instrucciones son decodificadas antes de que sean ejecutadas. A las instrucciones en cdigo binario se denomina lenguaje mquina. Con objeto de no escribir los programas en lenguaje mquina se utilizan nemnicos que constituyen lo que se conoce como lenguaje ensamblador. Los programas ensambladores se encargan de traducir los nemnicos en cdigo mquina. Tambin incluyen pseudo-instrucciones necesarias para facilitar la programacin (reserva de zonas de datos, cdigo, stack, variables, etc.). Un compilador traduce las instrucciones de un lenguaje de alto nivel mquina.
7

Electrnica Industrial

Tema 11. Introduccin a los Microprocesadores y Microcontroladores

2. MICROPROCESADORES VS MICROCONTROLADORES. Concepto general de microcontrolador.


" Es un C.I. que contiene todos los componentes de un computador.

Aplicaciones

1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.

Perifricos y dispositivos auxiliares de los computadores. Electrodomsticos. Aparatos porttiles y de bolsillo (tarjetas, monederos, telfonos..) Mquinas expendedoras y juguetera. Instrumentacin. Industria de automocin. Control industrial y robtica. Electromedicina. Sistema de navegacin espacial. Sistemas de seguridad y alarma. Domtica en general.

Panel de instrumentos Control de velocidad Sistema de navegacin Control climatizacin

Control del motor

Sistema antirrobo

Antideslizamiento

Electrnica Industrial

Tema 11. Introduccin a los Microprocesadores y Microcontroladores

2. MICROPROCESADORES VS MICROCONTROLADORES. Arquitectura Von Newman VS Harvard


Algunos microcontroladores optimizan su operatividad mediante una arquitectura Harvard.

Memoria

Procesador (CPU)

Entrada/Salida

Bus de Bus de direcciones Bus de control

Memoria datos

Procesador

Memoria programa

Bus de datos Bus de direcciones

Bus de control

Bus de datos (instrucciones) Bus de datos de memoria de programa


Bus de direcciones de memoria de programa

Electrnica Industrial

Tema 11. Introduccin a los Microprocesadores y Microcontroladores

2. MICROPROCESADORES VS MICROCONTROLADORES. Implantacin en el mercado


Algunos fabricantes de C con algunos modelos.
Fabricante INTEL MOTOROLA HITACHI PHILIPS SGS-THOMSON (ST) MICROCHIP NATIONAL SEMICONDUCTOR ZILOG TEXAS INSTRUMENTS TOSHIBA INFINEON DALLAS NEC Modelos de C 8048, 8051, 80C196, 80186, 80188, 80386EX 6805, 68HC11, 68HC12, 68HC16, 683XX HD64180 Gama completa de clnicos del 8051 ST-62XX PICs COP8 Z8, Z80 TMS370 TLCS-870 C500 DS5000 78K

Ranking europeo de ventas de MCU de 8 bits (ao 1999).

10

Electrnica Industrial

Tema 11. Introduccin a los Microprocesadores y Microcontroladores

3. ARQUITECTURA DEL PIC16F84 Microcontroladores PIC de Microchip


En la actualidad se emplean cada vez ms debido a: # Velocidad # Precio

# Facilidad de uso # Informacin y herramientas de apoyo.


Gamas
# # #
Familia PIC12C5XX PIC12C67X PIC12F6XX PIC16C5X PIC16C55X PIC16C6X PIC16X62X PIC16C64X PIC16C7X PIC16C71X PIC16C43X PIC16C78X PIC16C7X5 PIC16C77X PIC16F87X PIC16X8X PIC16F7X PIC16C9XX PIC17C4X PIC17C75X PIC18CXXX PIC18F0XX PIC18FXX2 PIC18FXX31

PIC12C5X, gama baja o clsica ( palabra de programa de 12 bits). PIC16CXXX, gama media (palabra de programa de 14 bits). PIC17CXXX, PIC18XXX, gama alta (palabra de programa de 16 bits).
Descripcin 8-Pin, 8-Bit CMOS 8-Pin, 8-Bit CMOS con Convertidor A/D 8-Pin, 8-Bit Flash con EEPROM y A/D EPROM/ROM 8-Bit CMOS EPROM-Based 8-Bit CMOS 8-Bit CMOS 8-Pin EPROM-Based 8-Bit CMOS con Comparador 8-Bit EPROM con Comparador analgico 8-Bit CMOS con convertidor A/D. 18 Pin, 8-Bit CMOS con convertidor A/D. 18/20 Pin, 8-Bit CMOS con bus LIN. Convertidor A/D, D/A, amplificador operacional, comparadores y PSMC. 8-Bit CMOS, A/D , para aplicaciones de USB, PS/2 y dispositivo serie. 20-pin, 28-pin y 40-Pin, 8-Bit CMOS con convertidor A/D 12-bit. 28/40-Pin, 8-Bit CMOS FLASH con convertidor A/D 10-bit . 18-Pin, 8-Bit CMOS FLASH/EEPROM Microcontrollers 28/40-pin 8-bit CMOS FLASH LCD, convertidor A/D 8 y 10-bit . 8-Bit CMOS EPROM/ROM, alto rendimiento. 8-Bit CMOS EPROM, alto rendimiento 8-Bit, arquitectura mejorada. 8-Pin, 8-Bit FLASH con EEPROM, PLVD, BOR y PWM. Proteccin de cdigo, 256 EEPROM, LVD, PLL, SLEEP ,multiplicador 8x8 , PSP. 28/40-Pin FLASH con EEPROM, PLVD, PBOR, A/D 10-bit PWM.

11

Electrnica Industrial

Tema 11. Introduccin a los Microprocesadores y Microcontroladores

3. ARQUITECTURA DEL PIC16F84 Arquitectura general

Caractersticas generales.
# Consta de una ALU, decodificador de instrucciones, y una matriz de registros. # Incluye tambin un mdulo de memoria para programa y una memoria auxiliar para datos del tipo EEPROM, por si falla la alimentacin. # Arquitectura Harvard. # Bus de datos de 8 bits, bus de instrucciones de 14 bits. # Conjunto de instrucciones reducido, RISC (35 instrucciones). # Las instrucciones se ejecutan en 1 ciclo, excepto los saltos (2 ciclos). # Dispone de dos puertos de entrada salida. # Entradas multiplexadas para interrupciones y el contador/temporizador. # Dispone de un perro guardian o watchdog.

12

Electrnica Industrial

Tema 11. Introduccin a los Microprocesadores y Microcontroladores

3. ARQUITECTURA DEL PIC16F84 Memoria de programa


# Tipo Flash integrada en el propio chip. # Memoria de 1K x 14 (000h 3FFh). # En la posicin 000h est el Vector de Reset. o Conexin alimentacin o Al aplicar 0V al terminal MCLR o Desbordamiento perro guardin (watchdog). # En la posicin 04h est el Vector de Interrupcin. o Activacin del pin INT o Desbordamiento del temporizador TMR0 o Cambio de estado en pines RB4 - RB7 o Final de escritura en la EEPROM de datos. # Todo lo grabado (datos y programa) se puede modificar sobre el circuito por las antradas series RB6(clk)/RB7(datos)

13

Electrnica Industrial

Tema 11. Introduccin a los Microprocesadores y Microcontroladores

3. ARQUITECTURA DEL PIC16F84 Memoria de datos


Tipo SRAM Dos bancos o pginas de 128 registros de 8 bits. o Pgina 0 80 registros: 12 especiales (SFR) y 68 generales (GPR). o Pgina 1 12 registros de funciones especficas (SFR).

Tipo EEPROM 64 registros de 8 bits cada uno. La informacin puede permanecer hasta 40 aos. No se puede acceder a los mismos de una manera directa, sino que hay que hacerlo por medio del los Registros de Funcin Especfica (SFR).

14

Electrnica Industrial

Tema 11. Introduccin a los Microprocesadores y Microcontroladores

3. ARQUITECTURA DEL PIC16F84 Puertos de entrada /salida

PUERTO RA0-RA4 Puerto bidireccional de Entrada/Salida. RA4/T0CKL puede comportarse como una Entrada/Salida normal, o bien como una entrada de reloj del contador/temporizador TMR0. PUERTO RB0-RB7 Puerto bidireccional de Entrada/Salida. RB0/INT puede ser utilizado como una entrada de interrupciones. RB4/RB7 pueden ser utilizados para generar interrupciones ante un cambio de nivel. RB6/RB7 pueden ser utilizados para programa el PIC.

15

Electrnica Industrial

Tema 11. Introduccin a los Microprocesadores y Microcontroladores

3. ARQUITECTURA DEL PIC16F84 Recursos auxiliares (I)

Oscilador

# Mediante los condensadores y el oscilador se puede seleccionar la frecuencia del reloj: 455KHz, 2 MHz, 4MHz, 8MHz y 10 MHz. # Ciclo de instruccin = 4 Periodo de reloj

Ejemplo: Frecuencia de reloj = 4MHz Periodo de reloj = 250ns. Ciclo de instruccin = 1/Fosc x 4 = 250 ns x 4 = 1 s.

Estado de reposo (SLEEP)


# Consumo < 3A

16

Electrnica Industrial

Tema 11. Introduccin a los Microprocesadores y Microcontroladores

3. ARQUITECTURA DEL PIC16F84 Recursos auxiliares (II)


Temporizador/Contador Consiste en un contador cclico de 00h a FFh. Cuando se llega a FF se produce un desbordamiento. Dos modos de trabajo: # Temporizador: determinar intervalos concretos de tiempo. Se incrementa con cada ciclo de instruccin o divisor. # Contador: contar impulsos producidos en el exterior del sistema. Perro guardin (watchdog) # Temporizador independiente del reloj principal. Tiene su propio oscilador, luego sigue funcionando en modo de bajo consumo. # Permite detectar cuando se ha colgado el programa. Cuando llega a FFh, se produce el desbordamiento y se provoca el RESET del PIC. # El tempo tpico de un ciclo es de 18 ms. pero se puede ampliar a 2,5 seg.

17

Electrnica Industrial

Tema 9. Introduccin a los Microprocesadores y Microconytroladores

3. ARQUITECTURA DEL PIC16F84 Distribucin de los terminales


# VDD y VSS : Alimentacin (2 V - 6 V). # MCLR (Master Clear): Reset cuando la tensin < 1,7V . # RA0- RA4: Entradas/salidas del puerto A. o IO = 20mA; IO = 50mA o II = 25mA; II = 80mA o RA4/T0CK1 puede ser contador/temporizador externo TMR0. # RB0-RB7: Entradas/salidas del puerto B. o IO = 20mA; IO = 100mA o II = 25mA; II = 150mA o RB0/INT puede ser interrupcin externa. # OSC1/CLKIN OSC2/CLKOUT : conexin del oscilador del reloj principal.
VDD PIC16F84 RA2 10K 100 RA3 RA4/T0CKI
MCLR / Vpp

RA1 RA0 OSC1 OSC2 VDD RB7 RB6 RB5 RB4

Cristal 4MHz 27pF 27pF +5V

VSS RB0/INT RB1 RB2 RB3

18

Electrnica Industrial

Tema 9. Introduccin a los Microprocesadores y Microconytroladores

3. ARQUITECTURA DEL PIC16F84 Perifricos de entrada/salida


Pulsadores
Rebotes

Pulsacin

Interruptores

R
IN

Diodos LED

Rels

19

Electrnica Industrial

Tema 9. Introduccin a los Microprocesadores y Microconytroladores

4. FUNDAMENTOS DE PROGRAMACIN PIC16F84 Conceptos generales


Un programa es un conjunto ordenado de instrucciones cuya ejecucin determina el procesado de los datos y la obtencin de resultados. EL PIC16F84 entiende un juego de 35 instrucciones (14 bits).

Estructura del programa


Modelo de procesador y sistema de numeracin
List Radix p=16F84 hex ;Se utiliza el microcontrolador PIC16F84 ; Se usar el sistema hexadecimal

Variables
ESTADO PUERTAA equ 0x03 equ 0x05 ;La etiqueta ESTADO est asociada a la direccin 0x03 ;La etiqueta PUERTAA est asociada a la direccin 0x05

Origen del programa


org 0x00 org 0x00 goto INICIO org 0x05 INICIO ------------end ;Inicio de programa ;La siguiente instruccin estar al inicio de la memoria ;Salta a la direccin etiquetada con INICIO ;La siguiente instruccin estar en la direccin 0x05

Cuerpo del programa y final


....... ......

end

20

Electrnica Industrial

Tema 9. Introduccin a los Microprocesadores y Microconytroladores

5. EJEMPLOS DE PROGRAMACIN Ejemplo 1 - Sumar el contenido de dos posiciones de memoria (I)


Banco 0 Registros especiales 5 2 ?? 00h 0Bh 0Ch OPERANDO1 0Dh OPERANDO2 0Eh RESULTADO

4Fh

# Instruccin mov. Permite transferir el contenido de un registro fuente f a un registro destino d. En los PIC todos los datos residen en posiciones de la memoria de datos a excepcin del registro W. La instruccin mov puede mover tres tipos fundamentales de operandos: 1. El contenido del registro W. 2. El contenido de una posicin de memoria de datos. 3. Un literal o valor.

# movf f,d : mueve el contenido del operando fuente f (posicin de la memoria de datos) al destino d (puede ser W o la propia fuente). # movwf f : mueve el contenido del registro W a la posicin de memoria especificada por f. # movlw k : mueve el valor k al registro W. # addwf f,d : suma el contenido del registro W con el de f y deposita el resultado en W si d = 0 (o W), o en f si d = 1. # addlw k : suma al contenido del registro W el valor k y deposita el resultado en W.
21

Electrnica Industrial

Tema 9. Introduccin a los Microprocesadores y Microconytroladores

5. EJEMPLOS DE PROGRAMACIN Ejemplo 1 - Sumar el contenido de dos posiciones de memoria (II)


INICIO
Declaracin de variables

OPERANDO1 5 OPERANDO2 2

RESULTADO = OPERANDO1 + OPERANDO2

END

List OPERANDO1 OPERANDO2 RESULTADO org INICIO

p=16f84 equ 0x0C equ 0x0D equ 0x0E 0x00 ;origen

movlw movwf movlw movwf addwf movwf end

0x05 ;W 5 OPERANDO1 ;OPERANDO1W 0x02 ;W 2 OPERANDO2 ;OPERANDO2W OPERANDO1,W ;OPERANDO1+W W RESULTADO ;RESULTADO W

22

Electrnica Industrial

Tema 9. Introduccin a los Microprocesadores y Microconytroladores

5. EJEMPLOS DE PROGRAMACIN Ejemplo 2 - Leer y sacar datos por los puertos (I)
VDD VDD 10K 100 10K PIC16F84
RA2
RA3

VDD 2 x 10K
RA1 RA0 OSC1 OSC2 VDD RB7 RB6 RB5 RB4
4MHz

RA4/T0CKI
MCLR / Vpp VSS RB0/INT RB1 RB2 RB3

27pF
27pF

+5V

3x 680

Banco 0 Banco 1 00h 03h 05h 06h STATUS PORTA PORTB TRISA TRISB 80h 83h 85h 86h

Registro STATUS (direccin 03h) RP1 RP0 bit7 # bit 6 5: RP0-RP1 Seleccin del banco de registros 00 = Banco 0 01 = Banco 1

bit0

0BH

Registro PORTA (direccin 05h Banco 0) -RA4/T0CKI RA3 RA2 RA1 bit7 -- : los tres primeros bits de PORTA siempren se leern como 0 Registro TRISA (direccin 05h Banco 1) -TRISA4 bit7 TRISA3 TRISA2 TRISA1

RA0 bit0

TRISA0 bit0

23

Electrnica Industrial

Tema 9. Introduccin a los Microprocesadores y Microconytroladores

5. EJEMPLOS DE PROGRAMACIN Ejemplo 2 - Leer y sacar datos por los puertos (II)
Aparecen en este ejemplo algunas instrucciones nuevas: # bsf f,d : pone a 1 el bit d del registro f . # bcf f,d : pone a 0 el bit d del registro f . # goto etiqueta : salta hasta la instruccin que va precedida por la etiqueta.

INICIO

Declaracin de variables

Configuracin de E/S

PORTB PORTA

List p=16f84 STATUS equ PORTA equ PORTB equ 0x03 0x05 0x06

org 0x00 goto INICIO org 0x05 INICIO bsf movlw movwf movlw movwf bcf BUCLE movf PORTA,W movwf PORTB goto BUCLE end STATUS,5 b00000000 PORTB b00011111 PORTA STATUS,5

;salta el vector de interrupcin ;cambia al banco1 ;W 00 ;TRISBW (PORTB salidas) ;W FF ;TRISAW (PORTA entradas) ;cambia al banco0 ;W PORTA ;PORTB W

24

Electrnica Industrial

Tema 9. Introduccin a los Microprocesadores y Microconytroladores

5. EJEMPLOS DE PROGRAMACIN Ejemplo 3 - Leer y sacar datos por los puertos, condiciones (I)
VDD VDD PIC16F84
RA2 RA1 RA0 OSC1 OSC2 VDD RB7 RB6 RB5 RB4 4MHz 27pF 27pF

10K

10K

RA3

100

RA4/T0CKI
MCLR / Vpp

VSS RB0/INT RB1 680 RB2 RB3

+5V

El LED se ilumina cuando se cierra el interruptor. Este ejemplo incorpora las instrucciones: # btfsc f,d : salta una instruccin si el bit d del registro f es 0, si no, sigue por la siguiente instruccin. # clrf f : borra el contenido del registro f.

25

Electrnica Industrial

Tema 9. Introduccin a los Microprocesadores y Microconytroladores

5. EJEMPLOS DE PROGRAMACIN Ejemplo 3-Leer y sacar datos por los puertos, condiciones (II)
INICIO

Declaracin de variables

Configuracin de E/S

Apagar led RB0 =0

NO

RA0 ON RA0=0
SI

Encender led RB0 =1

List p=16f84 STATUS equ PORTA equ PORTB equ 0x03 0x05 0x06

org 0x00 goto INICIO org 0x05 INICIO bsf STATUS,5 clrf PORTB movlw b00011111 movwf PORTA bcf STATUS,5 BUCLE btfsc goto bsf goto RA0_es_1 bcf goto end PORTA,0 RA0_es_1 PORTB,0 BUCLE PORTB,0 BUCLE

;salta el vector de interrupcin ;cambia al banco1 ;Puerto B configurado como salidas ;Puerto A configurado como entradas ;cambia al banco0 ;RA0=0? salta si RA0 es 0 ;pone a 1 RB0, enciende el led

;pone a 0 RB0, apaga el led

26

También podría gustarte