Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Metod_prakt-Mikroprocesori-2008-ukr.doc
Скачиваний:
12
Добавлен:
13.04.2015
Размер:
1.16 Mб
Скачать

Міністерство освіти і науки україни

ХАРКІВСЬКИЙ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ РАДІОЕЛЕКТРОНІКИ

МЕТОДИЧНІ ВКАЗІВКИ

до практичних занять з дисципліни

МІКРОПРОЦЕСОРИ В ЕЛЕКТРОННИХ АПАРАТАХ ”

Харків 2008

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

ХАРКІВСЬКИЙ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ РАДІОЕЛЕКТРОНІКИ

МЕТОДИЧНІ ВКАЗІВКИ

до практичних занять з дисципліни

“ МІКРОПРОЦЕСОРИ В ЕЛЕКТРОННИХ АПАРАТАХ ”

для студентів усіх форм навчання спеціальностей:

7.091001 – Виробництво електронних засобів;

7.091002 – Біотехнічні та медичні апарати і системи;

7.091003 – Електронна побутова апаратура;

7.091004 – Технологія та засоби телекомунікацій.

ЗАТВЕРДЖЕНО

кафедрою ПЕЕА.

Протокол № 21 від “13”07.2008.

Харків 2008

Методичні вказівки до практичних занять з дисципліни “Мікропроцесори в електронних апаратах“ для студентів усіх форм навчання спеціальностей 7.091001 – Виробництво електронних засобів; 7.091002 – Біотехнічні та медичні апарати і системи; 7.091003 – Електронна побутова апаратура; 7.091004 – Технологія та засоби телекомунікацій / Упоряд.: Лисенков М.О., Галкін П.В. – Харків: ХНУРЕ, 2008. – 68 с.

Упорядники: Галкін П.В,

Лисенков М.О

Рецензент: В.М. Світенко, канд. техн. наук, професор кафедри ПЕЕА

ЗМІСТ

ВСТУП . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5

1 Арифметичні і логічні основи цифрової техніки. . . . . . . . . . . . . . . . . . . . . 6

1.1 Мета занять. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.2 Заняття 1. Відображення інформації в цифрових пристроях. . . . . 6

1.2.1 Мета заняття . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6

1.2.2 Методичні вказівки з організації самостійної роботи студентів. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.2.3 Контрольні запитання і завдання. . . . . . . . . . . . . . . . . . . . . .9

1.2.4 Приклади аудиторних і домашніх завдань. . . . . . . . . . . . . 10

1.3 Заняття 2. Двійкова арифметика і основні функції алгебри логіки. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

1.3.1 Мета заняття. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12

1.3.2 Методичні вказівки з організації самостійної роботи студентів. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

1.3.3 Контрольні запитання і завдання. . . . . . . . . . . . . . . . . . . . .16

1.3.4 Приклади аудиторних і домашніх завдань. . . . . . . . . . . . . 16

2 Алгоритми і програми проектування мікропроцесорних систем. . . . . . . 17

2.1 Мета занять. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

2.2 Методичні вказівки з організації самостійної роботи студентів. . 17

2.3 Контрольні запитання і завдання. . . . . . . . . . . . . . . . . . . . . . . . . . . 23

2.4 Приклади аудиторних і домашніх завдань. . . . . . . . . . . . . . . . . . . .23

3 Програмна модель ядра мікроконтролера з CISC архітектурою. . . . . . . . 27

3.1 Мета занять. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

3.2 Заняття 1. Програмно доступні регістри, розподіл пам'яті, способи адресації. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27

3.2.1 Мета занятття. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27

3.2.2 Методичні вказівки з організації самостійної роботи студентів. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

3.2.3 Контрольні запитання і завдання. . . . . . . . . . . . . . . . . . . . .30

3.2.4 Приклади аудиторних і домашніх завдань. . . . . . . . . . . . .31

3.3 Заняття 2,3. Групи команд. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33

3.3.1 Мета занять. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33

3.3.2 Методичні вказівки з організації самостійної роботи студентів. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

3.3.3 Контрольні запитання і завдання. . . . . . . . . . . . . . . . . . . . 42

3.3.4 Приклади аудиторних і домашніх завдань. . . . . . . . . . . . .43

4 Алгоритми і програми управління електронними апаратами. . . . . . . . . . 45

