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

0 ... 29 30 31 32 33 34 35 ... 105

procedure Draw led status, var

led selected old integer, begin

led selected old =led selected,

scan keyboard,

output input

for i =1 to 4 do draw led(420+i«40,350,status[i+8]),

if led selected>4 then led selected =4, if led selected<1 then led selected =1,

setlinestyle(0,0,3), setcolor(cyan), if led selected old<=4 then begin

circle(-20,+80*led selected old 350,15), circle(-20,+80*(led selected old+40),350,15),

end,

setcolor(yellow) if led selected<=4 then begin

circle(-20,+80«led selected,350,15), circle(-20,+80«(led selected)+40),350,15),

end,

end,

(«Главная программа *) begin

initialize graph,

draw panel,

imtJ253,

led selected =1,

repeat

draw led status

until (key pressed= Q ) or (key pressed= q ),

closegraph, («Закрытие графического режима *) end

Программа содержит четыре процедуры и одну функцию; кроме того, применяются процедуры и функции из программных библиотек ресурсов. Draw panel рисует виртуальную панель управления. Процедуры Draw led() и Draw message(), содержащиеся в библиотеке TPLIB2.PAS, выводят на экран монитора изображения виртуальных светодиодов и поясняющие надписи. Процедура Output input организует ввод/вывод данных через игровой порт. Scan keyboard сканирует клавиатуру и фиксирует нажатие клавиш -», <-, клавиши пробела, с или q. Она использует функцию getkey из библиотеки TPLIB2.PAS. Функции Read game port() и Interval game port, находящиеся в библиотеке TPLIB1.PAS, считывают состояние цифровых входов порта и измеряют длительность периода одновибратора соответственно. Функция Resistance() вычисляет значение сопротивления на основании параметров калибровки.


3.3.2. Описание программы GAMEEXP

Эта программа выполняет следующие функции:

О считывает состояния двух (или четырех) цифровых входов; О измеряет длительность период одновибратора для двух (четырех) аналоговых каналов; О калибрует аналоговые каналы; О измеряет сопротивление резистора.

Для запуска программы необходимо нажать кнопку Пуск и выбрать в меню пункт Выполнить. Затем следует ввести ее полное имя: путь + GAMEEXP. После нажатия кнопки ОК на экране появится окно управления экспериментальной платой игрового порта (рис. 3.10). Программа выполняет функции, аналогичные DOS-версии.

ез

ЙВПуск Н Adobe Photoshop

st.

Gome Poil Enpeiimenlat Boaid

rosi loi inputs

•-О vci

C8

vcc

BX.

vcc

BY

vo:

Base addiess of Game 201H

Peiiod of Multivibrator: Resistance.

button input

:BY О • AY

Quit

GeneisleResistancevi periodcurve

Man

i game port experimen

r*,%l*#?

;ВШОЕЙН 1:11

Рис. ЗЛО. Окно управления экспериментальной платой игрового порта

Текст программы GAMEEXP

Declare Function Bit weight Lib С \I0EXP\Wlib dll (ByVal X As Integer) As Integer Declare Function Read game port Lib С \I0EXP\Wlib.dll" (ByVal X As Integer) As Integer Declare Function Wnte game port Lib С \I0EXP\Wlib dll () As Integer Declare Function Interval game port Lib С \I0EXP\Wlib dll" (ByVal led selected As Integer) As Integer


Sub Command1 click() OoEvents For i=12 to 15

status(i)=read game port(20-i) If status(i)=1 Then Shape1(i) BacKColor=$HFF$ Else Shape1(i) BackColor=black Next l DoEvents

penod=Interval game port(led selected)» 838 If penodoO Then

Label2 Caption= Period of multivibrator & Format (period, #Ш# # ) Else

Label2 Caption= Error reading multivibrator End If

Label5 Caption= Resistance & Format(resistance(period) ### # ) End Sub

Sub Command1 MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

Label6 Caption= Get button status and period of multivibrators End Sub

Sub Command2 click(index As Integer) status(index)=1-status(index)

If status(index)=1 Then Shapel(index) BackColor=$HFF$ Else Shapel(index) BackColor=black For 1=12 to 15

status(i)=(read game port(i-11) and Bit weight(i-11))/Bit weight(i-11) If status(i)=1 Then Shape1(i) BackColor=$HFF$ Else Shape1(i) BackColor=black Next l End Sub

Sub Command3 click()

MsgBox( Short the terminals of the selected resistance input The selected channel is & led selected)

interval 0(led selected)=lnterval game port(led selected)* 838

MsgBox( Connect a standard resistor to the selected resistance input The selected

channel is & led selected) Standard r(led selected)=lnputBox( Input the resistance , Calibration of resistance input , 1 )

interval R(led selected)=Interval game port(led selected)* 838 End Sub

Sub Command1 MouseMove(Button As Integer, Shift As Integer X As Single Y As Single)

Label6 Caption= Generate resistance vs period curve End Sub

Sub Command4 Click()

End End Sub

Sub Command4 Mouse0own(Button As Integer Shift As Integer, X As Single, Y As Single)

Label6 Caption= Quit the program End Sub

Sub Form load() For 1=0 to 16 status(i)=0



0 ... 29 30 31 32 33 34 35 ... 105