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

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

Лабораторная работа выполняется в индивидуальном порядке. На каждом рабочем месте должны быть установлена ПЭВМ типа IBM PC/AT c программным обеспечением: операционная система MS WINDOWS v.9x, 2000, XP; программный отладчик AVR Studio; программатор на основе кросс-компилятора С Сode Vision AVR, подробное описание которого приведено в Приложении В.

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

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

  2. Изучить особенности выполнения команд микроконтроллера ATmega 128 (Приложение А).

  3. Составить алгоритм и написать программу на языке ассемблера по правилам командной строки с гибким форматом.

  4. Изучить правила работы с программным отладчиком AVR Studio (Приложение Б) .

  5. Используя отладчик AVR Studio произвести трансляцию и отладку исходного текста программы.

  6. Исследовать возможности симулятора при различных значениях переменных проверяя при этом в по шаговом режиме содержимое регистров в окне Workspace.

  7. Показать результаты работы преподавателю и подготовить отчёт о проделанной работе.

  8. Электронный вариант отчёта передать в базу данных информационно-обучающей системы.

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

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

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

  1. Основные особенности архитектуры микроконтроллера AVR ATmega128?

  2. Поясните отличительные особенности микроконтроллеров с регистр-аккумуляторной и регистр-регистровой архитектурой.

  3. Поясните принципы распределения адресных пространств памяти между регистрами общего назначения и портами ввода/вывода в микроконтроллере AVR ATmega128.

  4. Каково назначение битов регистра состояния SREG?

  5. Поясните реализацию в микроконтроллере AVR ATmega128 Гарвардской архитектуры и принципа конвейерной обработки команд.

  6. Какие способы адресации используются в командах микроконтроллера ATmega128?

  7. Какие регистры общего назначения используются для хранения адреса при косвенно-регистровой адресации? Приведите примеры команд.

  8. Дайте характеристику и поясните особенность выполнения основных команд микроконтроллера AVR.

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

2.1 Цель работы

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

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

Необходимо ознакомиться с лекционным материалом по теме:«Порты ввода/вывода микроконтроллеров семейства AVR», а также теоретическим материалом, изложенным в [1, с. 240-255;2 т.2, с. 223-226; 3. с. 169-179; 4,с. 65-70; 5,с. 40-43].

Следует обратить внимание на структуру лабораторного макета (Приложение Г), уточнить, какие порты ввода/вывода микроконтроллера ATmega128 используются для подключения периферийных устройств, а также изучить подробнее команды микроконтроллера используемые для работы с портами.

Микроконтроллер ATmega128, входящий в состав лабораторного макета, обладает шестью 8-разрядными портами ввода/вывода (порт A, порт В, …, порт G).

Для каждого порта ввода/вывода в памяти ввода/вывода зарезервировано три ячейки: одна – под регистр данных PORTx; вторая – под регистр направления данных DDRx; третья – под состояние входов порта PINx.

Эти регистры имеют адреса, указанные в таблице 2.1

Таблица 2.1 – Адреса регистров некоторых портов

Наименование регистра

Адрес регистра

PORTF

42h

DDRF

41h

PORTD

12h

DDRD

11h

XDIV

3Ch

Биты регистра DDRx определяют направленность линии ввода-вывода: 1 (высокий уровень) – на вывод, 0 (низкий уровень) – на ввод. Если, например, пятый бит регистра DDRА равен 0, то пятый вывод порта А будет работать на ввод, иначе на вывод.

Для управления уровнями напряжения на выходных линиях микроконтроллера можно применять алгоритмы маскирования или, непосредственно, команды для работы с битами (cbi, sbi). Прямое обращение к регистрам портов ввода/вывода на языке Assembler обеспечивается с помощью команд in и out.

Синтаксис команд следующий:

Ввод из порта

IN Rd, P ; Rd – регистр общего назначения, Р – адрес регистра

Пример:

in r25,$16 ; чтение порта B

Вывод в порт

OUT Р, Rr ; Rd – регистр общего назначения, Р – адрес регистра

Пример:

out $18, r16 ; запись содержимого r16 в порт В

Очистка бита порта

CBI Р, b ; Р – адрес регистра, b – номер сбрасываемого бита

Пример:

cbi $12, 7 ; сбрасывает бит 7 порта D

Установка бита

SBI Р, b ; Р – адрес регистра, b – номер устанавливаемого бита

Пример:

sbi $12,0 ; Устанавливает бит 0 порта D

В состав макета входит блок индикации, состоящий из 8 светодиодов, подключенных к микроконтроллеру через порт D в соответствие со схемой, приведенной на рисунке 2.1. На аноды светодиодов (HL1-HL8) подается напряжение +5 В, катоды каждого светодиода подключаются к соответствующим выходам порта ввода/вывода D. В ветвь каждого светодиода последовательно подключается токоограничивающий резистор номиналом 390 Ом (на схеме обозначены R1-R8). Программное управление свечением светодиодов осуществляется путем подачи уровней “логического нуля” и “логической единицы” на соответствующие разряды порта D, который должен функционировать как порт вывода.

Рисунок 2.1 – Принципиальная схема подключения блока светодиодов к выводам порта D

Пример:

Задание. Исследовать байт данных (DAN), находящийся в ОЗУ (РОН). Если третий разряд данных DAN.3 = 1 – включить шестой светодиод иначе второй.

Схема алгоритма выполнения задания представлена на рисунке 2.2.

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

Программа на языке ассемблера (1-й вариант реализации):

; П3 1 «ВКЛ»: $01F0

; [$0101] = DAN

; r10 = [$0101]

; МАСКА DAN.3 – 0в00001000

; Включить D6 – 0в10111111

; Включить D2 – 0в11111011

.ORG $01F0 ;

ldi r16, $FF ; r16:= 0в11111111

ldi r17, 0b10111111 ; r17:= маска включения D6

ldi r18, 0b11111011 ; r18:= маска включения D2

out $11, r16 ; настройка порта D на вывод

ldi r10, r$0101 ; R10:=DAN

andi r10, 0b00001000 ; проверить DAN.3

cpi r10, $00 ; если DAN.3=1

brne D6 ; включить D6

out $12, r18 ; иначе вкл. D2

jmp stop ; перейти stop

D6: out $12, r17 ; включить D2, если DAN.3=0

stop: nop ;

.EXIT

Программа на языке ассемблера (2-й вариант реализации):

.ORG $01F0

ldi r16, $FF ; r16 := 0в11111111

ldsi r17, 0в10111111 ; r17 := маска включения D6

ldi r18, 0в11111011 ; r18 := маска включения D3

out $11, r16 ; настройка порта D на вывод

lds r10, r$0101 ; R10 :=DAN

bst r10, 3 ; T := R10.3

brne D6 ; Включить D6, если бит установлен

out $12, r18 ; иначе вкл. D2

jmp stop ; перейти stop

D6: out $12, r17 ; Включить D6, если DAN.3 = 0

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