- •1 Исследование программной модели микроконтроллера risc архитектуры с использованием среды разработки avr Studio
- •1.1 Цель работы
- •1.3 Описание лабораторной установки
- •1.4 Порядок выполнения работы и методические указания по ее выполнению
- •1.5 Содержание отчета
- •1.6 Контрольные вопросы и задания
- •2 Исследование методов программного управления портами ввода/вывода микроконтроллера aTmEga128
- •2.1 Цель работы
- •2.2 Методические указания по организации самостоятельной работы студентов
- •Stop: nop; .Exit
- •2.3 Описание лабораторной установки
- •2.4 Порядок выполнения работы и методические указания по ее выполнению.
- •2.5 Содержание отчета
- •2.6 Контрольные вопросы и задания
- •3 Исследование методов программного управления устройствами ввода и вывода информации в реальном времени
- •3.1 Цель работы
- •3.2 Методические указания по организации самостоятельной работы студентов
- •3.2.2 Принципы считывания данных с матричной клавиатуры с помощью микроконтроллера avr аTmega128 в режиме программного опроса.
- •3.3 Описание лабораторной установки
- •3.4 Порядок выполнения работы и методические указания по ее выполнению
- •3.5 Содержание отчета
- •Контрольные вопросы и задания
- •4 Исследование методов обработки прерываний
- •Interrupt [tim1_ovf] void timer1_overflow (void).
- •Interrupt [tim1_compa] void timer1_compareА (void);
- •Interrupt [tim1_compв] void timer1_compareВ (void);
- •Interrupt [tim1_compс] void timer1_compareС (void).
- •4.4 Порядок выполнения работы и методические указания по ее выполнению
- •5 Исследование принципов организации обмена данными по последовательному интерфейсу между микроконтроллером семейства avr и пэвм
- •Перечень ссылок
- •Приложение а Система команд микроконтроллеров avr
- •Приложение б Среда разработки avr Studio
- •Приложение в Описание интерфейса компилятора языка с CodeVision avr
- •Приложение г Описание лабораторного макета
- •Приложение д
1.3 Описание лабораторной установки
Лабораторная работа выполняется в индивидуальном порядке. На каждом рабочем месте должны быть установлена ПЭВМ типа IBM PC/AT c программным обеспечением: операционная система MS WINDOWS v.9x, 2000, XP; программный отладчик AVR Studio; программатор на основе кросс-компилятора С Сode Vision AVR, подробное описание которого приведено в Приложении В.
1.4 Порядок выполнения работы и методические указания по ее выполнению
Получить на компьютере допуск к выполнению работы и вариант задания.
Изучить особенности выполнения команд микроконтроллера ATmega 128 (Приложение А).
Составить алгоритм и написать программу на языке ассемблера по правилам командной строки с гибким форматом.
Изучить правила работы с программным отладчиком AVR Studio (Приложение Б) .
Используя отладчик AVR Studio произвести трансляцию и отладку исходного текста программы.
Исследовать возможности симулятора при различных значениях переменных проверяя при этом в по шаговом режиме содержимое регистров в окне Workspace.
Показать результаты работы преподавателю и подготовить отчёт о проделанной работе.
Электронный вариант отчёта передать в базу данных информационно-обучающей системы.
1.5 Содержание отчета
Формулировка цели работы, постановка задачи, схема алгоритма решения задачи, спецификация памяти, результаты работы в виде текстового файла программы на языке ассемблера и файла рабочей программы в машинных кодах, таблицу экспериментальной проверки для трёх значений переменных и выводы по работе.
1.6 Контрольные вопросы и задания
Основные особенности архитектуры микроконтроллера AVR ATmega128?
Поясните отличительные особенности микроконтроллеров с регистр-аккумуляторной и регистр-регистровой архитектурой.
Поясните принципы распределения адресных пространств памяти между регистрами общего назначения и портами ввода/вывода в микроконтроллере AVR ATmega128.
Каково назначение битов регистра состояния SREG?
Поясните реализацию в микроконтроллере AVR ATmega128 Гарвардской архитектуры и принципа конвейерной обработки команд.
Какие способы адресации используются в командах микроконтроллера ATmega128?
Какие регистры общего назначения используются для хранения адреса при косвенно-регистровой адресации? Приведите примеры команд.
Дайте характеристику и поясните особенность выполнения основных команд микроконтроллера 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
