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

0 ... 36 37 38 39 40 41 42 ... 105

О А0=0, А1=1 - выбор регистра С;

О А0=1, А1=1 - выбор регистра управления.

Для нормального функционирования микросхемы на линию CS (контакт 6) должен подаваться низкий уровень. Линия RESET (контакт 35) предназначена для сброса микросхемы, который осуществляется высоким уровнем. После сброса все линии ввода/вывода портов А, В и С настраиваются как входы. В нормальном режиме линия RESET должна удерживаться в состоянии логического нуля.

Микросхема имеет три режима работы:

О режим 1: порты А и В настраиваются как восьмиразрядные порты ввода/ вывода. Смешивание линий ввода и вывода не допускается. Порт С делится на две половины (четыре старших и четыре младших бита). Каждая половина может быть настроена как на вход, так и на выход. Смешивание линий ввода и вывода в пределах одной половины запрещено;

О режим 2: микросхема настраивается как управляемый порт ввода/вывода, порты А и В - как независимые порты ввода или вывода. Каждый из них имеет 4-разрядный порт управления, который формируется в порте С соответственно как четыре младших и старших бита;

О режим 3: порт А настраивается как двунаправленный порт.

Режимы работы микросхемы 8255 устанавливаются с помощью регистра управления, куда необходимо записать управляющее слово. Назначение битов управляющего слова приведено ниже:

бит 7 (флаг установки режима)

всегда единица

биты 6, 5 (биты выбора режима)

00

= режим 1

01

= режим 2

1х =

= режим 3

бит 4 (режим порта А)

1 =

вход

0 =

выход

бит 3 (режим верхней половины порта С)

1 =

вход

0 =

выход

бит 2 (выбор подрежима для режима 3)

1 =

режим 1

0 =

режим 0

бит 1 (режим порта В)

1 =

вход

0 =

выход

бит 0 (режим нижней половины порта С)

1 -

вход

0 -

выход

Схема соединения микросхемы 8255 с параллельным портом показана на рис. 4.4.

Регистр данных LPT-порта передает данные в микросхему 8255, этим процессом управляют DD2 и DD3 (буферы с тремя состояниями 74LS241 и 74LS244). Регистр состояния считывает данные из 8255. Две линии порта управления соединены с линиями адреса 8255, а две другие - с RD и WR.

Требуемые данные сначала записываются в регистр данных, а состояние линий АО и А1 - в регистр управления. Затем по линии WR подается нулевой


Порт а

о-(37) ра7

dd2 74ls241

yo

h8

2)

do

y4

4)

Dl

y1

@

Т)

d2

y5

d3

y2

@

d4

y6

d5

y3

Ту

d6

y7

d7

g2

49

dd3 74ls244

18) yo

do

@

j4)y2

d4

j)Y3

d1

(V

d5

5)y5

d2

@

jQy6

d6

oOY7

d3

d7

1)"ГЛ

sel

0 1 dbo db4

db1 db5

db2 db6

db3 db7

dbo

db1

db2

db3

db4

DB5

db6

db7

+ 5b

Контакта но экспериментальной плоте параллельного порто

Рис. 4.4. Схема с использованием программируемого устройства ввода/вывода параллельной информации 8255

импульс (перепад 1-0-1), при котором открываются буферы данных DD3. Перепад 1-0 записывает информацию в выбранный регистр 8255. Данные из микросхемы 8255 считываются DD2 (74LS241). Линия выбора данных (DSL) управляется битом 0 порта данных. При считывании данных состояние линий АО и А1 сначала записывается в регистр управления, а линия RD удерживается


в нулевом состоянии. При этом 8255 выводит данные на собственную шину данных. Затем линия DSL первый раз переходит в ноль, и регистр состояния производит первое считывание. После этого линия DSL снова устанавливается в единицу, и производится второе считывание. Таким образом, за два считывания восстанавливается исходный байт данных.

Управляющая программа написана на языке Turbo Pascal 6. Она настраивает все порты как выходы (режим 0, управляющее слово 128) и содержит все необходимые процедуры и функции, позволяющие на их основе разрабатывать собственное программное обеспечение. Write cont rol(Control word: byte) записывает управляющее слово во внутренний регистр управления 8255. Write port (port number, output byte: byte) записывает байт в порт А, В или С, который был настроен как выход. Inputbyte(port number: byte):byte считывает данные из порта А, В или С, настроенного как вход.

Текст программы 8255.PAS

Program Centromc 8255 interfасе; («Некоторые используемые управляющие слова:

128(десятичное): порты А, В и С - выходы;

155(десятичное): порты А, В и С - входы;

144(десятичное): порт А - вход; порты В и С - выходы;

146(десятичное): порты А и В - входы; порт С - выход.*) uses

graph,crt.dos; var

command,output byte,input byte,bitnumber, portnumber, output byte:byte;

P address,delaynumber:integer; {$1 c:\ioexp\tplib1.pas) procedure find delay nuraber;

(«Определение скорости компьютера и количества тактов за 1 мс.*) var

timel,tirae2,dt:real; t,h1,m1,s1,s1001,h2,m2,s2,s1002:word; begin clrscr;

gotoxy(25,24); write(Checking computer speed);

gettime(h1,m1,s1,s1001);

timel:=3600*h1+60«m1+s1+s1001/100;

for t:=1 to 1000 do delay(1);

gettime(h2,m2,s2,s1002);

time2:=3600«h2+60*m2+s2+s1002/100;

dt:=time2-time1;

delaynumber:=round(1000/dt*0.001); clrscr;

gotoxy(30,24); write(Finished...); clrscr; end;

Function convert(bytex:byte):byte;

(«Преобразование bytex в байт для передачи в регистры 8255.*) (* Байт, принимаемый 8255: Ь8 Ь7 Ь6 Ь5 Ь4 ЬЗ Ь2 Ы,



0 ... 36 37 38 39 40 41 42 ... 105