Драйвер состоит из четырех подпрограмм, блок-схемы их алгоритмов приведены на рис. 2 – 4. Программы INIT1 и INIT2 производят инициализацию ПСА путем загрузки в РУС инструкции режима и инструкции команды. Инструкция режима предписывает работать в асинхронном режиме с восьмибитными символами без контроля паритета, с двумя стоп-битами и коэффициентом деления частоты синхронизации, равным 1:16. Инструкция команды в INIT1 разрешает передачу, а в INIT2 - прием данных.
Рис. 2. Блок-схема алгоритма подпрограммы инициализации УСАПП
Программа OUTPUT1 осуществляет вывод символа, который должен быть предварительно помещен в регистре C микропроцессора. В начале программы организован цикл ожидания готовности передатчика путем чтения слова состояния УСАПП. Когда передатчик готов к работе, в разряде D0 устанавливается 1 (TxRDY=1). После этого выводимый символ записывается программой в регистр данных УСАПП.
Рис. 3. Блок-схема алгоритма подпрограммывывода символа
Программа INPUT2 осуществляет ввод символа. В начале программы определяется готовность приемника путем чтения слова состояния УСАПП. Когда приемник готов к приему данных, в разряде D1 устанавливается 1 (RxRDY=1). Затем вводимый символ читается из регистра данных УСАПП.
Рис.4. Блок-схема алгоритма подпрограммы ввода символа
3. ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ
3.1. Установка частоты передачи данных по ИРПС
3.1.1. Рассчитайте частоту f работы генератора синхронизирующих импульсов, которая обеспечивает скорость передачи данных 1200 Бод.
Примите, что при инициализации УСАПП инструкция режима устанавливает коэффициент деления частоты синхронизации, равный 1:16.
3.1.2. Включите электропитание УМК и измерьте частоту тактовых импульсов F2ттл микроЭВМ УМК стороны 1 и стороны 2. В дальнейшем они будут обозначаться как УМК1 и УМК2. Для измерения частоты используйте частотомер (или осциллограф), входы которого надо подключить к гнездам Гн1 и Гн4 на платах ТЭЗов УМК1 и УМК2.
3.1.3. Напишите программу TIMER настройки счетчика CT0 таймера на режим 3 - генератора импульсов. Число N, которое необходимо загрузить в счетчик, определяется из соотношения:
где f и Tc - частота и период синхронизирующих импульсов, определенных в п.3.1.1.
Программу начните с адреса 0800H. Не забудьте завершить программу командой RST 7.
3.1.4. Занесите программу TIMER в память УМК1 и УМК2 и запустите ее. Измерьте частоту f синхроимпульсов на УМК1 и УМК2, подключив входы частотомера (осциллографа) к гнездам Гн.2 и Гн.4 каждого ТЭЗа.
В случае различия частот f передатчика и приемника более, чем на 5%, сделайте корректировку путем изменения числа N в программе TIMER одного из ТЭЗов.
3.2. Исследование осциллограмм сигналов линии связи
3.2.1. Напишите подпрограммы драйвера ИРПС для передатчика – INIT1, OUTPUT1 и для приемника – INIT2, INPUT2, используя блок-схемы алгоритмов, приведенных на рис. 2 - 4. Инструкция режима должна предписывать УСАПП работать в асинхронном режиме с восьмибитными символами без контроля паритета, с двумя стоп-битами и коэффициентом деления частоты синхронизации, равным 1:16. Подпрограммы начните с адреса 0820H.
Занесите программы в память УМК1 и УМК2.
3.2.2. Разработайте программу PROG, которая осуществляет бесконечный цикл вывода символа из регистра C и передачу его в линию связи. Блок-схема программы приведена на рис. 5. Программу начните с адреса 0900H. Задержка DELAY служит для разделения во времени кодовых посылок в линии, что удобно для наблюдения. Для реализации DELAY используйте цикл декремента регистровой пары DE, предварительно загрузив в нее число 05FFH (подбирается экспериментально). Занесите программу PROG в память УМК1.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.