Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Проектирование МПС(лаб.метод).doc
Скачиваний:
132
Добавлен:
10.02.2016
Размер:
1.39 Mб
Скачать

6 Задания для самостоятельной работы

6.1 Изучить особенности функционирования микроконтроллеров при получении информации от механических датчиков;

6.2 Указать назначение и продолжительность циклов ожидания событий замыкания и размыкания контактов в алгоритме работы микроконтроллера;

6.3 Описать алгоритм работы разрабатываемой микропроцессорной системы с учетом борьбы с дребезгом;

6.4 Изучить команды AVR-ассемблера, представленные в лабораторной работе;

6.5 Выполнить следующие пункты задания к лабораторной работе: 7.1 – 7.4.

7 Задания к лабораторной работе

7.1 Разработать вариант основного цикла программы с включением подпрограммы задержки

№ варианта

1

2

3

4

5

6

7

8

9

10

Временная

Задержка, мкс

176

187

191

213

218

228

278

298

303

312

7.2 Разработать программу для работы устройства в в соответствии с приведенным примером;

7.3 Привести описание программы;

7.4 С помощью программного комплекса «AVR Studio» создайте собственный проект.

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

8.1 Цель работы;

8.2 Принципиальная схема микропроцессорного устройства;

8.3 Листинг программы по пунк. 7.2 в соответствии с принятыми требованиями

8.4 Описание программы;

8.5 Выводы.

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

9.1 Дребезг контактов и его влияние на работу схемы;

9.2 Опишите способы борьбы с дребезгом;

9.3 Как реализуется временная задержка аппаратными методами?

9.4 Как реализуется временная задержка программными методами?

9.5 Дайте характеристику командам push и pop работы со стеком;

9.6 Дайте характеристику командам rcall и ret работы с подпрограммами;

9.7 Дайте характеристику команде условного перехода brne;

9.8 Как рассчитывать программно-управляемые временные задержки?

9.9 Опишите алгоритм работы микропроцессорного устройства.

3. Сводная таблица команд Ассемблера микроконтроллеров avr

  • группа команд логических операций

  • группа команд арифметических операций

  • группа команд операций с разрядами

  • группа команд сравнения

  • группа команд операций сдвига

  • группа команд пересылки данных

  • группа команд управления системой

  • группа команд передачи управления

  • (безусловная передача управления)

  • группа команд передачи управления

  • (пропуск команды по условию)

  • группа команд передачи управления

  • (передача управления по условию)

Сводная таблица команд Ассемблера микроконтроллеров AVR

Группа команд логических операций

Мнемоника

Описание

Операция

Такты

Флаги

AND Rd, Rr

«Логическое И» двух РОН

Rd←Rd •Rr

1

Z,N,V

ANDI Rd, K

«Логическое И» РОН

и константы

Rd←Rd •K

1

Z,N,V

EOR Rd, Rr

«Исключающее ИЛИ» двух РОН

Rd←Rd Rr

1

Z,N,V

OR Rd, Rr

«Логическое ИЛИ» двух РОН

Rd←Rd v Rr

1

Z,N,V

ORI Rd, K

Логическое ИЛИ» РОН

и константы

Rd←Rd vK

1

Z,N,V

COM Rd

Перевод в обратный код

Rd←0FFH–R

1

Z,C,N,V

NEG Rd

Перевод в дополнительный код

Rd←00H–Rd

1

Z,C,N,V,H

CLR Rd

Сброс всех разрядов РОН

Rd←Rd Rd

1

Z,N,V

SER Rd

Установка всех разрядов РОН

Rd←0FFH

1

TST Rd

Проверка РОН на отрицательное (нулевое) значение

Rd←Rd • Rd

1

Z,N,V

Группа команд арифметических операций

Мнемоника

Описание

Операция

Такты

Флаги

ADD Rd, Rr

Сложение двух РОН

Rd←Rd+Rr

1

Z,C,N,V,H

ADC Rd, Rr

Сложение двух РОН

с переносом

Rd←Rd+Rr+C

1

Z,C,N,V,H

ADIW Rd, K

Сложение регистровой пары

с константой

Rdh:Rdl←Rdh:

Rdl+K

2

Z,C,N,V,S

SUB Rd, Rr

Вычитание двух РОН

Rd←Rd–Rr

1

Z,C,N,V,H

SUB| Rd, K

Вычитание константы

из РОН

Rd←Rd–K

1

Z,C,N,V,H

SBC Rd, Rr

Вычитание двух РОН

с заемом

Rd←Rd–Rr–C

1

Z,C,N,V,H

SBCI Rd, K

