Diapositivas de microcontroladores(uC)

40
MICROCONTROLADORES Universidad Nacional Experimental Politécnica de la Fuerza Armada (UNEFA)

description

Introduccion a los microcontroladores.Esta guia fue un aporte de una profesora de la universidad pero aca mismo en scridb se encuentra la misma o una guia muy parecida con el que es me imagino es el autor principal, asi que pido disculpas y doy gracias al autor o autores.

Transcript of Diapositivas de microcontroladores(uC)

Page 1: Diapositivas de microcontroladores(uC)

MICROCONTROLADORES

Universidad Nacional Experimental Politécnicade la Fuerza Armada (UNEFA)

Page 2: Diapositivas de microcontroladores(uC)

MICROCONTROLADOR

• Circuito integrado programable capaz deejecutar las ordenes o comandos queestán grabados en su memoria.

• Es un com putador dedicado destinado agobernar una tarea en específico por locual tiene unas características limitadas(pero con una gran potencialidad).

Page 3: Diapositivas de microcontroladores(uC)

APLICACIÓN DE C

Frenos ABS, Vidrios electricos, Espejos electricos, aire acondicionado,Air Bag, Radio, pantallas de video, reloj, tacometro, velocimetro,

inyectores, enfriamiento del motor, etc…

Page 4: Diapositivas de microcontroladores(uC)

APLICACIÓN DE C

Page 5: Diapositivas de microcontroladores(uC)

APLICACIÓN DE C

Page 6: Diapositivas de microcontroladores(uC)

APLICACIÓN DE C

Page 7: Diapositivas de microcontroladores(uC)

APLICACIÓN DE C

Page 8: Diapositivas de microcontroladores(uC)

APLICACIÓN DE C

Page 9: Diapositivas de microcontroladores(uC)

APLICACIÓN DE C

Page 10: Diapositivas de microcontroladores(uC)

APLICACIÓN DE C

Page 11: Diapositivas de microcontroladores(uC)

APLICACIÓN DE C

Page 12: Diapositivas de microcontroladores(uC)

APLICACIÓN DE C

Page 13: Diapositivas de microcontroladores(uC)

APLICACIÓN DE C

Page 14: Diapositivas de microcontroladores(uC)

CPU

DIFERENCIA P y C

CPU ROM

RAMPUERTOS

ROM

RAM

PUERTOS

PERIFERICOSPERIFERICOS

MICROCONTROLADOR MICROPROCESADOR

Page 15: Diapositivas de microcontroladores(uC)

PIC 16F84A

• Programación con 35 instrucciones• Max. Velocidad de operación - 20 MHz• Memoria de programa de 1024 palabras• 68 bytes de memoria RAM• 64 bytes de memoria EEPROM• Instrucciones de 14-bit• Datos de 8-bit

• cuatro Interrupciones- Externa por el pin RB0/INT- Desbordamiento timer TMR0- Cambios sobre los pinesPORTB<7:4>- Completar escritura EEPROM

Page 16: Diapositivas de microcontroladores(uC)

ARQUITECTURA PROCESADORES

Unidad

Central

De

Proceso

Bus común dedirecciones

8

Bus deDatos eInstrucciones

Memoria de

Instrucciones

+

Datos

Arquitectura Von Neumann

Page 17: Diapositivas de microcontroladores(uC)

ARQUITECTURA PROCESADORES

Memoria de

Instrucciones

1K x 14

10

Bus de direcciónde instrucciones

14

Bus deinstrucciones

Unidad

Central

De

Proceso

9

Bus direcciónde datos

8

Bus deDatos

Memoria de

Datos

512 x 8

Arquitectura Harvard (memoria de instrucciones y datos independientes)

Page 18: Diapositivas de microcontroladores(uC)

MEMORIA DE PROGRAMA

• ROM: Se graba en el chip durante el proceso de sufabricación.

• EPROM: Se graba desde un periférico especial de unPC. Posee una ventana de cristal, la cual es sometida arayos ultravioleta para ser borrada.

