curso basico intermedio 01/01/2014pic studio. 01/01/2014pic studio

30
CURSO BASICO INTERMEDIO 07/06/22 PIC STUDIO

Upload: prudencio-plata

Post on 16-Feb-2015

18 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: CURSO BASICO INTERMEDIO 01/01/2014PIC STUDIO. 01/01/2014PIC STUDIO

CURSO BASICO INTERMEDIO

10/04/23 PIC STUDIO

Page 2: CURSO BASICO INTERMEDIO 01/01/2014PIC STUDIO. 01/01/2014PIC STUDIO

10/04/23 PIC STUDIO

Page 3: CURSO BASICO INTERMEDIO 01/01/2014PIC STUDIO. 01/01/2014PIC STUDIO

10/04/23 PIC STUDIO

Page 4: CURSO BASICO INTERMEDIO 01/01/2014PIC STUDIO. 01/01/2014PIC STUDIO

Un microcontrolador es un circuito integrado programable que contiene todos los componentes de una computadora. Es utilizado para controlar el funcionamiento de una tarea especifica.En su memoria solo reside un programa destinado a controlar una tarea específica. Sus líneas de entrada salida soportan conexiones de sensores y actuadores del dispositivo a controlar, solo soportan 20mA , y todos los recursos complementarios disponibles tienen como única finalidad atender sus requerimientos.

10/04/23 PIC STUDIO

Page 5: CURSO BASICO INTERMEDIO 01/01/2014PIC STUDIO. 01/01/2014PIC STUDIO

Diferencia entre un microcontrolador y un microprocesador

Un microprocesador es un sistema abierto con el que puede construirse una computadora con las características que se desee, acoplando los módulos necesarios, comos se muestra en la figura 1.

Figura 1.- Estructura de un microprocesador10/04/23 PIC STUDIO

Page 6: CURSO BASICO INTERMEDIO 01/01/2014PIC STUDIO. 01/01/2014PIC STUDIO

Un microcontrolador es un sistema cerrado que contiene una computadora completa y de requerimientos limitados que no se pueden

modificar, como se muestra en la figura 2.

Figura 2.-Estructura de un microcontrolador

10/04/23 PIC STUDIO

Page 7: CURSO BASICO INTERMEDIO 01/01/2014PIC STUDIO. 01/01/2014PIC STUDIO

El microcontrolador PIC16F88 es un circuito integrado de 18 pines

(patillas) fabricado con tecnología CMOS (Complementary metal–oxide–semiconductor), el cual se encuentra en

diferentes encapsulados por ejemplo el DIP (versión convencional) y

el SOIC (montaje superficial). Su frecuencia de operación esta en el

rango de 4 Mhz a 20 Mhz. Los PIC’s que operan en una frecuencia de 4 Mhz podran operar sin

ningun problema hasta los 10 Mhz.

En la figura 3 se muestra como están organizados los pines del microcontrolador PIC16F88

10/04/23 PIC STUDIO

Page 8: CURSO BASICO INTERMEDIO 01/01/2014PIC STUDIO. 01/01/2014PIC STUDIO

Figura 3.-Organización de los pines del microcontrolador PIC16F88 (encapsulado tipo DIP)

10/04/23 PIC STUDIO

Page 9: CURSO BASICO INTERMEDIO 01/01/2014PIC STUDIO. 01/01/2014PIC STUDIO

En la figura 3 podemos observar que el microcontrolador PIC16F88 contiene dos puertos denominados “A” y “B”. El puerto “A” tiene cinco líneas disponibles (RA0, RA1, RA2, RA3, RA4) y el puerto “B” tiene ocho líneas disponibles (RB0, RB1, RB2, RB3, RB4, RB5, RB6, RB7). Ambos puertos suman un total de trece líneas que podrán ser programadas independientemente como entradas o como salidas. Estas son las líneas que estarán destinadas para comunicar el microcontrolador con el mundo exterior como por ejemplo: Un motor Paso a Paso, diodos luminosos “LED’s, teclados matriciales, etc. El pin 3 del PIC16F88 perteneciente al puerto “A” = RA4 también tiene otra nomenclatura denominada “TOCKI” que significa que esta línea podrá ser programada como entrada, salida y temporizador/contador

10/04/23 PIC STUDIO

Page 10: CURSO BASICO INTERMEDIO 01/01/2014PIC STUDIO. 01/01/2014PIC STUDIO

El microcontrolador se alimenta con un voltaje de 5 Volts DC y los pines para ello son el pin No 14(+) y el pin No 5(-).

