37
MICROCONTROLADOR MICROELECTRONICA

1. microcontrolador

Embed Size (px)

Citation preview

Page 1: 1. microcontrolador

MICROCONTROLADOR

MICROELECTRONICA

Page 2: 1. microcontrolador

MODALIDAD

Teoría

Programación

Simulación

Práctica

Teoría

Programación

Simulación

Práctica

Luis David Narváez

Page 3: 1. microcontrolador

DESARROLLO

LENGUAJE Lenguaje C PIC C Compiler.

MICROCONTROLADORES

PIC 18F2550 PIC 18F4550

LENGUAJE Lenguaje C PIC C Compiler.

MICROCONTROLADORES

PIC 18F2550 PIC 18F4550

Luis David Narváez

Page 4: 1. microcontrolador

MATERIALES• 1 PIC 18F2550• 1 PIC 18F4550• 1 FUENTE DC (min. 5v )• 1 Protoboard• 1 Grabador de PICs• Pinzas y Cortadora.• Cable UTP.• 1 Barra de Leds• 1 Respack 330.

• Osciladores 4 y 8 MHz.• 1 Dipswitch de 8.• 1 Teclado Matricial.• 4 Displays 7 segmentos• 4 Decodificadores BCD• 4 Transistores 3904, 3906.• Potenciómetros• 1 Pantalla LCD 2x16• 1 Conector DB9 hembra.

• 1 PIC 18F2550• 1 PIC 18F4550• 1 FUENTE DC (min. 5v )• 1 Protoboard• 1 Grabador de PICs• Pinzas y Cortadora.• Cable UTP.• 1 Barra de Leds• 1 Respack 330.

• Osciladores 4 y 8 MHz.• 1 Dipswitch de 8.• 1 Teclado Matricial.• 4 Displays 7 segmentos• 4 Decodificadores BCD• 4 Transistores 3904, 3906.• Potenciómetros• 1 Pantalla LCD 2x16• 1 Conector DB9 hembra.

Luis David Narváez

Page 5: 1. microcontrolador

INTRODUCCIÓNMICROCONTROLADOR PIC

INTRODUCCIÓNMICROCONTROLADOR PIC

PARTE I

Luis David Narváez

Page 6: 1. microcontrolador

DEFINICIONES

“SÚPER CHIPS”, basados en controladorescomerciales (de la empresa MICROCHIP).

Luis David Narváez

Page 7: 1. microcontrolador

FAMILIAS DEMICROCONTROLADORES

LAS GAMAS DE LOS PIC

Microchip dispone de cinco gamas de Microcontroladoresde 8 bits para adaptarse a las necesidades de la mayoría delos clientes potenciales:

GAMA ENANA: PIC12FXXX GAMA BAJA O BASICA: PIC16C5X GAMA MEDIA: PIC 16FXXX GAMA ALTA: PIC17CXXX GAMA SUPERIOR: PIC18FXXX

LAS GAMAS DE LOS PIC

Microchip dispone de cinco gamas de Microcontroladoresde 8 bits para adaptarse a las necesidades de la mayoría delos clientes potenciales:

GAMA ENANA: PIC12FXXX GAMA BAJA O BASICA: PIC16C5X GAMA MEDIA: PIC 16FXXX GAMA ALTA: PIC17CXXX GAMA SUPERIOR: PIC18FXXX

Luis David Narváez

Page 8: 1. microcontrolador

GAMAS DE LOS PICGAMA SUPERIOR: PIC18FXXX

Tecnología CMOS. MCU estática con convertidor A/D. Pila de 32 niveles, una palabra de instrucción de 16

bits, múltiples interrupciones internas y externas, unset de 77 instrucciones.

Alto rendimiento de 10 MIPS (Millones deInstrucciones por Segundo) para una MCU.

GAMA SUPERIOR: PIC18FXXX

Tecnología CMOS. MCU estática con convertidor A/D. Pila de 32 niveles, una palabra de instrucción de 16