Вычитание константы

из РОН с заемом

Rd←Rd–K– C

1

Z,C,N,V,H

SBIW Rd, K

Вычитание константы

из регистровой пары

Rdh:Rdl← Rdh:

Rdl–K

2

Z,C,N,V,S

DEC Rd

Декремент РОН

Rd←Rd – 1

1

Z,N,V

INC Rd

Инкремент РОН

Rd←Rd + 1

1

Z,N,V

Группа команд операций с разрядами

Мнемоника

Описание

Операция

Такты

Флаги

CBRRd,K

Сброс разряда(ов) POH

Rd←Rd•(OFFH–K)

1

Z,N,V

SBRRd,K

Установка разряда(ов) POH

Rd←RdvK

1

Z,N,V

CBI A, b

Сброс разряда РВВ

A.b←0

2

-

SBI A, b

Установка разряда РВВ

A.b←1

2

-

BCLR s

Сброс флага

SREG.s←0

1

SREG.s

BSЕТ s

Установка флага

SREG.s←1

1

SREG.s

BLD Rd, b

Загрузка разряда РОН

из флага T(SREG)

Rd.b←T

1

-

BST Rr, b

Запись разряда РОН

в флаг T(SREG)

T←Rr.b

1

T

CLC

Сброс флага переноса

C←0

1

C

SEC

Установка флага переноса

C←1

1

C

CLN

Сброс флага отрицательного числа

N←0

1

N

SEN

Установка флага отрицательного числа

N←1

1

N

CLZ

Сброс флага нуля

Z←0

1

Z

SEZ

Установка флага нуля

Z←1

1

Z

CU

Общий запрет прерываний

I←0

1

I

SEI

Общее разрешение

прерываний

I←1

1

I

CLS

Сброс флага знака

S←0

1

S

SES

Установка флага знака

S←1

1

S

CLV

Сброс флага переполнения

дополнительного кода

V←0

1

V

SEV

Установка флага переполнения дополнительного

кода

V←1

1

V

CLT

Сброс пользовательского

флага T

T←0

1

T

SET

Установка пользовательского флага T

T←1

1

T

CLH

Сброс флага половинного

переноса

H←0

1

H

SEH

Установка флага половинного переноса

H←1

1

H

Группа команд сравнения

Мнемоника

Описание

Операция

Такты

Флаги

СP Rd, Rr

Сравнение двух РОН

?(Rd Rr)

1

Z,N,V,C,H

CPC Rd, Rr

Сравнение двух РОН

с учетом переноса

?(Rd Rd C)

1

Z,N,V,C,H

CPIRd,K

Сравнение РОН с константой

?(Rd K)

1

Z,N,V,C,H

Группа команд операций сдвига

Мнемоника

Описание

Операция

Такты

Флаги

SR RdA

Арифметический сдвиг вправо

Rd7→Rd6→Rd5→Rd4→Rd3→Rd2→Rd1→Rd0

1

Z,C,N,V

LSL Rd

Логический

сдвиг влево

C←Rd7←Rd6←Rd5←Rd4←

Rd3←Rd2←Rd1←Rd0←0

1

Z,C,N,V

LSR Rd

Логический

сдвиг вправо

0→Rd7→Rd6→Rd5→Rd4→

Rd3→Rd2→Rd1→Rd0→C

1

Z,C,N,V

ROL Rd

Сдвиг влево

через перенос

C←Rd7←Rd6←Rd5←Rd4←

Rd3←Rd2←Rd1←Rd0←C

1

Z,C,N,V

ROR Rd

Сдвиг вправо

через перенос

C→Rd7→Rd6→Rd5→Rd4→

Rd3→Rd2→Rd1→Rd0→C

1

Z,C,N,V

SWAP Rd

Обмен местами

тетрад

Rd(3 0)↔Rd(7 4)

1

Группа команд пересылки данных

Мнемоника

Описание

Операция

Такты

Флаги

MOV Rd, Rr

Пересылка между РОН

Rd←Rr

1

-

MOVW Rd, Rr

Пересылка между парами

регистров

Rd+1:Rd←Rr+1:Rr

1

-

LDI Rd, K

Загрузка константы в РОН

Rd←K

1

-

LD Rd, X

Косвенное чтение

Rd←[X]

2

-

LD Rd, X+

Косвенное чтение

с постинкрементом

Rd←[X],X←X+1

2

-

LD Rd, -X

Косвенное чтение

с преддекрементом

X←X-1,Rd←[X]

2

-

LD Rd, Y

Косвенное чтение

Rd←[Y]

2

-

LD Rd, Y+

Косвенное чтение

с постинкрементом

Rd←[Y],Y←Y+1

2

-

LD Rd, -Y

Косвенное чтение

с преддекрементом

Y←Y-1,Rd←[Y]

2

-

LD Rd, Y+q

Косвенное относительное

чтение

Rd←[Y+q]

2

-

LD Rd, Z

Косвенное чтение

Rd←[Z]

2

-

LD Rd, Z+

Косвенное чтение

с постинкрементом

Rd←[Z],Z←Z+1

2

-

LD Rd, -Z

Косвенное чтение

с преддекрементом

Z←Z-1,Rd←[Z]

2

-

LD Rd, Z+q

Косвенное относительное

чтение

Rd←[Z+q]

2

-

LDS Rd, k

Непосредственное чтение

из ОЗУ

Rd←[k]

2

-

ST X, Rr

Косвенная запись

[X]←Rr

2

-

ST X+, Rr

Косвенная запись с

постинкрементом

[X]←Rr,X←X+1

2

-

ST –X,Rr

Косвенная запись

с преддекрементом

X←X+1,[X]←Rr

2

-

ST Y, Rr

Косвенная запись

[Y]←Rr

2

-

ST Y+, Rr

Косвенная запись

с постинкрементом

[Y]←Rr,Y←Y+1

2

-

ST –Y, Rr

Косвенная запись

с преддекрементом

Y←Y-1,[Y]←Rr

2

-

ST Y+q, Rr

Косвенная относительная

запись

[Y+q]←Rr

2

-

ST Z, Rr

Косвенная запись

[Z]←Rr

2

-

ST Z+, Rr

Косвенная запись

с постинкрементом

[Z]←Rr,Z←Z+1

2

-

ST -Z, Rr

Косвенная запись

с преддекрементом

[Z]←Z-1, [Z]←Rr

2

-

ST Z+q, Rr

Косвенная относительная

запись

[Z+q]←Rr

2

-

STS k, Rr

Непосредственная запись

в ОЗУ

[k]←Rr

2

-

LPM

Загрузка данных

из памяти программ

R0←{Z}

3

-

LPM Rd, Z

Загрузка данных

из памяти программ

Rd←{Z}

3

-

LPM Rd, Z+

Загрузка данных из памяти программ и постдекремент Z

Rd←{Z},Z←Z +1

3

-

SPM

Запись в программную

память

{Z} ← R1:R0

-

-

IN Rd, P

Пересылка из РВВ в РОН

Rd ←P

1

-

OUT P, Rr

Пересылка из РОН в РВВ

P←Rr

1

-

PUSH Rr

Сохранение байта в стеке

STACK ← Rr

2

--

POP Rd

Извлечение байта из стека

Rd←STACK

2

-

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

Мнемоника

Описание

Операция

Такты

Флаги

NOP

Нет операции

-

1

-

SLEEP

Переход в спящий

режим

-

3

-

WDR

Сброс сторожевого

таймера

-

1

-

BREAK

Приостановка

программ

Используется

только при отладке

-

-

Группа команд передачи управления (безусловная передача управления)

Мнемоника

Описание

Операция

Такты

Флаги

RJMP

Относительный безусловный

переход

PC←PC←K+1

2

-

IJMP

Косвенный безусловный

переход

PC←Z

2

-

RCALL

Относительный вызов

подпрограммы

PC←PC+K+1

3

-

ICALL

Косвенный вызов

подпрограммы

PC←Z

3

-

RET

Возврат из подпрограммы

PC←STACK

4

-

RETI

Возврат из подпрограммы

обработки прерываний

PC←STACK

4

I

Группа команд передачи управления (пропуск команды по условию)

Мнемоника

Описание

Условие

Такты

Флаги

Все команды этой группы пропускают следующую за ней команду (PC←PC+1) при разных условиях:

CPSE Rd, Rr

Сравнение и пропуск следующей команды при равенстве

Если Rd=Rr

1/2/3

-

SBRC Rr, b

Пропуск следующей команды,

если разряд РОН сброшен

Если Rr.b=0

1/2/3

-

SBRSRr,b

Пропуск следующей команды,

если разряд РОН установлен

Если Rrb=1

1/2/3

-

SBICA,b

Пропуск следующей команды,

если разряд РВВ сброшен

Если A.b=0

1/2/3

-

SBISA,b

Пропуск следующей команды,

если разряд РВВ установлен

Если A.b=1

1/2/3

-

Группа команд передачи управления (передача управления по условию)

Мнемоника

Описание

Условие

Такты

Флаги