• OTP: Se graba como la EPROM, pero una sola vez.• EEPROM: Procesos de escritura/borrado electricamente

con un PC. Garantizan 1’000.000 ciclos E/B.• FLASH: Procesos de escritura/borrado electricamente

con un PC. Garantizan 1’000 ciclos E/B. Son de Bajoconsumo y mayor confiabilidad.

Page 19: Diapositivas de microcontroladores(uC)

VECTOR RESET

VECTOR INTERRUPCIÓN

NO IMPLEMENTADO

MEMORIA DE PROGRAMA

0000 H

1kEEPROM

0004 H

PC

03FF H0400 H

1FFF H13 0

NIVEL 1

NIVEL 2

NIVEL 3...

NIVEL 8

Page 20: Diapositivas de microcontroladores(uC)

INDF INDFTMR0 OPTIONPCL PCL

ESTADO ESTADOFSR FSR

PUERTO A TRIS APUERTO B TRIS B

EEDATA EECON1EEADR EECON2PCLATH PCLATHINTCON INTCON

68 REGISTROSDE PROPOSITO

GENERAL

MAPEADOS ENEL BANCO 0

MEMORIA DE DATOS

SFR

GPR

BANCO 0 BANCO 1

Page 21: Diapositivas de microcontroladores(uC)

CONFIGURACIÓN PUERTOS PIC16F84

REGISTRO TRISB (BANCO 1)

1 1 1 1 0 0 0 0RB7 . . . RB0

REGISTRO TRISA (BANCO 1)

- - - 1 0 1 0 0RA4 . . . RA0

Si el bit asociado al pin esta:• 0 el pin actúa como salida• 1 el pin actúa como entrada

Pines de salida:• RB3, RB2, RB1, RB0, RA3, RA1, RA0

Pines de entrada:RB7, RB6, RB5, RA4, RA2

Page 22: Diapositivas de microcontroladores(uC)

USO PUERTOS PIC16F84

REGISTRO TRISB (BANCO 1)

1 1 1 1 0 0 0 0RB7 . . . RB0

REGISTRO PORTB (BANCO 0)

0 1 0 1 0 0 1 1

Entradas Salidas

Page 23: Diapositivas de microcontroladores(uC)

IRP RP1 RP0 TO# PD# Z DC C

REGISTRO DE ESTADO7 6 5 4 3 2 1 0

R/W R/W R/W R R R/W R/W R/W

RP1-RP0:00 – Accede al banco 001 – Accede al banco 1

Z: Cero1 – El resultado de una instrucción lógico-aritmética ha sido 00 – El resultado de una instrucción lógico-aritmética NO ha sido 0

DC: (acarreo o llevada en el 4 bit)1 – Ocurre Acarreo0 – No ocurrio Acarreo

C: (acarreo o llevada en el 8 bit)1 – Ocurre Acarreo0 – No ocurrio Acarreo

Page 24: Diapositivas de microcontroladores(uC)

INSTRUCCIÓN MOVLW kK W

