Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Перший запуск середовища. 10





Інсталяція. 8

Перший запуск середовища. 10

Створення нового проекту. 11

Опис елементів середовища. 14

Написання першої простої програми. 16

Компіляція і відлагодження програми. 18

Робота з портами введення/виведення та емуляцією апаратних засобів 21

Приклад програми роботи з портами введення/виведення і емуляторами апаратних засобів. 24

2 ОПИС ЛАБОРОТОРНОГО СТЕНДА.. 29

Загальні відомості, призначення. 29

2.2 Підключення ННС"EV8031" до ПК. Живлення стенда. 29

Технічні характеристики. 29

Опис роботи стенда. 30

Послідовний приймач-передавач. 34

Світлодіодний індикатор. 35

Матрична клавіатура. 35

2.4.4 Включення портів ОЕВМ... 36

Розташування елементів, призначення роз'ємів і перемичок. 36

Опис плат розширення. 37

Цифро-аналоговий перетворювач. 38

Аналого-цифровий перетворювач. 38

Генератори. 38

Виведення дискретної інформації 39

Плата розширення для систем автоматичного керування. 40

Конструкція стенда. 41

Робота зі стендом.. 41

Тестування стенда. 42

Вказівки з техніки безпеки. 43

3 ПРОГРАМІСТСЬКА МОДЕЛЬ MK51. 45

Резидентна пам’ять даних. 47

Регістри спеціальних функцій. 48

Система команд. 51

Формати команд. 52

Формати даних. 55

Довжина команд у байтах та їх розміщення у пам'яті програм.. 57

Вплив команд на прапорці 57

Час виконання команд. 58

Способи адресації операндів мікроконтролера. 59

4 ПЕРЕЛІК ЛАБОРАТОРНИХ РОБІТ.. 63

Перелік лабораторних робіт на налагоджувачі 63

Перелік лабораторних робіт на стенді 63

5 ПРОГРАММА ВИКОНАННЯ ОКРЕМИХ ЛАБОРАТОРНИХ РОБІТ НА НАЛАГОДЖУВАЧІ 64

Лабораторна робота №1. 64

Лабораторна робота №2. 73

Лабораторна робота №3. 80

Лабораторна робота №4. 85

Лабораторна робота №5. 91

Лабороторна робота №6. 101

Лабораторна робота №7. 109

6 ПРОГРАММА ВИКОНАННЯ ОКРЕМИХ ЛАБОРАТОРНИХ РОБІТ НА СТЕНДІ 117

Лабораторна робота № 1. 117

Лабораторна робота №2. 125

Лабораторна робота №3. 135

Лабораторна робота №4. 145

Лабораторна робота №5. 151

Лабораторна робота №6. 158

СПИСОК РЕКОМЕНДОВАНОЇ ЛІТЕРАТУРИ.. 168


ВСТУП

MCS-51 — сімейство мікроконтролерів, розроблених фірмою Intel у 1980 році для використання у вбудовуваних системах. Дані мікроконтролери були досить популярними у 90-их роках, згодом їх витіснили розвиненіші аналоги фірм «Microchip Technology» і «Atmel». За рахунок вдалої реалізації мікроконтролера (вбудований УАПП, бітовий процесор i8051) велика кількість наявних на ринку мікроконтролерів має i8051 сумісні процесори, а за рахунок наявності великої кількості аналогів вивчення ядра MCS-51 є одним з перших кроків до вивчення сучасних мікропроцесорів.

MCS-51 прийшли на заміну випущеним у 1976 році MCS-48 і на відміну від останніх мали зменшений час виконання команд (в 2,5 — 10 раз в залежності від умов експлуатації), збільшений обсяг вбудованої пам'яті, додаткові пристрої периферії, додаткові команди для програмування. За рахунок даних покращень, мікроконтролери стали зручнішими в програмуванні, дешевші в експлуатації. Наявність булевого процесора затвердила за даними пристроями галузь автоматизації виробництва, оскільки для керування часто використовуються саме полярні сигнали — ввімкнути/вимкнути двигун, запалити/вимкнути індикатор тощо.

