- •Введение
- •1 Основы микропроцессорной техники
- •1.1 Классификация команд и архитектура ЭВМ
- •1.2 Секционный микропроцессор.
- •1.3 Однокристальный микропроцессор.
- •1.4 Микропроцессорный модуль.
- •3.1 Тип кода операции с dst и rsc
- •3.2 Тип кода операции с dst. Группа коман MOV
- •4 Организация стековой памяти
- •5 Команды сдвигов и приращений.
- •5.1 Команды приращений
- •5.2 Команды сдвига
- •6 Арифметико-логические команды
- •6.1 Команды сложения
- •6.2 Команда сложения с учетом переноса
- •6.3 Операция вычитания
- •6.4 Команда вычитания с учетом заема
- •6.5 Команда логической функции ИЛИ
- •6.6 Команда логической функции И
- •6.7 Команда «Исключающая ИЛИ»
- •Внутриразрядная сумма = 0
- •6.8 Команда сравнения — компарации
- •7 Команды ветвления и переходов
- •7.1 Команды ветвления
- •7.2 Команды перехода
- •8.1 Внутрисегментные переходы
- •8.2 Межсегментные переходы
- •10 Цепочные команды
- •11 Другие одиночные команды
- •13.1 Процедура прерываний и команды прерываний
- •Адрес
- •13.2 Режимы работы ПКП
- •13.3 Программирование ПКП
- •14 Параллельный интерфейс
- •15 Последовательный интерфейс
- •15.1 Антология последовательного интерфейса
- •15.3 Описание регистров 8250 и программирование
- •Регистр управления линией
- •Регистр управления модемом
- •15.4 Порядок инициализации 8250
- •16 Программируемый таймер
- •16.7 Временные диаграммы таймера
- •16.8 Программирование таймера
- •Чтение счетчика канала 2
- •16.9 Чтение содержимого счетчиков
- •16.10 Таймер на системной плате IBM PC
- •17 Клавиатурный интерфейс
- •18. Заключение
- •Приложение А
- •Действие
- •Сегментный регистр
- •Действие команды
- •Действие команды
- •Действие команды
- •SAHF — сохранение <AH> в F
- •Действие команды
- •Действие команды
- •Действие команды
- •Действие команды
- •Действие команды
- •Действие команды
- •Действие команды
- •Действие команды
- •Действие команды
- •Действие команды
- •Команда – действие команды
- •Команда – действие команды
- •Команда – действие команды
- •Команда – действие команды
- •Команда – действие команды
- •Команда – действие команды
- •Команда – действие команды
RxRDY —сигнал готовности приемника; устанавливается в «1», когда слово, преобразованное из последовательного кода в параллельный, сбрасывается из сдвигающего регистра приемника в буфер приемника (рисунок 27). Это действие настолько простое, что временная диаграмма здесь не нужна.
Сбрасывается сигнал RxRDY (RxRDY=0) командой чтения (IN), то есть, как только забрали слово из буфера приемника, так готовность приемника сбрасывается. Дело в том, что RxRDY также подключается к контроллеру прерывания через схему управления прерыванием (рисунок 27) для вызова подпрограммы ввода, и этот вызов автоматически должен сниматься, как только слово из приемника заберут.
15.3 Описание регистров 8250 и программирование
Программирование последовательного порта производится посредством операций с семью его управляющими регистрами и счетчиком-делителем частоты. Каждый регистр выбирается комбинацией адресных бит А2-А0. Функции каждого регистра описаны ниже.
Примечание —DLAB (Divisor Latch Access Bit) —7-й бит регистра управления линией (адрес 011) —демультиплексирует направление программирования: или на приемопередатчик и регистр прерывания, или на делитель частоты.
А2А1А0 |
Операци |
Назначение |
|
я |
|
0 0 0 |
Запись |
Регистр передатчика – сюда засылается байт для |
|
|
передачи, если DLAB=0 |
|
Чтение |
Регистр приемника – отсюда извлекается |
|
|
принятый байт, если DLAB=0 |
|
Запись, |
Если DLAB=1, то сюда засылается младший байт |
|
чтение |
скорости обмена , |
0 0 1 |
Запись, |
если DLAB=1, то сюда засылается старший байт |
|
чтение |
скорости обмена. Скорость задается значением |
|
|
делителя, равным 11520/V, где V – скорость |
|
|
бит/сек. |
|
Запись |
Регистр управления прерываниями (1=разрешить |
|
|
прерывание) при DLAB=0. Формат слова приведен |
|
|
ниже. |
D7 D6 D5 D4 D3 D2 D1 D0
┌─┬─┬─┬─┬─┬─┬─┬─┐ │0 0 0 0
└─┴─┴─┴─┴─┴─┴─┴─┘ Разрешение прерываний
97
│ |
│ |
│ └ 1 – прерывание по приему символа; |
│ |
│ |
└── 1 – прерывание по завершению передачи |
│ |
│ |
символа; |
│└──── 1 – прерывание по обрыву линии или
│или ошибке в линии;
└────── 1 – прерывание по изменению состояния модема (CTS, DSR, RI и DCD);
|
|
|
|
|
|
|
|
|
А2 А1 А0 |
|
|
|
|
Операция |
|
|
|
|
Назначение |
|
|||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
0 1 1 |
|
|
|
Чтение/запис |
|
|
Регистр управления линией |
|
|||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ь |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
Формат слова и назначение разрядов: |
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||
D7 D6 D5 D4 D3 D2 D1 D0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||
┌─┬─┬─┬─┬─┬─┬─┬─┐ |
Длина данных |
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
└─┴─┴─┴─┴─┴─┴─┴─┘ |
|
|
|
|
|
|
5 бит |
|
|
|
6 бит 7 бит |
8 бит |
|
|
|
||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
00 |
|
|
|
|
|
|
|
|
|
|
|
0 |
|
0 |
1 |
1 |
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
Число |
|
|
|
|
|
|
|
|
|
|
|
0 |
|
1 |
0 |
1 |
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
стоп-битов: 0 –1 бит ; |
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(в битах) |
|
|
1 – 1.5 при 5 бит. данных и |
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2.0 – при 6-8 бит. данных |
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Тип четности |
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Нет |
Нечетная |
Четная |
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
х |
0 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
Постоянная четность: 0 – отмена постоянной четности, |
|||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 – постоянный бит четности: |
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
если биты 3-4=01, то бит четности=1; |
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
если биты 3-4=11, то бит четности=0 |
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 —имитировать обрыв линии (посылка нулей) |
||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||
|
|
|
|
|
Бит DLAB: |
|
1 — порты 000 и 001 для загрузки скорости обмена; |
||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 — порты 000, 001 в обычном режиме; |
||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||
А2 А1 А0 |
|
|
Операция |
|
|
|
|
|
|
|
|
|
|
|
|
Назначение |
|||||||||||||||||||||||||
0 1 1 |
|
|
|
|
|
|
Чтение |
|
|
|
|
|
|
|
Регистр идентификации прерывания. Содержит |
||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
причину прерывания |
|||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
7 |
6 |
|
5 |
4 |
3 |
|
2 |
1 |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
98
┌─┬─┬─┬─┬─┬─┬─┬─┐ |
|
|
|
|
|||||||||||||
│0 0 0 0 0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
└─┴─┴─┴─┴─┴─┼─┴─┘ |
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
0 – было прерывание |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
1 |
|
|
|
|
|
|
Причина прерывания |
|
|
|
|||||
|
|
|
|
|
1 |
|
|
Ошибка или обрыв линии; |
|
|
|||||||
|
|
|
|
сбрасывается чтением регистра |
|
||||||||||||
1 |
0 |
|
|
|
|
состояния линии (порт 101); |
|
||||||||||
|
|
Принят символ; сбрасывается |
|
||||||||||||||
0 |
1 |
|
|
|
|
|
|
чтением приемника (порт 000); |
|
||||||||
|
|
Передан символ; сбрасывается |
|
|
|||||||||||||
|
|
|
|
|
|
записью символа в регистр |
|
||||||||||
0 |
0 |
|
|
|
передатчика (порт 000); |
|
|||||||||||
|
|
|
Изменение состояния модема |
|
|
||||||||||||
|
|
|
|
|
|
|
(линий CTS, DSR, RI или DCD); |
|
|||||||||
|
|
|
|
|
|
сбрасывается чтением регистра |
|
||||||||||
|
|
|
|
|
|
|
состояния модема (порт 110); |
|
|||||||||
|
|
|
|
||||||||||||||
|
А2 А1 А0 |
Операция |
Назначение |
||||||||||||||
|
|
1 0 0 |
|
|
|
|
|
Запись |
Регистр управления модемом |
7 6 5 4 3 2 1 0
┌─┬─┬─┬─┬─┬─┬─┬─┐ │0 0 0
└─┴─┴─┴─┴─┴─┴─┴─┘
│ │ │ │ └ 1 — установка DTR: DTR:=1;
│ │ │ └── 1 — установка RTS: RTS:= 1;
││ └ 1 — установка OUT1 (не используется);
│└1 — установка OUT2 (разрешить прерывания от
8050);
└ 1 — диагностический режим (соединить выход со
входом).
А2 А1 А0 |
Операция |
Назначение |
|
1 0 1 |
Чтение |
Регистр состояний линии. Биты 1-4 вызывают |
|
прерывания по ошибке, если оно разрешено. |
|||
|
|
7 6 5 4 3 2 1 0
┌─┬─┬─┬─┬─┬─┬─┬─┐ │ 0 └─┴─┴─┴─┴─┴─┴─┴─┘
│ │ │ │ │ │ └ 1 — данные приняты; сбрасывается
99