![]() |
|
| Pin | Fonction | E/S | Description |
| 1 | -Strobe | Sortie | Indique au périphérique que des données sont présentes sur les lignes 0 à 7. |
| 2 | D0 / Bit de donnée 0 | Sortie | Transmet le bit de donné 0 |
| 3 | D1 / Bit de donnée 1 | Sortie | Transmet le bit de donné 1 |
| 4 | D2 / Bit de donnée 2 | Sortie | Transmet le bit de donné 2 |
| 5 | D3 / Bit de donnée 3 | Sortie | Transmet le bit de donné 3 |
| 6 | D4 / Bit de donnée 4 | Sortie | Transmet le bit de donné 4 |
| 7 | D5 / Bit de donnée 5 | Sortie | Transmet le bit de donné 5 |
| 8 | D6 / Bit de donnée 6 | Sortie | Transmet le bit de donné 6 |
| 9 | D7 / Bit de donnée 7 | Sortie | Transmet le bit de donné 7 |
| 10 | ACK / Accusé de réception | Entrée | Le périphérique indique à l'ordinateur que les données ont bien été reçues. |
| 11 | Busy / Occupé | Entrée | Le périphérique indique à l'ordinateur qu'il est occupé (buffer de réception complet). |
| 12 | PE / Papier manquant | Entrée | PE (Paper error) indique que l'imprimante ne dispose plus de papier. |
| 13 | Select / Sélection | Entrée | Indique si l'imprimante est en ligne (on line) ou hors ligne (off line). |
| 14 | Autofeed / saut de ligne | Sortie | L'imprimante effectue un saut de ligne à chaque caractère "return" reçu. |
| 15 | Error / Erreur | Entrée | Indique à l'ordinateur que le périphérique à détecté une erreur. |
| 16 | Init / Initialisation | Sortie | L'ordinateur peut effectuer l'initialisation de l'imprimante par cette ligne. |
| 17 | Select in / sélection d'entrée | Sortie | L'ordinateur peut mettre l'imprimante hors ligne par ce signal. |
| 18 | Masse / Retour du bit 0 | Entrée | Masse de l'ordinateur (bit 0) |
| 19 | Masse / Retour du bit 1 | Entrée | Masse de l'ordinateur (bit 1) |
| 20 | Masse / Retour du bit 2 | Entrée | Masse de l'ordinateur (bit 2) |
| 21 | Masse / Retour du bit 3 | Entrée | Masse de l'ordinateur (bit 3) |
| 22 | Masse / Retour du bit 4 | Entrée | Masse de l'ordinateur (bit 4) |
| 23 | Masse / Retour du bit 5 | Entrée | Masse de l'ordinateur (bit 5) |
| 24 | Masse / Retour du bit 6 | Entrée | Masse de l'ordinateur (bit 6) |
| 25 | Masse / Retour du bit 7 | Entrée | Masse de l'ordinateur (bit 7) |
|
MOV DX, 378h MOV AX, valeur désirée OUT DX, AX |
|
MOV DX, 379h IN DX MOV valeur, AX |
_outp(adresse_du_port, valeur à envoyer);
Chaque fois que la boucle est activée, nous ajoutons la valeur 1 au compteur. Le compteur est donc incrémenté jusqu'à la valeur limite. L'appel de la fonction "wait" permet un temps d'attente entre chaque incrémentation. Enfin, l'instruction "return 0;" indique que la fonction principale ne revoie pas de valeur entière.|
#include
<conio.h> // Fichier d'en-tête pour l'instruction "_outp" #include <stdio.h> // Fichier d'en-tête pour E/S standards #include <time.h> // Fichier d'en-tête pour les instruction "clock_t" et "endwait" void wait ( int
seconds ) //Fonction "Wait" (attente) |
|
{ |
|
clock_t endwait; |
|
endwait = clock
() + seconds * 1 ; |
|
while (clock
() < endwait) { } |
|
} |
|
|
|
int main ( ) // Fonction
principale |
|
{ |
|
int i; // Variable
de boucle |
|
int valeur; // Variable saisie au clavier |
|
|
|
printf("Entrez une valeur
limite: "); |
|
scanf ("%d", &valeur) ; // Saisie de la variable "valeur" |
|
|
|
|
|
// Mise à 0 du compteur |
|
_outp (0x378, 00) ; |
|
_outp (0x378, 00) ; |
|
|
|
|
|
/ / Comptage |
|
for
(i=0; i<valeur+1; i++) |
|
{ |
|
_outp (0x378, 00); |
|
_outp (0x378, 01); |
|
wait (1000); // Appel de fonction |
|
} |
|
|
|
return 0; |
|
} |
-o adresse hexadécimale du port Valeur à envoyer