Você está na página 1de 14

UNIVERSIDAD AUTÓNOMA “TOMAS FRÍAS”

FACULTAD DE ING. TECNOLÓGICA

INGENIERÍA ELECTRÓNICA

NÚMERO DE LABORATORIO: 1

ESTUDIANTE: ERNESTO CONDORI COPA

ASIGNATURA: DISEÑO ELECTRÓNICO ASISTIDO POR COMPUTADORA ETN – 502

DOCENTE: ING. GUNAR RODRIGUEZ

FECHA DE ENTREGA: 29/08/19

2019

POTOSÍ-BOLIVIA
OBETIVO

Aprender el manejo de puertos como salida de un pic (16F628A), el lenguaje y la programación


básica del mismo.

Aprender a usar el programa proteus y pic c compiler.

HERRAMIENTAS Y NOMENCLATURA

Las herramientas que se utilizó tanto como software y hadware son las siguientes figuras
mostradas y mencionadas.

● leds

● resistencias de 220 ohm

● protoboard

● cables
● pic 16F628A

● quemador de pic

● laptop

● fuente de alimentación
SOFTARE
● proteus

● pic c compiler

NOMENCLATURA

PROGRAMACION Y SIMULACION.-Para programar en PIC se debe contar con el programa C-


Compiler que tiene una gran gama de librerías de programación para diversas versiones de
PIC’s de esta manera la forma de programar el un PIC y llevarlo a simulación es: entramos en
file en new y source file y nos pedirá dar el nombre al proyecto nuevo y la ubicación donde
estará guardado. En este carpeta irán almacenados varios archivos que Serán el resultado de la
compilación.
Una vez se tenga el programa completo se realizara la compilación que detectara errores o
fallas en el código si todo el programa esta correcto nos darán los siguientes mensajes.

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

requeridos para el funcionamiento del circuito: 1. PUERTOS DE ENTRADA DEL OSCILADOR.

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.

El MCLR es el pin de reinicio del PIC debe


ser alimentado con VCC y la configuración
con pulsador a GND, esto es debido a que cuando reciba un pulso de GND este reiniciara el PIC
ya que este pin es negado dará un 1 lógico al pin y este reiniciara al PIC.

En la imagen se puede observar el tipo de Configuración de


entrada de lógica positiva Donde todo el tiempo se
introduce un 1 Lógico al pin y cuando se presione el
Pulsador se introducirá un 0 lógico al PIC.

Un PIC puede ser programado en varios leguajes de programación en la materia utilizaremos el


lenguaje en C++ que fue aprendido en materias anteriores. Utilizaremos el compilador C-
Compiler debido a su facilidad de manejo y fácil instalación, también utilizaremos para las
pruebas y simulación el programa PROTEUS que simula circuitos electrónicos en forma virtual y
será la primera base para realizar las pruebas.

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.

#include <16F628A.h> #use delay void Main()


(internal=4M)
#fuses INTRC, NOMCLR {
int j,i; output_low(pin_b2); delay_ms(500);

for ( i=0; i<3;i++){ output_high(pin_b3); output_low(pin_b6);

output_high(pin_b0); delay_ms(500); output_high(pin_b5);

delay_ms(500); output_low(pin_b3);} delay_ms(500);

output_low(pin_b0); output_low(pin_b5);

output_high(pin_b1); for (j=0; j<3; j++){ output_high(pin_b4);

delay_ms(500); output_high(pin_b7); delay_ms(500);

output_low(pin_b1); delay_ms(500); output_low(pin_b4);

output_high(pin_b2); output_low(pin_b7); }

delay_ms(500); output_high(pin_b6); }

Ejemplo 2

Un punto del extremo A aparesca simultaneamente tambien en el punto B y avancen ambos


simultaneamente hasta encontrarse y desaparesca.
Codigo

#include <16F628A.h> output_high(pin_b5);

#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

Lo mismo que el ejemplo 2, pero ahora inicia de la mitad

#include<16F628A.h> output_low(pin_b2);

#fuses INTRC,NOMCLR output_low(pin_b5);

#use delay (internal=4M) output_high(pin_b1);

void main() output_high(pin_b6);

{ delay_ms(500);

while (true){ output_low(pin_b1);

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

● verificar bien antes de hacer el conexionado de voltaje y tierra, porque si se hace la


conexión al reves podriamos quemar el pic.
● Tener en cuenta que el anodo del led es positivo y se hace la conexión con la resistencia,
y el catodo a tierra.
● Se podria usar cualquier puerto como salida, en nuestro caso usamos el puerto b con 8
pines.
● Pudimos observar que si alimentamos con un voltaje inferior de 4.5 voltios la secuencia
de leds no enciende, se recomienda usar 5 voltios.

Você também pode gostar