Главная » Просмотр файлов » Кочегаров И.И. Микроконтроллеры AVR. Лабораторный практикум (2012)

Кочегаров И.И. Микроконтроллеры AVR. Лабораторный практикум (2012) (1264221), страница 16

Файл №1264221 Кочегаров И.И. Микроконтроллеры AVR. Лабораторный практикум (2012) (Кочегаров И.И. Микроконтроллеры AVR. Лабораторный практикум (2012)) 16 страницаКочегаров И.И. Микроконтроллеры AVR. Лабораторный практикум (2012) (1264221) страница 162021-07-29СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 16)

Записать в регистры r17 и r18 соответственно числа 0x00 и0xFF.2. Установить в единицу четыре старших разряда регистра r17.Сбросить четыре младших разряда регистра r18.3. Установить в единицу нулевой, второй, четвертый и шестойразряды РВВ порта B.4. Пронаблюдать в пошаговом режиме за состоянием всех вышеперечисленных регистров.Содержание отчета Отчет должен содержать титульный лист с указанием номера иназвания лабораторной работы, номера группы и фамилий выполнивших работу; цель работы; листинги трансляции программ и сведения, указанные в задании; этапы преобразования числа в РОН привыполнении различных видов арифметических, логических и битовых команд.Контрольные вопросы 1.

Какие арифметические команды микроконтроллера вы знаете?2. Опишите логические команды. Какие допустимые операндыдля этих команд?3. Какие существуют варианты изменения определенного бита взаданном РОН с помощью логических команд?4. Какие происходят изменения определенного бита в заданномРОН с помощью команд установки битов?5. Как переслать заданный бит из одного РОН в другой?96Лабораторная работа № 4 Реализация типовых структур алгоритмов Цель работы: изучение принципов реализации типовых алгоритмических структур на примере ветвлений и циклических программ.Теоретическая часть Любая процедура управления или обработки данных представляет собой совокупность некоторых алгоритмических структур, спомощью которых выполняются требуемые операции.

Наиболее распространенными алгоритмическими структурами являются ветвления (branching) и циклы (loop) [5].Ветвления используются для выполнения различных частейпрограммы (разделения ветвей алгоритма) в зависимости от некоторых условий.В циклах одна и та же операция выполняется над содержимымнескольких последовательно расположенных в памяти ячеек илиэлементов данных. Использование циклических программ целесообразно при обработке массивов, таблиц и подобных по структуре данных. Числом повторений цикла управляют счетчики, а обрабатываемый при данном проходе цикла элемент определяется с помощьюиндекса или указателя.В циклической программе можно выделить четыре основныхблока.1.

Блок инициализации (от лат. initium – начало), в котором производится присвоение начальных значений переменным, счетчикам,индексам и указателям. Указатели представляют собой адреса данных в памяти.2. Блок обработки, в котором выполняются требуемые вычисления, т.е. одинаковые повторяющиеся действия над различными последовательно расположенными в памяти данными.3. Блок управления циклом, в котором изменяются значениясчетчиков и индексов (указателей) перед выполнением следующейповторяющейся операции, а также производится проверка условиявыхода из цикла.4. Заключительный блок, в котором производится сохранениеполученных результатов.Блоки 2 и 3 составляют тело цикла (loop body).

Для повышениябыстродействия и сокращения размера циклических программ сле97дует разгружать тело цикла от операций, которые могут быть выполнены за его пределами.Для организации циклических программ, а также ветвлений впрограммах используются команды безусловных и условных переходов. Кроме того, для построения циклов могут применяться специальные команды циклов, выполняющие несколько действий одновременно (в системе команд AVR-микроконтроллеров отсутствуют).Команды безусловных переходов JMP, RJMP, IJMP и EIJMPпередают управление по указанному в команде адресу памяти программ. Команда JMP (Jump – переход) позволяет передавать управление внутри всего объема памяти программ. Команда RJMP (RelativeJump – относительный переход) обеспечивает переход в пределах2 К слов (4 Кбайт) относительно текущего содержимого программного счетчика.

По команде IJMP (Indirect Jump – косвенный переход) выполняется косвенный переход по адресу, указанному регистром Z; максимальное смещение составляет 64 К слов (128 Кбайт).Команда EIJMP (Extended Indirect Jump – расширенный косвенный переход) обеспечивает косвенный переход по всему объему памяти программ; для расширения программного счетчика используется регистрEIND. При выполнении команд безусловных переходов в программный счетчик загружается адрес ячейки памяти программ, на которуюпередается управление.Команды условных переходов передают управление по указанному адресу памяти программ в случае выполнения некоторыхусловий.Команды BRхх (Branch if … – перейти, если …) выполняют переход на расстояние –64…+63 слова относительно текущего содержимого программного счетчика по результатам проверки разрядоврегистра состояния SREG (кодов или флагов условий).

Регистр состояния SREG находится в адресном пространстве регистров вводавывода. Коды условий (C, Z, N, V, S, H) формируются в регистре состояния при выполнении арифметических, логических команд и команд работы с битами и представляют собой признаки результатаоперации. Разряд С (carry – перенос) устанавливается, если при выполнении команды был перенос из старшего разряда результата.

Разряд Z (zero – нуль) устанавливается, если результат выполнения команды равен нулю. Разряд N (negative – отрицательный результат)устанавливается, если старший значащий разряд результата равен 1(правильно показывает знак результата, если не было переполненияразрядной сетки числа со знаком). Разряд V (overflow – переполне98ние) устанавливается, если при выполнении команды произошло переполнение разрядной сетки числа со знаком.

