Story Transcript
DIVISIÓN DE CIENCIAS BÁSICAS E INGENIERÍA DEPARTAMENTO DE ELECTRÓNICA
PROYECTO TERMINAL
SISTEMA DE ADQUISICIÓN DE DATOS PARA MONITOREO DE AGUAS ASESOR ALEJANDRO MARTÍNEZ GONZÁLEZ
ALUMNOS ANÍBAL ADÁN CAMPOS LÓPEZ 94216247 ROBERTO BARRUETA RAMÍREZ 94219735
NOVIEMBRE 2006
Quiero dedicar el presente trabajo y agradecer el gran apoyo que me han proporcionado para lograr mis objetivos. A Dios y a mis padres por haberme dado la vida y guiado con sus sabias palabras. A Mi esposa y mi hijo que han sido un gran estímulo para seguir superándome. A mis hermanos que siempre han confiado y creído en mí. A mis profesores que han sembrado en mí la semilla del conocimiento. A mis compañeros y amigos, con los que he compartido éxitos y frustraciones. En general, me siento agradecido con todas y cada una de las personas que han sido parte de mi vida y que de una u otra forma me han tendido su mano y me han ofrecido su apoyo incondicional.
Roberto Barrueta Ramírez
A mi mamá
Por su estimulo, su paciencia, su apoyo, por levantarme temprano, por estar siempre a mi lado, y sobre todo, por confiar en mí, gracias.
Adán.
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I.
INDICE
SECCIÓN I INTRODUCCIÓN. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 SECCIÓN II JUSTIFICACIÓN. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 SECCIÓN III OBJETIVO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 SECCIÓN IV ESTADO DEL ARTE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 4.1
CUADRO COMPARATIVO CON LA TECNOLOGÍA ACTUAL. . . . . . . . . . . . . . . 12
SECCIÓN V DESARROLLO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 5.1.
MICROPROCESADORES vs MICROCONTROLADORES. . . . . . . . . . . . . . . . . 14 5.1.1. CARACTERISTICAS DE LOS MICROPROCESADORES. . . . . . . . . . . . . 14 5.1.2. CARACTERISTICAS DE LOS MICROCONTROLADORES. . . . . . . . . . . 17 5.1.3. DIFERENCIAS ENTRE EL MICROPROCESADOR Y EL MICROCONTROLADOR. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 5.1.4. REGISTROS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 5.1.5. CONJUNTO DE INSTRUCCIONES. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 5.1.6. REPRESENTACIÓN DE LAS INSTRUCCIONES. . . . . . . . . . . . . . . . . . 22 5.1.7. INSTRUCCIONES DEL MICROPROCESADOR Z80. . . . . . . . . . . . . . . . 24
5.2.
IMPLEMENTACION DE UN SISTEMA DE ADQUISICIÓN DE DATOS. . . . . . . 25 5.2.1. ELEMENTOS DE DISEÑO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 5.2.2. MICROPROCESADOR Z80. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 5.2.3. MEMORIAS RAM Y EEPROM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 5.2.4. MULTIPLEXOR 74LS138. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 5.2.5. CONVERTIDOR ANALÓGICO-DIGITAL. . . . . . . . . . . . . . . . . . . . . . . . . . 28 5.2.6. INTEGRADO Z84C90KIO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 5.2.7. POWER ON RESET. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
1
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I.
5.2.8. INTERFAZ SERIAL. . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 5.3.
CONEXIONES. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
5.4.
RELOJ DEL SISTEMA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
5.5.
MAPEO DE MEMORIA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
SECCIÓN VI PROGRAMACIÓN DEL SISTEMA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 6.1
MODULOS DEL PROGRAMA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
40
6.2.
USO DEL SIMULADOR SIMZ80. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
54
6.3.
MANUAL DE OPERACIÓN DEL SISTEMA. . . . . . . . . . . . . . . . . . . . . . . . . . . .
55
SECCIÓN VII
RESULTADOS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
SECCIÓN VIII
CONCLUSIONES. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
SECCIÓN IX
ANEXOS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
ANEXO A:
GLOSARIO / NOMENCLATURAS . . . . . . . . . . . . . . . . . . . . . . . . . 71
ANEXO B:
CONVERSIÓN ANALÓGICO-DIGITAL. . . . . . . . . . . . . . . . . . . . . . 73
ANEXO C:
PROTOCOLO DE COMUNICACIÓN RS-232. . . . . . . . . . . . . . . . . 77
ANEXO D:
INDICE DE FIGURAS, DIAGRAMAS Y TABLAS. . . . . . . . . . . . . .. 80
ANEXO E:
CONJUNTO DE INSTRUCCIONES Y RESUMEN DE BANDERAS DEL MICROPROCESADOR Z80. . . . . . . . . . . . . 82
ANEXO F:
CUADRO COMPARATIVO ENTRE EL VOLTAJE DE ENTRADA Y SU EQUIVALENCIA EN EL SISTEMA DIGITAL. . . . . . . . . . . . . 92
SECCIÓN X BIBLIOGRAFÍA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
2
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I.
SECCIÓN I
INTRODUCCIÓN
Actualmente el desarrollo de sistemas digitales se ha popularizado, hasta hace poco el conocimiento sobre tecnología estaba limitado a países muy desarrollados como Japón, Estados Unidos, Francia, Etc. Sin embargo en las universidades de nuestro país y ahora con la disponibilidad del Internet, el desarrollo de sistemas ha logrado un avance significativo, tal es el caso de la Universidad Autónoma Metropolitana que con el apoyo de autoridades, maestros y alumnos se han desarrollado sistemas en diferentes áreas de la ingeniería. La intención del presente proyecto es determinar la altitud que alcanza la marea en determinadas playas de nuestro país, la propuesta es muy sencilla pero de gran utilidad para satisfacer esta demanda; el diseño consta de una Tarjeta Remota de Adquisición de Datos cuya plataforma de diseño es el microprocesador Z80, sensores y una computadora para monitorear la información. Explicaremos de forma rápida cual será el funcionamiento de la Tarjeta; primeramente, se obtiene una señal analógica por medio de sensores de presión ubicados en el fondo del mar, la señal debe ser convertida a digital por medio de un convertidor Analógico-Digital que nos permite trabajar simultáneamente con 8 canales diferentes, esto implica que por cada tarjeta se pueden colocar ocho sensores; una vez que podemos manipular las señales en forma digital se toman muestras del nivel de presión que se ejerce sobre los sensores, las muestras pueden configurarse para que se tomen en periodos de 1,5,10, ..., 30 min, ....hasta periodos de 12 horas, dependiendo de la necesidad del usuario.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
3
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I.
La información que se esta generando, se puede almacenar de forma automática en memorias dinámicas y cuando sea requerida se coloca en el puerto serial RS232 para ser enviada a la computadora, no es necesario que el usuario este pegado a la computadora ya que como la información esta almacenada, en cualquier momento el usuario le indica al programa que recupere la información de un canal. Con la información ya en la computadora, se pueden generar estadísticas para monitorear el comportamiento de la marea. En las secciones siguientes se describe cada parte del proceso de elaboración de nuestro proyecto cabe mencionar que la Tarjeta puede ser utilizada en otras aplicaciones únicamente cambiando el tipo de sensor, por ejemplo las condiciones climáticas se detectan con sensores de temperatura; mediciones cinemáticas y de dinámica elemental con sensores de velocidad; etc. Otro aspecto importante en la implementación del sistema es la economía, puesto que se trabajó con elementos discretos que no son muy caros; por lo que el costo de diseño e implementación se redujo en un 60% del valor comercial de un sistema de éste tipo. Deseamos ante todo que el presente trabajo sirva como guía a nuestros compañeros que actualmente están en proceso de enseñanza y se interesan por aprender más sobre el diseño y la implementación de sistemas digitales, por esta razón abundamos mucho en la descripción de cada uno de los elementos que integran el sistema, presentamos además una sección de anexos, donde tenemos todos los glosarios y nomenclaturas utilizados en el presente escrito para facilitar aún mas la comprensión de la lectura, así como técnicas de conversión analógico-digital.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
4
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I.
SECCIÓN II
JUSTIFICACIÓN La razón por la que se propuso el desarrollo de éste proyecto, se debe a que últimamente se han observado cambios climáticos fuera de lo común; sobre todo el incremento de lluvias abundantes que elevan el nivel de ríos y afluentes poco profundos, así mismo se ha observado un incremento del nivel que alcanza la marea durante sus periodos altos; estas situaciones provocan desbordamientos que afectan a comunidades enteras, así como al ecosistema. El proyecto nace de esta observación hecha por los compañeros del área de hidrología y biología, quienes explican que estos cambios climáticos han erosionado de manera alarmante las costas de nuestro país, afectando principalmente la biodiversidad existente en esos lugares. La propuesta es elaborar un estudio para evaluar y prevenir los daños provocados por la marea alta en las costas de Ciudad del Carmen en el estado de Campeche. La vida en Ciudad del Carmen es apacible y se desarrolla en medio de los últimos sucesos y noticias de la actividad petrolera en la Sonda de Campeche ; tiene además la fortuna de contar con una gran abundancia de camarón, actividad económica muy popular en la zona. Ciudad del Carmen es pródiga en lugares apropiados para practicar deportes acuáticos, ya que cuenta con un estupendo número de playas adecuadas para la natación o el buceo, rodeadas en su mayoría por manglares donde habitan diversas especies marinas, entre reptiles, aves y mamíferos. Como se puede observar, existe una gran diversidad de fauna marina y la actividad económica en torno a esta costa es muy importante al igual que otras costas del país, por Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
5
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I.
esta razón se plantea como una necesidad prioritaria contar con sistemas de monitoreo que estén reportando en tiempo real los niveles que alcanza el mar en cada instante, esta información ayudaría a los habitantes y al personal del Sistema Nacional de Protección Civil prepararse en caso de una emergencia. Cabe mencionar que el sistema que se propone también es aplicable en presas y ríos latentes de riesgos para prevenir situaciones alarmantes como desbordamientos.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
6
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I.
SECCIÓN III
OBJETIVO El propósito del presente proyecto es desarrollar un sistema de adquisición de datos sobre la plataforma del microprocesador Z80 de la marca Zilog, que realice las siguientes funciones: Ø Detectar la señal analógica de un sensor y convertirla en señal digital. Ø Almacenar los datos en una memoria dinámica. Ø Enviar la información a la computadora mediante un puerto serial RS-232. Para lograr nuestro objetivo, será necesario integrar en una sola tarjeta, todos los elementos discretos que conformarán nuestro sistema y sincronizarlos mediante un programa elaborado en lenguaje ensamblador. El sistema será alimentado con una fuente de alimentación de 5VCD, auxiliándose de una batería de respaldo de 5.6 VCD para prevenir cortes de energía eléctrica. FUENTE DE CORRIENTE ALTERNA 127 VCA
ALIMENTACIÓN 5 VCD
OPERADOR Y COMPUTADORA
BATERÍA DE RESPALDO 5.6 VCD
OCHO SENSORES DE PRESIÓN
INTERFAZ SERIAL RS-232 MODEM OPCIONAL CONVERSIÓN ANALÓGICA-DIGITAL
TARJETA REMOTA DE ADQUISICIÓN DE DATOS
Figura No. 1: Sistema Remoto de Adquisición de Datos Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
7
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I.
SECCIÓN IV
ESTADO DEL ARTE La situación actual en el mercado es que existe una gran variedad de sistemas de adquisición de datos; hay desde diseños muy sofisticados y con
grandes capacidades,
adaptables a cualquier necesidad pero muy costosos, también se encuentran dispositivos económicos muy sencillos en su funcionamiento y construcción, pero que no ofrecen grandes aplicaciones; por otro lado la implementación de este tipo de sistemas es muy común como materia de estudio en las universidades, ya que se pueden armar con cualquier microprocesador o microcontrolador y la implementación no es muy complicada. Nuestro prototipo se desarrolla sobre la plataforma del microprocesador Z80, y el diseño es muy competitivo con sistemas de su tipo, porque además de ser económico, es muy versátil debido a que se puede adaptar a cualquier aplicación. A continuación se evalúan algunos de sistemas similares encontrados en el mercado y diseños propuestos por otros estudiantes. 1.-
EL ORDENADOR COMO MEDIO DE ADQUISICIÓN DE DATOS EN EL LABORATORIO. (Herrero y Rosado, 1995).
Su sistema se apoya básicamente en las propiedades de la computadora, dado que el ordenador tiene la función de procesar información ellos utilizan esta capacidad para obtener información a través de una tarjeta comercial de puerto paralelo (de las que usan las impresoras), para recibir la información que envía un sensor de velocidad,
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
con ello se
8
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I.
pueden realizar experimentos de cinemática y dinámica elemental muy útiles durante el aprendizaje de estas materias. La siguiente grafica muestra la implementación del sistema.
Figura No. 2: Diseño del ordenador como medio de adquisición de datos
2.-
DATALOGGER Sistema de Adquisición de Datos de 4 canales. (Revista Saber Electrónica No. 193)
El sistema que propone la revista realmente es muy económico, sencillo, de fácil implementación y programación, ya que el diseño utiliza microcontroladores de la serie picaxe que son fáciles de reprogramar gracias a que usa pocas instrucciones para su implementación, además cuenta únicamente con dos líneas de comunicación, una para el reloj CLK y otra para los datos SDA. El sistema tiene cuatro canales de adquisición, de los cuales uno se usa para temperatura, y los restantes pueden ser aplicados a otro tipo de sensores; para que el sistema funcione hace uso de tres baterías AA y una de lithio, los canales se pueden programar en periodos de adquisición de dato desde 1 minuto hasta el rango de horas y aunque no cuenta con gran capacidad de memoria, se le puede adaptar la memoria que se requiera para almacenamiento de datos. Las aplicaciones van desde prácticas escolares hasta pequeñas aplicaciones comerciales. En el ámbito comercial también se encuentran sistemas muy sofisticados, por ejemplo la empresa Tecnatom S.A. se dedica desde hace años al diseño y construcción de sistemas
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
9
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I.
de adquisición y evaluación de datos para la industria. Un ejemplo de sus sistemas se muestra a continuación: 3.-
TEDDY-GEN: Aplicación de propósito general para adquisición y evaluación de datos de corrientes inducidas
DESCRIPCIÓN DEL PRODUCTO Aplicación software de propósito general apropiada para la inspección mediante corrientes inducidas (ET) o campo lejano (RFET) con el equipo TEDDY, de cualquier tipo de componente (superficies, grandes tuberías, tubos, zonas roscadas, etc). DESCRIPCIÓN DEL PRODUCTO Es una aplicación de propósito general apropiada para cualquier tipo de inspección con el equipo TEDDY, que incluye ambos procesos, adquisición de datos y análisis de los mismos Dentro de sus funciones principales se encuentran el control del proceso de adquisición, especificación de los parámetros de inspección así como el archivo de los datos adquiridos a la vez que su representación. Una vez que los datos han sido adquiridos la aplicación permite al usuario realizar un análisis de datos completo a partir de los datos salvados en cualquier dispositivo de almacenamiento de datos. Cuenta con varios modos de representación según el tipo de técnica escogida (corrientes inducidas o campo lejano): stripcharts, lissajous, C-Scan, plano polar del voltaje, entre otros. La aplicación permite así mismo crear ficheros de informe con los resultados de la inspección así como la salida gráfica de los resultados. En ocasiones, esta aplicación se utiliza conjuntamente con la aplicación MIDAS de ultrasonidos, para la inspección simultánea de determinados componentes con ambas técnicas, corrientes inducidas y ultrasonidos. CARACTERÍSTICAS TÉCNICAS Entre sus características cabe destacar: - Transferencia de datos vía Ethernet (más de 150 m del equipo TEDDY - Adquisición de datos de señales de corrientes inducidas y posición de la sonda. - Representación de datos en tiempo real tanto en vistas tipo strip-chart y lissajous como en vistas tipo C-Scan. - Control de los movimientos de la sonda. - Interfase de usuario adaptable según inspección de superficies o tubos. - Filtros digitales - Representaciones de fase, amplitud y plano polar del voltaje para el análisis con la técnica de campo lejano. - Posibilidad de canales duplicados, filtrados y combinaciones de ambos - Calibración y mezclas automática. - Incorpora la Vista Perfil (representa un parámetro definido por el usuario frente a un eje) - Calibraciones definibles por el usuario. Nuevos algoritmos de calibración (regresión polinomial múltiple y otros)
Tabla 1: Características del proyecto TEDDY-GEN.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
10
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I.
4.-
AMPERE.
Es una compañía mexicana que se dedica a la comercialización de sistemas de instrumentación, control, automatización y monitoreo de procesos industriales, y dentro de la gamma de productos que ofrecen están los data logres siguientes:
Registrador RH-02 Registrador de humedad y temperatura
Registrador de pH DrDAQ Kit para la medición contínua y precisa de pH
USB TC-08 data logger Registrador de 8 canales para termopares ADC-10 y ADC-12 Registradores analógicos de 1 canal de voltaje 0-5 V
Registrador USB HumidiProbe Sensor de humedad y temperatura USB
Registrador TH-03 Registrador de temperatura de alta resolución
ADC-11/10 y ADC-11/12 Registrador de 11 canales de señales de 0-2.5 V
ADC-16 Registrador de señales analógicas de alta resolución
Registrador PT100 Registrador a base de resistencias de platino
Tabla No. 2: Diferentes dispositivos de la empresa Ampere.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
11
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I.
4.1 CUADRO COMPARATIVO CON LA TECNOLOGIA ACTUAL. Como puede observarse hay una extensa variedad de sistemas de adquisición de datos, en la siguiente tabla hacemos un comparativo entre nuestro sistema y algunos de los mencionados con anterioridad. SISTEMA
ECONOMIA
PROGRAMACIÓN
Tarjeta Remota de Adquisición de
Su construcción es de
Se programa cada
8
Datos.
bajo costo.
canal
Adán Campos López.
FUNCIONALIDAD canales
de
APLICACIONES Medición
de
muy básica
altitud
mar,
por la que fue
monitoreo de ríos
diseñada cumple
sencillos.
cualquier aplicación
y
al 100% con los
únicamente
evaluación el
del
presas, de
además
metereológicas,
adaptarse a otros de
vehicular,
de
sistemas
de
monitoreo,
digital
adquisición
y
evaluación
de
analógicas.
datos.
En aplicaciones de
Esta
diseñado
Muy bueno para
No
se
puede
Su implementación es
No
de bajo costo.
programar,
el
física elemental, es
para prácticas de
la aplicación que
adaptar a otros
sistema
es
muy versátil.
laboratorio
de
fue diseñado.
sistemas.
básicamente
de
cinemática
y
análisis,
las
dinámica
Herrero y Rosado.
necesario
puede
señales
conversión
es
objetivos,
condiciones
trafico
adquisición de datos.
Implementación
pueden adaptar a
monitoreo
de
Para la aplicación
adquisición que se
sensor.
medio
la
sus
y
cambiando
como
DESVENTAJAS
comandos son muy Roberto Barrueta Ramírez.
Ordenador
VENTAJAS
condiciones iniciales
elemental,
se obtienen de la
puede adaptar en
posición
aplicaciones
que
tengan
ver
sensores.
de
los
que
se
con velocidad.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
12
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I. SISTEMA
ECONOMIA construye
FUNCIONALIDAD
Su programación es
Está limitada por la
Sus
poca
Dataloggers de 4 canales.
Se
Revista saber electrónica No. 193
elementos baratos, por
muy sencilla
lo
sus cuatro canales.
tanto
con
PROGRAMACIÓN
es
muy
para
cantidad
de
memoria que tiene
APLICACIONES
VENTAJAS
DESVENTAJAS
Puede adaptarse
Su capacidad es
son de propósito
a
muy limitada.
general.
aplicación.
aplicaciones
cualquier
el sistema y por su
económico.
cantidad de canales. TEDDY-GEN
Este producto por ser
En poco compleja
Tiene
Específicamente
Permite hacer un
El
Tecnatom.
fabricado
por la magnitud del
presentaciones
enfocadas hacia el
análisis
virtual
elevado, y son
industriales, tiene un
sistema,
pero
gráficas que hace
área industrial,
a
mas detallado del
diseñados para
costo elevado.
cuenta
los
más fácil el análisis
evaluaciones
e
monitoreo en sus
aplicaciones
de
de los datos.
Inspección
pantallas.
especificas.
para
fines
con
manuales
Ampere.
de
la
empresa
es
instalaciones.
operación. Dataloggers
de
costo
Son muy variadas
Se
automatizados y no
porque
dependiendo
encontrar en el
un
tanto
puestos a disposición
requieren
diseñados
mercado; mucha
elevado,
para
del público.
programación
aplicaciones
durabilidad.
aplicaciones
porque cuentan con
específicas.
mediano
son
de
costo,
algunos
display otros
están de
están para
modelo.
integrado, modelos
requieren
de
el
pueden
Su costo aun es
Son muy versátiles
Economía:
específicas, no se
pueden
adaptar a otros sistemas..
programación sencilla y cuentan con su manual de operación.
Tabla No. 3: Cuadro comparativo del estado del arte.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
13
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I.
SECCIÓN V
DESARROLLO 5.1.
MICROPROCESADORES vs MICROCONTROLADORES Es conveniente conocer algunas características de los elementos utilizados en el
prototipo y contestar una pregunta muy importante ¿por qué utilizar un microprocesador y no un microcontrolador que integra casi todos los elementos que necesitamos en un sistema mínimo?; para dar respuesta a la pregunta, analizaremos cada uno de éstos elementos. 5.1.1. CARACTERÍSTICAS DE LOS MICROPROCESADORES. Son dispositivos digitales altamente integrados que contienen en su interior millones de transistores; su función primordial es facilitar el control y el cálculo computacional, normalmente son utilizados en la fabricación de computadoras, cámaras digitales, equipos de audio y video, en general son utilizados para el diseño de sistemas digitales y aplicaciones en robótica. En su interior contiene los elementos electrónicos y digitales necesarios para realizar adecuadamente su función, estos elementos son: La unidad aritmética lógica (Aritmetic Logic Unit ALU), los registros, la unidad de control y temporización, unidad de memoria y los buses. (De datos y de direcciones). La unidad aritmética lógica o ALU es la parte del microprocesador que con arreglos de compuertas lógicas y transistores realiza las operaciones básicas de aritmética: suma, restas y corrimientos,
todo esto se hace de forma digital.
La operación que deba realizar el
microprocesador será seleccionada por la unidad de control, los datos serán obtenidos de alguno de los registros de almacenamiento (memoria) o bien de la etapa de entrada, Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
14
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I.
mientras que la salida se puede almacenar nuevamente en la memoria o colocarse en la etapa de salida. Los registros tienen la función de mantener la información ya sea un dato o una dirección para que sea utilizada posteriormente por otra unidad del microprocesador, más adelante se describirá la función de los registros. La unidad de control, toma instrucciones de la unidad de memoria, una por una, las interpreta y las prepara para su ejecución. Luego envía las señales apropiadas al resto de los elementos del microprocesador para que la instrucción sea ejecutada. La función de esta unidad es la de dirigir la operación de todas las unidades del microprocesador ofreciendo señales de temporización y control. En cierto sentido, funciona como el director de una orquesta, quien es el responsable de mantener a cada uno de los miembros de la orquesta sincronizados adecuadamente. En su interior contiene circuitos lógicos y de temporización que generan las señales adecuadas que se necesitan para ejecutar las instrucciones de un programa. La unidad de control extrae la instrucción de la memoria mediante el envío de una dirección y un comando de lectura a la celda de memoria. La instrucción almacenada en dicha dirección es colocada en la unidad de control y ejecutada a continuación, las palabras tanto de dirección como de datos son combinaciones predeterminadas de unos y ceros. La unidad de control realiza las operaciones de lectura y ejecución de instrucciones una y otra vez, entrando en ciclos continuos de búsqueda y ejecución hasta que termina de ejecutar todas las instrucciones del programa.
Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
15
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I. INICIO
BUSCA SIGUIENTE INSTRUCCION
EJECUTAR INSTRUCCION
NO
¿ES UNA INSTRUCCIÓN DE FINALIZACION?
SI
FIN
Diagrama No. 1: Ciclo de búsqueda y ejecución de un programa.
La unidad de memoria, es un conjunto de pequeñas celdas de almacenamiento que pueden guardar un dato y retenerlo hasta que sea requerido, cada celda están identificada por una dirección física exclusivamente, y al proceso de apuntar hacia una de ellas para obtener o almacenar un dato se le llama direccionamiento. Anteriormente los procesadores no contaban con una memoria como tal, esa función la realizaban los registros del procesador y era necesario anexarle unidades de memoria a los diseños de sistemas digitales, en la actualidad muchos microprocesadores integran dentro de su encapsulado la unidad de memoria cuya capacidad puede variar de acuerdo al modelo del micro por ejemplo la de 512 Kb. En algunos casos también es conocida como memoria caché y su función es predisponer la información en la entrada para que pueda ser procesada de inmediato, ahorrando mucho tiempo de procesamiento; no es necesario esperar a que la unidad de control lea la instrucción y la coloque en la etapa de entrada, porque ésta ya se encuentra en ese lugar. Los buses, tienen la función de transportar información entre todas las unidades del microprocesador, de allí el nombre (BUS-transporte). Se pueden identificar de acuerdo a la información que transportan en bus de datos y de direcciones. Para ambos casos la capacidad del bus se define de acuerdo a la cantidad de bits que pueda transportar; los primeros arreglos eran hasta de 4 bits, pero en la actualidad ya existen
Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
16
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I.
de 64 bits y están en desarrollo los de 128, de esta forma un bus de 8 bits es capaz de transportar 28 = 256 combinaciones diferentes de unos y ceros, o bien 256 palabras; un bus de 32 bits es capaz de transportar 232 = 4,294´967,296 palabras. Bus de datos; su función es llevar de un lugar a otro exclusivamente datos. En él se coloca un número binario el cual será tomado por la unidad que lo esté llamando, de esta manera por ejemplo, puede salir de la unidad de memoria para ser llevado y tratado por la ALU, el resultado nuevamente es colocado en el bus de datos para ser enviado a otro dispositivo de salida (impresora, pantalla, etc.,) o quizá a otra localidad de memoria. Bus de direcciones; a diferencia del bus de datos su función del bus de direcciones es la de hacer referencia a una dirección física del sistema, ésta puede ser una localidad de memoria o bien la dirección física de algún dispositivo periférico. Como se dijo anteriormente su capacidad esta de acuerdo al número de bits que maneje el bus y cada combinación que se pueda generar también es conocida como dirección lógica. En este aspecto hay que tener un poco de cuidado con estos términos, la dirección lógica es la combinación que se puede generar con la cantidad de bits que tenga el bus, mientras que la dirección física es la referencia donde realmente se encuentra una celda de memoria o bien está reservada para algún dispositivo periférico. Señales de control; se encargan de llevar las señales de sincronización entre las unidades; normalmente son líneas independientes que hacen una función especifica como la de llevar un pulso o el control de reloj. 5.1.2. CARACTERÍSTICAS DE LOS MICROCONTROLADORES. Al igual que los microprocesadores, también son circuitos altamente integrado; pero que además agregan en su interior las unidades de control, memorias y periféricos de entrada/salida. Se puede decir que es una computadora completa en un sólo circuito integrado. Por sus características, los microcontroladores tienen todos los componentes de un sistema en un solo chip y tienen un grado de especialización mayor que los microprocesadores; están diseñados para aplicaciones especificas como son el diseño y
Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
17
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I.
fabricación de aparatos eléctricos, en automóviles, robótica, telefonía, domótica, etc. Mientras que los microprocesadores tienen una gama más amplia de aplicaciones. Un microcontrolador incluye en su interior las tres etapas funcionales de un ordenador: Procesador, Memoria y Unidades de Entrada/Salida. Procesador; como se definió anteriormente es el encargado de realizar las funciones lógicas y aritméticas necesarias para ejecutar las instrucciones de un programa. Memoria; abarca tanto la memoria RAM (Random Access Memory) como la ROM (Read Only Memory). En la RAM o memoria de acceso aleatorio se cargan los programas que se estén ejecutando en su momento permaneciendo así mientras esté alimentada eléctricamente; una vez que la energía es cortada, también es descargada la información de la memoria, en pocas palabras se limpia la memoria. Mientras que en la ROM o memoria de sólo lectura se cargan las secuencias de inicio y el establecimiento de parámetros iniciales, la información permanece aún cuando se corte la energía y su característica principal es que sólo se puede leer la información que se encuentra en su interior, ya que no se puede modificar. La información que contiene la memoria ROM, es programada con ayuda de dispositivos grabadores especiales. Existen varios tipos de memorias ROM, algunas de ellas se pueden borrar o regrabar con dispositivos especiales; como son: EPROM (Erasable Programmable Read Only Memory) que es una memoria que se puede programar por medio de pulsos eléctricos más alto que los normales y puede ser borrada con luz ultravioleta. EEPROM (Electrically Erasable ROM) que permite ser borrada y reprogramada eléctricamente, sin embargo este tipo de memorias sólo permiten cierta cantidad de veces ser reprogramadas. Las unidades de Entrada/Salida, los microprocesadores dispone generalmente de dispositivos de entrada y salida, como convertidores analógico-digital, temporizadores, UART (Universal Asynchronous Receiver-Transmitter) y los buses de interfaz especializados, el micro controla estas unidades mediante instrucciones especializadas almacenadas en un lenguaje de programación ensamblador almacenadas en el interior de la memoria. De esta manera, el microcontrolador posee toda la electrónica básica de un sistema mínimo aunque con capacidades limitadas, por lo que muchas veces es necesario anexar
Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
18
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I.
memoria RAM y otros elementos electrónicos como pantallas, circuitos integrados, etapas de potencia, etc. con el fin de lograr la tarea que deseamos desempeñe nuestro sistema. Ahora bien, existe diferentes tipos de microcontroladores, entre los cuales podemos mencionar y describir algunos de ellos: Microcontroladores simples; también conocidos como de propósito general, contiene los elementos básicos mencionados anteriormente, permitiendo que sean programados y configurados para alguna aplicación específica, además son más económicos. DSP (Digital Signal Proccesor) son microcontroladores que permiten una manipulación más fácil y especializada de señales digitales, son muy utilizados en el Procesamiento de señales digitales para mejorar la calidad de audio y video; en aplicaciones que van desde aparatos domésticos como televisores y mini componentes hasta aparatos de comunicación como celulares, identificadores de voz, satélites, etc. 5.1.3. DIFERENCIAS
ENTRE
EL
MICROPROCESADOR
Y
EL
MICROCONTROLADOR. Existen algunas diferencias entre un microprocesador y un microcontrolador que nos permiten elegir entre uno y otro para la elaboración de un sistema. En el siguiente cuadro comparativo se hacen algunas diferencias entre el microprocesador y el microcontrolador. MICROPROCESADOR
MICROCONTROLADOR
Son de propósito general y se pueden De implementar infinidad de sistemas.
propósito
general,
y
algunos
muy
especializados para aplicaciones específicas.
Para implementar un sistema, es necesario Integran
en
su
encapsulado
al
agregar memorias (RAM y ROM), unidades microprocesador, memorias (RAM y ROM), de entrada y salida, unidades de control.
Unidades de entrada/salida.
Una vez colocados los dispositivos puede La capacidad de sus dispositivos que integra hacer las mismas funciones que un micro son controlador.
Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
limitadas,
algunas
ocasiones
es
necesario agregar dispositivos.
19
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I.
MICROPROCESADOR
MICROCONTROLADOR
Es económico, pero aumenta su costo de Es
un
poco
más
caro
que
un
acuerdo con los dispositivos que se le microprocesador, pero al implementar un agreguen. Son
sistema, los gastos son casi los mismos.
más
funcionales
que
los Son mejores para las aplicaciones que
microcontroladores.
fueron fabricados.
En el aspecto operativo y de programación, ambos se manejan de la misma forma, la diferencia se encuentra en el conjunto de instrucciones, aunque algunos utilizan el
Utiliza la misma
metodología para ser
programados.
mismo. Se prefieren para el diseño digital porque se les puede agregar cualquier elemento, y no se sobrecargan en su funcionamiento, ya que mientas los otros dispositivos realizan una tarea el microprocesador está realizando otras operaciones.
Como tiene todos los elementos en un solo encapsulado, se ve afectado su rendimiento, ya que deben compartir algunos elementos como los buses, además como todas las operaciones
se
llevan
encapsulado,
el
dispositivo
dentro se
del
calienta
rápidamente.
Tabla No. 4: Cuadro comparativo entre un microprocesador y un microcontrolador.
5.1.4. REGISTROS. Como se menciono anteriormente, los registros tienen la función de retener de manera temporal
la
información
que
será
utilizada
posteriormente
por
otra
unidad
del
microprocesador o microcontrolador, tal vez dos ciclos de reloj después o en alguna etapa del programa; no son considerados como parte de la memoria, sin embargo sirven como celdas de almacenamiento auxiliares para colocar datos temporales. Los registros utilizan circuitos flip-flop para mantener disponible la información ya sea un dato o una dirección, existen diferentes formas de identificar a los registros de acuerdo a la función que realizan por ejemplo:
Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
20
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I.
Registro de datos: almacenan exclusivamente números enteros (operandos) que serán tomados posteriormente para ser procesados por la ALU o bien es el resultado de alguna operación aritmética, este registro también es conocido como registro acumulador Registro de memoria: son usados para almacenar exclusivamente direcciones de memoria, estos tipos de registro son muy utilizados en la arquitectura Harvard; ya que muchas veces las direcciones tienen un tamaño de palabra distinto a la longitud de palabra de los datos. Registro de propósito general: guardan tanto datos como direcciones y son utilizados en la arquitectura Von Neumann. Registro de propósito especifico: guardan información especifica del sistema como el puntero de cola o las banderas de estado. En el caso del microprocesador Z80, contiene los registros que se muestran en el cuadro. Registros principales Acumulador
Registros alternos
banderas
Acumulador
banderas
A 8bits
F 8bits
A´8bits
F´8bits
B 8bits
C 8bits
B´8bits
C´8bits
D 8bits
E 8bits
D´8bits
E´8bits
H 8bits
L 8bits
H´8bits
L´8bits
Interrumpt vector
I 8bits
Memory refresh
R 8bits
Index register
IX 16bits
Index register
IY16bits
Stack pointer
SP16bits
Program counter
PC16bits
Registros de propósito general
Registros de propósito específico.
Tabla No. 5: Registros del microprocesador Z80.
El microprocesador Z80 contiene 18 registros de 8 bits y 4 registros de 16 bits que dan un total de 208 bits de lectura/escritura que están disponibles para el programador; en los cuales se incluyen dos conjuntos de seis registros de propósito general, cada uno se pueden trabajar en forma individual como registros de 8 bits; o bien puede hacerse un arreglo de pares con el registro principal y el alterno para formar registros de 16 bits (en la tabla se marcan como B,C,D,E,H,L, B´,C´,D´,E´,H´,L´); También se encuentra el registro acumulador A, un registro de bandera F, con sus respectivos registros alternos (A´, F´); existen otros dos registros de 8 bits incluidos en los registros de propósito específico, el vector de interrupción Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
21
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I.
I, así como el registro de actualización de la memoria R. Finalmente los registros de 16 bits lo forman dos registros de índices IX, IY, el registro del puntero SP, y el contador del programa PC. 5.1.5. CONJUNTO DE INSTRUCCIONES Para que un microprocesador o microcontrolador pueda funcionar requiere de un conjunto de instrucciones que no es otra cosa que códigos binarios que al ser interpretados por la unidad de control realizan una operación específica. A este tipo de programación también se le llama lenguaje ensamblador o lenguaje maquina, puesto que es directamente interpretado por el micro. Cada instrucción debe contener la información adecuada que la CPU necesita para ejecutarse correctamente, los elementos que contiene cada instrucción son los siguientes: CÓDIGO DE OPERACIÓN;
codop indica la operación a realizar mediante un código binario
que es seleccionado de tabla predeterminada. REFERENCIA A OPERANDOS FUENTE;
operando origen especifica registros o la dirección de
memoria dónde se encuentra el dato, puede implicar uno o más operandos que representan la entrada de datos que serán evaluados por la instrucción. Existen varios tipos de datos; direcciones, numéricos, caracteres o lógicos. REFERENCIA A OPERANDO RESULTADO,
operando destino cuando la instrucción genera un
resultado se debe hacer la referencia correspondiente para enviar el dato a una localidad de memoria. REFERENCIA A LA SIGUIENTE INSTRUCCIÓN,
normalmente un programa se hace en forma
secuencial implicando que la instrucción se encuentre en la siguiente línea, sin embargo cuando se utilizan bucles o saltos se debe hacer la indicación correspondiente en la instrucción, para que la CPU sepa donde continuar el programa. 3.5.1. REPRESENTACIÓN DE LAS INSTRUCCIONES. Dentro del microprocesador cada instrucción se representa por combinaciones secuenciales de bits, (1 y 0) sin embargo no es posible que el programador maneje esta Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
22
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I.
codificación tal cual por esta razón se utiliza una representación simbólica para referencia a las instrucciones del programa. Los
CÓDIGOS DE OPERACIÓN
hacer
se representan
mediante ABREVIATURAS MNEMOTÉCNICAS que indican la operación en cuestión, por ejemplo: ADD sumar. SUB restar. MPY multiplicar. LOAD cargar datos de memoria. STOR almacenar datos. Los
OPERANDOS
también pueden representarse en forma simbólica, por ejemplo la
instrucción ADD R,Y puede indicar que se sume el valor contenido en la posición Y al valor contenido en el registro R. Aunque algunos fabricantes han diseñado su propio conjunto de instrucciones de acuerdo a la arquitectura del dispositivo, se pueden clasificar en RISC y CISC. RISC
(Reduced
Instruction
Set
Computer)
Computadoras
de
Conjunto
de
Instrucciones Reducido, se caracteriza por lo siguiente: ·
Contiene un conjunto de instrucciones limitado y sencillo.
·
Utiliza un gran número de registros de uso general, o el uso de compiladores para optimizar el uso del programa.
·
Basa su optimización en la segmentación de instrucciones.
·
Se genera una gran cantidad de saltos y subrutinas, provocando que se pierda tiempo en esos saltos.
CISC (Complex Instruction Set Computer) Computadoras de Conjunto de Instrucciones Complejo; sus características son las siguientes: ·
Tiene un número mayor de instrucciones.
·
Tiende a que su programación sea lineal.
·
Al utilizar una programación lineal, pretende reducir el tiempo de ejecución de un programa.
·
También se apoya en su ejecución de gran cantidad de registros.
Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
23
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I.
5.1.7.
INSTRUCCIONES DEL MICROPROCESADOR Z80.
El microprocesador Z80 utiliza un conjunto de instrucciones del tipo CISC, basando sus instrucciones en códigos de operación de 8 y 16 bits. El microprocesador tiene uno de los más potentes y versátiles conjunto de instrucciones que cualquier microprocesador de 8 bits. Este incluye operaciones singulares tal como el movimiento de un bloque, lo cual permite transferencia de datos, rápidos y eficientes, dentro de la memoria o entre la memoria y una I/O. También permite operaciones sobre cualquier posición de la memoria. A continuación se da un resumen de set de instrucciones, el cual muestra el lenguaje mnemónico assembler, la operación, los estados de bandera y comentarios sobre cada instrucción. Las instrucciones se dividen en las siguientes categorías: ·
Carga de 8 bits.
·
Carga de 16 bits.
·
Intercambio, transferencia y búsqueda de bloques.
·
Operaciones aritméticas y lógicas de 8 bits.
·
Aritméticas de propósito general y control de CPU.
·
Operaciones aritméticas de 16 bits.
·
Solución y desplazamiento.
·
Bit set, reset y operaciones de testeo.
·
Saltos (jumps).
·
Llamadas, retornos y reinicios.
·
Operaciones de entrada y salida. El grupo de instrucciones y su resumen de banderas, puede observarse con mayor
detalle en el ANEXO E.
Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
24
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I.
5.2
IMPLEMENTACIÓN DE UN SISTEMA DE ADQUISICIÓN DE DATOS. Una vez elegido el microprocesador, se procedió a integrar cada una de las partes de
la tarjeta de adquisición de datos; con el fin de dar a conocer éstos elementos, haremos una breve descripción de cada uno de ellos. 5.2.1. ELEMENTOS DE DISEÑO. La parte central del sistema la materializa el microprocesador Z80, utilizamos además un circuito integrado Z84C90 KIO, el cual contiene canales de temporización programables y los puertos tanto seriales como paralelos; usamos además, las memoria EPROM27256 y RAM62256, un convertidor analógico digital ADC0808, un multiplexor 74LS138, un circuito de interfaz serial MAX232, conector DB9 hembra, compuertas 74LS02 (NOR) y 74LS04 (NOT), cristales de 4.9152 MHz, capacitores y resistencias de diferentes valores. 5.2.2. MICROPROCESADOR Z-80. Este microprocesador nos permite manejar de manera más optima los registros, cuenta con buses de datos, de direcciones y de control en forma independiente. Tiene un conjunto de instrucciones que nos permite simplificar las compilaciones y mejorar las prestaciones, esto debido a su arquitectura CISC que incluye 158 instrucciones. ·
Se utiliza una fuente de alimentación de 5VCD para su operación.
·
Disponible en versiones NMOS y CMOS para obtener alto desempeño a bajo costo.
·
Disponible para frecuencias de 4 a 20 MHz.
·
La familia de componentes Z80, pueden ser enlazados por medio del vector de interrupciones.
·
Se puede enmascarar las interrupciones de tres formas diferentes.
·
Contiene dos registros de índice de 16 bits para una mejor operación.
Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
25
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I.
·
Se pueden hacer arreglos en pares con los registros de 8 bits para formar registros de 16 bits.
·
Disponible en diferentes tipos de encapsulados; 40 pines en encapsulado DIP (Dual in Line); 44 pines en encapsulado QFP (Quad Flat Pack).
·
Utilizamos el encapsulado DIP de 40 pines, los cuales están divididos de la siguiente forma.
·
16 pines del bus de direcciones (A0,...A15).
·
8 pines para el bus de datos (d0,...D7).
·
Los pines de alimentación (Vcc y GND).
·
Las señales de control M1, MREQ, IORQ, RD, WR, FRS, HALT, WAIT, INT, NMI, RESET, BUSREQ, BUSACK, Y CLK. (Figura No. 2)
Figura No. 2: Esquema del microprocesador Z80
5.2.3. MEMORIAS RAM Y EEPROM. Un aspecto que se debe tomar en cuenta es que el microprocesador Z80, no cuenta con dos señales independientes que controlen la RAM y la ROM, por lo que es necesario implementar un circuito de control que nos permita elegir entre una memoria u otra, para este Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
26
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I.
caso se decidió utilizar el último bit de direcciones (A15) y la señal de control MREQ en combinación con compuertas lógicas para llevar la señal de selección hacia las memorias. MREQ
A15
ROM
RAM
0
0
0
1
0
1
1
0
1
0
1
1
1
1
1
1
Tabla No. 6: Lógica de selección de memorias Hex ROM
RAM
Diagrama No. 2: Selector de Memorias.
A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
0000
0 1
0 1
0 1
0 1
0 1
0 1
0
7FFF
0 0
8FFF
1
0
0
0
0
0
HF
1
1
1
1
1
1
0
1
0 1
0 1
0 1
0 1
0 1
0 1
0 1
1
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
Tabla No. 7: Mapeo para la selección de memorias RAM y ROM.
Se utilizó la memoria RAM HM62256, que cuenta con ocho bits en el bus de datos (D0-D7), quince bits en su bus de direcciones(A0-A14) y sus señales de control (WE, OE, CS), con capacidad de 256 Mb. Mientras que la memoria ROM utilizada es la EPROM 27256 (Erasable Programmable Read-Only Memory) de la misma familia y de características similares, también con una capacidad de 256 Mb; En ella se almacenó el programa con los parámetros de inicio del sistema.
RAM
ROM
Figura No. 4: Encapsulado de las memoria RAM HM62256 y EEPROM 27256. Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
27
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I.
5.2.4. MULTIPLEXOR 74LS138. Para el adecuado control de los diversos periféricos, es necesario incluir un sistema de selección, que permita a los dispositivos controlar el acceso al bus de datos y evitar colisiones entre ellos. Se decidió utilizar el multiplexor 74LS138 porque cuenta con las siguientes características: §
Multiplexor de alta velocidad.
§
Codificador de 3 entradas.
§
Decodificador con 8 líneas de salida.
§
Voltaje de alimentación de 5VCD (Igual que el Z80).
En nuestro caso sólo usaremos dos salidas, Y6 para el ADC y Y2 para el KIO Z84C90.
Figura No. 4: Lógica de control y encapsulado del multiplexor 74LS138.
5.2.5. CONVERTIDOR ANALÓGICO DIGITAL. La señal con la que trabajaremos se adquiere de forma analógica proveniente de un sensor, para poder trabajar ésta señal en forma digital, antes debe pasar por un proceso de conversión, en la que se establece una codificación binaria por cada nivel de voltaje; de esta manera ya estamos en condiciones de procesar la información.
Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
28
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I.
Para lograr lo anterior hacemos uso del convertidor analógico-digital ADC0808, el cual tiene las siguientes características. §
Compatible con todos los microprocesadores.
§
Opera con una fuente de 5 VCD (igual que el procesador Z80).
§
Multiplexor de 8 canales.
§
Rango de conversión de 0 a 5 volts.
§
Salida con las especificaciones TTL.
§
Tiempo de conversión 100 mseg.
En el ANEXO B, se explica el proceso de conversión de la señal analógica a digital.
Figura No. 5: Encapsulado del ADC0808
5.2.6. INTEGRADO Z84C90KIO. Este integrado es un complemento de la serie Z80 de Zilog, contiene los puertos seriales y paralelos, 4 canales de temporización y contadores programables, se usaron algunos componentes de este chip para generar algunas señales de sincronización, así mismo sirvió para establecer la comunicación entre la tarjeta y la computadora por medio de un puerto serial, entre sus características se encuentran las siguientes: o Totalmente compatible con el microprocesador Z80.
Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
29
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I.
o Disponible en encapsulado PLCC de 84 pines y LQFP de 100 pines. o Puertos de entrada y salida, programables. o Fuente de alimentación de 5 VCD. o 4 canales de temporización y contadores, programables. o Bus de direcciones de cuatro bits (A0,.... A3). o Frecuencia de operación de 2 a 20 Mhz.
Figura No. 6 : Encapsulado del integrado Z84C90.
5.2.7. POWER ON RESET. Para reestablecer los parámetros iniciales del sistema, se puede hacer de dos formas, la primera por medio del software diseñado para controlar la operación del sistema, la segunda vía hardware; en esta última, es necesario implementar un circuito que elimine los valores de los diferentes dispositivos. La señal de RESET tanto del micro como del KIO es la que realiza esta función y es activa baja, se debe tener la precaución de que algún pulso remanente provoque una interrupción de operación no deseada; por tal motivo, ambas terminales permanecerán deshabilitadas al conectarse a Vcc con una resistencia como protección de corriente, hasta que se pulse el botón PUSH PULL que es una derivación a tierra.
Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
30
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I.
Diagrama No. 3 : Implementación del dispositivo Power On Reset.
5.2.8. INTERFAZ SERIAL. Una manera de enlazar dos dispositivos es mediante
COMUNICACIÓN SERIAL ASÍNCRONA.
En ella los bits de datos se transmiten "en serie" (uno atrás de otro); para ello, cada dispositivo tiene su propio reloj, sin embargo es necesario que ambos equipos transmitan datos a la misma velocidad, esto se logra mediante el uso del protocolo RS232. El integrado MAX232, es un convertidor que permite adaptar los niveles RS232 a TTL y viceversa, estableciendo la comunicación entre la computadora y la tarjeta de adquisición de datos.
Diagrama No. 4:Conexiones de la interfaz serial y encapsulado del integrado MAX232.
Como puede observarse, en las entradas V+ y V- se usan valores diferentes a Vcc (5V), el integrado ofrece la ventaja que tiene un inversor y doblador de voltaje que Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
31
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I.
duplica el valor a 10 volts y lo invierte para obtener la señal RS232 requerida. De esta manera, no es necesario utilizar fuentes adicionales. En el ANEXO C, se hace una descripción mas detallada de la norma RS232. 5.3.
CONEXIONES.
En lo que respecta a las conexiones, éstas se hicieron de la siguiente manera: El bus de direcciones (A0,...A14), se conectaron directamente al bus de direcciones tanto de la memoria RAM como de la EPROM, reservándose el pin A15 para seleccionar junto con la señal de control MREQ a una de las dos memorias. También se conectaron los bits A0, A1 y A2 a las terminales ADD-A, ADD-B y ADD-C del convertidor ADC, respectivamente; para codificar la selección de los canales de adquisición. Así mismo se conectaron las direcciones A0,A1,A2 y A3, directamente al bus de direcciones del integrado Z94C90 KIO; para seleccionar y configurar los canales de temporización CTC0,...CTC3 y los puertos tanto seriales como paralelos. Las líneas de dirección A4, A5, A6 y A7, se conectan con las terminales C, B, A y G1 del multiplexor 74LS138, respectivamente, con la finalidad de implementar la lógica de selección para el ADC y el integrado KIO, en la siguiente sección 5.5 se presenta el mapeo de memoria, donde se puede observar claramente la configuración de cada uno de los dispositivos. El bus de dato D0,..D7, se conecta directamente con sus respectivas terminales en la RAM, EEPROM, KIO y ADC. La señal M1 del micro, se conecta con la señal M1 del KIO, para sincronizar el sistema. La señal IOREQ del microprocesador se conecta con las terminales G2A y G2B del multiplexor 74LS138 para codificar y obtener una señal de interrupción en las salidas Y2 y Y6 , que se utilizan para activar el KIO y el ADC, respectivamente. La salida Y2 del multiplexor se conecta a IOREQ y CS del KIO. Por su parte Y6 se combina mediante una compuerta NOR con la señal RD (lectura) del microprocesador para activar la salida del ADC y realizar un ciclo de lectura de dato. También se combina con WR Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
32
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I.
(escritura) usando otra compuerta NOR, la señal resultante es conectada a las entradas ALE, START y EOC del ADC para iniciar un ciclo continuo de conversión. La señal CLKOUT del KIO, se interconecta con CLK del mismo dispositivo para sincronizar los pulsos de reloj. Se configura la señal CTC0 del KIO para utilizarla como reloj del ADC. CTC1, se utiliza para configurar la frecuencia de transmisión (baudaje) de la comunicación serial. La salida del CTC2 del KIO, es programada para enviar una señal de interrupción al microprocesador (INT) cada 10 ms. Las terminales del puerto serial A (RxDA, TxDA) se conecta al integrado MAX232 (R1OUT, T1IN), para realizar la Recepción y Transmisión de datos, respectivamente desde y hacia la computadora. Para establecer comunicación de la tarjeta a la Computadora, es necesario utilizar una interfaz mediante un conector DB9, que contiene las señales de Transmisión (pin 3), Recepción de datos (pin 2) y conexión a tierra (pin 5), los cuales van conectados a las terminales T1OUT (pin 14) y R1IN (pin 13), respectivamente del integrado MAX232. La terminal de RESET, se conecta al dispositivo de inicialización (power on reset) para reestablecer los parámetros del sistema. Todos los elementos se alimentan con una fuente de +5VCD referenciados a GND (0 VCD). A continuación se presenta el diagrama de conexiones.
Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
33
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I.
Diagrama No. 5: Diagrama eléctrico de la Tarjeta Remota de Adquisición de Datos.
Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
34
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I.
5.4.
RELOJ DEL SISTEMA.
Para lograr el funcionamiento del sistema es necesario utilizar un mecanismo de sincronización que nos permita ajustar el tiempo de operación de los dispositivos al ciclo de maquina del procesador (M1), que es el tiempo que se tarda el microprocesador en hacer una lectura del código de operación (opcode fetch). La sincronización se realiza mediante un reloj de cuarzo de 4.9152 MHz, que nos proporciona el tiempo apropiado para lograr periodos de 0.2 µs (T cycle). Teniendo en cuenta que a mayor frecuencia existe un mayor nivel de calentamiento en el microprocesador se optó por utilizar un cristal esta frecuencia. Es necesario sin embargo utilizar tres ciclos de máquina, para ejecutar una instrucción, esto se puede ver claramente en la figura No. 4, donde se ocupa un ciclo M1 para hacer la lectura del código de operación, M2 para hacer la lectura a memoria y uno más M3 para la escritura.
Figura No. 7: Esquema de sincronización del microprocesador Z80.
La sincronización de las señales del microprocesador se muestran a continuación:
Figura No. 8 : Sincronización del microprocesador Z80. Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
35
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I.
En lo que respecta al integrado Z84C90, se utilizó el mismo circuito de reloj con la finalidad de sincronizar ambos dispositivos y programar los canales de temporización; éstos canales de temporización utilizan como tiempo base la mitad de la frecuencia de reloj, es decir 4.9152 ¸ 2 (CLK/TRG timer).
Figura No. 9 : Sincronización del CLK/TRG timer del KIO.
El CTC0 se programó a 153Khz para utilizarse como entrada de reloj del convertidor analógico digital (ADC0808), el cual puede trabajar hasta un límite máximo de 1.2 MHz.
Figura No. 10: Sincronización del ADC0808.
Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
36
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I.
El CTC1, fue programado para establecer la velocidad de transmisión del puerto serial a 9600 baudios.
Figura No. 11: Sincronización de la comunicación serial.
El CTC2, se utilizó para ajustar el reloj del sistema al tiempo real; de tal forma que genera una interrupción al microprocesador cada 10ms y cuando se hacen 100 interrupciones se cumple un segundo en tiempo real.
Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
37
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I.
5.5.
MAPEO DE MEMORIA. El mapeo de memoria, nos va a servir para identificar la sección de memoria que
está destinada a cada dispositivo del sistema, y para detectar en que dirección se puede localizar algún periférico.
En el cuadro siguiente se puede observar
claramente. MAPEO DE MEMORIA 32K 16K 8K 4K Hex \ Addr
2K
1K 512 256 128 64 32 16 8
4 2
1
A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
0000 7FFF
0
0
0
0
0
0
0
0
0 0 0 0 0 0 0 0
0
1
1
1
1
1
1
1
1 1 1 1 1 1 1 1
8000 FFFF
1
0
0
0
0
0
0
0
0 0 0 0 0 0 0 0
1
1
1
1
1
1
1
1
1 1 1 1 1 1 1 1
ROM
RAM
Junto con MREQ del Z80 >Memorias<
74LS138
Mux
G1 A B C
A0 ... A4 A5 A6 A7 A8 A9 AA AB ... AF B0 B1 B2 B3 B4 B5 B6 B7 ... BF
1 0 1 0 0 0 0 0 ... 1 0 1 0 0 1 0 0 CTC0 1 0 1 0 0 1 0 1 CTC1 1 0 1 0 0 1 1 0 CTC2 1 0 1 0 0 1 1 1 CTC3 1 0 1 0 1 0 0 0 SIO A Datos
KIO
1 0 1 0 1 0 0 1 SIO A Cmd 1 0 1 0 1 0 1 0 SIO B Datos 1 0 1 0 1 0 1 1 SIO B Cmd ...
Junto con IOREQ del Z80 >Perifericos<
1 0 1 0 1 1 1 1 1 0 1 1 0 0 0 0 Canal 0 1 0 1 1 0 0 0 1 Canal 1 1 0 1 1 0 0 1 0 Canal 2 1 0 1 1 0 0 1 1 Canal 3 1 0 1 1 0 1 0 0 Canal 4
ADC
1 0 1 1 0 1 0 1 Canal 5 1 0 1 1 0 1 1 0 Canal 6 1 0 1 1 0 1 1 1 Canal 7 ... 1 0 1 1 1 1 1 1
Tabla No. 8: Mapeo de memoria y dispositivos del sistema.
Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
38
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I.
SECCIÓN VI
PROGRAMACIÓN DEL SISTEMA Una vez que nuestro hardware esta armado, pasaremos a la etapa de programación. Esta etapa es muy importante, porque aquí se genera el software controlador del sistema, se establecen los parámetros iniciales y en base a órdenes el sistema va generando los resultados deseados.
Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
39
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I.
6.1
MODULOS DEL PROGRAMA. Para tener un panorama más amplio de las funciones del sistema, el programa se
elaboró por medio de los módulos que a continuación se describen: $title(TARJETA DE ADQUISICION DE DATOS V.01) $subtitle(Configuración y Palabras de control.) $copyright( UAM Iztapalapa) ; ******************************************************************************************************************* ; * Programa realizado por Roberto Barrueta y Aníbal Adán Campos ; * PROYECTO DE INGENIERIA ELECTRÓNICA II ; * Asesor: Alejandro Martínez G. ; ******************************************************************************************************************* ; ============================================================================ ; = Primeras instrucciones que se ejecutan cuando se pulsa el botón RESET. ; = Invoca la a subrutina INICIALIZA ( no envía ningún parámetro ). ; = Envia al puerto serial el Prompt > que indica que el sistema está listo. ; ============================================================================ DEFSEG REESTABLECER, CLASS=CODE, START=0000H SEG REESTABLECER NOP LD DI CALL LD LD LD OUT JP
SP,86FFH
;Modifica el apuntador de pila a la parte baja de la memoria libre.
INICIALIZA C,SIOAD A,'>' B,$00 (C),A INICIO
;Configura el sistema.
;Envía Símbolo del sistema.
; ============================================================================ ; = Se genero una Interrupción NO ENMASCARABLE. ; = Se utiliza para generar El Tiempo Real del sistema. ; = La interrupción se activa cada 10 ms. debido a que el CTC2 del KIO, esta conectado al ; = pin NMI del Z80. ; ============================================================================ DEFSEG INTERRUPCION, CLASS=CODE, START=0066H SEG INTERRUPCION EX AF,AF' ;Salva el contenido de REG-A y REG-F LD A,(MSEGSYS) INC A LD (MSEGSYS),A CP 64H ;Milisegs=100 = 1s ? JP NZ, TERMINA_INT XOR A ;Limpia el Acumulador. LD (MSEGSYS),A ; Milisegs = 0 LD A,(SEGSYS) INC A LD (SEGSYS),A CP 3CH ; ¿ Segundos = 60 =1min ? JP NZ, TERMINA_INT XOR A ;Inicializa los segundos LD (SEGSYS),A ; Segundos = 0 LD A,(MINSYS) INC A LD (MINSYS),A CP 3CH ;¿ Minutos = 60 ? JP NZ, TERMINA_INT XOR A ;Inicializa los minutos
Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
40
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I. LD (MINSYS),A LD A,(HORASYS) INC A LD (HORASYS),A CP 18H JP NZ, TERMINA_INT XOR A LD (HORASYS),A TERMINA_INT: EX AF,AF' RETN
; ¿ Horas = 24 ? ;Inicializa las horas ; Recupera el contenido de REG-A y REG-F ; Retorno de una Interrupción No Enmascarable.
; ============================================================================ ; = Programa principal. ; = Verifica si hay un dato en el SIO y los compara con los comandos del sistema ( S, C, M, R ) : = Ejecuta la subrutina EDO_TIEMPO (No envia ningun parámetro). ; ============================================================================ DEFSEG PRINCIPAL, CLASS=CODE, START=0200H SEG PRINCIPAL INICIO: LD CP JP CALL LD
A,(MSEGSYS) 30H NZ, INICIO LEEDATO A,D
; Generamos una pausa ; LEE un dato cada segundo, se guarda en REGISTRO-D ; A = Dato
SALTO: CP JP CALL JP
'S' NZ,SALTO1 SISTEMA NOIMPR
CP JP CALL JP
'C' NZ,SALTO2 CANAL NOIMPR
CP JP CALL JP
'R' NZ,SALTO3 REPORTE NOIMPR
CP JP CALL JP
'M' NZ,SALTO4 MAXIMOS NOIMPR
; ¿ Dato = "S" ? ; Salta si no es igual. ; Si es igual, llama a la subrutina SISTEMA. ; salta
SALTO1:
SALTO2:
SALTO3:
SALTO4: CP LD OUT NOIMPR: HALT LD CP JP CALL JP INICIO
'?' B,$00 (SIOAD),A A,(SEGSYS) 0AH NZ, INICIO EDO_TIEMPO
; Sobreflujo al escribir en el puesto serial
;Detiene la ejecución del CPU hasta detectar una interrupcion ;Obtenemos los SEGUNDOS del sistema. ;¿ Segs = 10 ? ;Si no es igual, salta a -inicio;Si es igual, checa el estado del tiempo de los canales. ;Regresa al inicio.
; ============================================================================ ; = Esta rutina imprime los máximos de todos los canales. ; = No recibe ningun parámetro. ; ============================================================================ MAXIMOS: LD B,$00 LD E,$00 LD D,$00
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
41
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I. MAX1: LD SUB JP LD ADD LD HALT OUT INC JP FIN_MAXIMOS: RET
A,E $08 P,FIN_MAXIMOS IX,MAXIMO IX,DE A,(IX) (SIOAD),A E MAX1
;A=0 ;A=A-8 ;¿ A es mayor que 7 ?, termina ;Apuntamos al Máximo del primer canal. ;Nos desplazamos al Máximo del canal deseado ;Recuperamos máximo. ;Envia el máximo al puerto serial ;siguiente Canal.
; ============================================================================ ; = Esta rutina envía al puerto serial, toda la información almacenados en RAM de los 8 canales. ; = No recibe ningún parámetro. ; ============================================================================ REPORTE: LD E,$00 LAZO: LD A,E ;Numero de canal ADD $30 OUT (SIOAD),A ; LD A,':' ;Imprime dos puntos OUT (SIOAD),A LD D,$00 LD IX,DIR_INICIAL ADD IX,DE ADD IX,DE LD H,(IX+1) LD L,(IX) ;HL= Posición inicial del primer dato del canal LD IY,APUNTADOR ADD IY,DE ADD IY,DE LD B,(IY+1) LD C,(IY) ;BC= Posición del último dato del canal IMPRIME _ DATOS: LD D,B ;Guarda B en D HALT ; Pausa de 10 ms. LD B,$00 LD A,(HL) ;A= Dato almacenado OUT (SIOAD),A ; Sale info. por el puerto serie LD B,D ;Recupera B INC HL PUSH HL ;Guarda HL en pila POP IX ;Lo recuperamos para no incrementar la pila SBC HL,BC ;HL = HL-BC. JP P,SEL_CANAL ;Salta si posición de dato es > apuntador PUSH IX ;Guardamos en pila POP HL ;Lo recuperamos. JP IMPRIME _ DATOS SEL_CANAL: INC E ;Toma el siguiente canal. LD A,$07 ;Núm. máximo de canales. SUB E ;Resta el numero de canal A=A-E. JP M,FIN_REPORTE ;Si es mayor que 7 termina rutina. JP LAZO ;Otro caso pasa al siguiente canal. FIN_REPORTE: HALT LD B,$00 LD A,$0C ;Salto de línea OUT (SIOAD),A LD A,'>' ;Símbolo del sistema para indicar fin de proceso OUT (SIOAD),A RET ; ============================================================================
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
42
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I. ; = Esta rutina checa que Los Tiempos Para Adquirir Datos de cada canal se han cumplido. ; = Leer información del ADC y grabarlo en memoria. ; = No recibe ningun parámetro ; = Se ejecuta la Subrutina EJECUTA enviándole el Número de Canal en el REGISTRO-E ; ============================================================================ EDO_TIEMPO: LD E,$00 ;Contador de canal (0-7) LD D,$00 SIG_CANAL: LD IX,MINSYS ;Dirección de minutos del sistema. LD IY,SIG_MUESTRA ;Dirección de minutos del canal 0. ADD IY,DE ADD IY,DE LD A,(IY) ;Toma los minutos del canal correspondiente. CP (IX) ;Comparalo con los minutos de sistema. JP NZ, OTRO_CANAL ;Salta si no son iguales los minutos LD A,(IY+1) ;Toma la hora del canal. CP (IX+1) ;Comparalo con la hora del sistema. JP NZ, OTRO_CANAL ;Salta si no son iguales las horas. CALL EJECUTA ;Es hora de capturar el dato del canal indicado en REG-E. OTRO_CANAL: INC E ;Toma el siguiente canal. LD A,$07 ;Núm. Máximo de canales. SUB E ;Resta el numero de canal A=A-E. JP M, TERMINA ;Si es mayor que 7 termina rutina. JP SIG_CANAL ;Otro caso pasa al siguiente canal. TERMINA: RET ;Termino de verificar el estado del tiempo de cada canal.
; ============================================================================ ; = Esta subrutina recibe REG-E: El ultimo canal que fue leído. ; = Captura un dato del ADC, lo almacena, verifica que sea un máximo. ; ============================================================================ EJECUTA: ;. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; Lo primero que debemos hacer es LEER UN DATO DEL ADC. ;. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LD D,$00 ; LD B,$00 ; LD A,$B0 ;Mapeamos el ADC. ADD E ;Seleccionamos el canal del ADC. LD C,A ; LD A,$00 OUT (C),A ;Señal de activación. HALT ;pausa de 10 ms HALT ;pausa de 10 ms IN A,(C) ;Leemos dato desde el ADC. ;. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; Salvamos el dato en RAM ;. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LD IX,APUNTADOR ;IX= dirección donde se guarda el apuntador del siguiente ; espacio libre en memoria. (DIR INDIRECTA) ADD IX,DE ADD IX,DE LD B,(IX+1) ;Apunta a la dirección libre LD C,(IX) LD (BC),A ;Guarda dato. ;. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;Desplazamos el apuntador a la siguiente posición de memoria libre ;. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
... ...
... ...
... ...
43
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I. INC BC ;Incrementa apuntador LD IX,DIR_FINAL ;Dir. final de C0. ADD IX,DE ADD IX,DE ;Nos desplazamos al canal deseado. LD H,(IX+1) ; LD L,(IX) ; SBC HL,BC ; JP M,REINICIA ;Coloca el apuntador en la posición inicial. LD IX,APUNTADOR ; ADD IX,DE ADD IX,DE LD (IX+1),B ;Guarda la parte alta del apuntador LD (IX),C ;Guarda la parte baja del apuntador JP MAX ; REINICIA: LD IX,DIR_INICIAL ;Dir. de inicio canal 0. ADD IX,DE ADD IX,DE LD B,(IX+1) ; LD C,(IX) ; LD IY,APUNTADOR ;Parte alta de la dir. de inicio canal 0. ADD IY,DE ADD IY,DE LD (IY+1),B ;Guarda parte alta del apuntador LD (IY),C ; MAX: LD A,$00 LD (BC),A ;Limpia posición libre ;. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; Verifica si es un máximo ;. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LD B,A ; B = dato LD HL,MAXIMO ;Valor máximo del canal 0. ADD HL,DE ;Nos desplazamos para tomar el canal deseado SUB (HL) ;A = A - (HL). JP M,NO_MAX ;Salta si el resultado es negativo. LD (HL),B ;Actualiza el valor máximo. NO_MAX: ;. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; Actualiza el tiempo para la siguiente lectura de datos. ;. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CALL ACTUALIZA ; RET
... ...
... ...
; =========================================================================== ; = Ejecuta INSTRUCCIONES provenientes del PUERTO SERIAL. ; = Ejecuta instrucciones para el canal seleccionado (Enviar el valor Máximo o Reporte, ; = Borrar información, Actualizar Tiempo de Captura) ; = Cuando termine debe de regresar al Menú INICIO. ; =========================================================================== CANAL: ;. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LD D,$00 LD B,$00 LD C,SIOAD LD A,'C' ;Envia al puerto serial, una para confirmar. OUT (C),A LD A,'=' ;Envia al puerto serial, un para pedir el numero de canal. OUT (C),A ;. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;Primero, pedir el NUMERO DE CANAL (0 a 7) ;. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CALL NUMERO ;Devuelve en REG-E el numero tecleado (0,F) LD A,E ;A=Numero de Canal CP $00 JP Z,PAUSA1 SUB $08 ;A= A-8 JP P,FIN_CANAL ;Salta si es positivo. (es mayor que 7). No es un valor correcto
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
44
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I. ;. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;Segundo, esperar a que el usuario teclee una tecla y verificar que sea un comando permitido. ;. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PAUSA1: LD CP JP CALL
A,(SEGSYS) 0AH NZ, PAUSA2 EDO_TIEMPO
; ¿ Seg = 10 ? ; Verificar los tiempos de adquisición de cada canal.
PAUSA2: CALL LEEDATO ; Checa si escribieron algo. Recibe un valor en REG-D. LD A,D CP $00 ; 00 = Vacio JP Z,PAUSA1 ; Espera hasta que sea distinto de cero. ;. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;Tercero, ejecutar instrucciones o regresar al menú principal ;. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CP 'R' ; Envia al puerto serial los datos almacenados del canal JP NZ,OPCION2 ; No fue "R" salta a la opcion2 HALT LD D,$00 ; Si fue "R" continua LD B,$00 OUT (SIOAD),A ; Imprime una "R" LD IX,DIR_INICIAL ; Recuperar la Primera Dirección de Datos, del Primer Canal. ADD IX,DE ADD IX,DE LD H,(IX+1) ; Desplazarse al la Primera Dirección de Datos del Canal Deseado. LD L,(IX) ; HL= Posición inicial del primer dato LD IY,APUNTADOR ADD IY,DE ADD IY,DE LD B,(IY+1) LD C,(IY) ; BC= Posición del apuntador MAS_DATOS: LD D,B ;Guarda B LD A,(HL) ; A= Dato almacenado LD B,$00 OUT (SIOAD),A ; Sale dato por el puerto serial LD B,D ; Recupera B HALT ; Pausa de 10 ms. HALT INC HL PUSH HL ; Guarda HL en pila POP IX ; Recupera el dato de pila en IX, (IX=HL) SBC HL,BC ; HL = HL-BC. JP P,FIN_CANAL ; Salta si posición de dato es > apuntador PUSH IX POP HL JP MAS_DATOS ;. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; Borra los datos del canal. ;. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OPCION2: CP 'B' JP NZ,OPCION3 HALT LD D,$00 LD B,$00 OUT (SIOAD),A ;Imprime una "B" LD IX,DIR_INICIAL ADD IX,DE ADD IX,DE LD H,(IX+1) LD L,(IX) ;HL= Posición inicial del primer dato LD (HL),$00 ;Borra primer dato LD IX,APUNTADOR ADD IX,DE ADD IX,DE
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
45
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I. LD (IX+1),H LD (IX),L ;El apuntador = Posición inicial del dato 1. LD IX,MAXIMO ADD IX,DE LD (IX),$00 ;Borra dato máximo de ese canal JP FIN_CANAL ;. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; Envía el valor máximo del canal. ;. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OPCION3: CP 'M' JP NZ,OPCION4 HALT LD D,$00 LD B,$00 OUT (SIOAD),A ;Imprime una "M" LD IX,MAXIMO ADD IX,DE LD A,(IX) ;A=Dato máximo del canal HALT LD B,$00 OUT (SIOAD),A JP FIN_CANAL ;. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; Modificar el Tiempo de Adquisición del canal indicado. ;. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OPCION4: CP 'T' ;Actualiza cada cuando se va a leer un dato. JP NZ,FIN_CANAL HALT LD D,$00 LD B,$00 OUT (SIOAD),A ;Imprime una "T" CALL TIEMPO ;Devuelve C=Minutos Base y B=Horas base LD IX,INCREMENTA ADD IX,DE ADD IX,DE LD (IX+1),B ;Salva horas LD (IX),C ;Salva minutos CALL ACTUALIZA ;Actualiza tiempo real de la siguiente muestra para cada canal. FIN_CANAL: HALT LD B,$00 LD A,'>' OUT (SIOAD),A RET ;Fin de CANAL. ; ============================================================================ ; = Modifica el Reloj Principal del Sistema ; = No recibe ningún parámetro ; ============================================================================ SISTEMA: LD D,$00 LD B,$00 HALT LD A,'S' ;Un valor S para confirmacion OUT (C),A HALT LD A,'=' ;Un valor = para confirmacion OUT (C),A ;. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CALL LD LD LD LD
TIEMPO IX,MINSYS (IX),C (IX+1),B E,$00
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
;Devuelve C=Minutos Base y B=Horas base ;Guarda Minutos de tiempo real ;Guarda Horas de tiempo real
A
46
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I. SIS1:
;Hay que actualizar todos los canales LD SUB JP CALL
A,E $08 P,FIN_SISTEMA ACTUALIZA
LD ADD ADD LD LD LD LD ADD ADD LD LD LD ADD LD INC JP FIN_SISTEMA: HALT LD LD OUT RET
IX,DIR_INICIAL IX,DE IX,DE H,(IX+1) L,(IX) (HL),$00 IX,APUNTADOR IX,DE IX,DE (IX+1),H (IX),L IX,MAXIMO IX,DE (IX),$00 E SIS1
;A=A-8 ;(A es mayor que 7?, termina ;Actualiza tiempo real de la siguiente muestra para cada
canal. ;Inicializa los datos de canal
;HL= Posición inicial del primer dato ;Borra primer dato
;El apuntador = Posición inicial del dato 1. ;Borra dato máximo de ese canal ;siguiente Canal.
B,$00 A,'>' (SIOAD),A ;Fin de SISTEMA
; ============================================================================ ; = Configura el tiempo de adquisición de cada canal o del sistema. : = En los minutos, solo se aceptan múltiplos de 5. 0=1min, 1=5min, ... B=55min. ; = En las horas, se utiliza el formato 0-12. 0=0horas, 1=1hora, C=12horas. ; = Recibe el número de canal en el REGISTRO-E. ; = Devuelve los minutos en el REGISTRO-C. Devuelve las horas en el REGISTRO-B ; ============================================================================ TIEMPO: PUSH DE ;Guarda REG-E = Numero de canal. CALL NUMERO ;Devuelve un numero entre $00 y $0F en REG-E LD A,E ;A=numero tecleado por el usuario (Si A=FF,error) SUB $0C ;A = A-$0C JP P,ERROR_TIEMPO ;A es mayor que 12?, termina ; HALT ; HALT ; LD B,$00 ; LD A,E ;Numero de horas en Hex ; ADD $30 ;Numero de horas en Dec. ; OUT (SIOAD),A ;Confirmacion LD B,E ;B=hora tecleada por el usuario CALL LD SUB JP LD LD CP JP
NUMERO A,E ;A=numero tecleado por el usuario $0B ;A = A- 11 P,ERROR_TIEMPO ;A es mayor que 11?,termina D,$00 A,E ;A=valor entre 0 y 12 $00 Z,UN_MINUTO ;Si es cero, asignar: un minuto.
T1: INC INC INC INC INC DEC JP JP UN_MINUTO: LD
D D D D D A NZ,T1 FIN_TIEMPO
;Para los minutos, solo seran validos ;multiplos de 5.
D,$01
;Se pulso la tecla "0", entonces minutos=1
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
47
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I. JP ERROR_TIEMPO: LD LD FIN_TIEMPO: LD HALT HALT LD ; LD ; ADD ; OUT LD OUT LD LD POP RET
FIN_TIEMPO B,$00 D,$01 C,B B,$00 A,D $30 (SIOAD),A A,'>' (SIOAD),A B,C C,D DE
;Guarda B(horas) en REG-C
;Recupera horas (B) ;C = minutos tecleados por el usuario ;Recupera REG-E = Numero de canal. ;Fin de TIEMPO
; ============================================================================ ; = Convierte el carácter numérico proveniente del puerto serial en valor hexadecimal. ; = Si el carácter no es un número, se desecha. ; = Se envía el valor en el REGISTRO-E ; ============================================================================ NUMERO: HALT LD A,(SEGSYS) CP 0AH ; ¿ Seg = 10 ? JP NZ, NUMERO1 CALL EDO_TIEMPO ;Checa el estado del tiempo de los canales NUMERO1: CALL LEEDATO ;Checa si se tecleo un dato. D=Dato. LD A,D ;A=Dato del puerto serial CP $00 ;00 = Vacio JP Z,NUMERO ;Espera hasta que tecleen un dato. ;. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CP '0' ; ¿Se tecleo un CERO ? JP NZ,NUM1 ; No, Salta al sig. numero. LD E,$00 ; Sí, E = cero en hexadecimal. JP FIN_NUMERO NUM1: CP '1' JP NZ,NUM2 LD E,$01 JP FIN_NUMERO NUM2: CP '2' JP NZ,NUM3 LD E,$02 JP FIN_NUMERO NUM3: CP '3' JP NZ,NUM4 LD E,$03 JP FIN_NUMERO NUM4: CP '4' JP NZ,NUM5 LD E,$04 JP FIN_NUMERO NUM5: CP '5' JP NZ,NUM6 LD E,$05 JP FIN_NUMERO NUM6: CP '6' JP NZ,NUM7 LD E,$06
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
48
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I. JP
FIN_NUMERO
CP JP LD JP
'7' NZ,NUM8 E,$07 FIN_NUMERO
CP JP LD JP
'8' NZ,NUM9 E,$08 FIN_NUMERO
CP JP LD JP
'9' NZ,NUMA E,$09 FIN_NUMERO
CP JP LD JP
'A' NZ,NUMB E,$0A FIN_NUMERO
CP JP LD JP
'B' NZ,NUMC E,$0B FIN_NUMERO
CP JP LD JP
'C' NZ,NUMD E,$0C FIN_NUMERO
CP JP LD JP
'D' NZ,NUME E,$0D FIN_NUMERO
CP JP LD JP
'E' NZ,NUMF E,$0E FIN_NUMERO
NUM7:
NUM8:
NUM9:
NUMA:
NUMB:
NUMC:
NUMD:
NUME:
NUMF: CP JP LD JP NO_NUMERO: LD JP FIN_NUMERO: LD SUB JP LD ADD JP NOMAS: LD ADD IMP_NUMERO: HALT HALT LD OUT RET
'F' NZ,NO_NUMERO E,$0F FIN_NUMERO E,$10 NOMAS A,E $0A M,NOMAS A,E $37 IMP_NUMERO A,E $30
B,$00 (C),A
;Error,
;A=A-10 ;$37+(REG-E)="A", "B",...,etc.
;$30 +(REG-E)="1","2",...,etc.
;Devuelve el valor real ;Fin de NUMERO
; ============================================================================ ; = Actualiza el tiempo de captura del canal indicado.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
49
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I. ; = Recibe el numero de canal que se va a actualizar a través del REGISTRO-E. ; = Al Tiempo del Sistema, se le suma el intervalo de captura del canal indicado. : = El nuevo tiempo de captura, se graba en los Registros Auxiliares. ; ============================================================================ ACTUALIZA: LD D,$00 LD IX,MINSYS ;Recupera los minutos del sistema LD B,(IX) ;B=Minutos del sistema LD IX,INCREMENTA LD IY,SIG_MUESTRA ADD IX,DE ADD IX,DE ADD IY,DE ADD IY,DE LD C,$00 ;Acarreo de horas. cuando minutos > 60 LD A,(IX) ;Recupera los minutos base del canal AGREGA_MIN: CP $00 JP Z,FIN_MINUTOS ;Se acabaron los minutos DEC A INC B ;Incrementa los minutos LD D,A ; PUSH AF ;Salva A LD A,$3C ;A=60 CP B ;A = B = 60? JP NZ,MAS_MINUTOS ;Salta si no ha llegado a 60 minutos LD B,$00 ;Reinicializa los minutos INC C ;Incrementa el acarreo de horas MAS_MINUTOS: LD A,D LD D,$00 ; POP AF ;Recupera A JP AGREGA_MIN FIN_MINUTOS: LD (IY),B ;Salva los minutos para la sig. muestra LD HL,HORASYS ;Recupera las horas del sistema LD B,(HL) LD A,(IX+1) ;Recupera las horas base del canal ADD C ;Agrega horas de acarreo de los min. AGREGA_HORA: CP $00 JP Z,FIN_HORAS DEC A INC B ;Incrementa las horas LD D,A ; PUSH AF ;Salva A LD A,$18 CP B ;(A = B = 24? JP NZ,MAS_HORAS ;Salta si no ha llegado a 60 minutos LD B,$00 ;Reinicializa los minutos MAS_HORAS: ; POP AF ;Recupera A LD A,D LD D,$00 JP AGREGA_HORA FIN_HORAS: LD (IY+1),B ;Salva las horas para la sig. muestra RET ;Fin de ACTUALIZA ; ============================================================================ ; = Esta rutina verifica si el buffer de tx del SIO-A esta vacío. ; = Si esta vacío, regresa un cero, en caso contrario regresar el caracter. ; = Se regresa el dato en el REGISTRO-D. ; ============================================================================ LEEDATO: LD B,$00 ;A15-A8=0 XOR A ;DIR. DE REGISTRO DE LECTURA 0 LD C,SIOAC ;C TOMA DIR. SIOAC
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
50
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I. OUT IN BIT JP LD OUT IN LD IN LD BIT JP BIT JP BIT JP JP LIMPIAERROR: LD OUT LD JP NODATOSIO: LD CARACTER: RET
(C),A A,(C) 0,A
;SALE DIR. DE REGISTRO DE LECTURA 0 ;A TOMA INFO DEL REG. DE LECTURA ;el bit 0 de REG-A lo compara con CERO ;VERIFICA SI Rx CARATER DISPONIBE D0=1 ;SI D0=0, NO HAY CARACTER DISPONIBLE. ;Carácter Disponible: ;SALE DIR. DE REGISTRO DE LECTURA 1 ;A TOMA INFO DEL REG. DE LECTURA 1
Z,NODATOSIO A,$01 (C),A A,(C) C,SIOAD D,(C) C,SIOAC 4,A NZ,LIMPIAERROR 5,A NZ,LIMPIAERROR 6,A NZ,LIMPIAERROR CARACTER
;Reg-D = Caracter del SIO.
A,$30 (C),A D,$3F CARACTER
;Código para limpiar error de Rx
D,$00
;No recibio dato, envia 00H para confirmar
;Envía un valor para idenficar el error(?)
; Fin de generadato. ; Regresamos el dato leído por el REG-D.
; =========================================================================== ; = Se definen variables estaticas para cada dispositivo del sistema. ; = Se establecen valores de inicio de periféricos. ; = Se reservan localidades de memoria para el almacenamiento de parámetros. ; =========================================================================== INICIALIZA: CTC0: EQU CTC1: EQU CTC2: EQU CTC3: EQU SIOAC: EQU SIOAD: EQU MSEGSYS: SEGSYS: MINSYS: HORASYS:
$A4 $A5 $A6 $A7 $A9 $A8 EQU EQU EQU EQU
8000H 8001H 8002H 8003H
INCREMENTA: EQU SIG_MUESTRA: EQU DIR_INICIAL: EQU DIR_FINAL: EQU APUNTADOR: EQU MAXIMO: EQU
8010H 8020H 8030H 8040H 8050H 8060H
LD LD LD LD LD LD LD LD GUARDA_RAM: LD LD INC INC DEC JP
A,$00 (MSEGSYS),A (SEGSYS),A (MINSYS),A (HORASYS),A IX,DATOS ;Apuntamos a donde están los datos A,$60 ;Numero total de datos=90 (de 8 bytes) HL,INCREMENTA ;Dirección de RAM $8010 D,(IX) ;Recupera dato de ROM (HL),D ;Guarda en RAM HL IX A NZ,GUARDA_RAM
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
51
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I. ;. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; Seleccionamos el CTC0 del KIO y lo configuramos. Para el ADC. ; Flanco de bajada.(2457600/16/01=153600) LD LD
B,$00 A,$05
OUT
(CTC0),A
LD
A,$01
OUT
(CTC0),A
; mandamos la palabra de ctrl. hacia el CTC0 preescaler x
16 ; 1o. A15-A8=0000 0101 y A7-A0= 1010 0100 ; 2o. IORQ = 0 y WR = 0 ; 3o. BUS DE DATOS = 00000101 05H ; mandamos la palabra de cte. de tiempo hacia ; el CTC0. D7-D0= 0000 0001 01H ; A15-A8=0000 0000 A7-A0= 1010 0100 00A4H
;. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; Seleccionamos el CTC1 del KIO y lo configuramos. Para el SIO. ; Flanco de bajada.(2457600/256/8=9600) LD
A,$25
OUT
(CTC1),A
LD
A,$08
OUT
(CTC1),A
; mandamos la palabra de ctrl. hacia el CTC1 ; preescaler x256. A=00100101 ; 1o. A15-A8=0000 0101 y A7-A0= 1010 0100 ; 2o. IORQ = 0 y WR = 0 ; 3o. BUS DE DATOS = 00100101 25H ; mandamos la palabra de cte. de tiempo hacia ; el CTC1. D7-D0= 0000 1000 08H ; A15-A8=0000 0000 A7-A0= 1010 0100 00A5H
;. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; Seleccionamos el CTC2 del KIO y lo configuramos. Para Interrupción NMI. ; Flanco de bajada.(2457600/256/96=100 Baudios = 10 ms) LD
A,$25
OUT
(CTC2),A
LD
A,$60
OUT
(CTC2),A
; mandamos la palabra de ctrl. hacia el CTC2 ; preescaler x256. A=00100101 ; 1o. A15-A8=0000 0101 y A7-A0= 1010 0110 ; 2o. IORQ = 0 y WR = 0 ; 3o. BUS DE DATOS = 00010101 15H ; mandamos la palabra de cte. de tiempo hacia ; el CTC2. D7-D0= 0110 0000 60H=96D ; A15-A8=0000 0000 A7-A0= 1010 0100 00A6H
;. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; Seleccionamos el CTC3 del KIO y lo configuramos. Para el SIO. ; Flanco de subida.(2457600/256/96=100 ) LD
A,$35
OUT
($A7),A
LD
A,$60
OUT
($A7),A
; mandamos la palabra de ctrl. Hacia el CTC3. ; preescaler x256 00110101 ; 1o. A15-A8=0000 0101 y A7-A0= 1010 0100 ; 2o. IORQ = 0 y WR = 0 ; 3o. BUS DE DATOS = 00010101 15H ; mandamos la palabra de cte. de tiempo hacia ; el CTC3. D7-D0= 0110 0000 60H=96D ; A15-A8=0000 0000 A7-A0= 1010 0100 00A7H
;. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; Configuramos el SIO-A LD LD OUT LD OUT LD OUT LD OUT LD OUT LD
B,$00 A,$18 (SIOAC),A A,$14 (SIOAC),A A,$04 (SIOAC),A A,$03 (SIOAC),A A,$C1 (SIOAC),A A,$05
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
;A15-A8 CEROS ;RESET CANAL A DEL SIO ;LO SACO ;RESET EX/STA INT Y DIR WR4 ;LO SACO ;x01,1 BIT DE PARADA, SIN PARIDAD ;LO SACO ;DIR WR3 ;LO SACO ;8 BITS,RX ACTIVA, AUTO ENE INACTIVO ;LO SACO ;DIR WR5
52
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I. OUT LD OUT LD OUT LD OUT RET
(SIOAC),A A,$EA (SIOAC),A A,$11 (SIOAC),A A,$11 (SIOAC),A
;LO SACO ;8 BITS,TX ACTIVO,DTR Y RTS ACTIVOS ;LO SACO ;DIR WR1 Y RESET EX/STA INT ;LO SACO ;EXT INT ACTIVA,TX INT INACTIVA, INT ;EN TODOS LOS CARACTERES RECIBIDOS ;LO SACO
; fin de inicializa.
;. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; Se reserva espacio para almacenar los datos obtenidos de cada canal. ; así como los registros donde se almacenaran los valores máximos del ADC. ; Se define una dirección FIJA para almacenar los apuntadores y los tiempos de captura de cada canal. DEFSEG DATO, CLASS=CODE, START=1000H SEG DATO ;Formato: ;Canal-0,Canal-1,Canal-2,Canal-3,Canal-4,Canal-5,Canal-6,Canal ;H:M H:M H:M DATOS: DW DW DW DW DW DW
$0001,$0001,$0001,$0001,$0001,$0001,$0001,$0001 ;8010H Tiempo base $0001,$0001,$0001,$0001,$0001,$0001,$0001,$0001 ;8020H Tiempo para la siguiente muestra $8700,$8800,$9000,$9800,$A000,$A800,$B000,$B800 ;8030H Dirección _inicial para la captura de datos $87FF,$8FFF,$97FF,$9FFF,$A7FF,$AFFF,$B7FF,$BFFF ;8040H Dirección final para la captura de datos $8700,$8800,$9000,$9800,$A000,$A800,$B000,$B800 ;8050H Comienza la captura de datos en $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000 ;8060H Almacena los Máximos (inicializa en cero): END
; fin del programa.
; =========================================================================== ; =========================================================================== ; ===========================================================================
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
53
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I.
6.2
USO DEL SIMULADOR SIMZ80.
Con el fin de verificar cada núcleo del programa, se utilizó el simulador SIMZ80, que es un software que nos permite ejecutar el programa y nos presenta el resultado en forma virtual, con ello se pudo afina el funcionamiento de las rutinas del programa. El software es muy sencillo, pero es de gran utilidad; ya que nos presenta la dirección a la que apunta o contiene cada uno de los registros, así como el contenido de las memoria RAM y ROM, de esta forma se puede hacer un seguimiento de los parámetros y variables de nuestro sistema; en las dos figuras siguientes se presenta las ventanas principales del programa.
Pantalla de inicio del simulador, se tiene que seleccionar una opción.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
54
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I.
Figura No. 12:Simulación virtual del estado de los registros del procesador z80. (aún no se carga el programa).
6.3 A.
MANUAL DE OPERACIÓN DEL SISTEMA.
Iniciar el sistema pulsando el botón de RESET. - Aparecerá el símbolo del sistema:
B.
>
Configurar los periodos de adquisición para cada canal de la siguiente manera: Nota. Una de las ventajas de éste sistema al tener ocho canales de adquisición, es
que cada canal se puede programar independientemente a periodos diferentes; por defecto, todos los canales adquirirán datos cada minuto. ACCIÓN B.1 Pulsar la letra
VARIABLE C
(mayúscula)
C=
EFECTO Indicar
al
programa
que
deseamos configurar un canal. B.2 Elegir el canal deseado B.3 Pulsar la tecla
(del 0 al 7) (mayúscula)
C=2
Selección del canal.
C=2T
Indicar al programa que vamos a cambiar la temporización del
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
55
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I. ACCIÓN
VARIABLE C
EFECTO canal seleccionado.
B.4 Escribir las horas
(0,1,2,....9,A,B,C)
C=2T3
Seleccionamos la hora teniendo en cuenta que se usa el sistema hexadecimal. 0= 0 horas 1=1 horas : B=11 horas y C=12 horas
B.5 Escribir los minutos
(0,1,2,....,9,A,B)
C=2T3B
Se seleccionan en periodos de 5 minutos. 0=1 min 1=5 minutos : A=50 minutos B=55 minutos
B.6 Realizar la misma operación para cada canal. Tabla No. 9: Configuración de tiempos de adquisición por cada canal.
Aparece el símbolo del sistema
> ; el resultado final será que el canal 2 tomará
datos cada 3 horas con 55 minutos. Obs.- Si se escribe un valor fuera de rango, el canal tomará datos cada minuto (valor por defecto). C.
Recuperar los datos almacenados por uno de los canales. ACCIÓN C.1 Pulsar la letra
VARIABLE C (mayúscula)
C.2 Elegir el canal deseado C.3 Pulsar la tecla
(del 0 al 7) (mayúscula)
C=
EFECTO Para seleccionar canal.
C=5 C=5R
Recuperar dato.
C.4 Realizar la misma operación para cada canal. Tabla No. 10: Recuperación de datos almacenados por canal.
El sistema enviará todos los datos capturados hasta el momento.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
56
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I.
D.
Obtener el valor máximo de cada canal. ACCIÓN
VARIABLE C
D.1 Pulsar la letra
(mayúscula)
D.2 Elegir el canal deseado
(del 0 al 7)
EFECTO
C=
Selección de canal
C=0 Recupera el valor
D.3 Pulsar la tecla M
(mayúscula)
C=0M
máximo almacenado en el canal.
D.4 Realizar la misma operación para cada canal. Tabla No. 11: Obtención de valores máximos por canal.
E.
Borrar los datos de un canal ACCIÓN E.1 Pulsar la letra
VARIABLE C (mayúscula)
E.2 Elegir el canal deseado E.3 Pulsar la tecla
(del 0 al 7) (mayúscula)
EFECTO
C=
Seleccionar canal.
C=7 C=7B
Limpia la información almacenada en el canal.
E.4 Realizar la misma operación para cada canal. Tabla No. 12: Eliminar datos de un canal.
F.
Configurar el Reloj del Sistema. En este módulo configura el reloj a la hora indicada por el usuario, y a partir de ese
momento todos los canales comienzan a contabilizar su periodo de adquisición de datos; de otro modo el sistema comenzaría como si fueran las 00:01 horas. El tiempo de adquisición de cada canal, se ajustará al tiempo actual del sistema. ACCIÓN F.1 Pulsar la letra
VARIABLE S (mayúscula) S=
EFECTO Variable asignada para el reloj del sistema.
F.2 Escribir las horas
(0,1,2,....9,A,B,C) S=A
0= 0 horas 1=1 horas :
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
57
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I. ACCIÓN
VARIABLE S
EFECTO A=10 horas B=11 horas y C=12 horas
F.3 Escribir los minutos
(0,1,2,....,9,A,B) S=A3
0=1 min 1=5 minutos 2=10 minutos : A=50 minutos B=55 minutos
Tabla No. 13: Configuración del reloj del sistema.
EL RELOJ DEL SISTEMA QUEDARÁ ACTUALIZADO COMO LAS 10 HORAS CON 15 MINUTOS Aparece el símbolo del sistema
>
El sistema se encuentra preparado para comenzar a obtener la información. G. Obtener el máximo de todos los canales. ACCIÓN F.1 Pulsar la letra
VARIABLE S (mayúscula) M
EFECTO Envía por el puerto Serial todos los máximos almacenados de los 8 canales.
Tabla No. 14: Valores máximos de todos los canales.
Una vez enviados todos los datos, aparece el símbolo del sistema
>
El sistema se encuentra preparado para comenzar a obtener la información.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
58
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I.
H. Recuperar los datos almacenados de todos los canales. ACCIÓN F.1 Pulsar la letra
VARIABLE S (mayúscula) R
EFECTO Envía por el puerto Serial todos los datos almacenados de los 8 canales.
Tabla No. 15: Recuperar datos de todos los canales.
Una vez enviados todos los datos, aparece el símbolo del sistema
>
El sistema se encuentra preparado para comenzar a obtener la información.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
59
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I.
SECCIÓN VII RESULTADOS Una vez que la tarjeta fue terminada, se procedió a realizarle las pruebas de laboratorio, de la siguiente manera: 1.
Para comprobar que el valor digital recuperado correspondiera al nivel de voltaje correcto, se fueron probando en forma independiente cada uno de los canales de adquisición con diferentes valores de voltaje constante; el resultado fue satisfactorio, pues de 10 lecturas (una cada 0.5 Volts) sólo se observaron pequeñas discrepancias del orden del 10% sobre el valor esperado, es decir las diferencias encontradas fueron de +/- 1 dígito binario. VOLTAJE DE ENTRADA (E-3=milivolts)
EQUIVALENTE EN CÓDIGO BINARIO
EQ. DECIMAL
VALORES OBTENIDOS EN EL LABORATORIO
EQ. HEX
D7 D6 D5 D4 D3 D2 D1 D0
C0
C1
C2
C3
C4
C5
C6
C7
0
0
0
0
0
0
0
0
0
0
00
00
00
00
00
00
00
00
00
507.81 E-3
0
0
0
1
1
0
0
1
26
1A
19
1A
19
1A
19
19
19
18
1.02 E+0
0
0
1
1
0
0
1
1
52
34
33
33
33
34
34
34
33
32
1.50 E+0
0
1
0
0
1
1
0
0
77
4D
4D
4D
4D
4E
4E
4E
4D
4C
2.01 E+0
0
1
1
0
0
1
1
0
103
67
66
67
66
67
67
66
66
67
2.50 E+0
0
1
1
1
1
1
1
1
128
80
80
80
7F
7F
80
80
81
82
3.01 E+0
1
0
0
1
1
0
0
1
154
9A
9A
98
9A
9A
9A
99
98
A1
3.50 E+0
1
0
1
1
0
0
1
0
179
B3
B3
B4
B4
B2
B3
B3
B2
B4
4.00 E+0
1
1
0
0
1
1
0
0
205
CD
CD
CB CD CC CD CD CE CE
4.51 E+0
1
1
1
0
0
1
1
0
231
E7
E6
E7
E5
E7
E7
E6
E7
E8
1
1
1
1
1
1
1
1
256
FF
FF
FF
FF
FE
FF
FF
FF
FF
5.00 E+0
Tabla No. 16: Resultados obtenidos en pruebas de laboratorio.
2.
De acuerdo al manual de operación, se programaron los canales para su funcionamiento con los siguientes tiempos: Canal 0
1 minuto.
Canal 1
5 minutos.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
60
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I.
Canal 2
15 minutos.
Canal 3
20 minutos.
Canal 4
30 minutos.
Canal 5
40 minutos.
Canal 6
50 minutos.
Canal 7
1 hora.
Los canales fueron probados en el laboratorio con una fotocelda, con ello se obtuvo la información en tiempo real requerida para comprobar la eficiencia del proyecto.
Figura No. 13: Implementación de un fotosensor.
Con el fin de tener una herramienta de comparación entre el voltaje de entrada y el valor digital obtenido, en el ANEXO F se muestra un cuadro comparativo entre el voltaje de entrada y sus correspondientes equivalencias en los sistemas binario y hexadecimal. Los datos que se obtuvieron de la lectura de los canales, se observa en la siguiente tabla: HORA
VALORES REGISTRADOS EN CADA CANAL (Hexadecimal)
V in C0 (1 min)
3:30 p.m. 3:31 p.m. 3:32 p.m. 3:33 p.m. 3:34 p.m. 3:35 p.m. 3:36 p.m. 3:37 p.m. 3:38 p.m.
3.7891 3.7305 3.7305 3.7500 3.7305 3.7305 3.7695 3.6914 3.6719
C2 BF BF C0 BF BF C1 BD BC
C1 C2 C3 C4 C5 C6 C7 (5 min) (15 min) (20 min) (30 min) (40 min) (50 min) (60 min)
BE
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
61
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I.
HORA
VALORES REGISTRADOS EN CADA CANAL (Hexadecimal)
V in C0 (1 min)
3:39 p.m. 3:40 p.m. 3:41 p.m. 3:42 p.m. 3:43 p.m. 3:44 p.m. 3:45 p.m. 3:46 p.m. 3:47 p.m. 3:48 p.m. 3:49 p.m. 3:50 p.m. 3:51 p.m. 3:52 p.m. 3:53 p.m. 3:54 p.m. 3:55 p.m. 3:56 p.m. 3:57 p.m. 3:58 p.m. 3:59 p.m. 4:00 p.m. 4:01 p.m. 4:02 p.m. 4:03 p.m. 4:04 p.m. 4:05 p.m. 4:06 p.m. 4:07 p.m. 4:08 p.m. 4:09 p.m. 4:10 p.m. 4:11 p.m. 4:12 p.m. 4:13 p.m. 4:14 p.m. 4:15 p.m. 4:16 p.m. 4:17 p.m. 4:18 p.m. 4:19 p.m. 4:20 p.m. 4:21 p.m. 4:22 p.m. 4:23 p.m. 4:24 p.m. 4:25 p.m. 4:26 p.m. 4:27 p.m. 4:28 p.m. 4:29 p.m. 4:30 p.m. 4:31 p.m. 4:32 p.m. 4:33 p.m.
3.6328 3.5938 3.4961 3.5156 3.4961 3.5547 3.5156 3.5352 3.5352 3.5547 3.4961 3.5156 3.4766 3.4180 3.4375 3.4375 3.3984 3.3399 3.3203 3.3008 3.2617 3.2617 3.2813 3.2813 3.2617 3.2227 3.1641 3.1055 3.0859 2.9492 2.9688 2.9102 2.8711 2.8711 2.8516 2.7930 2.8906 2.8711 2.9102 2.9297 2.9297 2.9883 3.0274 3.0274 3.0664 3.1250 3.1445 3.1836 3.2031 3.2031 3.2422 3.2031 3.2227 3.1836 3.1836
BA B8 B3 B4 B3 B6 B4 B5 B5 B6 B3 B4 B2 AF B0 B0 AE AB AA A9 A7 A7 A8 A8 A7 A5 A2 9F 9E 97 98 95 93 93 92 8F 94 93 95 96 96 99 9B 9B 9D A0 A1 A3 A4 A4 A6 A4 A5 A3 A3
C1 C2 C3 C4 C5 C6 C7 (5 min) (15 min) (20 min) (30 min) (40 min) (50 min) (60 min) B9
B5
B4
B4
B3
AF
A7
A7
A7
A2
94
93
95
94
94
99
9A
A0
A4
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
A5
A4
A4
A5
62
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I.
HORA
VALORES REGISTRADOS EN CADA CANAL (Hexadecimal)
V in C0 (1 min)
4:34 p.m. 4:35 p.m. 4:36 p.m. 4:37 p.m. 4:38 p.m. 4:39 p.m. 4:40 p.m. 4:41 p.m. 4:42 p.m. 4:43 p.m. 4:44 p.m. 4:45 p.m. 4:46 p.m. 4:47 p.m. 4:48 p.m. 4:49 p.m. 4:50 p.m. 4:51 p.m. 4:52 p.m. 4:53 p.m. 4:54 p.m. 4:55 p.m. 4:56 p.m. 4:57 p.m. 4:58 p.m. 4:59 p.m. 5:00 p.m. 5:01 p.m. 5:02 p.m. 5:03 p.m. 5:04 p.m. 5:05 p.m. 5:06 p.m. 5:07 p.m. 5:08 p.m. 5:09 p.m. 5:10 p.m. 5:11 p.m. 5:12 p.m. 5:13 p.m. 5:14 p.m. 5:15 p.m. 5:16 p.m. 5:17 p.m. 5:18 p.m. 5:19 p.m. 5:20 p.m. 5:21 p.m. 5:22 p.m. 5:23 p.m. 5:24 p.m. 5:25 p.m. 5:26 p.m. 5:27 p.m. 5:28 p.m.
3.1250 3.0469 3.0274 3.0078 2.9883 3.0274 3.0859 3.0664 3.1250 3.2031 3.2227 3.2617 3.3594 3.4180 3.4375 3.4766 3.5156 3.5156 3.5547 3.5742 3.5547 3.4570 3.6328 3.6328 3.5742 3.5938 3.5547 3.5156 3.4961 3.4180 3.3984 3.3594 3.2617 3.2031 3.1836 3.1641 3.0664 3.1250 3.0664 3.0469 3.0469 3.0664 3.0859 3.1250 3.1055 3.1250 3.1055 3.1250 3.0859 3.0078 2.9492 2.9102 2.8320 2.7539 2.6758
A0 9C 9B 9A 99 9B 9E 9D A0 A4 A5 A7 AC AF B0 B2 B4 B4 B6 B7 B6 B1 BA BA B7 B8 B6 B4 B3 AF AE AC A7 A4 A3 A2 9D A0 9D 9C 9C 9D 9E A0 9F A0 9F A0 9E 9A 97 95 91 8D 89
C1 C2 C3 C4 C5 C6 C7 (5 min) (15 min) (20 min) (30 min) (40 min) (50 min) (60 min) 9B
9D
A7
A8
B4
B4
B4
B2
B5
B5
B5
AD
9D
9D
9E
9F
95
9E
93
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
63
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I.
HORA
VALORES REGISTRADOS EN CADA CANAL (Hexadecimal)
V in C0 (1 min)
5:29 p.m. 5:30 p.m. 5:31 p.m. 5:32 p.m. 5:33 p.m. 5:34 p.m. 5:35 p.m. 5:36 p.m. 5:37 p.m. 5:38 p.m. 5:39 p.m. 5:40 p.m. 5:41 p.m. 5:42 p.m. 5:43 p.m. 5:44 p.m. 5:45 p.m. 5:46 p.m. 5:47 p.m. 5:48 p.m. 5:49 p.m. 5:50 p.m. 5:51 p.m. 5:52 p.m. 5:53 p.m. 5:54 p.m. 5:55 p.m. 5:56 p.m. 5:57 p.m. 5:58 p.m. 5:59 p.m. 6:00 p.m. 6:01 p.m. 6:02 p.m. 6:03 p.m. 6:04 p.m. 6:05 p.m. 6:06 p.m. 6:07 p.m. 6:08 p.m. 6:09 p.m. 6:10 p.m. 6:11 p.m. 6:12 p.m. 6:13 p.m. 6:14 p.m. 6:15 p.m. 6:16 p.m. 6:17 p.m. 6:18 p.m. 6:19 p.m. 6:20 p.m. 6:21 p.m. 6:22 p.m. 6:23 p.m.
2.5586 2.4609 2.3047 2.1289 1.9727 1.8555 1.7578 1.7578 1.6602 1.6211 1.5820 1.5234 1.5039 1.4648 1.4063 1.3086 1.3281 1.2305 1.1914 1.1523 1.0938 1.0352 1.0156 0.9961 0.9961 0.9375 0.8203 0.7813 0.7031 0.6836 0.6250 0.5469 0.4688 0.4102 0.3906 0.3125 0.2930 0.3320 0.2148 0.1367 0.1758 0.1367 0.0586 0.0781 0.0391 0.0391 0.0586 0.0391 0.0195 0.0391 0.0391 0.0195 0.0195 0.0000 0.0000
83 7E 76 6D 65 5F 5A 5A 55 53 51 4E 4D 4B 48 43 44 3F 3D 3B 38 35 34 33 33 30 2A 28 24 23 20 1C 18 15 14 10 0F 11 0B 07 09 07 03 04 02 02 03 02 01 02 02 01 01 00 00
C1 C2 C3 C4 C5 C6 C7 (5 min) (15 min) (20 min) (30 min) (40 min) (50 min) (60 min) 7D
7E
7E
79
78
77
5A
4E
42
43
34
34
2A
1C
1A
1A
0E
06
03
05
05
02
01
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
64
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I.
HORA
VALORES REGISTRADOS EN CADA CANAL (Hexadecimal)
V in C0 (1 min)
6:24 p.m. 6:25 p.m. 6:26 p.m. 6:27 p.m. 6:28 p.m. 6:29 p.m. 6:30 p.m.
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
00 00 00 00 00 00 00
C1 C2 C3 C4 C5 C6 C7 (5 min) (15 min) (20 min) (30 min) (40 min) (50 min) (60 min) 00
00
00
00
00
00
00
00
Tabla No. 17: Registro de datos originados por el fotosensor.
Se puede observar que las lecturas comenzaron a las 3:30 p.m., aprovechando la intensidad de luz solar, conforme pasa el tiempo se observa un decremento tanto del valor de voltaje (Vin) registrado en el multímetro, como del valor hexadecimal registrado en el sistema, por lo cual a partir de la 6:22 p.m. se registraron valores mínimos de cero. 3.
Valores máximos obtenidos para cada canal. VALOR MÁXIMO ALCANZADO POR CADA CANAL
CANALES C0
C1
C2
C3
C4
C5
C6
C7
C2 3.79V
BE 3.71V
B5 3.54V
B4 3.52V
B5 3.54V
B4 3.52V
9F 3.11V
A5 3.22V
Tabla No. 18: Registro de valores máximos.
Par un mejor análisis de los datos, se elaboraron las siguientes gráficas:
Figura No. 14: Gráfica de resultados del canal 0 (adquisición de datos: 1min.)
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
65
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I.
Figura No. 15: Gráfica de resultados del canal 1 (adquisición de datos: 5 mins.)
Figura No. 16: Gráfica de resultados del canal 2 (adquisición de datos: 15 mins.)
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
66
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I.
Figura No. 17: Gráfica de resultados del canal 3 (adquisición de datos: 20 mins.)
Figura No. 18: Gráfica de resultados del canal 4 (adquisición de datos: 30 mins.)
Figura No. 19: Gráfica de resultados del canal 5 (adquisición de datos: 40 mins.)
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
67
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I.
Figura No. 20: Gráfica de resultados del canal 6 (adquisición de datos: 50 mins.)
Figura No. 21: Gráfica de resultados del canal 7 (adquisición de datos: 60 mins.)
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
68
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I.
SECCIÓN VIII
CONCLUSIONES De acuerdo a los resultados obtenidos, se llegó a las siguientes conclusiones: ü El proyecto cumplió con los objetivos principales; ya que se logró implementar un sistema de adquisición de datos bajo la plataforma del microprocesador Z80, capaz de obtener información de un sensor. ü Se logró almacenar la información obtenida para cada canal en una memoria dinámica, detectando además el valor máximo alcanzado en cada uno de los canales. ü Se consiguió establecer comunicación bidireccional entre la tarjeta y la computadora, para el análisis de la información utilizando el protocolo de comunicaciones RS-232. ü Otro de los objetivos que se cumplieron, fue la reducción de costos con respecto a sistemas existentes en el mercado. Algunas observaciones y propuestas que se pueden hacer en torno a éste proyecto, son las siguientes: o El proyecto se desarrollo a nivel laboratorio, por lo que el material utilizado fue muy austero y de bajo costo. o Se pudo comprobar que el sistema es adaptable a cualquier sensor. o Se tiene la limitante de que el rango de voltaje que puede ser convertido por el ADC es de 0 a 5 volts. Por lo que para valores fuera de ese rango se debe adaptar un sistema de comparación para obtener los valores adecuados. o Se propone desarrollar un programa más completo que incluya la graficación de resultados para un análisis más detallado. Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
69
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I.
o Es una plataforma ideal que se puede utilizar para proyectos de mayor dimensión. o Se propone la elaboración de su circuito impreso para minimizar las dimensiones de la tarjeta o si se desea fabricar en serie.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
70
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I.
SECCION IX
ANEXOS ANEXO A: GLOSARIO/NOMENCLATURAS
ADC. Analogic Digital Converter. Convertidor Digital Analógico, hace la operación inversa que el CAD, convierte las señal digital en analógica. ALU. Unidad Lógico-Aritmética; Se encarga de realizar las operaciones Lógicas y Aritméticas. BUS DE DATOS: su función es llevar de un lugar a otro exclusivamente datos. En él se coloca un número binario el cual será tomado por la unidad que lo esté llamando, de esta manera por ejemplo, puede salir de la unidad de memoria para ser llevado y tratado por la ALU, el resultado nuevamente es colocado en el bus de datos para ser enviado quizá a otra localidad de memoria. BUS DE DIRECCIONES: La función del bus de direcciones es la de hacer referencia a una dirección física del sistema, ésta puede ser una localidad de memoria o bien la dirección física de algún dispositivo periférico. Su capacidad esta de acuerdo al número de bits que maneje el bus
y cada combinación que se pueda generar también es conocida como
dirección lógica.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
71
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I.
SEÑALES DE CONTROL: se encarga de llevar las señales de sincronización adecuadas entre los dispositivos; normalmente son líneas independientes que hacen una función especifica como la de llevar un pulso o el control de reloj. CISC. Conjunto de Instrucciones Complejo; es una arquitectura que tiene como objetivo mejorar el proceso de compilación utilizando un mayor número de instrucciones. DAC. Digital Analogic Converter. Convertidor Analógico Digital, Convierte señales analógicas a Digitales. EPROM: (Erasable Programmable Read Only Memory) que es una memoria que se puede programar por medio de pulsos eléctricos más alto que los normales y puede ser borrada con luz ultravioleta. EEPROM: (Electrically Erasable ROM) que permite ser borrada y reprogramada eléctricamente, sin embargo este tipo de memorias sólo permiten cierta cantidad de veces ser reprogramadas. RAM: o memoria de acceso aleatorio; en ella se almacenan los programas que se estén ejecutando en su momento permaneciendo así mientras esté alimentada eléctricamente; una vez que la energía es cortada, también es descargada la información de la memoria, en pocas palabras se limpia la memoria. RISC. Conjunto de Instrucciones Reducidas; es una arquitectura utilizada en el diseño de computadoras, el cual tiene un conjunto de instrucciones limitado y sencillo, un gran número de registros de propósito general. ROM: o memoria de sólo lectura; se graban las secuencias de inicio y el establecimiento de parámetros iniciales, la información permanece aún cuando se corte la energía y su característica principal es que sólo se puede leer la información que se encuentra en su interior, ya que no se puede modificar. VCD. Volts de Corriente Directa.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
72
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I.
ANEXO B CONVERSIÓN ANALÓGICA-DIGITAL. Una señal analógica es aquella que puede tomar una infinidad de valores (frecuencia y amplitud) dentro de un límite superior e inferior. El término analógico proviene de análogo. Por ejemplo, si se observa en un osciloscopio, la forma de la señal eléctrica en que convierte un micrófono el sonido que capta, ésta sería similar a la onda sonora que la originó. En cambio, una señal digital es aquella señal cuyos valores (frecuencia y amplitud) no son continuos sino discretos, lo que significa que la señal necesariamente ha de tomar unos determinados valores fijos predeterminados. Estos valores fijos se toman del sistema binario, lo que significa que la señal va a quedar convertida en una combinación de ceros y unos, que ya no se parece en nada a la señal original. Precisamente, el término digital tiene su origen en esto, en que la señal se construye a partir de números (dígitos). Una vez aclaradas las diferencias básicas entre la tecnología analógica y la digital, veamos ahora cómo se efectúa el proceso de conversión de una tecnología a otra. Para realizar esa tarea, el conversor ADC (Analog-to-Digital Converter - Conversor Analógico Digital) tiene que efectuar los siguientes procesos: 1.
Muestreo de la señal analógica.
2.
Cuantización de la propia señal
3.
Codificación del resultado de la cuantización, en código binario.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
73
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I.
MUESTREO DE LA SEÑAL ANALÓGICA Representación
gráfica
de
medio ciclo positivo
(+),
correspondiente a una señal eléctrica analógica de sonido, con sus correspondientes armónicos. Como se podrá observar, los valores de variación de la tensión o voltaje en esta sinusoide pueden variar en una escala que va de
a
volts.
Para convertir una señal analógica en digital, el primer paso consiste en realizar un muestreo (sampling) de ésta, o lo que es igual, tomar diferentes muestras de tensiones o voltajes en diferentes puntos de la onda senoidal. La frecuencia a la que se realiza el muestreo se denomina razón, tasa o también frecuencia de muestreo y se mide en kilo hertz (kHz). Durante el proceso de muestreo se asignan valores numéricos equivalentes a la tensión o voltaje existente en diferentes puntos de la sinusoide, con la finalidad de realizar a continuación el proceso de cuantización. Para realizar el muestreo (sampling) de una señal eléctrica analógica y convertirla después en digital, el primer paso consiste en tomar valores discretos de tensión o voltaje a intervalos regulares en diferentes puntos de la onda senoidal.
CONDICIÓN DE NYQUIST El ingeniero sueco Harry Nyquist formuló el siguiente teorema para obtener una grabación digital de calidad: La frecuencia de muestreo mínima requerida para realizar una grabación digital de calidad, debe ser igual al doble de la frecuencia de audio de la señal analógica que se pretenda digitalizar y grabar . Este teorema recibe también el nombre de Condición de Nyquist . Es decir, que la tasa de muestreo se debe realizar, al menos, al doble de la frecuencia de los sonidos más agudos que puede captar el oído humano que son 20 mil hertz por segundo (20 kHz). Por ese motivo se escogió la frecuencia de 44,1 kHz Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
74
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I.
como tasa de muestreo para obtener calidad de CD , pues al ser un poco más del doble de 20 kHz, incluye las frecuencias más altas que el sentido del oído puede captar. CUANTIZACIÓN DE LA SEÑAL ANALÓGICA Una vez realizado el muestreo, el siguiente paso es la cuantización (quantization) de la señal analógica. Para esta parte del proceso los valores continuos de la sinusoide se convierten en series de valores numéricos decimales discretos correspondientes a los diferentes niveles o variaciones de voltajes que contiene la señal analógica original. Por tanto, la cuantización representa el componente de muestreo de las variaciones de valores de tensiones o voltajes tomados en diferentes puntos de la onda sinusoidal, que permite medirlos y asignarles sus correspondientes valores en el sistema numérico decimal, antes de convertir esos valores en sistema numérico binario. CODIFICACIÓN DE LA SEÑAL EN CÓDIGO BINARIO Después de realizada la cuantización, los valores de las tomas de voltajes se representan numéricamente por medio de códigos y estándares previamente establecidos. Lo más común es codificar la señal digital en código numérico binario. La codificación permite asignarle valores numéricos binarios equivalentes a los valores de tensiones o voltajes que conforman la señal eléctrica analógica original. En este ejemplo gráfico de codificación, es posible observar cómo se ha obtenido una señal digital y el código binario correspondiente a los niveles de voltaje que posee la señal analógica. La siguiente tabla muestra los valores numéricos del 0 al 7, pertenecientes al sistema decimal y sus equivalentes en código numérico binario. En la siguiente tabla se anotan los valores numéricos equivalentes de los voltajes de la muestra tomada en la señal analógica con sus correspondientes valores en código binario. Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
75
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I. VALORES EN VOLTS EN SISTEMA DECIMAL
CONVERSIÓN A CÓDIGO BINARIO
0
000
1
001
2
010
3
011
4
100
5
101
6
110
7
111
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
76
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I.
ANEXO C
PROTOCOLO DE COMUNICACIÓN RS-232 Los datos serie se encuentran encapsulados en tramas de la siguiente forma:
Figura No. : Encapsulado de una serie de datos asíncrono, (un caracter)
Primero se envía un BIT DE START , a continuación los
BITS DE DATOS y
finalmente el BIT DE
STOP.
Estos son parámetros que se pueden configurarse para
establecer
la
comunicación, así como el criterio de paridad par o impar para la detección de errores. Normalmente, las comunicaciones serie tienen los siguientes parámetros: o 1 bit de Start, o 8 bits de Datos, o 1 bit de Stop y o sin paridad. En la figura se puede ver un ejemplo de la transmisión del dato binario 10011010. La línea en reposo está a nivel alto:
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
77
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I.
Diagrama No. Diagrama de comunicación asíncrona.
La Norma RS-232 fue definida para conectar un ordenador a un módem. Además de transmitirse los datos de una forma serie asíncrona son necesarias una serie de señales adicionales, que se definen en la norma. Las tensiones empleadas están comprendidas entre +15/-15 voltios. Para conectar el PC a un microprocesador por el puerto serie se utilizan las señales Tx, Rx y GND. El PC utiliza la norma RS232, por lo que los niveles de tensión de los pines entán comprendidos entre +15 y -15 voltios. Los microcontroladores normalmente trabajan con niveles TTL (0-5v). Es necesario por tanto intercalar un circuito que adapte los niveles:
Circuito Integrado MAX232 Este circuito integrado soluciona los problemas de niveles de voltaje cuando se requiere enviar señales digitales sobre una línea RS-232. el MAX232 se usa en aquellas aplicaciones donde no se dispones de fuentes dobles de +12V; por ejemplo, en aplicaciones alimentados con baterías de una polaridad. El MAX232 necesita solamente una fuente de Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
78
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I.
+5V para su operación; un elevador de voltaje interno convierte el voltaje de +5V al doble de polaridad de +-10V. A continuación se muestra la estructura interna del MAX232.
Para el enlace entre dispositivos, se usan conectores DB9 macho y hembra.
La información asociada a cada uno de los pines es la siguiente: NÚMERO DE PIN
SEÑAL
NÚMERO DE PIN
SEÑAL
1
DCD (Data Carrier Detect)
6
DSR (Data Sheet Ready)
2
RX (Receiver)
7
RTS (Request To Send)
3
TX (Transceiver)
8
CTS (Clear To Send)
4
DTR (Data Terminal Ready)
9
RI (Ring Indicator)
5
GND
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
79
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I.
ANEXO D ÍNDICE DE FIGURAS, DIAGRAMAS Y TABLAS FIGURAS: Figura No. 1: Sistema Remoto de Adquisición de Datos............................................
7
Figura No. 2: Diseño del ordenador como medio de adquisición de datos................
9
Figura No. 3: Esquema del microprocesador z80......................................................
26
Figura No. 4: Encapsulado de las memoria RAM HM62256 y EEPROM 27256...........................................................................................................
27
Figura No. 4: Lógica de control y encapsulado del multiplexor 74LS138..................
28
Figura No. 5: Diagrama a bloques y el encapsulado del ADC0808..........................
29
Figura No. 6: Encapsulado del integrado Z84C90....................................................
30
Figura No. 7: Esquema de sincronización del microprocesador Z80.......................
35
Figura No. 8: Sincronización del microprocesador Z80.............................................
35
Figura No. 9 : Sincronización del CLK/TRG timer del KIO.......................................
36
Figura No. 10: Sincronización del ADC0808.............................................................
36
Figura No. 11: Sincronización de la comunicación serial..........................................
37
Figura No. 12:Simulación virtual del estado de los registros del procesador z80.....
58
Figura No. 13: Implementación de un fotosensor......................................................
64
Figura No. 14: Gráfica de resultados del canal 0 (adquisición de datos: 1min.).......
68
Figura No. 15: Gráfica de resultados del canal 1 (adquisición de datos: 5 mins.)....
69
Figura No. 16: Gráfica de resultados del canal 2 (adquisición de datos: 15 mins.)..
69
Figura No. 17: Gráfica de resultados del canal 3 (adquisición de datos: 20 mins.)..
69
Figura No. 18: Gráfica de resultados del canal 4 (adquisición de datos: 30 mins.)..
70
Figura No. 19: Gráfica de resultados del canal 5 (adquisición de datos: 40 mins.)..
70
Figura No. 20: Gráfica de resultados del canal 6 (adquisición de datos: 50 mins.)..
70
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
80
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I.
Figura No. 21: Gráfica de resultados del canal 7 (adquisición de datos: 60 mins.)..
71
DIAGRAMAS: Diagrama No.1: Ciclo de búsqueda y ejecución de un programa de instrucciones de la unidad de control....................................................
16
Diagrama No. 2: Selector de Memorias.....................................................................
27
Diagrama No. 3: Implementación del dispositivo Power On Reset..........................
31
Diagrama No. 4: Conexiones de la interfaz serial y encapsulado del integrado MAX232. 31 Diagrama No. 5: Diagrama eléctrico de la Tarjeta Remota de Adquisición de Datos... 34 TABLAS: Tabla No. 1: Características del proyecto TEDDY-GEN............................................
10
Tabla No. 2: Diferentes dispositivos de la empresa Ampere.....................................
11
Tabla No. 3: Cuadro comparativo del estado del arte...............................................
13
Tabla No. 4: Cuadro comparativo entre un microprocesador y un microcontrolador.........................................................................................
20
Tabla No. 5: Registros del microprocesador z80.......................................................
21
Tabla No. 6: Lógica de selección de memorias.........................................................
27
Tabla No. 7: Mapeo para la selección de las memorias RAM y ROM......................
27
Tabla No. 8: Mapeo de memoria y dispositivos del sistema......................................
38
Tabla No. 9: Configuración de tiempos de adquisición por cada canal.....................
59
Tabla No. 10: Recuperación de datos almacenados por canal.................................
59
Tabla No. 11: Obtención de valores máximos por canal...........................................
60
Tabla No. 12: Eliminar datos de un canal..................................................................
60
Tabla No. 13: Configuración del reloj del sistema.....................................................
61
Tabla No. 14: Valores máximos de todos los canales...............................................
61
Tabla No. 15: Recuperar datos de todos los canales................................................
62
Tabla No. 16: Resultados obtenidos en pruebas de laboratorio................................
63
Tabla No. 17: Registro de datos originados por el fotosensor...................................
64
Tabla No. 18: Registro de valores máximos..............................................................
68
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
81
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I.
ANEXO E CONJUNTO DE INSTRUCCIONES Y RESUMEN DE BANDERAS DEL MICROPROCESADOR Z80
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
82
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
83
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
84
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
85
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
86
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
87
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
88
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
89
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
90
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I.
Notación simbólica: SÍMBOLO
OPERACIÓN
S
Bandera de signo, S=1 si el MSB (bit más significativo) del resultado es 1.
Z
Bandera de cero, Z=1 si el resultado de la operación es 0.
P/V
Bandera de overflow o paridad. Paridad (P) y Overflow (V) comparten la misma bandera. Las operaciones lógicas afectan esta bandera con la paridad del resultado, mientras que las operaciones aritméticas afectan esta bandera con el overflow del resultado. Si p/v contiene paridad: P/V=1 si el resultado de la operación es par y P/V=0 si el resultado es impar. Si P/V contiene overflow: P/V=1 si el resultado de la operación produce un overflow y P/V=0 si no se produce un overflow.
H*
Bandera de acarreo-mitad. H=1 si una operación de suma o resta produce un acarreo en, o desde, el bit 4 del acumulador.
N*
Bandera de suma-resta. N=1 si la operación previa fue una resta.
C
Bandera carry/linn. C=1 si la operación produce un acarreo del MSB del operando o resultado.
B
La bandera es afectada de acuerdo al resultado de operación.
O
La bandera es reseteada por la operación.
X
La bandera indeterminada.
V
La bandera P/V es afectada según el overflow del resultado de operación.
P
La bandera P/V es afectada según la paridad del resultado de operación.
R
Cualquier registro de la CPU: A, B, C, D, E, H, L.
S
Cualquier posición de 8 bits, para todos los modos de direccionamiento permitido por la instrucción particular.
Ss
Cualquier posición de 16 bits, para todos los modos de direccionamiento permitido por la instrucción particular.
Ii
Cualquiera de los registros índices IX ó IY.
R
Contador de refresco.
N
Valor de 8 bits comprendido entre
Nn
Valor de 16 bits comprendido entre
*Las banderas H y N se usan junto con la instrucción de ajuste decimal (DAA) para proporcionar resultados correctos en formato BCD condensado, permitiendo sumar y restar usando operando con formato BCD condensado.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
91
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I.
ANEXO F CUADRO COMPARATIVO ENTRE EL VOLTAJE DE ENTRADA Y SU EQUIVALENCIA EN EL SISTEMA DIGITAL
VOLTAJE (E-3=milivolts)
EQUIVALENTE EN EQUIVALENTE EN EQ. EQ. VOLTAJE EQ. EQ. CÓDIGO BINARIO CÓDIGO BINARIO DECIMAL HEX (E-3=milivolts) DECIMAL HEX D7 D6 D5 D4 D3 D2 D1 D0 D7 D6 D5 D4 D3 D2 D1 D0
0
0
0
0
0
0
0
0
0
0
0 0
2.50 E+0
1 0 0 0 0 0 0 0
128
8 0
19.53 E-3
0
0
0
0
0
0
0
1
1
0 1
2.52 E+0
1 0 0 0 0 0 0 1
129
8 1
39.06 E-3
0
0
0
0
0
0
1
0
2
0 2
2.54 E+0
1 0 0 0 0 0 1 0
130
8 2
58.59 E-3
0
0
0
0
0
0
1
1
3
0 3
2.56 E+0
1 0 0 0 0 0 1 1
131
8 3
78.13 E-3
0
0
0
0
0
1
0
0
4
0 4
2.58 E+0
1 0 0 0 0 1 0 0
132
8 4
97.66 E-3
0
0
0
0
0
1
0
1
5
0 5
2.60 E+0
1 0 0 0 0 1 0 1
133
8 5
117.19 E-3
0
0
0
0
0
1
1
0
6
0 6
2.62 E+0
1 0 0 0 0 1 1 0
134
8 6
136.72 E-3
0
0
0
0
0
1
1
1
7
0 7
2.64 E+0
1 0 0 0 0 1 1 1
135
8 7
156.25 E-3
0
0
0
0
1
0
0
0
8
0 8
2.66 E+0
1 0 0 0 1 0 0 0
136
8 8
175.78 E-3
0
0
0
0
1
0
0
1
9
0 9
2.68 E+0
1 0 0 0 1 0 0 1
137
8 9
195.31 E-3
0
0
0
0
1
0
1
0
10
0 A
2.70 E+0
1 0 0 0 1 0 1 0
138
8 A
214.84 E-3
0
0
0
0
1
0
1
1
11
0 B
2.71 E+0
1 0 0 0 1 0 1 1
139
8 B
234.38 E-3
0
0
0
0
1
1
0
0
12
0 C
2.73 E+0
1 0 0 0 1 1 0 0
140
8 C
253.91 E-3
0
0
0
0
1
1
0
1
13
0 D
2.75 E+0
1 0 0 0 1 1 0 1
141
8 D
273.44 E-3
0
0
0
0
1
1
1
0
14
0 E
2.77 E+0
1 0 0 0 1 1 1 0
142
8 E
292.97 E-3
0
0
0
0
1
1
1
1
15
0 F
2.79 E+0
1 0 0 0 1 1 1 1
143
8 F
312.50 E-3
0
0
0
1
0
0
0
0
16
1 0
2.81 E+0
1 0 0 1 0 0 0 0
144
9 0
332.03 E-3
0
0
0
1
0
0
0
1
17
1 1
2.83 E+0
1 0 0 1 0 0 0 1
145
9 1
351.56 E-3
0
0
0
1
0
0
1
0
18
1 2
2.85 E+0
1 0 0 1 0 0 1 0
146
9 2
371.09 E-3
0
0
0
1
0
0
1
1
19
1 3
2.87 E+0
1 0 0 1 0 0 1 1
147
9 3
390.63 E-3
0
0
0
1
0
1
0
0
20
1 4
2.89 E+0
1 0 0 1 0 1 0 0
148
9 4
410.16 E-3
0
0
0
1
0
1
0
1
21
1 5
2.91 E+0
1 0 0 1 0 1 0 1
149
9 5
429.69 E-3
0
0
0
1
0
1
1
0
22
1 6
2.93 E+0
1 0 0 1 0 1 1 0
150
9 6
449.22 E-3
0
0
0
1
0
1
1
1
23
1 7
2.95 E+0
1 0 0 1 0 1 1 1
151
9 7
468.75 E-3
0
0
0
1
1
0
0
0
24
1 8
2.97 E+0
1 0 0 1 1 0 0 0
152
9 8
488.28 E-3
0
0
0
1
1
0
0
1
25
1 9
2.99 E+0
1 0 0 1 1 0 0 1
153
9 9
507.81 E-3
0
0
0
1
1
0
1
0
26
1 A
3.01 E+0
1 0 0 1 1 0 1 0
154
9 A
527.34 E-3
0
0
0
1
1
0
1
1
27
1 B
3.03 E+0
1 0 0 1 1 0 1 1
155
9 B
546.88 E-3
0
0
0
1
1
1
0
0
28
1 C
3.05 E+0
1 0 0 1 1 1 0 0
156
9 C
566.41 E-3
0
0
0
1
1
1
0
1
29
1 D
3.07 E+0
1 0 0 1 1 1 0 1
157
9 D
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
92
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I. VOLTAJE (E-3=milivolts)
EQUIVALENTE EN EQUIVALENTE EN EQ. EQ. VOLTAJE EQ. EQ. CÓDIGO BINARIO CÓDIGO BINARIO DECIMAL HEX (E-3=milivolts) DECIMAL HEX D7 D6 D5 D4 D3 D2 D1 D0 D7 D6 D5 D4 D3 D2 D1 D0
585.94 E-3
0
0
0
1
1
1
1
0
30
1 E
3.09 E+0
1 0 0 1 1 1 1 0
158
9 E
605.47 E-3
0
0
0
1
1
1
1
1
31
1 F
3.11 E+0
1 0 0 1 1 1 1 1
159
9 F
625.00 E-3
0
0
1
0
0
0
0
0
32
2 0
3.13 E+0
1 0 1 0 0 0 0 0
160
A 0
644.53 E-3
0
0
1
0
0
0
0
1
33
2 1
3.14 E+0
1 0 1 0 0 0 0 1
161
A 1
664.06 E-3
0
0
1
0
0
0
1
0
34
2 2
3.16 E+0
1 0 1 0 0 0 1 0
162
A 2
683.59 E-3
0
0
1
0
0
0
1
1
35
2 3
3.18 E+0
1 0 1 0 0 0 1 1
163
A 3
703.13 E-3
0
0
1
0
0
1
0
0
36
2 4
3.20 E+0
1 0 1 0 0 1 0 0
164
A 4
722.66 E-3
0
0
1
0
0
1
0
1
37
2 5
3.22 E+0
1 0 1 0 0 1 0 1
165
A 5
742.19 E-3
0
0
1
0
0
1
1
0
38
2 6
3.24 E+0
1 0 1 0 0 1 1 0
166
A 6
761.72 E-3
0
0
1
0
0
1
1
1
39
2 7
3.26 E+0
1 0 1 0 0 1 1 1
167
A 7
781.25 E-3
0
0
1
0
1
0
0
0
40
2 8
3.28 E+0
1 0 1 0 1 0 0 0
168
A 8
800.78 E-3
0
0
1
0
1
0
0
1
41
2 9
3.30 E+0
1 0 1 0 1 0 0 1
169
A 9
820.31 E-3
0
0
1
0
1
0
1
0
42
2 A
3.32 E+0
1 0 1 0 1 0 1 0
170
A A
839.84 E-3
0
0
1
0
1
0
1
1
43
2 B
3.34 E+0
1 0 1 0 1 0 1 1
171
A B
859.38 E-3
0
0
1
0
1
1
0
0
44
2 C
3.36 E+0
1 0 1 0 1 1 0 0
172
A C
878.91 E-3
0
0
1
0
1
1
0
1
45
2 D
3.38 E+0
1 0 1 0 1 1 0 1
173
A D
898.44 E-3
0
0
1
0
1
1
1
0
46
2 E
3.40 E+0
1 0 1 0 1 1 1 0
174
A E
917.97 E-3
0
0
1
0
1
1
1
1
47
2 F
3.42 E+0
1 0 1 0 1 1 1 1
175
A F
937.50 E-3
0
0
1
1
0
0
0
0
48
3 0
3.44 E+0
1 0 1 1 0 0 0 0
176
B 0
957.03 E-3
0
0
1
1
0
0
0
1
49
3 1
3.46 E+0
1 0 1 1 0 0 0 1
177
B 1
976.56 E-3
0
0
1
1
0
0
1
0
50
3 2
3.48 E+0
1 0 1 1 0 0 1 0
178
B 2
996.09 E-3
0
0
1
1
0
0
1
1
51
3 3
3.50 E+0
1 0 1 1 0 0 1 1
179
B 3
1.02 E+0
0
0
1
1
0
1
0
0
52
3 4
3.52 E+0
1 0 1 1 0 1 0 0
180
B 4
1.04 E+0
0
0
1
1
0
1
0
1
53
3 5
3.54 E+0
1 0 1 1 0 1 0 1
181
B 5
1.05 E+0
0
0
1
1
0
1
1
0
54
3 6
3.55 E+0
1 0 1 1 0 1 1 0
182
B 6
1.07 E+0
0
0
1
1
0
1
1
1
55
3 7
3.57 E+0
1 0 1 1 0 1 1 1
183
B 7
1.09 E+0
0
0
1
1
1
0
0
0
56
3 8
3.59 E+0
1 0 1 1 1 0 0 0
184
B 8
1.11 E+0
0
0
1
1
1
0
0
1
57
3 9
3.61 E+0
1 0 1 1 1 0 0 1
185
B 9
1.13 E+0
0
0
1
1
1
0
1
0
58
3 A
3.63 E+0
1 0 1 1 1 0 1 0
186
B A
1.15 E+0
0
0
1
1
1
0
1
1
59
3 B
3.65 E+0
1 0 1 1 1 0 1 1
187
B B
1.17 E+0
0
0
1
1
1
1
0
0
60
3 C
3.67 E+0
1 0 1 1 1 1 0 0
188
B C
1.19 E+0
0
0
1
1
1
1
0
1
61
3 D
3.69 E+0
1 0 1 1 1 1 0 1
189
B D
1.21 E+0
0
0
1
1
1
1
1
0
62
3 E
3.71 E+0
1 0 1 1 1 1 1 0
190
B E
1.23 E+0
0
0
1
1
1
1
1
1
63
3 F
3.73 E+0
1 0 1 1 1 1 1 1
191
B F
1.25 E+0
0
1
0
0
0
0
0
0
64
4 0
3.75 E+0
1 1 0 0 0 0 0 0
192
C 0
1.27 E+0
0
1
0
0
0
0
0
1
65
4 1
3.77 E+0
1 1 0 0 0 0 0 1
193
C 1
1.29 E+0
0
1
0
0
0
0
1
0
66
4 2
3.79 E+0
1 1 0 0 0 0 1 0
194
C 2
1.31 E+0
0
1
0
0
0
0
1
1
67
4 3
3.81 E+0
1 1 0 0 0 0 1 1
195
C 3
1.33 E+0
0
1
0
0
0
1
0
0
68
4 4
3.83 E+0
1 1 0 0 0 1 0 0
196
C 4
1.35 E+0
0
1
0
0
0
1
0
1
69
4 5
3.85 E+0
1 1 0 0 0 1 0 1
197
C 5
1.37 E+0
0
1
0
0
0
1
1
0
70
4 6
3.87 E+0
1 1 0 0 0 1 1 0
198
C 6
1.39 E+0
0
1
0
0
0
1
1
1
71
4 7
3.89 E+0
1 1 0 0 0 1 1 1
199
C 7
1.41 E+0
0
1
0
0
1
0
0
0
72
4 8
3.91 E+0
1 1 0 0 1 0 0 0
200
C 8
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
93
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I. VOLTAJE (E-3=milivolts)
EQUIVALENTE EN EQUIVALENTE EN EQ. EQ. VOLTAJE EQ. EQ. CÓDIGO BINARIO CÓDIGO BINARIO DECIMAL HEX (E-3=milivolts) DECIMAL HEX D7 D6 D5 D4 D3 D2 D1 D0 D7 D6 D5 D4 D3 D2 D1 D0
1.43 E+0
0
1
0
0
1
0
0
1
73
4 9
3.93 E+0
1 1 0 0 1 0 0 1
201
C 9
1.45 E+0
0
1
0
0
1
0
1
0
74
4 A
3.95 E+0
1 1 0 0 1 0 1 0
202
C A
1.46 E+0
0
1
0
0
1
0
1
1
75
4 B
3.96 E+0
1 1 0 0 1 0 1 1
203
C B
1.48 E+0
0
1
0
0
1
1
0
0
76
4 C
3.98 E+0
1 1 0 0 1 1 0 0
204
C C
1.50 E+0
0
1
0
0
1
1
0
1
77
4 D
4.00 E+0
1 1 0 0 1 1 0 1
205
C D
1.52 E+0
0
1
0
0
1
1
1
0
78
4 E
4.02 E+0
1 1 0 0 1 1 1 0
206
C E
1.54 E+0
0
1
0
0
1
1
1
1
79
4 F
4.04 E+0
1 1 0 0 1 1 1 1
207
C F
1.56 E+0
0
1
0
1
0
0
0
0
80
5 0
4.06 E+0
1 1 0 1 0 0 0 0
208
D 0
1.58 E+0
0
1
0
1
0
0
0
1
81
5 1
4.08 E+0
1 1 0 1 0 0 0 1
209
D 1
1.60 E+0
0
1
0
1
0
0
1
0
82
5 2
4.10 E+0
1 1 0 1 0 0 1 0
210
D 2
1.62 E+0
0
1
0
1
0
0
1
1
83
5 3
4.12 E+0
1 1 0 1 0 0 1 1
211
D 3
1.64 E+0
0
1
0
1
0
1
0
0
84
5 4
4.14 E+0
1 1 0 1 0 1 0 0
212
D 4
1.66 E+0
0
1
0
1
0
1
0
1
85
5 5
4.16 E+0
1 1 0 1 0 1 0 1
213
D 5
1.68 E+0
0
1
0
1
0
1
1
0
86
5 6
4.18 E+0
1 1 0 1 0 1 1 0
214
D 6
1.70 E+0
0
1
0
1
0
1
1
1
87
5 7
4.20 E+0
1 1 0 1 0 1 1 1
215
D 7
1.72 E+0
0
1
0
1
1
0
0
0
88
5 8
4.22 E+0
1 1 0 1 1 0 0 0
216
D 8
1.74 E+0
0
1
0
1
1
0
0
1
89
5 9
4.24 E+0
1 1 0 1 1 0 0 1
217
D 9
1.76 E+0
0
1
0
1
1
0
1
0
90
5 A
4.26 E+0
1 1 0 1 1 0 1 0
218
D A
1.78 E+0
0
1
0
1
1
0
1
1
91
5 B
4.28 E+0
1 1 0 1 1 0 1 1
219
D B
1.80 E+0
0
1
0
1
1
1
0
0
92
5 C
4.30 E+0
1 1 0 1 1 1 0 0
220
D C
1.82 E+0
0
1
0
1
1
1
0
1
93
5 D
4.32 E+0
1 1 0 1 1 1 0 1
221
D D
1.84 E+0
0
1
0
1
1
1
1
0
94
5 E
4.34 E+0
1 1 0 1 1 1 1 0
222
D E
1.86 E+0
0
1
0
1
1
1
1
1
95
5 F
4.36 E+0
1 1 0 1 1 1 1 1
223
D F
1.88 E+0
0
1
1
0
0
0
0
0
96
6 0
4.38 E+0
1 1 1 0 0 0 0 0
224
E 0
1.89 E+0
0
1
1
0
0
0
0
1
97
6 1
4.39 E+0
1 1 1 0 0 0 0 1
225
E 1
1.91 E+0
0
1
1
0
0
0
1
0
98
6 2
4.41 E+0
1 1 1 0 0 0 1 0
226
E 2
1.93 E+0
0
1
1
0
0
0
1
1
99
6 3
4.43 E+0
1 1 1 0 0 0 1 1
227
E 3
1.95 E+0
0
1
1
0
0
1
0
0
100
6 4
4.45 E+0
1 1 1 0 0 1 0 0
228
E 4
1.97 E+0
0
1
1
0
0
1
0
1
101
6 5
4.47 E+0
1 1 1 0 0 1 0 1
229
E 5
1.99 E+0
0
1
1
0
0
1
1
0
102
6 6
4.49 E+0
1 1 1 0 0 1 1 0
230
E 6
2.01 E+0
0
1
1
0
0
1
1
1
103
6 7
4.51 E+0
1 1 1 0 0 1 1 1
231
E 7
2.03 E+0
0
1
1
0
1
0
0
0
104
6 8
4.53 E+0
1 1 1 0 1 0 0 0
232
E 8
2.05 E+0
0
1
1
0
1
0
0
1
105
6 9
4.55 E+0
1 1 1 0 1 0 0 1
233
E 9
2.07 E+0
0
1
1
0
1
0
1
0
106
6 A
4.57 E+0
1 1 1 0 1 0 1 0
234
E A
2.09 E+0
0
1
1
0
1
0
1
1
107
6 B
4.59 E+0
1 1 1 0 1 0 1 1
235
E B
2.11 E+0
0
1
1
0
1
1
0
0
108
6 C
4.61 E+0
1 1 1 0 1 1 0 0
236
E C
2.13 E+0
0
1
1
0
1
1
0
1
109
6 D
4.63 E+0
1 1 1 0 1 1 0 1
237
E D
2.15 E+0
0
1
1
0
1
1
1
0
110
6 E
4.65 E+0
1 1 1 0 1 1 1 0
238
E E
2.17 E+0
0
1
1
0
1
1
1
1
111
6 F
4.67 E+0
1 1 1 0 1 1 1 1
239
E F
2.19 E+0
0
1
1
1
0
0
0
0
112
7 0
4.69 E+0
1 1 1 1 0 0 0 0
240
F 0
2.21 E+0
0
1
1
1
0
0
0
1
113
7 1
4.71 E+0
1 1 1 1 0 0 0 1
241
F 1
2.23 E+0
0
1
1
1
0
0
1
0
114
7 2
4.73 E+0
1 1 1 1 0 0 1 0
242
F 2
2.25 E+0
0
1
1
1
0
0
1
1
115
7 3
4.75 E+0
1 1 1 1 0 0 1 1
243
F 3
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
94
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I. VOLTAJE (E-3=milivolts)
EQUIVALENTE EN EQUIVALENTE EN EQ. EQ. VOLTAJE EQ. EQ. CÓDIGO BINARIO CÓDIGO BINARIO DECIMAL HEX (E-3=milivolts) DECIMAL HEX D7 D6 D5 D4 D3 D2 D1 D0 D7 D6 D5 D4 D3 D2 D1 D0
2.27 E+0
0
1
1
1
0
1
0
0
116
7 4
4.77 E+0
1 1 1 1 0 1 0 0
244
F 4
2.29 E+0
0
1
1
1
0
1
0
1
117
7 5
4.79 E+0
1 1 1 1 0 1 0 1
245
F 5
2.30 E+0
0
1
1
1
0
1
1
0
118
7 6
4.80 E+0
1 1 1 1 0 1 1 0
246
F 6
2.32 E+0
0
1
1
1
0
1
1
1
119
7 7
4.82 E+0
1 1 1 1 0 1 1 1
247
F 7
2.34 E+0
0
1
1
1
1
0
0
0
120
7 8
4.84 E+0
1 1 1 1 1 0 0 0
248
F 8
2.36 E+0
0
1
1
1
1
0
0
1
121
7 9
4.86 E+0
1 1 1 1 1 0 0 1
249
F 9
2.38 E+0
0
1
1
1
1
0
1
0
122
7 A
4.88 E+0
1 1 1 1 1 0 1 0
250
F A
2.40 E+0
0
1
1
1
1
0
1
1
123
7 B
4.90 E+0
1 1 1 1 1 0 1 1
251
F B
2.42 E+0
0
1
1
1
1
1
0
0
124
7 C
4.92 E+0
1 1 1 1 1 1 0 0
252
F C
2.44 E+0
0
1
1
1
1
1
0
1
125
7 D
4.94 E+0
1 1 1 1 1 1 0 1
253
F D
2.46 E+0
0
1
1
1
1
1
1
0
126
7 E
4.96 E+0
1 1 1 1 1 1 1 0
254
F E
2.48 E+0
0
1
1
1
1
1
1
1
127
7 F
4.98 E+0
1 1 1 1 1 1 1 1
255
F F
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
95
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I.
SECCIÓN X
BIBLIOGRAFIA 1.
J. Tocci Ronald; SISTEMAS DIGITALES; PRINCIPIOS Y APLICACIONES, 6ª Ed. Prentice Hall, México 1996
2.
Stallings William; ORGANIZACIÓN Y ARQUITECTURA DE COMPUTADORES, 5ª Ed. Prentice Hall, Madrid 2000
3.
C. Nichols Joseph, A. Nichols Elizabeth, R. Rony Peter; MICROPROCESADOR Z80 PROGRAMACION E INTERFACES, Ed. Publicaciones marcombo, México 1984.
4.
Universidad de Alcalá, Departamento de electrónica; INTRODUCCION A LOS SISTEMAS DIGITALES PROGRAMABLES.- Alcalá España, 2002.
5.
http://www.wikipedia.org/
6.
http://www.asifunciona.com/
6.
Horacio D. Vallejo, serie de revistas Saber electrónica , varios números.
7.
Morris Mano, M., DISEÑO DIGITAL; 1ª Ed. Prentice Hall, México 1987.
8.
www.national.com, manuales de referencia. Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
96
UNIVERSIDAD AUTONOMA METROPOLITANA Unidad Iztapalapa C.B.I.
9.
www.zilog.com, información sobre producto Zilog.
10.
www.ampere.com
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735)
97