Microcontroladores 1ra Parte

  • Uploaded by: Jair Eviel Barrios Deluquez
  • 0
  • 0
  • October 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Microcontroladores 1ra Parte as PDF for free.

More details

  • Words: 1,623
  • Pages: 40
MICROCONTROLADORES M.Sc. César Augusto Peña C. Profesor de planta – Ingeniería mecatrónica Universidad 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

APLICACIÓN DE µC

DIFERENCIA µP y µC

CPU

ROM

ROM RAM

RAM PUERTOS

CPU

PUERTOS PERIFERICOS

PERIFERICOS MICROCONTROLADOR

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

Unidad Central De Proceso

Memoria de Bus común de direcciones

8 Bus de Datos e Instrucciones

Instrucciones + Datos

Arquitectura Von Neumann

ARQUITECTURA PROCESADORES 10

Memoria de

Bus de dirección de instrucciones

9

Unidad Central

Bus dirección de datos

Memoria de Datos

Instrucciones 14

1K x 14

Bus de instrucciones

De

8

Proceso

Bus de Datos

512 x 8

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 PROGRAMA

1k EEPROM

0000 H

VECTOR RESET

0004 H

VECTOR INTERRUPCIÓN

PC

NIVEL 1 NIVEL 2

03FF H

NIVEL 3

0400 H NO IMPLEMENTADO

1FFF H

. . .

NIVEL 8

13

0

MEMORIA DE DATOS

SFR

GPR

INDF TMR0 PCL ESTADO FSR PUERTO A PUERTO B

INDF OPTION PCL ESTADO FSR TRIS A TRIS B

EEDATA EEADR PCLATH INTCON

EECON1 EECON2 PCLATH INTCON

68 REGISTROS DE PROPOSITO GENERAL

MAPEADOS EN EL BANCO 0

BANCO 0

BANCO 1

CONFIGURACIÓN PUERTOS PIC16F84 REGISTRO TRISB (BANCO 1)

1 1 1 1 0 0 0 0 RB7

.

.

.

RB0

REGISTRO TRISA (BANCO 1)

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

. . .

RA0

Pines de salida: • RB3, RB2, RB1, RB0, RA3, RA1, RA0 Pines de entrada: RB7, RB6, RB5, RA4, RA2

USO PUERTOS PIC16F84 REGISTRO TRISB (BANCO 1)

1 1 1 1 0 0 0 0 RB7

.

.

.

RB0

REGISTRO PORTB (BANCO 0)

0 1 0 1 0 0 1 1 Entradas

Salidas

REGISTRO DE ESTADO 7

6

5

4

3

IRP RP1 RP0 TO# PD# R/W

R/W

R/W

R

R

2

1

0

Z

DC

C

R/W

R/W

R/W

RP1-RP0: 00 – Accede al banco 0 01 – Accede al banco 1 Z: Cero 1 – El resultado de una instrucción lógico-aritmética ha sido 0 0 – El resultado de una instrucción lógico-aritmética NO ha sido 0 DC: (acarreo o llevada en el 4 bit) 1 – Ocurre Acarreo 0 – No ocurrio Acarreo C: (acarreo o llevada en el 8 bit) 1 – Ocurre Acarreo 0 – No ocurrio Acarreo

INSTRUCCIÓN MOVLW k K

W

