Un petit programme en TurboPascal

(menu Interfaces)

program capimp;
uses dos,crt;
const adr1=$3BD;(*prise imprimante normale LPT1:*)
adr2=$379;(* prise imprimante LPT2:*)
adr3=$279;(*prise imprimante LPT3:*)
delai=10;

const tabmasque : array[0..7] of byte
= (1,2,4,8,16,32,64,128);

var adresse:word;
 

function litcappar(numbit:byte):word;
var i:word;
test:word;
begin

test:=port[adresse] ;
i:=0;
port[adresse+1]:=port[adresse+1] or tabmasque[numbit];
repeat inc(i) until (i>3999) or (port[adresse]<>test);
port[adresse+1]:=port[adresse+1] and (not tabmasque[numbit]);
litcappar:=i;
end;

begin

adresse:=adr2;
repeat
write(litcappar(0),' ');delay(delai);
write(litcappar(1),' ');delay(delai);
write(litcappar(2),' ');delay(delai);
writeln(litcappar(3));delay(delai);
until keypressed;
end.

Remarque : le petit délai introduit entre chaque mesure est destiné à permettre au condensateur de se décharger complètement. Sa valeur dépend de votre montage, et en particulier des valeurs de la résistance et du condensateur. La valeur numérique renvoyée par la fonction LitCappar dépend de la rapidité du microprocesseur de votre ordinateur. Même si la résistance est nulle, la valeur renvoyée par LitCappar ne le sera pas, car il y a une résistance interne dans l'ordinateur, qui empêche que le condensateur soit rechargé instantanément. Cette valeur n'est pas identique selon les différentes broches. Si, au contraire, la résistance est infinie (lorsque les broches ne sont pas connectées), les valeurs renvoyées par la fonction sont aberrantes, puisqu'il n'y a ni charge, ni décharge de condensateur.
 

menuenvoyer un courrier

Mise à jour: 26/02/1998
Auteur : Pierre DIEUMEGARD