Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
atmega_128_avr_metoda.doc
Скачиваний:
67
Добавлен:
16.03.2016
Размер:
1.58 Mб
Скачать

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

ХАРКІВСЬКИЙ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ

РАДІОЕЛЕКТРОНІКИ

МЕТОДИЧНІ ВКАЗІВКИ до лабораторних робіт з дисципліни «ОБЧИСЛЮВАЛЬНІ ТА МІКРОПРОЦЕСОРНІ ЗАСОБИ В РАДІОЕЛЕКТРОННИХ АПАРАТАХ»

ХАРКІВ 2010

Міністерство освіти та науки України

Харківський національний університет радіоелектроніки

МЕТОДИЧНІ ВКАЗІВКИ до лабораторних робіт з дисципліни «ОБЧИСЛЮВАЛЬНІ ТА МІКРОПРОЦЕСОРНІ ЗАСОБИ В РАДІОЕЛЕКТРОННИХ АПАРАТАХ»

для студентів усіх форм навчання спеціальностей

напряму 6.050902 «Радіоелектронні апарати»

ХАРКІВ 2010

Методичні вказівки до лабораторних робіт з дисципліни “Обчислювальні та мікропроцесорні засоби в радіоелектронних апаратах” для студентів усіх форм навчання спеціальностей напряму 6.050902 «Радіоелектронні апарати» / Упоряд. Лисенков М.О.– Харків: ХНУРЕ, 2010. – с.

Упорядник: М.О. Лисенков

СОДЕРЖАНИЕ

Общие положення..………………………………………………………………..

6

1. Исследование программной модели микроконтроллера RISC архитектуры с использованием среды разработки AVR Studio ……………………....………

8

1.1 Цель работы...………………………………………………………………….

8

1.2 Методические указания по организации самостоятельной работы студентов...

8

1.3 Описание лабораторной установки…...……………………………………...

17

1.4 Порядок выполнения работы и методические указания по ее выполнению……

17

1.5 Содержание отчета…..………………………………………………………...

17

1.6 Контрольные вопросы и задания...…………………………………………...

17

2. Исследование методов программного управления портами ввода/вывода микроконтроллера ATmеga128………………………….………………………..

18

1.1 Цель работы...………………………………………………………………….

18

1.2 Методические указания по организации самостоятельной работы студентов...

18

1.3 Описание лабораторной установки…...……………………………………...

23

1.4 Порядок выполнения работы и методические указания по ее выполнению……

24

1.5 Содержание отчета…..………………………………………………………...

25

1.6 Контрольные вопросы и задания...…………………………………………...

25

3. Исследование методов программного управления устройствами ввода и вывода информации в реальном времени..………………………………............

25

1.1 Цель работы...………………………………………………………………….

25

1.2 Методические указания по организации самостоятельной работы студентов...

25

1.3 Описание лабораторной установки…...……………………………………...

35

1.4 Порядок выполнения работы и методические указания по ее выполнению……

36

1.5 Содержание отчета…..………………………………………………………...

36

1.6 Контрольные вопросы и задания...…………………………………………...

37

4 Исследование методов обработки прерываний на примере функционирования встроенных в микроконтроллер таймеров/счетчиков…….

37

1.1 Цель работы...………………………………………………………………….

37

1.2 Методические указания по организации самостоятельной работы студентов...

37

1.3 Описание лабораторной установки…...……………………………………...

50

1.4 Порядок выполнения работы и методические указания по ее выполнению……

50

1.5 Содержание отчета…..………………………………………………………...

51

1.6 Контрольные вопросы и задания...…………………………………………...

52

5 Исследование принципов организации обмена данными по последовательному интерфейсу между микроконтроллером семейства AVR и ПЭВМ...............….

52

1.1 Цель работы...………………………………………………………………….

52

1.2 Методические указания по организации самостоятельной работы студентов...

52

1.3 Описание лабораторной установки…...……………………………………...

62

1.4 Порядок выполнения работы и методические указания по ее выполнению……

64

1.5 Содержание отчета…..………………………………………………………...

65

1.6 Контрольные вопросы и задания...…………………………………………...

65

ПЕРЕЧЕНЬ ССЫЛОК……………………………………………………….……

66

Приложение А. Система команд микроктороллеров AVR..………………........

67

Приложение Б. Среда разработки AVR Studio…………………………………………..

72

Приложение В. Описание интерфейса компилятора языка С

CodeVision AVR…………..…………………………………………………....

86

Приложение Г. Описание лабораторного макета…..……...……………………

93

Приложение Д. Синтаксис и основные оператори языка С…..………………...

97

