Logica Digital y Microprogramable

46
UNIDAD 1 Introducción a la electrónica digital Objetivos Objetivos ) Aprender para qué sirve un sistema electrónico digital, los elementos básicos de que consta, y los aspectos básico necesarios para su implementación. ) Conocer los motivos que justifican el estudio de las mate- rias que se van a enseñar en las demás unidades del libro. L gica digital y prog_ U 01-final.qxp 28/02/2007 18:42 PÆgina 1

description

manual de microcontroladores

Transcript of Logica Digital y Microprogramable

Page 1: Logica Digital y Microprogramable

UNIDAD 1

IInnttrroodduucccciióónn aa llaa eelleeccttrróónniiccaa ddiiggiittaall

Objet ivosObjet ivos

Aprender para qué sirve un sistema electrónico digital, loselementos básicos de que consta, y los aspectos básiconecesarios para su implementación.

Conocer los motivos que justifican el estudio de las mate-rias que se van a enseñar en las demás unidades del libro.

L gica digital y prog_ U 01-final.qxp 28/02/2007 18:42 PÆgina 1

Page 2: Logica Digital y Microprogramable

11.. Señales y sistemas de control. Codificación de magnitudes

El instrumento por el que los seres humanos son capaces de adaptar el entorno a sus necesidades esla tecnología. Ésta permite a los humanos controlar y actuar sobre el entorno para cambiar las condi-ciones físicas o circunstancias del mismo por otras más convenientes para su supervivencia o para subienestar.

Actualmente la principal tecnología de control de procesos la proporciona la electrónica digital. Pero,sea cual sea la tecnología de control empleada, no hay que olvidar que lo que se pretende, en un prin-cipio, es sustituir la presencia de un ser humano por una máquina (el avance de la tecnología permi-tirá además ampliar y superar las capacidades del ser humano en algunos aspectos). Es necesario, porlo tanto, estudiar las características de los procedimientos de control para poder emularlos mediantemáquinas. En estos procedimientos intervienen en general tres elementos fundamentales, como semuestra en la figura siguiente:

Los sensores: son los elementos que permiten observar el medio físico.

El procesador: interpreta lo observado en relación con el objetivo a conseguir.

Los actuadores: son los elementos que permiten actuar sobre el medio para cambiarlo.

El cuerpo humano posee estos tres elementos, que sonlos sentidos, la inteligencia y los brazos y piernas res-pectivamente.

Una máquina que pretenda sustituir al hombre en lastareas de control, también deberá de tener estos treselementos, y para su desarrollo será necesario conocerla naturaleza de las magnitudes físicas que se deseancontrolar para diseñar los sensores y actuadores.También será necesario conocer la naturaleza de losprocesos básicos de la inteligencia humana para dise-ñar el procesador. En el estudio de la naturaleza de lasmagnitudes físicas, éstas se pueden clasificar aten-diendo a tres criterios:

Valor de la medida de la magnitud.

Magnitudes analógicas: la magnitud observable puede tomar cualquier valor dentro de un mar-gen físicamente razonable. Magnitudes analógicas son: la luminosidad, la intensidad eléctrica,el sonido, la velocidad, etc.

Magnitudes digitales: la magnitud observable no puede tomar cualquier valor dentro del mar-gen físicamente razonable, sino sólo ciertos valores permitidos, habitualmente cantidades ente-ras. Magnitudes digitales son: número de perforaciones en un tubo, número de barriles de petró-leo producidos, número de bombillas encendidas en un árbol de Navidad, etc.

Evolución de la magnitud.

Magnitudes continuas: el modo de evolución de las sucesivas medidas se hace de acuerdo conun patrón continuo, es decir, entre cualquier par de medidas existen infinitas medidas.Magnitudes continuas son: el voltaje de una pila a lo largo de un mes, el número de lobos de unbosque a lo largo de un siglo, la potencia electromagnética de una onda en un rango de frecuen-cias, la altura de un terreno sobre el nivel del mar, etc.

Magnitudes discretas: el modo de evolución de las sucesivas medidas se hace de acuerdo con unpatrón discreto, es decir, entre cualquier par de medidas existe un número limitado de medidas.Magnitudes discretas son: la temperatura a las 8:00 de la mañana a lo largo de un año, las coor-denadas geográficas de las intersecciones entre ciertos meridianos y paralelos, el peso de las cienprimeras cajas de galletas de un lote de producción, etc.

11 Lógica digital y microprogramable

2

L gica digital y prog_ U 01-final.qxp 28/02/2007 18:42 PÆgina 2

Page 3: Logica Digital y Microprogramable

Naturaleza física de la magnitud.

Teniendo en cuenta la naturaleza física del fenómeno que genera la magnitud observable, lasmagnitudes se clasifican en:

Electromagnéticas

Mecánicas

Térmicas

Hidráulicas

Neumáticas

etc.

En las figuras siguientes se muestran representaciones gráficas de algunos ejemplos de los diferentestipos de magnitudes que se pueden encontrar.

Ejemplo 1: magnitud analógica continua. Ejemplo 2: magnitud digital continua.

Ejemplo 3: magnitud analógica discreta. Ejemplo 4: magnitud digital discreta.

Del mismo modo que el ser humano dispone de sentidos, el procesador digital también deberá de dis-poner de órganos que transformen la naturaleza física original de las magnitudes a controlar en natu-raleza electrónica. Estos órganos son los sensores transductores. La magnitud física entregada por eltransductor se llama señal.

3

11Introducción a la electrónica digital

L gica digital y prog_ U 01-final.qxp 28/02/2007 18:42 PÆgina 3

Page 4: Logica Digital y Microprogramable

Por lo tanto, una señal es una magnitud física de distinta naturaleza que la de la magnitud que se pre-tende controlar, pero igual a ella (o proporcional) en cuanto a valores y a evolución. Del mismo modoque las magnitudes físicas, las señales serán analógicas o digitales, continuas o discretas. El procesa-dor digital trabaja con señales eléctricas digitales discretas. En general, se realizan una serie de trans-formaciones, tal como se esquematiza en la figura siguiente, para hacer llegar señales eléctricas digi-tales discretas al procesador.

En la figura siguiente se resumen todos los procesos involucrados en un sistema de procesamiento digi-tal (en el ejemplo, de 8 bits). Cada uno de los bloques representa un subsistema electrónico encarga-do de realizar la función especificada.

1.1 Sistemas de numeración y codificación

Las señales eléctricas digitales proporcionan infor-mación al procesador digital, acerca de la magni-tud física que se pretende controlar, mediante unacodificación, que es una forma de asignar a cadauno de los diferentes valores que puede tomar unainformación, un símbolo o combinación única desímbolos denominada código, de acuerdo con unasreglas de asignación determinadas.

La codificación empleada en los procesadores digi-tales es el sistema binario. A continuación se des-cribirá este sistema, así como otros que también seutilizan en el diseño de los procesadores digitales.

1.1.1 El sistema de numeración decimalEn el caso del procesador humano, un sistema de codificación de magnitudes digitales adecuado a sunaturaleza, y universalmente el más empleado, es el sistema de numeración decimal. Las característi-cas que hacen adecuado este sistema son:

El sistema consta de diez símbolos que están representados por los dígitos arábigos: {0,1,2,3,4,5,6,7,8,9}.

Cada símbolo se representa por un trazado geométrico fácil de realizar por el ser humano en unpapel o cualquier otra superficie, y también fácilmente representable en su mente.

11 Lógica digital y microprogramable

4

Puedeencontrarseinformación

ampliada sobre seña-les y sistemas en losdocumentos incluidosen el disco proporcio-nado con el libro.

L gica digital y prog_ U 01-final.qxp 28/02/2007 18:42 PÆgina 4

Page 5: Logica Digital y Microprogramable

La cantidad de símbolos distintos a recordar (diez) está dentro de las posibilidades memorísticasdel ser humano sin necesidad de grandes esfuerzos.

La codificación de magnitudes se realiza por combinación de símbolos según unas reglassencillas.

Los códigos resultantes de la codificación son fácilmente interpretables por el ser humano.

El sistema de codificación aporta valores añadidos que facilitan la manipulación algebraica delas magnitudes codificadas.

Existen otros códigos o sistemas de numeración, pero por uno u otro motivo no se adecúan tan bien alprocesador humano como el sistema decimal, por lo que no son tan empleados. Por ejemplo:

Sistemas de numeración chinos: el trazado geométrico de los símbolos no es sencillo.

Sistemas mesopotámicos: constaban de muchos símbolos distintos (del orden de sesenta), por loque sería necesario un esfuerzo memorístico para recordarlos.

Sistema romano: la manipulación algebraica es muy compleja.

Aunque parezca una trivialidad, no está de más en este momento repasar el sistema de numeracióndecimal e interpretar perfectamente cada uno de los puntos de la descripción del sistema (para evitarel uso de lo definido en la propia definición, las cantidades a representar numéricamente se expresa-rán en castellano).

Descripción del sistema decimal

Es un sistema de numeración de base diez: esto quiere decir que el sistema consta de diez sím-bolos, denominados dígitos.

{0,1,2,3,4,5,6,7,8,9}

Las cantidades se codifican mediante un dígito o combinación de varios, obteniendo un número.

tres: 3

veinticuatro: 24

ciento noventa y ocho: 198

En un número, cada dígito representa una cantidad, que es su contri-bución a la cantidad total representada por el número. La cantidadtotal representada por un número es la suma de las cantidades repre-sentadas por cada uno de los dígitos que forman el número:

El sistema es posicional, lo que quiere decir que la contribución deun dígito de un número depende de la posición de ese dígito. Porejemplo, el dígito 4 puede contribuir con la cantidad cuatro, cuaren-ta o cuatrocientos al total según donde esté situado:

La cantidad con la que contribuye cada dígito se calcula multipli-cando el valor base del dígito por un peso atribuido a la posiciónque ocupa:

valores base: 0: cero 1: uno 2: dos 3: tres

4: cuatro 5: cinco 6: seis 7: siete

8: ocho 9: nueve

5

11Introducción a la electrónica digital

Trescientos veinticuatro: 3 2 4

contribuciones

trescientos veinte cuatro

⊕trescientos veinticuatro

Cuatrocientos cuarenta y cuatro: 4 4 4

contribuciones

cuatrocientos cuarenta cuatro

⊕cuatrocientos cuarenta y cuatro

L gica digital y prog_ U 01-final.qxp 28/02/2007 18:42 PÆgina 5

Page 6: Logica Digital y Microprogramable

Pesos: por ser base diez, el peso atribuido a la posición n-ésima es diez elevado a n. Las posi-ciones se cuentan de derecha a izquierda, empezando por el cero. Además, cada posicióntiene un nombre: unidades, decenas, centenas, etc., que tiene relación con el peso correspon-diente a dicha posición.

4 8 4 3

Posición cero: unidades: peso = diezcero = uno

Posición uno: decenas: peso = diezuno = diez

Posición dos: centenas: peso = diezdos = cien

Posición tres: unidades de millar: peso = dieztres = mil

El cálculo de la cantidad que representa un número puede hacerse por lo tanto con la ayuda de unatabla como la que sigue:

número posición valor base peso contribución: sumavalor base x peso

cero cinco uno cinco

uno dos diez veinte

75025 dos cero cien cero setenta y cinco

tres cinco mil cinco mil mil veinticinco

cuatro siete diez mil setenta mil

Ahora que ya está definido el sistema, se puede emplear el propio sistema para representar las canti-dades, de modo que la tabla anterior se puede representar más cómodamente como sigue:

número posición valor base peso contribución: sumavalor base x peso

0 5 1 5x1=5

1 2 10 2x10=20

75025 2 0 100 0x100=0 75025

3 5 1000 5x1000=5000

4 7 10000 7x10000=70000

Aunque todo lo anterior pueda parecer una trivialidad, es necesario interpretar perfectamente los deta-lles del sistema de numeración decimal para aplicar los mismos razonamientos a otros tipos de siste-mas de numeración, que por ser novedosos puede que parezcan complicados, pero no tienen más nimenos complejidad que el sistema decimal. La única diferencia es que el uso cotidiano le hace al serhumano olvidar los detalles del sistema de numeración decimal hasta el punto de usarlo de modomecánico, pareciéndole una trivialidad. Hecho que, por otro lado, es la prueba de lo bien adecuadoque es el sistema a las características del procesador: el ser humano.

1.1.2 El sistema de numeración binario (binario natural)Dado lo bien que funciona el sistema decimal para el ser humano, se podría pensar en fabricar un pro-cesador electrónico que trabaje con el mismo sistema. Para ello, habría que definir 10 símbolos eléctri-cos que representarían a los dígitos. Podrían ser 10 tensiones distintas, por ejemplo: 0V, 1V, 2V, ..., 9V. Siel procesador dispusiera de 8 hilos por ejemplo, y en cada uno se pudiera aplicar cualquiera de esosvoltajes, el sistema ya podría representar eléctricamente cualquier número del 00000000 al 99999999.

Aunque esto es posible, desde el punto de vista de las posibilidades de la tecnología electrónica no esel método más adecuado, por razones técnicas que no vienen al caso. Sin embargo, lo que sí resultaadecuado tecnológicamente hablando, es hacer un procesador electrónico que trabaje, en vez de con

11 Lógica digital y microprogramable

6

L gica digital y prog_ U 01-final.qxp 28/02/2007 18:42 PÆgina 6

Page 7: Logica Digital y Microprogramable

diez, con sólo dos valores distintos de tensión. El sistema de numeración que utilizaría tal procesadorestaría basado únicamente en dos símbolos, es decir, sería el sistema binario.

Cabría aquí la duda de si tal procesador, tecnológicamente factible, podría tener algún interés prácti-co a la hora de controlar procesos, por estar basado en un sistema de numeración tal como el binario.La respuesta evidente (ahí están los ordenadores) es que sí. En este libro se estudiarán las bases detales procesadores y se verá justificada la respuesta.

De momento, y ya que es de interés por ser el sistema que emplean los procesadores electrónicos digi-tales, es necesario estudiar el sistema binario. Se hará de modo paralelo a como se hizo con el siste-ma decimal (en este caso, para representar las cantidades se usará el castellano o también el sistemadecimal según convenga).

Descripción del sistema binario

El binario es un sistema de numeración de base 2: esto quiere decir que el sistema consta de 2símbolos, también denominados dígitos o bits (del inglés: BInary digiTS).

{0,1}

Las cantidades se codifican mediante un dígito o combinación de varios, obteniendo un númerode uno o más bits.

uno: 1

tres: 11

veintitrés: 10111

cincuenta y dos : 110100

En un número, cada dígito representa una cantidad, que es su contribución a la cantidad totalrepresentada por el número. La cantidad total representada por un número es la suma de las can-tidades representadas por cada uno de los dígitos que forman el número.

