СОВРЕМЕННАЯ ЭЛЕКТРОНИКА №4/2012

Чтобы вся конструкция работала, для неё необходимо создать прототип: MODULE('IN/OUT.CPP') INASM(),BYTE,NAME('_INBASM') END Кроме того, вфайл проект необходи мо включитьподпрограмму Inbasm.cpp. Т ЕСТОВАЯ ПРОГРАММА ВВОДА / ВЫВОДА СТРОКИ БАЙТОВ ДЛЯ КОМПЬЮТЕРА Суть этой тестовой программыпрос та: из компьютера в микроконтрол лер передаётся строка, состоящая из 75 байтов (символов), которая прини мается микроконтроллером, затем им же модифицируется (изменяется пря док следования символов на обрат ный), затем эта модифицированная строка передаётся микроконтролле ром в компьютер, принимается ком пьютером и выводится на экран для сравнения с исходной строкой (ко торая предварительно выводится на экран). Ядром программы являются следую щие операторы: loop i=1 to 75 OUTASM(M[i]) !Вывод 75 байт в микроконтроллер . ! В этом месте идет пере ключение с вывода на ввод. B=INP(3f8h) !Холостой ввод для сброса бита DR data ready. loop while band(INP(3fdh),1). !Ожидание сброса бита "DR" data ready. Sleep(2) ! Задержка 2 мсек. ! loop i=1 to 75 M1[i]=INASM() !Ввод 75 байт в компьютер. . В остальном тексте программы определяются различные переменные, прототипы функций, открытие порта RS 232 и его инициализация, инициа лизация микроконтроллера, открытие окна, в котором отражается результат работы программы (см. рис. 7), и т.п. Полный текст программы testRS232.clw вместесфайл проектомприведеннаин тернет страницежурнала (www.soel.ru) . Что касается аппаратных средств, то они подробно описаны в [2]. Конкрет но эта программа проверялась с мик роконтроллером P89LPC982. В левом верхнем углу рисунка 7 отоб ражается количество передач (или ко личество нажатий на кнопку «Продол жить» – в данном случае автор нажал на неё 107 раз). Прежде чем запускать эту програм му в Windows XP, требуется произвес ти настройку COM порта, воспользо вавшись панелью управления. Свой ства COM порта, которые следует настроить, – отсутствие управления потоком и отсутствие буферов [1]. Кроме того, для прямого ввода/выво да в этот порт необходимо устано вить на компьютере один из драйве ров, которые разрешают производить такой ввод/вывод, например, про грамму USERPORT (UserPort.sys), и вписать адреса портов для прямого ввода/вывода. П ОЛУЧЕНИЕ МАШИННЫХ КОДОВ ДЛЯ ПОДКЛЮЧАЕМЫХ ПОДПРОГРАММ Довольно давно существует упоми навшийся выше компилятор языка Бейсик – турбо бейсик (TB.EXE v.1.0 от Borland International), работающий в DOS и позволяющий использовать подключаемую подпрограмму, но не в машинных кодах, а непосредственно как объектный файл в *.com формате. Сопряжение такой подпрограммы с самим языком Бейсик достаточно простое и описано в руководстве по его использованию. Чтобы получить файл подпрограммы на ассемблере в *.com формате, можно воспользовать ся транслятором с ассемблера, напри мер, турбо ассемблером TASM той же фирмы Borland (TASM – Turbo Assem bler v.4.1 (или v.1.0) Borland Interna tional, TLINK – Turbo Link v.7.1.30.1 (или v.2.0) Borland International). Какая программа должна быть напи сана на турбо бейсике и какие подклю чаемые подпрограммы она должна со держать, чтобы решить поставленную задачу? Проще всего, если программа на TB будет выполнять те же действия, что и программа testRS232.clw (ввод/ вывод строки байтов по RS 232 в мик роконтроллер), приведённая выше на языке Clarion, и в качестве подключае мой подпрограммы в *.com формате будут использоваться подпрограммы приёма. Тогда с помощью основной программына TB можно проверять их работоспособность, выводя сообще ния на монитор. ПРОГРАММИРОВАНИЕ 70 WWW.SOEL.RU СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 4 2012 Рис. 7. Снимок с экрана, отображающий работу программы testRS232.exe Рис. 6. Блок схема подпрограммы синхронного ввода байта в компьютер Поступил старт бит? [( 3feh ) = 02 h ?] Поступил байт данных? [( 3fdh ) = 01 h ?] Очистка регистра состояния модема (3 feh ) Чтение регистра состояния модема (3 feh ) Чтение регистра состояния линии (3 fdh ) Чтение байта данных (3 f8h ) в регистре al Выход из п/п Временная задержка 25 мкс Сброс линии TxD – запрет передачи (установка сиганала BREAK ) Нет Нет Да Да Установка линии TxD – разрешение передачи (сброс сигнала BREAK ) © СТА-ПРЕСС

RkJQdWJsaXNoZXIy MTQ4NjUy