- •Київ нухт 2011
- •1. Загальні відомості про мікропроцесор та мікропроцесорну систему
- •1.1. Мікропроцесор. Загальні положення та визначення.
- •1.2. Архітектура мікропроцесора
- •1.3. Загальна структура мікропроцесора та його функціонування
- •1.4. Поняття про мікропроцесорну систему (мпс)
- •1.5. Поняття мікропроцесорного контролера
- •2. Загальні відомості пронадання та опрацювання інформації в мікропроцесонній техніці
- •2.1. Поняття інформації та дві форми її надання
- •2.2. Фізична суть цифрової інформації та елементи її реалізації
- •3. Основи алгебри логіки
- •3.1. Загальні положення
- •3.2. Опис та задання логічних функцій.
- •3.3. Основні логічні функції алгебри логіки
- •4. Способи надання інформації в мікропроцесорі
- •4.1. Поняття систем числення в мікропроцесорній техніці
- •4.2. Дівйкова система числення та основи переведення чисел між системами числення
- •4.2.1. Перетворення двійкових чисел в десяткові.
- •4.2.2. Перетворення десяткових чисел в двійкові
- •4.3. Вісімкова та шістнадцяткова системи числення
- •5. Структурні елементи мікропроцесора
- •5.1. Поняття машинного слова, регістрів
- •5.2. Формати надання чисел в мікропроцесорах
- •5.3. Двійкова арифметика в мікропроцесорі.
- •5.4. Двійково-десяткова арифметика.
- •5.4.1 Додавання двійково-десяткових чисел без знаку.
- •5.4.2 Додавання двійково-десяткових чисел із знаком.
- •5.5. Регістр стану (psw) мп та його призначення
- •5.6. Поняття шин (bus) мікропроцесора
- •5.7. Арифметично – логічний пристрій мікропроцесора
- •5.8. Пристій вводу – виводу (пвв).
- •In 07н; ввести в акумулятор дані із порту 7;
- •Поняття шинних драйверів.
- •5.9. Поняття інтерфейсу
- •5.10. Передавання інформації у послідовному коді.
- •5.11. Память мікропроцесорів та опереції з нею
- •5.12. Адресний простір мікропроцесора
- •5.13. Стек та його використовування
- •6. Мови програмування мпс
- •6.1. Рівні мов прграмування мп.
- •6.1.1. Базова мова мікропроцесора.
- •6.1.2. Мова “ асемблер” (другого рівня).
- •6.1.3. Мови третього рівня.
- •6.2. Основні правила запису програм на мові асемблера
- •6.3 Програмне забезпечення мікропроцесорнихсистем та його види
- •6.4. Способи адресації в мікропроцесорній системі
- •6.5. Формати команд мікропроцесорів
- •Варіанти однобайтних команд:
- •6.6. Робочий цикл виконання програми мп
- •7. Однокристальний мікропроцесорний контролер кр1816ве51…….
- •7.1. Номеклатура та порівняльні характеристики мп
- •7.2. Структурна схема мікроконтролера кр1816ве51 та призначення складових
- •Призначення виводів мп кр1816ве51
- •Призначення виводів мп кр1816ве51
- •7.3. Функціонування мп кр1816ве51
- •7.4. Система команд мп кр1816ве51
- •In port- те, що знаходиться в порту вводу заноситься в акумулятор а
- •8. Приклади програмування на асемблері кр1816ве51
- •8.1 Форомалізований підхід до розробки прикладної програми
- •8.2. Підрахунок імпульсів
- •8.3. Функції часової витримки
- •8.4. Функції вимірювання часових інтервалів
- •8.5. Перетворення кодів між системами числення
- •8.6. Аналого-цифрове перетворення
- •8.7 Приклад програмування технічної задачі
- •8.7.1. Постановка задачі
- •8.7.2. Аналіз задачі.
- •8.7.3. Розробка схеми пристрою та інтерфейсу.
- •8.7.4. Інженерна інтерпретація задачі
- •8.7.5. Розробка блок –схеми алгоритму
- •8.7.6 Розробка прикладної програми
- •Програма sezam
- •Контрольні запитання з курсу
- •Література
- •1..Технічне та програмне забезпечення плк “ломіконт” Функціональні можливості плк “Ломіконт”.
- •Технічні характеристики Ломіконта
- •2. Фізична сруктура контролера та його склад
- •На рис 1.1 приведена фізична структура л-110 з основними модулями.
- •Програмування плк “ломіконт”
- •ПрК задає логіку управління конкретним технологічним об”єктом.
- •Порядок виконання програми контролером:
- •05 Если умова а
- •07 Если умова в
- •11 Если умова с
- •00 Если в дв015
- •01 Тогда о кс102
- •02 Иначе в кс116
- •14 Тогда алг 031 (потім виконати алгоритм 031)
- •3. Приклад програмування на технологічній мові «Мікрол»
- •Програмування алгоритму
- •Безпоседньо програма
- •11 Тогда о кс100 - 26 тогда тс 1.0.0
- •Бібліотека алгоритмів «ломіконту»
5. Структурні елементи мікропроцесора
5.1. Поняття машинного слова, регістрів
В МП інформація опрацьовується порціями, які називаються словами. Машинне слово – це базова одиниця інформації конкретного мікропроцесора і залежить від його будови. Машинним словом називається група двійкових чисел, які обробляються мікропроцесорі одночасно. Кількість двійкових чисел (або кажуть розрядів) із яких складається це слово називається довжиною слова. Машинне слово пов’язують також з такою кількістю інформації, яка може бути записана в память регістрів мікропроцесора чи прочитана із пам’яті, за один цикл звертання до неї. Типова довжина слів - 4, 8, 12, 16 та 32 двійкових розрядів. Найменша одиниця інформації – один двійковий розряд, як ми відмітили раніше, називається біт (скорочення від англійської «binary digit» - двійкова цифра). Найбільше розповсюджена довжина слова у 8 біт (розрядів), яку називають – байт
Фізично машинне слово в мікропроцесорах зберігається в регістрах (назва від латинського слова «registrum» - внесене, записане). Регістри це електронні схеми, які являють собою упорядочену послідовність (ланцюг) з’єднаних за відповідною схемою тригерів і які призначені для зберігання машинних слів та виконання мікрооперацій над ними. Регістр характеризується одим числом – кількістю біт інформації, які можуть в ньому зберігатись, тобто, число тригерів у регістрі дорівнює числу двійкових розрядів в слові і для 8-ми розрядного МП зображується так: : В7 В6 В5 В4 В3 В2 В1 В0.
Розрізняють синхронні та асинхронні регістри. В синхронних – мікрооперації виконуються тільки по тактовому сигналу (рис.2.11). В асинхронних – тактовий вхід відсутній.
На регістрах виконуються мікрооперації: занесення (запису) та читання
слова в паралельному або послідовному коді, зсуву слова вліво або вправо, а також установлення вихідного (як правило нульового) стану.
Інформація, яка записани в регістр, залишається в ньому до тих пір, поки не буде замінена на іншу, а процес зчитування інформації з регістру не впливає на її стан, тобто, зчитуванням ми робимо копію оригіналу інформації, яка
зберігається в регістрі.
5.2. Формати надання чисел в мікропроцесорах
В залежності від специфіки використання мікропроцесорів числа в них можуть бути надані в різних форматах.
1) В простих випадках використання МПС широко використовується формат надання цілих чисел без знака в двійковому коді. Так, наприклад, для 8-ми розрядного процесора таке надання має вид:
В7 В6 В5 В4 В3 В2 В1 В0
0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 +255
Межі надання чисел не великі і складають від 0 до 2 – 1 , тобто складають тільки 256 різних чисел, які не повторюються. Відповідно у 12-розрядному процесорі в слові можна записати без знаку число 4095.
При необхідності суттєвого збільшення меж надання чисел у восьми розрядних мікропроцесорах використовують багатобайтові коди даних, або використовують більш потужний по розрядності мікропроцесор (16-ти чи 32-х розрядні). Наприклад, межі надання двійкових чисел в двох байтах 8-ми розрядного процесора або в 16-ти розрядному сягають від 0 до 65535
десяткової системі числення.
2) В МП, які орієнтовані на обробку даних, в яких, крім логічних операцій,
виконуються алгебраїчні операції (додавання та віднімання), використовується
формат надання чисел зі знаком.
Для того, щоб надати від’ємні і позитивні числа в будь-якій системі числення можна використовувати два способи.
Перший спосіб (звичайний) – це надання числа із знаком у прямому коді, коли спочатку надається знак числа, а потім саме число. Використовування даного способу для надання від’ємних чисел в мікропроцесорній техніці значно ускладнює структуру мікропроцесора для виконання ним математичної операції віднімання. В цьому випадку необхідно виконати не менше трьох операцій: 1) спочатку визначити, яке із двох чисел, що віднімаються, більше; 2) виконати саму операцію віднімання – від більшого відняти менше; 3) присвоїти результату знак більшого числа.
Для більш оптимального виконання операцій віднімання в
мікропроцесорній техніці застосовується другий спосіб - від’ємні числа надають у вигляді доповнюючого коду (у вигляді доповнення до основи системи числення і символ “-“(мінус) для їх ідентифікації не використовується), що дозволяє замінити операцію віднімання окремим видом додавання.
Доповненням D для n – розрядного числа Е називають різницю:
D = q - Е,
де q – основа системи числення; q - кількість різних чисел (комбінацій), що не повторюються і знаходяться в діапазоні від 0 до q ;
n – кількість розрядів (позицій) числа.
При цьому способі надання чисел із знаком із загальної кількості чисел q , половину чисел, а саме від 0 до (q /2 – 1) використовують як позитивні, а
іншу половину – як від’ємні і як доповнення до першої половини чисел.
Наприклад, розглянемо чотирьох розрядне число в десятковій системі числення : q =10; n =4; і відповідно q = 10000. В цьому діапазоні позитивні та від’ємні числа у формі прямого коду та їх відповідні доповнення до основи числення можуть бути записані так:
Прямий код Доповнюючий код
- 5000 +5000
- 4999 +5001
- 4998 +5002
……. …….
-3 +9997
-2 +9998
-1 +9999
0 0000
+1 0001
+2 0002
+3 0003
……. ……
+4998 4998
+4999 4999
Визначення: В будь-якій системі числення доповненням числа до її основи (або доповнюючим кодом числа) називається число, при додаванні якого до вихідного числа дістають всі нулі в позиціях (розрядах), які відповідають розрядам вихідного числа і одиницю в наступному по старшинству розряді, який відсутній у вихідному числі.
Легко перевірити правильність отриманних доповнень в приведеному вище переліку. Для цього треба додати число із нижньої половини (нижче значення 0000) правого стобчика з його доповненням, що розташоване на такій же відстані, але над кодом нуля (0000). Результатом такого додавання будуть числа 10 = 10000. Так як розрядність числа нами обмежена до чотирьох, то одиниця отриманого результату в п’ятому розряді «вивалюється » за розрядну сітку і не враховується нами, а результат дорівнює нулю. Н., 0003 + 9997 = 1 0000, де 0003 – позитивне число, а 9997 – від’ємне в доповнюю чому коді.
Перепишемо формулу для визначення доповнення числа до основи числення таким чином:
D = q - Е = [ (q - 1) – Е] + 1,
де (q -1) - це число, яке складається тільки із старших символів (цифр) системи числення, в якій записується число.
Отримана формула показує, що доповнення числа D можна отримати і без
безпосереднього віднімання самих чисел q та Е, а шляхом утворення спочатку доповнення [(q - 1) – Е], тобто, визначенням доповнення для кожного символу (кожної цифри) в усіх розрядах числа до максимального символу (старшої цифри) системи числення. А шукане доповнення D отримати шляхом додавання до отриманого числа 1 (одиниці).
Наприклад, отримати доповнення до десяткового числа: 1234.
1. Знаходимо доповнення в кожному розряді до старшої цифри (до 9) : 8765
2. Додаємо до отриманого числа одиницю 1
3. Шукане значення доповнюючого коду до числа 1234 є число 8766.
Перевіряємо, чи вірно виконане перетворення: 1234 + 8766 = 1 0000
Отримане в результаті додавання перенесення одиниці в неіснуючий старший розряд підтверджує вірність доповнюючого коду.
Виконання таких операцій в двійковій системі є особливо простим. Так як доповненням до 1 є 0, а доповненням до 0 є 1, то можна сформулювати правило отримання доповнення двійкових чисел:
доповнення D для двійкового числа знаходять заміною в кожному розряді вихідного двійкового числа 0 на 1, а 1 на 0 , тобто, виконують порозрядну інверсію числа (таку операцію називають знаходженням оберненого коду і вона виконується в МП дуже просто) і добавляють до числа, яке дістали, ще одиницю.
Наприклад, отримати доповнюючий код до двійкового числа 1010:
вихідне число - 1010, проводимо його порозрядну інверсію і дістаємо число
0101, до якого добавлямо 1. Результат дорівнює :
0110.
Використовуємо визначення, що: доповнення числа до 2 ( або кажуть доповнюючий код двійкового числа) – це число, при додаванні якого до вихідного числа дістають всі нулі в розрядах, які відповідають розрядам вихідного числа, і 1 - в наступному по старшинству розряді, який відсутній в вихідному числі.
Перевіряємо, чи вірно виконане перетворення:
1010 (вихідне двійкове число)
+ 0110 (доповнючий код двійкового числа 1010)
= 1 0000 (результат додавання).
Необхідно відмітити ще одну особливість доповнюючого коду двійкових чисел: - їх старший біт у байті виконує функцію знаку числа і він відводиться під знак «s» числа. Якщо s = 1, то число від’ємне і знаходиться в доповнюючому коді, а якщо s = 0 – то число позитивне і знаходиться у регістрі в прямому коді. Тому старший біт В7 в байті таких чисел, що зберігаються в регістрах або в комірках пам”яті, називають знаковим розрядом.
Таким чином, в мікропроцесорах позивні числа надаються модулем, або
кажуть в прямому коді, а від’ємні – у вигляді доповнення (доповнюючим кодом).
В одному байті 8-ми розрядного МП може бути розміщено число із знаком в таких межах (від’ємні – у вигляді доповнення):
S
B7 B6 В5 В4 В3 В2 В1 В0 Десяткове
1 0 0 0 0 0 0 0 -128
1 1 1 1 1 1 1 1 -1
0 0 0 0 0 0 0 0 0
0 1 1 1 1 1 1 1 +127.
3) В тих випадках, коли МПС вимагає ще більшого розширення меж надання чисел, використовують багатобайтові коди.
Наприклад, надання числа подвійної довжини (двобайтові числа). Знаковий розряд знаходиться при цьому в старшому розряді В7 старшого байту. Відповідно межа надання чисел розширюється від -2 = 32768 .. до ..+2 -1 = 32767.
Приклад розміщення в пам’яті 32-бітного двійкового цілого зі знаком.
Обробка таких багатобайтових чисел, розміщених в сміжних комірках, виконується в МП побайтно, починаючи з молодшого байту, шляхом виклику відповідної підпрограми обробки та 3-х разової модифікації (інкрементування) показника даних.
Пам’ять: Адреса
А Байт 0 Розміщення
А+1 Байт 1 чотирьохбайтного
А+2 Байт 2 (32 – бітного) числа в пам”яті МПС
А+3 s/Байт 3
4) Якщо в МПС потрібно виконувати операції над числами за правилами десяткової арифметики використовується так званий десятковий двійково-кодований упакований формат, або двійково- десяткова система числення. В цій системі десяткові цифри від 0 до 9 надаються 4-х розрядними двійковими комбінаціями від 0000 до 1001, тобто, двійковими еквівалентами десяти перших шістнадцяткових цифер. Перетворення виконується прямою заміною чотирьох розрядів двійкового числа одною десятковою цифрою і навпаки. Дві двійково - десяткові цифри складають байт, який умовно розбивається на дві тетради, в кожній із яких кодується десяткове число. Тобто, за допомогою 1 байта можна надати десяткове число від 0 до 99, а не від 0 до 255 або від 0 до FF, як при використовуванні двійкового 8-ми розрядного числа чи 2-х розрядів шістнадцяткового числа.
0 0 0 0 0 0 0 0 0
0 1 0 1 0 1 0 1 55
1 0 0 0 0 1 1 1 87
1 0 0 1 1 0 0 1 99
Старша цифра Молодша цифра
Використовуючи 1 байт для надання кожних 2-х десяткових чисел, можна утворювати двійково-десяткове число з будь-яким необхідним числом десяткових розрядів: н, (9538)10 = (1001 0101 0011 1000)2-10.
5) Якщо в МПС необхідно виконувати операції з багатобайтовими числами
зі знаком за правилами десяткової арифметики, то для кодування знака
числа використовується старша тетрада старшого байту, а (залишки) інші тетради зберігають двійові коди десяткових чисел. При цьому позитивне число в знаковій тетраді кодується 4-ма нулями (0000), а від”ємне – кодується 1001 (дев’яткою), що означає знак – “мінус”.
Наприклад: розміщення позитивного числа +9678348 в 4-х байтах:
А Тетрада 1 Тетрада 2 9 6 7 8 3 4 8
А+1 Тетрада 3 Тетрада 4 (0000 1001 0110 0111 1000 0011 0100 1000 )
А+2 Тетрада 5 Тетрада 6 (7 6 5 4 3 2 1 )
А+3 s s s s Тетрада 7 знак ( всього сім тетрад )
Позитивне число надається прямим кодом, а від”ємне – в доповюючому коді.
Н., від’ємне число: - 538 (його доповнюючий код: 462) буде записано 2-х байтах:
1001 0100 0110 0010
знак 4 6 2
6) Для надання дробових чисел в МП використовується формат з плаваючою комою, а саме число займає довжину в 32 розряди (4 байти ) . Як правило , при цьому три молодших байти відводяться для надання мантиси m, а старший байт використовується для надання порядку числа та його знаку. Порядок “Р” надається зміщеним кодом “Рсм” зі зміщенням 64 та займає біти В6....В0. При цьому біт В6 задає знак порядку: В6=1 при позитивному порядку, та В6=0 – при від”ємному порядку. Значення порядку лежить в межах від +63 до –64. Старший біт В7 в старшому байті задає знак числа: В7=0 – відповідає плюсу (позитивному числу), а В7=1 – мінусу (від’ємному).
Мантиса m надається прямим (при позитивному числі) та доповнюючим (при від’ємному) кодом і повинна бути нормалізована, тобто, мати значущу цифру старшу цифру, яка знаходиться по модулю в диапазоні від 2 до 1. Якщо в процесі обчислень мантиса денормалізується, то число результату знову нормалізується, тобто, виконується зсув мантиси вліво (або вправо) з одночасним зменшенням (збільшенням) порядку. Число з плаваючою комою визначається як: а = m * 2 , що дозволяє перекривати діапазон чисел від 2 до 2 .
Наприклад, розміщення у мікропроцесорі цілого від’ємного числа ( - 1234) у форматі з плаваючою комою.
Число спочатку нормалізується, тобто, записується у вигляді: - 0,1234 Е +4, тобто, дорівнює - 0,1234 * 10 , де Е – символ порядку числа, а сам порядок дорівнює 4 і його знак (+).
В двійковому еквіваленті число (-1234) буде записано в чотирьох байтах так:
в старшому В7 розряді старшого байту буде записана 1, так як вихідне число від“ємне;
в розряді В6 буде записана 1, так як порядок нормалізації позитивний;
в розрядах від В5 до В0 цього ж старшого байту буде записано двійковий
еквівалент числа 4 ( значення порядку нормалізації), тобто, 000100;
в молодших трьох байтах буде розміщено безпосередньо саме число (1234) в двійковій системі числення, як мантиса.