Casa abierta
al
tiempo
UNWERSIOAD BUTONOM4 MESROPOUTANA
UNIDAD IZTAPALAPA
DIVISION DE CIENCIAS BASICAS E INGENIERIA
INGENIERIA ELECTRICA
TESIS QUE PRESENTAN LOS ALUMNOS:
BUENDIA PICON ENRIQUE 94316295
CARDENAS SANTIAGO VICTOR MANUEL 93319243
PARA LA OBTENCION DEL GRADO DE:
ING. ELECTRONICA CON AREA DE CONCENTRACION EN COMUNICACIONES
ASESOR:
PROLOG0
La razón de realizar el aparato telefónico “CONTADOR DE LLAMADAS
TELEFONICAS” para uso de casa, se basa en el problema que se tiene con la compañía
telefónica en cuanto a que en el recibo telefónico, en la gran mayoiía de las veces aparecen
llamadas telefónicas que no se reconocen (que no se han hecho). Por lo que el pago del
recibo telefónico se excede considerablemente.
Actualmente en el mercado no hay ningún tipo de aparato telefónico pequeño y que sea
para casa, con el que se pueda contar y llevar una lista exacta de las llamadas que se han
hecho durante el mes. Lo que si existe, es un identificador de llamadas, pero su uso es
básicamente como su nombre lo indica, un identificador del número telefónico llamante.
En este proyecto lo que se busca es guardar el número telefónico al cual se llama, así como
de la hora y fecha en que fue hecha, para que se pueda tener un control preciso de las
llamadas realizadas.
Si se tiene un control preciso de todas las llamadas telefónicas que se han hecho, ahora si, con una base se puede realizar una reclamación a la compañía telefónica. Aunque cabe
señalar que no es una base que sea todavía legal para hacer la reclamación ya que el aparato
Con el presente reporte creemos haber desarrollado una interesante labor de investigación y de desarrollo en un proyecto de utilidad importante, de acuerdo con nuestro presente nivel de conocimientos y medios de trabajo.
Queremos expresar nuestra gratitud al profesor Ing. Yudiel Pérez Espejo, por los
conocimientos que nos ha transmitido y por la asesoría con la que ha tenido a bien
distinguirnos.
Buendía Picón Enrique
Cárdenas Santiago Victor Manuel
INDICE TEMATICO
AGRADECIMIENTOS
INTRODUCCION
CAPITULO I “SEÑALES TELEFONICAS”
...
1CAPITULO I1 “EL APARATO TELEFONICO CONVENCIONAL”
...
7CAPITULO I11 “SISTEMA MINIMO CON PROCESADOR INTEL 80188”
...
143.1) CARACTERISTICAS DEL MICROPROCESADOR
...
153.2) CARACTERISTICAS DEL SISTEMA MINIMO
...
16CAPITULO IV “INTERFAZ DEL SISTEMA MINIMO CON EL APARATO TELEFONICO”
...
224.1) CONCEPTOS BASICOS 4.1 1) DETECTOR DE VENTANA
...
234.12) SEGUIDOR DE VOLTAJE
...
244.13) CONTADOR DE PULSOS
...
254.14) TEMPORIZADOR 5 5 5
...
264.15) INTEGRADO 74LS373
...
274.16) DIAGRAMA A BLOQUES DE LA INTERFAZ
....
28CAPITULO V “LISTADO DEL PROGRAMA UTILIZADO PARA EL PROCESAMIENTO DE LA INFORMACION”
...
29CAPITULO VI “DIAGRAMA FINAL”
...
56APENDICE
...
.59INTRODUCCION
Ventajas que ofrece el “CONTADOR DE LLAMADAS TELEFONICAS”
Guarda en una memoria (RAM) el número telefónico al que se está realizando la
llamada, así como la hora y la fecha en que fue realizada.
Despliegue de la información (número telefónico, hora y fecha) almacenada.
Cuenta con una memoria suficiente para almacenar 400 llamadas telefónicas.
Realiza un despliegue de la hora actual si así se desea.
Se puede ir revisando una por una las llamadas telefónicas realizadas.
Ya que el aparato toma la información de la línea telefónica, registra la llamada
realizada en cualquier teléfono que sea una extensión de la misma línea.
Una vez que la memoria llegó a su tope y se desee realizar otra llamada, el sistema
borrará la primer llamada hecha, para poder guardar en esa parte de la memoria la
nueva llamada.
Funcionamiento a nivel de usuario
El aparato cuenta con un teclado numérico (O a 9) y dos teclas adicionales para
realizar su funcionamiento de manera siguiente:
o Una vez que el aparato ha sido conectado el sistema pregunta por los siguientes datos:
l. La hora y minutos actuales.
2. Día, mes y año actual.
Mediante el teclado numérico introducimos los datos que el sistema requiere para
poder empezar a trabajar.
Una vez que los datos anteriores han sido introducidos el sistema llega a un menú
llamada, ir desplegando la información almacenada y en el momento que se desee, salir
de ese menú para volver al menú principal.
En ambos menús se indica en la pantalla cuales teclas hay que oprimir para realizar la operación que uno desea.
Debido a que nos es imposible detectar cuando la persona a la cual se llamó ha
descolgado, el aparato cuenta con una tecla para indicarle al sistema que la llamada ha entrado, o en caso contrario con la otra tecla indicarle al sistema que la llamada no se pudo realizar para que no la guarde en memoria; ya que la compañía telefónica cobra únicamente por las llamadas efectivas.
Así como en la parte anterior, el sistema indica que tecla hay que oprimir para realizar
SEÑALES TELEFONICAS DE LA LINEA
Para la realización de este proyecto fue necesario una fase de investigación en el
que era necesario conocer las señales básicas de la línea telefónica existentes hasta la
actualidad
.
Actualmente existen centrales que operan con 48 voltios. En este proyecto se
realizaron pruebas a la línea telefónica que maneja este voltaje. Dichas pruebas consistieron
en la comprobación de las siguientes señales en el Laboratorio de Electrónica :
1 .- COLGADO
2.- DESCOLGADO 3.- TONO DE MARCAR 4.- TONO DE LLAMAR 5.- CONTESTADO 6.- TONO DE OCUPADO
7.- DISCADO
8.- REPIQUE
9.-
voz
1
.- COLGADO.- Esta es una señal de corriente directa de 48 voltios
y permanece constantehasta que se descuelga el auricular del aparato telefónico.
Volts
t
48
I
2.- DESCOLGADO.- AI descolgar el auricular, el voltaje de la línea cambia de 48 V. a 5
V., debido a la incorporación del circuito telefónico a la línea de transmisión. Lo anterior es
debido a las diferencias de impedancia de la línea con el aparato telefónico.
Volts
I
DESCOLGADO
r
3.- TONO DE INVITACION A MARCAR.- Este tono se percibe casi instantáneamente
después de hacer el descolgado. El voltaje de la línea asciende a un nivel de 6.7 V.,
acompañado de un tono de 450 Hz sobre el mismo nivel, con una amplitud de dos volts
pico a pico.
2 VPP
5
I t
4.- TONO DE LLAMAR.- Se oye en caso de que el abonado al que se llama esté
desocupado; esta señal se presenta como en el caso anterior , sólo que con intervalos mudos
de 4 segundos por 1 segundo de tono.
f ~ 4 5 0 Hz.
6.7
5.- CONTESTADO.- Representa un descuelgue de abonado llamado. Cuando sucede, la
línea no presenta ningún cambio significativo en el nivel de voltaje; aunque las centrales y
las casetas telefónicas manejan una inversión de voltaje que se utiliza para incrementar el
contador de llamadas del abonado que haya realizado la llamada. En le caso de tratarse de un teléfono publico, la inversión de voltaje se hace llegar hasta el mismo para que funcione
el mecanismo que hace caer la moneda dentro de la alcancía ó descontar el crédito de una
tarjeta telefónica. La inversión de voltaje es exactamente al mismo voltaje.
Volts
CONTESTADO -S
Contestado (Abonado B)
1
rt
Caseta telefónica6.- TONO DE OCUPADO.- Sucede en el caso de que la línea del abonado al que se llama
esté ocupada, y la línea permanecerá así aunque el abonado desocupe la línea.
Esta señal tiene las mismas características que la del tono de ZZamar, con la salvedad de que
los intervalos son diferentes (0.5 segundos de tono por 0.5 segundos de silencio).
7.- DISCAD0.- Se hace a través de interrupciones periódicas. Debido a que la línea es de
carácter inductivo, se originan pulsos hasta de 150 Vpico, con una duración aproximada de
5 ms, al hacerse una interrupción. El número de pulsos será equivalente al dígito marcado.
Al completar el número marcado, la central origina una caída de voltaje, casi hasta O voltios
y regresa de nuevo a 7 voltios, independientemente de que el abonado al que se llama este o
no ocupado.
Volts
d t t
>
7
ó
80 ms.
OCUPADO
8.- REPIQUE.- Esta señal se utiliza para accionar la bobina del timbre del abonado al que
se llama. La señal tiene un rango de frecuencia de 16 a 32 Hz montada en una componente
de 48 voltios, con una amplitud de 100 V. (pico a pico), la cual tiene un periodo de 4
segundos de silencio por 1 segundo de tono.
9.- VOZ.- La señal de voz del abonado que llama a la del abonado llamado, es muy
diferente en amplitud de voltaje, ya que la amplitud del primero es de +2 Vp-p. y la
segunda es de +lo0 mvolts p-p montada en una componente de directa de 7 voltios,
mezclándose a veces con el ruido propio de la línea cuando la comunicación no es eficiente.
CAPITULO
I1
EL APARATO TELEFONICO CONVENCIONAL
El la figura 2.1 vemos un aparato telefónico que se usa para originar y recibir
llamadas telefónicas. El aparato es simple en su apariencia, pero realiza una cantidad
sorprendente de funciones. Las más importantes son las siguientes:
1. 2.
3.
4.
5.
6.
7 .
8.
Solicita el uso del sistema telefónico al levantar el microteléfono.
Indica que el sistema está disponible para el uso al recibir un tono, llamado tono
de discar o marcar.
Envía al sistema el número telefónico a llamar. Este número se indica por la
persona que llama al marcar el número por medio del teclado o al girar el disco.
Indica el estado de la llamada en ejecución al recibir tonos que indican este
estado (llamado, ocupado, etc.,).
Indica una llamada entrante al teléfono llamado por medio de una campanilla o de tonos audibles.
Transforma el lenguaje de una persona que llama en señales eléctricas para su
transmisión a otro abonado a través del sistema. Transforma las señales
eléctricas recibidas de un abonado distante al lenguaje para la persona llamada.
Ajusta automáticamente los cambios en la fuente de alimentación que recibe.
Señala al sistema cuando una llamada ha terminado al colgar la persona que
llama al microteléfono
.
Para que un teléfono preste alguna utilidad, debe estar conectado otro teléfono.
En los primeros días de la existencia del teléfono, los teléfonos, los teléfonos
estaban conectados uno al otro, sin conmutadores. A medida que la cantidad de
teléfonos aumentó, esto resultó poco práctico y se estableció una central u oficina de
(((figura 2.2)))
Circuito simplificado de aparato telefónico y oficina central.
DISCADO POR PULSOS
Los teléfonos que usan discado por pulsos, poseen un disco como se observa en la
figura 2.1, que abre y cierra el circuito local en un ritmo predeterminado. La cantidad de
pulsos de discado que resultan de una operación del disco está determinada por cuanto se gira el disco antes de soltarlo.
Si bien todas las facilidades de las redes telefónicas son actualmente compatibles
con los teléfonos con discado por pulsos, las normas presentes prevén el uso generalizado del discado por tonos.
En el aparato telefónico convencional, el discado por pulsos se efectúa con un disco
rotativo que posee 10 agujeros para los dedos, espaciados en forma equidistante como se
observa en la figura 2.3a. La cantidad de pulsos de discado que resulta de una operación
del disco está determinado por la distancia que se ha girado el disco antes de liberarlo. Los
agujeros con sus espacios regulares en la placa del disco y el tope para el dedo facilitan la
rotación del disco para el monto correcto para cada dígito. Esta acción arrolla un resorte
que hace girar el disco nuevamente a su posición de reposo al soltarlo. Un pequeño
regulador en el interior del disco produce su retorno a una velocidad constate de rotación. Una leva que es movida por el eje en la parte posterior hace funcionar los contactos de la
de retorno del disco. El circuito no se interrumpe durante el movimiento del disco hacia a delante.
La apertura del circuito interrumpe la circulación de la corriente del circuito que es
de 20 a 120 mA y el cierre permite que la corriente del circuito circule de nuevo. De esta
manera el discado por pulsos produce una serie de pulsos de corriente en el circuito. Un pulso es enviado para señalar el dígito 1, dos para el dígito 2, etc., hasta 10 pulsos para el dígito O.
LA TEMPORIZACIÓN DE LOS PULSOS
Los pulsos de discado fueron concebidos originalmente para operar sistemas de
comunicación electromecánicos. La inercia mecánica asociada con tales sistemas fijó un
límite superior en el ritmo de funcionamiento de unas diez operaciones por segundo. De
esta manera, los discos rotativos mecánico de los teléfonos fueron diseñados para producir
una taza nominal de diez pulsos por segundo.
La figura 2.3b, muestra la relación de la temporización de los pulsos de discado.
Observe que la cantidad de interrupciones representa el número discado. Un intervalo de
tiempo de apertura y cierre del circuito, denominado un período de pulso de discado, es
normalmente de 1 O0 ms de duración, lo que brinda la tasa de pulsos deseada de 1 O pulsos
por segundo. Esto surge de la relación de 1000 ms divididos por 100 de cada pulso, igual a 10 pulsos por segundos. Un pulso de discado consiste en un período en que el circuito está
abierto (intervalo de ruptura), y un período en que el circuito esta cerrado (intervalo de
cierre). El valor nominal de estos períodos en el sistema telefónico de los Estados Unidos, es de 60 ms de apertura y de 40 ms de cierre. Esto se denomina una tasa de ruptura del 60
por ciento. En otros países, esta tasa está generalmente alrededor del 67%.
LA D E T E C C I ~ N DE LOS PULSOS DEL DISCADO
Por cada kilómetro, el par de alambre entre la central y el aparato telefónico, tiene
una capacidad en paralelo de 0.04355 pF, una inductancia en serie de 0.62 mH y una
resistencia en serie de 26 ohm, aproximadamente. Estos valores producen la distorsión de
los pulsos de discado en duración y amplitud. De esta manera, los circuitos de detección de
los pulsos de discado en la central, deben estar en condiciones para detectar pulsos de
discado que no sean perfectamente rectangulares. Los circuitos debe decodificar también la
diferencia entre los pulsos sucesivos de un dígito y el comienzo del dígito siguiente. Esto se
EL ANTI-REPIQUE Y EL SILENCIAMIENTO DE LA VOZ
Picos de alta tensión son producidos cada vez que los contactos de los pulsos del
discado interrumpen la circulación de la corriente del circuito. Estos picos de tensión
elevada pueden causar el repique de la campanilla cuando se generan estos pulsos. El
sonido producido es relativamente suave, como un repique, de manera que el circuito para
prevenirlo de denomina circuito anti-repique. Este circuito está combinado muchas veces
con el circuito de silenciamiento que se observa en la figura 2-4. Las llaves adicionales, S5
y S6, son parte de un disco normal. Cuando se gira el disco, los contactos de las llaves S5 y
S6 del disco se cierran. Esto cortocicuita el circuito de voz para impedir ruidos fuertes en el
receptor y eventuales daños en el circuito de la voz. Los contactos cerrados también
cortocircuitan la bobina de la campanilla con un resistor de 340 ohm para impedir el
(((figura 2.4)))
CAPITULO I11
funcionamiento les proporciona mayor velocidad ya que en un alto porcentaje del programa la unidad de ejecución tiene disponible, en la cola de instrucciones, el código de la siguiente instrucción a ejecutar.
CARACTERISTICAS DEL SISTEMA MINIM0
La tarjeta de experimentación consta de los componentes siguientes:
0 Una memoria ROM de 8K bytes 2764.
0 Una memoria
RAM
estática de 8K bytes 6264.0 Controlador de teclado despliegue 8279.
0 Cristal de 16 Mhz.
A fin de tener una mayor flexibilidad, la tarjeta de experimentación, sólo contiene los
componentes básicos del sistema mínimo, pero contiene conectores y una “ranura”, con una
configuración de canal PC-XT, que permite agregar, en una tarjeta adicional de propósito
general, la circuitería específica que requiera la aplicación. Se están aplicando ambas
tarjetas en el diseño y construcción de un sistema mínimo con la configuración que se
muestra en la figura 3.1.
(((figura 3.1
> N
Bus de direccionesRESET
74LS373
CONTROLADOR DE BUS 80188
TRANSCEIVER
74LS245
v
v
-b - Bus de d y s
+
I
c
4 0 P
16 MHzi-L
VISUALIZADOR82C79
CONTROLADOR
En la “ranura” quedan a disposición del usuario todas las señales necesarias para realizar la conexión con la tarjeta adicional de propósito general que pueden ser de teclado/despliegue, adquisición, comunicación, etc.
(((figura 3.2)))
Registros generales
1
Bus de direcciones
C
(20 bits)
1
(8 bits)I
I
I
nsI
AL1
REGISTROS TEMPORALES
??+
. . . . . . . . . . . . . . . . . .1
BANDERAS REGISTRO DEJ
88FS
IP
Bus de datos
(16 bits)
REGISTROS DE COM. INTERNA
r
l
b l lA m
Cola de InstrucciónLOGICA DE CONTROL PARA EL BUS
I L .
I 1
‘
Unidad de Ejecución7
’
Unidad de Interfase de BusEU BIU
Diagrama funcional simplificado a bloques
Unidad de ejecución
Es la responsable de decodificar y ejecutar todas las instrucciones, esth constituida
por los 4 registros de propósito general, 2 registros base, 2 registros apuntadores, un
registro de banderas y la unidad aritmética y lógica. Ya que no posee conexión con el canal
del sistema, obtiene las instrucciones de una cola de 4 bytes (6 bytes para el 8086) que
forma parte de la unidad de interfase del canal (BIU). Cuando una instrucción requiere
hacer uso de la memoria o un periférico, la unidad de interfase del canal ejecuta los ciclos
Registros de propósito general
Son los registros: AX, BX, CX, DX y pueden considerarse completos o dividirse en
una parte alta: AH,BH, CH, DH y en una parte baja: AL, BL, CL, DL. Por lo tanto, cada
uno puede ser utilizado como un registro de 16 bits o dos registros independientes de 8 bits.
Cualquiera de estos registros se puede utilizar como acumulador al llevar a cabo
operaciones aritméticas y lógicas. (Ver fig. 3.2)
Registros índice y apuntadores
Los registros BP, SP, SI, DI sólo se pueden utilizar completos. BP, realiza la
función de apuntador base en el segmento de pila y para varias formas de direccionamiento.
SP es el apuntador del segmento de pila. SI es un apuntador a un arreglo fuente de datos y
DI es el apuntador a un arreglo destino. Estos 4 registros se utilizan en los diferentes modos
de direccionamiento del microprocesador. (Ver fig. 3.2)
Unidad aritmética y lógica
En esta unidad se realizan las operaciones aritméticas y lógicas que puede ejecutar el microprocesador y el resultado de estas afecta los diferentes bits del registro de banderas a fin de ejecutar instrucciones condicionales de transferencia del programa. (Ver fig. 3.2)
Registros de banderas
Posee 6 banderas de estado y tres de control. Las banderas de estado reflejan el
resultado de una operación aritmética o lógica y permiten al programa cambiar la secuencia
de su ejecución, dependiendo del estado de alguna bandera. (Como se muestra en la fig.
3.3)
(((figura 3-31]) Banderas de control Banderas de estado
L
L
Banderas de estado
Las banderas de estado son las siguientes:
0 CF bandera de acarreo. Si se activa, en uno, indica que ocurrió un acarreo o un
“préstamo” del bit más significativo como resultado de una operación aritmética
o lógica de 8 O 16 bits.
0 PF bandera de paridad. Si está activa, en uno, indica que el resultado de una
operación tiene paridad par. Esta bandera se utiliza para checar errores en
caracteres transmitidos y sólo checa la paridad en los 8 bits menos
significativos.
0 AF bandera de acarreo auxiliar. Si se activa, en uno, indica que en la instrucción
ejecutada, se presentó un acarreo o un “préstamo” del bit 3 al 4 del registro
destino. Esta bandera la utilizan en forma implícita las instrucciones de ajuste
decimal y ascii.
0 ZF bandera de cero. Si se activa, en uno, indica que el resultado de una
operación aritmética o lógica fue cero.
SF bandera de signo. Indica que el resultado de una instrucción, normalmente
aritmética es negativo. Las instrucciones que la afectan se ejecutan en aritmética
de complemento a 2 , en la que el valor del bit mas significativo, 7 O 15, da el
signo. Por lo tanto, si SF=O, se trata de un número positivo y si SF=1, es un
número negativo.
0 OF bandera de sobreflujo(desb0rde). Indica que ocurrió un sobreflujo. Esto es,
el tamaño del resultado excede el tamaño del destino.
Banderas de control
Estas banderas permiten controlar tres estados del microprocesador y son las
0 TF bandera de trampa. Si se activa con uno ésta bandera, el procesador pasa a
ejecutar el programa instrucción por instrucción con fines de depuración. Ya que
no existen instrucciones ni para activarla ni para desactivarla se requiere ejecutar un enmascaramiento o desenmascaramiento mediante instrucciones lógicas con el registro de banderas.
0 IF bandera de habilitación de interrupciones. Al activarla, en uno, se habilitan
las interrupciones enmascarables que están dedicadas, usualmente, a los
periféricos del sistema.
0 DF bandera de dirección. Al activarla, con uno, las instrucciones para cadenas o
arreglos ejecutan un autodecremento de las direcciones fuente y destino, Si se
desactiva, con cero, esas instrucciones se ejecutan con incremento de ambas direcciones.
Unidad de interfase del canal
Ya que la unidad de ejecución no tiene una conexión directa del sistema, obtiene
código, operandos y datos a través de la unidad de interfase del canal que ejecuta todos los ciclos necesarios. Esta unidad consta de 4 registros de segmento, registros de comunicación interna, el apuntador de instrucciones, una cola de 4 bytes, la lógica de control del canal, y
un sumador dedicado para formar la dirección física. Mientras la unidad de ejecución
decodifica y ejecuta una instrucción la unidad de interfase del canal ejecuta un ciclo en el
que lee y almacena en la cola, el byte de la siguiente localidad de memoria. Estos es, ambas
unidades del CPU trabajan en forma paralela. Por lo tanto, en un alto porcentaje del
programa la unidad de ejecución tiene disponible, en la cola, el código de la siguiente
instrucción a ejecutar y de esta forma, prácticamente “desaparece” el tiempo del ciclo de
recuperación de memoria (fetch) lo que resulta en un incremento muy notable en la
velocidad de ejecución de la mayoría de los programas. La unidad de ejecución,
normalmente, mantiene llenos los 4 bytes de la cola ya que al estar vacío un byte ejecuta un nuevo ciclo a fin de llenarlo.
Registros segmentados
El espacio de memoria de los miembros originales de la familia 8086/8088 es de 1
Mbyte que se divide en segmentos lógicos de 64Kbytes. La unidad de interfase del canal tiene cuatro registros de segmento:
CS segmento de código DS segmento de datos
0 ES segmento extra
0 SS segmento de pila
El registro CS tiene la dirección del segmento de 64Kbytes donde se encuentra el programa
en ejecución. DS es un segmento de datos y ES, típicamente, también lo es. Estos registros
dan a esta familia una de sus características principales: la memoria segmentada que les
proporciona facilidades únicas para relocalizar programas. Así conviene analizar, en
detalle, como se forma una dirección para tener acceso a la memoria. Como ya se mencionó
el 801 88 es capaz de direccionar hasta 1 Mbyte de memoria, para lo que se requiere una
dirección de 20 bits. Si ni en la unidad de ejecución ni en la unidad de interfase del canal
existe un registro de 20 bits, la dirección física la forma el sumador dedicado de 20 bits.
Sumador dedicado de 20 bits
CS FFFFOH
IP
OOOOHDirección = FFFFOH
+
La forma usual para dar las direcciones es mediante una dirección lógica que da las
direcciones del segmento y del desplazamiento que para la reinicialización es:
FFFFH:OOOOH a partir de la dirección lógica se forma la dirección física mediante una
suma como la anterior.
Apuntador de instrucciones
El registro de instrucciones (IP), es de 16 bits y siempre apunta a la dirección de la
siguiente instrucción. Por lo tanto, es muy similar al registro PC de los microprocesadores
2-80, 8088, 8051. Ninguna instrucción tiene acceso directo a este registro pero,
CAPITULO IV
DETECTOR DE VENTANA
El circuito de la figura 4.1 está diseñado para monitorear un voltaje de entrada e
indicar cuando este voltaje está arriba o debajo de los límites prescritos. Por ejemplo las
fuentes de alimentación para los CI lógicos TTL deben regularse a 5.0 V. Si el voltaje de
alimentación excede 5.5 V la lógica puede dañarse, y si la alimentación de voltaje cae
debajo de 4.5 V, la lógica puede exhibir operación indeseada. Por tanto, los límites de la
fuente de alimentación debe verse a través de una ventana cuyos límites son 4.5 V y 5.5 V,
de aquí de la necesidad del detector de ventana
. Este circuito algunas veces se denomina
detector límite de doble extremo.
En la figura 4.1, el voltaje de entrada Ei se conecta a la entrada (-) del comparador A y a la
entrada (+) de B, en tanto que el límite inferior VLT se aplica a la entrada (-) de B. Cuando
Ei cae entre VLT y VUT, la luz de alarma está apagada. Pero cuando Ei cae debajo de VLT o
va arriba de VUT, la luz de alarma se enciende para indicar que Ei no está dentro de los
límites prescritos.
(((figura 4.1)))
SEGUIDOR
DE
VOLTAJEEl circuito de la figura 4.2 se denomina seguidor de voltaje ; pero, también se
conoce como seguidor de fuente , amplificador de ganancia unitaria o amplificador de
aislamiento. El voltaje de entrada, Ei, se aplica directamente a la entrada (+). Ya que el
voltaje entre las terminales (+) y (-) del amplificador operacional puede considerarse O.
Vo=Ei
Obsérvese que el voltaje de salida iguala al voltaje de entrada tanto en magnitud como en signo. Por tanto, como el nombre del circuito indica, el voltaje de salida sigue al voltaje de
entrada o fuente. La ganancia de voltaje es 1 ( o la unidad ), como se muestra por:
AcL=Vo/Ei= 1
Con frecuencia surge la pregunta: ¿Por qué preocuparse en usar un amplificador con una
ganancia de I? La respuesta puede comprenderse mejor si se compara un seguidor de
voltaje con un amplificador inversor. En este ejemplo, el interés principal no se centra en la polaridad de la ganancia de voltaje, sino en el efecto de carga a la entrada.
El seguidor de voltaje se utiliza porque su resistencia de entrada es alta (varios megaohms).
Por tanto, extrae una corriente despreciable de la fuente de señal.
TEMPORIZADOR 555
OPERACIóN MONOESTABLE O DE UN DISPARO
No todas las aplicaciones requieren una onda repetitiva continua como la que se
obtiene de un multivibrador de oscilación libre. Muchas aplicaciones necesitan operar sólo
por un tiempo de duración especifica. Estos circuitos requieren un multivibrador de un
disparo o monoestable. La figura 4.4 es un diagrama de circuito que utiliza el 5 5 5 para
operación monoestable. Cuando un pulso que va a negativo se aplica a la terminal 2, la
salida se va a alta y la terminal 7 elimina el corto circuito del capacitor C. El voltaje a
través de C se eleva desde O V a un ritmo determinado por RA y C. Cuando el voltaje en el capacitor alcanza 2/3 Vcc, un comparador interno hace que la salida cambie de alta a baja. Las formas de onda de voltaje de entrada y salida se muestran en la figura 4a y 4b.
La salida es alta durante un tiempo dado por:
falta = l . 1
RAC
La figura 4.4b es una gráfica de la ecuación anterior y muestra en forma rápida la amplia
variación de los pulsos de salida que pueden obtenerse y los valores requeridos de RA y C.
La figura 4.4 da una idea del circuito de disparo. En la práctica deben agregarse otras partes
para realizar un circuito que trabaje correctamente.
(((figura 4.4)))
1
:.;T
'
'-I'DIAGRAMA A BLOQUES DE LA INTERFASE
I
TELEFONOF
INTERFAZ
-
SEGUIDOR SEGUIDOR-
COMPARADOR DE VENTANA
DISPARADOR
I
CAPITULO V
PROGRAMA UTILIZADO PARA EL PROCESAMIENTO DE LA INFORNACION
p a g e 60,132
TITLE "PROYECTO TERMINAL I".
'I CONTADOR DE LLAMADAS TELEFONICAS ' l .
I
;ESTE PROGRAMA REALIZA LO SIGUIENTE: ;AUTOCOMPROBACION DE SUS MEMORIAS.
;DESPLIEGUE DE LAS LOCALIDADES DE MEMORIA. ;HABILITACION DE SUS TIMERS.
;DESPLIEGUE DE LA HORA
;EL CONTEO DE LLAMADAS TELEFONICAS ALMACENANDO EN MEMORIA EL ;NUMERO MARCADO, LA HORA Y LA FECHA EN QUE FUE HECHA LA LLAMADA.
CODIGO SEGMENT ASSUME CS:CODIGO
.186
PRINCIPAL PROC
."""""""""""""""""""~"""""""""""""
IORG TINIC: TI8279: TRAM :
DB DB DB TROM :
DB TRA"AL :
DB T ROMMAL :
DB TBIENV:
DB ORG OlFFOH
."""""~"""~_"""
I
; PROGRAMACION DEL UMCS
.""""""""""""~
IMOV DX, O FFAO H MOV A X , OFE3FH OUT DX,=
DB OEAH ; BR DW O O O O H
DW OFEOOH
.""""""""""""~
I; ZONA DE TABLAS
.""""""""""""~
IlOOOH
38H, OEH, 80H, 06H, 01H 12H, 3FH, ODOH
"C H E C K R A M:" "C H E C K R O M:"
I' ERROR EN RAM " " ERROR EN ROM I' 'I BIENVENIDO "
DB DIA:
DB MES :
AYO :
MENU 2 :
DB OPCIONl: DB OPCION2: DB DB DB
REVISAR1 :
DB REVISAR2 :
DB LLAMADA :
DB LISTA: DB TTRAD: DB DB TTRAD2 :
DB DB DB DB DB DB DB DB
I' MINUTOS : 1 1
I' DIA: I 1 'I MES: I f
AÑO: I1
"QUE DESEAS HACER" "1 - REV. LLAMADAS "2 - HORA 3 1NT.NUM" - "1 - BACK 2 DISPLAY" - II 3 EXIT 1 1
-
"ENTRO LLAMADA- E"
" NO ENTRO- S 'I
3OH, 31H, 32H, 33H, 34H, 35H, 36H, 37H 38H, 39H, 41H, 42H, 43H, 44H, 45H, 46H
44H, 41H, 44H, 47H, 4AH, 4CH, 3BH, 3CH 45H, 47H, 4AH, 56H, 4EH, 4AH, 4CH, 4FH 51H, SAH, 43H, 42H, 4DH, 54H, 55H, 56H 41H, 53H, 46H, 48H, 4BH, 58H, 59H, 55H
51H, 45H, 54H, 55H, 4FH, 40H, 51H, 4FH 32H, 34H, 36H, 38H, 30H, 4CH, 4AH, 47H
31H, 33H, 35H, 37H, 39H, 45H, 4EH, 45H 41H, S7H, 52H, S9H, 49H, 50H, 4AH, 55H INTO EQU 12
.""""""""-""""""""""""""""""""""""
ORG OOOOH
."~""""""""""" I
; PROGRAMACION DEL LMCS
."""""~"""""""
I
INC DL INC DL
MOV AX, OlFFH OUT DX, AX
.""_"""""""""""""""""""
I
; PROGRAMACION DEL PACS
.~"""""""""""""""""""""
I
INC DL INC DL
MOV AX, 003FH OUT DX, AX
."""_""""""""""""""""""
; PROGRAMACION DEL MMCS
."""_""""""""""""""""""
IMOV AX, 09FFH OUT DX, AX
."""""""""""""""""""""~
,; PROGRAMACION DEL MPCS
."_""""""""""""""""""""
,INC DL INC DL
MOV AX, 84BFH OUT DX, AX
. . .
. * *
. . . I INICIALIZACION DEL DISPLAY
I
MOV AX, CS MOV DS,AX XOR A X , AX MOV CX, 4000H ESPERA:
LOOP ESPERA MOV CX, 5 LEA SI , TINIC INIC:
LODSB
OUT 80H,AL IN AL, 82H NOP
RCL AL, 1 JC O1 LOOP INIC 01:
.""""~""~"""""""""""~
I; DESPLIEGUE DEL LETRERO DE CHECKRAM
.""""""""""""""""""~
I
;RETARDO DE ESPERA AL DISPLAY
;INICIALIZACION USANDO LA TABLA TINIC
;ESPERA A QUE LA BANDERA BF=O
LEA SI, TRAM MOV CX,lOH TRAM
EXPl:
LODSB
OUT 81H,AL
0 2 :
IN AL, 82H NO P
RCL AL, 1 JC 02 LOOP EXPl
;LECTAURA DE LA DIRECCION DE LA TABLA ;NUMERO DE CARACTERES A DESPLEGAR ;DESPLIEGUE DE CARACTERES
;ESPERA A QUE LA BANDERA BF=O
.""""""""""""""""""""""""""""""""~
I, VERIFICACION DE QUE LA RAM FUNCIONA CORRECTAMENTE
."""""""-"_"""""""""""""""""""""""-
IXOR A X , AX ;INICIALIZACION DE REGISTROS MOV SI , AX
MOV SI, 2000H ;VALOR DE SI PARA EL LOOP DE LA REVISION MOV AL,OOH ;VALOR DE PRUEBA QUE SE ESCRIBE
MOV DX, DI ;PONER EN DX EL VALOR DE DI PARA DESPLEGARLO STOSB ;GUARDAR VALOR EN RAM
DEC DI ;REGRESAR UNA DIRECCION SCASB ;COMPARAR AL CON ES:DI
JNZ MAL ;SALTAR SI NO SON IGUALES A MAL PRAM:
."""""""_""""
; DESPLEGAR DIRECCION
."""""""_""""
MOV AL, OCOH OUT 80H,AL
0 3 :
IN AL,82H NOP
RCL AL, 1 JC 03 MOV CX, 6 EXP2:
MOV AL,20H OUT 81H,AL 04 :
IN AL, 82H NOP
RCL AL, 1 JC 0 4 LOOP EXP2 MOV AH, 4 CONTEO :
0 5 :
0 6 :
MOV CL, 4 ROL DX, CL MOV AL, DL AND AL,OFH XLAT
OUT 81H,AL IN AL, 82H NO P
RCL AL, 1 JC 05 DEC AH
J N Z CONTEO
MOV AL, 02H OUT 80H,AL IN AL,82H NOP
RCL AL, 1 JC 06 DEC SI JNZ PRAM JMP PILA MAL :
JMP MAL1
;PASAR AL SEGUNDO RENGLON ;ESPERA A QUE LA BANDERA BF=O
;MOVERNOS 6 LUGARES DEL SEGUNDO RENGLON ;ESPERA A QUE LA BANDERA BF=O
;CONTADOR DE NUMEROS EN LA DIRECCION DADA EN DX ;CONTADOR DE BITS
; ROTAC I ON
;PONER NUMEROS DE DL EN AL ;ENMASCARAMIENTO
;TRADUCCION
; EXHIBICION
;ESPERA A QUE LA BANDERA BF=O
;CONTE0 DE LOS NUMEROS DE LA DIRECCION
;RETURN HOME(PR1MER CARACTER,PRIMER RENGLON) ;ESPERA A QUE LA BANDERA BF=O
;DECREMENTAR CONTEO DE DIRECCIONES
;Y PASAR SI NO ES CERO A SIGUIENTE DIRECCION ;SI TODO ESTA CORRECTO SALTAR A STACK
;DOBLE SALTO POR LA EXTENSION
I INICIALIZACION DEL STACK
.""""""""""""""""""""""""""""""""-
I
PILA:
MOV SP, 2000H
."""""""""~"""""""""""""""""""""~
,; MANDAR MENSAJE DE QUE LA RAM ESTA BIEN
."""""""""""""~"""""""""""""""""-
I
CALL PAUSA CALL CLEARD JMP EPROM
.""""""""""""""""""""""""""""""""~
IMANDAR MENSAJE DE QUE LA RAM ESTA MAL
.""""""""""""""""""""""""""""""""-
IMAL1:
07:
EXP3 :
08:
MOV AL,OlH OUT 80H,AL ;LIMPIAR DISPLAY
IN AL, 82H ;ESPERA A QUE LA BANDERA BF=O NOP
RCL AL, 1
JC 07
LEA S1,TRAMMAL ;DESPLEGAR TABLA TRAMMAL MOV CX, 10H ;NO SE PUEDEN USAR LLAMADAS LODSB
OUT 81H,AL IN AL, 82H NOP
RCL AL, 1 JC 08 LOOP EXP3
JMP FINAL ;SALTAR Y FINALIZAR
.""""""""""""""""""""""""""""""""~
I; VERIFICACION DE LA EPROM EPROM :
.""""""""""""""""""""""""""""""""~
ICALL REV EPROM
MOV AX,TSI] ;MOVER DOS ULTIMOS BYTES DE LA ROM CMP DX, AX ;COMPARACION CON LA SUMA
JE CORRECTO ;SALTA SI SON IGUALES
I
; DAR SALIDA DE ERROR EN ROM
.""""""""""""""""""""""""""""""""-
."""""""~""""""""""""""""""""""""" I
CALL CLEARD
LEA S1,TROMMAL ;PONER MENSAJE DE ERROR CALL DESPLIEGUE
LEA SI , MENU2 CALL DESPLIEGUE CALL PAUSA XOR BX, BX VEC: PUSH BX
CALL CLEARD MOV DX, CS MOV DS, DX LEA SI , OPCIONl CALL DESPLIEGUE MOV AL, OCOH OUT 80H,AL CALL OCUPADO LEA SI , OPCION2 CALL DESPLIEGUE CALL PAUSA
;INICIALIZO APUNTADOR DE LA RAM
;MENU
;REVISAR LLAMADAS
;PASAR AL SEGUNDO RENGLON ;HORA ACTUAL
.---"""""""""""""""""""""""""
MEN5: HLT MOV DX, CS MOV DS , DX
CMP BH, llllllllB JE MEN5
POP BX XOR AX, AX MOV DX, CS MOV DS , DX MOV AL, CL CMP AL, 31H JE REVISAR CMP AL,32H JE TIME CMP AL, 33H JE INTN
JMP VEC
~---""""""""~"""""""""""""""""~
T1ME:CALL CLEARD CALL DESPH JMP VEC VEC1:JMP VEC REV1SAR:PUSH BX
.---"""""""""""~"""""""""""""~
CALL CLEARD MOV DX, CS MOV DS, DX ;MENU
LEA S1,REVISARl ;1 RETROCEDER 2 DESPLEGAR CALL DESPLIEGUE
MOV AL, OCOH ;PASAR AL SEGUNDO RENGLON OUT 80H,AL
CALL OCUPADO
LEA SI,REVISAR2 ;3 REGRESAR AL MENU PRINCIPAL CALL DESPLIEGUE
CALL PAUSA EN5: HLT
MOV DS , DX
CMP BH, llllllllB JE EN5
POP BX
XOR A X , AX
MOV DX, CS MOV DS , DX MOV AL, CL CMP AL,31H JE BACKK
CMP AL, 32H JE DISPLAY
CMP AL, 33H JE VECl
JMP REVISAR
~---""""""""""""""""""""""~""""~
INTN: JMP INTNUM
~---"""""""~"""""""""""""""""
BACKK: PUSH BX CALL OCUPADO CALL CLEARD CALL PAUSA
MOV CL,12H ; RETROCEDE 16 LOCALIDADES DE MEMORIA POP BX
OTRA: DEC CL DEC BX
CMP CL,OOH JNE OTRA JMP REVISAR
.---"""""~"""""""""""""""""""""~
PARAVEC1:JMP VECl D1SPLAY:PUSH BX
~---"""""~~"""""""""~""""""""""~
CALL CLEARD
MOV AL,80H ; 1ER LOC. DEL 1ER RENGLON OUT 80H,AL
CALL OCUPADO
MOV CH,08H ;DESPLIEGUE EN EL DISPLAY DEL NO MARCADO POP BX
IMPNUM :
XOR AX, AX MOV DS, AX MOV AL, DS: [BX] OUT 81H,AL
PUSH AX
CALL OCUPADO POP Ax
MOV CH, 02H MOV AL, DS : [ BX] OUT 81H,AL PUSH AX CALL OCUPADO POP AX
DEC CH INC BX CMP CHI OOH JNE IMPHORA IMPHORA:
MOV AL, 3AH
OUT 81H,AL PUSH AX
CALL OCUPADO POP Ax
MOV CHI 02H MOV AL, D S : [BX] OUT 81H,AL PUSH AX CALL OCUPADO POP AX
DEC CH INC BX CMP CH,OOH JNE IMPHORA2 IMPHORA2 :
MOV AL, 2AH OUT 81H,AL PUSH AX
CALL OCUPADO POP AX
MOV AL, 2AH OUT 81H,AL PUSH AX
CALL OCUPADO POP AX
MOV CH, 02H MOV AL, DS: [BX] OUT 81H,AL PUSH AX
CALL OCUPADO POP AX
DEC CH INC BX CMP CHI OOH JNE IMPFECHA IMPFECHA:
PUSH AX
CALL OCUPADO POP AX
MOV CHI 02H MOV AL, DS : [BX] OUT 81H,AL PUSH AX CALL OCUPADO POP AX
DEC CH INC BX CMP CH, OOH JNE IMPFECHAl IMPFECHAl:
MOV AL, 2FH OUT 81H, AL PUSH AX
CALL OCUPADO POP AX
MOV CHI 02H MOV AL, DS : [ BX] OUT 81H,AL PUSH AX CALL OCUPADO POP Ax
DEC CH INC BX CMP CHI OOH JNE IMPFECHAZ IMPFECHA2:
~---""-"""""""""""""""~"""""""
PUSH BX CALL PAUSA CALL PAUSA CALL PAUSA POP BX JMP REVISAR
~---""""-"""""~"""""""~"""""""
PARAVEC2:JMP PARAVEC1 1NTNUM:MOV CHI 08H
~---"-"""""-"~""""""~"""""""""""~
INTNUM2:PUSH CX PUSH BX
INTNUM1:CALL CLEARD HLT
MOV DX, CS MOV DS, DX
POP AX
.---"-"""""""""""""""""~~"""""~
XOR AX, AX
MOV DX,0180H ;APUNTA LA PUERTO IN AL, DX ;RECIBE EL NUMERO ADD AL, 30H ;CONVERSION A ASCII
PUSH AX
CALL OCUPADO POP AX
OUT 81H,AL CALL PAUSA PUSH AX
XOR A X , AX
MOV DS, AX POP AX
POP BX POP
cx
MOV DS: [BX],AL ;SE GUARDA EL VALOR EN RAM INC BX
DEC CH
CMP CH, OOH ;"CHECA SI ES EL 8 NUMERO" JNE INTNUMZ
~---"""""""""""""""""""""""""""
PUSH BX MOV DX, CS MOV DS , DX CALL CLEARD
LEA S1,LLAMADA ;ENTRO LA LLAMADA PRESIONAR E CALL DESPLIEGUE
MOV AL, OCOH ;PASAR AL SEGUNDO RENGLON OUT 80H,AL
CALL OCUPADO
LEA SI, LISTA ;NO ENTRO PRESIONAR LA LETRA S CALL DESPLIEGUE
CALL PAUSA
.""""""""""""""""""""""""""""""""~
LIST: HLT MOV DX, CS MOV DS , DX
CMP BH, llllllllB JE LIST
POP BX
MOV DX, CS MOV DS, DX MOV AL, CL CMP AL,45H JE AHORA CM!? AL, 53H JE BACKKK JMP LIST
.""""""""""""""""""""""""""""""""~
BACKKK:PUSH BX CALL OCUPADO CALL CLEARD CALL PAUSA
DENUE : DEC CL DEC BX CMP CL,OOH JNE DENUE
PARAVEC3 : JMP PARAVEC2
~---""""""""""""""""""""
AHORA: PUSH BX CALL OCUPADO CALL CLEARD PUSH AX XOR AX, AX MOV DS, AX POP Ax
POP BX
MOV SI,1002H ;APUNTA A LA LOC. DE LA HORA LODSB
MOV CL, AL ROR AL, 4 AND AL,OFH ADD AL, 30H
""""""""_
MOV AL, CL AND AL, OFH ADD AL, 30H
MOV DS: [BX] ,AL ; (2DO DIGITO) INC BX
MOV SI,1001H ;APUNTA A LA LOC. DE LOS MINUTOS LODSB
MOV CL, AL ROR AL, 4 AND AL, OFH ADD AL,30H
MOV DS:[BXI,AL ;SE GUARDA EL MINUTO EN MEMORIA (1ER DIGITO) INC BX
MOV AL, CL AND AL, CL AND AL, OFH ADD AL, 30H
MOV DS: [BX] ,AL ; (2DO DIGITO) INC BX
MOV SI,1004H ;APUNTA A LA LOC. DEL MES LODSB
MOV CL, AL ROR AL, 4 AND AL, OFH ADD AL, 30H
MOV DS:[BX],AL ;SE GUARDA EL MES EN MEMORIA(1ER DIGITO) INC BX
ROR AL, 4 AND AL, OFH ADD AL, 30H
MOV DS:[BX],AL ;SE GUARDA EL DIA EN MEMORIA(1ER DIGITO) INC BX
MOV AL , CL AND AL, OFH ADD AL, 30H
MOV DS: [BX] ,AL ; (2DO DIGITO) INC BX
MOV SI,1005H ;APUNTA A LA LOC. DEL AÑO LODSB
MOV CL, AL ROR AL, 4 AND AL, OFH ADD AL, 30H
MOV DS:[BX],AL ;SE GUARDA EL AÑO EN MEMORIA(1ER DIGITO) INC BX
MOV AL, CL AND AL, OFH ADD AL, 30H
MOV DS: [BX] , AL ; (2DO DIGITO) INC BX
JMP PARAVEC3 FINAL :
NOP HLT
PRINCIPAL ENDP ;FINAL DEL PROGRAMA
. . . I
;* FUNCION QUE REVISA EPROM * . . .
REV EPROM PROC -
.""_""""""""""""""""
; DESPLIEGUE DEL LETRERO DE CHECKROM
.""""""""""""""""""~ I
LEA SI , TROM CALL DESPLIEGUE
I
."""_""""""""""""""""""""""""""
,XOR AX, AX MOV DX, AX LEA BX, TTRAD MOV S1,AX MOV DI, lFFEH SUMA :
LODSB ADD DX, AX PUSH DX MOV DX, SI DEC DX
."""~""""""_
I; DESPLEGAR SI
."""""""~""_
MOV AL, OCOH OUT 80H,AL
;LIMPIEZA DE DX Y AX
;INICIALIZACION DE SI PARA LECTURA ;INICIALIZACION DE CX PARA EL LOOP ;CARGAR UN BYTE EN AL
;SUMAR CONTENIDO DE AX A DX ;GUARDAR SUMA EN LA PILA
;MOVER SI A DX PARA DESPLEGARLO
;DECREMENTAR DX YA QUE EL LODSB LO INCREMENTO EN 1
CALL OCUPADO MOV CX, 6 MOV AL,20H OUT 81H,AL CALL OCUPADO EXP4:
LOOP EXP4 MOV AH, 4 CONTE02 :
MOV CL, 4 ROL DX, CL MOV AL, DL AND AL,OFH XLAT OUT 81H,AL CALL OCUPADO DEC AH
JNZ CONTE02 MOV AL,02H OUT 80H,AL
CALL OCUPADO POP DX
DEC DI JNZ SUMA RET
REV EPROM - ENDP
;MOVERNOS 6 LUGARES DEL SEGUNDO RENGLON
;CONTADOR DE NUMEROS DE LA DIRECCION ;CONTADOR DE BITS
; ROTAC I ON
;PONER NUMEROS DE DL EN AL ;ENMASCARAMIENTO
; TRADUCCION ;EXHIBICION
;CONTE0 DE LOS NUMEROS DE LA DIRECCION
; RETURN HOME
;DECREMENTAR CONTEO DE DIRECCIONES
;Y PASAR SI NO ES CERO A SIGUIENTE DIRECCION
RETARDO PROC NEAR PUSH CX MOV CX, 1656 DELAY: LOOP DELAY
POP
cx
RET RETARDO ENDP. * * * * * * * * * * * PAUSA PAUSA PROC NEAR
MOV CX, OFFFFH RET O :
MOV DX, 05H RET 1 :
DEC DX JNZ RET1 LOOP RETO
* * * * * * * * * * * * * * *
.""""""""""""""~""""""""""""""""""
,. . . I
;* FUNCION QUE ATIENDE A LA INTERRUPCION O *
. . .
I
SA1 - INTO PROC
LEA BX, TTRAD2 MOV AL, 40H OUT OlH,AL IN AL, OOH NO P
AND AL, 3FH XLAT
MOV CL, AL MOV DX, OFF22H MOV AX, 8000H OUT DX, AX I RET SA1 INTO ENDP
.""""""""""""""""""""""""""""""~""
I-
TIMER PROC NEAR PUSHA
MOV A X , 20000 MOV DX, OFF62H OUT DX, AX MOV AX, OCOOlH MOV DX, OFF66H OUT DX, AX MOV AX, 100 MOV DX, OFF5AH OUT DX, AX MOV AX, OE009H MOV DX, OFF5EH OUT DX, AX POPA
RET TIMER ENDP
.""""""""""""""""""""""""""""""""~
IPREPARA PROC NEAR XOR AX, AX MOV ES,AX
MOV DI,48H ;CARGA DIRECCION DEL VECTOR EN RAM LEA AX , RELOJ
STOSW
MOV AX, CS STOSW
MOV DX, OFF30H MOV A X , 0002H OUT DX, AX MOV DX, OFF32H MOV AX, 0007H OUT DX,AX
ST1 ;HABILITA LAS INTERRUP. DE MANERA GRAL RET
PREPARA ENDP
."""""""""_""""""""""""""""""""""" I
RELOJ PROC NEAR
CMP AL, 9AH JNE SAME MOV AL, O0 SAME:MOV DS: [SI] ,AL
RET ACTUAL2 ENDP PIDEH PROC NEAR
."""""""""""""""""""""""""~"""""""
MOV AX, CS MOV DS, AX XOR AX, AX MOV BX, AX MOV ES, AX
MOV DI, 1002H CALL CLEARD LEA S I , HORA1 CALL DESPLIEGUE MOV AL, OCOH OUT 80H,AL CALL OCUPADO HLT
CALL CLEARD CALL DESPTECLA MOV AL, AH SUB AL,30H ROL AL, 4 MOV BH, AL
PUSH BX HLT
CALL CLEARD CALL DESPTECLA POP BX
MOV AL, AH SUB AL,30H MOV BL, AL ADD BL, BH MOV AL, BL STOSB CALL PAUSA RET
PIDEH ENDP
."""""""""""""""""""""""""""""~"""
MOV AL, OCOH OUT 80H, AL CALL OCUPADO HLT
CALL CLEARD CALL DESPTECLA MOV AL , AH SUB AL,30H ROL AL, 4 MOV BH, AL PUSH BX HLT
CALL CLEARD CALL DESPTECLA POP BX
MOV AL, AH
SUB AL,30H MOV BL, AL ADD BL, BH MOV AL, BL STOSB CALL PAUSA RET
PIDEM ENDP PIDED PROC NEAR
~---"""""""""""""""""""""~""
MOV AX, CS MOV DS,AX XOR AX, AX MOV ES , AX MOV DI, 1003H CALL CLEARD LEA SI, DIA CALL DESPLIEGUE MOV AL, OCOH OUT 80H,AL CALL OCUPADO HLT
CALL CLEARD CALL DESPTECLA MOV AL, AH SUB AL,30H ROL AL, 4
MOV BH, AL PUSH BX HLT
CALL CLEARD CALL DESPTECLA POP BX
MOV AL, BL STOSB
CALL PAUSA RET
PIDED ENDP
PIDEMES PROC NEAR
...
MOV A X , CS MOV DS, AX XOR AX, AX
MOV ES , AX MOV DI, 1004H CALL CLEARD LEA S1,MES CALL DESPLIEGUE MOV AL, OCOH OUT 80H,AL CALL OCUPADO HLT
CALL CLEARD CALL DESPTECLA MOV AL, AH SUB AL,30H ROL AL, 4 MOV BH, AL PUSH BX HLT
CALL CLEARD CALL DESPTECLA POP BX
MOV AL, AH SUB AL,30H MOV BL, AL ADD BL,BH MOV AL, BL STOSB CALL PAUSA RET
PIDEMES ENDP
PIDEAÑO PROC NEAR
.---"""""""""""""""""""""""""~
MOV SI, lOOOH
LODSB ;AL=[SI] en DS, SI=SI+l CALL BCD ;Traduce de BCD a ASCII
JMP SALT CLOCK1:JMP CLOCK
SALT:MOV AL, OC4H OUT 80H,AL PUSH AX
CALL OCUPADO POP AX
MOV SI , 1004H ;DESPLEGAR MES
LODSB ;AL=[SI] en DS, SI=SI+l CMP AL, 07H
JG MAYOR1 CMP AL, 01H JE NONES CMP AL,03H JE NONES CMP AL, 05H JE NONES CMP AL, 07H JNE PARES
N0NES:CALL BCD ;Traduce de BCD a ASCII MOV AL, 2FH
OUT 81H, AL PUSH AX
CALL OCUPADO
POP Ax ;IMPRIME :
MOV SI, 1003H ; DESPLEGAR DIA
LODSB ;AL=[SI] en DS, SI=SI+l CALL BCD ;Traduce de BCD a ASCII CALL OCUPADO
MOV AL, 2FH OUT 81H,AL
PUSH AX ;IMPRIME :
CALL OCUPADO
POP AX ;Mueve el cursor MOV SI, 1005H ; DESPLEGAR AYO LODSB ;AL=[SIl en DS, SI=SI+l
CALL BCD ;Traduce de BCD a ASCII JMP TERMIN
MAYOR1:JMP MAYOR PARES : CMP AL, 02H
JE FEB
CALL BCD ; DESPLEGA MES
OUT 81H,AL PUSH AX
CALL OCUPADO
POP AX ;IMPRIME :
MOV SI, 1003H ; DESPLEGAR DIA
LODSB ;AL=[SI] en DS, SI=SI+l CALL BCDl ;Traduce de BCD a ASCII CALL OCUPADO
MOV AL, 2FH OUT 81H,AL
PUSH AX ;IMPRIME :
CALL OCUPADO
POP AX ;Mueve el curso1 MOV SI, 1005H ; DESPLEGAR AYO
LODSB ;AL=[SI] en DS, SI=SItl CALL BCD ;Traduce de BCD a ASCII JMP TERMIN
CLOCK2:JMP CLOCK1
FEB:CALL BCD ; DESPLEGA MES
;Traduce de BCD a ASCII MOV AL, 2FH
OUT 81H,AL PUSH AX
CALL OCUPADO
POP AX ;IMPRIME :
MOV SI, 1003H ;DESPLEGAR DIA
LODSB ;AL=[SI] en DS, SI=SItl CALL BCD2 :Traduce de BCD a ASCII CALL OCUPADO
MOV AL, 2FH OUT 81H,AL
PUSH AX ;IMPRIME :
CALL OCUPADO
POP AX ;Mueve el cursor MOV SI, 1005H ;DESPLEGAR AÑO
LODSB ;AL=[SI] en DS, SI=SI+l
CALL BCD ;Traduce de BCD a ASCII JMP TERMIN
MOV AL, 2FH
OUT 81H,AL PUSH AX
CALL OCUPADO
POP AX ;IMPRIME :
MOV SI, 1003H ;DESPLEGAR DIA
LODSB ;AL=[SI] en DS, SI=SIt1 CALL BCD ;Traduce de BCD a ASCII CALL OCUPADO
MOV AL, 2FH
OUT 81H,AL
PUSH AX ;IMPRIME :
CALL OCUPADO
POP AX ;Mueve el cursor MOV SI, 1005H ; DESPLEGAR AÑO LODSB ;AL=[SI] en DS, SI=SItl
CALL BCD ;Traduce de BCD a ASCII JMP TERMIN
CLOCK4:JMP CLOCK3
NONES1:CALL BCD ; DESPLEGA MES ;Traduce de BCD a ASCII MOV AL, 2FH
OUT 81H,AL PUSH AX
CALL OCUPADO
POP AX ;IMPRIME :
MOV SI, 1003H ;DESPLEGAR DIA
LODSB ;AL=[SI] en DS, SI=SItl CALL BCDl ;Traduce de BCD a ASCII CALL OCUPADO
MOV AL, 2FH OUT 81H,AL
PUSH AX ;IMPRIME :
CALL OCUPADO
POP AX ;Mueve el cursor MOV SI, 1005H ;DESPLEGAR AÑO
LODSB ;AL=[SIl en DS, SI=SItl CALL BCD ;Traduce de BCD a ASCII TERM1N:DEC CX
CMP CX, OOOOH JNE CLOCK4 PO PA RET DESPH ENDP
POP Ax MOV AL, BL AND A L , OFH ADD A L , 3 0 H OUT 8 1 H , A L PUSH AX CALL OCUPADO POP AX
POP
cx
RET BCD2 ENDP
."""""~"""""""""""""""""""""""""""
, CODIGO
ENDS
APENDICE
ALU- Unidad Aritmética y Lógica.
BIU- Unidad de Interfase del Canal.
CPU- Unidad de Procesamiento Central.
EU- Unidad de Ejecución.
INTERFAZ(1nterfase)- Vínculo entre dos objetos, como una computadora y un módem.
Al
vínculo entre una computadora y la persona que la usa se le llama intefaz de usuario, y se
refiere a la forma en que una persona se comunica con la computadora.
PLCC- Plastic Lead Chip Carrier.
RAM- Random Access Memory.
ROM- Read Only Memory.
UAMI-188- Tarjeta de trabajo con sistema mínimo Intel 801 88, diseñada en la Universidad
BIBLIOGRAFIA
Amplificadores Operacionales y Circuitos Integrados Lineales
Robert F. Coughlin - Frederick F. Driscoll
Editorial Prentice Hall
Diseño Electrónico
Savant - Roden - Carpenter
Editorial Addison - Wesley Iberoamericana
Diseño Digital Morris Mano
Editorial Prentice Hall
Comprendiendo Teléfonos Electrónicos Stephen J. Bigelow
Editorial Hispano Americana
Manual “FAST and LS TTL Data”
Motorola
Proyecto “AUTOMATI-FONO’’ Realizado por los alumnos:
Jorge David Rincón González José Ricardo Marín Ojeda Dirigido por: