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

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

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

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

В последнем варианте программы исключить команду INCза счет использования косвенной адресации памяти данных с постинкрементом.4. Изменить порядок подсчета числа проходов цикла, задав изменение параметра цикла (счетчика) не с предела, а с нуля.1015. Составить программу пересылки массива из памяти программ в память данных. Массив в памяти программ задать директивой .db; значения элементов массива взять из табл. 6 (массив I) в соответствии с заданным вариантом.6. Составить программу суммирования элементов массива. Значения элементов массива задать аналогично п.

5.7. Составить программу поэлементного сложения двух массивов. Значения элементов массивов взять из табл. 6 (массив I и массив II) в соответствии с заданным вариантом.8. Составить программу слияния двух массивов, где в результате попарного сравнения двух элементов из разных массивов образуется новый массив из наибольших элементов. Значения элементовмассивов взять аналогично п. 7.Содержание отчета Отчет должен содержать титульный лист с указанием номера иназвания лабораторной работы, номера группы и фамилий выполнивших работу; цель работы; листинги трансляции программ в соответствии с заданием.Контрольные вопросы 1. Назовите наиболее распространенные алгоритмическиеструктуры.2.

Каковы назначение и общая структура циклических программ?3. Какие существуют команды, используемые для организацииветвлений и циклов?4. Опишите назначение и выполнение команд безусловных переходов.5. Назначение и выполнение команд условных переходов.6. Опишите механизм использования кодов (флагов) условий вкомандах условных переходов.102Лабораторная работа № 5 Организация подпрограмм Цель работы: изучение принципов организации подпрограмми передачи параметров; освоение команд, обеспечивающих взаимодействие вызывающей программы с подпрограммой.Теоретическая часть В большой и сложной программе можно выделить последовательности команд, выполняющие некоторые законченные функции(процедуры). Если такие последовательности команд оформить в виде отдельных модулей – подпрограмм (routine, subroutine), то в программе эти команды могут быть заменены вызовами соответствующих подпрограмм.

Такое модульное (структурное) программирование дает следующие преимущества: ускоряется и упрощается отладка всей программы; подпрограммы, реализующие универсальные функции, могутиспользоваться при разработке других программ; в одной программе могут быть объединены модули, полученные после трансляции программ, написанных на разных языках программирования.Для взаимодействия вызывающей программы с подпрограммойнеобходимо выполнение следующих условий: вызывающей программе должно быть известно положениеподпрограммы в общей структуре программы; должны быть определены способы вызова подпрограммы ивозврата из нее; должен быть выбран способ обмена данными между вызывающей программой и подпрограммой.Положение подпрограммы в общей структуре программы определяется по ее имени.

Имя подпрограммы на ассемблере, задаваемоесимволической меткой, является стартовым адресом исполняемойчасти подпрограммы.Вызов подпрограммы подразумевает передачу в нее управленияходом выполнения команд. Передача управления осуществляется путем загрузки в программный счетчик (РС) стартового адреса подпрограммы. При этом необходимо обеспечить сохранение адреса возврата из подпрограммы, т.е. адреса команды, следующей за командой103вызова подпрограммы. Для хранения адресов возврата из подпрограмм используется стек (stack).Стек – специальным образом организованная последовательность ячеек памяти с дисциплиной обслуживания «последним пришел – первым вышел» (LIFO: Last-In – First-Out).

При занесении встек новых данных предыдущие данные сохраняются, но становятсявременно недоступными («опускаются»). Выгружаются из стека(«поднимаются», «выталкиваются») данные в обратном порядке.Стек может быть реализован как аппаратно, так и программно. Аппаратный стек (Hardware Stack) выполняется непосредственно в составе процессора в виде набора специальных регистров и, как правило,имеет небольшую глубину. Программный стек (Software Stack) организуется в оперативной памяти; глубина определяется размером истепенью использования памяти.Адрес очередной свободной ячейки стека содержится в специальном регистре – указателе стека SP (Stack Pointer). При записи встек число помещается в ячейку с адресом, содержащимся в указателе стека, после чего содержимое указателя стека уменьшается наединицу (рис.

31,а). При чтении из стека производится выборка содержимого ячейки по адресу, на единицу большему содержимогоуказателя стека (рис. 31,б). Таким образом, при записи стека и чтениииз него содержимое указателя стека изменяется.Механизм использования стека для хранения адресов возвратаиз подпрограмм состоит в следующем. Когда в программе встречается команда вызова подпрограммы, в ячейку памяти, определяемуюуказателем стека, записывается адрес возврата; значение указателястека декрементируется; в программный счетчик загружается стартовый адрес подпрограммы.ИсходноесостояниеПосле записичисла С......***...AddrПосле чтения...*** Addr–1С AddrSPSPИсходноесостояние......*** Addr–1SPС AddrSP...*** Addr...а)б)Рис.

