Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Manual Pic Introduccion Pic16f84
Manual Pic Introduccion Pic16f84
Electrnica Industrial
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
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
CPU (P)
Bus de control
Memoria
Puerto de entrada
Puerto de salida
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
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
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
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
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.
Sistema antirrobo
Antideslizamiento
Electrnica Industrial
Memoria
Procesador (CPU)
Entrada/Salida
Memoria datos
Procesador
Memoria programa
Bus de control
Electrnica Industrial
10
Electrnica Industrial
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
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
13
Electrnica Industrial
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
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
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.
16
Electrnica Industrial
17
Electrnica Industrial
18
Electrnica Industrial
Pulsacin
Interruptores
R
IN
Diodos LED
Rels
19
Electrnica Industrial
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
end
20
Electrnica Industrial
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
OPERANDO1 5 OPERANDO2 2
END
0x05 ;W 5 OPERANDO1 ;OPERANDO1W 0x02 ;W 2 OPERANDO2 ;OPERANDO2W OPERANDO1,W ;OPERANDO1+W W RESULTADO ;RESULTADO W
22
Electrnica Industrial
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
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
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
+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
5. EJEMPLOS DE PROGRAMACIN Ejemplo 3-Leer y sacar datos por los puertos, condiciones (II)
INICIO
Declaracin de variables
Configuracin de E/S
NO
RA0 ON RA0=0
SI
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
26