Главная страница Комбинированное использование портов rcv byte bit delay :loop Принятый байт. Размещение программы в ПЗУ с нолевого ; Определение типа PlC-микроконтроллера. ; Внимание! Используйте только версии ; с кварцевым резонатором ; для лучшей временной стабильности работы devicepicl6c54,xt osc,wdt off,protect off reset begin
mov data out,rcv byte goto begin:start bit Индикация принятого байта. Прием следующего байта. Ожидание времени бита. mov пор djnz ret delay cntr,#bit K delay cntr, :loop ; Ожидание середины бита. tartjelay :loop mov nop djnz ret delay cntr,#half bit delay cntr, :loop Если стартовый бит обнаружен, осутцествляем прием данных, повторяя восемь раз след) ющие операции: Ф ожидание времени регистрации бита; считывание бита и запись его в бит переноса, а затем в байт приема с помощью команды сдвига вправо; Ф декрементирование счетчика битов; f повторение процесса до тех пор, пока этот счетчик не станет равным нулю. Затем программа посылает полученный байт на светодиоды. Правильная работа этой программы зависит только от константы bit K. Эта константа определяется частотой тактового генератора используемого PIC-микроконтроллера и скоростью передачи принимаемой последовательности. В табл. 4.1 приводятся используемые значения для четырех различных частот тактового генератора и для четырех наиболее распространенньгх скоростей передачи асинхронных последовательностей. Как видно из таблицы, при использовании генератора на 8 МГц с этой подпрограммой можно работать на скорости до 19200 бод. Таблица 4.1............. Значение конаанты bit K в зависимости от скорости передачи асинхронной последовательноаи и чааоты тактового генератора
Передача асинхронной последовательности данных также не ь зывает затруднений. Схема рис. 4.11 и листинг 4.18 демонстрирл интересный пример, который помимо подпрограмм передачи д!} ных содержит главную программу, передающую слово Parallax. Упрощенный бариант, если позболяет Внешнее оборудование lOpF lOpF lOjuFi Baxog -3. интерфеоса RS 232 WAX 232 C1 + + 10 C1-C2 + C2--10 X2 OUT R2 in Vcc gnd XI OUT Rl in Rl OUT XI in X2 in R2 OUT lOpF Рис. 4.11 Схема программной реализации передачи асинхронной последовательноаи Программа включает две основные подпрограммы: Again и xmt byte. Первая устанавливает счетчик битов, считывает буквы, подлежащие передаче из таблицы string, и помещает их в регистре Подпрс- ;амма xnit byte выполняет собственно передачу. Она начинается тем, что выдает логический ноль на выбранный для передачи выход, чтобы сгенерировать стартовый бит, а затем в цикле ocvW ствляет следующие операции: Ф сдвиг вправо байта, подлежащего передаче (при котором теку-хдйй передаваемый бит пересылается в бит переноса); пересылку бита переноса в соответств}тощий разряд параллельного порта; отсчитывает интервал передачи бита; уменьшает значение счетчика битов; повторяет процесс, пока значение счетчика не станет равно нулю. Как и в случае приема, передача сигналов основывается только на равильных значениях константы bit K. В обеих программах (приема и передачи сигналов) значения константы bit K идентичны, поэтому и в этом примере вы можете использовать табл. 4.1. Листинг 4.18 Передача асинхронной последовательности. Соответствует инструкции по применению фирмы Parallax. Эта программа выдает данные в виде асинхронной последовательности через RA2. Скорость передачи определена константой bit K. Формат передачи - 8 битов данных и 1 стоп-бит без бита четности. bit K serial out ra.2 Значение выбирается в зависимости от скорости. ; Определение переменных величин, org 8 delay cntr ds 1 ; Счетчик времени. bit cntr ds 1 ; Число переданных битов. sg cntr ds 1 ; Смещение в строке (таблице). t byte ds 1 ; Байт, который надо передать. I Программа в ПЗУ с адреса = 0. org О < Определение PIC-микроконтроллера. Внимание! Используйте только версии о кварцевым генератором для лучшей временной стабильности. device picl6c54,xt osc,wdt off,protect off reset begin Sin irov Ira, ftOOOOOOOOb; Bee разряды порта A - выходы. mov msg cntr, #0 ; Последовательность 9 букв (0-8). :again :xmlt
:endless ; Чтобы изменить скорость передачи, измените значение bit K. bit delay :1оор mov nop delay cntr, #bit K string ]Гф djnz delay cntr, :loop ret pc+w retw ; Последовательность букв Parallax P , a , r , a, Г, 1, a , x , 10 ГЛАВА 5 ПЕНИЯ &.ЭТОЙ главе: =Часы с будильником 1?еализация шины PC Четырехканальный вольтметр [со светодиодной индикацирй Микрокомпьютер, программируемый на Basic
|
© 2000 - 2024 ULTRASONEX-AMFODENT.RU.
Копирование материалов разрешено исключительно при условии цититирования. |