Конструктивно, MCS-51 є однокристальними мікроконтролерами гарвардської архітектури, виконані по n-МОН або КМОН технології. Містять у собі 8-бітний мікропроцесор i8051 з підтримкою булевих операцій над окремими бітами, до 4096 байт вбудованої пам'яті програм (доступної тільки на читання), до 256 байт вбудованої пам'яті даних (доступної на читання і запис), підтримка адресного простору у 64 Кб для пам'яті програм і 64 Кб для пам'яті даних, два-три 16-бітні таймери/лічильники, двосторонній УАПП, 32 лінії двосторонніх портів введення/виведення, генератор тактової частоти.


МЕТА І ЗАВДАННЯ ДИСЦИПЛІНИ

В результаті вивчення кредитного модуля студенти повинні

ЗНАТИ:

- склад та основні характеристики мікроконтролерів сімейства MCS-51;

- склад, призначення окремих вузлів та роботу типового мікроконтролера сімейства MCS-51 за структурною схемою;

- програмну модель, формати команд та даних, способи адресації операндів та характеристику окремих команд типового мікроконтролера сімейства MCS-51;

- особливості архітектури окремих функціональних модулів мікроконтролера: пам’яті; паралельних та послідовних інтерфейсів; таймерів/лічильників зовнішніх подій; переривань;

- організацію взаємодії мікроконтролера із типовими об’єктами керування;

ВМІТИ:

- програмувати окремі модулі мікропроцесорних систем на базі мікроконтролера сімейства MCS-51;

- моделювати окремі частини мікропроцесорних систем на персональному комп’ютері;

- проектувати мікропроцесорні пристрої та системи на базі мікроконтролера сімейства MCS-51.

 


ОПИС НАЛАГОДЖУВАЧА MCU8051/IDE

Інсталяція

Якщо Ви використовуєте операційну систему Windows – для неї можна скачати середовище з мережевого диску за адресою: W:/Halushko/Novatsky/Лаб раб-ПМПС-1/Other/Програмні пакети/

Необхідно скачувати обидва інсталяційних файли: mcu8051ide‑1.3.10-setup.exe і ActiveTcl8.5.10.1.295062-win32-ix86-threaded.exe.

Такж ви можете скачати найновіші версії середовища і утиліти для його запуску за адресою: http://sourceforge.net/projects/mcu8051ide/files/ для MCU 8051 та ActiveTCL за адресою http://www.activestate.com/activetcl/downloads, де є змога обрати версію вашого Windows (x86 чи x64).

Після отримання всіх необхідних файлів, першим потрібно запустити на встановлення ActiveTcl8.5.10.1.295062-win32-ix86-threaded.exe.

При використанні Windows Vista і старше – варто запускати встановлювач з правами Адміністратора.

Натискайте Next, ознайомлюйтесь і погоджуйтесь з умовами ліцензії і бажано поставте асоціацію для файлів. На рисунку 1 показано як вибрати режим і адресу інсталяції.

Рисунок 1 – Вибір режиму і адреси інсталяції

 

Next->Next->Next і очікуємо завершення встановлення. Натискаємо Finish і переходимо до встановлення безпосередньо самого середовища.

Від імені Адміністратора запускаємо mcu8051ide-1.3.10-setup.exe.

Next-> читаємо і погоджуємося з ліцензією, обираємо теку для встановлення, налаштовуємо додавання іконок на робочий стіл, в меню Пуск і т.п.

Коли встановлення доходить до кінця, ставимо прапорець Launch MCU 8051 IDE і запускаємо середовище. Вигляд вікна завершення інсталяції на рисунку 2.

Якщо Ви використовуєте операціну систему Linux – завантажте середовище за адресою http://mcu8051ide.sourceforge.net/index, обравши свій дистрибутив, або скачайте архів з вихідним кодом.

Після скачування небхідних вайлів виконайте встановлення згідно з правилами для свого дистрибутиву.

Рисунок 2 – Завершення інсталяції

Перший запуск середовища

Після того, як MCU 8051 IDE було встановлено, можна здійснити його перший запуск. Для запуску середовища в операційній системі Windows можна скористатися ярликом на робочому столі, в підменю програм головного меню «Пуск», або з папки, в яку було проведено встановлення.

Після запуску середовища – можна побачити вікно, зображене на рисунку 3.

Рисунок 3 – Загальний вигляд головного вікна середовища

Створення нового проекту

Коли середовище успішно запущене, для створення нового проекту необхідно в головному меню обрати «Project à New», після чого відкриється вікно, що зображене на рисунку 4.

 

Рисунок 4 – Створення нового проекту

