Вы находитесь на странице: 1из 45

Manual de prcticas de Microcontroladores

PIC16F84
Introduccin.
El C PIC16F84 de Microchip Technology Inc. Es uno de los microcontroladores ms
utilizados en proyectos electrnicos pequeos. A diferencia de versiones ms avanzadas
como el igualmente popular PIC16F87x, el PIC16F84 carece de convertidor A/D, PWM,
comunicacin serial por hardware y tiene menos memoria y puertos (conjuntos de lneas de
datos) disponibles. Sin embargo, su fcil uso, precio reducido, lo han convertido en un C
muy popular y el favorito en un gran rango de aplicaciones. A pesar de que este C no
posee, muchas de las caractersticas que este C no posee pueden ser implementadas por
software. El C PIC16F84, o su versin actual el C PIC16F84A pertenece a la familia de
Microchip de microcontroladores de rango medio de 8 bits con 18 pines. Como se muestra
en la figura, este tiene 13 lneas de entrada/salida (RA0RA5, RB0RB7) con tecnologa
TTL/CMOS, es decir, 5V para un estado lgico 1 y 0V para el estado 0. Requiere un
oscilador externo de hasta 20 MHz. Cambios de estado en las lneas RB4 a RB7 del puerto
B. Flanco de subida o bajada en la lnea RB0/INT del puerto B.

Esfuerzo y dedicacin

Elaboro: Ing. Jess Cabrera Garca

Manual de prcticas de Microcontroladores


Prctica N1: Sistema binario basado en microcontrolador 16F84A.

Objetivo:
Implementar el circuito mnimo basado en microcontrolador 16F84A para el desarrollo de
varias aplicaciones didcticas. Adems deber leer un dato de 5 bits por el puerto A y
enviarlo a travs del puerto B.
Material:
.- 1 microcontrolador 16F84A.
.- 1 CRYSTAL de 4MHz
.- 6 resistencias de 1k.
.- 5 resistencias de 220.
.- 2 C de 33pF.
.- 1 C de 100 pF.
.- 1 push button.
.- 5 Leds
.- 1 dip swich de 8 lneas.
.- 1 Fuente de voltaje 5 Volts
.-1 Programador de microcontroladores
.-1 software PICC.

Esfuerzo y dedicacin

Elaboro: Ing. Jess Cabrera Garca

Manual de prcticas de Microcontroladores


PROCEDIMIENTO:

1) Armar el siguiente circuito elctrico basado en microcontrolador 16F84A, adems


conectar un dip switch en el puerto A con sus respectivas resistencias y conectar 5
LEDs en el puerto B.

Componentes:
.- pic16f814a.
.- crystal.
.- cap.
.- dipsw8.
.- led-green.
.- button.

Esfuerzo y dedicacin

Elaboro: Ing. Jess Cabrera Garca

Manual de prcticas de Microcontroladores


Software PICC

Abrir en compilador picc. New->Project Wizard

Dar click en OK en las ventanas que nos aparezcan.

Crear una carpeta con el nombre de prctica 1 y guardar el archivo con el nombre de
Binario.

Esfuerzo y dedicacin

Elaboro: Ing. Jess Cabrera Garca

Manual de prcticas de Microcontroladores


Aparecer el rea de trabajo de la siguiente manera.

Como se puede observar trae preestablecidas las configuraciones, hay que borrar todo y
comenzar a programar.

El primer paso es escribir que tipo de microcontrolador se va a utilizar.

#include<16f84A.h>.
Con este comando se le est ordenando a compilador que incluya la librera de dicho
C.

Segundo paso es escribir los tipos de fuses que el C va a utilizar

#fuses NOWDT, XT.


NOWDT: no se utilizar el watch dog timer.
XT: utilizar un cristal oscilador de 4Mhz.

Esfuerzo y dedicacin

Elaboro: Ing. Jess Cabrera Garca

Manual de prcticas de Microcontroladores


Si se dese saber que tipos de #fuses utiliza un C, en el compilador en el la barra de
mens View->Valid Fuses.
elegir los tipos de Fuses que se necesite

Tercer paso es programar el tipo de crystal se va autilizar.

#use delay(cock = 4Mhz).

En este caso se va a utilizar un cristal de 4Mhz, ya que no se requiere de altas


