Vous êtes sur la page 1sur 45

PIC16F870

Programacin con MikroC

Ing. Alcvar Costales G.

1. Introduccin (1)

Un microcontrolador es un circuito integrado programable el cual contiene todos los componentes de un computador. Es un computador completo de limitadas prestaciones, que est contenido en un nico chip. Se emplea para controlar el funcionamiento de una nica tarea y gracias a su reducido tamao suele incorporarse en el propio dispositivo que controla.

Ing. Alcvar Costales G.

1. Introduccin (2)

Un microcontrolador normalmente dispone de una memoria pequea, en la que se almacena un solo programa. Las lneas de entrada y salida se conectan con sensores y actuadores al dispositivo fsico que controlan. Una vez programado el microcontrolador slo sirve para atender la tarea para la que ha sido programado. Las ventajas de los microcontroladores son:

Aumento de servicios y utilidades para el usuario. Aumento de la fiabilidad. Reduccin de tamao en el producto acabado. Mayor flexibilidad.

Ing. Alcvar Costales G.

1. Introduccin (3)

Los PIC son circuitos integrados de Microchip Technology Inc. , que pertenecen a la categora de los microcontroladores Microprocesador vs microcontrolador?
El microprocesador bsicamente est formado de la CPU y la ALU
MICROCONTROLADOR

Ing. Alcvar Costales G.

2. Partes de un microcontrolador
Oscilador
Memoria de datos RAM Memoria de datos EEPROM

CPU

Memoria de programa FLASH

Prticos

Perifricos

Ing. Alcvar Costales G.

2.1 El Procesador

Los PIC utilizan arquitectura Harvard en lugar de la tradicional Von Neumann. La arquitectura Harvard se caracteriza por tener dos memorias independientes, una para instrucciones y otra para datos. Cada una tiene su propio bus por lo que la CPU puede acceder simultneamente a las dos. Esto agilita el proceso de lectura y ejecucin de las instrucciones

Arquitectura Harvard

Ing. Alcvar Costales G.

2.1 El Procesador (2)

Otra caracterstica importante es que el procesador es de tipo RISC con un repertorio pequeo y sencillo de instrucciones, de forma que la mayor parte de las instrucciones se ejecutan en un ciclo de mquina. Adems se introduce una segmentacin (pipeline) en el procesador, dividiendo la ejecucin de una instruccin en varias etapas. De esta forma se puede trabajar sobre varias instrucciones simultneamente cada una en una etapa distinta.
RISC: Reduced Instruction Set Computer

Ing. Alcvar Costales G.

2.2 Memoria de programa

Es una memoria de almacenamiento no voltil (ROM, EPROM, OTP, EEPROM, FLASH), en la que se almacena el programa que gobierna la aplicacin a la que est destinado el microcontrolador. En general tiene un tamao muy reducido desde 512 a 16K palabras en la familia de los micros PIC. Adems al tener una memoria especfica de programa se puede adecuar el tamao de las instrucciones y los buses al ms apropiado para cada aplicacin.

Ing. Alcvar Costales G.

2.3 Memoria de datos

La memoria para almacenar datos debe ser de lectura y escritura, por lo que en general se usa memoria SRAM, aunque algunos micros llevan memoria EEPROM para evitar la prdida de los datos en caso de corte en el suministro de corriente. Los tamaos son mucho ms reducidos que la memoria de programa; por ejemplo el PIC16F870 dispone de 128 bytes de datos SRAM y 64 bytes de EEPROM.

Ing. Alcvar Costales G.

2.4 Lneas de entrada/salida

Estas lneas son los pines del microcontrolador que sirven para comunicarse con los perifricos conectados al sistema. Pueden enviar o recibir datos digitales al o desde el perifrico. Manejan la informacin en paralelo y se agrupan en conjuntos que reciben el nombre de puertas o prticos. Los pines de las puertas pueden configurarse independientemente cada una de ellos como entrada o salida.

Ing. Alcvar Costales G.

10