Osciladores.

Todo microprocesador o microcontrolador requiere de un circuito que le indique a que velocidad debe de operar. Este circuito es denominado como oscilador de frecuencia. El oscilador es el corazón del microcontrolador, por lo tanto este pequeño circuito no debe de faltar. Para el microcontrolador PIC16F88 el Pin No. 15 y el Pin No. 16 son utilizados para introducir la frecuencia de reloj.

10/04/23 PIC STUDIO

Page 11: CURSO BASICO INTERMEDIO 01/01/2014PIC STUDIO. 01/01/2014PIC STUDIO

El microcontrolador PIC16F88 utiliza cuatro periodos completos de reloj por cada instrucción, por lo tanto si nuestra frecuencia de operación es de 4 Mhz, internamente en el microcontrolador se esta trabajando a 1 Mhz debido a que se toman cuatro pulsos de reloj completos para cada instrucción. El microcontrolador PIC16F88 puede utilizar cuatro tipos diferentes de osciladores de frecuencia. El tipo de oscilador dependerá de la precisión (ej: para las rutinas de tiempo), velocidad que es requiera para la aplicación.

10/04/23 PIC STUDIO

Page 12: CURSO BASICO INTERMEDIO 01/01/2014PIC STUDIO. 01/01/2014PIC STUDIO

10/04/23 PIC STUDIO

Page 13: CURSO BASICO INTERMEDIO 01/01/2014PIC STUDIO. 01/01/2014PIC STUDIO

En el momento de programar el microcontrolador se deberá especificar el tipo de oscilador que se utilizara en la aplicación a desarrollar, es decir su frecuencia de operación.

Ejemplo si su frecuencia de trabajo es de 10 Mhz, configuración del microcontrolador con el oscilador deberá estar en “HS”; pero la frecuencia de trabajo es de 4 Mhz entonces la configuración del microcontrolador deberá estar en “XT”.

Oscilador tipo “HS” basado en un cristal para frecuencias mayores a 4 Mhz,

10/04/23 PIC STUDIO

Page 14: CURSO BASICO INTERMEDIO 01/01/2014PIC STUDIO. 01/01/2014PIC STUDIO

En esta figura mostramos la configuración básica obligatoria que debe tener el microcontrolador PIC16F88 para poder funcionar.

RA017

RA118

RA21

RA32

RB0/INT6

RB1 7

RB2 8

RB39

RB410

RB511

RB6 12

RB7 13

VSS5

MCLR4

OSC1/CLKIN16

RA4/T0CKI3

OSC2/CLKOUT15

VDD14

PIC16F84A

123

POWER

1K

RP

GNDRESET

GND

VCC

22pFC1

22pFC2

GND GND

123

CRISTAL

GND

VCC

VCC

10/04/23 PIC STUDIO

Page 15: CURSO BASICO INTERMEDIO 01/01/2014PIC STUDIO. 01/01/2014PIC STUDIO

Es importante conocer loa límites de corriente de los puertos A y B cuando son programados como salidas o como entradas.

Cuando son programados como salidas es denominado modo fuente por suministran corriente y cuando las líneas sean programadas como entradas son llamadas sumidero por que reciben corriente.

10/04/23 PIC STUDIO

Page 16: CURSO BASICO INTERMEDIO 01/01/2014PIC STUDIO. 01/01/2014PIC STUDIO

ARQUITECTURA INTERNA DEL PIC16F88

El microcontrolador PIC16F88 dispone de una estructura organizada interiormente conformado por bloques interconectados en donde se

incluye la memoria RAM, los puertos de entrada y salida, la memoria EEPROM, etc. En la figura 8 se muestra la arquitectura interna del

PIC16F88.

10/04/23 PIC STUDIO

Page 17: CURSO BASICO INTERMEDIO 01/01/2014PIC STUDIO. 01/01/2014PIC STUDIO

Figura 8 .-Arquitectura interna del PIC16F88.10/04/23 PIC STUDIO

Page 18: CURSO BASICO INTERMEDIO 01/01/2014PIC STUDIO. 01/01/2014PIC STUDIO

REGISTROS IMPORTANTES DEL PIC16F88

Antes de programar el microcontrolador PIC16F88, es necesario conocer algunos aspectos básicos de la arquitectura del PIC16F88,

específicamente en los detalles relacionados a la ubicación del comienzo de la memoria RAM, memoria EEPROM, registros reservados, etc. En

la figura 9 se representa el mapa de memoria del PIC16F88.