velocidades.

Esfuerzo y dedicacin

Elaboro: Ing. Jess Cabrera Garca

Manual de prcticas de Microcontroladores

Como la prctica indica que el puerto A ser de entrada y en ella se leern los
bits. El puerto B ser de Salida y en ella se escribirn los bits, el desarrollo de la
programacin queda de la siguiente manera:

#include<16f84a.h>
#fuses NOWDT, XT
#use delay(clock = 4Mhz)

El void main() es el programa principal hay que abrir una llave.

void main(){

El while sirve para que el programa siempre est funcionando y se repita el


proceso y abrir una llave.

while(TRUE){

Comenzar con la primera condicionante que es, si en la entrada del bit A0 es


igual a un 1 lgico (5V), que se encienda el bit B0.

if(input(pin_A0) == 1){
output_high(pin_B0);
}

Caso contrario que el bit B0 este apagado.

else
output_low(pin_B0);

Segunda condicionante, si en la entrada del bit A1 es igual a un 1 lgico (5V),


que se encienda el bit B1.

if(input(pin_A1) == 1){
output_high(pin_B1);
}

Caso contrario que el bit B1 este apagado.

else
output_low(pin_B1);

Esfuerzo y dedicacin

Elaboro: Ing. Jess Cabrera Garca

Manual de prcticas de Microcontroladores

Tercera condicionante, si en la entrada del bit A2 es igual a un 1 lgico (5V),


que se encienda el bit B2.

if(input(pin_A2) == 1){
output_high(pin_B2);
}

Caso contrario que el bit B2 este apagado.

else
output_low(pin_B2);

Cuarta condicionante, si en la entrada del bit A3 es igual a un 1 lgico (5V), que


se encienda el bit B3.

if(input(pin_A3) == 1){
output_high(pin_B3);
}

Caso contrario que el bit B3 este apagado.

else
output_low(pin_B3);

Quinta y ltima condicionante, si en la entrada del bit A4 es igual a un 1 lgico


(5V), que se encienda el bit B4.

if(input(pin_A4) == 1){
output_high(pin_B4);
}

Caso contrario que el bit B4 este apagado.

else
output_low(pin_B4);

Finalizar el programa cerrando las llaves del while y el voin main().

}
}

Esfuerzo y dedicacin

Elaboro: Ing. Jess Cabrera Garca

Manual de prcticas de Microcontroladores


El programa queda de la siguiente manera

Esfuerzo y dedicacin

Elaboro: Ing. Jess Cabrera Garca

Manual de prcticas de Microcontroladores


Compilar en programa para ver que no existan errores y se pueda generar el .exe que
llevar grabado el microcontrolador.

En la barra de mens Compile->Build All

Como se puede observar no existe ningn error, eso quiere decir que hemos programado
bien, en caso de que el compilador marcara un error, habra que revisar nuevamente la
programacin y detectar el error, una vez corregido los errores, compilar nuevamente el
programa.

Esfuerzo y dedicacin

Elaboro: Ing. Jess Cabrera Garca

Manual de prcticas de Microcontroladores


En la carpeta que se cre para guardar en programa de Binario, se encuentra un archivo
.exe, para este caso en la simulacin de ISIS PROTEUS, dar doble click en el
microcontrolador y en la opcin de program File, buscar la direccin de programa
binario y elegir el archivo binario.exe.

Por default el microcontrolador en la opcin de Processor Configuration Word, trae el


crystal de 1Mhz, de acuerdo a la programacin se utiliz un crystal de 4Mhz, hay que
modificar el valor.

Esfuerzo y dedicacin

Elaboro: Ing. Jess Cabrera Garca

Manual de prcticas de Microcontroladores


Simulacin y programacin

Introducir en el puerto A en binario 10101 y observar la salida en el puerto B.

Realizar diferentes combinaciones en binario.

Esfuerzo y dedicacin

Elaboro: Ing. Jess Cabrera Garca

Manual de prcticas de Microcontroladores


Prctica N2: Contador 0-9.