31. Операции записи в стек (а) и чтения из стека (б):*** – очередная свободная ячейка стека; Addr – адрес104Далее выполняются команды подпрограммы. Когда в подпрограмме встречается команда возврата в вызывающую программу,значение указателя стека инкрементируется; сохраненный в стеке адрес возврата загружается в программный счетчик (рис. 32). Использование стека для работы с подпрограммами позволяет одной подпрограмме вызывать другую, т.е.

обеспечивает возможность вложения подпрограмм. Глубина вложения подпрограмм ограничиваетсяразмером стека.Основная программа...Загрузка в стек адресавозврата; загрузка впрограммный счётчикстартового адресаподпрограммыВызов п/п SUBRСледующая команда...Извлечение из стекаадреса возврата; загрузкаадреса возврата впрограммный счётчикПодпрограммаSUBR: ......ВозвратРис. 32. Механизм вызова подпрограммы и возвратав вызывающую программуВ большинстве AVR-микроконтроллеров стек размещаетсяв оперативной памяти.

Указатель стека представляет собой пару8-разрядных регистров SPH (старший байт указателя стека) и SPL(младший байт указателя стека), находящихся в адресном пространстве регистров ввода-вывода. В микроконтроллерах, размер оперативной памяти которых не превышает 256 байт, для хранения указателя стека используется только один регистр SPL (SP). Микроконтроллеры, не имеющие оперативной памяти, содержат трехуровневый аппаратный стек.Организуемый в оперативной памяти стек «растет» от старшихадресов к младшим.

Учитывая, что начальное значение указателястека после сброса микроконтроллера равно нулю, в инициализирующей (начальной) части программы необходимо произвести егоустановку, если предполагается использование хотя бы одной подпрограммы. При организации стека во внутренней оперативной памяти это может быть сделано, например, следующим образом:105LDI R16, low(RAMEND); младшая часть адресаRAMENDOUT SPL, R16; инициализация SPLLDI R16, high(RAMEND); старшая часть адресаRAMENDOUT SPH, R16; инициализация SPHКоманда OUT осуществляет запись содержимого регистра общего назначения в регистр ввода-вывода; RAMEND – символическоеимя адреса последней ячейки внутренней оперативной памяти. Длятого чтобы использовать в программе символические имена адресовпериферийных устройств AVR-микроконтроллера, необходимо припомощи директивы .include подключить файл определения адресов периферийных устройств (inc-файл).

Например, для микроконтроллера ATmega8535 следует подключить файл m8535def.inc:.include "m8535def.inc"К подключаемому inc-файлу должен быть указан путь в полеInclude Path окна AVR Assembler, вызов которого осуществляетсякомандой AVR Assembler Setup меню Project. При использовании директивы .include нет необходимости включать в программу директиву .device, так как она содержится в соответствующем inc-файле.Избежать появления в листинге трансляции текста inc-файлапозволяет директива .nolist отключения листинга. Директива.nolist используется совместно с директивой .list включениялистинга (по умолчанию режим генерации листинга включен).Исключение inc-файла из листинга трансляции может быть произведено следующим образом:.nolist.include "m8535def.inc".list; отключить генерацию листинга; подключить inc-файл; включить генерацию листингаВызов подпрограммы на языке ассемблера AVR-микроконтроллеров осуществляется командами RCALL, ICALL, CALL и EICALL.

Команда RCALL (Relative Call – относительный вызов) обеспечивает вызов подпрограммы, смещение начального адреса которойотносительно текущего значения программного счетчика лежит в106пределах 2 К слов (4 Кбайт), с помощью относительной адресациипамяти программ. Команда ICALL (Indirect Call – косвенный вызов)производит косвенный вызов подпрограммы по адресу памяти программ, содержащемуся в регистре-указателе Z; максимальное смещение начального адреса подпрограммы составляет 64 К слов(128 Кбайт). Команда CALL (Call – вызов) обеспечивает вызов подпрограммы из памяти программ размером до 4 М слов (8 Мбайт)с использованием непосредственной адресации.

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

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

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