4.1 Мета занять. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .45

4.2 Заняття 1. Програмна модель таймерів/лічильників мікроконтролера і методи управління периферійними пристроями у реальному часі. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .45

4.2.1 Мета заняття. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .45

4.2.2 Методичні вказівки з організації самостійної роботи студентів. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

4.2.3 Контрольні запитання і завдання. . . . . . . . . . . . . . . . . . . . .49

4.2.4 Приклади аудиторних і домашніх завдань. . . . . . . . . . . . . 50

4.3 Заняття 2. Алгоритми і програми обміну інформацією через послідовний порт. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .54

4.3.1 Мета заняття. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .54

4.3.2 Методичні вказівки з організації самостійної роботи студентів. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

4.3.3 Контрольні запитання і завдання. . . . . . . . . . . . . . . . . . . . .57

4.3.4 Приклади аудиторних і домашніх завдань. . . . . . . . . . . . .58

4.4 Заняття 3. Алгоритми і програми обробки інформації в режимі переривань. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .61

4.4.1 Мета заняття. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .61

4.4.2 Методичні вказівки з організації самостійної роботи студентів. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

4.4.3 Контрольні запитання і завдання. . . . . . . . . . . . . . . . . . . . 63

4.4.4 Приклади аудиторних і домашніх завдань. . . . . . . . . . . . .64

Рекомендована література. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .68

ВСТУП

Важливим чинником в автоматизації виробничих процесів, проектуванні пристроїв різного призначення, підвищенні якості розробок і продуктивності праці, економії матеріалів і енергії є використання сучасної обчислювальної техніки (ОТ|). Швидкий розвиток мікроелектроніки відкрив новий напрям ОТ| – створення мікропроцесорів (МП|) і мікроконтролерів (МК|). Широке і правильне використання таких універсальних великих інтегральних схем (ВІС) у всіх сферах людської діяльності – одна з визначальних умов економічного і соціального розвитку країни.

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

Останнім часом в області цифрового управління значну популярність завоювали мікроконтролери (МК|). Вони у вітчизняній літературі частіше називаються однокристальними мікро ЕОМ (ОМЕОМ). МК| є виготовленою на одному кристалі мікропроцесорною системою (МПС|), орієнтованою на реалізацію алгоритмів логічного аналізу і цифрового управління різними об'єктами і процесами [1-6].

Мікроконтролер містить центральний процесор, внутрішню пам'ять програм і пам'ять даних, паралельні і послідовні порти введення-виведення, набір периферійних пристроїв: таймери, аналого-цифрові перетворювачі, широтно-імпульсні модулятори, контролери переривань, модулі обробки сигналів (подій) у реальному часі. Таким чином, на базі МК з мінімальною кількістю додаткових компонентів можна побудувати складну функціональну цифрову систему.

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

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

1 АРИФМЕТИЧНІ І ЛОГІЧНІ ОСНОВИ ЦИФРОВОЇ ТЕХНІКИ

1.1 Мета занять

Вивчення і закріплення навчального матеріалу, що включає арифметичні і логічні основи цифрової техніки.

1.2 Заняття 1. Відображення інформації в цифрових пристроях

1.2.1 Мета заняття

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

1.2.2 Методичні вказівки з організації самостійної роботи студентів

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

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

Термін "інформація" в широкому сенсі – це відбиття реального світу, а у вузькому сенсі – це будь-які відомості, що є об'єктом зберігання, передачі і перетворення [1,2]. З практичної ж точки зору інформація завжди подається у вигляді відображення про події, явища природи, про стан технологічних виробничих процесів. Цифрові ЕОМ використовують дискретні повідомлення. При цьому перехід від безперервного відображення сигналу до дискретного дає значні переваги під час передачі, зберіганні і обробки інформації. З цією метою широко використовуються аналого-цифрові перетворювачі, що здійснюють квантування сигналу за рівнем і за часом.

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

У загальному випадку система числення є сукупністю прийомів і правил для запису чисел цифровими знаками (символами). При цьому використовувана у практиці система числення має забезпечувати:

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

- простоту операції з цифровими знаками.

Всі системи відображення чисел поділяють на непозиційні і позиційні.

У першому випадку кількісний еквівалент цифри не залежить від місця її розташування в записі числа. Наприклад, запис XV відповідає числу 15 (X – десять , V – п’ять), а запис IX – числу дев'ять.

