Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

1659

.pdf
Скачиваний:
10
Добавлен:
07.01.2021
Размер:
1.51 Mб
Скачать

Федеральное агентство по образованию Сибирская государственная автомобильно-дорожная академия

(СибАДИ)

Кафедра электроники и автотракторного электрооборудования

ИЗУЧЕНИЕ ПРИНЦИПОВ РАБОТЫ

МИКРОКОНТРОЛЛЕРОВ

Методические указания к лабораторным работам

Составитель А. А. Зубарев

Омск Издательство СибАДИ

2007

УДК 621.325 БКК 32.988

Рецензент

канд. техн. наук, доц. К.Р.Сайфутдинов (ОмГТУ)

Работа одобрена научно-методическим советом специальности факультета АТ в качестве методических указаний по выполнению лабораторных работ по дисциплине “Проектирование микропроцессорных систем” для специальности 140607 “Электрооборудование автомобилей и тракторов”.

Изучение принципов работы микроконтроллеров: Методические указания к ла-

бораторным работам / Сост. А.А. Зубарев. – Омск: Изд-во СибАДИ, 2007. – 52 с.

В методических указаниях представлен цикл лабораторных работ для изучения принципов работы микроконтроллеров AVR Atmel, методов написания программ на языке Ассемблер и способов их программирования. Методические указания предназначены для студентов всех форм обучения, а также могут быть полезны студентам других специальностей при выполнении курсовых и дипломных проектов для приобретения начальных навыков программирования микроконтроллеров.

Ил. 29. Табл. 7. Библиогр.: 4 назв.

© Составитель А. А. Зубарев, 2007

2

ОГЛАВЛЕНИЕ

Лабораторная работа № 1

Изучение интегрированной среды разработки AVR Studio- - - - - - - - 4

Лабораторная работа № 2

Изучение стартового набора разработчика STK 500- - - - - - - - - - - - 10

Лабораторная работа № 3

Методы адресации, команды передачи данных и управления - - - - - 22

Лабораторная работа № 4

Команды обработки данных - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 32

Лабораторная работа № 5

Реализация и обслуживание подсистемы прерываний- - - - - - - - - - 39

Библиографический список - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 51

3

Лабораторная работа №1

ИЗУЧЕНИЕ ИНТЕГРИРОВАННОЙ СРЕДЫ РАЗРАБОТКИ

AVR STUDIO

Цель работы состоит в ознакомлении с возможностями среды разработки AVR Studio и практическом освоении режимов её работы.

1. Общие сведения

AVR Studio – это интегрированная отладочная среда разработки приложений (IDE) для микроконтроллеров AVR компании Atmel (рис. 1). IDE AVR Studio содержит:

средства создания и управления проектом;

редактор кода на языке Ассемблер;

транслятор языка Ассемблера (Atmel AVR );

отладчик (Debugger);

программное обеспечение верхнего уровня для поддержки внутрисхемного программирования (In-System Programming, ISP) с использованием стандартных отладочных средств Atmel AVR.

Рис. 1. Интерфейс интегрированной среды разработки AVR Studio

4

Работа с AVR Studio начинается с создания проекта. Сначала необходимо указать используемый микроконтроллер (МК) и платформу, на которой будет производиться отладка программы.

Написание программы производится в окне редактора текста программы. Для использования символических имен регистров специального назначения вместо их адресов необходимо подключить (директива .include) к проекту файл определения регистров специального назначения (например, m16def.inc для ATmega16). Включаемые файлы входят в прикладное программное обеспечение AVR Studio и при инсталляции помещаются в папку Appnotes в директории установки AVR Studio.

Написание программы в AVR Studio производится на языке Ассемблер. Последние версии AVR Studio содержат AVR Ассемблер второй версии, который в дополнение к стандартному Ассемблеру поддерживает новые директивы Ассемблера, Си - подобные директивы препроцессора, создание переменных определенного типа.

В результате трансляции создается выходной файл в формате HEX (расширение .hex). Если не выдается сообщений об ошибках, можно приступать к отладке проекта.

Отладчик AVR Studio поддерживает все типы МК AVR и имеет два режима работы: режим программной симуляции и режим управления различными типами внутрисхемных эмуляторов (In-Circuit Emulators) производства фирмы Atmel. Важно отметить, что интерфейс пользователя не изменяется в зависимости от выбранного режима отладки.

