microcontroladores 1ra parte

Post on 14-Oct-2014

3.623 Views

Category:

Documents

5 Downloads

Preview:

Click to see full reader

DESCRIPTION

TUTORIAL MICROCONTROLADORES!Bueno!, hola a todos...a continuacion un pequeño tutorial que me ha facilitado un profesor de mi universidad...esta pero BUENO. MIRENLO Y ME CUENTANGRACIAS ing. Leonardo mejia y Cesar augusto Peña

TRANSCRIPT

MICROCONTROLADORES

M.Sc. César Augusto Peña C.

Profesor de planta – Ingeniería mecatrónicaUniversidad de Pamplona

MICROCONTROLADOR

• Circuito integrado programable capaz de ejecutar las ordenes o comandos que están grabados en su memoria.

• Es un computador dedicado destinado a gobernar una tarea en específico por lo cual tiene unas características limitadas (pero con una gran potencialidad).

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…

APLICACIÓN DE µC

APLICACIÓN DE µC

APLICACIÓN DE µC

APLICACIÓN DE µC

APLICACIÓN DE µC

APLICACIÓN DE µC

APLICACIÓN DE µC

APLICACIÓN DE µC

APLICACIÓN DE µC

DIFERENCIA µP y µC

CPU ROM

RAMPUERTOS

PERIFERICOS

MICROCONTROLADOR

CPU

ROM

RAM

PUERTOS

PERIFERICOS

MICROPROCESADOR

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 pines PORTB<7:4>- Completar escritura EEPROM

ARQUITECTURA PROCESADORES

Memoria de

Instrucciones

+

Datos

Unidad

Central

De

Proceso

Bus común dedirecciones

8

Bus de Datos e

Instrucciones

Arquitectura Von Neumann

ARQUITECTURA PROCESADORES

Memoria de

Instrucciones

1K x 14

Unidad

Central

De

Proceso

Memoria de

Datos

512 x 8

10

Bus de dirección de instrucciones

14

Bus de instrucciones

9

Bus direcciónde datos

8

Bus de Datos

Arquitectura Harvard (memoria de instrucciones y datos independientes)

MEMORIA DE PROGRAMA

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

• EPROM: Se graba desde un periférico especial de un PC. Posee una ventana de cristal, la cual es sometida a rayos 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 Bajo consumo y mayor confiabilidad.

MEMORIA DE PROGRAMAVECTOR RESET

VECTOR INTERRUPCIÓN

0000 H

0004 H

03FF H

NO IMPLEMENTADO

0400 H

1FFF H13 0

1kEEPROM

PC

NIVEL 1

NIVEL 2

NIVEL 3

NIVEL 8

.

.

.

MEMORIA DE DATOSINDFTMR0PCL

ESTADOFSR

68 REGISTROSDE PROPOSITO

GENERAL

SFRPUERTO APUERTO B

EEDATAEEADRPCLATHINTCON

GPR

INDFOPTION

PCLESTADO

FSR

MAPEADOS ENEL BANCO 0

TRIS ATRIS B

EECON1EECON2PCLATHINTCON

BANCO 0 BANCO 1

CONFIGURACIÓN PUERTOS PIC16F84

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

REGISTRO TRISB (BANCO 1)

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

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

REGISTRO TRISA (BANCO 1)

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

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

USO PUERTOS PIC16F84

1 1 1 1 0 0 0 0

Entradas Salidas

REGISTRO TRISB (BANCO 1)

0 1 0 1 0 0 1 1

REGISTRO PORTB (BANCO 0)

RB7 . . . RB0

REGISTRO DE ESTADO

IRP RP1 RP0 TO# PD# Z DC C7 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

INSTRUCCIÓN MOVLW k

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

K W

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

x x x x x x x xREGISTRO DE TRABAJO W (WORK)

movlw .7

INSTRUCCIÓN MOVWF f

REGISTRO DE TRABAJO W (WORK)

W F

Ejm: movwf PORTB

1 0 1 1 0 1 0 1Registro W

Movwf PORTB

x x x x x x x xRegistro PORTB

0 0 0 0 0 0 0 0Registro TRISB

1 0 1 1 0 1 0 1Registro PORTB

INSTRUCCIÓN MOVF f,dF Destino

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

Ejemplo 1:

1 1 0 0 1 1 1 0PORTB

movf PORTB,0

1 1 0 0 1 1 1 0W

Ejemplo 2:

0 0 0 0 0 0 0 0PORTB

movf PORTB,10 0 0 0 0 0 0 0

PORTB

R. ESTADO <2> : Z = 1

R. ESTADO <2> : Z = 0

INSTRUCCIÓN BSF f,b

1 f,b

Ejm:bsf PORTB,1

x x x x x x x xPORTB

bsf PORTB,1 x x x x x x 1 xPORTB

INSTRUCCIÓN BCF f,b

0 f,b

Ejm:bcf PORTB,7

x x x x x x x xPORTB

bcf PORTB,7 0 x x x x x x xPORTB

INSTRUCCIÓN CLRF f

00h f1 z

Ejm:clrf PORTA

x x x x x x x xPORTA

clrf PORTA

0 0 0 0 0 0 0 0PORTA

R. ESTADO <2> : Z = 1

PROGRAMACIÓN;AUTOR: CÉSAR AUGUSTO PEÑA c;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)

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)

TIPOS DE OSCILADORES

FOSCILACIÓN REXT CEXT

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

OSCILADOR TIPO RC:

TIPOS DE OSCILADORESOSCILADOR TIPO HS – XT - LP:

FRECUENCIA DE FUNCIONAMIENTO

• Con la frecuencia de trabajo se establece la velocidad en la ejecución de las instrucciones.

1 CicloInstrucción= 4 * TReloj

TReloj = 1 / FrecuenciaTrabajo

TReloj = Periodo del relojfTrabajo = Frecuencia de trabajo

FRECUENCIA DE FUNCIONAMIENTO

1 CicloInstrucción= 4 * TReloj

TReloj = 1 / FrecuenciaTrabajo

Cristal de 4 MHz:

TReloj = 1 / 4000000 = 250ns

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

FRECUENCIA DE FUNCIONAMIENTO

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

Un programa contiene 100 instrucciones de las cuales 25 son 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

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

0 0 0 0 0 0 0 1REG10 0 0 0 0 0 1 1REG1

Ejm: decfsz REG1,1goto SUBRUTINA1goto SUBRUTINA2

Ejm: decfsz REG1,1goto SUBRUTINA1goto SUBRUTINA2

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:RETARDO movlw VALOR1 ;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 DOSdecfsz REG1,1 ;DECREMENTA REG1 Y SI QUEDA “0” SALTA A TRESgoto TRESretlw 0

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

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

0 0 1 0 0 0 0 1REG11 0 1 0 0 0 1 1REG1

Ejm: btfsc REG1,7goto SUBRUTINA1goto SUBRUTINA2

Ejm: btfsc 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

1 0 1 0 0 0 0 1REG10 0 1 0 0 0 1 1REG1

Ejm: btfss REG1,7goto SUBRUTINA1goto SUBRUTINA2

Ejm: btfss REG1,7goto SUBRUTINA1goto SUBRUTINA2

top related