Avr studio пример программы

Лабораторная работа №1 ИЗУЧЕНИЕ ИНТЕГРИРОВАННОЙ СРЕДЫ РАЗРАБОТКИ AVR STUDIO Цель работы состоит в ознакомлении с возможностями среды разработки AVR Studio и практическом освоении режимов её работы. 1. Общие сведения AVR Studio – это интегрированная отладочная среда разработки приложений (IDE) для микроконтроллеров AVR компании Atmel (рис. 1). IDE AVR Studio содержит: средства создания и управления проектом; редактор кода на языке Ассемблер; транслятор языка Ассемблера (Atmel AVR ); отладчик (Debugger); программное обеспечение верхнего уровня для поддержки внутрисхемного программирования (In-System Programming, ISP) с использованием стандартных отладочных средств Atmel AVR. Рис. 1. Интерфейс интегрированной среды разработки AVR Studio

Работа с AVR Studio начинается с создания проекта. Сначала необходимо указать используемый микроконтроллер (МК) и платформу, на которой будет производиться отладка программы. Написание программы производится в окне редактора текста программы.

Для использования символических имен регистров специального назначения вместо их адресов необходимо подключить (директива .include) к проекту файл определения регистров специального назначения (например, m16def.inc для ATmega16). Включаемые файлы входят в прикладное программное обеспечение AVR Studio и при инсталляции помещаются в папку Appnotes в директории установки AVR Studio.

Introduction to Microchip Studio / Atmel Studio Software

Написание программы в AVR Studio производится на языке Ассемблер. Последние версии AVR Studio содержат AVR Ассемблер второй версии, который в дополнение к стандартному Ассемблеру поддерживает новые директивы Ассемблера, Си — подобные директивы препроцессора, создание переменных определенного типа. В результате трансляции создается выходной файл в формате HEX (расширение .hex).

Если не выдается сообщений об ошибках, можно приступать к отладке проекта. Отладчик AVR Studio поддерживает все типы МК AVR и имеет два режима работы: режим программной симуляции и режим управления различными типами внутрисхемных эмуляторов (In-Circuit Emulators) производства фирмы Atmel. Важно отметить, что интерфейс пользователя не изменяется в зависимости от выбранного режима отладки.

Отладочная среда поддерживает выполнение программ как в виде ассемблерного текста, так и в виде исходного текста языка Си, загруженного в объектном коде. Управление отладкой производится командами меню DEBUG либо соответствующими иконками на панели инструментов AVR Studio.

Пользователь может выполнять программу полностью в пошаговом режиме, трассируя блоки функций или выполняя программу до того места, где стоит курсор. В дополнение можно определять неограниченное число точек останова, каждая из которых может быть включена или выключена. Точки останова сохраняются между сессиями работы.

В AVR Studio для отладки программы предусмотрены две команды пошагового режима: Step Over и Trace into. Разница между ними в том, что при выполнении команды Step Over выполнение подпрограмм происходит до полного окончания без отображения процесса выполнения. К командам шагового режима также относится команда Auto Step.

Introduction to AVR Studio

С помощью команд пошагового режима можно проследить изменения значений в переменных, регистрах ввода/вывода, памяти и регистрового файла. Для этого предназначены раздел I/O рабочей области AVR Studio (см. рис. 1), окно Watch (меню Debug Quick watch).

Интегрированная среда разработки AVR Studio также поддерживает просмотр (меню View / Memory) ячеек памяти программ, памяти данных, EEPROM и регистров портов ввода/вывода в ходе исполнения. Выпадающее меню диалогового окна позволяет выбрать один из четырех массивов ячеек памяти: Data, IO, EEPROM, Program Memory. Для одновременного просмотра нескольких областей окно Memory может быть открыто несколько раз.

Информация в диалоговом окне может быть представлена в виде байтов или в виде слов в шестнадцатеричной системе счисления, а также в виде ASСII-символов. В процессе отладки пользователь может инициализировать внутреннее ОЗУ, или EEPROM МК (например, данными, содержащимися в полученном при трансляции файле .eep), или сохранить содержимое ОЗУ и EEPROM в виде файлов в формате Intel Hex (меню File -> Up/Download Memory).

Помимо шагового режима, возможна отладка программы с использова- нием точек останова (меню Breakpoints -> Toggle Breakpoint). Командой Start Debugging запускается исполнение программы. Программа будет выполняться до остановки пользователем или до обнаружения точки останова. Для наблюдения за работой программы можно открыть несколько окон, отображающих состояние различных узлов МК (см. рис. 1).

