LE PORT PARALLÈLE
LE PORT PARALLÈLE

 

Programmer et accès aux ports

 

 
 

Detecciónde que l'adresse base du port parallèle

Certaine procédure devrait être eue à premièrement être capable de déterminer laquelle l'adresse est il base du port.

Comme il a été dit précédemment, le port parallèle a son adresse qu'il base par coeur sur deux adresses d'une série. Alors le contenu de ces adresses devrait être lu par coeur, afin de déterminer si un port existe et lequel son adresse est.

MS-DOS

Sous MS-DOS vous pouvez utiliser l'ordre externe debug.exe dans le chemin suivant:

Exécuter l'ordre: debug.exe, alors le symbole paraît -

Pour écrire après ce signe d 40:0008

Selon l'équipe paraît un a renversé de la mémoire dans le chemin suivant: (les données peuvent varier)

0040:0000 ______________________78 03 00 00 00 00 00 00

L'adresse du port est dans forme investie (78 03), alors l'adresse est:

0378 dans hexadécimal. C'est nécessaire à faire l'avis que cette adresse peut être différente dans autre PC.

(Q est écrit et alors entre pour laisser debug.exe)

   

Il/elle envoie et lire de données du port

Cargaison de données au port

Le port parallèle peut être utilisé comme une communication directe avec le PC, ce chemin c'est possible de développer des applications dans le temps-vrai qui besoin un temps rapide de réponse.

L'accès est porté dehors écrire un multiplet (8 morceaux) dans certaine inscription. Ce multiplet devrait faire référence à chacun des morceaux de l'inscription. Cela signifie qu'il/elle devrait être défini le multiplet pour écrire dans le système binaire.

Par exemple si nous alors voulons écrire dans l'inscription de données les peu D0 et les peu D2 le multiplet il est:

 

0

0

0

0

0

1

0

1

= 5 dans le chiffre décimal

D7

D6

D5

D4

D3

D2

D1

D0

Inscription de données

 

5 dans l'inscription de données (bases de l'adresse) devraient être écrits alors, à lui:

Notes:

le dir_base et dir_estado sont de mot du type et je date c'est de multiplet du type.

En moi Pascal a renversé

Port [dir_base]: = 5;

Dans C

Outportb (dir_base, 5);

 

Lire de données du port

La lecture de données est portée dehors accesando un multiplet de la certaine inscription. Lorsque faire la lecture il/elle devrait devenir le multiplet à binaire pour déterminer lui ou les morceaux qui intéressent. Remarquez que l'inscription de l'état devrait être lue seulement, c'est-à-dire, le base+1 de l'adresse.

En moi Pascal a renversé

Fait de Var: multiplet;

dato:=Port [dir_estado];

Dans C

fait de l'int sans signature;

dato=inportb (dir_estado);

     

Par exemple, si le fait lu est semblable à 96, il signifie qui les morceaux S5 et S6 sont actifs (ils ont un haut niveau, un 1).

0

1

1

0

0

0

0

0

= 96 dans le chiffre décimal

S7

S6

S5

S4

S3

S2

S1

S0

Déclarez l'inscription

 

Enmascaramiento

Si beaucoup dans la cargaison comme réception de données binaires, ils sont portés dehors opérations aux morceaux niveau. Ces opérations autorisent à isoler un plus de morceaux. Ce processus est dénommé enmascaramiento.

Par exemple, savoir si certain morceau qui a été lu de l'inscription de l'état est dans un haut (1 logique) niveau on peut faire l'opération "ET" logique (ET) de la lecture avec une valeur qui est d'en élever 2 à la place qui occupe ce morceau dans le multiplet, et alors emporter la comparaison.

Si le morceau qui est voulu savoir est le morceau 5, alors l'opération est:

Masc:=2^5=32

(Byte_leido ET masc)

Dans le cas que le morceau 5 est dans un haut niveau:

Byte_leido

0

1

1

0

0

0

0

0

96

S7

S6

S5

S4

S3

S2

S1

S0

Place

ET

0

0

1

0

0

0

0

0

Masque = 32

C'est

0

0

1

0

0

0

0

0

32 = masque

 

Dans le cas que le morceau 5 n'est pas dans un haut niveau:

Byte_leido

0

1

0

1

0

0

0

0

80

S7

S6

S5

S4

S3

S2

S1

S0

Place

ET

0

0

1

0

0

0

0

0

Masque = 32

C'est

0

0

0

0

0

0

0

0

0 & lt; & gt; masque

 

Si le morceau 5 est 1, alors le résultat est 16, ou semblable à masc.

Faire la comparaison:

Si (Byte_leido ET masc) = masc alors

Commencer

/* les actions porter dehors quand le 4to morceau est 1 */

Fin

Si le morceau 5 est 0, alors le résultat est toujours 0, que qui est différent à masc.

Au cas où cela est voulu porter dehors l'enmascaramiento de plus qu'un peu, il/elle est porté dehors la somme les valeurs.

Par exemple Masquez pour le morceau 5 et les 7

Masc = 2^5+2^7=160

 

Si veut mais information sur le Port parallèle, ne doutez pas pour communiquer avec pparalelo@hotmail.com

Google