Ejm: (obsérvese las diferentes formas en que se expresa el decimal 7movlw d’7’movlw .7movlw b’00000111’

REGISTRO DE TRABAJO W (WORK)

x x x x x x x x

movlw .7

0 0 0 0 0 1 1 1REGISTRO DE TRABAJO W (WORK)

Page 25: Diapositivas de microcontroladores(uC)

0 0 0 0 0 0 0 0

1 0 1 1 0 1 0 1

x x x x x x x x

1 0 1 1 0 1 0 1

INSTRUCCIÓN MOVWF fW F

Ejm: movwf PORTB

Registro TRISB

Registro W

Registro PORTB

Movwf PORTB

Registro PORTB

REGISTRO DE TRABAJO W (WORK)

Page 26: Diapositivas de microcontroladores(uC)

1 1 0 0 1 1 1 01 1 0 0 1 1 1 0

0 0 0 0 0 0 0 0

INSTRUCCIÓN MOVF f,dF Destino

Si d = 0 El destino es WSi d = 1 El destino es la misma fuente

Ejemplo 1:

PORTB

Ejemplo 2:

PORTB

movf PORTB,0

movf PORTB,1

W

R. ESTADO <2> : Z = 0

0 0 0 0 0 0 0 0PORTB

R. ESTADO <2> : Z = 1

Page 27: Diapositivas de microcontroladores(uC)

x x x x x x x x x x x x x x 1 x

INSTRUCCIÓN BSF f,b

1 f,b

Ejm:bsf PORTB,1

PORTB

bsf PORTB,1

PORTB

Page 28: Diapositivas de microcontroladores(uC)

x x x x x x x x 0 x x x x x x x

INSTRUCCIÓN BCF f,b

0 f,b

Ejm:bcf PORTB,7

PORTB

bcf PORTB,7

PORTB

Page 29: Diapositivas de microcontroladores(uC)

x x x x x x x x

INSTRUCCIÓN CLRF f

00h f1 z

Ejm:clrf PORTA

0 0 0 0 0 0 0 0

PORTA

clrf PORTAPORTA

R. ESTADO <2> : Z = 1

Page 30: Diapositivas de microcontroladores(uC)

PROGRAMACIÓN;AUTOR:;PIC: 16F84A;FUNCION: Prende un LED (RA0) si un pulsador NA (RB0) envia un 1 logico;CARACTERISTICAS:;OSCILADOR: XT;WATCHDOG TIMER: OFF;POWER UP TIMER: ON;CODE PROTECT: OFF

INCLUDE "P16F84A.Inc"

ORG 00goto INICIOORG 05

INICIO bsf STATUS,RP0 ;Salta al banco 1clrf TRISA ;Puerto A como salidamovlw b'00000001'movwf TRISB ;RB0 como entradabcf STATUS,RP0 ;Salta al banco 0clrf PORTA ;Pone un 0 logico en las salidasclrf PORTB ;Pone un 0 logico en las salidas

CICLO movf PORTB,0 ;W = PORTBmovwf PORTA ;PORTA = Wgoto CICLOEND

Objetivo: RA0 = RB0 (podria ser una alarma primitiva)

Page 31: Diapositivas de microcontroladores(uC)

PROGRAMACIÓNINCLUDE "P16F84A.Inc"

;************************** DEFINICION DE REGISTROS*****************************CBLOCK .12

VALOR1ENDC

;*************************************PROGRAMA***************************************ORG 00GOTO INICIO

ORG 05;**************************CONFIGURACION DE PUERTOS**************************INICIO bsf STATUS,5 ;Salta al banco 1

movlw b'11111'movwf TRISA ;Puerto A como entradaclrf TRISB ;Puerto B como salidabcf STATUS,5 ;Salta al banco 0

;clrf PORTB ;borra puerto B por seguridadmovf PORTA,0 ;W = PORTAmovwf VALOR1 ;VALOR1 = Wmovf VALOR1,1 ;Z=1 si PORTA = b'0000'movlw .7 ;W = 7 (decimal)movwf PORTB ;PORTB = 7 (decimal)movf PORTB,1 ;Z=0 debido a PORTB no es igual ceroEND

Objetivo: Observar en la simulación el funcionamiento del bit Z (cero)

Page 32: Diapositivas de microcontroladores(uC)

TIPOS DE OSCILADORESOSCILADOR TIPO RC:

FOSCILACIÓN REXT CEXT

625 KHz 10 K 20 pF80 KHz 10 K 220 pF80 Hz 10 K 0.1 pF

Page 33: Diapositivas de microcontroladores(uC)

TIPOS DE OSCILADORESOSCILADOR TIPO HS – XT - LP:

Page 34: Diapositivas de microcontroladores(uC)

FRECUENCIA DE FUNCIONAMIENTO

• Con la frecuencia de trabajo se establecela velocidad en la ejecución de lasinstrucciones.

1 Ciclo Instrucción= 4 * TReloj

TReloj = 1 / Frecuencia Trabajo

TReloj = Periodo del relojfTrabajo = Frecuencia de trabajo

Page 35: Diapositivas de microcontroladores(uC)

FRECUENCIA DE FUNCIONAMIENTO

1 Ciclo Instrucción= 4 * TReloj

TReloj = 1 / FrecuenciaTrabajo

Cristal de 4 MHz:

TReloj = 1 / 4000000 = 250ns

1 CicloInstrucción= 4 * 250ns = 1µs

Page 36: Diapositivas de microcontroladores(uC)

FRECUENCIA DE FUNCIONAMIENTO

Las instrucciones se ejecutan en un tiempo igual a unCicloInstrucción excepto las de salto que tardan dos.

Un programa contiene 100 instrucciones de las cuales 25son de salto (cristal de 4 MHz)

1 CicloInstrucción= 4 / FrecuenciaTrabajo = 1µs

El programa tarda: 75 * CicloInstrucción+ 25 * 2 * CicloInstrucción

El programa tarda: 125 µs

Page 37: Diapositivas de microcontroladores(uC)

0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1

Ejm: decfsz REG1,1goto SUBRUTINA1goto SUBRUTINA2

INSTRUCCIÓN DECFSZ f,d(f – 1) f o W

Ejm: decfsz REG1,1 ;REG1 = REG1 – 1goto SUBRUTINA1 ;si REG1 ≠ 0 se ejecuta la instruccióngoto SUBRUTINA2 ;si REG1 = 0 se ejecuta la instrucción

REG1 REG1

Ejm: decfsz REG1,1goto SUBRUTINA1goto SUBRUTINA2

Page 38: Diapositivas de microcontroladores(uC)

RETARDO movlw VALOR1

decfszgoto

REG1,1TRES

retlw 0

RETARDOS;REGISTROS PARA CONSTRUIR RUTINA DE RETARDO

CBLOCK .12REG1, REG2, REG3

ENDC;VALORES PARA CONSTRUIR RUTINA DE RETARDOVALOR1 EQU d'70' ; retardo 1053850 microsegundosVALOR2 EQU d'70'VALOR3 EQU d'70‘

;SUBRUTINA DE RETARDO:;W = 70

movwf REG1 ;REG1 = WTRES movlw VALOR2 ;W = 70

movwf REG2 ;REG2 = WDOS movlw VALOR3 ;W = 70

movwf REG3 ;REG3 = WUNO decfsz REG3,1 ;DECREMENTA REG3 Y SI QUEDA “0” SALTA A UNO

goto UNOdecfsz REG2,1 ;DECREMENTA REG2 Y SI QUEDA “0” SALTA A DOSgoto DOS

;DECREMENTA REG1 Y SI QUEDA “0” SALTA A TRES

Total de ciclos = ((valor3*3 + 5) * valor2 + 5) * valor1

Page 39: Diapositivas de microcontroladores(uC)

1 0 1 0 0 0 1 1 0 0 1 0 0 0 0 1

Ejm: btfsc REG1,7goto SUBRUTINA1goto SUBRUTINA2

INSTRUCCIÓN BTFSC f,bSalta si f<b> = 0

Ejm: btfsc REG1,7 ;verifica el valor del bit 7 de REG1goto SUBRUTINA1 ;si REG1<7>=1 se ejecuta la instruccióngoto SUBRUTINA2 ;si REG1<7>=0 se ejecuta la instrucción

REG1 REG1

Ejm: btfsc REG1,7goto SUBRUTINA1goto SUBRUTINA2

Page 40: Diapositivas de microcontroladores(uC)

0 0 1 0 0 0 1 1 1 0 1 0 0 0 0 1

Ejm: btfss REG1,7goto SUBRUTINA1goto SUBRUTINA2

INSTRUCCIÓN BTFSS f,bSalta si f<b> = 1

Ejm: btfss REG1,7 ;verifica el valor del bit 7 de REG1goto SUBRUTINA1 ;si REG1<7>=0 se ejecuta la instruccióngoto SUBRUTINA2 ;si REG1<7>=1 se ejecuta la instrucción

REG1 REG1

Ejm: btfss REG1,7goto SUBRUTINA1goto SUBRUTINA2