Техника микропроцессорных систем в электросвязи. Исследования микроконтроллеров

Классификация, структура, архитектура и модульная организация микроконтроллеров. Средства разработки программного обеспечения AVR-контроллеров. Директивы транслятора ассемблера, рабочая частота и циклы. Исследование арифметических и логических команд.

Рубрика Коммуникации, связь, цифровые приборы и радиоэлектроника
Вид методичка
Язык русский
Дата добавления 19.09.2019
Размер файла 3,0 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

EEARL

Регистр адреса EEPROM (младший байт)

$1Е($ЗЕ)

EECR

Регистр управления EEPROM

$1С($ЗС)

EEDR

Регистр данных EEPROM

$10 ($30)

GIFR

Общий регистр флагов прерываний

$ЗА ($5А)

G1MSK

Общий регистр маски прерываний

$ЗВ ($5В)

G1PR

Регистр входов внешних прерываний

$10 ($30)

MCUCR

Общий регистр управления микроконтроллером

$35 ($55)

PORTA

Регистр данных порта А

$1В($ЗВ)

SPH

Указатель стека (старший байт)

$ЗЕ ($5Е)

SPL

Указатель стека (младший байт)

$30 ($50)

SPEG

Регистр состояния

$3F ($5F)

TCCRO

Регистр управления таймером/счетчиком 0

$33 ($53)

TCCR1

Регистр управления таймером/счетчиком 1

$2Е ($4Е)

TCNTO

Счетный регистр таймера/счетчика 0 (8-разрядный)

$32 ($52)

TCNT1H

Счетный регистр таймера/счетчика 1

$20 ($40)

TCNT1L

Счетный регистр таймера/счетчика 1 (младший байт)

S2C ($4С)

TIFR

Регистр флагов прерываний от таймера/счетчика

S38($58)

TIMSK

Регистр маски прерываний от таймера/счетчика

$39 ($59)

Таблица П.5

Регистр MCUCR моделей AT90S1200, AT90S2313, AT90S/LS2323, AT90S/LS2343, AT90S/LS2333, AT90S/LS4433, AT90S4414 и AT90S8515

Paзp

Назв.

Описание

Модель

7

SRE

Разрешение внешнего ОЗУ. Если этот разряд установлен в "1", использование внешнего ОЗУ разрешено. В противном случае использование внешнего ОЗУ запрещено, и выводы, используемые для подключения внешнего ОЗУ, функционируют как обычные линии ввода/вывода.

AT90S4414 AT90S8515

--

Не используется, читается как "0".

Прочие

6

SRW

Режим обращения к внешнему ОЗУ. Если этот разряд установлен в "1", обращение к внешнему ОЗУ выполняется за 4 машинных цикла (с одним циклом ожидания). Если этот разряд сброшен, обращение к внешнему ОЗУ выполняется за 3 машинных цикла.

AT90S4414 AT90S8515

--

Не используется, читается как "0"

Прочие

5

SE

Разрешение перехода в режим пониженного энергопотребления. Если этот разряд установлен в "1", то по команде "SLEEP" микроконтроллер переходит в "спящий" режим

Все модели

4

SM

Выбор режима пониженного энергопотребления. Состояние этого разряда определяет, в какой режим перейдет микроконтроллер после выполнения команды "SLEEP". Если этот разряд установлен в "1", "спящим" режимом является режим "Power Down". Если этот разряд сброшен -- режим "Idle".

Все модели

3,2

--

Не используются, читаются как "0"

AT90S1200 AT90S2323 AT90S2343

ISC11,

ISC10

Определяют условие генерации внешнего прерывания INT1 следующим образом:

Прочие

ISC11

ISC10

Условие

0

0

по НИЗКОМУ уровню на выводе 1NT1

0

1

при любом изменении уровня на выводе 1NT1 (для AT90S2333/4433); зарезервировано для остальных

1

0

по спадающему фронту сигнала на выводе INT1

1