Общие положения

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

В зависимости от сложности решаемой задачи встроенная система управления может быть однопроцессорной или многопроцессорной (мультипроцессорной), одноуровневой или многоуровневой. В последнем случае на нижнем уровне управления решаются задачи непосредственного управления отдельными компонентами. В большинстве случаев требуется разработка встроенных специализированных контроллеров [1–8], причем эту разработку могут выполнить только специалисты в данной предметной области, хорошо разбирающиеся в особенностях объекта управления, способные предложить и реализовать весь комплекс необходимых алгоритмов оптимального управления объектом.

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

Успешному изучению студентами микропроцессорной техники способствует введение дисциплины "Вычислительные и микропроцессорные средства в радиоэлектронных аппаратах". Данная дисциплина изучается студентами дневной формы обучения на 3 и 4 курсах и включает проведение пяти лабораторных работ в шестом и пяти – в седьмом семестрах. Данные методические указания предусматривается использовать при изучении дисциплины в седьмом семестре.

Лабораторный практикум предусматривает своей целью исследование программной модели микроконтроллеров семейства семейства AVR, методов разработки и отладки программ выполнения функций управления электронными аппаратами. Готовясь к их проведению, студенты должны изучить настоящие методические указания, материал лекций и рекомендованную литературу по соответствующей теме, а также рассмотреть и подготовить типовые алгоритмы и программы.

Допуск к лабораторным работам осуществляется программой дистанционного обучения через компьютерную сеть. Студенту предлагается из базы данных набор контрольных вопросов по теме и перечень ответов. Каждый вопрос имеет вес от 0.1 до 1.0. Ответы носят неоднозначный характер, т. е. чтобы дать полный ответ на вопрос необходимо выбрать несколько вариантов ответов, каждый из которых имеет свой вес и дополняет остальные до полного ответа. По формализованной методике вычисляется сумма набранных баллов. Если студент набирает необходимое количество баллов (настраивается администратором), ему выдается задание на лабораторную работу, которое исключается из базы на весь учебный семестр. При проверке знаний студента устанавливается время, в течение которого необходимо ответить на вопрос (время настраивается администратором). В случае если не набрано необходимого количества баллов или нарушено установленное время тестирования, студенту предлагается новый набор вопросов из базы данных. Если после нескольких попыток (число настраивается администратором) студент не набирает нужного количества баллов, ему предлагается изучить теоретический материал, находящийся непосредственно в программе. После получения задания студент может выполнять работу.

Отчет по лабораторной работе составляется в электронном виде и передается на сервер, после чего в журнале электронного учета фиксируется запись о его поступлении. Сдавать лабораторную работу студент может по расписанию своей группы (допускается сдача по расписанию других групп, если в это время отсутствуют плановые занятия). Текущая успеваемость отражается в электронном, лабораторном и журнале учебной группы в виде двух оценок (допуск и сдача). Пользоваться данным пособием можно как в локальной сети, так через сеть Интернет, что позволяет выполнять лабораторную работу и готовиться к её проведению, как в лаборатории, так и в другом месте, где имеется соответствующий компьютер с выходом в сеть.

Основу лабораторного оборудования для всего лабораторного практикума составляют персональные микроЭВМ типа IBM PC, лабораторные макеты на базе микроконтроллера семейства AVR и программное обеспечение, включающее симуляторы, компиляторы и программные отладчики для микроконтроллеров указанного выше семейства. В этой связи описания используемых технических средств и программного обеспечения будут представлены в приложениях А - Ж.

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

1 Исследование программной модели микроконтроллера risc архитектуры с использованием среды разработки avr Studio

1.1 Цель работы

Изучение архитектуры и программной модели микроконтроллеров семейства AVR, приобретение навыков написания программ на языке Assembler микроконтроллера Atmega128 и работы с программным отладчиком AVR Studio на примере выполнения команд арифметических и логических операций.

1.2 Методические указания по организации самостоятельной работы студентов

Необходимо ознакомиться с лекционным материалом по темам: «Архитектура микроконтроллеров семейства AVR»; «Программная модель и система команд», а также изучить материал, изложенный в [1, с. 114-200;2 т.2, с. 195-211, 246-310; 3. с. 20-41, 199-298; 4,с. 3-37; 5,с. 7-40] и Приложение А,Б,В. AVR-архитектура объединяет высокопроизводительный RISC-процессор с раздельным доступом к памяти программ и данных. Регистровый файл микроконтроллеров включает 32 регистра общего назначения, каждый из которых может работать как регистр-аккумулятор. Имеется развитая система команд с фиксированной (16-бит) длиной. Конвейерная архитектура с одновременным исполнением текущей и выборкой следующей команды позволяет выполнять большинство команд за один машинный цикл, что обеспечивает производительность до 1 MIPS на каждый МГц тактовой частоты.

