Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Part_2.doc
Скачиваний:
0
Добавлен:
06.01.2020
Размер:
2.06 Mб
Скачать

2. Основи програмування і налагодження контролерів avr

2.1. Програми avr Assembler V.1.0

2.1.1. Відкриття асемблерних файлів

Новий або існуючий асемблерний файл можна відкрити в WAVRASM. Для кожного нового файлу створюється нове вікно редагування.

Д ля створення нового асемблерного файлу потрібно нажати кнопку на панелі інструментів або нажати меню File >> New (ALT – F N). Для відкриття уже існуючого асемблерного файлу потрібно нажати кнопку на панелі інструментів або нажати меню File >> Open (ALT – F O). Для того, щоб обновити активне вікно текстового редактора потрібно нажати кнопку на панелі інструментів або нажати меню File >> Reload. Для запису файлу потрібно нажати кнопку на панелі інструментів або нажати меню File >> Save (ALT – F S).

2.1.2. Інтегрований редактор

В текстовому редакторі фрагменти тексту можна вирізати в буфер обміну, а потім з буферу вставляти в будь-яке місце програми. Для переміщення текстового фрагменту необхідно виконати наступні дії:

  • Виділити фрагмент, який потрібно перемістити.

  • Н ажати на кнопку на панелі інструментів або ж нажати меню Edit>> Cut (Shift-Del). Фрагмент переміститься в буфер обміну.

  • Поставити курсор в те місце програми, куди потрібно вставити даний текстовий фрагмент.

  • Нажати на кнопку на панелі інструментів або ж нажати меню Edit>> Paste (Shift-Ins).

Якщо якийсь фрагмент буде повторюватись при подальшому написанні програми, його можна скопіювати в буфер обміну, а потім вставити в потрібне місце. Для копіювання текстового фрагменту необхідно:

  • Виділити фрагмент, який необхідно скопіювати.

  • Н ажати на кнопку на панелі інструментів або ж нажати меню Edit>> Copy (Ctrl-Ins).

  • Поставити курсор в те місце програми, куди потрібно вставити даний текстовий фрагмент.

  • Н ажати на кнопку на панелі інструментів або ж нажати меню Edit>> Paste (Shift-Ins).

Щоб повернути видалений текст, потрібно нажати кнопку на панелі інструментів або ж нажати меню Edit>> Undo (Alt-Backspace) зразу ж після видалення тексту.

2.1.3. Написання програми

Для прикладу розглянемо просту програму: в регістр R17 запишемо число 5, а в регістр R18 – число 7. Знайдемо суму і результат виведемо на порт D.

.device AT90S1200

.include “1200def.inc”

Ser R16

Out DDRD, R16

Ldi R17, 5

Ldi R18, 7

Add R17, R18

Out PortD, R17

Перша строчка програми – це об’явлення того пристрою (мікроконтролера), для якого буде написана програма. Device являється директивою асемблера. Всі директиви починаються з крапки. Слідуюча директива Include викликає бібліотеку 1200def.inc, в якій описана робота мікроконтролера AT90S1200, всі його порти і регістри.

Далі уже йде тіло програми.

Команда Ser установлює всі біти регістру R16 в одиниці.

Команда Out DDRD, R16 налагоджує порт D на вивід даних. Для цього в порту D існує регістр DDRD, який відповідає за запис-зчитування інформації. Якщо біти регістру DDRD встановленні в нуль, то на порт D можна записувати інформацію. Якщо ж біти регістру DDRD встановленні в одиницю, то з порту D зчитують інформацію.

Команди Ldi R17, 5 і Ldi R18, 7 записують в регістри R17 і R18 значення 5 і 7 відповідно. Дана команда працює тільки з регістрами R16 – R31.

Команда Add R17, R18 додає значення регістрів R17 і R18 і результат записує в регістр R17.

Out PortD, R18 виводить на порт D значення регістру R17.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]