Раздел: Документация
0 ... 70 71 72 73 74 75 76 ... 105 {$1 с \ioexp\tpliM 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 end, =$Ь6,(«Загрузка управляющего слова в регистр 8253 *) =low count byte,(«Загрузка младшего байта *) =high count byte,(«Загрузка старшего байта *) =port($61) or 1,(«Отключение внутреннего динамика «) =$80,(«80Н - команда фиксации для третьего счетчика *) Procedure delay 8253(low bytex, high bytex byte), («Временная задержка, использующая третий таймер 8253) *) («Время задержки определяется переменными low bytex и high bytex *) var low byte,high byte byte, begin imt 8253(low bytex, high bytex), repeat dummy =port($42) until (port($42)=0), repeat low byte =port($42), high byte port($43), until low byte<5, end, Function deintegration counts real, («Определение времени интегрирования (количества тактов третьего счетчика 8253) *) var counts,low byte,high byte byte, finished flag boolean, begin counts =0, repeat init 8253(255,255),(«Загрузка чиспа 255 в мпадший и старший регистры счетчика 8253 *) repeat low byte =port($42), high byte =port($43), if port(P address+1) and 8=0 then fimshed flag =true else fimshed flag =fal until (low byte<25) and (hign byte=0) or fimshed flag, if not fimshed flag then counts =counts+1 until fimshed flag, deintegration counts =counts«(255«256+255) + (255 0-high byte)«256+(255-low byte), end, Function Voltage real, («Определение входного напряжения *) var add,data аггау[1 8] of byte ii,addx byte, begin write data port(P address,0+2); («Автоопределение нуля в течение 500 мс.*) delay(500); write data port(P address,1+0); («Интегрирование сигнала в течение 40 мс.*) delay 8253(117,186); polarity:=read status port(P address) and 1; delay 8253(117,186);(«Задержка на 186 x 256 + 117 тактов = 20 мс») write datajort(P address, 1+2); («Интегрирование опорного сигнала.*) dummy:=deintegration counts; if polarity:=0 then polarity:=-1; voltage: =polarity*dummy/(l86*256+l17)/2*1.5; («Опорное напряжение - 1,5 В.*) delay(100); write data port(P address,0); delay(50); end; («Главная программа.*) begin Centronic address; write data port(P address,0+2);(«Автоопределение нуля.*) write(Press RETURH to start sampling);readln; clrscr; repeat gotoxy(20,10); write(Input voltage to the TC500:,voltage:6:4); delay(iOOO); until keypressed; end. 6.2. Преобразователи напряжение-частота Преобразователи напряжение-частота - это устройства, которые трансформируют входное напряжение в последовательность прямоугольных импульсов, их частота прямо пропорциональна величине входного напряжения. В данном разделе представлены такие преобразователи и различные способы считывания полученного результата в компьютер. 6.2.1. Принципы преобразования напряжение-частота Преобразователь напряжение-частота (рис. 6.23) состоит из источника коммутируемого тока, входного компаратора и одновибратора. Компаратор сравнивает положительное входное напряжение Vic напряжением Vx. Если VI > Vx, запускается одно-вибратор, который вырабатывает один импульс фиксированной длительности. Импульс, формируемый одновибратором, подается через транзисторный ключ на выход схемы и одновременно коммутирует выход генератора тока с входом компаратора на время t = l,lRtCt. В течение этого времени ток генератора заряжает конденсатор С1, и напряжение Vx становится больше VI. В конце этого временного интервала одновибратор сбрасывается, отключая источник тока от входа компаратора. Затем конденсатор С1 начинает разряжаться через резистор R1. Когда напряжение Vx на конденсаторе С1 сравняется с напряжением VI, компаратор срабатывает, запуская одновибратор, и цикл повторяется. Таким образом, на выходе схемы формируется частота, пропорциональная входному напряжению. Vs- Rs Ri -CZ> Генеротор тока Ct Входной компаратор V1 < "1 дно&ибратар Частотный Выход Vox 1 Рис. 6.23. Принцип работы преобразователя напряжение-частота 6.2.2. Преобразователь напряжение-частота LM331 Нелинейность преобразования напряжения в частоту у микросхемы LM331 (National Semiconductor, RS411-652) составляет 0,01% на шкале частот 1 Гц - 100 кГц. Если напряжение питания микросхемы равно +5 В, то ее выход совместим с ТТЛ и КМОП логикой. Выход можно нагружать на три ТТЛ входа. На контакты 4 и 8 подается напряжение питания микросхемы, и они соответственно соединяются с отрицательным и положительным проводами источника питания. Напряжение источника питания составляет от 4 до 40 В. Ток потребления -3 мА при напряжении питания 5 В. На контакт 2 внутренней схемой подается опорное напряжение 1,9 В. Резистор установки величины тока Rs включается между выводом 2 и «землей». При этом ток через резистор равен 1,9/Rs. К контакту 5 подключается RC-цепочка, управляющая длительностью импульса одновибратора. На контакт 7 подается входной сигнал, а с помощью контакта 6 устанавливается порог. Контакт 3 - выход микросхемы с открытым коллектором. Выходной ток ограничен порогом 50 мА. Схема с применением преобразователя LM331, подключенного к экспериментальной плате параллельного порта, изображена на рис. 6.24. Частотный выход соединен с контактом S1. Программа управления измеряет частоту выходного сигнала микросхемы LM331, для этого используется встроенный в компьютер таймер/счетчик 8253. Текст программы LM331.PAS Program LM331 Voltage frequency, («Программа управления преобразователем LM331 *) uses graph, crt dos, var time period real, («Загрузка файла библиотеки *) {$1 с \ioexp\tpliM pas} Procedure init 8253(low count byte high count byte byte) 0 ... 70 71 72 73 74 75 76 ... 105
|