Окна открываются нажатием соответствующих кнопок на панели инструментов или при выборе соответствующего пункта меню View. Если в процессе выполнения программы в очередном цикле значение какого-либо регистра изменится, то этот регистр будет выделен красным цветом. При этом если в следующем цикле значение регистра останется прежним, то цветовое выделение будет снято.

Такое же цветовое выделение реализовано в окнах устройств ввода/вывода, памяти и переменных. Состояние встроенных периферийных устройств МК, а также состояния программного счетчика, указателя стека, содержимого регистра статуса SREG и индексных регистров X, Y и Z отображено в окне I/O View. В этом окне отражаются все функциональные блоки микроконтроллера.

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

2. Домашнее задание 1. Ознакомиться с настоящим описанием. 2. Изучить архитектуру микроконтроллеров AVR [3]. 3. Изучить систему команд микроконтроллеров AVR [3]. 4. Проанализировать программу, приведенную ниже. 3. Порядок выполнения работы Последовательность действий, которую нужно выполнить: — создание проекта; — создание файла программы; — компиляция; — симуляция.

1. Запустить программу: из меню Пуск-> Все программы ->Atmel AVR Tools ->AVR Studio 4. 2. В появившемся окне выберите New Project или то же самое можно сделать из меню Project/New Project. 3. Укажите имя и расположение проекта на жестком диске, например, как на рис. 2 введено имя My project и указано его расположение D:AVR Project. Нажмите Next. Рис.

Читайте также:
Что такое psp программы

2. Окно для указания имени и месторасположения проекта 4. В появившемся окне (рис. 3) выберите AVR Simulator и ATmega8515. Нажмите Finish.

Рис. 3. Окно для выбора платформы для отладки и марки МК 5. В открывшемся окне редактора наберите исходный текст программы (комментарии на русском языке можно не набирать): .include «8515def.inc» .def Temp =r16 ; Регистр хранения временных данных .def Delay =r17 ; Переменная 1 для генерации задержки .def Delay2 =r18 ; Переменная 2 для генерации задержки ;***** Инициализация RESET:

ser temp
out DDRB, temp ; Настройка порта В (PORTB) на вывод
;**** Тестирование ввода/вывода
LOOP:
out PORTB,temp ; Обновление состояния светодиодов
sbis PIND,0x00 ; Если PortD.0 = 0,
inc temp ; то уменьшение на 1 двоичного кода, формируемого свечением светодиодов
sbis PIND,0x01 ; Если PortD.1 = 0,
dec Temp ; то увеличение на 1 двоичного кода, формируемого свечением светодиодов
sbis PIND,0x02 ; Если PortD.2 = 0,
ror Temp ; то циклический сдвиг состояния светодиодов на 1 вправо
sbis PIND,0x03 ; Если PortD.3 = 0,
rol Temp ; то циклический сдвиг состояния светодиодов на 1 влево
sbis PIND,0x04 ; Если PortD.4 = 0,
com Temp ; то инверсия состояния всех светодиодов
sbis PIND,0x05 ; Если PortD.5 = 0,
neg Temp ; то инверсия состояния и прибавление 1
sbis PIND,0x06 ; Если PortD.6 = 0,
swap Temp ; то обмен тетрадами светодиодов

;*** Далее необходима задержка, чтобы сделать проделанные изменения видимыми DLY: dec Delay 8

brne DLY
dec Delay2
brne DLY
rjmp LOOP ; Повторение цикла заново

В лабораторной работе №2 эта программа будет запрограммирована в МК ATMega8515 и будет управлять включением светодиодов на плате STK 500. Так как симуляция проекта выполняется во много раз медленнее, чем выполнение программы реальным МК, на время симуляции отключите задержку, которая записана в последних строчках программы.

Для этого поставьте знак точка с запятой «;» в начале четырех строчек программы между строчками DLY и rjmp LOOP . 6. Запустите компиляцию проекта командой Build/Build или клавишей F7. При появлении сообщения об ошибке наведите на него указатель мышки и щелкните левой кнопкой. Строка с ошибкой в тексте программы будет указана синей стрелкой. Если ошибок нет, выполните симуляцию проекта.

