Общие положения

Программируемый параллельный интерфейс

Программируемый параллельный интерфейс i8255 (КР580ВВ55) предназначен для ввода/вывода параллельной информации в 8-битном формате. Он позволяет реализовать большинство известных протоколов обмена по параллельным каналам. БИС программируемого параллельного интерфейса может использоваться для соединения МП со стандартным периферийным оборудованием (дисплеем, телетайпом, накопителем, и т.п.).

       
   
 
jkщшзнгнгj Afhjfhjfhjhgf
 

 


Рис.1. Структура схема БИС i8255 (КР580ВВ55)

 

Структурная схема БИС показана на рис. 1, а ее графическое обозначение – на рис.2

В состав БИС входят:

· двунаправленный 8-разрядный буфер данных (BD, Buffer of Data), соединяющий линии данных БИС с системной шиной данных;

· блок управления чтением/записью (RWCU, Read/Write Control Unit), обеспечивающий управление внешней и внутренней передачей данных и управляющих слов;

· три 8-разрядных порта ввода/вывода (Port A, Port B, Port C) для обмена информацией, причем порт С разделен на два четырехразрядных С’ (PC7-PC4) и C”(PC3-PC0). Порты А и С’объединены в группуА, порты В иС”– в группуВ.

Схема БИС содержит также блоки управления группой АControl Unit A (CUA) и группой В (CUB), которые формируют сигналы управления для соответствующих групп.

Блок RWCU (Register of Control Word Unit) содержит регистр управляющего слова, который хранит управляющие слова, поступающие от МП.


 

 

 


Рис. 2. Графическое обозначение БИС i8255 (КР580ВВ55)

 

Адресные разряды А1. А0позволяют выбрать один из портовА, В, С или регистр управляющего слова RCW ( табл. 1).

Таблица 1. Выбор портов БИС i8255

А1 А0 Порт
А
В
С
RCW

 

Сигнал управления третьим состоянием шины данных , сигнал чтения , сигнал записи и сигнал сброса RESET подаются на блок RWCU и вместе с сигналами на адресных линиях А0, А1 задают вид выполняемой операции (табл. 2).


Таблица 2. Определение вида операций в зависимости от сигналов управления и адресных разрядов А1, А0

Операция А1 А0
Запись управляющего слова из МП
Запись данных в порт А
Запись данных в порт В
Запись данных в порт С
Считывание данных из порта А
Считывание данных из порта В
Считывание данных из порта С
Выключение БИС от D7-D0 x x x x

Примечание. х – любое значение (0 или 1).

 

Назначение выводов БИС приведено в табл. 3.

Таблица 3. Назначение выводов БИС i8255

Обозначение вывода Номер вывода Назначение выводов
D7 – D0 27;28;29;30;31;32;33;34 Вход/вывод данных
Чтение; L-уровень сигнала разрешает считывание информации из порта, адресуемого разрядами А0,А1 по линиям D7 - D0
Запись; L-уровень сигнала разрешает считывание информации с шины D7 - D0 в порт, адресуемый разрядами А0,А1
А0, А1 9;8 Входы для адресации внутренних регистров БИС
RESET Сброс; Н-уровень сигнала сбрасывает регистр управляющего слова и устанавливает все порты в режим ввода
Вход выборки микросхемы; L-уровень сигнала соединяет шину D7 - D0 БИС с системной шиной
РА7 – РА0 37;38;39;40;1;2;3;4 Вход/вывод порта А
РВ7 - РВ0 25;24;23;22;21;20;19;18 Вход/вывод порта B
PC7 – PC0 10;11;12;13;17;16;15;14 Вход/вывод порта C
Ucc Вывод напряжения питания +5В
GND Общий вывод 0В

 

Программирование БИС заключается в загрузке управляющего слова режима при А1 = 1, А0 = 1. Формат управляющего слово определяет один их трех режимов портов параллельного интерфейса: “0” – основной режим ввода/вывода; режим “1” – стробированного ввода/вывода; режим “2” – режим двунаправленной передачи информации.

 