Objetivo:
Desarrollar un programa para el microcontrolador 16F84A de tal forma que si en la entrada
del bit A0 hay un 1 lgico (5V), en el puerto B se muestre el conteo de 0 - 9.
Material:
.- 1 microcontrolador 16F84A.
.- 1 CRYSTAL de 4MHz
.- 7 resistencias de 10K.
.- 1 resistencias de 1k.
.- 7 resistencias de 220.
.- 2 C de 33pF.
.- 1 C de 100 pF.
.- 1 push button.
.- display de 7 segmentos ctodo comn.
.- 1 Fuente de voltaje 5 Volts
.-1 Programador de microcontroladores
.-1 software PICC.

Esfuerzo y dedicacin

Elaboro: Ing. Jess Cabrera Garca

Manual de prcticas de Microcontroladores


INTRODUCCIN
El displays de 7 segmentos, es un componente que se utiliza para la representacin de
nmeros en muchos dispositivos electrnicos.
Cada vez es ms frecuente encontrar LCDs en estos equipos (debido a su bajsima
demanda de energa), todava hay muchos que utilizan el display de 7 segmentos por su
simplicidad.
Este elemento se ensambla o arma de manera que se pueda activar cada segmento
(diodo LED) por separado logrando de esta manera combinar los elementos y
representar todos los nmeros en el display (del 0 al 9).
El display de 7 segmentos ms comn es el de color rojo, por su facilidad de
visualizacin. Cada elemento del display tiene asignado una letra que identifica su
posicin en el arreglo del display. Ver el grfico arriba

Ejemplos:
- Si se activan todos los segmentos se forma el nmero "8".
- Si se activan solo los segmentos: "a, b, c, d, e, f," se forma el nmero "0".
- Si se activan solo los segmentos: "a, b, g, e, d," se forma el nmero "2".
- Si se activan solo los segmentos: "b, c, f, g," se forma el nmero "4".
- p.d. representa el punto decimal.

Esfuerzo y dedicacin

Elaboro: Ing. Jess Cabrera Garca

Manual de prcticas de Microcontroladores


El display nodo comn

En el display nodo comn, todos los nodos de los diodos LED unidos y conectados a
la fuente de alimentacin. En este caso para activar cualquier elemento hay que poner el
ctodo del elemento a tierra a travs de una resistencia para limitar la corriente que pasa
por el elemento.

El display ctodo comn

El display ctodo comn tiene todos los nodos de los diodos LED unidos y conectados
a tierra. Para activar un segmento de estos hay que poner el nodo del segmento a
encender a Vcc (tensin de la fuente) a travs de una resistencia para limitar el paso de
la corriente

Tambin hay display alfanumricos que permiten representar tanto letras como nmeros

Esfuerzo y dedicacin

Elaboro: Ing. Jess Cabrera Garca

Manual de prcticas de Microcontroladores


PROCEDIMIENTO:

Armar el siguiente circuito elctrico en ISIS PROTEUS, basado en el microcontrolador


16F84A, conectar un botn en el bit A0 del puerto A y el display de 7 segmentos debe de ir
conectado en el puerto B.

Esfuerzo y dedicacin

Elaboro: Ing. Jess Cabrera Garca

Manual de prcticas de Microcontroladores


Software PICC

Abrir en compilador picc. New->Project Wizard

Dar click en OK en las ventanas que nos aparezcan.

Crear una carpeta con el nombre de prctica 2 y guardar el archivo con el nombre de
Contador 0-9.

Esfuerzo y dedicacin

Elaboro: Ing. Jess Cabrera Garca

Manual de prcticas de Microcontroladores


Aparecer el rea de trabajo de la siguiente manera.

Como se puede observar trae preestablecidas las configuraciones, hay que borrar todo y
comenzar a programar.

El primer paso es escribir que tipo de microcontrolador se va a utilizar.

#include<16f84A.h>.
Con este comando se le est ordenando a compilador que incluya la librera de dicho
C.

Segundo paso es escribir los tipos de fuses que el C va a utilizar

#fuses NOWDT, XT.


NOWDT: no se utilizar el watch dog timer.
XT: utilizar un cristal oscilador de 4Mhz.

Esfuerzo y dedicacin

Elaboro: Ing. Jess Cabrera Garca

Manual de prcticas de Microcontroladores


Si se dese saber que tipos de #fuses utiliza un C, en el compilador en el la barra de
mens View->Valid Fuses.

Elegir los tipos de Fuses que se necesite

Tercer paso es programar el tipo de crystal se va autilizar.