7. Запустите отладку из меню Debug/Start Debugging. В окне I/O View раскройте меню I/O ATMEGA8515, а затем PORT B и PORT D (рис. 4). Запустите программу на выполнение из меню Debug/Auto Step или кнопкой на панели инструментов. Строка программы, которая выполняется в текущее время указывается в окне редактора желтой стрелкой (см. рис.4).

Имитировать нажатие кнопок можно щелчком кнопки мыши, когда её указатель наведен на соответствующий бит в регистре PIN D. 8. Продемонстрируйте работу в режиме отладки преподавателю. Рис. 4. Окно I/O View Контрольные вопросы 1. Чем отличается микроконтроллер от микропроцессора? 2. Чем отличается симуляция от эмуляции?

Источник: studfile.net

Начало работы с AVR Studio 4 (урок 1)

Для работы с AVR Studio 4 необходимо само собой её установить. Если она уже установлена, то можете пропустить этот шаг.

Установка:
создаешь каталог c:/avr/ – тут будут лежать рабочие программы.
создаешь каталог например c:/works/ – тут будут лежать твои работы.
надо что бы были короткие пути, что бы не было проблем с ними.

Дальше, качаешь и устанавливаешь в каталог c:/avr/
WinVR
AVRStudio4_SP3

Есть вообще AVRStudio5 но и AVRStudio4 пока вполне хватает.

Вся работа будет проходить в AVRStudio4, WinAVR нужна только из-за библиотеки AVR-GCC (Для того, что бы можно было писать на Си)
НО! первым надо установить именно WinAVR , иначе библиотека AVR-GCC не подцепится.

Дальше запускаешь AVRStudio4 и создаешь проект.

Тут думаю разберешься.
AVR-GCC для того, что бы писать на Си
Atmel Avr Assembler соответственно для ассемблера.

Начинать разбираться с МК лучше с нуля. А это значит с Ассемблера, значит создаешь тот, который Atmel AVR Assembler.

Потом выбирай микроконтроллер Atmega8.

дальше нужно выбрать симулятор. выбирай: AVR Simulator -> Amega8

ну теперь нажимай финишь.

когда создастся проект, будет большой, белый, чистый лист. тут будет код.

немного про содержимое этого листа

