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

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, R18

Перша строчка програми – це об’явлення того пристрою (мікроконтролера), для якого буде написана програма. 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.

2.1.4. Асемблування програми

Після написання програми її потрібно проасемблувати. Для цього в головному меню треба нажати команду Assemble. Але перед цим потрібно налаштувати опції асемблування. Меню налаштування асемблування Options показано на рис.2.1.

Рис.2.1

Для того, щоб записати проасембловану програму в контролер, нам потрібно, щоб вона мала шістнадцятирічний формат hex. Для цього у строку Output-file extension потрібно ввести hex.

Наступне меню Output file format пропонує вибрати формат вихідного файлу. Для Atmel-контролерів вибираємо останній стандарт Intel Intellec 8/MDS.

В самому низу є два меню, для вибору яких потрібно поставити галочку. Перше меню Wrap relative jumps означає, що в проасемблованій програмі буде виконуватись автоматичний перехід при відносному переході. Тобто при виконанні команди RJMP виконується автоматичний перехід на задану мітку. Якщо буде активне друге меню Save before assemble, то вихідний файл буде записаний після асемблування.

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