1

по нарастающему фронту сигнала на выводе INT!

1,0

ISC01ISC00

Определяют условие генерации внешнего прерывания INTO следующим образом:

Все модели

ISC01

ISC00

Условие

0

0

по НИЗКОМУ уровню на выводе INTO

0

1

при любом изменении уровня на выводе INTO (для AT90S2333/4433); зарезервировано для остальных

1

0

по спадающему фронту сигнала на выводе INTO

1

1

по нарастающему фронту сигнала на выводе INTO

Таблица П.6

Регистр MCUCR моделей AT90S/LS4434 и AT90S/LS8535

Paзp.

Назв.

Описание

7

--

Не используется, читается как "0"

6

SE

Разрешение перехода в режим пониженного энергопотребления. Если этот разряд установлен в "1", то по команде "SLEEP" микроконтроллер переходит в "спящий" режим.

5,4

SM1, SM0

Выбор режима пониженного энергопотребления. Состояние этих разрядов определяет, в какой режим перейдет микроконтроллер после выполнения команды "SLEEP".

SM1

SMO

Режим

0

0

Idle

0

1

зарезервировано

1

0

Power Down

1

1

Power Save

3,2

ISC11, ISC10

Определяют условие генерации внешнего прерывания INT1 следующим образом:

ISC11

ISC10

Условие

0

0

по НИЗКОМУ уровню на выводе INT1

0

1

зарезервировано

1

0

по спадающему фронту сигнала на выводе INT1

1

1

по нарастающему фронту сигнала на выводе INT1

1,0

ISCOI, ISCOO

ISC01

ISC00

Условие

0

0

по НИЗКОМУ уровню на выводе INT0

0

1

зарезервировано

1

0

по спадающему фронту сигнала на выводе INT0

1

1

по нарастающему фронту сигнала на выводе INT0

Таблица П.7

Регистр MCUCR модели АТ90С8534

Paзp.

Назв.

Описание

--

He используется, читается как "0"

6

SE

Разрешение перехода в режим пониженного энергопотребления. Если этот разряд установлен в "1", то по команде "SLEEP" микроконтроллер переходит в "спящий" режим

5

SM

Выбор режима пониженного энергопотребления. Состояние этого разряда определяет, в какой режим перейдет микроконтроллер после выполнения команды "SLEEP". Если этот разряд установлен в "I", "спящим" режимом является режим "Power Down". Если этот разряд сброшен -- режим "Idle".

4,3

--

Не используются, читаются как "0"

2

ISC1

Определяет условие генерации внешнего прерывания INT1. Если этот разряд установлен в "1", прерывание генерируется по нарастающему фронту сигнала на выводе INT1. Если этот разряд сброшен, прерывание генерируется по спадающему фронту сигнала на выводе INT1 . Генерация прерывания гарантируется для импульсов длительностью не менее 40 нc

1

--

-1е используется, читается как "0"

0

1SCO

Определяет условие генерации внешнего прерывания INTO. Если этот разряд установлен в "1", прерывание генерируется по нарастающему фронту сигнала на выводе INTO. Если лог разряд сброшен, прерывание генерируется по спадающему фронту сигнала на выводе INTO. Генерация прерывания гарантируется для импульсов длительностью не менее 40 нc.

При изменении состояния разрядов ISC1 и ISCO возможна ложная генерация соответствующего прерывания. Чтобы этого избежать, рекомендуется следующая последовательность действий:

* запретить прерывание, соответствующее изменяемому разряду;

* изменить состояние разряда;

* сбросить флаг прерывания;

* разрешить прерывание.

Таблица П.8

Команды МК AVR семейства Classic

Мнемоника

Описание

Операция

Циклы

Флаги

1

2

3

4

5

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

AND Rd, Rr

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

Rd = Rd & Rr

1

Z,N,V

ANDI Rd, K

"Логическое И" РОН и константы

Rd = Rd & К

1

Z,N,V

