Драйверы для 8-разрядных АЦП.

Схемы Программы Библиотека Все для сотового Компьютеры Поиск
Чат Форум Ссылки Рефераты Гостевая

 

 

Взад

(В главное меню)

Вперед

 

На сервере www.dmk.ru содержатся драйверы для четырех 8-разрядных АЦП:

• АЦП ADC 10 компании PICO Technology;

• версия АЦП на базе TLC 549 (рис. 4.1, 4.3);

• версия АЦП на базе МАХ 1243 (рис. 4.6);

• версия АЦП на базе TLC 549 (рис. 4.13, 4.14). : Заметим, что, хотя АЦП ADC 10 и собран на базе TLC 549, он требует особого драйвера, так как подключается к параллельному порту. Вполне логично, что версия драйвера для ADC 10 на языке  BASIC называется ADC10.-BAS.

10 REM----A.DC10----

20 KEY OFF:CLS

30 B=&H378:REM LPT1

40 N=8: REM число разрядов

50 OUT В, 2

60 FOR T=0 TO 100:NEXT T

70 OUT В,254

80 FOR T=0 TO 500:NEXT T

90 GOTO 200 v

100 OUT B,252:D=0:REM получение данных

110 FOR F=0 TO N-l 120 OUT B,253 130 E=INP(B+1) AND 128

140 OUT B,252

150 IF E=0 THEN D=D+2^(N-l-F)

160 NEXT F

170 D=5*D/(2^N-1)

180 OUT B, 2:RETURN

190 REM (c) 1997 Patrick GUEULLE

Шестнадцатеричная величина 378 в строке 30 предполагает, что ADC 10 подключен к параллельному порту LPT1. Чтобы подключить ADC 10 к порту LPT2 (если таковой имеется), надо заменить эту величину на 278 или на любую другую величину, соответствующую установкам BIOS используемого компьютера. Разработана также версия на языке TurboPASCAL, которая пригодится, если нужна более высокая частота дискретизации.

Исходный текст ADC10.PAS представляет собой не просто драйвер. В качестве примера он содержит небольшую прикладную программу вывода на экран результатов двадцати последовательных измерений, проводимых с интервалом в 500 мс.

program adcl0;

uses crt;

var n,f,e:byte;

  b,g:integer;

  d: real;

procedure init; begin

b:=$378; n:=8;

port[b]:=2; ,

delay(100); ;

port[b]:=254;

delay(500);

end;

procedure acquisition;

begin

port[b]:=252; d:=0;

for f :=0 to n-l do

begin

delay (2),• port [b] :=253;

e:=port[b+l] and 128;

port[b]:=252;

if e=0 then d:=d+exp((n-l-f)*ln(2))

end;

d:=(5*d)/(exp((n)*ln(2))-l);

port[b]:=2;

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 *)

Устройство на базе MAX 1243 также требует особого драйвера, версия которого на языке BASIC называется MAXIM8.BAS. Он определяет 8-разрядный режим работы данного компонента, на самом деле представляющего собой 10-разрядное устройство.

10 REM----MAXIM8----

20 KEY OFF:CLS

30 B=&H3F8:REM COM1:

40 N=8: REM число разрядов

50 OUT B+4,1

60 FOR T=0 TO 100:NEXT T -

70 OUT B+3,-64

80 FOR T=0 TO 500:NEXT T

90 GOTO 200

100 OUT B+4,0:D=0:REM ACQUISITION

105 OUT B+4,2:OUT B+4,0

110 FOR F=0 TO N-l

120 OUT B+4,2

130 E=INP(B+6) AND 16 ' . ,

140 OUT B+4,0

150 IF E=16 THEN D=D+2^(N-l-F)

160 NEXT F

170 D=5*D/(2^N-1)

180 OUT B+4,1:RETURN

190 REM (c)1997 Patrick GUEULLE

Шестнадцатеричная величина 3F8 в строке 30 предполагает, что устройство подключено к последовательному порту СОМ1. Чтобы иметь возможность испол

Шестнадцатеричная величина 3F8 в строке 30 предполагает, что устройство подключено к последовательному порту СОМ1. Чтобы иметь возможность использовать COM2 вместо СОМ1, надо заменить эту величину на 2F8, а при использовании порта COM3 или COM4 рекомендуется предварительно проверить установки BIOS по экрану настройки SETUP, выводимому на дисплей при включении ПК.

Версия на языке TurboPASCAL называется MAXIM8.PAS и также включает небольшую прикладную часть, выводящую на экран результаты двадцати измерений. - , .;.,....

program maxim8;

uses crt;

var n,f,e:byte;

b,g:integer;

d:real;

procedure init;

 begin

b:=$3F8; n:=8; port[b+4]:=1; delay(100);

port[b+3] :=64;

delay (500); end;

procedure acquisition;

begin :

port[b+4]:=0; d:=0;

port[b+4]:=2; port[b+4]:=2;

 port[b+4]:= 2; port[b+4]:=0;

for f :=0 to n-l do

begin

port[b+4]:=2;

e:=port[b+6] and 16;

port[b+4]:=0;

if e=16 then d:=d+exp((n-l-f)*ln(2));

end;

d:=(5*d)/(exp((n)*ln(2))-l); port[b+4]:=1; 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

af fiche; '

end;

end.

(* COPYRIGHT,. 1997, Patrick, GUEUbbE *)

Драйвер для устройств на базе TLC 549 (рис. 4.1 и 4.13), написанный на языке BASIC, называется 8BITS.BAS. Он также предназначен для работы с последовательным портом СОМ1 (3F8h).

10 REM----8BITS----

20KEY OFF:CLS

30 B=&H3F8:REM COM1:

40 N=8:REM число разрядов

50 OUT B+4,1

60 FOR T=0 TO 100:NEXT T

70 OUT B+3,64

80 FOR T=0 TO 500:NEXT T

90 GOTO 200

100 OUT B+4,0 :D=0: REM ACQUISITION

110 FOR F=0 TO N-l

120 OUT B+4,2

130 E=INP(B+6) AND 16

140 OUT B+4,0

150 IF E=16 THEN D=D+2^ (N-l-F)"

160 NEXT F

170 D=5*D/(2^N-1)

180 OUT B+4,1: RETURN .

190 REM (c)1997 Patrick GUEULLE

Его версия на языке TurboPASCAL называется 8BITS.PAS и содержит уже упомянутую программу вывода на экран результатов двадцати измерений.

program huitbits;

uses crt;

var n,f,e:byte;

b,g:integer;

direal;

procedure init;

begin

b:=$3F8; n:=8;

port[b+4]:=1;

delay(100);

port[b+3]:=64;

 delay(500);

end;

procedure acquisition;

begin

port[b+4]:=0; d:=0;

for f :=0 to n-l do begin

port[b+4];=2;

e:=port[b+6] and 16;

port[b+4]:=0;

if e=16 then d:=d+exp((n-l-f)*ln(2)); end;

d:=(5*d)/(exp((n)*ln(2))-l);

port[b+4]:=1;

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 *)

 

Взад

(В главное меню)

Вперед

--------------------------------------------------------------------------------------------------------------------------------------------

По всем вопросам работы сайта пишите!

 Рейтинг@Mail.ru

Дизайн и программирование - Joker -  2005г.

Используются технологии uCoz
рограммирование - Joker -  2005г.
Используются технологии uCoz