D7 D6 D5 D4 D3 D2 D1 D0
M1 M0 IOA IOC’ M IOB IOC”

 

Рис.4. Формат управляющего слова режима

 

На рис. 4 обозначено:

· биты М1, М0 – задают режим группыА. При М1М0 = 00 задается режим 0, при 01 - режим 1, при 10 и 11 – режим 2;

· бит IOA – задает режим ввода или вывода порта А. При IOA = 1 осуществляется ввод информации, при значении ноль – вывод;

· бит IOC’ – задает режим ввода или вывода порта С’ (1 – ввод, 0 – вывод);

· бит М – задает режим группы В. При М = 0 – режим 0, 1 – режим 1;

· бит IOB - задает режим ввода или вывода порта В (1 – ввод информации, 0 – вывод);

· бит IOC” - задает режим ввода или вывода порта С” (1 – ввод, 0 – вывод).

 

Управляющие слово может устанавливать разные режимы работы для каждого из портов. Порт А может работать в любом из трех режимов, портВ – режимах 0 и 1. Порт С можно использовать для передачи данных только в режиме 0, в других режимах его применяют для передачи управляющих сигналов, которые сопровождают процесс обмена по портам А и В.

Отдельные разряды портыС можно устанавливать или сбрасывать программно с помощью управляющего слова установки/сброса, формат которого показан на рис 5.

 

D7 D6 D5 D4 D3 D2 D1 D0
X X X N2 N1 N0

 

Рис. 5.Формат управляющего слова установки/сброса порта С

 

На рис. 5 обозначено:

· биты N2, N1,N0 – задают номера разряда, который надо установить или сбросить. Значение этих бит = 000 – выбирает разряд РСО, 001 – PCI, 010 - PC2, 011 – PC3, 100 – PC4, 101 – PC5, 110 – PC6, 111 – PC7;

· бит - задает режим установки или сброса разряда порта С,который выбран значениями N2, N1,N0. При = 1 происходит установка разряда, при 0 – сброс.

 

Пример 1.Сформировать импульс продолжительностью n (мкс). Базовый адрес БИС 70h.

Для того чтобы сформировать импульс заданной продолжительности, надо установить разряд РС4 в состояние логической единицы, потом выполнить подпрограмму задержки на n (мкс) и сбросить разряд РС4.

Определим управляющие слова для установки и сброса разряда РС4.Управляющее слово установки разряда РС4 в соответствии с рис 5 имеет вид:

 

D7 D6 D5 D4 D3 D2 D1 D0

 

В шестнадцатеричной системе исчисления оно равняется 09Н.

Управляющее слово сброса разряда РС4имеет вид:

 

D7 D6 D5 D4 D3 D2 D1 D0

 

В шестнадцатеричной системе исчисления оно равняется 08Н.

Распределение адресов

Адрес, h Устройство
Порт А
Порт В
Порт С
RCW

 

Программа формирования импульса продолжительности n (мкс) на выходе РС4порта С:

MOV AL, 09 ; формирование управляющего слова

; установки разряда РС4

OUT 73H, AL ; запись содержимого AL в регистр

; управляющего слова

CALL DELAY ; задержка времени на n (мкс).

MOV AL, 08 ; формирование управляющего слова сброса

; разряда РС4

OUT 73H, AL ; вывод в регистр управляющего слова

. . . ; продолжение программы

; подпрограмма задержки n (мкс).

DELAY: MOV CX, 134 ; СХ 134 (4 такта)

D: LOOP D ; СХ СХ – 1, если не 0, то переход на D

; при выполнении перехода на метку D,

; команда выполняется за 16 тактов, иначе

; - за 4 такта)

RET ; возврат из подпрограммы (8 тактов).

 