Карта распределения памяти в микроконтроллере AVR АТmega128 приведена на рисунке 1.1. Память программ представляет собой электрически стираемое перепрограммируемое постоянное запоминающее устройство (ППЗУ) объемом 128 Кбайт, выполненное по технологии FLASH-памяти. Данная память предназначена для хранения команд, управляющих функционированием микроконтроллера, а также для хранения констант, не меняющих своих значений в ходе выполнения программы. Так, как длина команды составляет 16 бит, то память программ имеет 16-разрядную организацию. Для адресации памяти программ используется 16-разрядный регистр программный счетчик PС (Program Counter). Программа исполняется последовательно. Для управления ходом выполнения программы существуют команды перехода, изменяющие соответствующим образом значение РС.

Память данных организована по принципу совмещенной архитектуры ввода/вывода и разделена на 3 части: регистровая память; память портов (регистров) ввода/вывода; статическое ОЗУ (SRAM). Все части расположены в едином адресном пространстве.

Регистровый файл включает 32 8-разрядных регистра общего назначения R0 – R31 (рисунок 1.2) Каждый из регистров общего назначения непосредственно связан с АЛУ. Регистровый файл отображается на младшие 32 адреса 0000h-001Fh памяти данных и к его регистрам можно обращаться как к ячейкам памяти. Шесть 8-разрядных регистров (R26 – R31) могут использоваться как три 16-разрядных регистра-указателя для косвенной адресации (рисунок 1.3).

Для присвоения регистру символьного имени используется директива .DEF.

Эта директива имеет следующий синтаксис:

.DEF имя_переменной = регистр

Пример:

.DEF var1 = r20; назначает регистру r20 символьное имя var1

Рисунок 1.1 – Распределение памяти в микроконтроллере AVR АТmega128

Рисунок 1.2 – Иллюстрация отображения регистров общего назначения

и портов ввода/вывода на адресное пространство памяти данных

X

Y

Z

27

26

29

28

31

30

Рисунок 1.3 – 16-разрядные регистры Х, Y, Z, использующиеся для косвенной адресации памяти

Пространство ввода/вывода состоит из 64 адресов портов 0000h-003Fh, предназначенных для взаимодействия с внутренними и внешними по отношению к микроконтроллеру устройствами. Порты ввода/вывода отображаются на область памяти данных с адресами 0020h-005Fh и допускают возможность обращения к ним как к ячейкам памяти. При доступе к порту ввода/вывода как к ячейке памяти к адресу порта необходимо добавить 20h. Адрес порта ввода/вывода в пространстве памяти часто указывается в скобках после адреса в пространстве портов ввода/вывода. Ввиду того, что основной функцией микроконтроллера является управление внешними устройствами, в таблице 1.1. приводятся также и адреса (в пространстве портов ввода/вывода) основных интерфейсных портов с указанием режима работы и функций отдельных регистров.

Таблица 1.1 – Порты ввода/вывода микроконтроллера AVR ATmega128 для подключения внешних устройств

Название порта ввода/вывода

Идентификаторы отдельных регистров

Адрес

Режим / функция

PORTA

PINA

19h

IN

DDRA

1Ah

OUT / DIRECTION

PORTA

1Bh

OUT

PORTB

PINB

16h

IN

DDRB

17h

OUT / DIRECTION

PORTB

18h

OUT

PORTC

PINC

13h

IN

DDRC

14h

OUT / DIRECTION

PORTC

15h

OUT

PORTD

PIND

10h

IN

DDRD

11h

OUT / DIRECTION

PORTD

12h

OUT

PORTE

PINE

01h

IN

DDRE

02h

OUT / DIRECTION

PORTE

03h

OUT

PORTF

PINF

00h

IN

DDRF

61h

OUT / DIRECTION

PORTF

62h

OUT

PORTG

PING

63h

IN

DDRG

64h

OUT / DIRECTION

PORTG

65h

OUT

По адресам памяти 0060h–00FFh расположены 160 дополнительных регистров ввода/вывода.

Непосредственно память данных представляет собой статическое ОЗУ (SRAM) объемом 4 Кбайт, занимающее диапазон адресов 0100h-10FFh.

Регистр состояния SREG расположен в области ввода/вывода по адресу 3Fh (5Fh) и содержит информацию о текущем состоянии микроконтроллера. Расположение флаговых битов регистра состояния приведено на рисунке 1.4.