La estructura del PIC16F88 esta dividida en dos columnas denominadas banco 0 y banco 1.

10/04/23 PIC STUDIO

Page 19: CURSO BASICO INTERMEDIO 01/01/2014PIC STUDIO. 01/01/2014PIC STUDIO

Figura 9 .-Mapa de memoria del PIC16F84A.10/04/23 PIC STUDIO

Page 20: CURSO BASICO INTERMEDIO 01/01/2014PIC STUDIO. 01/01/2014PIC STUDIO

MEMORIA DE PROGRAMA TIPO EEPROM.

Esta memoria tipo Flash, aquí almacenaremos nuestro programa dentro del microcontrolador PIC16F88. Esta memoria puede ser escrita o

borrada eléctricamente.La memoria Flash tiene la característica de poderse borrar en bloques

completos y no podrá borrarse posiciones concretas o específicas, no es una memoria no es volátil, es decir, no pierde los datos si la energía es

interrumpida.

10/04/23 PIC STUDIO

Page 21: CURSO BASICO INTERMEDIO 01/01/2014PIC STUDIO. 01/01/2014PIC STUDIO

10/04/23 PIC STUDIO

Page 22: CURSO BASICO INTERMEDIO 01/01/2014PIC STUDIO. 01/01/2014PIC STUDIO

Ejemplo 1.- Utilizando el compilador de lenguaje C y TDA realice un programa que permita encender el LED B0

10/04/23 PIC STUDIO

Page 23: CURSO BASICO INTERMEDIO 01/01/2014PIC STUDIO. 01/01/2014PIC STUDIO

#include <16F88.H> // Declara el pic a usar#fuses HS, NOPROTECT, NOWDT, // Declara los fusible a programar#use delay(clock=20000000) // Declara el valor del oscilador#use fast_io(A) // Declara los puertos#use fast_io(B) // que se utilizaran#byte salida=0x06 // se declara que se utilizara el bit 4 del puerto B

inicializar( ) //función de inicializar puertos { set_tris_b(0x00); // se declara el puerto B como salida }

main() // programa principal { inicializar(); // llama a el programa inicializar while(TRUE) { salida=0x01; // pone en 1º bit del puerto B } }

10/04/23 PIC STUDIO

Page 24: CURSO BASICO INTERMEDIO 01/01/2014PIC STUDIO. 01/01/2014PIC STUDIO

#include <16F84A.H> // Declara el pic a usar#fuses XT, NOPROTECT, NOWDT // Declara los fusible a programar#use delay(clock=4000000) // Declara el valor del oscilador#use fast_io(A) // Declara los puertos#use fast_io(B) // que se utilizaran#byte salida=0x06 // se declara todo el puerto B como salidainicializar( ) //función de inicializar puertos { set_tris_b(0x00); // se declara el puerto B como salida set_tris_a(0x00); // se declara el puerto A como salida }

main() // programa principal { inicializar(); // llama a el programa inicializar while(TRUE) { salida=0xff; // pone en 1 al puerto B delay_ms(700); //el tiempo que se muestra en el display salida=0; // pone en 0 al puerto B delay_ms(700); //el tiempo que se muestra en el display } }}

10/04/23 PIC STUDIO

Page 25: CURSO BASICO INTERMEDIO 01/01/2014PIC STUDIO. 01/01/2014PIC STUDIO

#include <16F84A.H> // Declara el pic a usar#fuses XT, NOPROTECT, NOWDT // Declara los fusible a programar#use delay(clock=4000000) // Declara el valor del oscilador#use fast_io(A) // Declara los puertos#use fast_io(B) // que se utilizaran#byte salida=0x06 // se declara que se utilizara el bit 4 del puerto B

void inicializar( ) //función de inicializar puertos { set_tris_b(0x00); // se declara el puerto B como salida }

void main() // programa principal { inicializar(); // llama a el programa inicializar while(TRUE) { salida=0x01; // enciende en 1º bit del puerto B delay_ms(700); //tiempo de espera salida=0x03; // enciende en 1º,2º bit del puerto B delay_ms(700); //tiempo de espera salida=0x07; // enciende en 1º,2º,3º bit del puerto B delay_ms(700); //tiempo de espera

10/04/23 PIC STUDIO

Page 26: CURSO BASICO INTERMEDIO 01/01/2014PIC STUDIO. 01/01/2014PIC STUDIO

