Inf Lab 2 Final

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 12

MEMORIAS EPROM Y FLASH, DIRRECIONAMIENTO INDIRECTO,

INTERRUCIONES Y TIMERS.
PROGRAMACION DE MICROCONTROLADRORES EN LENGUAJE C
(ADC, USART, I2C, SPI)
Camilo Armando Afanador R, Oscar Iván Suárez Rojas
201112914,201121246

Resumen: en esta práctica de laboratorio se involucre el control de sistemas o cargas


realiza la implementación de 4 tareas en las en AC.
cuales haremos uso de interrupciones y el módulo  Desarrollar aplicaciones que involucren
de comunicación UART, además del uso de las los protocolos de comunicación SPI,
técnicas de programación aprendidas en la teoría I2C, RS-232.
de microcontroladores tanto en assembler como
en lenguaje C. 2. INTRODUCCION
Palabras clave: ensamblador, Eprom, Los microcontroladores PIC tienen una amplia
Interrupciones, lenguaje c. gama de aplicaciones ya que permite integrar
muchos dispositivos en un solo chip, en este
1. OBJETIVOS: informe se verán 4 aplicaciones de estos
poderosos chips, como lo es la aplicación en
 Manejar la memoria RAM del electrónica de potencia, realización de diferentes
microcontrolador, usando tareas como mensajes por medio de matrices,
direccionamiento indirecto. también de cómo llevar el monitoreo de variables
 Manejar el set de instrucciones de analógicas como lo es la temperatura, el voltaje y
los microcontroladores PIC mediante la corriente, además del manejo del reloj ds1307 u
diversos problemas propuestos. la memoria 24lc64.
 Construir circuitos que se relacionen
con las actividades cotidianas de los 3. MATERIALES SUGERIDOS:
integrantes del grupo.
 Emplear la técnica de visualización  Pic16f887 datasheet
estroboscópica para matriz de leds.  Mpasm user’s guide.
 Comprender el funcionamiento y  Pickit3 user’s guide.
utilidad de las memorias EEPROM y  Ordenador con las aplicaciones
FLASH del microcontrolador Proteus y mplab x.
PIC16F887  Microcontrolador de la serie
 Comprender el funcionamiento y pic16f88x.
utilidad de los módulos de  Registro de desplazamiento
temporización por hardware. 74LS164.
 Desarrollar aplicaciones en lenguaje C  ULN2803 o ULN2003
para microcontroladores.  3 Matrices de leds 8X8
 Construir circuitos que se relacionen  4 Matrices de leds 5X7
con las actividades cotidianas de los  Protoboard
integrantes del grupo.  Resistencias, diodos, switch,
 Utilizar adecuadamente dispositivos de pulsadores, displays 7 segmentos,
interfaz de usuario tales como, LCD, y capacitores, etc.
Teclado matricial 4X4.  Fuente de alimentación 5v
 Comprender el funcionamiento y  PIC18F4550 datasheet
utilidad del conversor Analógico a  Optoacoplador 4N25 o similar
Digital en los microcontroladores.  MOC3021
 Comprender el funcionamiento de los  Triac Q4015 o similar
protocolos de comunicación SPI, I2C,  LCD 16X2
RS-232.  Teclado matricial 4X4
 Emplear los microcontroladores en  Memoria Serial I2C 24LC256
actividades de la vida diaria donde se  Reloj Digital I2C DS1307
 FT232L
 Sensor de velocidad angular
(Encoder)

4. PLANTEAMIENTO Y
PROCEDIMIENTO:

Ejercicio 2: Diseñe un sistema que permita


visualizar 10 mensajes diferentes en 3
matrices de leds 8X8 o 4 matrices de leds
5X7. Este ejercicio se debe realizar
empleando visualización estroboscópica. El
sistema debe permitir al usuario la selección
del mensaje que se desea visualizar, para
esto el sistema debe disponer de un teclado
4X4. Cada vez que el usuario presione una
tecla el sistema debe emitir un zumbido corto
(debe usar un buzzer). Los mensajes deben
disponer de mínimo 10 caracteres cada uno.
Este ejercicio no permite el uso de retardos
para lo cual usted debe emplear los
temporizadores por hardware que dispone el
Fig.2. programa selector de mensajes
microcontrolador.
Tenga en cuenta que si el sistema pierde la
Se debe tener en cuenta que la cantidad de
alimentación de voltaje, deberá estar en la
mensajes son diez, por tanto la función
capacidad de retomar la última configuración
MATRIZ_LEDS_5 ira hasta
realizada por el usuario. En la Figura 1 se
MATRIZ_LEDS_10, lo anterior se realizó
presenta un diagrama general de la
porque la imagen ocupaba mucho espacio, el
aplicación a desarrollar.
diagrama de flujo se puede observar en la
figura xx de los anexos.
5. DESARROLLO FUNCION CALL MATRIZ_LEDS_1:

Desarrollo ejercicio 2 LAB 2 Para la respectiva función del código se


desarrolla su respectivo diagrama de flujo y
Inicialmente se realizó las respectivas análisis.
configuraciones, asignación de puertos,
módulos timers (timers 0 y 2 como En la figura 3 y xx se puede observar el
temporizadores), configuración del teclado código desarrollado en assembler y el
(selector de mensajes) y lectura y escritura diagrama de flujo.
de la memoria Eprom la cual me permite
retornar en la última tarea realizada por el
usuario.

Para nuestra aplicación se desarrolló un


menú, el cual me permite acceder a los
diferentes mensajes por medio del teclado.
Fig.3 programa que permite visualizar el fig 5. Diagrama de flujo programa que
mensaje. permite visualizar el mensaje.

Inicialmente clareamos todas las variables


asociadas al mensaje, registros de pantalla y FUNCIÓN QUE PERMITE DESPLAZAR EL
matriz virtual la cual me permite rotar el DATO SERIALMENTE EN EL INTEGRADO
mensaje, la variable control me permite llevar la 74LS164:
cuenta de la cantidad de caracteres a visualizar, y
la variable PUNT me permite acceder a los 8 dato
de cada carácter y guardar en la matriz virtual,
la función Carácter me permite observar el valor
actual de mis matrices no virtuales y desplazar el
dato serial mente por el integrado 74LS164, la
anterior se explica más detalladamente en la figura
6, luego se pregunta con la variable VECES, el
tiempo que se muestra el carácter antes de las
rotaciones, si la anterior es cero vuelve a la
función Carácter, si no rota el carácter , luego
carga nuevamente la variable VECES y pregunta
si se han hecho las 8 rotaciones por carácter, si
ROT=0, se han completado las 8 rotaciones por
carácter, de lo contrario salta a la función
carácter, y finalmente se pregunta si se ha
desplazado la cantidad de caracteres dispuesta en
Fig.6. programa que permite desplazar el
el mensaje con la variable CONTROL.
dato serialmente.

Luego en la función carácter observo el valor


actual de mis registros de pantallas o matrices no
virtuales, luego desplazamos el dato serial mente
con una subrutina (call TX) y activamos la fila
correspondiente con un retardo de 2ms realizado
por el timer 0 así sucesivamente para todas
nuestras matrices no virtuales.

fig.8. diagrama de flujo

SIMULACION:

Fig.7 rutina de transmisión serial en assembler. En la figura xx se puede apreciar la


simulación de los mensajes en proteus,
La rutina de transmisión serial me permite enviar oprimiendo la tecla 2 y 3 del teclado
los ocho datos de cada carácter mediante un
pulso de reloj, además de activar la fila pertinente
para la correcta visualización del carácter.

RUTINA DE INTERRUPCIÓN, PARTE ALTA


DEL PUERTO B.

Esta subrutina me permite el cambio de


mensaje por cambio de estado por la parte
alta del puerto B, por medio de la
identificación de la tecla pulsada. fig.9 mensaje matriz en proteus

El diagrama de flujo se puede observar en la los esquemas de la visualización de las figuras


figura 8 de xxx y xx se pueden visualizar en las figura de los
anexos.

fig.10 mensaje matriz en proteus.


PROCEDIMIENTO PUNTO 2 LAB 3:

Se debe construir un sistema que haga la


medición de tres (3) variables analógicas de
entrada (Temperatura, Voltaje y Corriente).
El sistema debe tomar una muestra de cada
una de estas variables con un periodo de
muestreo de 1 segundo, adicionalmente debe
registrar “el segundo, el minuto, la hora, el
día del mes, el día de la semana, el mes y el
año” en que se realizó la medición, mediante
la lectura del reloj digital DS1307. La
información capturada se debe visualizar en
una pantalla LCD 16X2. En la primera Fila se
fig.11 visualización mensaje montaje real. debe mostrar la fecha y hora de acuerdo con
el siguiente formato: DD/MM/YY
HH/MM/SS. En la segunda fila se debe
visualizar una variable cada 10 segundos.
Adicionalmente, los datos muestreados se
deben cargar en una memoria serial 24LCXX
(XX indica el tamaño de la memoria, se deja
a elección del diseñador), se deben almacenar
tantos datos como capacidad de
almacenamiento tenga la memoria, si se
excede la máxima posición, se debe
sobreescribir desde la primera dirección de
memoria. Su aplicación debe contar con un
programa de computador (MATLAB,
LABVIEW, Visual Basic, Python, Etc.) que
fig.12 visualización mensaje montaje real. permita comunicarse con el sistema mediante
protocolo RS232 y que permita la lectura de
la información almacenada en la memoria
24LCXX.
El circuito debe operar aún si no está
conectado al computador (colector de datos
que se puede aplicar en campo abierto usando
baterías). Además, debe existir una forma de
configurar la hora del circuito integrado
DS1307 desde la mencionada aplicación en el
PC.

ACONDICIONAMIENTO DE SENSORES

SENSOR DE TEMPERATURA LM35:

Como la salida de este sensor es lineal y de 10mV


por grado centígrado el acondicionamiento de
señal se basa simplemente en darle ganancias a la
salida para esto utilizamos amplificadores
fig.13 visualización mensaje montaje real. inversores en cascada, para la primera etapa
tenemos una ganancia como se ve a continuación
Fig.13: circuito de acondicionamiento para las
variaciones de voltaje.

La ecuación que describe este sistema viene dada


por:

 R 
V0  1  12 Vi
 R13 

RESULTADOS PACTICOS Y SIMULACION


Fig.12: acondicionamiento de señal para el LM35
En las siguientes imágenes podemos ver el
Rref cambio de hora fecha, día, año mes, del reloj
V01   Vi ds1307, además de las variables visualizadas cada
R1 10s y la lectura de la memoria 24lc64.
Como queremos una salida de -5V teniendo una
entrada de 700mV despejamos la resistencia de
referencia y obtenemos:

5V
Rref  (560)  4000
700mV
Seguido de esto simplemente ponemos un
amplificador inversor con ganancia unitaria y
obtenemos 5V teniendo como entrada 700mV o
70°C.
FIG.14 sensando temperatura
VARIACION DE VOLTAJE ENTRE -2.5 Y
2.5 (POTENCIOMETRO)

Las variaciones de voltaje se harán por medio de


un potenciómetro, dado que el potenciómetro no
es lineal no se va a tener una proporción lineal de
posición del potenciómetro con respecto al voltaje
de salida de este, sin embargo como la salida va
acotada de -2.5 a 2.5 voltios podemos realizar su
acondicionamiento de señal con un sumador para FIG.15 sensando voltaje
agregar de esta manera un offset en voltaje y que
la señal de salida sea de 0 a 5 voltios el esquema
implementado se ve a continuación:

FIG.15 configuracion de reloj


0-9: Teclas para la selección de la frecuencia
deseada esta varía entre cero y quince.

A: para selección de señal seno.


B: para señal cuadrada.
C: para señal triangular.
D: para señal diente de sierra.

FIG.16 cambio de hora Frecuencímetro: Para este punto se configuro el


timer1 como contador de pulsos externos y se
hace una temporización con el timer2 de un
segundo una vez se cumple esta temporización de
un segundo se procede a realizar la lectura de los
registros del timer1 se convierten y se visualizan
en la LCD.

Pruebas:

FIG.17 leyendo memoria 24lc64

Ejercicio 1 laboratorio 2:

El objetivo de este punto es el de generar un


frecuencímetro y un generador de señales el cual
se manipula con un teclado

Fig.21: prueba de frecuenciometro a una


frecuencia de 627 Hz.

Fig.20: teclado usado para manipulación y


selección de tareas.

*: Selecciona el modo de operación ya sea


generador de señales o frecuencímetro.

#: Esta tecla nos permite una vez digitado nuestro


valor de frecuencia en el generador de señales
decirle que cambie a esa frecuencia
Fig.23: prueba de señal cuadrada a una frecuencia
Fig.22: prueba de frecuenciometro a una de 11 Hz.
frecuencia de 63.84 KHz.

Generador de señales: Para el desarrollo de este


numeral para una mayor precisión y debido a que
las frecuencias eran solo 15 se configuraba cada
vez que se configuraba la frecuencia

Pruebas:

Fig.24: prueba de señal triangular a una


frecuencia de 4 Hz.

Fig.23: prueba de señal seno a una frecuencia de 4


Hz.
Fig.23: prueba de señal diente de sierra a una
frecuencia de 14 Hz.

CONCLUSIONES

 El empleo de interrupciones y el buen


conocimiento de sus configuraciones
hace que las prácticas se puedan realizar
con una eficiencia mucho más alta.

BIBLIOGRAFIIA

 http://electgpl.blogspot.com.co/2013/
11/matriz-8x8-mensaje-con-
desplazamiento.html
 http://matrizleds7x32.blogspot.com.c
o/2012/03/matriz-de-leds-7x32-
pic16f628a74hc164.html
 https://mundoarcoiris.wordpress.com/201
1/07/28/hello-world/
ANEXOS

También podría gustarte