EOR Rd, Rr

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

Rd = Rd Rr

1

Z,N,V

OR Rd, Rr

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

Rd = Rd Rr

1

Z,N,V

ORI Rd, K

"Логическое ИЛИ" РОН и константы

Rd = Rd К

1

Z,N,V

COM Rd

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

Rd = $FF - Rd

1

Z,C,N,V

NEG Rd

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

Rd = $00-Rd

1

Z,C,N,V,H

CLR Rd

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

Rd = Rd Rd

1

Z,N,V

SER Rd

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

Rd = $FF

1

--

TST Rd

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

Rd&Rd

1

Z,N,V

SWAP Rd

Обмен местами тетрад в РОН

Rd(3..0) = Rd(7..4),Rd(7..4) = Rd(3..0)

1

--

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

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:Rdi=Rdh:Rdl+К

2

Z,C,N,V,S

SUB Rd, Rr

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

Rd = Rd - Rr

1

Z,C,N,V,H

SUBI Rd, К

Вычитание константы из РОН

Rd = Rd - К

1

Z,C,N,V,H

SBC Rd, Rr

Вычитание двух РОН с заемом

Rd = Rd - Rr - C

]

Z,C,N,V,H

SBCI Rd, K

Вычитание константы из РОН с заемом

Rd = Rd - K - C

1

Z,C,N,V,H

SBIW Rd,

Вычитание константы из регистровой пары

Rdh:Rdl=Rdh:Rdl-К

2

Z,C,N,V,S

DEC Rd

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

Rd = Rd - l

1

Z,N,V

INC Rd

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

Rd = Rd + 1

1

Z,N,V

ASR Rd

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

Rd(n) = Rd(n+1), n=0..6

1

Z,C,N,V

LSL Rd

Логический сдвиг влево

Rd(n+l) = Rd(n), Rd(0) = 0

1

Z,C,N,V

LSR Rd

Логический сдвиг вправо

Rd(n) = Rd(n+l), Rd(7) = 0

1

Z,C,N,V

ROL Rd

Сдвиг влево через перенос

Rd(0) = C, Rd(n+l)= = Rd(n), С = Rd(7)

1

Z,C,N,V

ROR Rd

Сдвиг вправо через перенос

Rd(7) = C, Rd(n) = =Rd(n+l), С = Rd(0)

1

Z,C,N,V

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

CBR Rd, K

Сброс разряда(ов) РОН

Rd = Rd & ($FF - К)

1

Z,N,V

SBR Rd, K

Установка разряда(ов) РОН

Rd = Rd К

1

Z,N,V

CBI А,b

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

A.b = 0

2

--

SBI А,b

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

A.b=1

2

--

BCLR s

Сброс флага

SREG.s = 0

1

SREG.s

BLD Rd, b

Загрузка разряда РОН из флага Т (SREG)

Rd.b = Т

1

--

BSET s

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

SREG.s = 1

1

SREG.s

BST Rr, b

Запись разряда РОН в флаг Т (SREG)

Т = Rr.b

1

Т

CLC

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

C = 0

1

С

SEC

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

C=l

1

C

CLN

Сброс флага отр. числа

N = 0

1

N

SEN

Установка флага отр. числа

N=1

1

N

CLZ

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

Z = 0

1

Z

SEZ

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

Z=l

1

Z

CLI

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

I = 0

1

I

SEI

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

I = 1

1

I

CLS

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

S = 0

1

S

SES

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

S=l

1

S

CLV

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

V = 0

1

V

SEV

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

V= 1

1

V

CLT

Сброс флага Т

T = 0

1

T

SET

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

T= 1

1

T

CLH

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

H = 0

1

H

SEH

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

Н=1

1

H

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

MOV Rd. Rr

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

Rd = 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-l, Rd = [X]

2

--

LD Rd, Y

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

Rd=[Y]

2

--

LD Rd, Y+

Косвенное чтение с постинкрементом

Rd = [Y], Y = Y + 1

2

--

LD Rd, -Y

Косвенное чтение с преддекрементом

Y = Y-l, Rd = [Y]

2

--

LDD 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-l, Rd = [Z]

2

--

LDD 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-l, [X] = Rr

2

ST Y, Rr

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

[Y] = Rr

2

--

ST Y+, Rr

Косвенная запись с постинкрементом

[Y] = Rr, Y = Y + 1

2

--

ST -Y, Rr

Косвенная запись с преддекрементом

Y = Y- l,[Y] = Rr

2

--

STD 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-l,[Z] = Rr

2

--

STS k, Rr

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

[k] = Rr

2

STD Z+q, Rr

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

[Z+q] = Rr

2

--

LPM

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

R0={Z}

3

--

IN Rd, A

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

Rd = A

1

--

OUT A, Rr

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

A = Rr

1

--

PUSH Rr

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

STACK = Rr

2

--

POP Rd

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

Rd = STACK

2

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

RJМР k

Относительный безусловный переход

PC = PC + k +1

2

--

IJМР

Косвенный безусловный переход

PC = Z

2

--

RCALL

Относительный вызов подпрограммы

PC = PC + k +1

3

--

ICALL

Косвенный вызов подпрограммы

PC = Z

3

--

RET

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

PC = STACK

4

--

RETI

Возврат из подпрограммы обработки прерывания

PC = STACK

4

I

CP Rd, Rr

Сравнение РОН

Rd-Rr

1

Z,N,V,C,H

CPC Rd, Rr

Сравнение РОН с учетом переноса

Rd-Rr-C

1

Z,N,V,C,H

CPI Rd, K

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

Rd-K

1

Z,N,V,C,H

CPSE Rd, Rr

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

Если Rd = Rr, то PC= PC + 2 (3)

1/2/3

--

SBRC Rr, b

Пропуск след, команды, если разряд РОН сброшен

Если Rr.b = 0, то PC = PC + 2 (3)

1/2/3

--

SBRS Rr, b

Пропуск след, команды, если разряд РОН установлен

Если Rr.b = 1, то PC = PC + 2 (3)

1/2/3

--

SBIC A, b

Пропуск след, команды, если разряд РВВ сброшен

Если A.b = 0. то PC = PC + 2 (3)

1/2/3

I

SBIS A, b

Пропуск след, команды, если разряд РВВ установлен

Если A.b = 1, то PC = PC + 2 (3)

1/2/3

--

BRBC s, k

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

Если SREG.s = 0, тo PC = PC + k + l

1/2

--

BRBS s, k

Переход, если флаг s регистра SREG установлен

Если SREG.s =1, тo PC = PC + k + l

1/2

--

BRCS k

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

Если С =1, то PC = PC + k +1

1/2

--

BRCC k

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

Если С = 0, тo PC = PC + k + 1

1/2

--

BREQ k

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

Еcли Z = 1, тo PC = PC + k +1

1/2

--

BRNE k

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

Если Z = 0, то PC = PC + k + 1

1/2

--

BRSH k

Переход по условию "выше или равно"

Если С = 0, то PC = PC + k + 1

1/2

--

BRLO k

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

Если С = 1, то PC = PC + k + 1

1/2

--

BRMI

Переход по условию "отрицательное значение"

Если N = 1, тo PC = PC + k + 1

1/2

--

BRPL

Переход по условию "положительное значение"

Если N = 0, то PC = PC + k + 1

1/2

--

BRGE

Переход по условию "больше или равно" (числа со знаком)

Если (N V) = 0, тo PC = PC + k + 1

1/2

--

BPLT

Переход по условию "меньше нуля" (числа со знаком)

Если (NV)=l, то PC = PC + k + 1

1/2

--

BRHS

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

Если Н=1, то PC = PC + k + 1

1/2

--

BRHC

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

Если Н = 0, тo PC = PC + k + 1

1/2

--

BRTS