salida=0x0f; // enciende en 1º,2º,3º,4º bit del puerto B delay_ms(700); //tiempo de espera salida=0x1f; // enciende en 1º,2º,3º,4º,5º bit del puerto B delay_ms(700); //tiempo de espera salida=0x3f; // enciende en 1º,2º,3º,4º,5º,6º bit del puerto B delay_ms(700); //tiempo de espera salida=0x7f; // enciende en 1º,2º,3º,4º,5º,6º,7º bit del puerto B delay_ms(700); //tiempo de espera salida=0xff; // enciende en 1º,2º,3º,4º,5º,6º,7º,8º bit del puerto B delay_ms(700); //tiempo de espera } }

10/04/23 PIC STUDIO

Page 27: CURSO BASICO INTERMEDIO 01/01/2014PIC STUDIO. 01/01/2014PIC STUDIO

#include <16F84A.H> // Declara el pic a usar#fuses XT, NOPROTECT, NOWDT // Declara los fusible a programar#use delay(clock=4000000) // Declara el valor del oscilador#use fast_io(A) // Declara los puertos#use fast_io(B) // que se utilizaran#byte salida=0x06 // se declara que se utilizara el bit 4 del puerto B

inicializar( ) //función de inicializar puertos { set_tris_b(0x00); // se declara el puerto B como salida }

main() // programa principal { inicializar(); // llama a el programa inicializar while(TRUE) { salida=0x01; // enciende en 1º bit del puerto B delay_ms(700); //tiempo de espera salida=0x02; // enciende en 2º bit del puerto B delay_ms(700); //tiempo de espera

10/04/23 PIC STUDIO

Page 28: CURSO BASICO INTERMEDIO 01/01/2014PIC STUDIO. 01/01/2014PIC STUDIO

salida=0x04; // enciende en 3º bit del puerto B delay_ms(700); //tiempo de espera salida=0x08; // enciende en 4º bit del puerto B delay_ms(700); //tiempo de espera salida=0x10; // enciende en 5º bit del puerto B delay_ms(700); //tiempo de espera salida=0x20; // enciende en 6º bit del puerto B delay_ms(700); //tiempo de espera salida=0x40; // enciende en 7º bit del puerto B delay_ms(700); //tiempo de espera salida=0x80; // enciende en 8º bit del puerto B delay_ms(700); //tiempo de espera } }

10/04/23 PIC STUDIO

Page 29: CURSO BASICO INTERMEDIO 01/01/2014PIC STUDIO. 01/01/2014PIC STUDIO

#include <16F84A.H> // Declara el pic a usar#fuses XT, NOPROTECT, NOWDT // Declara los fusible a programar#use delay(clock=4000000)// Declara el valor del oscilador#use fast_io(A) // Declara los puertos#use fast_io(B) // que se utilizaran#byte salida=0x06 // se declara todo el puerto B como salidainicializar( ) //función de inicializar puertos { set_tris_b(0x00); // se declara el puerto B como salida set_tris_a(0x00); // se declara el puerto A como salida }

main() // programa principal { inicializar(); // llama a el programa inicializar while(TRUE){ salida=0x3f;//el 0 en forma de 7 segmentos en hexadecimal delay_ms(700);// el tiempo que se muestra en el display salida=0x06; //el 1 en forma de 7 segmentos en hexadecimal delay_ms(700);// el tiempo que se muestra en el display salida=0x5b;//el 2 en forma de 7 segmentos en hexadecima delay_ms(700);// el tiempo que se muestra en el display

10/04/23 PIC STUDIO

Page 30: CURSO BASICO INTERMEDIO 01/01/2014PIC STUDIO. 01/01/2014PIC STUDIO

salida=0x4f;//el 3 en forma de 7 segmentos en hexadecimal delay_ms(700);// el tiempo que se muestra en el display salida=0x66;//el 4 en forma de 7 segmentos en hexadecimal delay_ms(700);// el tiempo que se muestra en el display salida=0x6d; //el 5 en forma de 7 segmentos en hexadecimal delay_ms(700);// el tiempo que se muestra en el display salida=0x7c; //el 6 en forma de 7 segmentos en hexadecimal delay_ms(700);// el tiempo que se muestra en el display salida=0x07;//el 7 en forma de 7 segmentos en hexadecimal delay_ms(700);// el tiempo que se muestra en el display salida=0x7f;//el 8 en forma de 7 segmentos en hexadecimal delay_ms(700);// el tiempo que se muestra en el display salida=0x67;//el 9 en forma de 7 segmentos en hexadecimal delay_ms(700);// el tiempo que se muestra en el display

} }

10/04/23 PIC STUDIO