Хартов В.Я. Микроконтроллеры AVR. Практикум для начинающих (2007) (1264222), страница 4
Текст из файла (страница 4)
Инструментальные средства практикума Косвенное сохранение отно- сительное Прямое сохранение Загрузка из программной памяти в КО Загрузка из программной памяти в регистр Кс) с постинкрсментом Сохранение в программной памяти Таблица 1.б. Команды управлении Переход Косвенный переход по (У) Вызов подпрограммы Косвенный вызов по (Х) Возврат из подпрограммы Возврат из прерывания Сравнить и пропустить команду, если равны Пропустить, если бит в регистре равен 0 Пропустить, если бит в регистре равен 1 Пропустить, если бит порта равен 0 Пропустить, если бит порта авен 1 ВКВБ а, 1с ВКВС з, !с ВКЕО !с ВКХЕ 1с НКСГ 1с ВКСС 1с ВКЗН 1с ВКЬО 1с ВКМ! 1с ВКРЫс ВКСЕ 1с ВКЬТ 1с ВКПБ 1с ВКНС 1с ВКТБ !с ВКТС 1с ВКЧБ 1с ВКЧС 1с ВК!Е !с ВКП) 1с Перейти, если флаг в БКЕС = 1 Перейти, если флаг в БКЕС = 0 Перейти, если равно Перейти, если не равно Перейти, если С = 1 Перейти, если С = 0 Перейти, если больше или равно Перейти, если меньше Перейти, если минус Перейти, если плюс Перейти, если флаг Т = 0 если (ЯКЕС(з) = 1), то РС» — РС.ь(сь! если (ЕКЕС(я) = 0), то РС -РС е 1с + 1 если (У = 1), то РС -РСь)с+ 1 если (У, = 0), то РС -РС-ь)сж! если(С= 1), то РС -РС+ 1с+! если (С = 0), то РС вЂ” РС + 1с е 1 если (С = 0), то РС -РС т 1с+ 1 если (С = 1), то РС+ — РС + !с + 1 если (Х = 1), то РС» — РС е 1с + 1 если (Х= 0), то РС вЂ” РС е 1с ь 1 если (ХЮЧ = 0), то РС» — РС + 1с + 1 если ()чО+Ч =!), тоРС вЂ” РС-ь1с ь 1 если (Н = 1), тоРС -РС + 1с е 1 если (Н = 0), то РС» — РС + )с+ 1 если (Т = 1), то РС вЂ” РС + 1с е 1 если (Т = 0), то РС вЂ” РС -ь 1с + 1 если (Ч =.
1), то РС вЂ” РС е 1с е 1 если (Ч = 0), то РС» — РС + 1с е ! если (1 = 1), то РС» — РС е !с + 1 если (1 = 0), то РС вЂ” РС ь 1с е 1 22 1.1 МикроконтроллерыАТх8515 Таблица 1. 7 Операции с битами Регистровый фвйд О Регистровый фвйд О 31 31 63 Рис. 1.5. Прямая адресация регистра ввода/вывода 1. Инструментальные средства практикума Способы адресации данных в микроконтроллерах АУК Ключевым моментом к пониманию функций, выполняемых каждой командой, помимо кода операции являются используемые командой способы адресации данных (операндов).
Микроконтроллеры Ав'К применяют разнообразные способы адресации данных. По количеству и способам адресации они превосходят возможности микроконтроллеров МСБ-51. При том или ином способе адресации можно осуществить доступ к любой области памяти данных (регистрам общего назначения, регистрам ввода!вывода, памяти ЖАМ), а также Р)азЬ-памяти программ и энергонезависимой памяти данных ЕЕРКОМ. При этом часто к одному и тому же объекту можно обратиться разными способами, используя для этого соответствующий вид адресации. Рассмотрим каждый из них подробнее.
Прямая регистровая адресация с одним регистром )Ы При этом способе адресации данные находятся в регистре д(Кд), адрес которого содержится непосредственно в команде (рис. 1.4, а). Примером команд, использующих этот метод адресации, являются команды для Рис. 1.4. Прямая регистровая адресация одного (а) и двух (б) регистров обшего назначения работы со стеком (РАН, РОР), обмена тетрадами в регистре (Я%АР), ряд команд арифметических и логических операций. Прямая регистровая адресация с двумя регистрами Ы и йг. Данный способ адресации применяется в командах, которые используют два регистра общего назначения: г)(Кд) и г(Кг) (рис. 1.4, б). Этот вид адресации используют команды пересылки данных из регистра в регистр и болыпинство команд арифметических операций, ряд команд логических операций.
При этих операциях результат операции сохраняется в регистре д (Кд). Прямая адресация ре истра ввода!вывода. Данный вид адресации используют для выполнения обмена между регистром ввода/вывода, расположенным в 1 5 О О адресном пространстве ввода!вы- коп оа р память ввода/ вода, и одним из регистров обще- выводв го назначения по командам ПЧ и 015Т (рис. 1.5). Г!рямая адресация памяти данных. Данный способ адресации применяется при обращении к любой ячейке адресного пространства ЯКАМ. Имеются всего две команды: Ь(38 и БТБ, каждая длиной в два слова (32 разряда).
Первое слово содержит код операции и адрес регистра общего 25 24 1. Инструментальные средства практикума 1.1. Микроконтроллеры АТхВ515 11 16 ОЗУ данных 30000 назначения, второе — 16-разрядкоп ца ный адрес ячейки, к которой на- 1б млаыаны ьнх правлено обращение (рис.
1.6). 15 0 Косвенная адресация памяти данных. При косвенной алресации обращение направлено зРРРР к ячейке памяти, адрес которой находится в 16-разрядном инРис. 1.6. ПРЯмаЯ алРесацнЯ памхгн дексном регистре Х У или 7 данных (рис. 1.7). В роли этих регистров выступают пары регистров: заыв К26, К27 (регистр Х), К28, К29 (регистр х') и КЗО, К31 (ре- Х, Унана-р вр гистр Е). Косвенная адресация памяти данных со смещением. При этом способе адрес ячейки аРРРР памяти определяется путем сумРнс. 1.7. Косвенная адресация мирования содержимого индекс- памяти данных ного регистра х' или Х с 6-разрядным смещением, задаваемым в команде (рис. 1.8). Этот способ адресации используют команлы ЫН) (пересылка байта из ячейки памяти ЯКАМ в регистр К11) и ЯТП (пересылка байта из регистра Кг в ячейку 8КАМ). ОЗУ данных а0000 Рнс.
1.8. Косвенная адресация памяти данных со смещением Косвенная адресация памяти данных с преддекрементом. При этом способе адресации содержимое индексного регистра Х, 1' или Х сначала уменьшается на 1, а затем производится обращение к памяти по полученному адресу (рис. 1.9).
Этот способ адресации используют команды 1.П (пересылка байта данных из памяти в ОЗУ данных 30000 Рнс. 1.9. Косвенная адресация с прелдекрсмснтом регистр Кд) и ЯТ (пересылка байта данных из регистра Кг в память), всего шесть команд — по две для каждого регистра. Косвенная адресация памяти данных с постинкрементом.
При этом способе адресации содержимое индексного регистра Х, У или Х сначала используется в качестве адреса обращения к памяти данных, а затем увеличивается на 1 (рис. 1.10). Этот способ адре- ОЗУ данных 00000 Рне. 1.10. Косвенная адресация с постинкрементом сации используют команды ПЗ (пересылка байта данных из памяти в регистр К11) и 8Т (пересылка байта данных из регистра Кг в память), всего шесть команд — по две для каждого регистра. Косвенная адресация памяти проерамм, Микроконтроллеры АЧК позволяют обратиться к ячейкам памяти программ для считывания констант, а в моделях семейства Меда — и для записи данных во Г!аз)1-память программ, используя механизм косвенной адресации через регистр У..
При этом старшие 15 разрядов регистра определяют адрес слова, а младший нулевой разряд — младший или старший байт слова. Если младший разряд адреса равен О, выбирается младший байт, в противном случае выбирается старший байт (рис. 1.11). Данный вид адресации используют команды считывания из ячейки памяти в регистр КО (1.РМ) и записи в память из регистров К1:КО (8РМ).
27 26 1 1. Микроконтроллеры А Тх8515 Память программ Я000 Память программ а000 гррр Память программ 3000 Описание команд 1. Инструментальные средства практикума Рис. 1.11. Косвенная адресация констант в памяти программ Кроме простой косвенной адресации при чтении константы в регистр Кь! можно применить косвенную адресацию с постинкрементом (команда 1.РМ Кт1, У;ь), Помимо команд, связанных с передачей данных, косвенная адресация может быть использована в командах косвенного перехода по адресу в регистре Х (!1МР) и косвенного вызова полпрограммы через регистр Х (1САЬЬ) (рис. 1.12).
зррр Рис. 1.12. Косвенная адресация памяти программ Относительная адресация памяти программ. При этом способе адрес вычисляют путем сложения содержимого программного счетчика РС и константы )с, задаваемой в команде (рис. 1.13). Относительную алресацию используют команды относительного перехода (К1МР) и относительного вызова подпрограммы !КСАЬЬ), многочисленная группа команд условных переходов.
В дополнение к перечисленным в Руководстве по микроконтроллерам способам адресации укажем еще два ее вида. Непосредственная адресация. Данный вид адресации подразумевает указание одного из операндов (константы К) непосредственно в команде, Непосредственная адресация используется командой пересылки константы в регистр Ь!31, а также некоторыми командами арифметических и логических операций. Рис. 1.13. Относительная адресация памяти программ Битовая адресация.
Этот вид адресации позволяет указать олин из восьми битов любого из 32 регис~ров общего назначения или первой половины регистров ввода1вывода с номерами 0 — 31, а также регистра 8КЕО. Для этого нужно указать имя регистра общего назначения К1 (! =- 0...31) либо имя регистра ввола1вывода Р! (1 = 0...31), либо имя ЯКЕО и номер бита Ь (Ь = 0...7). Командами 8В! и СВ! осуществляется установка в 1 и сброс в 0 указанного бита регистра ввода/вывода, командами ВЬ!3, ВВТ вЂ” обмен значениями бита Т из регистра ЯКЕО и алресованного бита из регистра общего назначения. Помимо этого есть группа команд битовых операций, обеспечивающая установку и сброс битов регистра состояния ЯКЕО. При записи мнемоники команд допускается использование символических (штатных) имен регистров ввода1вывода и имен битов.
Существует группа команд условного перехола, где в качестве условия используется либо значение бита в регистре общего назначения (8ВКС, 8ВК8), либо значение бита в регистре ввода1вывода !8В!С, 8В18). Ранее приведены таблицы с описанием команд микроконтроллеров Ат"К, разбитые по группам. Кроме операции и операндов для каждой команды указаны признаки результата, формируемые в регистре 8КЕО. Мнемоники команд, выполняемых только в микроконтроллерах семейства Меда, помечены *.
Группа арифметических и логических операций по составу достаточно традиционна для архитектуры 8-разрядных микроконтроллеров, за исключением микроконтроллеров семейства Меда. Так, например, в группу арифметических команд микроконтроллера АТшеда8515 добавлены шесть операций умножения: беззнаковых чисел МЫЬ, чисел со знаком М1Л.Я, беззнакового числа на число со знаком МЫЬВЫ„дробных беззнаковых чисел РМ1Л., дробных со знаком РМ1Л.8, дробного беззнакового и дробного со 28 1.