Для створення проекту, необхідно заповнити поля «Project name», ввівши бажану назву проекту, наприклад «Lab_1», «Project directory» - ввівши вручну, або обравши за допомогою спеціального меню місце збереження проекту. Також необхідно обрати тип використовуваного контролера. Оскільки як приклад мікроконтролера сімейства MCS51, під час вивчення курсу розглядається примірник від Atmel з моделлю AT89C51, то й необхідно обрати його в випадаючому списку. Для коректного виконання більшості лабораторних робіт і особливо робіт з відлагоджувальним стендом, необхідно підключати обидва типи зовнішньої пам’яті (RAM і ROM/FLASH) і для спрощення обрати максимальний їх розмір. Тільки для написання програм під реальні пристрої, або під час їх проектування, необхідно обирати реальні значення розмірів пам’яті. На рисунку 5 зображений приклад заповнення всіх даних для створення проекту.

Рисунок 5 – Проект готовий до створення

Після натискання кнопки «Ok», буде створено новий пустий проект і вікно програми матиме вигляд як на рисунку 6.

Рисунок 6 – Зовнішній вигляд вікна середовища після створення проекту

Опис елементів середовища

Головне вікно середовища розробки MCU 8051 IDE можна поділити на умовний набір блоків, кожен з яких також можна поділити на менші елементи. Загальне розбиття на блоки і елементи зображено на рисунку 7.

Рисунок 7 – Структура середовища розробки

Позначення:

1 – головне меню середовища;

2 – меню швидкого виклику для прискореного доступу до найчастіше використовуваних елементів головного меню;

3 – вкладки відкритих проектів;

4 – блок меню керування файлами поточного проекту;

5 – згортання блоку «4»;

6 – відкриті файли даного проекту;

7 – всі файли даного проекту;

8 – перегляд місця розташування проекту (файловий браузер);

9 – перегляд значень всіх регістрів, портів, та інших елементів в скороченій формі;

10 – робоче поле обраного підменю;

11 – вкладки відкритих для редагування файлів з вихідним кодом проекту;

12 – поле написання вихідного коду;

13 – блок меню для виконання різноманітних дій для від лагодження та написання проекту, є підменю для відлагодження; для перегляду змінних, при написанні коду мовою Сі; перегляду стану портів введення/виведення; написання нотаток; програмістський калькулятор; пошуку файлів;

14 – блок для перегляду і зміни комірок резидентної пам’яті даних (для зміни – натиснути мишкою в на потрібну комірку і ввести бажане значення) під час відлагодження програми;

15 – «швидкі кнопки» для керування процесом відлагодження: запуск, скидання, крок назад, крок вперед, через крок;

16 – перегляд і зміна вмісту акумулятора «А» і його розширення «В»;

17 – перегляд і зміна регістру стану програми;

18 – перегляд і зміна вмісту 8-ми РОНів обраного банку пам’яті;

19 – перегляд регістрів, що відповідають за переривання (регістр дозволу переривання, регістр пріоритетів переривань);

20 – блок перегляду і редагування поточного стану таймерів 0 і 1;

21 – перегляд і зміна стану портів 0…3;

22 – перегляд і зміна значення регістру-покажчика даних;

23 – перегляд і зміна частоти, на якій «працює» емулятор контролера;

24 – перегляд і зміна регістра показчика стека і буферів прийому-передачі послідовного порту;

25 – перегляд і зміна програмного лічильника;

26 – перегляд часу виконання програми;

27 – перегляд і редагування стану регістрів керування енергоживленням і послідовним портом;

28 – блок меню керування роботою з поточним відкритим на редагування та відлагодження файлом вихідного коду;

29 – список поміток;

30 – список «точок зупинки» програми;

31 – список символів і їх пошук;

32 – інформація про інструкцію (зручно використовувати під час ознайомлення з можливостями деяких команд та операндами, які вони можуть приймати на вході);

33 – список регістрів, за якими ведеться постійне спостереження;

34 – активні підпрограми;

35 – менеджер пристроїв;

36 – згортання даного блоку.

Більшість описаних вище елементів дублюється в «Головному меню» програми, а також там міститься безліч інших корисних елементів, опис деяких з них буде здійснено по мірі необхідності.

ОПИС ЛАБОРОТОРНОГО СТЕНДА

Технічні характеристики

Технічні характеристики стенда:

- Однокристальні процесори, що використовуються: AT89C51, AT89C52, AT90S8515 (ATmega8515) (корпус DIP-40);

- Пам'ять програм - 16 КБ;

- Пам'ять даних - 16 КБ;

- Послідовна EEPROM пам'ять, 256 байт (AT24C02) в стандартній поставці;

- Два послідовних канали передачі даних RS232;

- Системний інтерфейс;

- Інтерфейс розширення (16 ліній вихід, 8 ліній вхід/вихід, порт P1 ОЕОМ), дивіться додаток № 2;

- Клавіатура 4х3;

- Статична 4-розрядна семисегментна індикація;

- Цифро-аналоговий і аналого-цифровий перетворювач (плата розширення);

- Генератор з фіксованою частотою генерації - близько 10 Кгц, генератор із змінною частотою генерації від 1 Кгц до 50 Кгц (плата розширення);

- Динамічна 4-х розрядна семисегментнка індикація (плата розширення);

- Пристрій дискретного введення інформації: 2 кнопки;

- Статична світлодіодна індикація, 8 шт;

- знако-синтезуючий світлодіодний індикатор 5x7 1 шт. (Плата розширення).

Опис роботи стенда

У цьому розділі описана робота стенда при завантаженні програми, що налагоджується.

Структурна схема навчально-налагоджувального стенда зображена на рисунку 24. Перелік інтегральних мікросхем, а також їх аналоги, що використовуються в стенді описані в таблиці 1.

    Таблиця 1 – Перелік комплектуючих мікросхем
Позначення на схемі Позначення (імпортне) Аналог (найближча мікросхема) Стислий опис ІМС
  DD1 AT89C52 AT89S52 Не існує (КФ1830ВЕ751) Однокристальна ЭОМ
  DD2, DD7, DD9, DD11, DD17 74HC573N 1533 ИР33 8-разрядний регістр
  DD3   Не існує (К537РУ17) Стат. ОЗП 32Кб
  DD4 EPM7128STC100 Не існує Прогр. лог. схема
  DD18 74HC04 К1564ЛН2 6 КМОП інверторів
  DD10   К559ИП20 Перетворювач рівня RS‑232C
  DD12 ADM485 Не відомо Перетворювач рівня RS‑485
  DD14 AT29C02 Не існує ЭСПЗУ 2 Кбіт
  DD15 DS1621 Не існує Цифр. темп. Датчик
  DD16 DS1302 Не існує Годинник реального часу
  DD23, DD24 ADM202 Не існує Перетворювач рівня RS‑232C

Програма завантаження знаходиться в Flash-пам'яті мікроконтролера AT89C51, вона проводить ініціалізацію послідовного приймач-передавача ОЕВМ (DD1), перевіряє наявність і ємність пам'яті даних.

 

Рисунок 24 – Структурна схема стенда

 

Пам'ять ОЗП об'ємом 32К ділиться на дві частини по 16К. Одна частина для пам'яті програм, інша для пам'яті даних. У режимі завантаження програми вся пам'ять 32К відображається в адресний простір, як пам'ять даних (рисунок 25).

Рисунок 25 – Розподіл пам'яті стенда

При надходженні даних з послідовного порту персонального комп'ютера в послідовний порт (роз'єм Х11) стенда, ОЕВМ записує їх в ОЗП відведений під пам'ять програм. Сигнали керування - PME, WR, RD, ALE, що формуються процесором і необхідні для звернення до пам'яті даних надходять через системний контролер. Після прийняття останнього байта завантажувач формує сигнал запуску програми, записом керуючого коду в системний контролер.

Карта портів введення/виведення стенда описана в таблиці 2.

Таблиця 2 – Карта портів введення/виведення стенда
Адреса Тип циклу B7 B6 B5 B4 B3 B2 B1 B0 Имя  
Порти периферійних пристроїв  
8xx0 Запис [Порт A] PA_REG  
8xx1 Запис [Порт B] PB_REG  
8xx2 Запис [Порт C] PC_REG  
8xx3 Запис x x x x x TRISC x x TRIS  
Рідкокристалічні індикатори  
8xx4 Запис Регістр команд РК індикатора LCD_CMD  
8xx5 Запис Регістр даних РК індикатора LCD_DATA  
Послідовний порт  
9xxx Зчитування CTS DSR DCD RI KL3 KL2 KL1 KL0 US_REG  
Cxx0 Запис x x X x DTR RTS CFG1 CFG0 UC_REG  
   
