- •А.В. Шарапов
- •Часть 1. Микроконтроллеры мк51
- •Предисловие
- •1 Принципы построения цифровых устройств управления
- •2 Общая характеристика микроконтроллеров семейства мк51
- •3 Программная модель и система команд мк51 ( лабораторная работа №1)
- •Программная модель микроконтроллера мк51
- •Система команд микроконтроллера
- •Команды микроконтроллера семейства мк51
- •Команды, влияющие на флаги результата
- •Запись программы на языке ассемблера и ее трансляция
- •Загрузка программы в эмулятор и управление его работой
- •Программа работы
- •Контрольные вопросы
- •Содержание отчета
- •4 Таймеры и система прерываний mк51 (лабораторная работа №2)
- •Таймеры/счетчики событий mcs-51
- •Система прерываний mк51
- •Программа работы
- •Контрольные вопросы
- •Содержание отчета
- •Машинные коды команд mк51
- •5 Упражнения по решению задач
- •6 Примеры программ обработки данных
- •7 Последовательный порт мк51
- •8 Организация линий портов мк51. Подключение внешних устройств
- •9 Направление развития элементной базы 8-разрядных микроконтроллеров Отличительные признаки современной элементной базы
- •Направления развития 8-разрядных мк
- •Модульный принцип построения
- •Резидентная память мк
- •Таймеры и процессоры событий
- •Сторожевой таймер
- •Контроллеры последовательного ввода/вывода
- •Минимизация потребления энергии в системах с мк
- •10 Микроконтроллеры семейства ат89 фирмы Atmel
- •Микроконтроллер at89c4051
- •Микроконтроллер at89s51
- •11 Примеры вопросов компьютерной контрольной работы
- •Литература
- •Часть 2. Микроконтроллеры avr
- •Предисловие
- •1 Общая характеристика микроконтроллеров avr, программная модель и система команд
- •2 Директивы ассемблера
- •Include — Вложить другой файл
- •Форматы представления чисел
- •3 Программный пакет avrStudio
- •4 Микроконтроллер aTtiny15l(лабораторная работа №3)
- •Таймеры aTtiny15l
- •Энергонезависимая память данных еeprom
- •Аналоговый компаратор
- •Аналого-цифровой преобразователь
- •Программа работы
- •Контрольные вопросы
- •Содержание отчета
- •Перечень команд микроконтроллера aTtiny15l
- •5 Микроконтроллер aTmega8 (лабораторная работа № 4)
- •Порты ввода-вывода
- •Регистры таймера т1
- •Режимы работы таймера т1
- •Нормальный режим работы (Normal)
- •Режим сброса таймера при совпадении (стс)
- •Режим быстрой шим (Fast pwm)
- •Режим шим с фазовой коррекцией
- •Режим шим с фазовой и частотной коррекцией
- •Прерывания от таймеров /счетчиков
- •Программа работы
- •Контрольные вопросы
- •Содержание отчета
- •6 Средства разработки программы на языке си, компиляторы и симуляторы
- •7 Язык си для микроконтроллеров
- •Структура программы на языке Си
- •Пункт 4. Объявление переменных
- •8 Загрузка программы в микроконтроллер
- •9 Моделирование работы микроконтроллера avrс помощью симулятораvmlab (лабораторная работа №5)
- •Программа работы
- •Содержание отчета
- •10 Моделирование работы микроконтроллера avr с помощью симулятора proteus vsm
- •11 Измеритель частоты сети
- •Обоснование алгоритма решения задачи
- •Разработка прикладной программы
- •Моделирование работы устройства с помощью vmlab
- •Моделирование работы устройства с помощью симулятора
- •Литература
Команды, влияющие на флаги результата
-
Мнемоника
Флаги
Команда ADD A, <байт источника>
AC
C
OV
Команда ADDC A, <байт источника>
AC
C
OV
Команда ANL C, <бит источникa>
C
Команда ANL C, </бит источникa>
C
Команда CJNE <байт назначения>, <байт источника>, <смещение>
C
Команда CLR C
C
Команда CLR <bit>
bit
Команда CPL C
C
Команда CPL <bit>
bit
Команда DA A
AC
C
Команда DIV AB
C=0
OV
Команда MOV <бит назначения>, <бит источника>
C
bit
Команда MUL AB
C=0
OV
Команда ORL C, <бит источникa>
C
Команда ORL C, </бит источникa>
C
Команда RLC A
С
Команда RRC A
C
Команда SETB C
C
Команда SETB <bit>
bit
Команда SUBB A, <байт источника>
AC
C
OV
Сигнал сброса обнуляет содержимое регистров PC, ACC, B, PSW, DPTR, TMOD, TCON, T/C0, T/C1, IE, IP и SCON, в регистре PCON сбрасывается только старший бит, в регистр SP загружается код 07Н, а в порты Р0-Р3 загружаются коды 0FFH (настраивая их на ввод). Сигнал сброса не воздействует на содержимое ячеек РПД.
Запись программы на языке ассемблера и ее трансляция
Язык ассемблера допускает представление всех элементов программы в символической (буквенно-цифровой) форме, отражающей их содержательный смысл. В качестве алфавита допустимых символов принят код ASCII (американский стандартный код для обмена информацией). Каждая строка ассемблера соответствует одной команде или псевдокоманде (директиве) и может содержать поля метки, мнемоники команды, операнда и комментария. При наличии в программе синтаксических ошибок ассемблер в процессе трансляции выдает сообщения об ошибках.
Метка ассоциируется с 16-битовым адресом той ячейки памяти, где будет размещен первый байт отмеченной команды. Использование меток освобождает программиста от необходимости оперировать абсолютными адресами памяти при записи команд передачи управления. Метка должна начинаться с буквы и заканчиваться двоеточием. Не допускается использовать в качестве меток мнемокоды команд, обозначения операндов и директив ассемблера. Символическое обозначение может появиться в поле метки только один раз.
Мнемокод команды может включать до четырех символов и вместе с обозначениями операндов образует группу ключевых слов ассемблера.
Поле операнда содержит числовые и символьные непосредственные данные, обозначения регистров и регистровых пар МК, адреса памяти. Возможно использование выражений, содержащих простейшие арифметические и логические операции, обработку которых ассемблер при трансляции производит в формате 16-разрядных двоичных чисел. Операнд в виде строки символов, заключенной в апострофы, транслируется в последовательность кодов ASCII этих символов.
Поле комментария начинается с точки с запятой и полностью игнорируется ассемблером. В поле комментария фиксируется обычно функция, которую выполняет группа команд в конкретной прикладной программе.
Кроме команд программа может содержать директивы ассемблера:
Запись исходного текста программы осуществляется с помощью любого текстового редактора (например, вход в редактор Shift+F4 из FAR). Рекомендуется поле метки располагать с нулевой позиции, остальные поля отделять друг от друга клавишей табуляции. Имя программы на языке ассемблера должно иметь расширение.asm. Программа должна заканчиваться директивой END.
Для трансляции исходной программы с языка мнемокодов в машинные коды команд в данной лабораторной работе использу-ются следующие кросс-средства:
Ассемблер а8051;
Редактор связей xlink.
Ассемблирование производится в диалоговом режиме. Для трансляции программы TABLO.ASM можно вызвать ассемблер командой а8051, следующим образом отвечая на его запросы:
sourse file [.msa/s03]=TABLO.ASM
list file [.lst]=TABLO
object file=<Enter>
options=<Enter>
После ассемблирования в текущей директории будут сформированы файлы TABLO.LST (файл листинга программы) и TABLO.R03 (файл программы в объектном коде).
Ниже приводится пример записи на языке ассемблера текста программы TABLO.ASM:
Метка |
Мнемокод |
Операнды |
Комментарий |
; Основная программа
MAIN: MOV R0,#20H ; начальный адрес массива в РПД
MOV DPTR,#20H ; адрес таблицы символов в ПП
MOV R7,#32 ; число элементов массива
LCALL TEXT ; вызов подпрограммы TEXT
MOV R0,#20H ; начальный адрес массива в РПД
MOV DPTR,#40H ; адрес таблицы символов в ПП
MOV R7,#32 ; число элементов массива
LCALL TEXT ; очистка экрана
SJMP MAIN; зацикливание программы
; Подпрограмма заполнения массива ОЗУ
TEXT: CLR A ; очистка аккумулятора
MOVC A,@A+DPTR ; пересылка символа в А
MOV @R0,А ; пересылка символа в РПД
DJNZ R6,$ ; временная задержка
INC R0 ; увеличение указателей памяти
INC DPTR ; на единицу
DJNZ R7,TEXT ; организация цикла обработки
RET ; массива
; Таблица кодов отображаемых символов
ORG20H
DB'▫▫DEAR▫▫FRIEND!▫WELCOME▫TO▫TOMSK'
ORG40H
DB'▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫' ; 32 пробела
END
При наличии синтаксических ошибок ассемблер выдаст строку с ошибкой и кратким комментарием к ней на экран дисплея, а также продублирует эту информацию в листинге программы.
Если ошибок нет, можно вызвать редактор связей:
xlink -c8051 TABLO -o TABLO.HEX
Редактор связей сформирует файл TABLO.HEX, который необходим для работы эмулятора.