Sunteți pe pagina 1din 8

Taller de Microcontroladores

Abstracto En el siguiente informe se da a conocer la tarea nmero seis del mdulo de Taller de Microcontroladores. En
el cual se trabaja con el microcontrolador PIC16F84A en lenguaje Assembler, en el cual se hablara del manejo de un
display siete segmentos ctodo comn, utilizado como un contador desde cero a nueve con una tardanza de un segundo.

Palabras claves PIC16F84A, secuencia, display, retardo, Assembler.

I. INTRODUCCIN
A medida que vamos adquiriendo nuevos conocimientos, nos damos cuenta de las cosas que posiblemente nos tocar ver en
nuestros futuros trabajos como Ingenieros, en este caso, la visualizacin de un display de 7 segmentos de ctodo comn para
indicar un contador de 0 a 9 con un retardo de 1 segundo, en el segundo caso la diferencia es que tiene un switch que hace que
la cuenta se resetee.

II. PROBLEMA A RESOLVER
El problema propuesto para el proyecto final de taller de microcontroladores consiste en la realizacin de un sistema de
seguridad el cual consta de una cmara que se encuentra en movimiento constantemente y al detectar, por ejemplo, que se abre
un puerta la cmara enfocara en direccin de sensor activado, encendiendo una alarma y una baliza. Todo esto se efectua en
base a la programacin de un Arduino Uno y un microcontrolador Attiny 2313. Adems

III. DESARROLLO
La programacin para ambos problemas se realiza directamente en Proteus en la pestaa Source Code que permite la
inclusin del PIC16F84A y de esta forma ahorrarse algunos direccionamientos de registros como los STATUS, TRISX,
PORTX, etc. No as de los registros de propsito general ya que estos si deben ubicarse en sus respectivas direcciones en el
mapa de memoria.

Los registros a usar son los siguientes:

STATUS: Para cambiar de banco.
clrf: Para direccionar el puerto B como salida.
TRISC: Para direccionar los pines de los puertos A como entrada.
PORTC: Para encender los segmentos.
TMR0: Para poder ejecutar el retardo.
Propsito General: Para declarar variables para el retardo.

IV. FUNCIONAMIENTO DEL PROGRAMA COMPILADO
El programa propuesto para la solucin del problema expuesto es el que se muestra en la figura 1, en el cual lo primero que
se realiza es incluir el microcontrolador que se programar, se usa #include porque de esta manera se evita tener que
direccionar algunos registros como STATUS o PORTX. Luego se declara f, w, cont_x y se le da la direccin del timer,
indefinida, y de propsito general respectivamente.
Se inicia el algoritmo direccionando todo el puerto B como salida, que ser donde se conectar el display de 7 segmentos
que actuar como contador, para realizar esta accin se debe realizar un cambio al banco 1que es donde se puede utilizar el
registro TRISX, y para luego volver al banco 0 para establecer los estados altos con PORTX. Se da inicio al ciclo que es el que
generar la secuencia del contador, donde se le designan los determinados pines del puerto B que estarn en alto para generar
los nmeros desde el 0 al 9 luego de un retardo (se ver ms adelante). Esto se logra de acuerdo a que cada segmento del
display est conectado a un pin del puerto c como se muestra en la figura 2 por lo que determinar que pines se encendern es de
suma importancia para poder visualizar de manera correcta los nmeros.



Figura 1, Conexin bit a bit del display de 7 segmentos al puerto B.



Por lo tanto para visualizar un 5 se debe designar 0x6D en el sistema hexadecimal.

El retardo es la parte ms importante del algoritmo ya que es el que nos permitir visualizar la secuencia del contador ya que
la velocidad de esta es tan rpida que es imperceptible al ojo humano. Este retardo consiste en asignarle valores a los contadores
y luego comenzar a decrementarlos, esto provoca una demora por la cantidad de instrucciones que se ejecutan al hacer el
decremento y la comparacin que realiza para analizar si contina decrementando un contador u otro.



Figura 2, diagrama de flujo del programa 1.


Figura 3. Programa hecho en el editor de cdigo de proteus.


Para el segundo caso lo que se pide es que el contador se resetee al presionar un pulsador esto se logra al poner una
condision con btfsc que pregunta si el bit configurado como entrada (PA0) se encuentra en estado bajo se salta la siguiente
instruccin que es goto Ciclo para volver al principio. Cuando se presiona el pin se encuentra en estado alto por lo tanto
ejecuta la siguiente instruccin y vuelve a ciclo reseteando el contador. Esta condicin se ubica en el retardo ya que el programa
la mayora del tiempo se encuentra aqu.


Figura 4, diagrama de flujo del programa 2.



Figura 5. Programa hecho en el editor de cdigo de proteus.



VI. SIMULACIN EN PROTEUS
La simulacin en proteus se realiza utilizando:
PIC16F84A.
Display de 7 segmentos.

La simulacin se realiza al construir un proyecto en la pestaa del editor de cdigo, al hacer esto el programa se carga
inmediatamente al microcontrolador, la frecuencia del reloj interno del PIC se fija . La simulacin se puede ver en la
siguiente figura:



Figura 6. Simulacin en Proteus problema 1.


La simulacin del segundo problema en proteus se realiza utilizando:
PIC16F84A.
Display de 7 segmentos.
Un pulsador.
Resistencia

La simulacin nuevamente se realiza al construir un proyecto en la pestaa del editor de cdigo, para que el programa se
carge inmediatamente al microcontrolador, la frecuencia del reloj interno del PIC se fija . La simulacin se puede ver en
la siguiente figura:


Figura 7. Simulacin en Proteus problema 2.



VII. CONCLUSIN
En el desarrollo de la tarea se puede apreciar el encendido de un display de 7 segmentos, estos componentes son de gran
utilidad en la industria para la visualizacin de datos del algn tipo de proceso automatizado. Se puede ver que su programacin
no genera gran complejidad solo el hecho de saber analizar de manera correcta el encendido de cada segmento para generar
algn nmero o letra. Por ltimo se agrega un pulsador que acta como reset, a simple vista se ve como algo simple y de poca
influencia, pero la verdad es que es de gran importancia a la hora de reiniciar algn proceso ya que muchas veces la ejecucin
de estos de forma infinita no es de gran provecho.

S-ar putea să vă placă și