7

6

5

4

3

2

1

0

I

T

H

S

V

N

Z

C

Рисунок 1.4 – Регистр состояния SREG

Назначение отдельных битов регистра состояния приведено ниже:

  • C – флаг переноса, устанавливается в 1 при наличии переноса в арифметических операциях;

  • Z – флаг нуля, устанавливается в 1, если результат операции равен 0;

  • N – флаг отрицательного результата, устанавливается в 1 при получении отрицательного результата;

  • V – флаг переполнения, фиксирует выход результата за пределы допустимого диапазона значений;

  • S – флаг знака, S = N XOR V;

  • H – флаг дополнительного переноса (из младшей тетрады байта в старшую);

  • T – флаг для временного хранения бита из регистров общего назначения;

  • I – флаг разрешения прерываний, разрешает (1) или запрещает (0) процессору реагировать на аппаратные прерывания.

При подготовке к лабораторной работе необходимо изучить систему команд, правила языка ассемблера микроконтроллера АТmega128 и порядок работы с программным отладчиком AVR Studio (Приложения А, Б).

Базовый набор команд языка ASSEMBLER для микроконтроллеров AVR содержит 120 инструкций, которые можно разделить на 4 группы: команды пересылки данных; арифметические и логические команды; инструкции для работы с битами; команды управления ходом исполнения программы.

Команды пересылки данных. Группа команд пересылки данных включает в себя инструкции по загрузке значений констант, пересылки данных типа регистр-регистр, регистр-память, регистр-порт ввода/вывода. Команды данной группы являются двух-операндными, причем первым операндом является приемник данных, а вторым – источник данных.

Команда загрузки констант ldi R,K применяется для записи непосредственного значения К в регистр-приемник r. В качестве регистра-приемника могут использоваться регистры общего назначения r16–r31. Если константа представлена в двоичной или шестнадцатеричной системах счисления, то перед значением константы К необходимо указать спецификатор системы счисления 0b – для двоичной, 0х – для шестнадцатеричной соответственно. Пример:

ldi r16, 125 ; загрузка в r16 десятичного

; числа 125

ldi r20, 0xFF ; загрузка в r20 шестнадцатеричной

; константы FFh

ldi r23, 0b11011001 ; загрузка в r23 воичной

; константы 11011001

Команда пересылки данных между регистрами mov Rd,Rs используется для пересылки значения из регистра-источника Rs в регистр-приемник Rd. Операнды в команде являются исключительно регистрами общего назначения r0–r31.

Пример:

mov r16, r0 ; загрузка в r16 значения из регистра r0;

mov r17, r20 ; загрузка в r17 значения из регистра r20;

В командах пересылки данных между регистром и ячейкой памяти используется механизм косвенной адресации, при котором адрес ячейки памяти заносится в один из 16-разрядных регистров Х, Y, Z (рисунок 1.3).

Формат команд:

ld R8, R16 – загрузка данных из ячейки памяти, адрес которой находится в 16-разрядном регистре R16, в регистр общего назначения R8.

st R16, R8 – загрузка данных из регистра общего назначения R8 в ячейку памяти, адрес которой находится в 16-разрядном регистре R16 ;

ldd R8, R16+Q – загрузка данных в регистр общего назначения R8 из ячейки памяти, адрес которой находится как сумма значения, находящегося в 16-разрядном регистре R16, и смещения Q;

std R16+Q, R8 – загрузка данных из регистра общего назначения R8 в ячейку памяти, адрес которой находится как сумма значения, находящегося в 16-разрядном регистре R16 , и смещения Q.

Арифметические и логические команды. Для работы с целыми двоичными числами целочисленное АЛУ микроконтроллера AVR mega128 поддерживает более десятка арифметических и логических команд.

Основными арифметическими командами являются инструкции сложения, вычитания и умножения (для чисел без знака):

add Rd,Rs ; команда сложения (addition),

; действие: Rd=Rd+Rs

sub Rd,Rs ; команда вычитания (subtraction),

; действие: Rd=Rd–Rs;

mul Rd,Rs ; команда умножения (multipl.),

; действие: R1:R0=Rd*Rs.

Основными логическими командами микроконтроллера AVR MEGA128 являются:

or Rd,Rs ; логическое “или”; действие: Rd = Rd or Rs;

and Rd,Rs ; логическое “и”; действие: Rd = Rd and Rs;

eor Rd,Rs ; “исключающее или”; действие: Rd = Rd eor Rs.

Примеры поразрядных логических операций приведены в таблице 1.2

Таблица 1.2 – Примеры поразрядных логических операций

Пример поразрядного маскирования OR