У другому випадку одна і та сама цифра набуває різних числових значеннь залежно від місцеположення (розряду) цієї цифри в записі числа. Наприклад, у десятковій системі числення в записі 737 цифра 7 зустрічається двічі, проте її кількісний еквівалент в обох розрядах різний: права цифра 7 позначає число одиниць – сім, а ліва – сімсот.

Будь-яка позиційна система числення характеризується основою. Основа (базис) – число знаків або символів, використовуваних для відображення цифр у даній системі. В обчислювальній техніці, наприклад, широко використовуються шістнадцяткова| система числення, запис чисел якої проводиться за допомогою цифр і символів (літер) :0, 1..., 9, A, B, C, D, E, F.

Для позиційної системи числення справедлива рівність

(1.1)

де N – довільне число, записане в системі числення з основою q;

а – цифри системи числення;

n, m – число цілих і дробових розрядів.

Так, наприклад, скороченому запису числа 737.25 відповідає його значення, обчислене згідно з рівністю (1. 1):

737.25 =7 · 102 + 3 · 101 + 7 · 100 + 2 · 10-1 + 5 · 10-2.

У двійковій системі числення для відображення чисел використовуються дві цифри: 0 і 1. Діючи згідно з (1.1), значення двійкового числа, наприклад, 11110010. 0110 можна подати в такому вигляді: 11110010. 0110 = 1 · 27 + 1 · 26 + 1 · 25 + 1 · 24 + 0 · 23 + 0 · 22 + 1 · 21 + 0 · 20 + 0 · 2-1 + 1 · 2-2 + 1 · 2-3 + 0 · 2-4.

Ймовірно, десятковий еквівалент цього двійкового числа (за правилами десяткової арифметики) дорівнюватиме 242. 375.

У табл. 1.1 наведені еквіваленти десяткових цифр у деяких системах числення.

Таблиця 1. 1– Еквіваленти десяткових цифр у деяких системах числення

Десятко-ва цифра

Еквіваленти в системах числення

Десятко-ва

цифра

Еквіваленти в системах числення

q = 2

q = 8

q = 16

q = 2

q = 8

q = 16

0

0

0

0

8

1000

10

8

1

1

1

1

9

1001

11

9

2

10

2

2

10

1010

12

A

3

11

3

3

11

1011

13

B

4

100

4

4

12

1100

14

C

5

101

5

5

13

1101

15

D

6

110

6

6

14

1110

16

E

7

111

7

7

15

1111

17

F

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

Перетворення чисел з різними основами. Для переведення цілих чисел або цілих частин неправильних дробів з системи числення з основою q1 у нову систему числення з основою q2 використовується метод, який базується на діленні числа, що переводиться, на основу нової системи числення. Відповідно до (1.1), ціле число N(q1) в системі з основою q2 записується у вигляді:

N(q2)= bn-1 q2n-1 + bn-2 q2n-2 + .+ b1 q21 + b0 q20. (1.2)

Представляючи (1.2) за схемою Горнера, одержимо:

N(q2)=(.((( bn-1 q2 + bn-2 )q2 + bn-3) q2.+ b1) q2 + b0 ). (1.3)

Запис числа N(q2) у вигляді (1.3) розкриває суть використовуваного методу. Дійсно, якщо розділити праву частину (1.3) на величину основи q2, то одержимо цілу частину (.( bn-1 q2 + bn-2 )q2 +. b1) і остачу b0. Розділивши цілу частину на q2, знайдемо другу остачу b1.

Повторюючи процес ділення n разів, знаходимо останню частку bn-1, яка (1.3) є старшою цифрою n розрядного числа, поданого в системі з основою q2. Переведення чисел арифметичними діями має проводитися за правилом системи числення з основою q1.

Шістнадцяткова система числення (Н-код походить від hexadecimal), система з основою 16 використовує символи від 0 до F (див. табл|. 1.1). Така форма числа зручна для запису, запам'ятовування і введення з клавіатури. Компактність досягається шляхом розділення біт двійкового числа на тетради (4 біт) і тоді число комбінацій складе 2 =16.

Двійково-десяткові числа. З метою зручності перетворення чисті двійкові числа подаються десятковими або шістнадцятковими|. Хоча двійково-десяткове перетворення є не простою операцією, в калькуляторах і числових приладах використовують спеціальний двійково-десятковий код (DDK), коли на доступних користувачу виходах і входах використовуються десяткові числа. Під час використання двійкових чисел для кодування десяткових даних необхідно мати можливість представляти цифри від 0 до 9, тобто для зображення цифри 9 гранично потрібно 4 біт для групи 10012. Проте всі 4-розрядні двійкові числа, які перевищують 10012, недопустимі в DDK. Щоб уникнути подібних перетворень, у системній програмі ЕОМ передбачається спеціальна команда "Десяткова корекція", яка забезпечує переповнювання 4-розрядного регістра при N10=10 шляхом додавання числа 01102 (+610).

Двійкові числа в додатковому коді. Інформація в ЕОМ зазвичай обробляється в двійковому коді. Проте якщо необхідно використовувати числа із знаком, використовується спеціальний додатковий код (у вигляді так званого доповнення до 2). При такому уявленні зникає двозначність відображення нульового результату, властива запису в зворотному коді. Додатковий код формується шляхом додавання 1 до зворотного коду двійкового числа.

Як видно з табл|. 1.2, запропонований метод дозволяє, наприклад, за допомогою 8 біт подати у двійковій формі десяткові числа від -128 до +127, включаючи 0.

Таблиця 1.2–Двійкове відображення чисел

8-розрядне двійкове число

Десятковий еквівалент

двійкового числа із знаком (негативне число в дод. коді)

двійкового числа без знаку (позитивне число)

0000 0000

+0

0

0000 0001

+1

1

0000 0010

+2

2

0000 0011

+3

3

:

:

:

0111 1100

+124

124

0111 1101

+125

125

0111 1110

+126

126

0111 1111

+127

127

1000 0000

-128

128

1000 0001

-127

129

1000 0010

-126

130

1000 0011

-125

131

:

:

:

1111 1100

-4

252

1111 1101

-3

253

1111 1110

-2

254

1111 1111

-1

255

1.2.3 Контрольні запитання і завдання

1. Поясніть принципи відображення інформації в аналоговій і дискретній формах. Наведіть приклади їх джерел.

2. Поясніть відмінність між позиційними і непозиційними системами числення. Що розуміється під терміном "основа" позиційної системи під час запису цифрових чисел? Перетворіть у двійкові числа такі десяткові числа: 128; 255; 29; 75; 16. 015625; 10. 5; 12.

3. Перетворіть десяткові числа в еквівалентні вісімкові, шістнадцяткові числа: N =56. 03; N =256. 5725; N =176. 5.

4. Перетворіть у десяткові числа з різними системами числення: N2=01101101; N8 =1172. 258; N16 =27A. 54; N16 =9. 4.

5. Перетворіть N8 =1730 у Н-код, за яким визначити N10.

6. Записати такі двійково-десяткові числа в десятковому коді: а) 1001 0101; б) 0101 0011; в) 0100 0010; г) 0110 0110.

7. У якій формі можливо відображення від’ємних двійкових чисел?

8. Чому дорівнює діапазон чисел подвійної точності 16-розрядного МП| під час використання додаткових кодів?

9. Перетворіть десяткові числа Х10 в 8-розрядні в додатковому коді Хгдк: 64; -56; 12; 0; -128; +127; -4; 256; -100.

10. Визначити десятковий еквівалент Х10 за значенням Хгдк: 11111011; 00001111 ; 10001111 ; 01110111.

1.2.4 Приклади аудиторних і домашніх завдань

Приклад 1.1. Перевести десяткове число N=134 у двійкову систему числення (q2 =2). Хід розв’язання наведений у табл|. 1.3.

Таблиця 1.3–Хід розв’язання переведення десяткового числа у двійкове

Крок n

Операція ділення

Частка

Остача (цифра)

Розряд

Примітка

1

134:2

67

0

b0

Молодший розряд

2

67:2

33

1

b1

3

33:2

16

1

b2

4

16:2

8

0

b3

5

8:2

4

0

b4

6

4:2

2

0

b5

7

2:2

1

0

b6

8

1:2

0

1

b7

Старший розряд

Відповідь: N =b7 b6 b5 b4 b3 b2 b1 b0 = 100001102.

Приклад 1.2. Перевести десятковий дріб N =0. 34375 у двійкову систему числення (q =2). Операції переведення наведені в табл|. 1. 4.

