![]() |
| |
| ||
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 */