Ejm: (obsérvese las diferentes formas en que se expresa el decimal 7 movlw d’7’ movlw .7 movlw b’00000111’ REGISTRO DE TRABAJO W (WORK)

x

x

x

x

x

x

x

x

1

1

1

movlw .7

0

0

0

0

0

REGISTRO DE TRABAJO W (WORK)

INSTRUCCIÓN MOVWF f W Ejm:

F

movwf PORTB

Registro TRISB

0 0 0 0 0 0 0 0

Registro W

1 0 1 1 0 1 0 1

Registro PORTB

x x x x x x x x Movwf PORTB

Registro PORTB

1 0 1 1 0 1 0 1

REGISTRO DE TRABAJO W (WORK)

INSTRUCCIÓN MOVF f,d F Si d = 0 Si d = 1

Destino

El destino es W El destino es la misma fuente

Ejemplo 1:

1 1 0 0 1 1 1 0

1 1 0 0 1 1 1 0 movf PORTB,0

R. ESTADO <2> : Z

PORTB Ejemplo 2:

0 0 0 0 0 0 0 0 PORTB

W

=0

0 0 0 0 0 0 0 0 movf PORTB,1

PORTB R. ESTADO <2> : Z

=1

INSTRUCCIÓN BSF f,b 1

f,b

Ejm: bsf

PORTB,1

x x x x x x x x PORTB

bsf PORTB,1

x x x x x x 1 x PORTB

INSTRUCCIÓN BCF f,b 0

f,b

Ejm: bcf

PORTB,7

x x x x x x x x PORTB

bcf PORTB,7

0 x x x x x x x PORTB

INSTRUCCIÓN CLRF f 00h 1

f z

Ejm: clrf

PORTA

0 0 0 0 0 0 0 0 x x x x x x x x PORTA

clrf PORTA

PORTA

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

INICIO

CICLO

INCLUDE

"P16F84A.Inc"

ORG goto ORG bsf clrf movlw movwf bcf clrf clrf

00 INICIO 05 STATUS,RP0 TRISA b'00000001' TRISB STATUS,RP0 PORTA PORTB

movf movwf goto END

PORTB,0 PORTA CICLO

;Salta al banco 1 ;Puerto A como salida ;RB0 como entrada ;Salta al banco 0 ;Pone un 0 logico en las salidas ;Pone un 0 logico en las salidas ;W = PORTB ;PORTA = W

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

PROGRAMACIÓN INCLUDE "P16F84A.Inc" ;************************** DEFINICION DE REGISTROS***************************** CBLOCK .12 VALOR1 ENDC ;*************************************PROGRAMA*************************************** ORG 00 GOTO INICIO ORG 05 ;**************************CONFIGURACION DE PUERTOS************************** INICIO bsf STATUS,5 ;Salta al banco 1 movlw b'11111' movwf TRISA ;Puerto A como entrada clrf TRISB ;Puerto B como salida bcf STATUS,5 ;Salta al banco 0 ;__________________________________________________ clrf PORTB ;borra puerto B por seguridad movf PORTA,0 ;W = PORTA movwf VALOR1 ;VALOR1 = W movf 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 cero END

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

TIPOS DE OSCILADORES OSCILADOR TIPO RC:

FOSCILACIÓN

REXT

CEXT

625 KHz

10 K

20 pF

80 KHz

10 K

220 pF

80 Hz

10 K

0.1 pF

TIPOS DE OSCILADORES OSCILADOR 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 reloj fTrabajo = 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) Ejm:

REG1

Ejm:

decfsz goto goto

REG1,1 SUBRUTINA1 SUBRUTINA2

0 0 0 0 0 0 1 1 decfsz goto goto

REG1,1 SUBRUTINA1 SUBRUTINA2

foW ;REG1 = REG1 – 1 ;si REG1 ≠ 0 se ejecuta la instrucción ;si REG1 = 0 se ejecuta la instrucción

REG1

Ejm:

0 0 0 0 0 0 0 1 decfsz goto goto

REG1,1 SUBRUTINA1 SUBRUTINA2

RETARDOS ;REGISTROS PARA CONSTRUIR RUTINA DE RETARDO CBLOCK .12 REG1, REG2, REG3 ENDC ;VALORES PARA CONSTRUIR RUTINA DE RETARDO VALOR1 EQU d'70' ; retardo 1053850 microsegundos VALOR2 EQU d'70' VALOR3 EQU d'70‘ ;SUBRUTINA DE RETARDO: RETARDO movlw VALOR1 movwf REG1 TRES movlw VALOR2 movwf REG2 DOS movlw VALOR3 movwf REG3 UNO decfsz REG3,1 goto UNO decfsz REG2,1 goto DOS decfsz REG1,1 goto TRES retlw 0

;W = 70 ;REG1 = W ;W = 70 ;REG2 = W ;W = 70 ;REG3 = W ;DECREMENTA REG3 Y SI QUEDA “0” SALTA A UNO ;DECREMENTA REG2 Y SI QUEDA “0” SALTA A DOS ;DECREMENTA REG1 Y SI QUEDA “0” SALTA A TRES

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

INSTRUCCIÓN BTFSC f,b Salta si f = 0 Ejm:

REG1

Ejm:

btfsc goto goto

REG1,7 SUBRUTINA1 SUBRUTINA2

1 0 1 0 0 0 1 1 btfsc goto goto

REG1,7 SUBRUTINA1 SUBRUTINA2

;verifica el valor del bit 7 de REG1 ;si REG1<7>=1 se ejecuta la instrucción ;si REG1<7>=0 se ejecuta la instrucción

REG1

Ejm:

0 0 1 0 0 0 0 1 btfsc goto goto

REG1,7 SUBRUTINA1 SUBRUTINA2

INSTRUCCIÓN BTFSS f,b Salta si f = 1 Ejm:

REG1

Ejm:

btfss goto goto

REG1,7 SUBRUTINA1 SUBRUTINA2

0 0 1 0 0 0 1 1 btfss goto goto

REG1,7 SUBRUTINA1 SUBRUTINA2

;verifica el valor del bit 7 de REG1 ;si REG1<7>=0 se ejecuta la instrucción ;si REG1<7>=1 se ejecuta la instrucción

REG1

Ejm:

1 0 1 0 0 0 0 1 btfss goto goto

REG1,7 SUBRUTINA1 SUBRUTINA2

Related Documents


More Documents from "Jair Eviel Barrios Deluquez"

El Entorno Del Plc
October 2019 22
Topografia
October 2019 37