Драйверы для 10-разрядных АЦП.
Схемы | Программы | Библиотека | Все для сотового | Компьютеры | Поиск |
Чат | Форум | Ссылки | Рефераты | Гостевая |
Так как 10-разрядной версии ADC 10 не существует, приводимые здесь драйверы относятся только к трем устройствам для самостоятельной сборки: • версия АЦП на базе TLC 1549 (рис. 4.1, 4.3); • версия АЦП на базе МАХ 1243 (рис. 4.6); • версия АЦП на базе TLC 1549 (рис. 4.13, 4.14). Версия на языке BASIC для обоих устройств на базе TLC 1549 называется 10BITS.BAS. Она написана для работы с последовательным портом СОМ1 (3F8h). 10 REM----1 OBITS ---- 20 KEY OFF:CLS 30. B=&H3F8:REM COM1: 40 N=10: 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 RETURN 190 REM (c)1997 Patrick GUEULLE Версия того же драйвера на языке TurboPASCAL с выводом на экран результатов двадцати измерений называется 10BITS.PAS. program dixbits; uses crt; var n,f,e:byte; b,g:integer; d:real; procedure init; begin b:=$3F8; n:=10; 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-1 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)) ; d:=(5*d)/(exp((n)*ln(2))-l); 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 требует особого драйвера MAXIM 10.BAS и также предназначено для работы с последовательным портом СОМ1 (3F8h). 10 REM----MAXIM10---- 20 KEY OFF:CLS 30 B=&H3F8:REM COM1: 40 N=10: 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-1 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-1-F) 160 NEXT F 170 D=5*D/(2^AN-1) 180 OUT B+4,1:RETURN 190 REM (c)1997 Patrick GUEULLE Его версия на языке TurboPASCAL называется MAXIM10.PAS. program dixbits; uses crt; var n,f ,e:byte; b,g:integer; d:real; procedure init; begin b:=$3F8; n:=10; port[b+4]:=1; delay(100) port[b+3]:=64; delay(500); end; port[b+3]:=64; delay(500); end; procedure acquisition; begin port[b+4]:=0; d:=0; for f :=0 to n-1 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); 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 *)
|
--------------------------------------------------------------------------------------------------------------------------------------------