Переход, если флаг Т установлен

Если Т= 1, то PC = PC + k + 1

1/2

--

BRTC

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

Если Т = 0, то PC = PC + k + 1

1/2

--

BRVS

Переход по переполнению доп. кода

Если V=1, то PC = PC + k + 1

1/2

--

BRVC

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

Если V = 0, то PC = PC + k + 1

1/2

--

BRID

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

Если I = 0, то PC = PC + k + 1

1/2

--

BRIE

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

Если I= 1, то PC = PC + k + 1

1/2

NOP

Нет операции

1

SLEEP

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

3

--

WDR

Сброс сторожевого таймера

1

Размещено на allbest.ru


Подобные документы

  • Понятие и виды микроконтроллеров. Особенности программирования микропроцессорных систем, построение систем управления химико-технологическим процессом. Изучение архитектуры микроконтроллера ATmega132 фирмы AVR и построение на его основе платформы Arduino.

    курсовая работа [1,9 M], добавлен 13.01.2011

  • Микроконтроллеры - микросхемы, предназначенные для управления электронными устройствами, их классификация. Структура процессорного ядра микроконтроллеров, основные характеристики, определяющие его производительность. CISC и RISC архитектура процессора.

    курсовая работа [43,2 K], добавлен 03.10.2010

  • Семейство 16-разрядных микроконтроллеров Motorola 68HC12, их структура и функционирование. Модуль формирования ШИМ-сигналов. Средства отладки и программирования микроконтроллеров 68НС12. Особенности микроконтроллеров семейства MCS-196 фирмы INTEL.

    курсовая работа [239,6 K], добавлен 04.01.2015

  • Использование микроконтроллеров AVR фирмы Atmel в проектируемой аппаратуре. Архитектура и общие характеристики прибора, предназначение арифметики логического устройства и понятие флэш-памяти. Формат пакета данных, алгоритм их передачи и система команд.

    контрольная работа [427,3 K], добавлен 12.11.2010

  • Адресное пространство микроконтроллеров MSP430F1xx. Байтовая и словная формы инструкций. Система команд MSP микроконтроллеров. Периферийные устройства микроконтроллеров MSP430F1xx. Аналого-цифровой преобразователь ADC12, его технические характеристики.

    курсовая работа [278,1 K], добавлен 04.05.2014

  • Общая характеристика операций, выполняемых по командам базовой системы. Описание и мнемокоды команд, используемых при разработке программы на языке AVR Ассемблера. Основные принципы работы команд с обращением по адресу SRAM и к регистрам ввода–вывода.

    реферат [148,4 K], добавлен 21.08.2010

  • Микроконтроллер (MCU) — микросхема, предназначенная для управления электронными устройствами. Их можно встретить во многих современных приборах, в том числе и бытовых. Рассмотрение архитектуры различных микроконтроллеров, ядра, памяти, питания, периферии.

    реферат [216,5 K], добавлен 24.12.2010

  • Общая характеристика и применение микроконтроллеров FUJITSU MB-90 и MCS-196 фирмы Intel. Основные особенности микроконтроллеров серии MCS-96 и MB90385. Внутренняя архитектура процессоров. Система команд, работа с внутренними и внешними устройствами.

    курсовая работа [768,0 K], добавлен 01.12.2010

  • Классификация систем управления (СУ) машиностроительным оборудованием. Архитектура СУ на базе микропроцессорных комплектов фирм DEC и Motorola. Программное обеспечение СУ и программируемых контроллеров. Графический язык программирования Ladder Diagram.

    курс лекций [374,5 K], добавлен 22.11.2013

  • Рассмотрение структуры и принципов работы таймеров/счетчиков (общего назначения, сторожевого, типов А, В, С, D, Е) микроконтроллеров и аналого-цифрового преобразователя семейства AVR с целью разработки обучающего компьютерного электронного пособия.

    курсовая работа [1,0 M], добавлен 06.03.2010

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.