Отладочная среда поддерживает выполнение программ как в виде ассемблерного текста, так и в виде исходного текста языка Си, загруженного в объектном коде.

Управление отладкой производится командами меню DEBUG либо соответствующими иконками на панели инструментов AVR Studio.

Пользователь может выполнять программу полностью в пошаговом режиме, трассируя блоки функций или выполняя программу до того места, где стоит курсор. В дополнение можно определять неограниченное число точек останова, каждая из которых может быть включена или выключена. Точки останова сохраняются между сессиями работы.

В AVR Studio для отладки программы предусмотрены две команды пошагового режима: Step Over и Trace into. Разница между ними в том, что при выполнении команды Step Over выполнение подпрограмм происходит до полного окончания без отображения процесса выполнения. К командам шагового режима также относится команда Auto Step.

С помощью команд пошагового режима можно проследить изменения значений в переменных, регистрах ввода/вывода, памяти и регистрового файла. Для этого предназначены раздел I/O рабочей области AVR Studio (см. рис. 1), окно Watch (меню Debug \ Quick watch).

5

Интегрированная среда разработки AVR Studio также поддерживает просмотр (меню View / Memory) ячеек памяти программ, памяти данных, EEPROM и регистров портов ввода/вывода в ходе исполнения. Выпадающее меню диалогового окна позволяет выбрать один из четырех массивов ячеек памяти: Data, IO, EEPROM, Program Memory. Для одновременного просмотра нескольких областей окно Memory может быть открыто несколько раз. Информация в диалоговом окне может быть представлена в виде байтов или в виде слов в шестнадцатеричной системе счисления, а также в виде ASСII-символов.

В процессе отладки пользователь может инициализировать внутреннее ОЗУ, или EEPROM МК (например, данными, содержащимися в полученном при трансляции файле .eep), или сохранить содержимое ОЗУ и

EEPROM в виде файлов в формате Intel Hex (меню File -> Up/Download Memory).

Помимо шагового режима, возможна отладка программы с использова-

нием точек останова (меню Breakpoints -> Toggle Breakpoint). Командой

Start Debugging запускается исполнение программы. Программа будет выполняться до остановки пользователем или до обнаружения точки останова.

Для наблюдения за работой программы можно открыть несколько окон, отображающих состояние различных узлов МК (см. рис. 1). Окна открываются нажатием соответствующих кнопок на панели инструментов или при выборе соответствующего пункта меню View. Если в процессе выполнения программы в очередном цикле значение какого-либо регистра изменится, то этот регистр будет выделен красным цветом. При этом если в следующем цикле значение регистра останется прежним, то цветовое выделение будет снято. Такое же цветовое выделение реализовано в окнах устройств ввода/вывода, памяти и переменных.

Состояние встроенных периферийных устройств МК, а также состояния программного счетчика, указателя стека, содержимого регистра статуса SREG и индексных регистров X, Y и Z отображено в окне I/O View. В этом окне отражаются все функциональные блоки микроконтроллера. Любой блок может быть раскрыт нажатием на его значок. При раскрытии блока в окне отражаются адреса и состояния всех его регистров и отдельных, доступных для модификации, битов. Каждый доступный для модификации бит может быть установлен или сброшен как программой по ходу ее исполнения, так и пользователем вручную (указав курсором мыши нужный бит и щелкнув левой кнопкой мыши, пользователь может изменить значение бита на обратное), а в режиме программной симуляции это является способом имитации входного воздействия на МК.

6

2.Домашнее задание

1.Ознакомиться с настоящим описанием.

2.Изучить архитектуру микроконтроллеров AVR [3].

3.Изучить систему команд микроконтроллеров AVR [3].

4.Проанализировать программу, приведенную ниже.

3.Порядок выполнения работы

Последовательность действий, которую нужно выполнить:

-создание проекта;

-создание файла программы;

-компиляция;

-симуляция.

1.Запустить программу: из меню Пуск-> Все программы ->Atmel AVR Tools ->AVR Studio 4.

2.В появившемся окне выберите New Project или то же самое можно сделать из меню Project/New Project.

3.Укажите имя и расположение проекта на жестком диске, например,

как на рис. 2 введено имя My project и указано его расположение

D:\AVR\ Project. Нажмите Next.

Рис. 2. Окно для указания имени и месторасположения проекта

4. В появившемся окне (рис. 3) выберите AVR Simulator и ATmega8515.

Нажмите Finish.

7