2.5 Recursos auxiliares (1)

Cada uno de los microcontroladores de un fabricante est orientado a una funcin concreta, por lo que algunos tienen una serie de complementos que aumentan su potencia y flexibilidad. A continuacin se comentan muy brevemente los ms comunes; posteriormente se explicarn en detalle aquellos elementos que contiene el PIC16F870.

Ing. Alcvar Costales G.

11

2.5 Recursos auxiliares (2)

Circuito de reloj, encargado de la sincronizacin del sistema. Temporizador para controlar los tiempos. Perro guardin (watchdog) provoca una reinicializacin cuando el programa se queda colgado. Conversor AD y DA para recibir y enviar seales analgicas. Comparador analgico para comprobar el valor de una seal analgica. Sistema de proteccin ante fallos de alimentacin. Estado de reposo, para minimizar el consumo de energa.

Ing. Alcvar Costales G.

12

3. PIC 16F870

Principales caractersticas

Ing. Alcvar Costales G.

13

3.1 Caractersticas (1)


Memoria de Programa de 2 K de 14 bits, EEPROM. Memoria de Datos RAM de 128 bytes. Memoria de Datos EEPROM de 64 bytes. Dispone de una pila de 8 niveles para permitir llamadas a subrutinas anidadas. Tiene 11 tipos diferentes de interrupciones. Un juego reducido y sencillo de 35 instrucciones. El encapsulado es de plstico DIP con 28 pines. Permite un rango de frecuencias de trabajo de hasta 20 MHz. Dispone de 3 timers (TMR0, TMR1, TMR2), y de perro guardin (WDT).

Ing. Alcvar Costales G.

14

3.1 Caractersticas (2)

Tiene 22 lneas de E/S digitales, divididas en 3 puertos (puerto A 6 lneas, puerto B 8 lneas, puerto C 8 lneas). Corriente mxima absorbida por lnea: 25 mA. Corriente mxima suministrada por lnea: 25mA. Voltaje de alimentacin (VDD) entre 2 y 5.5 V. Mdulo CCP Mdulo A/D de 5 canales Frecuencia mxima de trabajo: 20 MHz

Ing. Alcvar Costales G.

15

3.2 Aspecto externo


Polarizacin: VDD = 5v VSS = 0v OSC1/CLKIN: entrada del circuito oscilador externo

OSC2/CLKOUT: Auxiliar del circuito oscilador


MCLR: Reset del micro. Tambin se usa para introducir el voltaje de programacin. RA0 RA5: prtico A. RA4/TOCKI tambin sirve para ingresar una frecuencia externa para el temporizador TMR0 RB0 RB7: prtico B. RB0/INT entrada de interrupcin externa RC0 RC7: prtico C.
Ing. Alcvar Costales G. 16

3.3.1 Conexin de osciladores

OSCILADOR TIPO XT
5K < R < 100 K C = 20 pf

Ing. Alcvar Costales G.

17

3.4 Circuito de Reset (1)

La entrada MCLR permite reiniciar el estado del micro, llevndose a cabo dos acciones importantes Se carga un 0 en el Contador de Programa, de forma que despus de un Reset siempre se ejecuta la instruccin que est en la posicin 0 de la memoria de programa. Los registros de estado y control toman un estado conocido y determinado.

Ing. Alcvar Costales G.

18

3.5 Circuito de Reset


Dos circuitos muy usados para RESET

En este circuito se debe conectar un pulsador normalmente abierto en paralelo con C

Ing. Alcvar Costales G.

19

3.6 Memoria del programa


El

PIC16F870 tiene una memoria de programa tipo FLASH de 2 K direcciones, cada una de ellas con 14 bits, por lo que abarca un rango de direcciones de 0000 H a la 03FF H (en total 2048 posiciones).

Ing. Alcvar Costales G.

20

3.7 Memoria de datos

Observe que la memoria de datos est divida en cuatro bancos

Los registros de propsito general GPR son para el usuario

Ing. Alcvar Costales G.