Определим продолжительность задержки в этом примере. В комментарии к командам подпрограммы задержки в скобках запишем выполнения команд в тактах.

Общее число тактов, необходимо для выполнения подпрограммы DELAY, равняется:

4 + 134 х 16 + 4 + 8 = 2160.

 

При тактовой частоте 5 МГц продолжительность одного такта равняется 200 нс. Тогда значениеn определяется как:

 

n = 0,2 x 2159 = 431,8 мкс.

 

В каждой группе АилиВБИС имеется триггер разрешения прерывания INTE, установка/сброс которого осуществляется управляющим словом установки/сброса определенного разряда порта С. Если триггер разрешения прерывания соответствующей группы установлен (INTE = 1), то параллельный интерфейс может сформировать запрос прерывания при готовности УВВк обмену.

Режимы работы портов программируемого параллельного интерфейса.

Режим 0 применяется при синхронном обмене или при программной организации асинхронного обмена. В этом режиме БИС представляет собой устройство, которое состоит из четырех портов (два 8-разрядных А, В и два 4-разрядных C’, C”), которые могут независимо настраиваться на ввод или вывод информации. Вывод информации осуществляется по команде вывода микропроцессора с фиксацией выведенной информации в регистрах портов, а ввод – по команде ввода без запоминания информации.

 

Пример 2.Установить порт А в режим ввода 0, портВ – в режим вывода 0, порт C’ – в режим ввода 0, порт C”– в режим вывода 0, а потом осуществить ввод и вывод информации через порты АиВ соответственно.

Управляющее слово режима в этом случае имеет вид:

 

D7 D6 D5 D4 D3 D2 D1 D0
M1 M0 IOA IOC’ M IOB IOC”
=98h

 

Программа в кодах i8086 имеет вид:

 

MOV AL, 98H ; Формирование управляющего слова режима 98H в AL

OUT 73H, AL ; Запись в регистр RWC

IN AL, 70H ; Ввод из порта А

OUT 71H, AL ; Вывод на порт В

 

Программа в кодах i8051 имеет вид:

 

MOV DPTR, #73H ; Формирование в DPTR адреса RWC

MOV A, #98H ; Формирование управляющего слова режима 98H в A

MOVX @DPTR, A ; Запись в регистр RWC

MOV DPTR, #70H ; Формирование в DPTR адреса порт А

MOVX A, @DPTR ; Ввод из порта А

MOV DPTR, #71H ; Формирование в DPTR адреса порт В

MOVX A, @DPTR ; Вывод на порт В

 

Режим 1 обеспечивает однонаправленный обмен информацией МП с УВВ по стробу готовности. Информация передается по портам А и В, а линии порта С управляют передачей. Работу порта в режиме 1 сопровождают три управляющих сигнала. Если один из портов запрограммирован на режим 1, то оставшиеся 13 линий портов можно использовать в режиме 0. Если оба порта запрограммированы на режим 1, то две оставшиеся линии порта Смогут быть запрограммированы на ввод или вывод.

Назначение разрядов порта Спри вводе данных из портов А и Вв режиме 1 показано на рис.6.

 

Группа А Группа В
PC7 PC6 PC5 PC4 PC3 PC2 PC1 PC0
IO IO IBF A INTE A INTR A INTE B IBF B INTR B

 

Рис. 6. Назначение разрядов порта Спри вводе данных из портов АиВв режиме 1

 

На рис. 6 обозначено:

· IBF (Input Buffer Full) – выходной сигнал БИС, который сообщает о заполнении входного буфера порта данными;

· INTR (INTeRrupt) – выходной сигнал, который сообщает о завершении приема информации;

· INTE (INTerrupt Enable) – сигнал разрешения прерывания (вход строба приема).

 

Пример схемы соединения устройства ввода с портом А, устройства вывода с портом Вв режиме 1 на показан на рис 7.

 

 

 
 

 

 