bits, múltiples interrupciones internas y externas, unset de 77 instrucciones.

Alto rendimiento de 10 MIPS (Millones deInstrucciones por Segundo) para una MCU.

Luis David Narváez

Page 9: 1. microcontrolador

PIC 18F4550

MULTIMEDIA

Luis David Narváez

Page 10: 1. microcontrolador

EL OSCILADOR• INTOSC Oscilador interno de precisión (dos modos)• RC Oscilador con resistencia y condensador (dos modos)• XT Cristal / Resonador• HS Cristal de alta velocidad / Resonador.• LP Cristal para baja frecuencia y bajo consumo de potencia.• EC Reloj externo

Nota: En el momento de programar o “quemar” elmicrocontrolador se debe especificar el tipo de oscilador quese usa. Esto se hace a través de unos bits llamados: “fusiblesde configuración”.

• INTOSC Oscilador interno de precisión (dos modos)• RC Oscilador con resistencia y condensador (dos modos)• XT Cristal / Resonador• HS Cristal de alta velocidad / Resonador.• LP Cristal para baja frecuencia y bajo consumo de potencia.• EC Reloj externo

Nota: En el momento de programar o “quemar” elmicrocontrolador se debe especificar el tipo de oscilador quese usa. Esto se hace a través de unos bits llamados: “fusiblesde configuración”.

Luis David Narváez

Page 11: 1. microcontrolador

OSCILADORES DE CRISTAL

Luis David Narváez

Page 12: 1. microcontrolador

OSCILADORES DE CRISTAL

Tipo Frecuencia OSC1/C1 OSC2/C2LP 32 Khz

200 Khz

68 – 100 pF

15 - 33 pF

68 - 100 pF

15 - 33 pF

XT 100 Khz

2 Mhz

4 Mhz

100 – 150 pF

15 – 33 pF

15 – 33 pF

100 – 150 pF

15 – 33 pF

15 – 33 pF

XT 100 Khz

2 Mhz

4 Mhz

100 – 150 pF

15 – 33 pF

15 – 33 pF

100 – 150 pF

15 – 33 pF

15 – 33 pF

HS 4 Mhz

10 Mhz

15 – 33 pF

15 – 33 pF

15 – 33 pF

15 – 33 pF

Luis David Narváez

Page 13: 1. microcontrolador

OSCILADOR TIPO RC

Luis David Narváez

Page 14: 1. microcontrolador

Circuito de Reset

Luis David Narváez

Page 15: 1. microcontrolador

APLICACIONES

Luis David Narváez

Page 16: 1. microcontrolador

APLICACIONES

Luis David Narváez

Page 17: 1. microcontrolador

Introducción PIC C CompilerIntroducción PIC C Compiler

PARTE 2

Luis David Narváez

Page 18: 1. microcontrolador

DEFINICIONES

CCS PIC COMPILER

DESKTOP AUTHOR LENGUAJE C

CCS PIC COMPILER

DESKTOP AUTHOR LENGUAJE C

Luis David Narváez

Page 19: 1. microcontrolador

DEFINICIONES

Luis David Narváez

Page 20: 1. microcontrolador

ELEMENTOS BÁSICOS

Luis David Narváez

Page 21: 1. microcontrolador

C ESPECÍFICO PARA LOS PICLas principales diferencias entre compiladores residen en las directivas(preprocessor commands) y en las funciones integradas (built-infunctions).

Directivas de Preprocesado más habituales:#ASM Las líneas entre estas dos directivas deben ser

instrucciones

#ENDASM Ensamblador que se insertan tal y como aparecen.

#BIT id = x.y Se crea una variable tipo bit correspondiente al bit y delbyte x en memoria.

#BYTE id = x Se crea una variable y se sitúa en el byte x en memoria.Si ya existía esa variable, se coloca físicamente en laposición especificada.

Las principales diferencias entre compiladores residen en las directivas(preprocessor commands) y en las funciones integradas (built-infunctions).

