Vous êtes sur la page 1sur 11

UTILISATION DES ENTREES DU PORT PARALLELE

.
Nous allons voir à travers ce texte comment utiliser les 5 entrées logiques
du registre d'état du port parallèle.
Ces entrées vont servir à raccorder les capteurs situés sur le réseau.

En plus des 8 bits de données qui servent à la transmission des caractères


à imprimer, le port parallèle possède aussi des bits qui servent de
communication entre l'imprimante et l'ordinateur . Les informations
échangées sont des informations d'état sous forme de signaux de 5V
continu.
Le registre d'état du port parallèle est à l'adresse $0379.

Le schéma ci-dessous donne le

Ces 5 entrées sont référencées :


broche 10 : Acknoledge
broche 11 : /Busy (lire: busy barre)
broche 12 : Paper End
broche 13 : Select
broche 15 : Error

Correspondance de ces entrées avec le registre d'état :


Dans cet exemple, on veut tester l'état de l'entrée E3.
On utilise un mot (masque) qui contient un 1 à l'endroit de E3 et des 0 dans
toutes les autres cases.
On effectue l'opération ET bit à bit . Le résultat est $20 ou 32 en décimal.
Cela signifie que l'entrée E3 n'est pas actionnée.

Nous allons maintenant transcrire tout cela en Turbo Pascal.

En premier lieu il faut déclarer les variables deE1 à E5. Le format du


registre résultat est de 1 octet, donc on déclare les variables entrées
comme "byte".
On va donc compléter le rubrique Var du programme.

Ensuite , nous allons écrire une procédure de calcul des entrées comme vu
précédemment.
Après compilation et lancement du programme vous devez obtenir une
présentation de ce genre.

La démarche qui a été adoptée pour le port parallèle est applicable pour
toute carte d'entrées et sorties insérée dans un slot de l'ordinateur.
Ces cartes peuvent être au format ISA (devenues rares) ou au format PCI.
En principe , ces cartes sont livrées avec la notice technique qui doit
donner les adresses des différents registres.

Quelques petits programmes sur les entrées et sorties du port parallèle.


REGISTRE DE CONTROLE DU PORT PARALLELE

Le registre de contrôle du port parallèle à l'adresse $037A , permet de


disposer de 4 sorties supplémentaires ,tout ou rien 5V continu. Ce qui
donne un total de 12 sorties et 5 entrées.
La mise en oeuvre de ce registre est basée sur le même principe que le
registre de données (avec un petit plus de subtilités).
Nous aurons à écrire 8 procédures correspondant aux mises à 1 et à 0 de
chaque sortie.

Représentation schématique du registre de contrôle.


IL faut une attention particulière :
/strobe ; /autofeed et /selectInput sont inversés C'est-à-dire que pour
que les sorties S8 , S9 et S11 soient actives , il faut que ces trois signaux
soient au niveau bas (0V).
Pour que la sortie S10 soit active, il faut que Initialize soit au niveau haut
(+5V).
Ces inversions seront traitées en logique programmée dans les procédures
relatives au traitement de ces sorties.

Nous allons associer à chaque signal une sortie de S8 à S11 (suite des
sorties de S0 à S7 du registre de données).

Correspondance entre le registre d'état et le brochage du connecteur DB25 points femelle de


l'ordinateur.
Broche 1 : /Strobe
Broche 14 : /Autofeed
Broche 16 : Initialize
Broche 17 : /SelectInput.

Chaque sortie doit être amplifiée avec un circuit ULN2803 pour pouvoir
alimenter un relais 12V continu, dont un contact NO sera utilisé dans un
automatisme.

Schéma de câblage des sorties.


(Encore une fois, je m'excuse pour les traits qui ne sont pas droits. Mais
vous avez l'habitude maintenant.
Le principal est que le schéma soit compréhensible et juste.)

Comme pour les sorties du registre de données, il possible (et même


conseillé) de mettre une Led en parallèle sur chaque relais.

Etude des procédures en Turbo Pascal ,d'activation et de désactivation des sorties .

Prenons le cas de la sortie S8 qui correspond à /Strobe.


Pour que cette sortie soit active ,et sans modifier l'état des autres, nous
allons effectuer une opération ET logique sur mot de manière à positionner
/Strobe à 0.

Il faut fabriquer un mot (masque) comportant un 0 à l'emplacement de bit


b0, et des 1 aux autres emplacements. Ce mot prend la valeur $FE.
Ensuite on effectue un ET logique entre le registre d'adresse $037A et le
masque, puis on range le résultat à l'emplacement $037A qui correspond
au registre de contrôle.
De ce fait, /Strobe prend la valeur 0, et la sortie S8 est mise à 1. Les
autres sorties n'ont pas changé de valeur , car : ? ET 1 = ? (voir la table de
vérité de la fonction ET) .
Pour la mise à 0 de la sortie S8, on effectue une opération OU logique avec le mot $01 de
manière à positionner le bit b0 à 1 et ne pas modifier les autres bits du registre d'état.

Pour les autres sorties , je laisse le soin de vérifier les opérations.

Ecriture des procédures.


Dans un premier temps il faut déclarer dans la section "var" , le registre que
nous pouvons appeler : Sorties2.

Ensuite dans le programme principal nous allons définir la variable Sorties2.


Maintenant nous pouvons écrire les procédures de S8 à S11 à la suite des
procédures des sorties de S0 à S7.

Vous aimerez peut-être aussi