Você está na página 1de 21

CONCEPTOS BASICOS DEL MICROCONTROLADOR

El PIC16F877 es un micro controlador con memoria de


programa tipo FLASH, lo que representa gran facilidad
en el desarrollo de prototipos y en su aprendizaje ya
que no se requiere borrarlo con luz ultravioleta como
las versiones EPROM, sino que permite reprogramarlo
nuevamente sin ser borrado con anterioridad.
El PIC16F877 es un micro controlador de Microchip
Technology fabricado en tecnologa CMOS, su
consumo de potencia es muy bajo y adems es
completamente esttico, esto quiere decir que el reloj
puede detenerse y los datos de la memoria no se
pierden.

AUTOMATIZACION INDUSTRIAL

Pgina 1

El encapsulado ms comn para este micro controlador es el DIP (Dual In-line


Pin) de 40 pines, propio para usarlo en experimentacin. La referencia
completa es PIC16F877-04 para el dispositivo que utiliza cristal oscilador de
hasta 4 MHz
Los pines de entrada/salida de este micro controlador estn organizados en
cinco puertos, el puerto A con 6 lneas, el puerto B con 8 lneas, el puerto C con
8 lneas, el puerto D con 8 lneas y el puerto E con 3 lneas. Cada pin de esos
puertos se puede configurar como entrada o como salida independiente
programando un par de registros diseados para tal fin. En ese registro un bit
en "0" configura el pin del puerto correspondiente como salida y un bit en "1" lo
configura como entrada. Dichos pines del micro controlador tambin pueden
cumplir otras funciones especiales, siempre y cuando se configuren para ello.
El micro controlador PIC16F877 de Microchip pertenece a una gran familia de
micro controladores de 8 bits (bus de datos) que tienen las siguientes
caractersticas generales que los distinguen de otras familias:

- Arquitectura Harvard
- Tecnologa RISC
- Tecnologa CMOS

Estas caractersticas se conjugan para lograr un dispositivo altamente eficiente


en el uso de la memoria de datos y programa y por lo tanto en la velocidad de
ejecucin.

SIMULACION

Al
iniciar
el
procedimiento
para
la
simulacin
del
micro
controlador en el programa
PICC se tuvo en cuenta lo
aprendido en lenguaje c .

La principal ventaja
de programarlos en C es la
AUTOMATIZACION INDUSTRIAL

Pgina 2

simplicidad, ya que el compilador se encarga de convertir las


instrucciones de C al cdigo ensamblador

ALIMENTACIN
Aunque el PIC16F887 es capaz de funcionar a diferentes voltajes de
alimentacin, no es recomendable probar la ley de Murphy. Lo ms adecuado
es proporcionar un voltaje de alimentacin de 5V DC. Este circuito, mostrado
en la pgina anterior, utiliza un regulador de voltaje positivo de tres terminales
LM7805. Es un regulador integrado y barato que proporciona una estabilidad
de voltaje de alta calidad y suficiente corriente para habilitar el funcionamiento
apropiado del controlador y de los perifricos (aqu suficiente significa una
corriente de 1A).
SEAL DE REINICIO
Para que un microcontrolador pueda funcionar apropiadamente, un uno lgico
(VCC) se debe colocar en el pin de reinicio. El botn de presin que conecta el
pin MCLR a GND no es necesario. Sin embargo, este botn casi siempre est
proporcionado ya que habilita al microcontrolador volver al modo normal de
funcionamiento en caso de que algo salga mal. Al pulsar sobre el botn
RESET, el pin MCLR se lleva un voltaje de 0V, el microcontrolador se reinicia y
la ejecucin de programa comienza desde el principio. Una resistencia de 10k
se utiliza para impedir un corto circuito a tierra al presionar este botn.
SEAL DE RELOJ
A pesar de tener un oscilador incorporado, el microcontrolador no puede
funcionar sin componentes externos que estabilizan su funcionamiento y
determinan su frecuencia (velocidad de operacin del microcontrolador).
Dependiendo de los elementos utilizados as como de las frecuencias el
oscilador puede funcionar en cuatro modos diferentes:

LP - Cristal de bajo consumo;


XT - Cristal / Resonador;
HS - Cristal/Resonador de alta velocidad; y
RC - Resistencia / Condensador.

MONTAJE

AUTOMATIZACION INDUSTRIAL

Pgina 3

Para realizar el montaje se necesit de los siguientes implementos:


Un multmetro, tambin denominado polmetro,1 o tester, es un instrumento
elctrico porttil para medir directamente magnitudes elctricas activas
como corrientes y potenciales (tensiones)
o
pasivas
como resistencias,
capacidades y otras. Las medidas pueden realizarse para corriente
continua o alterna y en varios mrgenes de medida cada una. Los
hay analgicos y posteriormente se han introducido los digitales cuya funcin
es la misma (con alguna variante aadida).
Resistencia elctrica a la igualdad de oposicin que tienen los electrones al
desplazarse a travs de un conductor. La unidad de resistencia en el Sistema
Internacional es el ohmio, que se representa con la letra griega omega ().

Una placa de pruebas (en ingls: protoboard o breadboard) es un tablero con


orificios conectados elctricamente entre s, habitualmente siguiendo patrones
de lneas, en el cual se pueden insertar componentes electrnicos y cables
para el armado y prototipo de circuitos electrnicos y sistemas similares. Est
hecho de dos materiales, un aislante, generalmente un plstico, y un conductor
que conecta los diversos orificios entre s.
En electricidad se llama fuente al elemento activo que es capaz de generar
una diferencia de potencial entre sus bornes o proporcionar una corriente
elctrica para que otros circuitos funcionen.
Un led1 (del acrnimo ingls LED, light-emitting diode: diodo emisor de luz; el
plural aceptado por la RAE es ledes2 ) es un componente pasivo y, ms
concretamente, un diodo que emite luz.
El oscilador de cristal se caracteriza por su estabilidad de frecuencia y pureza
de fase, dada por el resonador. La frecuencia es estable frente a variaciones de
la tensin de alimentacin. La dependencia con la temperatura depende del
resonador, pero un valor tpico para cristales de cuarzo es de 0' 005% del valor
a 25 C, en el margen de 0 a 70 C.
AUTOMATIZACION INDUSTRIAL

Pgina 4

Estos osciladores admiten un pequeo ajuste de frecuencia, con un


condensador en serie con el resonador, que aproxima la frecuencia de este, de
la resonancia serie a la paralela. Este ajuste se puede utilizar en los VCO para
modular su salida.

PROCEDIMIENTO

Se realiz el montaje de acuerdo a lo que el profesor dio explicacin en


el tablero posteriormente se mont con todos los implementos ya
mencionados.
Se inici con la medicin de las resistencias al verificar que estuvieran
en buen funcionamiento se mont en la protoboard posteriormente se
instal el micro controlador.

PIC16F877A despus se inici montando cables para puentear


posteriormente se instal la fuente y dio resultado al led alumbrndolo
de forma continua.

SIMULACION EN PROTEUS

Proteus es una compilacin de programas de diseo y simulacin electrnica,


desarrollado por Labcenter Electronics que consta de los dos programas
principales: Ares e Isis, y los mdulos VSM y Electra.
En la simulacin realizada anteriormente en el programa compiler se insert en
el programa proteus realizando as el montaje final para la posterior
programacin del PIC16F877A y as verificar su funcionamiento.

AUTOMATIZACION INDUSTRIAL

Pgina 5

SIMULACION DOS CON 8 LEDS

SIMULACION EN PROTEUS

Proteus es una compilacin de programas de diseo y simulacin electrnica,