Directivas de Preprocesado más habituales:#ASM Las líneas entre estas dos directivas deben ser

instrucciones

#ENDASM Ensamblador que se insertan tal y como aparecen.

#BIT id = x.y Se crea una variable tipo bit correspondiente al bit y delbyte x en memoria.

#BYTE id = x Se crea una variable y se sitúa en el byte x en memoria.Si ya existía esa variable, se coloca físicamente en laposición especificada.

Luis David Narváez

Page 22: 1. microcontrolador

C ESPECÍFICO PARA LOS PIC#DEFINE id texto El identificador se sustituye por el texto adjunto.

#DEVICE chip Define el micro para el que se escribe el código.

#FUSES options Define la palabra de configuración para la grabacióndel microcontrolador.

#INCLUDE <fichero> Se incluye el texto del fichero especificado en el#INCLUDE “fichero” directorio o fuera de él.

#INLINE La función que sigue a esta directiva se copia enmemoria de programa cada vez que se le llame.Puede servir para mejorar la velocidad.

#SEPARATE La función que sigue a esta directiva se implementade manera separada (no INLINE). De esta manerase ahorra ROM

#DEFINE id texto El identificador se sustituye por el texto adjunto.

#DEVICE chip Define el micro para el que se escribe el código.

#FUSES options Define la palabra de configuración para la grabacióndel microcontrolador.

#INCLUDE <fichero> Se incluye el texto del fichero especificado en el#INCLUDE “fichero” directorio o fuera de él.

#INLINE La función que sigue a esta directiva se copia enmemoria de programa cada vez que se le llame.Puede servir para mejorar la velocidad.

#SEPARATE La función que sigue a esta directiva se implementade manera separada (no INLINE). De esta manerase ahorra ROM

Luis David Narváez

Page 23: 1. microcontrolador

C ESPECÍFICO PARA LOS PIC#ORG start Sitúa el código a partir de una determinada posición de

la memoria de programa

#INT_xxxx Indica que la función que sigue es un programa detratamiento de la interrupción xxxx.

#INT_GLOBAL Indica que la función que sigue es un programagenérico de tratamiento de interrupción. No se incluyecódigo de salvaguarda de registros ni de recuperacióncomo cuando se usa #INT_xxxx.

#PRIORITY ints Establece un orden de prioridad en las interrupciones.

#USE DELAY (clock = frecuencia en Hz) Define la frecuencia del osciladorque se va a utilizar, que se emplea para realizar loscálculos para funciones integradas de retardo.

#ORG start Sitúa el código a partir de una determinada posición dela memoria de programa

#INT_xxxx Indica que la función que sigue es un programa detratamiento de la interrupción xxxx.

#INT_GLOBAL Indica que la función que sigue es un programagenérico de tratamiento de interrupción. No se incluyecódigo de salvaguarda de registros ni de recuperacióncomo cuando se usa #INT_xxxx.

#PRIORITY ints Establece un orden de prioridad en las interrupciones.

#USE DELAY (clock = frecuencia en Hz) Define la frecuencia del osciladorque se va a utilizar, que se emplea para realizar loscálculos para funciones integradas de retardo.

Luis David Narváez

Page 24: 1. microcontrolador

GESTION DE PUERTOS I/OREGISTROS –VARIABLES EN LA MEMORIA RAM:Se definen los puertos como variables que se colocan en lasposiciones reales en la memoria RAM de datos. (MemoryOrganization)

FUNCIONES ESPECÍFICAS DEL COMPILADORSe definen la dirección de los datos si es necesario. Uso de

funciones propias del compilador.

#USE FAST_IO #USED FIXED_IO #USE STANDARD_IO

Luis David Narváez

REGISTROS –VARIABLES EN LA MEMORIA RAM:Se definen los puertos como variables que se colocan en lasposiciones reales en la memoria RAM de datos. (MemoryOrganization)

FUNCIONES ESPECÍFICAS DEL COMPILADORSe definen la dirección de los datos si es necesario. Uso de

