utcj curso real ice 1104

28
UNIVERSIDAD TECNOLOGICA DE CIUDAD JUAREZ Microcontroladores Microchip con MPLAB (PIC16F886)

Upload: jriveroj

Post on 07-Mar-2015

48 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Utcj Curso Real Ice 1104

UNIVERSIDAD TECNOLOGICADE CIUDAD JUAREZ

Microcontroladores Microchip con MPLAB(PIC16F886)

Page 2: Utcj Curso Real Ice 1104

UTCJ 2

PIC16F886

JRJ

Page 3: Utcj Curso Real Ice 1104

UTCJ 3

PIC16F886

JRJ

Parámetro Valor Tipo de memoria de programa Flash Memoria de programa (KB) 14 Velocidad de CPU (MIPS) 5 RAM (Bytes) 368 EEPROM de datos (bytes) 256

Periféricos de comunicación digital 1-A/E/USART, 1-MSSP(SPI/I2C)

Periféricos Captura/Compara/PWM 1 CCP, 1 ECCP

Timers 2 x 8-bit, 1 x 16-bit

ADC 11 ch, 10-bit Comparadores 2 Rango de temperatura (°C) -40 to 125

Rango de voltaje de operación (V) 2 to 5.5

Conteo de terminales 28

Page 4: Utcj Curso Real Ice 1104

UTCJ 4

PIC16F886

JRJ

Page 5: Utcj Curso Real Ice 1104

UTCJ 5

Tarjeta DEMO de 28 pin

Esta tarjeta es una placa de circuito impreso de demostración para PICs de 28 terminales.Cuenta con un PIC16F886, cuatro LEDs, un botón pulsador y un potenciómetro.Tiene varios puntos de prueba para accesar a las terminales de E/S del microcontrolador y una área generosa para prototipos.

JRJ

Page 6: Utcj Curso Real Ice 1104

UTCJ 6

Tarjeta DEMO de 28 pinDispositivos soportados

JRJ

Page 7: Utcj Curso Real Ice 1104

UTCJ 7

Tarjeta DEMO de 28 pin

JRJ

Page 8: Utcj Curso Real Ice 1104

UTCJ 8

Tarjeta DEMO de 28 pin

JRJ

Page 9: Utcj Curso Real Ice 1104

UTCJ 9

¿Qué es REAL ICE?

Es un emulador en circuito que es controlado por una PC corriendo el software MPLAB. La aplicación puede variar desde desarrollo de software hasta integración de hardware para pruebas de manufactura a servicio de campo.Soporta desarrollo de hardware y software para microcontroladores PIC y controladores de señal digital dsPIC que están basados en la capacidad de programación serial (ICSP).JRJ

Page 10: Utcj Curso Real Ice 1104

UTCJ 10

Uso de MPLAB + REAL ICE

• Como emulador/depurador (debugger)– Permite la ejecución del programa del PIC

controlada desde la computadora. (Breakpoints, por paso)

• Como programador– Graba el programa en el PIC y puede ejecutarse sin

el MPLAB REAL ICE.

JRJ

Page 11: Utcj Curso Real Ice 1104

UTCJ 11

Conexión para tarjetas de aplicación

JRJ

Page 12: Utcj Curso Real Ice 1104

UTCJ 12

Conexión para tarjetas de aplicación

• No usar resistencias pull-ups en las terminales PGC/PGD. Dividen los niveles de voltaje debido a que estas líneas tienen resistencias de 4.7 kΩ en el emulador.

• No usar capacitores en las terminales PGC/PGD. Previene transiciones rapidas en la líneas de datos y reloj durante las comunicaciones de programación y depuración.

• No usar capacitores en la terminal MCLR. Previene transiciones rapidas del VPP. Una resistencia pull-up es suficiente.

• No usar diodos en las terminales PGC/PGD. Previene la comunicacion bidireccional entre el emulador y el dispositivo objetivo.JRJ

Page 13: Utcj Curso Real Ice 1104

UTCJ 13

Uso de MPLAB + REAL ICE

1. Abrir MPLAB2. Seleccionar el PIC16F886 (Configure > Select Device)3. Crear un proyecto. (Project > Project Wizard)

a. Device: PIC16F886b. Toolsuite:HI-TECH C Compilerc. Proyecto: practica1.mcp

4. Crear el archivo fuente, guardarlo como «main.c» y agregar al proyecto

5. Establecer los valores de configuración del PIC (Configure > Configuration bits)

JRJ

Page 14: Utcj Curso Real Ice 1104

UTCJ 14

Uso de MPLAB + REAL ICE

JRJ

Page 15: Utcj Curso Real Ice 1104

UTCJ 15

Uso de MPLAB + REAL ICE

6. Compilar proyecto7. Conectar el MPLAB REAL ICE a la computadora y

a la tarjeta demo8. Conectar la tarjeta demo a la fuente de +5V9. Seleccionar el depurador (Debugger > Select tool

> REAL ICE)a. Programar el microcontroladorb. Correr el programa (continuo o por pasos)c. Comprobar el circuitod. Salir del depurador (Debugger > Select tool > None)