21

3.8 Registro: STATUS (1)

Tiene varias funciones:


Avisar el estado de la ALU (C, DC, Z) Indicar el estado de reset (TO, PD) Seleccionar el banco de memoria

El registro Status est ubicado en la localidad 03h de la RAM Bits del registro status

STATUS

Ing. Alcvar Costales G.

22

3.8 Registro: STATUS (2)


STATUS

C: acarreo. Se pone en 1 si hay carry en el octavo bit DC: acarreo. Igual que C pero para el bit 4 Z: cero. Se pone en 1 si el resultado de la instruccin anterior es cero PD: (Power down) Se pone automticamente a 1L al conectar el PIC a la alimentacin, se pone a 0L al usar instruccin SLEEP TO: (Time out) Est en 1L al conectar el PIC a la alimentacin, y se pone a 0L cuando el perro guardin se desborda.
Ing. Alcvar Costales G. 23

3.8 Registro: STATUS (3)


STATUS

RP1 y RP0: Se usan para seleccionar el banco de memoria

IRP: Selecciona el banco de direccionamiento indirecto.

Ing. Alcvar Costales G.

24

3.9 Registros: TRISA, TRISB Y TRISC

Cada lnea de los prticos debe especificarse si ser usada como entrada o como salida. Los registros TRISA, TRISB y TRISC sirven para indicar si las lneas son entradas o salidas: con 1L entrada, con 0L salida
b7 b6 b5 b4 b3 b2 b1 b0

TRISB

1 0 0 1 1 0 0 0

entradas salidas

Ing. Alcvar Costales G.

25

3.9 Registros: TRISA, TRISB Y TRISC

Si se selecciona TRISB = 10011000, como en la lmina anterior, entonces las lneas del prtico B quedan especificadas como se indica.
b7 b6 b5 b4 b3 b2 b1 b0

PORTB

X X X X X X X X

entradas

salidas

X datos

Ing. Alcvar Costales G.

26

3.9 Registros: TRISA, TRISB Y TRISC


Este grfico es til para comprender mejor lo explicado en las dos lminas anteriores
No olvide que TRISA est en el banco 1 de la memoria, PORTA est en el banco 0
El registro STATUS nos permite pasar de un banco a otro de la memoria

Ing. Alcvar Costales G.

27

Programacin de PICs

Herramientas para programar un PIC

Ing. Alcvar Costales G.

28

Proceso total para grabar un PIC


Pasos para programar un PIC

Ing. Alcvar Costales G.

29

Uso de un simulador

Este es: Pic Simulator IDE Permite hacer un seguimiento del programa antes de grabarlo en el PIC Este simulador tambin es un compilador y ensamblador

Este es: Pic Simulator IDE Permite hacer un seguimiento del programa antes de grabarlo en el PIC Este simulador tambin es un compilador y ensamblador
30

Ing. Alcvar Costales G.

Editor, compilador y ensamblador

El editor es parte del simulador En la ventana del editor se escribe el programa en Basic Al compilar el archivo *.bas, se crea el archivo *.asm y luego al ensamblar este ltimo archivo se crea el archivo *.hex El archivo *.hex se graba en el microcontrolador
Ing. Alcvar Costales G. 31

Herramientas de desarrollo
Sirven

para probar los programas Aqu se observa algunos ejemplos:

Grupo de 8 Leds

Displays de 7 segmentos

LCD

Ing. Alcvar Costales G.

32

Manejo de un display de 7 segmentos

Gnd

Vcc Los 7 segmentos se conectan al prtico B del PIC En nodo comn los segmentos se activan con 0L En ctodo comn los segmentos se activan con 1L
Ing. Alcvar Costales G.

Otra forma de designar los segmentos

33

LCD 2x16