Все команды этой группы пропускают следующую за ней команду (PC←PC+k+1) при разных условиях:

BRBC s,k

Переход, если флаг sрегистра

SREGсброшен

Если SREG.s=0

1/2

-

BRBS s,k

Переход, если флаг sрегистра

SREGустановлен

Если SREG.s=1

1/2

-

BRCS k

Переход по переносу

Если C=1

1/2

-

BRCC k

Переход если нет переноса

Если C=0

1/2

-

BREQ k

Переход по условию «равно»

Если Z=1

1/2

-

BRNE k

Переход по условию «не равно»

Если Z=0

1/2

-

BRSH k

Переход по условию

«больше или равно»

Если C=0

1/2

-

BRLO k

Переход по условию «меньше»

Если C=1

1/2

-

BRMI k

Переход по условию

«отрицательное значение»

Если N=1

1/2

-

BRPL k

Переход по условию

«положительное значение»

Если N=0

1/2

-

BRGE k

Переход по условию

«больше или равно»(со знаком)

Если (N V)=0

1/2

-

BRLT k

Переход по условию

«меньше»(со знаком)

Если (N V)=1

1/2

-

BRHS k

Переход по половинному

переносу

Если H=1

1/2

-

BRHC k

Переход, если нет половинного

переноса

Если H=0

1/2

-

BRTS k

Переход, если флаг Т

установлен

Если T=1

1/2

-

BRTC k

Переход, если флаг Т сброшен

ЕслиT=0

1/2

-

BRVS k

Переход по переполнению

дополнительного кода

Если V=1

1/2

-

BRVC k

Переход , если нет переполнения дополнительного кода

Если V=0

1/2

-

BRID k

Переход, если прерывания

запрещены

Если I=0

1/2

-

BRIE k

Переход, если прерывания

разрешены

Если I=1

1/2

-

Литература

1. Евстифеев А.В. Микроконтроллеры AVR семейства Mega. Руководство пользователя. – М.: Издательский дом «Додэка – XXI», 2007. – 592 с.: ил.

2. Евстифеев А.В. Микроконтроллеры AVR семейства Tiny. Руководство пользователя. – М.: Издательский дом «Додэка – XXI», 2007. – 432 с.: ил.

3. Евстифеев А.В. Микроконтроллеры AVR семейства Classic фирмы ATMEL – 3-е изд., стер. – М.: Издательский дом «Додэка – XXI», 2006. – 288 с.: ил.

4. Баранов В.Н.Применение микроконтроллеров AVR: схемы, алгоритмы, программы. – М.: Издательский дом «Додэка – XXI», 2004. – 288 с.: ил.

5. Голубцов М.С., Кириченкова А. В. Микроконтроллеры AVR: от простого к сложному. Изд.2-е, испр. и доп. – М.: СОЛОН-Пресс, 2004. – 304 с.

6. Трамперт В. Измерение, управление и регулирование с помощью AVR микроконтроллеров.: Пер. с нем. – К.: «МК-Пресс», 2006. – 208 с., ил.

7. Швец В.А. и др. Одноплатные микроконтроллеры. Проектирование и применение. – К.: «МК-Пресс», 2006. – 304 с., ил.

8. Мортон Дж. Микроконтроллеры AVR. Вводный курс/Пер. с англ. – М.: Издательский дом «Додэка – XXI», 2006. – 272 с.: ил.

9. Гребнев В.В. Микроконтроллеры семейства AVR фирмы ATMEL. – М.: ИП РадиоСофт, 2002 – 176 с.: ил.

10.Бродин В.Б., Калинин А.В. Системы на микроконтроллерах и БИС программируемой логики – М.: Издательство ЭКОМ, 2002. – 400 с.: ил.

11.Рюмик С.М. Микроконтроллеры AVR. Ступени 1 – 7. Электроника и компьютер. РА 1 – 2005

12.Белов А.В. Микроконтроллеры AVR. – СПб.: Наука и Техника,2007. – 352 с.

13.Белов А.В.Создаем устройства на микроконтроллерах. – СПб.: Наука и Техника, 2007. – 304 с.: ил.

14.Великий В.І. Мікропроцесорні системи в САУ: Курс лекцій. Навч. посібник. – О.: Наука і техніка, 2006. – 192 с.: ил.

15.Великий В.І., Препелиця Г.П. Мікропроцесорні системи обробки даних та управління. Навчальний посібник. – Одеса: Вид-во «ТЭС», 2004. – 212 с.: ил

Электронные копии литературных источников 2 – 11 можно получить в лаборатории кафедры, пособия 14,15 – в библиотеке института

Учебное издание