El sistema es posicional, lo que quiere decir que la contribución de un dígito de un númerodepende de la posición de ese dígito, igual que ocurría en el decimal

La cantidad con la que contribuye cada dígito se calcula multiplicando el valor base del dígitopor un peso atribuido a la posición que ocupa.

valores base:

0: cero.

1: uno.

Pesos: por ser base 2, el peso atribuido a la posición n-ésima es 2 elevado a n. Las posicio-nes se cuentan de derecha a izquierda, empezando por el cero.

1 1 0 1

Posición 0: peso = 20 = 1

Posición 1: peso = 21 = 2

Posición 2: peso = 22 = 4

Posición tres: peso = 23 = 8

El bit de menos peso es el situado más a la derecha, y también se llama bit menos significa-tivo o LSB (del inglés: Least Significant Bit).

El bit de mayor peso es el situado más a la izquierda, y también se llama bit más significa-tivo o MSB (del inglés: Most Significant Bit).

El cálculo de la cantidad que representa un número puede hacerse con la ayuda de una tablacomo la que sigue:

7

11Introducción a la electrónica digital

L gica digital y prog_ U 01-final.qxp 28/02/2007 18:42 PÆgina 7

Page 8: Logica Digital y Microprogramable

número posición valor base peso=2posición contribución sumavalor base x peso

0 1 20=1 1x1=1

1 0 21=2 0x2=0

1101 2 1 22=4 1x4=4 13

3 1 23=8 1x8=8

← binario decimal →

Como se puede apreciar, el sistema binario y decimal siguen en esencia los mismos mecanismos; sonde hecho sistemas posicionales, en los que la única diferencia es la base, 2 y 10 respectivamente. Sinembargo, el sistema binario no parece muy adecuado para el procesador humano, ya que, como se iráviendo con la práctica, cantidades no muy grandes requieren de bastantes dígitos para ser represen-tadas en el sistema binario (por ejemplo: 174 en decimal es 10101110 en binario), y estas largassecuencias de unos y ceros no son fáciles de leer, memorizar e interpretar por parte del ser humano.

Por lo tanto, por un lado es necesario manejar el binario para poder diseñar procesadores electrónicosdigitales, pero por otro, el ser humano se maneja mejor en decimal. Será necesario entonces conocertécnicas que permitan pasar fácilmente de un sistema al otro.

Además, como se van a manejar cantidades en ambos sistemas, será necesario establecer un métodopara diferenciar cuándo un número está escrito en un sistema o en el otro. Por ejemplo, el número 1101puede ser tanto binario como decimal. En los casos en que haya duda, se pondrá al lado del númeroun subíndice indicando la base del sistema al que pertenece. Por ejemplo, cuando se quiera poner1101 del sistema decimal, se pondrá 110110, y cuando se quiera poner el 1101 del sistema binario, sepondrá 11012. En los casos en los que no exista duda no será necesario poner el subíndice.

Paso de binario a decimal

La descripción del sistema binario expuesta anteriormente constituye un método para la conversiónde números en sistema binario a números en sistema decimal. El método utiliza una tabla rápidabasada en la anterior, en la que se disponen en una columna los dígitos del número binario, y a sulado los pesos correspondientes a los bits 1. Sumando los pesos se obtiene el número decimal equi-valente.

Paso de decimal a binario

Existen varios métodos, todos equivalentes, para realizar esta conversión. El que aquí se expone sebasa en divisiones sucesivas por 2: dividir sucesivamente por 2 el número decimal, y formar el núme-ro binario tomando el último cociente como MSB y los restos de las divisiones hasta llegar al primerresto que será el LSB.

1.1.3 Ejercicios de cambio de base entre los sistemas decimal y binario

Los métodos descritos para el cambio base entre los sistemas decimal y binario son los siguientes:

Paso de binario a decimal: empleando una tabla, disponer enuna columna los dígitos del número binario, y a su lado los pesoscorrespondientes a los bits 1. Sumando los pesos se obtiene elnúmero decimal equivalente. Por ejemplo, pasar 10101110 adecimal.

Disponer los dígitos del número binario en la columna dígi-tos, empezando por el LSB en la fila superior, y acabandopor el MSB en la fila inferior.

En la columna pesos, disponer junto a cada dígito, lassiguientes cantidades decimales:

11 Lógica digital y microprogramable

8

dígitos pesos

01110101

suma ->

L gica digital y prog_ U 01-final.qxp 28/02/2007 18:42 PÆgina 8

Page 9: Logica Digital y Microprogramable

Si el dígito es 1: el peso que le corresponde según su posición.

Si el dígito es 0: cero.

Sumar las cantidades que aparecen en la columna de los pesos. El resul-tado obtenido es el equivalente decimal del número binario que se que-ría convertir.

Por lo tanto: 101011102=17410

Paso de decimal a binario: con la ayuda de una tabla, dividir sucesivamente por 2 el número deci-mal, y formar el número binario tomando el último cociente como MSB y los restos de las divisioneshasta llegar al primer resto que será el LSB. Por ejemplo, pasar 174 a binario.

Dividir por 2 el número decimal que se desea convertir, anotando el resto de la división (queserá 1 ó 0 necesariamente).

1 7 4 21 6 8 7 → cociente

1 41 4

00 → resto 0

Tomar el cociente de la división anterior y volverlo a dividir por 2, anotando de nuevo el restode la división.

8 7 28 4 3 → cociente0 7

611 → resto 1

Volver a tomar el cociente de la división anterior y volverlo a dividir por 2, anotando denuevo el resto de la división, y así sucesivamente hasta que el cociente obtenido no se puedadividir más por 2 (será por lo tanto 1 ó 0). El proceso de divisiones sucesivas por 2 se puedeanotar en una tabla como la que se muestra a continuación:

cocientes y posteriores dividendos restos

174 0 ← resto de 174/2 (primer resto)

cociente de 174/2 → 87 1 ← resto de 87/2

cociente de 87/2 → 43 1 ← resto de 43/2

9

11Introducción a la electrónica digital

dígitos pesos

0 01 21 41 80 01 320 01 128

suma ->

dígitos pesos

0 0

1 2

1 4

1 8

0 0

1 32

0 0

1 128

suma -> 117744

L gica digital y prog_ U 01-final.qxp 28/02/2007 18:42 PÆgina 9

Page 10: Logica Digital y Microprogramable

cocientes y posteriores dividendos restos

cociente de 43/2 → 21 1 ← resto de 21/2cociente de 21/2 → 10 0 ← resto de 10/2cociente de 10/2 → 5 1 ← resto de 5/2

cociente de 5/2 → 2 0 ← resto de 2/2 (último resto)(último cociente) cociente de 2/2 → 1

Una vez acabadas todas las divisiones, tomar de la tabla el último cociente como MSB, y continuarconstruyendo el número binario añadiendo de izquierda a derecha, comenzando por el último restoobtenido, los demás restos de las divisiones tomados de abajo a arriba hasta llegar al LSB, que será elprimero de los restos de la tabla.

cocientes y posteriores dividendos restos174 0 ← LSB87 143 121 110 05 12 0

MSB → 11110101110

Por lo tanto: 17410 = 101011102

Ejemplo resuelto 1

Pasar los siguientes números decimales a binario: 57 y 325.

Solucióncocientes restos cocientes restos

57 1 325 128 0 162 014 0 81 17 1 40 03 1 20 01 10 0

5 12 01

5710=1110012 32510=1010001012

Ejemplo resuelto 2

Pasar los siguientes números binarios a decimal: 1110011 y 1010000111.

Solucióndígitos peso dígitos pesos

1 1 1 11 2 1 20 0 1 40 0 0 01 16 0 01 32 0 01 64 0 0

suma 115 1 1280 01 512

suma 647

11100112=11510 10100001112=64710

11 Lógica digital y microprogramable

10

L gica digital y prog_ U 01-final.qxp 28/02/2007 18:42 PÆgina 10

Page 11: Logica Digital y Microprogramable

Una vez dominados estos métodos de conversión, el ser humano puede estudiar y diseñar procesado-res electrónicos digitales de forma sencilla empleando su sistema habitual que es el decimal. Cuandotenga que pasarle información al sistema, simplemente tendrá que convertir los números decimalescon los que se trabajó al sistema binario que es el que entiende la máquina. Al revés, cuando tengaque leer información proporcionada por la máquina, que vendrá en binario, se podrá traducir al deci-mal para interpretarla de modo más sencillo. En definitiva, en el trabajo con procesadores digitales,los métodos de conversión entre sistemas hacen que el decimal pueda ser una buena herramienta paramanipular las cantidades binarias con las que trabaja a máquina, sin el inconveniente de tener quemanejar largas listas de unos y ceros que inducen fácilmente a la confusión, y no son sencillas deinterpretar.

Aunque la conversión entre los sistemas binario y decimal no es nada dificultosa, no es inmediata, yaque requiere hacer algunas cuentas. Con la práctica, estas cuentas se pueden llegar a hacer con máso menos soltura, pero no serán inmediatas, salvo si son pequeñas cantidades. Por lo tanto, en usosintensivos del binario, el decimal como herramienta alternativa de manipulación de cantidades puedeno ser del todo adecuada, debido al trabajo de conversión que supone.

1.1.4 El sistema de numeración hexadecimalEl sistema hexadecimal, sistema de numeración posicional de base 16, al igual que el decimal, permi-te trabajar con cantidades de un modo más sencillo para el ser humano, que el binario. Además pre-senta la ventaja de que la conversión entre hexadecimal y binario no requiere hacer ningún tipo deoperaciones, siendo prácticamente inmediato. El único inconveniente es la falta de costumbre en el usodel hexadecimal por parte del humano, problema que se resuelve con la práctica.

Descripción del sistema hexadecimal

Se trata de un sistema de numeración de base 16: esto quiere decir que el sistema consta de 16símbolos o dígitos.

{0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}

Obsérvese que los dígitos elegidos para formar el sistema hexadecimal son los 10 dígitos arábi-gos, igual que en el sistema decimal, y para los 6 dígitos que faltan se eligieron por comodidadunos símbolos ya conocidos y que son las 6 primeras letras del alfabeto, que aquí actúan comonúmeros.

Las cantidades se codifican mediante un dígito o combinación de varios, obteniendo un número.

tres: 3.

diez: A.

veinticuatro: 18.

dos mil novecientos cuarenta y dos: B7E

En un número, cada dígito representa una cantidad, que es su contribución a la cantidad totalrepresentada por el número.

La cantidad total representada por un número es la suma de las cantidades individuales repre-sentadas por cada uno de los dígitos que forman el número.

El sistema es posicional, lo que quiere decir que la contribución de un dígito del número depen-de de la posición de ese dígito. La cantidad con la que contribuye cada dígito se calcula multi-plicando el valor base del dígito por un peso atribuido a la posición que ocupa.

valores base: 0: cero 1: uno 2: dos 3: tres

4: cuatro 5: cinco 6: seis 7: siete

8: ocho 9: nueve A: diez B: once

C: doce D: trece E: catorce F: quince

pesos: por ser base 16, el peso atribuido a la posición n-ésima es 16n. Las posiciones se cuen-tan de derecha a izquierda, empezando por el cero.

11

11Introducción a la electrónica digital

L gica digital y prog_ U 01-final.qxp 28/02/2007 18:42 PÆgina 11

Page 12: Logica Digital y Microprogramable

11 Lógica digital y microprogramable

12

4 D 9 A

Posición cero: peso = 160 = 1

Posición uno: peso = 161 = 16

Posición dos: peso = 162 = 256

Posición tres: peso = 163 = 4096

En algunos casos, la notación del subíndice 16 indicador del sistema hexadecimal se susti-tuye por la letra H o el símbolo $. De este modo, el número hexadecimal 4D9A se indicaríade cualquiera de las formas siguientes:

4D9A16 = 4D9AH = 4D9A$

No se debe confundir la H con un dígito hexadecimal, ya que éstos sólo llegan hasta la F.Sólo indica que se trata de un número hexadecimal, careciendo de todo valor numérico.

El cálculo de la cantidad que representa un número puede hacerse por lo tanto con la ayuda deuna tabla como la que sigue:

Por lo tanto, 4D9A16 = 1986610

Paso de hexadecimal a decimal

Al igual que ocurría con el binario, la descripción del sistema hexadecimal ya proporciona un métodopara convertir de hexadecimal a decimal, utilizando una tabla como la del ejemplo anterior.

Paso de decimal a hexadecimal

El método propuesto para la conversión de decimal a hexadecimal es similar al utilizado en el paso dedecimal a binario y se basa en divisiones sucesivas por 16: dividir sucesivamente por 16 el númerodecimal, y formar el número hexadecimal tomando el último cociente como dígito de mayor peso y losrestos de las divisiones hasta llegar al primer resto que será el dígito de menor peso

Como se pudo observar, la conversión entre sistemas decimal y hexadecimal no es nada inmediata,y sólo se realizará cuando sea realmente necesario. El verdadero sentido del uso del hexadecimal esen su aplicación para manipular cantidades dadas en binario, por la sencillez del paso de un siste-ma a otro.

Relación hexadecimal-bbinario

Cada uno de los dígitos hexadecimales representa una cantidad del 0 al 15, que es su valor base. Estascantidades, expresadas en binario, pueden requerir hasta 4 bits, tal como se indica en la siguiente tabla:

hexadecimal binario hexadecimal binario hexadecimal binario hexadecimal binario

0 0000 1 0001 2 0010 3 0011

4 0100 5 0101 6 0110 7 0111

8 1000 9 1001 A 1010 B 1011

C 1100 D 1101 E 1110 F 1111

número posición dígito valor base peso=16posición contribución sumaen decimal valor base x peso

0 A 10 1 10x1=10

1 9 9 16 9x16=144

4D9A 2 D 13 256 13x256=3328 19866

3 4 4 4096 4x4096=16384

← hexadecimal decimal →

L gica digital y prog_ U 01-final.qxp 28/02/2007 18:43 PÆgina 12

Page 13: Logica Digital y Microprogramable

13

11Introducción a la electrónica digital

número posición dígito valor base peso=16posición contribución sumaen decimal valor base x peso

0 A 10 1 10x1=10

1 9 9 16 9x16=144

4D9A 2 D 13 256 13x256=3328 19866

3 4 4 4096 4x4096=16384

← hexadecimal decimal →

La tabla anterior constituye el paso de hexadecimal a binario o viceversa para cantidades de 0 a 15.El paso para cantidades mayores se hace en base a la tabla de equivalencias anterior de acuerdo conlos métodos siguientes:

Paso de hexadecimal a binario

