2. Индикация.

Подключая к выводам портов различные системы индикации, будь то простые светодиоды, ССИ или ЖКИ можно создать широкий класс задач. Различные варианты примеров можно создать, изменяя очередность или длительность световой индикации. Можно сделать несколько примеров заданий с движущимися символами или «бегущей строкой», задавая различные символы и строки. Реализация различной длительности индикации может осуществляться либо с помощью таймера, либо с помощью циклов задержки, либо другими способами, что увеличивает разнообразие вариантов заданий.

3. Вычисления и обработка данных

Существует много примеров с арифметическими вычислениями. К примеру, можно производить сложение, вычитание, умножение, деление или сравнение 8- или 16-разрядных чисел. Также существуют математические или базисные логические функции, из которых можно строить более сложные произвольные функции.

Еще к этому классу задач относятся преобразование 8-, 16-разрядных чисел в упакованные (или нет) двоично-десятичные (Binary Coded Decimal – BCD) и обратно, сортировка чисел различными способами и фильтрация.

4. Измерение внешних параметров и устройства управления:

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

Это достаточно сложный класс задач, так как он может включать в себя и некоторые вышеперечисленные классы (1-3).

Варианты заданий

Префикс 0x – обозначает шестнадцатеричное число, 0b – двоичное, без префикса пишется десятичное число.

Во всех вариантах необходимо составить и отладить программу с помощью симулятора и если необходимо запрограммировать микроконтроллер с помощью программатора в системе макета.

Дан массив А из 8 (или др.) однобайтовых чисел распложенных в Program Memory или EEPROM начинающийся с адреса 0x0A (или др.). Переписать из массива А в массив В все числа, большие 0x05 (или др.) и меньшие 0x2С. Массив В может находиться либо в EEPROM, либо в SRAM.

Написать программу перекодировки восьмиразрядного или шестнадцатиразрядного двоичного числа в упакованное двоично-десятичное число.

Написать программу перекодировки двухразрядного или пятиразрядного двоично-десятичного числа в двоичное.

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

Дан массив А из 8 (или др.) однобайтовых или двухбайтовых кодов. Определить, содержит ли он код 0хАС или 0хАFВС. Если "да", то в регистр Rn занести число таких кодов.

Дан массив А из 10 однобайтовых (или др.) чисел. Переписать его в массив В, упорядочив числа по возрастанию (или по убыванию).

Дан массив А из 10 однобайтовых чисел. Переписать в массив В только числа, содержащие четное (или нечетное) количество единиц (или нулей).

Зашифровать содержащиеся в массиве А коды 10 букв или цифр по следующему правилу: а) циклический сдвиг влево на 5 (или др.) разрядов и побитовая инверсия; б) прибавить константу 2 (или др.) и циклический сдвиг вправо на 3 разряда.

Дан массив А из 5 однобайтовых чисел. Определить, содержит ли он число 0х1F (или др.). Если да, то выполнить операцию "логическое И" (или др.) над всеми числами массива А.

Переписать в стек, расположенный в памяти с адреса С, массив А из 10 восьмиразрядных (или др.) чисел. Выполнить операцию суммирования (или др.) над ними.

Дан массив А из 10 однобайтовых чисел, содержащий число 0хАА. Выполнить операцию "логическое И" (или др.) над всеми числами до 0xАА и операцию "логическое ИЛИ" (или др.) над всеми числами после него.

Написать программу вычисления логической функции V=X*(NOT.Y*Z+NOT.W) (или др.) ,где + - знак операции ИЛИ,* - знак операции И, X,Y,Z,W-логические переменные, хранимые в разрядах 3-0 ячейки памяти EEPROM по адресу 0x00.

Написать программу сложения или вычитания двух 8 разрядных (или др.) двоичных чисел со знаком (или без).

Дан массив А из 10 однобайтовых чисел. Переписать в массив В все числа, большие (или меньшие) 0х20, и записать в регистр Rn (или вывести на индикатор) число таких чисел.

Определить четное или нечетное число единиц (или нулей) в 8 двоичных кодах, записанных в массиве А, и вывести на индикатор сообщение «Ч» или «Н» (или число единиц).

Дан массив А из 10 однобайтовых чисел. Переписать в массив В все числа, лежащие в диапазоне 0х0F – 0хF0 (или др.). Вывести на индикатор число таких чисел.

Дан массив А из 8 однобайтовых чисел, содержащий число 0хА1. Необходимо найти сумму всех чисел массива А, находящихся до этого числа. Результат вывести на индикатор.

В массиве А хранится 8 показаний температуры больных .Проверить, нет ли среди них значений выше 37 и ниже 36 и вывести на индикатор соответственно два числа через пробел.

Разработать программу вывода на индикатор отладочного устройства последовательности цифр 1-8,образовав ряд 12345678.

Разработать программу вывода на индикатор всех битов регистра состояния процессора SREG в формате: каждому флагу (биту)- один разряд индикатора.

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

Разработать программу мигания одного (или др.) разряда дисплея с интервалом 3сек. (или др.).

Разработать программу последовательного гашения всех индикаторов дисплея после его включения.

Разработать программу циклического перемещения одного символа, хранимого в ячейке памяти, вдоль индикатора (бегущий символ).

Разработать программу для циклического перемещения набора цифр или символов вдоль индикатора в направлении справа налево (или наоборот).

Разработать программу "Электронные часы", используя для индикации семи сегментный индикатор. Формат вывода «22.15.30» или «22.15», обеспечив мигание точки с интервалом 1с.

Разработать программу, чередующую вывод на индикатор сообщений «1C», «2C» и «4C» (или др.) удерживаемых соответственно 1сек, 2сек и 4сек.

Используя матричную клавиатуру 3х3 и светодиод разработать программу и устройство, которое обеспечивало мигание светодиода такое количество раз равное номеру нажатой клавиши (1 – 9).

Используя матричную клавиатуру 4х4 (или др.) и систему индикации разработать программу и устройство кодового замка из 4 (или др.) цифр кода.

Используя матричную клавиатуру 4х4 (или др.) и семи сегментные индикаторы разработать программу и устройство калькулятора, которое обеспечивает сложение, вычитание, умножение и делание 16-ти разрядных чисел.

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

Основные принципы выполнения заданий.

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

уяснить поставленную задачу, понимая, что должно являться результатом;

выбрать соответствующий микроконтроллер, исходя из требования задания;

составить подробное (побитовое) описание необходимых для выполнения задания регистров имея перед собой таблицу всех регистров ввода/вывода (см. ПРИЛОЖЕНИЕ 2);

определить необходимые векторы прерываний и составить алгоритмы соответствующих обработчиков векторов прерываний;

составить алгоритм основной программы, учитывая особенности МК (стек и т.д.);

приступить к написанию программы, выбирая необходимые команды ассемблера.

На рис. 3.15.1 изображена структурная схема процесса обучения. Она включает:

1) Написание программы прошивки микроконтроллера, для решения поставленной задачи;

2) Контроль правильности разработанной программы на симуляторе с помощью компьютера (первая петля обратной связи);

3) Прошивка микроконтроллера и сопряжение с системой индикации (внешними устройствами) для окончательного контроля правильности выполненной задачи (вторая петля обратной связи).




Рис. 3.15.1 Структурная схема процесса обучения.

3.2.2. Рассмотрение типовых примеров

В качестве примера работы с памятью рассмотрим следующее задание: Требуется написать программу копирования таблицы из 20 восьмибитных чисел данных из памяти программ (Program Memory) в оперативную память (SRAM) начиная с адреса 0х80.

Рассмотрим выполнение данной программы в соответствии с предложенными выше правилами.

В данном примере нам необходимо работать с оперативной памятью SRAM. Так как в МК AT90S1200 её нет, то выбираем к примеру AT90S8515 (или др). Теперь нам надо позаботиться о правильной инициализации стека, загрузив в указатель стека адрес старшей ячейки оперативной памяти. Данную программу можно полностью реализовать на симуляторе AVR Studio Simulator, где наглядно будет видна вся карта памяти. Ниже приведем программу с некоторыми пояснительными комментариями.

Программа копирования таблицы данных:

;********************************************************************

.include "8515def.inc"

.equ BLOCK1 =$80 ;начальный адрес копируемой таблицы данных в SRAM

;памяти

.def flashsize =r16 ;РОН хранящий размер таблицы

.def temp =r16 ;РОН для промежуточных действий


rjmp RESET ;вектор прерывания по включению питания, сбросу

;RESET или сбросу от сторожевого таймера

;**********************************************************************

;* Подпрограмма копирования таблицы данных из памяти программ в SRAM

flash2ram:

lpm ;загружаем из памяти программ в R0 байт адрес

;которого указан в Z

st Y+,r0 ;сохраняем его в SRAM памяти с постинкрементом

;регистра Y

adiw ZL,1 ;инкремент Z

dec flashsize ;декремент flashsize

brne flash2ram ;если предыдущая операция не равна 0 то перейти на

;метку

ret ;возврат в основную программу

;***********************************************************************

;* Основная программа

RESET:

ldi temp, low(RAMEND) ; инициализируем указатель стека

out SPL, temp ;

ldi temp, high(RAMEND) ;

out SPH, temp ;

ldi ZH, high(F_TABLE*2) ;загружаем в регистр Z удвоенный адрес

ldi ZL, low(F_TABLE*2) ; начала таблицы данных

ldi YH, high(BLOCK1) ;загружаем в регистр Y адрес начала

ldi YL, low(BLOCK1) ; таблицы данных в SRAM памяти

ldi flashsize,20 ;определяем размер таблицы

rcall flash2ram ;вызываем подпрограмму копирования таблицы данных

;из памяти программ в SRAM память

forever:rjmp forever ;бесконечный цикл

F_TABLE:

.db 0,1 ;начало таблицы из 20 восьмибитных чисел

.db 2,3

.db 4,5

.db 6,7

.db 8,9

.db 10,11

.db 12,13

.db 14,15

.db 16,17

.db 18,19

;**********************************************************************

В качестве примера задачи по индикации рассмотрим второй пример:

Используя два светодиода и кнопку разработать программу и устройство которое вызывает мигание одного светодиода, подключенного к выводу PB0, и с помощью кнопки, подключенной к выводу PD5, зажигает светодиод, подключенный к выводу PB4. Частоту мигания светодиода порядка 2-3 Гц задать с помощью обработчика прерывания от таймера Т0.

Данное устройство можно реализовать на МК AT90S1200. Для обеспечения заданной частоты мигания светодиода коэффициент предварительного деления тактовой частоты (4Гц) для таймера Т0 будет равен 1024. Подпрограмма обработки прерывания по переполнению таймера Т0 инвертирует значение логического уровня (0 или 1) на 0 выводе порта В, обеспечивая тем самым мигание подключенного светодиода. Светодиоды подключаются согласно разделу «1.4.2 Световая индикация». Исходный текст программы цифрового частотомера:

;********************************************************************

.include "1200def.inc"

rjmp Start ;вектор прерывания по включению питания, сбросу

;RESET или сбросу от сторожевого таймера

nop ;вектор внешнегго прерывания неиспользуется

rjmp TmrInt ;вектор прерывания по переполнению таймера Т0

;**********************************************************************

;* Подпрограмма обработки прерывания по переполнению таймера Т0

TmrInt:

in R0, SREG ;сохранение регистра статуса SREG

in R16, PORTB ;запомнить текущее значение PortB

ldi R17, $1 ;

eor R16, R17 ;инвертируем 0 бит порта В

out PORTB, R16

out SREG, R0

reti ;выход из подпрограммы

;********************************************************************

;* Основная программа

Start:

ldi R18, $11 ;конфигурируем биты порта В

out DDRB, R18 ; как выход

clr R18

out PORTB, R18

clr R18 ;конфигурируем 5 бит порта D

out DDRD, R18 ; как вход

ldi R18, $20

out PORTD, R18

ldi R18, 5 ;устанавливаем коэффициент предварительного деления

out TCCR0, R18 ; частоты на 1024

ldi R18, 2 ;разрешаем прерывание по переполнению таймера Т0

out TIMSK, R18

SEI ;общее разрешение прерываний

Loop: ; Loop Around Forever

sbis PIND, 5 ;если PIND5=0 (кнопка нажата)

rjmp PORTB0_Hi ; перейти на метку PORTB0_Hi

cbi PORTB, 4 ;обнулить бит 4 порта В

rjmp Loop

PORTB0_Hi: ;

sbi PORTB, 4 ;установить бит 4 порта В

rjmp Loop

;**********************************************************************

В качестве третьего, достаточно сложного примера рассмотрим программу для измерителя частоты в диапазоне 20 Гц – 20 КГц, используя генератор звуковых колебаний и несколько разрядов ССИ.

Согласно схеме изображенной на рис. 3.15.2. преобразуем колебания от генератора в П-импульсы и подаем на вывод прерывания (INT0) МК. Диод D1 обеспечивает однополупериодное выпрямление исследуемой синусоиды. После делителя R1, R3 напряжение поступает на ограничитель R2, D2 с напряжением ограничения не больше 5 В.



Рис. 3.15.2 Схема подключения генератора колебаний к микроконтроллеру.

Таймер/счетчик Т1 ведет подсчет тактовых импульсов с коэффициентом деления частоты равным 64, а при переполнении останавливается и обнуляется.

Внешнее прерывание INT0 вызывает соответствующую подпрограмму обработки при нарастающем фронте сигнала на одноименном выводе INT0. Эта подпрограмма позволяет таймеру/счетчику Т1 определить число импульсов за один период внешнего сигнала. Далее основная программа преобразует этот значение в частоту и переведя в двоично-десятичный код выводит на семисегментные индикаторы, которые подключаются к МК согласно разделу 1.4.2. Программа прошивки МК для реализации устройства измерителя частоты на базе МК AT90S8515 приведена в ПРИЛОЖЕНИИ 3.

Последний рассмотренный пример представляет устройство «кодовый замок». Реализованное на основе МК AT90S1200, оно содержит матричную клавиатуру и два светодиода для индикации работы и правильности введенного кода. Программа прошивки МК для реализации этого устройства приведена в ПРИЛОЖЕНИИ 4.

3.3. Описание макета программатора.

Макет программатора состоит из общей платы и вспомогательных плат реализующих необходимые функции заданий. Общая плата имеет разъем, соединяющая программатора с параллельным портом компьютера. На общей плате также расположены две контактных колодки (дип панели) для установки программируемых микроконтроллеров. Они позволяют использовать МК следующих типов: а) дип панель DIP2x20.2 для МК серий AT90S4414 и AT90S8515; б) дип панель DIP2x10.1 для МК серии AT90S1200 AT90S2313.

Вспомогательные платы позволяют макетировать проектируемое устройство, управляемое микроконтроллером, не подвергая нежелательным механическим воздействиям сам программатор и микросхему контроллера. Вспомогательные платы соединяются с общей платой через дополнительные разъемы, что позволяет более прагматично использовать имеющиеся порты (выводы) МК.

Питание программатора обеспечивается от внешнего блока стабилизированного питания МС9011.02 с выходным напряжением Vcc=+5В при максимальном токе нагрузки Iн=1.5А.



Рис. 3.16. Принципиальная схема макета программатора.

На рис 3.16. приведена принципиальная схема макета программатора для последовательного программирования МК серии AT90S1200 и AT90S8515 через параллельный (LPT) порт компьютера. Подсоединение к компьютеру осуществляется с помощью кабеля подключения изображенного на рис. 3.17.

Соединительный кабель для подключения макета программатора к параллельному (LPT) порту компьютера состоит из двух разъемов DB25F и BH10.1 и двух шлейфов по 26 и 10 жил соединенных между собой согласно таблице 3.1. и таблице 3.2. Разъем DB25F (штырь) подсоединяется к параллельному (LPT) порту компьютера, а BH10.1 (гнездо) к разъему BH10.2 (штырь) на макете программатора (см. рис. 3.16).



Рис. 3.17. Кабель подключения макета к LPT порту компьютера.


Таблица № 3.1. Соответствие номера контакта разъема DB25F и порядкового номера 25 жильного шлейфа.

Порядковый номер 25 жильного шлейфа

1 (крас-ный) 2 3 4 5 6 7 8 9 10 11 12 13

Номер контакта в разъеме DB25F

1 14 2 15 3 16 4 17 5 18 6 19 7

Порядковый номер 25 жильного шлейфа

14 15 16 17 18 19 20 21 22 23 24 25 26

Номер контакта в разъеме DB25F

20 8 21 9 22 10 23 11 24 12 25 13 -

Таблица № 3.2. Соответствие номеров контактов разъема
DB25F и разъема BH10.1.

Разъем DB25F

Символьное обозначение

Разъем BH10.1

5 XTAL1 4
6 RESET 5
7 MOSI 1
8 SCK 7
10 MISO 9
19-25 Gnd 10

На приведенной схеме макета программатора кроме соединительных разъемов и контактных колодок МК находятся внешние элементы необходимые для обеспечения работы тактового генератора. Это конденсаторы С2=С1=39 пФ, С3=1000 пФ и кварц с частотой генерации колебаний 4 МГц. Кнопка В1 обеспечивает сброс МК в начальное состояние.

Подключение вспомогательных плат к макету программатора осуществляется через штыревые разъемы PLS.1, PLS.2 и PLS.3. Так как разъем PLS.1 соединен с дип панелью DIP2x10.1, в которую устанавливается МК серии AT90S2313 и AT90S1200, а разъемы PLS.2 и PLS.3 соединены с дип панелью DIP2x20.2, в которую устанавливается МК серий AT90S4414 и AT90S8515, то нумерация выводов разъема PLS.1 соответствует нумерации ножек AT90S1200, а нумерация выводов разъемов PLS.2 и PLS.3 соответствует нумерации ножек AT90S4414 и AT90S8515.

В макете программатора при программировании и последующей работе должен находиться только один (!) микроконтроллер, либо в панели DIP2x10.1 (AT90S1200 или AT90S2313), либо в панели DIP2x20.2 (AT90S4414 или AT90S8515). К разъемам PLS.n (n=1,2,3) через соответствующую колодку можно подсоединять любые внешние устройства: светодиоды, ССИ, кнопки, матричную клавиатуру, подавать сигнал на какой либо порт (вывод) микроконтроллера или считывать его. При этом надо помнить, что на контакт 20 разъема PLS.1 и на контакт 40 разъема PLS.3 подается напряжение Vcc=+5В.

Макет программатора имеет два режима работы. Первый – непосредственное программирование микроконтроллера с помощью компьютера. Как с подключенными внешними устройствами, так и без них. Второй режим – автономный, когда происходит работа с внешними устройствами, выполненными на вспомогательных платах. При этом режиме макет программатора должен быть отсоединен от компьютера.

Сначала обучающийся должен, получив задание, подготовить (написать и отладить) программное обеспечение с помощью AVR Studio (см. раздел 3.1.), согласно пп. 1-6 раздела 3.2. (Принципы выполнения заданий). Результатом данного этапа является безошибочная трансляция разработанной программы. Только после этого можно приступить к использованию макета программатора и построению внешнего устройства на вспомогательной плате, если это предусмотрено заданием.


ЗАКЛЮЧЕНИЕ

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

Проведен анализ архитектуры современных микроконтроллеров. Уделено внимание систематизации аппаратных средств и общим вопросом методам отладки разрабатываемых программ.

Особое внимание уделено серийным МК фирмы ATMEL семейства AVR. Рассмотрены их особенности построения и функционирования. Анализ системы команд микроконтроллеров AVR и практические рекомендации работы в интегрированной среде разработки «AVR Studio» позволяет эффективно создавать и разрабатывать программы для AVR микроконтроллеров.

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

Изготовлен универсальный макет программатора, позволяющий проводить не только прошивку МК AVR четырех типов (AT90S1200, AT90S2313, AT90S4414, AT90S8515), но и управление проектируемыми внешними устройствами.

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

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


БИБЛИОГРАФИЧЕСКИЙ СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

Предко М. Руководство по микроконтроллерам. Том 1. / Пер. с англ. под ред. И. И. Шагурина и С. Б. Лужанского – М.: Постмаркет, 2001. – 416 с.

Предко М. Руководство по микроконтроллерам. Том 2. / Пер. с англ. под ред. И. И. Шагурина и С. Б. Лужанского – М.: Постмаркет, 2001. – 488 с.

Cady, Fredrick M. Microcontrollers and microcomputers: principles of software
and hardware engineering. – New York – Oxford, Oxford University Press,
1997. – 252 p.

Вуд А. Микропроцессоры в вопросах и ответах. / Пер. с англ. под ред. Д. А. Поспелова. – М.: Энергоатомиздат. 1985. – 184 с.

Уильямс Г.Б. Отладка микропроцессорных систем: / Пер. с. англ. – М.: Энергоатомиздат, 1988. – 253с.

Угрюмов Е.П. Цифровая схемотехника. – Спб.: БВХ – Санкт-Петербург,
2000. – 528 с.

Алексенко А.Г., Шагурин И.И. Микросхемотехника. – М.: Радио и связь,
1990. – 496 с.

Бродин Б.В., Шагурин И.И. Микроконтроллеры: Справочник. – М.: ЭКОМ, 1999. – 395 с.

Программируемые логические ИМС на КМОП-структурах и их применение. / П.П. Мальцев, Н.И. Гарбузов, А.П. Шарапов, А.А. Кнышев. – М.: Энергоатомиздат, 1998. – 158 с.

Соловьев В.В., Васильев А.Г. Программируемые логические интегральные схемы и их применение. – Мн.: Беларуская наука, 1998. – 270 с.

Bursky D. Embedded Logic and Memory Find a Home in FPGA. – Electronic Design, 1999, №14, pp. 43-56.

Chang D., Mazek-Sadowska M. Dynamically Reconfigable FPGA. – JEEE Transition on Computers, 1999, №6, pp. 565 – 578.

Bursky D. Advanced CPLD Architectures Challenge FPGA, Gas. – Electronic Design, 1998, №22, pp. 78 – 86.

Takai Y. a.o. 250 Mbytes Synchronous DRAM Using a 3-Stage-Pipeline Architecture. – JEEE. Journal of Solid-Stage Circuits. – 1994, v.29, №4,
pp. 426 – 429.

Лаптев В. Цифровой измеритель температуры на базе AVR микроконтроллера и RC-цепочки. – Электронные компоненты, 2001. №2, с. 46 – 49.

http://www.atmel.ru/ - описание AVR микроконтроллеров, русскоязычный сайт.

http://www.dontronics.com/atmel.html - программные проекты по AVR.

http://www.gaw.ru/, http://www.cec-mc.ru - информация о МК фирмы ATMEL

http://trush.da.ru/, http://avr.da.ru/ - описание МК AT90S1200 фирмы Atmel

http://www.ln.com.ua/~real/avreal, http://www.chat.ru/~avreal: - AVReAl: программа прошивки At90sXXXX через LPT порт

http://trush.pp.ru/avr/ - полезные ссылки по AVR.


ПРИЛОЖЕНИЕ 1
Инструкции процессоров AVR.

Ниже приведен набор команд процессоров AVR, более детальное описание их можно найти в AVR Data Book [16,19].

Таблица А.1. Арифметические и логические инструкции.

Мнемоника

Операнды

Описание

Операция

Флаги

Циклы

ADD

Rd,Rr 

Суммирование без переноса Rd = Rd + Rr Z,C,N,V,H,S 1
ADC

Rd,Rr

Суммирование с переносом Rd = Rd + Rr + C Z,C,N,V,H,S 1
SUB

Rd,Rr

Вычитание без переноса Rd = Rd - Rr Z,C,N,V,H,S 1
SUBI

Rd,K8

Вычитание константы Rd = Rd - K8 Z,C,N,V,H,S 1
SBC

Rd,Rr

Вычитание с переносом Rd = Rd - Rr - C Z,C,N,V,H,S 1
SBCI

Rd,K8

Вычитание константы с переносом Rd = Rd - K8 - C Z,C,N,V,H,S 1
AND

Rd,Rr

Логическое И Rd = Rd · Rr Z,N,V,S 1
ANDI

Rd,K8

Логическое И с константой Rd = Rd · K8 Z,N,V,S 1
OR

Rd,Rr

Логическое ИЛИ Rd = Rd V Rr Z,N,V,S 1
ORI

Rd,K8

Логическое ИЛИ с константой Rd = Rd V K8 Z,N,V,S 1
EOR

Rd,Rr

Логическое исключающее ИЛИ Rd = Rd EOR Rr Z,N,V,S 1
COM

Rd

Побитная Инверсия Rd = $FF - Rd Z,C,N,V,S 1
NEG

Rd

Изменение знака (Доп. код) Rd = $00 - Rd Z,C,N,V,H,S 1
SBR

Rd,K8

Установить бит (биты) в регистре Rd = Rd V K8 Z,C,N,V,S 1
CBR

Rd,K8

Сбросить бит (биты) в регистре Rd = Rd · ($FF - K8) Z,C,N,V,S 1
INC

Rd

Инкрементировать значение регистра Rd = Rd + 1 Z,N,V,S 1
DEC

Rd

Декрементировать значение регистра Rd = Rd -1 Z,N,V,S 1
TST

Rd

Проверка на ноль либо отрицательность Rd = Rd · Rd Z,C,N,V,S 1
CLR

Rd

Очистить регистр Rd = 0 Z,C,N,V,S 1
SER

Rd

Установить регистр Rd = $FF None 1
ADIW

Rdl,K6

Сложить константу и слово Rdh:Rdl = Rdh:Rdl + K6 Z,C,N,V,S 2
SBIW

Rdl,K6

Вычесть константу из слова Rdh:Rdl = Rdh:Rdl - K6 Z,C,N,V,S 2
MUL

Rd,Rr

Умножение чисел без знака R1:R0 = Rd * Rr Z,C 2
MULS

Rd,Rr

Умножение чисел со знаком R1:R0 = Rd * Rr Z,C 2
MULSU

Rd,Rr

Умножение числа со знаком с числом без знака R1:R0 = Rd * Rr Z,C 2
FMUL

Rd,Rr

Умножение дробных чисел без знака

R1:R0 = (Rd * Rr)


Информация о работе «Разработка программной и аппаратной поддержки к методическим указаниям Программирование микроконтроллеров»
Раздел: Информатика, программирование
Количество знаков с пробелами: 130405
Количество таблиц: 7
Количество изображений: 0

Похожие работы

Скачать
430825
6
4

... с применением полиграфических компьютерных технологий? 10. Охарактеризуйте преступные деяния, предусмотренные главой 28 УК РФ «Преступления в сфере компьютерной информации». РАЗДЕЛ 2. БОРЬБА С ПРЕСТУПЛЕНИЯМИ В СФЕРЕ КОМПЬЮТЕРНОЙ ИНФОРМАЦИИ ГЛАВА 5. КОНТРОЛЬ НАД ПРЕСТУПНОСТЬЮВ СФЕРЕ ВЫСОКИХ ТЕХНОЛОГИЙ 5.1 Контроль над компьютерной преступностью в России Меры контроля над ...

Скачать
63826
0
8

... на стадии разработки, так и в стадии сервисного обслуживания. Таким образом, целью бакалаврской работы – является разработка компонентов инфраструктуры сервисного обслуживания кристалла памяти ГАС. Объектом работы – является встроенная в ГАС память на кристалле. 1. анализ технического задания 1.1  Системы на кристалле. Общие представления Выражение "система на кристалле" не является, ...

Скачать
83541
16
16

... , КФ1158ЕНхх с малым падением напряжения вход - выход охватывает диапазон выходных напряжений от 3 до 15В. Все стабилизаторы предназначены для широкой области применения и идеально подходят для нужд автомобильной электроники, так как имеют встроенную защиту от выбросов входного напряжения при сбросе нагрузки генератора до 60 В, защиту при подключении входного напряжения в обратной полярности и от ...

Скачать
115495
6
21

... информации и ее достоверность, что необходимо для эффективного планирования и управления. 1.3 Информационная технология проектирования автоматизированного рабочего места и эргономика аппаратных и программных средств АРМ В современных условиях автоматизированные рабочие места не создаются с нуля. В экономике практически на всех уровнях управления и во всех экономических объектах (от органов ...

0 комментариев


Наверх