You are on page 1of 28

UNIVERSIDAD TECNOLOGICA DE CIUDAD JUAREZ

Microcontroladores Microchip con MPLAB (PIC16F886)

PIC16F886

JRJ

UTCJ

PIC16F886
Parmetro Tipo de memoria de programa Memoria de programa (KB) Velocidad de CPU (MIPS) RAM (Bytes) EEPROM de datos (bytes) Perifricos de comunicacin digital Perifricos Captura/Compara/PWM Timers ADC Comparadores Rango de temperatura (C) Rango de voltaje de operacin (V) Conteo de terminales Flash 14 5 368 256 1-A/E/USART, 1-MSSP(SPI/I2C) 1 CCP, 1 ECCP 2 x 8-bit, 1 x 16-bit 11 ch, 10-bit 2 -40 to 125 2 to 5.5 28 Valor

JRJ

UTCJ

PIC16F886

JRJ

UTCJ

Tarjeta DEMO de 28 pin


Esta tarjeta es una placa de circuito impreso de demostracin para PICs de 28 terminales. Cuenta con un PIC16F886, cuatro LEDs, un botn pulsador y un potencimetro. Tiene varios puntos de prueba para accesar a las terminales de E/S del microcontrolador y una rea generosa para prototipos.

JRJ

UTCJ

Tarjeta DEMO de 28 pin Dispositivos soportados

JRJ

UTCJ

Tarjeta DEMO de 28 pin

JRJ

UTCJ

Tarjeta DEMO de 28 pin

JRJ

UTCJ

Qu es REAL ICE?
Es un emulador en circuito que es controlado por una PC corriendo el software MPLAB. La aplicacin puede variar desde desarrollo de software hasta integracin de hardware para pruebas de manufactura a servicio de campo. Soporta desarrollo de hardware y software para microcontroladores PIC y controladores de seal digital dsPIC que estn basados en la capacidad de programacin serial (ICSP).
JRJ UTCJ 9

Uso de MPLAB + REAL ICE


Como emulador/depurador (debugger)
Permite la ejecucin 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

UTCJ

10

Conexin para tarjetas de aplicacin

JRJ

UTCJ

11

Conexin para tarjetas de aplicacin

No usar resistencias pull-ups en las terminales PGC/PGD. Dividen los niveles de voltaje debido a que estas lneas tienen resistencias de 4.7 k en el emulador. No usar capacitores en las terminales PGC/PGD. Previene transiciones rapidas en la lneas de datos y reloj durante las comunicaciones de programacin y depuracin. 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 JRJ UTCJ 12 bidireccional entre el emulador y el dispositivo objetivo.

Uso de MPLAB + REAL ICE


1. Abrir MPLAB 2. Seleccionar el PIC16F886 (Configure > Select Device) 3. Crear un proyecto. (Project > Project Wizard)
a. Device: PIC16F886 b. Toolsuite:HI-TECH C Compiler c. Proyecto: practica1.mcp

4. Crear el archivo fuente, guardarlo como main.c y agregar al proyecto 5. Establecer los valores de configuracin del PIC (Configure > Configuration bits)
JRJ UTCJ 13

Uso de MPLAB + REAL ICE

JRJ

UTCJ

14

Uso de MPLAB + REAL ICE


6. Compilar proyecto 7. Conectar el MPLAB REAL ICE a la computadora y a la tarjeta demo 8. Conectar la tarjeta demo a la fuente de +5V 9. Seleccionar el depurador (Debugger > Select tool > REAL ICE)
a. b. c. d.
JRJ

Programar el microcontrolador Correr el programa (continuo o por pasos) Comprobar el circuito Salir del depurador (Debugger > Select tool > None)
UTCJ 15

Uso de MPLAB + REAL ICE


11.Seleccionar el programador (Programmer > Select tool > REAL ICE)
a. Programar el microcontrolador b. Salir del programador (Programmer > Select tool > None) c. Desconectar la tarjeta demo del REAL ICE. d. Comprobar el funcionamiento del circuito.

JRJ

UTCJ

16

PRACTICAS
1. 2. 3. 4. Activar salidas digitales E/S digitales Retardos Entradas analgicas

JRJ

UTCJ

17

1. Activar salidas digitales


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

JRJ

UTCJ

18

1. Cdigo fuente
#include <htc.h> void main() { // Configura PORTB como salidas digitales ANSELH=0; TRISB=0; PORTB=0; for(;;) { PORTB=0x05; } }

JRJ

UTCJ

19

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

UTCJ

20

2. Cdigo 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; }
JRJ

// El valor inverso de RB6 se refleja en RB1

UTCJ

21

2. Circuito

JRJ

UTCJ

22

3. Retardos
Encender los 4 LEDs de la Tarjeta Demo en secuencia.

JRJ

UTCJ

23

3. Cdigo 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 UTCJ 24

#include<htc.h> #define _XTAL_FREQ 8000000

3. Cdigo fuente

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(); } UTCJ }

JRJ

25

4. Entradas analgicas
Mostrar el valor de voltaje de un potencimetro de manera progresiva en 4 LEDs.

JRJ

UTCJ

26

4. Cdigo fuente
for(;;) {

#include <htc.h> #define _XTAL_FREQ 8000000 void main() { unsigned int DATO=0; // Configura RA0 como entrada analgica 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;

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; }

JRJ

UTCJ
}

27

REFERENCIAS
Hoja de datos de PIC16F886. http://ww1.microchip.com/downloads/en/De viceDoc/41291F.pdf Tutoriales de programacin en ensamblador y PICC. http://gooligum.com.au/tutorials.html

JRJ

UTCJ

28

You might also like