AUSDEHNUNG AUF 32 DIGITALEN AUSGABEN NEBEN DEM PARALLELEN schnittstelle

 

 

Ausdehnung auf 32 digitalen Ausgaben für den parallelen schnittstelle

Der übliche parallele schnittstelle hat nur 12 digitale Ausgabe (8 Statusregister und 4 des Kontrollregisters). Einige Anträge können mehr von den 12 Ausgaben brauchen. In diesem Fall ist es möglich, die Hinweisnummer des Urhebers mittels (32) einer einfachen Schaltung auf 4 elektronische Bestandteile wie den Puffer (das Ersetzen) 74LS244 basierend zu erweitern. Die Daten werden (1 Byte mittels der Registratur der Daten) zu 4buffers geschickt und es wird dadurch ausgewählt, wie sie gehen müssen. Für dieses die vier Stückchen sind gebrauchtes Kontrollregister, den Puffer auszuwählen, der gewünscht wird.

Beschreibung des Puffers 74LS244

Abb. Der Puffer 74LS244

 

Hinweise

Eingänge Ausgänge

1A1 Eingang 1 1V1 Ausgang 1

1A2 Eingang 2 1V2 Ausgang 2

1A3 Eingang 3 1V3 Ausgang 3

1A4 Eingang 4 1V4 Ausgang 4

2A1 Eingang 5 2V1 Ausgang 5

2A2 Eingang 6 2V2 Ausgang 6

2A3 Eingang 7 2V3 Ausgang 7

2A4 Eingang 8 2V4 Ausgang 8

 

Fütterung und Bedienung

1 Auswahl von knabbern Sie 1A. (um mit niedrigem Niveau auszuwählen)

2 Auswahl von knabbern Sie 2A. (um mit niedrigem Niveau auszuwählen)

Vcc 5 Volt

Gnd

Bedienung

74LS244 werden um zwei Gruppen von 4 Stückchen gebildet. Wenn eine Gruppe ausgewählt wird, werden die Stückchen, die im Eingang sind, übertragen, wenn sie herauskommen. Bestandteilauswahl wird durch Kontrollregister getroffen. Die Nadel des Kontrollregisters, die beide mit zählenden Stückchen verbunden werden müssen, damit der Transfer 8 in 8 Stückchen ist. In der Figur, die sie danach ist, zeigen Sie das

vollständig. Schaltungsverbindungen

Abb. Verbindung schlug von 74LS244 vor

 

 

Programmierung

/* Definimos las-Variablen */

Stärkerer es un-arreglo [1..4] de tipo-Byte

i de tipo entero

dir_base, dir_control de tipo Wort

procedimiento inicializar

inicio

obtener dir_base del puerto paralelo

calcular: dir_control=dir_base+2

para i=1 hasta 4 hacer-Puffer [i] = 0

Flosse

función dos_a_la (i de tipo entero) retorna un dato de tipo Byte

definimos las-Variablen:

r, ctd de tipo entero

inicio

r=1

para ctd=1 hasta i hacer r=r*2

dos_a_la=r

Flosse

procedimiento enviar (dir_salida, dato de tipo Byte)

dir_salida puede estar gibt 0 y 31 ein

dato puede ser 0 o 1

inicio

Si (dir_salida > = 0) Y (dir_salida < = 7) entonces

inicio

Si dato=1 entonces-Puffer [1] = Puffer [1] Odos_a_la (dir_salida)

sino-Puffer [1] = Puffer [1] Y KEIN dos_a_la (dir_salida)

/*activar-el Puffer 1*/

schnittstelle [dir_control] = 7 XOR 11 / * 7=0000 0111 recuerde que el74LS244 se activa

legen Sie herein un Tapferkeit bajo (biß en 0).

utilizamos la operacion OR legt 11 herein

para invertir los Stückchen del registro

de kontrolliert*/

/*enviar los datos*/

schnittstelle [dir_base] = Puffer [1]

Flosse

Si (dir_salida > = 8) Y (dir_salida < = 15) entonces

inicio

Si dato=1 entonces-Puffer [2] = Puffer [2] Odos_a_la (dir_salida-8)

sino-Puffer [2] = Puffer [2] Y KEIN dos_a_la (dir_salida-8)

/*activar Puffer 2*/

schnittstelle [dir_control] = 11 XOR 11 / * 11 = 0000 1011*/

/*enviar los datos*/

schnittstelle [dir_base] = Puffer [2]

Flosse

Si (dir_salida > = 16) Y (dir_salida < = 23) entonces

inicio

Si dato=1 entonces-Puffer [3] = Puffer [3] Odos_a_la (dir_salida-8 * 2)

Sino-Puffer [3] = Puffer [3] Y KEIN dos_a_la (dir_salida-8 * 2)

/*activar Puffer 3*/

schnittstelle [dir_control] = 13 XOR 11 / * 13 = 0000 1101*/

/*enviar los datos*/

schnittstelle [dir_base] = Puffer [3]

Flosse

Si (dir_salida > = 24) Y (dir_salida < = 31) entonces

inicio

Si dato=1 entonces-Puffer [4] = Puffer [4] Odos_a_la (dir_salida-8 * 3)

sino-Puffer [4] = Puffer [4] Y KEIN dos_a_la (dir_salida-8 * 3)

/*activar Puffer 4*/

schnittstelle [dir_control]: = 14 XOR 11 / * 14=0000 1110*/

/*enviar los datos*/

schnittstelle [dir_base] = Puffer [4]

Flosse

Flosse

/*Utilización*/

primero se debe llamar al procedimiento inicializar

Luego llamar el procedimiento enviar

Ejemplos:

Si se quiere enviar un 1 ein la salida 24 la llamada será:

Enviar (24,1)

Si se quiere enviar un 0 ein la salida 14 la llamada será:

Enviar (14,0)

Si se quiere enviar un 1 ein las salidas 3, 15 y 27 las llamadas serán:

Enviar (3,1)

Enviar (15,1)

Enviar (27,1)

Si se quiere enviar un 0 ein las salidas 2, 24 y 16 y enviar un 1 ein la salida 25, las llamadas serán:

Enviar (2,0)

Enviar (24,0)

Enviar (16,0)

Enviar (25,1)

/* Flosse */

Um zurückzukommen