JRJ

Page 16: Utcj Curso Real Ice 1104

UTCJ 16

Uso de MPLAB + REAL ICE

11.Seleccionar el programador (Programmer > Select tool > REAL ICE)

a. Programar el microcontroladorb. Salir del programador (Programmer > Select tool

> None)c. Desconectar la tarjeta demo del REAL ICE.d. Comprobar el funcionamiento del circuito.

JRJ

Page 17: Utcj Curso Real Ice 1104

UTCJ 17

PRACTICAS

1. Activar salidas digitales2. E/S digitales3. Retardos4. Entradas analógicas

JRJ

Page 18: Utcj Curso Real Ice 1104

UTCJ 18

1. Activar salidas digitales

• Enviar un numero binario (5) de 4 bits al puerto B.

JRJ

Page 19: Utcj Curso Real Ice 1104

UTCJ 19

1. Código fuente#include <htc.h>

void main()

// Configura PORTB como salidas digitales

ANSELH=0;

TRISB=0;

PORTB=0;

for(;;)

PORTB=0x05;

JRJ

Page 20: Utcj Curso Real Ice 1104

UTCJ 20

2. E/S digitales

• El interruptor conectado a RB4 controlará el encendido del led de RB0, y se apagará al presionar el boton conectado en RB5.

• El interruptor de RB6 controlará el LED de RB1.

JRJ

Page 21: Utcj Curso Real Ice 1104

UTCJ 21

2. Código fuente#include <htc.h>

void main()

ANSELH=0; // Configura PORTB como salidas digitales

TRISB=0b11110000;

PORTB=0;

for(;;)

if (RB4==0) // Boton Start Enciende Led

RB0=1;

if (RB5==0) // Boton Stop Apaga Led

RB0=0;

RB1=!RB6; // El valor inverso de RB6 se refleja en RB1

JRJ

Page 22: Utcj Curso Real Ice 1104

UTCJ 22

2. Circuito

JRJ

Page 23: Utcj Curso Real Ice 1104

UTCJ 23

3. Retardos

• Encender los 4 LEDs de la Tarjeta Demo en secuencia.

JRJ

Page 24: Utcj Curso Real Ice 1104

UTCJ 24

3. Código fuente#include<htc.h>

#define _XTAL_FREQ 8000000

void main()

ANSELH=0; // Configura PORTB como salidas digitales

TRISB=0b11110000;

PORTB=0;

for(;;)

PORTB=0b00000001;

__delay_ms(200); __delay_ms(200); __delay_ms(200); __delay_ms(200);

PORTB=0b00000010;

__delay_ms(200); __delay_ms(200); __delay_ms(200); __delay_ms(200); PORTB=0b00000100;

__delay_ms(200); __delay_ms(200); __delay_ms(200); __delay_ms(200);

PORTB=0b00001000;

__delay_ms(200); __delay_ms(200); __delay_ms(200); __delay_ms(200);

JRJ

Page 25: Utcj Curso Real Ice 1104

UTCJ 25

3. Código fuente#include<htc.h>

#define _XTAL_FREQ 8000000

void retardo1seg(void)

unsigned int i=0;

for(i=1;i<=5;i++)

__delay_ms(200);

void main()

ANSELH=0; // Configura PORTB como salidas digitales

TRISB=0b11110000;

PORTB=0;

for(;;)

PORTB=0b00000001;

retardo1seg();

PORTB=0b00000010;

retardo1seg();

PORTB=0b00000100;

retardo1seg();

PORTB=0b00001000;

retardo1seg();

JRJ

Page 26: Utcj Curso Real Ice 1104

UTCJ 26

4. Entradas analógicas

• Mostrar el valor de voltaje de un potenciómetro de manera progresiva en 4 LEDs.

JRJ

Page 27: Utcj Curso Real Ice 1104

UTCJ 27

4. Código fuente

#include <htc.h>

#define _XTAL_FREQ 8000000

void main()

unsigned int DATO=0;

// Configura RA0 como entrada analógica

ANSEL=0x01;

TRISA=0x01;

// Configura PORTB como salidas digitales

ANSELH=0;

TRISB=0;

PORTB=0;

// Configura ADC

// Resultado justificado a la izquierda ADFM=0

// Vref-=VSS

// Vref+=VDD

ADCON1=0;

JRJ

for(;;)

ADCON0=0b01000001;

//01------ Fosc/8

//--0000-- Canal A0 seleccionado

//-------1 ADC habilitado

__delay_us(20);

GODONE=1;

while(GODONE);

DATO=ADRESH;

if(DATO<30)

PORTB=0;

else if(DATO<60)

PORTB=1;

else if(DATO<120)

PORTB=3;

else if(DATO<160)

PORTB=7;

else

PORTB=15;

Page 28: Utcj Curso Real Ice 1104

UTCJ 28

REFERENCIAS

• Hoja de datos de PIC16F886. http://ww1.microchip.com/downloads/en/DeviceDoc/41291F.pdf

• Tutoriales de programación en ensamblador y PICC. http://gooligum.com.au/tutorials.html

JRJ