Obtener el número binario a partir de los equivalentes binarios de cuatro bits de los dígitos hexadecima-les, sustituyendo cada uno de los dígitos del número hexadecimal por su equivalente binario de 4 bits.

Paso de binario a hexadecimal

Esta conversión sigue el procedimiento inverso a la conversión anterior: distribuir el número binario engrupos de cuatro bits comenzando por el LSB, y sustituir cada grupo por su equivalente hexadecimal

Aclaración importante

Obsérvese que la conversión entre hexadecimal y binario se hace directamente por la relación dígitohexadecimal ↔ cuatro dígitos binarios. Este método no se puede aplicar para la conversión entre bina-rio y decimal, ya que daría resultados erróneos. Es decir, para pasar un número decimal a binario, nose puede pasar dígito a dígito, sino por el método expuesto en su momento.

1.1.5 Ejercicios de cambio de base entre los sistemas hexadecimal y decimal o binario

Los métodos descritos para el cambio base entre los sistemas hexadecimal y decimal son los siguientes:

Paso de hexadecimal a decimal: con la ayuda de una tabla, sumar los valores base de cada dígitohexadecimal multiplicados por los pesos correspondientes a la posición que ocupan. Por ejemplo,pasar 4D9A16 a decimal.

Por lo tanto, 4D9A16=1986610

Paso de decimal a hexadecimal: con la ayuda de una tabla, dividir sucesivamente por 16 el núme-ro decimal y formar el número hexadecimal tomando el último cociente como dígito de mayor peso ylos restos de las divisiones hasta llegar al primer resto que será el dígito de menor peso. Por ejemplo:pasar 1986610 a hexadecimal.

Dividir por 16 el número decimal que se desea convertir, anotando el resto de la división (queserá 15 o menos necesariamente).

1 9 8 6 6 1 61 6 1 2 4 1 → cociente

3 83 2

6 66 4

2 61 611 00 → resto=10

Tomar el cociente de la división anterior y volverlo a dividir por 16, anotando de nuevo el restode la división.

L gica digital y prog_ U 01-final.qxp 28/02/2007 18:43 PÆgina 13

Page 14: Logica Digital y Microprogramable

1 2 4 1 1 61 1 2 7 7 → cociente

1 2 11 1 2

99 → resto=9

Volver a tomar el cociente de la división anterior y volverlo a dividir por 16, anotando denuevo el resto de la división. Y así sucesivamente hasta que el cociente obtenido no se puedadividir más por 16 (será por lo tanto 15 o menos). El proceso de divisiones sucesivas por 16se puede anotar en una tabla como la que se muestra seguidamente:

cocientes y posteriores dividendos restos

19866 10 ← resto de 19866/16 (primer resto)cociente de 19866/16 → 1241 9 ← resto de 1241/16cociente de 1241/16 → 77 13 ← resto de 77/16 (último resto)

(último cociente) cociente de 77/16 → 4

Una vez realizadas todas las divisiones, tomar las cantidades decimales del último cocientey de los restos obtenidos y transformarlas en un dígito hexadecimal, de acuerdo con la tablade valores base de los dígitos hexadecimales.

cocientes y posteriores dividendos restos dígitos hexadecimales

19866 10 → A ← primer resto1241 9 → 9

77 13 → D ← último restoúltimo cociente → 4 → → 4

Construir el número hexadecimal tomando como dígito de mayor peso el de más abajo de latabla (el que viene del último cociente), y continuando hacia arriba (del último resto al pri-mer resto).

cocientes y posteriores dividendos restos dígitos hexadecimales

19866 10 A1241 9 9

77 13 D4 4

4D9A

Por lo tanto, 1986610=4D9AH

Los métodos descritos para el cambio base entre los sistemas hexadecimal y binario son los siguientes:

Paso de hexadecimal a binario: obtener el número binario a partir de los equivalentes binarios decuatro bits de los dígitos hexadecimales. Por ejemplo: pasar 8C6EH a binario.

Sustituir cada uno de los dígitos del número hexadecimal por su equivalente binario de 4bits.

dígitos → 8 C 6 E↓ ↓ ↓ ↓

equivalente en binario de 4 bits → 1000 1100 00110 111000 añadido a la izquierda para completar los cuatro bits ↑

Formar el número binario buscado juntando los bits procedentes de cada dígito hexadecimalen el mismo orden que éstos.

dígitos → 8 C 6 E ↓ ↓ ↓ ↓

equivalente en binario de 4 bits → 1000 1100 0110 1110↓ ↓

número binario buscado → 1000110001101110

Por lo tanto, 8C6E16=10001100011011102

11 Lógica digital y microprogramable

14

L gica digital y prog_ U 01-final.qxp 28/02/2007 18:43 PÆgina 14

Page 15: Logica Digital y Microprogramable

Paso de binario a hexadecimal: distribuir el número binario en grupos de cuatro bits comenzando porel LSB, y sustituir cada grupo por su equivalente hexadecimal. Por ejemplo: pasar 101011011111012a hexadecimal.

Comenzando por el LSB (por la derecha), distribuir el número binario a convertir en gruposde cuatro bits. Si el último grupo no llega a cuatro bits, se deja como está.

número binario → 10101101111101orden a seguir en el agrupamiento →

↓ ↓grupos formados → 10 1011 0111 1101

el último grupo puede no ser de cuatro bits ↑

A partir del número binario de cuatro bits de cada grupo, obtener el equivalente en hexade-cimal, que estará formado por un único dígito por grupo.

Número binario → 10101101111101orden a seguir en el agrupamiento →

↓ ↓grupos formados → 10 1011 0111 1101

↓ ↓ ↓ ↓equivalente hexadecimal → 2 B 7 D

Formar el número hexadecimal buscado juntando los dígitos procedentes de cada grupo y enel mismo orden que éstos.

número binario → 10101101111101orden a seguir en el agrupamiento →

↓ ↓grupos formados → 10 1011 0111 1101

↓ ↓ ↓ ↓equivalente hexadecimal → 2 B 7 D

↓ ↓número hexadecimal buscado → 2B7D

Por lo tanto, 101011011111012=2B7DH.

Ejemplo resuelto 1

Pasar los siguientes números hexadecimales a decimal y binario: F7 y D0C5.

Solución

Paso a decimal:

número dígito valor base en decimal peso valor base x peso

7 7 1 7

F7 F 15 16 240

suma: 247

F7H=24710

número dígito valor base en decimal peso valor base x peso

5 5 1 5

C 12 16 192

D0C5 0 0 256 0

D 13 4096 53248

suma: 53445

DC05H=5355610

15

11Introducción a la electrónica digital

L gica digital y prog_ U 01-final.qxp 28/02/2007 18:43 PÆgina 15

Page 16: Logica Digital y Microprogramable

Paso a binario:

dígitos → F 7↓ ↓

equivalente en binario de 4 bits → 1111 0111

F9H=111101112

dígitos → D 0 C 5↓ ↓ ↓ ↓

equivalente en binario de 4 bits → 1101 0000 1100 0101

D0C5H=11010000110001012

Ejemplo resuelto 2

Pasar los siguientes números decimales a hexadecimal: 236 y 12587.

Solución

cocientes restos hexadecimal cocientes restos hexadecimal236 12 → C 12587 11 → B 14 → → E 786 2 → 2

49 1 → 1 3 → → 3

23610=ECH 1258710=312BH

Ejemplo resuelto 3

Pasar los siguientes números binarios a hexadecimal: 1110011 y 1010000110.

Solución

número binario → 1110011↓ ↓

grupos formados → 111 0011↓ ↓

equivalente hexadecimal → 7 3↓ ↓

número hexadecimal buscado → 73

11100112=73$número binario → 1010000110

↓ ↓grupos formados → 10 1000 0110

↓ ↓ ↓equivalente hexadecimal → 2 8 6

↓ ↓número hexadecimal buscado → 286

10100001102=286$

1.1.6 El sistema de numeración octalDel mismo modo que el sistema hexadecimal, el sistema de numeración octal permite manejar canti-dades binarias de forma sencilla, permitiendo conversiones entre los sistemas prácticamente inmedia-tas. No es tan empleado como el hexadecimal ya que los números obtenidos a partir de un númerobinario resultan más largos, en general, en el sistema octal, y por lo tanto el hexadecimal permite com-primir en menos espacio el número binario transformado. Sin embargo, dado que también se utiliza,conviene conocerlo.

11 Lógica digital y microprogramable

16

L gica digital y prog_ U 01-final.qxp 28/02/2007 18:43 PÆgina 16

Page 17: Logica Digital y Microprogramable

Descripción del sistema octal

Se trata de un sistema de numeración de base 8: esto quiere decir que el sistema consta de 8 sím-bolos o dígitos.

{0,1,2,3,4,5,6,7}

Obsérvese que los dígitos elegidos para formar el sistema octal son sólo los 8 primeros dígitosarábigos. Por lo tanto, en un número octal no puede aparecer el dígito 8 ni el 9.

Las cantidades se codifican mediante un dígito o combinación de varios, obteniendo un número.

tres: 38.

diez: 108.

veintiséis: 328.

dos mil novecientos cuarenta y dos: 55768.

En un número, cada dígito representa una cantidad, que es su contribución a la cantidad totalrepresentada por el número.

La cantidad total representada por un número es la suma de las cantidades individuales repre-sentadas por cada uno de los dígitos que forman el número.

El sistema es posicional, lo que quiere decir que la contribución de un dígito del número depen-de de la posición de ese dígito. La cantidad con la que contribuye cada dígito se calcula multi-plicando el valor base del dígito por un peso atribuido a la posición que ocupa.

pesos: por ser base 8, el peso atribuido a la posición n-ésima es 8n. Las posiciones se cuentan dederecha a izquierda, empezando por el cero.

4 7 0 3

Posición cero: peso = 80 = 1

Posición uno: peso = 81 = 8

Posición dos: peso = 82 = 64

Posición tres: peso = 83 = 512

El cálculo de la cantidad que representa un número puede hacerse por lo tanto con la ayuda de unatabla como la que sigue:

Por lo tanto, 47038=249910

17

11Introducción a la electrónica digital

número posición dígito valor base peso=8posición contribución sumaen decimal valor base x peso

0 3 3 1 3x1=3

1 0 0 8 0x8=0

4703 2 7 7 64 7x64=448 2499

3 4 4 512 4x512=2048

← octal decimal →

Tabla de valores base: dígito valor base dígito valor base dígito valor base dígito valor base

0 cero 1 uno 2 dos 3 tres

4 cuatro 5 cinco 6 seis 7 siete

L gica digital y prog_ U 01-final.qxp 28/02/2007 18:43 PÆgina 17

Page 18: Logica Digital y Microprogramable

11 Lógica digital y microprogramable

18

Paso de octal a decimal

Igual que ocurría en el hexadecimal, la descripción del sistema octal ya proporciona un método paraconvertir de octal a decimal, utilizando una tabla como la del ejemplo anterior.

Paso de decimal a octal

El método propuesto para la conversión de decimal a octal es semejante a los empleados en el paso dedecimal a hexadecimal o de decimal a binario, y se basa en divisiones sucesivas por 8: dividir sucesi-vamente por 8 el número decimal y formar el número octal tomando el último cociente como dígito demayor peso y los restos de las divisiones hasta llegar al primer resto que será el dígito de menor peso.

Relación octal-bbinario

Cada uno de los dígitos octales representa una cantidad del 0 al 7, que es su valor base. Estas canti-dades, expresadas en binario, pueden requerir de hasta 3 bits, tal como se indica en la siguiente tabla:

octal binario octal binario octal binario octal binario

0 000 1 001 2 010 3 011

4 100 5 101 6 110 7 111

La tabla anterior constituye el paso de octal a binario o viceversa para cantidades de 0 a 7. El pasopara cantidades mayores se hace en base a la tabla de equivalencias anterior de acuerdo con los méto-dos siguientes:

Paso de octal a binario

Obtener el número binario a partir de los equivalentes binarios de tres bits de los dígitos octales, sus-tituyendo cada uno de los dígitos del número octal por su equivalente binario de 3 bits.

Paso de binario a octal

Esta conversión sigue el procedimiento inverso a la conversión anterior: distribuir el número binario engrupos de tres bits comenzando por el LSB, y sustituir cada grupo por su equivalente octal.

Aclaración importante

Igual que en el caso del hexadecimal, la conversión entre octal y binario se hace directamente por larelación dígito octal ↔ tres dígitos binarios. De nuevo es necesario insistir en que este método no sepuede aplicar para la conversión entre binario y decimal, ya que daría resultados erróneos.

1.1.7 Ejercicios de cambio de base entre los sistemas octal y decimal o binario

Los métodos descritos para el cambio base entre los sistemas octal y decimal son los siguientes:

Paso de octal a decimal: con la ayuda de una tabla, sumar los valores base de cada dígito octalmultiplicados por los pesos correspondientes a la posición que ocupan. Por ejemplo, pasar 47038 adecimal.

Por lo tanto, 47038=249910

número posición dígito valor base peso=8posición contribución sumaen decimal valor base x peso

0 3 3 1 3x1=3

1 0 0 8 0x8=0

4703 2 7 7 64 7x64=448 2499

3 4 4 512 4x512=2048

← octal decimal →

L gica digital y prog_ U 01-final.qxp 28/02/2007 18:43 PÆgina 18

Page 19: Logica Digital y Microprogramable

Paso de decimal a octal: con la ayuda de una tabla, dividir sucesivamente por 8 el número decimal,y formar el número octal tomando el último cociente como dígito de mayor peso y los restos de lasdivisiones hasta llegar al primer resto que será el dígito de menor peso. Por ejemplo, pasar 1986610a octal.

Construcción de la tabla de cocientes y restos:

cocientes y posteriores dividendos restos

19866 2 ← resto de 19866/8 (primer resto)cociente de 19866/8 → 2483 3 ← resto de 2483/8cociente de 2483/8 → 310 6 ← resto de 310/8cociente de 310/8 → 38 6 ← resto de 38/8 (último resto)

(último cociente) cociente de 38/8 → 4

Construcción del número octal comenzando por el último cociente y siguiendo por los restostomados del último al primero:

cocientes y posteriores dividendos restos

19866 22483 3310 638 64

46632

Por lo tanto, 1986610=466328

Como en el caso del hexadecimal, la conversión entre sistemas decimal y octal tampoco es inmediata,y sólo se hará cuando sea realmente necesario. El verdadero sentido del uso del octal está en su aplica-ción para manipular cantidades dadas en binario, debido a la sencillez del paso de un sistema al otro.

Los métodos descritos para el cambio base entre los sistemas octal y binario son los siguientes:

Paso de octal a binario: obtener el número binario a partir de los equivalentes binarios de tres bitsde los dígitos octales. Por ejemplo: pasar 37258 a binario.

