Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Ячейки памяти, используемые для прерываний RS232
Таблица 6.
При использовании запрещенного кода функции происходит простой возврат управления. Сохраняются все регистры, кроме тех, которые возвращают значение. НАЗНАЧЕНИЕ: прикладная программа может использовать INT 14h для прямого выполнения функций ввода-вывода на RS232. В таблице 7 приведен перечень функций, выполняемых по команде INT 14h. Прерывания остаются разрешенными. Маска для прерываний интерфейса и порт управления для прерываний RS232 не изменяются. Таблица 7. Функция 00h Инициализировать RS232(Таблицы 8, 9).
В функции указывается длина слова, число стоповых разрядов, тип паритета и скорость передачи для заданного порта. Хотя BIOS поддерживает четыре средства RS232, при инициализации после включения питания BIOS ищет только порты 1 и 2. Для использования портов 3 и 4 пользователь должен установить базовые адреса интерфейсного порта в ячейки памяти 0040:0004h и 0040:0006h соответственно.
ВХОДНЫЕ ПАРАМЕТРЫ: AH = 00h, AL - конфигурация порта, DX - номер RS232 (0-3). Таблица 8. Таблица 9. Функция 01h Передать символ (Таблицы 10, 11). INT 14h, AH = 01h выводит символ на заданный RS232. ВХОДНЫЕ ПАРАМЕТРЫ: AH = 01h, AL - символ, который необходимо передать (00h...FFh), DX - номер RS232 (0-3).
Таблица 10. ВЫХОДНЫЕ ПАРАМЕТРЫ: AH - состояние линии (см. определение для INT 14h, AH = 03h). Таблица 11. Функция 02h Принять символ (Таблицы 12, 13). INT 14h, AH = 02h принимает символ с заданного RS232. ВХОДНЫЕ ПАРАМЕТРЫ: AH = 02h, DX - номер RS232 (0-3). ВЫХОДНЫЕ ПАРАМЕТРЫ: AH - состояние линии (определение см. INT 14h, AH = 03h), AL - символ, который принят (00h - FFh). Таблица 12.
Таблица 13.
Функция 03h Определить состояние интерфейса (Таблицы 14-17). INT 14h, AH = 03h считывает регистры модема и состояния линии заданного RS232 и помещает эти значения в выходные регистры. ВХОДНЫЕ ПАРАМЕТРЫ: AH = 03h, DX - номер RS232 (0-3). ВЫХОДНЫЕ ПАРАМЕТРЫ: AH - состояние линии, AL - состояние модема. Таблица 14. Таблица 15. Таблица 16. Таблица 17. 6.8.8 Основы программирования контроллера последовательного интерфейса Программное обеспечение контроллера состоит из следующих частей: · инициализация контроллера; · передача одного байта в канал связи; · прием одного байта из канала связи;
· обработка прерывания, порожденного контроллером; Перед началом обмена данными по каналу передачи выполняется начальная инициализация контроллера последовательного интерфейса.
Инициализация контроллера 1. Определить базовый адрес контроллера
mov AX, 0040; сегментный адрес данных BIOS mov ES, AX; загрузить сегментный регистр mov DX,ES:[00000h]; выбрать базовый адрес ; контроллера
2. Запретить прерывания от контроллера последовательного интерфейса. Для этого достаточно записать в соответствующий бит регистра IMR (регистр маски прерываний) программируемого контроллера прерываний значение 1:
mov AH, 01 shl AH, 04; загрузить маску для IRQ4 cli; запретить прерывания in AL, [21]; считать значения регистра ; IMR or AL, AH; установить в 1 бит для IRQ4 out [21], AL; записать значение IMR nop; задержка nop sti; разрешить прерывания
3. Загрузить делитель программируемого генератора. Для этого необходимо сначала установить в 1 бит DLAB регистра LCR и затем загрузить младший и старший байт делителя:
add DX, 0003; адрес регистра LCR mov AL, 80; значение бита DLAB out DX, AL; установить регистр LCR nop nop sub DX, 0003; адрес LSB делителя mov AX, 0030; значение делителя для ; скорости ; 2400 бод out DX, AL; записать LSB делителя nop nop inc DX; адрес MSB делителя mov AL, AH; значение MSB делителя out DX, AL; записать MSB делителя nop nop dec DX; базовый адрес контроллера
4. Установить необходимое значение регистра LCR: add DX, 0003; адрес регистра LCR mov AL, 03; значение регистра LCR: ; - длина символа 8 бит ; - нет контроля четности ; - бит DLAB имеет значение 0 out DX, AL; - записать значение в регистр ; LCR nop nop sub DX, 0003; - базовый адрес контроллера
5. Установить необходимое значение регистра MCR. В этом примере программирование последовательного интерфейса без использования прерываний: add DX, 0004; адрес регистра MCR sub AL, AL; установить управляющие ; сигналы ; модема в 0 out DX, AL; записать значение в регистр ; MCR nop nop sub DX, 0004; базовый адрес контроллера
6. Установить необходимое значение регистра IER. inc DX; адрес регистра IER sub AL, AL; контроллер не порождает ; прерывания out DX, AL; записать значение в регистр ; IER nop nop dec DX; базовый адрес контроллера
|
||||||
Последнее изменение этой страницы: 2017-02-17; просмотров: 120; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.143.218.146 (0.017 с.) |