#use delay(cock = 4Mhz).

En este caso se va a utilizar un cristal de 4Mhz, ya que no se requiere de altas


velocidades.

Esfuerzo y dedicacin

Elaboro: Ing. Jess Cabrera Garca

Manual de prcticas de Microcontroladores

La prctica indica que el el bit A0 del puerto A ser de entrada y si existe un 1


lgico (5V), En el puerto B se debe visualizar los nmeros, el desarrollo de la
programacin queda de la siguiente manera:

#include<16f84a.h>
#fuses NOWDT, XT
#use delay(clock = 4Mhz)

A diferencia de la prctica N1 antes del void main(), hay que declarar un vector
llamado nmero[], dentro del vector debe de ir las siguientes combinaciones.

Como cada lnea es un diodo led:


Para dibujar el cero
Diodo led
a
b
c
d
e
f
g

Estado
1
1
1
1
1
1
0

Binario =
001111111

Para dibujar el uno


Diodo led
a
b
c
d
e
f
g

Estado
0
1
1
0
0
0
0

Esfuerzo y dedicacin

Binario =
00000110

Elaboro: Ing. Jess Cabrera Garca

Manual de prcticas de Microcontroladores

Para dibujar el 2
Diodo led
a
b
c
d
e
f
g

Estado
1
1
0
1
1
0
1

Binario =
01011011

Para dibujar el 3
Diodo led
a
b
c
d
e
f
g

Estado
1
1
1
1
0
0
1

Binario =
01001111

Para dibujar el 4
Diodo led
a
b
c
d
e
f
g

Estado
0
1
1
0
0
1
1

Esfuerzo y dedicacin

Binario =
01100110

Elaboro: Ing. Jess Cabrera Garca

Manual de prcticas de Microcontroladores


Para dibujar el 5
Diodo led
a
b
c
d
e
f
g

Estado
1
0
1
1
0
1
1

Binario =
01101101

Para dibujar el 6
Diodo led
a
b
c
d
e
f
g

Estado
1
0
1
1
1
1
1

Binario =
01111101

Para dibujar el 7
Diodo led
a
b
c
d
e
f
g

Estado
1
1
1
0
0
0
0

Esfuerzo y dedicacin

Binario =
00000111

Elaboro: Ing. Jess Cabrera Garca

Manual de prcticas de Microcontroladores


Para dibujar el 8
Diodo led
a
b
c
d
e
f
g

Estado
1
1
1
1
1
1
0

Binario =
01111111

Para dibujar el 9
Diodo led
a
b
c
d
e
f
g

Estado
1
1
1
1
0
1
1

Binario =
01101111

Combinaciones obtenidas

Nmero
0
1
2
3
4
5
6
7
8
9

Binario
00111111
00000110
01011011
01001111
01100110
01101101
01111101
00000111
01111111
01101111

Esfuerzo y dedicacin

Bits a programar en el puerto B

Nmero
0
1
2
3
4
5
6
7
8
9

B7
0
0
0
0
0
0
0
0
0
0

B6
0
0
1
1
1
1
1
0
1
1

B5
1
0
0
0
1
1
1
0
1
1

Puerto B
B4 B3 B2
1
1
1
0
0
1
1
1
0
0
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
1
1
0
1
1

B1
1
1
1
1
1
0
0
1
1
1

Elaboro: Ing. Jess Cabrera Garca

B0
1
0
1
1
0
1
1
1
1
1

Manual de prcticas de Microcontroladores


En la programacin se puede manejar los nmeros binarios, pero tambin se puede
manejar nmero en hexadecimal.
Ejemplo:
SISTEMA NUMRICO

Decimal
10
15

Binario
0b00001010
0b00001111

hexadecimal
0x0A
0x0F

El siguiente paso es convertir de binario (0b) a hexadecimal (0x) las combinaciones


obtenidas.
El Software PICC tiene un convertidor numrico, en la barra de mens Tools->Numeric
Converter.

Esfuerzo y dedicacin

Elaboro: Ing. Jess Cabrera Garca

Manual de prcticas de Microcontroladores


En la ventana de Convert en la casilla de Binary escribir las combinaciones obtenidas y
automticamente en la casilla de Hex aparecern los nmeros en hexadecimal.
En la siguiente tabla se muestran las conversiones obtenidas:

Decimal
0
1
2
3
4
5
6
7
8
9

Binario
0b00111111
0b00000110
0b01011011
0b01001111
0b01100110
0b01101101
0b01111101
0b00000111
0b01111111
0b01101111

hexadecimal
0x3f
0x06
0x5b
0x4f
0x66
0x6d
0x7d
0x07
0x7f
0x6f

El vector a programar quedar de la siguiente manera


int8 numero[] = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f};

El void main() es el programa principal hay que abrir una llave.

void main(){

El while sirve para que el programa siempre est funcionando y se repita el


proceso y abrir una llave.

while(TRUE){

De acuerdo con la prctica, hay que hacer una condicionante, si en la entrada del
bit A0 hay un 1 lgico (5V), al mismo tiempo abrir una llave {.

if(input(pin_A0) == 1){

Esfuerzo y dedicacin

Elaboro: Ing. Jess Cabrera Garca

Manual de prcticas de Microcontroladores

Se realiza un ciclo llamado for y se inicializa una variable llamada i = 0.


for(i = 0; i < 10; i++){
output_b(numero[i]);
delay_ms(500);
}

checa 0 es menor que 10, y al mismo tiempo incrementa la variable i = 1.


Como 0 es menor que 10 manda a imprimir en el puerto B el vector numero en
su posicin 0.
output_b(numero[0]);
En el siguiente ciclo la variable i = 1, checa si 1 es menor que 10 y al mismo
tiempo incrementa la variable i = 2.
Como 1 es menor que 10 manda a imprimir en el puerto B el vector nmero en
su posicin 1.
output_b(numero[1]);
.
.
.

El programa sigue ciclando hasta llegar al nmero 9.

Finalizar el programa cerrando las llaves del if, while y el voin main().

}
}
}

Esfuerzo y dedicacin

Elaboro: Ing. Jess Cabrera Garca

Manual de prcticas de Microcontroladores

El programa queda de la siguiente manera

Compilar en programa para ver que no existan errores y se pueda generar el .exe que
llevar grabado el microcontrolador.

En la barra de mens Compile->Build All

Esfuerzo y dedicacin

Elaboro: Ing. Jess Cabrera Garca

Manual de prcticas de Microcontroladores

Como se puede observar no existe ningn error, eso quiere decir que hemos programado
bien, en caso de que el compilador marcara un error, habra que revisar nuevamente la
programacin y detectar el error, una vez corregido los errores, compilar nuevamente el
programa.

En la carpeta que se cre para guardar en programa de Binario, se encuentra un archivo


.exe, para este caso en la simulacin de ISIS PROTEUS, dar doble click en el
microcontrolador y en la opcin de program File, buscar la direccin de programa
binario y elegir el archivo binario.exe.

Esfuerzo y dedicacin

Elaboro: Ing. Jess Cabrera Garca

Manual de prcticas de Microcontroladores


Por default el microcontrolador en la opcin de Processor Configuration Word, trae el
crystal de 1Mhz, de acuerdo a la programacin se utiliz un crystal de 4Mhz, hay que
modificar el valor.

Esfuerzo y dedicacin

Elaboro: Ing. Jess Cabrera Garca

Manual de prcticas de Microcontroladores


Simulacin y programacin

Oprimir el botn que se encuentra en el bit A0 y ver como comienza el conteo de 0 -9


en la salida en el puerto B.

Esfuerzo y dedicacin

Elaboro: Ing. Jess Cabrera Garca

Manual de prcticas de Microcontroladores


Prctica N3: Control de giro de un motor de CD.

Objetivo:
Controlar del giro de un motor de CD con el microcontrolador 18F84A y el circuito
integrado L293D puente H.

Material:
.- 1 microcontrolador 16F84A.
.- 1 CRYSTAL de 4MHz
.- 4 resistencias de 1k.
.- 2 C de 33pF.
.- 1 C de 100 pF.
.- 4 push button.
.- Motor de CD.
.- CI L293D.
.- 1 Fuente de voltaje 5 Volts
.- 1 Fuente de voltaje de 12Volts
.-1 Programador de microcontroladores
.-1 software PICC.

Esfuerzo y dedicacin

Elaboro: Ing. Jess Cabrera Garca

Manual de prcticas de Microcontroladores


INTRODUCCIN

El integrado L293D incluye cuatro circuitos para manejar cargas de potencia media, en
especial pequeos motores y cargas inductivas, con la capacidad de controlar corriente
hasta 600 mA en cada circuito y una tensin entre 4,5
V a 36 V.
Los circuitos individuales se pueden usar de manera
independiente para controlar cargas de todo tipo y, en
el caso de ser motores, manejar un nico sentido de
giro. Pero adems, cualquiera de estos cuatro circuitos
sirve para configurar la mitad de un puente H.
El integrado permite formar, entonces, dos puentes H completos, con los que se puede
realizar el manejo de dos motores. En este caso el manejo ser bidireccional, con
frenado rpido y con posibilidad de implementar fcilmente el control de velocidad.

Diagrama interno

Esfuerzo y dedicacin

Elaboro: Ing. Jess Cabrera Garca

Manual de prcticas de Microcontroladores


En la tabla de funcionamiento que sigue se puede observar los niveles TTL que
corresponden a cada situacin de trabajo:

Ejemplo de circuito en forma de puente H (para control bidireccional del motor) y su


tabla de manejo

Esfuerzo y dedicacin

Elaboro: Ing. Jess Cabrera Garca

Manual de prcticas de Microcontroladores


PROCEDIMIENTO:

Al accionar el botn 1 el motor debe de girar en sentido a las manecillas del reloj.
Al accionar el botn 2 el motor debe de girar en sentido contrario a las manecillas
del reloj.
Al accionar el botn 3 el motor debe de quedar inmvil.

Armar el siguiente circuito elctrico basado en microcontrolador 16F84A.


Componentes:
.- pic16f814a.

.- motor.

.- crystal.

.- L293D.

.- cap.
.- dipsw8.
.- res
.- button.

Esfuerzo y dedicacin

Elaboro: Ing. Jess Cabrera Garca

Manual de prcticas de Microcontroladores

Software PICC

Abrir en compilador picc. New->Project Wizard

Dar click en OK en las ventanas que nos aparezcan.

Crear una carpeta con el nombre de prctica 3 y guardar el archivo con el nombre de
motor-L293D.

Esfuerzo y dedicacin

Elaboro: Ing. Jess Cabrera Garca

Manual de prcticas de Microcontroladores

Aparecer el rea de trabajo de la siguiente manera.

Como se puede observar trae preestablecidas las configuraciones, hay que borrar todo y
comenzar a programar.

El primer paso es escribir que tipo de microcontrolador se va a utilizar.

#include<16f84A.h>.
Con este comando se le est ordenando a compilador que incluya la librera de dicho
C.

Segundo paso es escribir los tipos de fuses que el C va a utilizar

#fuses NOWDT, XT.


NOWDT: no se utilizar el watch dog timer.
XT: utilizar un cristal oscilador de 4Mhz.

Esfuerzo y dedicacin

Elaboro: Ing. Jess Cabrera Garca

Manual de prcticas de Microcontroladores

Si se dese saber que tipos de #fuses utiliza un C, en el compilador en el la barra de


mens View->Valid Fuses.
elegir los tipos de Fuses que se necesite

Tercer paso es programar el tipo de crystal se va a utilizar.

#use delay(cock = 4Mhz).

En este caso se va a utilizar un cristal de 4Mhz, ya que no se requiere de altas


velocidades.

Esfuerzo y dedicacin

Elaboro: Ing. Jess Cabrera Garca

Manual de prcticas de Microcontroladores

En esta prctica definiremos los nombres de los bits de entrada (A0, A1 y A2) y
salida (B0, B1, B2), para ello se utiliza el siguiente cdigo.

#DEFINE boton_1 pin_A0.-> el pin A0 se llamara botn_1


#DEFINE boton_2 pin_A1..> el pin A1 se llamara botn_2
#DEFINE boton_3 pin_A2-> el pin A2 se llamara botn_2
#DEFINE In1 pin_B0 -> el pin B0 se llamara In1
#DEFINE In2 pin_B1 -> el pin B1 se llamara In2
#DEFINE En1 pin_B2..-> el pin B2 se llamara En1

Como la prctica indica que el puerto A ser de entrada donde estarn los 3
botones. El puerto B ser de Salida, el desarrollo de la programacin queda de la
siguiente manera:

#include<16f84a.h>
#fuses NOWDT, XT
#use delay(clock = 4Mhz)
#DEFINE boton_1 pin_A0
#DEFINE boton_2 pin_A1
#DEFINE boton_3 pin_A2
#DEFINE In1 pin_B0
#DEFINE In2 pin_B1
#DEFINE En1 pin_B2

El void main() es el programa principal hay que abrir una llave.

void main(){

El while sirve para que el programa siempre est funcionando y se repita el


proceso y abrir una llave.

while(TRUE){

Esfuerzo y dedicacin

Elaboro: Ing. Jess Cabrera Garca

Manual de prcticas de Microcontroladores


Comenzar con la primera condicionante, si botn_1 es igual a un 1 lgico
(5V), que este en alto In1, en bajo In2 y en alto En1, esto es de acurdo a la tabla.

Para que el motor gire en sentido de las manecillas del reloj.

if(input(boton_1) == 1){
output_high(In1);
output_low(In2);
output_high(En1);
}

La segunda condicionante, si botn_2 es igual a un 1 lgico (5V), que


este en bajo In1, en alto In2 y en alto En1, esto es de acurdo a la tabla.

Para que el motor gire en sentido contrario a las manecillas del reloj.

if(input(boton_2) == 1){
output_low(In1);
output_high(In2);
output_high(En1);
}

Esfuerzo y dedicacin

Elaboro: Ing. Jess Cabrera Garca

Manual de prcticas de Microcontroladores


La tercera y ltima condicionante, si botn_3 es igual a un 1 lgico (5V),
que este en bajo In1, en bajo In2 y en alto En1, esto es de acurdo a la tabla.
Para que el motor este en modo esttico.

if(input(boton_3) == 1){
output_low(In1);
output_low(In2);
output_high(En1);
}

Finalizar el programa cerrando las llaves del while y el voin main().

}
}
El programa queda de la siguiente manera

Esfuerzo y dedicacin

Elaboro: Ing. Jess Cabrera Garca

Manual de prcticas de Microcontroladores


Compilar en programa para ver que no existan errores y se pueda generar el .exe que
llevar grabado el microcontrolador.

En la barra de mens Compile->Build All

Como se puede observar no existe ningn error, eso quiere decir que hemos programado
bien, en caso de que el compilador marcara un error, habra que revisar nuevamente la
programacin y detectar el error, una vez corregido los errores, compilar nuevamente el
programa.

En la carpeta que se cre para guardar en programa de Motor-l293D, se encuentra un


archivo .exe, para este caso en la simulacin de ISIS PROTEUS, dar doble click en el
microcontrolador y en la opcin de program File, buscar la direccin de programa
binario y elegir el archivo binario.exe.

Esfuerzo y dedicacin

Elaboro: Ing. Jess Cabrera Garca

Manual de prcticas de Microcontroladores


Por default el microcontrolador en la opcin de Processor Configuration Word, trae el
crystal de 1Mhz, de acuerdo a la programacin se utiliz un crystal de 4Mhz, hay que
modificar el valor.

Esfuerzo y dedicacin

Elaboro: Ing. Jess Cabrera Garca

Manual de prcticas de Microcontroladores


Simulacin y programacin

Oprimir el botn 1 para que el motor comience a girar en sentido de las


manecillas del reloj.

Oprimir el botn 2 para que el motor comience a girar en sentido contrario a las
manecillas del reloj.

Oprimir el botn 3 para que el motor si se encuentra girando se detenga.

Esfuerzo y dedicacin

Elaboro: Ing. Jess Cabrera Garca

Manual de prcticas de Microcontroladores

Esfuerzo y dedicacin

Elaboro: Ing. Jess Cabrera Garca

Manual de prcticas de Microcontroladores

BIBLIOGRAFIA CONSULTADA

Microcontrolador 16f84
http://akizukidenshi.com/download/PIC16F84A.pdf

Display de 7 segmentos
http://unicrom.com/Tut_display-7-segmentos.asp

L293D
http://robots-argentina.com.ar/MotorCC_L293D.htm

Esfuerzo y dedicacin

Elaboro: Ing. Jess Cabrera Garca

Вам также может понравиться