Разряд S = N  V(sign – знак) правильно показывает знак результата при переполнении разрядной сетки числа со знаком. Разряд H (half carry – полуперенос) устанавливается, если при выполнении команды был переносиз третьего разряда результата.Для организации ветвлений при сравнении операндов командыBRхх используются совместно с командами CP (Compare) сравнениясодержимого двух РОН, CPC (Compare with Carry) сравнения с учетом признака переноса и CPI (Compare with Immediate) сравнения сконстантой. Команды ветвления BRхх отличаются для операндов беззнака и со знаком.

Числа без знака представляются прямым кодом,числа со знаком – дополнительным кодом.Команды условных переходов, используемые для ветвлений присравнении операндов, сведены в табл. 5.Таблица 5УсловиеЛогическоевыражениеRd > RrZ(N  V) = 0C+Z=0Rd  RrRd = RrRd  Rr(N  V) = 0C=0Z=1Z=0Rd  RrZ + (N  V) = 1C+Z=1Rd < Rr(N  V) = 1C=1КомандасравненияпереходаCP Rr, RdBRLTCP Rr, RdBRLOCP Rd, RrBRGECP Rd, Rr BRSH/BRCCCP Rd, RrBREQCP Rd, RrBRNECPCPCPCPRr,Rr,Rd,Rd,RdRdRrRrBRGEBRSHBRLTBRLO/BRCSОперандысо знакомбез знакасо знакомбез знакасо знаком, без знакасо знаком, без знакасо знакомбез знакасо знакомбез знакаК командам условных переходов также относится командаCPSE (Compare and Skip if Equal – сравнить и пропустить, если равно), которая сравнивает содержимое двух РОН и пропускает следующую за ней команду, если содержимое одинаково.Команды SBRS, SBRC, SBIS, SBIC (Skip if Bit in Register [I/ORegister] is Set [Cleared] – пропустить, если разряд в регистре общегоназначения [ввода-вывода] установлен [сброшен]) пропускают следующую команду в случае выполнения соответствующего условия.99При обработке массивов в циклических программах эффективно использование косвенной адресации памяти данных с предекрементоми постинкрементом, а также косвенной адресации памяти данных сосмещением.На рис.

30 приведен фрагмент программы, в которой число 100заносится в ячейки массива из пяти байт. Для проверки условия выхода из цикла и передачи управления используется команда BRNE.Предел повторений цикла равен 5, шаг равен –1, параметр цикла(счетчик) содержится в регистре R16.Практическая часть 1. Дополнить фрагмент программы, приведенный на рис. 30,необходимыми директивами. Изменить число, заносимое в ячейкимассива, в соответствии с заданным вариантом (табл. 6). Выполнитьпрограмму в пошаговом режиме с помощью симулятора-отладчика.2.

Произвести изменения в программе: заменить команды ADD(сложение) и SUB (вычитание) на INC (инкремент) и DEC (декремент) соответственно.; ...array:; ...LDILDILDI.byte 5R16, 5R17, 100R18, 1; 5 байт для массива array; предел повторений цикла; число, заносимое в массив arrayLDI R30, low(array) ; младший байт адреса массива arrayLDI R31, high(array) ; старший байт адреса массива arrayloop:ST Z, R17ADD R30, R18SUB R16, R18BRNEloop; тело цикла; занесение числа 100 в массив array; адрес следующего байта массива array; счетчик числа проходов, шаг равен -1; повторить, если счетчик не равен ну-лю; ...Рис.

30. Фрагмент программы циклической обработки массива100Таблица 6Номер Чисвари- лоанта199298397496595694793892991109011891288138714861585Массив I13; 78; 1;24; 185; 61; 75;17; 2733; 44; 29;81; 2024; 31; 6;55; 7168; 41; 25;13; 5745; 55; 2;109; 3323; 13; 67;39; 4834; 92; 8;20; 7128; 0; 139;36; 1761; 40; 22;27; 667; 56; 29;16; 10449; 24; 49;84; 1551; 33; 19;48; 8067; 30; 25;52; 38120; 36; 7;10; 45Номер ЧисМассив IIМассив Iвари- лоанта81; 10; 201;168465; 2; 43;33; 810; 12542; 137; 72;178314; 23; 83;9; 5330; 667; 100; 38;1882 34; 18; 136;49; 9927; 530; 127; 23;198123; 75; 30;8; 1715; 4148; 4; 15;208071; 52; 19;36; 12124; 889; 57; 15;2179 49; 117, 29;22; 2076; 2147; 180; 3;227883; 16; 54;10; 5527; 3036; 76; 23;237737; 65; 29;99; 4086; 24128; 35; 5;247651; 36; 48;68; 7225; 8059; 31; 129;257513; 41; 27;18; 6382; 7787; 23; 90;267494; 2; 17;44; 6238; 4575; 3; 12;27736; 60; 73;64; 22718; 44145; 26; 1;287248; 14; 23;13; 8850; 6535; 62; 8;297131; 52; 17;59; 4624; 7853; 47; 35;307066; 70; 42;62; 8113; 29Массив II84; 95; 5;116; 4847; 50; 36;21; 7494; 52; 47;85; 21110; 4; 39;40; 3337; 44; 26;60; 1851; 14; 57;23; 4894; 35; 76;55; 8181; 23; 70;64; 3278; 94; 8;24; 12853; 67; 15;56; 3017; 0; 49;69; 32100; 22; 37;9; 5662; 58; 46;59; 333; 88; 53;162; 7242; 15; 76;38; 863.

Характеристики

Список файлов книги

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6418
Авторов
на СтудИзбе
307
Средний доход
с одного платного файла
Обучение Подробнее