8(495)909-90-01
8(964)644-46-00
pro@sio.su
Главная
Системы видеонаблюдения
Охранная сигнализация
Пожарная сигнализация
Система пожаротушения
Система контроля удаленного доступа
Оповещение и эвакуация
Контроль периметра
Система домофонии
Парковочные системы
Проектирование слаботочных сетей
Аварийный
контроль
Раздел: Документация

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