LCD = Liquid Crystal Display (Display de cristal lquido) Descripcin: un LCD es un dispositivo Controlado de visualizacin grafica para la presentacin de caracteres, smbolos o incluso dibujos (en algunos modelos) Tiene 2 filas de 16 caracteres cada una y cada carcter dispone de una matriz de 5x7 puntos (pixels), aunque los hay de otro nmero de filas y caracteres. Este dispositivo es manejado internamente por un microcontrolador Hitachi 44780 el cual regula todos los parmetros de presentacin Este modelo es el mas comnmente usado

Ing. Alcvar Costales G.

34

LCD: matriz de puntos


1 2 16

5 pixeles

7 pixeles

Cada caracter est formado por una matriz de 5x7 puntos (pixeles)

CARACTER

Ing. Alcvar Costales G.

35

LCD: caractersticas

Pantalla de caracteres ASCII, adems de los caracteres Kanji y Griegos. Desplazamiento de los caracteres hacia la izquierda o la derecha. Proporciona la direccin de la posicin absoluta o relativa del caracter. Memoria de 40 caracteres por lnea de pantalla. Movimiento del cursor y cambio de su aspecto. Permite que el usuario pueda programar 8 caracteres. Conexin a un procesador usando un interfaz de 4 u 8 bits

Ing. Alcvar Costales G.

36

LCD: conexin con bus de datos de 4 bits


El LCD tiene 14 pines. Algunos tienen 1 o 2 pines ms. Estos pines adicionales son usados para iluminacin posterior
Pin 1: GND Pin 2: Vcc (5V) Pin 3: para el contraste Pines 4 a 6: para control Pines 11 a 14: bus de datos

Ing. Alcvar Costales G.

37

LCD: conexin con bus de datos de 8 bits


El bus de datos ocupa todo el prtico B del PIC

Pin 1: GND Pin 2: Vcc (5V) Pin 3: para el contraste Pines 4 a 6: para control Pines 7 a 14: bus de datos

Ing. Alcvar Costales G.

38

LCD: distribucin de pines


PIN
1 2 3 4 5

Nombre
Vss Vcc Vee RS R/W

Nivel
0V 5V Pot Lgico Lgico Tierra

Descripcin
Alimentacin Potencimetro (Contraste) 0L instruccin, 1L dato 1L lee, 0L escribe en el LCD

6
7 a 14

E
DB0-DB7

Lgico
Lgico

Pulso de habilitacin
BUS de datos

Ing. Alcvar Costales G.

39

Registro del PIC: INTCON (1)

Funcin principal: controlar las interrupciones Est ubicado en la localidad 0BH de la RAM Su formato es:

GIE: EEIE: TOIE: INTE:

permiso global de las interrupciones, con 1 habilita habiltacin de interrupcin para grabacin de la EEPROM 1 habilita interrupcin de TMR0, 0 lo deshabilita 1 habilita la interrupcin RB0/INT, 0 la deshabilita

Ing. Alcvar Costales G.

40

Registros del PIC: INTCON (2)

RBIE:
TOIF: INTF: RBIF:

habilta interrupciones en RB4 a RB7


bandera de TMR0 bandera de interrupciones en RB0 bandera de interrupciones en RB4 a RB7

Ing. Alcvar Costales G.

41

Registro: ADCON0

CHS2:CHS0 ADCS1:ADCS0 Bits para seleccionar el reloj de la conversin 00 = Fosc /2 Bits de seleccin del canal anlogo

ADON
1 = Mdulo A/D on 0 = Mdulo A/D off GO/DONE Si ADON = 1:

000 = canal 0 (AN0)


001 = canal 1 (AN1) . . 100 = canal 4 AN(4)
Ing. Alcvar Costales G.

01 = Fosc/8
10 = Fosc/32 11 = Frc (reloj interno)

1 = conversin en progreso
0 = conversin terminada

42

Registro: ADCON1

Ing. Alcvar Costales G.

43

Registro: ADCON1

(1) Para PIC16F877


(2) Canales A/D respecto a canales usados para voltajes de referencia

Ing. Alcvar Costales G.

44

Registro: ADCON1

Ing. Alcvar Costales G.

45

Vous aimerez peut-être aussi