Раздел: Документация
0 ... 72 73 74 75 76 77 78 ... 105 gnd Контакты на экспериментальной плате пораллелонога порта Рис. 6.26. Схема с использованием микросхемы TSL220 (•Если интенсивность света слишком мала, эта программа не будет работать,*) (•Выход TSL220 соединен с контактом S1 экспериментальной платы параллельного порта.*) uses graph,crt,dos; var time.penod: real; (•Загрузка файла библиотеки.*) {$1 c:\ioexp\tplib1.pas} Procedure init 8253(low count byte, high count byte:byte); («Загрузка low byte и high byte в третий таймер 8253.*) («Тактовая частота 8253: 2x1193180 = 2386360 Гц, период тактовых импульсов 1/f = 0,419 не.*) begin («Управляющее слово = b6h = 10110110b: 10= выбор счетчика 2; 11= чтение/запись сначала младшего байта, а потом старшего; 011 = режим 3; 0 = двоичный счет на 16.*) port($43) port ($42) port ($43) pOrt($61) port($43) =$Ь6; =low count byte; =high count byte; =port($61) or 1; (•Загрузка управляющего слова в регистр 8253,*) («Загрузка младшего байта.*) (•Загрузка старшего байта.*) (•Отключение внутреннего динамика.*) (*80Н - команда фиксации для третьего счетчика.*) end; Function read 8253:integer; (•Считывание двух восьмибитовых регистров счетчика.*) var low byte,high byte:byte; begin low byte:=port($42); high byte:=port($43); read 8253:=low byte+256*high byte; end; Function find period(Address:integer;Bit weight:integer):real; («Определение периода входного цифрового сигнала. Входной сигнал зависит от адреса входного порта (Address) и бита. Бит 0, Bit weight=1 Бит 1, Bit weight=2 Бит 7, Bit weight=128.*) var count, average number,timel,time2:integer; begin («Определение длительности нулевого уровня цифрового сигнала. Она будет использоваться для установки значения переменной Average number.*) repeat until port(Address) and Bit weight=Bit weight;(«Сигнал=1.*) repeat until port(Address) and Bit weight=0;(*Сигнал=0,«) timel:=read 8253;(«Считывание количества тактов 8253 первый раз.*) repeat until port(Address) and Bit weight=Bit weight;(«Сигнал снова равен 1.*) time2:=read 8253;(«Считывание количества тактов 8253 второй раз,*) Average number:=round(100/(Time1-Time2));(«Нахождение переменной Average number.*) if Average number=0 then Average number:=1; repeat until port(Address) and Bit weight=Bit weight;(*Сигнал=1.*) repeat until port(Address) and Bit weight=0;(*Сигнал=0. *) timel:=read 8253;(«Считывание количества тактов 8253 первый раз.*) for count:=1 to Average number do («Нахождение отрицательного фронта цифрового сигнала.*) begin repeat until port(Address) and Bit weight=Bit weight; («Сигнал=1.*) repeat until port(Address) and Bit weight=0;(*Сигнал=0.«) end; Time2:=read 8253;(«Считывание количества тактов 8253 второй раз.*) Find period:=((Tirae1-tirae2)*1/(2«1193180)*1e6/Average number); end; (♦Главная программа. *) begin Centronic address; mit 8253(255,255);(«Инициализация третьего таймера 8253.*) repeat time penod:=find period(P address+1, 8); (*P address+1 - адрес порта состояния, 8 - вес бита D83.*) gotoxyOO, 10); write(Time period of output signal from TSL220 [ns]: ,time period:8:1); gotoxyOO, 11); write(Frequency of the output signal [Hz]:, 1/time penod*1e6:8:l); delay(2000); until keypressed; end. 6.3.1. Линейная матрица световых детекторов TSL215 Оптоэлектронный датчик TSL215 (Texas Instruments) состоит из двух секций по 64 пиксела, организованных в линейную матрицу из 128 пикселов. Пикселы имеют размеры 120x70 мкм и расположены на расстоянии 125 мкм между центрами. Работа датчика подразделяется на два этапа: интегрирование и вывод данных. На первом этапе каждый пиксел накапливает заряд, пропорциональный интенсивности падающего света; лучше освещаемые участки матрицы получают больший заряд. На втором этапе напряжение заряда каждой точки выводится через аналоговый выход. Это напряжение можно оцифровать с помощью АЦП. Назначение выводов и внутренняя блок-схема светового детектора TSL215 приведены на рис. 6.27. На контакты 1 и 7, обозначенные Vdd, подается напряжение питания +5 В. Контакты 5 и 12 соединяются с общим проводом. Контакты 4 и 8 - это аналоговые выходы первой и второй секции AOl и А02. На вход CLK (контакт 3) подаются тактовые импульсы. Входы SI1 и SI2 (контакты 2 и 10) Vdd 1А 7 )
1 Сброс I 1 Цепь опроса пиксело1 S64 Узел смитыба! Буферный регистр Q1 I02I03 064 64-разрядный регистр сд&иго
о) [оз а О) I 8.5.1 т о й Г с с о Е О о- 3 о и е- >- г 5.? 5 о; Токто&ый генератор (13) so CLK SI Рис. 6.27. Назначение выводов и внутренняя блок-схема TSL215 0 ... 72 73 74 75 76 77 78 ... 105
|