PROYECTO #2-TERMÓMETRO. RICARDO PACHECO, MELVIN

Anuncio
PROYECTO #2-TERMÓMETRO.
RICARDO PACHECO, MELVIN CORTÉS MORA, FABIO FERNANDEZ.
El ejercicio consiste en la simulación de una estación
meteorológica, la misma debe mostrar en una pantalla
LCD datos de temperatura, humedad relativa y presión
atmosférica.
INTRODUCCIÓN
El presente proyecto consiste en 1 ejercicio asignado
por el profesor Ing. Jorge Castro del curso Organización
de Estructuras.
Con este proyecto esperamos poner en práctica los
conocimientos adquiridos y aumentar nuestro
conocimiento del el funcionamiento interno de una
computadora, a través del estudio y programación del
lenguaje
ensamblador.
Los ejercicios se desarrollaron en el siguiente orden:
algoritmo, código de MP LAB y diagrama de flujo, y
simulación en ISIS Proteus .
Los cambios en la pantalla LCD se deben de controlar
por medio de una interrupción externa controlada por
un botón conectado al puerto RB0.
Ejercicio 1
Elaborar una estación meteorológica que muestre la
temperatura, los grados centígrados y la presión
atmosférica en una pantalla LCD.
Marco conceptual
MP LAB
Temperatura
MPLAB es un editor IDE gratuito, destinado a
productos de la marca Microchip. Este editor es
modular,
permite
seleccionar
los
distintos
microcontroladores soportados, además de permitir la
grabación de estos circuitos integrados directamente al
programador.
La temperatura es una magnitud referida a las nociones
comunes de caliente o frío que puede ser medida con un
termómetro.
La temperatura se mide con termómetros, los cuales
pueden ser calibrados de acuerdo a una multitud de
escalas que dan lugar a unidades de medición de la
temperatura. La escala más extendida es la escala
Celsius (antes llamada centígrada).
Es un programa que corre bajo Windows y como tal,
presenta las clásicas barras de programa, de menú, de
herramientas de estado, etc. El ambiente MPLAB®
posee editor de texto, compilador y simulación (no en
tiempo real). Para comenzar un programa desde cero
para luego grabarlo al μC en MPLAB® v7.XX los
pasos a seguir son:
Humedad
La humedad relativa es la relación porcentual entre la
cantidad de vapor de agua real que contiene el aire y la
que necesitaría contener para saturarse a idéntica
temperatura, por ejemplo, una humedad relativa del
70% quiere decir que de la totalidad de vapor de agua
(el 100%) que podría contener el aire a esta
temperatura, solo tiene el 70%.
1.
2.
3.
4.
Presión atmosférica
La presión atmosférica es la presión que ejerce el aire
sobre la Tierra.
Crear un nuevo archivo con extensión .ASM
y nombre cualquiera
Crear un Proyecto nuevo eligiendo un nombre
y ubicación
Agregar el archivo .ASM como un SOURCE
FILE
Elegir el microcontrolador a utilizar desde
SELECT DEVICE del menú CONFIGURE
Una vez realizado esto, se está en condiciones de
empezar a escribir el programa respetando las directivas
necesarias y la sintaxis para luego compilarlo y grabarlo
en el PIC.
1
1.
2.
PIC 16F877A
3.
4.
5.
6.
El microcontrolador PIC16F877 de Microchip
pertenece a una gran familia de microcontroladores de 8
bits (bus de datos) que tienen las siguientes
características generales que los distinguen de otras
familias:
A.
Características
• Tiene 8 entradas
• El conversor genera un resultado digital de la entrada
análoga vía aproximaciones sucesivas
• El resultado es un número digital de 10 bits
• Los voltaje referenciales son seleccionados por
software: vdd, vss, ra2 o ra3
• Tiene cuatro registros: adresh, adresl donde se guarda
el resultado digital de la conversión, adcon0 y adcon1
que son los registros de control
• Los pines del puerto pueden ser configurados como
entradas análogas o como e/s digitales
• Cuando la conversión se completa, el resultado se
carga en adresh:adresl, el bit go/done- es borrado y el
flag adif = 1
- Tecnología RISC
- Tecnología CMOS
Caraterísticas:
6.
7.
Solución del problema:
Conversor análogo/digital
- Arquitectura Harvard
1.
2.
3.
4.
5.
1 Conversor A/D de 10-bits (8 canales)
2 Módulos CCP (Captura, Comparador,
PWM)
1 Modulo I2C
1 USART (Puerto Serie)
2 Timers de 8 bits
1 Timer 16 bits
Memoria de Programa tipo Flash 8Kx14
Memoria Datos 368 bytes
EEPROM 256 bytes
33 pines de Entrada/Salida
Encapsulado: 40 pines DIP, 44 pines PLCC y
44 pines TQFP
Soporta Xtal 20MHz
Voltaje de Operación: 2.0 hasta 5.5VDC
Periféricos:
La resolución de la conversión es función de la tensión
de referencia externa (en caso de que la hubiere) y viene
dada por:
101 = canal 5, (RE0/AN5)
110 = canal 6, (RE1/AN6)
111 = canal 7, (RE2/AN7)
GO/DONE-: STATUS DE CONVERSIÓN. SI ADON
= 1, ENTONCES,
1 = CONVERSIÓN EN PROGRESO
0 = NO HAY CONVERSIÓN
ADON: HABILITA CONVERSOR
1 = CONVERSOR OPERANDO
0 = CONVERSOR APAGADO
Registro ADCON0
DCS1:ADCS0 SELECCIONA RELOJ DE
CONVERSIÓN
00 = 2Tosc
01 = 8Tosc
10 = 32Tosc
11 = FRC (RELOJ INTERNO RC)
CHS2:CHS0: SELECCIONA EL CANAL ANÁLOGO
001 = canal 1, (RA1/AN1)
010 = canal 2, (RA2/AN2)
011 = canal 3, (RA3/AN3)
100 = canal 4, (RA5/AN4)
Registro ADCON1
2
ADFM: FORMATO DEL RESULTADO
1= JUSTIFICACIÓN A LA DERECHA
0 = JUSTIFICACIÓN A LA IZQUIERDA
Figura. 4
Pasos de configuración
1. Configurar las entradas análogas, voltajes de
referencia y digitales en el registro adcon1, seleccionar
el canal de entrada en adcon0, el reloj de conversión y
activar el a/d en adcon0
2. Si se desea interrupción configurarla: adif = 0, adie =
1, peie = 1, gie = 1.
3. Esperar tiempo requerido de adquisición
4. Arrancar conversión go/done- = 1
5. Esperar que se complete la interrupción por polling
de go/done- = 0, o esperar interrupción
6. Leer el resultado en adresh:adresl, borrar adif = 0
7. Esperar próxima conversión
Manejo de interrupciones:
PCFG3:PCFG0: CONFIGURACIÓN DEL PUERTO
Registro OPTION
TABLA 6
BIT's
Bit 7: RBPU
Pull-up p' PORTB
Bit 6: INTEDG
Flanco/Interrup.
Bit 5: T0CS
Fte./Reloj p' TMR0
Bit 4: T0SE
Flanco/T0CKI
Bit 3: PSA
Divisor/Frecuencia
Descripción
1 = Cargas Pull-Up Desconectadas
0 = Cargas Pull-Up Conectadas
1 = RB0/INT será sensible a flanco
ascendente
0 = RB0/INT será sensible a flanco
descendente
1 = Pulsos por el pin RA4/T0CKI
(contador)
0 = Pulsos igual Fosc/4 (temporizador)
1 = Incremento TMR0 en flanco
descendente
0 = Incremento en flanco ascendente
1 = Divisor asignado al WDT
0 = Divisor asignado al TMR0
3
Tabla:7(INTCON).

Se instrucciones de carga del PIC como movf,
CLRW y movwf; las cuales son muy útiles
para la programación y solución de diferentes
problemas.

También se utilizaron las herramientas
ADDLW k e INCF las cuales son utilizadas
para realizar cálculos aritméticos.

Las instrucciones XORDLW k e ANDLW las
cuales son utilizadas para realizar saltos en las
rutinas.
1 = Ocurrió una interrupción
Bit 1: INTF
externa
Bandera - RB0/INT 0 = No ha ocurrido interrupción
externa

Se utilizó el convertidor analógico digital del
PIC16F877A con un voltaje de referencia de
5V.
1 = Al menos un pin cambio de
Bit 0: RBIF
estado
Bandera - RB4:RB7 0 = Ningún pin ha cambiado de
estado

Se utilizó un dispositivo LCD para mostrar
los resultados de la conversión.
BIT's
Descripción
Bit 7: GIE
Habilitación
General.
1 = Todas las Interrupciones
activadas
0 = Todas las Interrupciones
desactivadas
Bit 6: EEIE
Int. de Periféricos
1 = Activada
0 = Desactivada
Bit 5: T0IE
Int. del TMR0
1 = Activada
0 = Desactivada
Bit 4: INTE
Int. Externa
1 = Activada
0 = Desactivada
Bit 3: RBIE
Int. por PORTB
1 = Activada
0 = Desactivada
Bit 2: T0IF
1 = TMR0 desbordado.
Bandera del TMR0. 0 = No se ha desbordado
BIBLIOGRAFIA
Dispositivo LCD
http://www.matpic.com/esp/microchip/adc.html
El LCD dispone de una matriz de 5 x 8 para representar
cada caracter en total se puede mostrar 256 caracteres
diferentes , 240 almacenados en la memoria del lcd y 8
pueden ser definidos por el usuario.
http://www.slideshare.net/victorpe/uso-mplabpresentation
B.
http://www.ceduvirt.com/resources/Microcontroladores.
pdf

http://www.hispavila.com/3ds/chipspic/interrupciones.h
tml
CONCLUSIONES
Se logró desarrollar la totalidad de los
ejercicios y se pusieron en práctica nuestros
conocimientos en desarrollo de algoritmos,
diagramas de flujo y código en ensamblador.
http://ieupao.blogspot.com/2009/07/termometro-digitalcon-lm35-y-pic.html
4
5
Descargar