Sustituir cada uno de los dígitos del número octal por su equivalente binario de 3 bits.

dígitos → 3 7 2 5↓ ↓ ↓ ↓

equivalente en binario de 3 bits → 011 111 0010 10100 añadido a la izquierda para completar los tres bits ↑

Formar el número binario buscado juntando los bits procedentes de cada dígito octal en elmismo orden que éstos.

dígitos → 3 7 2 5↓ ↓ ↓ ↓

equivalente en binario de 3 bits → 011 111 010 101↓ ↓

número binario buscado → 011111010101

Por lo tanto, eliminando el cero más a la izquierda, que no contribuye con ningún valor (igual que endecimal, los ceros a la izquierda no cuentan), 37258=111110101012.

Paso de binario a octal: distribuir el número binario en grupos de tres bits comenzando por el LSB,y sustituir cada grupo por su equivalente octal. Por ejemplo: pasar 10111111012 a octal.

Comenzando por el LSB (por la derecha), distribuir el número binario a convertir en gruposde tres bits. Si el último grupo no llega a tres bits, se deja como salga.

19

11Introducción a la electrónica digital

L gica digital y prog_ U 01-final.qxp 28/02/2007 18:43 PÆgina 19

Page 20: Logica Digital y Microprogramable

número binario → 1011111101orden a seguir en el agrupamiento →

↓ ↓grupos formados → 1 011 111 101

el último grupo puede no ser de tres bits ↑

A partir del número binario de tres bits de cada grupo, obtener el equivalente en octal, queestará formado por un único dígito por grupo.

número binario → 1011111101

orden a seguir en el agrupamiento → ↓ ↓grupos formados → 1 011 111 101

↓ ↓ ↓ ↓equivalente octal → 1 3 7 5

Formar el número octal buscado juntando los dígitos procedentes de cada grupo y en elmismo orden que éstos.

número binario → 1011111101orden a seguir en el agrupamiento →

↓ ↓grupos formados → 1 011 111 101

↓ ↓ ↓ ↓equivalente octal → 1 3 7 5

↓ ↓número octal buscado → 1375

Por lo tanto, 10111111012=13758.

Ejemplo resuelto 1

Pasar los siguientes números octales a decimal y binario: 74 y 1564.

Solución

Paso a decimal:

número dígito valor base en decimal peso valor base x peso

4 4 1 4

74 7 7 8 56

suma: 60

748=6010

número dígito valor base en decimal peso valor base x peso

4 4 1 4

6 6 8 48

1564 5 5 64 320

1 1 512 512

suma: 884

15648=88410

Paso a binario:

dígitos → 7 4

↓ ↓equivalente en binario de 3 bits → 111 100

748=1111002

11 Lógica digital y microprogramable

20

L gica digital y prog_ U 01-final.qxp 28/02/2007 18:43 PÆgina 20

Page 21: Logica Digital y Microprogramable

dígitos → 1 5 6 4↓ ↓ ↓ ↓

equivalente en binario de 3 bits → 001 101 110 10015648=11011101002

Ejemplo resuelto 2

Pasar los siguientes números decimales a octal: 236 y 12587.

Solución

cocientes restos cocientes restos

236 4 12587 329 5 1573 53 196 4

24 03

23610=3548 1258710=304538

Ejemplo resuelto 3

Pasar los siguientes números binarios a octal: 1110011 y 1010000110.

Solución

número binario → 1110011↓ ↓

grupos formados → 1 110 011↓ ↓

equivalente octal → 1 6 3↓ ↓ ↓

número hexadecimal buscado → 163

11100112=1638

número binario → 1010000110↓ ↓

grupos formados → 1 010 000 110↓ ↓ ↓ ↓

equivalente hexadecimal → 1 2 0 6↓ ↓

número hexadecimal buscado → 1206

10100001102=12068

1.1.8 Herramientas informáticas para el trabajo con los sistemas de numeración

Los sistemas operativos de la familia Windows ofrecen en sus últimas versiones una calculadora quepermite trabajar en los sistemas de numeración estudiados anteriormente, y que puede facilitar enor-memente el trabajo con sistemas digitales binarios a la hora de hacer operaciones y conversiones entresistemas de numeración.

Pero la existencia de esta herramienta no debe inducir a despreocuparse de hacer manualmente loscambios de base y olvidar los detalles de los sistemas de numeración estudiados. Al contrario, en unprincipio debe emplearse como herramienta de apoyo en el estudio de los sistemas para la verifica-ción de los resultados obtenidos manualmente, y sólo cuando se dominen perfectamente las técnicas,emplearla como herramienta de trabajo.

La calculadora de Windows tiene un funcionamiento semejante a una calculadora tradicional de sobre-mesa.

21

11Introducción a la electrónica digital

L gica digital y prog_ U 01-final.qxp 28/02/2007 18:43 PÆgina 21

Page 22: Logica Digital y Microprogramable

11 Lógica digital y microprogramable

22

Llegados a este punto, el estudiante ya debe comprender el sentido de la aplicación y el uso del octaly el hexadecimal. Como se pudo comprobar, el manejo de largas listas de unos y ceros no es sencillo yse presta fácilmente a la confusión, mientras que pasando esas cifras a hexadecimal u octal, el mane-jo es muy sencillo.

1.1.9 Utilización de la calculadora de Windows para la realización de cambios de base

La calculadora de Windows se encuentra normalmente en el siguiente punto de los menús del sistema:

Inicio → Programas → Accesorios → Calculadora

O bien, eligiendo:

Inicio → Ejecutar

y escribiendo calc en la barra Abrir de la ventana Ejecutar que aparece y pulsando Aceptar.

Una vez realizada alguna de las instrucciones anteriores, aparecerá la ventana de la aplicación de lacalculadora de Windows. Esta calculadora tiene dos posibles apariencias: estándar o científica. La quese necesita para trabajar con los diferentes sistemas de numeración es la científica.

Si la versión que apareciese fuera la estándar, habría que cambiarla a la científica en la opción:

Ver → Científica

de la barra de menús de la calculadora, tal como se indica en la figura pequeña. El aspecto de la cal-culadora científica es el siguiente:

A partir de este punto, el fun-cionamiento de la calculadoraes como el de cualquier otra,con la particularidad de quetrabajará en el sistema denumeración seleccionado en labarra correspondiente. En elejemplo de la figura siguientese puede ver que el sistemaseleccionado es el decimal.

Para seleccionar otro sistemade numeración simplemente

hay que pulsar con el puntero del ratón en el circulito blanco al lado del sistema deseado.

Para hacer una conversión de un sistema a otro se seguirá elsiguiente procedimiento:

Seleccionar el sistema de numeración de origen del númeroa convertir. Por ejemplo, para convertir 2B7D16 a binario,comenzar seleccionado hexadecimal (Hex). Obsérvese que alseleccionar el sistema hexadecimal, los dígitos de la A a la Fque están en la parte inferior de la calculadora, cambiarondel color gris que tenían en el sistema decimal al color azul.

El color gris indicaba que esos dígitos no estaban permitidos en el sistema decimal, y el colorazul quiere decir que ahora sí están permitidos en el sistema hexadecimal

Introducir el número a convertir. En el ejemplo, escribir 2B7D.

Seleccionar el sistema de numeración al que se quiere convertir el número introducido. En elejemplo, seleccionar binario (Bin). Obsérvese que al seleccionar binario, todos los dígitos cam-bian a gris salvo el cero y el uno, que son los únicos permitidos en este sistema.

En pantalla aparecerá el equivalente binario del número introducido, que para el 2B7DH es el101011011111012.

L gica digital y prog_ U 01-final.qxp 28/02/2007 18:43 PÆgina 22

Page 23: Logica Digital y Microprogramable

1.2 Otros sistemas de codificaciónEn los apartados anteriores se describieron varios sistemas de codificación de cantidades numéricas,adecuados cada uno a la naturaleza del procesador que los emplea y a la tarea en la que se van autilizar.

El sistema decimal es adecuado para prácticamente todas las actividades contables del serhumano .

Los sistemas octal y hexadecimal son adecuados para el trabajo con procesadores electrónicosdigitales.

El sistema binario es adecuado para la realización de procesadores electrónicos digitales, ya queal tener tan solo dos símbolos distintos, su representación eléctrica mediante dos tensiones dis-tintas es sencilla empleando la tecnología electrónica.

El sistema binario descrito en los apartados anteriores no es el único que se puede definir utilizandosólo dos símbolos. De hecho, existen más códigos binarios que también pueden ser empleados en losprocesadores electrónicos digitales, ya que para ello sólo es necesario manejar los símbolos uno y cero.Seguidamente se dará una breve relación de otros sistemas de codificación binarios.

1.2.1 Sistemas binarios numéricosA partir de los dígitos 1 y 0 se establecen diferentes métodos de codificación de las cantidades paraobtener diferentes sistemas de numeración binarios.

Binario natural: es el descrito en los apartados anteriores.

BCD: permite trabajar fácilmente con cantidades decimales en binario.

Binario módulo-signo: permite representar cantidades enteras positivas y negativas.

Complemento a uno: permite representar cantidades enteras positivas y negativas.

Complemento a dos: permite representar cantidades enteras positivas y negativas.

Punto fijo: permite representar cantidades fraccionarias positivas y negativas.

Punto flotante: permite representar cantidades fraccionarias positivas y negativas.

Código Gray, Jhonson, etc.

De los anteriores, se describirá, por ahora, el sistema BCD.

Sistema de codificación numérica binaria BCD (Binary Coded Decimal)

El sistema BCD (Binario Codificado Decimal), como su nombre sugiere, es un sistema de codificaciónbinario para el decimal. Esto es, dado un número decimal, se sustituye cada dígito decimal por suequivalente binario de 4 bits. Y al revés, el número binario en BCD se pasa a decimal formando gru-pos de 4 bits comenzando por el LSB y sustituyendo cada grupo por el dígito decimal equivalente.

El método es semejante al empleado en los sistemas octal y hexadecimal, pero aplicado al decimal. Esnecesario tener siempre presente, que el número binario BCD no es el equivalente binario natural delnúmero decimal convertido.

1.2.2 Ejercicios de cambio de base entre los sistemas decimal y BCD

Los métodos descritos para el cambio base entre los sistemas decimal y BCD son los siguientes:

Paso de decimal a BCD: obtener el número BCD a partir de los equivalentes binarios de cuatro bitsde los dígitos decimales. Por ejemplo: pasar 187910 a BCD.

23

11Introducción a la electrónica digital

L gica digital y prog_ U 01-final.qxp 28/02/2007 18:43 PÆgina 23

Page 24: Logica Digital y Microprogramable

Sustituir cada uno de los dígitos del número decimal por el equivalente binario de 4 bits.

dígitos → 1 8 7 9↓ ↓ ↓ ↓

equivalente en binario de 4 bits → 0001 1000 00111 100100 añadido a la izquierda para completar los cuatro bits ↑

Formar el número BCD buscado juntando los bits procedentes de cada dígito decimal en el mismoorden que éstos.

dígitos → 1 8 7 9↓ ↓ ↓ ↓

equivalente en binario de 4 bits → 0001 1000 0111 1001↓ ↓

número BCD buscado → 1100001111001

Por lo tanto, 187910=1100001111001BCD.

Obsérvese que se despreciaron los ceros a la izquierda, ya que carecen de valor.

Paso de BCD a decimal: distribuir el número BCD en grupos de cuatro bits comenzando por el LSB,y sustituir cada grupo por su equivalente decimal. Por ejemplo: pasar 10100101110101BCD a decimal.

Comenzando por el LSB (por la derecha), distribuir el número BCD a convertir en grupos de cua-tro bits. Si el último grupo no llega a cuatro bits, se deja como salga.

número BCD → 10100101110101orden a seguir en el agrupamiento →

↓ ↓grupos formados → 10 1001 0111 0101

el último grupo puede no ser de cuatro bits ↑

A partir del número binario de cuatro bits de cada grupo, obtener el equivalente en decimal, queestará formado por un único dígito por grupo. Si esto no ocurre, es que el número BCD está malconstruido, y realmente no se trata de BCD.

número BCD → 10100101110101orden a seguir en el agrupamiento →

↓ ↓grupos formados → 10 1001 0111 0101

↓ ↓ ↓ ↓equivalente decimal → 2 9 7 5

Formar el número decimal buscado juntando los dígitos procedentes de cada grupo y en elmismo orden que éstos.

número BCD → 10100101110101orden a seguir en el agrupamiento →

↓ ↓grupos formados → 10 1001 0111 0101

↓ ↓ ↓ ↓equivalente decimal → 2 9 7 5

↓ ↓número decimal buscado → 2975

Por lo tanto, 10100101110101BCD=297510.

Ejemplo resuelto 1

Pasar los siguientes números decimales a BCD: 35 y 5907.

11 Lógica digital y microprogramable

24

L gica digital y prog_ U 01-final.qxp 28/02/2007 18:43 PÆgina 24

Page 25: Logica Digital y Microprogramable

Solución

dígitos → 3 5↓ ↓

equivalente en binario de 4 bits → 0011 0101

3510=110101BCD

dígitos → 5 9 0 7↓ ↓ ↓ ↓

equivalente en binario de 4 bits → 101 1001 0000 0111

590710=101100100000111BCD

Ejemplo resuelto 2

Pasar los siguientes números BCD a decimal: 1110011 y 1010000110.

Solución

número BCD → 1110011↓ ↓

grupos formados → 111 0011↓ ↓

equivalente decimal → 7 3↓ ↓

número decimal buscado → 731110011BCD=7310

número BCD → 1010000110↓ ↓

grupos formados → 10 1000 0110↓ ↓ ↓

equivalente decimal → 2 8 6↓ ↓

número decimal buscado → 286

1010000110BCD=28610

1.2.3 Sistemas para codificación alfanuméricaMediante estos sistemas se pueden representar o codificar símbolos alfanuméricos (letras, signos depuntuación, dígitos, etc.). Estos sistemas de codificación se basan en la asignación de un valor numé-rico a cada símbolo alfanumérico de acuerdo con una tabla. De este modo, un texto escrito se puederepresentar como una secuencia de números. Si el valor numérico se representa en binario, el sistemapermite manejar textos con un procesador electrónico digital.

Según el valor numérico asignado a cada símbolo alfanumérico, se pueden definir muchos sistemas decodificación distintos. En la práctica existen sólo unos pocos, siendo el más empleado el sistema, códi-go o tabla ASCII (American Standard Code for Information Interchange, código estándar americanopara intercambio de información). En este sistema hay que distinguir entre el código ASCII estándar yel ASCII extendido.