Рис.7.Схема соединения устройства ввода с портом А, устройства вывода с портом В в режиме 1

 

Ввод данных в режиме 1 осуществляется по каналу А, а управляющие сигналы передаются по линиям РС4 и РС5. Устройство ввода выдает строб приема , который указывает на готовность к вводу информации. Этот строб поступает на вход разрешения прерывания от канала А – РС4.Выходной сигнал IBF линии РС5 используется для подтверждения приема. Он формируется по спаду и сообщает устройству ввода об окончании приема данных.

Кроме показанных на рис 7сигналов, программируемый параллельный интерфейс формирует также сигнал запроса прерывания INTR, который информирует МП о завершении приема информации. При обмене по прерыванию этот сигнал используется в качестве запроса прерывания, а при программном обмене может игнорироваться. Высокий уровень сигнала INTR устанавливается, если , IBF=1. Нулевой уровень сигнала INTRустанавливается при поступлении сигнала при чтении соответствующего программируемого параллельного интерфейса.

Назначение разрядов порта С в режиме вывода 1 показано на рис 8.

 

 

Группа А Группа В
PC7 PC6 PC5 PC4 PC3 PC2 PC1 PC0
А INTE A IO IO INTR A INTE B B INTR B

 

Рис. 8. Назначение разрядов порта Спри выводе данных из портов АиВв режиме 1

 

(Output Buffer Full) – выходной сигнал, который сообщает про заполненность выходного буфера порта данными.

Другие сигналы имеют такой же смысл, что и на рис. 6.

Пример вывода данных на порт В в режиме 1 показан на рис 7.Для вывода данных в этом режиме используются такие управляющие сигналы:

- выходной сигнал, который формируется по фронту и сообщает УВВ о готовности к выводу;

– входной сигнал, который подтверждает прием информации от БИС интерфейса.

INTR– выходной сигнал БИС, сообщающий МП о завершении вывода. Сигнал INTRустанавливается в единицу при = 1, и =1, и сбрасывается в нуль сигналом при записи данных в параллельный интерфейс.

 

Разряды РС6, РС7при вводе (см. рис. 6) и РС5, РС4 при выводе (см. рис. 8) не участвует в управлении обменом и могут быть запрограммированы на простой ввод или вывод (IO). Ввод осуществляется чтением порта С, а вывод – записью управляющих слов установки/сброса отдельных разрядов (см. рис. 5).

Стробированный обмен может осуществляться по прерыванию или по программе. При обмене по прерыванию сигнал INTRпоступает в систему прерывания и инициирует обмен. При программном обмене готовность портов А или В определяется по путем опроса разрядов INTR АилиВсоответственно.

 

Пример 3.Написать программу установки порта А в режим ввода 1 и ввести данные по стробу готовности.

Управляющее слово режима в этом случае имеет вид:

 

D7 D6 D5 D4 D3 D2 D1 D0
M1 M0 IOA IOC’ M IOB IOC”
=0B0h

 

Программа в кодах і8086 имеет вид:

 

MOV AL, 0B0H ; Формирование управляющего слова режима в AL

OUT 73H, AL ; Запись в регистр RWC БИС I8255

MOV AL, 00001001b ; Формирование управляющего слова установки

; разряда РС4 – INTE А – разрешение прерываний

OUT 73H, AL ; Запись содержимого AL

; в регистр управляющего слова

M1: IN AL, 72H ; AL содержимое порта С

AND AL, 00001000B ; Маскирование всех разрядов,

; кроме РС3 (INTR A)

JZ M1 ; Если данные не готовые, то на М1,

IN AL, 70H ; иначе – ввод информации из порта А

Программа в кодах і8051 имеет вид:

mov dptr, #73h ; Формирование в DPTR адреса RWC

mov a, #0B0h ; Формирование управляющего слова режима в A

movx @dptr, a ; Запись в регистр RWC БИС I8255

mov a, #00001000b; Формирование управляющего слова установки

; разряда РС4 – INTE А – разрешение

; прерываний

movx @dptr, a ; Запись содержимого A

; в регистр управляющего слова

mov dptr, #72h ; Формирование в DPTR адреса порт С

m1:

movx a, @dptr ; A содержимое порта С

anl a, #00001000b; Маскирование всех разрядов,

; кроме РС3 (INTR A)

jz m1 ; Если данные не готовые, то на М1,

mov dptr, #70h ; Формирование в DPTR адреса порт А

movx a, @dptr ; иначе – ввод информации из порта А

 

режим 2 обеспечивает двунаправленную передачу информации из порта Аво внешнее устройство и наоборот. Процесс обмена сопровождают 5 управляющих сигналов, которые передаются по линиям РС7 – РС3.

11 интерфейсных линий, которые остались, могут быть запрограммированы на режим 0 или 1. Назначение разрядов порта Св режиме 2 приведено на рис 9, а схема соединения программируемого параллельного интерфейса – на рис. 10.

Назначение управляющих сигналов в режиме 2 аналогично назначению сигналов в режиме1. Управление формированием внутреннего сигнала INTE для операции ввода осуществляется по линии РС4, для операции вывода – по линии РС6.

 

Группа А Группа В
PC7 PC6 PC5 PC4 PC3 PC2 PC1 PC0
А INTE 1 IBF A INTE 2 INTR A Зависит от режима порта В

 

Рис.9. Назначение разрядов порта С в режиме 2

 

 
 

 

 


Рис. 10. Схема подключения УВВ к БИС I8255 в режиме 2

 

Вывод БИС INTR A используют как запрос прерывания, как при вводе, так и при выводе информации. Распределение сигналов по интерфейсным линиям, управляющее слово режима 2 и временные диаграммы работы иллюстрирует рис.11.

 
 

Рис. 11.Работа БИС а режиме 2:

а)– распределение сигналов по интерфейсным линиям;

б) –временные диаграммы работы

 

Пример 4.Написать программу установки порта А в режим ввода 2, а потом осуществить ввод (вывод) информации через порт Ав этом режиме.

Управляющее слово режима в этом случае будет равняется 0С0Н:

 

D7 D6 D5 D4 D3 D2 D1 D0
M1 M0 IOA IOC’ M IOB IOC”
=0С0h

Программа двунаправленного ввода/вывода по стробу готовности должна сначала обнаружить готовность порта к вводу или выводу по единичному состоянию сигнала INTR A(линия РС3), а потом установить, какие именно данные готовы – для ввода (единичное состояние линии РС4) или вывода (единичное состояние линии РС6). После этого можно осуществлять обмен данными.

Программа в кодах і8086 имеет вид:

 

MOV AL, 0C0H ; формирование управляющего слова режима в AL

OUT 73H, AL ; Запись в регистр RWC БИС I8255

М1: IN AL, 72H ; AL содержимое порта С

MOV BL, AL ; сохранение содержимого AL в регистре BL

AND AL, 00001000B ; Маскирование всех разрядов,

; кроме РС3 (INTR A)

JZ M1 ; Если данные не готовые, то на М1

MOV AL, BL ; AL содержимое порта С

AND AL, 00010000B ; Маскирование всех разрядов,

; кроме РС4 (INTR A)

JZ M2 ; Если данные готовы не для ввода,

; то переход на М2

IN AL, 70H ; иначе – ввод информации из порта А

JMP M3

M2: OUT 70H, AL ; вывод информации из порта А

M3: ; Продолжение программы

 

Программа в кодах і8051 имеет вид:

 

MOV DPTR,#73H ;Формирование в DPTR адреса RWC

MOV A, #0C0H ; формирование управляющего слова режима в A

MOVX @DPTR,A ; Запись в регистр RWC БИС I8255

MOV DPTR,#72H ; Формирование в DPTR адреса порт С

М1: MOVX A, @DPTR ; A содержимое порта С

MOV R0, A ; сохранение содержимого A в регистре R0

ANL A, 00001000B ; Маскирование всех разрядов,

; кроме РС3 (INTR A)

JZ M1 ; Если данные не готовые, то на М1

MOV A, R0 ; A содержимое порта С

ANL A, 00010000B ; Маскирование всех разрядов,

; кроме РС4 (INTR A)

JZ M2 ; Если данные готовы не для ввода,

; то переход на М2

MOV DPTR,#70H ; Формирование в DPTR адреса порт А

MOVX A, @DPTR ; иначе – ввод информации из порта А

JMP M3

M2: MOV DPTR,#70H ; Формирование в DPTR адреса порт А

MOV A, #DATA ; Выводимые данные в А

MOVX @DPTR,A

M3: ; Продолжение программы

 


Задание на самостоятельную работу.

Необходимо выполнить ряд разработок для реализации интерфейса на основе программируемого параллельного интерфейса:

1. разработать схему сопряжение БИС ППИ с системным интерфейсом МПС;

2. составить фрагмент программы инициализации БИС ППИ;

3. составить фрагмент программы для решения поставленной задачи.

 

Варианты заданий:

 

Вариант Базовый адрес БИС,h Направление Режим Задача
Порт А Порт В Порт Сh Порт Сl Порт А Порт В
Ввод Ввод Ввод Ввод
Ввод Ввод Ввод Вывод
Ввод Ввод Вывод Ввод
Ввод Ввод Вывод Вывод
Ввод Вывод Ввод Ввод
Ввод Вывод Ввод Вывод
Ввод Вывод Вывод Ввод
Ввод Вывод Вывод Вывод
Вывод Ввод Ввод Ввод
Вывод Ввод Ввод Вывод
Вывод Ввод Вывод Ввод
Вывод Ввод Вывод Вывод
Вывод Вывод Ввод Ввод
Вывод Вывод Ввод Вывод
Вывод Вывод Вывод Ввод
Вывод Вывод Вывод Вывод
Ввод Ввод Ввод Ввод
Ввод Ввод Ввод Вывод
Ввод Ввод Вывод Ввод
Ввод Ввод Вывод Вывод
Ввод Вывод Ввод Ввод
Ввод Вывод Ввод Вывод
Ввод Вывод Вывод Ввод
Ввод Вывод Вывод Вывод
Вывод Ввод Ввод Ввод
Вывод Ввод Ввод Вывод
Вывод Ввод Вывод Ввод
Вывод Ввод Вывод Вывод
Вывод Вывод Ввод Ввод
Вывод Вывод Ввод Вывод
                 

 

Для четных вариантов дешифратор адреса БИС ППИ строить на БИС дешифратора и микропроцессор системы i8086. Для нечетных вариантов дешифратор адреса БИС ППИ строить на логических элементах и микропроцессор системы i8051.

 

Задачи.

1. Принимать массив данных из порт А и выводить в порт В. Длина массива задается первым принятым байтом.

2. Принимать массив данных из порт А и выводить в порт С. Длина массива - №варианта.

3. Выполнить ввод массива данных из порт А и вывод по тетрадам в порт С (старшая тетрада затем младшая тетрада). Длина массива задается первым принятым байтом.

4. Выполнить ввод массива данных из порт А и вывод по тетрадам в порт С (младшая тетрада затем старшая тетрада). Длина массива задается числом 10+№варианта.

5. Выполнить ввод массива данных из порт В и вывод по тетрадам в порт С (старшая тетрада затем младшая тетрада). Длина массива задается первым принятым байтом.

6. Выполнить ввод массива данных из порт В и вывод по тетрадам в порт С (младшая тетрада затем старшая тетрада). Длина массива задается числом 10+№варианта.

7. Выполнить стробированный ввод из порт В и вывод по тетрадам в порт С (младшая тетрада затем старшая тетрада). Длина массива задается первым принятым байтом.

8. В памяти определен массив данных. Осуществить вывод массива через порт В, стробируя низким уровнем по линии РС6.

9. В памяти определен массив данных. Осуществить вывод массива через порт В, стробируя низким уровнем по линии РС7.

10. В памяти определен массив данных. Осуществить вывод массива через порт В, стробируя высоким уровнем по линии РС6.

11. В памяти определен массив данных. Осуществить вывод массива через порт В, стробируя высоким уровнем по линии РС7

12. В памяти определен массив данных. Осуществить вывод массива через порт В, стробируя низким уровнем по линии РС4.

13. В памяти определен массив данных. Осуществить вывод массива через порт В, стробируя низким уровнем по линии РС5.

14. В памяти определен массив данных. Осуществить вывод массива через порт В, стробируя высоким уровнем по линии РС4.

15. В памяти определен массив данных. Осуществить вывод массива через порт В, стробируя высоким уровнем по линии РС5.

16. В памяти определен массив данных. Осуществить стробированный вывод массива через порт В.

17. В памяти определен массив данных. Осуществить стробированный вывод массива через порт А.

18. Осуществить стробированный ввод массива через порт В. Длина массива задается первым принятым байтом.

19. Осуществить стробированный ввод массива через порт А. Длина массива задается первым принятым байтом.

20. Осуществить стробированный ввод/вывод информации по порт А, при этом над принятыми данными выполнять следующее преобразование: данные=данные /\ 0Fh.

21. Осуществить стробированный ввод/вывод информации по порт А, при этом над принятыми данными выполнять следующее преобразование: данные=данные \/ 0Fh.

22. Осуществить стробированный ввод/вывод информации по порт А, при этом над принятыми данными выполнять следующее преобразование: данные=данные *4.

23. Осуществить стробированный вывод массива через порт В.

24. Осуществить стробированный вывод массива через порт А.

25. Осуществить стробированный ввод массива и стробированный вывод этого массива в обратном порядке через порт А. Длина массива задается первым принятым байтом.

26. Осуществить стробированный ввод массива данных из порт А. Длина массива задается первым принятым байтом.

27. Осуществить стробированный ввод массива данных из порт В. Длина массива задается первым принятым байтом.

28. Осуществить стробированный ввод данных из порт В и вывод их в порт А. Процесс выполнять циклически.

29. Осуществить стробированный ввод данных из порт В и стробированный вывод их в порт А. Процесс выполнять циклически.

30. Осуществить ввод данных из порт В и стробированный вывод их в порт А. Процесс выполнять циклически.

31. В памяти определен массив данных. Осуществить вывод элементов массива в порт А и порт В (при выводе каждого элемента ожидать готовности порт А). Количество выводимых элементов задается 3-х битовой комбинацией РС2РС1РС0.

32. Вводится массив данных из порт В (признак начала ввода РС0=1). Затем осуществляется стробированный вывод в порт А этого массива циклически пока РС0=1. Число элементов массива задается 8 битовой комбинацией 0000РС2РС101.

33. Принимать по линии РС0 последовательно биты (старшим битом вперед) и выводить в порт В.

34. Принимать данные из порт В, выполнить преобразование данные=(данные*4) \/ F0h и по стробу готовности вывести в порт А. Процесс выполнять циклически.

Примечание: в задачах, где неопределен размер массива данных взять ФИО студента.


Пример выполнения работы:

Задание

Вариант Базовый адрес БИС,h Направление Режим Задача
Порт А Порт В Порт Сh Порт Сl Порт А Порт В
Ввод Вывод Ввод Ввод

Задача

  1. Принимать массив данных из порт А и выводить в порт В. Длина массива задается первым принятым байтом.

Решение

Базовый адрес БИС ППИ 70h. При таком адресе распределение устройств ППИ можно представить в виде таблицы

Адрес, h Устройство
Порт А
Порт В
Порт С
RCW

 

Базовый адрес модуля 0070h – это число переводим в двоичный код – 0000 0000 0111 0000.

 

Например в схеме сопряжения для построения дешифратора адреса БИС ППИ будем использовать логические элементы. Для подключения логической “1” будем использовать элементы И-НЕ, а “0” – ИЛИ-НЕ. Схема может выглядеть так


Если в схеме использовать БИС дешифратора (К1533ИД7), то схема может выглядеть например так

 


 

 


 

Управляющее слово режима в этом случае имеет вид:

 

D7 D6 D5 D4 D3 D2 D1 D0
M1 M0 IOA IOC’ M IOB IOC”
=98h

 

Фрагмент программы инициализации в кодах i8086 имеет вид:

 

MOV AL, 98H ; Формирование управляющего слова режима 98H в AL

OUT 73H, AL ; Запись в регистр RWC

 

Фрагмент программы инициализации в кодах i8051 имеет вид:

 

MOV DPTR, #73H ; Формирование в DPTR адреса RWC

MOV A, #98H ; Формирование управляющего слова режима 98H в A

MOVX @DPTR, A ; Запись в регистр RWC

 

Решим поставленную задачу.

Принимать массив данных из порт А и выводить в порт В. Длина массива задается первым принятым байтом.

В кодах микропроцессора i8086

 

MOV CX, 0 ; Обнуляем CX, будем использовать как счетчик

IN AL, 70H ; Вводим первый байт, он определяет число элементов

MOV CL, AL ; Настраиваем счетчик цикла

OUT 71H, AL ; Выводим первый байт

DEC CL ; Осталось вывести на один байт меньше

M:

IN AL, 70H ; Вводим очередной байт из порт А

OUT 71H, AL ; Выводим принятый байт в порт С

LOOP M ; СХ уменьшаем на 1 и если не 0, повторяем процесс

NOP

 

В кодах микропроцессора i8051

 

MOV DPTR, #70H ; Формирование в DPTR адреса порт А

MOVX A, @DPTR ; Ввод из порта А

MOV R0, A ; R0 счетчик циклов

MOV DPTR, #71H ; Формирование в DPTR адреса порт В

MOVX A, @DPTR ; Вывод на порт В

DCR R0 ; Осталось вывести на один меньше

M:

MOV DPTR, #70H ; Формирование в DPTR адреса порт А

MOVX A,@DPTR ; Ввод из порта А

MOV DPTR, #71H ; Формирование в DPTR адреса порт В

MOVX A, @DPTR ; Вывод на порт В

DJNZ R0, M ; Счетчик уменьшаем на 1 и если не 0, повторяем процесс

NOP

 


Справочная информация:

Промышленностью выпускаются БИС которые в своем составе содержат логические элементы на 2-, 3-, 4- и 8-входов.

Дешифратор К1533ИД7 осуществляет преобразование трёхразрядного двоично-десятичного числа в число от 1 до 7 (естественный счёт).

Таблица истинности

Вход Выход
С1 D1 D2 D3
X L H H H H H H H H H X L L L L L L L L X X L H L H L H L H X X L L H H L L H H X X L L L L H H H H H H L H H H H H H H H H H L H H H H H H H H H H L H H H H H H H H H H L H H H H H H H H H H L H H H H H H H H H H L H H H H H H H H H H L H H H H H H H H H H L

 

 
DC

 
D1 #Y0  
2  
D2   #Y1
3  
D3   #Y2
   
    #Y3
   
C1   #Y4
 
#C2   #Y5
 
#C3   #Y6
   
    #Y7
     
     

 

Рисунок – Условно-графическое обозначение КР1533ИД7

Микросхема КР1533ИД7 представляет собой дешифратор 3 на 8. При работе микросхемы в качестве дешифратора входы D1, D2, D3 являются информационными, а входы играют роль стробирующих.