“комментарии” – это текст, пропускаемый компилятором, при компиляции.
перед началом комментария должен стоять спец символ, пользуюсь символом ; “точка с запятой”, есть еще “дабл сшеш” (//),
вот примеры комментариев

/* * Комментарий такого види(многострочный), * обычно используется для * сопроводительной информции * об исходном коде, т.е. * название, разработчик и т.д. */ NOP // Такой комментарий в основном используется для пояснения назначения команды, или куска кода SLEEP ; такой комментарий тоже как и предыдущий, можно использовать для пояснения (для заметок) в коде

команды записываются в каждой строчке. т.е. одна команда – одна строчка.
допустим есть команды с двумя “параметрами”, с одним, или без ничего

MOV R16, R17 ; два параметра INC R16 ; один параметр SEI ; без параметров

С этим все ясно. дальше сложнее. Каждая команда, имеет размер 1, 2 или 3 байта.

MOV R16, R17 ; три байта INC R16 ; два байта SEI ; один байт

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

У каждого микроконтроллера свой ассемблер, хотя мнимоника у них похожа, т.е. команда MOV у мк одной серии будет выглядеть в машинном коде допустим 0x12 а у другого 0x55.
что бы при компиляции, скомпилировалось в нужном нам коде мы должны сказать компилятору, для какого мк у нас пишется программа.
это вообще выбирается при создании проекта.
По этому мы выбрали микроконтроллер Atmega8.

Но и тут не все. для облегчения нашей жизни, в AVRStudio4 есть набор констант, которые именуются вроде как “Макроассемблер”.

Для тог, что бы их подгрузить нужно в начале кода вставить строчку

.include «m8def.inc» // командой .include, мы подгрузили файл m8def.inc ;и теперь нам станет легче 😉

в самом начале кода, ставится таблица прерываний. Что это такое и как это работает, объясню в другой заметке. Но а пока, будем писать её так:

Читайте также:
Когда появился программа компас

RJMP RESET ; Reset Handler RETI; RJMP EXT_INT0 ; IRQ0 Handler RETI; RJMP EXT_INT1 ; IRQ1 Handler RETI; RJMP TIM2_COMP ; Timer2 Compare Handler RETI; RJMP TIM2_OVF ; Timer2 Overflow Handler RETI; RJMP TIM1_CAPT ; Timer1 Capture Handler RETI; RJMP TIM1_COMPA ; Timer1 CompareA Handler RETI; RJMP TIM1_COMPB ; Timer1 CompareB Handler RETI; RJMP TIM1_OVF ; Timer1 Overflow Handler RETI; RJMP TIM0_OVF ; Timer0 Overflow Handler RETI; RJMP SPI_STC ; SPI Transfer Complete Handler RETI; RJMP USART_RXC ; USART RX Complete Handler RETI; RJMP USART_UDRE ; UDR Empty Handler RETI; RJMP USART_TXC ; USART TX Complete Handler RETI; RJMP ADC ; ADC Conversion Complete Handler RETI; RJMP EE_RDY ; EEPROM Ready Handler RETI; RJMP ANA_COMP ; Analog Comparator Handler RETI; RJMP TWSI ; Two-wire Serial Interface Handler RETI; RJMP SPM_RDY ; Store Program Memory Ready Handler

После этого идет уже сам код

RESTART: ; маркер инициализации MAIN: NOP ; маркер главного цикла RJMP MAIN

Но тут есть одна (точнее не одна, а много) особенностей.

Для удобства написания кода, для его понятности и для облегчения относительных переходов, нам подарили маркеры, как они выглядят? “RESET:” и “MAIN:” это маркеры, в их именах могут содержаться почти любые символы латинского алфавита и цифры. Маркеры не могут иметь имена функций и команд, допустим “NOP”.
Как к ним переходит? Допустим командой RJMP.

Так же, из Маркеров, можно сделать подпрограмму(процедуру), по завершению которой, мы вернемся туда, от куда её вызывали. Для вызова её, используем команду “RCALL (подпрограмма)”, а что бы вернуться из Подпрограммы(процедуры), нужно закончить её командой “RET”. У нас должен получиться такой код:

RESTART: MAIN: NOP RCALL PPP1 ; вызываем подпрограмму RJMP MAIN PPP1: NOP RET ; выходим из подпрограммы

Как работает команда “RCALL”, при её вызове, адрес из какого места её вызвали, помещается в СТЕК, а по вызове команды “RET”, извлекается из регистра “стек”. СТЕК нужно инициализировать.

Что бы нам работать с нашим мк, нужно его инициализировать. т.к. мк, это устройство универсальное, в нем есть много портов ввода/вывода, и периферийных устройств. таких как УСАПП, ШИМ, ЦАП, АЦП и т.д. Первым делом в инициализации мк нужно указать начало “стека”. Инициализацию мы проводим после маркера “RESET:”.

LDI R16,HIGH(RAMEND) OUT SPH,R16 LDI R16,LOW(RAMEND) OUT SPL,R16

Если бы мы не вводили команду .include “m8def.inc” в начале кода, то нам пришлось бы писать так:

LDI R16,0x04 OUT SPH,R16 LDI R16,0x5f OUT SPL,R16

Разница существенная, на мой взгляд.

СТЕК, это память магазинного типа: (последний вошедший, выходит первым).
Магазинного типа – это не супермаркет, а рожок от автомата. надеюсь все представили как в него заряжаются патроны и как они потом от туда извлекаются.
Нужно уделять очень большое внимание памяти СТЕК, т.к. любая незначительная ошибка в работе с ним, может привести к срыву стека. Это на столько важная тема, что я решил посветить ей целую тему и напишу её в отдельной заметке.

Таким образом у нас получился такой код:

.include «m8def.inc» RJMP RESET ; Reset Handler RETI; RJMP EXT_INT0 ; IRQ0 Handler RETI; RJMP EXT_INT1 ; IRQ1 Handler RETI; RJMP TIM2_COMP ; Timer2 Compare Handler RETI; RJMP TIM2_OVF ; Timer2 Overflow Handler RETI; RJMP TIM1_CAPT ; Timer1 Capture Handler RETI; RJMP TIM1_COMPA ; Timer1 CompareA Handler RETI; RJMP TIM1_COMPB ; Timer1 CompareB Handler RETI; RJMP TIM1_OVF ; Timer1 Overflow Handler RETI; RJMP TIM0_OVF ; Timer0 Overflow Handler RETI; RJMP SPI_STC ; SPI Transfer Complete Handler RETI; RJMP USART_RXC ; USART RX Complete Handler RETI; RJMP USART_UDRE ; UDR Empty Handler RETI; RJMP USART_TXC ; USART TX Complete Handler RETI; RJMP ADC ; ADC Conversion Complete Handler RETI; RJMP EE_RDY ; EEPROM Ready Handler RETI; RJMP ANA_COMP ; Analog Comparator Handler RETI; RJMP TWSI ; Two-wire Serial Interface Handler RETI; RJMP SPM_RDY ; Store Program Memory Ready Handler RESET: LDI R16,HIGH(RAMEND) OUT SPH,R16 LDI R16,LOW(RAMEND) OUT SPL,R16 RGMP RESET MAIN: NOP ; маркер главного цикла RJMP MAIN

На данном этапе, можно скомпилировать проект и запустить его для отладки, но по скольку код у нас ничего не делает, можно будет выявить только синтаксические ошибки в коде.

Для правильного процесса отладки, необходимо задать эмулятору частоту, с которой будет работать МК, это делается только после компиляции и запуска отладки,
значит находим в панели меню “Build”, раскрываем её и видим “Build and Run”, после чего, мы увидим желтую стрелочку на против первой команды в нашем листинге кода. Теперь мы ищем в панели меню “Debug” и нажимаем “AVR Simulator Options”, открывается такое окно:

В котором мы можем поменять МК и его частоту, так же, на панели с права, мы видим некоторую информацию о нашем МК: его максимальную частоту, объемы памяти(EEPROM, RAM, FLASH). Теперь открываем даташит на Atmega8, на странице 203 (общий список регистров) и 205 (общий список команд) и приступай к написанию своей программы.
И запомни, не бойся экспериментировать с симулятором, он от этого не сломается!

Запись опубликована в рубрике AVR Studio 4 с метками AVR, AVR Studio 4. Добавьте в закладки постоянную ссылку.

Источник: ddeev.ru

Avr studio пример программы

AVR Studio 4 — профессиональная интегрированная среда разработки (Integrated Development Environment — IDE), предназначенная для написания и отладки прикладных программ для AVR микропроцессоров в среде Windows. AVR Studio 4 содержит ассемблер и симулятор.

В режиме симулятора AvrStudio позволяет программисту наблюдать за логикой выполнения программы, т.е. видеть содержимое регистров, памяти, портов, наблюдать за выполнением команд и т.д.

Запустим AVRstudio , для создания нового проекта из этого окна жмём на Project/ New Project .

Окно AVRstudio ничем не отличается от стандартных окон, например Delphi или CodeGear .Сверху служебные окна команд. Слева: направо

2)Окно с кодом Ассемблера