ASCII estándar: codifica las cantidades empleando 7 bits, de modo que se representan 27=128símbolos alfanuméricos distintos. La tabla recoge los símbolos más habituales y es única en elmundo.

ASCII extendido: codifica las cantidades empleando 8 bits, de modo que se representan 28=256símbolos alfanuméricos distintos. En los 128 primeros códigos los símbolos coinciden con los dela tabla ASCII estándar (el MSB del código es 0). Los últimos 128 códigos (el MSB del código es1) recogen símbolos particulares de los alfabetos de diferentes países, de modo que esta parte dela tabla puede cambiar de un sitio a otro.

Además del ASCII, existen otros sistemas de codificación alfanumérica, como el EBCDIC, pero sonmenos empleados. Las tablas de este y otros códigos se pueden consultar en Internet.

25

11Introducción a la electrónica digital

L gica digital y prog_ U 01-final.qxp 28/02/2007 18:43 PÆgina 25

Page 26: Logica Digital y Microprogramable

22.. Lógica proposicional y álgebra de Boole

En este apartado se analizarán los aspectos relativos a los procesos de la inteligencia, de modo que sesienten las bases para el desarrollo de procesadores electrónicos digitales que sean capaces de emu-lar el razonamiento humano básico, pudiendo realizar tareas de control.

2.1 La lógicaLa lógica es la disciplina que estudia las condiciones bajo las que, a partir de ciertas premisas, se llegacorrectamente a unas conclusiones; es decir, estudia los principios de los razonamientos correctos. Nose plantea la certeza o no de las premisas, sino la validez del razonamiento.

La lógica no garantiza que las conclusiones obtenidas sean siempre correctas, ya que algunas veceslas premisas de partida pueden ser erróneas. Sólo garantiza que en las conclusiones no surgen máserrores que los posibles derivados de la falsedad de las premisas, no del razonamiento.

2.2 La lógica proposicionalLa lógica proposicional estudia los procesos deductivos más simples de la lógica humana, como sonlos razonamientos basados en los enunciados declarativos proposicionales, que se explican en lossiguientes apartados.

Proposición

Un enunciado declarativo proposicional o simplemente proposición es una frase en la que lo que sedeclara puede ser verdadero o falso, pero no ambos a la vez.

Son proposiciones los siguientes enunciados declarativos, ya que son o verdaderos o falsos:

"Tres más dos son cinco": la proposición es verdadera.

"Cuatro más seis son ocho": la proposición es falsa.

"Mañana va a llover": aunque hoy no se sepa, será verdadera o falsa.

"Madrid está en España y Roma en Francia": en conjunto se enunció una falsedad.

Los siguientes enunciados declarativos no son proposiciones, ya que de ninguno de ellos se puededecir que sean verdaderos o falsos; son simplemente deseos, consejos o enumeraciones:

Estudiad un poco más.

Haz el bien y no mires a quién.

Vivan los novios.

Una caja.

Valor lógico

Es el carácter de verosimilitud o falsedad de una proposición.

En los ejemplos anteriores, la primera proposición es verdadera, luego su valor es verdadero; la segun-da es falsa, luego su valor es falso; la tercera será verdadera o falsa, pero no se sabrá hasta mañana.La cuarta es una proposición que tiene una parte que es verdadera y otra falsa, pero tal como estáenunciada, en conjunto su valor lógico es falso.

Los valores lógicos se representan con los símbolos V para el verdadero y F para el falso.

11 Lógica digital y microprogramable

26

L gica digital y prog_ U 01-final.qxp 28/02/2007 18:43 PÆgina 26

Page 27: Logica Digital y Microprogramable

Variable lógica o proposicional

Es la representación simbólica de una proposición. Tradicionalmente, los símbolos empleados pararepresentar las proposiciones son las letras minúsculas p, q, r, etc. Las variables proposicionales seemplean por comodidad, para no tener que escribir todo el enunciado de la proposición.

Por ejemplo, p puede representar la proposición "tres más dos son cinco". Por lo tanto, se puede expre-sar que el valor lógico de la proposición es verdadero del modo siguiente:

p ≡ V

Conectivas

Una conectiva es un mecanismo para obtener nuevas proposiciones a partir de otras ya existentes porcombinación de ellas.

En el lenguaje humano, las conectivas vienen representadas por las conjunciones: copulativas, adver-sativas, disyuntivas, etc. Dada la riqueza y redundancia de los lenguajes, estas expresiones, formal-mente distintas, muchas veces equivalen a una misma forma de combinación lógica.

Las conectivas más simples que se verán en esta unidad y el símbolo con el que se representan en ellenguaje de la lógica, son las siguientes:

Otras conectivas pueden consultarse en textos específicos de lógica. De ahora en adelante, no seemplearán más los símbolos lógicos de las conectivas por no complicar la notación, y se empleará lanotación lingüística en castellano y, o y no.

A partir del uso de las conectivas, las proposiciones se clasifican en dos tipos:

Proposiciones simples o atómicas: son las proposiciones que no están compuestas a partir de otrasmediante conectivas. Ejemplo: "Madrid está en España".

Proposiciones compuestas o moleculares: son las proposiciones que están compuestas a partir de otrasmediante conectivas. Las proposiciones compuestas se descomponen en proposiciones atómicas o tam-bién en otras proposiciones compuestas a su vez. En el último nivel de descomposición, las proposicio-nes moleculares se descomponen en proposiciones atómicas. Ejemplo: "Madrid está en España y Romaestá en Francia".

Expresión lógica

Es la representación de una proposición mediante las variables lógicas de las proposiciones que laconstituyen y las conectivas que las combinan. En el caso de proposiciones atómicas, su expresión lógi-ca es simplemente la variable lógica que la representa. Ejemplos:

27

11Introducción a la electrónica digital

conectiva Castellano símbolo ejemplo

conjunción Y llueve yy hace sol → llueve hace sol →p=llueve

p q

disyunción O V llueve oo hace sol → llueve V hace sol →q=hace sol

→→ p V q

negación no nnoo llueve → llueve → p

V V V

¬ ¬ ¬

proposición expresión comentario

Madrid está España p Es una proposición atómica

Roma está en Francia q También es una proposición atómica

Roma no está en Francia nnoo q Es una proposición compuesta

Madrid está en España y Roma no está en Francia p yy nnoo q Es otra proposición compuesta

Madrid está en España y Roma no está en Francia r = p yy nnoo q Es una proposición compuesta a la que se asignala variable lógica r para simplificar su expresión

Los mapas mienten s Es una proposición atómica

Madrid está en España y Roma no está en Francia, r oo s = p yy nnoo q oo s Es una proposición compuestao los mapas mienten

L gica digital y prog_ U 01-final.qxp 28/02/2007 18:43 PÆgina 27

Page 28: Logica Digital y Microprogramable

Signos auxiliares

Son signos empleados en la notación de las relaciones lógicas para evitar las ambigüedades que, aveces, presenta la lengua hablada. Se trata de paréntesis, corchetes y llaves que agrupan adecuada-mente las variables lógicas dentro de una expresión. Ejemplo:

proposición expresión

el reo va a la cárcel p

el reo muere q

el reo paga una multa r

el reo va a la cárcel yy, muere oo paga una multa p y (q o r)

el reo va a la cárcel yy muere, oo paga una multa (p y q) o r

Aunque en la lengua hablada las dos últimas proposiciones se expresen casi del mismo modo, expre-san situaciones bien distintas, tal como se refleja en su expresión lógica. De ser ciertas en su conjuntolas anteriores proposiciones, en el primer caso, el reo va a ir fijo a la cárcel, y allí deberá pagar unamulta si no quiere morir. En el segundo caso, el reo puede ir a la cárcel y morir en ella, o bien librar-se de todo pagando una multa. Como se ve, las situaciones son muy distintas.

Leyes de la lógica y métodos deductivos

A partir de los conceptos y elementos descritos anteriormente, la lógica proposicional estudia los meca-nismos del razonamiento humano, y los clasifica en reglas o leyes. Por ejemplo, el razonamiento lógi-co frente a la conectiva y es que la proposición compuesta con esta conectiva es verdadera cuando lasdos proposiciones conectadas son verdaderas simultáneamente, y falsa cuando cualquiera de las doso las dos son falsas. Esto entonces, da la lugar a la siguiente ley:

Ley de la conectiva y: la proposición compuesta con la conectiva y es verdadera cuando las dosproposiciones conectadas son verdaderas simultáneamente, y falsa cuando cualquiera de las doso las dos son falsas.

Por ejemplo, cuando uno dice "la sal es dulce y el agua moja", en conjunto dice una falsedad, ya queuna de las proposiciones conectadas por y es falsa.

Del mismo modo, el razonamiento que interpreta la conectividad o da lugar a otra ley:

Ley de la conectiva o: la proposición compuesta con la conectiva o es verdadera cuando algunade las proposiciones conectadas, o las dos, son verdaderas, y falsa cuando las dos son falsas.

Por ejemplo, cuando uno dice "la sal es dulce o el agua moja", en conjunto dice una verdad, ya que almenos una de las proposiciones conectadas por o es verdadera.

Análogamente, para cada una de las conectivas, tanto las vistas hasta ahora como otras, existe unaregla de funcionamiento derivada del raciocinio humano, constituyendo las reglas o leyes básicas dela lógica.

Además, existen otras relaciones lógicas más complejas que permiten deducir el valor lógico de lasproposiciones compuestas, a partir de sus proposiciones constituyentes. Estas relaciones se clasificantambién en leyes y métodos deductivos.

Mediante la aplicación de las leyes de la lógica se puede evaluar el valor lógico en conjunto de unaproposición compuesta.

Reglas de precedencia

Son reglas que definen el orden en el que se tienen que interpretar las relaciones lógicas dentro de unaexpresión en la que aparecen varias conectivas. Ante una posible duda en la interpretación, las conec-tivas de mayor precedencia son las que se aplican primero. El orden de precedencia de las conectivaslógicas es el siguiente:

11 Lógica digital y microprogramable

28

L gica digital y prog_ U 01-final.qxp 28/02/2007 18:43 PÆgina 28

Page 29: Logica Digital y Microprogramable

orden de precedencia conectiva

mayor no

y

menor o

Así por ejemplo, en la expresión “p o q y no r”, primero se evalúa no r, luego q y el resultado de no r,y luego p o el resultado de la evaluación anterior. Lo que no sería correcto es evaluar primero p o q, yluego el resultado evaluarlo con y no r.

Es correcto: No es correcto:

p oo q yy nnoo r p oo q yy nnoo r

1º 1º 2º(nnoo r) ( p oo q ) ( nnoo r )

2º 3º[ q yy ( nnoo r ) ] ( p oo q ) yy ( nnoo r )

3ºp oo [ q yy ( nnoo r ) ]

El empleo de paréntesis permite aclarar o alterar los órdenes de precedencia, haciendo que se evalú-en en primer lugar los términos entre paréntesis.

Las reglas de precedencia en la lógica funcionan igual que en el cálculo aritmético con las operacio-nes suma, multiplicación, etc., por lo que su aplicación no debe presentar mayores problemas.

Tabla de verdad

Una tabla de verdad es un método para expresar la relación lógica entre una proposición compuestay sus proposiciones constituyentes. En una parte de la tabla se disponen las proposiciones constituyen-tes, debajo de las que se recogen todas sus posibles combinaciones de valores lógicos. En la otra partede la tabla se dispone la proposición compuesta, debajo de la que se indica el valor lógico que tomapara cada una de las combinaciones de valores de las proposiciones constituyentes.

Por ejemplo, una proposición representada por la expresión p o q. La tabla de verdad que describe larelación entre la proposición compuesta y p y q será:

p q p oo qF F FF V VV F VV V V

Debajo de p y q se recogieron todas las posibles combinaciones de valores lógicos que pueden presen-tar; a saber, las dos falsas, una verdadera y otra falsa, y viceversa, y las dos verdaderas. Al lado decada combinación se indica el valor lógico que le corresponde a la expresión p o q de acuerdo con lasleyes de la lógica.

La anterior tabla de verdad constituye un buen método de expresar el enunciado de la ley de la conec-tiva o, mejor que el lenguaje habitual empleado anteriormente para definirla.

Del mismo modo, cada una de las leyes elementales de la lógica se puede expresar por medio de sutabla de verdad, como se muestra a continuación:

29

11Introducción a la electrónica digital

L gica digital y prog_ U 01-final.qxp 28/02/2007 18:43 PÆgina 29

Page 30: Logica Digital y Microprogramable

Ley de la conectiva yy Ley de la conectiva oo Ley de la negaciónp q p yy q p oo q nnoo pF F F F VF V F V VV F F V FV V V V F

Expresiones equivalentes

Son expresiones equivalentes aquellas formalmente distintas, pero que conducen al mismo resultadológico para todos los valores de sus proposiciones constituyentes. Por lo tanto, dos expresiones sonequivalentes si tienen la misma tabla de verdad. Por ejemplo, más adelante se podrá comprobar quela expresión no (p y q) es equivalente a no p o no q.

2.2.1 Ejercicios de identificación de los elementos lógicos de una proposición

Ejemplo resuelto 1

Identificar los siguientes elementos lógicos de la proposición enunciada:

Proposiciones elementales constituyentes de la proposición, y asignación de variables lógicas.

Expresión lógica de la proposición.

Tabla de verdad de la expresión.

Proposición enunciada: “la temperatura es inferior a 20ºC y hay combustible en el depósito”.

Solución

Proposiciones elementales constituyentes de la proposición y asignación de variables lógicas: delenunciado se deduce que hay dos proposiciones elementales ,por lo que se definirán dos va-riables:

p→ la temperatura es inferior a 20ºC.

q→ hay combustible en el depósito.

Expresión lógica de la proposición: en el enunciado se ve que la conectiva empleada es y, luegola expresión será:

p y q

Tabla de verdad de la expresión: dado que hay dos variables, las posibles combinaciones de valo-res lógicos para ellas son cuatro: las dos verdaderas, las dos falsas, una verdadera y otra falsa, yviceversa. El valor lógico de la expresión para cada combinación se obtiene directamente de laley de la conectiva y, según se muestra en la tabla:

p q p yy q

F F FF V FV F FV V V

Llegados a este punto, se podría continuar con el estudio del lenguaje de la lógica y de las leyes ymétodos que incluye. Sin embargo, no se van estudiar más elementos de este lenguaje que los yaexpuestos en los apartados anteriores, ya que en el ámbito de la electrónica se emplea un lenguajemás generalista para el tratamiento de los elementos de la lógica, tal como es el álgebra de Boole, quese verá en el apartado siguiente.

11 Lógica digital y microprogramable

30

L gica digital y prog_ U 01-final.qxp 28/02/2007 18:43 PÆgina 30

