Електроний посібник з
дисципліни "Мікропроцесорні системи"
 
Дипломный проект
                                                               Лабораторна робота №1

Ознайомлення із середовищем розробки й налагодження програмного забезпечення для контролерів серії MCS-5

  Ціль роботи: вивчити технологію налагодження програмного забезпечення МСS-51, вивчити команди пересилань із прямою адресацією й арифметичних і логічних операцій із прямою адресацією.

  Загальні відомості. Програма для мікроконтролера являє собою послідовність  машинних  інструкцій  (кодів  операцій),  розглянутих  у  главі
«система команд мікроконтролера». Однак написання програми у вигляді послідовності двійкових значень кодів операцій досить трудомісткий процес і погано піддається  редагуванню. Тому  для автоматизації праці програмістів розроблені транслятори з мов різних рівнів. Мовою найнижчого рівня є Асемблер. Фактично - це запис команд у вигляді мнемокоду (текстового опису) машинних інструкцій процесора плюс підтримка різних директив транслятора. Розробка програми для мікроконтролера мовою Асемблер полягає в наступному:
1.Складання тексту програми у вигляді мнемокоду процесора.
2.Трансляція в машинні інструкції процесора.
3.Налагодження програми на програмному симуляторі мікроконтролера.
4.Запис налагодженої програми в мікроконтролер.
5.Перевірка функціонування програми на реальному об'єкті.
Дані лабораторні роботи будуть виконуватися в інтегрованій системі Mcstudio. Вона являє собою інтегровані в одну оболонку наступні компоненти: текстовий редактор, компілятор, програмний симулятор мікроконтролера, формувач моделі зовнішнього оточення контролера. Прикладна програма може бути виконана як у вигляді одного файлу (модуля), так і у декількох модулів. Крім цього, в процесі трансляції, налагодження і т.д. система створює додаткові службові файли. Для керування цією сукупністю файлів використовується концепція проекту.

Методика виконання.
1. Проект створюється з головного меню Mcstudio послідовним вибором пунктів Файл - Створити - Проект. Для вказівки місця розташування проекту, імені проекту й модулів, типу процесора заповнюється форма (рис. 1).
У результаті на екрані відкриваються вікна: «Проект», «Ресурси» і вікно редактори тексту програми із прописаним шляхом до вихідного модуля програми (рис. 2).
Рис. 1. Вікно створення проекту
Рис. 2. Екран Mcstudio після створення проекту
 
1. У текстовому редакторі набираємо текст програми, наведений у лабораторній роботі. При наборі тексту необхідно дотримуватись наступних правил:
- перші 8 позицій у рядку - це поле міток;
- за ними розташовується поле команд;
- за полем команд розташовується поле операндів;
- за полем операндів може розташовуватися поле коментарів,  які відокремлюються від інших полів крапкою з комою.
2. За описом команд, наведених в «Робочому зошиті №1», вивчаємо їх роботу.
3. Компілюємо програму. Для цього натискаємо комбінацію клавіш Ctrl+F9 або кнопку на панелі інструментів . У результаті компіляції у вікні текстового редактора додається дві колонки ліворуч, рис. 3. Перша колонка містить адресу, за якою розташовуються машинні коди мікроконтролера. Друга колонка - це значення машинних кодів.
Рис. 3. Результат компіляції програми
Якщо в програмі були синтаксичні помилки, компілятор виявить і видасть повідомлення про характер помилки (рис. 4). Якщо у вікні повідомлень про помилку кликнути лівою кнопкою миші, то курсор буде поміщено у рядок програми, де була виявлена помилка.
Рис. 4. Вигляд вікна повідомлень про помилку
1.Виконуємо симуляцію відкомпільованої програми в покроковому режимі. Симуляція завжди починається з натискання кнопки      або клавіші F9. Після натискання синя смуга в тексті програми вказує, яка команда буде виконуватися на наступному кроці. Черговий крок програми при покроковому налагодженні виконується натисканням клавіші F7. Покрокове налагодження необхідне, щоб переконатися, чи однаково розуміють виконання команди контролер і програміст.
2. Результати виконання команд переглядаємо у вікні відображення дерева ресурсів мікроконтролера (рис. 5).
Рис. 5. Дерево ресурсів контролера на 6 кроці виконання програми
3. Підставляємо в програму значення згідно з варіантом, за результатами симуляції підготовляємо звіт лабораторної роботи.
Примітка: після закінчення симуляції натисніть клавіші Ctrl+ F2, щоб вийти з режиму симуляції. Без цього ви не зможете закрити програму Mcstudio та зберегти свої дані
Теоретичні відомості. Нижче наведені фрагменти вікон робочого середовища Mcstudio і пояснення виконання команд пересилань із прямою адресацією.
Пересилання константи.
Рис. 6. Виконання команди mov A,# 20h
Команда MOV A,# d виконує пересилання константи, яке зберігається в другому байті команди, в акумулятор.
Пряма адресація
Рис. 7. Виконання команди mov A,20h
Команда MOV A,ad виконує пересилання даних із внутрішньої пам'яті в акумулятор. Адреса комірки пам'яті перебуває в другому байті команди.

Рис. 8. Виконання команди mov 20h,A
Команда MOV ad, A виконує пересилання даних з акумулятора у внутрішню пам'ять. Адреса комірки пам'яті  
перебуває в другому байті команди.
Пряма регістрова адресація.
Рис. 9. Виконання команди mov A,R5
Команда MOV A,Rn, виконує пересилання значення регістру поточного банку в акумулятор. Адреса регістру зазначена в молодших трьох бітах коду операції.
Рис. 10. Виконання команди mov R4, A

Команда MOV Rn,A виконує пересилання значення акумулятора в регістр поточного банку. Адреса регістру зазначена в молодших трьох бітах коду операції.
Задання лабораторної роботи. Написати програму роботи мікроконтролера МК51, яка виконує арифметичні й логічні дії над двома числами, поміщеними в регістри R2 і R3, і результати записує у внутрішню пам'ять даних з адреси 20Н.

                                               Текст програми мовою Асемблера

Mov r2,#32h Mov r3,#25h ; занесення в регістри вихідних значень
mov a,r2      ; пересилаємо в акумулятор перше значення
add a,r3       ; складаємо його із другим
mov 20h, a   ; зберігаємо результат
mov a,r2      ; пересилаємо в акумулятор перше значення
clr c           ; скидаємо біт переносу
subb a,r3 ; віднімаємо від першого друге
mov 21h, a  ; зберігаємо результат
mov a,r2 ; пересилаємо в акумулятор перше значення
orl a,r3 ; логічно складаємо його із другим
mov 22h, a  ; зберігаємо результат
mov a,r2 ; пересилаємо в акумулятор перше значення
anl a,r3 ; логічно перемножуємо його із другим
mov 23h, a  ; зберігаємо результат
mov a,r2 ; пересилаємо в акумулятор перше значення xrl a,r3 ; складаємо його за модулем 2 із другим mov 24h, a  ; зберігаємо результат
end          ; кінець програми.

Вихідні дані для програми:
- перше значення дорівнює номеру за списком, помноженому на 5.
- друге значення дорівнює номеру за списком, помноженому на 7.
Звіт повинен містити текст програми й результати виконання кожної операції.