funciones propias del compilador.

#USE FAST_IO #USED FIXED_IO #USE STANDARD_IO

Page 25: 1. microcontrolador

NOTA IMPORTANTE El Registro TRIS controla la dirección de las líneas del

puerto a configurar.

Un “cero” en el bit correspondiente al pin loconfigura como salida y pone el contenido de lamemoria (latch) en el pin seleccionado.

Mientras que un “uno” lo configura como entrada ypone el correspondiente circuito de salida en altaimpedancia.

El Registro TRIS controla la dirección de las líneas delpuerto a configurar.

Un “cero” en el bit correspondiente al pin loconfigura como salida y pone el contenido de lamemoria (latch) en el pin seleccionado.

Mientras que un “uno” lo configura como entrada ypone el correspondiente circuito de salida en altaimpedancia.

Luis David Narváez

Page 26: 1. microcontrolador

DEFINIENDO REGISTROS RAMPORTX TRISX:Directiva #BYTE

#BYTE TRISB = 0x93 // Define la variableTRISB#BYTE PORTB = 0x81 // Define la variable PORTB

Estas variables permiten controlar los puertos y se puedenutilizar en asignaciones:

Luis David Narváez

PORTX TRISX:Directiva #BYTE

#BYTE TRISB = 0x93 // Define la variableTRISB#BYTE PORTB = 0x81 // Define la variable PORTB

Estas variables permiten controlar los puertos y se puedenutilizar en asignaciones:

Page 27: 1. microcontrolador

DEFINIENDO REGISTROS RAMEl compilador de CCS incorpora una serie de funcionesintegradas que permite manejar los bits de una variable.

Luis David Narváez

El compilador de CCS incorpora una serie de funcionesintegradas que permite manejar los bits de una variable.

Page 28: 1. microcontrolador

DEFINIENDO REGISTROS RAM

Se puede trabajar directamente con una variable de un (1) bit.

Luis David Narváez

Se puede trabajar directamente con una variable de un (1) bit.

Page 29: 1. microcontrolador

FUNCIONES DEL COMPILADORFunciones orientadas a trabajar con los puertos E/S:

Luis David Narváez

Page 30: 1. microcontrolador

FUNCIONES DEL COMPILADORFunciones orientadas a trabajar con los puertos E/S:

Luis David Narváez

Page 31: 1. microcontrolador

FUNCIONES DEL COMPILADORFunciones para la gestión de Puertos E/S:

Luis David Narváez

Funciones para la gestión de Puertos E/S:

Page 32: 1. microcontrolador

FUNCIONES DEL COMPILADORFunciones para la gestión de Puertos E/S:

Luis David Narváez

Funciones para la gestión de Puertos E/S:

Page 33: 1. microcontrolador

FUNCIONES DEL COMPILADORFunciones para la gestión de Puertos E/S:

Luis David Narváez

Funciones para la gestión de Puertos E/S:

Page 34: 1. microcontrolador

PARPADEO DE LED’s

Enunciado: Encender y apagar 4 LEDs conectados a lospines RB0, RB1, RB2 y RB3 con una temporización de500ms, empleando las diferentes formas de configurar lospines en Lenguaje C.

Enunciado: Encender y apagar 4 LEDs conectados a lospines RB0, RB1, RB2 y RB3 con una temporización de500ms, empleando las diferentes formas de configurar lospines en Lenguaje C.

Luis David Narváez

Page 35: 1. microcontrolador

PARPADEO DE LED’s Conexión de Leds:

Luis David Narváez

Page 36: 1. microcontrolador

PARPADEO DE LED’s

Reto: Encender uno a la vez los pines del PORTD delMicrocontrolador 18f4550

Reto: Encender uno a la vez los pines del PORTD delMicrocontrolador 18f4550

Luis David Narváez

Page 37: 1. microcontrolador

MUCHAS GRACIASMUCHAS GRACIAS

PREGUNTAS /COMENTARIOS

Luis David Narváez