Таблиця 1. 4 – Хід розв’язання переведення десяткового дробу в двійковий

Крок n

Операція множення

Твір

Ціла частина (цифра)

Розряд

Примітка

1

2*0.34375

0.6875

0

b-1

Старший розряд

2

2*0.6875

1.375

1

b-2

3

2*0.375

0.75

0

b-3

4

2*0.75

1.5

1

b-4

5

2*0.5

1.0

1

b-5

Молодший розряд

Відповідь: N(2)=0. b-1 b-2 b-3 b-4 b-5 =0. 01011.

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

Природно, що при цьому виникає погрішність переведення чисел. У ЕОМ точність переведення зазвичай обмежується довжиною розрядної сітки, відведеної для відображення чисел.

Для зручності перетворення двійкових чисел у десяткові приведемо значення ваги деяких розрядів (позицій) двійкової системи числення в межах b15 ... b-6 (див. табл|. 1. 5).

Таблиця 1. 5 – Ваги деяких розрядів (позицій) двійкової системи числення

215

214

213

212

211

210

29

28

27

26

25

32768

16384

8192

4096

2048

1024

512

256

128

64

32

24

23

22

21

20

2-1

2-2

2-3

2-4

2-5

2-6

16

8

4

2

1

0.5

0.25

0.125

0.0625

0.03125

0.015625

Приклад 1.3. Перевести двійкове число N(2)=1101. 0101 в десяткове. Як і раніше, хід розв’язання відобразимо за допомогою табл|. 1.6.

Таблиця 1.6 –Переведення двійкового числа в десяткове

Кроки

Двійкове число (код)

Вага двійкового розряду

Проміжні значення

1

1

0

1

0

1

0

1

1

2-4

0,0625

1*0,0625=0,0625

2

2-3

0,125

0*0,125=0

3

2-2

0,25

1*0,25=0,25

4

2-1

0,5

0*0,5=0

5

20

1,0

1*1,0=1,0

6

21

2,0

0*2,0=0

7

22

4,0

1*4,0=4,0

8

23

8,0

1*8,0=8,0

Σ(10)=13. 3125

Відповідь: десятковий еквівалент дорівнює сумі проміжних значень N10=13. 3125.

Приклад 1.4. Подати двійкове число N2 =110010111010 шістнадцятковим| N16 або NH , де Н вказує на приналежність системи числення до шістнадцяткової|.

Розв’язок. Необхідно почати з молодшого біта (МБ) і розділити двійкове число на групи з чотирьох біт. Потім ці групи замінити еквівалентною шістнадцятковою цифрою. Перша група 1010=А, друга – 1011=В, третя – 100=С, отже, результат: 1010 1011 1100 =СВА або в Н-коді СВАН.

Оскільки зворотні перетворення в розглянутому прикладі не зустрічають утруднення, то розглянемо перетворення чисел з D-коду (десяткового) в Н-код і назад.

Приклад 1.5. На цьому прикладі розглянемо зворотне перетворення шістнадцяткового числа в десяткове: N16 =5CBA. 27. Ціла частина числа в табл. 1.7 отримала свій десятковий еквівалент у вигляді N10 =23738.

Таблиця 1.7 – Зворотне перетворення шістнадцяткового | числа в десяткове

Ступінь позиції

163

162

161

160

Результат

Значення позиції

4096

256

16

1

Н-код

5

З

У

А

4096

256

16

1

*

*

*

*

5

12

11

10

D-код

20480

+

3072

+

176

+

10

= 23 73816

Приклад 1.6. Виконати операцію перетворення десяткового числа (D-коду) в DDK, а потім записати десятковий еквівалент (зворотне завдання).

Розвязок. Нехай маємо справу з десятковим числом 357910. Кожна цифра числа перетвориться прямо в свій двійково-десятковий еквівалент з 4 біт, в результаті одержуємо:

Десяткове число 3 5 7 9

Двійково-десяткове число 0011 0101 0111 1001

Відповідь: 357910 =0011 0101 0111 1001(2-10К).

Розв’яжемо зворотне завдання для DDK у вигляді: 1000 0010 0110 0000.

Розвязок. Кожна група з 4 біт прямо переводиться в її десятковий еквівалент:

DDK 1000 0010 0110 0000