desarrollado por Labcenter Electronics que consta de los dos programas
principales: Ares e Isis, y los mdulos VSM y Electra.
En la simulacin realizada anteriormente en el programa compiler se insert en
el programa proteus realizando as el montaje final para la posterior
AUTOMATIZACION INDUSTRIAL

Pgina 6

programacin del PIC16F877A y as verificar su funcionamiento, se utiliz 8


leds de diferente color para el montaje realizando as el siguiente programa.
Tambin fue utilizado resistencias de diferentes ohmios para la realizacin de
este montaje.

SIMULACION
COMPILER

EN

PIC

Al
iniciar
el
procedimiento para la
simulacin
del
micro
controlador
en
el
programa PICC se tuvo en

AUTOMATIZACION INDUSTRIAL

Pgina 7

cuenta lo aprendido en lenguaje c .

La principal ventaja de programarlos en C es la simplicidad, ya que el


compilador se encarga de convertir las instrucciones de C al cdigo
ensamblador

VARIABLES UTILIZADAS

Los vectores son una forma de almacenar datos que permiten contener una
serie de valores del mismo tipo, cada uno de los valores contenidos tiene una
posicin asociada que se usar para accederlos. Est posicin o ndice ser
siempre un nmero entero positivo.
En C la cantidad de elementos que podr contener un vector es fijo, y en
principio se define cuando se declara el vector. Los vectores se pueden
declarar de la siguiente forma:
tipo element nombre[largo];
Esto declara la variable nombre como un vector de tipo_elementos que podr
contener largo cantidad de elementos, y cada uno de estos elemento podr
contener un valor de tipo tipo_elemento.
Por ejemplo:
double valores[128];

La variable FOR Permite ejecutar un grupo de instrucciones de manera


repetitiva, una determinada cantidad de veces.
For (nmero de veces){
Instrucciones;
}
Retardo en milisegundos. Si deseamos hacer un retardo en milisegundos,
debemos incluir Windows y hacer un Sleep, ntese que la S es en mayscula,
sino no funciona.
Delay_ms()
AUTOMATIZACION INDUSTRIAL

Pgina 8

SIMULACION

Un programa codificado en lenguaje c resulta muy til en la aplicacin de micro


controladores, dado que su compilacin es bastante eficiente y ptima
acercndose a la codificacin de lenguaje de mquina. Lo descriptivo de la
sintaxis permite elaborar de mejor forma los algoritmos olvidndose de los
molestos push y pop usados en el lenguaje de mquina cuando se usan saltos
a subrutinas. en la primera parte se plantean elementos genricos de lenguaje
c, pero siempre mirando las posibles aplicaciones con micro controladores.
AUTOMATIZACION INDUSTRIAL

Pgina 9

Tradicionalmente muchos programadores de micro controladores PIC utilizan el


lenguaje ensamblador para realizar sus proyectos, pero en la actualidad existen
compiladores de lenguajes de alto nivel que permiten realizar las mismas
tareas en un menor tiempo de desarrollo y con mucha mayor facilidad en la
programacin. El PCW Compiler es una herramienta til para
Programar micro controladores PIC, en la cual estn incluidas las libreras para
manejar una pantalla LCD, el protocolo de comunicacin serial, manejo de
puertos, etc. En la actualidad el compilador PCW es una herramienta en
desarrollo, poco a poco se han ido adaptando nuevas libreras, nuevos micro
controladores y nuevas ayudas. 2. CARACTERSTICAS DE COMPILADOR
PCW Traduce el cdigo C del archivo fuente (.c) a lenguaje de mquina para
programar micro controladores PIC (.HEX). Se incluye Drivers o libreras de
cdigo fuente para manejo de pantallas LCD, teclados, sensores, protocolos de
comunicacin, memorias, conversin analgico a digital, etc. Se integra al
mdulo de desarrollo IDE del MPLAB (software de desarrollo de Microchip) y
otros simuladores y editores para la depuracin del cdigo fuente. Funciones
para el manejo de interrupciones.
Elementos bsicos
Comentario, este permite la documentacin del cdigo y se usa de acuerdo a la
siguiente sintaxis
/* Este es un comentario */
o
// Este es un comentario
Inicio y fin de bloque, permite agrupar un nmero de instrucciones las que
pueden ser ejecutadas con cierta prioridad. Se usa {para iniciar bloque y } para
finalizar bloque.
{ // Inicio de bloque
// Instrucciones
} // Final de bloque

