Escolar Documentos
Profissional Documentos
Cultura Documentos
INGENIERÍA ELECTRÓNICA
NÚMERO DE LABORATORIO: 1
2019
POTOSÍ-BOLIVIA
OBETIVO
HERRAMIENTAS Y NOMENCLATURA
Las herramientas que se utilizó tanto como software y hadware son las siguientes figuras
mostradas y mencionadas.
● leds
● protoboard
● cables
● pic 16F628A
● quemador de pic
● laptop
● fuente de alimentación
SOFTARE
● proteus
● pic c compiler
NOMENCLATURA
En las 2 primeras imágenes se puede ver los mensajes que te pueden decir si la compilación ha
sido adecuada y sin errores.
En la imagen se puede observar el botón build que está en la opción compile con este botón
comenzamos la compilación de nuestro programa si el programa al apretar este botón no
compila o se traba es una opción alterna apretar el botón compile que se encuentra alado de
build & run aunque puede dar el caso de que compile pero sin percatar de los errores que allá
en la programación.
SIMULACION.-Para simular nuestros proyectos deben hacerse a través del programa proteus se
debe buscar el archivo .HEX en la carpeta donde se halla guardado el proyecto. Al presionar 2
veces clic en la imagen que representa al PIC nos dará una venta de opciones.
En la opción de program
file se presiona el
símbolo de la carpeta en
esta opción elegiremos la carpeta donde se halla guardado el proyecto y se elegirá el archivo
que termine en .HEX este archivo contiene todos los datos requeridos para la simulación de
nuestro programa. En la opción processor Clock Frequency ponemos el valor de la velocidad del
reloj con la que se ejecutara nuestro programa en nuestro caso deberá ser de 4MHZ que
representa al cristal de cuarzo que ira conectado la PIC. Se debe tener gran cuidado de haber
elegido el PIC correcto de acuerdo al nombre de PIC que se introduje en el código básico, si no
coinciden estos la simulación resultara en error.
FUNDAMENTO TEORICO
Un PIC (controlador de interfaz periférico) tiene varios puertos que pueden ser usados como
salidas estas salidas pueden ser utilizadas tanto para activar un led, un relay, un motor, etc.
Saber cómo se deben programar estos puertos es esencial para la programación de un PIC de
igual manera saber cómo se deben usar para su implementación es vital para realizar un
proyecto con estos. El PIC que se usara en estos laboratorios será el PIC 16F628A:
Como se puede observar en la imagen los pines del 1 – 4 del 6 – 13 del 15 – 18 son puertos que
pueden ser usados tanto de salida como de entrada el pin 5 es puerto de alimentación negativa
y el pin 14 es el puerto de alimentación positiva.
Una vez ya conocido los puertos de entrada y salida debemos conocer los pines que son
Entre estos pines va conectado los condensadores en serie con los pines del cristal de cuarzo los
que irán conectados a GND o TIERRA, esta
configuración dará un reloj de tiempo que será
determinado por el valor de HZ que tenga el
cristal de cuarzo.
En la imagen de la izquierda se puede notar el conexionado básico del cristal de cuarzo con los
condensadores, cabe aclarar que los condensadores deben ser cerámicos. En la imagen de la
derecha se puede ver una tabla con los valores de condensadores que se deben poner para
cada tipo de cristal de cuarzo y también se debe tomar en cuenta a la velocidad que se quiere
que trabaje el PIC.
CODIGO BASICO.-Para comenzar a programar PIC’s se debe tener en cuenta que primero se a
de programar las configuración básicas del PIC en esta parte se declara el nombre del PIC el
valor de cristal que ah de llevar, la habilitación o no del MCLR y de las variables a usarcé. El
primer comando a usar es: #include <16F628A.h> en este comando especificamos el PIC que
usaremos. #Fuses INTRC con este comando activamos el oscilador interno del PIC. #Fuses
MCLR con este comando activamos el MCLR que es el reset del PIC. #Fuses NOMCLR en
contra puesta este comando desactiva el MCLR y podemos usar ese pin como cualquier otro.
#use delay (clock=4M) con este comando especificamos el valor del cristal que usaremos en
el circuito como ser el cristal de cuarzo de 4MHZ. #use delay (internal=4M) con este
comando especificamos que no usaremos un cristal de cuarzo en cambio se usara el oscilador
interno del PIC dejando los pines destinados al cristal libres, se debe aclarar que cada tipo de
PIC tiene un oscilador interno diferente se debe revisar su lista de características para saber
cual es su valor.
CODIGO CENTRAL Y DE EJECUCION.-Al momento de programar se tendrá una sección que sera
la central que llevara todo lo que queremos que haga el PIC y la información y tratamiento de
datos que se llevaran acabo. Void Main() { } este comando indica el inicio del programa
principal todo aquello que este dentro de las llaves es el programa principal y tendrá prioridad
sobre otros sub programas que estén en el mismo programa. while (true){ } usamos este
comando para crear un bucle infinito donde se repita una y otra vez los comandos en su interior
este es debido a que el programa principal se repetirá una sola vez sin mas, de esta manera
podremos realizar que nuestro programa se repita varias veces indefinidamente sin
inconvenientes. output_high(pin_b0); este comando pondrá en estado alto o de 1 lógico un
pin, el pin que se nombre dentro de los paréntesis se pondrá en estado alto.
output_low(pin_b0); con este comando ponemos en estado bajo un pin, el pin que este
adentro de los paréntesis se pondrá en estado bajo. delay_ms(1000); este comando
realiza un retardo en el programa, el numero que se especifique dentro del paréntesis sera el
tiempo que esperara antes de continuar con la siguiente instrucción, cabe aclarara que
delay_???? Puede tener varios prefijos pueden ser delay_us que especifica que el número que
está dentro está en microsegundos delay_ms especifica que esta en milisegundos delay_ns
especifica que esta en nano segundos, siguiendo esta lógica delay_ms(1000) especifica que
esperara 1 seg antes de continuar con la siguiente instrucción.
FUNCIONAMIENTO Y TAREA
Ejercicio 1
Un punto de luz avance hasta el medio del extremo A tres veces usando contador, luego el
mismo procedimiento del extremo B.
output_low(pin_b0); output_low(pin_b5);
output_high(pin_b2); output_low(pin_b7); }
delay_ms(500); output_high(pin_b6); }
Ejemplo 2
#Fuses
INTRC,NOMCLR
#use delay
(internal=4M)
void main()
while (true){
output_high(pin_b0); delay_ms(500);
output_high(pin_b7); output_low(pin_b2);
delay_ms(500); output_low(pin_b5);
output_low(pin_b0); output_high(pin_b3);
output_low(pin_b7); output_high(pin_b4);
output_high(pin_b1); delay_ms(500);
output_high(pin_b6); output_low(pin_b3);
delay_ms(500); output_low(pin_b4);
output_low(pin_b1); }
output_low(pin_b6); }
output_high(pin_b2);
El programa funcionando
Ejemplo 3
#include<16F628A.h> output_low(pin_b2);
{ delay_ms(500);
output_high(pin_b3); output_low(pin_b6);
output_high(pin_b4); output_high(pin_b0);
delay_ms(500); output_high(pin_b7);
output_low(pin_b3); delay_ms(500);
output_low(pin_b4); output_low(pin_b0);
output_high(pin_b2); output_low(pin_b7);
output_high(pin_b5); }
delay_ms(500); }
CONCLUSIONES