Page 31: Logica Digital y Microprogramable

2.3 El álgebra de BooleEl álgebra de Boole es una teoría matemática que trata sobre las propiedades de un determinado tipode conjuntos que cumplen ciertas características o requisitos. Como toda matemática, es una teoríaabstracta, que puede ser aplicada a cualquier situación real concreta que se ajuste a las condicionesde la teoría.

En el caso a tratar aquí, resulta que la estructura de la lógica proposicional se adapta perfectamen-te a las características del álgebra de Boole. Por lo tanto, todas las conclusiones y resultados que pro-porciona el álgebra de Boole pueden ser aplicados directamente a la lógica. Además, el lenguajeempleado en el álgebra de Boole se adapta muy bien para su aplicación a los procesadores electró-nicos digitales.

La adaptación entre la lógica, el álgebra de Boole y la electrónica digital es tan fuerte, que constan-temente se mezclan conceptos y términos de unas con otras. En este sentido, a continuación seexpondrá el álgebra de Boole en sus propios términos, pero algunos se irán sustituyendo por otrosque pertenecen, a la electrónica o a la lógica, según es práctica común en el ámbito de la electróni-ca digital.

Definición formal

Sea un conjunto B de elementos cualesquiera, sobre el que se definen dos operaciones internas. Pararepresentar estas operaciones se emplearán los símbolos "+" y "·", por lo que a la primera operaciónse le llamará suma booleana y a la segunda producto booleano. No se deben de confundir estas ope-raciones con la suma y el producto aritmético empleados habitualmente.

Por ser operaciones internas, a cada par de elementos de B se les hace corresponder otro elemento deB. Esto se expresa como sigue:

B xB ⎯⎯⎯→ B xB ⎯⎯→

(a,b) → (a + b) ∈ B (a,b) → (a · b) ∈ B

donde a y b son elementos de B, o variables booleanas que representan elementos de B.

El conjunto B con las operaciones definidas es un álgebra de Boole si se cumplen las siguientes con-diciones o postulados:

Postulado 1. Propiedad conmutativaPara cualquier par de elementos (a,b) de B se verifica:

Conmutativa respecto de la suma:

a + b = b + a

Conmutativa respecto del producto:

a · b = b · a

Postulado 2. Propiedad distributivaPara cualquier trío de elementos (a,b,c) de B se verifica:

Distributiva respecto de la suma:

a · (b + c ) = a · b + a · c

Distributiva respecto del producto:

a + (b · c) = (a + b) · (a + c)

Postulado 3. Existencia de los elementos neutrosPara cualquier elemento a de B, existe:

Un elemento neutro para la suma, denominado elemento cero: "0", tal que:

a + 0 = a

31

11Introducción a la electrónica digital

·+

L gica digital y prog_ U 01-final.qxp 28/02/2007 18:43 PÆgina 31

Page 32: Logica Digital y Microprogramable

Un elemento neutro para el producto, denominado elemento uno "1", tal que:

a · 1 = a

Los elementos 0 y 1 son únicos en el conjunto B y sirven para todos sus elementos, es decir, son uni-versales en B.

Postulado 4. Axioma del complementoPara cada elemento a de B, existe otro elemento también de B, llamado complemento de a, comple-mentario de a, negado de a u opuesto de a, y representado como a', a, -a, a/, a* o a, tal que verifica:

Complemento respecto de la suma:

a + a = 1

Complemento respecto del producto:

a · a = 0

2.3.1 La lógica proposicional como álgebra de BooleUna vez definido lo que es un álgebra de Boole, se podría comprobar la siguiente equivalencia entrelos elementos de la lógica y los del álgebra:

lógica proposicional álgebra de Boole

valor lógico V ⇐ ⇒ elemento 1

valor lógico F ⇐ ⇒ elemento 0

conectiva y ⇐ ⇒ operación producto: ·

conectiva o ⇐ ⇒ operación suma: +

conectiva no ⇐ ⇒ existencia del complemento

proposición o variable lógica ⇐ ⇒ variable booleana

expresión lógica ⇐ ⇒ expresión booleana

leyes de la lógica ⇐ ⇒ postulados del álgebra

La equivalencia anterior refleja el hecho de que la lógica proposicional es una entidad concreta que secorresponde con el modelo matemático del álgebra de Boole. En efecto:

El conjunto B

Es el conjunto de valores lógicos que puede tomar una proposición lógica, es decir:

B={V, F}

Como en todo conjunto booleano tiene que haber un 0 y un 1, V y F se identifican necesariamente conestos elementos. Como se verá más adelante, F se corresponde con el 0 y V con el 1, según las leyesde la lógica.

En el ámbito de la electrónica se habla de los valores lógicos 0 y 1, lo que es un abuso del lenguajepor ser una mezcla de términos, ya que 0 y 1 son valores booleanos, pero esto no supone ningún pro-blema ni debe inducir a confusión.

Variables booleanas

Son las proposiciones o variables lógicas, que representan o toman uno de los dos valores lógicos V (1)o F (0).

En el ámbito de la electrónica, los términos variable booleana y variable lógica se emplean indistin-tamente.

11 Lógica digital y microprogramable

32

¬

L gica digital y prog_ U 01-final.qxp 28/02/2007 18:43 PÆgina 32

Page 33: Logica Digital y Microprogramable

Las operaciones

Suma booleana: se corresponde con la conectiva o, de modo que se puede establecer lasiguiente equivalencia:

p o q p + q

Producto booleano: se corresponde con la conectiva y, de modo que se puede establecer lasiguiente equivalencia:

p y q p · q

En el ámbito de la electrónica, los términos producto lógico, suma lógica, y producto booleano y sumabooleana, se emplean indistintamente.

El orden de precedencia en las operaciones booleanas es el mismo que en sus equivalentes lógicos, yel mismo que en la aritmética, por lo que no debe suponer ningún problema aplicarlo correctamente:tiene mayor precedencia la negación, seguida del producto y finalmente la suma. Los paréntesis sir-ven para alterar este orden.

Los postulados

Según las leyes de la lógica y con la ayuda de las tablas de verdad no es difícil comprobar que se cum-plen. En efecto:

Propiedad conmutativa:

Por la ley de la conectiva o

p + q ↔ p o q = q o p ↔ q + p

Por la ley de la conectiva y

p · q ↔ p y q = q y p ↔ q · p

Propiedad distributiva:

Según las leyes de la lógica se cumple la igualdad

p · (q + r) ↔ p y (q o r) = (p y q) o (p y r) ↔ (p · q) + (p · r)

Según las leyes de la lógica se cumple la igualdad

p + (q · r) ↔ p o (q y r) = (p o q) y (p o r) ↔ (p + q) · (p + r)

Elementos neutros: los neutros para la suma y el producto son respectivamente 0 ↔ F y 1 V, ya que:

p + 0 ↔ p o F = p p · 1 p y V = p

Axioma del complemento: existe complemento para cualquier elemento de B, que en estecaso sólo tiene dos elementos, de modo que:

0 = 1 ya que: 0 + 0 = 0 + 1 ↔ F o V = V ↔ 1

y: 0 · 0 = 0 · 1 ↔ F y V = F ↔ 0

1 = 0 ya que: 1 + 1 = 1 + 0 ↔ V o F = V ↔ 1

y: 1 · 1 = 1 · 0 ↔ V y F = F ↔ 0

De lo anterior se puede relacionar la existencia del complemento booleano con la conectiva lógi-ca no, de forma que el resultado de aplicar la conectiva es el complemento booleano. Es decir, sonequivalentes:

no p ↔ p

En el ámbito de la electrónica, el concepto de la conectiva no o equivalentemente del complemen-to booleano, se denomina habitualmente complemento lógico, lo que de nuevo es una mezcla detérminos, pero que no supone ningún problema.

Como se acaba de ver, la lógica de proposiciones es un álgebra de Boole. En adelante, todas lasmanipulaciones de conceptos lógicos se harán a partir de las herramientas que proporciona el álge-

33

11Introducción a la electrónica digital

L gica digital y prog_ U 01-final.qxp 28/02/2007 18:44 PÆgina 33

Page 34: Logica Digital y Microprogramable

bra de Boole, que de cara a la electrónica digital son más adecuadas que las del lenguaje formal dela lógica.

2.3.2 Teoremas del álgebra de BooleA partir de los postulados del álgebra de Boole, se pueden deducir una serie de relaciones entre varia-bles booleanas que resultan de interés por su aplicación a la manipulación de expresiones lógicas,sobre todo de cara a su simplificación. Simplificar una expresión es obtener otra expresión equivalen-te pero formalmente menos compleja.

A continuación se da una enumeración de algunas de estas relaciones booleanas a modo de teoremas.No se incluyen las demostraciones de los teoremas ya que escapan a los objetivos del libro.

Teorema 1. Teorema de los elementos dominantes

a + 1 = 1

a · 0 = 0

Teorema 2. Teorema de idempotencia

a + a = a

a · a = a

Teorema 3. Ley involutiva o de la doble negación

a = a

Teorema 4. Ley de absorción

a · (a + b) = a

a + (a · b) = a

Teorema 5. Segunda ley de la absorción

a · (a + b) = a · b

a + (a · b) = a + b

Teorema 6. Propiedad asociativa

(a + b) + c = a + (b + c) = a + b + c

(a · b) · c = a · (b · c) = a · b · c

Teorema 7. Leyes de De Morgan

a + b = a · b generalizando (a1 + a2 +...+an) = a1 · a2 ·...·an

a · b = a + b generalizando (a1 · a2 ·...·an) = a1 + a2 +...+an

2.3.3 Ejercicios de simplificación de expresiones lógicasLos postulados y teoremas del álgebra de Boole establecen una serie de relaciones entre variables boo-leanas que resultan de interés por su aplicación a la manipulación de expresiones lógicas, sobre todode cara su simplificación.

La tarea de la simplificación empleando los teoremas del álgebra de Boole no tiene una regla fija, ysegún los teoremas que se apliquen se puede llegar a una u otra expresión. Alcanzar la más simplifi-cada es cuestión de experiencia en la elección del teorema más adecuado para aplicar en cada caso,además de que se puede llegar de diferentes formas al mismo resultado.

Ejemplo resuelto 1

Simplificar la siguiente expresión:

a · b · c + a · b · c

11 Lógica digital y microprogramable

34

L gica digital y prog_ U 01-final.qxp 28/02/2007 18:44 PÆgina 34

Page 35: Logica Digital y Microprogramable

Solución

Sacando factor común a·b en ambos términos:

a · b · c + a · b · c = a · b · (c + c )

Aplicando el axioma del complemento al paréntesis:

a · b · (c + c ) = a · b · 1 = a · b

Ejemplo resuelto 2

Simplificar la siguiente expresión:

a · b · c + a · b · c + a · b · c + a

Solución

Al primer y segundo términos se les puede aplicar el resultado del ejemplo 1, y aplicando la leyde absorción a los tercer y cuarto términos se tiene:

[a · b · c + a · b · c ] = a · b (a · b · c + a ) = a

[a · b · c + a · b · c ] = (a · b · c + a ) = a · b + a

Aplicando la segunda ley de absorción:

a · b + a = a + b

2.3.4 Funciones booleanasMuchas de las leyes y métodos deductivos de la lógica, que no se expusieron en la presentación de lalógica de proposiciones, se pueden interpretar más fácilmente empleando el lenguaje del álgebra deBoole. Concretamente, se pueden interpretar haciendo uso de las funciones booleanas, que de nuevo,por abuso del lenguaje, se denominan a veces funciones lógicas en el ámbito de la electrónica, lo cualse debe asumir con naturalidad.

Definición de función lógica o booleana

Matemáticamente, una función booleana f es una aplicación del producto cartesiano de n-ésimo ordende B por sí mismo, en B. Esto se representa como sigue:

f : (BxBx. . .xB) → B

(a1, a2, . . . , an) ⎯⎯→ f (a1, a2, . . . , an) ∈ B

Dicho de otro modo, una función lógica o booleana es la forma matemática de representar una rela-ción por la que a una proposición se le asigna un valor lógico a partir de los valores lógicos de otra uotras proposiciones.

Por ejemplo, cuando se dice “hay que subir la temperatura si hace frío”, el valor lógico de la proposi-ción “hay que subir la temperatura” depende del valor lógico de la proposición “hace frío”. Si “hacefrío” es verdadero entonces también será cierto que “hay que subir la temperatura”, mientras que si“hace frío” es falso, entonces “hay que subir la temperatura” también es falso.

Elementos de una función

Teniendo en cuenta que, tanto la proposición que depende de otras, como éstas mismas, están todasrepresentadas por variables lógicas, se distinguen en el ámbito de la electrónica digital los siguienteselementos, que suponen a veces un doble uso del mismo término:

Función: además de la aplicación matemática ya definida, la proposición o variable que depen-de de otras se dice que es función de ellas, o simplemente que es la función. Matemáticamentesería la variable dependiente.

Variables: aunque lo sea también la variable dependiente (la función), en este contexto se lla-man variables de la función o simplemente variables las proposiciones o variables lógicas de lasque depende la función. Matemáticamente serían las variables independientes.

35

11Introducción a la electrónica digital

f

L gica digital y prog_ U 01-final.qxp 28/02/2007 18:44 PÆgina 35

Page 36: Logica Digital y Microprogramable

Expresión: la expresión lógica por la que se combinan las variables para asignarle un valor a lafunción es la expresión de la función. En las expresiones aparecerán las variables de la funcióncombinadas por operadores lógicos o booleanos.

Por ejemplo, cuando se dice “hay que abrir el portón si hay coches en la entrada o si pulsan el interrup-tor”, se pueden identificar las siguientes proposiciones, representadas por sendas variables lógicas:

f → hay que abrir el portón

a → hay coches en la entrada

b → pulsan el interruptor

Del enunciado se deduce que el valor lógico de f depende de los valores lógicos de a y b, por lo tanto,según se definió anteriormente:

f → función

a, b → variables

La dependencia de f con a y b se indica de la forma:

f (a, b) → indica que f depende de a y b

La expresión lógica de la función, por la que se define la dependencia entre f y a y b, será la siguiente:

f (a, b) = a o b → expresión lógica

O empleando el lenguaje del álgebra de Boole, la expresión booleana será:

f (a, b) = a + b → expresión booleana

En lo que sigue, en general ya sólo se empleará esta última forma de expresión booleana abandonan-do la forma lógica, aunque por abuso del lenguaje se le llame también expresión lógica a la expresiónbooleana.

Tabla de verdad de una función

Dado que una función viene definida por una expresión lógica, también se puede representar por latabla de verdad correspondiente a la expresión. De este modo, la función del anterior ejemplo del con-trol de un portón: f(a,b)=a+b, se puede poner como sigue:

a b f=a+b

0 0 00 1 11 0 11 1 1

Como en este ejemplo, de ahora en adelante, en las tablas de verdad se van a emplear valores boole-anos (1 y 0) abandonando en la notación los valores lógicos (V y F).

Combinaciones de la tabla de verdad

El hecho de emplear unos y ceros permite imaginar que las diferentes combinaciones de valoreslógicos de las n variables de una función, forman un número en binario de n bits. Puesto que enla tabla de verdad aparecen todas las posibles combinaciones de valores de las n variables, tam-bién aparecerán todos los números binarios imaginados de n bits.

El método de interpretar las combinaciones de valores lógicos como números binarios permiteobtener fácilmente todas las posibles combinaciones que hay que recoger en una tabla de ver-dad. Para ello no hay más que disponer las variables en un determinado orden, y contar en bina-rio desde todos los bits a 0 hasta todos a 1, imaginando que cada variable representa un bit.

Entradas de la tabla de verdad

La aplicación de este método permite además identificar fácilmente cada una de las filas de latabla de verdad. A cada una de estas filas se le llama entrada de la tabla, y se identifica por

11 Lógica digital y microprogramable

36

L gica digital y prog_ U 01-final.qxp 28/02/2007 18:44 PÆgina 36

Page 37: Logica Digital y Microprogramable

medio del número binario asociado a ella, o más cómodamente, por su equivalente en decimalo hexadecimal. Así por ejemplo, por entrada 2 de la tabla del ejemplo anterior se entiende la filaque tiene la combinación a=1 y b=0, ya que 102=210.

Tipos de funciones

Funciones primitivasLas funciones lógicas más sencillas que se pueden definir se llaman funciones primitivas y se cons-truyen a partir de las conectivas lógicas. De este modo se puede hablar de la función y, de la fun-ción o y de la función no. Además de éstas, también se puede definir la función identidad, que esuna función igual a la única variable de la que depende: f (a)=a.

En el ámbito de la electrónica digital es costumbre llamar a las funciones primitivas por su nom-bre en inglés. En la tabla siguiente se muestran las funciones primitivas, su nombre en inglés entreparéntesis y la tabla de verdad que define su funcionamiento.

Funciones elementalesSon funciones que se definen a partir de relaciones lógicas sencillas que aparecen con frecuenciaen el ámbito de la electrónica digital. Una de ellas es por ejemplo la función o exclusivo o sumaexclusiva, que representa la situación lógica en la que la función es verdadera cuando exclusiva-mente sólo una de las dos variables de las que depende es verdadera, y falsa cuando las dos varia-bles son falsas o las dos son verdaderas.

Esta función refleja situaciones como por ejemplo la siguiente: en un cajero automático, “el pagoes correcto si se entrega un billete de 10€ o dos de 5€”. Las posibles situaciones son: si no se entre-ga ningún billete (caso 1 de la tabla) el pago no es correcto. Si sólo se entrega un billete de 10€(caso 2) el pago sí es correcto. Si se entregan dos billetes de 5€ (caso 3) el pago también es correc-to. Finalmente, si se entrega un billete de 10€ y también se entregan dos billetes de 5€ (caso 4),en total se entregan 20€ por lo que el pago no es correcto, ya que sólo se debían de entregar 10€.

se entrega un billete de 10€ se entregan dos billetes de 5€ el pago es correcto

caso 1 0 0 0caso 2 0 1 1caso 3 1 0 1caso 4 1 1 0

La función lógica o exclusivo o suma exclusiva tiene su propio signo u operador, que para el álge-bra de Boole es el siguiente:

a o exclusivo b a ⊕ b

⊕ → suma exclusiva

Las siguientes equivalencias pueden ser útiles para hacer simplificaciones:

a ⊕ b = a · b + a · b

a ⊕ b = a · b + a · b

Otras funciones elementales se definen a partir de las funciones primitivas combinadas con el ope-rador de la negación, de modo que se obtienen las funciones y negado, o negado, etc.

37

11Introducción a la electrónica digital

funciones primitivasfunción identidad negación (NOT) suma o o (OR) producto o y (AND)

a f =a a f =a a b f =a+b a b f =a·b

0 0 0 1 0 0 0 0 0 0

0 1 1 0 1 0

1 1 1 0 1 0 1 1 0 0

1 1 1 1 1 1

L gica digital y prog_ U 01-final.qxp 28/02/2007 18:44 PÆgina 37

Page 38: Logica Digital y Microprogramable

En el ámbito de la electrónica digital también es costumbre llamar a las funciones elementales porsu nombre en inglés. En la tabla siguiente se muestran las funciones elementales, su nombre eninglés entre paréntesis y la tabla de verdad que define su funcionamiento.

Funciones compuestasSon funciones que definen relaciones más complejas que las primitivas y las elementales, y estánformadas por combinación de funciones primitivas o elementales, por ejemplo f (a,b,c ) =a ⊕ b · c.

2.3.5 Ejercicios de identificación de funciones lógicasUna función lógica es la forma matemática de representar una relación por la que a una proposiciónse le asigna un valor lógico a partir de los valores lógicos de otra u otras proposiciones.

En el diseño de sistemas electrónicos digitales, el primer paso siempre consiste en identificar la fun-ción o funciones lógicas que se definen a partir del enunciado que describe el sistema a diseñar. En laidentificación de las funciones se seguirán los siguientes pasos:

Identificar la función.

Identificar las variables de la función.

Identificar la relación lógica que define la expresión de la función o bien su tabla de verdad.

Ejemplo resuelto 1

Identificar la función y las variables que se definen en el siguiente enunciado, y determinar su expre-sión o tabla de verdad:

"Un jurado formado por tres miembros emite un fallo favorable o desfavorable sobre cierta cuestión. Elfallo emitido se hace por mayoría de los votos emitidos por cada uno de sus miembros".

Solución

En este caso las funciones y las variables no se encuentran explícitamente en el enunciado, sino quehay que interpretarlo como sigue (también son posibles otras interpretaciones):

Función: la única proposición que se puede encontrar que depende de otras es el fallo emitidopor el jurado, ya que depende de lo que vota cada uno de sus miembros. Por lo tanto, la funciónse puede enunciar como sigue:

f → el fallo emitido es favorable

Este enunciado puede ser verdadero o falso según los votos de los miembros del jurado.

Variables: la función anterior depende de los votos de los tres miembros del jurado, luego habrátres variables, que pueden ser enunciadas como sigue:

a → el primer miembro votó favorablemente

b → el segundo miembro votó favorablemente

c → el tercer miembro votó favorablemente

las tres variables pueden ser verdaderas o falsas cada una de ellas, según haya sido realmenteel voto de los miembros del jurado.

11 Lógica digital y microprogramable

38

funciones elementalessuma o o exclusivo (XOR) o negado (NOR) y negado (NAND) suma o o exclusivo negado

(XNOR)

a b f = a ⊕ b a b f = a + b a b f = a · b a b f = a ⊕ b0 0 0 0 0 1 0 0 1 0 0 1

0 1 1 0 1 0 0 1 1 0 1 0

1 0 1 1 0 0 1 0 1 1 0 0

1 1 0 1 1 0 1 1 0 1 1 1

L gica digital y prog_ U 01-final.qxp 28/02/2007 18:44 PÆgina 38

Page 39: Logica Digital y Microprogramable

(Observación: téngase en cuenta que cabrían otras interpretaciones, como por ejemplo tomarcomo función "el fallo es desfavorable", o como variable "el primer miembro votó desfavorable-mente", que también serán verdaderas o falsas. En cualquier caso, la interpretación queda a laelección de cada uno, y sólo será necesario mantener el criterio a lo largo de toda la resolución.)

Relación lógica: en este caso, encontrar la expresión que relaciona la función con las variablesno es sencillo a partir del enunciado. Sin embargo, sí es posible hacer una tabla de verdad parala función, planteando todos los casos posibles de votos del jurado, y el valor de la función (falloemitido) para cada uno de los casos. Puesto que son tres miembros, y cada uno sólo tiene dosopciones de voto: favorable (variable=1 por ser verdadera) o desfavorable (variable=0 por serfalsa), las posibles combinaciones de votos son ocho. Para obtener las ocho combinaciones seseguirá el método de generar las entradas de la tabla de verdad contando en binario con tres bitssegún se muestra en la siguiente tabla:

Ejemplo resuelto 2

La alarma de una casa dispone de dos sensores V1 y V2 en sendas ventanas, y un sensor P en unapuerta. Los sensores se activan cuando se abren las ventanas o la puerta respectivamente. Además, laalarma dispone de un terminal de control A que sirve para poner la alarma en estado activo de vigi-lancia o bien desactivarla. El sistema presenta un terminal de salida S para indicar situaciones de esta-do de alarma, que se deberá activar cuando la puerta o alguna ventana se abran, estando la alarmaen estado activo de vigilancia.

Determinar las funciones, las variables y la relación lógica que las relaciona.

Solución

Función: la única función que hay en el enunciado es el estado del terminal de salida S, quepuede ser activo o no, y que depende del estado de apertura de las ventanas y de la puerta, y desi el sistema está en estado de vigilancia. Si S=1 quiere decir que está activo y por lo tanto haysituación de alarma, y si S=0 significa que no está activo, y por lo tanto no hay estado de alarma.

Variables: las variables de las que depende la función son V1, V2, P y A, es decir, del estado acti-vo o no de los sensores y del estado de vigilancia del sistema. Por ejemplo, si V1=1, el sensor dela ventana está activo y si V1=0 no está activo.

Relación lógica: en este caso se puede deducir la expresión lógica directamente del enunciadodel problema:

S (A,V1,V2,P) = A · (V1 + V2 + P)

2.3.6 Expresiones canónicasDada una función que depende de varias variables, se definen los siguientes conceptos:

Minterm o término canónico producto: es un producto donde aparecen multiplicadas todas lasvariables, directamente o negadas, una y sólo una vez. Por ejemplo, dada una función f (a,b,c,d):

son minterms no son minterms

a · b · c · d a · b · c falta la variable d

a · b · c · d a · c · d falta la variable b

a · b · c · d c · d Faltan las variables a y b

a · b · c · d a · b · b · c · d la variable b aparece dos veces

39

11Introducción a la electrónica digital

entradas a b c f (a,b,c)

0 0 0 0 0 fallo desfavorable: hubo mayoría absoluta de votos desfavorables1 0 0 1 0 fallo desfavorable: hubo 2 votos desfavorables contra 1 favorable2 0 1 0 0 fallo desfavorable: hubo 2 votos desfavorables contra 1 favorable3 0 1 1 1 fallo favorable: hubo 2 votos favorables contra 1 desfavorable4 1 0 0 0 fallo desfavorable: hubo 2 votos desfavorables contra 1 favorable5 1 0 1 1 fallo favorable: hubo 2 votos favorables contra 1 desfavorable6 1 1 0 1 fallo favorable: hubo 2 votos favorables contra 1 desfavorable7 1 1 1 1 fallo favorable: hubo mayoría absoluta de votos favorables

L gica digital y prog_ U 01-final.qxp 28/02/2007 18:44 PÆgina 39

Page 40: Logica Digital y Microprogramable

Maxterm o término canónico suma: es una suma donde aparecen todas las variables, directa-mente o negadas, una y sólo una vez. Por ejemplo, dada una función f(a,b,c,d):

son minterms no son minterms

a + b + c + d a + b + c falta la variable d

a + b + c + d a + c + d falta la variable b

a + b + c + d c + d Faltan las variables a y b

a + b + c + d a + b + b + c + d la variable b aparece dos veces

Expresiones canónicas: de entre todas las expresiones equivalentes que puede tener una fun-ción, siempre se pueden encontrar un par de ellas que se llaman expresiones canónicas y quetienen las siguientes características:

Expresión canónica suma: está formada únicamente por suma de minterms. Por ejemplo:

f (a,b,c,d) = a·b·c·d + a·b·c·d + a·b·c·d + a·b·c·d

Expresión canónica producto: está formada únicamente por producto de maxterms. Porejemplo:

f (x ,y ,z) = (x ·y ·z ) + (x ·y ·z ) + (x ·y ·z)

Empleo de las expresiones canónicas

La forma canónica de una función es de interés en ciertos casos como los que se indican a continuación:

Uso de dispositivos configurables: como se verá más adelante en la unidad correspondiente,cuando se trabaje con dispositivos electrónicos digitales configurables tales como PLD’s, PAL,GAL, etc., es conveniente expresar las funciones en su forma canónica.

Obtención de la tabla de verdad: dada una función en una forma canónica, es inmediato obte-ner la tabla de verdad sin necesidad de evaluar las expresiones lógicas para cada una de lasentradas de la tabla.

El método se basa en interpretar cada minterm (o maxterm según la expresión canónica sea sumao producto) como un número binario, que reflejará una entrada de la tabla:

Para los minterms: suponer que las variables sin negar representan al 1 y las negadas al 0.Por ejemplo: (a·b·c) se refiere a la entrada 1012=510.

Para los maxterms: suponer que las variables sin negar representan al 0 y las negadas al 1.Por ejemplo: (a+b+c) se refiere a la entrada 0102=210.

La tabla se forma asignando los siguientes valores a la función, según cuál sea su expresión ca-nónica:

Expresión suma: valor 1 en las entradas referidas por los minterms, y valor 0 en las demásentradas.

Expresión producto: valor 0 en las entradas referidas por los maxterms, y valor 1 en lasdemás entradas.

Expresión reducida de la función: en relación con lo anterior, existe una notación que permiterepresentar abreviadamente la expresión de una función cuando viene dada en forma canónica:

Expresión canónica suma: se indica con el símbolo del operador sumatorio: Σ

Expresión canónica producto: se indica con el símbolo del operador productorio: Π

Al pie del operador se indicará el número de variables de las que depende la función.

En el interior del operador se disponen los números en decimal o hexadecimal de las entra-das de la tabla referidas por los minterms o maxterms según el caso. Por ejemplo:

f (a,b,c,d ) = a · b · c · d + a · b · c · d + a · b · c · d + a · b · c · d + a · b · c · d = Σ4 (3,4,7,A,D )

g (x,y,z ) = (x + y + z ) · (x + y + z ) · (x + y + z ) = Π3 (6,3,0)

11 Lógica digital y microprogramable

40

L gica digital y prog_ U 01-final.qxp 28/02/2007 18:44 PÆgina 40

Page 41: Logica Digital y Microprogramable

Obtención de la expresión canónica

A partir de la tabla de verdad: el método es el inverso al expuesto en el apartado anterior parala obtención de la tabla a partir de la expresión canónica.

Expresión suma: obtener los minterms a partir de las entradas en las que la función vale 1.

Expresión producto: obtener los maxterms a partir de las entradas en las que la función vale 0.

A partir de una expresión no canónica: el procedimiento consta de dos pasos:

Mediante el empleo de los teoremas del álgebra de Boole, desarrollar la expresión no canó-nica hasta obtener una expresión formada sólo por suma de productos (no canónicos posi-blemente) o producto de sumas (no canónicas posiblemente) según lo deseado.

Desarrollar cada término obtenido, hasta formar un término canónico. Para ello, añadir lasvariables que le faltan para ser canónico empleando el postulado del complemento.

2.3.7 Ejercicios con las expresiones canónicas de las funciones

Ejemplo resuelto 1

Obtener la tabla de verdad de la siguiente función, y expresarla en notación reducida:

Solución

Notación reducida:

f (a,b,c,d ) = Σ4 (1,3,4,9,A,F )

Tabla de verdad:

Asignar el valor 1 a las entradas de la tabla determinadas por los minterms:

entradas a b c d f (a,b,c,d)

0 0 0 0 0→ 1 0 0 0 1 1

2 0 0 1 0→ 3 0 0 1 1 1→ 4 0 1 0 0 1

5 0 1 0 16 0 1 1 07 0 1 1 18 1 0 0 0

→ 9 1 0 0 1 1→ A 1 0 1 0 1

B 1 0 1 1C 1 1 0 0D 1 1 0 1E 1 1 1 0

→ F 1 1 1 1 1

Completar la tabla con 0 en las demás entradas:

41

11Introducción a la electrónica digital

f (a,b,c,d ) = a · b · c · d + a · b · c · d + a · b · c · d + a · b · c · d + a · b · c · d + a · b · c · d

f (a,b,c,d ) = a · b · c · d + a · b · c · d + a · b · c · d + a · b · c · d + a · b · c · d + a · b · c · d

0001 0011 0100 1001 1010 1111

1 3 4 9 A F

cambiar variables por 1 y negadas por 0

por ser expresión suma

L gica digital y prog_ U 01-final.qxp 28/02/2007 18:44 PÆgina 41

Page 42: Logica Digital y Microprogramable

entradas a b c d f (a,b,c,d)

0 0 0 0 0 01 0 0 0 1 12 0 0 1 0 03 0 0 1 1 14 0 1 0 0 15 0 1 0 1 06 0 1 1 0 07 0 1 1 1 08 1 0 0 0 09 1 0 0 1 1A 1 0 1 0 1B 1 0 1 1 0C 1 1 0 0 0D 1 1 0 1 0E 1 1 1 0 0F 1 1 1 1 1

Ejemplo resuelto 2

Obtener la expresión canónica suma y producto de la función dada por la tabla de verdad del ejerci-cio 1.10 del apartado de autoevaluación de este tema.

Solución

La tabla de verdad es la siguiente, a partir de la que se pueden obtener los minterms (los 1's) o losmaxterms (los 0's):

a b c d f(a,b,c,d) minterms maxterms

0 0 0 0 0 a + b + c + d0 0 0 1 0 a + b + c + d0 0 1 0 0 a + b + c + d0 0 1 1 0 a + b + c + d0 1 0 0 0 a + b + c + d0 1 0 1 1 a · b · c · d0 1 1 0 1 a · b · c · d0 1 1 1 1 a · b · c · d1 0 0 0 0 a + b + c + d1 0 0 1 0 a + b + c + d1 0 1 0 0 a + b + c + d1 0 1 1 1 a · b · c · d1 1 0 0 1 a · b · c · d1 1 0 1 1 a · b · c · d1 1 1 0 1 a · b · c · d1 1 1 1 1 a · b · c · d

Expresión canónica suma:

f (a,b,c,d ) = Σ4(5,6,7,11,12,13,14,15)=

= a · b · c · d + a · b · c · d + a · b · c · d + a · b · c · d + a · b · c · d + a · b · c · d + a · b · c · d + a · b · c · d

Expresión canónica producto:

f (a,b,c,d ) = Π4(0,1,2,3,4,8,9,10)=

= (a + b + c + d ) · (a + b + c + d ) · (a + b + c + d ) · (a + b + c + d ) ·(a + b + c + d ) · (a + b + c + d ) · (a + b + c + d ) · (a + b + c + d )

Ejemplo resuelto 3Obtener una expresión canónica de la siguiente función:

f (a,b,c,) = a · b + a · b +a · c + a · c

11 Lógica digital y microprogramable

42

L gica digital y prog_ U 01-final.qxp 28/02/2007 18:44 PÆgina 42

Page 43: Logica Digital y Microprogramable

Solución

En este caso, la función ya casi está expresada como suma de productos no canónicos. Aplicando DeMorgan al tercer término, ya está completamente desarrollada:

f (a,b,c,) = a · b + a · b +a · c + a · c = a · b + a · b +a + c + a · c

Para que cada término sea canónico se añadirá la variable que falta del modo siguiente:

f (a,b,c,) = a · b + a · b + a + c + a · c

falta c falta c faltan b y c faltan a y b falta b

f (a,b,c,) = a · b · (c + c )+ a · b · (c + c ) + a · (b + b ) · (c + c ) + c · (a + a ) · (b + b ) + a · c · (b+ b )

Obsérvese que multiplicar por términos del tipo (x+x ) no cambia nada ya que por el postulado del com-plemento es igual que multiplicar por 1, lo que no altera los valores según el postulado de los neutros.

Aplicando la distributiva a cada paréntesis se obtienen términos canónicos:

f (a,b,c,) = a · b · (c + c )+ a · b · (c + c ) + a · (b + b ) · (c + c ) + c · (a + a ) · (b + b ) + a · c · (b+ b ) =

= a · b · c + a · b · c + a · b · c + a · b · c + a · b · c + a · b · c + a · b · c + a · b · c + c · a· b + c · a · b +

c · a · b + c · a· b + a· c · b + a · c · b

Finalmente, aplicando la ley de idempotencia (x+x=x) para eliminar los términos repetidos, se obtie-ne la expresión canónica:

f (a,b,c,d ) = a · b · c + a · b · c + a · b · c + a · b · c + a · b · c + a · b · c + a · b · c = Σ3(0,1,2,3,4,6,7)

2.4 Aplicación a los procesadores digitales electrónicos

Como ya se expuso en su momento, un sistema de control trata de generar ciertas actuaciones a par-tir de ciertas observaciones y ciertas condiciones de funcionamiento. Por ejemplo, el control del portónde un aparcamiento trata de generar una actuación (la apertura del portón) a partir de la observaciónde la presencia de coches y de la pulsación de un interruptor. Además, estas observaciones se combi-nan con una condición de funcionamiento como puede ser que alguna de las dos observaciones dé unresultado afirmativo. Esto se resume diciendo que “hay que abrir el portón si hay coches en la entra-da o pulsan el interruptor”.

Como ya se pudo intuir a partir de los ejercicios desarrollados hasta el momento, los sistemas de con-trol más sencillos, como el ejemplo del portón, se pueden representar mediante funciones lógicas, esta-bleciendo las siguientes relaciones:

Función: es el elemento a controlar.

Variables: son las observaciones a partir de las que se controlará el sistema.

Expresión: son las condiciones de funcionamiento.

El proceso de control queda representado por una función lógica. En el ejemplo del portón, haciendola siguiente definición de variables:

P: el Portón debe abrirse → función

C: hay Coches en la entrada → variable

I: pulsan el Interruptor → variable

la función lógica que define el proceso de control es:

P (C,I) = C + I

Esta función lógica está presente en la mente del controlador del portón cuando se trata de un serhumano. En el caso de querer sustituirlo por un sistema electrónico digital, se deberán de llevar a cabolos siguientes procesos:

43

11Introducción a la electrónica digital

L gica digital y prog_ U 01-final.qxp 28/02/2007 18:44 PÆgina 43

Page 44: Logica Digital y Microprogramable

11 Lógica digital y microprogramable

44

Disponer de sensores que proporcionen las señales eléctricas que representen a los valores lógi-cos de las variables C y I. Es decir, un sensor dará por ejemplo 5V cuando haya coches en la entra-da (C=1) y 0V cuando sea falso que los haya (C=0). Otro sensor podrá dar 5V cuando pulsen elinterruptor (I=1) y 0V cuando sea falso que lo pulsen (I=0). Las señales obtenidas pueden deno-minarse como señal C y señal I respectivamente, para mejor identificar su sentido.

Disponer de un motor actuador que mueva la puerta, controlado por una línea de tensión. Si enla línea de control se aplica una señal de por ejemplo 5V al motor, la puerta se abrirá, y si se apli-can 0V se cerrará (porque tira de ella un resorte, por ejemplo). La señal que controla la puertapuede denominarse señal P, de modo que se identifique con la función de control P.

Disponer de un circuito electrónico que a partir de las señales C y I genere la señal P con los valo-res adecuados según la relación que define la función lógica de control. En este caso, el circuitoelectrónico deberá de funcionar como la función lógica suma o OR. Tal circuito existe, se llamapuerta OR y funciona según la tabla de la función OR:

valor de la señal C valor de la señal I valor generado para la señal P

0V 0V 0V0V 5V 5V5V 0V 5V5V 5V 5V

donde el 1 está representado por la tensión de 5V y el 0 por la de 0V.

En general, cuando un sistema decontrol puede estar representadopor una función lógica, la electró-nica digital proporciona los circui-tos necesarios para implementarel comportamiento de esa función,a partir de las señales eléctricasque representan los valores de lasvariables lógicas. El proceso de

diseño, dados los conocimientos adquiridos hasta el momento, es el siguiente:

A partir del enunciado o especificaciones del sistema de control, identificar las variables y lasfunciones.

A partir del enunciado o especificaciones, construir la tabla de verdad.

A partir de la tabla de verdad, obtener una expresión canónica de la función.

A partir de la expresión canónica, obtener una expresión simplificada, empleando los teoremasdel álgebra de Boole.

Una vez obtenida la función simplificada que define el sistema de control, implementarla circui-talmente con las puertas y circuitos que proporciona la electrónica digital.

En las siguientes unidades se describirán otras técnicas que simplifican el proceso de diseño descritoanteriormente.

Obsérvese que los valores lógicos de las variables no dependen del propio sistema, sino que vienendados por el entorno exterior y por lo tanto, en principio, pueden tomar cualquier valor. Por otro lado,los valores que debe tomar la función son los que tiene que generar el sistema de control, y por lo tantoes responsabilidad del sistema que la función tome los valores adecuados en todas las circunstancias.

Tampoco hay que olvidar que detrás de cada señal digital hay una variable lógica y por lo tanto unaproposición, aunque a veces sea difícil de identificar o enunciar en el lenguaje hablado habitual.

En las siguientes unidades se estudiarán los diferentes circuitos electrónicos digitales que permiten laimplementación de funciones lógicas, y permiten por lo tanto el desarrollo de controladores electróni-cos digitales. También se estudiarán diferentes métodos para la obtención de las funciones lógicas quedefinen los sistemas de control.

L gica digital y prog_ U 01-final.qxp 28/02/2007 18:44 PÆgina 44

Page 45: Logica Digital y Microprogramable

Lógica positiva y negativa

En el anterior ejemplo del portón, el valor lógico 1 (la verdad) estaba representado por la tensión de5V y el valor lógico 0 (la falsedad) estaba representado por la tensión de 0V. Esta relación es arbitra-ria, ya que de hecho, el problema se podría haber resuelto haciendo la asignación contraria, es decir,el 1 representado por 0V y el 0 por 5V; aunque el circuito resultante sería diferente, haría la misma fun-ción de control. El criterio queda a la elección del diseñador.

La electrónica digital siempre trabaja con dos niveles distintos de tensión para representar el 0 y el 1lógicos. Los valores concretos de tensión dependen de la tecnología con que se trabaje. Según el dise-ñador elija, arbitrariamente por la conveniencia en cada caso, la relación entre los valores lógicos y losniveles de tensión, se hablará de dos tipos de lógica en la electrónica digital:

lógica positiva: el 1 está representado por el nivel mayor de tensión y el 0 por el nivel menor detensión.

lógica negativa: el 0 está representado por el nivel mayor de tensión y el 1 por el nivel menor detensión.

33..AutoevaluaciónEjercicio 1.1

Pasar los siguientes números hexadecimales a decimal y binario: E8, D1A, FE0, CACA, CAFE, DE5E0.

Ejercicio 1.2

Pasar los siguientes números decimales a hexadecimal: 256, 3687, 12584, 698574, 12234842.

Ejercicio 1.3

Pasar los siguientes números binarios a hexadecimal: 1100110, 1001111101, 110101010101,111100000001110, 111110001101010100011110.

Ejercicio 1.4

Pasar los siguientes números octales a decimal y binario: 2654, 5752, 25467, 2101445.

Ejercicio 1.5

Pasar los siguientes números decimales a octal: 256, 3687, 12584, 698574, 12234842.

Ejercicio 1.6

Realizar los cambios de base de los ejercicios anteriores empleando la calculadora de Windows.

Ejercicio 1.7

Pasar los siguientes números decimales a BCD: 38, 568, 785, 1111, 5566.

Ejercicio 1.8

Pasar los siguientes números BCD a decimal: 1100110, 10110010110, 111100110000111,10000000110000001.

Ejercicio 1.9

Simplificar la siguiente expresión:

( a + b + c ) · ( a + b + c ) · ( a + b + c ) · ( a + c ) · ( a + c )

45

11Introducción a la electrónica digital

L gica digital y prog_ U 01-final.qxp 28/02/2007 18:44 PÆgina 45

Page 46: Logica Digital y Microprogramable

Ejercicio 1.10

Identificar la función y las variables que se definen en el siguiente enunciado, y determinar su expre-sión o tabla de verdad:

"Una familia de cuatro miembros: Andrés, Beatriz, Carlos y Diana, votan para ir a cenar a uno de dosposibles restaurantes: Casa Pepe o Casa Juan. El restaurante elegido es el vota-do por mayoría. En casode empate, el restaurante elegido será el que votó Beatriz".

Ejercicio 1.11

Obtener la tabla de verdad de la siguiente función, y expresarla en notación reducida:

f ( a , b ) = a · b + a · b

Ejercicio 1.12

Obtener una expresión canónica de la siguiente función:

f (a,b,c ) = a · (b +c ) + c

Ejercicio 1.13

Obtener una expresión canónica de la siguiente función:

f (a,b) = a ⊕ b

Nota: la solución a todos los ejercicios se encontrarán en el disco adjunto al libro

11 Lógica digital y microprogramable

46

L gica digital y prog_ U 01-final.qxp 28/02/2007 18:44 PÆgina 46