|
Пример программирования последовательного портаDate: 2015-10-07; view: 384. Пусть требуется принять в асинхронном режиме данные со скоростью 9600 бод и записать их во внешнюю память, начиная с ячейки 00H до 05FFH при тактовой частоте синхрогенератора микроконтроллера 11059 МГц.
jmp PROG ; Обход подпрограммы обработки прерывания от ;последовательного порта; org 0023H ; Установка 1-ой команды подпрограммы обработки ; прерывания на вектор; mov A, SBUF ; Начало подпрограммы обработки прерывания; movx @DPTR, A; Пересылка байта в ячейку внешней памяти; inc DPTR ; Увеличение адреса ячейки внешней памяти на 1; clr RI ; Сброс флага запроса прерывания от приёмника; reti ; Возврат из подпрограммы прерывания приёмника;
PROG: mov TMOD, #00100000b; выбор 2-го режима работы Т/С1; mov TH1, #FDH ; Загрузка в счётный регистр таймера T/C1 числа, ; ;определяющего скорость обмена (см. таблицу); mov TCON, #01000000b; включение Т/С1; mov SCON, #11010000b; Выбор 3-го режима работы последовательного ; порта (9 бит данных), установка бита ;разрешения приёма REN = 1, сброс бита RI; mov TE, #10010000; общее и индивидуальное разрешение прерываний ; от последовательного порта (установка битов ЕА ; и ES); DD: mov DPTR, #00H ; загрузка начального адреса ячейки внешней памяти; SS: mov R0, DPH; ; ожидание, когда внешняя память заполнится до cjne R0, # 05h, SS ; адреса 0500Н; mov R0, DPL ; ожидание, когда внешняя память заполнится до cjne R0, #FFH, SS; адреса 05FFH; jmp DD ; повторение цикла заполнения ячеек внешней памяти ; по тем же адресам;
Литература
3.1. Сташин В.В., Урусов А.В., Мологонцева О.Ф. Проектирование цифровых устройств на однокристальных микроконтроллерах. М.: Энергоатомиздат, 1990. 224 с. 3.2. А.Е.Васильев. Микроконтроллеры. Разработка встраиваемых приложений. 2008, 304 с. 3.3. Белов А.В. Конструирование узлов на микроконтроллерах. – СПБ.: "Наука и техника, 2005 3.4. Базылев В.К. Микропроцессорные системы сбора и обработки данных: методические указания к лабораторным работам / Рязан. Гос. Радиотехн. Ун-т: сост В. К. Базылев, Рязань, 2012. 56 с 3.5. Программирование интегральной системы сбора данных ADuC812: методические указания к лабораторным работам / Рязан. Гос. Радиотехн. Ун-т, сост. В. К. Базылев. Рязань, 2010. 24 с. 3.6. Каспер Э. Программирование на языке Ассемблера для микроконтроллеров i8051. 2004. 191 с. 3.7. Болски М. И. Язык программирования Си: справочник: пер. с англ. – М.: Радио и связь, 1988. – 96 с. 3.8. Уэйт М., Прата С., Мартин Д. Язык Си для начинающих: пер. с англ. – М.: Мир, 1988. – 120 с. 3.9. Proteus по-русски. Радиоежегодник. Выпуск 24, 2013 г.
|