1.5.1 Общие положения
Перед проведением лабораторных работ студент должен ознакомиться с составом стенда, назначением основных элементов, адресацией переменных, принципиальной схемой блока управления и последовательностью подготовки и проведения лабораторных работ.
Каждому студенту заранее выдается индивидуальное задание. Он должен дома подготовиться к лабораторной работе:
- изучить теоретический материал, который давался студенту на лекциях;
- изучить адресацию и использование органов управления и индикации блока управления;
- проанализировать задание;
- разработать алгоритм решения поставленной задачи;
- написать программу на языке ассемблера для микроконтроллера.
Перед написанием программы студент анализирует поставленную задачу и разрабатывает алгоритм. Алгоритм может быть представлен в виде схемы алгоритма, помогающей при программировании не упустить какие-то операции, переходы и зацикливания в программе.
Сложность программирования на языке ассемблера заключается в том, что для того, чтобы пользоваться всеми возможностями такого языка необходимо, по крайней мере, знать обо всех возможных командах микропроцессора.
|
|
Предлагаемое описание не преследует цели научить читателя всем тонкостям программирования на языке ассемблера, скорее это попытка дать основные сведения о программировании на языке ассемблера, чтобы при проведении лабораторных работ можно было писать несложные программы. Более подробную информацию о языке ассемблера можно получить из специализированной литературы.
Разработка программы на языке ассемблера включает следующие этапы:
а) подготовка исходного текста программы;
б) компиляция программы (получение объектного кода);
г) отладка программы.
Обычно эти этапы циклически повторяются, потому что при нахождении ошибок при компиляции или при отладке приходится вновь возвращаться к первому этапу и изменять текст программы для устранения ошибок.
1.6 Работа комплекса в режиме «Одна ПЭВМ – одно рабочее место»
Лабораторный комплекс может использоваться не только для проведения лабораторных работ со студентами. Можно его использовать для решения реальных задач (производственных), требующих подготовки и записи программы в микроконтроллеры AT90S8535 или AT90S4434, используемые в качестве встраиваемых контроллеров.
В этом случае необходимо использование одного рабочего места. Можно отказаться от работы монитора ПЭВМ в восьмиоконном режиме и от ввода программы с клавиатуры рабочего места. Тогда ввод программы в ПЭВМ и её редактирование осуществляется с клавиатуры преподавателя. Исчезают затруднения с «длинными» директивами и командами, комментарии можно писать и на русском языке, более удобно работать с экраном монитора, чем с экраном ЖКИ.
|
|
В рассматриваемом режиме работы комплекса, который условно назван режимом «Одна ПЭВМ – одно рабочее место», БУ рабочего места используется для записи программы в микроконтроллер. Поэтому в схеме подключения комплекса ПЭВМ никаких изменений, по сравнению с режимом работы со студентами, нет. Из восьми рабочих мест используется только одно (остальные рабочие места могут быть отключены от БС).
В режиме «Одна ПЭВМ – одно рабочее место» изменяется использование программного обеспечения комплекса.
Для ввода программы используется программа AvrStudio.
Для запуска программы запустите файл AvrStudio.exe. Появится основное диалоговое окно программы.
В верхней части программы находится меню, в нем надо выбрать Project–>New. В появившемся окне выберите имя проекта (Project name), место на диске, куда сохранять проект (Location), а также тип проекта(Project type), щелкнув мышью на AVR assembler, затем щелкнув на кнопке OK.
Появится окно проектов (Project:), в котором находится дерево файлов. В него входят файлы, которые будут компилироваться, с расширением.asm (Assembler Files), а также дополнительные файлы библиотек (Other Files). На ветви Assembler Files необходимо щелкнуть правой кнопкой мыши появится меню, в нем необходимо выбрать пункт Create New File.
В появившемся окне выбрать имя файла (Name), обязательно с расширением.asm и нажать кнопку OK.
В открывшемся окне проектов появится в дереве файлов отдельной ветвью имя файла. Его нужно перетащить, удерживая на нем правую кнопку мыши на ветвь Assembler Files. После этого щелкнув правой клавишей мыши снова вызвать меню и выбрать пункт параметры проекта (Project Settings). В появившемся окне AVR Assembler Options в пункте формат выходного файла (Output file format:) выбрать Intel Intellec 8/ MDS (Intel Hex), нажать OK.
Затем снова вернуться в окно проектов, и щелкнув правой кнопкой мыши на ветви другие файлы (Other Files) вызвать меню и выбрать пункт добавить файл (Add File), найти файл 8535def.inc и подключить его к проекту. Необходимо отметить, что этот файл должен находится в той же папке, что и asm файл, который создается, поэтому его лучше скопировать заранее, иначе это вызовет ошибку компиляции. Если все сделано правильно, то окно проектов должно выглядеть следующим образом:
Теперь щелкаем два раза на asm файле и в открывшемся окне набираем программу. После того как программа набрана, нажимаем F7 и производим её компиляцию, при этом создается файл с расширением hex, который затем надо будет записать в микроконтроллер. После компиляции появится окно Project Output, в котором указано, какой файл ассемблируется, используемый файл библиотеки, количество слов в программе и сообщение об отсутствии ошибок Assembly complete with no errors. Если есть ошибки, то в этом окне указывается тип ошибки, номер строки с ошибкой и в конце общее число ошибок. Для их исправления необходимо вернутся к редактируемому файлу и их исправить, а затем снова откомпилировать программу.
AvrStudio позволяет не только компилировать программы но и отлаживать их на этапе разработки. При этом AvrStudio эмулирует работу микроконтроллера, всех портов ввода/вывода, счетчиков/таймеров, прерываний, ШИМ и АЦП. Эмуляция работы программы позволяет рассмотреть её работу, как если бы она была записана в микроконтроллер.
Необходимо отметить, что эмулировать работу можно только программы, не содержащие ошибок. Поэтому перед эмуляцией AvrStudio произведет компиляцию программы и если есть ошибки то эмулировать (отладить) программу не удастся.
Для отладки программы, после того как она написана, нужно в меню Project выбрать пункт Build and run или нажать Ctrl + F7. Появится окно опции эмулятора (Simulation Options). В пункте устройство (Device) нужно выбрать микроконтроллер AT90S8535, в пункте частота (Frequency), частоту 8 МГц, нажать кнопку OK.
|
|
После этого появится окно, в котором набиралась программа, но начало программы будет отмечено желтой стрелкой – это начало программы, выше идут директивы компилятора. При эмуляции работы программы необходимо видеть состояния регистров, портов ввода/вывода, процессора. В главном меню программы выбираем пункт просмотр (View), затем пункт регистры (Registers), далее пункты процессор(Processor), просмотр ввода/вывода (New IO View). В меню View имеются и другие пункты, которые можно использовать, но в данном руководстве не рассматриваются. Для наблюдения работы микроконтроллера в большинстве случаев достаточно только этих окон. Таким образом после всех этих действий получится окно примерно такого вида:
Теперь можно приступить к запуску программы. AvrStudio позволяет запустить программу в реальном времени, в пошаговом режиме, до указателя. В главном меню в пункте отладка (Debug), находятся все варианты запуска программы.Reset – сброс на начало программы (желтая стрелка указателя показывает на начало),Go – запуск в реальном времени (программа будет выполнятся до тех пор пока не будет выбран пункт Break), Step over – пошаговый режим (программа выполняется построчно, при этом останавливается после каждой команды, стрелка указывает на текущую команду), Run to cursor – выполнять до курсора (программа выполняется до места отмеченного курсором в окне с редактируемой программой). Во время выполнения программы можно наблюдать за состоянием регистров после каждой команды, тем самым проверяется правильность операций, производимых микроконтроллером. Наиболее удобный режим для этого – пошаговый.
Содержание окон для наблюдения процессов в микроконтроллере в основном понятно, необходимо пояснить содержание окна IO, в котором показаны все устройства микроконтроллера. Напротив каждого устройства стоит знак «+», щелкнув на нем мышкой, получаем содержимое этого устройства, т.е. состояние управляющих регистров, регистров данных и т.д. Два раза щелкнув на содержание, какого-нибудь регистра можно изменить его состояние в процессе выполнения программы. В регистре портов ввода/вывода можно задать входные сигналы, отмечая галочкой в нужном бите состояния логической единицы, тем самым эмулируется воздействие внешних сигналов.
|
|
В данном руководстве не преследуется цель описать все возможности программы AvrStudio, остальное изучается пользователем в процессе работы с программой.
AvrStudio позволяет записывать программу в микроконтроллер, но в стенде используется несколько другая схема программатора, поэтому использовать эту возможность программы нельзя.
Для записи программы в микроконтроллер используется программа New_SP. Для запуска программы запустите new_sp.exe.
В нижней части окна программы установить номер порта COM2, нажать кнопку Start. Если порт установлен, нижняя часть окна станет зеленой. Затем в окнах с полосами прокрутки выбрать диск, каталог, и имя записываемого файла с расширением.hех. Для записи программы нажать кнопку Write Flash. Программа записывается в микроконтроллер и в верхнем окне выводится тип микроконтроллера и имя записываемого файла. Если запись невозможна, не выбран hex файл или нет соединения с микроконтроллером, программа выводит сообщение Nothing to do for sp.
Разработать и отладить на эмуляторе AVR STUDIO программы, выполняющую следующее:
Составить программу изменение порядка размещения данных в массиве из 20 восьмибитных чисел (от 0 до 255) на обратный. Массив задать в ОЗУ. Адрес начала массива выбрать самостоятельно.
На вход таймера Т2 поступают импульсы. На линии порта В1 должна установиться 1, если за 1 с таймер не насчитает больше 123 импульсов. Частота тактового генератора
1 МГц.
Составить программу сложения двух двухразрядных чисел. Ввод первого числа с помощью двух тумблеров (диапазон 0…3). Ввод второго числа с помощью других двух тумблеров (диапазон 0….3). Вывод результата на семисипьентный индикатор подключенный к порту С. Сегмент а – С0, сегмент b – C1 и т.д.
На вход таймера Т2 поступают импульсы. На линии порта В должна установиться 0, если за 1 с таймер насчитает больше 45 импульсов. Частота тактового генератора
1 МГц.
Составить программу выделения максимального числа из массива 20 однобайтовых чисел (в диапазоне 0….255). Числа взять из массива в ОЗУ. Начальный адрес массива 30Н ($30). Предварительно массив заполнить произвольными числами (можно программно). Максимальное число отправить в порт С.
Составить программу вывода на линию порта В0 пачку импульсов частотой 10 кГц. Количество импульсов в пачке 10, скважность импульсов 2. Частоту тактового генератора выбрать самостоятельно.
Разработать и отладить на эмуляторе AVR STUDIO программы, выполняющую следующее:
Составить программу изменение порядка размещения данных в массиве из 20 восьмибитных чисел (от 0 до 255) на обратный. Массив задать в ОЗУ. Адрес начала массива выбрать самостоятельно.
На вход таймера Т2 поступают импульсы. На линии порта В1 должна установиться 1, если за 1 с таймер не насчитает больше 123 импульсов. Частота тактового генератора
1 МГц.
Составить программу сложения двух двухразрядных чисел. Ввод первого числа с помощью двух тумблеров (диапазон 0…3). Ввод второго числа с помощью других двух тумблеров (диапазон 0….3). Вывод результата на семисипьентный индикатор подключенный к порту С. Сегмент а – С0, сегмент b – C1 и т.д.
На вход таймера Т2 поступают импульсы. На линии порта В должна установиться 0, если за 1 с таймер насчитает больше 45 импульсов. Частота тактового генератора
1 МГц.
Составить программу выделения максимального числа из массива 20 однобайтовых чисел (в диапазоне 0….255). Числа взять из массива в ОЗУ. Начальный адрес массива 30Н ($30). Предварительно массив заполнить произвольными числами (можно программно). Максимальное число отправить в порт С.
Составить программу вывода на линию порта В0 пачку импульсов частотой 10 кГц. Количество импульсов в пачке 10, скважность импульсов 2. Частоту тактового генератора выбрать самостоятельно.