CFG1 CFG0    
    RS-232 СОМ1, Х11  
    RS-232 СОМ2, Х12  
    RS-485 Приймання, Х13  
    RS-485 Передача, Х13  
Індикатор и світодіоди  
Axx0 Запис [Регістр індикатора 0] DISPLAY[0]  
Axx1 Запис [Регістр індикатора 1] DISPLAY[1]  
Axx2 Запис <зарезервовано> DISPLAY[2]  
Axx3 Запис <зарезервовано> DISPLAY[3]  
Axx4 Запис DP3 DP2 DP1 DP0 BL3 BL2 BL1 BL0 DC_REG  
Axx5 Запис <зарезервовано> EDC_REG  
Axx6 Запис LED7 LED6 LED5 LED4 LED3 LED2 LED1 LED0 LED_REG  
Керування роботою  
Axx7 Запис x x x x x x x RUN SYS_CTL  
                       
Сумісні регістри  
Bxx0 Запис [Регістр індикатора 1] DISPLAYB  
F000 Запис                 DAC nCS7

 

Кнопка SW2, необхідна для формування сигналу скидання RESET на вході процесора, тобто переходу стенда в режим завантаження і очікування прийому даних з послідовного порту. В цьому режимі процесор готовий приймати інформацію в пам'ять даних.

Кнопка SW1, необхідна для перезапуску завантаженої з ПК програми знаходиться в пам'яті програм (DD3). При натисканні кнопки SW1, загоряється світлодіод HL9. При цьому можливий новий запис програми в стенд з персонального комп'ютера. При передачі даних з персонального комп'ютера в стенд, комп'ютер на лінії RI послідовного порту формує сигнал, який через системний контролер зупиняє роботу процесора, так само як і кнопка SW2.

Адресація (звернення) процесора до периферійних пристроїв стенда реалізована як адресація до комірок пам'яті в адресному просторі від 8000Н до FFFFH. Сигнали вибірки периферійних пристроїв формуються дешифратором адреси всередині мікросхеми системного контролера DD4.

Вся логіка стенда реалізована на програмованій логічній мікросхемі EPM7128STC100 (DD4). Системний контролер управляє режимами роботи, формуванням керуючих сигналів на ОЗП, регістрами защіпки, динамічним світлодіодним індикатором, клавіатурою.

Вся логіка стенда реалізована на програмованій логічній мікросхемі EPM7128STC100 (DD4). Системний контролер управляє режимами роботи, формуванням керуючих сигналів на ОЗП, регістрами защіпки, динамічним світлодіодним індикатором, клавіатурою.

Світлодіодний індикатор

Чотирирозрядний семисегментний світлодіодний індикатор підключений до системного контролера, який автоматично виконує динамічну регенерацію і декодування двійкового коду в код семисегментного індикатора. Індикатор працює завжди, відразу після подачі живлення. Контролер індикатора містить два восьмирозрядних регістра, вміст яких відображається на індикаторі. Вміст регістра з адресою 0xA000 відображається на двох лівих розрядах, вміст регістра з адресою 0xA001 (0xB000) - на двох правих розрядах в шістнадцятковій формі. Керування десятковими точками і гасінням здійснюється через регістр DC_REG (0xA004). Біти DP3.. DP0 керують десятковими точками. Запис 1 в відповідний розряд включає десяткову точку. Біти BL3.. BL0 керують гасінням розрядів індикатора. Запис 1 в ці біти викликає гасіння відповідного розряду індикатора.

Матрична клавіатура

Стан стовпця матриці клавіатури зчитується з комірки з базовою адресою 0x9000, бітів 3.. 0. Відповідний стовпець вибирається нулем в розрядах адреси A2.. A0. Тобто, адреса 0x9006 вибере перший стовпець, адреса 0x9005 - другий стовпець, адреса 0x9003 - третій стовпець. Ознака натиснутою кнопки зчитується як нуль у відповідному розряді.

Включення портів ОЕВМ

Лінії P1.0, P1.1 ОЕВМ можуть бути відключені від внутрішньої периферії стенда (шина I2C) перемичками X14, X15. На роз'єм інтерфейсу розширення ці сигнали приходять, минаючи перемички.

Опис плат розширення

