Informe de Actividades al 2006 División de Ciencias Básicas e Ingeniería.
DIVISIÓN DE CIENCIAS BÁSICAS E INGENIERÍA
Transcript of DIVISIÓN DE CIENCIAS BÁSICAS E INGENIERÍA
DIVISIÓN DE CIENCIAS BÁSICAS E INGENIERÍA
DEPARTAMENTO DE ELECTRÓNICA
PROYECTO TERMINAL
SISTEMA DE ADQUISICIÓN DE DATOSPARA MONITOREO DE AGUAS
ASESOR
ALEJANDRO MARTÍNEZ GONZÁLEZ
ALUMNOS
ANÍBAL ADÁN CAMPOS LÓPEZ94216247
ROBERTO BARRUETA RAMÍREZ94219735
NOVIEMBRE 2006
Quiero dedicar el presente trabajo y agradecer el granapoyo que me han proporcionado para lograr misobjetivos.
A Dios y a mis padres por haberme dado la vida yguiado con sus sabias palabras.
A Mi esposa y mi hijo que han sido un gran estímulopara seguir superándome.
A mis hermanos que siempre han confiado y creído enmí.
A mis profesores que han sembrado en mí la semilladel conocimiento.
A mis compañeros y amigos, con los que he compartidoéxitos y frustraciones.
En general, me siento agradecido con todas y cada unade las personas que han sido parte de mi vida y que deuna u otra forma me han tendido su mano y me hanofrecido 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 METROPOLITANAUnidad Iztapalapa
C.B.I.
Aníbal Adán Campos López (94216247)Roberto Barrueta Ramírez (94219735) 1
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
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Aníbal Adán Campos López (94216247)Roberto Barrueta Ramírez (94219735) 2
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
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Aníbal Adán Campos López (94216247)Roberto Barrueta Ramírez (94219735) 3
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.
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Aníbal Adán Campos López (94216247)Roberto Barrueta Ramírez (94219735) 4
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.
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Aníbal Adán Campos López (94216247)Roberto Barrueta Ramírez (94219735) 5
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
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Aníbal Adán Campos López (94216247)Roberto Barrueta Ramírez (94219735) 6
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.
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Aníbal Adán Campos López (94216247)Roberto Barrueta Ramírez (94219735) 7
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.
Figura No. 1: Sistema Remoto de Adquisición de Datos
FUENTE DE
ALIMENTACIÓN5 VCD
BATERÍA DERESPALDO
5.6 VCD
INTERFAZSERIALRS-232
OCHOSENSORES
DE PRESIÓN
CORRIENTEALTERNA127 VCA
MODEMOPCIONAL
OPERADOR YCOMPUTADORA
CONVERSIÓN ANALÓGICA-DIGITAL
TARJETA REMOTA DE ADQUISICIÓN DE DATOS
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Aníbal Adán Campos López (94216247)Roberto Barrueta Ramírez (94219735) 8
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 ELLABORATORIO. (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, con ello se
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Aníbal Adán Campos López (94216247)Roberto Barrueta Ramírez (94219735) 9
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
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Aníbal Adán Campos López (94216247)Roberto Barrueta Ramírez (94219735) 10
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ónde datos de corrientes inducidas
DESCRIPCIÓN DEL PRODUCTOAplicación software de propósito general apropiada para la inspección mediante corrientes inducidas (ET) ocampo lejano (RFET) con el equipo TEDDY, de cualquier tipo de componente (superficies, grandes tuberías,tubos, zonas roscadas, etc).
DESCRIPCIÓN DEL PRODUCTOEs una aplicación de propósito general apropiada paracualquier tipo de inspección con el equipo TEDDY, queincluye ambos procesos, adquisición de datos y análisis delos mismosDentro de sus funciones principales se encuentran el controldel proceso de adquisición, especificación de los parámetrosde inspección así como el archivo de los datos adquiridos ala vez que su representación. Una vez que los datos han sidoadquiridos la aplicación permite al usuario realizar un análisisde datos completo a partir de los datos salvados en cualquierdispositivo de almacenamiento de datos.Cuenta con varios modos de representación según el tipo detécnica escogida (corrientes inducidas o campo lejano):stripcharts, lissajous, C-Scan, plano polar del voltaje, entreotros.
La aplicación permite así mismo crear ficheros de informe con los resultados de la inspección así como la salidagráfica de los resultados.En ocasiones, esta aplicación se utiliza conjuntamente con la aplicación MIDAS de ultrasonidos, para lainspección simultánea de determinados componentes con ambas técnicas, corrientes inducidas y ultrasonidos.
CARACTERÍSTICAS TÉCNICASEntre sus características cabe destacar:- Transferencia de datos vía Ethernet (más de 150 m delequipo TEDDY- Adquisición de datos de señales de corrientes inducidas yposición de la sonda.- Representación de datos en tiempo real tanto en vistas tipostrip-chart y lissajous como en vistas tipo C-Scan.- Control de los movimientos de la sonda.- Interfase de usuario adaptable según inspección desuperficies o tubos.- Filtros digitales- Representaciones de fase, amplitud y plano polar del voltajepara el análisis con la técnica de campo lejano.- Posibilidad de canales duplicados, filtrados y combinacionesde 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.
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Aníbal Adán Campos López (94216247)Roberto Barrueta Ramírez (94219735) 11
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-02Registrador de humedad y temperatura
Registrador de pH DrDAQKit para la medición contínua y precisa de pH
USB TC-08 data loggerRegistrador de 8 canales para termopares
ADC-10 y ADC-12Registradores analógicos de 1 canal de voltaje 0-5 V
Registrador USB HumidiProbeSensor de humedad y temperatura USB ADC-11/10 y ADC-11/12
Registrador de 11 canales de señales de 0-2.5 V
Registrador TH-03Registrador de temperatura de alta resolución ADC-16
Registrador de señales analógicas de alta resolución
Registrador PT100Registrador a base de resistencias de platino
Tabla No. 2: Diferentes dispositivos de la empresa Ampere.
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Aníbal Adán Campos López (94216247)Roberto Barrueta Ramírez (94219735) 12
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 FUNCIONALIDAD APLICACIONES VENTAJAS DESVENTAJAS
Tarjeta Remota de Adquisición de
Datos.
Adán Campos López.
Roberto Barrueta Ramírez.
Su construcción es de
bajo costo.
Se programa cada
canal y sus
comandos son muy
sencillos.
8 canales de
adquisición que se
pueden adaptar a
cualquier aplicación
únicamente
cambiando el
sensor.
Medición de la
altitud del mar,
monitoreo de ríos
y presas,
evaluación de
condiciones
metereológicas,
monitoreo de
trafico vehicular,
conversión digital
de señales
analógicas.
Para la aplicación
por la que fue
diseñada cumple
al 100% con los
objetivos,
además puede
adaptarse a otros
sistemas de
monitoreo,
adquisición y
evaluación de
datos.
Implementación
muy básica
Ordenador como medio de
adquisición de datos.
Herrero y Rosado.
Su implementación es
de bajo costo.
No es necesario
programar, el
sistema es
básicamente de
análisis, las
condiciones iniciales
se obtienen de la
posición de los
sensores.
En aplicaciones de
física elemental, es
muy versátil.
Esta diseñado
para prácticas de
laboratorio de
cinemática y
dinámica
elemental, se
puede adaptar en
aplicaciones que
tengan que ver
con velocidad.
Muy bueno para
la aplicación que
fue diseñado.
No se puede
adaptar a otros
sistemas.
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Aníbal Adán Campos López (94216247)Roberto Barrueta Ramírez (94219735) 13
SISTEMA ECONOMIA PROGRAMACIÓN FUNCIONALIDAD APLICACIONES VENTAJAS DESVENTAJAS
Dataloggers de 4 canales.
Revista saber electrónica No. 193
Se construye con
elementos baratos, por
lo tanto es muy
económico.
Su programación es
muy sencilla para
sus cuatro canales.
Está limitada por la
poca cantidad de
memoria que tiene
el sistema y por su
cantidad de canales.
Sus aplicaciones
son de propósito
general.
Puede adaptarse
a cualquier
aplicación.
Su capacidad es
muy limitada.
TEDDY-GEN
Tecnatom.
Este producto por ser
fabricado para fines
industriales, tiene un
costo elevado.
En poco compleja
por la magnitud del
sistema, pero
cuenta con los
manuales de
operación.
Tiene
presentaciones
gráficas que hace
más fácil el análisis
de los datos.
Específicamente
enfocadas hacia el
área industrial, a
evaluaciones e
Inspección de
instalaciones.
Permite hacer un
análisis virtual
mas detallado del
monitoreo en sus
pantallas.
El costo es
elevado, y son
diseñados para
aplicaciones
especificas.
Dataloggers de la empresa
Ampere.
Economía: son de
mediano costo,
puestos a disposición
del público.
algunos están
automatizados y no
requieren de
programación
porque cuentan con
display integrado,
otros modelos
requieren de
programación
sencilla y cuentan
con su manual de
operación.
Son muy versátiles
porque están
diseñados para
aplicaciones
específicas.
Son muy variadas
dependiendo el
modelo.
Se pueden
encontrar en el
mercado; mucha
durabilidad.
Su costo aun es
un tanto
elevado, para
aplicaciones
específicas, no
se pueden
adaptar a otros
sistemas..
Tabla No. 3: Cuadro comparativo del estado del arte.
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Adán Campos López (94216247)Roberto Barrueta Ramírez (94219735) 14
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,
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Adán Campos López (94216247)Roberto Barrueta Ramírez (94219735) 15
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.
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Adán Campos López (94216247)Roberto Barrueta Ramírez (94219735) 16
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
INICIO
FIN
BUSCASIGUIENTE
INSTRUCCION
EJECUTARINSTRUCCION
¿ES UNAINSTRUCCIÓN DE
FINALIZACION?
SI
NO
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Adán Campos López (94216247)Roberto Barrueta Ramírez (94219735) 17
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
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Adán Campos López (94216247)Roberto Barrueta Ramírez (94219735) 18
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
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Adán Campos López (94216247)Roberto Barrueta Ramírez (94219735) 19
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
implementar infinidad de sistemas.
De propósito general, y algunos muy
especializados para aplicaciones específicas.
Para implementar un sistema, es necesario
agregar memorias (RAM y ROM), unidades
de entrada y salida, unidades de control.
Integran en su encapsulado al
microprocesador, memorias (RAM y ROM),
Unidades de entrada/salida.
Una vez colocados los dispositivos puede
hacer las mismas funciones que un micro
controlador.
La capacidad de sus dispositivos que integra
son limitadas, algunas ocasiones es
necesario agregar dispositivos.
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Adán Campos López (94216247)Roberto Barrueta Ramírez (94219735) 20
MICROPROCESADOR MICROCONTROLADOR
Es económico, pero aumenta su costo de
acuerdo con los dispositivos que se le
agreguen.
Es un poco más caro que un
microprocesador, pero al implementar un
sistema, los gastos son casi los mismos.
Son más funcionales que los
microcontroladores.
Son mejores para las aplicaciones que
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
mismo.
Utiliza la misma metodología para ser
programados.
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 dentro del
encapsulado, el dispositivo se 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:
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Adán Campos López (94216247)Roberto Barrueta Ramírez (94219735) 21
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 Registros alternos
Acumulador 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
Registros de propósito general
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 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
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Adán Campos López (94216247)Roberto Barrueta Ramírez (94219735) 22
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
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Adán Campos López (94216247)Roberto Barrueta Ramírez (94219735) 23
codificación tal cual por esta razón se utiliza una representación simbólica para hacer
referencia a las instrucciones del programa. Los CÓDIGOS DE OPERACIÓN 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.
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Adán Campos López (94216247)Roberto Barrueta Ramírez (94219735) 24
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.
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Adán Campos López (94216247)Roberto Barrueta Ramírez (94219735) 25
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.
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Adán Campos López (94216247)Roberto Barrueta Ramírez (94219735) 26
· 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
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Adán Campos López (94216247)Roberto Barrueta Ramírez (94219735) 27
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 Diagrama No. 2: Selector de Memorias.
Hex A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ROM7FFF 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
8FFF 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0RAM
HF 1 1 1 1 1 1 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.
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Adán Campos López (94216247)Roberto Barrueta Ramírez (94219735) 28
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.
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Adán Campos López (94216247)Roberto Barrueta Ramírez (94219735) 29
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.
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Adán Campos López (94216247)Roberto Barrueta Ramírez (94219735) 30
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.
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Adán Campos López (94216247)Roberto Barrueta Ramírez (94219735) 31
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
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Adán Campos López (94216247)Roberto Barrueta Ramírez (94219735) 32
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
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Adán Campos López (94216247)Roberto Barrueta Ramírez (94219735) 33
(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.
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Adán Campos López (94216247)Roberto Barrueta Ramírez (94219735) 34
Diagrama No. 5: Diagrama eléctrico de la Tarjeta Remota de Adquisición de Datos.
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Adán Campos López (94216247)Roberto Barrueta Ramírez (94219735) 35
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.
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Adán Campos López (94216247)Roberto Barrueta Ramírez (94219735) 36
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.
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Adán Campos López (94216247)Roberto Barrueta Ramírez (94219735) 37
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.
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Adán Campos López (94216247)Roberto Barrueta Ramírez (94219735) 38
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 MEMORIA32K 16K 8K 4K 2K 1K 512 256 128 64 32 16 8 4 2 1
Hex \Addr A15 A14 A13A12 A11 A10 A9 A8 A7 A6 A5A4 A3 A2A1 A00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ROM7FFF 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
8000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 RAMFFFF 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
Junto con MREQ delZ80 >Memorias<
74LS138 G1 A B C
Mux
A0 1 0 1 0 0 0 0 0... ...A4 1 0 1 0 0 1 0 0 CTC0A5 1 0 1 0 0 1 0 1 CTC1A6 1 0 1 0 0 1 1 0 CTC2A7 1 0 1 0 0 1 1 1 CTC3A8 1 0 1 0 1 0 0 0 SIO A DatosA9 1 0 1 0 1 0 0 1 SIO A CmdAA 1 0 1 0 1 0 1 0 SIO B DatosAB 1 0 1 0 1 0 1 1 SIO B Cmd
KIO
... ...AF 1 0 1 0 1 1 1 1B0 1 0 1 1 0 0 0 0 Canal 0B1 1 0 1 1 0 0 0 1 Canal 1B2 1 0 1 1 0 0 1 0 Canal 2B3 1 0 1 1 0 0 1 1 Canal 3B4 1 0 1 1 0 1 0 0 Canal 4B5 1 0 1 1 0 1 0 1 Canal 5B6 1 0 1 1 0 1 1 0 Canal 6B7 1 0 1 1 0 1 1 1 Canal 7
ADC
... ...BF 1 0 1 1 1 1 1 1
Junto con IOREQ delZ80 >Perifericos<
Tabla No. 8: Mapeo de memoria y dispositivos del sistema.
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Adán Campos López (94216247)Roberto Barrueta Ramírez (94219735) 39
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.
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Adán Campos López (94216247)Roberto Barrueta Ramírez (94219735) 40
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 SP,86FFH ;Modifica el apuntador de pila a la parte baja de la memoria libre. DI CALL INICIALIZA ;Configura el sistema. LD C,SIOAD LD A,'>' LD B,$00 OUT (C),A ;Envía Símbolo del sistema. JP INICIO
; ============================================================================; = 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
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735) 41
LD (MINSYS),A LD A,(HORASYS) INC A LD (HORASYS),A CP 18H ; ¿ Horas = 24 ? JP NZ, TERMINA_INT XOR A ;Inicializa las horas LD (HORASYS),ATERMINA_INT: EX AF,AF' ; Recupera el contenido de REG-A y REG-FRETN ; 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=0200HSEG PRINCIPAL
INICIO: LD A,(MSEGSYS) CP 30H ; Generamos una pausa JP NZ, INICIO CALL LEEDATO ; LEE un dato cada segundo, se guarda en REGISTRO-D LD A,D ; A = DatoSALTO: CP 'S' ; ¿ Dato = "S" ? JP NZ,SALTO1 ; Salta si no es igual. CALL SISTEMA ; Si es igual, llama a la subrutina SISTEMA. JP NOIMPR ; saltaSALTO1: CP 'C' JP NZ,SALTO2 CALL CANAL JP NOIMPRSALTO2: CP 'R' JP NZ,SALTO3 CALL REPORTE JP NOIMPRSALTO3: CP 'M' JP NZ,SALTO4 CALL MAXIMOS JP NOIMPRSALTO4: CP '?' ; Sobreflujo al escribir en el puesto serial LD B,$00 OUT (SIOAD),ANOIMPR: HALT ;Detiene la ejecución del CPU hasta detectar una interrupcion LD A,(SEGSYS) ;Obtenemos los SEGUNDOS del sistema. CP 0AH ;¿ Segs = 10 ? JP NZ, INICIO ;Si no es igual, salta a -inicio- CALL EDO_TIEMPO ;Si es igual, checa el estado del tiempo de los canales.JP INICIO ;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
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735) 42
MAX1: LD A,E ;A=0 SUB $08 ;A=A-8 JP P,FIN_MAXIMOS ;¿ A es mayor que 7 ?, termina LD IX,MAXIMO ;Apuntamos al Máximo del primer canal. ADD IX,DE ;Nos desplazamos al Máximo del canal deseado LD A,(IX) ;Recuperamos máximo. HALT OUT (SIOAD),A ;Envia el máximo al puerto serial INC E ;siguiente Canal. JP MAX1FIN_MAXIMOS:
RET
; ============================================================================; = 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,$00LAZO: 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 canalIMPRIME _ 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 _ DATOSSEL_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
; ============================================================================
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735) 43
; = 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,$00SIG_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 ;. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735) 44
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 C 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 valorcorrecto
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735) 45
;. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;Segundo, esperar a que el usuario teclee una tecla y verificar que sea un comando permitido. ;. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .PAUSA1: LD A,(SEGSYS) CP 0AH ; ¿ Seg = 10 ? JP NZ, PAUSA2 CALL EDO_TIEMPO ; 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 PrimerCanal. ADD IX,DE ADD IX,DE LD H,(IX+1) ; Desplazarse al la Primera Dirección de Datos del CanalDeseado. 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 apuntadorMAS_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
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735) 46
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 cadacanal.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 TIEMPO ;Devuelve C=Minutos Base y B=Horas base LD IX,MINSYS LD (IX),C ;Guarda Minutos de tiempo real LD (IX+1),B ;Guarda Horas de tiempo real A LD E,$00
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735) 47
SIS1: ;Hay que actualizar todos los canales LD A,E SUB $08 ;A=A-8 JP P,FIN_SISTEMA ;(A es mayor que 7?, termina CALL ACTUALIZA ;Actualiza tiempo real de la siguiente muestra para cadacanal. LD IX,DIR_INICIAL ;Inicializa los datos de canal 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 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 INC E ;siguiente Canal. JP SIS1FIN_SISTEMA: HALT LD B,$00 LD A,'>' OUT (SIOAD),A RET ;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 NUMERO LD A,E ;A=numero tecleado por el usuario SUB $0B ;A = A- 11 JP P,ERROR_TIEMPO ;A es mayor que 11?,termina LD D,$00 LD A,E ;A=valor entre 0 y 12 CP $00 JP Z,UN_MINUTO ;Si es cero, asignar: un minuto.T1: INC D ;Para los minutos, solo seran validos INC D ;multiplos de 5. INC D
INC DINC D
DEC A JP NZ,T1 JP FIN_TIEMPOUN_MINUTO: LD D,$01 ;Se pulso la tecla "0", entonces minutos=1
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735) 48
JP FIN_TIEMPOERROR_TIEMPO: LD B,$00 LD D,$01FIN_TIEMPO: LD C,B ;Guarda B(horas) en REG-C HALT HALT LD B,$00; LD A,D; ADD $30; OUT (SIOAD),A LD A,'>' OUT (SIOAD),A LD B,C ;Recupera horas (B) LD C,D ;C = minutos tecleados por el usuario POP DE ;Recupera REG-E = Numero de canal. RET ;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 canalesNUMERO1: 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_NUMERONUM1: CP '1' JP NZ,NUM2 LD E,$01 JP FIN_NUMERONUM2: CP '2' JP NZ,NUM3 LD E,$02 JP FIN_NUMERONUM3: CP '3' JP NZ,NUM4 LD E,$03 JP FIN_NUMERONUM4: CP '4' JP NZ,NUM5 LD E,$04 JP FIN_NUMERONUM5: CP '5' JP NZ,NUM6 LD E,$05 JP FIN_NUMERONUM6: CP '6' JP NZ,NUM7 LD E,$06
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735) 49
JP FIN_NUMERONUM7: CP '7' JP NZ,NUM8 LD E,$07 JP FIN_NUMERONUM8: CP '8' JP NZ,NUM9 LD E,$08 JP FIN_NUMERONUM9: CP '9' JP NZ,NUMA LD E,$09 JP FIN_NUMERONUMA: CP 'A' JP NZ,NUMB LD E,$0A JP FIN_NUMERONUMB: CP 'B' JP NZ,NUMC LD E,$0B JP FIN_NUMERONUMC: CP 'C' JP NZ,NUMD LD E,$0C JP FIN_NUMERONUMD: CP 'D' JP NZ,NUME LD E,$0D JP FIN_NUMERONUME: CP 'E' JP NZ,NUMF LD E,$0E JP FIN_NUMERONUMF: CP 'F' JP NZ,NO_NUMERO LD E,$0F JP FIN_NUMERONO_NUMERO: LD E,$10 ;Error, JP NOMASFIN_NUMERO: LD A,E SUB $0A ;A=A-10 JP M,NOMAS LD A,E ADD $37 ;$37+(REG-E)="A", "B",...,etc. JP IMP_NUMERONOMAS: LD A,E ADD $30 ;$30 +(REG-E)="1","2",...,etc.IMP_NUMERO: HALT HALT LD B,$00 OUT (C),A ;Devuelve el valor real RET ;Fin de NUMERO
; ============================================================================; = Actualiza el tiempo de captura del canal indicado.
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735) 50
; = 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 canalAGREGA_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 horasMAS_MINUTOS: LD A,D LD D,$00; POP AF ;Recupera A JP AGREGA_MINFIN_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 minutosMAS_HORAS:; POP AF ;Recupera A LD A,D LD D,$00 JP AGREGA_HORAFIN_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=0XOR A ;DIR. DE REGISTRO DE LECTURA 0
LD C,SIOAC ;C TOMA DIR. SIOAC
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735) 51
OUT (C),A ;SALE DIR. DE REGISTRO DE LECTURA 0IN A,(C) ;A TOMA INFO DEL REG. DE LECTURA
BIT 0,A ;el bit 0 de REG-A lo compara con CERO;VERIFICA SI Rx CARATER DISPONIBE D0=1
JP Z,NODATOSIO ;SI D0=0, NO HAY CARACTER DISPONIBLE. LD A,$01 ;Carácter Disponible: OUT (C),A ;SALE DIR. DE REGISTRO DE LECTURA 1 IN A,(C) ;A TOMA INFO DEL REG. DE LECTURA 1 LD C,SIOAD IN D,(C) ;Reg-D = Caracter del SIO. LD C,SIOAC BIT 4,A JP NZ,LIMPIAERROR BIT 5,A JP NZ,LIMPIAERROR BIT 6,A JP NZ,LIMPIAERROR JP CARACTERLIMPIAERROR: LD A,$30 ;Código para limpiar error de Rx OUT (C),A LD D,$3F ;Envía un valor para idenficar el error(?) JP CARACTERNODATOSIO: LD D,$00 ;No recibio dato, envia 00H para confirmarCARACTER: RET ; 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 $A4CTC1: EQU $A5CTC2: EQU $A6CTC3: EQU $A7SIOAC: EQU $A9SIOAD: EQU $A8MSEGSYS: EQU 8000HSEGSYS: EQU 8001HMINSYS: EQU 8002HHORASYS: EQU 8003H
INCREMENTA: EQU 8010HSIG_MUESTRA: EQU 8020HDIR_INICIAL: EQU 8030HDIR_FINAL: EQU 8040HAPUNTADOR: EQU 8050HMAXIMO: EQU 8060H
LD A,$00 LD (MSEGSYS),A LD (SEGSYS),A LD (MINSYS),A LD (HORASYS),A LD IX,DATOS ;Apuntamos a donde están los datos LD A,$60 ;Numero total de datos=90 (de 8 bytes) LD HL,INCREMENTA ;Dirección de RAM $8010GUARDA_RAM: LD D,(IX) ;Recupera dato de ROM LD (HL),D ;Guarda en RAM INC HL INC IX DEC A JP NZ,GUARDA_RAM
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735) 52
;. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .; Seleccionamos el CTC0 del KIO y lo configuramos. Para el ADC.; Flanco de bajada.(2457600/16/01=153600)
LD B,$00 LD A,$05 ; mandamos la palabra de ctrl. hacia el CTC0 preescaler x16 OUT (CTC0),A ; 1o. A15-A8=0000 0101 y A7-A0= 1010 0100
; 2o. IORQ = 0 y WR = 0; 3o. BUS DE DATOS = 00000101 05H
LD A,$01 ; mandamos la palabra de cte. de tiempo hacia; el CTC0. D7-D0= 0000 0001 01H
OUT (CTC0),A ; 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 ; mandamos la palabra de ctrl. hacia el CTC1; preescaler x256. A=00100101
OUT (CTC1),A ; 1o. A15-A8=0000 0101 y A7-A0= 1010 0100; 2o. IORQ = 0 y WR = 0
; 3o. BUS DE DATOS = 00100101 25H LD A,$08 ; mandamos la palabra de cte. de tiempo hacia
; el CTC1. D7-D0= 0000 1000 08H OUT (CTC1),A ; 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 ; mandamos la palabra de ctrl. hacia el CTC2; preescaler x256. A=00100101
OUT (CTC2),A ; 1o. A15-A8=0000 0101 y A7-A0= 1010 0110; 2o. IORQ = 0 y WR = 0; 3o. BUS DE DATOS = 00010101 15H
LD A,$60 ; mandamos la palabra de cte. de tiempo hacia; el CTC2. D7-D0= 0110 0000 60H=96D
OUT (CTC2),A ; 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 ; mandamos la palabra de ctrl. Hacia el CTC3.; preescaler x256 00110101
OUT ($A7),A ; 1o. A15-A8=0000 0101 y A7-A0= 1010 0100; 2o. IORQ = 0 y WR = 0; 3o. BUS DE DATOS = 00010101 15H
LD A,$60 ; mandamos la palabra de cte. de tiempo hacia; el CTC3. D7-D0= 0110 0000 60H=96D
OUT ($A7),A ; A15-A8=0000 0000 A7-A0= 1010 0100 00A7H
;. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .; Configuramos el SIO-A
LD B,$00 ;A15-A8 CEROS LD A,$18 ;RESET CANAL A DEL SIO OUT (SIOAC),A ;LO SACO LD A,$14 ;RESET EX/STA INT Y DIR WR4 OUT (SIOAC),A ;LO SACO LD A,$04 ;x01,1 BIT DE PARADA, SIN PARIDAD OUT (SIOAC),A ;LO SACO LD A,$03 ;DIR WR3 OUT (SIOAC),A ;LO SACO LD A,$C1 ;8 BITS,RX ACTIVA, AUTO ENE INACTIVO OUT (SIOAC),A ;LO SACO LD A,$05 ;DIR WR5
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735) 53
OUT (SIOAC),A ;LO SACO LD A,$EA ;8 BITS,TX ACTIVO,DTR Y RTS ACTIVOS OUT (SIOAC),A ;LO SACO LD A,$11 ;DIR WR1 Y RESET EX/STA INT OUT (SIOAC),A ;LO SACO LD A,$11 ;EXT INT ACTIVA,TX INT INACTIVA, INT
;EN TODOS LOS CARACTERES RECIBIDOS OUT (SIOAC),A ;LO SACO
RET ; 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=1000HSEG 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 $0001,$0001,$0001,$0001,$0001,$0001,$0001,$0001 ;8010H Tiempo baseDW $0001,$0001,$0001,$0001,$0001,$0001,$0001,$0001 ;8020H Tiempo para la siguiente muestraDW $8700,$8800,$9000,$9800,$A000,$A800,$B000,$B800 ;8030H Dirección _inicial para la captura de datosDW $87FF,$8FFF,$97FF,$9FFF,$A7FF,$AFFF,$B7FF,$BFFF ;8040H Dirección final para la captura de datosDW $8700,$8800,$9000,$9800,$A000,$A800,$B000,$B800 ;8050H Comienza la captura de datos enDW $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000 ;8060H Almacena los Máximos (inicializa en cero):
END ; fin del programa.
; ===========================================================================; ===========================================================================; ===========================================================================
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735) 54
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.
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735) 55
Figura No. 12:Simulación virtual del estado de los registros del procesador z80.
(aún no se carga el programa).
6.3 MANUAL DE OPERACIÓN DEL SISTEMA.
A. 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 VARIABLE C EFECTO
B.1 Pulsar la letra C (mayúscula) C= Indicar al programa que
deseamos configurar un canal.
B.2 Elegir el canal deseado (del 0 al 7) C=2 Selección del canal.
B.3 Pulsar la tecla T (mayúscula) C=2T Indicar al programa que vamos
a cambiar la temporización del
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735) 56
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 VARIABLE C EFECTO
C.1 Pulsar la letra C (mayúscula) C= Para seleccionar canal.
C.2 Elegir el canal deseado (del 0 al 7) C=5
C.3 Pulsar la tecla R (mayúscula) 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.
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735) 57
D. Obtener el valor máximo de cada canal.
ACCIÓN VARIABLE C EFECTO
D.1 Pulsar la letra C (mayúscula) C= Selección de canal
D.2 Elegir el canal deseado (del 0 al 7) C=0
D.3 Pulsar la tecla M (mayúscula) C=0M
Recupera el valor
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 VARIABLE C EFECTO
E.1 Pulsar la letra C (mayúscula) C= Seleccionar canal.
E.2 Elegir el canal deseado (del 0 al 7) C=7
E.3 Pulsar la tecla B (mayúscula) 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 VARIABLE S EFECTO
F.1 Pulsar la letra S (mayúscula) S= 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
:
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735) 58
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 VARIABLE S EFECTO
F.1 Pulsar la letra M (mayúscula) M 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.
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735) 59
H. Recuperar los datos almacenados de todos los canales.
ACCIÓN VARIABLE S EFECTO
F.1 Pulsar la letra R (mayúscula) R 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.
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735) 60
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.
EQUIVALENTE EN CÓDIGOBINARIO
VALORES OBTENIDOS EN ELLABORATORIO
VOLTAJE DEENTRADA
(E-3=milivolts) D7 D6 D5 D4 D3 D2 D1 D0
EQ.DECIMAL
EQ.HEX
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 672.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
5.00 E+0 1 1 1 1 1 1 1 1 256 FF FF FF FF FE FF FF FF FF
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.
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735) 61
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:
VALORES REGISTRADOS EN CADA CANAL(Hexadecimal)
HORA V inC0
(1 min)C1
(5 min)C2
(15 min)C3
(20 min)C4
(30 min)C5
(40 min)C6
(50 min)C7
(60 min)
3:30 p.m. 3.7891 C23:31 p.m. 3.7305 BF3:32 p.m. 3.7305 BF3:33 p.m. 3.7500 C03:34 p.m. 3.7305 BF3:35 p.m. 3.7305 BF BE3:36 p.m. 3.7695 C13:37 p.m. 3.6914 BD3:38 p.m. 3.6719 BC
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735) 62
VALORES REGISTRADOS EN CADA CANAL(Hexadecimal)
HORA V inC0
(1 min)C1
(5 min)C2
(15 min)C3
(20 min)C4
(30 min)C5
(40 min)C6
(50 min)C7
(60 min)
3:39 p.m. 3.6328 BA3:40 p.m. 3.5938 B8 B93:41 p.m. 3.4961 B33:42 p.m. 3.5156 B43:43 p.m. 3.4961 B33:44 p.m. 3.5547 B63:45 p.m. 3.5156 B4 B5 B43:46 p.m. 3.5352 B53:47 p.m. 3.5352 B53:48 p.m. 3.5547 B63:49 p.m. 3.4961 B33:50 p.m. 3.5156 B4 B4 B33:51 p.m. 3.4766 B23:52 p.m. 3.4180 AF3:53 p.m. 3.4375 B03:54 p.m. 3.4375 B03:55 p.m. 3.3984 AE AF3:56 p.m. 3.3399 AB3:57 p.m. 3.3203 AA3:58 p.m. 3.3008 A93:59 p.m. 3.2617 A74:00 p.m. 3.2617 A7 A7 A7 A74:01 p.m. 3.2813 A84:02 p.m. 3.2813 A84:03 p.m. 3.2617 A74:04 p.m. 3.2227 A54:05 p.m. 3.1641 A2 A24:06 p.m. 3.1055 9F4:07 p.m. 3.0859 9E4:08 p.m. 2.9492 974:09 p.m. 2.9688 984:10 p.m. 2.9102 95 94 95 944:11 p.m. 2.8711 934:12 p.m. 2.8711 934:13 p.m. 2.8516 924:14 p.m. 2.7930 8F4:15 p.m. 2.8906 94 93 944:16 p.m. 2.8711 934:17 p.m. 2.9102 954:18 p.m. 2.9297 964:19 p.m. 2.9297 964:20 p.m. 2.9883 99 99 9A4:21 p.m. 3.0274 9B4:22 p.m. 3.0274 9B4:23 p.m. 3.0664 9D4:24 p.m. 3.1250 A04:25 p.m. 3.1445 A1 A04:26 p.m. 3.1836 A34:27 p.m. 3.2031 A44:28 p.m. 3.2031 A44:29 p.m. 3.2422 A64:30 p.m. 3.2031 A4 A4 A5 A4 A4 A54:31 p.m. 3.2227 A54:32 p.m. 3.1836 A34:33 p.m. 3.1836 A3
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735) 63
VALORES REGISTRADOS EN CADA CANAL(Hexadecimal)
HORA V inC0
(1 min)C1
(5 min)C2
(15 min)C3
(20 min)C4
(30 min)C5
(40 min)C6
(50 min)C7
(60 min)
4:34 p.m. 3.1250 A04:35 p.m. 3.0469 9C 9B4:36 p.m. 3.0274 9B4:37 p.m. 3.0078 9A4:38 p.m. 2.9883 994:39 p.m. 3.0274 9B4:40 p.m. 3.0859 9E 9D4:41 p.m. 3.0664 9D4:42 p.m. 3.1250 A04:43 p.m. 3.2031 A44:44 p.m. 3.2227 A54:45 p.m. 3.2617 A7 A7 A84:46 p.m. 3.3594 AC4:47 p.m. 3.4180 AF4:48 p.m. 3.4375 B04:49 p.m. 3.4766 B24:50 p.m. 3.5156 B4 B4 B4 B44:51 p.m. 3.5156 B44:52 p.m. 3.5547 B64:53 p.m. 3.5742 B74:54 p.m. 3.5547 B64:55 p.m. 3.4570 B1 B24:56 p.m. 3.6328 BA4:57 p.m. 3.6328 BA4:58 p.m. 3.5742 B74:59 p.m. 3.5938 B85:00 p.m. 3.5547 B6 B5 B5 B55:01 p.m. 3.5156 B45:02 p.m. 3.4961 B35:03 p.m. 3.4180 AF5:04 p.m. 3.3984 AE5:05 p.m. 3.3594 AC AD5:06 p.m. 3.2617 A75:07 p.m. 3.2031 A45:08 p.m. 3.1836 A35:09 p.m. 3.1641 A25:10 p.m. 3.0664 9D 9D 9E 9F5:11 p.m. 3.1250 A05:12 p.m. 3.0664 9D5:13 p.m. 3.0469 9C5:14 p.m. 3.0469 9C5:15 p.m. 3.0664 9D 9D 955:16 p.m. 3.0859 9E5:17 p.m. 3.1250 A05:18 p.m. 3.1055 9F5:19 p.m. 3.1250 A05:20 p.m. 3.1055 9F 9E5:21 p.m. 3.1250 A05:22 p.m. 3.0859 9E5:23 p.m. 3.0078 9A5:24 p.m. 2.9492 975:25 p.m. 2.9102 95 935:26 p.m. 2.8320 915:27 p.m. 2.7539 8D5:28 p.m. 2.6758 89
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735) 64
VALORES REGISTRADOS EN CADA CANAL(Hexadecimal)
HORA V inC0
(1 min)C1
(5 min)C2
(15 min)C3
(20 min)C4
(30 min)C5
(40 min)C6
(50 min)C7
(60 min)
5:29 p.m. 2.5586 835:30 p.m. 2.4609 7E 7D 7E 7E 79 78 775:31 p.m. 2.3047 765:32 p.m. 2.1289 6D5:33 p.m. 1.9727 655:34 p.m. 1.8555 5F5:35 p.m. 1.7578 5A 5A5:36 p.m. 1.7578 5A5:37 p.m. 1.6602 555:38 p.m. 1.6211 535:39 p.m. 1.5820 515:40 p.m. 1.5234 4E 4E5:41 p.m. 1.5039 4D5:42 p.m. 1.4648 4B5:43 p.m. 1.4063 485:44 p.m. 1.3086 435:45 p.m. 1.3281 44 42 435:46 p.m. 1.2305 3F5:47 p.m. 1.1914 3D5:48 p.m. 1.1523 3B5:49 p.m. 1.0938 385:50 p.m. 1.0352 35 34 345:51 p.m. 1.0156 345:52 p.m. 0.9961 335:53 p.m. 0.9961 335:54 p.m. 0.9375 305:55 p.m. 0.8203 2A 2A5:56 p.m. 0.7813 285:57 p.m. 0.7031 245:58 p.m. 0.6836 235:59 p.m. 0.6250 206:00 p.m. 0.5469 1C 1C 1A 1A6:01 p.m. 0.4688 186:02 p.m. 0.4102 156:03 p.m. 0.3906 146:04 p.m. 0.3125 106:05 p.m. 0.2930 0F 0E6:06 p.m. 0.3320 116:07 p.m. 0.2148 0B6:08 p.m. 0.1367 076:09 p.m. 0.1758 096:10 p.m. 0.1367 07 06 05 056:11 p.m. 0.0586 036:12 p.m. 0.0781 046:13 p.m. 0.0391 026:14 p.m. 0.0391 026:15 p.m. 0.0586 03 03 026:16 p.m. 0.0391 026:17 p.m. 0.0195 016:18 p.m. 0.0391 026:19 p.m. 0.0391 026:20 p.m. 0.0195 01 016:21 p.m. 0.0195 016:22 p.m. 0.0000 006:23 p.m. 0.0000 00
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735) 65
VALORES REGISTRADOS EN CADA CANAL(Hexadecimal)
HORA V inC0
(1 min)C1
(5 min)C2
(15 min)C3
(20 min)C4
(30 min)C5
(40 min)C6
(50 min)C7
(60 min)
6:24 p.m. 0.0000 006:25 p.m. 0.0000 00 006:26 p.m. 0.0000 006:27 p.m. 0.0000 006:28 p.m. 0.0000 006:29 p.m. 0.0000 006:30 p.m. 0.0000 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.
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.)
CANALES
C0 C1 C2 C3 C4 C5 C6 C7VALOR MÁXIMO
ALCANZADO PORCADA CANAL C2
3.79VBE
3.71VB5
3.54VB4
3.52VB5
3.54VB4
3.52V9F
3.11VA5
3.22V
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735) 66
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.)
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735) 67
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.)
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735) 68
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.)
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735) 69
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.
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735) 70
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.
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735) 71
SECCION IX
ANEXOS
ANEXO A:
GLOSARIO/NOMENCLATURAS
ADC. Analogic Digital Converter. Convertidor Digital Analógico, hace la operación inversaque el CAD, convierte las señal digital en analógica.
ALU. Unidad Lógico-Aritmética; Se encarga de realizar las operaciones Lógicas yAritmé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.
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735) 72
SEÑALES DE CONTROL: se encarga de llevar las señales de sincronización adecuadasentre los dispositivos; normalmente son líneas independientes que hacen una funciónespecifica como la de llevar un pulso o el control de reloj.
CISC. Conjunto de Instrucciones Complejo; es una arquitectura que tiene como objetivomejorar el proceso de compilación utilizando un mayor número de instrucciones.
DAC. Digital Analogic Converter. Convertidor Analógico Digital, Convierte señales analógicasa Digitales.
EPROM: (Erasable Programmable Read Only Memory) que es una memoria que se puedeprogramar por medio de pulsos eléctricos más alto que los normales y puede ser borrada conluz ultravioleta.
EEPROM: (Electrically Erasable ROM) que permite ser borrada y reprogramadaeléctricamente, sin embargo este tipo de memorias sólo permiten cierta cantidad de vecesser reprogramadas.
RAM: o memoria de acceso aleatorio; en ella se almacenan los programas que se esténejecutando en su momento permaneciendo así mientras esté alimentada eléctricamente; unavez que la energía es cortada, también es descargada la información de la memoria, enpocas palabras se limpia la memoria.
RISC. Conjunto de Instrucciones Reducidas; es una arquitectura utilizada en el diseño decomputadoras, el cual tiene un conjunto de instrucciones limitado y sencillo, un gran númerode registros de propósito general.
ROM: o memoria de sólo lectura; se graban las secuencias de inicio y el establecimiento deparámetros iniciales, la información permanece aún cuando se corte la energía y sucaracterística principal es que sólo se puede leer la información que se encuentra en suinterior, ya que no se puede modificar.
VCD. Volts de Corriente Directa.
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735) 73
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.
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735) 74
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 0 a 7 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
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735) 75
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.
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735) 76
VALORES EN VOLTS EN SISTEMADECIMAL
CONVERSIÓN A CÓDIGOBINARIO
0 0001 0012 0103 0114 1005 1016 1107 111
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735) 77
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:
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735) 78
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
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735) 79
+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
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735) 80
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
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735) 81
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
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735) 82
ANEXO E
CONJUNTO DE INSTRUCCIONES Y RESUMEN DE BANDERAS
DEL MICROPROCESADOR Z80
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735) 83
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735) 84
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735) 85
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735) 86
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735) 87
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735) 88
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735) 89
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735) 90
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735) 91
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 <0,255>
Nn Valor de 16 bits comprendido entre <0,65535>
*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.
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735) 92
ANEXO F
CUADRO COMPARATIVO ENTRE EL VOLTAJE DE ENTRADA
Y SU EQUIVALENCIA EN EL SISTEMA DIGITAL
EQUIVALENTE ENCÓDIGO BINARIO
EQUIVALENTE ENCÓDIGO BINARIOVOLTAJE
(E-3=milivolts)D7 D6 D5 D4 D3 D2 D1 D0
EQ.DECIMAL
EQ.HEX
VOLTAJE(E-3=milivolts)
D7 D6 D5 D4 D3 D2 D1 D0
EQ.DECIMAL
EQ.HEX
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
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735) 93
EQUIVALENTE ENCÓDIGO BINARIO
EQUIVALENTE ENCÓDIGO BINARIOVOLTAJE
(E-3=milivolts)D7 D6 D5 D4 D3 D2 D1 D0
EQ.DECIMAL
EQ.HEX
VOLTAJE(E-3=milivolts)
D7 D6 D5 D4 D3 D2 D1 D0
EQ.DECIMAL
EQ.HEX
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
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735) 94
EQUIVALENTE ENCÓDIGO BINARIO
EQUIVALENTE ENCÓDIGO BINARIOVOLTAJE
(E-3=milivolts)D7 D6 D5 D4 D3 D2 D1 D0
EQ.DECIMAL
EQ.HEX
VOLTAJE(E-3=milivolts)
D7 D6 D5 D4 D3 D2 D1 D0
EQ.DECIMAL
EQ.HEX
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
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735) 95
EQUIVALENTE ENCÓDIGO BINARIO
EQUIVALENTE ENCÓDIGO BINARIOVOLTAJE
(E-3=milivolts)D7 D6 D5 D4 D3 D2 D1 D0
EQ.DECIMAL
EQ.HEX
VOLTAJE(E-3=milivolts)
D7 D6 D5 D4 D3 D2 D1 D0
EQ.DECIMAL
EQ.HEX
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
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735) 96
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.
UNIVERSIDAD AUTONOMA METROPOLITANAUnidad Iztapalapa
C.B.I.
Aníbal Adán Campos López (94216247) Roberto Barrueta Ramírez (94219735) 97
9. www.zilog.com, información sobre producto Zilog.
10. www.ampere.com