Пример поразрядного маскирования AND

Пример поразрядного маскирования EOR

Rd

хххххххх

Rd

хххххххх

Rd

10100110

Rs

00010010

Rs

10110101

Rs

00010010

Rd=Rd OR Rs

ххх1хх1х

Rd=Rd AND Rs

х0хх0х0х

Rd=Rd EOR Rs

10110100

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

Пример:

Задание. Исследовать программную модель микроконтроллера на примере реализации функции:

Вариант 1. y = var1 OR var2. Переменные var1 и var2 однобайтовые числа, находящиеся в регистровом файле. Результат операции разместить в оперативной памяти.

Алгоритм решения задачи Вариант 1.

  1. START.

  2. Начальная установка переменных var1, var2

  3. Выполнить (var1) OR (var2).

  4. Вывести результат выполнения операции в ОЗУ.

  5. STOP.

Программа на языке ассемблера:

; у = х1 or х2

; r21 разместить var1

; r22 разместить var2

; [$0fff] := y

; P1 := $0050

.ORG $0050 ;

P1: ldi r21,var1 ; загрузить в r21 переменную var1

ldi r22,var2 ; загрузить в r22 переменную var2

or r21,r22 ; (r21)  (r21) or (r20)

sts $0fff,r21 ; сохранить результат в ячейке

; с адресом $0fff

.EXIT

Вариант 2. Реализовать функцию у = x1+x2,

где: х1,х2 – двухбайтовые числа (r16) : (r17) := x1; (r22) : (r23) := x2; [$0101] – [$0103] := у. Схема алгоритма решения задачи представлена на рисунке 1.5

Рисунок 1.5 – Схема алгоритма решения задачи Вариант 2

Программа на языке ассемблера:

; y = x1 + x2

; P2 := $0060

; (r16) : (r17) := x1, (r22) : (r23) := x2

; [$0101] – [$0103] := y

.ORG $0050 ;

P2: clc ; обнулить флаг переноса

adc r16, r22 ; сложить младшие байты переменных

sts $0101, r16 ; загрузить младший байт результата в ячейку

; с адресом $0101

adc r17, r23 ; сложить старшие байты перменных

sts $0102, r17 ; загрузить старший байт результата в ячейку

ldi r17, $00 ; очистить РОН

adc r17, r17 ; выделение переноса в старший байт

sts $0103, r17 ; загрузить байт в ячейку

; с адресом $0103

.EXIT

Примеры заданий для выполнения лабораторной работы представлены в таблице 1.3.

Таблица 1.3 – Примеры заданий для выполнения лабораторной работы №1

Исследовать программную модель МК семейства AVR на примере реализации функций, где х1, х2, const – двухбайтовые величины

1.

y= x1+x2, x1-РОН; x2-РОН; y-ОЗУ.

2.

y= x1+x2, x1-ОЗУ; x2-ОЗУ; y-ОЗУ.

3.

y=x1+x2, x1-РОН; x2-M; y-М. Здесь М-Memory (предусмотреть использование косвенно-регистровой адресации).

4.

y=x1+x2, x1-М; x2-M; y-РОН. Здесь М-Memory (предусмотреть использование косвенно-регистровой адресации).

5.

y=x1+x2, x1-М; x2-M; y-М. Здесь М-Memory (предусмотреть использование косвенно-регистровой адресации).

6.

y=x1+x2, x1-М; x2-M; y-М. Здесь М-Memory (предусмотреть использование косвенной адресации с преддекрементом).

7.

y=x1+x2, x1-РОН; x2-M; y-М. Здесь М-Memory (предусмотреть использование косвенной адресации с преддекрементом).

8.

y=x1-x2, x1-М; x2-M; y-М. Здесь М-Memory (предусмотреть использование косвенной адресации с преддекрементом).

9.

y=x1-x2, x1-РОН; x2-M; y-М. Здесь М-Memory (предусмотреть использование косвенной адресации с постинкрементом).

10.

y=x1-x2, x1-М; x2-M; y-РОН. Здесь М-Memory (предусмотреть использование косвенной адресации с постинкрементом).

11.

y=x1-сonst; x1-ОЗУ; y-РОН.

12.

y=x1-сonst, x1-M; y-РОН. Здесь М-Memory (предусмотреть использование косвенно-регистровой адресации).

13.

y=x1-сonst, x1-M; y-РОН. Здесь М-Memory (предусмотреть использование косвенной адресации с постинкрементом).

14.

y=x1-сonst, x1-М; y-М. Здесь М-Memory (предусмотреть использование косвенной адресации с постинкрементом).

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