3)Окно составляющих микроконтроллера.

Внизу лог событий.

Читайте также:
Программы стиральной машины горение

Окно AvrStudio

Окно AvrStudio

Создание первого проекта

Для более полного знакомства напишем простую программу.

Создаём новый проект (в верхнем меню Projectnew project или в стартовом окне

В открывшемся окне в графе Project type выберем тип проекта Atmel AVR Assembler , в графе Project name указываем имя нового проекта, в строке Location необходимо указать путь к будущему проекту (путь не должен быть слишком длинным, содержать пробелов и иметь русских символов) также необходимо отметить галочкой Create folder (тогда проект будет создан в отдельной папке). Нажимаем « Finish » .Если нажать « Next » , то перед нами откроется окно выбора устройства, под которое мы будем писать программу, но пока что нам это не нужно.

Первую программу напишем для микроконтроллера Atmega 16. Для начала его хватит на все эксперименты.

Создание нового проекта

Создание нового проекта

Постановка задачи:

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

2)прочитать состояние кнопки, если значение на кнопке «логический 0», то зажечь светодиод, а если значение на кнопке «логическая 1», то погасить светодиод

3)вернуться в начало цикла

Используемые команды:

ldi Rd , K Загрузка константы в регистр общего назначения

in Rd , P Пересылка из регистра ввода-вывода в регистр общего назначения

out P , Rd Пересылка из регистра общего назначения в регистр ввода-вывода

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

Обозначения:

Регистр общего назначения(РОН), обозначается Rd (приёмник) или Rr (источник) где d и r номер регистра.

Регистр ввода-вывода(РВВ), обозначается P .

Константа обозначается K .

. include » m 16 def . inc » ;подключение библиотеки для работы с ATmega 16

. list ;включение листинга

. def temp = r 16 ;определение главного рабочего регистра

. cseg ;выбор сегмента программного кода

. org 0 ;установка текущего адреса на ноль

ldi temp ,0 x 80 ;выключение компаратора