D-код 8 2 6 0

Відповідь: 1000 0010 0110 0000(2-10К)=8260D.

1.3 Заняття 2. Двійкова арифметика і основні функції алгебри логіки

1.3.1 Мета заняття. Вивчити особливості виконання арифметичних операцій над двійковими і шістнадцятковими| числами в прямому і зворотному кодах

1.3.2 Методичні вказівки з організації самостійної роботи студентів

Двійкова арифметика, або дії над двійковими числами, використовує правила, задані таблицями складання, віднімання і множення:

Складання Віднімання Множення

0 + 0 = 0 0 - 0 = 0 0 · 0 = 0

0 + 1 = 1 1 - 0 = 1 0 · 1 = 0

1 + 0 = 1 1 - 1 = 0 1 · 0 = 0

1 + 1 =10 10 - 1= 1 1 · 1 = 1

запозичення запозичення

у старший у старший

розряд розряд

Складання двійкових чисел подібно до складання десяткових. В обох випадках операції починаються з обробки найменших значущих цифр, розташованих у крайній справа позиції. Якщо результат складання найменших значущих цифр двох доданків не поміщається у відповідному розряді результату, то відбувається перенесення. Цифра, яка переноситься в сусідній зліва розряд, додається до вмісту останнього.

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

Схожість операцій десяткового і двійкового складання показана на прикладі нижче.

Десяткова

Двійкова

арифметика

арифметика

Перенесення (одиниці)

11

1111111

Доданок (перший)

099

01100011

+

+

Доданок (другий)

095

01011111

Сума

19410

110000102

Для того, щоб переконатися в правильності результату, можна або перевести число 194 з десяткової системи в двійкову, або байт числа 11000010 подати у розгорненому вигляді і порівняти результати:

19410 = 110000102 ; 11000010 = 1·27 +1·26 +0·25 +0·24 +0·23 +0·22 +1·21 +0·20 =19410.

Двійкове віднімання також відрізняється від десяткового лише особливостями порозрядних операцій. Якщо вміст розряду зменшуваного менше вмісту однойменного розряду від'ємника, то здійснюється позичання одиниці з сусіднього старшого розряду. Це відбувається у тому випадку, коли з нуля віднімається одиниця. Завдяки позиці в однойменному розряді результату виходить одиниця, оскільки вага позики дорівнює 2. Приклад двійкового і десяткового віднімання, коли зменшуване більше за від'ємник, показаний нижче.

Десяткова

Двійкова

арифметика

арифметика

Позичання (одиниці)

1

11

Зменшуване

109

01101101

-

-

Від'ємник

049

00110001

Різниця

06010

001111002

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

Умовно позначають завершення якої-небудь події (наприклад, наявність високого рівня напруги в якій-небудь точці схеми) символом 1. Цей символ називають логічною одиницею (щоб не сплутати його з двійковою цифрою 1). Відсутність якої-небудь події позначимо символом 0, званим логічним нулем.

Таким чином, кожному сигналу на вході або на виході двійкового елемента ставиться у відповідність логічна змінна, яка може приймати лише два значення: стан логічної одиниці (подія істинна) і стан логічного нуля (подія помилкова). Позначимо логічну змінну символом x, так що x =1, якщо x R0, і x = 0, якщо x R1.

Різні логічні змінні можуть бути зв'язані функціональними залежностями вираз у =f (x1,x2) вказує на функціональну залежність логічної змінної від логічних змінних x1 і x2, званих аргументами (або вхідними змінними). За будь-якої складності логічного зв'язку між логічною функцією та її аргументом, цей зв'язок завжди можна подати у вигляді сукупності простих логічних операцій.

До останніх належать: заперечення (операція "НІ"); логічне множення (операція "І"); логічне складання (операція "АБО").

Запереченням називається такий логічний зв'язок між вхідною логічною змінною x і вихідною логічною змінною у, при якій істинно тільки тоді, коли x помилково, і, навпаки, у помилково тільки тоді, коли істинно x. Представимо дану функціональну залежність у вигляді табл. 1.8, 1.9, 1.10. Подібні таблиці, що відображають відповідність усіх можливих комбінацій (наборів) значень двійкових аргументів значенням логічної функції, називаються таблицями істинності.

Таблиця 1.8 Таблиця 1.9 Таблиця 1.10