Identificador, es el nombre que se le da a una variable o funcin por lo general


asociado al tipo de dato que ha de contener la variable o al tipo de
procedimiento que ha de realizar la funcin. Tipo, es una palabra reservada
definida que indica el tipo de variable que se ha de definir y su alcance
numrico, esto de acuerdo a la siguiente tabla:

AUTOMATIZACION INDUSTRIAL

Pgina 10

As, la definicin de las variables se hace usando el tipo y un identificador que


da el nombre de la variable finalizado por un; (punto y coma). Tambin puede
definir varias variables con un solo tipo. En esta caso son separadas por,
(coma) pero siempre se finaliza con; (punto y coma).
char i; // define variable tipo char de 8 bits
char j,i;
float x,r;
long a,b,c,d;
int i,j; // define dos enteros

MANEJO DE DISPLAY

Contador Decimal usando pulsadores y displays de 7 segmentos. Este


proyecto es bsicamente el mismo que el proyecto 2, pero haciendo uso de
una mejor visualizacin para el contador interno, que una vez ms se va a
modificar con un par de pulsadores, uno conectado al pin RB0 y el otro al RB7.
El valor de la variable ser visualizado esta vez en sistema numrico decimal y
no en binario Para esto se utilizaran un par de displays 7 segmentos de nodo
AUTOMATIZACION INDUSTRIAL

Pgina 11

comn como los mostrados en los diagramas de conexiones. Cada display


tiene usualmente 10 pin es para su conexin .Siete de ellos controlan la
visualizacin como tal del dgito, cada uno controlando un segmento del
nmero 8. Vienen identificados por convencin con letras de la a a la g Su
activacin selectiva es la que genera los dgitos del 0 al 9. Otro pin activa o
desactiva el punto decimal y los otros 2, ambos, trabajan como nodo comn.
Dependiendo tambin del modelo existen displays de ctodo comn que son
parecidos a los que ac se van a usar con una diferencia fundamental: el modo
de conexin y alimentacin.

SIMULACION EN PIC COMPILER:

AUTOMATIZACION INDUSTRIAL

Pgina 12

En la simulacin, muestra un indicador de siete segmentos. Contiene siete LED


rectangulares (a - g), en el que cada uno recibe el nombre de segmento porque
forma parte del smbolo que est mostrando. Con un indicador de siete
segmentos se pueden formar los dgitos del 0 al 9, tambin las letras a, c, e y f
y las letras minsculas b y d. Los entrenadores de micro controladores usan a
menudo displays de 7 segmentos para mostrar todos los dgitos del 0 al 9 ms
A, B, C, D y F. Por ejemplo, si queremos representar el nmero de 1 en el
display deberemos poner a ON los leds b y c, y los otros leds deben estar
apagados. Esto lo podemos escribir as 0110000(0). El primer digito representa
al led a, el segundo al b, el tercero al c, y as sucesivamente. Un cero
representa que no polarizamos el led, es decir no le aplicamos tensin. Un uno
representa que el led est polarizado, y por lo tanto, emite luz.

AUTOMATIZACION INDUSTRIAL

Pgina 13

MANEJO DE DISPLAY CON PULSADOR

El microcontrolador tendr conectadas las siguientes entradas:


