Académique Documents
Professionnel Documents
Culture Documents
1- Objectifs du laboratoire
Au terme de ce laboratoire, l’étudiant doit être capable de décrire les caractéristiques du port
parallèle d’un ordinateur et de programmer ce port en langage C sous Windows XP.
3- Expériences
Page 1 /9
B. Entrée/sortie via le registre des données du port LPT
Ecrire les principales lignes d’un programme C qui permet de lire, via le
registre de données du port LPT, un nombre de 8 bits provenant d’un
dipswitch. Le résultat de la lecture sera affiché à l’écran.
Page 2 /9
C. Entrée via le registre d’état du port LPT
Page 3 /9
//Sortie sur le port de contrôle (lignes 1 14 16 17)
Après avoir testé le fonctionnement de l’afficheur, écrire ci-dessous les principales lignes du
programme C qui a permis de tester ce circuit.
for (i=0;i<=50;i++)
{
int a,b;
a = (inp32)(portetat)& 8;
b = (inp32)(portetat)& 32;
// A est le bit de poids le plus faible
if ((a == 0) && (b == 0))
{
printf("On a recu 00\n");
system("pause");
}
if ((a == 0) && (b == 32))
{
printf("On a recu 01\n");
system("pause");
}
if ((a == 8) && (b == 0))
{
printf("On a recu 10\n");
system("pause");
}
Page 4 /9
if ((a == 8) && (b == 32))
{
printf("On a recu 11\n");
system("pause");
}
}
Le plus récent est l' (ECP). Il dérive du port EPP et en possède les mêmes
caractéristiques, avec des possibilités supplémentaires :
-Il est "Plug and Play" (branchez et utilisez).
-Il permet au périphérique de s'auto-identifier auprès de la machine dès le
démarrage. Ainsi l'imprimante peut s'auto configurer lors du lancement du système
d'exploitation (à condition que ce dernier et le BIOS soient eux aussi compatibles
Plug and Play).
-Il permet le Direct Memory Adress ( DMA ). Il est ainsi possible d'envoyer ou de
recevoir des données sans avoir besoin du processeur.
-Il comprime les données, selon une compression RLE (Run Length Encoding -
compression des répétitions d'octets) au niveau matériel.
http://209.85.129.104/search?q=cache:cIpWJLvXBoUJ:www.sitedejoe.com/Fichier/SPP-
EPP-ECP.doc+%2Bmode%2Bport%2BLPT&hl=fr&gl=be&ct=clnk&cd=1&lr=lang_fr
Page 5 /9
Vérifier, en lançant le BIOS, dans quel mode le port parallèle est configuré.
En mode ECP.
Plusieurs adresses sont attribuées à chaque port séries. A quoi correspondent ces
adresses ?
A chacune des broches du périphérique.
(oup32)(portdata,65) ;
Avec portdata valant 0x378.
(oup32)(portctrl,32);
Avec portctrl valant 0x37A.
Page 6 /9
Une fois que le registre de données a été programmé en entrée, quelle est alors
l’instruction C qui permet de lire le contenu de ce registre et de le placer dans
la variable data ?
int data ;
data = (inp32)(portdata);
Avec portdata valant 0x378.
7 6 5 4 3 2 1 0
x x x x 17 16 14 1
int etat_imprimante ;
etat_imprimante = (inp32)(portetat);
Quelle est l’instruction C qui lit le contenu du registre d’état et ne garde que les 5
bits significatifs (correspondants aux lignes Error, Select, PE, ACK, Busy) de ce
registre ?
(inp32)(portetat+3);
Page 7 /9
Et si on veut garder seulement le bit Busy ?
(inp32)(portetat)& 128;
7 6 5 4 3 2 1 0
11 10 12 13 15 x x x
(oup32)(portctrl,11);
Avec portctrl valant 0x37A.
int entree ;
entree = (inp32)(portctrl);
Avec portctrl valant 0x37A.
Page 8 /9
Quelle est l’instruction C qui lit le contenu du registre de contrôle et ne garde
que les 4 bits significatifs (correspondant aux lignes Strobe, Auto Feed, Init,
Slct in) de ce registre ?
(inp32)(portctrl) & 4;
On peut la restituer en utilisant une opération logique telle que le XOR sur les bits
inversés afin de les inverser.
Page 9 /9