Плата розширення (у комплексі з навчально-налагоджувальним стендом на базі мікроконтролера (однокристальної ЕОМ (ОЕОМ) серії 8031) призначена для проведення лабораторних робіт пов'язаних з аналого-цифровим і частотним перетворення, а також з обробкою дискретних сигналів. Структурна схема плати розширення наведена на рисунку 27. Схема електрична принципова плати розширення додається.

Рисунок 27 – Структурна схема плати розширення

8888 - 4 розрядна динамічна індикація;

ІПП - Інтерфейс периферійних пристроїв;

ЦАП - Цифро-аналоговий перетворювач;

СДІ - Світлодіодні індикатори;

ЗСІ - знакосінтезіруючий індикатор 5х7;

ГЗЧ - Генератор із змінною частотою генерації;

INT - Кнопки запиту переривання;

ДВН - джерело вимірюваної напруги;

ШД - шина даних.

Генератори

У схемі присутній генератор із змінною частотою генерації ~ 1-50 кГц, елементи R1, R4, R5, R7, R10, R11, R15, R16, C3, VT1, DA1-1 (зміна частоти здійснюється за допомогою резистора R4), і генератор з фіксованою частотою ~ 10кГц, елементи R19, R20, C16, DD18-1, DD18-2, DD18-3.

Конструкція стенда

Навчально-налагоджувальний стенд „EV8031” – конструктивно виконаний у вигляді приставки, яка підключається до персонального комп’ютера за допомогою кабелю послідовної передачі даних і живлення.

Корпусом стенда служить підкладка із пластику товщиною 5мм розмірами 207мм * 144мм.

Робота зі стендом

Для написання програм під стенд доцільно скористатися середовищем розробки MCU 8051 IDE. Для цього необхідно діяти за наступною інструкцією:

1. Створити новий проект за схемою, аналогічною, до описаної в підрозділі “Створення нового проекту” розділу “Перший запуск середовища”, обравши модель контроллера таку, яка стоїть в стенді. Це може бути або AT89C51, або AT89S52, або аналогічний.

2. Написати код програми мовою Асемблер.

3. Скомпілювати набрану програму.

4. Коли буде проведено відлагодження програми в середовищі — її можна завантажити на виконання в стенд. Для цього доцільно скористатися програмою EvalGUI.exe. Після запуску необхідно обрати порт, на який підключено стенд (порт можна подивитися в “Диспетчері пристроїв”), обрати.HEX файл, який був сформований середовищем MCU 8051 IDE, з папки проект, і натиснути кнопку “Загрузить.” або F3.

5. При передачі даних з персонального комп'ютера в стенд на екрані монітора відображаються передані дані.

6. Після передачі останнього байта завантажена програма запускається автоматично.

7. При необхідності перезапуску програми завантаженої в стенд слід натиснути кнопку SW1.

8. Зупинка, завантаженої програми і перехід в режим очікування на отримання даних з персонального комп'ютера можливе натисканням кнопки SW2.

9. Запис нової програми можна починати в будь-який момент часу роботи завантаженої програми.

Тестування стенда

При подачі напруги на стенд, процесор автоматично визначає розмір пам'яті даних з відображенням на індикаторі стенда HG1 ємності пам'яті в кіло бітах. (Тестування процесора, регістра защіпки, дешифратора адреси, схеми скидання процесора).

Програма TEST1.HEX (в комплекті поставки) дозволяє перевірити канал послідовної передачі даних з персонального комп'ютера на стенд (мікросхема приймача даних), схему перемикання і мультиплексор, дешифратор адреси, всі розряди статичних елементів індикації.

Тестування плати розширення здійснюється за допомогою вбудованої в ПЗП завантажувача програми тестування.

Вхід в тестовий режим: утримуючи будь-яку кнопку на клавіатурі натиснути і відпустити кнопку скидання (SW2).

Вихід з режиму тестування: натиснути кнопку скидання або за кодом виходу.

Для виклику тесту: ввести номер тесту і натиснути кнопку ("#"), для виходу з поточного тесту натиснути будь-яку кнопку на клавіатурі.

Коди вбудованих тестів:

"1" - Вимірювання частоти генератора з незмінною частотою генерації, кГц;

"2" - Вимірювання частоти генератора із змінною частотою генерації, кГц;

"3" - "Рухомий вогник" на світлодіодах;

"4" - Послідовне засвічування сегментів семисегментних індикаторів;

"5" - "Рухомий вогник" на матриці світлодіодів;

"6" - Програма АЦП, відображає десятковий код ЦАП;

"10" - Програма тестування мікросхеми годин реального часу DS1302, настройка годин відбувається за допомогою кнопок SW15 і SW16, розташованих на цифровій платі;

"11" - Програма тестування інтегрального датчика температури DS1631

Вказівки з техніки безпеки

Навчально-налагоджувальний стенд "EV8031" розрахований на роботу з персональним комп'ютером. Всі вказівки з техніки безпеки ви можете дізнатися у відповідному керівництві з експлуатації даного пристрою.

Категорично забороняється встановлення і зняття роз'ємів перехідників та роз'ємів зв'язку при включеному персональному комп'ютері

Навчально-налагоджувальний стенд "EV8031" не містить напруг небезпечних для життя.


ПРОГРАМІСТСЬКА МОДЕЛЬ MK51

Програмна (програмістська) модель включає ті частини архітектури мк, до яких програміст може отримати доступ за допомогою тієї або іншої команди.

Програмістська модель мікроконтролера сімейства МК-51 АТ89С51 наведена на рисунках 30, 31.

Рисунок 30 – Програмна модель МК-51

Рисунок 31 – Програмна модель МК-51 (продовження)

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

Резидентна пам’ять даних

Резидентна пам’ять даних РПД призначена для прийому, збереження та видачі інформації, яка використовується в процесі виконання програми. Пам’ять даних ділиться на внутрішню (резидентну) пам’ять даних РПД і зовнішню пам’ять даних ЗПД.

РПД являє собою 128 восьмирозрядних регістрів, які призначені для прийому, збереження та видачі різноманітної інформації. Шістнадцять із цих регістрів допускають побітову адресацію.

На рисунку 32 наведений розподіл адресного простору РПД і області біт, що адресуються прямо.

В області молодших адрес РПД знаходяться 4 банки регістрів загального призначення (РЗП), кожен з яких має об’єм 8 байт (регістрів): R0, R1, …, R7.

 

Рисунок 32 – Розподіл адресного простору РПД і області біт, які адресуються прямо

Система команд

Мнемоніка команди ‑ представлення коду операції у вигляді сполучення латинських літер, що мають визначений зміст (використовуються англійські слова або скорочення, наприклад, MOV, PUSH, POP, JMP, CLR, NOP). Мнемоніки введені для полегшення написання програм, і складають основу мови асемблера.

Мнемокод включає в себе мнемоніку команди та опис операндів, які беруть участь в операції.

Код операції команди (КОП) ‑ комбінація бітів (не більше восьми для 8-розрядних МК-в), що знаходяться на початку машинного коду команди і визначають тип операції, що підлягає виконанню у момент часу. КОП дістається з пам'яті і розміщується в програмно недоступний регістр команд. Потім він декодується і визначається тип команди, яка повинна бути виконана. Для 16-х мікропроцесорів КОП частково може знаходитися у другому байті машинного коду команди. Крім КОП в машинний код команди можуть входити адреси та операнди.

Машинний код команди представляє собою двійковий код команди, який складається з одного або декількох байтів в залежності від типу команди конкретного МК-ра.

Операндами у мікропроцесорній техніці називають дані, які приймають участь у виконанні тієї чи іншої команди (операції). В залежності від способу адресації операндів, дані можуть знаходитися у регістрах, пам’яті, у машинному коді команди і т.ін.

Коментар використовується для полегшення читання програми. Компілятор (асемблер) пропускає коментарі, що показані в програмі через “;” після або до мнемоніки команди, не генеруючи при цьому ніякого машинного коду.

Формати команд

8-розрядний МК типу MCS-51, наприклад, АТ89С51 має команди тринадцяти форматів (типів) (рисунок 33). Перший байт команди кожного типу (формату) завжди містить КОП. Другий і третій байти включають в себе або адреси операндів, або безпосередні операнди.

  D7... D0        
  КОП        
      D7... D0
  КОП   #D8    
           
  КОП   ad    
           
  КОП   bit    
           
  КОП   rel    
           
  a10a9a8 КОП   a7...... a0   D7... D0
         
  КОП   ad   #D8
           
  КОП   ad   rel
           
  КОП   add   ads
           
  КОП   #D8   rel
           
  КОП   bit   rel
           
  КОП   ad16H   ad16L
           
  КОП   D16H   D16L
             

Рисунок ­ 33 – Формати команд

Команди першого типу мають довжину 1 байт. Крім КОП в склад команди може входити адреса одного з восьми РЗП поточного банку регістрів або адреса регістра, що використовувався для непрямої адресації пам'яті.

Команди другого типу містять два байти, з яких:

- перший байт виконує функції, що описані вище;

- другий байт є 8-розрядним безпосереднім операндом (БО), який входить в саму команду.

Другий байт команд третього типу являє собою пряму адресу комірки резидентної пам’яті даних (РПД) або одного з 21 регістрів спеціальних функцій.

Другий байт команд четвертого типу містить адресу одного з 128 біт РПД, які адресуються прямо, (рисунок 34) або адресу біт регістрів спеціальних функцій, які допускають пряму бітову адресацію (рисунок 34).

Рисунок 34 – Організація побітової адресації ОЗП

Другий байт команд п'ятого типу є 8-розрядним числом зі знаком в додатковому коді, яке в командах передачі керування додається до поточного значення програмного лічильника (до адреси наступної команди), чим забезпечується перехід в програмі на +127 комірок вперед або на -128 назад відносно наступної команди. Значення цього числа обчислюється компілятором за формулою:

rel = АДРЕСА МІТКИ – АДРЕСА НАСТУПНОЇ КОМАНДИ

Адреси біт регістрів спеціальних функцій зображені на рисунку 35.

Рисунок 35 – Адреси біт регістрів спеціальних функцій

Двобайтова команда шостого типу крім коду операції (КОП) містить одинадцятирозрядну пряму адресу (a10, a9, …, a1, a0), що забезпечує перехід в програмі всередині сторінки, об'ємом 2 Кбайт або виклик підпрограми в тому ж діапазоні адрес.

Другі і треті байти команд 7…11 типів є сполученням описаних вище команд:

- прямої адреси байта (ad, ads, add);

- прямої адреси біта (bit);

- 8-розрядного числа зі знаком (rel);

- безпосереднього операнда (D8).

Другі і треті байти команд 12-го і 13-го типів представляють відповідно:

- пряму 16-бітову адресу переходу або підпрограми;

- 16-бітовий безпосередній операнд.

Формати даних

Під час роботи з мікроконтролером необхідно знати не тільки формати команд, які керують роботою МК, але й формати даних (операндів), що приймають участь у виконанні тієї або іншої команди (операції) (рисунок 36).

Байт без знака:

7р 0р

  . . . . . .   0..255

СЗР, МЗР, ДДЧ,

старший молодший діапазон

значущий значущий десяткових

розряд розряд чисел

Байт зі знаком:

7р 0р

  . . . . . .   -128...+127

СЗР МЗР ДДЧ

знак СЗР:

1 – мінус

0 – плюс

Логічний байт:

7р 0р

X7 X6 X5 X4 X3 X2 X1 X0 Вісім незалежних логічних змінних

Упаковане двійково-десяткове число:

7р 4р 3р 0р

  . . . . . .   0...+99

СЗР МЗР ДДЧ

старша тетрада молодша тетрада

(0…9D) (0…9D)

Двобайтове слово:

15р 0р

  . . . . . . . . . . . . . .   0...+65535

СЗР МЗР ДДЧ

Рисунок 36 – Формати (типи) даних

Вплив команд на прапорці

Одним з основних регістрів МК-ра є регістр прапорців (ознак). Прапорці регістра ознак встановлюються під час виконання ряду команд МК-ра. Пі<







ЧТО И КАК ПИСАЛИ О МОДЕ В ЖУРНАЛАХ НАЧАЛА XX ВЕКА Первый номер журнала «Аполлон» за 1909 г. начинался, по сути, с программного заявления редакции журнала...

Что вызывает тренды на фондовых и товарных рынках Объяснение теории грузового поезда Первые 17 лет моих рыночных исследований сводились к попыткам вычис­лить, когда этот...

ЧТО ПРОИСХОДИТ, КОГДА МЫ ССОРИМСЯ Не понимая различий, существующих между мужчинами и женщинами, очень легко довести дело до ссоры...

Живите по правилу: МАЛО ЛИ ЧТО НА СВЕТЕ СУЩЕСТВУЕТ? Я неслучайно подчеркиваю, что место в голове ограничено, а информации вокруг много, и что ваше право...





Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2024 zdamsam.ru Размещенные материалы защищены законодательством РФ.