ldi temp ,0 x 00 ;записываем ноль в регистр temp

out ddrd , temp ;записываем этот ноль в ddrd (порт rd на ввод)

ldi temp ,0 xFF ;записываем 0 xff в регистр temp

out ddrb , temp ;записываем temp в ddrb (порт rb на вывод)

out portb , temp ;записываем temp в portb (погасить светодиод)

out portd , temp ;записываем temp в portd (включаем внутренний резистор)

in temp , pind ;читаем содержимое порта pd

out portb , temp ; пересылаем в порт pb

rjmp metka ;переходим по метке к началу цикла

После написания программы необходимо её откомпилировать, для этого в AvrStudio в верхнем меню необходимо открыть вкладку Build и нажать опять же на build или можно воспользоваться горячей клавишей F 7.

После компиляции если программа написана верно в логе событий мы увидим сообщение:

» Assembly complete, 0 errors. 0 warnings ”.

Теперь заходим в папку с нашим проектом и видим там некоторое количество файлов, пока что нам нужны только два:1)файл с расширением . asm , в нём собственно и находится исходный код программы.2)файл с расширением . hex – откомпилированный машинный код (именно его и прошивают в микропроцессор).

Проверим нашу программу в действии, для этого в Proteus соберём простую схему.

Необходимые компоненты: ATmega 16, Button , Led — green , земля ( ground ) и источник напряжения ( power +5 v ).

Схема для проверки программы

Схема для проверки программы

Когда мы собрали схему, необходимо загрузить HEX -файл в микроконтроллер, для этого кликаем правой кнопкой мыши по микроконтроллеру и выбираем Edit properties (правка свойств), находим строку Program file и указываем в ней путь к нашему . hex , пока больше менять ничего не нужно.

После этого запускаем симуляцию и нажимаем кнопку( button ), светодиод должен менять своё состояние.

Так как в программе мы управляем целыми портами то без изменения программы можно подключить к порту PD восемь кнопок, а к порту PB восемь светодиодов.

Схема 8 светодиодов

Схема 8 светодиодов

AvrStudio в режиме отладки программы

Основными функциями AvrStudio являются функция разработки и функция отладки программ для микроконтроллеров фирмы Atmel . С функцией разработки мы уже познакомились, теперь запустим режим отладки.

1)Запускаем AvrStudio (если ещё не запустили)

2)Создаём новый проект

3)Напишем простейшую программу для ATmega 16 и откомпилируем её

;пример для эмуляции программы в AvrStudio

. include » m 16 def . inc » ;подключение библиотеки

. list ;включение листинга

. def temp 0= r 16 ;определение рабочих регистров

. def temp 3= r 19

ldi temp 0,0 x 00 ;записываем ноль в регистр temp 0

ldi temp 0,0 xFF ;записываем 0 xff в регистр temp 0

ldi temp 1,0 x 00 ;записываем ноль в регистр temp 1

ldi temp 1,0 xAA ;записываем 0 xAA в регистр temp 1

ldi temp 2,0 x 00 ;записываем ноль в регистр temp 2

ldi temp 2,0 xCC ;записываем 0 xCC в регистр temp 2

ldi temp 3,0 x 00 ;записываем ноль в регистр temp 3

mov temp 3, temp 2 ;пересылка данных из temp 2 d temp 3

rjmp metka ;переход к метке

Для этого в верхнем меню откроем вкладку Debug и выберем select platform and device …, в появившемся окне выберем платформу AVR simulator и устройство ATmega 16 после чего нажмём Finish .

Настройка отладчика

Настройка отладчика

5)Запустим эмуляцию нажав Start debugging в той же вкладке Debug .

*Эмуляция в AvrStudio — пошаговое выполнение команд с возможностью контроля их выполнения непосредственно в структуре процессора.

В окне I / O view вы можете контролировать состояние портов, памяти и т.д., а в окне Processors видеть как изменяются значения регистров и следить за процессом эмуляции…Жёлтая стрелка находящаяся слева от команды показывает что именно эта команда будет выполнена при следующем шаге эмуляции.

6)Начнём выполнение программы, для этого нажимаем на step Into ( F 11) во вкладке Debug

Отладка

Дальше дело за вами, совмещая Proteus и AvrStudio можно быстро научиться проектировать электронные устройства, чего я вам и желаю.

Вопросы обсуждаем на форуме

Скачать Proteus можно здесь

Avr studio скачать здесь

Источник: radioaktiv.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru