program adc 12; uses crt; var n,f,e:byte; b,g:integer; d:real; procedure init; begin
b:=$378; n:=12; port[b]=1; delay(100); port[b]:=254; delay(500); end;
procedure acquisition; begin
port[b]:=0; d:=0; port[b]:=254;port[b]:=252; port[b]:=254;port[b]:=252; for f :=0 to n-1 do begin
port[b]:=254; e:=port[b+l] and 128; port[b]:=252;
if e=0 then d:=d+exp((n-1-f)*ln(2)); end;
d:=(5*d)/(exp((n)*ln(2))-l); port[b]:=253; end;
procedure affiche; begin
acquisition; d: = (int(100*d))/100; writeln(d); delay(500); end;
begin
clrscr;
init;
for g:=l to 20 do
begin
affiche;
end; end.
(* COPYRIGHT 1997 Patrick GUEULLE *)
Описанные в книге устройства, работающие через последова­тельный порт (рис. 4.3 и 4,6), не имеют такого ограничения и могут наилучшим образом использовать точность примененных в них вы­сококачественных АЦП. Только версия с оптоизоляцией (рис. 4.13,
Страница 77К оглавлениюСтраница 79