![]() |
| |
| ||
Expansion à 32 sorties numériques pour le port parallèle
Le port standard parallèle a seulement 12 sorties numériques (8 delregistro de l'état et 4 de l'inscription du contrôle). Certaines applications conservent necesitarmás des 12 sorties. Dans ce cas c'est possible de développer le nombre de sorties (32) au moyen d'un circuit simple basé sur 4 composants électroniques comme le plus jaune clair (compensateur) 74LS244. Les données (1 multiplet au moyen de l'inscription de données) sont envoyées aux 4buffers et il est sélectionné pour lequel devrait partir. Pour ce les quatre morceaux contrôlent le delregistro est utilisé pour sélectionner le tampon qui est voulu.
Description du plus jaune clair 74LS244

Fig. Le plus jaune clair 74LS244
Références
Hypnotise des sorties
1A1 Entrée 1 1V1 Sortie 1
1A2 Entrée 2 1V2 Sortie 2
1A3 Entrée 3 1V3 Sortie 3
1A4 Entrée 4 1V4 Sortie 4
2A1 Entrée 5 2V1 Sortie 5
2A2 Entrée 6 2V2 Sortie 6
2A3 Entrée 7 2V3 Sortie 7
2A4 Entrée 8 2V4 Sortie 8
Nourrir et opération
1
grignotement sélection 1A. (sélectionner avec bas niveau)
2
grignotement sélection 2A. (sélectionner avec bas niveau)
Vcc 5 volts
Monde Gnd
La source de 5 volts nourrir ce circuit conserve obtenerdirectamente de la source de pouvoir du PC, ou du port de jeux (voir dealimentación de la source).
Chemin de l'opération
Les 74LS244 sont formés par deux groupes de 4 morceaux. Lorsque vous les seleccionaun groupent, les morceaux qui sont dans l'entrée seront transférés à la sortie. Le seleccióndel composant est emporté à travers l'inscription du contrôle. L'épingle de la libération de l'inscription devrait être reliée aux deux morceaux de la qualification afin que le transfert seade 8 dans 8 morceaux. Dans le chiffre qui les rapports que le delcircuito complet est ensuite qu'ils sont montrés.

Fig. Rapport suggéré des 74LS244
Programmer
L'algorithme suivant autorise à placer en 1 n'importe qui des 32salidas du circuit, sans modifier le reste.
/* Nous définissons les variables */
Le tampon est un arrangement [1..4] de multiplet du type
i de type entier
dir_base, dir_control de mot du type
procédure initialiser
commencer
obtenir dir_base du port parallèle
calculer: dir_control=dir_base+2
pour i=1 jusqu'à 4 faire plus jaune clair [i] = 0
fin
le dos_a_la de la fonction (i de type entier) rend un fait de multiplet du type
nous définissons les variables:
r, ctd de type entier
commencer
r=1
pour ctd=1 jusqu'à ce qu'i faire r=r*2
dos_a_la=r
fin
procédure envoyer (dir_salida, fait de multiplet du type)
les dir_salida peuvent être entre 0 et 31
Je date ce peut être 0 ou 1
commencer
Si (dir_salida & gt; = 0) ET (dir_salida & lt; = 7) alors
commencer
Si dato=1 alors tampon [1] = tampon [1] Odos_a_la (dir_salida)
mais tampon [1] = tampon [1] ET NON dos_a_la (dir_salida)
/*activer le plus jaune clair 1*/
port [dir_control] = 7 XOR 11 / * 7=0000 0111 se souviennent que l'el74LS244 est activé
avec une basse (morceau en 0) valeur.
nous utilisons l'opération OU avec 11
investir les morceaux de l'inscription
de contrôle*/
/*envoyer les données*/
port [dir_base] = tampon [1]
Fin
Si (dir_salida & gt; = 8) ET (dir_salida & lt; = 15) alors
commencer
Si dato=1 alors tampon [2] = tampon [2] Odos_a_la (dir_salida-8)
mais tampon [2] = tampon [2] ET NON dos_a_la (dir_salida-8)
/*activer le tampon 2*/
port [dir_control] = 11 XOR 11 / * 11 = 0000 1011*/
/*envoyer les données*/
port [dir_base] = tampon [2]
Fin
Si (dir_salida & gt; = 16) ET (dir_salida & lt; = 23) alors
commencer
Si dato=1 alors tampon [3] = tampon [3] Odos_a_la (dir_salida-8 * 2)
Mais tampon [3] = tampon [3] ET NON dos_a_la (dir_salida-8 * 2)
/*activer le tampon 3*/
port [dir_control] = 13 XOR 11 / * 13 = 0000 1101*/
/*envoyer les données*/
port [dir_base] = tampon [3]
Fin
Si (dir_salida & gt; = 24) ET (dir_salida & lt; = 31) alors
commencer
Si dato=1 alors tampon [4] = tampon [4] Odos_a_la (dir_salida-8 * 3)
mais tampon [4] = tampon [4] ET NON dos_a_la (dir_salida-8 * 3)
/*activer le tampon 4*/
port [dir_control]: = 14 XOR 11 / * 14=0000 1110*/
/*envoyer les données*/
port [dir_base] = tampon [4]
Fin
Fin
/*Usage*/
en premier il/elle devrait il/elle appeler à la procédure pour initialiser
Alors appeler la procédure pour envoyer
Exemples:
Si on veut envoyer un 1 à la sortie 24 l'appel il sera:
Envoyer (24,1)
Si on veut envoyer un 0 à la sortie 14 l'appel il sera:
Envoyer (14,0)
Si on veut envoyer un 1 aux sorties 3, 15 et 27 les appels seront:
Envoyer (3,1)
Envoyer (15,1)
Envoyer (27,1)
Si on veut envoyer un 0 aux sorties 2, 24 et 16 et pour envoyer un 1 à la sortie 25, les appels seront:
Envoyer (2,0)
Envoyer (24,0)
Envoyer (16,0)
Envoyer (25,1)
/* Fin */
Veut mais l'information a plus qu'assez d'Interfaces d'E/S, ne doutez pas pour communiquer avec pparalelo@hotmail.com