х

у

х

х

у

х

х

у

0

1

0

0

0

0

0

0

1

0

0

1

0

1

0

1

1

0

0

0

1

1

1

1

1

1

1

1

Операція "НІ" Операція "І" Операція "АБО"

За допомогою логіко-математичної символіки логічна функція НЕ змінної у записується як y =і читається "у є не x". Якщо, наприклад, x – твердження про наявність сигналу високого рівня в якій-небудь точці схеми, то у відповідає твердженню про наявність сигналу низького рівня (сигнал високого рівня відсутній).

Логічним множенням декількох змінних називається така функція, яка істинна тільки тоді, коли одночасно істинні всі змінні, що помножуються (табл. 1.9). Операція І між двома змінними x1 і x2 може позначатися як

y = x1x2 або y = x1 x2 і читається: "у є x1 і x2 ".

Логічним складанням декількох змінних називається така функція, яка помилкова тільки тоді, коли одночасно помилкові всі доданки змінні (табл. 1.10). Операція АБО позначається знаком V. Наприклад, операція АБО між двома змінними x1 і x2 позначається y = x1 V x2 і читається: "у є x1 або x2 ".

Логічні операції І та АБО називаються відповідно кон'юнкцією і диз'юнкцією.

Існує і ряд інших елементів, що реалізовують прості логічні функції. До їх числа, наприклад, належать елементи підсумовування за модулем два, що реалізовують функцію нерівнозначності двох змінних ("Що Виключає АБО"):

Таблиця істинності та умовне позначення такого елемента наведені на рис. 1.1. Функція нерівнозначності рівна одиниці лише у разі, коли змінні x1 і x2 мають різні значення.

x1

x2

у

0

0

0

0

1

1

1

0

1

1

1

0

а) б)

Рисунок 1.1 – Таблиця істинності (а) і умовне позначення елемента нерівнозначності (б)

Рівняння, відповідне логічній функції що "Виключає АБО", може бути записано у такому вигляді:

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

1.3.3 Контрольні запитання і завдання

1. Складіть наведені нижче двійкові числа:

0000 0101 1000 1001 0101 0101 101 1001

+ ; + ; + ; + ; + .

0001 0001 0000 1111 1010 1010 011 011

2. Виконайте операцію віднімання двійкових чисел:

1001 1111 0001 1001 0011 1001 1001 1111 1001

- ; - ; - ; - ; - .

111 0000 0011 0101 1101 1111 0000 1001 0001

3. Визначити десяткові еквіваленти результатів складання і віднімання по пунктах 1 і 2 відповідно.

4. Виконати множення наведених нижче пар двійкових чисел:

101 0110 0101 1101 0111 1001

· ; · ; · ; · ; · .

011 0111 0010 1101 1000 1010

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

1.3.4 Приклади аудиторних і домашніх завдань

Приклад 1.7. Обчислити різницю чисел 5810 - 2310 в двійковій системі числення.

Розв`язок.

Крок 1. Визначити додатковий код числа 2310.

Двійковий еквівалент числа 2310 . = 00010111

Його зворотний код 11101000.

+

Додати одиницю 00000001.

=

Виходить додатковий код 11101001.

Крок 2. Обчислити різницю шляхом складання двійкового еквівалента числа 5810 і додаткового кода числа 23.

5810. 00111010

+

ДК23 11101001

=

1. 00100011 - різниця (58-23) = + 35.

одиниця перенесення, відкидається у разі позитивного результату.

Приклад 1.8. Обчислити різницю чисел 2310 - 5810.

Розв`язок.

Крок 1. Визначення додаткового коду числа 581:

00111010 – прямий код числа 5810;

11000101 – зворотний код числа;

+

00000001 – одиниця;

11000110 – додатковий код.

Крок 2. Обчислення різниці:

00010111 – прямий код числа 2310;

+

11000110 – додатковий код числа 5810;

11011101 – різниця (23-58) = - 35 в додатковому коді, оскільки в старшому розряді є одиниця.

Крок 3. Визначення абсолютного значення різниці:

11011101 – додатковий код різниці;

00100010 – зворотний код;

+

00000001 – одиниця;

00100011 – абсолютне значення різниці (3510).

Під час розв`язання задач у двійковій системі числення рекомендується отримані результати перевіряти за допомогою десяткової арифметики.