Рис. 3. Окно для выбора платформы для отладки и марки МК

5. В открывшемся окне редактора наберите исходный текст программы (комментарии на русском языке можно не набирать):

.include "8515def.inc"

.def Temp =r16 ; Регистр хранения временных данных

.def Delay =r17 ; Переменная 1 для генерации задержки

.def Delay2 =r18 ; Переменная 2 для генерации задержки ;***** Инициализация

RESET:

ser temp

 

 

out DDRB, temp

; Настройка порта В (PORTB) на вывод

;**** Тестирование ввода/вывода

LOOP:

 

 

out PORTB,temp

; Обновление состояния светодиодов

sbis PIND,0x00

; Если PortD.0 = 0,

inc temp

; то уменьшение на 1 двоичного кода, формируемого свечением светодиодов

sbis PIND,0x01

; Если PortD.1 = 0,

dec Temp

; то увеличение на 1 двоичного кода, формируемого свечением светодиодов

sbis PIND,0x02

; Если PortD.2 = 0,

ror Temp

; то циклический сдвиг состояния светодиодов на 1 вправо

sbis PIND,0x03

; Если PortD.3 = 0,

rol Temp

; то циклический сдвиг состояния светодиодов на 1 влево

sbis PIND,0x04

; Если PortD.4 = 0,

com Temp

 

; то инверсия состояния всех светодиодов

sbis PIND,0x05

; Если PortD.5 = 0,

neg Temp

 

; то инверсия состояния и прибавление 1

sbis PIND,0x06

; Если PortD.6 = 0,

swap Temp

 

; то обмен тетрадами светодиодов

;*** Далее необходима задержка, чтобы сделать проделанные изменения видимыми

DLY: dec Delay

8

brne DLY

 

dec Delay2

 

brne DLY

 

rjmp LOOP

; Повторение цикла заново

В лабораторной работе №2 эта программа будет запрограммирована в МК ATMega8515 и будет управлять включением светодиодов на плате STK 500. Так как симуляция проекта выполняется во много раз медленнее, чем выполнение программы реальным МК, на время симуляции отключите задержку, которая записана в последних строчках программы. Для этого поставьте знак точка с запятой «;» в начале четырех строчек программы между строчками DLY и rjmp LOOP.

6.Запустите компиляцию проекта командой Build/Build или клавишей F7. При появлении сообщения об ошибке наведите на него указатель мышки и щелкните левой кнопкой. Строка с ошибкой в тексте программы будет указана синей стрелкой. Если ошибок нет, выполните симуляцию проекта.

7.Запустите отладку из меню Debug/Start Debugging. В окне I/O View раскройте меню I/O ATMEGA8515, а затем PORT B и PORT D (рис. 4). Запустите программу на выполнение из меню

Debug/Auto Step или кнопкой на панели инструментов. Строка программы, которая выполняется в текущее время указывается в окне редактора желтой стрелкой (см. рис.4). Имитировать нажатие кнопок можно щелчком кнопки мыши, когда её указатель наведен на соответствующий бит

врегистре PIN D.

8.Продемонстрируйте

работу в режиме отладки преподавателю.

Рис. 4. Окно I/O View

Контрольные вопросы

1.Чем отличается микроконтроллер от микропроцессора?

2.Чем отличается симуляция от эмуляции?

9

3.Зачем нужны подключаемые файлы?

4.Какие виды памяти отладочного устройства относятся к ПЗУ и ОЗУ?

5.Сохраняется ли в памяти отладочного устройства программа после выключения питания?

6.Что такое объектный файл?

7.Перечислите периферийные устройства МК ATmega8515.

8.Чем отличается выполнение программы в режиме с остановом по контрольным точкам от выполнения программы в пошаговом режиме?

9.Как отображаются ошибки в исходном тексте программы?

10.Чем отличается FLASH от EEPROM?

Лабораторная работа №2

ИЗУЧЕНИЕ СТАРТОВОГО НАБОРА РАЗРАБОТЧИКА STK-500

Цель работы состоит в изучении состава STK-500, записи программы в память микроконтроллера (МК) АТMega8515.

1. Описание STK-500

STK500 – завершенный стартовый набор (рис. 5) и система проектирования для AVR МК микроконтроллеров корпорации Atmel. Он разработан для проектировщиков, желающих быстро приступить к разработке программного кода и выполнить тестирование новой разработки.

Рис. 5. Набор STK500

10

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]