en RB7 un pulsador
Las salidas sern:
1 display 7 segmentos paralelo de nodo comn, conectado con el segmento b en
RB0 hasta el segmento c conectado a RB6, a travs de resistencias de 220 ohm (en
proteus usen el RX8 es un paquete de resistencias).
RCO Y RC1como salidas.
Operacin
El sistema iniciar accionando el pulsador que est en RB7, con un
conteo ascendente, desde 0 hasta 99, al llegar a 99 debe reiniciarse nuevamente a 0.

AUTOMATIZACION INDUSTRIAL

Pgina 14

Agregamos la librera #include < 16f877A.h > que hace una funcin similar
como un drivers en una PC, pero esta vez entre el PIC y la LCD, y su funciones
ya que todo lo vamos a manejar mediante esta librera.

AUTOMATIZACION INDUSTRIAL

Pgina 15

CONTROL DE SENTIDO PARA AVANCE EN MOTOR DC

HERRAMIENTAS UTILIZADAS:
Para el desarrollo de la prctica se cuenta con dos doble displays de configuracin
nodo comn, el algoritmo original ha sido realizado en el programa PIC C COMPILER
en lenguaje C. Se compil el programa creado a extensin. hex para ser cargado en
PROTEUS y as realizar la respectiva simulacin antes del montaje fsico. La prueba
fsica se realiz en una protoboard utilizando el PIC que se ha trabajado durante las
horas tericas (PIC 16F877A); se requiri adems 14 resistencias de 220 para la
conexin intermedia entre cada pin del PIC y cada segmento del display, y dos
AUTOMATIZACION INDUSTRIAL

Pgina 16

botones pulsadores para cumplir con la funcin de reiniciar, pausar y reanudar. Para el
funcionamiento del circuito se realizan las respectivas conexiones y se alimenta con un
Vcc de 5v.
#include<16f877a.h>; define el PIC que vamos a trabajar.
#fuses; configuramos los fuses del PIC empleado. El PIC 18f877a tiene 9 fuses. XT:
Oscilador XT. Se usa cuando el PIC trabajar con un cristal o resonador de
frecuencias iguales o menores que 4 MHz. NOWDT: El Watchdo es un temporizador
que una vezvez alcanzado su tiempo lmite puede provocar un reset en el pic. NOLVP:
Programacin en bajo voltaje. NOPROTECT: Proteccin del cdigo.
#use delay; definimos el valor del reloj a utilizar.
# use delay( ); se configuran los diferentes puertos definidos como entradas o salidas.
Void main ( ) {}; funcin principal del programa.
While (TRUE) {}; para la funcin principal, cmplase lo siguiente: Se define el nombre
del cdigo como initiation para usar la funcin goto dentro del cdigo. S pause==0,
atienda la interrupcin y muestre el valor guardado en el display cambio==0, muestre
display A, B, C, D; sino muestre C,D,E y F; esto garantiza que el valor del display
queda en stop. S pause==1 se empieza el conteo de tiempo hasta 10min a no ser de
que se active la interrupcin y muestre el dato guardado en el momento de la
secuencia.

El simulador ISIS de Proteus es un poderoso paquete de software, desarrollado por la


compaa labcenter electronics, que se ha posicionado desde hace mas de 10 aos,
como una de las herramientas ms tiles para la simulacin de los micro controladores
PICMicro. El ISIS permite la simulacin de las familias de los PICMicro ms populares
AUTOMATIZACION INDUSTRIAL

Pgina 17

tales como la: 12F, 16F, 18F. Adems de los PIC, el ISIS puede simular una gran
variedad de dispositivos digitales y analgicos, entre los dispositivos digitales es
posible simular displays de siete segmentos, de caracteres, y grficos. ISIS puede
simular sensores de temperatura, humedad, presin, y luminosidad, entre otros. El
simulador permite, simular actuadores como: motores dc, servo motores, luces
incandescentes entre otros. Es posible simular perifricos de entrada y salida como
teclados, y puertos fsicos del ordenador como: RS232, y USB. Este simulador cuenta
con una amplia variedad de instrumentos de medicin como voltmetros,
ampermetros, osciloscopios, y analizadores de seal. En conclusin ests y otras
caractersticas hacen del ISIS de Proteus, una herramienta ideal para el diseo y
estudio de los PICMicro.

