escuela politÉcnica nacional facultad de ingenierÍ elÉctrica a resoluciÓn de ... · 2019. 4....
TRANSCRIPT
ESCUELA POLITÉCNICA NACIONAL
FACULTAD DE INGENIERÍA ELÉCTRICA
"RESOLUCIÓN DE ECUACIONES BOOLEANAS UTILIZANDO EL MICROCONTROLADOR
INTEL 8751"
PATRICIO IVAN CHICO HIDALGO
TESIS PREVIA A LA OBTENCIÓN DEL TITULO DE INGENIERO
EN ELECTRÓNICA Y CONTROL
QUITO, AGOSTO DE 1987
Certifico que el presente traba_
jo ha s ido real izado en su tota,
l idad por el señor Patricio I.
Chico Hida lgo .
i L
. F e r n a n o Flores
Director
AGRADECIMIENTO
Al Ing. Fernando Flores por su colaboración en .el
desarrollo del presente trabajo.
A María Soledad, a mis amigos y compañeros quienes
en forma desinteresada me han ayudado en la realj_
zación de este trabajo-
ÍNDICE
Capítulo I : INTRODUCCIÓN 1
Capítulo II : MINIMIZACION DE FUNCIONES LÓGICAS
2.1. Simplificación usando Mapas de Karnaugh ---------- 6
2.2. Simplificación usando el Método de Quine McCluskey 19
2.3. Algoritmo ---------------------------------------- 37
Capítulo III: EL MICROCONTROLADOR 8751
3.1. .Descripción --------------------------------------- 49
3.2. Set de instrucciones ------------------------------ 64
3.3. Solución de ecuaciones Booleanas con el 8751 ------ 75
Capítulo IV: IMPLEMENTACION DE PROGRAMAS EN LENGUAJE DE ALTO
NIVEL
4.1. Características y requerimientos de Hardware ----- 97
4.2. Lenguajes de programación usados ------------------ 98
4.3. Diagramas de bloque ------------------------------- 106
4.4. Diagramas de flujo -------------------------------- 114
Capítulo V : RESULTADOS
Pag
5.1. Ejemplos de aplicación 177
5.2. Análisis de los resultados obtenidos 217
5.3. Conclusiones :— 225
APÉNDICE A: Manual de uso del programa.
APÉNDICE B: Listado del programa.
APÉNDICE C: Características del ensamblador.
APÉNDICE D: Características del programador.
APÉNDICE E: Características eléctricas del microcontrolador
INTEL 8751.
Bibliografía.
CAPITULO I
INTRODUCCIÓN
Cuando se trabaja en el desarrollo de un Sistema Digital, uno de los
primeros problemas que se encuentran son los circuitos combinación^
les. En ellos, una o varias funciones de salida se expresan como una
combinación del estado de las variables de entrada. La forma más cp_
mún de representar el problema es una tabla, en donde se encuentran
todas las combinaciones posibles de las variables que intervienen en
esa función y el estado que toma esta para cada una de las combina-
ciones; a esta tabla se la denomina "Tabla de Verdad".
Realizar un diseño en base a la tabla de verdad no es práctico y en
su lugar s'e usan ecuaciones lógicas combinacionales que se han des_a
rrollado a partir de la misma.
Existen varios métodos manuales para poder encontrar esas ecuaciones
pero es muy frecuente que el tamaño de las tablas conque se debe tra_
bajar es grande, convirtiendo este proce.so en largo, tedioso y sucejD
tibie de cometer errores. Serfa muy conveniente el disponer de un
medio automático para hallar estas ecuaciones, ya que libera al dis_e_~
ñador de un trabajo que puede tomar mucho tiempo, para dedicarlo a
otras actividades más importantes.
En la actualidad, en la Facultad de Ingeniería Eléctrica no se dispo^
ne de ninguna ayuda de este tipo y es así que cualquier problema de
circuitos combinacionales se resuelve manualmente:
Esta es talvez la mayor motivación para el desarrollo del presente -
trabajo, el disponer de un programa que halle las ecuaciones combina_
clónales minimizadas, a partir de una tabla de verdad, haciendo más
dinámico el diseño de un circuito lógico.
El programa va destinado a servir de soporte en la enseñanza de los
sistemas digitales, así como también a constituirse en una herramien_
ta adicional que ayude al diseñador para hacer más eficiente su tra^
bajo.
Como una aplicación, se pensó en implementar físicamente estas ecua-
ciones programándolas en forma de una rutina en un dispositivo capaz
de.resolver las mismas. Se dispone en esta Facultad del suficiente
soporte para trabajar con microcontroladores y tratando de ampliar
el campo de aplicación y desarrollo del conocimiento sobre éstos, se
ha decidido usarlos como el dispositivo sobre el que se implementa-
rán los resultados del programa.
No se trata en ningún momento de reemplazar con el microcontrolador
un circuito digital práctico, puesto que existen medios mucho más
eficientes y económicos que han sido creados para ese fin, sino corn
probar el funcionamiento del mismo en este tipo de aplicación.
Se ha creado este programa para que sea versátil y bastante general,
no limitándose solo a entregar resultados para ser utilizados con
el microcontrol ador, sino permitir al usuario ob.tener resultados in_
termedios para que pueda continuar por un camino diferente al que
se sigue en este trabajo, como pueden ser: usar otros métodos de mi
nimización, usar las ecuaciones para implementarlas físicamente de
una manera distinta, etc.
El programa debe presentar todas las facilidades para su utilización
tratando siempre de ayudar al usuario del mismo, razón por la que se
ha seleccionado un funcionamiento interactivo entre ellos, con un
trabajo en base a menús, donde el operador ejecute decisiones sim-
ples frente a requerimientos del computador.
Se ha estructurado el presente trabajo de la siguiente manera :
En el capítulo II se hace una descripción de algunos métodos usados
en la minimización de funciones combinacionales y partiendo de ellos
encontrar un algoritmo que pueda ser implementado en un computador.
Constituye este capítulo la base teórica sobre la que se ha desarrp_
liado este trabajo.
El capítulo III constituye un estudio sobre el microcontrolador que
usaremos como dispositivo en el que se imlementarán los resultados
del programa. Dentro del mismo, se analizan algunas maneras de reso_
lución de las ecuaciones y partiendo de este análisis, se determina
cual es la más apropiada que es la que se usará finalmente.
El capítulo IV contiene los diagramas de Bloque y diagramas de flujo
de todas las rutinas del programa, en cuanto a la realización del
mismo, se ha puesto especial cuidado en el proceso de minimización,
tratando siempre de optimizarlo para una ejecución más rápida; la ru_
tina de ingreso de datos se diseñó para agilitar y facilitar la op_e
ración del programa en general.
Para cumplir con lo propuesto, fue necesario apoyarse en ciertas ca_
racterísticas de algunos lenguajes de programación, se incluye por
tanto una justificación de quellos que se usó en la implementación
del programa.
En el capítulo final se incluyen algunos ejemplos demostrativos y de
prueba del programa implementado. Siendo un programa general y una
herramienta de desarrollo, las aplicaciones son extensas, pero para
hallar una aplicación especifica debería plantearse un problema real
que bien puede formar parte de un sistema más grande, resolverlo con
este programa, implementarlp por cualquier forma que el diseñador
considere mejor, y comprobar el desempeño de la solución obtenida en
conjunto. Esto debido principalmente a que un circuito combinacio-
nal generalmente sólo es' una parte de un sistema más complejo.
Los ejemplos entonces más bien van dirigidos a comprobar el funcio-
namiento del programa y algunas características del mismo.
Se hace también en este capítulo un análisis de los resultados obte_
nidos, así como también un estudio de las limitaciones que se han d_e_
tectado en el funcionamiento del programa y sus causas.
En los anexos, se incluye información adicional sobre el manejo del
programa y sus características; así como también sobre algunos ele_
mentos adicionales complementarios a este trabajo.
CAPITULO -II
MINIMIZACION DE FUNCIONES LÓGICAS
En este capitulo se va a explicar el proceso a seguir en la minimi-
zación de una tabla de Verdad; se suponen algunas funciones combina_
cionales expresadas en forma de tablas de verdad, de las cuales se
desea obtener una ecuación con el mínimo número de términos. La ta_
bla de verdad original puede haber sido obtenida de cualquier mane_
ra, incluyendo una ecuación no minimizada ó como una tabla misma.
Es importante hacer notar que se ha seleccionado la solución de c_a_
da una de estas funciones independientemente una de otra, principa]_
mente por limitaciones en la capacidad de manejo de memoria en el
lenguaje usado, el computador y el tiempo de proceso.
El propósito principal consiste en reducir al mínimo la cantidad de
términos en la ecuación resultante, realizando un adecuado balance
entre este fin y el tiempo que lleva el lograrlo. Es por esta • cau_
sa que no necesariamente se halla la ecuación mínima (definida es_
trictamente) sino una buena aproximación. La presencia de términos
adicionales en la solución no afecta significativamente el tiempo
de evaluación de las ecuaciones ya implementadas en el tnicrocontro-
lador, pero el tiempo que se puede demorar en encontrar la solución
exacta, puede ser poco práctico por lo extenso.
.Se parte de conocer la tabla de verdad, se explican algunos procedj^
mientos de minimización y de ellos se halla el proceso a ser usado
como algoritmo en el computador. Las ecuaciones resultantes van a
implementarse en el microcontrolador 8751, que se encargará de eva_
luar el estado de las variables de entrada y dará las respuestas co_
rrespondlentes en la salida.
2.1. SIMPLIFICACIÓN USANDO MAPAS DE KARNAUGH
El Mapa de Karnaugh es uno de los medios más poderosos que dispone
el diseñador lógico. La importancia del Mapa de Karnaugh se basa
en la capacidad de la mente humana para percibir patrones en repre_
sentaciones pictóricas de datos.
Considérese una tabla de verdad para.dos variables., se anota en la
tabla de verdad las cuatro posibles combinaciones de entrada y los
valores de la función correspondiente, en este caso se usan las
funciones AND y OR; las tablas mencionadas son:
A B
0 0
0 '1
1 0
1 1
A . B
0
0
0
1
A B
0 0
0 1
1 0
1 1
A + B
0
1
1
1
. - AND
+ = OR
Figura 2.1.
Se establece un diagrama consistente en cuadrados, tantos como el
numero de combinaciones posibles de las entradas; en la casilla co_
rrespondiente se pone un "1" si la función es verdadera, un "O" si
es falsa y una "X" si es condición "no importa". Las siguientes re_
presentaciones son válidas:AB
ÜO 01 11 10
0 Ü 1 0
A.B
AB
00 01 11 10
0 "1 1 1A+B
A+B
Figura 2.2.
üe estas representaciones la más común es la de 1 cuadrado dividido
en 2n cuadros, siendo n el número de variables de entrada, cada cua_
dro representa una de las combinaciones de entrada.
Una particularidad de esta representación consiste en que los cua-
drados están arreglados en tal forma que cualquier par de ellos in_
mediatamente adyacentes entre si (horizontalmente o vertí cal mente),
deben corresponder a un par de condiciones de entrada que sean ló_
gicarnente adyacentes, es decir que varien solo en el estado de una
variable de entrada. También son lógicamente adyacentes los cuadra_
dos de las esquinas, los extremos de las columnas y los extremos de
las filas.
Para visualizar lo anterior se supone una función de tres variables
de entrada, denominadas A, B y C, cuyas combinaciones posibles se
muestran en los cuadrados correspondientes del mapa K.
C'X 00 01 11 10
O ABC
ABC
ABC
ABC
ABC
ABC
ABC
ABC
Dec.
0
1
2
3
4
5
6
7
BINARIOA B C
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
í 1 1
Literal
A" B" "C
Á" B" C
Á" B C"
A B C
A B" "C
A B" C
A B C "
A B C
• Figura 2.3.
Puesto que cada cuadro del Mapa de Karnaugh (Mapa K) corresponde a
un renglón de una tabla de verdad, conviene enumerarlos al igual
que se numeran las hileras. A estos mapas se les denomina mapas K
estándar.
Los siguientes son mapas K estándar de 2 , 3 y 4 variables.AB
01 U 10ABc\0 01 11 10
0
1
2
3
0
1
0.
1-
2
3
6
7
4
5
00
01
11
10
0
1
3
2
4
5
7
6
12
13
15
14
8
9
11
10
2 variables 3 variables
Figura 2.4.
4. variables
Seguidamente se muestra un mapa K de 5 variabless'en este caso hay
2 mapas K de 4 variables uno al lado.del otro, ambos son idénticos
en las combinaciones de las 4 últimas entradas, pero el primero co_
rresponde a A = O mientras el segundo corresponde a A = 1, siendo A
la quinta variable.
Las adyacencias estándar de cuatro variables se aplican en el mapa,
pero ademas los cuadrados en la misma posición relativa de los dos
mapas, por ejemplo 4 y 20 son también lógicamente adyacentes.
\BC
DE\0 01 11 10
00
01
11
10
0
1
3
2
4
5
7
6
12
13
15
14
8
9
11
10
A-0Cinco variables
Figura 2.5.
BC/
00 01 11 10 /DE
16
17
19
18
20
21
23
22
28
29
31
30
24
25
27
26
A=l
00
01
11
10
Un mapa de 6 variables va a tener la siguiente forma:
CD
EF \0
00
A=001
11
10
8=0
01 11 10 00 01
0
1
3
2
4
5
7
6
12
13
15
14
8
9
11
10
= 1
11 10
16
17
19
18
20
21
23
22
28
29
31
30
24
25
27
26
00
01
11
10
A=0
10
A=l
•00
01
11
10
32
33
35
34
36
37
39
38
44
45.
47
46
40
41
43
42
48
49
51
50
52
53
55
54
60
61
63
62
56
57
59
58
00
01
11
10
EF / 00 01 11 10í->r\0
00 01 11 10
A=l
Seis variables
Figura 2.6.
SIMPLIFICACIÓN DE FUNCIONES USANDO MAPAS DE KARNAUGH
Es necesario tener un formato fijo de circuito en mente antes de po_
der definir un criterio de solución, se ponen dos ejemplos para po_
der hacerlo. Sea una función con cinco variables de entrada:
(A + B).(C.D + C.E) (a)
- A.C.D + A.C.E + B.C.D -f B.C.E (b)
La implementación de estos dos circuitos será como se indica en la
figura 2.7.
Comparando estos dos circuitos, se observa que la configuración (a)
es más sencilla e incluso más económica que la opción (b). Sin em_
bargo, se tiene las siguientes desventajas en el primer circuito ,
las señales A y B pasan por tres niveles de compuertas antes de al
11
(3)
(b)
Figura 2.7.
canzar la s a l i d a , las otras entradas pasan por dos niveles de com-
puertas.
En circuitos más complejos una so luc ión de este tipo requerirá pa-
sar por a lgunos niveles de compuertas (tres o m á s ) , esto i m p l i c a un
retardo en el proceso, que se refleja en la s a l i da ; es conveniente
que el retardo entrada/sal ida sea lo menor pos ib le , pero generalmeri_
te un menor retardo impl ica un circuito más complejo .
En el circuito (b) todas las señales pasan por dos n ive les de corn
puertas antes de l l e g a r a la sa l ida , lo que imp l i ca un menor retar_
do.
12
Cualquier expresión de productos de sumas,o sumas de productos pue-
de implementarse mediante dos niveles de compuertas y generalmente
se impl ementan con compuertas AND - OR o con compuertas OR - AND, y
son denominados corno "sistemas de segundo orden".
Una razón muy importante para concentrarse en circuitos de segundo
orden es que se dispone de procedimientos directos y generales para
la minimización de este tipo de configuración. No existen procedi_
mientes generales para encontrar diseños como el de la figura(a). Es,_
tos circuitos de más de dos niveles de compuertas se les denomina
como circuitos "facturados" ya que el proceso para esta implementa_
ción se realiza de manera muy similar al factoreo de u n _ polinomio
•del algebra convencional. Este proceso se basa mucho en el método
de prueba y error»y en la capacidad de apreciación que disponga una
persona.
El proceso de minimización se basará entonces en la eliminación de
términos en la suma de productos,o en el producto de sumas; y, por
ende en la eliminación de compuertas en la implementación circuí tal.
DEFINICIÓN: Una expresión de segundo orden de suma de productos se
considera mínima si 1) no existe otra expresión equiva_
lente que incluya menos productos y 2) no hay otra expresión equiva_
lente que conste del mismo numero de productos^ pero con un menor
número de literales. El producto de sumas mínimo es lo mismo, pero
con la palabra productos reemplazados por sumas y viceversa, (1).
Pueden existir varias soluciones mínimas, pero equivalentes, con
13
igual numero de términos y de literales.
SIMPLIFICACIÓN A UNA FORMA SOP (Suma de productos).-
La simplificación de las funciones en el mapa K se basa en el hecho
de que los conjuntos de los productos fundamentales que se pueden
combinar en términos de productos más simple, serán adyacentes, o
aparecen en patrones simétricos en el mapa K.
Dado que en el mapa dos cuadros adyacentes sólo difieren en el esta_
do de una variable, se pueden agrupar estos dos cuadros en un grupo
que tenga n-1 literales. Esto por que en el un término la variable
en mención aparece como verdad (1) y en el otro aparece como falso
(0), en estas condiciones la función.es independiente del estado de
la variable en esos términos.
En el siguiente ejemplo, s.eB la función fa tal que:
f - ABC + SBC + ABC -l- ABC\B A
C\0 01 ' 11 10'
A
0
0
0
. 0
1111
B
0
0
1
1
0
0
11
c0
10
, 10
10
1
f110
0
10
10
0
1
1
1
0
0
1
0
1
0
f - AB + AC
Aplicando el algebra de Boole a la función f tendremos:
f = ABC + ABC + ABC + ABC
f - ÁB(C + C) + AC(B + B)
f = AB + AC
Figura 2.8.
14
Se observa claramente a que corresponde el agrupar dos cuadrados en
el mapa K y como los términos resultantes tienensólo dos literales.
Se pudo haber agrupado también de otra manera, aunque con resulta-
dos no tan óptimos.\ABC
O
Ofr 01, 11 \LOf1
1
d
0
i
0
ii
0
f = BC + ABC + ABC
Figura 2.9.
Si se trata de agrupar términos en el 'mapa para eliminar dos varia-
bles en los términos de la solución, se deberían agrupar cuatro tér_
minos adyacentes entre si.
f = ABCD + ABCD + ABCD + ABCD + ABCD + ABCD
f - B C D ( A + A) + A B D ( C + c) + A B D ( C + c)
f - BCD + ABO + ABD
6 en el mapa K
A
0
0
0
0
0
0
0
0
11111111
B
0
0
0
0
1
1
1
1
0
0
0
0
1111
c0
0
110
0
110
0
110
0
11
D
0
10
10
10
10
10
10
101
f10
0
0
0
10
110
0
0
10
10
CD 01 11 \LO
00
01
11
10
l l 10
0
0
0
1
1
0
T
0
0^
1
T
0
0
0
f - BCD + ABD + ABD
15
Otro ejemplo se tiene a continuación:
A
ü
0
0
0
0
0
0
0
1
1
1
1
1 •
1
11
B
0
0
00
11110
0
0
0
1111
c0
0
110
0
110
0
110
0
11
D
0
1010
10
10
10
10
1ü1
f0
0
0
0
0
10
10
0
10
0
1-u1
f - ABCD + ABCD + ABCD + ABCD + ABCD
f = BD(AC + AC + AC + AC) + ABCD
f - BD(S(C + C) + A(C + C)) + ASCO
f - BD(A + A) + ABCD
f = BD + ABCD
6 en el mapa K.\BCD\0 01 11 10
00
01
1110
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
1
f - BD + ABCD
Figura 2.10"
De la misma manera al agrupar ocho términos se eliminarían tres va-
riables.
Se hace evidente que se puede agrupar los términos de diferentes ma_
ñeras y solamente algunas llevan a una solución mínima, esto hace
que el proceso en el mapa K se deba usar muy cuidadosamente, depen-
diendo el resultado sobre todo de la capacidad de apreciación y de la
16
experiencia de la persona que lo. use.
En Mapas de cinco, seis o más variables, la capacidad de apreciación
disminuye y se hace extremadamente difícil usar este método, con el
agravante de que es muy posible que no se llege al resultado mínimo.
MINIMIZACION A UNA FORMA POS (Producto de sumas).-
El procedimiento anterior es aplicable a una minimización de la que
se obtendrá una implementación OR - AND. (Producto de sumas).
En el caso de una implementación suma de productos, un sólo término
produce un 1 si la función va a ser verdad, el resto es cero. Si la
función es "O", es por que todos los términos son "O". En el caso
POS, un solo término va a producir un "O" si la función va a ser ce_
ro, el resto esta en 1. Si la función va a tener un valor de "1" tp_
dos los términos son "1", es por esto que se deben agrupar en la ta_
bla de verdad los términos o cuadrados que contienen un "O" y las
variables que irían en cada- una de las sumas corresponden al comple_
mentó de las variables a las que corresponde la combinación de ese
cuadro.
f = (A + B + C) .'(A + B + C) '- (A + B + C)
f =
f = (AA •+ B +
A0
0
ü
0
1
1
1
1
B
0
0
1
1
0
0
1
1
C
0
1
0
1
0
1
0
1
f
1
1
1
0
1
1
0
0
+ E + CC)
17
•F ~ c)(A + g)
v AB ó en el mapa K
C\_00 0 1 1 1 1 0 ' •
o
1
Figura 2.11.
1
1
1
0
0
0
1
1 f = (A + B){B + C)
Para un número mayor de variables el proceso es similar.
En ciertos casos puede ser mejor trabajar con la forma POS, pero
en otros la forma SOP va a ser más conveniente; esto es,una de las
dos maneras va a tener menos términos y/o menos literales en la so_
lución final. No existe un método para averiguar a priori cual de
las dos formas dará mejores resultados, es por esto que tocará deci_
dir cual usar, o realizar los dos procesos y luego seleccionar el me_
jor de los resultados lo que necesariamente implica mucho más traba_
jo.
FUNCIONES INCOMPLETAMENTE ESPECIFICADAS.-
En un determinado problema'es muy frecuente que para ciertas combi-
naciones de entrada, no importe cual sea el estado de salida» o pue_
de darse el caso de que ciertas combinaciones de entrada nunca se
den. En cualquiera de estos dos casos el estado que tome la salida
de la función no nos importa.
La resolución del problema en el mapa K puede facilitarse mucho si
18
usamos estas combinaciones con un valor que nos permita formar gru_
pos mayores con lo que eliminaremos términos y reduciríamos el nüme_
ro de literales. Generalmente se simboliza esta condición con una
"X" y la denominaremos condición "no importa11.
Ya sobre el mapa K se agrupan los términos tratando de incluir las
"X" de manera de tener el mayor grupo, respetando las reglas ante-
riormente explicadasj pero si algunas "X" no se las puede incluir -
en algún grupo simplemente se las ignora.
A B C
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
l u í
1 1 0
1 1 1
f
X \ABo Xc\0 01 • 11 .10
1 1
0 o x o x i
1 1 0 0 X 1
1
X
X f = A
sAB
c\0 01 11 10
0 X 0 X 1
1 0 0 X 1
f = AB
Figura 2.13.
En el e jemplo anterior se ignora la presencia de la "X" en 000 y se
usan las otras "X" para real izar un grupo mayor. Si no se toman es_
tas dos "X" en el grupo, la so luc ión tiene un l i teral más.
En el caso de una rea l izac ión POS el proceso de in t roducción de las
condiciones "no importa" es similar.
19
2.2. SIMPLIFICACIÓN USANDO EL MÉTODO DE QUINE McCLUSKEY
Se Introducirá _primeramente un nuevo tipo de notación que facili-
te la explicación del método. Dado que una variable lógica puede
tomar sólo dos valores, falso o verdadero, se representa esta como
dos puntos en los sistemas de una recta.
Figura 2.14.
Al tener dos-variables lógicas existen cuatro combinaciones posi-
bles que en esta representación aparecen como los vértices de un cua_
drado.
0a-
Figura 2.15.
En el caso de tres variables, las combinaciones producen 8 términos
que se representan como un cubo.
010 110
//->10I
I X,
Figura 2.16.
20
En general , para cualquier numero de variables, se amplía la repre-
sentación de similar manera. Las diferentes combinaciones se repre_
sentan como puntos en el espacio-n , la colección de estos 2 puntos
forman un hipercubo en un espacio de n dimensiones. Para represen^
tar una función determinada se dibuja el hipercubo, se marcan con
un punto los vértices que corresponden a una combinación que prodi¿
ce un "1" en la función.
Se nota que dos combinaciones que son lógicamente adyacentes necesa^
riamente están unidas por medio de una recta.
En los hipercubos' se definen .los subcubos-k (o cubos-k) y empezando
por el grupo más simple, se tienen los cubos O que se forman por ca_
da punto marcado en los vértices del hipercubo-n. Dos cubos-0 si
los une una recta (son lógicamente adyacentes) forman un cubo-1, si_
mil ármente dos cubos-1 forman un cubo-2 (4 cubos-0) y dos cubos - 2
forman un cubo~3 (8 cubos-0) siempre que los cubos-k sean lógicanien_
te adyacentes, y así se forman cubos mayores.
w,. w.*O "1• » —- . ——-•
CUBO O CUBO 1
CUBO 2
Figura 2.17.
En la siguiente figura se muestra un hipercubo-3 en el que se han
marcado unos subcubos-k.
0X0-
OOD
Figura 2.18
En esta figura se tienen los siguientes cubos-k
A
0
0
0
0
1
1
1
1
B
0
0
1
1
0
0
1
1
c0
10
10
10
1
f0
0
-1.11111
Cubos-0
010
Olí
110
100
101
111
Cubos-1
01X(010 y Olí)
1X0(100 y 110)
11X(110 y 111)
1X1(101 y 111)'
10X(100 y 101)
X1X(011 y 111)X10(010 y 110)
Cubos-2
1XX(100, 110, 111 y 101)
X1X(010, Olí, 111 y 110)
Es evidente que un cubo-3 en el espacio-3 corresponde a todo el cu_
bo ( h i p e r c u b o - 3 ) . En el e j emplo anterior se observa como se confor_
man los varios subcubos-k , si la f u n c i ó n tuviere todas las combina^
clones con un "1"4 se podría l legar al cubo-3 y se sombrearía todo
el cubo, el que se ident i f ica con X X X , las tres "X" i n d i can que las
tres variables pueden tomar cualquier valor y la salida siempre se_•• 11
rá 1, lo que indica que f = verdadero.
En general, un cubo-0 es un punto, un cubo-1 es una línea, un cubo-2
22
es un p l an o , un cubo-3 es un v o l u m e n , para cubos-k en espacios-n ma_
yores que 4 no hay representación geométrica, pero el p r i n c i p i o de
agrupac ión de productos fundamenta les son los mismos.
La representación geométrica de un hipercubo-4 se la. realiza como -
en la s igu ien te f i g u r a r e n e l l a se observa que se pueden formar va_
rios cubos-3 y un sólo cubo-4, se ob'serva también la re lación de _a
dyacencia entre los diferentes productos fundamentales .
O l f O
OIOQ.
0000
1110
1010
hipercubo-4
Figura 2.19.
IOOO
La relación de esta representación con el mapa K es evidente, los cu_
bos-0 son los cuadros individuales, los cubos-1 es una agrupación de
2 cuadros lógicamente adyacentes, un cubo-2 corresponde a agrupar Bi-
cuadrados, un cubo 3 son 4 cuadrados y así sucesivamente. La adya-
cencia lógica se comprende muy bien con la representación cúbica ex_
plicada.
23
MÉTODO QUINE - McKLUSKEY
Este método es un método tabular, en el cual por medio de un proce-
so iterativo, se combina todos los cubos-0 entre si" buscando formar
los cubos del orden mayor posible, y luego seleccionar una combina-
ción de esta lista de cubos.obtenidos de manera de obtener un mínj_
mo de ellos en la solución final.
OBTENCIÓN DE LOS'IMPLICANTES PRIMOS.-
Partimos de la tabla de productos fundamentales de la función, se
dispone de la representación binaria de las combinaciones de las va_
riables de entrada» ya que se ha definido que se consideran lógica-
mente adyacentes dos términos cuyas combinaciones de variables son
idénticas excepto en una sola de ellas, se halla que una de las con_
diciones es que el numero de "ls" en las representaciones binarias
difieran sólo en una unidad. Por lo anterior el primer paso corre_s_
ponde a ordenar la tabla de acuerdo al numero de "1".
En el caso de tres variables A, B y C
MINTERMINO
0
1
2
3
4
5
6
7
COMBINACIONESA B G
0 0 0
0 -0 1
0 1 0
0 i 1
1 0 0
1 ' 0 ' 1
1 1 0
1 1 1
NUMERO DE "ls"
0
1
1
2
1 -
2
2
3
FUNCIÓN
1
1
1
0
0
10
1Figura 2.20.a.
Se separan los mintérminos que tienen un "1" asignado, ordenándolos
de acuerdo al numero de "1" en las combinaciones de entrada.
Tabla ordenada
C O M B I N A C I Ó NA B C .
0
0
0
1
1
0
0
1
0
1
0
1
0
1
1
# de "1"
0
1
2
3
Figura 2.20.b.
El ordenar de esta manera la t ab l a , reduce el t iempo de proceso. A
cont inuac ión se comparan todos los productos fundamentales de un gru_
po, con todos los del grupo infer ior , si los términos comparados -
son idénticos excepto en una variable, para la cual uno tiene un "O"
y otro un "1", se combinan en uno solo, que se anota en una tabla
aparte, reemplazando la v a r i a b l e en cuest ión por una " X " , y anotan-
do también de cuales términos o r ig ina les proviene. A los dos ténni_
nos que se combinaron se les coloca una marca.
Cubos-0 Cubos-l
#ls
0
"1
2
3
min t0
12-
5
"7
A ' ;B C
0 0 0
'O 0 1
0 1 0
1 0 1
1 i 1
M
V
V
/
/
</
Org.
0,1
0,2
1,5
2,3
A B C
0 0 X
0 X 0
X 0 1
1 X 1
M
Figura 2 . 2 0 . C .
25
Por ejemplo en el cuadro anterior:
Los términos 000 y 001 difieren en la tercera posición únicamente ,
por lo que se combinan formando el término OOX. Los términos 010 y
101 no pueden combinarse por variar en dos posiciones.
Las comparaciones se realizan hasta "concluir los elementos del pri_
mer grupo, luego se toma el grupo siguiente y el proceso se lo rea._
liza igual con su inmediato inferior y así hasta acabar los grupos.
Puede observarse que algunos términos se combinan más'de una vez,, pero
solo deben marcarse la primera.
Generada la tabla de cubos-1 se aplica un proceso similar para obte_
ner una nueva tabla de cubos-2, comparando los términos de los dife_
rentes grupos de la tabla de origen (cubos-1). En este caso apare_
ce un nuevo elemento que interviene en las comparaciones y son las
"X", es un requisito indispensable que las "X" de los términos es-
tén colocados en la misma posición, a más de los requisitos ya indi__
cados anteriormente.
En el ejemplo usado (la tabla de tres variables) los cubos-1 no pue_
den combinarse de ninguna manera, puesto que todos los términos de
un grupo no tienen las "X" en la misma posición con ninguno del gru_
po inferior. En este caso no se genera ninguna nueva tabla y el
proceso queda hasta esa tabla.
Es posible a veces que un término pueda provenir de combinar varios
26
pares de términos» pero sólo se lo incluye una vez, aunque si se
marcan los términos de origen.
Los cubos-k que se han obtenido en el proceso y que se hallen mar-
cados han servido para formar un cubo-k de mayor orden, por lo que
se hallan contenidos en este ultimo. Los cubos-k que no están ma_r_
cados, no se incluyen en ningún cubo de orden superior es decir
no están contenidos en ningún otro cubo, a estos se los denomi-
na como "implicantes primos".
Un "implicante primo" es cualquier cubo_k de una función que no es_
ta totalmente contenido en un cubo de orden mayor.
En el ejemplo, los cubos-1 obtenidos corresponden todos a implj_
cantes primos, ya que no se pudo combinarlos para formar cubos-2.
Un siguiente ejemplo se realiza con una función de 4 variables de
entrada (A, B, C, D).
0 1 2 3 4 5 6 7 8 9 10 11 12 13 H 15
A B
'C ü
00
00
00
01
0010
00
11
0100
0-
10
1
01
10
01
11
10
00
10
01
10
1-
0
10
11
11
00
11
01
11
10
11
11
f 0 1 p 1 1 1 0 0 1 1 0 1 1 1 0 1
# ls 0 1 1 2 1 2 2 3 .1 2 2 3 2 3 3 4
Cub
os-0
# ls
1 2 3 4
1 4. 8 3 5 9 12 11 13 15
Mi n
t ,
oo
o-
l0
10
0
10
00
o o
i r
01
01
,1
00
1
11
00
10
11
11
01
11
11
Mar
ca V .
i/ J V *» !/ (/ I/ \ I/ V
Ori
gen
1-3
1-5.
1-9
4-5 4-12
8-9
8-12
3-11
5-13
9-11
9-13
12-1
3
11-1
5
13-1
5
Cub
os-1
0 0
X.
1
0X
01
X 0
0 1
0 1
0 X
X 1
0 0
1 0
0 X
1X
00
X 0
1 1
X 1
0 1
10
X1
1x
01
1 1
0 X
1X
11
1 1
- X
1
Mar
ca
!/ rf tf
' V 7 V i/ tf tf V V i/ i/ V
Ori
gen
1,3
,9,1
1
1,5
,9,1
3
4,5
,12
,13
8,9
,12
,13
9,11
,13,
15
Cub
o-2
X 0
X 1
X X
0 1
X 1
0 X
1 X
0 X
1 X
- X
1
Mar
ca
Impl
ican
tes"
pr
imos
A B
C D
X 0
X 1
X X
0 1
X 1
0 X
1 X
0
X
1 X
X
1
ro
Fig
ura
2.2-
1.
de esto se tiene que existen implicantes primos que son en éste caso
cubos-2 que no pueden combinarse en un cubo-3.
En una función de tres entradas, se va a indicar el desarrollo del
método y se indica en el mapa K, y en la representación cúbica el
significado de las agrupaciones realizadas.
0
1
2
3
4
S
6
7
ABC
000
001
010
Olí
100
101
110
111
f
0
10
0
1
0
1
1
#ls
ü
1
1
2
1
2
2
3
Cubo-0
#ls
1
2
3
Org.
1
4
6
7
Cubo-0
001
100
110
111
M
y
_ ;
•- 7
En el mapa K
\ABC\0 01 11 10
0
1
0
1
0
0
1
1
1
0
Cubo-1
Figura 2.22.
Org.
4 > 6
6,7
•Cubo-1
1X0
11X
M
Implicantes Primos
ABC
001
1X0
11X
ABC\0 01 11 10 C\0 01 11 10
0
1
0
1
0
0
1
1
1
0
•0
1
0
0
1
1
10
Imp. Primos
29
Cubos-0
110
1X0
100
TmplloantesPrimos
MÉTODO DE RAMIFICACIÓN.-
Figura 2.23.
Un segundo problema en la minimización según el método de Quine - Me
Klus'key es seleccionar un conjunto adecuado de implicantes primos. La
solución mínima no necesariamente incluye todos los implicantes pri_
mos como mostramos en el ejemplo.
C\0 01 11 10
O 0
0 .
0
1
1
1
1
0
Figura 2.24.
Implicantesprimos
AC
BC
Son soluciones válidas a) AC + AB + BC ; ó
b) AC + BC
pero es mejor la alternativa b) ya que se cubren todos los mintérmi-
nos con sólo dos términos en la solución.
Cualquier realización de suma de productos que sea'mínima (el menor
30
número de términos y de literales en la solución) debe ser una combi__
nación de implicantes primos, esto es evidente dado que cualquier cu_
bo-k que no es un implicante primo esta incluido en un cubo mayor y
este tiene menos literales por lo que representa menor costo. En el
método de Quine - McKluskey los términos que no se han usado para ge_
nerar un cubo mayor son los implicantes primos» y los que si se han
usado para generarlo están incluidosen un cubo mayor, -este último
puede ser un implicante primo o a su vez combinarse para generar un
cubo de mayor orden afín.
Del ejemplo anterior se puede observar que la solución mínima no es
la suma de todos los implicantes primos, pues el término AB cubre 2
cuadros que ya han sido cubiertos por AC y por BC, al tomar también'
el término AB se comete una redundancia innecesaria Claro esta que
no todas las sumas de implicantes primos son una solución, pues hay
que verificar que cubra toda la función.
La solución final de la tabla usa algebra de Boole, los implicantes
primos son variables y se les asigna letras.3 cada uno de estos irnplj_
cantes primos contiene algunas de las combinaciones originales váli
dast se hace una tabla en la que en"las columnas se encuentren los
términos originales y en las filas estarán los implicantes primos.
En el cruce de una fila y .una columna se coloca una marca si ese tér_
mino esta contenido en el implicante primo.
31
0001
/
/
0011
//
0101
//
1010
/
1011
/
/
1100
/
/
1101
/
/
1110
//
1111
//
ABCD\r
xonoxox.X10X
1X1X
11XX
uV
w-X -
Y
z
Figura 2.25.
Como deben cubrirse cada uno de los términos originales, se hace una
combinación de todos los implicantes primos que contienen a cada uno
de ellos. Cada uno de los implicantes primos contiene al término ini
cial, es por esto que se agrupan como una suma (0-R) de términos.
Los grupos correspondientes a los términos iniciales se agrupan corno
un producto (AND) pues la solución debe contener todos los términos
iniciales.
Por ejemplo el término 0001 se cubre con los implicantes primos U y
W, el producto de sumas será:
z)(U + W)(U + V)(W + X)(Y)f(V + Y)ÍX + Z)(X + Z)(Y
Simplificando
(U + W)(U + V)(W + X)(Y).(X + Z) -
El producto es
= (U + VW)(X + WZ)Y
= UXY + UWYZ + VWXY + VWYZ- •
En esa última ecuación pueden tomarse cualquiera de estos términos cp_
mo solución, que se expresa como cualquiera de estos grupos de impli_
cantes primos.
U,X,Y -* ABD + BC +'.AC
U,W5Y,Z •* ABD + AC -f AC + AB
V,W,X,Y -> BCD + AC + BC + AC
V.W^Y^ -> BCD + AC + AC + AB
Se hace evidente que la mejor opción corresponde a la primera solu-
ción, puesto que tiene solo tres términos, será la más económica.
Con este método de solución se obtienen todas las soluciones que no
son irredundantes5 lo que sería decir se halla todos los caminos que
llevan a la solución, por lo que se le llama "Ramificación Completa".
Es necesaria una manera de poder evaluar las diferentes soluciones pa_
ra escoger la mejor, en este caso se asignará un valor a cada uno de
los implicantes primos y este será el número de literales que contie_
nen, así:
33
Costo
U
V
W
X
Y
Z
- ABD -
- BCD -
- ÁC -
- BC -
- AC -
- AB -
3
3
2
2
2
2
De las sol liciones' obtenidas, el costo total será:
Costo
UXY -
UWYZ -
VWXY -
VWYZ -
7
9
9
9
la mejor opción es la primera por tener el menor costo.
SIMPLIFICACIÓN DE LA TABLA DE IMPLICANTES PRIMOS,-
El método anterior tiene la desventaja de que pueden producirse en un
problema una cantidad realmente grande de implicantes primos, lo qué
genera una tabla grande sobre la que se va a trabajar. La búsqueda de
las soluciones se hacen en extremo complicadas, por lo que se pueden
usar algunas reglas de simplificación que eliminan filas o columnas
en una tabla.
1. Si en una columna existe tan sólo una marca, el1 implicante primo
34
correspondiente a esa marca se lo considera sin más trámite, como
miembro de la solución final y se lo denomina implicante primo
esencial pues solo él contiene al término inicial de esa columna.
A
</
V
B
/
C
i/
/
D
>/
7
U
V
VJ
W implicante primo eservcial
Figura 2.27.
todos los términos que tienen marca, en la fila del implicante pri_
mo esencial se eliminan también de la tabla,
2. Una columna A puede eliminarse si tiene marcas de comprobación en
cada fila que también las tenga una columna B.
Figura 2.28.
AquT se puede eliminar la columna A pues al seleccionar B se
lecciona automáticamente la columna A.
3. Una fila Z puede eliminarse si una columna Y tiene marcas en to-
das las columnas en las que tiene la fila Z, pudiendo tener más
marcas y si el número de literales en el implicante primo Z es
35
/ /
/
X101
1X01
Y
Z
/ // /
X10X
XX01
Y
Z
c) / /
/ /
X1XX
XX01
Y
Z
I g u a l o mayor al de la f i l a .Y.
b)
En a) se puede eliminar Z, en b) se pueden eliminar Y ó Z indis-
tintamente, en c) se puede eliminar sólo Z.
Figura 2.29.
Una vez realizada la reducción se procede a usar el método anterior
(algebraico) para determinar el mínimo'.con los implicantes primos y
los términos que quedan aun en la tabla.
m Costo
v-</- •/-
-A -A
y- A-/-
Figura 2.30.
1) Implicantes primos esenciales
2) S domina a
3) Elimine columnas
T> U, X
a
/
/
/
c
/
/
/
h
/
/
J/
/
/
costoS
V
U
Z
2
3
3
4
Figura 2.31.
a'/
/
c/
/
h
//
J//
costoS
V
Z
2
3
4
Figura 2.32.
36
a
/
/.
h
/
/
d//
costoS
V
2
2
3
4
Figura 2.33.
4) Aplicación de la solución algebraica
(S -i- Z)(V + Z)(S + V) = VS + SZ + VZ
37
Costo
vs
sz
vz
5
6
7
Figura 2.34.
La mejor opción es V + S.
FUNCIONES INCOMPLETAMENTE ESPECIFICADAS
Es muy sencillo Incluir las condiciones no importa ("X") en el méto-
do Quine McKluskey, se las incluye como cualquier término verdadero
en la tabla inicial, se desarrolla todo el proceso de búsqueda de Irn
pilcantes primos de la manera indicada. La diferencia es a partir
de la solución de la tabla de implicantes primos, pues en la solu-
ción de esta tabla no se toma en cuenta los términos no importa.
La explicación es la siguiente: se incluye en la generación de impli_
cantes primos a las condiciones no importa para tener agrupaciones -
mayores de términos, pero para la solución de la tabla de implicantes
primos no se los incluye, porque pueden o no ser contenidos en laso_
lución.
2.3. ALGORITMO
Se identifican básicamente dos problemas en la minimización de una
función Booleana:
38
- Obten'ción de Tos Implicantes Primos.
- Reducción de la tabla de Implicantes Primos.
El método Quine McKluskey es un proceso mecánico y repetitivo que
puede i tupi ementarse en un computador, especialmente en la parte co_
rrespondiente a la obtención de implicantes primos. En cuanto a la
selección de un conjunto óptimo de implicantes primos» el método
Quine McKluskey usa un proceso algebraico que puede llegar a ser de
una gran complejidad, principalmente debido a que se deben hallar -
todas las posibles combinaciones de implicantes primos que lleven a
la cobertura 'total de los términos originales.
El método garantiza llegar a obtener la ecuación mínima pero a cos_
to de tiempo extremadamente grande, lo que lo haría poco práctico
en esta aplicación.
Se han identificado en el proceso de selección del conjunto óptimo
de Implicantes primos tres pasos fundamentales:
- Determinar los implicantes primos esenciales,
- Aplicar dominancia de filas y columnas.
- Aplicar la ramificación completa hasta obtener la solución óptima.
El tiempo que consumen las dos últimas operaciones es grande, espe_
cialmente si se han obtenido muchos implicantes primos en el proce_
so, además de haber partido de una tabla extensa de productos funda_
mentales
39
Se selecciona entonces el método de Quine -"McKluskey en la determi^
nación, de implicantes primos, pero no se lo usará* en los siguientes
pasos. En su lugar se propone un método alternativo en la solución
de la tabla cíclica, en el cual no se hallan todas las posibles com_
binaciones, sino una sola que ha sido determinada evaluando probabi_
lidades conforme se avanza en' su estructuración.
El método no necesariamente ll'eva a la solución óptima, aunque el re-
sultado obtenido se aproxima mucho, con un considerable ahorro de
tiempo.
El método presentado da una solución aproximada de tablas- grandes
de implicantes primos con un costo relativamente pequeño en tiempos
de computación.
Cualquier grupo de implicantes primos que cubran todas las columnas
(productos fundamentales}, se considera una solución. Con algunas
de estas soluciones de menor costo que otras.
Se debe definir en este punto cual va a ser el criterio a usarse en
el procesó de minimización. Muchos usan una combinación lineal del
numero de literales y de términos para realizar este proceso. Sin
embargo cabe anotar que la selección es arbitraria en cuanto a qué
parámetro se minimizará. En el presente algoritmo el costo se defi_
ne como el numero de términos en la solución y esto es lo que se mi_
nimizará.
Es interesante anotar que la mayoría de las definiciones de costo
40
llevan a obtener una misma función minima.
Se va a usar un método presentado por R. Bowman y E. McVey (3) el
cual ofrece una buena aproximación a la solución mínima con un in-
cremento en el costo bastante bajo. En el citado artículo se afir_
ma que en tablas grandes de implicantes primos, el incremento en el
número de términos es de alrededor del 2% y el ahorro en tiempo es
de hasta 98%. Para la presente aplicación, un incremento en costo
de ese orden es aceptable y el ahorro en tiempo, que es la princi-
pal razón de escoger este método, es muy conveniente.
El método tradicional, luego de hallar los implicantes primos esen-
ciales y. aplicar la dominancia, realiza una búsqueda de todas las
combinaciones posibles (ramificaciones) por métodos algebraicos p^
ra luego escoger el mínimo. El proceso de ramificación total es el
que lleva un tiempo extremadamente grande. El método planteado eli_
mina la dominancia y la ramificación total,, y en su lugar aplica la
ramificación incompleta, en el cual se llega a un nivel determinado,
se evaluadlas diferentes posiciones, se realiza una maximización y
se escoge la mejor opción en ese punto.
La ramificación incompleta se aplica a juegos finitos en los cuales
cualquier rama lleva al final, una aplicación repetitiva de la rami_
ficación incompleta producirá un set de implicantes primos que cu-
brirán toda la tabla, obteniéndose por tanto una solución.
CONSIDERACIONES GENERALES.-
Una tabla de implicantes primos es un arreglo de 2 dimensiones de
números binarios, que contiene un número C de columnas y F de filas.
A cada fila le corresponde un implicante primo y a cada columna un
producto fundamental. La tabla contiene un "1" en la intersección
de la fila y columna si el implicante primo de esa fila cubre el
correspondiente producto fundamental.
Como punto desde el cual se ramifica, se toma la columna que contie_
ne el menor n-ümero de términos, esto minimiza el numero de ramas con_
sideradas. Cada rama a considerarse es cada fila que contiene un
"1" en la columna marcada. Se debe tomar información de estas ra-
mas para lo cual tomamos todas y cada una de las filas y verifica-
mos de esa fila con cuáles columnas tiene una intersección que con_
tenga un "1"3 a continuación se debe evaluar cada una de esas colutn
ñas y llegar a obtener un parámetro válido para realizar la selec_
ción.
El argumento para evaluar las columnas es el siguiente:
- Para una columna dada que contiene M "I?", de un total de F elemen_
tos, la probabilidad de una selección aleatoria de un implicante
primo que contenga esa columna asumiendo que los eventos son simi_
lares -'es:
M— (2.1)
42
Donde: P = probabilidad de que esa columna sea cubierta.
M = número de implicantes primos que pueden cubrir esa
función.
F - número total de implicantes primos.
Si una de dos filas va a ser seleccionada y cada fila cubre una co_
lumna, la mejor opción es escoger el implicante primo que cubra la
columna de menor probabilidad (dada por la ecuación anterior).
La mejor decisión es la de cubrir la columna "más difícil", que es
la que tiene 'menor probabilidad y dejar las otras "más fáciles" asu_
miendo que los implicantes primos que se escogerán luego tienen más
oportunidad de cubrir las columnas con más "1".
En el caso general cada fila cubre más de una columna, las probabili_
dades no se suman directamente para una evaluación significativa, en
su lugar se usa la suma de los recíprocos de las probabilidades.
S = 2 Wi = F E - - . (2.2)í i
Donde el recíproco de la probabilidad de la columna se da por
Pi Mi \—-/
Se puede observar de las ecuaciones anteriores que se da lo siguien-
te:
S aumenta en proporción al número de columnas que se cubren; S aumeri_
ta también conforme decrece el costo.de los implicantes primos, de_
bido a que un implicante primo de menor costo tiene menos litera-
les y cubre más columnas por lo que debe tener un mayor S.
La evaluación que se propone es simple y puede realizarse rápidamen_
te.
Se define S como factor de mérito y Wi como factor de peso , un im-
plicante primo se escoge como una ramificación si su factor de mérj_
to es mayor que los factores de mérito de los otros implicantes pri_
mos considerados en ese punto de ramificación.
MÉTODO DE SOLUCIÓN APROXIMADA.-0
Partiendo de la tabla de implicantes primos que puede ser obtenida
de varias maneras, aunque en este caso se obtiene con el método Qui_
ne McKluskeys. la resolución de la tabla de implicantes primos seguj_
rá este proceso:
1) Escoger los implicantes primos esenciales (filas) como miembros
de la solución.
2) Remover de la tabla lo.s productos fundamentales cubiertos por
esas filas. Hacer N = 2.
3) Buscar una columna que contenga N "ls% si existen mis de una, se
escoge una de ellas arbitrariamente. Existen N filas asociadas,
una de las cuales se escogerá como miembro de la solución.
44
4) De las filas asociadas, hallar la figura de mérito S.
5) Repetir el paso 4) para todas las filas asociadas.
6) Determinar la fila con mayor figura de mérito S y.tomarla como
miembro de la solución.
7) Eliminar de las tablas las columnas cubiertas por el implicante
primo seleccionado,
8) Continuar.el proceso tomando otras columnas con N "ls" y apli-
car los pasos del 4) al 7). hasta acabar con estas columnas.
9) Incrementar Na y volver al paso 3).
10) Si se han cubierto todas las columnas, se ha llegado a la solu_
ción.
Con un ejemplo simple se demuestra el me-todo, la siguiente es una
tabla pequeña de implicantes primos.
ABc .DEFGHI# "ls" •Cubier to
11100000114
20010000012*
3011000
•o114*
40111111006*
50010011003*
60100100002
Solución
**
Figura 2.35.
45
Como no hay columnas con un solo "l".no existen implicantes primos
esenciales, hay dos columnas con dos "Is'i seleccionamos arbitraria_
mente la columna 2. En esa columna se analizan la fila C y la fi_
la I, se determinan los factores de mérito.
Columna 2 3 4 • 5
y
9 9 9 9fila C Se - — + -|-+ -~+ ~- = 11 1/9
Columna
fila I $i=-~-+-~-+~-=8 13/18
Se selecciona la fila C, por tener mayor figura de Mérito, se elinn_
nan -las columnas 2, 3, 4, 5, sólo se consideran en adelante las co_
lumnas' 1 y 6.
Hay otra columna con dos "Is" y esa se la toma., es -la columna 6 que
es cubierta por las filas B y E, se determinan las figuras de
to.
Columna 1 . 6
fila B SB = -|- + -i- = 6 11/18
y
46
Columna 6
fila 6 SE.- -|- = 4 1/2
Se selecciona la fila B como elemento de la solución'por tener ma-
yor figura de mérito S. Se eliminan las columnas 1 y 6 que son cu_
biertas por B.
No existen ya mis columnas sin cubrir por lo que la' solución es A+B.1
El resultado obtenido en este caso si corresponde al mínimo.
47
CAPITULO III
EL MICRQCONTRQLADOR INTEL 8751 '
INTRODUCCIÓN.-
Obtenidas las ecuaciones minimizadas, como parte final del proceso
se las debe implementar físicamente, para lo cual existen varias al
ternativas, cada-una de las cuales tiene sus ventajas y desventajas»
se citan algunas de ellas:
- Construcción de un circuito combinacional mediante el uso de corn
puertas lógicas. Es una opcio*n que puede conducir a tener un ele_
vado número de componentes y conexiones, lo que hace de esta una
posibilidad poco práctica en ecuaciones complejas.
- Uso de memorias en las que se ha programado toda la tabla de ve_r
dad. En este caso las variables de entrada sirven para direccio-
nar localidades de memoria que contienen los datos.
No se debe realizar ninguna minimización, puesto que no se intro_
ducen ecuaciones. El requerimiento de memoria es alto, pero con
los nuevos integrados de gran capacidad, se ha comenzado a usar-
los en estas aplicaciones con mayor frecuencia, a lo que favorece
su costo relativamente bajo.
- Elementos lógicos más complejos como los PAL (arreglos lógicos -
programables), en los que las ecuaciones se programan quemando fu_
sibles internos. Existen PALs con capacidad de manejar un buen
número de variables de entrada/funciones de salida y son de bajo
costos lo que hace que sean una de las mejores alternativas en la
implementación de ecuaciones combinacionales complejas.
Una de las desventajas de los PAL consiste en que pueden progra-
marse usa sola oportunidad> ya que es irreversible el estado de
un fusible interno quemado. En la actualidad existen los EPAL
en que la programación no se hace en base a fusibles, sino progra_
mando bits, de manera similar a una EPROM, Estos EPAL pueden bo_
rrarse y reprogramarse en' repetidas ocasiones, lo que aumenta su
utilidad.
Técnicas no tradicionales _como relés, neumática^ fluidica, etc.
que no son de interés en este trabajo.
Se propone en este trabajo la solución de las ecuaciones implemen_
tándolas en un microcontrolador5 el que se ha programado para re_
solverlas.
Se ha seleccionado el microcontrolador INTEL 8751 que dispone en
su interior de todos los .elementos necesarios para trabajar como
una unidad autónoma y presenta ventajas frente a otro tipo de rnj_
croprocesadores.
Se empezará analizando las características del microcontrolador ,
para continuar luego con algunas alternativas de solucictn y de en_
tre estas seleccionar la que más se preste a la resolución de las
ecuaciones planteadas.
3.1, . D E S C R I P C I Ó N
0POHT 1LATCM
0Í-ORT 1
OHIVEHi
0POflTíLATCH
L ^LJ\ HOnTÍ— ,Á üHIVEHb
•mn- 1*012. WJÍ orxly
-UllP
Figura 3.1. Arquitectura del 8751.
50
TERMINALES PEL MICROCONTROLADOR
PI.O CPi.i CP1.2 C
P1.3C
P1.4 C
P1.5 CP1.6 C
P1.7CRST C
RXD P3.0 CTKD P3.1 C
INTD P3.2 tZ
INT1 P3.3 CTO pa.4 c;T1 OT í f JI I r J.3 I — ,
WR P3.S C
HD P3.7 CXTAL2 C
XTAL1 LZ
VSS C
2 -J-
4 -
5'
e 'T '
t "9
10 '11 '12 -13 •
14-
15'i j
16 '
17 "
IB
19
20"
J~ -40
- 39
,-M' 37
-36
-.35
-34
-33
„ 32
31
30
29
^ 20
-27
,-26
^25
,24
'23
- 31
UVCC
U PO.O AOO
I] P0.1 AD1
Z3 P0.2 AD2
•^\3D P0.4 AD4
U P0.5 ADS^3 P0.6 AM3 P0.7 AD7U tA-Vpp
3 ALE PROG
Z) PS6N
I] P2.7 A15DP2.KA14
3 P2.5 A13
3 P2-* Al 2Zl P2.3 A11ZJ P3.2 A103*?2.1 A9
D P2.0 A8
CORNEO^
Pl.5
P1.Í
P1.7
RST
P3.0
MC
P3,l
P3.2
P3.3
P3.4
P3.S
W P I M - - O ( j O " : « n
^ -• ._. -. _ -~ .- j J; 5- ;, >
> :*•¡V
V { jí
ü ;»11 !Hii ;»n *»
i. ;Mi» ¡ i;vi 'rf
1ii ¡[ í^ Z S = C R I S í Jt.
5 5 2 5 « i 3 ¿ ¿ ¿ 5x K °"
Pad
pm
Fig. 3.2. Diagrama de terminales del 8751.
VCC
Pl
P2
P3
RST
ALE/PROG
PSEN
EA/Vpp
Voltaje de alimentación (+ 5 V).
terminal de tierra (O V)
Pórtico de entrada/salida (8 bits)
Pórtico de entrada/salida (8 bits)
Pórtico de entrada/salida (8 bits)
Pórtico de entrada/salida (8 bits)
Entrada de Reset.
Salida de habilitación de retenedores de dirección para
que se retenga el byte inferior de direccionamiento cuan_
do se usa memoria externa. También se usa este terminal
cuando se programa la memoria interna del microcontrola-
dor.
H a b i l i t a c i ó n de lectura de la memoria de programa exter_
na. Cuando se lee una loca l idad in terna de memoria per_
rnanece inac t ivo .
Cuando EA se mantiene en estado alto, la CPU ejecuta las
51
instrucciones de la memoria de programa interna. En ca_
so de que se coloque EA al nivel bajo, la CPU ejecuta -
el programa almacenado en la memoria de programa exte_r
na. Este terminal también se usa cuando se programa la
EPROM interna.
XTAL1 Entrada al circuito oscilador.
XTAL2 Salida del circuito oscilador.
CARACTERÍSTICAS. -
Las características más importantes del microcontrolador INTEL 8751
son:
- CPU de. 8 bits.
- Circuitería interna de reloj y oscilador.
- 32 líneas de entrada/salida.
- Capacidad de direccionar hasta 64 K de memoria externa de datos.
- Capacidad de direccionar hasta 64 K de memoria externa de progra-
ma.
- Dos contadores/tempori zadores de 16 bits.
- Cinco fuentes de interrupción con posibilidad de programar dos ni_
veles de prioridad.
- Un pórtico serial de comunicaciones full dúplex.
- Capacidad de procesamiento Booleano.
- 128 bytes de RAM interna.
- 4 Kbytes de EPROM interna.
52
ORGANIZACIÓN DE MEMORIA
El microcontrolador 8751 tiene espacios diferentes para memoria de
programa (EPROM) y memoria de datos (RAM). La memoria de programa
puede ser máximo de 64 K, pero la zona inferior de 4.K puede ser la
interna del integrado.
FFFF
I O O O
OFFF
O O O O
60 Kbyt«*
M E M O R I A
E X T E R N A
4 K b y t « s
E P R O M I N T E R N A
FFFF
O O O O
64 K.byt*»
MEMORIA
EXTERNA
O P C I Ó N 1 O P C I Ó N 2
Fig. 3.3. Memoria de 'programa del 8751.
La memoria de datos externa del 8751 puede ser de máximo 64 K. Ad_e_<
más de que internamente se dispone de 128 bytes de RAM interna más
una cantidad adicional de registros de uso especial (SFR). Es simul^
táneo el uso de RAM interna y externa ya que su acceso es diferente.
F F
8O
7F
FFFF
SFR
DIRECCIONAMIENTO
DIRECTO
DIRECCIÓN AMIENTODIRECT./ INDIRECTO
OOOO
St
E X T E R N O
INTERNA E X T E R N A
Fig. 3.4. Memoria de datos del 8751.
53'
REGISTROS ESPECIALES.-
(*)ACC Acumulador de uso general.
(*)B Registro que se usa durante la multiplicación y división
ó como un registro adicional .
(*)PSW Registro que contiene la información de estatus programa_
da.
SP Stack pointer (puntero de pila).
DPTR Data Pointer, es un registro de 16 bits compuesto por DPH
(Data Pointer High Byte) y DPL (Data Pointer Low Byte).
(*)PO Registro del pórtico 0.
(*)P1 Registro del pórtico 1.
(*)?2 Registro del pórtico 2.
(*)P3 Registro del pórtico 3. ' .
(*)IP Control de prioridad de las interrupciones.
(*)IE Control de habilitación de las interrupciones.
TMOD Control de modo de funcionamiento de los contadores/tem-
porizado res.
(*)TCON Control de los contadores/temporizadores.
THO Byte superior del temporizador/contador #.
TLO Byte inferior del temporizador/contador 0.
TH1 Byte superior del temporizador/contador 1.
TL1 Byte inferior del temporizador/contador 1.
(*)SCON Control del pórtico de comunicaciones seriales.
SBUF Buffer del pórtico de comunicaciones seriales.
PCON Control de la alimentación al integrado.
Los Registros marcados con un asterisco (*} son accesibles como b^
te completo, o a nivel de bit.
CIRCUITO OSCILADOR Y DE RELOJ
Para el funcionamiento del microcontrolador, es necesario colocar
externamente un crista] } que puede'ser máximo de 12 MHzs el circui_
to oscilador y de generación de señales de reloj son internos.-
8031XTAL I úXTAL 2
f
tf
niUl .
^
CRISTAL DE CUARZOU OSCILADOR CERÁMICO
r t,
Fig. 3.5. Conexiones del cristal/oscilador cerámico.
Un ciclo de máquina consiste en. 6 estados que equivalen a 12 oscila_
ciones del.reloj. La mayoría de las instrucciones del 8751 se eje_
cutan en un ciclo de máquina, una menor cantidad de instrucciones -
necesitan dos ciclos de máquina y sc51o dos instrucciones requieren
cuatro ciclos de máquina (la multiplicación y la división).
PÓRTICOS DE ENTRADA/SALIDA.-
Todos los cuatro pórticos-en el microcontrolador 8751 son bidireccip_
ríales* cada uno de los cuales consiste en un retenedor (latch) que
corresponde a un SFR, una etapa de salida y un buffer de entrada.
Es importante hacer notar que algunos pórticos tienen otra función ,
a más de la anteriormente descrita, así:
55
Para manejar memoria externa, se usan los pórticos i y 2, en este
caso el pórtico 0 envía el byte inferior de la dirección de memoria,
multlplexado en el tiempo con el byte que se va a leer o escribir
en la memoria mientras e"! pórtico 2 envía el byte superior de la dj_
rección.
En el caso del pórtico 3, sus terminales tienen ahora funciones es_
pecificas que son las siguientes:
P3.0 RXD (Pórtico de comunicación serial).
P3.1 TXD (Pórtico de comunicación serial).
P3.2 INTO (Interrupción externa 0).
P3.3 INT1 (Interrupción externa 1).
P3.4 T0 (Entrada externa del contador/temporizador 0),
P3.5 TI (Entrada externa del contador/temporizador 1).
P3.6 WR (Habilitación de escritura a la memoria externa de datos).
P3.7 RD (Habilitación de lectura a la memoria externa de datos).
Las funciones alternativas pueden ser sólo activas si en el corres-
pondiente retenedor en el registro especial contiene un "1".
Los pórticos 0 y 2 pueden ser internamente conmutados hacia los bu_
ses de Direccionamiento/D.atos por una señal interna de Control para
usarse en el acceso de la memoria externa.
La conformación de los pórticos es la siguiente:
56
ADOR/DATA
(A) POñT O BIT
ADOR
READLATCH
INT. BUS
WRtTETO —LATCH
READPIN
VCGINTERNALPULL-UP*
{B)PORT1BIT
ALTÉRNATEOUTPUT
FUNCTlON
INT BUS
(CJPORT2BIT (D)PORT3B1T
Fig. 3.6. Estructura de los pórticos de entrada/salida.
Los pórticos I-, 2 y 3 t ienen Internamente un circuito p u l l - u p , el
pórtico i no dispone de estos elementos y al colocar un !11" en este
pórtico, se comporta .como una entrada de alta impedanc ia .
Todos los pórticos pueden_s_er usados como una l ínea general de en-
t rada/sa l ida de datos; para ser usados como una entrada, se debe co
locar en el registro Interno del pórtico un "1", esto hace que el
p u l l - u p co1oque_un estado, alto a la sal ida y puede ser colocado a
un n ive l bajo por a lgún elemento externo.
En el caso del pórtico cero, el pulí up Interno sólo se activa -
cuando se va a tener acceso a memoria externa, en modo de funciona-
57
miento -general de entrada/salida actúa como entrada de alta impedan_
cia y es necesario un pulí up externo para usarlo como salida.
TEMPORIZADOR/CONTADOR
El 8751 dispone de dos contadores/temporizadores de 16 bits. En el
modo de '.temporizador, el registro s'e incrementa con cada ciclo de
máquina y en el modo de contador el incremento se realiza enlatran_
sición de O a l.de las señales T0-5 TI respectivamente para cada -
contador/tempori¿ador.
La función del dispositivo se controla con el registro TMOD. Es im_
portante indicar que se pueden seleccionar cuatro modos de funciona^
miento lo que les da la versatilidad en su uso.
PÓRTICO DE COMUNICACIONES SERIAL
El pórtico serial de comunicaciones tiene la.capacidad de trabajar
"Ful! Dúplex" esto es recibir y transmitir simultáneamente. Existe
la posibilidad de seleccionar uno de cuatro modos de funcionamiento.
El registro de control que selecciona el modo es el SCON.
La velocidad de transmisión de datos está definida principalmente -
por el cristal que se usa en el circuito de reloj del 8751, en el
caso de tener un cristal de 12 MHz se llega a una tasa de transmi-
sión máxima de 1 Mbit/seg, con la opción de escoger algunas veloci^
dades menores.
58
Se puede también programar el numero de bits a transmitirse y el mo_
do de transmisión.
Los valores de velocidad de transmisión más usados constan en el
cuadro siguiente:
Tasa
MODO 0
MODO 2
MODOS
Máximo 1 MHz
Máximo 375 K
1,3 6Z.5 K
110
. " OSC
12 Mhz
12 MHz
12 MHz
12 MHz
Fig. 3.7. Velocidades de transmisión usando el Temp/cont. 1
INTERRUPCIONES.-
El microcontrolador 8751 provee cinco fuentes de interrupciones:
Dos entradas externas de interrupción INT0 y ÍNT1, que pueden ser
programadas para activarse por flanco o por estado variando el re_
gistro interno de control TCON.
Los contadores/temporizadores internos generan también una señal
de interrupción. Como internamente se dispone de dos contadores/
temporizadores, constituyen dos fuentes adicionales de interrup-
ciones.'
59
- El pórtico serial de comunicaciones puede generar también una se_
nal de interrupción.
Es importante indicar que el efecto que tienen todas estas interrujv.
clones es el de cambiar el estado de un bit en su respectivo regis_
tro, y que este registro a su vez es accesible a cambios desde pro_
grama. Esto hace que sea posible generar interrupciones o cancelar-
las., todo mediante software con resultados iguales a los que se ob_
tendría si estas operaciones fueran realizadas por Hardware del sis_
tema.
Cada una de las interrupciones puede habilitarse o deshabilitarse -
independientemente o en conjunto.
El microcontrolador 8751 ofrece la facilidad de programar cada fuen_
te de interrupción a uno de dos niveles de prioridad. Una interrup__
ción de baja prioridad puede ser a su vez interrumpida por una de
alta prioridad pero no por una de igual nivel. Las fuentes de inte_
rrupción de alta prioridad .no pueden ser interrumpidas por ninguna
otra fuente de interrupciones.
En caso de haber dos pedidos de interrupción, de igual nivel, sitnul_
táñeos se los atiende de acuerdo a esta secuencia:
INT0 .... mayor prioridad
Cont/Temp 0
INT1
Cont/Temp 1 ....
Pórtico serial .... menor pioridad
60
CARACTERÍSTICAS ADICIONALES
El microcontrolador INTEL 8751a dispone-*cLe algunas otras caracterís-
ticas :
- Operación paso a paso, que se la realiza como aplicación del si^s_
tema de interrupciones y es útil en la depuración de programas de
aplicación.
- Modos de operación de ahorro de energía para uso en ciertos cir-
cuitos en los cuales el consumo de corriente es crítico. En estos
modos se desactiva gran parte del circuito integrado y queda actj_
vo una mínima porción del mismo. Estas operaciones se realizan
por software.
Se distinguen dos modos de funcionamiento, modo "Inactivo" (Idle
Hode) en el cual quedan activas las interrupciones , los contado-
res y el pórtico serial , se conserva el estado de la 'CPU y los re_
gistros, aunque no hay señal de reloj en la CPU. Se sale de este
modo con una interrupción o con un reset general del sistema.
El modo "Apagado" (Power Down Mode) en el cual todo se detiene, in_
cluyendo el reloj, la f.orma de salir de este modo es con un reset
general. Todo se pierde a excepción del contenido de la RAM. En
este modo el voltaje de alimentación puede reducirse para minimj_
zar el consumo de energía.
- Dispone de una bandera que impide que una vez programado el micro_
61
controlador se pueda leer el contenido de la memoria interna. Es
útil si se desea proteger contra copias no autorizadas -de algún
programa. La única manera de deshabilitar esta bandera es borran_
do todo el contenido de la'memoria interna.
PROGRAMACIÓN DE LA EPRQM
La memoria EPROM interna puede ser programada eléctricamente, y se
borra exponiendo-el circuito integrado a luz ultravioleta. • Un es-
quema general de la manera de programar la memoria seria:+3V
AUÜK.
J
T -
A o _ A
A e - ¿
* f
L_-.
-^
i~
-j ^7^>
.. >^/
Pl
0731 H PO
P2.S
< PGM DATA\
~1 .
Fig. 3.8. Programación de la EPROM del 8751.
Para la programación, el oscilador del 8751 debe estar funcionando
entre 4 MHz y 6 MHz, debido a que en el proceso se usan los buses
internos. En el diagrama anterior, todos los niveles debenserTTL
normales (O V - 5 V) con excepción de tres entradas que se detallan
a continuación:
RST Requiere sólo 2.5 V para reconocer un estado alto.
62.
EA/VPP Normalmente esta en alto (TTL) y se da un pulso de + 21V
temporalmente mientras se graba un dato.
ALE/PROG Normalmente está en alto, pero mientras EA/UPP está en
+ 21V, se debe colocarlo en estado bajo por 50 mseg. • y
luego volver a alto, esta entrada y la entrada EA/VPP. Al
acabar el proceso anterior el dato se ha grabado -en la
dirección adecuada.
Para detalles más específicos se deben consultar en las hojas de es_
pecificaciones del microcontrolador (Anexo adjunto).
Par-a verificar o leer el contenido de la EPROM se procede con las
siguientes conexiones:
«un . _ f
OOOOH- TOFFFH . ¡
1A8 ~
-L '
i T=_J_4-6MHZ | 1 í 1
r ^>
J\>
PI v«
87B1 H PO
8051
.
1
Fig. 3.9. Lectura de la EPROM del 8751.\a lectura se la podría realizar sólo si no esta programado el bit
de seguridad, pues en caso de estarlo no será posible.
Para programar el bit de seguridad se procede así:
63
TTL H1GH
4 - 6 M H i
—TI
Pl
P2.0-
P2.3
P2.4
P2.3
P2.6
P2.7
XTAL2
XTAL 1
Vi*
V c c
PO
8 751 H
ALE •*
R3T
PSEÑ
X = "DON'T C A R E "
-ALE/PRGG 50(n* PULSE TO OHO
-EA/VPP-»- 21 V PULSE
•VlHI
Fig. 3.10. Programación del bit de seguridad del 8751.
Para borrar la EPROM, se debe exponer la ventana de que dispone el
8751 a luz ultravioleta de una longitud de onda menor a 4000 Ams-
trongs. Dado que la luz solar y las lámparas fluorescentes tienen
en su espectro esta longitud de onda, se debe cubrir la ventana con
una cubierta opaca, pues puede ocurrir un borrado accidental (1 se_
mana de exposición a la luz solar o 3 años en una habitación ilumi-
nada con luz fluorescente).
Se recomienda para el borrado usar una lámpara de luz ultravioleta
(de 2537 Amstrongs) que provea una potencia en la ventana de 15 W
por cada centímetro cuadrado (15 W/cm2), Exponer la ventana a una
lámpara ultravioleta con una dosis de 12000 uW/cm2 por ZO O 30 mi_
ñutos a una distancia de 1 pulgada es suficiente.
Al borrar la EPROM, todas las localidades toman el valor • de "1"
(FF).
3.2. SET DE INSTRUCCIONES
3.2.1. Configuración de la memoria de datos
Es importante conocer la configuración de la memoria de datos, dado
que la manipulación se la realiza en base a estas localidades de me_
moria.
La memoria de datos interna se organiza de esta manera:
FF
80
7F
00
SFR's
OIRECCIONAM1ENTO
DIRECTO
DIRECCIONAMIEfJTO
DIRECTO E
INDIRECTO
Fig. 3;11. Memoria de datos interna.
La zona de uso general la constituyen 128 bytes (00 - 7F) a los que
se tiene acceso en forma directa o indirecta. Se dividen en 3 zonas;
1. Bancos de Registros.- (Desde 00 hasta 1FH) que se divide en tres
bancos cada uno de los cuales a su vez está constituido por 8 re_
gistros de 1 byte (R0 - R7).
2. Zona de Acceso Bit a Bit.- (Desde 20 H hasta . ¿FH) que constituyen
16 bytes ó 128 bits que son accesibles bit a bit (bit O - al bit
65
7FH)'. También se tiene acceso a esta zona como bytes completos.
3. Área de uso general.- (Desde '30H hasta '. 7FH) que pueden usarse
como localidades de memoria para almacenar datos.
La zona superior de la RAM la constituye un área dedicada a almace-
nar todos los registros que cumplen una función especial (SFR).
A cada uno de estos registros se tiene acceso como byte y algunos
de ellos a nivel bit. En esta zona, están los registros de control
de funcionamiento del microcontrolador.
Un diagrama más completo de la memoria de datos se indica en la •
Fig. 3.12.
3.2.2. Introducción al Set de Instrucciones
El set de instrucciones incluye 111 instrucciones. El formato de
las instrucciones consiste en un nemónico de la función, • seguido
por los operandos en este orden "destino, fuente"3 este campo espe_
cifica el tipo de datos y el tipo de direccionamiento usado.
Se puede definir cuatro grupos funcionales:
- Transferencia de datos.
- Aritmética.
- Lógica.
- Control de transferencias.
66
h= =H
78
70
60
50
38
30
28
20
ia
10
08
00
* -
, . .TF
0...
3 "C? "X
a 'Vi
i Ci.
0 *R,¿
7F
77
6F
67
ZONA DE
BF USO
GENERAL
67
4F
47
3F
37
2P SEGMENTO DE
ACCESO A.
27 NIVEL DE BIT
ir
17
OF °E
REGISTROS
07
Fig. 3.12. Estructura de la memoria de datos.
67
En cuanto a la__transferenc_ia de datos,_estos_se pueden hacer tanto
a nivel de byte o de bit y entre SFR, localidades de memoria inte_r
na o externa y de datos numéricos.
La CPU tiene capacidad de realizar cuatro operaciones aritméticas >
todas con operandos de 8 bits'. Estas operaciones son suma, resta-,,
multiplicación y división.
Se dispone también de operaciones lógicas tanto a nivel de bit como
a nivel de byte.
Se tienen saltos incondicionales} llamadas a subrutinas, retornos r
de subrutinas, saltos condicionales, retornos de subrutinas de inte_
rrupción. Además de instrucciones generales de control.
, A continuación se presenta un sumario del set de instrucciones del
microcontrolador 8751. Se incluyen también una descripción , el nú_
mero de bytes que ocupa esa instrucción y el numero de oscilaciones
del cristal para que se ejecute esa instrucción.
Al final del sumario de instrucciones se da una tabla que indica co_
mo varían las banderas de acuerdo al tipo de instrucción ejecutada.
68
SUÜfiRIO DEL SET DE IKSTRUCCIfflES BEL flICRDCDHTROLADQtt 67S1
HDDDS BE DIRECCIQKAHIEÍiTD Y KOTAS IMPORTANTES,
Rn -Registros RO-R7 del b a n c o de registros quese ha seleccionado.
direct -Localidad interna de RAH con una direcciónde 8 bits; puede ser una local idad de RAHdestinada a datos (0-127), o puede ser unregistro de uso especial SFfl (por ejeoplo unpór t ico de entrada/sal idajregis t ros de con-trol , registro de status,etcí(128-255).
3Ri -Localidad interna de Rfttf (0-255) que se ate-esa indirectamente a través de Rl o RQ.
fdata -Constante de B bits que se inc luye en lains t rucc ión .
*datalf> -Constante de 16 bits que se inc luye en lains t rucc ión /
addrU -Dirección de 16 bits, Se usa en LCñLL y LJHP.La r a m i f i c a c i ó n del programa puede hacerse acua lqu ie r parte de los 64K, de ¡eesoria deprografna disponible !se incluye la sesiona deprograea externa).
addr l l -Dirección de 11 bits . Se usa en ACñLL y AJHP• ,La raai-ficacióíi puede hacerse en la oisoa
página de 2K. de sesoria ds prograsa,en quese encuentra el priser byte de la siguienteinstrucción.
reí -Q-físet de 8 bits con signo (en foraato coa-pleaento de dos) ,Osado par SJHP y todos lossaltos condicionados. El rango que se puedealcanzar es de -128 a +127 bytes, relativos ala localidad en que se encuentra el priaerbyte de la siguiente ins t rucc iún .
bit -Bit de acceso d i rec to en la l o c a l i d a d de RAífinterna {bytes 20 al 2F , que representan 128bits de acceso d i r e c t o que van de bit 00 albit 7F) , o les registros de uso especial SFRque son accesibles a nivel de b i t .
SET DE INSTRUCCIDÍiES RESUMIDO.
BPERñCIOHES MATEMÁTICAS
69
HEUOHICO KSCRIPUQH . BYTE DSC.
ADD A,Rn Sume el registro al acumulador.fiDD A,direct Sune el byta directo al acumulador.AOD A,SRi Suae una localidad de RAR (indirecta
a través de Ri) al acuaulador.ADD Ajftdata Suiíe un dato colocado a continua-
ción, al acuaulador.ADOC A,Rn Sume el registro al acumulador in-
cluyendo el carry.ADDC A,direct Sume el byte directo al acumulador
incluyendo el carry.ADDC A,2Ri Suse una localidad de RAfl (indirecta
a través de Ri) al acuaulador inclu-yendo el carry.
fiQDC A.Sdata Suae un dato colocado a continuación,al acuoulador incluyendo el carry.
SUBB A,Rn Reste el registro del acuaulador in-cluyendo el borrón.
SUBB A,direct Reste un byte directo del acucsuladorincluyendo el borrón.
SUBB ñ,3Ri Reste una localidad de Rfitt (indirectaa través de Ri) del acuaulador inclu-yendo el borrón.
SUBB A,ídata Reste un dato colocado a continuacióndel acumulador incluyendo el borrón.
IflC f. Incremente el acumulador.IHC Rn Incremente el registro.ÍHC direct Incremente el byta directo.!HC SRi Incremente una localidad de RAM (in-
directa a través de Ri).DEC A Bscreaente el acumulador,DEC Rn Decre¡aente el registro.DEC direct Decresente el byte directo.DEC SRi Decreciente una localidad de RAM (in-
directa a través de Ri).IHC DPTR Increaente el puntero de datos.HUL fiB Multiplique A y B.DIV fiB ' Dividir A entre B.DA A Ajuste deciaal del acumulador.
1 122 12
1 12
2 12
1 12
2 12
1 12
2 12
1 12
2 12
1 12
2 12
T121 121 122 12
1 121 241 481 481 12
Vv.
OPERñCIOHEB L06ICAS
70
ÍEBONICO
ANL A , R n
ANL ñ jd i r ec t
ftílL A,3ñi
mi A,8data
ñtJL direct ,A
ñHL ' d i rect , idáta
ORL A , R n
DRL ft,direct
ORL A,3Ri
ORL A,Idata
QRL difect ,A
ORL directjdata
ÍRL A , R n
X R L A.direct
X R L A ,3Ri
XRL ñ , ídata
XRL direct ;A
X R L d i r e c t j S d a t a
CLR ACPL ARL ARLC A
9E5CRIPCIDH BYTE OSC.
Ejecute un AND del registro alacumulador. 1 12Ejecute un AND de un byte directoal acumulador., ' 2 12Ejecute un AND de una local idad deRAfi ( I n d i r e c t a a través de R i ) alacumulador. 1 12Ejecute un AND de un dato colocado acont inuac ión al acumulador . 2 12Ejecute uri AND del acuiulador a unbyte directo. 2 12Ejecu te un AND de un dato colocado acon t inuac ión a un byte directo. 3 24Ejecute un DR de un registro al acu-itador. • 1 12Ejecute un OR de un b y t e directo alacusulador , . 2 12Ejecute un OR de una local idad RAH( indirecta a través de Rií al scujiu-
lador- ' 1 12Ejecute un QR de un data colocado ac o n t i n u a c i ó n al acuaulador- 2 12Ejecute un OR del acumulador a unbyte directo. ' 2 12Ejecute un QR de un dato colocado a
. c o n t i n u a c i ó n a un byte directo. 3 "24Ejecute un OR-EÍCLUSIVO del registro
al acumulador. 1 12Ejecute un OR-EXCLUSWÜ de un bytedi rec to al a c u m u l a d o r , 2 12Ejecute un QR-EXCLUSIVQ de una loca-l i d a d de RAH ( ind i rec ta a través de
Ri) al aciiBUlador. 1 12Ejecute un O R - E X C L U S I V O de un dato cu-'locado a c o n t i n u a c i ó n al acusulador , 2 12Ejecute un DR-EXCLUSWÜ del acuantia- .dor a un byte d i rec to . 2 12Ejecute un D R - E X C L U S I V O de un datocolocado a con t inuac ión a un byte di-rec to . 3 24Borre el acUEUlador. 1 12Coapleaente el a c u m u l a d o r . 1 12Rote el a c u m u l a d o r hac ia la i z q u i e r d a . 1 12Rote el acuaiilador h a c i a la i z q u i e r d aa través del carry , 1 12
71
RR ft Rote el a c u m u l a d o r hacia la derecha. 1 12RRC fi R o t e el acuaulador hacia 1a derecha
a través del carry . 1 12SHAP A Permita los cuatro bits inferiores
con los cuatro superiores en el acu-aulador , 1 12
TRANSFERENCIA DE BATOS
NEHDNICD DESCRIPCIÓN BTTE OSC.
HOV ft,Rn T r a n s f i e r a el registra al acunulador, 1 12HDV A,direct Transfiera un byte directo al acuau-
ladar, • 2 12HQV A,3Ri Transfiera una localidad de RAH ¡in-
directa a través de Ri) al acumulador,! 12MOV A,tdata Transfiera un dato colocado a conti-
nuación al acuaulador. 2 12Í10V RiijB Transfiera el acuátil ador a un regis-
tro, 1 12HOV Rn.dírect Transfiera un byte directo a un re-
gistro. 2 24HOV Rn,ídata Transfiera un dato colocado a conti-
nuación a un registro. 2 12HOV directjA Transfiera el acuaulador a un byte"
directo. 2 12directjRn transfiera un registro a un byte di-
recto. ' 2 24direct,direct Transfiera un byte directo a otro
byte directo. 3 24KOV rfirectjSñi Transfiera una localidad de RAH (in-
directa a través de Ri) a un byte di-recto. 2 24
HÜV direct,3d3ta Transfiera un dato colocado a conti-nuación a un byte directo. 3 24
HOV 3RijA Transfiera el acumulador a una loca-lidad de RAH (indirecta a través deRi). 1 12
HOV 3Ri,direct Transfiera un byte directo a una loca-lidad RAH (indirecta a través de Ri). 2 24
HOV SRi,£data Transfiera un dato colocado a conti-nuación a una localidad de RAh (indi-recta a través de Ri). 2 32
fiOV DPTRjüdatalí) Cargue el puntero de datos con unaconstante de 16 bits, 3 24
72
HOVC ñ , S A + D P T R T r a n s f i e r a un byte de la aeaoriaEPRQH ( r e l a t i v o respecto de DPTR) ala c u m u l a d o r . 1 24
Í1GVC A,3A+PC Transfiera un byte de la aeaoriaEPRQH ( r e l a t i v o respecto de PC) alacuisulador. 1 24
flOVX A,3íU Trans f i e r a una local idad de iseaoríaRAH externa [d i recc ión de 8 bits) ala c u m u l a d o r . 1 24
HOW A , 9 D P T R Trans f i e ra una l o c a l i d a d de BeioriaRñH externa (d i recc ión de 16 bits) alacumulador. 1 24
R O V X í f i i j f t T r a n s f i e r a el acuaulador a una locali-dad de uesar ia RAH externa {direcciónde S b i t s ) . 1 24
MOVÍ S D P T R j ñ T rans f i e r a el acusulador a una locali-dad de raeeioria RAM externa (direcciónde U bi ts) . ' 1 24
PU3H direct Coloque un byte d i r e c t o en el stack. 2 24POP direct Cargue un byte directo desde el stack.2 24ÍCH A j R n . I n t e r c a m b i e el registro con el acu-
nulador , • 1 12Ü C H ft,direct In tercaabíe un byte d i rec to con el
acusulador . 2 12XCH ñjSHi Intercasbie una localidad de RfiH (in-
directa a través de Ri) con el acusu-l a do r . 1 i2
JÍCHÍJ ñ ,SRi In t e rcambie el d íg i to de aenor ordende una l o c a l i d a d ftfiil ( i nd i r ec to a tra-vés de Ri) con el acuaulador. i 12
K f l N I P U L f l C I Q H DE V A R I A B L E S BOOLEAIÍA3
KEROHICQ DESCRIPCIÓN BYTE DSC.
CLR CCLR bi tSETB C5ETB bitCPL
ANL C , / b i t
Borre el carry. 1 12Borre un bit directo. 2 12Setee el carry. i 12Setee el bit directo. 2 12Coaplecente el carry. 1 12Confiésente el bit directo. 2 12Ejecute un AND de un bit d i rec ta alca r ry . 2 24Ejecute un fiND del coapleraento de unbit d i r ec to al c a r ry . . 2 24
73
ORL C , b i t
ORL C , /b i t
HOV b i t ,CJC reíJHC reíJB b i t , r e lJ H B b í t , r e lJBC bi t , re í
Ejecute un GR de un bit directo alcarry.Ejecute un OR de un bit directo alcarry. 2Transfiera el carry a un bit directo. 2Salte si el carry está seteado.Salte si el carry está borrada.Salte sí un bit directo está seteado.Salte si un bit directo está borrado.Salte si un bit directo está seteadoy borre ese bit.
2 24
122424242424
3 24
CONTROL DE RAMIFICACIÓN DEL PROSRAHA
rameo DESCRIPCIÓN BYTE OSC.
addrll
•LCALL addrli
RETRETÍ
AJHP addrliLJñP addrliSJÜP reíJKP ñ,3Ai-DPTR
JZ reí
JNI reí
CUNE ñ,direct3rel
CJHE ft,*data,rel
CJíic R f i j
CJNE 3 R i , 5 d a t a , r e l
Lldffiatia a una subrutins (direccifinde 11 b i t s ) , 2 24Llanada a una subrutina ¡direcciónde 16 b i t s ) . 3 24Retorno de una subrut ina, 1 24Retorno de una subru t ina de interrup-ción. 1 24Salto (dirección de 11 bits). 2 24Salto (d i recc ión de 16 bits). 3 24Sal to a una d i recc ión relativa (reí!. 2 24Salto re la t ivo a DPTR í ind i rec to através del valor de ft). 1 24Salte si el acuauUdor es cero (rela-t i v o ) . 2 24Salte si el acumulador -no es cero( r e l a t i v o ) . 2 2 4Coapare un byte directo con el acumu-lador y salte si no son iguales (re-l a t i v o ) . 3 24Conpare un dato colocado a continua-c ión con el acumulador y salte si noson igua les ¡ re la t ivo) . ' 3 24Compare un dato colocado a continua-c ión con un r e g i s t r o y saite si noson igua les (relativo). 3 24Coipare un da to colocado a cont inua-ción con una localidad de RAH (indi-rec ta a t ravés de R i ) y salte si noson igua les ( r e l a t i v o ) . . 3 24
74
DJNZ fin,reí Decrétente el registro y sa l te si noes cero [relativo). 2 24
DJHZ direct,rel Decreciente un byte directo y'salte sino es cero(relat ivo). 3 24
NQP Ho ejecute ninguna operación. 1 12
INSTRUCCIONES BU£ AFECTA!! A LAS BANDERAS DEL REGISTRO DE STATUS
I85TR. BANDERAS IÍ1STR. BANDERASC OV 6C C DV fiC
A B D X X X C L R C Of i B D C X X X . C P L C ISUBE X X X AHL C.bit XWL O X ANL C,/bit XDIV G X ORL C,bit IDA X ORL C,/Mt i 'RRC X ' HOV C,bit XRLC X CJHE XSETB C 1
En donde las banderas aencionadas son las siguientes;
C -Bandera de carry,fiC -Bandera de carry auxiliar.OV -Bandera de overílos.
ñdeaás de los casbios de estado que pueden producirse debido a lareal ización de las díterentes instrucciones,puede alterarse elcontenido de las banderas.accesándolas directamente en foraa debits a lo,registros especiales SFR.
75
3.3. SOLUCIÓN DE ECUACIONES BOOLEANAS CON EL 8751
Introducción.-
El microcontrolador Intel 8751 dispone de una CPU que es una de las
más rápidas y eficiente de la industria actualmente, lo que se des_
prende al analizar las características,, arquitectura y set de ins-
trucciones del mismo.
Normalmente se trabaja con operaciones a nivel de byte, pero en un
proceso industrial se presentan variables discretas de dos estados
(si/no) como pueden ser: el estado en un relé, una lámpara encendi-
da o apagada, un motor parado o en movimiento , etc. Este tipo de
variables son las que se desea manipular con el microcontrolador en
la presente aplicación, para lo cual dispone el mismo de un soporte
completo de instrucciones. En el manejo directo a nivel de bit, en
lo que se refiere a transferencias, comprobaciones, operaciones 16_
gicas, cambios de estado, se dispone de un buen set de instruccio-
nes .
Es importante anotar que casi cualquier microcomputador digital pc^
dría ejecutar un algoritmo que solucione una ecuación Booleana, su_
poniendo un programa que puede tener poca o mucha complejidad, así
como también tomando un determinado tiempo de proceso que logicamen_
te es deseable que sea el menor posible, siendo esta una de las ra_
zones por la que se seleccionó este microcontrolador. Uno de los
parámetros que podría tomarse en cuenta para evaluar el desempeño -
del microcontrolador en esta aplicación sería el número de instruc-
76
clones -que deben ejecutarse para resolver el problema lo que se re_
fleja en la longitud del algoritmo.
En un procesador que no disponga de operaciones a nivel de bit se
requieren más operaciones para trabajar a ese nivel,.el 8751 presen^
ta una ventaja al disponer de un soporte completo en ese campo.
En el 8751 pueden disponerse de 128 registros de 1 bit para opera-
ciones que los requieran, esto sin contar con los registros especia^
les (SFR) a lo que se tiene acceso en su mayoría a nivel de bit.
Se puede dar entonces algunas, razones para seleccionar este micro-
controlador en esta aplicación:
- Simplicidad del hardware, ya que el integrado tiene internamente
todos los elementos necesarios para su funcionamiento.
- De aplicación simple, ya que la arquitectura facilita la solución
del problema que se plantea.
- Gracias al manejo directo a nivel de bit se tendría una mayor efi_
ciencia.
- Debido a que se dispone instrucciones dedicadas a este tipo de ma_
nejo, el programa será mas corto y de ejecución más rápida.
- Los pórticos de Entrada/Salida son de fácil manejo.
77
- Se dispone de 32 líneas de Entrada/Salida, lo que permitiría tra-
bajar con una buena cantidad de variables de entrada y funciones
de salida.
- La memoria EPROM interna tiene una capacidad relativamente grande
para este '"-tipo de aplicación.
- Admite un oscilador de alta frecuencia (12 MHz), lo que produce
un procesamiento rápido.
3.3.1. Solución de Ecuaciones Booleanas
Ecuaciones no normal izadas.-
Es bastante común disponer de una ecuación Booleana no reducida a
una de las formas normalizadas (S de P o P de S). Al contrario de
las ecuaciones reducidas a una de estas formas, la implementación -
requiere varios niveles de compuertas lógicas, aparte de que se usa_
rían varios tipos de compuertas.
Con un ejemplo se ilustra la solución de una ecuación combinacional
Booleana usando el microcontrolador 8751. Sea la ecuación
Q - (AB + C)(D + E)
la implementación usando compuertas lógicas sería
78
ABC+AB
DtE[DfEXCtAB)
Figura- 3.13.
La solución por medio del microcontrolador puede hacerse de algunas
maneras, se proponen dos:
La primera hace uso de instrucciones de comprobación del estado de
una variable y de salto, la segunda hace uso de las operaciones 1¿
gicas disponibles en el set de instrucciones.
El método de prueba y salto (Ramificación) usado para la solución
de la ecuación genera un diagrama de flujo:
79
S O L U C I Ó N M E D I A N T E EL MÉTODO DE R A M I F I C A C I Ó N
IHICIALIZACION
LEER LASUARÍABLES V ftLHA-
CEHftRLfiS
COLOQUE Lfi BAN-DERA EH EL PÓR-TICO DE S A L I D A .
80
El, programa que resuelve el problema será;
AABBCCDDEEQQ
INICIO:
PRBC:
PONER:
BORRE:
BITBITBITBITBITBITMOVMOVMOVJNBJBJBJBJNBBETBJMPCL.RJMP
B.OB. 1B.2B.3B-4Pl.OP 1 s #OOHPÜ,&FFHB?POAÁ?PRBCBB, BORRECC, BORREDD, PONEREE, BORREQQINICIOQQINICIO
Para este ejemplo se ha usado el pórtico P0 como terminales de entra_
da, en los bits P0.0 al P<zL4 y el pórtico PI(P1.0) como terminal de
la función de salida.
Una forma más eficiente de resolución corresponde a la que usa las
instrucciones del procesador Booleano del microcontrolador) en este
modo de resolución se realizan las operaciones booleanas entre las
variables, tal como están indicadas en la fórmula. A veces es indi_s_
pensable el uso de variables auxiliares para la solución, anotando
que el trabajo es totalmente a nivel de bit.
Tanto en el programa anterior como en el que sigue aparecen ciertos
81
SOLUCIÓN MEDIANTE EL USO DE INSTRUCCIONES BOOLEANAS DEL 8751
'
INICIf tLIZf iCION
LEER LAS ÜARIflBLESftUWCEHARLftS.
CflRHV = CARJtt + c
F0 = CARRÜ
r CfiRiW = D.E
CfiRM =
COLOQUE a CñRRV EtíEL PÓRTICO DE SALIOS,
El Programa será:
A ABBceDDEEQQ
INICIO:
BITBITBITBITBITBITMOVMOVMOVMOVANLORLMOVMOVANLANLMOVJMP
B.OB. IB.2B.3B-4Pl. 1P 1 , #OOHP0_, #FFHB,POC', AAC", BBC,CCFO,CC-.DDC,EEC./FOQQ, CINICIO
82
comandos especiales (XX BIT YY), estos son comandos de asignación -
propios del programa ensamblador, se recomienda la lectura de la 1n_
formación disponible en el manual de uso del mismo.
Se pueden hacer algunos comentarios de los dos ejemplos anteriores:
- La estructura del programa cambia radicalmente de una función a
otra. Cada ejemplo genera un programa con una estructura propia,
lo que representa una desventaja.
- En el caso del primer ejemplo, el retardo entrada/salida es varia_
ble, pues dependería del camino por el que fluya el proceso,
- Son buenos métodos de solución en el caso de no tener las ecuacio^
nes en forma normalizada (Suma de Productos).
- Puede llegar a tenerse una longitud bastante apreciable de progra_
ma lo que limita el grado de complejidad del problema que puede
resolverse.
- Para ejemplos sencillos son soluciones aceptables.
Ecuaciones Normal izadas.-
Los métodos anteriores son poco útiles en la solución de ecuaciones
normalizadas (Prácticamente es equivalente tener .una forma normaliza_
da Suma de Productos o Producto de Sumas en la itnplementación del aj_
goritmo de solución en el microcontrolador. Asumimos una forma S de
83
de P.) pues cada término puede contener a casi todas las variables
de entrada y se debería Irlas comprobando una a la vez y realizarlo
con todos los términos* lo que Implica demasiadas operaciones y mu_
cho tiempo.
Se plantea un método más eficiente para este tipo de ecuaciones, pro_
curando a la vez eliminar las desventajas de los métodos anteriores.
Debido a la forma normalizada, se obtienen un número determinado de
términos con una estructura similar entre si» lo cual se aprovecha
para generar a partir de ellos una tabla que representan una (o va._
rías) combinaciones de las variables de entrada que producen una sa_
lida verdadera de la función. Se ingresa la combinación que se pre_
senta en un determinado momento en los terminales de entrada y se
la compara con la tabla, si aparece en la misma, a la salida se co_
loca un 1, o caso contrario se coloca un 0.
El método en general para solucionar cualquier ecuación, lo que va_
ría de un caso a otro es el contenido de la tabla de valores.
En la solución de un problema que contenga varias funciones de sal_i_
da, se considerará como un grupo de funciones independientes entre
si, las cuales se irán resolviendo de una en una usando el mismo aj_
goritmo pero variando la tabla de valores.
Se supone la siguiente ecuación normalizada S de P (Suma de Produc_
tos)
F = BCO + ABC + BCD + ABCD
que pudo haberse obtenido mediante el método tratado en el capítulo
anterior.
El problema planteado, corresponde a una función de cuatro varia-
bles de entrada y se han obtenido cuatro términos en. la ecuación nñ_
nimizada, tres de ellos tienen sólo tres literales y el último cua_
tro. Se debe normalizar la representación de estos términos y se
ha escogido la siguiente:
- Se tienen tantas posiciones como numero de variables.
- Si en la composición de un término aparece un literal, en esa po_
sición se coloca un "1", si aparece el literal complementado se
reemplaza por un "O" y si'no aparece el literal se escoge una "x".
Esta notación se usa también en el proceso de mininiización imple_
mentado, el cual produce los resultados en ese formato.
En cuanto al número de variables de entrada que se aceptan, se tp_
ma un máximo de 16, por la siguiente razón:
En el proceso de minimización se ha detectado como limite teórico
16 variables de entrada, principalmente debido a la "gran cantidad
de memoria requerida y por otras razones, en las ecuaciones re-
sultantes se debe mantener ese número. (En la práctica limitacio_
nes reales disminuyen el número permitido de variables de entrada)_
Las combinaciones de las variables de entrada tendrán esta estructu_
ra:
85
F E D C B A 9 8 7 6 5 4 3 2 1 0— *
bit 15 16 bits (2 bytes) bit
que es la misma de la tabla que contiene las soluciones.
Debido a que se deben representar tres condiciones 1, O, X; 1 bit
no es suficiente y se necesitan 2 bits para cada posición. Se ha
organizado la tabla de esta manera:
vUnos y ceros Posición de las X
(se marcan con un
Fig. 3.15. Estructura de los términos de la solu_ción.
Este formato es el mismo que nos entregará el programa de minimiza-
ción que esta explicado en el siguiente capitulo. Según'- esta es-
tructura la ecuación anterior generará una tabla como esta:
ABCD ABCD
BCD
ABC
BCD
ABCD
0000000000000011
0000000000000100
0000000000000101
0000000000000110
0000000000000111
0000000000001110
0000000000000111
0000000000001111
"V. variable •= 1 .variables. variable com_ eliminadas = O
plementada = O .variables. variable e"11_ válidas = 1minada ' = O
Fig, 3.16. Tabla del ejemplo.
El proceso de comprobación si una combinación de entrada consta en
la tabla y por lo tanto da una salida "1" será;
INGRESAR LOS UALORESPRESENTES DI LOS POR-IICOS DE ENTRADA ¥ALMACENARLOS.
REALIZAR "AND" LÓGICO BIT flBIT EKTME COMBINACIÓN AIKA-CErlADfl V REGISTRO QUE COH -TIENE INFORMACIÓN PE V A R I A -BLES E L I M I N A D A S .
COMPARAR RESULTADO AH -TERIOI1 CON REGISTRO QUECONTIENE INFORMACIÓN DEUARlñSLES ( SI SON 3 oSI SON i ).
La operación AND entre la entrada y el contenido de la tabla
bles .eliminadas) pone una "máscara" que coloca un "O" en todas las
posiciones en que hay una variable eliminada mientras que las varia_
bles presentes en el registro de la tabla quedan sin cambio y se
pueden comparar directamente.
Por este método se procesan simultáneamente todas las variables ob
87
teniéndose un mejor resultado que si se procesara de variable en va_
riable.
La distribución de la memoria EPROM que se propone será;
FFF
TABLA DE LA FUNCIÓN N
TABLA DE LA FUNCIÓN 1
TABLA DE LA FUNCIÓN O
TABLA, QUE CONTIENELAS DIRECCIONES DELAS TABLAS DE CADA
FUNCIÓN.
PROGRAMA DE
SOLUCIÓN
OOO
PROM
Fig. 3.17. Distribución de la EPROM del 8751.
Todos los datos necesarios para la solución, incluyendo el programa
y las tablas de valores, se los graba en la EPROM.
El diagrama de bloques que explica todo el proceso se detalla a con_
tinuación:
88
SALTO 0
v( imcioj^ • i mimm 1 1 t*F
INGRESE U A LORESDE PÓRTICOS DE EHIRADA ¥ ALMACENE
DEFINÍS SOMAS LEMEMORIA QUE COH-HEíiEH TABLAS.
CARGAR CONTADORDE FUNCIONES CONHUKERO ÜEFIHIDO.
BORRE REGISTROSDE RESULTADOS.
SftLTO 1
RECUPERE 8 DE T£RMINOS QUE HEMEU N A FUNCIÓN.
ACTUALICE PUNTERODE TABLA - BORREBIT DE TRABAJO
SEACABO TABLA
£SA FUHCIOM7
REALICE AMD BIT ABIT ENTRE REGÍS -TROS DE ENTRADA üHASCftRfl DE U A R I f i -BLES ELIMINABAS.
COMPARE RESULTADOANTERIOR COH VA -LORES DE TABLA.
89
fiCTUñLICE ?UHT£ROEM Lñ TfiRLft BE E-Sfi FUHCIOH.
SftLTO 7
COLOQUE COHTEHIDODEL É1T DE TRñBíl-JQ EM REGISTROSBE RESULTADOS.
SEftCftBftROH
LAS FUKCIGMES
SI
COLOQUE COHTÍÍÜDODE LOS REGISTROSBE EHIfiñDñ £H LOSPÓRTICOS US SALI-M.
90
Se-supone un ejemplo cualquiera para mostrar el programa total de
resolución de la ecuación.
Se tiene las siguientes ecuaciones que pueden haber sido obtenidas
por cualquier método de minimización.
Fl - ACQE + ABD + ABCDE + ACDE + BCDÉ + ABDÉ + BCDÉ + ABCE
F2 - ABCD + ADE + ABDÉ + ABCD + BCD + BCE + ADE + ABCü! + ACE
Corresponden a funciones con cinco variables de entrada. La tabla
que se generaría será:
Fl
ACDE
ABD
ABCDE
ADCE
BCDÉ
ABDÉ
BCDE
ABCE
A.BCDE
0X101
10X1X
11100
1X111
XOOOO
01X10
X1010
001X0
VariablesEliminadas("0")
ABCDE
10111
11010
11111
10111
01111
11011
01111
11101
CombinaciónVálida
ABCDE
00101
10010
11100
' 10111
00000
01010
01010
00100
Tablaen decimal
V. el
23
26
31
23
15
27
15
29
Con V
5
18
28
23
0
10
10
4
Contenidode la Tablaen la EPROM
00170005
001A0012
001F001C
00170017
OOOFOOOO
0018000A
OOOFOOOA
001D0004
(a)
91
F2
ABCD
ADE
ABDEABCD
BCD
BCE
ADE
ABCDÉ
ACE
ABCDE
0001X
OXX11
01X00
1010X
X100X
X10X1
1XX01
uno0X0X1
VariablesEliminadas("0")
ABCDE
11110
10011
11011
11110
01110
01101
10011
11111
10101
CombinaciónVálida '
ABCDE
00010
00011
01000
10100
01000
01001
10001
11110
00001
Tablaen decimal
V. el Con V.
30 2
19 3
27 8
30 20
14 8
13 9
19 17 •
31 30
21 1
Contenidode la Tablaen la EPROM
001E0002
00130003
00180008 '
001E0014
OOOE0008
OOOD0009
00130011
OQ1F001E '
00150001
(b)
Fig. 3.18. (a) y (b) Tablas generadas para Fl y F2
92
Se usan los pórticos Pfí y Pl como lineas de entrada y los pórticos
P2 y P3 como salidas.
El programa ocupa la zona de EPROM desde 0000 a 005D que tiene una
longitud de 93 bytes, el byte que contiene el número de funciones -
del sistema es el byte 000A que en este caso está con un valor de
02.
Adicionalmente se reserva una zona de memoria para una tabla que con_
tiene las longitudes de las tablas de los términos de-cada función,
en el presente ejemplo la función Fl tiene 8 términos y la función'
F2 tiene 9 términos. La tabla de índices va de la localidad 005E a
la localidad 007D que representa una longitud de 32 bytes (hay esp_a_
ció para los índices de 16 funciones de salida).
( El resto de la memoria queda libre, a partir de 007E hasta 0FFF con
una .longitud de 3971 bytes, disponibles para ingresar las tablas de
las funciones. Como cada término ocupa 4 bytes el numero total de
términos que podrían ingresarse es máximo de 992, que sería la limi_
tación debida a la memoria interna del microcontrolador.
En otros ejemplos, cambiará' el byte 000A que es el número de fun-
siones y el contenido de las tablas. El resto del programa queda
igual.
Se realizó un cálculo aproximado de el tiempo de retardo que ten-
dría entre entrada y salida. Como promedio por cada término el prp_
grama requiere
93
504 Oscilaciones x número de términos totales
más 264 oscilaciones x numero de funciones
más 216 oscilaciones
En este caso será
504 x 17 + 264 x 2 + 216 - 9312 Oscilaciones
que con un cristal de 12 HHz nos da un tiempo de:
9312 osc x - - ="6uSeg
haciendo un cálculo, en el peor de los casos, con el total de la me_
moria ocupada y 16 funciones de salida, el tiempo requerido será
504 x 992 + 264 x 16 + 216 = 504786 oscilaciones del reloj
504786 osc x 12 x Q5C * 42 m seg
94
LISTADO DEL PROGRAMA FUENTE PARA EL 8751
The CyberneticPage 1
Micro Systems 8051. Family Assembler, Versión 3.02.
;CONTENIDO: TABLA DE PRUEBA1;ENTRADAS: 5 SALIDAS: 2
0000
0000 A8800002 A9900004 7A4B0006 9Q007EDE LA SOLUCIÓN0009 7B02
ORG OOHSALTOO :MOV RO,POMOV R1,P1 'MOV R23#4BHMOV DPTR,íf007EH
MOV R3,# 2
; INICIO DE SOLUCIÓN;LEER LOS PÓRTICOS DE ENTRADA
;OFFSET DE LA PRIMERA TABLA;INICIO DE TABLA DE TÉRMINOS
;NUMERO DE FUNCIONES DE SALIDA
OOOB 753000SALIDA
O O O E 753100
MOV 30H,#OOH ;IMICIALIZAR LOS REGISTROS DE
0011MINOS0012001300140015001600180019001A001B001C
EADE ESA83FCEAC3940583FDOAOAC200
001E BC00050021 BD00020024 8022
0026002700280029002A002B002C002D002E002F0030003100320035003600370038003B003D
E49359FE 'A3E49358FFA3E493B5060AA3E493B50705D2008001
MOV 31H,#OOHSALT01:MOV A,R2
FUN.MOVC A,@A+PCMOV R4,AMOV A,R2CLR CSUBB A,#G5HMOVC A,@A-hPCMOV R5,AINC R2INC R2CLR OOHSALT02:CJNE R4;ítOOH, SALTOSCJNE R5;ííOOH,SALT03SJMP SALTO?SALTOS:CLR AMOVC A,@A+DPTRANL A,R1MOV R63AINC DPTRCLR AMOVC A,@A+DPTRANL A,ROMOV R7,AINC DPTRCLR AMOVC A,@A+DPTRCJNE A,R6,SALT04INC DPTRCLR AMOVC A,@A+DPTRCJNE AtR7,SALTOSSETB OOHSJMP SALTOS
DETERMINAR EL NUMERO DE TER-
95
The Cybernetic Micro Systems 8051 Family Assembler, Versión 3.02Page 2
003F A3
0040 A30041 BD00010044 1C
0045 ID0046 80D6
0048 A200004A E530004C 33004D F530QG4F E5310051 330052 F5310054 DBBB0056 8530AOSALIDA0059 8531BO005C 80A2
SALT04:INC DPTRSALT05:INC DPTRCJNE R53#OOH,SALT06DEC R4SALT06:DEC R5SJMP SALT02SALTO?:MOV C,OOHMOV A,30HRLC AMOV 30H,AMOV A,31HRLC AMOV 31H;ADJNZ R3,SALT01MOV P2330H COLOCAR LOS RESULTADOS EN LA
MOV P3331HSJMP SALTOO¡INICIO DE LQ PRIMERA TABLA
005E 0008 0009 DW 8 , 9 , 0 , 0 , 0 , 0 ,0062 0000 0000 0000 0000 0000.0060 0000 0000 DW 0 , 0 , 0 , 0 , 0 , 0 ,0070 0000 0000 0000 0000 0000 0000007C- 0000
;INICIO DE LA SEGUNDA TABLA007E 0017 0005 DW 23 , 5 , 26 , 18 , 31
, O0082 001A 0012 001F 001C 0017 0017008E OOOF 00000092 001B OOOA DW 27 , 10 , 15 , 10 , 29
, 30096 OOOF OOOA 001D 0004 001E 0002OOA2 0013 0003OOA6 001B 0008 DW 27 , 8 , 30 , 20 , 14
, 1?OOAA 001E 0014 OOOE 0008 OOOD 0009OOB6 0013 0011OOBA 001F 001E DW 31 , 30 , 21 , 1OOBE 0015 00010000 END
28 23 23 15
30
13
19
19
96
The Cybernetic Micro Systems 8051 Family Assembler, Versión 3.02Page 3
;%T Symbol Ñame Type Valué
SALTOO L 0000SALT01 L 0011SALT02 L 001ESALT03 L 0026SALT04 L 003FSALTOS L 0040SALTOS L 0045SALT07 L 0048
00 Errors (0000)
97
CAPITULO IV
IMPLEMENTACION DE PROGRAMAS EN LENGUAJE DE ALTO NIVEL
4.1. CARACTERÍSTICAS Y REQUERIMIENTOS DEL HARDWARE .
Las características que debe reunir el Hardware para un correcto fun_
cionamiento del programa son las que siguen:
- Computador IBM ' PC (o IBM PC/XT, IBM PC/AT) o compatible.
El trabajo se ha desarrollado en un computador SANYO modelo MBC
885, compatible con los equipos IBM,
- El requerimiento de memoria del programa es de aproximadamente -
448 Kbytes.
- Un Monitor Monocromático sin capacidad de gráficos.
- Dos drives de diskette (5 1/4" - DSDD).
t
El programa puede funcionar con un sólo drive de diskette. Siendo
recomendable la utilización de un disco duro, o por lo menos dos
drives de diskette.
- Una impresora de 80 columnas normal, para trabajo con papel contj_
nuo.
98
Es importante si se desea obtener reportes impresos de la tabla de
verdad o de las diferentes opciones que ofrece el programa. El pro_
grama no hace uso de símbolos especiales.
- Como opción se puede utilizar un coprocesador aritmético (8087 -
80287), en cuyo caso se utilizan los programas que incluyen el nú_
mero 87 en su nombre.
- En cuanto al teclado, facilita mucho si se tienen las teclas de
movimiento del cursor separadas, pues se las usa en funciones es-
pecificas.
PROGRAMADOR
- Si se desea programar el microcontrolador, es necesario disponer
de un dispositivo con ese fin. En el presente trabajo se han rea_
Tizado las pruebas utilizando el programador AMS 2000, que consi_s_
te en una tarjeta a ser insertada en uno de los slots de expan-
sión del Computador, un modulo de Programación para el microcon-
trolador y el software apropiado.
- Puede ser necesaria una lámpara de luz ultravioleta para borrar '
la EPROM del microcontrolador.
4.2. LENGUAJES DE PROGRAMACIÓN USADOS
Al inicio de la ejecución del presente trabajo> se definieron cier_
tos requerimientos, para el mismo, algunos de los 'cuales fueron:
99
- Manejo sencillo
- De rápida ejecución
- Debe ser muy general
En un principio se empezó desarrollando el programa en lenguaje BA-
SIC, principalmente por su simplicidad y por ser de fácil utiliza-
ción. La rutina de ingreso de datos no presentó ningún problema al
ser irnplementada en BASIC, puesto que se requería un extenso manejo
de las operaciones de entrada/salida especialmente en la pantalla y
un procesamiento de la información más bien sencillo.
El Lenguaje BASIC ofrece un buen soporte de comandos con el fin de
facilitar la visualización de datos spbre la pantalla., asi como tam.
bien el ingreso de datos desde el teclado o un archivo.
La rutina de minimización también se la empezó a implementar en B_A
SIC.y es en las pruebas que se hacían conforme se desarrollaba esta
parte, que aparecieron graves problemas, debidos a la poca veloci-
dad de proceso del lenguaje, especialmente cuando se requería un
trabajo muy intenso. La mayor limitación constituye la capacidad -
de memoria que puede usarse en BASIC normal que es muy reducida (64
K para datos y programas) lo que obligaba a realizar una gran canti_
dad de operaciones con el disco, con la consiguiente degradación -
del tiempo de trabajo.
El proceso de minimización requiere una cantidad elevada de opera-
ciones a nivel de bit, principalmente comparaciones, comprobaciones,
operaciones lógicas AND, OR EXCLUSIVA, etc. que no son fáciles de im_
100
plementarlas en las versiones disponibles del lenguaje.
Ante las pocas facilidades que el BASIC ofrecía para la minimización
se vio la necesidad de un cambio de lenguaje y se pensó en el FORTRAN
el cual eliminaba la restricción en el acceso a la memoria disponj^
ble en el computador,pero no ofrecia tampoco las ventajas necesarias
en el trabajo a nivel de bit, siendo necesario la creación de ruti_
ñas específicas para este fin.
En el libro de Rhyne ( 2 ) se presenta un programa de minimización es_
crito en FORTRAN., con el que se realizó algunas pruebas que no fue_
ron satisfactorias. (Una tabla generada al azar de 9 variables de
entrada, se resolvía en aproximadamente 13 horas de proceso., utili-
zando inclusive el coprocesador aritmético para acelerar los cálculos).
Se sugirió el uso de un lenguaje más poderoso como es el lenguaje C,
sugerencia que fue acogida al analizar el excelente soporte que brin_
da el trabajo con bit, y los comentarios favorables presentados en
la literatura sobre el tema.
El "C" es un lenguaje de programación de uso general, con ventajas
tales como un control de flujo de programa moderno y versátil, es-
tructuras de datos ágiles y un set de operadores extenso.
El "C" no se considera un lenguaje de "muy alto nivel", puesto que
ofrece algunas características propias de un lenguaje de "bajo r\i_
vel" como son el tratar a caracteres, números o direcciones de una
manera similar a como lo hace el computador, no hay operaciones con
101
objetos- complejos como cadenas, arreglos, etc. Precisamente el mane_
jo de la información a niveles simples, le da versatilidad y poder.
Una carecterfstica muy especial del lenguaje es que no ofrece faci-
lidades de entrada/salida de datos, de hecho el 11C11 no tiene opera_
ciones de ese tipos cualquiera de estas debe hacerse a través de ru_
tinas en librerías que porporciona el fabricante del compilador, y
aun asi estas se hacen- a un nivel algo primitivo.
En cuanto a lazos, subrutinas, comprobaciones! el "C" ofrece todas
las facilidades de un lenguaje estructurado de "alto nivel".
Como contraparte, es necesario un mayor trabajo y un mayor cuidado
por parte del programador para usar eficientemente el l'C", Algunos
autores definen el "C" como un lenguaje de "bajo nivel" con estruc_
turas de datos y control de flujo de programa de "alto nivel".
La falta de rutinas en las librerías del "C11 para entrada/salida de
datos, fue un obstáculo para la implementaciÓn de la rutina de in-
greso de datos en este lenguaje. Es por esta razón que la entrada/
salida de datos al programa se prefirió dejarla en BASIC, mientras
que el proceso mismo de minimización se lo implemento en "C",
El lenguaje "C" eliminó las dificultades halladas con los otros len_
guajes, pues puede manejar estructuras de datos bastante grandes, y
las operaciones a nivel de bit son accesibles, todo esto complemen-
tado con una estructura propia del lenguaje más eficiente.
102
EV compilador "C" permite trabajar con varios tipos de modelo de me_
moría, es decir:
Modelo de memoria a pequeña escala, en los que el segmento de pro-
grama y el de datos no pueden sobrepasar juntos los 64 K.
Modelo de memoria a mediana escala, en los que el segmento de pro-
grama está limitado a 64 K, pero el segmento de datos puede tener
cualquier longitud.
Modelo de memoria a gran escala, en los que tanto el segmento de pro_
grama como el de memoria puede tener cualquier longitud, .
Al usar el último modelo, se tiene acceso completo a la memoria RAM
del computador, facilitando el proceso y acelerándolo.
El "C" permite,, al compilar el programa., incluir instrucciones para
usar un coprocesador aritmético, lo que representa una ventaja adj_
cional.
Ante todas estas características se seleccionó el "C" como lenguaje
a usarse en la implementación de la rutina de minimización.
La estructura del programa, entonces viene a consistir en dos módu_
los ejecutables, pero implementados en diferente lenguaje. Se ha
tratado en lo posible de usar productos de un sólo fabricante para
asegurar la compatibilidad de los módulos.
103
El'software que se usó es el siguiente:
ENTRADA DE DATOS
En el desarrollo del programa de ingreso de datos, se usó el siguien_
te intérprete BASIC
GW - BASIC 2.02
Microsoft Reléase 3.0
Luego se lo compiló con el -siguiente compilador BASIC
- IBM Personal Computer BASIC Compiler
Microsoft versión 2.00
- IBM Personal Computer Linker
IBM Corp. Versión 2.30
el que se lo utilizó con las siguientes opciones:
BASCOM / E / X /O. .
/E Opción que permite compilar instrucciones para detección/inte_r_
cepción de errores.
/X Opción que permite compilar instrucciones para continuar la eje_
cución del programa luego de un error.
104
/O Opción que permite incluir la rutina BASRUN 2$.EXE como parte
del programa,
PROCESO DE M I N I M I Z A C I O N
Para generar el listado del programa se utilizó el utilitario ED-
LIN.EXE que vi-ene en el sistema Operativo MS - DOS 3.10.
El compilador '€" que se utilizó es:
- Microsoft C Compiler Versión 3.0
Microsoft Corp.
- Microsoft 8086 Object Linker
Microsoft Versión 3.01
Se incluyeron las siguientes opciones;
MSC/AL
/AL Opción que indica al compilador que estamos trabajando en
un modelo de memoria a gran escala.
/FP-j87 Opción que genera instrucciones en línea para ser usadas
por el coprocesador aritmético (8087/80287).
105
PROGRAMA ENSAMBLADOR
En las pruebas realizadas se uso el programa
CYS 8051 versión 3.0
que es un programa bastante completo para trabajar con el niicrocon-
trolador 8751. Se usará del mismo el ensamblador,
En el trabajo, se ofrece la opción de generar un programa fuente -
para el microcontrolador 8751, el que puede ser ensamblado usando
este paquete de software, para obtener el archivo a ser usado por
el 'programados
Esta opción se la presenta a con el fin de que el operador pueda -
realizar los cambios que crea convenientes para darle nuevas carac_
terísticas al programa.
Puede también ser generado el archivo para el programador directa_
mente, sin necesidad del ensamblador lo que hace que no sea neces_a_
rio el uso del mismo y más bi.en se lo deja como una opción.
Para mayor información sobre cualquiera de los componentes del
po o los paquetes de software, referirse a los respectivos manuales,
.106
4.3. DIAGRAMAS DE BLOQUE
El trabajo, básicamente consta de tres partes esenciales, las cuales
constituyen:
- Ingreso de datos
- Minimización
- Generación del Programa para el 8751.
Las rutinas correspondientes al ingreso de datos, y el de generación
del programa para el 8751, se incluyen en un sólo módulo, el que se
lo ha desarrollado en lenguaje BASIC.
El módulo correspondiente a la minimización se ha desarrollado en
lenguaje "C". El enlace y transmisión de datos entre las diferentes
rutinas se hace a través de archivos, es por esta razón que en el s_i_
guiente diagrama de bloques, se colocan los módulos constitutivos del
programa y los archivos de enlace entre ellos.
Todos estos archivos son accesibles al usuario, incluyendo además de
que el diagrama que viene a continuación sería el proceso normal de
uso del programa, pero que puede usarse hasta el punto que uno desee,
obteniéndose los resultados hasta ese momento.
4.3.1. Ingreso de datos
. Es necesario que un programa presente todas las facilidades posibles
al usuario en la operación del mismo. Parte muy importante es el i_n_
DIAGRAMA GENERAL
107-
ECUACIÓN
IHGItESO DE
- BfilQS
PKOCESO DE
KINIMIZftCION
1
GENERftCION DELPROQfiftMñ
DEL 3751
TABLft DE UEKÍÍAD
TABLft BE UERÍñD
ECUftCIOHES :
KINimSftMS ;
PPOGRftHA FUEHTEDEL
8751
PROGEAKñ Etí FOR-HfiTO HEXftDECIMAL
I HIÉL
} EKSAHBLfiDOñ! DELj 8751
fpRGGRftHA EN FOR-
I HIÉL
ECÜñCIOHESPROGRfiMADíSEN EL 8751
loa
greso de datos.
Se ha diseñado el ingreso de datos de manera que sea posible hacerlo
de dos maneras: Por medio de la tabla de verdad de las funciones; ó
por medio de . una ecuación, pero escrita en una forma no normaliza,
da como las descritas en el Capitulo II. Cualquiera de las dos mane
ras que se elija para el ingreso lleva a obtener la Tabla de Verdad
de las funciones ya que sobre ésta se va a trabajar con los otros
programas.
Ambas alternativas ofrecen facilidades para el ingreso, edición y co
rrección, bien sea de la tabla o de la ecuación.
Una tabla de verdad que provenga de un número relativamente grande
de variables de entrada va a tener una gran extensión., por lo que el
ingreso de los datos puede que no sea posible hacerlo en una sola s_e
sión de trabajo, el programa debe tener la facilidad de permitir al_
macenar parcialmente una tabla para concluirla posteriormente.
109
DIAGRAMA GENERAL DEL INGRESO DE DATOS
IDENTIFICACIÓN DEÜHIDfifi UE BISCO 1ftRCHlUOS
ECUACIÓN TítBLñ
1
INGRESO/EDICIÓNDE LñSECUACIONES
1
GEHERftCKTftSLA A ILAS ECUftí
•
)H DE U^SIIK DE;IQNES
... • -i u . i
\EOJACI OH/
\S __J___Í INGRESO/EDICIÓN¡DE Lfl IfiBLfl BE
•
ALMñCEHftMIEHTODE LA lABLA EH
UN ftRCHIUO
ftL PROCESO D£HIHIKIZACION
110'
4.3..2, Proceso de mlnlmización
La parte más critica del proceso corresponde a la minimización de la
tabla, para llegar a las ecuaciones minimizadas. Se ha puesto espe_
cial atención en optimizar este proceso ya que es el que más tiempo
requiere.
Básicamente consta de dos partes:
- La primera parte corresponde al proceso de determinación de impli-
cantes primos (Referirse al Capítulo II). Para lo cual se usa el
método propuesto por Quine - McKluskey que ya se explicó. Este me_
todo se lo aplica hasta la consecusión de la tabla completa de i_m
plicantes primos. Se deja accesible al usuario un archivo que COJT_
tiene esa información con la finalidad de que pueda seguir un pro_
ceso de selección de implicantes primos diferente del usado en es_
te trabajó.
- La segunda parte corresponde a la selección de un conjunto óptimo
de implicantes primos, que'en este caso se realiza mediante el me
todo aproximado propuesto por R. Bowman y E. McVey. (3)
Al final del proceso se tendrían los términos de la solución de ca
da una de las funciones y como un resultado adicional intermedio
los implicantes primos.
Un diagrama de bloques de esta sección será:
111
DIAGRAMA GENERAL DEL PROCESO DE MINIMIZACION
A R C H I V O QUE COM-TIEHE Lfi 'TABLA BE
UERDAB
DETERñififlCIOH DELOS IHPLICAHIES
PRIMOS
ARCHiUO QUE CON-IIEME LOS IHPLI-CAHIES PRIMOS
AECH1UO QUE CON-TIENE Lfi TftBLft DE
UEIíDfiD
DETERMIHftClOH DEIMPPLICftHTES PHI-HOS ESEHCIfíLIS
PROCESO DE SOLU-CIÓN DE Lft 'IfiBLñ
CICLICñ
flLKñCEMflHIEHTOCE LA
' SOLUCIÓN
112
4.3.3. Generación del programa para el 8751
Esta sería la parte final del. presente trabajo, pues con los resulta-
dos obtenidos en las rutinas anteriores, se genera un programa que re_
suelva el problema planteado.
Se ha preferido dejar dos opciones a escoger:
- Generación de programa fuente en Nemónicos para ser usado luego con
un ensamblador.
- Generación de programa en formato Hexadecimal, que va a ser usado
directamente por el programador.
Básicamente el programa que va a ser implementado en el microcontrol_a
dor tiene una estructura similar para cualquier ejemplo, lo que varía
en todo caso es el contenido de las tablas de la solución.
La función esencial de esta rutina correspondería entonces al enlace
del programa generado con anterioridad, los datos y términos de la
solución para cada ejemplo particular.
113-
DIAGRAMA GENERAL DE LA GENERACIÓN DEL PROGRAMA DEL 8751
AKCHIUO QUECONTIENE EL HUME-RO DE FUNCIONES
GENERACIÓN DELPRGGP.fi KA DE
SOLUCIÓN
ñ E C H T U O QUE COH-IIENE TÉRMINOSDE Lñ SOLUCIOH
GEHSÍfiCICmBE LAS
' IflBLftS
CONCñTEHACIOHDEL PROGRAMA
LAS TñELÍlS
fiLKftCENAMIEHTODEL
PROGHñHft
114
4.4. DIAGRAMAS DE FLUJO
Rutina principal.-
Consiste en un programa "cargador", el que se encarga de ordenar la
ejecución de las diferentes rutinas.
En este programa se ha puesto especial cuidado en la detección de _e
rrores que pueden- producirse, principalmente en cuanto al manejo de
archivos. Antes de iniciar esta rutina se verifican la existencia
de esa rutina, si lo amerita, y todos los datos que va a necesitar -
la misma.
Se ha incluido como parte de la misma una rutina de impresión de re
sultados. •
Se analizará junto a los diagramas de flujo de la rutina principal,
los diagramas correspondientes a la generación del programa para el
8751 y la impresión de resultados.
Tanto la rutina de entrada de datos, como la rutina de minimización,
por su extensión e importancia se las describe más detalladamente -•
luego.
Cada una de las rutinas y subrutinas se las analizará por separado.
A continuación el diagrama de flujo de la rutina principal.
115'
DIRECCIOtíARR U T I N A DE DETEC-
CIÓN DE ERRORES
RUTIIÍADE INGRESO
DE DATOS
5,-
OPCIOHES
UOLUER AL INGRESO DE DATOSINICIO DE MIHIKISftCIOHGENERACIÓN DE PROG. 875ÍIMPRESIÓN DE RESULTADOSACABAR EL PROGRAHA
KUTIHñDE HIHI-
MISñCION
116
GENERACIÓN DEL PROGRAMA PARA EL 8751
Se han definido las opciones para generar el programa del 8751, la
primera es el programa fuente en nemónicos, el cual luego debería e_n_
samblarse para obtener el archivo que va a ser usado .por el programa_
dor, archivo que se encuentra en Hexadecimal (Formato INTEL).
También puede generarse directamente el archivo Hexadecimal, pero sin
obtener el listado del programa fuente, esta opción es muy útil si
no se dispone de un ensamblador.
Como el programa para el 8751. no.varía, puesto que lo que varía son
los datos de un ejemplo a otro, se puede generarlo simplemente colo_
cando en un archivo las instrucciones determinadas de antemano, in-
tercalando el número de funciones de salida y luego agregando la ta_
bla de valores de los términos de la solución para ese ejemplo parti_
cular.
Rutina de Impresión de Resultados.-
Se puede imprimir una de tres opciones:
- Implicantes primos
- Términos de la solución
- Listado del programa fuente
En los dos primeros casos la rutina es igual, varían simplemente el
encabezado y los archivos que contienen los datos, en el un caso se
117
RECUPERE INFORMA-CIÓN SOBRE
LA TfiBLA
í INFORMATIVO )
NEMONICO OHEXílDECIMAL
GENERE PRIMERAPARTE DEL PROG.EH NEKOMICO
INGRESE HUMERO DEFUNCIONE V GRABEEN EL PROGRAMA
GEHEIiE PBIÜEHñPARTE DEL PHOG,EH KEJíAJ)ECIHfiL
T
INGRESE HUMERO DEFUNCIONES V GRñBÍ
EN EL PKOGRfiKñ
GENERE SEGUHDflPARTE DEL PROG.EN HEMONICO
A B R I R A R C H 1 U O DESOLUCIÓN V GEH£-RE TABLAS.
GUfiRSE EL PROG,EH Uti ftRCHIUO
GEHEíffi SEGONDlíPARTE DEL PROG.EN HEWtDECIKAL
A B R I R A K C H I U O DESOLUCIÓN <í GENE-
RAR TABLAS
GUARDE EL PROG.EN UN ñ R C H I U O
noHÍtre.HEX
118
rá el archivo de imp l i can t e s primos y en el otro el a rch ivo de térmj_
nos de la solución.
Para el l is tado del p rograma ' fuen te , s implemente se t ransf iere la i_n
formación del archivo que contiene el p rograma, a la impresora.
119
IMPRESIÓN DE RESULTADOS
RECUPERE INFORHñ-CION SOBRE
LA TñBLfl
/ IHPRIHft ROTULO/ E INFORMACIÓN/ SOBRE Lfl TABLA
OPCIOHES(PñHTñLLPl)
1,-IMPLICANTES PHIMOSJ2.-SOLUCIÓN3."LÍSTfiDO DEL PÜOG.
FUENTE4.-TEHMINHR
ABÍÍIR flRCHIUO IH-BICE DE IHP. PRI-MOS, 'i ftHCH. J>E
IMPLICñHTESPRIMOS
fiBRIR ñRCHIUO ÍN-DICE DE SOLUCIÓNX ftSCHIUO DE Lfi
SOLUCIÓN
IKPRIHA
EHCfiBEZñDO
Ih'PRIHñ
IEHMINOS
120
\R ñROlIUO DEL
PROGRñHfi FUENTEDEL 8751-
IHPRIHIR
EHCflBEZñCO
REOJPERñíí LIHEftDE
121
4.4.1. Entrada de Datos
Al Iniciar el programa de Introducción de datos, una de las primeras
operaciones es recuperar el nombre del último archivo'de datos con
que se ha estado trabajando. Esta información se encuentra conteni-
da en el archivo ARCH.TRB que siempre debe existir en el drive que
contiene el disco de Programa.
El contenido del Archivo ARCH.TRB es:
- Unidad de disco en que esta la tabla de verdad (A,B.óC).
- Nombre genérico de los archivos que contendrán la tabla, resulta-
dos intermedios y solución.
A este nombre genérico se le colocará una extensión diferente de a_
cuerdo a su contenido, para poder manipularlos.
Identificado el nombre genérico, se pasará a un menú general de ope
raciones que deben incluir estas opciones:
- Entrada /Revisión de datos (la tabla ya existe).
- Crear una nueva tabla de verdad.
- Cambio de tabla de trabajo.
- Cambio de Unidad de disco.
- Impresión de resultados.
- Paso a la rutina de minimización.
- Cancelar el programa y volver al sistema.
122
Al seleccionar un ingreso/edición de datos, el programa requiere: in_
formación sobre la tabla de verdad. El archivo que contiene estos
datos se identifica con el nombre genérico, seguido de la extensión
. IXT (índice de la tabla de verdad).
Contenido de los archivos nombre .IXT
- Texto informativo sobre el contenido de la tabla.
- Numero de variables de entrada.
- Número de funciones de salida.
- Estado en que se encuentra la tabla (Completo/Incompleto).
- Ultima página ingresada de la tabla,
- Modo original de ingreso de datos (Tabla/Fórmula).
Parte de esta información se genera automáticamente al ingresar los
datos.
123
RUTINA PRINCIPAL DE INGRESO DE DATOS
DEFIHIS ARREGLOS
¥ VARIABLES
DEFINIR PflHTftLLACOHO DISPOSIIIUODE SALIM
/ T I T Ü L o X( IKFORMftTIUO ]\3>E ENTRABA /
SELECCIONAR LftUH106D BE DISCO
S>E DATOS
RECUPERE HOMBREDE ULTIKfi TñBLñEH QUE IRABftJO
HEKÜ BE OPCIONES
BE BfilOS2. -CREAR HUEUñ TABLA BE ÜERKI1>3, -CAMBIO fl OTRñ XA3L6 BE iJERDñ4,-IMPKESIOfí 5S TñBLñ DE UERDflDS.-CñKBIO DE ONIÍ/AB BE DISCO6.-ñCA£AB INGRESO DE MTOS
iINGRESE HORBREDE KUEUñ TABLA
DE UERDAD
/DESPLEGAR INS-\S P A R A )
N H I N I K I Z A C I O N /\ /
RUTIHñDE
IMPRESIÓN
ALMACENE EL HUEVOHOMBRE EH EL fiR-C H I U O ñRCH.IRB '
CERKftií ARCHIUOS
J.'»—""•>•" .
124'
RECUPERE DE flRCH.ÍNDICE ( , I X T ) IN-FORMACIÓN DE TAB.
UERIFICfiR SI VAEXISTE ESA TABLA
DE UEEDAD
INFORMATIVO
CONTENIDOft UAIÍI f tBLKS DE EHIKADAtt FUNCIONES DE SñLIDfiULTIMñ PñGIítoESTñDO BE Lfi TABLfiKODñLIDfiD DE IHGRESO
DE DñTOS
NO
r~/ IKGRESO DE DATOS
/-COHTEÍÜDO -ftlHI/ -8 FUNCIONES
L~CALCULO DE IKDICESÜLIIHfi PftGIHArOESTfl»0=wINCOMPLETft"
ALMACENE INFOR-M A C I Ó N EM ELA R C K I Ü O lí'JDICE
i
RUIIHf t DE EDICIÓN/ INGRESO
DE ECU ACICHES
OPCIONES /
1.- TABLfi DE UERDfiD /2,- ECUACIONES /3.- MENÚ ANTERIOR /
J
CDn~R U T I N A DE ESICION/INGRESO DE LftTABLA &E 'JEHDAD
125
4.4.1.1. Rutina de Ingreso de Datos como Tabla
El trabajo en la tabla de verdad se lo realiza en páginas, cada una
de las cuales tiene una longitud de 24 líneas que es el límite de la
pantalla usada, ya que la línea 25 se la usa para mostrar la ubica_
cicindelas entradas y las funciones. El número de entradas y el nú_
mero de funciones determinarán la cantidad de columnas en la panta-
lla y completan la conformación del archivo de datos.
Se ha seleccionado esta misma estructura de"págnna en el archivo que
contiene la tabla de verdad. Es necesario indicar que en este archivo
sólo se almacenan los valores que van tomando las funciones más no
las.combinaciones de las variables de entrada que se colocan en pan_
talla para información del usuario.
La tabla de verdad se almacena en un archivo aleatorio identificado
como nombre.DAT.
Estructura de los archivos nombre. DAT
Combinación,
de
Entrada
fi
f]
f2
f2
fn
L
fu
Pantalla
Página I
Registro iesimo que sealmaceno en el archivo
(Una Página de ¡a Tabla)
126
El numero de registros de ese archivo será el total de páginas que se
necesitan para completar la tabla.
Una vez que se ha recuperado la página desde el archivo, se la gráfi-
ca y se ha definido ciertas teclas que van a ayudar al ingreso de da_
tos en la tabla.
TECLA FUNCIÓN
(LEFT) Se cambia de una función a la de .su izquierda
(si la hay).
(RIGHT) se cambia a la función de la.derecha ( si Va
hay).
(UP) se cambia al término inmediato superior de la
tabla (si está en la pantalla).
(DQWN) se cambia al término inmediato inferior de la
tabla (si está en la pantalla).
INS (INS) cambia el valor de la función para esa posición,
se ha escogido esta simbologTa:
1 = verdad O = falso 2 = No importa
PGUP (Page Up) cambia a la página anterior de la tabla ( si
existe).
127
TECLA FUNCIÓN
PGDN (Page down) cambia a la siguiente página de la tabla (si no
hemos llegado a la última pagina).
END (END) se cambia directamente a la ultima página en la
que ya se introdujo datos anteriormente.
HOME (HOME) Se va a un menú que contiene estas opciones:
- Volver a la tabla en la página que se la dejó.
- Volver a la tabla a una determinada página.
- Acabar el trabajo en la tabla.
Al desplegar en pantalla la página de la tabla de verdad, es posible
moverse en.ella para localizarse en un lugar y realizar cualquier -
cambio.
Los cambios introducidos en el contenido de una página, se almacenan
en el archivo, cada vez que se realiza una operación que involucre
un cambio 'de pág.ina (se incluye el HOME).
Al seleccionar laopción de: acabar el trabajo en la tabla (luego de
presionar HOME), se actualiza la información contenida en el archivo
nombre . IXT, como ejemplo: la última página que se alcanzó; si se
completo el archivo, etc.
Al moverse en "la tabla hacia adelántense va alcanzando páginas que
128
RUTINA DE INGRESO DE DATOS COMO TABLA
CALCULO DE TERMI-NO MAXIHO ¥ PfiG.
INICIAL
ABRIR ARCHIUO CEDflIOS,DEFINIR N£-HOfílft IHIERMETUfi
CñLCOLO BE LftSCOMBIHfiCIOi"ÍES
RECUPERfiCIOH BSPAGIHA ?;E IñBLfi
DE UERBflD
IHCREMtMIEPUHIEROÜERTICAL
129
GUARDE LA PAGINAEN CURSO DE LATABLA DE UERDñD
LTIHft X N OPAGINA GE-
HERftWt
ACTUALICE REGIS-TRO BE U L T I H A PA-GINA GENERADA
PAGINA EH CURSOr U L T I M A PAGIHA
GEÍÍERADA
Lñ XSIPA-
GINA
GUARDE ESTA PfiGI-Hfl £IÍ EL ñRCHIUO
BS IñBLA
LIIHft X HOPAGINA GE-
NERADA
ñCTUALICE REGIS-TRO DE U L T I M A Pñ-GIHft GEtíERñM
DECREHEKTEIH5ICE DE
PAGINA
1
GUfiRSE LA PAGINí!EH CURSO DE LATABLA DE VERDAD
LIlMft X NOAGÍHA GE-
HERftM7
ACTUALICE REGIS-TRO BE U L T I M A Pft-GUÍft GENERADA
XÜLTI1ÍA\SI(FAGINA DE "X
X ?
*•••••! I ••>!' " I Ül »J|»l|fl»ir F^
I IfíCREHENTE' , PUNTERO DE
FAGINA
HO
DECREMENTEPUNTERO
HORIZONTAL
s BORDE X SIC DERECHO *
IHCRErtEIITEPUNTERO
HORIZONTAL.
130
RUTINA DE RECUPERACIÓN DE ARCHIVO
'^•
RECUPEREINFORMACIÓN
DESDE EL ARCHIUO
,___!_.CONFORME PAGINADESDE LA MEttOÍÍIAINTERMEDIA
\S /X? /
T '
ILEHftR LA PAGI-Hñ COH CEÍÍOS
RUTINA DE ALMACENAMIENTO EN ARCHIVO
INGRESO A Lfl HE-HOÍÍIfi IMIESHEDIADE Lft PftGIHft
COLOQUE Lfl INFOR-MACIÓN EH EL ftR-
CHIÜO
131
pueden haberse llenado con anterioridad, en cuyo caso se recupera el
contenido desde el archivo, pero pueden ser páginas en las que toda-
vía no se ha introducido datos y se les llena todas las posiciones
con ceros. Con las teclas definidas para trabajo en la tabla, se pue
den ir cambiando los datos.
El modo de ingreso como tabla de verdad se ha diseñado para ser la
forma primaria de trabajo, pero también se incluye a continuación la
facilidad de ingresar datos como ecuaciones.
4.4.1.2. Rutina de Ingreso de Datos como Ecuación
Si se ha seleccionado el ingreso de datos como ecuación, es necesario
que exista un archivo nombre . POR (ó que se cree) en el que se alma
cenan en forma de texto las ecuaciones.
Estructura de los archivos - nombre . FOR
- Primera Ecuación
- Segunda Ecuactón
- m esima ecuación.
Al ingresar una ecuación hay una serie de operaciones que se deben
realizar antes de pasar a su resolución.
132'
RUTINA DE INGRESO DE DATOS COMO ECUACIÓN
fiBRI» Í1ÍÍCHIUOPARA ALMACENARLAS ECUACIONES
DE FUNCIÓN-X =1 a H
IKGBESfiH
FORMULA
DETECCIÓN DECARACTERES
UfiLISOS
DETECCIÓN DE
COHSISTEHCIÜ
ftSIGHAH FEIORIDñDñ LOS SIGNOS DE
AGBUPftCION
RUTIKfi BE SDICIOH&E
EOJACIOliES
133
ASIGHftít VALORES ALAS
UA31IABLES
DE EOJftCIGNH -1 a M
ALKñCEHE Lñ IftBLft OB1ENIMEL ftRCHIUO.
UOLUEP. ALPÍÍOGHAHfiPRIMCIPÚL
134
1.'Reconocimiento de Caracteres Validos
Se han definido ciertos caracteres que representarán operandos, ope
radores o signos de agrupación. Fuera de este set de caracteres vá_
lidos, cualquier carácter será no válido y se dará indicación de
error. El set de caracteres válidos escogido (por conveniencia) es:
ASB,C3 , M,N Operandos (Variables)
+ • Operador OR
*- Operador AND
i Operador NOT
( ) Agrupación
No se permiten otros operadores} signos de agrupación o variables.
Como limitación adicional mencionamos: Se deben usar ordenadamente -
el nombre de variables, es decir si tenemos por ejemplo 3 variables
necesariamente deben usarse A, B y C; caso contrario se producen erro
res. También se indica que deben ser mayúsculas las variables.
El proceso de reconocimiento consiste en tomar cada uno de los cara_c
teres y compararlo con una tabla.
Simultáneamente en este proceso se detecta la posición de los signos
de agrupación para su uso posterior.
Si al acabar el proceso se tienen desbalanceados los signos de agru-
pación se reconoce como error. Toda la ecuación debe estar encerrada
entre paréntesis.
RECONOCIMIENTO DE CARACTERES VALIDOS
135
RECUPERE LA
ECUACIÓN
./DEL PRIhEK \K CARÁCTER AL >
\O /\JHP^™« i T-r ñ i i m\
LA POSI-CIOH V CQHIfiBILI-CE.
ÍÍECUPEÍIE CñfiACTEHCOMPARE COH TAEL+1CARACT.PERMITIDOS
ALMACENE LA POSI-CÍOfi y CONTABILI-CE.
IDENTIFIQUE EL
PP.IKO CARÁCTER
CASACTETt
KO BALIDO
136
IDENTIFIQUE£L ULTIHO
CARflCIER
COMPARE EL NUMEROSE Cfi HACIESES
"í" V ">"
-rV ! LA ECUACIÓN-w DEBE ESTñK ENTRE
PAREHIESIS
LOS PARENIESISES1AH
DESBAJ.AHCEADOS
UiWA A LA RUTItífiBE
EDICIÓN
137
2. Rutina de Detección de Consistencia
Para detectar consistencia se realiza el siguiente proceso: Se toma
un carácter y dependiendo de que tipo es (operando, operador o agru_
pación) se compara el siguiente carácter con una tabla de caracteres
permitidos.
Se ha determinado la siguiente tabla:
CARÁCTER TABLA DE CARACTERES QUE PUEDEN SEGUIRLE
( (ABCDEFGHIJKLMNi
+ (ABCDEFGHIJKLMN
* (ABCDEFGHIJKLMN
i ) + *
) ' . ) + * ! "
A,B,...S N ) + * 1
Si se tiene un carácter cuyo siguiente carácter no cumple con su ta
bla permitida, la ecuación no es consistente.
3. Rutina para determinar Prioridad de Signos de Agrupación
Consiste en aparear-los siqnos de agrupación y asignarles un orden de
ejecución que va-del más interno al más externo. El proceso se real_i_
za asT:
Se toma el paréntesis que se cierra ")" que se encuentra más a la iz_
quierda y se lo aparea con el primer paréntesis que se abre "(" que
encuentra hacia la izquierda, luego se toma el siguiente ")" etc. ha_s_
ta acabar.
138
RUTINA DE DETECCIÓN DE CONSISTENCIA
DESDE ELCARÁCTER
AL ULTIHÜ
RECUPERAR EL Cfi-RfiCIEJl, ¥ EL QUELE SIGUE
i RECUPERE LA TñBLÍií D E CftRftCIERES OUE
PUESEÍÍ SEGUIRLA
BUSCAR EL SEGUNDOEH IA
TABLfi
/"/ECUACIÓN(INCONSIS-V TENTE
UíWft A LA R U T I N ADE
EDICIÓN
139
RUTINA DE EDICIÓN
Si en cualquiera de las operaciones anteriores se detecta error, se
va a una rutina que permita realizar cambios en la ecuación.
Se despliega en la pantalla la.ecuación errada y.se-vuelven activas
estas teclas:
TECLA FUNCIÓN
•*}— (LEFT) moverse un carácter a la izquierda (si existe).
—»- (RIGHT) moverse un carácter a'la derecha (si existe).
DEL (DEL) borrar el carácter en la posición actual,
INS (INS) habilita/deshabilita el modo de inserción de carac_
teres.
A,Ba ,N coloca el carácter en esa posición, si esta hábili_
()+*! tada,la inserción, los caracteres a la derecha se
mueven, caso contrario el carácter en esa posición
en reemplazado.
-«—I (ENTER) finaliza el modo de edición.
La longitud máxima de una ecuación es 255 caracteres, lo que repre_
senta un poco mas de 3 líneas. La rutina, automáticamente realiza
el cambio de línea cuando 'sea necesario.
Una vez concluida la edición de una ecuación debe realizarse nueva_
mente los procesos de detección de errores, como caracteres válidos,
consistencia, etc.
140
RUTINA DE EDICIÓN
DESHftBILITEINSERCIÓN
POSICIÓN - 1
DESPLIE-GUE LAECUACIÓN
CALCULE CUftMIf tSLINEAS SE USANEN LA ECUACIÓN
ESPEKE UNA TE-CLA,Lft.
NO/ TECLACÍE eiCIOH
9
-^ IHS EífEER-4- BEL
HGUEH CURSOR UNAPOSICIÓN A .LA
DESECHA
HO X X SIINS.?
ñLHACEHE CAHACT,ti Lñ DEÍlECHfl DELñ POSICIOH
L
CfiRACT.A LA DERECHA BELfi FOSIC10ÍÍ
ñLKflCENE CARAQ.ft LA IZQUIERDA DELA POSICIOH
flLHñCEHE CfiHACr.DESDE LA POSICIÓNA Lñ
141
ALMACEHE LA CABE-KA A Lft DERECHABE LA POSICIÓN
ALHACEHE LA CflDE-Hfi ft Lft IEOUIERM]BE LA POSICIÓN
ELIHIÍíE EL CARÁC-TER V RECOHSISUtfftLfi CADElíñ
EL CURSOSÍ Ü H ñ POSICIOH ñ Lfl
j'ñLHfiCEHE Lft ECÜA-
CIOÍí n EDITADA
CAKBIE EL ESTADOBE IÜSERCIOH Hfl-BILITñD-VDESHfiB.
Tñ UKA
POSICIOH A LAIZQUIERDA
142
RUTINA DE SOLUCIÓN DE LA ECUACIÓN
Se debe en primer lugar generar las combinaciones de las variables de
entrada, partiendo desde cero a 2M, esto se realiza convirtiendo el
número a número binario y asignando las cifras a las variables en una
tabla.
Se toma el par de paréntesis más interno y los caracteres encerrados,
de izquierda a derecha se toman caracteres hasta encontrar un oper_a
dor o un paréntes-is, estas constituyen el primer operando y se lo al_
macena como tal, se almacena el operador (si lo hay) y si hay otro\r también,como sería el caso de tener una variable negada que
interviene en la operación. Ejemplo A! + B H> (A + B).
Luego se busca otro operando (si lo hay) y un posible operador de nja
gación del segundo operando. Con esto se pasa a -la rutina de solu-
ción de dos términos, ya que la ecuación se irá resolviendo tomando
operandos de dos en dos.
Con los operandos y operadores, se realiza este proceso: Se busca en
la tabla de variables los operandos y el valor asignado a ellos y lu_e
go se aplica las operaciones hasta tener un resultado 'parcial. Con e_s_
te resultado, se vuelve a buscar el siguiente operador y operando (si
los hay) constituyéndose como primer operando el resultado parcial a_n_
terior, aplicándose el procedimiento ya mencionado repetidamente ha¿
ta que no haya más caracteres entre los paréntesis.
El último resultado constituye el valor que torna todo el paréntesis, y
143
se lo Ingresa en la tabla de resultados, asignado a una nueva varia-
ble temporal que se genera automáticamente. En la ecuación original
se incluye la nueva variable temporal reemplazando a todo el párente
sis.
La generación del nombre de las variables auxiliares es así:
(A + (B * C i) * (C + D)
Variables temporales
se le asigna el número de orden en que se le tomó el paréntesis y el
resto de espacios se le llena con ceros. No hay problemas con los
caracteres ya que en el proceso de solución no se detecta la validez
de estos.
En evidente que al tomar los paréntesis más externos se obtendrá la
solución de la ecuación total, y es este valor el que se almacena en
la tabla de verdad como solución.
Para una determinada combinación de variables de entrada el proceso
de solución se lo aplica a cada una de las ecuaciones antes de prose.
guir con otra combinación.
El almacenamiento de resultados en la tabla de verdad se lo realiza
también con una estructura de páginas idéntica a la que se usa al i_n_
gresar datos directamente en la tabla.
Concluido el proceso para todas las combinaciones, es posible volver
al menú principal e ingresar a la tabla de verdad generada, para revj_
sarla o editarla.
144
RUTINA DE ASIGNACIÓN DE PRIORIDADES A LOS SIGNOS DE AGRUPACIÓN
-3-N'DEL PRIMER \" Vi
ftL ULTIHO /
RECUPERE Lñ POSI-EH QUE SE ENCUEN-TRA EL ")"
BUSCfiR HflCIf i LñDEKECHñ Ifi POSI-CIÓN DEL PRIMES
SEGUIR BUSCADOEL SIGUIENTE
145
RUTINA DE CONFORMACIÓN DE OPERANDOS Y OPERADORES
i IGft COMFORMflHSOEL
OPERANDO
x(INICIO )
_TLRECUPERAR
UECUACIÓN
DE PftRENT.HftS INTERNOS
ft LOS EXI,
8 OPERA&OB=i£ OPEÍÍANBO-1BORRE REGISTROSDE OPER, V OPEíí-RfiNDO.
RECUPERAR LOS Cft-RACTEJÍES EíiTRELOS PARÉNTESIS
/SEL PRIHEK-K CAHfiCTSñ
\L IÍLT1HO
HO-^OPERAD.
SI
ES "í"\í
SI
ALMACENE OHíñSOR(EN SOPERñDOR+2)
fiLHftCEHE OPERADOR<* OPEP.fi DOR)
SOLUCIWi 1>E SOSTERHINOSdrff t EXIS-TE RE3UL.PARCIAL)
2
NX
146
1
8BORRE HEGÍSTROSDE OPERANDO Ü2 !OPERHOOHES S2 V
ÍJ4
SOLUCIÓNng
•&OS TEKMIfiOS
(CREÍCREAR UñRIñBLE
ESTE RESULTADOLjÉJÉH I I 'Ti l -
H7
RUTINA DE EJECUCIÓN DE LAS OPERACIONES
/"—~"\i fUCIO )^•- i *S
SI/HíW—< RESULTADOXPARCIAL,X?
RECUPERE OPEKftHSlRECUPERE UALORASIGHflI'DO fi ES'JE
CAMBIE EL UñLOlíDEL
OPERANDO i
RECUPERE^ EL UftLOR fiSIGKñDO ñ ESTE
CfiHEIE El, UALOR íBEL
RECUPERE OPERi'iOOR'EJECUTE OPERACIÓNEHTIffi OPERfiHDOS
ñLHflCEHE ESTERESULIfiDO
PñRCÍfiL
148
RUTINA DE IMPRESIÓN DE LA TABLA DE VERDAD
3ESABILIIE PANTA-LLA COMO SALIDA
NORMAL
H A B I L I T A R IMPRE-SORA CORO SALIDA
HQRttñL
/ BOTÓLO IMFQR-( H A T I U O
(EN PANTALLA)\
IMPRESIÓN BE '/
KOIULO /
INIRO&UCTORIO/
IHPIíESIOH BE
TABLA
DE STATUS
IMPKESIOH DE
FORMULAS
OPCIOHESÍPflHlALLft)
1.- TODñ Lfi TABLA2.- PARTE DE TflBLfl3.- CAHCELñR
-P"
150
4.4.2. Minlmizaclón
Este programa consta de dos partes principales: la primera consiste
en la determinación de los implicantes primos según el método Quine
Mckluskey, y luego la selección de un grupo de ellos tendiente a mi_
nimizar el numero de términos en la solución, lo que se realiza me_
diante el método propuesto en (3 ).
El programa de determinación de los implicantes primos es un proce_
so que se realiza predominantemente en base a tablas. 'Debido prin^
cipalmente a la gran cantidad de operaciones que deben realizarse,
el tiempo de procesamiento es elevado, por lo que se ha decidido tra_
bajar directamente en la memoria de la máquina, sin operaciones de
entrada/salida a archivos^ debido a que requerirían mucho tiempo.
Esto obliga a tener una considerable cantidad de memoria disponible
para las tablas, ventajosamente el lenguaje usado permite el mane-
jo de la misma.
La estructura de cada tabla., se explica a continuación, para tal
fin suponemos un ejemplo, en el cual dos términos se unen para ge_
nerar un nuevo término de'nienos literales..
ABCD + ABCD - ABC(D + D) = ABC (se elimina la D) .
La representación de estos términos en las tablas será;
151
Término
A 6 C D
A B C D '
A B C •
Resto
1 0 1 0
1 0 1 1
1 0 1 0
V a r i a b l e sE l i m i n a d a s
1 1 1 1
1 1 1 1
1 1 1 0
A B C D A B C D
1 Presencia 1 variablede la va_ válidariable.
O Variable O variablecomplemen_ el i mina-tada o el i daminada.
En este caso la entrada es de 4 variables, pero cada uno de estos
campos tiene extensión de 2 bytes o sea máximo 16 variables. En el .
ejemplo anterior el resto de bits se llenan de ceros.
152
ESTRUCTURA DE LAS TABLAS PARA EL PROCESO
Tablas de Trabajo
1 toCOH 3 tbC03C 1 tatlX ] tbHK 3
i / \a de trabajo No.O Tabla de trabajo No.l
Tabla de I.R
V / \ \a de Resto Variables Resto Variables Resto Variables
rimos Eliminadas Eliminadas Eliminadas
Ibyto 2 byíes 2 byfos 2 byf es Z byíes 2b/t«s
te [OH ]
2bytes
teme ]
J \-LONG1TUD 16383 Registros LONGITUD 8192
153
Esta representación ya se analizo anteriormente en el Capítulo que
trata sobre el microcontrolador 8751.
Se tiene dos tablas de trabajo y según se adelanta en el proceso,
cada una de ellas pasará a ser Tabla de origen o Tabla de llegada,
el vector pr [ ]indica con un'"0" los implicantes primos de la ta_
bla de origen de turno.
Inicialmente se toma la tabla de verdad original y de ella se se-
leccionan las combinaciones de las variables de entrada que produ-
cen un "1" o un "2" (no importa), almacenándolos en la tabla 0 que
es con la que se empezara: el trabajo. Esta tabla se la llena en
forma adecuada, agrupando estos términos (mintérminos) de acuerdo
al número de unos que tienen en su estructura. Es importante re-
cordar que el proceso se lo va a realizar con cada función separa-
damente.
Con la finalidad de acelerar el proceso de llenar la primera tabla
para un grupo con un determinado número de unos, no se realiza la
búsqueda en toda la tabla de verdad, sino en ciertos limites que
se han determinado como zonas en donde es posible encontrarlos, e_s_
tos limites vienen dados por las ecuaciones:
límite inferior - 2nun - 1 límite superior - (2nun - l)2N~nun
donde N es el número de variables y nun el número de unos en la e_s_
tructura. Ejemplo para cuatro variables:
154
N=4
nun
0
1
2
3
4
2nun 1
INICIO
0
1
3
7
15
/?nun -j^N-nun
FINAL
0
8
12
14
15
0
1
2
3
4
5'
6
7
8
9 .
10
11
12
13
14
15
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
0
*
1
*
*
*.
*
*
*
*
*
2
*
*
*
*
*
*
*
*
*
*
3
*
*
*
*
*
*
*
*
4
*
«- nun
Zonas de búsqueda
Como se observa, en tablas muy grandes se acorta el tiempo de büs_
queda , pues ésta se realiza sólo en un segmento de la tabla de ve_r
dad original. (Rutina de Recuperación de la Tabla de Verdad).
Se incluye en esta selección los términos "no importa" debido a que
éstos se usan para formar grupos más grandes y por tanto con menos
literales.
155
DIAGRAMA GENERAL DEL PROCESO DE MINIMIZACION
DEFIHIR UflRIABLES
GLOBALES
RECUPERE HOERE DEABCHIUO DE TftBLfl
¡BE UERDft»
/BE .LA-KCIOH »i A\FUHCIOfi ftíl
ÍÍECUPEKñCIOH DE\U T A B L A • » £ UE»-¡DñD (REOÍ)
DETEÜMIKflCIOH DEIHFMCfiHTES PRI-HOS ÍPROO
OEHERfiCIOtl DE TA-BLfl BE IHPLíCAN-TES FRIHOSíUETñ)
DETECCIÓN D£ IHP.PRIMOS ESEKCIfiLES
fiSCHIUO DS LOSIHPLICñHIES PRI-KOS
SOLUCIÓN DE LA•XfiBLfl CICLlCfl
(RS1C)
• 1
ñSCHlUO DE TERttl-HOS DE LA SOLU-CIÓN
156
RUTINA DE IDENTIFICACIÓN / COMPROBACIÓN DE LA TABLA DE VERDAD (ÍDEM)
DEFINIR VARIABLES
LOCALES
RECUPERE EL AR-C H I V O RE TRABAJO
ARCH.TRB
RECUPERE ARCHIUOÍNDICE DE LA Tfl-'BLA BE UERDft»
RECUPERE TOI>A LAINFORMACIÓN BE LATA2LA DE UERDA5
RECUPERE EL HOM-BRE DEL A R C H I U OCE LA TABLA CE U ,
LA TABLA DEUERDAD ES
ACCESIBLE
ERROR; ÍÍO EXISTEÍHEL ARCHIUO
L
|ERJIOR;HO SE PUEBE>íHALLAR LA IñBLA
DE UERMS
ERROR: HO SE PUOE•«hlHIHIZÍlR Uíiñ TA-
BLA INCOMPLETA
ERROR:NO SE PUEDEACCESñR A LA TA-BLA DE VERDAD
157
RUTINA DE RECUPERACIÓN DE LA TABLA DE VERDAD (RECU)
DEFINIR LASUARIABLES
LOCALES
ABRIR flHCHIUO DEDATOS (LECTURA)
CfiLCilLQ !>£ PUNH-HOS PARA TABLA DELLEGADA
ERROR;HQ SE PUEDERECUPERAH LA TA-BLA DE UEJÍDAD
/ ' DE, nun-í A f!
CALCULO DE ÍNDICEBE EÜSQUE»ñ DE UTABLA ORIGINAL
JL
CALCULO DE ÍNDICESECOtiSARIO (HUME-RO DE PAG.) ,etc.
DE IKDICE\K INFERÍOH )
.AL SUPERIOH//
RECUPERE UALOR DELA TABLA DE IJEH-
DAD
158
s
CALCULE HUMERO DEUNOS EN ESfi POSI-CIÓN BE LA TñBLA
ALHACEHE EH TABLABE LLEGADA,ACTUA-LICE FÜNIEROS
ALHACEHE CfiHTIBftSDE HUEUOS TKKHI-NOS GEHERftDOS
CERJÍfiB
AHCHIiJOS
•159
4.4.2.1. Rutina de Determinación de los Implicantes Primos'(PROC)
El primer paso consiste en determinar cuál de las dos tablas de tra_
bajo va a ser la de origen y cuál la de destino, luego se identifi-
ca en la tabla de origen la zona que contiene las combinaciones con
un determinado numero de unos. Se toma el primer término de este
grupo y se lo compara con todos los del grupo inferior. La primera
comprobación es verificar si tienen los dos las mismas variables e_
liminadas, si no son iguales no se pueden combinar y se sigue con
otro término del grupo inferior. Si son iguales, se procede a cojr
tar cuantas variables cambian de estado en un término a otro. La ma_
ñera de hacer esto es aplicando el operador OR - EXCLUSIVO a los
términos y contando el número de unos del resultado. Los casos que
pueden presentarse al detectar el cambio de estado de una variable
son:
Estado anterior
Estado actual
Resultado QR-E X
0
0
0
0
1
1
1
0
1
1
1
0
Como se ve, esta operación es la indicada.
Si existe más de un cambio de estado, los términos no se pueden corn
binar y se sigue al siguiente termino del grupo inferior.
Si existe un solo cambio, se combinan los dos términos en uno sólo
colocando un cero en la posición de la variable que cambia de
do.
160
En la zona que Indica las variables eliminadas^ también se pone un
cero en la misma posición.
El resultado se pasa a la tabla de destino y se marcan con un "1",
en el vector indicador de Implicantes Primos las posiciones de los
dos términos combinados, indicando que éstos ya se han agrupado en
un grupo mayor.
El proceso continua, hasta acabar de comparar todos los de un gru_
po. con los del grupo siguiente., y así hasta acabar también con los
grupos. En la tabla de destino hay un nuevo grupo de términos.
En la tabla de origen se verifican todos los términos y aquellos -
que no estén marcados, son los que no se han podido agrupar para
formar grupos mayores, constituyéndose en implicantes primos y se
almacenan en la tabla de Implicantes Primos.
A continuación se borra la tabla de origen y se cambian las funcio
ness la tabla de destino pasa a ser la de origen y la de origen pa_
sa a ser la nueva tabla de destino. El proceso se vuelve a
tir, hasta que no pueda pasarse ningún término a la tabla de ^
no, en ese momento se han hallado todos los Implicantes Primos.
Los Implicantes Primos se guardan en un archivo nombre . PRI con
esta estructura:
Término Resultante (2 bytes)un término
Variables Eliminadas (2. bytes)
162
RUTINA DE DETERMINACIÓN DE IMPLICANTES PRIMOS (PROC)
DEFINIRUARIftBLES
LOCALES
LÓZQ
Ó
DEFINIR IftBLfl CEORIGEN '1 DE BES-
TIMO
i
/BEL PRIMER«GRUPO AL ?E-\O
CALCULE ÍNDICESPUNTEROS BEL GRUPO SUPERIOR
/mi LIHIIEINFERIOR AL
SUPERIOR
RECUPERAR TERMINO| DEL GRUPO SUPE-- RIOR
CfiLOJLEPUNTERO DE GRUPO
INFERIOR
BEL LIMITEINFERIOR f lL
SUPEHIGR
RECUPERAS IEIÍMIHODEL GIÍUPO
ItffERlOR
1
163
XX.2
J
COHPARIE L I M I K fLOS TEI
HO X
^
CALCULiU f t R I Í
CfiMBIfll-i
SI/^
\i
HUEVO, íRIAELE
-MARCAH
:Hos oy;| COHj
BUSQUEH'O TE8Í
EXIS*
SI X
^
TERHIH:DE DK
í
í
CAHBI05H J7 /
yñ\?
HO
EL
164
ftLHACEHE HUEUOSÍNDICES DE TABLABE DESTINO
SEL INICIODE TABLA ORI-
RECUPERAR Lfi MñR-Cíi DE NO PRIMO BE
CñÜfi TEEMIHO
ALMACENE TEBHIMO•EH TñBLÍi PRIMOS
PütiTERO
CñLCDLE CUANTOS'TEHHIHOS HUEUOSSE GENERARON
IHIERCAHBIO DEFUNCIÓN DE LñSTABLAS DE TRABAJO
ORÍ GENO DESUNO
165
4,4.2.2. Resolución de la Tabla Cíclica
El siguiente paso en la solución consiste en seleccionar un grupo
óptimo de implicantes primos, tal que cubran todas la combinaciones
que tienen asignado un "1".
Es importante indicar que el método planteado no garantiza el obte_
ner la solución mínima, sino una buena aproximación a la misma.
El trabajo para hallar la verdadera solución mínima puede llegar a
ser enorme y es posible que el ahorro en costo de la solución no re_
presente el incremento en tiempo. (El método para hallar la solu-
ción mínima será el tomar todos los implicantes primos, realizar to_
das las combinaciones posiblesj tales que lleven a la solución y de
estas escoger la de mínimo costo).
En realidad el método propuesto, plantea la generación de una tabla
en donde se tengan en las filas, los implicantes primos y en las cp_
lumnas los términos originales de la tabla original. En las inter_
secciones, se pondría un "1" si el P.F (Producto Fundamental) está
incluido en el I.P. (Implicante Primo) 6 un "0" si no lo está.
La tabla generada puede llegar a ser grande, tal que no quepa en la
memoria disponible (Ejemplo 4000 P. F. y 100 I. P. generarfan una
tabla de 4 x 105 bits - 50 Kbytes).
Es por esto que se usará una estructura tal que en un vector se al_
macenen los P. F. y en otro los I. P. y en el proceso si es necesa-
166
rio verificar si se contiene, se analizará en ese momento.
La estructura de los vectores es similar a'la del proceso anterior ,
por lo que usaremos las mismas tablas, la tabla 0 almacenará los
P. F. y la tabla 1 almacenará a los I. P. La tabla C guardaría
el resultado.
Al llenar la tabla de P. F. se toman de la tabla de verdad origi-
nal > todas las combinaciones que estén asignadas un "1" y se dejan
las marcadas "0" 6 "2" (no importa). No se debe tomar'en cuenta
a las no importa ya que estas combinaciones pueden ser cubiertas o
no, lo que equivale a que puedan tener cualquier valor,
La primera operación es determinar si algún P. F. es cubierto por
sólo un I. P., en tal caso el I. P. debe estar en la solución ya
que de otro modo no se puede cubrir el P. F. A este I. P. se le
denomina Implicante Primo Esencial (I. P. E.) y forma parte del re_
sultado, siendo almacenado en la tabla correspondiente y elimina^
do de la tabla de I. P. junto con el P. F. que cubre.
Cuando ya no quedan más I. P. E. se ha llegado a una tabla cíclica,
a la que se aplica el método de Ramificación parcial3 ya estudiado.
El método se aplica hasta que todas las columnas (P. F.) queden cu_
biertas, en cuyo caso se habrá llegado a la solución.
La solución es almacenada en un archivo nombre. SOL y con un archi-
vo índice nombre. IXS.
168
RUTINA DE CONFORMACIÓN DE LA TABLA CÍCLICA (LLETA)
VARIABLES LOCALES
IDENTIFIQUE ELA H C H I U O SE TA-BLA DE VERDAD
RECUPERE CONTENÍ-,3)0 DE ifiBLn Klüñ
ESE HUMERO
HO
ALMACENE EN TftBLflACTUALICE
PUNTEROS
RECUPERE Lft TA-BLA DE IMPLICAN-
TES PRIHOS
ERROR,HO EXISTE
ESE ilKCHIUQ
169
RUTINA DE DETECCIÓN DE IMPLICANTES PRIMOS ESENCIALES (RDIPE)
BEFIHIR
UftRIABLKS LOCALES
COLUHKft ~ IAL ft P.F.-
( RECUPERES EL PÍÍOBUCTO
FOHBñHENIñL
rK FILfl - 1\L ít I.P.
rI RECUPERE I.P. US- i
H í r í Q Ü E SI I.P. !AL P.F.
UEBIFICAR SI I.P.SE Hft HñHCñDO CO-I.P. ESCEKCIfiL
SE na X siHARCflDO >—
ALMACENE 8 FILfl E¡HCHEHEÍHE CONTA-DOR CK QCURHEHCIñ
HftSCAR EL P.F,COMO yñINCLUÍ DO
170
ftLHflCENEEL HUMERO CE
OCUFRENCIfiS
KññCñíí I,P. COMO"ESCEHCIñL V ftLHfi-CEHE M SOLUCIOÍ1
L
171
RUTINA DE ELIMINACIÓN DE COLUMNAS CONTENIDAS EN LOS I. P. E
BECOLUHító = 1
AL * P.F.
'JERIFICAHSI Lfi COLUKHñSE HA MARCADO
DESDE 1AL HUHEBOBE I.P.E.
RECUPERE I.P.E. VUEííIFIDUE SI CON-
TIENE flL P.F.
172
\E 1ftL tt I.P,
UEIÍ IFIOUE SI ELI.P. ESTft MASCADO
COMO ISCENCIAL
REl
Lfl
{
RUTINA DE SOLUCIÓN DE LA TABLA CÍCLICA
173
( I N I C I O )
IDEFINIR
UftlUABLESLOCALES
DE INC = 2ftL HUMERO DE
I .P.
DESDE iAL HUMERO DE
P.F,
RECUPERE EL HUHE-RO DE OCURBENCIfiS
Di ESA COLUMNÍ)
U E R I F I Q U E SI LñFILA COHTIEHE A
£Sñ COLUMNA
Ll
174
ALMACENELft POSICIÓN
DE Lrt FILrt K
PROBABILIDADDE ESA FILA = 0
DE IC2 = 1< AL ft 1>E P.F
U E J Í I F I O Ü E SI I .P ,COHTIEHE AL P.f.
*3
175
IHCREHEÍíIICOHIñDOH
RECUPERE HñX,PRO-BABILIDAD ^ COM-
PARE
HOMflVOR Lft)
OBTENIDA/? X
ALHftCENE HUEUfiPROBñBILIDñl) MfiX.
¥ Lñ FILñ
HflRQUE FIM « íiL-HñCttiELA COHO PARTE DE SOUiCIOHRECUPERE EL I.P.BE ESñ FILft
<DE IHC2=I ftL )-KDE IHC2=I ftL\i U£ P.F.\E
EL P.F.
UEP.1FIQUE SI ELI.P. COK!IENE
AL P.F,
XX3
176
HAÜQUE LACOLUHNñ
RECUPERE CONTfiLGE(CQHCOLUHHflS SIH
/X7
"T
^ .
...177
CAPITULO V
RESULTADOS
Introducción.-
En el presente capítulo se incluyen algunos ejemplos, principalmente
con la finalidad de comprobar el funcionamiento del programa y la va_
1idéz del algoritmo en el implementado.
Es muy importante conocer las limitaciones reales del programa, que
se desprenden de la estructura del mismo. Se hace un análisis de es_
tas limitaciones y su efecto sobre las aplicaciones.
5.1. EJEMPLOS DE APLICACIÓN
Ejemplo 1
El presente ejemplo se va a resolver de tres maneras:
- Manualmente, usando un algoritmo igual al que se implemento en el
programa.
- Mediante mapas de Karnaugh.
- Por el programa.
Para este ejemplo, se ha seleccionado una tabla de verdad al azar,
182
ESCUELA POLITÉCNICA NACIONALFACULTAD DE INGENIERÍA ELÉCTRICA
DEPARTAMENTO DE ELECTRÓNICA V CONTROL
TESIS DE GRADO AGOSTO DE 1987
AUTOR; PATRICIO IVAN CHICO HIDALGO
DIRECTOR: ING- FERNANDO FLORES CIFUENTES
TEMA" RESOLUCIÓN DE ECUACIONES BDOLEANAS USANDOEL MICROCONTROLADOR INTEL 8751
PROGRAMA DE INTRODUCCIÓN DE DATOS
CONTENIDO: TABLA DE PRUEBAEL NUMERO. DE ENTRADAS ES NI-EL. NUMERO DE SALIDAS ES M= 1ESTADO DE LA TABLA: COMPLETOULTIMA PAGINA: 2MODO DE INGRESO: TABLA
183
P A G I N A 1
0i
f?
-r
45ír>7a9
1 011121314151617-1819T'1 f "'i
'2122'*? ' ;:'
)EC
O0.00000000000000111111i1A
00000o001i11111100000000B
00001111000011110000111ic
u01J.00110011001100110!J
J.10
u1010i010i0i0.101C)1010i01E
1000111of"1
01001101011003.11
1 1 O O O1 1 O O 11 1 O :i. O1 1 O 1 1i i J. o o1 1 1 0 11 1 1 1 O1 1 1 1 1A B C D E
184
ESCUELA POLITÉCNICA NACIONALFACULTAD DE INGENIERÍA ELÉCTRICA
TESIS DE SRADOs RESOLUCIÓN DE ECUACIONES BQQLEANASUSANDO EL MICROCQNTROLADOR INTEL 8751
CONTENIDO DE LA TABLA:TABLA DE PRUEBA ENTRADAS: 5 FUNCIONES:
TABLA DE IMPLICANTES PRIMOS
FUNCIÓN NUMERO: 1
TESIS DE GRADO: RESOLUCIÓN DE ECUACIONES BDOLEAMABUSANDO EL MICROCONTROLADOR INTEL 875.1
CONTENIDO DE LA TABLA:TABLA DE PRUEBA ENTRADAS: 5 FUNCIONES: 1
TÉRMINOS DE LA SOLUCIÓN
FUNCIÓN NUMuROs 1
185
ESCUELA POLITÉCNICA NACIONALFACULTAD DE INGENIERÍA ELÉCTRICA
'ESIB DE GRADO RESOLUCIÓN DE ECUACIONES BQQLEANA5USANDO EL MICRGCÜNTROLADOR INTEL 9751
CONTENIDO DE LA TABLA:TABLA DE PRUEBA ENTRADAS: 5 FUNCIONES: 1ST1TLE ESCUELA POLITÉCNICA NACIONAL FACULTAD DE INGENIERÍA ELECTR
íüSUBTTL MINIMIZACIGN DE FUNCIONES BOOLEANAS CON EL MICRDCQNTROLADOR INTE';ARCHIVO: PRUEBAjCONTENI DO: TABLA DE PRUEBA
5 SALIDAS: 1
INICIO DEL PROGRAMA DE SOLUCIÓNLEER LOS PÓRTICOS DE .ENTRADA
OFFSET DE LA PRIMERA TABLAINICIO DE LA TABLA DE TÉRMINOS DE LA SOLUCIÓNNUMERO DE FUNCIONES DE SALIDAINICIAL I "ZAR LOS REGISTROS DE SALIDA
;DETERMINAR EL NUMERO DE TÉRMINOS DE ESA FUN.
ORG OOHSALT00:MOV RO,POMOV R13P1MOV R2,#4BHMOV DPTR,i*007EHMOV R3?# 1MOV 30ÍV!K)OHMOV 31H?=»OOHSALTO 1:MOV A,R2MuVC Á..3A+PCMOV R45AMOV A..R2CLR CSUB13 A,')K)5HMOVC A,S)A-i-PCMOV RS,,AINC R2INC R2.CLR O OHSALT02:CJNE R4-, ttOOH, SALT03CJNE R5,ttOOH,SALT03SOMP SALTÜ7üALT03:CLR AI-IÜVC A,3A-l-QF'TRANL A,R1MOV R6,AINC DPTRCLR AMUVC A,3A+DPTRANL A,ROMOV R7?AINC DPTR
186
CLR AMOVC A,S>A+DPTRCJNE A:, R6., SALTO4INC DPTRCLR AMGVC A,5>AH-DPTRCJ¡\!£ A,R7,SALTOSSETO OOHSJMP SALTOSSALT04:INC DPTRSALTG5:INC DPTRCJNE Rt;i, t-OOH;, SALTQ6DEC R4SALV06:DEC R5SJMP SALTQ2SALT07:hiüv CJ.QOHMOV AL13OHRLC AMOV 30H?ftHQV A,31HRLC AMOV 31HSADJMZ R3,SñLTÜlMOV P2p30H ;COLOCAR LOS RESULTADOS EN LA SALIDAMOV P3P3iHSOMP SÁLTOO;INI CID DE LQ PRIMERA TABLAbw s ;1 o , o ? o , o ? o 3 oDU] O , O , O , O „ O , O H O , O , O;INICIO'DE LA 8É8UNDA TABLA'D W 23 y 5 ? 26 3 1S ? 31 , 28 , 23 , 23 , 15 , ODW 27 y 10 , :L5 , 10 ? 29 ? 4EMD
187
Ejemplo 2
La posibilidad de comparar los resultados obtenidos usando este pro_
gramas con resultados obtenidos por otros algoritmos, nos ofrece
un mecanismo adicional de evaluación. Buscando información para el
desarrollo de este trabajo, se encontró' un programa para resolver
una ecuación Booleana en el libro de Rhyne (3). El programa se ha_
bía escrito en FORTRAN^ y tenía capacidad de manejar hasta diez va_
riables de entrada, y una sola salida. Se implemento este programa
con la finalidad de poder efectuar una comparación con el trabajo
realizado; la rutina fue compilada usando FORTRAN 77.
Se generaron al azar tablas de verdadt de varias variables de entra_
da y una salida, y se las resolvió usando el método de Rhyne; el
tiempo de proceso requerido fue sorprendentemente largo, conforme
se aumentaba el número de variables de entrada y es asf como para
una tabla de 4 entradas, el tiempo de proceso es de segundos, pasan_
do a ser de minutos al incrementar las entradas a cinco o seis va-
riables. Se llegó a probar el programa con una tabla de 9 varia-
bles de entrada, obteniéndose un resultado poco satisfactorio pues
el tiempo de proceso era de aproximadamente 13 horas, que es excesj_
vo. Es importante recalcar que para estas pruebas se utilizó el
coprocesador aritmético 8007.
A continuación la misma tabla de 9 variables» se la ingresó al prp_
grama implementado y se procedió a minimizarla; el tiempo que tardó
en encontrar la solución fue de aproximadamente 2 minutos. Los re_
sultados obtenidos por el programa de Rhyne fueron los siguientes:
--188
- Halla 395 implicantes primos.
- La solución consta de 67 términos.
Al resolver la misma tabla por el programa implementado en este traba_
jo , los resultados fueron:
- 404 implicantes primos.
- 67 términos en la solución.
El numero de implicantes primos es menor en el primer caso puesto que
el método utilizado por Rhyne no encuentra todos los implicantes pri_
mos, mientras que éste programa si lo-hace.
En cuanto al número de términos de la solución, los dos programas ge_
neran el mismo número. No interesa en esta aplicación el numero de
literales en un término, puesto que el procesamiento en el microcon-
trolador se hace con todas las variables a la vez.
No se puede garantizar que el método planteado en este trabajo lleve
al mínimo, ni tampoco hubo forma de comprobarlo, ya que la resolución
por el mapa K no es práctica para más de 7 variables. Por otro lado
el programa de Rhyne, se basa también en un algoritmo que no necesa-
riamente llega al mínimo. •
A continuación se presentan los resultados obtenidos al resolver esta
tabla con el programa implementado.
No se incluye la tabla de verdad, puesto que es demasiado extensa y
189
no aporta con nada útil a la comprensión del problema, en cambio se
ha incluido el contenido del archivo de datos como guia, Adicional-
mente se presenta el listado de los implicantes primos y los términos
de la solución.
Se recuerda que la nomenclatura utilizada es:
X Variable eliminada (no aparece en la solución).
1 Variable presente en el término.
O Variable presente en el término, pero negadov
CONTENIDO DEL ARCHIVO DE DATOS
211112O02 i 1010110011110021OO21OO1120202001211011100012211112O02012O20122221011O102011O210121011102202022201O2000110201120211O1OO1102OOO1121 i 11112101020121022O22222120020120111111012OOO20021120112001OOO112211122211121101022OO1OO11í 2122211120100220010101OO101 121O112110220121 1 1Q112201OOOOQ21Ü1:1101111211110212011ÍO211020112201 i 20O2011001111201021121200011111000102121200021111OO021020120120O211OOO1101111OOO211101012122220010212102022012221102OOO1211221OO02110121201202111111111O121221OO211O212220000111202211OO211o o o o o o o o o o o o o o o o
190
ESCUELA POLITÉCNICA NACIONALFACULTAD DE INGENIERÍA ELÉCTRICA
TESIS DE GRADO: RESOLUCIÓN DE ECUACIONES BOOLEANASUSANDO EL MICROCONTRQLADüR INTEL 8751
CONTENIDO DE LA TABLA:TABLA DE PRUEBA ENTRADAS: 9
TABLA DE IMPLICANTES PRIMOS
PUNCIONES: 1
PUNCIÓN NUMERO:
ABCDEFGHI0011 1OOOXUüOOüXXOUOOOOXOO1XOOOOX X 10000X001X00OOXOXO01100001 X10XOXOX 1 1000XOOl 1XUOO0010XX001X010O10XO0101000 XX10 OOOOX XI1X0X000101XX010000XX00101O1XO01010X1X 00 101 01 XXOOl :!. 100X00100X1X10X11001X00.1X0X1 10001 01 XX 1OO01 1X10X00100X01 0X11O01010XX1001 ÍXOOX1 1XX000011 1X1000OXOOX1 1O1 IX0010X11X100101X1 IXOO 1 0 1 1 X 1 XOO1110XX1010X1X011X1X101Ü01XI XI 101000110X110X01110X10X01 1 101XXO10X100X111 XX 1010011X0110X10
A8CDEF8N111.10O1XOO000X00X00OOOXOXO1 OOOOXOX1OOX 00001 XOO0X00X0011 •XOX010100OOX lOOX 1 W
oXXl looouOX1OX0001001XO1XOOX 1010000 X10000X0X11OOX0100X101000 XOX00X011X01XX01O1001000 I 101 XXXOOl 1 10X00010X1X010X1 101OXOXI 00 i 0X0101 01 IX XOOoí 1 1 oxxoo10XX1O010100 101 XOX .101X000X11 1X000X101 lixuuoxo00X1 11OX10X1 OO1 1X100 1011 XXI001X1 101 XX01 1100X1Oí XX 100110101X1 10X.01 1OXX10101101X10X01110X1X01X0 XOO 11 110X1010X110X10110X10X11X100
ABCDEFGHI• oouoOoXuXOXOUOOOX1XouuXOüluOOOXX0100100XOXOOOXOOOX0101000011 XOXQOXIOOIXO001000 XXI00 1001 XOXX10010OOXX1X10OOQO1000 XX 001100X01X001010X0X0000X1X0110O00101X1XXX01 10100XX01110000X1001 1OX0X1 101X0001X01 1X00.01 10XOXO11 OOOOX XI 110001 01 XX1001 X.100X1O1O1XOOX1 1XXO001000X1101X100X1 1101X0X10X1101X0101 10X1X0101101X0011 1XXO101X100X11X 101 100 XI011X0X101XI 1X10100Olí 101 OXX10X0011 IX10X101X0110X1X1100101001 XIX
ABCDEFGHIoooooxoxoooxxooooiOOOOX 010Xooxoomxo10XXOOOLH.)uoAuxioolOOOX1 100X0X01 1XOOO0010X00X1001X010X0010X 1 XOOOXI 1XOOOOO
1X0000X101X001OOOXOXXO10011OO01X10X1O001X1O1X0001110XX0010X0X11OX1010GX1010X00X11XI 010X00101 1O1XXOO100 XOX 1 1010XX 101001X010100X101 10OOXX1 1O10XOOXX 0X11 0 1 0 10010XX111OO 101 XX 11001X11X010X1 1001 IXX01 110X0101X1X0011X 101 Í X 1OO011X010X10111001XX01 1101 XOXixoxibiio10X1X100110X110X011X1X10100
^
j-^.
M-
J-L.
>J-
H^
H--
i~-
X
X
X
X
H^
v-
H=-
M-
O X
O
O
" O
O
X
X ^
f-4
- X
X
O
X
O
í-4
- O
O
O
O
X
X
X
.-
i-1 x
i-*
x
i-4- x
x x
v-4
i-
i-1 x
x x
O x
^ ^
i-1-
H^
o O
x x
x o ^
' x
x x
o
M-
x x x
O
o ^
•<-
t-1 X
X
M
- *-
*•
M-
i-1 X ^
O
O
X
v-
5- X
X
O
!~
4 X
O
X
™
X x X
O
X O
O O
O X
O
O O
X
o
O
X X
t-i
K* M
- x x
;-•
x
i-j- í
-1 o
x
o
M- x
^
x
—
•"•X
(-*
• X
i-
1 X
i-<
- í-
1
X
í--
O
^
X
i-
1
i~*
v-^
!-=•
vj. O
X
X
X
^ x
X x
x
M-
-n-
i-1-
M-
t,« x
O O
O O
x
x
i-4
í-4-
x
>; o
x
'._•'
í-4-
'._.'
O '
._.'
O x
x
x
.=->-
i--1 Q
i-j-
i-
M
- M
. f-i
I-L Q
O x
o
x
x
'-L<
V-
A ^
i-. x x X
O X
s-
1 ^
¡ í
O O
X X
X O
'
X
X
X O
M- x X
X O
O
' ^
I-
1 i-
1
:— ^
X
X
X
í-
i-
1 í
X Q
>
J
< ^
O O
x ^
x x
o ^
x
O >
:!-•
• -
O O
X O
^ O
O
X o
O
O O
O O
O
*-* ^
i-1
'--1- x
í-*
- v-
* x ^
H^
s-4
x
¡-1 H
* M
->
O x
O
O O
i-1 x
r>
o
x
x
o
x
x
*-*-
O *
-*• x
O x
O
H1 x
x
x
¡-=-
O x
x
o
s-1
(-'•
X
-r >;
x
!Jv
J-*
i-1.
i-L.
!-=•
¡-J-
o
M-
'-t
O
x-1
í-1 O
X
O s
-j- x
t-*
- X ^
O O
O
- X
O
O
O
h~ X
x
O
O
O X
X
X
O
O O
O ^
X X
!->
• ?-=
• O
O
H--
O O
X
x
O X
i-1
i--
O
• x
i-"
M
- i-1
>:
o o
í-*
- x
M
- i-*
x
O i-
4- x
t-s
- O
x
O O
x
o
!-L O
Q x
x
o O
O V
J~ ^
í~í
~ x
O J
-1 t
-1- O
O
O
O i
-4 M
O x
x
-L M
- I_
L i-1
- M
- X
M
- O
x
X
O X
X
X
r--
- v-
1
-,-=•
X
O X
O
O
^-
O X
O
O
X
G
X
O ^
X
O
H
* X
¡-
X
h^
X
H
^ X
'^
X
r-
^ ^ ^
••-
>•
XX
X O
O
O
X
X
X
X
M.
u-
i_L
x
X X
O
O
O
O
i-i
-O
O
O O
X O
X
i-*x x x O
xX
x
X i-'
*-=• O
C O
X X
x
x
O O
O O
x
i-* x
x O
•-*
* --
-k
-*X
O
O O
O O
X X
X
í X
X
i-
1
'«-1
1< X
O X
O
X
!-•
•
-*•
l-:- i-
1 ^
X X
O
X
X
O
>->
- "-
1
•• X
X
O
i—
X
O
O
O
O
X
O
X X
X
i-
1
i-1-
X
t-*
XX
X
X
X
O
O
O
X
X
O
i~
* t-4
- v-
-r-5-
i-4 X
O
O
>^ O
O
O
O
i-
1 X
O
192
ESCUELA POLITÉCNICA NACIONALFACULTAD DE INGENIERÍA ELÉCTRICA
TESIS DE GRADO: RESOLUCIÜN DE ECUACIONES BOGLEANASUSANDO EL MICRÜCGNTROLADOR INTEL 8751
CONTENIDO DE LA TABLA:TABLA DE PRUEBA ENTRADAS: 9
TÉRMINOS. DE LA SOLUCIÓN
FUNCIONES: 1
FUNCIÓN NUMERO: 1
ABCDEFSHIOOOOX001XOXX1 100OO1010X0X00OXOXOXO01X i 1 1 1 1 1 1 XXXOXG11XOOX100XX0101X001 XIX10 XX 1X0011X0X101100001X10X1OJ 1 1001 XX110X001X1OOOOOXt>X¡ )
tooxotooxXI 101X101OXOOX0011
ABCDEFBHI0X0X0 11 IXcoi i ixxoiloiuoixix00X1 101 IX10X10110X110011XXOX 0X1X1010XI XO IX 0001XX01X1111X10XXOOOxoxooxooo1'üOuouXXl1X010X0X0í >t)l oox 1X1uoouooxoxXXI 11 1001101X000X1
ABCDEFGHIXX 10101X00101X1 1OXX1XO01X110 1OO XX OOX1QXXQXQUX11X0110XX10OXX11 101X1X00111 XX 1000X0XI i X 10X1100X001X00X'jolouxxu11XOX011Xoí oot ) j XXXOUl X 1X0X11 X 1 X X 1 0 1 0XI 01 IX: 100
ABCDEFBHI00 101 XI IX1XX11111XuuXoi IXoiXX 10X1 0101 XX 1001 1111 1X00X1 0X10XXOOO10111X10X11XX110ÍOXXOOX1010XXI 1XOOOOO1X11 10O IX1 1 1 0 1 1 X X 11 1 íoXXf-'X Itii xtjuioooxOOOX, 1 100X
193
Ejemplo 3 .
En los ejemplos anteriores se han generado tablas en forma aleatoria
para comprobar el funcionamiento del programa de minimizacion; en el
siguiente ejemplo se va ha comprobar el proceso completo iniciando
con el ingreso de una tabla^ su minimización y la implementación en
el microcontrolador.
El comprobar una tabla de verdad extensa puede ser muy difícil por
la gran cantidad de combinaciones, es por esta razón que se ha sele_c
cionado un ejemplo de fácil•visualización de resultados;como es un
convertidor binario aBCD (7 segmentos).
Máximo se puede tener 16 lineas de salida, por lo que es posible ma_
nejar máximo 16 segmentos, por consiguiente la mayor combinación posi_
ble que puede representarse será 199. Si se tienen 7 variables de
entrada, en máximo de combinaciones es 27 = 128., y con 8 variables
28 = 256, entonces el conversor es de 8 entradas a 16 segmentos.
La distribución de los segmentos en un display de 7 segmentos es co_
mo la que se muestra a continuación:
#ü1Z3456789
g f e d c b a
0 1 1 1 1 1 10 0 0 ü 1 1 01 0 1 1 ü 1 11 0 0 1 1 1 11 1 0 0 1 1 U1 1 0 1 1 0 11 1 1 1 1 0 10 0 0 0 1 1 11 1 1 1 1 1 11 1 0 1 1 1 1
1 - LED ON
0 = LED OFF
Fia. 5.4.
194
El esquema de conexiones es:
+ Vcc
H--
F
? F
0>•*
" r
*
A
P0.7
Po.6 8751P0.5
P04
P0.3
PO 2 P2.0
PO.l P2.1
PO.O P2.2
P2.3
P2.4
P3.4
VTA1 , P3.5
P3.6
P3.7
XTAL2
ai
bl
Cl
di
ei
f2
g2b3
C3
BUFFER
^b "*í " í-^ -S " ^?
Rhlti
— -iX / i~"~f i"~'j' í 1 1 /
! í í 1 1t-'
8bItJ
Fig; 5.5
Las funciones se denominan:
c3, , fi e ~
El ingreso de datos se lo realizo* a manera de una tabla de verdad,lue
go se procedió a la minirnización.
.El proceso de minimización lleva aproximadamente 12 minutos para to_
das las funciones.
Los resultados obtenidos son los siguientes:
195
FUNC SEG. # IMPLICANTES PRIMOS # TÉRMINOS SOLUCIÓN t APROXIMADO
1 C3
2 b 3
3 g2
4 fz
5 e2
6 dz
7 .C 2
8 b2
9 a2
10 gi
H fi
12 e!
13 di
14 d
15 bi
16 ai
TOTAL
5
5
20
25
27
29
21
27
24
137
123
76
163
94
225
188
1189
5
5
10
15
16
15
12
13
12
43
46
27
56
27
51
49
402
25 seg.
32 seg.
83 seg.
36 seg.
26 seg.
33 seg.
68 seg.
45 seg.
48 seg.
59 seg.
36 seg.
31 seg.
40 seg.
70 seg.
52 seg.
57 seg.
746 seg.
(12 min. 26 seg.).
Con estos resultados se procedió a la implementación física del cir_
cuito con el fin de comprobar el funcionamiento del programa ya en
el microcontrolador^ se obtuvo el siguiente resultado:
- Se comprobó el funcionamiento del circuito con resultados satisfac-
torios; lo más importante que'se puede mencionar es que el tiempo
de retardo entre la entrada y la salida es bastante apreciable. Al
producir un cambio en una de las variables de entrada, antes de ob
197
ESCUELA POLITÉCNICA NACIONALFACULTAD DE INGENIERÍA ELÉCTRICA
TESIS DE GRADO: RESOLUCIÓN DE ECUACIONES I3GOLEANABUSANDO EL MICROCONTRGLADOR INTEL 8751
CONTENIDO Dt£ LA TABLA: CDNVERBÜR S/l¿ ENTRADAS: B
TÉRMINOS DE LA SOLUCIÓN
FUNCIONES:
FUNCIÓN NUMERO:
ABCDEK3H011X X 1 X X.1. XOOOXXX
ABCDEFGH011 X 1 X X X
ABCDEFSH10XXXXXX
FUNCIÓN NUMERO:
ABCDEFGH1XOXXXXXX101XXXX
ABCDEFtíH0011XXXX
OÍOXOXOX
FUNCIÓN NUMEROs - 5
FUNCIÓN NUMERO'
ABCDEHGHOX1OOXXX0X01X1XXOí10XXÜX10XQXQÜX
OXXOOOTO0 T X Ó X 0 0 TOX TOOTOXXTXOTTTOX TOOOT XOXTOOTTOTX T X T T O O TXOOOXOOTXOOTTOXOXTOTTTOOX TOO TOCOH3d3d3ay
XOOOXOXTOXTXTXTXX X X X X T T TXOTXOTXTX O T T T X T XX T T T X O T XXOOXOOTXXTOTXTOOXTTOTXOOXTOOXOOO
XT TOXXOTXXOXOXTO .X X X X X T 0 T '
XXOOTOOX-X X X X T X T 0XXXXOOOT
XXTXXXOTXTTTXOXOXXXOOOTX
OTTXOXOO0 T T T X X T 0OOTXOXTOOTXTXOXOOXIOOOTX>; T T T 0 T 0 1XOXOTOOTXO T T X T T OXOTOXOTOXOOOT TOOXTTTOOXO
TT
00 TX 00X0OOXTTOXXOXOXOXTXX I X X X X T TXTOOXTXTXTOT TTXOXOTXTOTXXT TXT TOOXTXOOTXOOOOXTXOXXXX T X X T T
0 T
XXOXOXOTXTXOXTOXXXX TT XOX
6
XOOOT XOXX T T X >; X T 0X X X T X X T O
8
XTXXXXOTXXOOÍXOXXXXTXXOT
OOTTXOOT0 T X í X T 0 T0X0X0 T TO00 X TOOOTOOXOXOXOXTXOOOTTXOOTXTOTXT-OTXOOTXOXTOTTOXTXTOOTO
. XOTTOTXOXOOTXOOOHEJdBaoay
OXTOOXXTXOOTTOXXOXOXTXXTX T T 0 T T X XXTTXOOXTXXOOTTIXXTOOTXTXXOXOTTOOX 000 X TOOx TÍ: TOO xxXOXTXTXT
•fjyaNnN NOI
XXXOOOXTXXXOOTXOXXXTTXXO
XXT TOXOXXXXOOOXTXXXXOTXO
XXXOXTXOXXTTOXXO
' XXXXXOTO
OTXOXTOO00X0 XTOTOXfOTXTOOOXTXTXOXT TOXTOOXOX TT TOTXOTOOTOTXTTOOOXTXT T T X O T OXOX 000 10XOXTTOOOXO TOO 0X0HSdsaoay
:3Nfld
OXTXOXOOOOOTXOXXXOTOOOXOX T T T O X X TXOXOXOOTXOOTOXTXXXOTOOTXXOT TOTXX0 X 0 T T X 0 XXOXTXOOOX T X T X 0 X 1
XOX XOX TOXXTXTXOOXXXXXOTO
:oNn,
XOXOTOOXXTXTOXOXXXXXTTOTXXXXTOXO
:3Nfid
XXXXOTXOXTXTOXXOXXXXXTOX
L
86-T
0 '[ X 0 T T 0 XXXTOTOOXT 1 nXXOOOXOTTXOOO0 T X T 0 X 0 TT TOOXOOXT T T O X X T OXQOXTXT.QOOOTXOXOTOXOOOXTTOXTXOOTT T X T X T X O
XT TXOXOOXT TTXXTOXOTXOXTOX T X T X T 0 TXTXTXOXOXX T OOOT X
OTOXXOOOOTOOTXOXOXXTOOOTOXOXTOTOOXTXTOOXXTTOXTTOTXT TOOOOOOXOOOXTOT TOO TOX "TOXoXOOTTXOOTTTOTTOOTXTOTXTOTTOOX 000 X TOO
OTOOTXOXOXOXTOTOOXTXTOOXOTXOOXTOÜOXTXOTOOXTOOOtX
OOTXOOOXX O T X T T O XTOOXXTOOX'TOOXOOOTTOTXTOXT 0 X T O X 0 TTXXTOOOTOOXTXTTOOTXTXOTOooooooxxOOXTXTOTOOXOXOOTOTXOXTXO
XOXXTOOOXOXXT TOTXXOXOTTOXTOXTXOXXXTOOTOXX 0X0X0X0TXXOOOXXH9d3d3ay
o xooxoooOTXTTTOXOOOXTTXO.XOOTXOTOTOXTXOOOTOOXOOTOTOTXOOOOXTXOTTOTTOT XO TOTTTXTXOOTTOXTOTTOOXTXOXTOOTXTXTXOTTTOTXOO
= T
OTOXXOOOOTXT I TOXOOTXTXOXOOTTXOXOOOXTOXOTOTXTXTXOOOXOOOXT
TXOOTXOOXXOTOXOOX 000 X TOOT XOOXOOO0 TOOX TOXOOXOOXOTTT TOO TOXTTXOOXTOTOXTXOTOXTTOOOTXTTXOXTOTXXTXOTTOTOXOXTXO
XXOTOOOXX 00X0X0 [X X T 0 T X T 0XXOOTXOXXOXTOOOTXTXOTTXOTXXXXXOX
.ZTl,0000 X TOXOOXTOXOTOTXOOXTOOOTXTXOXOXOXOOOXTOTTOXOOXTTOOOTTTTTTOXOTX TOOX TOTT O T T T X T 0TXTTTOTOTTXTOOTOX T 0 T X T 00OTXOXOXO
-QBHiWnN NO 1 31
0 XOOXOOO0 T 0 T X T 0 XoooxoxoxOXOXOOOXOTXOXTOTOOXOXTXOOOXTXOOT
OOTXTOXOX T T T T X O XOOXTOXOOOXX TOOOOTOOOXTOXOOOT TOOX0 TOX T TXOXXOXTOTOOOTOXOXOOTXOOOXTOTXTXOOTTXTXQXTQf TXOXOXO
XXXOOOTOXXTXTOOTXOOXTOXOXTXOOOXTXOXTXTXOX TOOX TXOTXX.XXXXO
Mfld
TOOT TOOXOTOTXTOXOOT TXOXOOOOXOXOXTX TOOOO tTTXOOTXOTXOOOOTTTOX TX TOTOOXTXOOTT T 0 X T T T 0TOIOXOTOTT TXT TOOOOXOX TXOX TOOX 000
MHd
OOOOXTOXOOOX'Í T XOOT TOO TOXOTTOXXT.OOXXTOOOTOTXOXOXOOXTXOXTO
661
oxooxoooTTOOXXTOXOXTOTOTTOXXTOOTOOOXT TXOOXOXTOTO0 X 0 T 0 X 0 XTXOTTXOXTOXTXOXOoxoxonoxTXXOOOTTOXTXOXTO
T T TOXXOOXTXOOTTOOOOOXTOXXTOOTOuXOXTOXTTOTXTTOOXOXüXuXTOOOOTXTXOXX TXOXGQQXOOT XOOTTXTXOTOXTXOXOXTO
XT TOOXOOOTOXTTOXT TXT XOOTXTXTOOOTTOTIOXXOXTXTXTOOX 000 X TXOTOOXTXOXTOTXOOXOT T TXOXOXXTXOXTOTX 0 XIX 0 T 0
OTOXXOOOT IXOOXOOTOXTTXOTOTXOTOOX0 T T X X T T 00 1 T 0 X X T 0XTOTXTXOOXT T TXOXOOT TXOOXXTOOXOXOOXTOOOT XT X T X T X T 0XOX OOOXT
9T
002
201
Ejemplo .4
El retardo que se obtuvo en el ejemplo anterior es muy grande si com_
paramos con otro tipo de implementación circuital , y en ciertas aplica^
ciones no se puede tolerar. A pesar de esto existen ciertas aplicacio_
nes en que no es importante un retardo de esta magnitud, siendo muy co_
mün encontrarlas en conjunto con sistemas lentos como pueden ser los
mecánicos.
Se ha tomado un ejemplo del manual MICROCONTROLLER HANDBOOK INTEL (1936)
pág. 10-19, que corresponde al diseño del control de las luces de un
automóvil.. En el citado ejemplo se parte del conocer un esquema del
circuito digital para resolver el problema planteado.
Suponiendo conocida la tabla de verdad que deben cumplir las funciones
de salida, en el caso del ejemplo del manual son 5 las variables de en_
trada:
- Interruptor del pedal del freno,
- Interruptor de luces de emergencia.
- Interruptor de giro a la derecha.
- Interruptor de giro a la izquierda,
- Interruptor de luces de parqueo (luces medias).
y las salidas son las que siguen:
- Luz delantera derecha.
- Luz trasera derecha.
- - 202
~ Luz indicadora derecha (en el panel de instrumentos). •
- Luz delantera izquierda.
- Luz trasera izquierda,
- Luz indicadora izquierda (en el panel de instrumentos).
Todas las funciones de tempori'zación se realizan por medio de los cori_
tadores/temporizadores en el ejempTo citado.
Puesto que para el presente trabajo se suponen circuitos conibinaciona_
les puros, se han aumentado dos variables de entrada adicionales que
son: •
- Oscilador de baja frecuencia.
- Oscilador de alta frecuencia.
, Mientras que se mantiene la misma salida.
El func ionamiento del c i rcui to es asf:
- Al activar uno de los interruptores de las luces de giro ( " direc-
c i o n a l e s " ) deben las luces del respectivo lado p a r p a d e a r » con una
frecuencia dada por el oscilador de baja frecuencia. Si en esta
cond ic ión se presiona el pedal del f r eno , la luz trasera del otro
lado debe permanecer encendida , pero no debe afectarse el func io -
namiento de las otras luces.
- El in ter ruptor de emergencia pone a parpadear todas las luces del
sistema, pero si en esta condición se presiona el pedal del freno ,
203
las dos luces traseras deben quedar.encendidas, mientras que el res_
to de luces sigue con el mismo funcionamiento. Este interruptor -
tiene mayor prioridad que los interruptores de giro.
- El interruptor de luces de parqueo,(luces medias) hace que pase una
frecuencia alta hacia las lámparas de las cuatro esquinas, esto tie_
ne el efecto de encenderlas con menor intensidad, efecto que tradi-
cional mente se lo logra con otro filamento en la lámpara. Este i_n_
terruptor no interfiere con los otros interruptores y más bien en
ciertos casos sirve como una base de poca luminosidad en la que se
superpone los otros efectos.
La lógica combinacional va a ser implementada mediante el microcontro_
lador, los osciladores serán externos.
Se han asignado los diferentes interruptores a las siguientes varia-
bles de entrada al microcontrolador:
PO.O G Oscilador de alta frecuencia.
PO.l F Oscilador de baja frecuencia.
P0.2 E Interruptor de luces de parqueo,
P0.3 D Interruptor de luz de giro derecha.
P0.4 'C Interruptor de luz de giro izquierdo.
P0.5 B Interruptor de luces de emergencia.
P0.6 A Interruptor del pedal del freno.
Las salidas se han distribuido asi:
204
P2.0 Fl Luz delantera izquierda.
P2.1 F2 Luz trasera izquierda.
P2.2 F3 Luz del panel izquierda.
P2.3 F4 Luz del panel derecha.
P2.4 F5 Luz trasera derecha.
P2.5 F6 Luz delantera derecha.
w, Vcc
-t-Vcc
J
un
nFreno r "
Emergencia
— . — «
Parqueo
|~
- <
r "r -
rz
-> <
D
*-
P0.6 R2 5
P0.5 P2.4
P0.4 P2.3
P0.3 P2.2
8 7^\ w.t « ^J P2.1
PO.l P2.0
PO.O
XTALl
XTAL2
BUFFER/DRiVER
7416
t^l , \AAf-j JWr-*
r^
1 ^>
r-4
r^
M
DD
TD.
P.D.
PT
TI
DI
Fig. 5.6.
- En el ejemplo se tiene dos-variables que son excluyentes entre si, y
corresponden a los interruptores de giro que es un conmutador de 3
posiciones, y nunca pueden estar activados simultáneamente, esto se
ingresa a la tabla como condiciones "no permitidas".
En el proceso de minimizac'ión se obtuvieron los siguientes resul-
tados :
205
FUNC. LAMP. # IMPLICANTES PRIMOS # TÉRMINOS SOLUCIÓN t APROXIMADO
1
2
3
4
5
6
D.I.
T.I.
P.I.
P.D.
T . D ,
D.D.
5
8
3
3
8
5
3
4
2
2
4
3
10 seg.
17 set) .
9 seg.
9 seg .
17 seg.
11 seq.
TOTAL . 3 2 ' 1 8 1 min, 1 3 s e g
Ya "en pruebas sobre el circuito, los retardos no molestan en lo más
mínimo, y dicho retardo obtenido es de aproximadamente 1 mseg.
CONTENIDO DEL ARCHIVO LUCES-HEX
:090000OOA880A9907A4B900O7EC3:02GOG9GQ7BQ674;050ÜOBOO753ÜOG7531A5:10001OOGOOEAS3FCEAC394O5S3FDOAOAC20OBCO01F:100020O005BDOOO2B022E49359FEA3E4935SFFA38S:1QQÜ3QQQE493B506QAA3E493B5G7Q5D2QQBQ01A3B3:1QQG4QQQA3BDQOOÍ1CÍDBQD6A20QE53Q33F530E5CC:OE0050003133F531DBBBB53OAOB53ÍBOBOA2A5: i O O O 5 E O O O O O 30 O O 4 O O O 2 O O O 2 O O O 4 O O O 3 O O O O O O O O 8 O: 10 O O 6 E O O O O O O O O O' O O O O O O O O O O O O O O O O O C) O O O O C) O O 8 2:1O007EOO00250005OO120012002200220025000586: 10008E00001200120022OO220050004OOO12001246: 10OO9EOOOO220O22OOOAOOOAOO22O O220O25OOO5BC: 1QÜQAEOQOOOAQQOAQQ22Q0220048QO4QQ025QQQ53B:0800BEOOOOOAOOOA00220022E2
206
ESCUELA POLITÉCNICA NACIONALFACULTAD DE INGENIERÍA ELÉCTRICA
DEPARTAMENTO DE ELECTRÓNICA Y CONTROL
TESIS DE GRADO AGOSTO DE 1987
AUTOR: PATRICIO IVAN CHICO HIDALGO
DIRECTOR: ING. FERNANDO FLO.RES CIFUENTES
TEMA: RESOLUCIÓN DE ECUACIONES BOOLEANAS USANDOEL MICRO CONTROL ADOR INTEL 875.1
PROGRAMA DE INTRODUCCIÓN DE DATOS
IDENTIFICACIÓN DE SU TABLA DE VERDAD
CONTENIDO: CONTROL DE LUCES DIRECCIOEL NUMERO DE ENTRADAS ES N- 7EL NUMERO DE SALIDAS ES M= 6ESTADO DE LA TABLA: COMPLETOULTIMA PAGINA: 6MODO DE INGRESO: TABLA
o C\
O O
Q
O G
-i Q
'-í
Q
Q -H
-H
O
--Í
G G
O G
G
'—
' G
"-i Q
O
T-I s
-í Q
'"í
H
a a
Q G
o Q
o Q
Q Q
—i
-~i o
o .-j
O G
O Q
O G
O Q
G O
Q D
a Q
O
G G
G G
o ^
G *
**• G
G Q
Q Q
<-!
Q
G G
G G
o --i G
T-Í
O O
O Q
Q
G
i O
G O
O Q
^ O
1~
! '-i
!
t Q
O
Q
CO
Q
T~
* O ^
LO
Q Q
o o
o Q
Q Q
-«t
Q G
M
O
=-
í =-
¡ '~
i O
J
G G
.-{
--i
Q
-H -^
<-
! T_
¡
OJ
OJ
C-J
C-J
OJ
OJ
OJ
OJ
G
G ,-:
T-Í
o
O
OJ
Oj
OJ
C-J
OJ
OJ
OJ
OJ
O
O -i
>-í
O
O
C-J
C-J
C-J
C-v!
C-J
C-J
C-J
C-J
Q
O
M -
H O
G
C-J
C-J
C-J
C-J
OJ
C-J
C-J
OJ
G
G ,-i
— !
Q
G
C-J
C-J
C-J
C-J
C-J
C-J
C-J
C-J
Q
O
r-:
=-!
Q
Q
C-J
C-J
C-J «
C-J
C--J
04 C
-J O
G ^ -! G
O
Í C
- O
,-í
T-Í
Q Q
r-
t
: G
G -n -
í G
G -i
i Q
O -
H -i
o Q
rH
j Q
o ,-j ,-i
Q Q
,-j
G Q
r-i M
Q Q
M
i Q
O _
i -i o
Q -H
M CD
>"•!
G'
G
G
G
T—i
'—!
i—¡
i—!
G
Q
G
G
i—i
*~i
i—i
>—i
G
G
G
G
••—i
*"~i
-—!
>—I
UJ
<t
G O
G G
G G
G G
?—
• i—
í i—
; *—
! H
i ""i
*—i ^' O
G
G G
G G
G Q
Q
2!
MQ
G
G G
G O
G G
Q O
G G
G Q
G G
,—
: ¡-i
T-Í
M r
-: =
—:
i M
Q
CD
G O
G G
G G
G G
G G
G G
Q G
G Q
G G
Q O
G G
G G
cu
CL
O '
—' G
O G
G o
C3
G Q
G G
G G
G G
Q G
G G
Q G
Q G
<
rn
f¡\
=-<:
c--j
íO
Gj—
: '-i
0-J
C-J
C-J
C-J
!jj
G "
"í G
*H G
G
'-i
G "• O
'—í Q
'H Q
*-! G
G
•H G
H G
C
D
Q O
r-
i r-
í G
G !~
í -H
G O
-i
•-!
G Q
M
M G
O --i
--í
G G
--i
—
! li_
G O
G G
r-
í <->
. r-
j -H
G
G O
O
H
M i-i '-i
G G
G G
T-
J M
-H -
-i L
U
-! r-í
^}
M
-.; -»
^j -i G
Q O
G O
G O
G -i -í
-H
-H
iH
-£
O
.H '-i
*-i i-i !-i
=-í
H
Q G
Q Q
Q G
G Q
G Q
G Q
G O
G G
G
G G
O
G
Q
Q
G
Q
!-{
T-! i-i
rH i-i
•—: M
*-! M
H ,-¡ •
-{ ,-¡ *
-Í
—i
*-!
ffl
Q Q
O G
Q G
Q G
G O
Q Q
Q Q
Q G
Q G
Q O
Q O
G O
<
t '-O
-O N
rn
'?.
o
^- C
-J f-0
•j w
oj c
-j c-j
c-j
fo to
¡-o
w i«
r in
MJ N
Cu í-
G -
-i O
J í
-0:;
M ro
10 n
fo ^
<$
<- -T
co o C\
Q
Q .-i
*-f
O O
!-H
'-í
OJ O
J O
J C-
J C-
J C-
J C-
J C-
J Q
O
O
O
Q -i
Q
*~í
MJ
O
Q
r-¡
--i
O
Q --i
"-í
C-J
OJ
C-4
C-J
C-J
C-J
0-3
C-
J ,-i
=H !
-{ M
T-Í
T-Í ,-i
Í-H i/j
O
O -i
--Í
O O
-4
-H
OJ
C-J C
-J
O-!
C-J
C-J
C-J
C-J
G
O Q
O
O
G
Q O
-C
OQ
'H
^O
Q-i-í
C-J
C
-J C
-J O
J C
-J C
-J C
-J C
-J O
O
Q
O
O
O
O
Q
fO
O
Q
<-l
'-'•
Q O
*-
! t-i
OJ
C-J
C-J
C-J
OJ
C-J
C-J
C-J i-i
M ,-i
=-:
-H M
M
r-J
OO
^tH
OO
r-t-H
O
J C-
J C-
J O
J C
-J O
J C
-J
C-J
Q O
O
O
Q
iH
O
*H
-H
O Q
M
'-i
Q
-H r
-i M
Q Q
Q
Q
Q ^
Q
- O
J
C-J
C-J
'--
J C-
J O
J
r-J
OJ \
O
O i-i
¡ Q
'"í
*H '-*
<-i
*—
- —
i '"i
--i
=-¡ M
H O
J O
J C
-J O
J C
-J O
J C
-J O
J líj
Q G
-1
-H
G
G ,-i
r-¡
G G
o
O G
O
Q
O
O
J O
J O
J O
J
C-J
OJ O
J C-
J í
O Q
G
O
o
O
o
O
G
O
M
H•
O Q
M -i
OJ
C-J
C-
J O
J r-
J O
J
C-J
C-J
|O
,~i
í _?
r-
í -H
r-
j -i
¡ Q
O
-i -i
o
M
-¡ í
-H
C-J
OJ O
J C
-J
C-J
OJ O
J O
J C-
J
Q O
Q Q
o -i
o -i
O O
,-i
HI
O r
-í T-
J ^j
r-J
04 O
J O
J O
J O
J O
J O
J r-i
fO < -2L
¡—•
CD <•
D_
O
"~^
O ^
Q '""
í O
"~
í O
"^
•—
• *H
O '"í
Q
*~¡
Q
*~~i
O '"i
O
*~í
O
*~¡
CU
O Q
-Í -"i
O O
T-
M r-í
Qi
Q M
H G
O
i
>H Q
O
=-
1 '-i
O Q
—
i >-! LL
GJ
O Q
C
' T-
ñ -1
T-Í
-1 O
O
Q O
.-i
•--* .H
H O
O
Q Q
H
•-!
r-í H
LL]
O O
O O
Q Q
G
O M
—:
>-:
—: i-i
--H i-í
M Q
Q Q
Q
Q
O Q
O
O
,_(
—I ^
^J ._
; ,-i
^-j
T-Í
^_
j r-
J _¡ ,-t
-5
^-í
-¡ M
Q
Q
Q
G
G
O
G
O
O
H —
I •-!
--i
--i
M '-
H -
-i ^
£ >
-í '—
• M
M M
'-í
Q O
G L
-' Q
Q O
Q C
D
O Q
O Q
O Q
O Q
G G
G Q
G G
Q G
,-i
*H H
M s
-¡ <
-i H
i M
<
O Q
Q O
'G
-i G
=~í Q
--i
Q '-i
O "
H O
!~
i G
G '-'-
G
*~í
Q '-i
CE-
G O
M M
O O
M '-i
G O
M
O O
-i -!
G O
^-l
*H LL
H 'H
T-Í ^
Q G
Q G
M M
r-i M
O G
G O
H -
H M
H Ü
J
^-i
-—
: r-
i M
O Q
G
G
O
Q
G
O
i-H
-í
—
i <-! ,-i
— !
-H -H
O
G G
G O
r-i
-Hr-
i^^
-iM
M'-
i -í
— : -: -i -: -i -i
M o
o
G G
G G
O Q
G G
Q G
Q •
"* Q
~ O
™ G
Q Q
cu
i-j
H
rH
T-
H H
j-j i-í
i-j M
i-H
T
-Í
T~Í M
T— ¡ i-
{ ^-
f i-i i-I "-
i <£
í¿- ^
LO ^
!-0
''
LO ^
LO "
¿í
U";
-£i
' \¿
i "-Ü••i
! "-¿
! '-jli
'--
í1 '
-O
"•Li N N
LÜ í_
J
J ÍO
<r
!-ON
••£(
rx n
i i>
Q *
-: c
-j ;-••
;• ^t
'-O
\ i
%- ni
<?*
o
— :
r.i
ío
LO
QEx
fN
N Í
N C
O C
U ni
CO
Oj
CO
fu C
O 0
3 C
O i>
CN
i>
!> lií
\ .
, t_i
* ^ L
o sj
>>-
CN ro M G i-
1
I-1
ÍTJ ¡-i
j-
CO X
í CT
-- O
í •£*
C-,!
'"'-'
J-1
'-J
-0 '-'-
' M
'•?'•
Oí
- C
-j f'-
J-^
i-. H
1 ¡-i
s-
1 M
H1
j_i
H1 }-. í-1
M V
-1
55
O
í-s i-
. J
-j
W
[_.
i-1
;_.
í—i
_^
_^¿.
O »
„• Q
<_
j ui
o
'—'
G
ÍU h-1 I-
1 i-1
t-1
Q
O
O
Ti M
í-1
G O
!-• i-1
G
ÍD i-'
G I-1
G i-*
O
H-
1.'
'—•
I—F
r~.
h-1
I—'
5-1 ,
-• f
-« I-
1 í-1
Q
í_!
O í-'
Q
'—i
G
VJ
í—!
i—>
t-1 O
Q
O
G
i—
' i-
4
i—•
l—1
G
Q
Q
G
H1 G
Q H
- t-
1 G
Oh
-'!-'
G '
—'
t-1 í-1
G G
G
H'
O
!—'
G
r-1 O
I—
- G
3—
* G
I—
1 G
i—
1 O
VJJH
i- ro ro ro ro ro ro ro ro
ro ro fo ro ro ro ro ro ro
c/í ro ro ro
ro ro ro ro
ro
• ro ro ro ro ro PO ro ro
oí ro fo ro ro ro ro ro ro
•>• ro ro ro w ro fo ro ro
H-
h-'
h^
G O
!-
H
1 O
O M
M G
O Í--
G O
j->
1- O
G M
O
fO H
= f-
1 O
O
]-=
• ^
G O
H
I-1
I-1
í-1
5-1 í-1
i-»
I-
1 i-"
!—
M
I-1
<-• i-
1 í
~t
C-.J
H" I-
Q
G h-
i-1 O
O
i--
t-^
O O
J-1 l-1
G O
í->
M
O G
y-
M o
M
í— :
i~« í-i
M j-j ¡-
1 O
O
H
1 fr
-1 G
Q
i-* !-* f-
1 f
-1 r-
1
I—1
f—
!~*
Q M
I"1
O O
i-
1
O
O
i--
M O
G
H
1 1
— C
O
(-•
H1 O
Q
ro j^ •o
210
ESCUELA POLITÉCNICA NACIONALFACULTAD DE 'INGENIERÍA ELÉCTRICA
TESIS DE GRADO: RESOLUCIÓN DE ECUACIONES BOOLEANASUSANDO EL MICROCOMTROLADOR INTEL ¡3751
CONTENIDO DE LA TABLA:CONTROL DE LUCES DIRECCIOFUNCIONES: 6
TÉRMINOS DE LA SOLUCIÓN
ENTRADAS: 7
FUNCIÓN NUMERO: 1
ABCDEFG
FUNCIÓN NUMERO: 2
AB CDEFG AB CDEFG AB CDEFGXOXX1X1 XX1XX1X X1XXXIX
ABCDEFG1XCXXXX
ABCDEFG ABCDEFG ABCDEFGXX1XX1X X.1XXX1X
ABCDEFG
FUNCIÓN NUMERO: 4
ABCDEFG
FUNCIÓN NUMERO: 5
AB CDEFG AB CDEFG AB CDEFG AB CDEFGxoxxixi xxxixix xixxxix ixxoxxx
AB CDEFG AB CDEFG AB CDEFGXQXX1XJL XXX1X1X X1XXX1X
ABCDEFG
211
Ejemplo 5
En este ejemplo se va a implementar un módulo multiplicador, dos ope_
randos de un número N de bits, se introducen en el microcontrolador
el cual a su salida entregará su resultado a la multiplicación. La
entrada al multiplicador serán dos operandos en binario, cada uno de
N bits y a la salida se tendrá el producto con una longitud de 2 x N
bits.
Uno de los limitantes en esta aplicación constituyó la poca longitud
de memoria disponible en la .EPROM del microcontrolador, la longitud
máxima de los operadores que puede manejar el mismo es de 5 bits.
La tabla resultante entonces va a estar constituida por 10 variables
de entrada y 10 variables de salida. Los resultados obtenidos fue-
ron los siguientes:
F bit # términos solución
1
2
3
4
5
6
7
8
9
10
9
8 -
7
•'6
5
4
3
2
" 1
0
20
55
81
119
133
106
30
9
4
1
TOTAL 558Tiempo de mi nimizacion - 46T
'212
Para operandos de un mayor número de bits, la solución que se genera
tiene un número excesivo de términos como para programarlos en la
EPROM.
El esquema de las conexiones será:
Primer Operando
Segundo Operando
bíto
bÍT5
bitO
bitS
5
PO.O
PO.l
P0.2
P0.3
P0.4
P0.5
P0.6 8751
P0.7
P1.0
Pl.-l
XTALl
XTAL2
P2.0
P2.1
P2.2
PZ3
P2.4
.P2.5
P2.G
P2.7
P3.0
P3.1
birO
bino
Resultado
Fig. 5.7.
El retardo que se detectó entre la entrada y salida en esta aplicación
fue de aproximadamente 23 mseg.
El programa de minimización puede manejar más entradas., pero genera d_e_
masiados términos en la solución, tal que no se puede implementarlas -
en el microcontrolador.
Los resultados que entrego el programa son:
....213
ESCUELA POLITÉCNICA NACIONALFACULTAD DE INGENIERÍA ELÉCTRICA
TESIS DE GRADO: RESOLUCIÓN DE ECUACIONES BOOLEANASUSANDO EL MICROCONTROLADOR INTEL 875.1
CONTENIDO DE LA TABLA :MULT 5X5 ENTRADAS: .1.0 FUNCIONES; 10
TÉRMINOS DE LA SOLUCIÓN
1
ABCDEFGHIJ1XXX.U.U111XX1.1.1.UXX1X1.1.X11XXX11XX .11X1X1111XX1X1XX
ABCDEF6HIJ1XX1X111X11X1XX11X1X1X1111X111IIXIXIXIXX111X11XX1X
11XXX1X11X11X111XX111111X1XX1X
ABCDEFGHIJ1XX1111X111X1X111XX111xxxi:i xxx111XX1XX11111111XXX1
FUNCIÓN NUMERO:
ABCDEFGHIJ01XX1111X101X1111XXXü.11.1 XIXX.1.1.1000X1XOXX100X01XDXX100XX1XODX10X001XOOX10XX010XXX11XXX01X111X00X10X001XOXX100XO1XXOX1000XXIXX111111XIIX111X11
ABCDEFGHIJ01XX.U1.UXQ11XX1X11X0111X1X1XX1000X1XXOX1DOX01XXOO100XX1XOXO10XOX10XXX10XXX100XX11XXX011XX11X1X0.1 XIX111XX01X1X1111X01XX1X1X1X1111XX111X11X1X
ABCDEFGHIJ0.1 XIXI .1XIX0.11XX.UXXXOlí111XXIX1000X1XXXO1XXI10.UIX1X1XX011X1.10X0X1X00010XXX1DXOX1X0001CXOX1XOX010DXX1XX00100XO1XXX01000XX1X11111X1X.UU11XX1
ABCDEFGHIJ01X1X111XX011X11X1XX1D0001XXXX1XX1XQ11.U100XX10XXX1X1XX0111X1X.11X01.1XX1QXXX10XXO1XOQX10QXX1XOXX100CX111X101XX.1.1XXXX100QOX11XX111XX
FUNCIÓN NUMERO:
ABCDEFGHIJO O.IX 1.11 XIX010XX10XXX01QX01XOQXO1X0X100XX
ABCDEFGHIJoo;ix.u .1.1 xx010CX1XOXX01X1101.1 XX01X001GXOX
ABCDEFGHIJOO.UX1.1XXX01X1X011X1011XX01X11011X101X1X
ABCDEFGHIJ0.1 XX101.111Q1X1X0111X011XX011XX0.11 IX OIX.IX
214
0.1XXD100XOlooxxaixox11XXX00.11X11X1XOG1X1OGil11XX110X1X11111X1001X101IX.1X100X1GGX1X1GXX10001X11XX011GX1X1X0.1111111001X0X0XI11X011X110GXXX1GGX111XXIXO001X1X0X01111101X110X1
011110.IX XI10GXGG1XXO1X00X010X0111XXOG1X1X011J.1X10XOX.UX1.UXX100X0X1X001X1GXX0111XX1X1111111Gil1100XIIlOXOl.UOX11X001101111X101X0011X00X11011XO.UX1X.UG110101X0IX
G1XXX1GGOX10XXX010XX1XOXX01GGX1..UGX1XGOXXI000111XXOX.U1.UX1X1XX1100J.11101X1.1001110.1 IX1001XX100010XOX1101.111X0011XOJ.110.1011.U1XX1X1X1GOX1GGXXJ.X010.U01X110X11X010
100GX01XXX10X0X01X001XOGX1110XX011G.1X11XX1GGX1X10G.100X1101111001.1101X1101GX101XX101X0101XX1XOG.U1X10X.UXXG111X.Ü1XXX100010000X1XXXxioxxiaoox1X0X111010XX11X1111X
FUNCIÓN NUMERO-.
ABCDEFGHIJ0X0111 XI. IX001X1 Olí IXOG1X01ÜGXXGG1XXJ.GGXO010X001X00O.UXXOOJ IX1UUOXUX1XX1UOXXUG1XO10X0X001X0lailXGlGXlJ.XU1 J.10UUJ.0X1011X001XI 00X01X10OX1001X10XOX10X.1GOXX0 11X0. U 01.1.100XXOX10X1001X1X0101X10X0X100X 0.1 0X1 01 1110.UXXG1011X0010X1011XXÜX1111G11 XI 0.1.1 10XX11XXOG11.1i ixn 1.x 1101100X11001.1..101X110.1 1011101101X0XX 11X0 11 1.1.
ABCDEF6HIJ '000 11. U XXX001GX.10XXX001X010X0 X010X1 101 IX01 01 XI 01 XXn ixoo ni oxo1UÜOXXX1GX10X1X01G111G1XX0101XxiooxxionxJ. 1 X 1 1 1 1 X 1 1OOX11.U1XX01X01 J.J.01XX1XXXG1000X U 01 1.1X010X1110.11X1ixoxoo ;u J o1 XX 101. U 00XG1GG.1.GOXXXX J. XXI 0000.10X11110101XOOXO.U1X1101X01X01.11011011X01.UOOG.1.XGXx u o 1 1 1 o i niGxniu inx.1.1X0011X1 0X1XGG1.U.1XX0100 1X111
ABCDEFG1HJ.JoojnoixxxxX011X0.1X11
' XO .11 101 XIX01 XJXXGl.il01X11XG11Xoí ixjnnjyi100011X0.11XXX U 1.1 1 UXX10X1GGGX1XXXX00100.1.1 U 1 XXXI 101GOOX.1XXXGlXDXlllGGGIXOXGIOOX0X11X011 IX0111X.1XOOXlonxnxnioxloxiixo ionX01GO.UX0110110.101 IXIX 000X0. 10X110X1100101X0101 001 XXI 01.1 10X10JJ. 1.001 XX 10u i inixxoxxoa 1 nioxni11X101.1X00OXX111111X.1X111X0100
ABCDEFGH.TJOGJX.lGl'lXlOG.UX01.1XXnxjxxioooxn.ioxxoioxxG101110X1X01 1 1X001X1100XGGG1XX1 OXXXGG10X1X11X0X011i ixxxnonuxoi nxj xooo0100X0.1XOXGJX10X100X0X1X1011 1 1Gi.j i ojxnxn1GOOOXX.1XXi ooi ni jnxjX001 11 1GOXX0101J.-OX.I.O.101 ixxj núiinnxxonu11X01X0100XJ.OJLX1011JL1.1X11X1.100X. U. 001 1X11inxm xni i oiGixou mi.1 uoxinxoj.1.U1XX.IXOG
215
'UNCIÓN NUMERO: 5
ABCDEFGHIJ000101XXXX0010XD10XX001X0010X0X1001110X10101X0101X01XOÜX010X01X0X011101001X01X01X 0.101101X1XX1XX01000101X1X01011101010110XOO1110011001XX0100X01X0101101XX0101XOOO0X100X1X100111X00X111X0011X001XOX101X100X01X011100101X1X1011X100X001X1X1011101X1XI101011010X11010X011X01011X1110X010X1101011X1100111X110X110XX100X1111101X01011011X101X1011X1X011001
ABCDEFGHIJ0X01101X11X010X01XOOXÜ1110Q1X1010011X01X01X110X0110110XX0011O1X01100IXX00.1.10110X10X011X101101.1X01011110X1X10011X10110X01X001X10X00OXX1X1000X010X1X01010X01011X010110101X01011111XXOX100XOOOX1X10011X001110X010X01110X110110111X010X01011100X1XXIX1101100110101X11101100X1X01101X11010X11X1000XX1X111X111X010X1111XX100X011011ÍX11110XX0110
ABCDEFGHIJ00100X1XXX00101101XX01000XX1XX010XX0010XX1011010X1XX100X100X0111001XOX1010XX01011XXXX000101XX1001110X100XXX100OOX110111X0X01110X0100111110XXX1X100X100OXX101111X0X1011011110000XXX1X100XXOX010100X111101X0101010X1XXX1X100001XXOX011111X100X0X101111XOXX10XXIXIXI0001001110X1110X1110011110011011X111010101XOXX11011111011.10.101X1X101110X0
ABCDEFGHIJ001X1X0111001.1X001 IX010X1X10110,1.0X0001X001011.101IXX1XXX00100011101XX10X01011Q10X101XX0010110110110101X01X0100100X1X100X0001X1X100X0100X001XXOX010100XXX1XX111100011X11110X1000X0XXIX1X01010X0110XOOX001X10X011X0101XOOOXX010110XX0011111100X01.XOX0110100X1XI11011X1.11X01.1.11X101X111.1X11011X10100X1010.1X10.1111XXX111110110X01.1.0100011X11011
FUMOION NUMERO: é
ABCDEFGHIJ00010X1XXXXO10X001X0OXX10X100X0100XOOX1XXX010X1XOOXXX1X01000X1XÜOXX01001110X1XX1X001100110X0100XX1XO1.010X11011XX1XOX0100
ABCDEFGHIJOOX1X0100X001010.101XOOIIIOIXOXX100XOXX1001010X0101010.1.10101101X0X0011110000XXXX1XOXXIIOOXOX010.10.10101XX10X01111011110X1X
ABCDEFGHIJX001X010XO001XOX010XX01111XX100.100101X01X1XXX00010X1XX10111001X0101001X00011XXXO10X1X10111101011010110110X11011XOOOXXX01
ABCDEFGHIJ00.10X001OX00110X001101000XXX1X010XOX001X0101X00101XI 0.111.1010XI10110110100XOXOXX110X1.1.1.1001XXX011XOOO1XXXOX0001XIOOOXXXIO
TXXXXTXXXX
GT :oy3wriN
O T X X X T X X X X T Q X X X X T X X X T - X X X X O T X X X X T X X X T O X X X
NOIONHJ
TXTXXTXGXXOXTXXTOXXX
OGTXXTXXXXTXXXXOGTXX
OTXXXOTXXXOTOXXXTXXX
TXOXXTXTXXTOXXXOXTXXXTXXXOTOXX
OIGMOd
TTOTXXTOTXOTXTXTXOXXTTOTXTOTTXTTTOXTXXTXTXXOXXOOTXGGXTXTGXXXXOOTXTXXOX
TXOXXOTXTXTXTXXOTXGXOTXXXOOTXXOOTOXXTXXXTXXXXOOOTXTOTaXTGTOXXOTOXXTOaX
TXXGXTTTTXTTTTXTXXOXOOOTXTXXXXTGXXXGGXTXToaaxxxxixTXXTXTTTOXXTGGXXGTGXTTOaXTTOOX
TOTTXXOTTXOtXOXTXTXXOOTXXOTXXXTOTTXTTOTXoxTXxaiaxxOTCJXXaXTXXXTXXXGGTGXxxxTxioaox
L :OH3WriN NOIONfld
TTOXTTXTTOTOTXTTXTTÜTTXOOTTXTTTXOOOXOTXTTXXXOXOOOTTTXTTTGXTGTTXGTTGXOGTTTOTTOXTTTOXTTXOOTTGTTTTTXXGXTTTTXOTXXÜTTOOOXTTOOTXTXXOOTXC)OOTXXÜOTXX
XOTTTTTOXOTXGGTTOTXGTTXTOTaXTTTXTTOTTOXTTXGGTTXI'TGTTXTTTTXOOTXXOXOTTTTTTOTTXTOTTTOXOÜTaXTTTOXTOTOXOTOTXÜXOTXTXOTXTXOTXDXTTTOQTTXOOXGTOTTTGTT
TGXGGTTTX.TXOTXCITXTTTTTXTTTXGGGTTXTOTTTXTTÜXGOTTXGTTOXTTTTXTOTGXGTTTXGGOTOTTXOTTXGTTGTXTOTXTGTTTXTIGTTXOXXOOTXTaciTXTixaxxTOXTTTOXÜOO O O O T T X X X XT T G T X O T G T T
TTTXTTüXOaXTOTOTTOOTTOXTOTTXTTTTTXGTGXGTfxaaoTTCiXTTTTXTTTXTC)TXOOTTTOXOTOOTTXaXTTTOTTXOXOTTTTOTXOXTOTOTXXOTTTTXXOXOTTOOXOGGTXOTXTXXGGGTXOTXXXTTXOTTOOTT
912
217
5.2. ANÁLISIS DE LOS RESULTADOS OBTENIDOS
Los ejemplos presentados en la sección anterior son relativamente
sencillos, no presentan mucho trabajo al programa de tninimización
y talvez lo más representativo constituye el tiempo "de retardo que
se produce entre entrada y salida. Este efecto se lo analiza poste_
riormente y para seguir un orden adecuado se empezará analizando
el problema de la minimización.
En lugar de analizar una aplicación específica, se ha considerado
más conveniente hacerlo sobre el desempeño mismo del programa.
La rutina de ingreso de datos demuestra ser conveniente, aunque el
ingresar una tabla de verdad de gran extensión puede ser un trabajo
muy poco atractivo. Se da en el capítulo IV información sobre la
manera como se guarda la tabla de verdad en el archivo de modo que
pueda ser generado de una forma diferente. Para algunos ejemplos -
se ha procedido de esa manera, generándolos a partir de pequeños
programas adicionales.
La opción de ingreso de datos a partir de ecuaciones representa una
ayuda adicional a pesar de que resulta poco eficiente al trabajar
con ecuaciones complejas.
Uno de los mayores problemas en esta sección constituye las tablas
que se generan en el proceso, que pueden llegar a ser de una longj^
tud excesiva. El lenguaje "C" permite trabajar con toda la memo-
ria instalada en el computador, pero con una limitación: un arre-
218
glo no puede exceder de los 64 Kbytes; pueden definirse varios arre-
glos, cada uno de ellos en un segmento de 64 K diferente, pero no pu_e
de ninguno de ellos excederse de ese límite.
Las tablas que se generan, son almacenadas en un arreglo, razón por
la que debe existir ese límite también para ellas.
Las tablas se han estructurado de la siauiente manera:
16383¡Téms
2 byts*
Fiq. 5.8.
Son dos vectores con un ancho de 2 bytes y una longitud de 16.383
ítems que dan
2 x 2bytes x 16383 = 65532 bytes (= 64 K)
Se han determinado las siguientes relaciones, que dan una idea de
las longitudes máximas esperadas en las tablas. Supóngase una ta-
bla de verdad con "Is" en todas las combinaciones posibles, sería
el caso en que se generan las tablas más grandes.
El número de cubos-0 (términos originales) es:
#cubos-0 = 2 (Puntos)
219
Cada uno de ellos para formar la siguiente tabla puede combinarse
con n cubos-0 adyacentes, pero estos últimos también pueden luego
combinarse con el primero que no es una agrupación diferente, por
lo que se contabiliza una sola vez. El número de cubos-1 es:
#cubos-l - 2n (-—) (líneas)
Luego cada cubo-1 puede agruparse entre 4 cubos-1 para formar un cu_
bo-2, y luego ser considerado por los otros cubos-1 para formar el
mismo cubo-2 que no debe repetirse por lo que solo se consideran -
una vez. El número de cubos-2 que puede formar cada cubo-1 es n-1
por lo que:
#cubos-2 = 2 (—«-)(-í—) (Superficies)
Símil ármente
#cubos-3 = 2n (-H_) ( ) (2.) (volúmenes)
etc.
Si se tiene dificultad en visualizar estas relaciones, es recomenda_
ble revisar el capitulo LI, en la sección correspondiente a la re_
presentación cúbica, que ayuda a comprenderlas.
Entonces podemos hacer un calculo estimado de las longitudes, a pa_r
tir de ocho variables y;
220
n
8
9
10
11
12
13
cubos-0
256
512
1024
2048
4096
8192
cubos-1
1024
2304 .
5120
11264
24576.
53248
cubos-2
1792
4608
11520
28160
67584
159744
cubos-3
1792
5376
15360
42240
cubos-4 etc.
1120
4032
13440
Esto Implica que se garantizaría resolver cualquier tabla de verdad
de hasta 10 variables de entrada, y sujeto a ciertas condiciones,ta_
blas de un numero mayor de entradas.
En realidad este análisis es para una tabla llena de "ls", pero da
una idea del máximo permisible, por supuesto el programa detecta si
se va a sobrepasar el límite permitido en la longitud de la tabla ,
e indica que esta no se puede resolver.
En la práctica una tabla con "ls" y "Os" en proporción más equili-
brada genera tablas más pequeñas y es por esto que es factible resol_
verlas con el programa.
Se ingresó al programa tablas que contenían sólo "ls y se obtuvo
estos resultados:
n
9
10
1 1
SOLUCIÓN
si
si
t APROXIMADO
45 min.
6 horas
221
No se pudo encontrar una manera de relacionar las longitudes de las
tablas de procesamiento, para tablas originales que contenían tanto
«,]_,, y .1 ( }M_
En cuanto al tiempo de procesamiento no se dispone de una manera de
comparar con otros programas, por no disponer de ninguno.
La única comparación posible, pudo realizarse con el programa pre-
sentado por Rhyne (3), escrito en FORTRAN cuyos resultados obteni-_
dos se mencionaron anteriormente. Para una tabla generada al azar
de 9 variables de entrada y una salida, el programa de Rhyne se d_e
mora aproximadamente 13 horas; mientras que el de éste trabajo re-
suelve la misma tabla en aproximadamente dos minutos, tal diferen-
cia puede dar lugar a pensar en un error en el primer algoritmo, o
en una implementación defectuosa de ese programa; pero al comparar
los resultados, se comprobó que eran similares y con el mismo núme
ro de términos.
También aparece aquí otro parámetro para evaluar el programa, y es
el número de términos en la solución, desgraciadamente no se pudo
comparar los resultados obtenidos con la solución mínima real en ta_
blas de un número elevado de variables de entrada, puesto que no se"
dispone de medios para hallar tal solución mínima, que no sea manua_T
mente, y esto es susceptible de cometer errores.
Además al tratar sobre el número de términos de'la solución se pre_
senta un limitante} y este es el número de términos que pueden ser
programados en la memoria-del microcontrolador. La longitud total
222
de memoria EPROM del microcontrolador INTEL 8751 es de 4 Kbytes(4096
bytes), de los cuales se han usado en el programa para resolver las
ecuaciones un total de 93 bytes, la tabla que contiene el número de
términos de la otra tabla ocupa 32 bytes, lo que deja disponible:
4096 bytes - 93 bytes - 32 bytes = 3971 bytes
como cada término ocupa 4 bytes se pueden programar:
= 992 términos.4 bytes
Es muy posible que una función determinada pueda ser resuelta por
el programa de minimización, pero que debido al número de términos
de la solución no se pueda implementar en el microcontrolador.
El retardo que se produce entre la entrada y la salida en el micro-
controlador es bastante apreciable, de hecho un cálculo aproximado
en el peor de los casos con Ta memoria llena es:
504 ose. * 992 + 264 ose. * 16 + 216 ose = 504408 ose.
que con un reloj con cristal de 12 Mhz dan:
504408 ose _i = 42 mseg12 * 106 ose
y con un cristal de 8 Mhz
504408 ose — ^ 53 mseg.8 * 10G ose
223
En ningún momento pueden estos retardos compararse con los retardos
que se obtienen en la electrónica digital, con compuertas o PAL o
memorias. De hecho el retardo típico de un dispositivo que usa tajn
bien una configuración de suma de productos normalizados es de
aproximadamente 15 nseg.
El tratar de usar el microcontrolador en sistemas digitales normales,
de trabajo con frecuencias un poco elevadas es un error; tanto por
rapidez y costo es más conveniente usar uno de los dispositivos me_n
clonados en el párrafo anterior. El resultado obtenido es el esper_a
do ya que de'ninguna manera se pensó en obtener un dispositivo que
pueda reemplazar a cualquier'circuito combinacional, pues de hecho
para que el microcontrolador ejecute una sola instrucción necesita
un mínimo de 12 oscilaciones del cristal, que representa:
12 ose x - 1 yseg (cristal de 12MHz)12 * 106 ose
El microcontrolador esta destinado primordialmente a un campo de uso
como es el ejecutar acciones de control en un proceso, dentro del
cual necesariamente se encuentran contemplados los problemas de fim
ciones combinacionales, el control ador debe resolverlos, o puede
implementarse externamente el circuito combinacional, dejando a éste
la tarea de recoger sólo los resultados para evaluarlos. Si el con_
trolador esta asociado a sistemas más lentos como es en la mayor pa_r
te de los sistemas industriales (válvulas, relés electromecánicos ,
etc.) el retardo puede ser aceptable e incluso despreciable.
Si se considera que un control ador trabaja en estos casos en base a
224
funciones combinacionales y secuenciales, la presente aplicación del
microcontrolador 8751 constituye un aporte en este campo.
Cabe anotar que la implementación de las ecuaciones en el microcon-
trolador no es la única alternativa o finalidad del programa. Pue-
de hacerse uso de las soluciones que entrega el mismo, para usarlo
con cualquier otra técnica de construcción o resolución, como por
ejemplo usar los términos de la solución para programar un PAL, ó
para implementar el circuito con compuertas.
5.3. CONCLUSIONES
Al terminar la realización del presente trabajo, se ha llegado a las
siguientes conclusiones:
- Luego de haber efectuado las respectivas pruebas al programa, y ha_
biendo hecho un análisis del funcionamiento y limitaciones del mis_
mo, se llega a la conclusión de que los objetivos planteados en
un principio han sido cumplidos en su totalidad.
- El programa implementado,•en su sección de minimizacion resuelve -
en un tiempo prudencial las tablas de verdad ingresadas. Lastimo-
samente, en tablas cuyo número de variables de entrada es mayor
que 6.} no se pudo comprobar los resultados obtenidos con los mfnj_
mos verdaderos; la razón principal es la gran dificultad que imp1j_
ca el resolver las tablas de esa magnitud en forma manual.
- Uno de los mayores limitantes en la rutina de minimizacicfn consti-
tuye el hecho de que el compilador C usado no permite que un arre_
glo ocupe una zona de memoria mayor que los 64 Kbytes, lo que redu_
ce el tamaño de las tablas que pueden manejarse, y con esto la co_n_
siguiente limitacio"n del número de variables de entrada. Este pro_
blema puede obviarse usando una estructura más compleja de manejo
de la memoria disponible, pero con un deterioro en la velocidad de
procesamiento. En caso de poder dimensionar un arreglo más allá
de los 64 Kbytes, el pro.grama. podría manejar un mayor número de va_
Hables de entrada.
226
En ciertos lenguajes, como versiones más modernas del FORTRAN, se
puede trabajar con arreglos mayores a 64 Kbytes, pero no ofrecen
las facilidades que presentó el lenguaje "O, lo que implicaría un
aumento en el tiempo de proceso.
El programa de minimización junto con la rutina de ingreso de da-
tos pueden usarse para una finalidad diferente a la que se da en
este trabajo. Talvez lo que ofrece las mejores perspectivas es el
desarrollo de un programa bastante completo para trabajar con di_s_
positivos PAL y EPAl. Para programar estos dispositivos es necesa_
rio disponer de las ecuaciones minimizadas, las que pueden hallar_
se con un programa comercial de similares características al que
se presenta; con un poco de trabajo adicional se pueden incluir
las rutinas de generación de los archivos que van a ser usados por
los programadores de los PAL.'
Se recomienda continuar el presente trabajo, de manera que se ob-
tenga las verdaderas ecuaciones mínimas, proceso que no se llevó a
cabo por problemas de capacidad de manejo de la memoria del compu_
tador y el tiempo de calculo que esto implica,
Es muy importante completar este trabajo con un estudio e implemen_
tación de un programa para manejar circuitos s'ecuenciales, lo que se
convertiría en una buena base de soporte en el diseño de circuitos
digitales.
Los tiempos de retardo que introduce el microcontrolador al resol-
ver las ecuaciones implementadas, son extremadamente grandes, si se
227
comparan con otros dispositivos disenados con el expreso fin de re
solverlas. Esto hace que una posible aplicación práctica del mi-
crocontrolador para resolver ecuaciones Booleanas se limite a sis-
temas lentos, como pueden ser los mecánicos o electromecánicos que
se encuentran en la industria.
De ninguna manera se puede considerar que es posible reemplazar -
cualquier circuito lógico combinacional con el microcontrolador ,
precisamente debido a esos retardos.
Una aplicación más práctica del microcontrolador resolviendo ecua-
ciones combinacionales es implementar internamente bloques de re-
ta'rdo, de manera de obtener un circuito sencuencial que sería más
versátil y que podría encargarse del control de un proceso de me_
diana complejidad.
MANUAL IDE LISO D^ PROGRAMA
Título
RESOLUCIÓN DE ECUACIONES BOOLEANAS USANDO EL MICROCONTROLADOR INTEL
' . 8751
Objetivo
El programa tiene como finalidad principal el realizar la minimiza-
ción de una función combinacional , partiendo de la tabla de verdad
de la misma. Los resultados obtenidos en ese proceso pueden servir
para impl ementarlos en un microcontrolador INTEL 8751, el que que-
da en capacidad de resolver dicha función.
Método
Para cumplir los objetivos planteados, el programa hace uso de los
siguientes métodos:
- Método de Quine - McKluskey
Se usa en la sección correspondiente a la minimización , para obte_
ner los implicantes primos. Se recomienda la siguiente lectura:
Frederick 0. Hill & Geral d R. Peterson
"Teoría de Conmutación y Diseño Lógico"
Editorial Limusa 1979.
- Método aproximado para la solución de la tabla cíclica, el método
se toma del siguiente artículo
Bowman, R. M. & E. S. McVey
"A method for the fast approximate solution of large prime impli-
cants Charts"
IEEE TRANS. ON COMPUTERS, VOL C-10 No. 2
Feb., 1970, pp. 169 - 173.
Generalidades
Para el funcionamiento del programa se requiere básicamente lo si_
guíente:
- Computador IBM PC o compatible.
- 448 K de memoria mínimo.
- Monitor monocromático.
- 2 Orives de diskette (5¿" - D5DD)
- Impresora de 80 columnas (no es estrictamente necesaria).
- Como opción puede usarse con un coprocesador aritmético.
- Si se desea programar la EPROM DEL MICROCONTROLADOR se debe dispo_
ner de un dispositivo que permita cumplir con dicha función.
- Si se desea usar un ensamblador, puede usarse.
Inicio
Para iniciar el uso del programa debe precederse así:
- Encender el computador, debe usarse el sistema operativo MS - DOS
Versión 2.0 o más moderna.
- Colocar el disco de programa en un drive de diskette (puede estar
ya Instalado en un disco duro) y el diskette de aplicaciones en
otro drive.
El diskette del'programa no debe estar protegido contra escritura.
- Cambiarse desde el Sistema Operativo a la unidad en que se encue_n_
tra el disco de programa.
- Teclear:
MÍNIMO
Mota: Deben existir los siguientes archivos en el disco de Progra
• mas:
MÍNIMO, EXE Programa general.
TOTEX. EXE Rutina normal de minimización.
TOTEXS7 . EXE Rutina de minimización usando un coprocesador
aritmético 8087.
ARCH.TRB Arch.ivo de trabajo.
Ingreso de Datos
El programa siempre empieza por la rutina de ingreso de datos.
Uno de los primeros datos que se pide es la unidad en que se encuen_
tra el disco de datos, Ingrese A, B o C.
De Inmediato aparece el menú principal de la rutina de ingreso de
datos con varias opciones, además de una indicación de la última
tabla con la que se ha trabajado, que se constituye como la "Tabla
en curso". Las opciones del menú son:
1. Entrada/revisión de datos (la tabla ya existe).
2. Crear una nueva tabla de verdad. Al escoger esta opción'
se destruye el contenido de la tabla, si esta ya existía,
de todas maneras se le pide confirmación si se detecta la '
existencia de la tabla.
3. Cambio a otra tabla de verdad (Puede ya existir, o se cam
bia para crearla).
4. Impresión de la tabla de verdad.
5. Cambio de Unidad de disco de datos.
6. Concluir la entrada de datos. Con esta opción ingresamos
al menú general del programa.
Al escoger la opción 1, se despliega en la pantalla el estatus de
la tabla, el mismo que da información acerca de:
- Texto informativo del contenido.
- Numero de entradas.
- Número de sal idas.
- Estado de la Tabla. " '
- Ultima página.
- Modalidad con que se ingresó originalmente los datos (Tabl^
ecuación).
En el caso de haber seleccionado la opción 2, todos los datos ante_
riores (opción 1) deben ingresarse, siguiendo las instrucciones que
se indican en la pantalla..
Existen dos modalidades de ingreso de datos:
- Como Tabla de Verdad.
- Como ecuación.
Ingreso como Tabla de Verdad.-
Es la forma principal del ingreso de datos, se ha diseñado esta sec_
ción de manera de obtener el manejo más sencillo y eficiente. El
despliege en la pantalla es igual a una tabla de verdad, se han Y\a_'
bilitado las siguientes teclas:
-— —-v Cambiarse de función.
1 I Cambiarse de término.
Pg Up Cambiarse de la página anterior.
Pg Dn Cambiarse de.la página siguiente.
End Cambiarse a la última página en la que se ingresó da-
tos .
Home Salida momentánea de la tabla de verdad a otro menú.
Ins Al presionar esta tecla se cambia el estado de la v_a_
Hable en la posición que indica el cursor, si se sj_
gue presionando, sigue cambiando ese valor. Se ha esco_
gido la siguiente representación:
i ~ Falso 1 - Verdad 2 = No importa
Si se presiona la tecla Home, se cambia al siguiente menú:
1. Continuar en la tabla.- En esta opción, se vuelve al mismo
lugar de la tabla en que se encontraba antes de presionar
el Home.
2. Volver a una página determinada.- El programa le pregunta
a que página desea volver, y se debe ingresar el número.
Se vuelve a esa página.
3. Acabar el trabajo en la tabla.- Se vuelve al menú general
del ingreso de datos.
Ingreso como Ecuación.-
Se tiene acceso a esta modalidad cuando:
- Se está creando una nueva tabla de verdad.
- Se esta trabajando en una tabla que ha sido creada desde una ectm
ción.
Para ingresar las ecuaciones se deben seguir las siguientes reglas:
Caracteres permitidos:
A,B,CS'J ,N como operandos (variables).
Deben ser estas letras mayúsculas y se deben usar ordenadamen_
te, es decir que para dos variables de entrada se usarán A y
B, para tres A, B y C, etc. A corresponde al bit más signifi_
cativo.
Operadores:
Se han definido los siguientes operadores:
+ Operador Lógico OR.
* Operador Lógico AND.
! Operador Lógico NOT (negación).
() Operador de agrupación (Es el único permitido, u puede
usarse tantas veces como se necesite),
i
Todas las ecuaciones deben escribirse entre paréntesis.
Cuando se ingresa por primera vez la ecuación, ó se la reescribe to
talmente, están habilitadas, las teclas generales de edición del BA
SIC. Se debe acabar el ingreso de la ecuación presionando la tecla
ENTER UJ).
Cuando se trabaja con el modo de Edición (por haberse detectado un
error, o por haber ingresado a éste para revisar las"ecuaciones), se
habilitan las siguientes teclas:
— —»• Cambiarse de un carácter a otro.
Del Borrar el carácter en la posición que se encuentra el
cursor.
Ins 'Hábilita/Deshabilota el modo de inserción de Caracte-
res (si esta des'habil itado, se reescribe el nuevo ca-
rácter sobre el anterior, en la posición del cursos).
También todas las teclas válidas de operandos y operadores.
End Concluye el modo de Edición para esa función.
Al concluir el ingreso de las ecuaciones se dan dos alternativas:
- Volver a editar las funciones.
- Inicio de su resolución.
Cuando se concluye la resolución de las ecuaciones, se vuelve al me_
nú general de la entrada de datos.
Impresión de la tabla de verdad.-
Se ofrecen las siguientes opciones:
- Imprimir toda la tabla.
- Imprimir una zona de la tabla.
- Cancelar la impresión.
En cualquier momento puede detenerse la impresión, pulsando la te-
cla ESC. luego de lo cual se puede:
- Reiniciar la impresión.
- Cancelar la impresión.
Se vuelve luego al menú general de entrada de datos.
MENÚ PRINCIPAL
Luego de haber definido sobre que datos se va a trabajar, se ingre_
sa al menú principal que ofrece las siguientes opciones:
1. Volver al ingreso de datos.
2. Inicio de la minimización.
3. Generación del programa para el 8751.
4. Impresión de resultados,
5. Acabar el programa (volver al DOS)
Minimización.-
Se ofrecen dos opciones:
- Rutina normal (se ejecuta el programa TOTEX.EXE).
- Rutina para funcionamiento con un coprocesador aritmético
• 8087 (se ejecuta la rutina TOTEX87.EXE)
Generación del Programa para el 8751.-
La opción de generación del programa para el 8751 ofrece dos alter-
nativas:
-generación de programa fuente, en nemónicos, el que se gr_a_
ba en un archivo con la extensión.ASM. Este programa debe
luego ensamblarse, para generar un código hexadecimal que
va a ser usado por el programador.
- Generación directamente del archivo hexadecitnal, que va a
ser usado por el programador. Se ha seleccionado un forma,
to INTEL HEX.
Este archivo tiene la extensión .HEX.
Concluido esto, se vuelve al menú principal.
Impresión de Resultados.-
Se ofrecen estas alternativas:
- Impresión de los Implicantes Primos.
- Impresión de los Términos de la solución.
- Impresión del programa fuente para el 8751.
~ Cancelar la impresión.
Concluida la impresión se vuelve al menú principal.
Terminar el Programa.-
Se realiHa con la opción 5 del menú principal. Se vuelve al
Sistema Operativo.
LISTA DE ARCHIVOS QUE SE GENERAN'CON EL PROGRAMA MÍNIMO .EXE
Todos los archivos generados para una misma tabla de verdad tienen
Igual nombre, varía sólo la extensión asi:
Nombre. IXT Archivo índice que contiene la Información sobre la
constitución de la tabla de verdad.
Nombre. DAT Archivo que contiene la tabla de verdad.
Nombre. FOR Archivo que contiene Tas ecuaciones, si se selecci£
no el modo de Ingreso de datos como tal.
Nombre. IXP Archivo índice que contiene Información sobre la ta_
bla de Implicantes primos.
Nombre. PRI Archivo que contiene los implicantes primos.
Nombre. IXS Archivo índice que contiene información sobre la ta_
bla de términos de la solución.
Nombre. SOL Archivo que contiene los términos de la solución.
Nombre. ASM Archivo que contiene el programa fuente para ser
usado por un ensamblador.
Nombre. HEX Archivo que contiene el programa para el microcon-
trolador 8751, en formato INTEL HEX.
10 KEY QFF:CLS:ON ERROR GOTQ 27202 0 ' -30 ' ESCUELA POLITÉCNICA NACIONAL40 '50 ' FACULTAD DE INGENIERÍA ELÉCTRICA60 '70 ' TESIS DE GRADO80 '90 ' TEHA: RESOLUCIÓN DE ECUACIONES BOOLEANAS UTILIZANDOIDO ' EL HICROCONTROLADOR INTEL 8751110 '120 '130 ' AUTOR: PATRICIO IVAH CHICO HIDALGO140 '150 ' DIRECTOR: Ing. FERNANDO FLORES CIFUENTES160 '170 ' . AGOSTO DE 1987130 '190 '200 ' EL SIGUIENTE PROGRAHA REALIZA LA HIHIHIZACION DE UH GRUPO DE2ÍO ' FUNCIONES CONNACIONALES. EL INGRESO OE DATOS PUEDE SER REA-220 ' LIZADO MEDIANTE UNA TABLA DE VERDAD DE DICHAS FUNCIONES, O230 ' COMO UNA ECUACIÓN NO MINIMIZADA.240 '250 ' PARA EL PROCESO DE HINIMIZACIOH SE HAN USADO DOS DIFERENTES260 ] ALGORITMOS EN CADA UNA DE LAS PARTES ESENCIALES:270 '280 ' -SE USA EL NETODO DE QUINE HcKLUSKEY EN LA PARTE CORRES290 ' PONDIENTE A LA DETERMINACIÓN DE LOS IMPLICANTES PRIHOS300 ' PARA MAYOR 3NFORHACIOH SE RECOMIENDA REVISAR:310 ' Frederick J. Hiil & Gerald R. Peterson320 ' "TEORÍA DE CONMUTACIÓN Y DISEflO LÓGICO"330 ' Editorial Liausa ,1979340 '350 ' -PARA LA RESOLUCIÓN DE LA TABLA CÍCLICA QUE PUEDE APARECER360 ' SE USA UN MÉTODO APROXIMADO DE RAMIFICACIÓN PARCIAL,QUE370 ' SE HA TOHÁDO BE LA SIGUIENTE PUBLICACIÓN:380 ' eoHBan.R.H. , & E.S. MeVey390 ' 'A HETHOD FOR THE FAST APPROXIHATE SOLUTIOfl OF LARGE400 ' PRIME IHPLICANT CHARTS'410 ' IEEE Trans. en Cocputers ,vol C-10 ,Ho. 2420 ' Feb. ,1970 , pp 109-173430 '440 ' LA ULTIMA SECCIÓN DEL PROGRAMA, GENERA UN PROGRAMA450 ' PARA EL MICROCONTROLADOR INTEL 8751 ,EL CUAL YA PROGRAMA-460 ' DO ESTA EN CAPACIDAD DE RESOLVER LAS FUNCIONES INGRESADAS470 '480 '490 'INICIO DE LA RUTINA DE INGRESO DE'DATOS500 '510 '520 OPEíl 'ARCH.TRB ' FOR INPUT AS*1:CLOSE«1
530 '540 'EJECUCIÓN DE LA RUTINA DE INGRESO DE DATOS550 '560 GOSUB 3440570 CLEAR:ON ERROR GOTO 2720580 '590 CLS:LOCATE 10,30:Pf¡IHT"OPCIOHES"000 OH ERROR GOTO 2720:CLOSE:LOCATE 'n.lSrPRINT'I.-VOLVEfi AL PROGRAMA DE «ESODE DATOS'610 LÓCATE 14,15:PRIHr2.-INICIO DEL PROGRAMA DE HINIHIZACION"620 LÓCATE 15,15:PRINT'3.-GENERACIÓN DEL PROGRAMA PARA EL 8751'630 LÓCATE 16,15:PRINT"4.-IMPRESIÓN DE RESULTADOS'640 LÓCATE 17,15:PRIHT"5.-ACABAR EL PR06RAKA (VOLVER AL SISTEIIA OPERATIVO)"650 LÓCATE 20,25:PRIKT"ESCOJA UNA OPCIÓN'660 A$=IHKEYí:IF A5="° THEN 650670 IF At=T THEN 560 ELSE IF Aí~'2" THEN 700 ELSE IF Aí=*3" THEN 840660 IF Á5-'4° THEN 2940 ELSE IF Aí='5' THEN SYSTEH ELSE 6EEP:GOTO 650690 '700 'INICIO DE LA RUTINA DE HINIRIZACION710 '720 QPEirTOTEX.EXE' POR INPUT ASfhCLOSEil730 OPEN70TEX87.EXE' FOR INPUT ASthCLOSESl740 CLSrLOCATE Í5,15:PRIÍ1T"TIENE COPROCESADÜR ARITMÉTICO 8087..(S/H)" •750 AÍ=IHKEYí:IF A$=" THEH 750 ELSE IFÍA$="S")OR(Aí=V} THEli ARÍ="TOTEX87.EXE':GOTO 770760 IF(AS=T)OR(AS=V) THEH ARJ='TOTEX.EXE' ELSE GOTO 750770 ' •780 SHELL AR$790 '800 LÓCATE 24,78:PRINT' "rPRINT^RESIONE CUALQUIER TECLA PARA CONTINUAR'810 A$=IHKEYí:IF A$=" THEN 810 ELSE SOTO 590820.'830 FOR 1= 1 TO H:INPUJ*U1U:SUH=SUH*KU:NEXT I840 'RUTINA DE GENERACIÓN DEL PROGRAMA PARA EL 8751 .850 ''860 OPEN'ARCH.TRB'FOR INPUT ASíl870 INPUTH,UHI$:INPyT31,NOH$:CLOSEííl8SO OPEH UNIÍí':"-tfíOM5ia.IXT" FOR IHPUT" AS31890 IHPUKl.ESTAíiINPUriI.HrlHPUTfl^irCLOSEil900 CL3:LOCATE 8,17:PRINT"GENERACION PROGRAMA PARA EL HICROCONTROLADOR 8751'910 LÓCATE 10,21:PRIHT"EL HOtfBRE DE SU ARCHIVO ES: ^NOMSf.OAT"920 LÓCATE il,l?:PRINTnEL CONTENIDO DE SU ARCHIVO ES:";ESTAt930 LÓCATE 12,]4:PRIÍÍT'HUHERO DE ENTRADAS N: "¡H/NUHERO 0E SALIDAS H:';H940 OPEN ÜHi;f;"JNOHír.iXS" FOR INPUT ASÍ1:SUH=0950 FOfi 1=1 10 H:IHPUT*I,HU:SUH=SUH+NU:HEXT I:CLOSEíl960 IF SUfí(993 THEN 1010970 LÓCATE 17,U:PRINT"SU TA8LA HO PUEDE IMPLEilENURSE EN EL HICROCONTROLADOR'980 LÓCATE 18,16:PRIHT"DEBIDO A QUE TIENE DEMASIADOS TERHIHOS.. ) TERHINOS=';SÜH990 LÓCATE 20,20:PRINT'PRESIONE CUALQUIER TECLA PARA COHTIHUAR'1000 ÁÍ=INIÍEY$:IF A5-" THEH 1000 ELSE GOTO 5901010 LÓCATE 17,22:PRIHn.-GENERACIÓN DEL PROGRAMA FUENTE'"1020 LÓCATE 18,13:PRIHT'2.-GENERACIÓN DEL PR06SAMA EH FORMATO HEXADECL1AL INfEL"
1030104010501060107010801090110011101120875111301140115011601170118011901200121012201230124012501260127012801290130013101320133013401350136013701380139014001410142014301440145014601470148014901500151015201530
LÓCATE 20,27:PRINrESCOJA UUA OPCIÓN"A$=IHKEY$:IF A$=" THEH 1040 ELSE IF At-"2' THEH 2100IF AJO"!" THEH BEEP:60TO 1030LÓCATE 22,21:PRIHT"ESTOÍ GENERANDO EL PROGRAÜA FUEHTE'OFEH UNIJ>V«i-í'.ASH' FOR OUTPUT AS 51!
'INICIO DE LA GENERACIÓN DEL PROGRAMA FUENTEi
PRIHTSl,'ÍTITLE ESCUELA POLITÉCNICA NACIONAL F. INGENIERÍA ELÉCTRICA'PRINTil/ÍSUBTTL RESOLUCIÓN DE FUN.BOOLEANAS CON EL HICROCOHTROLADOR INTEL
PRINT*1,PRIHTJ1,PRIHTtl,PRINTfil.PRINTil.PRÍHTSl.PRINT31PRIHTI1PRIHTI1,PRINTIl.PRINTSl
';ARCHIVO: ';N"¡CONTENIDO: C"¡ENTRADAS: ";N;Y'ORG OQH"'SALTOO:MOV RO.PO
PRINTI1,PRIHTIiPflINTSlPRIHTiiPRIHTílPRIHTSl,PRIHTI1PRIílTitlPRIHT81,PRIHT*1,PRINTHPRIHTSl,PRIHTI1PRIHT31PRINTUPRINTil.PRTNTilPRIHTIl,PRINTHPRIHTfl.PRIHT31PRIHT81,PRIflTH,PRINTI1PRIHTIl.PRIHTilPRIHTJ1PRIHTÜPSIHTil
SALIDAS: ";H
¡INICIO DEL PROGRAMA DE SOLUCIÓN";LEER LOS PÓRTICOS DE ENTRADA'
"HOV R2,t4BH ¡OFFSET DE LA PRIMERA TABLA""HOV DPTR,!007EH ¡INICIO DE LA TABLA DE TÉRMINOS DE LA SOLUCIÓN""HOV R3,*";H¡" ¡NUMERO DE FUNCIONES DE SALIDA''MOV 3QH,«OOH ¡IHICIALIZAR LOS REGISTROS DE SALIDA""MOV 31H,§OOH""SALTO!:""HOV A,R2 ¡DETERMINAR EL NUMERO DE TÉRMINOS DE ESA FON.'"HOVC A,SA+PC ¡DETERMINAR LOCALHACION DE LAS TABLAS""ÜOV R4,A""MOV A,.S2-"CLR O'"SUBB A.J05H"
¡INICIAL™ EL BIT DE TRABAJO'
"HOV fi5,A""INC R2""INC R2"'CLR OOH"SALT02:""CJNE R4,SOOH,SALT03 ¡CONTADOR DE NUMERO DE TERHINOSJ"CJHE R5(iOON,SALT03""SJHP SALTO?'"SALTOS:""CLR A1
•HOVC A,ÍA*DPTR ¡RUTINA PARA DETECTAR LOS BITS QUE""ANL A,R1 ¡SE HAN ELIMINADO EN LOS TÉRMINOS""HOV R6,A*"INC DPTR""CLR A*"MOVC"ANL A.RO''HOV R7,A*'INC DPTR'"CLR A"
1540 PRIHTI1/HOVC A.WPTR ¡RUTINA DE COMPARACIÓN COH LOS TER-"1550 PRIHT*l,"CJtlE A,R6,SALT04 ;HIHOS RESULTANTES"1560 PRINTS1/IHC DPTR"1570 PRINTtl. 'CLR A" '1580 PRIHTS1/HOVC A. iA+DPTR"1590 PRIHTtl/CJHE A^SALTQS"1600 PRIHTI1,'SET8 OOH'1610 PRIHTSl,"SJHP SALTOS"1620 PRIHTI1/SALT04:'1630 PRINTfl/INC DPTR'1640 PRINT51,'SALTOS:'1650 PRINTtl/IHC DPTR"1660 PRINTtl/CJNE R5,30ÜH,SALT06"1670 PRINTS1/DEC R4"1680 PRIHTS1,"SALT06:'1690 PRINTííl/DEC R5"1700 PRINTÍl/SJHP SALT02"1710 PRINT31/SALT07:'1720 PRINT31/HOV C,OOH • RECUPERAR EL RESULTADO DEL BIT DE TRABAJO"1730 PRIHTSl,"HOV A,30H ¡COLOCAR EL BIT Eli EL REGISTRO DE SALIDA"1740 PRIHTtl/RLC A'1750 PRIHTSl,"HOV 30H,A'1760 PRIHTI1/HOV A.31H31770 PRIHTS1/RLC A"1780 PRIHTSl,"HOV 31H,A'1790 PRIHTfl/DJHZ R3.SALT01 ¡VERIFICAR SI SE HAN ACABADO LAS FUNCIONES'1800 PRIHTSl,"HOV P2.30H ;COLOCAR LOS RESULTADOS EH LA SALIDA11810 PRIHTil.'HOV P3.31H"1820 PRIHTIi/SJHP SALTOO"1830 PRIHTSl,"¡INICIO DE LQ PRIHERA TABLA"
1850 RUTINA DE INGRESO DE LAS TASLAS1860 '1870 HU=0:OPEH UHU+":"+NOH^'.IXS" POR INPUT AS $2 -1880 FOR 1=0 TO 151S90 IF I)=H GOTO 19201900 IHPUT52,HU11910 GOTO 1930 '1920 Nül-01930 HU-NüfHül1940 IF 1=0 THEN PRIHTÍ1,"DH ";NU1;:60TO 19701950 IF 1=7 THEN PRIHTÍl/'rPRIHTfI/Dtí ";NU1;:GOTO 19701960 PRIHT}l,",J;Hlil;1970 NEXT I1930 CLOSE 121990 UPEN UNU+V*NOH$*".SOL' FOR IHPUT ASI22000 PRIHTSl," ":PRIHTS1,";IHICIO DE LA SEGUHDA TABLA";2010 IHD=02020 FOR 1=1 TO HU2030 INPUTI2,TER12040 IHPUTt2,TER22050
2060 IF IHD=0 THEH PRIHTI1,"":PRIHTI1,"DH Y ';TER2;:GOTO 20802070 PRINTJil,Y;TER2;2080 PRIHTS1,Y;TER1;2090 IND=INDH: IF IHD}4 THEH IHD-02100 NEXT I2110 PRINm/'iPRINTSVEND"2120 GLOSE2130 LÓCATE 23,17:PRINT'CONCLUIDA LA GENERACIÓN DEL FROSRAÍÍA FUENTE"2140 FOR 2Z=1 JO 1000:HEXT Z2:GOTO 5902150 '2100 'RUTINA PARA LA GENERACIÓN DE PROGRAHA EN FORMATO INTEL.HEX2170 '2180 LÓCATE 22,17:PRINTnESTOr GENERANDO EL CÓDIGO EN FORHATD HEX. INTEL"2190 OPEN UNI$tY+NGH$+'.HEX" FOR OUTPUT ASI12200 PRINT81,':0900000flA880A9907A4B90007EC3"CHRt(13}CHR$(10);2210 Q=22202230 LIN$-u:02000?007B°iHXS:LOH=2:SOSUB 2530 'RUTIHA DE CHXSUH2240 PRINT$1,'LIN$;CHRÍ(13)CHR$(10);2250 PRIÍJT11/:Q5000B007530QQ7531A5°CNRÍ(13)«(10);2260 PRIÍ!Tííl,ü:iOOQ10ÜGüOEA83FCEAC3940583FDOAOAC200BC001F"CHR$fl3)CHR${lOh2270 PRIHT31J":10QQ200GQ5BD0002BQ22E49359FEA3E49358FFA388"CHR$(13)CHR$(1Q);2230 PRI!iTil,":10003000E493B5060AA3E493B507Q5D200800lA383"CHR$(13)CH8í(IO);2290 PfiIíiTSl,":10004000A3BD0001iClD80D6A200E53033F530E5CGBCi!R$(l3)CHRS(lO);2300 PRINTI1J":OE0050003133F531DBB68530A08531B080A2A5DCHR$(13)CHR$Í10};2310 HU=0:OPEH UHI$+':"+HOH$+".IXS" FOR INPUT ASÍ22320 FOR 11=0 TO l:LIN$-":1000¡'-fCHRí(53ííl)-fI'EOO"2330 FOR JJ-i TO 8:ÍF ((II*8HJJ)JH THEH (íUH=0:80TO 23502340 INPUT32,NÜH2350 NU=HU+NUH:60SUB 2630 'RUTINA DE CON. DECIMAL HEX 42360 LIH$=LIH$*HXí:HEXT JJ:LON=1Ó2370 GÜSUB 2530 'RUTINA DE CHKSOÜ2380 PRINTfI,LIN$;CHR$(l3)CHR$(l());:HEXT II2390 CLOSE32:OPEíi UllIÍ+':^HOH$-f .SOL' FOR INPOT AS32:PS-1262400 IF NU)4 THEH LOH=16:HU=HU-4:LIH$=":iO":SOTO 24302410 IF ¡ÍIIÍ-O THEH 2510 'IR AL FINAL2420 LIHÍ=":O^IIIBt(1'123456789A6CDEF",NU*41l):LOH=HUt4:HÜ=02430 HÜH=P6:60SUB 2&30 'RUTINA DE GOHV. DECIHAL HEX 4244Q LIN$-LIHÍ+HXS+"00"2450 FOR 11=1 TO LON/42460 INPyT32,TERl:INPUTI2JER2:TER2=(2AN)-TER2-l2470 NUM=TER2:60SEJ8 2630:LIHÍ=LIH^HXí 'RUTIHA DE CONV. DECIHAL HEX 42480 IÍÜH=TERl:60SUfl 2630:LIH$=LI«*HX$ 'RUTIHA DE COHV. DECIHAL HEX 42490 NEXT II:60SUB 2530 'RUTINA DE CHKSUH2500 PRINTS1,LINS;CHRS(13)CHRÍ(10);:PG=PGH6:60TO 24002510 CLOSEI2:CLOSE*1:60TO 5902520 '2530 'RUTINA DE CALCULO DEL CHEKSUH2540 '2550 TOT-02560 FOR 1=1 TO LONH2570
2580 HUH=(IHSTR("123456789ABCDEF',HlDí{HXí,l,l))*16)ílHSTR("123456789A8CDEF")HIDi(HX5,2,l})2590 TOT=TOT*HUH:NEXT I:NUI1=6553Ó!-TOT2600 60SUB 2630 'RUTINA DE COH. DECIMAL A HEX 42010 LIN$=LIHWID$(HX$,3,2):RETURN2020 '2630 'RUTINA DE CONVERSIÓN DE DECIMAL A HEXADECIHAL (4 DÍGITOS HEXADECIHALES}2640 '2650 m-"2660 FOR 1=1 10 4:Q=FIX(NUH/16):R=HUH-(aíl6):HUH=fl2670 HX$=HIÜíroi23456789ABCDEF",Rn,lHim2680 NEXT Í:RETURH2690 LÓCATE 23,I7:PRIHT'COHCLUIQA LA GENERACIÓN DEL CÓDIGO HEX. INTEL"2700 FOR ZZ=i TO 1000:HEXT ZZ:CLOSE:SOTO 5902710 '2720 'RUTINA DE RECONOCIMIENTO DE ERRORES2730 '2740 CLS:LOCATE 8,8:PRIHT*EHROR..";2750 IF (ERL-520)OR(ERL=860}OR(ERL=3000) THEN 28302760 IF {ERL=720)OR(ERL=730) THEN 28402770 IF (ERL=88Q)QR(ERL=3020) THEN 28502780 IF (ERL=I070)OR(ERL:3170) THEÍÍ 28602790 IF (ERL=1870)OR(ERL=3040)OR(ERL=3220)QR(ERL=1990} THEN 28702SOO IF ERL=3210 THEH 28802810 IFÍERL:3130)QR(ERL-314Q) THEN 28902820 GOTO 29202830 PRINT'NQ SE ENCUENTRA EL ARCHIVO ARCH.TR8":GOTO 29002840 PRINriJO SE ENCUENTRA EL ARCHIVO TOTEX.EXE':fJQTO 29002850 PRIHTaNO EXISTE ESA TABLA DE VERDADn:GÜTO 29302860 PRIHT'HO SE HA GENERADO EL PROGRAMA FUENTE DEL 8751":GOTO 29302870 PRINT1A TABLA NO SE HA HINIHIZADO TODAVÍA':GOTO 29302880 PRIHT'LA TABLA NO SE HA HINIHIZADO TODAVIA°:GOTO 29302890 PRINT"EN LA IMPRESORA":GOTO 29302900 LÓCATE 14,8:PRIHT°NO SE PUEBE CONTINUAR EN EL PROGRAMA"2910 FOR 1 = 1 TO 5000:NEXT hSTOP2920 PRINT'.. ERR= 'ERR/LINEA^ "ERL" CONSULTE EL MANUAL"2930 RESUHE 6002940 '2950 'RUTINA DE IMPRESIÓN DE RESULTADOS2960 '2970 CLS:LOCATE ÍO,15:PRIHT'RUTINA PE IMPRESIÓN DE RESULTADOS'2980 LÓCATE 12,12:PRINT"ALISTE LA IMPRESORA..LUEGO PRESIONE UNA TECLA'2990 Aí=IMEYl:IF Aí="u THEN 29903000 OPEN'ARCH.TRB' FOR INPUT AS413010 Ií{PUm,UNIí:INPUT!l,NOHi:CLOSEIi3020 OPEH UHI$4':-tHOHSr.IXT' FOR INPUT ASS13030 INPUTÜ.ESPirlNPUTtMhlNPUTSUlrCLOSEn304Ü OPEN UHmV-WHÍÍtMXS"TOR INPUT AStl:CLOSEJl3050 CLS:LOCATE 8,30:PRIHT*OPCIOHES"306Q LÓCATE 12,20:PRIHT' l . -TABLA DE IMPLICANTES PRIMOS"3070 LÓCATE 13,20:PflIHT'2.-TÉRMINOS DE LA SOLUCIÓN'3G8Q LÓCATE 14,20:PR].MT"3.-LISTADO DEL PROGRAMA FUENTE DEL 8751'
3090 LÓCATE 15,20:PRINn.-TERMINAR'3100 LÓCATE 19,27:PRINT"ESCOJA UNA OPCIÓN'3110 At=INKEY$:IF A3=" THEN 3110 ELSE !F AS="4" THEN 5903120 IF (AiOV)AND(Aí{r2")AND(AS{n") THEN BEEPrGOTO 31003130 UPEN "LPTh" FOR OUTPUT AS513140 PRINTS1,CHRÍ(13)CHRÍ(13)TA6(15)"ESCUELA POLITEGÍJÍCA NACIONAL"CHR$(i3)TA6(Í5)"FACULTAD DE INGENIERÍA ELECTRICA"CHr¡ÍÍI3)CHRí{13)TAB(l5)"TESÍS DERESOLUCIÓN DE ECUACIONES 600LEAHAS"CHRl(13)TAQ(3l)1USANDO EL HICROCOHTROLADORINTEL 8751"3150 PRINTM)CHRÍ(13)TAB(5)"CÜNTEHIDO DE LA TABLA:"HSPS,'EHTHADAS:"N/FUNCIONES:'M3160 IF AíOT THEN 32103170 OPEN UNWV-HíQHt+'.ASH" FOR INPUT AS Í23180 IF EOF(2) THEN PRINT tl,CHR$(12):CLOSE:GOTO 5903190 LINE INPUT*2,A$:PRIílTfl,TAB(5)A$3200 &OTO 31803210 TF A*=V- TNEN OPEH UíimV-fNOHylMXP" FOR IÍIPUT ASI2:OPEN UNUr:"".PRI" FOR 1HPUT AS33:PRINTI1)CHR$(13)TAB(20)"TABLA DE IHPLICAHTES PRIHDS"3220 IF A$= k 2 ' THEN OPEN UHIÍ^i^HOHÍ+'.IXS" FOR IHPUT ASa2:DPE!l ÜNI^":"".SOL" FOR INPUT ASg3:PRlNTH1CHR$( i3)TA8(20)üTEf íHIHOS DE LA SOLUCIÓN"3230 FOR INF=1 ÍO H32-íO PRIHTSl,CHRí(l3)CHRí(l3)CHR5(l3!TAB(lO)"FUNCION HUMERO: "IHF;CHR$(13)3250 FOR 1=1 TO 4 : P R I H T I 1 , ' " ; : F O R J=l TO H i P R I N T I i . C H R Í Í É W J r . N E X T J :HEXT I3260 PRIHT«1,"3270 FOR IND=1 TO3280 GOSUS 3370 'RUTINA DE CONVERSIÓN DE DECIHAL A BINARIO3290 TER$=BIH$:TER=ELIH: 80SUB 3370 'RUTINA DE CONVERSIÓN DE DECIMAL A BINARIO3300 FOR 1=1 TO N:IF HIDítEIfU,!,!):"!" TNEN RES$=RES$+'X":GOTO 33203310 RES$=RESt^ID$(TER$,I,l)3320 NEXT I3330 IF NUH)4 THEN PRINTI1,"":HUH-13340 FRINTJ1," "RES$;:HUH-NUH+i3350 NEXT IND:NEXT INF:PRINU1,CHR1(I2):CLOSE:SOTO 5903360 '3370 'RUTINA DE CONVERSIÓN DE DECIMAL A BINARIO3380 '3390 EIN$=STRINGí(H/0"):DEC=TEIÍ:J=03400 IF DEC^fl THEN RETURN3410 Q=FIX(DEC/2):R=BEC-((Í*2):HID$(BIH$1H-J)1)=HID$(STR$(RJ)2Í1):DEC=6:J=J+1:GOTO34003420 '3430 '3440 ON ERfiOfi GOTO 5340:KEY OFF:CL05E3450 '3460 '3470 '3480 '3490 '3500 'INICIO DE LA RUTINA DE INGRESO DE DATOS3510 '3520 '3530 DIH ?A(24,ló),HIÍiDAU(2)
35-10 DIH ABER(U150)!CE!iR(l6,50),OPH5(2),OPRí(4),VARIA$(5Q)1VALORES{50)IFi(l6)3550 DIH IDA(1É),IDC(16)1SOL(24,1^)3500 OPEH 'SCRN:" FOR OUTPUT ASÍ33570 CLSrGOSUG 78803580 LÓCATE 20,21:PRIHT "PRESIONE CUALQUIER TECLA PARA CONTINUAR"3590 A$=IHKEYt:IF Aí=" THEN 35903600 CLS3610 LÓCATE 10,14:INPUT 'UNIDAD DEL DISCO DE DATOS (A,B,C):",UNn3620 IF(U¡IIÍ(}"Au)AKD(UHI5()"B")A}ID(U}|I$í)'CM)AND(UHlSÍ.Í"a11)AfiD{UHI$í}'b')AND(UNIi<)V)THEN 36003630 OPEÍ1 "ARCH.TRB" FOR INPUT AS»3640 INPUT*l,AÍ:INPUTíl,NOH$:CLOSE31:60TO 36603650 LÓCATE 12,8:INPUT"EL NUEVO NOMBRE DE SUS ARCHIVOS (8 CARACT.HAX.)E$;",HOItt3660 LÓCATE 13,13:PRIHT'SUS ARCHIVOS SE IDENTIFICAN COUO ...*;NON$;\'3670 OPEN "ARCH.TRB" FOR OUTPUT AS313680 PRIHm,UNIÍ:PRIHTil,NOH$:CLOSE413690 FOR ZZ=I TO 2000:NEXT II3700 CLS:LOCATE 6,18:PRItlT"LA TABLA EN CURSO ES: ";UNIS+":"-HOHSí\DATn3710 Oíi ERROR GOTO 534Q:CLOSE:OPEN "SCRN:" FOR OUTPUT AS 833720 LÓCATE 8,29:PRIHT"OPCIOHES°3730 LÓCATE 12,12:PRIt!T"I.-ENTRADA/REVISIÓN DE DATOS (TABLA U EXISTENTE)'3740 LÓCATE 13,12:PRINT'2.-CREAR UHÁ HUEVA TABLA DE VERDAD*3750 LÓCATE 14,12:PRINT'3.-CAÍ!BIO A OTRA TABLA DE VERDAD"3760 LÓCATE 15,12:PKIHT"4.-IMPRESIÓN DE LA TABLA DE VERDAD"3770 LÓCATE 16,12;PRINT'5.-CAHB!0 DE UNIDAD DE DISCO DE DATOS'3780 LÓCATE 17,12:PRIHT"6.-CONCLUIR LA EÜTRADA DE OATOS"3790 LÓCATE 20,23:INPUrESCOJA SU OPCIOH= ",OP3800 IF (OPJ6) OR (OPÍl) THEN BEEP:LOCATE 2014i:PRIHTa ':60TO 37903810 IF OP=6 THEH RETURN ELSE IF OP=3 THEH CLS:GOTO 3É503820 IF OP=2 THEN 3970 ELSE IF OP=4 THEH 7420 ELSE IF OP^5 THEN 36003830 IF OP01 THEN 3790 ELSE 60SUB 38703840 LÓCATE 18,17:PRIHT "PRESIONE CUALQUIER TECLA PARA CONTINUAR"3850 Aí=INt:EyS:IF A$=" THEN 38503860 IF HOD05-"FORHULA" THEN 4160 ELSE 42603870 CLS:PRIHT13,CHRS(13)CHRí(l3ÍCHRi(i3)CHR$(l3)CHR$(l3)TAB(20)uIDEHTIFICACIOf!DE SU TABLA DE VERDAD"3880 OPEH UNmV+NOHí-fMxr FOR IHPUT AStl:JNPUTIl,ESP$3890 PRINTS3,CHRS(l3)CHRí(l3)TAB(20)nCONTENIDO: ";ESP$3900 IHPUTíI1N:PRINT33,TAB(20)i.EL HUHERO DE ENTRABAS ES N= ';H3910 IHPUTMtH:PRIHT33JAfl(2Q)'EL NUHERO DE SALIDAS ES H=";H3920 INPUTS1,ESTA$:PR1NTÍ3,TAB(20)'ESTADO DE LA TABLA: ";ESTA$3930 IF ESTAIÍJ'COMPLETO" THEN HPT-0 ELSE HPT=13940 INPUTI1,HPG:PRIHT23,TAB(20)"ULTIHA PAGINA: ";HP63950 IHPUT»,HODOí:PRIHT*3,TAB(20)"HODO DE MESO: ";HOD053960 CLOSE»:RETURH3970 OH ERROR GOTO 40403980 OPEH UNmV«^".DAT" FOR IHPUT AS?43990 CLOSEI44000 CLS:LOCATE 12,15:PR!HrATENCIÓN.,..LA TABLA ÍA EXISTE.SE DESTRUYE ?'4010 LÓCATE 14,10:PRIHT*SE RECOMIENDA CAMBIARSE A UN NUEVO NOHBRE DE TABLA'4020 LÓCATE 16,18:IHPUT"SE DESTRUYE (S /H) . . . . " ;A Í4030 IFU$--U")OR(A$=V)IHEN 3700 ELSE IFÍASOTHNDUSOVHHEN 4020 ELSE
40504040 RESUHE 40504050 OH ERROR SOTO 53404060 CLS:LOCAíE 10,23:PRINT"IDEf{TIFlCACION DE SO ARCHIVO'4070 LÓCATE 12,8:PRIHriDENTIFIQUE EL CONTENIDO DE SU ARCHIVO HAX 25 CARACTERES'4080 LÓGATE 14,10:INPIJT"COHTEHIDO:°,ESP$:IF LEN(£SP$))25 THEH ESP$=!1ID$(ESP$,1,25)4090 ESTA$='rHCOHPLETO':IIPe=0:HPT=04100 'PROGRAHA DE ENTRADA DE DATOS4110 CLS:LOCATE 10,25:PRINT"HETODQ DE HIHIHIZACIOH QÜINE-HcCLUSKEY"4120 PRINT TAB(15)"INTRODUZCA LOS DATOS HAXIHO 14 ENTRADAS Y/O 16 SALIDAS"4130 LÓCATE 14,30:IHPUT "HÜHERO DE ENTRADAS H-%N4140 LÓCATE 16,30:IHPUT "HÜHERO DE SALIDAS H=",H4150 IF (Hí=0) OR ÍH(=0) THEH 4120 ELSE IF (NH4) OR (HJ16) THEH 41204160 CLS:LOCÁTE 9,24:PRINT"HODO DE INGRESO DE DATOS"4170 LÓCATE 13,20:PRINT"i.-TRABAJO EH LA TABLA DE VERDAD"4180 LÓCATE 14,20:PRIHT'2.-TRABAJO CON LAS ECUACIONES"4190 LÓCATE 15,2G:PRINT"3.-REGRESO AL HENU ANTERIOR"4200 LÓCATE 17,26:INPUT"ESCOJA UNA OPCIOH:",OP4210 IF (OPJ330RÍOPÍ1) THEH 6EEP:LGCATE 17,44:PRINT" ":GOTO 42004220 IF OP=3 THEN 37004230 IF HP8=0 THEN OPEfl ÜNí$*":"+NOH$í".IXT" FOR OUTPUT ASÍ1 ELSE SOTO 42504240 PRIHTÍl.ESPÍ^RIHTÍl.HiPRIHTfljHrPRINTn.ESTAÍrPRIHTffi.HPS4250 IF OP^2 THEH 54004260 IF HP6=0 THEH tiÜBO$="TABLA0:PÍUffí3í,HODQ$:CLOSESl4270 CLS:LOCATE 6,21:PRIHT"TECLAS OE TRABAJO EN LA TABLA DE VERDAD"4280 LÓCATE 11,18:PRIHT CHRí(27);° °;CHfi$(2á);" CAHBIARSE DE FUNCIÓN"42?0 LÓCATE I2,1S:PRINT CHR$(24);n °;CHR$(25);" CAHBIO DE HIHTEfiHINO"4300 LÓCATE 13,18:PRIHT"PgUp CAHBIÁRSE A LA PAGINA AHTERIOR"4310 LÓCATE i4,18:PRIHTuPgDn CAHBIÁRSE A LA PAGINA SIGUIENTE'4320 LÓCATE í5,18:PRIHT"End CAHBIARSE A LA b'LTIHA PAGINA QUE SE HA CREADO"4330 LÓCATE ló^SiPRIHT'Hone CAHBIARSE A OTRO HENU"4340 LÓCATE 17,18:PRIHT"Ins CAHBIAR LA CONDICIÓN DEL ITEH"4350 LÓCATE 18122:PRIHT"0=FALSO ^VERDAD 2=HO IHPORTA"4360 LÓCATE 21(20:PRIHT"PRESIOHE CUALQUIER TECLA PARA CONTINUAR"4370 A$=IHKEY$:IF A$=" GOTO 43704380 HXKIH=2AN :PAG=14390 OPEN UHI$f:'íHOH$r.DAT" ASI2 LEH=24*H4400 FIELD32,12*H AS HIHBATJÍlIJZtH AS HIHDAUÍ2)4410 GOSUB 44304420 SOTO 46104430 GOSUB 51404440 ffíH=24*(PA6-lí:ULHI=l:IX=I4450 CLS:LÓCATE 1,14460 'RUTINA DE CONVERSIÓN DECIfíAL A BINARIO4470 AÜS=" 0":BIN$=' "4480 FOR 1=1 TO H:flIH$=BIN$+AU$:NEXT I4490 OEC=HIH :J=04500 IF DEC-0 THEH 45304510 Q=FIX(DEC/2) :R=D£C-(Q*2)4520 HIDíÍBI«$,2*(H-Jj,2)=STRí{R):ÍíEC=Q:J=J+l:60TO 4500
4530 PRIÍIT83,USINS * 3 3 3 3 * ; H I N ; : P R I H T i 3 , U S T H S * r ¡GIHÍ; :PRIHm," " ; T Á B(2*HM5);4540 FOR J=l TO H : P R r N T S 3 ) " ; P A ( i X , J ) ; : H £ X T J4550 HMItin :ULHI=ULHIt l :n=mi4560 IF ( H I N { H X H I N ) A H B ( ( J L Í I I Í 2 5 ) THEÍI P8IHTi3,":60TÜ 44604570 LÓCATE 23)79:PílIHTi31" "tLOGATE 25,1:PRIHT«31' DEC °; :FOR 1= 1 JO IH$=C ( W ( 6 4 + I ) : P R I N T S 3 , ' " ; X $ ; : K E X T 14580 PRIHTI3," " ; : F O R 1=1 TO Í! :PRINTI3,USIHG " «";I;:!1EXT I4590 IF HIHí-OIH THEN ULPAG=I:HPT=1:RETURN4600 U L P A G = 0 : R É T U R H4610 V E R = l : H O R = 2 * N + 1 6 : I H V = l : I H H = i4620 LÓCATE V E R , H Ü R , 14630 A $ = I H K E Y $ : I F L E N ( A $ ) ( ) 2 GOTO 46304640 AS^IDJtA^,!)4650 TF A$='G' SOTO 4820 ELSE IF A$=T SOTO 4690 ELSE IF A$=T GOTO 47204660 IF A$=T SOTO 5040 ELSE IF A$=T SOTO 4780 ELSE IF A$=T GOTO 48004670 IF A$=J0° SOTO 5020 ELSE IF A$^nPu GOTO 4740 ELSE IF A$="Q" SOTO 50704ÉSO GOTO 46304690 IF PAÍIÜV1IHH)Í=2 THEH PA(IHV,INH)=0:GOTO 47104700 PA(INVTINH)=PA(IHVÍINH)-H4710 LÓCATE VER,HOR-1:PRIHT PA(IHV,ÍNH);:LOCATE VER^OR^iGOTO 40304720 IF VERÍ=1 THEH BEEPrSOTO 4¿30'4730 VER=VER-1:IKV=IHV-1:GOTO 46204740 IF VER)=24 THEH BEEPrGOTO 4630:IF ÜLPAG^O GOTO 47704750 IF ULPAG=0 GOTO 47704760 IF IHV)=ULHI-1 THEN BEEP:GOTO 46304770 VER=VERH:IHV=IHV-H:fiOTO 462047SO IF HORÍ=(2*Ntl6) THEN BEEP-.GOTO 46304790 HÜR=H08-3:IM=JNH-1:GOTO 46204800 IF HOR)=( (2*K}+(3*H) -H3) THEN E E E P : G O T O 46304810 H O R = H O R + 3 : I N H = I H H + h G O T O 46204820 GOSIÍB 5260-.IF P A G J H P G THEH MFfi=!IPG*l4830 IF HPT=0 THEN SOTO 48604840 ESTAí^COHPLETO"4850 GOTO 48704860 ESTA$--'ÍNCOHPLET0"4870 CLS:LOCATE S^OrPiíIHT'OPCIOtlES114880 LÓCATE 12,22:PRIHT11l.-COfiTIHUAR EH LA TABLA"4890 LÓGATE 13,22:PRINT"2.-VOLVER A UHA PAGINA DETERHIHADA'4900 LÓCATE 14,22:PRIHT"3.-ACABAR EL TRABAJO EH LA TABLA"4910 LÓCATE 18,27:PRIHT'ESCOJA LA OPCI01J:";4920 AJ=IHKEyí:IF A$="' THEH 4920 ELSE IF A$=°3" THEH 49704930 PÜIf/T A5.-IF AS-T THEN 4410 ELSE IF AJ<>"2" THEH BEEP:LOGATE 18,44:PRIHT"
°:SOTO 49104940 LÓCATE 2 0 , 2 2 : P R I f J T ° T H G R E S E EL H U H E R O DE PAGINA: " ; : I N P Ü T " " , O P4950 IF (OP}HPG)OR(OPÍ1) THEH BEEP:LOCATE 20,50:PRIKTS ":GOTO 49404960 P A G = O P : G O T O 4410 .4970 PRIHT A í : G O S U B 4980:GOTO 37004980 OPEí,1 ÜNU+D :MHOHsr.Ixr FOR OUTPÜT ASil4990 P R I H T Í l . E S P S i P R I H T S l ^ l r P R I H T l t l ^ i P R I Í i T n . E S T A í i P R I H T i H ^ P G i P R I H T i l ^ O D O í5000 P R I H T " : P R I H T TAB(20) ' A R C H I V O : ' , K O K $ : P R I H T T A B ( 2 0 ) "SO ARCHIVO ESTA:"ESTAí:CLOSE S2-.CLOSE31
5010 FOfi ll-l 10 2000:NEXT ZZ:RETURN5020 GOSUB 5260:IF PAGJHPG THEN HPG=HPG+1 .5030 PA6=HP6:GOTfl 44105040 IF PAG{=1 GOTO 46305050 GOSUB 5260:IF PASÍHPG THEH HP8=HP6*15060 PAfi=PAG-l:GOTO 44105070 GOSU8 52605080 IF ULPAG^G GOTO 51005090 HPG=PAG:SOTO 44105100 IF PAG{=HPG THEH HPG=HPG-15110 HPG=HPStl:PAG=PA6H:IF (24*ÍPAG-l))<(2*N) THEN SOTO 44105120 GOTO 46205130 'RUTINA DE RECUPERACIÓN DE ARCHIVO5140 IF HPGÍPAG GOTO 52305150 K=l:IHD=l5160 GETS2,PAG:FOR 11=1 TO H:FOR JJ=1 TQ 245170 IF K=2 THEN 520051SO IF IND)(12*N) THEH K=2 ELSE GOTO 52005190 IND-15200 M I D A ^ H I H D A T S Í K j r A S ^ H I D í t o A í J H D , ! )5210 PA(JJ , I I}=VAL(ASí) : IND=«l5220 HEXT JJ:NEXT IhGQTO 52405230 FOR M TO H:FOR 1=1 TO 24:PA(I,3)=0:HEXT I:HEXT J5240 RETURN5250 'RUTINA DE ACTUALIZACIÓN BE ARCHIVOS5260 PAHT$="":K=1:IHD=1:FOR 11=1 TO ¡!:FOfi JJ=1 TO 245270 IF K=2 THEN 53005230 IF IHD)(12*H) THEN 1=2 ELSE GOTO 53005290 IHD=1:LSET HIHDATt(l)=PANT$:PAHT$=""5300 IIÍD=I»Dtl:IF PA(JJJI)=0 THEN PAS?3"0":60TO 53305310 IF PA(JJ,II)=1 THEH PASÍ="1":60TO 53305320 PAS^T5330 PAHT$=PAHT$tPAS$:HEXT JJ:NEXT IlrLSET HINDAT$(2)=PANT$:PUTt2,PA6:RETURIi5340 '5350 'RUTINA DE RECONOCIMIENTO DE ERRORES5360 '5370 IF ERR=53 THEN CLS:LOCATE 8 , 1 : P R I H T ° H O EXISTE ESE ARCHIVO":ÍÍ£SIM 30105380 IF E R R ^ 6 2 THEN GLS:LOCATE 8 , 1 : P R I I I T ' A R G H I V O V A C I O " : R E S Ü K E 37105390 LÓCATE 4 ,15 :P ÍS INT n EP .ROR HIÍHERO "F.RR' EN LA LINEA " E! íL:CLOSE:OPEN"SCRH:" FORO U T P U T ASI3:RESUME 36105400 '5410 'PROSRAHA PARA INTRODUCIR DATOS A UNA TABLA DE VERDAD COHO ECUACIÓN"5420 CLS:LOCATE 2,10:PRIHT" PROGRAüA PARA INGRESO DE DATOS COHO ECUACIÓN "5430 LÓCATE 6,13:PRIHT"CARACTERES PERHITIDQS EN LAS ECUACIONES05440 LÓCATE ajSrPRINT'A^^-.N OPERAMOS (VARIABLES)"5450 LÓCATE 9,15:PRINT" + OPERADOR LÓGICO OR"5460 LÓCATE 10,15:PRINT' * OPERADOR LÓGICO AND3
5470 LÓCATE il,15:PRIHT" ! OPERADOR LÓGICO HOT"5480 LÓCATE 12,15:PRINT' ( ) • OPERADOR DE AGRUPACIÓN'5490 LÓCATE 16,10:PRIHT'« NO SE PERH1TEH OTROS CARACTERES QUE LOS INDICADOS".5500 LÓCATE 17,10:PRIlir** LOS OPERANDOS NECESARIAHENTE DEBEH SER MAYÚSCULAS"5510 LÓCATE 18,10:PRINT' Y DEBEN USARSE ORDEHADAHEHTE.ES DECIR EKPEZAR DESDE"
5520 LÓCATE 19I10:PfiIiiT" LA A Y CONTINUAR CON LAS LETRAS SIGUIENTES'5530 LÓCATE 20,10:PRIM7°*t LA ECUACIÓN DEBE ESTAR ENTRE PARÉNTESIS'5540 LÓCATE 23,15:PRIHT"PRESIÜNE CUALQUIER TECLA PARA CONTINUAR"5550 A$=IHKEY$:IF A$="" THEH 55505560 '5570 'RUTINA DE INGRESO/EDICIÓN DE ECUACIONES5580 '5590 CLS:IF HPGÍÍO THEH 56105600 HODO$-"FORHULAU:PRIHU1,HODOS:CLOSE tI:GOTO 56305610 OPEH UNmV-HW.FÜR" FOR INPUT AS U5620 FOR FUH=1 10 H:INPUTSi,F$(FUH):NEXT FUN:CLOSEJ15630 FOR FUH=1 TO H5640 'RUTINA PARA ENTRADA DE STRIH6S5650 IF HPG=Q THEN 56?ü5660 CLS:LOCATE iO,13:PRINTBECUACIOH °FUN" ÍA EXISTE,DES£A EDITAR O REESCRIBIR'5670 LÓCATE 12,26:FRINT"SELECCIOHE...E/R ':AÍ=IHi;EY$:IF A$="" THEH 56705680 IF (A$=T)OR(A$=V) THEfi 5750 ELSE IF (AÍ=T)OR(A$=V) THEN 5690 ELSEBEEP:LOCATE 12,42:PRIMT" ":GQTO 56705690 CLSrLOCATE 10,IO:PRINT"IHTR00U2CA LA FUNCIÓN Í';FUN;"ACABE CON ÍEHTERJ"5700 LÓCATE 15,I:INPUT'F=";F$ÍFUH) .5710 SOTO 60705720 '5730 'RUTINA DE EDICIÓN DE ECUACIONES.5740 '5750 POSI=1:BAHO=0:HODO$="5760 CLS:LOCATE 8t20:PRIHT"EDITE LA FUNCIÓN i";FUN;"... ACABE CON {EHBÍ"5770 LÓCATE 10,20:PRINT"TECLAS ACTIVAS.. Ins Del BCHRJ(27)" "CHRÍÍ26)' End"5780 LÓCATE 23,50:PRIHT HODO$;:1F F$(FUN)=" THEN 56505790 LOH6=LEH(F$(FUH)):HULlN=FIX(LOH6/80):DEHAS=LOfi6-ÍHULIH*80}5800 LÓCATE 15,1:PRIHT F$(FUH):IKV=15+FlX{POSI/80j5810 IF FIX(POSI/80)=POSI/80 THEH IHV=INV-i:5820 INH=POSI-((IHV-15)*80)5830 LÓCATE IHV,IHH,15840 A$=IHKEY$:IF A$="u THEN 5840 ELSE IF LEN(A$)=2 THEN 58605850 IF(lHSTR(n()A8CDEFGHIJaHN+*!"1ÁS)):Q THEN 5840 ELSE 60005860 BÍ=HID$(A$,2,1)5870 IF B$=T THEÍI 5890 ELSE IF 8S^"fla THEH 5910 ELSE IF B$=T THEH 59305880 IF B$="S* THEN 5960 ELSE IF B$="0U THEH 6060 ELSE GOTO 58305890 IF POSI=1 THEN BEEP:60TO 53405?00 POSI=POSI-1:GOTÜ 57605910 IF POSI^LONG THEH BEEP:GOTO 58405920 POSI-POSHhGOTO 57605930 IF BANDEO THEH BAHD=1 ELSE BANDEO5940 IF BAHD-Í THEN HODOt='IHSERCIOH" ELSE HODO$-"5950 GOTO 5760596059705980 IF POSI=LOH6 THEH POSI=POSM5990 GOTO 57606000 IF BAHO=0 THEíi 60306010 AUXS-HIOííFÍÍFUHjJ.P6020 POSI=POSI-H:GOTO 5760
60306040 IF POSI=LONG THEN Fi(FUN)=F$(FUH)+"6050 POSI=POSI+1:GOTO 57606060 IFÍHID$(F$(FUH))LOH6,1}) = " " THEH6070 F1$=F$(FUH):HUVAR=N:IDA(FUH)=0:IBC(FUN)=06080 LÜNG=LEH(FU]:IF LOHfi-0 THEH 56506090 '6100 'RUTINA DE RECONOCIMIENTO DE CARACTERES VALIDOS6110 '6120 FOR 1=1 TO LONG:CARÍ:HID$(FU,í,l}:PÜSI=IHSTR("()+*!',CAÍÍí)6130 IF (I=1)AND(CAR$OT) THEH 62306140 IF {I=LONG)AND(CAR$OT) THEH 62306150 IF POSIOO THEH 61906160 BANB=06170 FOR J=l TO N:IF CARt=CHR$(64«) THEN BAND=i6130 NEXT J:IF BAHD=0 THEH 6250 ELSE 62406190 IF CAR$=T THEH IDA(FUN)=IDA{FUH)n:ABER(FUN,IDA(FUN)}=I6200 IF CA8Í=T THEíi IDC(FUN)=IDC(FUN)+1:CERR(FÜN,IDC(FUN))=I6210 SOTO 62406220 IF (I=LONG)AHB(CAR$OT) THEH 6230 ELSE 62406230 LÓCATE 20,10:PRIHT"SO FUNGIÓ!! DEBE ESTAR ENTRE PARENTESISm:GOTO 62606240 NEXT I:60TO 62706250 LÓCATE 2Q,10:PRINT"CARACTERES ÜO VALIDOS'6260 FÚR Z2=l TD 1000:HEXT ZZ:GOTO 57306270 IF IDA(Füfl)-IDCCFÜH) THEH 63106280 LÓCATE 22,10:PRINT"LOS PÁREHTESIS HO ESTAH GALAÍiCEADOS'6290 FOR ZZ=1 TO 1000:NEXT ZZ:GOTD 57306300 '6310 'RUTINA DE DETECCIÓN DE CONSISTENCIA6320 '0330 FOR 1=1 TO LQNG-1:CAR$=HIB$(FU,I,1):CAR2$=H1D$(F1$JIH11)6340 IF (CAR$=" ( " ÍORÍCA8$="+" )OR(CAR$="* M Í THEH TABÍ^(A8GDEFGHUaHNM:SOT{) 63606350 IF CAR$-" ! " THEH TAB$=") t * ' ELSE TAB$=")+*!"6360 POSI=IHSTR(TA8$,CAR2$)6370 IF POSI=0 THEÍJ 63906380 HEXT I:GOTO 64406390 LÓCATE 22,10:PRINrsU FUNCIÓN HO ES CONSISTENTE"6400 FOR ZZ=1 TO 10QO:HEXT ZZ:GOTÚ 57306410 '6420 'RUTIHA PARA DETECTAR LA PRIORIDAD DE LQ3 SIGNOS DE AGRUPACIÓN '6430 '6440 FOR INDC=1 TO IDC(FUHj-l:FOR IHDA=IÍÍDCU TO IDA(FUN)6450 IF ÍABER(FUH,IHDA) > ABER(FUÍi,IfíDC}} ÁHD (ABER(FUH,INDA) ( CERR(FUHJKDC))THEH SHAP ABER(FUH,INDC),A6ER(FU[|,IHDÁ)6460 NEXT IHDÁ:NEXT INDC6470 NEXT FUH6480 '6490 * RUTINA DE ALHACEtíAHIEÜTO DE LAS ECUACIONES /FINALIZACIÓN DE INGRESO6500 'é510 OPEH ÜHm":'+HOH$í".FOR" FOR OUTPUT ASíl6520 FOR 1=1 TO H:PRIHT!1,F$(D:HEXT I:CLOSES16530 CLS:LOCATE 10,20:PRIHT"ECUACIOHES COMPLETAS....OPCIONES'
6540 LÓCATE 12,15:PHIHrí.- VOLVER A EDITAR/REVISAR LAS ECUACIONES'6550 LÓCATE 13,Í5:PRINT"2.- RESOLVER LAS ECUACIONES'0560 LÓCATE 16,25:PRINrESCOJA Su OPCION":Avl=INKEYS:IF A*=" THEH 65606570 IF (ASOTlAHDÍASOT) THEH BEEP:GQTÚ 65606580 IF A$=T THEH HPG=Í:6QTO 56106590 '6600 'INICIO DE LA RUTINA DE SOLUCIÓN DE LAS ECUACIONES6610 '6620 HPG=0:GPEN UNI^V^W.DAT" FOR OUTPUT AS*26630 FOR IV=I TO 24:FOR IH=i TO H:SOL(IV,IH)=0:NEXT IH:NEXT IV6640 CLS:LOCÁTE 10,22:PRINT"ESTOY GENERANDO LA TABLA":IV=16650 FOR HIN=0 TO 2>i6660 IF IV>24 THEN. GGSUB 7320 'RUTINA DE ACTUALIZACIÓN DE ARCHIVO6670 '6680 'RUTINA PARA LA GENERACIÓN DE LA TABLA DE VALORES INICIAL6690 '6700 DEC^HIN6710 FOR 1=1 TO N:VARIA$(l)=CHR$(64-H):6=FIX(DEC/2):fl=DEC-(6*2)6720 DEC=fl:VALORES(H*l-l}=R:NEXT I0730 FOR FUfl-1 TO H:FU=F$(FUNj:HUVAR=H6740 '6750 'RUTINA DE SOLUCIÓN DE LA FORhliLA6760 '6770 FOR INGE-1 TO IDAÍFUHjrLfiRU^ERRÍFUN.INfiEj-ABERtFUHJHfiE)6780 GRUP$=HID$(FH,A6ER(FUH,lNGE)n,L6RU-l)6790 '6800 'RUTINA DE SOLUCIÓN DE GRUPOS6810 '6820 OPW(l) = "":NOPN=l:PRI=I:OPH$(2) = "6830 OPR$(U:":QPRí(2) = "1:0PR$(3)~'"1:OPRÍÍ4) = '1°6840 FOR INSR=i TO LGRU-1:CAR$=HID$(6RUP$)INGR1I)6850 POSÍ = IHSTfi(aABCDEFGHIJí:LH!!0123456789"JCA[l$)6860 IF POSIÍÍO THEN OPN$(HOPN)=OPN$(NOPH)+CARi:60TO 69206870 IF CÁR2-T THEH OPRt(ilOPH)=CAR$:60TO 69206880 OPR$(NQPN*2)=CAR$6890 IF NÜPNÍJ2 THEH flOPN=2:OPHÍí2)="':SOTO 69206900 SOSUB 7050 'SOLUCIÓN DE DOS TERHIHOS6910 ÜPKÍ(2) = ":PRI=06920 HEXT INGR6930 GOSUB 70506940 '6950 'RUTINA DE CREACIÓN DE HOHBRES DE 'REEMPLAZO DE GRUPOS
6970 YAS=STRS(«R+l):AUX^HIDi(VA$,6980 VA5=STñIíi6$(LGRU-H-LEN(AUXí),''6990 VALOR=VI7000 HUVAR=HUVARn:VARIA$ÍHUVAR)=VA$:VALORES(HUVAR)=VALOR7010 HEXT IN6E7020 SOL(IV.FUN)=VALOR7030 NEXT FÚN:IV=IV*1:HEXT HIH7040 SOSUB 7320:ESTA^"COHPLETOJ:CLOSEa2:KOD05='FORHULA'':GOS!J8 4980:6010 37007050 ' • •
7060 'RUTINA DE SOLUCIÓN DE UN PAR DE TÉRMINOS7070 '7080 IF PRI=0 THEH 71807090 VA$=OPN$(1)7100 '7110 'RUTINA DE BÚSQUEDA DE VALORES DE LAS VARIABLES7120 '7130 FOR INTV=i TO HUVAR7140 IF VARIA5(INTV)~VAS THEH VAIOR=VALORES(IHTV):60TO 71607150 NEXT INTV7160 Vi=VALOR:IF OPR$(l) = " THEH 71807170 OPR$(1) = ":IF Vl=0 THEH Vl=l ELSE Vl=07180 IF HOPN=1 THEH 7290 ELSE VA$=QPH$(2)7190 '7200 'RUTINA DE BÚSQUEDA DE VALORES DE LAS VARIABLES7210 '7220 FOR IHTV=1 TO NUVAR7230 IF VARIAS(INTV)-VA$ THEH VALOR=VALORES(IHTV):60TQ 72507240 HEXT INTV7250 V2=VALOR:IF OPR$(2) = " THEH 72707260 OPR$(2) = ":IF V2=0 THEH V2=l ELSE V2'07270 IF OP?,${3) = '*" THEH V1=V1*V2 ELSE IF QPRí(3) = V THEH V1=VHV27280 OPR$(3NPR$(4);OPR$(4):"7290 IF Vl)=l THEH Vl=l7300 RETURH7310 '7320 'RUTINA DE ALHACEHAHIEHTO EN ARCHIVO7330 '7340 FOR 1 = 1 TO H:PAH$=":FOR J=l TO 247350 IF SOL(J,I)=0 THEH PAH$=PAHÍt"0" ELSE PAN$=PAH$*V7360 HEXT J:PRIHT l2,PAÍtS;:NEXI I:HP6=HP6+1:LOCATE 14127:PRINT"PASÍHA=-;NP6;7370 FOR 1=1 TO H:FOR J=i TO 24:SOL{J,l)=Q:HEXT J:HEXT I7380 IV=1:RETURH7390 '7400 'RUTINA DE IHPRESIOH DE LA TABLA DE VERDAD7410 '7420 CLS:ON ERROR GOTO 7430:6010 74607430 TF(ERR025)AND(ERR05?)AfJD(ERR024)AK 'D(ERRÍ}27) THEH 5370 ELSE CLS:LOCATE8,25:PRINT°LA IHPRESORA HO SE EHCUEHTRA LISTA"7440 LÓCATE 9,30:PRIHT'OESEA CONTINUAR ? ..(S/N)'7450 AÍ=IHHEYí:IF A$=" THEH 7450 ELSE IF(A$="3 ' )üR(A$=V) THEH RESUHE 7460 ELSEIF ÍA$='H')OR(AÍ='n") THEH RESUHE 3700 ELSE 6EEP:fiOTO 74507460 CLOS£:OPEN "LPT1:" FOR OUTPUT AS S3:LOCATE 10,17470 PRIHT TAB(30) 'ÁLISTE LA IHPRESORA"GHR$(13)TAB{20) 'PRE5IOHE CUALQUIER TECLACUAHDO ESTE LISTO1
7480 Ai=IHKEY$:IF At=" THEH 74807490 PRIHT»,' ':60SUB 78807500 P R I H T ! 3 , C H R S ( 1 1 ) : 6 0 S U B 3 8 7 0 : P R I H T 3 3 , C H R i ( l 2 )7510 IF I10DO${}"FOR!ÍULA* THEH 75907520 OPEN UfJIí+':"+HOH$*".FOR" FOR INPUI AS 327530 PRIHTS3,CHRÍ(13)CHRS(13)7540 FOR IHFO = 1 TO H
7550 PRIHTI3,CHR${13)CHRÍÜ3)TAB(20) 'ECUACIOH HUMERO :'¡INFÜ7560 IHPUTt2,Fí(lNFO):PRINTI3,Fj(INFO)7570 NEXT INFO7580 CLOSEí2:PRINT*3,CHRí(l2)7590 PRIHT*3,CHR$(11):HXHIN=2AN7600 OPEN UHmV-HW-DAT' 312 LEN;24*H7610 FIELDS2,12*11 AS HINDAT$(lí,12:fN AS HINDATj{2)7620 CLS:LOCATE MOiPRINT-ÜPCIONES*7630 LÓCATE 12T17:PRIHT'1.-IHPRIHIR TODA LA TABLA"7640 LÓCATE l3,17:PRINr2.-IHPPJHIR PARTE DE LA TABLA'7650 LÓCATE 14,17:PRINT"3.-CAílCELAR LA IHP8ESIOH"7660 LÓCATE ió,21:PRrNT"ESCOJA UNA OPCIÓN"7670 Aí=IÍJKEY$:IF A$=°" THEN 7670 ELSE IF Ai=T THEN 78707680 IF A$=T THEN PSIH=1:P6FI=HP6:60TO 774076?0 IF A$í)"2" THEH BEEP:GOTO 76607700 LÓCATE 20a7:PRIHT"ULTIHA PAGINA =*¡HFS7710 LÓCATE 2i,17:IHPUT"PAGIHA INICIAL =",F6IH:IF(P9IHÍO)OR(PGIH)HPG) THEN 77107720 LÓCATE 22,17:IHPUT'PA6INA FIIJAL ,PGFI:IF PGFIÍO THEH 77207730 IF PGIHÍHFG THEH PGFI-HPG .7740 CLS:LOGATE 14,15:PRIHT"PfiESIONE Esc PARA DETENER LA IHPRESIOH°:AUX=07750 FOR PAG=PGIH TO PGFI7760 AMMEYÍiIF Aíí>CHR$(27j THEH 78407770 CLS:LOCATE 10,20:PRíHTaOPCIONES07730 LÓCATE 15,I2:PRIHT"1.-CONTINUAR LA IHPRESÍOH'7790 LÓCATE 16,12:PRINT"2.-CANCELAR LA IMPRESIÓN"7800 LÓCATE 19(12:PRIHT"ESCOJA UNA OPCIÓN'7810 A$=IHKEY$:IF AS=" THEN 7810 ELSE IF A$=U2° THEN 78707820 IF ASÍÍ'i" THEN BEEPrGOTO 78107830 CLS:LOCATE I4,15:PRINT'PRESÍONE Esc PARA DETENER LA IMPRESIÓN'7840 PRINTfl3,CHR${l3)CHRÍ(l3)TAB(lO)DPAGINA";PAG;CHR$(í3)CHR$(l3)7850 GOSÜB 4430:AUX=AUXH:IF AUX)1 THEN AUX=0:PRIHTi3,CHR$(12)7860 HEXT PAG7870 PRINTI3," "CHR$(l2):60TO 37107880 '7890 'RUTINA DE ROTULO7900 '7910 CLS:PRINTI3,TAB{25)'ESCUELA POLITÉCNICA NACIONAL°;CHRí(l3)TAB(23)'FACULTADDE INGENIERÍA ELECTRICA';CHRSÍ13)TAB(21)'DEPARTAHEHTO DE ELECTRÓNICA Y CONTROL"7920 PRINTt3,CHRj{13)CHR$(13)CHR$(l3)TAB(23)"TESIS DE GRÁDO"TAB(42)"AGÜSTO DE1987'CHR1(13)CHRÍ(13)TAE(21)'ÁUTOR: PATRICIO IVAN CHICO HIDALSO'CHRí(13)CHRJ(13)TAB(19)DDIRECTOR: ING. FERNANDO FLORES CIFUEHTES'7930 PRINTS3,CHRÍ(13)CHRS{13)TABÍ16)"TEHA: RESOLUCIÓN DE ECUACIONES BOOLEANÁSUSAHDO'CHRJ(13)TAB(22)'EL HICROCONTROLADOR INTEL 875rCHR${l3)CHR$(l3)TAB(24)'PROGRAMA DE INTRODUCCIÓN DE DATOS'7940 RETURN
RUTINA DE DEFINICIÓN DE LAS VARIABLES GLÓSALESÍEFÍ)
íinclude ístdio.híIdefine TATBA 10383Idefine TATBC 8192
char ÜHIE3]1AP,C[10])IDAR[20],UHARC[20]ÍCOÍÍT[30]1ESTA[30];FILE *aror,*arpr,*arso;unsigaed short t a [ 2 ] [ T A T 8 A ] , t b [ 2 ] E T A T B A 3 , í c [ 2 ] [ T A T B C ] ;unsigned char p r [ 2 ] [ T A T B A ] ;unsigned long i r id[2 j [17] ,npf ) n ip , i s ,n ipa ;int N,H,NF;
RUTINA DE IDENTIFICACIÓN DE LOS ARCHIVOS DE DATOSMí)
íünclude (stdio.h)fiinclude ístring.h)3include íprocess.h)
extern FILE *aror;'extern char UNlESextern int N.H.NF;
i d e n ( ) {systea í"cls")¡ifíUro^fopEfií'arch.trb", V))==NUU.){perrorC\nERROR;EH ESTE 0RIVE NO EXISTE EL ARCHIVO DE TRABAJO A R C H . T R B " ) ;abort();}fgets[UNI,3,aror);f g e t s t A R C . l O ^ r o r ) ;printf('\nUHlBAB: Is\nNOHBRE: ZsMJHI.ARC);strset(IDAR,'\0');strset(UHARC)1\0');strncpyíIDAR.UHI,!);strcatíIDAR,':");strncat(IDAR,ARC,(strlen(ARC)-I));strcpyíUHARCJDAR);strcat(lDAR,".IXT"í;fclose(aror);printf( ' \n\nLA IDEÍITIFICACIOÍI DE SU ARCHIVO OE DATOS ES-Js'JDÁR);í f í (aror=fopen( IDAR, ' r ' ) )==NULL){ 'perror('\n\nHO EXISTE ESE ARCHIVO DE DATOS,REVISE EL NOHBRE1);abortí);}fgets(CONT,30,aror);fscanfíaror/Id't iH);fscanf(aror,"Id",tf l);fgets(ESTA,30,aror) ;
fgets(ESIA,30,aror) ;íciose(aror);systea( 'c ls ' ) ;printf("\n\n\n\n\tLA IHFORHACION DE SU TABLA ES LA SIGUIENTE");printf("\n\nCONTENIDQ: Is\nEKTR4DAS: *d\nFUNCIONES: Zd\nESíADO: Is',COí)T,N,-H.ESTA);
if(strncap(ESTA,"COHPLETÜ",8)!:OHprintf("\nSU TABLA ESTA INCOMPLETA.VOLVER A INTRODUCIR DATOS" ) ;abor tO;
ís t rset ( IDAR, ' \0 ' ) ;strcpy(IDAR,UílARC);s t rca t í IDAR/ .BAT") ;printfC\nLA IDENTIFICACIÓN DEL ARCHIVO DE DATOS ES: Is'JDAR);i f { (aror=fopen( IDAR,"r" ) )==NULL){perror(B\nHO SE PUEDE ABRIR EL ARCHIVO DE DATOS");abort();}printf(4\nSU ARCHIVO DE DATOS ES ACCESI8LE"};fcloseíaror);
RUTINA DE RECUPERACIÓN DE LA TABLA ORIGINAL DE VERDADRECU()
l include ( s td io .h)í include í a a t h . h )*include ( s t r í n g . h )Idefine TATBA 16383
ex te rn int H , H , H F ;extern FILE *aror;e x t e r n unsigned shor t t a [ 2 ] [ T A T B A ] , t b [ 2 ] [ T A T 8 A ] ;e x t e r n unsigoed long ind[2][17];extern char IL 'AR[20] ,UNARC[20] ;
recu(){char it;in t n u n . i t p a g , » ! ;unsigned long o f i ) o f f , Í r í = O L 1 p u , t e r , a d ;s t r s e t t T D A R , 1 ^ ' ) ;s t r c p y í I D A R . U H A R C ) ;s t r c a t ( I D A R , " . D A T " j ;i f ( (a ror=fopei í ( I f )AR,"r*) )==HULL)íp e r r o r ( ° \ r ¡ E R R O f í EH EL ARCHIVO DE D A T O S ' ) ;abo r tO ;}ind[0][0]=ind[ l ] [0]=in;f o r ( n u n = 0 ; n u n í = N ; n u n H ) {o f i = (unsigned l o n g ) { I d e x p ( I . O , m i n ) - l . Q ) ;o f f = (unsigned l o n g } ( l d e x p ( ( d o u b l e ) o f Í , ( H - n u n ) ) ) ;
ad-ofi-{unsicjned long)(24 : í ;pag);f o r ( ; ; ) {
í o r ( 8 Í : ( i n t ) a d ; f l i ( 2 4 ; 6 i i + - i ) {i f ( o f i H } o f f )goto sa!5;if({it=fgetc(aror))"48)continué;i=0;ter=ofi-lL;
do{i + = ( i n t ) ( t e r I 2 L ) ;} H h i l e ( ( t e r / = 2 L ) i = O L ) ii f ( i ! = m m )cont inué ;tb[03[Íí!]=0;ta[Q][inKl=(unsigned shor t ) (of i - lL)
sal5:ind[o][nun+l3=i i í ;}fclose(aror);í
RUTINA DE BÚSQUEDA DE LOS IMPLICANTES PRIMOSPROCO
Sinclude ístdin.h)Idefine TATSA 16383Idefine TATBC 8192
extern int N;ex te rn unsigned short t a [2 ] [TATBA] , t b [2 ] [TATBA] , t c [ 2 ] [TATBC] ;extern unsigned char p r [2 ] [TATBA] ;ex tern unsigned long ind[2][17],nip;
proeOíint Qr,de=Qtiuto,>uto,i;unsigned long ix.is.ii.ib.ip;unsigned short nSjVs.ísí.ví.a.v;nuto=H;nip~0;do{for(ip-OL;ipí-indfde][fiüto-H];ipH)p r f O ] [ i p ] = ' 0 ' ;
d e = ( ( o r = d e ) = = 0 ) ? ( i ) : { 0 ) ;auto™;h=ií id[da3[0]=OL;
for( ís=ind[or][ iuto] ; is{ind[or][ iutoi l ] ; isH){•s=ta[or][is];vs=tb[or][is];fo r{ i i= ind[or ] [ iu to+l ] ; i i í i f id [o r ] [ íu to+2] ; i iH) ísi-ta[or][ i i j ;vi=tb[or][ii];ifíív=vsAvi)!=OÍcontinué;í=flsxai;i=0;do{Í-f=sZ2L;
continué;
pr[0][ is]=pr[0][ i i ]=T;for( ib=ix; ix!=OL«ta[de][ ib- lL]>=f is«ib)=lL; ib- -Hif£ta[de] [ib-lL]"dsUtb[de] [ib-ll_]==v)goto seg;}ta[de][ ix]=BS;tb[de][ix-H]=v;
i f ( h > T A T B A ) {perror(° \nERRGR..LA TABLA ES MUY EXTENSA; HÜ SE PUEDE RESOLVER'For(Í=0;Í)IDOOO;K+);abortO;
seg:
fo! - ( ip=OL; ip í ind[or ] [c iu to- t2] ; ip+-f ){i f ípr[0][ ip]í= '0 ' ícontinué;tc[0][nip]=ta[or] [ ip] ;tctl][nipH]=tb[or][ip];
}}uhile(ind[de][autoíl])OL);í
RUTINA DE CONFORHACIOH DE LA TABLA CÍCLICALLETAO
Sinclude ístdió.h)linclude (stdlib.h)linclude íprocess.h)linclude ínath-h)linclude ístring.h)
tdefine TATBA 1É383«define TATBC 8192
extern int H,'H,HF;extern FILE *aror;extern char IDAR[20],UNARC[20];extern uíisigned short ta[2][TATSA],tb[2][TATBA],tc[2][TATBC];extern unsigned char pr[2][TATSA];extern unsigned long npftnip;
lletaiHint pag:0,ai-0;unsigned long off,pü=OL;char it;strsetíIDAR,'^1);strcpy|IDAR,UHARC)jstrcati'lDAR.'.DAT");if((aror=fopen(IBAR,"r"))"HULL){perrorí"\nHO EXISTE ESE ARCHIVO');abortt);
cff= (unsignedfor(;;){
fseektaror, (unsigned long} ((pag*2OHH(24*HF) 1,0);for(ai=0;aií24;aiH){if(Hpu)off)goto saló;if((it=fgetc(aror))!=49)continué;
0'short )(pu-lL);
RUTINA DE DETECCIÓN DE LOS IMPLICANTES PRIMOS ESENCIALESRDIPEO
ídef ine T A I G A 16383Sdef ine TAT3C 8192
e x t e r n unsigned short í a [ 2 ] [ T A T B A ] , t b [ 2 ] [ T A T B A ] 1 t c [ 2 ] [ I A T B C ] ;extern unsigned char pr[2][TAT6A];ex t e rn unsigned long n p f , n i p , i s , n i p a ;
rd ipe( ){unsigned long i c l . í f i J C j C o . i s l j i r ;
/RUTINA DE DETECCIÓN DE LOS IPE*/is^OL;f o r ( i c l = O L ; i c l í í i p f ; i c m ) {
f o r ( í f l - Ó L ; í f l ( r i Í p ; Í f l H ) {i f ( t a [ l ] [ i f l ] ! = r tb[ l ] [ i f l ] t ta[0][ ic l ] ) )cont inué;
p r [0 ] [ i c l ]= ' r ;
goto SALÍ;
COH;
íif({tb[ü3[icl]=co)!=lücon t inué ;p r [ l ] [ f c ] = p r [ 0 ] [ i c l ] = ' l 1 ;t c [0 ] [ i s ]= ta [ l ] [ f c ] ;
SALÍ:i1
/*RUTIIÍA DE ELIMINACIÓN DE COLOHHAS CONTENIDAS EN LOS IPE*/
i r ^OL;f o r ( i c l = O L ; í c l í n p f ; Í c l H ) {i f { p r [ p ] [ i c l ] = = ' r )cont inué;
for( is l=GL;isKis; ism){if(tc[0][isl]^rtc[l][isgoto SAL2;}ta[0][ir]=ta[0]Eicl];tb [D][ i r ]= tb [ü] [ i c l ] ;pr[0][irH]=pr[0][icl] ;
5AL2:
npf=ir ;i r=QL ;
f o r { i f i = Q L ; i f K n i p ; i f l H Hif(pr[l][ifl]==ir)cont inué ;
pr [ í ] [ i rHj=pr[ l ] [ i f l ] ;
}nipa=ir;
RUTINA DE RESOLUCIÓN DE LA TABLA CÍCLICARSTCÍ)
Sdef ine T A T B A 16383« d e f i n e T A T B C 8192
ex te rn uns igned short t a [ 2 ] [ T A T B A ] , t b [ Z ] [ T A T B A ] 1 t c [ 2 ] [ T A T B C ] ;
e x t e r n unsigned ctar p r [ 2 ] [ T A T B A ] ¡ex t e rn unsígried long n p f , n i p , n i p a , i s ;unsigned long a u [ T A T B C ] ;
r s tc ( ){unsigned long Í n c 1 c o a 1 c o , f c , i c l , i c 2 1 i f l ;f ioa t aprob,prob;for{inc=2L;inc{nip;incH){f o r ü c l = O L ; i c l < n p f ; i c l H ) {i f ( tb [0 ] [ i c l ] !=(uns igned s h o r U ( i n c ) )cont inué;i f (p r [0 ] [ i c l ]==TÍcont inué ;CO=OL;
f o r ( i f l = O L ; i f l í n i p a ; Í f l - í i ) í
cont inué;
fiprob=0.0;ÍC^OL;for(coa-OL;coa{co;coaH){prob=0.0 ;f o r ( i c 2 = O L ; i c 2 ( n p f ; i c 2 H ) {i f (p r [0] [ ic2] r : ' r )continué;i f ( t a [ l ] [au[coa] ] !=r tb [ l ] [au[coa] ] ¡ , t a [0 ] [ i c2] ) )cont inué ;p r o b + = í f l o a t ) n i p / ( f l o a t ) t b [ 0 ] [ k 2 ] ;íi f ( p r o b ) £ p r o b ) íü iprob-prob;fc=au[coa];í
pr[ l ][fc]=T;tc [0 ] [ i s ]= ta [ l ] [ f c j ;tc[ l ] [ ÍS+4]=tb[ l ] [ fc] ;co=OL;fo r ( i c2=OL;K2{npf ; i c2 - t t ) {
cont inué;i f í t a [ l ] [ f c ] ! = r tb[ l ] [ fc] t ta[0][ ic2]) ) í
goto SAU;
SAL4:
i f ( c o = = O L )goto SAL3;í}SAL3:
RUTINA PRINCIPALHÁIíH)
edefine TATBC 8192fiíiclude (use.h)linclude (string.híMnclude (stdio.fl)tinclude ístdlib.h-)iinclude íprocess.h}
extern unsigned short tc[2][TATBC];extern unsigned long is.nip;extern int H,NF;extern char IDAR[20],ÜHARC[20];extern FILE *arpr,*arso;
char Ídarl[20],idar2[20])idar3[20],idar4[20];
aa inOíunsigned long i,ii;long Hiae;i d e n ( ) ;s t r c p y í i d a r l ^ H A R C ) ;s t r c p y ( i d a r 2 , Ü H A R C ) ;s i r c p y ( i d a r 3 , U H A R C ) ;s t r c p y í i d a r 4 , U N A R C ) ;s t r c a t ( i d a r l , " . I X P " l ;strcat( idar21°.P[!I"};s t rca t ( idar3 , ' . IXS") ;s t rca t ( ida r4 , " .SOL"};a r p r = f o p 6 n ( i d a r i / H " ) ;a r s o = f o p e n ( i d a r 2 , V ) ;fdoseallO;a r p r = f o p e n ( i d a r 3 , " » " ) ;arso=fopen(idar'í,"H");fc losea l l f ) ;p r i f i t f í ' \ í i \ f l \ r í \ n \ n \ n I H I C I O DE LA HIHIHIZACIOf l 0
f o r ( H F = 0 ; H F Í H ; H F H ) {p r i i í t f í " \ n F U H C I O H H U H E R O Jd" T KF};t ise(il t ise);p r i n t f í ' \ t T I E H P O : Is",ct iae(lHiae)} ;
r ecu( ) ;procO;
printf("\nHALLADOS LOS IMPLICANTES PRIMOS');arpr=fopen(i<larI,V);fprintf(arpr,"tlu\nj,nip);fclose(arpr);arpr=fopeíi(idar2,V);for{ii=QL;ü{RÍp;n-n)fp r i f i t f ( a rp r , ' ' 2 i j \ nSu \n* 1 t c [0 ] [ i i ] ¡ t c [ l j [ i i ] ) ;fclosealií);lletaü;rdipeO;rstcO;prÍntfr\nHALLADA LA SOLUCIÓN DE ESTA FUHCION"};
printfí "\tTIEHPO: Zs%ctÍBe(!¡ltia8));arso=fopen(idari,"a");fprintf(arso,*Zlu\n",is);fclose(arso);arsü-fopefi(idar4,aa°);for(Í=OL;ÍÍÍS;ÍH)
printf("\n\n***ttSE HA REALIZADO LA HIHIHIZACION COHPLETA****"};
Ccf
tCfí
-1
'Jti
litv
C
oE
r.an
dE
...
Ob
jcci
C
c-'-c
Ü
tllF
i S
afp
cit
.r
^lf
fr
Oii
pls
y¡'
:!!<
; M
iicr:
D
lftc
t.b
i-v*
!u
íl<
r lo
C
isk
...
LSC
.Í
E.J
iíir
li
c=
D
ííli
.C
t.=
.-.c
jr.o
¡u
ifc
i V
ilu
<i
rile
O
j-t-
TB
tio
as.E
S.6
5.e
e
..£
7..
ET
.100
.1C
1
1IN
TR
OD
UC
TIO
H^-
Th
e t-
.ítw
itt
;.o
:V.i
.n?
«Is
o
Inc
lud
rr,
a n
un
brr
a
! u
tllity
cc
rta
nd
i,tu
cl.
<
i tt
V:L
- [.
[¡
EX
í
i le
li
or.
inti
rn
sl
ntm
cir
y,
dis
pla
yin
gin
lfr.
-.t!
"
«-r
^ry
, ty
pin
g
a H
it,
an
d c
ett
ing
v
aii
ou
i o
pc
ra
tin
gp
ire
r-'.
cii
. T
I.-M
u
tilili't
p
eri
nrr
. fu
nc
tio
nf.
w
hic
h
-.u
pp
ert
th
*o
th
tr
r-t-
rl i
'.r.
í o
! tl
.i-
pa
cV
.ag
r n
nb
nll
ow
th
e
uto
r lo
tta
y
t.-j th
i n
thf
t-.í
t-ii
t [.
ncf.
arjc
v
h.l
lc
pc
rlo
rnii
ng
the
rou
tin
ci.
.
i ip
j'-í
»"
t í"l
ir
.rfj
'.?.
ti"*
[O
S.
A d
lic
ctc
ry
co
p.r
.an
d
ajw
s h
Ht-
tin
go
í I)
.'1
cu
rr>
;.-
di
rc
ct
dry
. a
nd
a
ac
nc
rs
l n
o£
c
cn
tr.a
nJ
alJ
ow
E
the
rtq
ulf
"
<•>•
•• f'if
.fi.
:;i,
.cO
H
lile
íio
r th
c
DD
E F
ys
tpr.
d
i^^
: to
b
ea
villíí.l
t *
•:.!
](
ir,.
C
VS
SO
S1
pa
cV
dg
r IE
ru
nn
ing
, h
uí
alJ
oU
F
tl.c
Uíf
t "- r
lr''ii
trt¡
' c
or.
r.n
nd
av
ail
ah
le
thto
uo
h
tt.c
n
orc
-a)
DO
S
fttq
ult
tmtn
li luí
CV
S S
nllu
-aír
Vrr
íio
n 3
.UO
:t"
M
r-
.r 1
T/X
T
Cn
rpjH
-r.
t.r
ttu
e íi
sró
wa
rt-
cq
ji v
a j e
nt,
;•-
If
ií
t oí.
. dt
,.-jl
.l<
lirt
cd
5
1/4
in
ch
d
ÍE
krtt
r d
riv
e.
/.t
l.i.rt
1ÍH
ry
tc-i
. c.
{ ty
itc
n R
íi-l.
Jt
Im
t en
i'
II":
/.-y
t.ch
rcr.
ou
: C
on-.
rni:
r.lc
at i
on
; A
da
ptr
r.
stt
'.f
¿i-
vir
r C
Cf'
.l.
Hn
róu
-üie
c
qu
iva
lcn
ts
us
ing
sn
li;S
B3
50
I:IA
T
r».»
._:!
n «
1,3
u
=rl
..Ii
itp
líij
' ar
.d
rrin
icr
Ad
ap
tcr
ot
an
13.1
ly
rrq
ue
ttc
d.
¡hip
pc
d
or
• l'
K
l'i'
tr.v
ii .
.t.r
i M
. Jt
-.-1
11
MtE
r.p
t to
ir
.U
la
liz
o
t>ie
J,i
ytt
cli
ir-n
au
J. L
r-rn
urt
ic a
t i
or.
t.
).d
np
-n
to
2íD
O
btu
d,
pv
cn
it
an
titr
n,-
.! r
re
)lr
»r
tti
bsij
td
it
nc
vtt
u
ted
. C
us
-to
tcrt
w
iih
ing
to
thr
K(t
!il. ro
tr/d
i i-
, I
CJ
PI
thf
ad
í-.p
ter
to
it!
orig
iníl
E
Ett
iiig
Wí.
Pc
c.i
^r
^ c
íia
iftc
ttrE
Iro
r t
ir.t
í-tt
til-
t t-
sil
i t.j
f tl
.ir
vii
tb
yp
í«i'
il
in
ro
pp
ofl
of
th!
F.S
Ijí
ad
ap
tar
iré
h
an
tíle
d
on tn
so
tht-
D
DE
and
B
1QS
r=-j
t.in
ís
are
'atu
jt,
Th
it
t,a
>.c
t V
ers
ión
3.0
0
pa
iti
U.
lc¡.
Jrt
tf.L
Ih
r.
Co
r rú
nic
a ti
or.
t í.
dap
ttr.
A
lf.D
, th
e d
isp
lel"
ici
FFII !'
'p
Ht.
^l
^^.í
•c^l
a
co
rií
nd
in
pu
t :i
t.e
ar
.d
a r.
srr
.sl
dit
pla
ysu
;,
tl'l
. «
ilih
-eír
u
-lr.
o
tht
P1
DP
vid
eo
in
tcri
rup
'-
í-Jn
ctí
on
s te
hir
.dlr
- '.
1 ¡
d
i tj
.I a
y tc
t i v
i ty
. T
hií
a
lso
by
pic
tcs
tnc
no
rn
al
Do
sfu
nri
i'i'
' C
ilji.
Ho
vc
vrr
, o
i.ly
ih
e
Elo
£
intt
rr-J
pt
r&c
tir.
eE
ílrf
l,
"•
• "ic
l.ir
.í
rsrp
ntí
hK
Jt
tl
sc
E1O
S JE
JE!
u-l
,OJ:
¿ i
thíf
vi
t ¡C
f.
oi
I-fE
íOll
.
.-it
h
Rcl
aled
Pro
duct
s
Cy
ii«
rnc
tic
f.lc
ro
Sy
tte
ps
pro
vir
tES ^
in
ttn
re
trd
nt
Th
ir
too
l sct
ma
kc
: th
c
Ipf.
P
C
n<,
pp
we
ríü
l a
t •
drd
icn
tPd
dc
ve
lep
nc
nt
sy
;trr.E
. T
hP
C
VE
S0
51
So
ttw
dc
rc
rib
cd
ií
i th
is
r.a
nu
al,
a
llo
wt.
t}
if
Urc
r to
á<
pro
gra
nE
fo
r th
c R
DS1
f
ar
ily
o
£ m
i c
roc
or.
pu
tcis
Sii
sflO
Sl
SÍm
uU
lot/
D<
-liu
gn
eía
tcfl
hy
tlic
C
VE
SO
Sl
--
he
Krx
ar
.'f-
- _
_
. c
eu
t in
a
EC
L]
-t-—
.-
icti
ng
inio
ina
tic
n íte
iE
D g
rne
rati
? fü
urc
e co
dr
an
d
flo
w
di
ag
ían
dip
pla
ys
. E
:
-•¡t
Vi
a u
nlq
uf.
ir
.ult
i-í-
1 n
3o
u
dir
pla
y
pre
se
nta
Eta
te.
alv
e th
i —
/C
fl'O
tl M
CI
CB
OS
S-A
SS
tMB
LY
Fig
ure
1
.1
í.
Co
mp
lete
B
OS
1 D
rvc
lop
r-a
nt
Ey
stf
r cr
i tV
- :;
Fin
ally
. th
e
CY
F6
05
1 oí
CY
P7
7ií
P
ro
arsi
síiJ
c
cc
nc
ratc
d
by
thc
C
VS
BO
S1
aü
co
-blc
r t
EfK
OM
've
rsió
n-;
o
í tü
f e
OS
l d
cv
icE
E
cr
T7
u
strif:
r7
i;
co
ntr
ol
thi-
fin
al
i.p
pli
ca
tic
ns
cir
cu
í Le
.
R
sii
r.jl
ai
too
l c
ot
¡E tv
ail
ab
lc
tro
r. C
vb
ern
rlic
K
icr-
£-.
otí
ifr
po
pu
lar
s i
ng
l t-
ch
ip
s.i
cro
co
r.p
ute
rt,
in
crl_
;;a
ss
eií
blE
rE
, E
i i
ul í
tor i,
on
d
prrg
rE
nn
cr
bu
rd
t.
7,
ían
iJic
E
su
pp
nrt
ed
inc
lud
c th
p
Jn
tel
ED
ÍE,
60
51
, th
t T
IT
«S
3
30
. a
nd th
c lilo
o ia
. S
üc
po
tt
pa
cV
ag
cs
ier
ctri;
4rc
- in
í t
ve
lop
nín
t.
UE
ET
S «
ith
ip
tc
íü
c
pio
ce
sj^
;re
ou
tEts
E
ho
iild
c
on
tac
t C
yb
crn
cti
c M
icro
S
yn
ei t.
;-•-
.ijs
o
ha
ve
a d
Bu
qa
a p
rog
rsn
v av
.i í l
ab
le
for
ilc
bu
^g
ino
pro
ora
ns
ít
it
c-
n
ior
80
B6
an
d E
OB
S p
ro
cit
ss
ors
usi
;<)
in
Lh
e IB
M
PC
c-j
np
uti
ri.
Th
e fr
.itu
r-s
of
ch
is
rtp
hu
ng
-r -i
rí
sif
.iln
r lo
th
nse
of
sr-r
i-n
-l
isp
lay
iba
t i=
¡d
en
tic
al,
T
ht i
all
ow
s c
he
uso
r to
s
wit
ch
oí
-ich
on'.,
ana
r..i
iies
th
ls
po
wc
rfu
l d
cb
uq
qln
q
co
al
ivfl
iljb
le
lor
thc
íim
C
IH.T
P
C f
l^ v
jí-1
1 ¿
s th
t-
targ
pt
pro
ce
sso
rs
íar
Jh
ich
c
od
g
9.G
ET
TIN
GS
TA
RT
ED
Slar
tlng
the
CY
11 8
051
Soft
war
e Pa
ckag
e
Tli
f E
XE
fíl
f '.
on
tain
s th
f C
YS
B05
1 p
roa
ran
s,
an<1
Í5
lo
ad
^d
by
DO
SL
o a
pt
tht
^jac
Vag
»-
sta
rte
d.
Th
e D
rmo
lile
is
an
t ra
r.p
lc
B0
51
pro
ara
tr.
tlij
t «
¡11
t>
f u
se
d to
Íll
i!s
tra
tc
so
oe
of
the
CY
SS
05
1o
pp
rati
or.
s.
Ta
sta
rt
CY
SB
OS
1.
íir
st
aft
DS
S ru
nn
inq
. W
i th
th
e
CY
SS
OS
1.E
XE
íile
o
n
the
stl
ec
te'l
íi
riv
o,
typ
eí
his
w
ill
loa
d 't
he
CY
SS
OS
l E
ott
.-a
tc
p*
cV
íaí
Into
y
°ur
sy
ttm
. in
dít
er
a fe
w
» «
ca
nd
i ,
the
pro
gra
n
wil
l ti
an
o
na
s io
llo
ws
i
esta i.i.i
t'c
FIr
;urL
- ?
.l
Inlt
i.il
¡cr
CY
SS
OS
l
Ih
í •
igrr
dri
hfa
dtr
¡R
dlC
Atn
th
* «
tr«
i o
n «
nd
ler
ial
nu
<.b
rr o
í th
tin
ítw
iif
pa
cV
srr
. a
i T
il
ai
the
Cy
ür
rn
'tic
H
iero
s
yit
eim
mrv
uri
ivt
no
iic
r.
Th
it
i»
foll
ow
id
by
* l
iitín
g o
f c
on
r.a
nd
i o
rp
rc-j
ri =
j
«u
pp
jrtt
ii
by
t h
f C
ÍSB
DÍl
ca
i-V
og
e.
TÍI
¡ '
>
ttí
• n
o-'
n
t>y
thr
HE
LP
co
tia
nd
, d
nc
rib
-d
In
a
la
trr
ch
ap
tcr,
In
ge
ne
ra
l,
.-ic
h n
i th
f p
rotj
rsc
.i
¡s itirt'd
hy
lyp
tr.a
in
th
* m
íe o
íi
th
an
y
itq
ulr
í-d
arg
un
en
ls,
su
ch
a>
ít
letu
, e
» rt
qu
ire
d
by
«-
ich
eo
En
^n
d.
»n
d.
'Jo
iric
The
CY
S S
OS
! C
omm
and
LIn
e
Ttt
t "'"
a
t th
*
Bo
ttO
E
oí
th<
7 m
cr^
tii
!;
thí
CV
E8
0S
1 c
orr
.an
d
pa
Ck
aq
* 1
1 m
dy
ÍC
r a
CD
r.K
i.'.d
. N
oti
ce
Iha
t th
Sj
p[0
:pt
ISd
i f
1 n
rn
t Ir
oo
tnr
de
fju
lt
DO
S p
ro«
ipt,
>
inc
r n
od
rl^
e ín
ter
is
inc
lUii
ed
In
tht
CY
SEO
S1
vrr
íio
n.
co
rr. i
nd
to
thr
pic
Va
Ge
. If
ty
pin
q
nii
t^
Ve
í a
re
r.a
de
"h
ilr
eo
rr^
ct'
thí
erro
tJ,
ila
lls
r to
th
f D
OS
co
nv
en
: io
r.s.
Vh
cn
íhe
co
o^
an
d
ii
es
rrfC
t,
a c
atr
laa
s re
mr.
i [E
ntc
r k
e/1
fn
di
the
en
r.«
nn
d.
«n
a p
tj«
f>
it
to
the
CY
SE
D51
c
on
Ta
nd
inte
rp
re
tar.
IIth
^ c
on
rjn
í is
v
jlld
. ;h
e
CfS
BD
Sl
pa
ck
ig»
-•íl
l r-
Jr.
tn<-
re
gu
t^te
Jlu
nc
tio
n,
and
wh
en
thp
fun
ctl
on
is
co
n p
íete
, ar
pO
thfr
p
iorp
v w
ill
rn
trir
s n
/u
pp
tr
or
lofco
th
atii
Csí ^
f i
r-ft
v ü
typ
^d
into
th
e C
VS
S05
I c
ari
an
j li
nc
u
sin
o ti
tila
rca
sfr
ch
ar^
ctc
rA.
Ir.t
crn
^ll
y*
C^^
p
roo
raL
s tr
e.i
te
qy
ivil
cn
t.
"o
títh
rr
on
r D
t a
r.i
itu
r'
oí
ho
thed
. A
ll
ch
ara
ctc
r»
ar*
tr
an
sía
te^
to
up
pe
c c
a¿
4
an
i sil
tJ
blr
c
ntr
lts
atf
X
rpt
in
thf
up
pe
r c
ast
ta
DO
S,
use
th
í E
XIT
ítu
rn
co
ntr
ol
b*
clí
to
D
OS
, tc
re
init
ing
th
*
CY
SS
03
I'
3
INT
RO
DU
CT
ION
TO
TH
E A
SSE
MB
LE
R 3
Imro
duct
ion
To
The
Mac
ro A
sscm
bler
Th
*
Mac
ro A
sie
ihle
r c
cn
tain
cd
in
th*
C
VSB
OS1
S
ofl
^a
r»
Pa =
Vai
;i
li
a ta
ol
to
Jie
lp
in
thp
•I
cv
elo
prc
nL
o
! «
ule
lo
r -h
e
30
SI
l.n
ily
o
[
syp
cb
olt
c o
r n
uie
ríc
íir
qU
mc
nts
t°
g
^n
cr^
te
thc
nA
ch
ínc
cod
e ru
n b
yth
e
BD
51
pro
cc
ssn
r ía
nil
y.
USP
o¡
the
c.j
sco
blo
r rr
qu
ire
s th
at
J so
urc
r p
en
ara
" a
lre
idy
eii
st
as
a
te,-
, íile
. T
his
íiU
c
on
tain
s th
.-
asse
;bly
U
nq
ua
g;
sp
ec
ial
dir
clt
ive
s to
Ih
r .i
ssc
^b
lel,
u
ied
to
de
fin
e *
yi;
bo
tic
ot
Ihc
ac
nc
rate
d ced
o.
Th
is
íile
is
-í
ritt
ín
«sin
o o te
it
ed
ito
r,su
ch
as
thc
DO
S
Cd
lin c-l
! to
r,
or
a v
ord
p
roc
^sso
t c
ro
ora
n,
su
ch
as
Wo
rds
tar.
T
hc
so
utc
c
file
co
ns
istí
o
t lí
ne
s o
í n
oria
l,p
rin
tnb
le
tc
it,
wh
ich
-irc
u
s«d
by t
ht
a\j
ein
hl»
r to
ge
ne
ral.
* th
t
SC
UR
CE
.LS
T
Fig
u3
.1
Ass
ca
blq
op
or.
itic
n
Th
; so
utc
c fü
r is
-i
ssp
nb
lfd
hy
the
C
YS
B05
1 so
ít-a
rc
. o
^n
cr-
tin
gtw
o o
the
r tile
s .*
? o
utp
ut.
Tf
.t tirs
t til*
ís
th
e jc
tun
l o
bje
ct
co
dc
a^
ne
r-it
ed
by t
h^
n
iíe
nB
ly.
lili
: £
ilc
Is
in
Inte
l H
tX
lor=
at
an
d M
ili
ha
vr
an
fr
itc
nii
on
njm
c .l
iEX
. T
he
HC
X
torsic
1
=
an
an
so
lutp
lo
ca
trrf
v
rra
ion
o£
the
p
rog
rjn
co
dc
, b
ut
ia
rsc
ord
rdu
sin
q p
riiL
ao
lc
AS
CJ»
li
cx
«¡h
ara
rr-'
'^
to
rep
rctc
nt
the
co
'lí.
T
his
file
n.i
y
tif
prin
ted
, |3
roq
ra n
ico
d in
to
.1
PRO
M
ve
rs
ión
o
f th
em
icro
co
r.p
utr
r.
cr
usn
d
by
thf
Cy
Bo
rr.e
tic
Hie
ro
sy
sc
ea
s S
icG
35
tp
roo
raB
ío
r tc
stl
ng
-i
nd
dc
hu
go
ing
.
Th
e se
co
nd
lile
ge
ne
tate
d
by
th
e a
sir
po
ler
Is
a :¡
;tin
a
oí
the
pro
a t
an
, -'
ith
th
s f
il
e n
anr^
a
ive
n
.\n
ex
ten
sió
n
.LS
7.
Th
i i
lile
is
a co
cb
ín.i
tío
n
oí
thf
ori
gin
al
sou
rce
pro
gra
n
ita
tífe
nti
p
lus
íhc
o
hjr
cL
co
de
ae
ne
rate
d
tiy
the
jíie
eb
ler,
wii
h sil
pto
ara
ilo
cü
tlo
iis
an
d sy
aii
oli
c
va
lúe
s sh
ow
n.
Th
is
fllr
is
us
i-d
'fo
rrt
icii
Bo
nta
tlo
n
or
.in
iíip
ut
to
the
sls
SO
il
pro
gr-
in
for
so
uic
i co
do
Ans
í ÍI
ow
iI
lAg
ran
dis
pla
yc
.
Ir.
ord
ar
to
su
cc
cE
síu
lIy
urite
p
ro
grjn
í lo
r th
e S
OS
1 f.
iaíl
y o
f= i
cro
ca
np
utc
rs.
thc
mo
r o
í th
c
CY
SE
OS
1 p
ac
Va
qe
sh
ou
ld h
i" i
go
od
w
orv
ing
Vr.
o-'
led
gc
of
the
SO
Sl
pro
ce
tío
r a
rc
hlt
rc
tur-
an
d
Ass
cm
bly
L
an
au
ag
í h
iatr
uc
tio
n
set.
T
hc
se
top
ics
wll
l n
ot
be
cov
ered
in
th
is
isn
ua
l.
so
an
yo
ne
wh
o la
n
ot
fam
ilia
r w
ith
thP
s*
do
cum
r n
ta
t i
on
¡or
the
sc
tap
ice
. T
hc
op
co
ds
nn
cm
o^
CV
S80S
1 a
re
thc
s.ii
í-
as
tho
se
pu
bli
she
d
by I
nte
l.er
t by
Fca
ture
i. o
í ih
e C
VS
30
51
Ats
em
blí
r In
clu
de
• S
up
po
rt
Cor
ra
ero
s•
Co
r.d
itio
n.i
l .-
i-.i
-nM
y w
ith
T..i
ny
lev
éis
t>
£ n
cS
tin
'j«
Dil
cC
fi'T
s ¿C
'7
co
ntr
ol
ot
th*í
."
iss-
ífnb
l y
thc
ou
tpu
t o
í tí
i"
atn
cn
blc
t i=
a
no
n-r
elo
ca
tab
lc
lntn
.it.
.
ca
n s
tíll
ti*
dc
vc
lcp
od
in
n
oil
ule
s,
uit
h
th->
p
rop
er
no
ilu
lps
co
ah
ine
d in
to
nti
c i-
aít
er
pro
-ira
m
at
.ir.
seo
hly
ti
mo
, u
sin
^i
Che
ÜÍC
LUD
í; d
lrc
ctl
i-e
'-O
rea
d it
i th
c ¡r
.o.l
ule
s .1
5 re
qu
ire
d.
Tn
e si
jend
cf
the
.i s
i cn
lil
cr
p^
Xcs
th
is
a u
iah
lc
-ilt
crn
ati
v?
to
th-t
.i
ssd
bly
mfl
H
nV
inq
prc
c-d
-iro
i re
qu
irid
w
ith
rcto
c.i
tob
le
sbj-
rct
mo
du
les,
esp
ec
iall
y
íor
pro
^t^
mj
wri
ttu
n to
e s
inq
le-c
hlp
m
icrD
co
np
utt
rs.
Usi
ng t
hc
Ass
cn
lblc
r
AS*M
S1
Is
the
mjn
-í
cíJ
thí
<^iB
CITL
ÍJ!*
• r
co&
Kan
d.
T^l
e fi
r.^
t a
fiu
^ií
nt
eit
un
ilo
n
is
su
pp
Hc
J w
i Ih
tí
ii
(11
- n
an
c,
.ASM
is
u
= íd
a
s Ih
^d
ela
ult
fit
cn
sio
n.
so
tile
.l
üs
an
hlu
r lo
olt
s to
e J
Ule
e
all
ed
lilí
n.n
t.í,
SK
, o
th^
rwis
p th
fl
as3
Tm
b!e
r o
ses
thfl
e
.te
nsió
n
surp
lic
.iin
th
<-
coam
anii
! i
.le.
Fil
e n
«n
vi
r.^y
fo
llo
u
tht
sti
ind
ard
H
OS
Vrr
slo
n 2
.0 n
t r.
twc
r c
an
vc
nti
an
a.
Inc
lud
íng
J O
riv
e le
tte
c ^
nd
pjt
h
n.i
n*
. T
hc
«Ic
íAiM
t s
V't
e^
dlr
ec
tory
w
it
l b
r U
ied
if
r.c,
.ilt
ern
nt.
i VD
!=
ip
iíc
ííií
d
in
thc
tile
rí
ame
arg
un
an
t.
ll\s
. T
he
£il
« Is
q
ifi
leth
e ñ
a
^^
tuo
ou
tpu
t íi
les,
a h
sx
£tl
c a
nd i
l!
st
qiv
en
the
na
ne
f ll
cn
ao
e.H
EX
. an
d th
e li
at
lllc
nam
e.L
ST
.
swit
ch
ap
tio
ns
cc
ntt
ol
va
rio
us
tea
turs
s o
í th
í a
sssa
bly
, a
nd
/H /E fít
Salt
en
opl
l
Co n
ot
qe
Sii
op
rasa
ni
are
llst
cd b
el
"cate
a
synbo
Jaq
inq
o(
lisC
e, '
¡EX
\e in
ou
tpu
t
ile
na
na
.I-E
T
the li
sti
ng
a =
se=
ibls
t c
rne
ratc
s h
oth
L
S7
nn-J
H
GX
file
s,
ír.c
l-jd
es
^ li
ati
na
oí
all
sy
ob
ols
in
th
c L
ST
Ule
, d
a-,
n
ot
pre
se
rve
thc
sy
nb
nl
tab
laa
íte
r th
e
ass
*c
nb
lv,
and
g^
ne
í-it
e:*
p
aq
e h
rcü
Xs
a£
tei
tvc
fy
^Sli
ne
s o
í so
urc
c co
de.
Th
* /L
o
ptl
on
V
eep
» th
í a
ise
irb
lcr
Iro
n q
en
era
tln
g s
LS
T í
ile
.In
.Hq
ad
, th
e li
sti
nq
is
q
cner
atc-
d to
th
e d
isp
l.iy
. T
o
eo
r.p
l^tc
lysu
pre
ss
.1 lí
sti
na
, u
se
the
/L
op
tia
n
wh
tn
sta
rtin
n
the
aase
.T'5
l¡',
and
use
*
S
NO
L1S
T d
iro
cti
vc
[eip
ljin
-d
In
a la
ter
se
ctl
on
Q
P
ob
j .
dis
pin
ye
d,
chn
nQ
ed.
or
.tav
ci
by
oth
er
C'í
SS
Oil
c
cp
r.in
ds.
W
hc1I
EX
fil
e is
g
cn
nra
tcd
. th
í o
bjc
ct
cort
o is
n
ot
sav
^d
in
thp
intc
rn
al
co
dp
bu
ífe
r.
it
jus
t q
oc
s to
th
e H
EX
lile
. II
th»
co
ile
nrr
ors
d
uri
na
th-
asíe
sb
ly.
Us
t o
f th
e K
Elt
fil
e a
llo
ws
eo
d»
LO
be
aq
ne
ratc
d
at
an
y
.nld
cc
sa,
Ind
cp
pr.
ilc
nt
oí
th^
ca
<\v
n
ulí
er
in
the
ch
ap
trr
on
CV
S(3n
51
Uti
lity
C
onai
arid
a.
3u
rir.
q th
*
asstn
hly
D
toc
ess
, th
s a
snc
mb
ltr
bu
ild
s a
sy
oto
l ta
hle
fto
n a
ll
lab
el)
.i
nd
syis
ho
ltc
va
lúe
n d
eíi
np
ri
by
thc
so
urc
eIi
[oq
ra:n
. T
his
ta
htc
is
n
oro
all
y
inc
lud
^d
at
the
en
d
oí
Lh
eli
sti
ng
o
utp
ut,
c
ith
«r
to
icte
cn
, o
r to
th
c L
ST
lile
. S
yo
no
ln
ara
ei
wil
l -i
cp
na
r in
th
« IS
itin
q in
A
SC
II
a Ip
ha
be
tt c
al
nn
ier,
alo
nq
w
llh
thc
sy
ab
ol
typ
í an
d n
usi
^ri
c u
alu
*.
Th
e /3
D
pti
oii
cn
nb
lcí
the
usa!
to
sup
ress
th
lí
syn
bal
tib
ie
Ilj
tin
q.
en
éra
te.!
by th
sy
nb
Ol
tib
ioru
nn
inn
. T
h!
ay
^h
ol
va
lúe
», V
- ia
ur"
cod*.
Wit
h
tho
li
ni-
s re
qu
ire
d b
y th
ec
ne
an
in.}
, titlc
Un
es,
nn
d b
uíí
er
sp.i
ce
at
tho
b
oc
tom
n
i a
ít
.V1,1
8..
""*
"•'•
»to
s -,
li
sc
lna
tha
t U
ta
o
n
stn
nrt
.ird
II
inctí
cr
{fif
i li
no
: p
ir p
;Je J
efa
alt
).
Th
e /
K o
ptl
on
su
pre
s^
s th
ein
q
tun
cti
oi.
. tu
rn
tng th
e
lla
tin
q
into
on
c lo
no
. c
on
tin
ura
us
y ;/
F
i^
j,
.ind
t^
ie
pe
rio
die
p
^q
e b
rea
ks
are
ri
ot
ne
tdp
d.
•ra
l e
iaia
ple
a
jisc
tbli
-r
Coi
üK.i
nii
lln
^5
?.re
sh
ow
n
b^
low
;
> A
SK
5I
D:\
AS
MC
OD
E\T
RIA
Ll
/1./S
/X
1.ÍV
SM,
in
the
sub
dií
:tc
ry
f U
i
/>sr
.si
/P/S
7h
i.
cn
en
an
d
assíc
ble
s th
e
ItU
7
RY
S.S
RC
, ¡r
om
th
e
cu
tcc
nt
-Ic
líu
lt
Jir
cc
tory
. fi
tr.i
r.it
i n
q T
KV
2.H
CX
an
:i
TR
Y2.
LS
T.
Th
^ li
sti
nq
"III
no
t c
nn
tJin
th
c
f-v
ab
ols
. h
uc
ch
e ly
mh
ol*
i^
ne
rít
cd
).
y th
-1R
t2
íllf
w
lll
l-íC
Dct
- p
art
o
í th
e p
«ro
an
en
t sy
nh
ol
tau
lo.
Ho
céth
»t
ew
itc
n o
pti
on
s n
sy b
e sp
ec
ific
d
in
joy
ord
cr.
Fin
aU
y
you ean try
a tíal
ass
em
bly
. W
ith
the
íile
D
EMO
S l.
AS
M,
sup
pií
ed
«il
h
the
C
YS
SO
Sl
dis
ke
tto
. In
C
hí
dH
(au
lc
dír
^c
tory
th
eíD
»n
.in
a¡
'
> W
M51
D
CK
Q51
vil
l g
ínsra
to
thí
tile
D
EMO
S l.
LS
T
as
fóll
ow
i¡
file
O
EK
051.
1IE
X
ctr
or
tvn
ic
p th
at
thc
.iB
Ed
r.b
ltr
wil
l a
vq
n o
n ta
th
? d
lsp
lay
tin
c u
n .l
í-p
ub
ly
15
^c
artc
d.
ah
d
a ^
ujL
na
ry co
an
ts
is
¡.h
fwn
on
v
hc
.lis
pla
y,
.11
w
pll
a
s in
th
s L
ST
íi
l tl
itn
lay sc
rccn
15
th
ow
n
btl
ow
:
3. Í
C
VE
SOS1
lot
DE
M05
1
th
err
ots
PRO
H
Ero
gra
nm
er
Dse
r's
Man
ual
PB.Q
M
pro
gra
ttcn
er
Ds
er'
a M
anu
al
Use
r M
anu
al
AD
VA
NC
ED
HT
CR
OC
OÜ
PUT
ER
SY
STEM
S
?RO
K
200Q
-
1
UN
IVE
RSA
L
PRO
K
PRO
CR
AH
MER
.
Sep
ccia
ber,
1
98
6
Aív
au
ced
M
Lcr
oco
mp
uC
er
Sy
sCem
s, I
nc.
j-in
nnnftnnnnnnnn
UU
UU
UU
ULJlJ
UU
UU
Lr
FIG
UR
E
2.1
A
dia
gra
m
de
sie
na
cln
s ch
e n
uaert
cal
pin
ord
ec fo
r b
oth
2
4
an
d
28
pin
E
FR
ÜM
S.
2J.
CO
MM
AN
D I
ND
EX
1.
BT
TE
PA
TC
H
(B):
í.
llow
a
data
to
b
ac
ha
ng
ed
at
tha
sp
ec
ifie
d
pto
m
pro
gra
mm
er
mem
ory
bu
ffe
r lo
cació
n.
2.
CH
ECK
PR
OH
(C
):
Ch
ack
s tf
th
a
pro
a
isb
lan
k.
3.
DIR
EC
TO
RY
(D
):
Dis
pla
ya
Che
d
ire
cto
ryo
£
a sp
ao
iflc
d
rlv
a
(A.B
,C,
or
D).
Ad
var
.cad
¡í
lcro
co
ap
ute
r S
yst
em
s,
Inü
.A
dv
anca
d
Kic
roco
rap
uc^
r S
yst
em
s,
M uU •
3 -d
sga~3n •n *rJo taP Oo:*re
"~<•*_,-o ••MIrr
re ÍPrt
B f-n> tt,B t~o n»rt w
o-nC a-fftfSHirert-a• rt
o
S-MO •OV UlB *T!
nn n
^rr
re *r)Pi
D
•a vH ••O
^rt r"3-1-'a ort C
Mrt
0.3-re ren
tTen_o. rt
no
C O I-"¡tía •H,rt
rt 3 w• n [E
H O
O
M
ft O
<í"í
•a art >D »-JB >•
rt t/io -~f
Qr] --rtB
0re tnrt 3"
o*j
greBO rtfl 3-X re
fb fl O
B o •o SM OT•-i pCT3 S
HiO *afti Wre Ort n \í.
íj ^-*
£••adn 93h-refliW
19 uD-
(1•tí Drt 3O rtB re
prt
•d urtatfl Ort HlE»
a rr"rt IB
sgn hru
pof-Ona;rtorf -O
o ..
B
B *dO rtrt oX QQ• M
D
n;j-It
•doS
"oí0BQ Oíírt OOM *^ <i
0 S KBX ícn oo t-* >-q3 o
fl Ort ??>-O H
O XB ni
o a-Xa"n ••n B
i-h>-rt t-O MB 0
no3re rr
too-C
re tt
mí •O a03 Ort f t-
f" ^írb <» bft ÍXrt
H,B f~ore f—wU o. wo nfl H!X rt
otTB «1
re a-H• D.
to [_-*?^x^
t-3
OfO
fl B3-».ít LQ
fl ftS?a re
E "S (1
ft,»:•tí o Mrt rt nO My> i*rt tiJíX M
B O-'S
fl "S
gssBO rtrt 31X B
nnU- ¡aR t-
hh« [ií& f-1
1 O• rt rt
fo re
o.rt
f-a-3 rertO
o
re rr
E iro •rt re
r. 3*q
fl O 0ÍO fl KO
' » S. Prt II O
P-KO
m inD 4 HM It fH
fl 0f wt) ti,
IXo ^-*
•d ori a--
ao•o-o *-lí 1— (-•
P» Orr <t--: «Q D3 t-«
rt rttu a~
ft, reVI
rt w
S"£,rt
P 0 *-
C "'"
s«pí» rt Xr*.o Hf-B Lía an> *d f3
oen» aX M >rt B t-í
?$>fP
1 *~N
U ..
BOrt M
t-*CfH
fflrtiBo 3rtx
r-rtrr «
íl^SíoSííoirjSíocSMto w>mj>fa
S-*S~U-*+s-^s- V - -V- ^^—L^*
[o^s*-9^-•h*^J^J^^JUCo^J(-*L"M rO|Jl_n"JlU^l^TUiL/í
oo oooaoooarG G^íGS^C^Gv. ^^ V^VX^-' -^-*^^-' -^-'
t^ í-* CC M 0 03 *J í L" LJ f-
•^J-^JtJ'CO^JtQ-J'^J^J^JLnfJUK-'fOI"kh-fMJ>-'
^^^ j - -Ví-v^^^— s - ^^^
U i—* M íií í -í '-1 vn
oo r* r* t"1 r1 c-1 f o- r'f H r
«^H ^> r- ' N* r-J ro ro --3*-rt*-' f j |— "I—.J-- |— _*-
i <<:<!«c¡ aooo o
ns^ns•^f^r^fT^f^S
1 * 1 1 1 1 1 1 1XH WO>BO«J>W
Plprt
rtrt3"re
P•d '•ofio•aK-
rt
OeBEi-rtftinoB
t»
Eto
I-1
3 rr a n PIHVO n> rert jt t> n Oftirtu ntsi re ro re íO ft.n. vi - 11 n -i H 31cTB ^ rereODJJ
0 fl U 33 r-3rt re 3"H 1° rt rt rttn ny a¡x la fu D*n o" <; w n fl
O Q*rtrO o rt & X f°H B re O rt !-•»• -a rnI^r t - í r tOr t re <tfi3 a-t- 03 P> w t--C* f r twdtJ"rti fi>-a B tt n reí) r-B fd fl H o D re 3O M O H oo i* nrt re futa i-.ri u r-t,f- ntí B u rt 3 n w t-nro
re re H C ti O.(i ort C B f-t~ " h~• r ir>t-<:ri3 rtrtí
te f- 3 o re tjs a f-'-íf» rvi r-B re o r-f> n re -1 K a 3
o 3 o rr Wrr & fc c» ft M flrxi^ i» w rt Pre c- rt 3 rf
-d o) o 3-
n3-rt arj • n>?i i— ií ft rt mO o 3* [nB rt ?J370 (J n re f-n O o
O B* fl flQ.B rt rrreB rr rt
W-d pi Sm rt 7> OT!ti rt 'tí id CB Í^O rea- o -jo a n re x •«NO rt rt U.re fl aC f* * ren P n •: w
B o ü-f-ox n 3o re v ti u rt-o t n
tJ O
D
li"MC
K^OTT, •*
•TI» c,-o •
"U -a u _
S II " 'ó,u rt "i
C U ^ 5o LI:-4 1 U —
" J S C
U Vi-J O
VICl D
-o i. KC
n!en
_G
p] Uu o
»-
11 ¿,
' Li-
i: y
fio "ííó "
Ü o-j C
0^5 r¡M M O HO. U <*
oío
tC*J
t
ag
6Jg
QÍ
£rm
x"O
P-
*£t
K-<
ot"••u
JOP.U!»piH
B VJ t-Otí «O O C <> 3
IM ^J
" " ~U > GB p. d O^j n nj;-;- J a n i-1>ii U r) r>
P-Cl-- CU5 W
"_, ^9"^u--* CJC *1
TJ -^ —t "U>v< on
M <J TÍ íl P
" Ü '4 .3 -5 ii —1 --i V* X« S luí) iJ
"'°ys 5•0 " í J H •« r;" Í3O -i .— *~t t-l
^ g fl> Ul -0 £
•-' iJ OÍ-J • '»- ¡ *^
'-1 u c-a-o G o
g ai - G 4
n w C
£SCl—l n >XUJ G O
xx-^tio
d¡cv^
U>W
tuO
oas
s:oe1A.
b.O
hlO.
n
oooo oooOOOO O OO-ico OO O OOOOr^CJ CO CJ O
-1UlE-
Sv^
•3- J>ooor-os-«o
Tr-J- OJ
M í-1 -fiH W tu 10
rjMÍ"
•>* otJ U
.c-•r* 0
**-* 3
« C
*J nc o t:** H M
y ^"c:r' "-2 n
v< J. -1O f, TJt-l «
üj « XvJ O D 1.1
El. U O
" "ll' U
Zj f~ f
«13
VJ — J QJ«•o wÍJ O^JlUr-l-JO -4
3
P n rt
*i ¡j
O1"3 O
u
C
g
naB
te
5|u)•o u
G flto O
140 O,Bo uu o
t? « w * «
'^*"JIJ
Vj*n O O O
14C LJ JJ
>,? tí c: cjj IJ q
-O U O Ou o u
" « íl— * i' í O-ü
_ , li ij U
B'M S
rt >O • u
f6 O>>G «Vl-Jo a3 vj o3 JJ u
WX G
u TíTU c to
c ' -u o u
•-,•^~»—
s<(J
ísu-*•H
Bo aWK0.-Í
^"JOu
•o
JS 11 C-J
n n bfJVi £1U s a <c d
o > t-? Zj ñp- T S DJ
r¡ C. tJ iO-IT.I:ü-o í.~
¿r^-í; S n-JO C
l.on.
cha
prt
nce
dil
ve
tif
me
ss
áE
* .
_U ijj t
n ti t'. %íl>^> «O
'LJ.-I U^--J— 1 U II.Ll-J 3>-i
pj n í>
> OX MTJJTJ O 0
n-2 « a si uX Jl M .' . » 9 ". ..
S u í. IJ O C
""u P.U u3 tíi e n ci «TJ »~i
p. o a ai c CX VJ
,£
0JJG
sí <a rVj oí C
oLJ 1>
LJ
^1 Vjy c
X KÍJ >
« 01 O 4-1Dj VJ U O-
rt c eí* H-J O
JJ il HUUJ IX
^¿ 0 4J(J n --<o aJu /5
X uUH OX U L>
o JZ-Í--X e•J
O £d O (J fll
,-í § « «oK U 14« o to-j:c-i o t.OQ V4¡¿
c£ P¿£ t
tu C "-J S;
1¿-| 0 <El ÍJ pO C *-"O 1.1 M 01un: t-*o-u e o f->
X <u n5UX 6- tfl
ÍJ >.t1 M04 C C"
U — HO.« 0 U IJ t CtíÍJ JJ O OJ ft-31 C^J U >^X U O a t*JU ."Í -" -J W
/^ o u cu-
" n .c H-<-*- U l U QT3 ;>*— 0 VJ rt" VJ 1 •-! Q^ —
C- a, EO-J -1 M
* 3¿?xí:aJJ 0 .1 U U U
0 Vt > O > -H
cí °-iÍj sví. *rj >>O C 0 P
.Q n O w-J
COt inntJHf l ) -oí .^o) - d X ^G~l•a
t4
VIo
P.ÍJ v) d • n
ni >l 01
O o?T3 M^íu u y £ -J
C a OttíL>^H bjV<<UtflC
OIJ
u! R HUl O BK
SH tJ Oíd
UUJ p,»p. C X
fll C oí JJ í*en « u iJ u _
Ul U-J U --, O P.F
~r- #_] r^
--< MHJJH MM-Oj^vD^^^^vjinr~ r*
SSSaaSIS
ta-í —-J~J O" a f¿« > o^r-i -<^2 U
u V.™.£ °
M« 5btld C£
9 "1>u rJ
.-1 4Ja
tJp
-oi^Jc -Jn fv-10 "s co aU 01
II
H u
C
C•.<
>
V-
í.c
D
fí
C M ^ U~J oí U rt P-U M GH
0) "'u • tíw -c P-aGn o M-4 . u O <
n [3H
u GX EO4J-< U
^•dTí tíoo; aiJní
Ol-rJ J3Ü3
^ UrJ H
U oí -< rt -i
oD,_q*
uS^
RO
CR
AM
I
a.
•a
uH
«-J•H<JJ.
U
en
TJno
uu
X J¿ " G X JJ X-"N
0 X - B oíIJ O a¿£v) • «ro tjMU C M - U H 1
P. C.Q3: ,a« di tfl.K 11 H ti
•• ** _ tJO' K-J il X
0 U Q Gilí P" M 0C v* EC !•> 'u aia) CU H JJ •ÜCfl •
t> U U— 1 c «w OJX ->v-H E3 fi íi e vji u u-a ti
y o oo u nú M o41 U-Q ív^ Titi'uS
VJ X H -H OH.t u u u a 03;
-B. U u CX O U
vC CU L1 J X
R C.siMfl >l 4JC r3 k*H
n Q CU Ij OH P. 3TIP. o G
•-Í "J p.SM H
y uj:o• ñu upa
>> w -q
« U O
> 11tllH • Ulvj a CTI -ú
M VJ IHXOUHP.GB. d-01ti -OMIJU C . - J titeoO Cfl>3 U l¡ -X Vi -m «i
n n G i-i 13 TC! U O —
J t* u u D.n( r,x>1 ¡ C3 n B V f
OOJ • £ U 2 O J - * U
- - f lOJJC-G Vj <1O H — <H Oílj M
n vj u o o o u3 p.n-< » • u v.
i ñ 0] -JH'H " Q~~
n H_2 LI u
3 5] cTUXX1" -
« u O-cl
~-i-<~iX nu a n u oU.G d vj
IJ Q O
G >>D « C-
.•í O. O
un ni -i^bg"jS
PRO
H
Pro
gra
mra
er
Dsa
r's
Man
ual
2.10
. SH
OW
.ME
MO
RY
DA
TA (
S)
The
usa
r-
can
sea
che
con
cen
ts
af
the
mem
ory
by
en
tert
ns
"S"
for
SHOW
H
EMO
RY
. T
ha
soft
va
re
vil
!p
rc^
pc
tor
tha
sca
rcín
g
64K
se
gra
ent
an
d th
e o
ffse
tid
dre
ss.
Th
a u
ser
sho
uld
eri
tcr
the
ad
dra
ss
of
the
?HCH
n
e^o
ry
to
ba
dis
pl&
ye
d.
Th
a so
ftw
are
vil
ld
is-j
lav
the
mer
aary
a
dd
ress
, H
EX
data
sn
d tt
stq
ulv
ale
nt
AS
CII
D
ata
on
the
mo
nit
or
or
on
the
sri
nte
r,
dep
end
ing
up
on
cha
sele
cte
d
ou
tpu
t.
HE
Xío
r^it
o
n t
he
term
inal.
T
he
da
ta
\."i
ll
be
dls
pla
ye
dIn
a
blo
ck
of
123
Ey
tes.
T
he
soft
wa
re
vil
l v
ale
fo
rch
e u
se
r's
inp
ut.
T
he
use
r ca
n p
ress
"
FC
UP
"
toIc
ok
at
tha
pre
vio
us
pag
e o
r "
PG
DÍJ
" to
lo
ok
at
pa
ce
. A
ny
oth
ar
kay
v
ill
ax
it
the
SHO
'JUE
ÜORY
co
z^Ü
nd
. (N
OT
E!
ch
isEE
LP
or
tha
OPT
ION
S k
ey
s)d
oas
n
ot
inclu
da
the
111.
\VR
TrE
RL
E (
\V)
Th
is
canm
and
all
ov
s th
e u
ser
to
wrr
ite
the
da
ta£
rc^
Ch
e m
etao
ty
bu
f f er
on
to
a d
isk
file
.
Th
isso
rcv
are
pro
nip
ts
for
the
nim
bar
o
f b
yta
s (H
EX
) C
o b
av
icce
n
in
che
file
. T
hen
th
e so
ftw
aró
vil
l pr
ompc
for
tha
file
ña
me
and
the
ex
ten
sió
n
<NO
TE1
Th
efi
len
ama
MU
ST
hn
va
an
ex
ten
sió
n) .
Th
e u
sar
can
en
ter
ths
file
ña
ma
as
f oll
ov
s :
A:T
ES
T.D
/.T
or
E:T
ES
T.D
AT
2.1L
BY
TE
PA
TQ
HE
)
The
u
sar
can
chan
ge
the
cp
ec
ifie
d ra
erao
ry
dac
ab
y u
sin
g C
his
co
nuna
nd.
Th
is
mod
e ca
n b
e e
nte
rad
b
yty
pin
g
"B".
T
ha
ao
ftv
are
w
lll
pcom
pt
for
tha
stz
rtln
g
64K
se
gm
ant
and
off
ae
c a
dd
ress
. E
nte
r th
aad
tlte
ss
of
tha
rcea
iory
to
h
a ch
.in
ged
. T
he
soft
va
rav
ill
pri
nt
tha
ad
dre
sa
an
d
the
pre
san
t d
ata
, th
cnth
s so
fiv
are
v
ill
wai
c fo
r th
e ne
w
da
ta
to
be
enze
reii
. E
nte
r th
e 2
dig
le
HEX
d
ata
, th
en
pre
ss
tha
"EST
ER
" k
ey
(ÜO
TE1
If
the
use
r p
ress
es
on
ly
the
"EI-
TER
" k
e^
, th
en
the
byC
e v
ill
be
left
u
nch
ang
edan
d th
e so
ftv
ara
v
ill
adv
ancü
to
th
e nf
ixt
taen
orry
loc
att
on
.).
Th6
so
ftv
ac
e v
ill
then
ch
eck
for
tha
Ad
van
ced
Mlc
roco
aip
ute
r S
'yst
ems, In
c.
- 13
_
PRO
H
Fro
gra
mn
er
use
r's
Man
ual
vali
dit
y
of
the
HEX
da
ta.
If
the
en
tere
d d
aca
ts
no
tv
ali
d
da
ta,
tha
san
a a
dd
ress
an
d
dat
a v
ill
ba
pri
nte
da
nd
tha
use
r v
ill
ba
pro
met
ed
on
ce
ag
ain
fo
rth
a 2 d
igte
HEX
d
ac
a.
If
the
da
ta
is
vali
d,
the
soft
va
re v
ill
prl
nt
ch
e n
eiit
a
dd
ress
at
id
ch
e d
ata
.T
he u
ser
can
fen
ter
nev
data
th
e sa
ne
way
as
b
efa
re,
or
tha
use
c ca
n
en
ter
","
to
ex
lc
Ch
is
mod
a.
2.0.
C
HE
CK
SU
MC
K)
Th
is
is
usa
d to
d
isp
lay
the
sum
thac
has
b
een
read
o
r lo
aded
in
co ae^
ory
.o
f m
eoor
y c
alc
ula
tad
us
in
g th
e ch
eck
de
term
ina
d b
y th
e ty
pe
of
pcom
se
lec
ted
.
of
the
da
taT
he
amou
ntsu
m
Í3
2.14
. MO
VE
ME
MO
RY
DA
TA (
M)
Th
la
po
ve
rfu
l co
csia
nd
is
use
d to
CO
PY
any
blo
cko
f d
ata
fr
om
one
locatl
on
tn
ae
aarv
to
an
y
oth
er
locació
n.
Th
e u
ser
Is
pram
pCed
fo
r ch
e sta
rtln
e 6-
íKse
gn
en
t an
d o
ffs
at
add
ress
o
f C
he
SOU
ECE
and
the
DE
STIS
AT
IQH
, th
e n
un
bet
o
f b
yce
s to
^
ov
e,
and
fin
all
y
vh
ath
er
che
mov
e is
to
b
a ÍO
RV
ASJ
) o
rEA
CK
VA
ED.
A F
ORW
AED
mov
e sl
op
ly
cake
^ ch
e co
nce
nts
at
tha
So
urc
e,
pla
ce
s th
a c
on
ten
ts
at
the
Des
cln
aCio
n^
chen
in
cren
encs
th
e S
ou
rce
and
De
stin
ac
ión
ad
dra
ss f
ay o
ne
and
rep
ea
ts
che
pro
cess
yn
cil
aíl
th
e b
yta
s h
ave
bee
n co
ple
d.
A
FORV
ARL
n
ov
aís
u
sefu
l In
co
py
ing
dac
a to
a
no
the
r se
cc
ión
of
mem
ocy
thac
do
es
no
b O
VES
LAP
the
So
urc
e d
aca
secció
n. F
oc
eíau
íple
, to
ni
ova
10
0 (H
EX
) b
yte
s f
ron
So
ürc
a lo
cació
n
O t
o D
esti
nat
Lo
n lo
cati
on
10
(H
5X)
In
tha
sam
e SA
y.
seg
sen
c,
a FO
RVA
3D
aov
e v
ou
ld
SOT
vo
rk.
A.
EACK
VA
RD
no
ve
can
easi
ly
han
dla
ch
esit
ua
tlo
n,
buC
th
e u
ser
mus
e d
efir
.e
the
SOtn
iCE
and
DE
STIH
AT
IOH
ad
dre
ases
as
th
e ES
D
of
che
dat
a b
lock
.F
or
the
abo
ve
exam
plo
, th
e SO
UR
CE
ad
dre
ss
vo
uld
b
a1
00
(HE
X),
th
e en
d o
£ C
ha
Sau
rca
dats
á
rea
, an
d th
eD
ESTI
MA
TIO
H
ad
dre
ss
vo
uld
ba
11
0 (H
EX
),
vh
ich
v
ou
ldp
lac
e th
e d
ata
at
10
(H
EX
) b
yte
s h
igh
er
in
mem
ory
thar
i ic
v
as
be
fore
. A
fe
v tr
iáis
m
ay
ba
na
cc
esa
ryb
efo
ra
a tr
ue
gra
sp
of
tha
us&
fuil
nes
s o
f th
aBA
CKV
ARD
n
ov
e ca
n te
re
ali
za
d.
Adv
ance
d M
lcro
conp
UC
ac
Sy
sCan
s, In
c.
PRQ
H
Pro
gra
mar
Dsa
r's
Man
ual
2-L5
.
for
V^
rvt
FIL
L,.
ME
MO
RY
DA
TA
Í.F
)
Th
ls
co
naan
d
all
ov
s ch
e u
ssr
to
£111
th
e
rneao
ryv
lth
a u
sa
r d
afi
na
d b
yte
. T
he
use
r Is
p
ron
pte
dth
e sta
rcin
g
64K
seg
aen
t an
>¡
CE
ÍS^C
ad
dre
ss,
ch
eer
of
(HE
X)
b/t
cs
to
be
aL
f-ir
e-i
, ar.
d
the
actu
al
to
be p
lace
d in
th
e sp
ec.L
rI.E
d -e
^ory
lo
cati
on
s.u
se
r zjy
fill
js
au
ch
as
on
a S^
K.
seg
me
nt
at
a
:.I6.
TKA
NSF
ER D
ISK
FIL
E (X
)
Thi
s co
mm
and
wíl
l tr
ansf
er
th¿
IHTE
L or
JiOTO
ROLA
Lo
ad n
oduL
e fo
rwat
to
p'
jre
HEX
DATA
FOc
ÜIAT
.
Typ
e "X
" co
co
nver
c th
'i IH
TSL/
XOTC
ROLA
fi
laf=
C3a
t to
pu
ra H
EX
dat
a.
- Ths
so
ftw
are
wj.l
l. pr
oapc
i'ae
use
r to
en
t*c
eLth
er a
n "A
" £o
r IS
TEL
fonn
at,
or3
"3"
for
1-íOT
CROL
A fo
inat
. O
nce
&
val
íd
irip
ut
has
iícn
en
tere
d,
the
use
r ú
til
be
pro^
ipte
d fo
r th
e fi
laip
ecíf
icat
ion
s (S
ee
Tab
las
2.3
and
2. A
fo
r a
^sc
rlp
tlo
n o
£ th
e IH
TEL
and
hOTO
ROLA
lo
ad
mod
ule
fom
ats)
.
ca
ap
le:
A:2
76
4.h
ei
A. d
esc
rlp
tio
n
o£
ch
ele
fo
nn
its
foll
ow
:T
KT
EL
and
MO
TO
RO
IA
load
Ad
van
cad
M
tcro
co
mp
ute
r S
yst
em
s,
Inc.
PRO
H
Pro
gra
un
ner
üsa
r's
FOR.
HA
.TD
ES
IGH
AT
IOH
He
ad
ar
ch
ara
cta
rR
ec
ord
L
eu
gth
IKT
EL
LO
AD
M
OD
ULE
FO
RK
AT
110
OF
CO
ÍiT
E^T
D
ES
CE
UP
TIO
NA
SC
II
CH
AR
S
Startlng
4
Typa Of Record
1
Check Sivn
2
Alv
ay
s a
co
lon ":"
(HE
X
3AJ
A
tvo
d
lgL
t K
EX
v
alú
as-
ge
cíf
yin
s th
e
nu
ab
ec
OE
da
ta
by
tes
Ln
the
rec
ord
. A
re
co
rd
lan
gth
o£
O i
nd
tca
tes
the
lase
rec
ord
L
n th
efU
e.
Fo
ur
HK
d
ígit
are
pre
se
r.t
Cr.
e a
dd
rcss
o£
the
aeso
ry
loe
A t
to
n,
wh
ec
e th
e
fir
sc
da
tab
yte
v
Lll
b
e lo
ca
ce
d.
00 -
M
or=a
i D
aca
Rec
ord
01
-
Sn
d O
f F
ile
R
ec
ord
A
tvo
dlg
tt
KE
X
n-^
aher
tep
resen
t::
the
tvo
' sc
oa
ple
ae
nc
o£
the
sun
Of
the
pre
ce
dín
s 2
56
by
tes .
TA
BL
E
2,3
. A
lis
tin
g
sho
wtn
g
the
fon
nat
de
alg
na
tio
n,
the
nu
inb
ec
of
AS
CII
c
ha
rac
ters
an
d
the
co
nte
nt
descri
pció
n
of
tha
IH
TE
L
Mo
du
la
Fo
raac:.
He
ad
er
Reco
rd
Le
ng
th
Sta
rtin
g
Ad
dre
ss
10 0000
00
34
36 38
33 37 39 37 «
36
39
3¡i
46 33 41
3530
OD
OA
3732 33
37 46 37
37 3233
39 33
3039 45
"£iñé~FÜd~ ¿¡rrlaga Return
Check Su*
Advanced Hicrocomputer Systeos, Inc.
-16 -
PRO
H
Frc
-gra
mm
er
Us
er's
M
anu
al.
FR
OH
2
00
0-5
FIZ
AS
E
RE
FE
R
TO
T
HE
FR
OM
2
GQ
Q-1
H
AM
JAL
FOR
¡PE
CIF
ICE
S
AS
TO
H
OV
T
O
US
E
TH
E
GIÍ
IT.
TH
IS
SE
CT
IOK
LIS
TS
T
HE
T
VF
ES
OF
DE
VIC
ES
SU
PP
OR
TE
D.
FC
R
HO
RS
ISF
OR
HA
TIO
N
ON
T
HE
CO
HM
A.V
D
DIR
EC
TO
RY
P
LE
AS
E
RE
FE
R
TO
TH
E 2
00
0-1
M
AN
UA
L.
US
1N
GT
HE
PR
OM
PR
OG
RA
MM
ER
\fc
er
ch
a sy
ste
a
po
va
r o
s O
N,
inse
rt
KSD
OS
sysc
e^
dts
k:
in
dclv
o
A
¿Rd
AÜ
S su
pp
lled
dis
k
ind
riv
e
B.
BO
OT
UP
the
sy
sc
ea
in
ch
e u
sua
L
sati
nar,
T
he
pro
a p
rog
ran
ua
lng
ap
pL
Ica
Cio
n
so
ftu
ara
can
be
call
ad
ou
c b
y
cy
pL
ng
:
B:S
75
1
CA
bT
ION
Ev
en
tho
ug
h
the
ap
pll
ec
ció
n
so
fcv
are
co
ntr
ola
ill
oc
Ch
e c
on
cro
L
sig
náis
an
d
vo
lta
ge
ap
plL
led
at
Che
21?
DIP
so
ck
eC
, C
ha
use
r sh
ou
ld
inse
rc
ch
e p
roa
inC
o
ch
e so
ck
en
on
ly
vh
en
th
e so
f C
vare
p
roE
pcs,
"IS
SE
RT
T
HE
PR
OH
IN
TO
T
HE
S
OC
KE
T".
T
O
AV
OID
ac
cid
en
tal
dan
ag
a to
th
e P
RO
H,
DO
N
QT
RE
SE
T
che
sysc
en
vh
llft
ch
a
PRO
M
ts
in
the
so
ck
et.
EP
RO
M I
NS
EU
TIO
N
Th
a in
serc
ión
o
f C
ha
EPR
OM
lu
to
the
40
pin
sero
forc
é
sock
ec
is
very
im
po
rcan
t.
If
cha
E
PRO
M
isin
se
rta
d
baclc
vard
s tu
can
d
au
ag
e th
e
dev
ice.
SP
EC
IíT
IN'G
EP
RO
M T
YP
E (
T)
Tli
ís c
om
man
d aü
ovvs
Ih
e
CA
UT
ION
Ad
van
ced
Hlc
roc
om
pu
ce
r S
yst
em
s In
c.
- 33
-
Be
ca
refu
l '..
, -,-
.•:<
;'. í'i'.--
i th
«
FSO
H
typ
e.
sin
ca
ch
e v
ton
g
cy
pa
, ..''.'•..!
i'.
--,
-fro
r.?
cy
pc
ca
n
dii
cc
cy
ch
ad
ev
ice.
TA
3LE
2
.1
A
Ll'
.tlr
.'í
'.í
r?
OM
S
an
d
th.¡
Le
C
yp
ed
eii
gn
ac
loti
.
TA3L
E 2.
2 A
lis
cín
:; •
>:
:r--
:j -
ind
ch«
of
KEX
byce
s av
alL
ibl-
i ío
r ^r
c^rj
^-ui
lng
,na x
latí
a nu
rab«
r
Adv
anco
d M
ícro
coni
puto
r Sy
acem
s, I
nc
.
, ín
tjM
CS
*-51
S-S
ÍT C
ON
TR
OL-
OR
IEN
TE
D M
ICR
OC
OM
PU
TE
HS
BC
31.T
OS
1B
C31A
H.S
S51A
H
S75lH
.37S
lH-IZ
'S75lH
-áS
a H
lgh p
trfo
nru
r-ca
HW
OS
Pro
cw
s |n
te>ru
lTln
i«n. E
v«n!
Counla
r*a 2-L
ovd Irc
titrupt
Príorlry
Stn
Klu
; o 3
2 U
O U
rve*
(Fr>
jr 3-B
lt P
one)
a 64K
Pro
Qrt
m ¡
Aenvxy S
p»c»
roco»*o
fB
ll-W
tJio
íta
bU
RA
MP
rc-
nirvubU
Full D
upln
Serial C
hw
v«|
111
Inítru
ctlcnt
(&4
6JÍÍ O
=U
Mem
ory
S
psc»
• S
«curity
Foatu
í» F
rtD
l»ct«
EP
RO
M P
(*l»
Agilm
l S
ort
wa
t» P
lracy
Tin
) M
CS
*'5
1 p
rocí
ucts
UH c
pln
Miri
'-w c
«-v
VTia
H d
i u s
tujc
SU
fts .va
laotiia
!f!
Dy
a v
aí-íly
d 'a
i!V
»tR
^1<>
n s
*l t
<o>'ii«s
a c
c-T
vW.'t
ol trenJ
¿í
S-(W
i. B
ylí-
p<oí«
iii"3
.vrg
nxa
juí
!of
ad
riuf
-<x;
;il o
pw
jttens
oonrg
fr*
jilc
tisl
RA
IJ. T
tt-";
nxjtp
iy iM
atv
da 'o
0*v
k*
8052
AH
6051
AH
SO
51&
032A
H60
31A
H60
3!
8751
HB
75IH
-12
87S
1H-5
6
Inlcm
*! U
ímoíy
Pio
u'n
m
8K
x 3
HO
M4K
K
8 R
OM
*« x
3 ft
CM
rors
ror-
Jpone
iK
x B
EP
RC
M4K
x a
EP
RO
M<
K x
3
EP
P.O
M
Oiu
2W
«
B R
AM
129
< 8
RA
Mira
<
B R
AJ.
I2W
..
S R
AM
128
< 3
flAJJ
129 -
S R
AM
128
•
S R
AM
128
.•
B R
A-M
128
f S
RA
M
Tld
lMlf
£y«
nt C
ounitri
3 *
16-3
(12
< 16
'B.I
2 /
ie>B<
t3 x
15
.B.I
2 • I
G-B
il2 -
16-B
.t2
x
IS-B
rt2 "
16.
BU
2 •
1Q.B
-1
Irrlw
iuplí
6 5 5 S 5 5 S 5 5
Tr>a
B7S
1H ii
an E
PH
OH
vois
kxi
ci lt»
fiO
SIA
H; ihíl íi.
Iha
co-
ct-ip
Pio
^tím
Mw
rory
can
tfl n
lxln
caüy
(yogta
mm
sd, ifx! can
tw
«asod
tr/ e'S
csun
!O u
tnjirU
Srl I
M. tt u
lu:iy
co<rp
jl*ío
•** i»
[X B
isco
lux. lh«
Ü7S
1-3.
bul itx
xxpci3
;ai r~
<l ncv
. le
alw
e::
s P
ioqia
m M
#ñ
jr/
SfC
iM-.t
)r tit itiit
can
w u
s*l
la p
-oiu
cl 1
P«E
PR
CU
aía
insí
unauO
vxiiu
d ío
*3-c
*.l. a
nd i
p>O
Qia
mm
aC!o
6»u
d ii!»
moii.lc.itio
n t/l
(SK
ICD
), S
I.'O
D ii
r«(
PÍS
ÜH
H f
l í.o
B75lH
-12of
S»
B?
51
h-e
3.
TV
fl B
7S
lH-6
a a
lwj cr
ty c
<x"*
!« >
-P t
o B M
Hi,
II sisl^afcíí "• n^có'S"tr¿I |Sl|SSf~n^ Sr^fe; -"£ c »» t $ <5 W -f t* — K-
gS a55-o"'S-§«•g1 B10! E 5 ™ k
Ea ^.S>^?i^E e »,-cT,S5g
£3- £*I"|SÍÍ?llSíj5
,_"c
SfiJ*
e031
.'80S
1
B032A
K.6
052A
H
• E
031A
HB
051A
Hin
te!'
8031
.305
160
32A
IÍB
Q53
AH
•
S75
1HS
75!H
-12j
a751
B-S
a
pfv
t rp
X. A
fr^n
31
*«tíi
* -f
e c
safc
uor
ois
sats
ira
dev
íce.
Uüc
h E
na
fl cu
tput
PJÍ
M f
or l
atch
ing t
lieo<
9-«
scc
nss
íuirg
ixeasb
a (
o oilo
mal
v. A
LE ta
n O
r« 8
LS
TTl.irD
uis
. Th
ís p
in ¡
3ate
fu
;*c
c!3rn
?J-
js jip
ul
(Pftóü)
dunrg
pro
-ya
nr.
rij
oí 1
T<J E
P^O
-I p
arü
.
Vi r
crm
.-»
rué
31 s
JH-E
si-,*-=
i C
ata
.
*tE
J e
miti
«J a
l a c
onst
an! t
ale
y, a
rd r
r-ay
bo u
sed
¡ot
turp
ote
s. N
cle. h
ov,o
vef.
sVip
p-t-i
dur
rng
eath
acc
ess
to
.-* E
ra^>
a t
tw r
e.*
l st
rot*
lo a
flam
ar?
c3
can
driv
a a
LS
TT
L in
puls
EiT
srai
Xx«5í
e^¿
^« E
S m
ust ta
eite
maU
y he
'dto
" n
:rC
í-- to
9T
3t;a
iny
MC
S-5
1 tía
vice
lo ie
lch
ccC
* tc
m e
xlm
r-al
P-D
ílm !/e
nXxy
toc
alkw
s O
(o
;0 b
1F
FFH
. n
tna
S03
2AH
flM
SO
SZA
H),
Tíiá
l»n
aba
leoa
wos
die !lV
prc
gra
ir.m
irg :L
TC-V
vcrtíij
e (
VP
P)
duíir
f<og
ratn
irjng
of
Itie
EP
RC
Mpa
ns.
XT
AL
1
Irpu
lo tf
ie m
vwfir
g o
«cil!
ator
am
pM'e
f.
XT
AL2
Out
pul I
fom
*a
inve
o.*g
oscila
r am
plil'a
f.
OS
CIL
LA
TO
R C
HA
RA
CT
ER
IST
ICS
XTA
L1 a
rJ X
TAL2
ara
tna
¡npu
t sr
<] o
ulp
ul.
ÍBÍC
Í:-
ttví
ly.
oí a
n in
vwtin
g inp
üfca
f ifíiíli
can c
e c
e-"
-gu
t&J
íw lis
as *n
íxvc
hip
aso
üaio
'-. a
s ;ro
«"
JiFig
ure o
. ci
lnef i
quar
a c
iysl
al o
f car
amta
'sS
Of v
afm
ay b
e u
sad.
tAi¡a
flf
ai'e
d
'nlo
malic
n c
cnce
i-J-^
ino
usa
oí
ina
on-«
-¡p
osc
iliala
t ¡s
Jva
üst'u
¡n
Apc
ticat
ion
Not
a A
P-1
55
. "G
sctU
tots
lar
Miit
o-
Ta
Cnv
e M
ía d
a.-^
e lic
m a
n etld
iRal
clcc
k so
i-rcs
.X
TA
LI s
f-out
ó Ca
gro
unS
ed,
»hile
XT
A'^
¡5
Üüie
r,as
sf^
wn
rn F
igur
e 4. D
iere
are i»
tequire
iníR
ls :n
U>5
¿ut
y cy
do d
the e
iism
al c
loc'
< s
igna
l, si
r^ce
iré
inpü
l ¡a
iría
ini
smar
ctc
kirg
arc
-jit:y
u ih
iou^n
adi
vúia
-By-
lwo I
Sp-
tep.
bul
mín
imum
,ir;
d m
&ün
njni
high
aM
tow
limes
ipeofe
d o
n Ih
a D
ata
Slio
ñl m
usí
fco
obs
etvt
-d. E
XT
Efi
KA
U
oic
aLii
on
ÍKH
U.
AS
SO
LU
TE
MÁ
XIM
UM
RA
nM
GS
-
Arc
bieo
t TeiT
peifl
luia
Ufx
J« B
las
. .
.0 "
C u
70
"C
Sto
tase
Tem
ptralu
rs
-SS
'CIO
+1
50
"CV
orta
go t
xi £
Á>
/PP
Pfn
lo V
SS
.-
OJ
Vio
-2
1.5
V'V
otu
qe
oo
Any
Otfi
of
Pin
lo
VS
S .
-0
.5V
IO+
7V
PtT
flef
Dijs
ipaÜ
Q'i
1.SW
JÜU
ÍB A
lairnun
/Ía
íí79s"
<nj/ c
juia
pae
man
ent
Oa
msy
t ro
Í/M
deve
a.
IÍB'J íi j
slia
u /
JOfi^
aV
yarr
f.'LncC
cvT
afc
cu/a
.'Jtv
io/if
la d
ai.<
a a
i&e
¡« o
rsn
yot
tmr
cw
cvtá
nj
j6o
v8 l
/jose
m&
c.t!e
<i "i
Bis o
oí'-
ai&
iaí
s-?c
CC
fis o
/ líii
specift
cíW
i .-J
ncí
»Tp
*"9<
í.E
ífosia
s ro
íOso
íi.18
mJi,-m
i¿ni
íocn
g c
onsto
m toe
íiip.-nJs
d p
wro
t/j m
j/ a
ffsc
l D
svfC
D.C
. C
HA
nA
CT
ER
IST
ÍCS
: fT
A .
0 -c
to 7
0 "
C: V
CC
£V :
10%
: VS
S -
OVJ
Sym
bol
VIL
VÍL
1
ViH
VIH
1
VO
L
VO
L1
VO
H
VO
HI
IR.
HL1
!IL2
.1U IIH nm !C
C
CIO
Par
ar.W
vT
Inplj!
Lew
Vo
ftss
* [D
cepi E
í P
in o
í07
51H
. 87
51H
-12
4 S
751H
-Ü3!
Inpí
jt Lo
w V
ola
se lo
ES
Pin
oí
8751
H. B
751H
-1JS
B75
1H-8
3
Inpul H
¡sh
Vot
ia-je
(E
icepl X
TA
üR
ST
)
Inpiil
Hiq
ti V
oto
ge
!Q X
TA
L2. R
ST
O^t
pu
lLo
wV
oiía
ija (
Po-
U 1
.2.3
1'
Cut
put
Lüw
Vol
iace
(P
on 0
, ALE
,W
EF
D-
67S
IH.
B75
1H-1
2Ú
875
IH-B
3
AJI
Oa-
ers
Oui
put
Hig
h V
dia
oo
iP
ofW l,
2,3
)
Out
pul H
i-}h V
olte
e (
Pc<1
0 =
nE
xtam
Jl B
m \kd9. A
LE
. P5E
ÍÍ)
Logi
cal 0 In
pul C
urre
n! [P
ofls
1. 2
. 3 R
8032
AH
. 60
52A
HA
ll O
U-e
fE
Logl
cal 0 Ir
put
Cun
enl t
ó E
Á P
tn o
íB
751H
. S75
1H-1
2 í.
a7S
IH.£
3 O
píy
Lexi
cal 0
trtp
LI C
utiw
l [X
TAL3
)
Inpu
! U
eík
ass
Cun
eol [P
ort 0
)8
75
!H.a
75
1H
-12
i 97
51H
-83
All
Oln
ets
Logi
cal
1 In
put
Cun
eüt
!o E
S P
in c
i07S
IH. 8
75
IH-!
Jia
TS
lH-e
a
Inpu
r C
urra
n! lo
RS
T I
D ¿
olív
ala
Pes
st
Pov
-sr
Sup
ply
Cur
rofit
: &C
31 'E
OS!
B33
1AH
B05
1AH
B03
2AH
eoS
ZA
HB
75IK
S75
1H-I
Z-3
7S1H
-&S
Pin
Capad! a
nca
Win
-0.5 0 2.0
2.5
2.4
2.4
T)
Uní
O.S
0-7
VC
C .
O.S
VC
C--
05
O.-Í
S
0.60
0.45
O.J
S
-BO
O-5
00 -15
-3
2
-JD
Q
±10
5«3
500
1EO
125
175
2SH
10
UnH V V V V V V V V V V MA
M mA
mA
M M tiA MA
mA
rnA
mA
mA
pF
Tort C
ondltl
oni
XT
AL
I -
VS
S
IOL -
1-
8 m
A
HX
. - 3
2 m
AIO
L =
• 2.
4 m
AIO
L -
3.2
mA
IOH
••
-SO
^A
IOH -
-
400
fjA
Vin
- 0
45 V
V¡n
-
0.4
5 V
V!n
*=
0.15
V
0.45
< V
m <
VC
C0.
45 <
VIn •:
VC
C
Wi<
(VC
C-1
.5V
)
All
Outp
uli
Dls
con-
nacl
eJ;
EX
-
VC
C
leil
Iroq
-
1W
Hi
»<co
.d o
4V
. In
UK
ÍI c
púla
la la
t*
i*jp
*rw
rt>Ji
ftd C
" E
n* V
OL*
cí
AL£
anj
ir.to
Uv
Pon
C jfk
l Pod
2 p
ulí *M
-1 D
WIV
J («
ni ÍY
I.L.
to*d
»ig
=•
ICO
pF),
ir™ n
o.M
(Ww
txi
ir»
ALE
v-S
I a
Sch
mít
Tní
fiar. c
/ us
* il
*>**
" l-
ioi
wrm
FIju
tB 4
. Ertern
ol D
riv*
Coolig
ura
tíon
• S
031/8
051
e S
031A
H'8
051A
H8
03
2A
K'8
0S
2A
H.-
8751H
;a751H
-12/B
751B
-SS
W31.8
051
B0
32
AH
'3ü
53
AH
•
SO
SlA
H/a
üS
lAH
A.C
. C
HA
RA
CTE
RIS
ncS
; • (
TA -
O
Io -
t-7
0-C
.VC
C .
5V
3:1
QS
..VS
S -
OV
,Lo
ad C
apac
itare
s í"
Por
t 0. A
LE, a
nd
PS
EH
-
100 p
F,
Load
Cap
aoU
ncs
ícr
AJÍ O
ttwf
Gjip
<jls -
80
j)F]
.Thi
» T
abla li
lor Ih
í S
7S1H
-38
&m>a
oi'1
0.0
.
TLH
LL
TA
VLL
TU
AX
TLU
V
TIL
PL
TP
tPH
TP
UV
TP
XIX
TiV
fV
TP
LfH
Pm
melB
f
Cfe
a'tó
tof F
tpjjf
l^-/
ALE
Pul
se V
Mm
Adjrtts V
i'iú
fo A
l E L
ow
Aa^r
-ss
HcW
ATt
Cf A
LE
Uw
«.E
Lí*v lo
Va™
J In
ítr In
87S
'H.
3751
H-1
2A
.1 C
veiJ
ALE
Lev
, le
F3E
TÍ L
o*
PS
STt
Pul
se W
íúi
B75
1H.
6751
H-1
2A
note
n
PS
Efí L
m lo
VaW
Insir In
B7S
1H.
8751
H-1
JAJ
Í &
n?rs
Inpjt
Irst
r H
oití
Aíte
f FS
EH
l-í<,1
Irsu
Pea
l A
ftaf
PS
cí5
Píc
Ñ a
Arid
eis
VaM
Aaitf
rsi lo
Val
ia Inw
In
37
5tH
, 37
51H
-12
A»
OO
-.'MS
PÍE
S L
o*
tó A
ildre
ss F
toal
RD
P'-w
iV
dth
VÍR
PU
wi V
/1-!»
! -
TiflV
TU.W
1-
7CV
.YX
Dat
a H
ctí A
i!» R
0
DEU F
'cit
Afts
i Rü
ALE
Lnw
10 V
iM D
ata
In
Aoiis
ss la
Va'tí
Dal
a 'n
ALE
Uw
*D
fi5 o
r V
iR L
Crt
Aúd
iBia
lo ñ
Q o
c W
R L
ovr
Dat
a V
afd
>g
77R
Tia
natío
na
7S
lH.e
75
1H
-12
AS
Oa
-wi
T=L¿
Z
TW
HJÍ
Dati
H(
3 A
fiw W
ñ
RC
LO
TI le
Aíd
russ
Rea
l
RE
Í w W
F! H
!qh
¡o A
LE H
ígh
'S
7SIH
. 67
SIH
-12
AíC
inen
IJU
Hi
Htn
127 Í3 W 59 130
ais 0 75 -
400
4CO D 203
20) 1Ü 21
•IS
i
311 i 33
' 43
Ote
Mal
1E3
W3
100
125 63 267
302
20 2S2
97
517
SS
5
SCO 20 133
123
Varttó
te 0
Mln
3.5
2TC
LCL-
W
7CLC
L-35
TC
LCL-
25
3TC
LCL-
&Q
3TC
LCL-
35
0
TC
LCL-
8
6TC
LCL-
1CO
6TC
LCI.-
1CO
0
3TC
LCL.
-50
4TC
LCL.
-130
TC
LCL-
70TC
t.CL-
GQ
7TC
LCL-
150
TC
LCL-
K)
TCLC
L-S
OT
CLC
L-íO
«cltlalo
rIJ
ai
12.
-STC
LCL-
lSO
4TC
LCL-
100
3TC
LCL-
1SO
3TC
LCL.
-125
TC
LCL-
20
ST
CLC
L-lS
O5TC
LC
L-U
5
20
:
STC
LCL-
165
2TC
LCL-
70
3TC
LCL.
-(-S
O
20
TC
LCL +
SJ
TC
LC
L+iO
UnH
iM
Hi
na ns IS ns ni ns ns ns ns ns ns ns ns na ns r.s ns n:
ns ns ns ns nc ns ns ns ns ns
A.C
. C
HA
HA
CT
ER
IST
ICS
: (T
A ™
o -
C ¡
aLo
ad C
apaC
ílan
Load
Ca
ojs
lar
70 'C
. V
CC - 5
V :
10%
. V
SS -
DV.
9 fo
' Por
t O
ALE
, an
d P
SE
N -
10
0 p
F,
9 ÍO
' All
Oih
er O
ulpu
ts =
SO
pF)
Spnbol
Par
emet
ct
liTC
LCL
| Osd
Hat
or F
tecu
ency
7IH
LL
A
LE P
ulse
Wre
th
TAV
TL
TLL.
'VX
TLLI
V
TllF
L
TP1P
H
TPLI
V
TP.X
IX
TF
XC
Aflí
lfes;
VjW
lo A
LE
Low
AO
Cie
ss H
ok! A
Hef
ALE
Lew
ALE
Low
to V
alid
Insl
í In
ALE
LO
« lo
P5E
TJ L
ow
F^Ñ
Pul
sa W
fith
•
P3S
ÍÍ L
sw lo
Vaü
d In
stf
In
Iríu
t tn
str
Hol
d A
He:
PS
Efí
Irpul
Insl
r F
loal
Art
et ?
SH
Ñ
TPX
AV
j P
5EÑ
lo A
ddre
ss V
aW
TAVW
¡A
fldte
sa la
Va'
id lí
su
¡n
^
7PLA
Z
TR
LSH
IWLW
H
TFU
.OV
THH
OX
PaE
TJ LD
~V ¡
o A
CO
ress
Flo
al
ffB P
ulse
WiU
th
ÍVR
Pul
se V
/tíit
i
ñ5
Low
lo V
aid
Dat
a In
Dai
a H
cíd
AH
er R
íJ
TRH
DZ
i Dat
a Ft
eal A
üet
RS
TLLD
V
TAV
DV
TLLV
rt.
TAV
WL
IQV
C.'X
TQV
\VH
T\V
HQ
X
TO
LAZ
TWH
LH
ALE
Low
lo V
aüO
DaT
J In
AJO
iess
Ki V
ald
Ds\
i In
ALE
Low
lo R
S o
r V
ÍR L
ew
Add
fess
lo f
i"5 o
r W
S L
Dw
Dita
Val
id lo
Wñ
Trjn
sitio
n
D¿l
a V
aM lo
VÍH
Hig
h
Dai
a H
aW A
der
WR
S3
Low
lo A
ddie
ss F
tóal
FfÜ
or S
H H
igrí
lo A
LE H
.gfi
SM
H;
Ose
Mln
210
35 90 ICO
315
0 1,7
fiSO
£50 0
325
370
55
725 75 75
Max
350
225
IOS
475
20 •IBO
180
850
960
425
20 175
VíH
abla
Oie
lllalo
f
Win
3.5
2TC
LCL-
4D
TC
LCL-
40
TC
LCL-
35
ICLC
L-2
5
3TC
LCL-
60
D
TC
LCL-
8
6TC
LCL-
1DO
6TC
LCL-
IOO
0
3 TC
LCL-
SO
•tT
CLC
L-13
0
TC
LCL-
70
7TC
LCL-
1SO
TC
LCL-
50
TC
LCL-
50
Mai
e.c
4TC
LCL-
1SO
3TC
LCL-
1W
TC
LCL-
20
5TC
LCL-
1M
20
5TC
LCL-
1É5
2TC
LCL-
70
6T
O.C
t.-l 5
0
9rC
LCL-
165
3TC
LCL.
t-50
20
TO
.CL t
SO
Unrt
l
MH
i
ns ns ns ns ni
ns ns ni
ns ns ns ns ns ns ns nj
ni
ns ns ns ns tw ns ns ns ni
TM
fcí
*. c
toi. n
cí iv
Aii*
»w
E^S
l-Efl
AC
üw
adsr
tíHcs
(sw
rw
xt p
aga)
.
SC
31Í&
05J
o 8031A
K-8
051A
HS
G32
AH
.'S05
2AH
«
a751H
B7S
lH-1
2j8
751H
-33
EX
TE
RN
M.P
RC
-GR
AM
ME
MO
RY
R£X
O C
YC
LE
BQ
31/3
0S1 "
8031A
HS
051A
HS
032A
M,'8
052A
H •
37S
1H
8751H
-11-8
7S
IH-6
3
EX
TE
RH
AL
DA
TA M
EU
OR
V R
EA
D C
VC
LE
E03
1/80
51 •
&C
31A
H8Q
51A
H80
32A
H/B
052A
H *
B
751H
<37
5lH
-Í2<
37S
lB-e
3
• 80
31/8
051 •
S03
1AH
/8Q
51A
HB
032A
H.'a
OS
2AH
*
EO
Í-RN
AL
DiT
A H
EM
OFi
r W
RiT
E C
YC
LES
ER
IAL
PO
HT
TIM
IfJG
— S
HIF
TR
EG
1S
TE
RM
OD
ETe
sl C
onfli
lions
: TA -
0 'C
ta 7
0 "C
; VC
C -
S
V ±
IOS
; VS
S -
C
V;
Load
Cap
tóia
nca
- so
pF
Sym
bol
Par
anw
tw
Edg
aJS
elup
Ris
^5 E
rigo
cegó
Val
ldol
npiC
XR
isirv
j
^lan
g
3!á
Mln
700
50
lOic Max
700
_
Var
ia b
í.
Win
JQTC
LCL-
I33
2TC
LCL-
117
0
Oie
íIUto
f—
hU
i
10TO
.CL-
133
Unl
U
r.t
r.t
r,» M
SH
IFI
RE
GIS
TER
T1M
IKG
WAV
EFO
RW
S
BT
tpT
8C31
/E05
16Q
32A
H;8
Q52
AH • 8
75lH
:S7S
1H
-12/8
75lH
-8a
. C
LOC
K O
RIV
E W
AV
EF
OR
MS
Í.C.
TES
T7W
G tN
PU
T.
OU
TPU
T W
AV
EFO
P.M
inte
!1S
031/B
051 •
EC
31A
H/3
051A
H
.S
032A
H;a
OS
ZA
H o 875lH
'875lH
-12,3
75lH
-83
EP
RO
M C
HA
RA
CT
ER
IST
ICS
: Tib
ia 3
. E
PR
OM
Pro
gram
mín
g W
o<5«
Mod
a
Pro
gram
Inht
brt
Ven
fy
Sec
urity
Sal
RS
T 1 1 1 i
pSE
H
0 0 o •
0
AL
E
0'
1 1 0*
EX VP
P
X 1V
PP
PZ.
7 1 1 Q 1
P2.e
• 0 0 0 !
P2^
X X X X
P2-
*
X X X X
Pro
gram
mln
g líia
EP
ñOM
Ta b
e p
rcgr
amm
ed.
Wa
pail
mus
í be
fU
nnirg
with
a41
o E
-MH
; osc
lltai
or. (
Tlia
re
aso
filtie
osc
rtta
torr
o^d
slo
ba ru
nnin
g is
Ihal t
ha ¡nle
mal b
us is
bei
ng u
sed
loüatis
faf
aüdie
sí a
r-d
pfog
íam
Cat
a lo
acp
ropr
iale
:n-
tarn
al le
gis
lors
.) T
he ¿
ddre
ss o
í an
EP
RO
M lo
caría
nlo
ba
prog
ram
med
\s
appH
od l
o P
ort
1 an
d pi
nsP
2.0
-P2.3
oí
Po
ft 2
, «hila
Ihe
cod
a by
le lo
be p
fo-
gram
med
¡nl
o Ihal
toca
ticn is
apote
d lo
Poil
O- T
hsol
nar
Perl
2 p
ins,
and
RS
T.
PS
ÉH
. an
d E
S s
hc^W
be ti
eld
al m
e "
Pto
gra
m"
iove
ls in
dfca
led
in T
aD'a
3.
ALE
¡s
puls
sd to
w lo
r 50
msa
c lo
pfo
gia
m Ihe
ced
eby
le ¡n
lo ih
s ¿
dd te
s se
d E
PH
OM
k^a
iion. T
he s
etup
¡s £
how
n ¡n
Fig
ura
S.
Non
naüy
EA
is
held
al
a lo
gic
nigh
iinlil
jusl
baio
raA
LE
is lo
b« p
uis
ed.T
hen
EA
isra
lse
d lo
-2
lV. A
LE
la p
ulso
d. a
nd irían
EA
is isi
um
ed
lo
a lo
gtc
hígh
.W
ivelo
mis
and
d^l
aite
d lim
ing
sp
acilica
tions
ar
eth
cwn in
lale
r le
dio
ns
Of U
va d
ata
sheel.
Ñol
a th
at th
e E
AV
PP
pin
fnta
t ro
l W a
ltow
íd to
go
ibcv
B S
is m
aiin
-.un
spe
otio
d V
PP
;sve
( o!
21.
5V te
far
ry a
mou
nt o
í tira.
Eve
n a
nano
w g
ílcn
abo
ya O
iál
vcN
tage
¡ov
al c
sn c
auso
pen
na^e
r,! t
íam
a^o l
a 3
-a
írea o
! gttt
tíü'S
.
Pro
g ra
m V
e r ¡
fícatlo
n
H B
w S
ecun
ty &
1 fi
as rm
bee
n p
rí>3i
arrjn
í>d,
ttie
on-
tíiíp
Pío
gra
mM
+^r
cíyc
anba
fsaC
Oüt
ícív
eírí
'pC
aioo
purp
ostis
, H
fle
yted
. S
filie
f durir
q D
f af
taf
Oía
pto
-grir
min
g C
fa'a
siyx
TT
XJ a
ddf^
ss o
( tti
e P
togr
smM
snxx
y kx
aík
ín lo
Ce m
ad is
acp
iífed
lo P
ort
I and
país
P2.
0-P
2.3.
1>.a
c&
et pi
ns s
hou'
d D
d fis
ld j| th
s"V
e*rfy
" le
véis indka
leí
in T
abla
3.
T>a
coní
anls
oí
U>«
addr
essa
d '-c
oaoo
n w
iil c
oma c
ul e
n P
on O
. £*•
loiT
.alf.
1lu
p9
aia
r&;w
rod
on
Poi
tO 'c
u ¡tu
s op
crat
nin.
TÍ!8
sei
up, >
vh*
i ͣ
sto
wn
in F
igur
a S
. ¡s
tf^
sa/ra
ai .tí
pícg
ram
miri
g O
ía E
PR
OM
eic
e-pl
ihai p
si P
2.7
¡s í-
etd
ai a
!o<
;¿c
lo*í. o
r m
ay b
a us
ed a
i an
act
rv»-
tow
read
sítete
.
OU
W 5
. P
roír
srn
mtn
g C
on
nau
fí.
FToe
r»"! V
trif(
ca!to
<i
SQ
31'8
Ü51
*
G
Q31
AH
5051
AH
8C32
AH
&O
S2A
H •
B75
1H 3
75!H
-l2,'a
751H
-E
031I
B05
1 •
tJ0
31A
H'3
051A
H
a751H
/87S
lH-1
2/8
751H
-ea
'«at
u-i» :3
-=i-a
oí a
"Sc'
crg"
bit v
.hlc
ni-ir-fla
Cei«
ete
a-al
acc
sss
Oy a
nyy-
1 te
a* a
sr^
fia P
icha
ra V
.ern
ory.
Ttia
Ijt a
:r=7V
r-ií«
j as
S-c
-ii in
Fig
ute 7
. The
selu
pi-c
:>-3
3?-re
á-e
Bie M
ire a
s Ic
t rc
nnal
EP
RG
Míro
yar-M
T-Q
. eiis
^sl t
ftat 3
2.S
is h
ela
al a
tog-
chig
h.P
SÍ
Z. ^
T:
5. a
nd w
s P
2.D
-P2.
LJ m
ay b
a ¡n
any
S3.it ~
f -3
T« p
rs s
hjc
l Wl-e
ld a
ta'a
'Sec
urity
"W
^PS
r^ca
jírf
JO T
ao*
3.
b-s ^
>KU
-Tiy
B1
•~J3
bocn
pic
g-jfr
Jnet
l. ¡t
can
a-"/ r
( fu
* f s
iso
c( ilia
Pio
gram
Mem
*t
is 5
-sg'
a~!-«
<l,
iha ir
len-a
! P
rogr
amn
is( ;« ic
i: c
tt. !
Í9 ¿
e.-c
e ca
n n
ol te
^4—
.-<>d
. a"
I can n
ol j
iecu
ta o
ut o
íuí»
i« y
vy*m
trie
T-c
r.
Ern
sing
ITJ ;•«
—]; r*
SSC
J-TJ
&L
tes
toia
.s-H
'sU
\j-ccrjT
f. l
can
r-?n
t*
icpt
Dgi
airjr
u
Ens
i™ C
hara
clerist
cs
EP
RO
U P
RO
GH
AM
UIN
Q A
HD
VE
RIF
1CA
TIO
N W
AV
EFO
RM
S
Fiju
fp 7
. Prc
giam
mln
g In
o S
«cur
lty B
U
; «b
enlíi
oclü
p
i su
r.lig
m a
rii
Tíie
fí-;o
ím
;r.Ü
£Kl a
rasu
re p
foce
dme
is n
ipos
ura
ta«ci
j—an
Vjtr
-'5 t-ii^
*.ív
f!erg
|!-s
¡n U
-iS t
ar^
u.
ulav
c^el
tr.! (
3125
37 A
nqst
rom
s) lo
an
inté
gral
e*)
mal
an
opaq
ue la
bel
i5üv
e; ih
e a
rray
in a
n ol
Ms
slal
a.
EP
PO
* =
frO
GH
AM
y!H
G A
fiD
VE
RIF
1CA
T10
N C
KA
RA
CT
ER
1ST
ÍCS
:ri -
r- "
-o
27 "C
. '.C
C •
5V ;
tO~.
. VS
S -
OV)
£V
"=^
J
Par
j.Tel
er
M!n
'i1™
•
Pr^
-art
^'^g
SiiC
C:í
Vot
tss*
.P3
¡ P
icr-r.rg
Sut
e>j C
urie
n i
*T
^_
XO
w.ror
Ftw
tiiurc
/
T1V
3,
^ A
Ú3-
-Í3 S
etüS
lo P
frCTS
LOW
TS
f.M
' AJ
ÜJ-
ÍÜ H
ckl A
Kíf
PITO
S
T^V
3_
. O
sla ?
tfn.-o
10 P
ífK
Lo-
"
TG
Ki
Dan
Hc-
J Af
lEr ?ñ
ü<3
TE
rS-
TS
H3,
P2.
7 H
íiAS
LEl H
^H lo
VP
P
VPP
EttW
J '0
FflC
G L
<r*
1O-.S
, *
VP
P h
^d A
ücr
PSÜ
G
ia.
-T
'.Ct
TtL
D.
T&
C;
IrF
CS
\Vc5
h
Aoirts
E D
ala
Va¡m
EÑ
Act
E L
ew lo
Oía
Vai
ki
Dat
a F«l A
flet
EN
AáL
E
lü$ 4
•IflT
CLC
L
48TC
LCL
ÍUTC
LCL
4BTC
LCL
JBr^
LCL
10 10 45 0
Mix
21.5
30 6 55
J3TC
LCL
43TC
LCL
ÍETC
LCL
Unl
ta
V mA
UH
i
^soc
¡ísec
mse
c
ÍLE
/ÍB
OQ
S££
fC
OR
Ífó
ft V
£fllF
X>
T^
"BIBLIOGRAFÍA
1. Frederlck J. Huí and Gerald R. Peterson, TEORÍA DE CONMUTACIÓN Y
DISEÑO LÓGICO, Editorial Limisa, 1979.
2. Rhyne V. Thomas, FUNDAMENTÁIS OF DIGITAL SYSTEMS DESIGN, Prentice
Hall, 1973.
3. Bowman R. M. and E. S. McVel , A METHOD FOR THE FAST APROXÍMATE -
SOLUTION OF LARGE PRIME IMPLICANTS CHARTS, IEEE Trans on Computer,
Vol . C-10, No. 2, Feb. 1970, pp 169-173.
4. Marcus Mitchell P., CIRCUITOS DE CONMUTACIÓN PARA INGERIEROS,
torial Diana, 1978.
5. Me Cluskey E. J., INTRODUCTION TO THE THEORY OF SWITCHING CIRCUITS,
Me Graw Hill , 1965.
6. MICROCONTROLLER HAND BOOK, INTEL Corp. 1986.
7. Warren A. Stewart, SUREFIRE PROGRAMMING IN C., Tab Bookss 1985.
8. Brian W. Kernighan and 'Dennis M, Ritchie, TAE C PROGRAMMING LA_N
GUAJE, Prentice Hall Software Series, 1978.
9. MICROSOFT C COMPILER USER GUIDE, Microsoft Corp. 1985.
10. MICROSOFT C LANGUAJE REFERENCE, Microsoft Corp. 1935.
11. MICROSOFT C ROUTINE LIBRARY REFERENCE, Microsoft Corp. 1985.
12. BASIC Reference (versión 3.0), BASIC Handbook (versión 3.0), IBM
Corp. 1984.
13. BASIC COMPILER HANDBOOK (versión 2.0), IBM Corp.
H. PROM PROGRAMMER USER's MANUAL (PROM2000), Advanced Microcomputer
Systems, 1986.
15. CYS8051 USER's MANUAL, Cybernetic Micro Systems. Inc., 1985.
16. González Saavedra Francisco, EDITOR DIRIGIDO POR SINTAXIS, Tesis
Magister en Ciencias de Computación e Informática, EPN, 1985.