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

0 ... 31 32 33 34 35 36 37 ... 105

delay(1000);

Textbackground(black); window(1,1,80,25); clrscr; end;

(•-Библиотека ресурсов № A7 (запись в регистр разрешения прерываний).-») Procedure write interrupt enable(RS232 address, output.byte:integer); begin

port(RS232 address+1):=0utput byte; end;

(•-Библиотека ресурсов № A8 (чтение из регистра идентификации прерываний).-*) Function read interrupt identification(RS232 address:integer):integer; begin

read interrupt identification:=port(RS2132 address+2); end;

(•-Библиотека ресурсов ft A9 (запись данных в регистр формата данных).-*)

Procedure Write data format (RS232 address, Baud, Parity, 0ata bit, Stop bit:integer);

var

bytel, byte2,output byte:byte; divisor:integer; begin

divisor:=115200 div Baud;

if divisor<=255 then begin bytel:=divisor; byte2:=0; end; if divisor>255 then begin bytel:=divisor mod 256; byte2:=divisor div 256; end;

output byte:=(data bit-5)+4*(stop bit-1)+8*parity;

port(RS232 address+3):=128;{Загрузка формата последовательных данных, первый бит

регистра равен 1.} port(RS232 address+0):=byte1;{Младший байт делителя равен 1.)

port(RS232 address+1):=byte2;{Старший байт делителя равен 0.)

port(RS232 address+3):=output byte; {Загрузка делителя и других параметров.) end;

(•-Библиотека ресурсов № А10 (запись данных в буферный регистр передатчика).-*)

Procedure write transmit buffer(RS232 address,output byte:integer);

begin

port(RS232 address):=output byte; end;

(•-Библиотека ресурсов № A11 (запись данных в регистр состояния модема).-*) procedure wnte modem status(RS232 address, RTS, DTR:integer); (•RTS и DTR или 1, или 0. RTS и DTR инвертируются с помощью МАХ238 на экспериментальной плате.*)

(*RTS=6ht 1, DTR=6ht 0 регистра управления модемом, смещение 04h.«) begin

RTS;=1-RTS;

DTR:=1-DTR;

port(RS232 address+4):=RTS*2+DTR;(«Запись в регистр 04h.*)

end;

(♦-Библиотека ресурсов № A12 (чтение данных из буферного регистра приемника).-*) Function read receive buffer(RS232 address:integer):integer;


Begin

read receive buffer:=port(RS232 address); end;

(♦-Библиотека ресурсов № А13 (чтение данных из регистра состояния модема).-*)

Function read modem status(RS232 address, х:integer):integer;

(*х=1 - выбор бита DCD, х=2 - выбор бита DSR, х=3 - выбор бита CTS.*)

(*DCD=6ht 7, DSR=6kt 5, СТБ=бит 4 регистра состояния модема, смещение 06h.»)

(•Все биты инвертируются с помощью МАХ238 на экспериментальной плате.*)

var

input byte:byte; begin

input byte:=port(RS232 add ress+6); case x of

1: Read modem status-=1-round((input byte and 128)/128); 2: Read modem status:=1-round((input byte and 32)/32); 3: Read mode(n status:=1-round((input byte and 16)/16);

end; end;

(«-Библиотека ресурсов № A14 (чтение регистра игрового порта).-*) Function read game port(bitx:integer):integer; (♦Адрес игрового порта: 201h.

Bitx (1-8) выбирает состояние АХ, AY, BX, BY, ВА1, ВА2, ВВ1 и ВВ2.*) var

input byte:byte; begin

input byte:=port($201); read game port :=round((input byte and bit weight(bitx))/bitjveight(bitx)); end;

(♦-Библиотека ресурсов № A15 (запись в регистр игрового порта).-♦) Function write game port;

(♦Вводит 0 в игровой порт для запуска мультивибратора.♦) begin

port($201):=0; end;

(♦-Библиотека ресурсов № А16 (получение длительности периода одновибратора).-♦) Function interval game port(x:integer):integer; (♦x выбирает AX(x=1), AY(x=2), BX(x=3), BY(x=4).*) var

timel, time2,dummy:integer;

Procedure init 8253; (♦Настройка 8253.*) begin

(«Управляющее слово = b6h = 10110110b:

10= выбор счетчика 2;

11= сначала чтение/запись младшего байта, затем старшего; 011 = режим 3;

0 = шестнадцатибитовый двоичный счет.*)

port($43):=$Ь6;(«Запись слова в управляющий регистр 8253.*)

port($42):=255;(«Загрузка младшего байта.*)

port($43):=255;(«Загрузка старшего байта.*)


port($61) =port($61) or 1 («Выключение динамика *) port($43) =$80(*80h - команда фиксации для счетчика 3 *)

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,

var

l integer, begin

imt 8253,

for l =1 to 100 do l =i, l =0,

dummy =bit weight(x), port($201) =0, timel =read 8253,

repeat l =i+1 until (port($201) and dummy=0) or (i>=5000), time2 =read 8253, interval game port =time2-time1, if i>=5000 then interval game port =0, end,

Библиотека ресурсов TPLIB2.PAS

(«Библиотека ресурсов ТР6 № 2 *)

(«Название библиотеки TPLIB2 PAS *)

(«Процедуры для управления графикой и чтения клавиатуры *)

(«Эта библиотека может быть включена в пользовательскую программу *)

(«-Библиотека ресурсов N1 01 (инициализация графического режима) -*)

Procedure initialize graph,

var

gd.gm integer, radius integer, begin

gd =detect, imtgraph(gd, gm, ), end,

(«-Библиотека ресурсов N1 02 (рисование светодиода) -*)

procedure draw led(x,y integer, status byte)

(«X и Y - координаты центра Status - включено или выключено »)

begin

setcolor(red)

setlinestyle(1 1 2),

if status=1 then setfillstyle(1,red) else

begin

setcolor(white), setfillstyle(1,white)

end,



0 ... 31 32 33 34 35 36 37 ... 105