DIGITURNO

PUERTO A
RA0 = Pin de Entrada/Salida (TTL).
RA1 = Pin de Entrada/Salida (TTL).
RA2 = Pin de Entrada/Salida (TTL).
RA3 = Pin de Entrada/Salida (TTL).
RA4/TOCKI = Pin de Entrada/Salida o entrada de Reloj Externo para el TMR0,
cuando este pin se configura como salida es de tipo Open Drain (ST), cuando
funciona como salida se debe conectar a Vcc (+5V) a travs de una resistencia.
AUTOMATIZACION INDUSTRIAL

Pgina 18

- PUERTO B
RB0/INT = Pin de Entrada/Salida o entrada de interrupcin externa. (TTL/ST).
RB1 = Pin de Entrada/Salida (TTL).
RB2 = Pin de Entrada/Salida (TTL).
RB3 = Pin de Entrada/Salida (TTL).
RB4 = Pin de Entrada/Salida con Interrupcin por cambio de Flanco (TTL).
RB5 = Pin de Entrada/Salida con Interrupcin por cambio de Flanco (TTL).
RB6 = Pin de Entrada/Salida con Interrupcin por cambio de Flanco (TTL/ST).
RB7 = Pin de Entrada/Salida con Interrupcin por cambio de Flanco (TTL/ST).
- PINES ADICIONALES
MCLR = Pin de Reset del Microcontrolador (Master Clear). Se activa (el pic se
resetea) cuando tiene un "0" lgico en su entrada.
Vss = Ground o Tierra
VDD = Fuente Positiva (+5V)

Contador de Programa:

Este registro, normalmente denominado PC, es totalmente equivalente al de todos los


microprocesadores y contiene la direccin de la prxima instruccin a ejecutar. Se
incrementa automticamente al ejecutar cada instruccin, de manera que la secuencia
natural de ejecucin del programa es lineal, una instruccin despus de la otra.
Algunas instrucciones que llamaremos de control, cambian el contenido del PC
alterando la secuencia lineal de ejecucin. Dentro de estas instrucciones se
encuentran el GOTO y el CALL que permiten cargar en forma directa un valor
constante en el PC haciendo que el programa salte a cualquier posicin de la
memoria. Otras instrucciones de control son los SKIP o salteos condicionales, que
producen un incremento adicional del PC si se cumple una condicin especfica,
haciendo que el programa saltee, sin ejecutar, la instruccin siguiente.
Al resetearse el microprocesador, todos los bits del PC toman valor 1, de manera que
la direccin de arranque del programa es siempre la ultima posicin de memoria de

AUTOMATIZACION INDUSTRIAL

Pgina 19

programa. En esta posicin se deber poner una instruccin de salto al punto donde
verdaderamente se inicia el programa.

A diferencia de la mayora de los microprocesadores convencionales, el PC es


tambin accesible al programador como registro de memoria interna de datos, en la
posicin de 02. Es decir que cualquier instruccin comn que opere sobre registros
puede ser utilizada para alterar el PC y desviar la ejecucin del programa. El uso
indiscriminado de este tipo de instrucciones complica el programa y puede ser muy
peligroso, ya que puede producir comportamientos difciles de predecir. Sin embargo,
algunas de esta instrucciones utilizadas con cierto mtodo, pueden ser muy tiles para
AUTOMATIZACION INDUSTRIAL

Pgina 20

implementar poderosas estructuras de control tales como el goto computado. Como el


microprocesador opera con datos de 8 bits, y la memoria de datos es tambin de 8
bits, estas instrucciones solo pueden leer o modificar los bits 0 a 7 del PC.

AUTOMATIZACION INDUSTRIAL

Pgina 21

Você também pode gostar