You are on page 1of 858

д-р Жанета Сервини

м-р Јани Сервини

Дигитални системи
(редовен и изборен)

III (трета) година – електротехничка струка


електротехничар за компјутерска техника и автоматика

Битола, 2020 год.


Дигитални системи (редовен и изборен)
III (трета) година – електротехничка струка
електротехничар за компјутерска техника и автоматика
Автори: м-р Јани Сервини
д-р Жанета Сервини

Рецензенти: Проф. Д-р Митко Костов


Хасибе Селими Мисини
Александар Иванов

Лектор: Проф. Д-р Трајко Огненовски

Изработка на илустрации
и компјутерска обработка: Јани Сервини

Идејно решение на корица: Јани Сервини


Дизајн на корица: Димитар Велјановски

Издавач:
Печати:
Тираж:
Со одлука за одобрување на учебникот по предметот Дигитални системи
(редовен и изборен) за III (трета) година, струка електротехничка, профил
електротехничар за компјутерска техника и автоматика, бр. 26 – 1127/1 од
12.12.2019 год., донесена од Националната комисија за учебници.
CIP - Каталогизација во публикација
Национална и универзитетска библиотека "Св. Климент Охридски", Скопје
004(075.3)
СЕРВИНИ, Jани
Дигитални системи за III година : (редовен и изборен) / Jани
Сервини, Жанета Сервини. - Скопје : Министерство за образование и наука
на Република Северна Македонија, 2020. - [862] стр. : илустр. ; 30 см
ISBN 978-608-226-852-1
1. Сервини, Жанета [автор]
COBISS.MK-ID 51753989
Книгата е најмоќната машина
којашто човекот ја измислил.
Авторите
КРАТКА СОДРЖИНА
Предговор ……………...……………...……………...…………. i
Дел I – Организација на микрокомпјутери ……………........ 1

Дел I.1. Организација на микрокомпјутери


3
– Редовна настава .....………….....….………………..
1. Булова алгебра и логички кола............................................. 5
2. Комбинациски мрежи ............................................................. 37
I) Кола за аритметичко–логички функции ...................................... 39
II) Прекинувачки матрици .................................................................. 47
III) Програмабилни логички структури ........................................... 63
3. Флип-флопови …...……………………………………........... 73
4. Регистри ..................................................................................... 105
5. Бројачи ...................................................................................... 127
6. Аритметички кола .................................................................. 159
I) Кола за множење (множачи) .......................................................... 161
II) Кола за делeње (делачи) ................................................................. 181
7. Мемориски компоненти ......................................................... 195
8. Дигитално-аналогна и аналогно-дигитална конверзија.. 229

Дел I.2. Организација на микрокомпјутери


271
– Изборна настава………….…………………….........
Вовед во изборната настава и насоки за вежбите .................... 273
1. Графичка анализа и синтеза на дигиталните системи
279
(Софтверски пакети за анализа и синтеза на електрични кола) .....
I) Electronics workbench (Упатство и насоки за користење) ......... 281
II) Logisim (Упатство и насоки за користење) ................................. 303
2. Комбинациски мрежи ............................................................. 317
3. Бистабилни кола (флип - флопови) ..................................... 375
4. Регистри со комбиниран влез и/или излез ......................... 395
5. Бројачи со произволен модул ............................................... 411
6. Полупроводнички мемории .................................................. 433
7. Аналогно – дигитална конверзија ....................................... 441
Прилог А ................................................................................... 459
Содржина

Дел II – Архитектура на микрокомпјутери ....…................ 459

Дел II.1. Архитектура на микрокомпјутери –


461
– Редовна настава ................................................
9. Основи на микрокомпјутерите …......................... 463
10. Архитектура на општ микропроцесор …........... 489
11. Поврзување на општ микропроцесор….............. 537
12. Програмирање на општ микропроцесор …........ 631

Дел II.2. Архитектура на микрокомпјутери –


739
– Изборна настава ................................................
8. Архитектура на општ микропроцесор …........... 759
9. Поврзување на општ микропроцесор …............. 761
9.1. Поврзување на мемориски компоненти …................ 761
9.2. Поврзување на Влезно/Излезни компоненти ........... 767
10. Програмирање на општ микропроцесор ........... 779
Прилог Б ............................................................................. 809
Табела со акроними
Литература
Содржина

СОДРЖИНА
Предговор ……………...……………...……………...…………………... i

Дел I – Организација на микрокомпјутери........ 1


Дел I.1. Организација на микрокомпјутери
3
– Редовна настава ………..……………………..
1. Булова алгебра и логички кола............................................. 5
1.1. Вовед .................................................................................................. 7
1.2. Аксиоми и логички операции ..................................................... 7
1.3. Теореми и закони ........................................................................... 9
1.4. Прекинувачки функции и нивно прикажување ..................... 11
1.4.1. Табеларно претставување .................................................................... 11
1.5. Стандардни логички функции ..................................................... 12
1.6. Прекинувачки мрежи .................................................................... 13
1.6.1. Основни логички кола .......................................................................... 14
1.6.2. Други базични логички кола ............................................................... 16
1.6.2.1. Баферско коло ........................................................................................... 17
1.6.2.2. Баферско коло со три состојби .............................................................. 17
1.6.2.3. Билатерална (трансмисиона) порта ..................................................... 20
1.6.3. Анализа на прекинувачки мрежи ....................................................... 22
1.6.4. Синтеза на прекинувaчки мрежи ....................................................... 25
1.6.5. Проектирање на прекинувачки мрежи.............................................. 29
1.7. Логички и физички дизајн............................................................................... 31
Прашања и задачи за повторување ................................................... 33
2. Комбинациски мрежи ............................................................. 37
I) Кола за аритметичко–логички функции ...................................... 39
2.1. Вовед .................................................................................................. 39
2.2. Кола за собирање и одземање ....................................................... 39
2.2.1. Бинарни собирачи .................................................................................. 39
2.2.2. Коло за комплементирање ................................................................... 42
2.2.3. Коло за одземање ...……………………................................................. 43
2.3. Дигитален компаратор .................................................................. 45
II) Прекинувачки матрици .................................................................. 46
2.4. Вовед .................................................................................................. 46
Содржина

2.5. Кодери и декодери .......................................................................... 47


2.5.1. Кодер ......................................................................................................... 47
2.5.2. Приоритетен кодер ................................................................................. 51
2.5.3. Декодер ..................................................................................................... 51
2.5.4. NBCD во 7-сегментен декодер ............................................................. 54
2.6. Мултиплексер и демултиплексер ................................................ 56
2.6.1. Мултиплексер ......................................................................................... 56
2.6.2. Демултиплексер ...................................................................................... 58
III) Програмабилни логички структури ........................................... 61
2.7. Вовед и поделба ....................................................................... 61
2.8. PROM меморија....................................................................... 63
Прашања и задачи за повторување .................................................. 68
3. Флип-флопови ………………………………………........... 73
3.1. Вовед и основни поими .................................................................. 75
3.2. SR флип-флоп .................................................................................. 78
3.2.1. SR флип-флоп од НИЛИ тип ...................................................... 78
3.2.2. SR флип-флоп од НИ тип ...................................................................... 80
3.2.3. SR флип-флоп тактиран со нивото на такт-сигналот .................... 81
3.2.4. SR флип-флоп тактиран со работ на такт-сигналот ....................... 85
3.2.5. SR флип-флоп со master-slave структура ........................................... 86
3.3. JK флип-флоп .................................................................................. 90
3.4. T флип -флоп ................................................................................... 91
3.5. D флип -флоп ................................................................................... 93
3.5.1. Коло за заклучување (леч) .................................................................... 95
3.5.2. Основна мемориска ќелија .................................................................. 96
3.5.3. Трансформација на логиката на D флип-флопот ........................... 98
3.6. Интегрирани флип-флопови ........................................................ 99
Прашања и задачи за повторување ................................................... 100
4. Регистри ..................................................................................... 105
4.1. Вовед и основни поими и концепти ……………………............ 107
4.2. Стационарен регистар ................................................................... 109
4.3. Поместувачки регистар ................................................................. 113
4.4. Кружен регистар …………………………………………………. 116
4.5. Двонасочен поместувачки регистар ........................................... 117
4.6. Поместувачки регистар со сериски влез и комбиниран излез 118
4.7. Поместувачки регистар со комбиниран влез и сериски излез 119
4.8. Универзален регистар .................................................................... 120
4.9. Дигитално интегрирано коло 74595 ............................................ 122
Прашања и задачи за повторување ................................................... 124
Содржина

5. Бројачи ...................................................................................... 127


5.1. Вовед и основни поими и концепти …………………………. 129
5.2. Основа и капацитет на бројачите ............................................... 130
5.3. Поделба на бројачите .................................................................... 131
5.4. Асинхрони бројачи ......................................................................... 132
5.4.1. Бинарен асинхрон бројач ...................................................................... 133
5.4.2. Бинарен асинхрон бројач наназад ...................................................... 136
5.4.3. Бинарен асинхрон двонасочен бројач ................................................ 138
5.4.4. Проектирање асинхрон бројач со произволнa основа .................... 140
5.4.4.1. Aсинхрон бројач со основа 5 .................................................................. 141
5.5. Синхрони бројачи ........................................................................... 142
5.5.1. Бинарен синхрон бројач ........................................................................ 143
5.5.2. Бинарен синхрон бројач наназад ........................................................ 145
5.5.3. Бинарен синхрон двонасочен бројач .................................................. 145
5.5.4. Проектирање синхрон бројач со произволна основа ...................... 146
5.5.4.1. Синтеза на синхрон бројач со основа 10 (декаден) ............................ 147
5.6. Кружни бројачи ............................................................................... 150
5.6.1. Кружен бројач со основа 5 .................................................................... 150
5.6.2. Кружен бројач со основа 10 .................................................................. 152
Прашања и задачи за повторување ................................................... 155
6. Аритметички кола .................................................................. 159
Вовед ........................................................................................................ 161
(I) Кола за множење (множачи) ......................................................... 161
6.1. Множење на цели броеви во бинарниот систем ...................... 162
6.2. Множач со низи од собирачи ...................................................... 165
6.2.1. Множач со низи од собирачи со пренесување на преносите ........ 165
6.2.2. Множач со низи од собирачи со запамтување на преносите ........ 169
6.3. Секвенцијално множење со поместување и собирање .......... 171
6.3.1. Основно коло за секвенцијално множење ....................................... 172
6.3.2. Оптимизиран множач со поместување и собирање ....................... 176
6.4. Множење со степени на бројот два ............................................ 179
6.5. Множење на броеви со предзнак ................................................ 180
(II) Кола за делeње (делачи) .......................................................... 181
6.6. Делење на цели броеви со остаток ............................................. 181
6.7. Делење во бинарен броен систем ................................................ 182
6.8. Основно коло за секвенцијално делење .................................... 183
6.9. Оптимизирано коло за делење .................................................... 187
6.10. Делење со степени на бројот два .............................................. 190
6.11. Делење на броеви со предзнак .................................................. 191
Прашања и задачи за повторување .................................................. 192
Содржина

7. Мемориски компоненти ......................................................... 195


7.1. Вовед ……………………………………………………………….. 197
7.2. Мемориска хиерархија .................................................................. 197
7.3. Интерна организација на меморијата и базични поими и
198
концепти...................................................................................................
7.4. Поделба на мемориските компоненти ........................................ 208
7.5. ROM мемориски компоненти ...................................................... 211
7.6. RAM ................................................................................................... 212
7.6.1. RAM мемориска ќелија ........................................................................ 212
7.6.2. Асинхроно читање и запишување ....................................................... 219
7.6.3. Мемориски циклус на синхроно читање ........................................... 221
7.6.4. Мемориски циклус на синхроно запишување ................................. 223
Прашања и задачи за повторување ................................................... 225
8. Дигитално-аналогна и аналогно-дигитална конверзија.. 229
8.1. Вовед ……………………………………………………………... 231
8.2. Дигитално-аналогна конверзија .................................................. 233
8.3. Базични равенки, поими и преносна карактеристика ............ 233
8.4. Д/А Конвертори ............................................................................... 235
8.4.1. Д/А конвертор со R/2nR тежинска отпорничка мрежа ................... 235
8.4.2. Д/А конвертор со R/2R скалеста отпорничка мрежа ...................... 239
8.5. Аналогно-дигитална конверзија .................................................... 241
8.6. Основни поими и концепти .......................................................... 242
8.7. Карактеристични параметри и преносна карактеристика .... 245
8.8. Поделба и видови на А/Д конвертори ......................................... 251
8.8.1. Паралелен АДК ...................................................................................... 251
8.8.2. А/Д конвертори базирани на Д/А конверзија ................................... 254
8.8.2.1. АДК со бројачка рампа ........................................................................... 255
8.8.2.2. АДК со последователно приближување .............................................. 257
8.8.3. АДК базирани на интеграторско коло ............................................... 260
8.8.3.1. А/Д конвертор со единечен наклон ....................................................... 260
8.8.3.2. А/Д конвертор со двоен наклон ............................................................. 262
8.8.4. Делта-сигма А/Д конвертори ............................................................... 264
Прашања и задачи за повторување ................................................... 267

Дел I.2 Организација на микрокомпјутери


271
– Изборна настава………….…………………….........
Вовед во изборната настава и насоки за вежбите ........................... 273
1. Изведување и документирање на вежбите ..........................……. 274
2. Вежби што стојат на располагање ................................................. 275
Содржина

3. Опис на формата на извештаите за вежбите ............................... 276


4. Оценување на вежбите .................................................................... 277

1. Графичка анализа и синтеза на дигиталните системи


279
(Софтверски пакети за анализа и синтеза на електрични кола) .....
(I) Electronics workbench (Упатство и насоки за користење) ............. 281
1.1 .Electronics workbench и негови особини ..................................... 282
1.1.1. Анализа на електрични кола ............................................................... 282
1.1.2. Основни менија ...................................................................................... 283
1.1.3. Моделирање и анализа на напонски делител ................................... 286
1.1.4. Моделирање и анализа на RC и CR коло .......................................... 290
1.1.5. Примена на EWB за креирање и анализа на логички шеми ......... 292
1.1.5.1. Насоки и препораки ................................................................................ 296
1.1.5.2. Дигитални инструменти ......................................................................... 297
1.1.5.3. Генератор на зборови .............................................................................. 297
1.1.5.4. Логички анализатор ................................................................................ 298
1.1.5.5. Логички конвертер .................................................................................. 300
(II) Logisim (Упатство и насоки за користење) ..................................... 303
1.2 . Logisim и негови особини ............................................................. 303
1.2.1. Вовед ......................................................................................................... 303
1.2.2. Корисничкиот интерфејс на Logisim................................................... 304
1.2.3. Системот за помош на Logisim ............................................................ 306
1.2.4. Совети и насоки за користење на Logisim ......................................... 306
1.2.5. Примена на Logisim ............................................................................... 307
1.2.5.1. Режим на уредување ................................................................................ 307
1.2.5.2. Креирање на првото коло ....................................................................... 308
1.2.5.3. Режим за симулирање ............................................................................. 309
1.2.5.4. Хиерархиски дизајн ................................................................................ 310
1.2.6. Коло за одредување на еднаквост ....................................................... 312
1.2.7. Симулација .............................................................................................. 314
1.2.8. Печатење на шематски приказ ............................................................ 315

2. Комбинациски мрежи ............................................................. 317


3. Бистабилни кола (флип - флопови) ..................................... 375
4. Регистри со комбиниран влез и/или излез ......................... 395
5. Бројачи со произволен модул ............................................... 411
6. Полупроводнички мемории .................................................. 433
7. Аналогно – дигитална конверзија ....................................... 441
Прилог А .................................................................................. 459
Содржина

Дел II – Архитектура на микрокомпјутери ... 459


Дел II.1. Архитектура на микрокомпјутери – 461
– Редовна настава ................................................
9. Основи на микрокомпјутерите ........................................ 463
9.1. Класификација на компјутерите ........................................... 465
9.2. Поделба според видот на обработените податоци ............. 465
9.2.1. Дигитални компјутери .................................................................. 466
9.2.1.1. Основни компоненти на дигитален компјутер ......................... 466
9.2.2. Аналогни компјутери .................................................................... 468
9.2.3. Хибридни компјутери ................................................................... 468
9.3. Поделба на компјутерите според намената ........................ 469
9.3.1. Компјутери за специјализирана намена ................................... 469
9.3.2. Компјутери за општа намена ...................................................... 470
9.4. Поделба на компјутерите според големина и капацитет 471
9.4.1. Микро компјутери ........................................................................ 471
9.4.2. Мини компјутери .......................................................................... 473
9.4.3. Големи компјутери ....................................................................... 473
9.4.4. Супер компјутери ......................................................................... 474
9.5. Нивоа на апстракција ............................................................ 475
9.6. Структура и функционирање на компјутерот .................. 476
9.7. Систем на магистрали ............................................................ 478
9.7.1. Податочна магистрала .................................................................. 479
9.7.2. Адресна магистрала ...................................................................... 481
9.7.3. Контролна магистрала ................................................................ 481
9.8. Општ микропроцесор (ОМП) ............................................... 482
9.9. Основен микрокомпјутер и микропроцесорски систем .. 483
Прашања и задачи за повторување ............................................ 487

10. Архитектура на општ микропроцесор ........................ 489


Вовед .................................................................................................. 491
10.1. Податочна и контролна единица ........................................ 491
Содржина

10.2. Функционална шема на општиот микропроцесор .......... 492

10.2.1. Баферски регистри ...................................................................... 492


10.2.2. Инструкциски регистер, декодер на инструкции со кодер
на машински циклуси и единица за контрола и временска 494
синхронизација ........................................................................................
10.2.3. Аритметичко–логичка единица, акумулатор и регистер со
496
знаменца ....................................................................................................
10.2.4. Регистри за општа и специјализирана намена ...................... 498
10.2.5. Единици за контрола на прекините и за сериски влез/излез 499
10.3. Пин - конфигурација на ОМП ............................................. 500
10.3.1. Пинови за напојување, ресетирање и временска
501
синхронизација .........................................................................................
10.3.2. Пинови на адресната и податочната магистрала и пинови
503
за сериска комуникација .......................................................................
10.3.3. Пинови за контрола на читањето/запишувањето ................. 504
10.3.4. Пинови за контрола на трансферот со прекини .................... 506
10.3.5. Пинови за контрола на директен мемориски пристап ......... 507
10.4. Извршување на инструкција ............................................... 508
10.5. Фази на извршување на инструкција ................................ 509
10.6. Објаснување на фазите на инструкцијата ........................ 510
10.7. Пример за извршување на инструкција ............................ 513
10.8. Временски циклуси за извршување на инструкција ...... 516
10.8.1. T-состојба ...................................................................................... 517
10.8.2. Машински циклус ........................................................................ 518
10.8.3. Инструкциски циклус ................................................................. 519
10.9. Временски дијаграми ............................................................ 520
10.9.1. Циклус на пре/земање на кодот на операција ........................ 521
10.9.2. Циклус на читање на меморијата ............................................. 522
10.9.3. Концептoт на состојба на чекање .............................................. 523
10.9.4. Циклус на запишување во меморијата .................................... 524
10.9.5. Циклус на читање на В/И компонента .................................. 525
10.9.6. Циклус на запишување во В/И компонента .......................... 526
10.9.7. Циклус на потврдување на прекин ......................................... 527
10.9.8. Циклус на мирување .................................................................. 528
Прашања и задачи за повторување ............................................ 531
Содржина

11. Поврзување на општ микропроцесор ......................... 537


Вовед во поврзување на мемориски и В/И компоненти ........ 539
11.1. Означување на мемориските адреси ................................ 540
11.2. Мемориска мапа и мемориска адресна табела .............. 541
11.3. Основни концепти за поврзувањето на мемориските
544
компоненти ....................................................................................
11.4. Апсолутно декодирање на адресите ................................. 545
11.5. Линеарно декодирање на адресите ................................... 554
11.6. Споредба помеѓу целосно и парцијално адресно
562
декодирање .....................................................................................
11.7. Основни концепти за поврзувањето на В/И
563
компоненти .....................................................................................
11.8. Влезно/Излезни (В/И) порти ................................................ 564
11.8.1. Влезна порта ................................................................................. 565
11.8.2. Излезна порта .............................................................................. 568
11.9. Издвоено мапирање на В/И порти ..................................... 571
11.10. Мемориско мапирање на В/И порти ............................... 573
11.11. Примери на издвоено мапирано стандардно
576
поврзување на В/И компоненти ..................................................
11.12. Примери на мемориски мапирани В/И компоненти ... 581
11.13. Споредба помеѓу издвоеното и мемориското
588
мапирање на В/И порти ................................................................
11.14. Влезно/Излезен систем ....................................................... 589
11.14.1. Влезно/Излезни програмабилни порти ................................. 590
11.14.2. Барања на В/И системот .......................................................... 592
11.14.3. В/И интерфејсен модул ............................................................ 593
11.14.4. Техники за влезно/излезен пренос на податоците .............. 595
11.14.5. Програмиран трансфер на податоци .................................... 597
11.14.6. Програмиран В/И пренос со повикување ............................. 600
11.15. В/И трансфер управуван со прекини .............................. 601
11.15.1. Основен принцип за опслужување на прекин .................... 602
11.15.2. Класификација на прекините ................................................ 603
11.15.2.1. Софтверски и хардверски прекини ........................................ 603
11.15.2.2. Немаскирливи и маскирливи прекини ................................. 604
11.15.2.3. Векторски и невекторски прекини ......................................... 605
Содржина

11.15.3. Софтверски прекини кај ОМП ............................................... 605


11.15.4. Хардверски прекини кај ОМП ............................................... 607
11.15.5. Систем управуван со прекини на ОМП ............................... 608
11.15.6. Споредба помеѓу програмиран и прекиден В/И трансфер 611
11.16. Директен мемориски пристап (ДМП) ............................ 612
11.16.1. Хардверски контролиран податочен трансфер .............. 612
11.16.1.1. Пасивен циклус на поврзување со оперативната меморија 614
11.16.1.2. Активен циклус за преземање на магистралите ................. 614
11.16.1.3. Видови на трансфер на податоци со ДМП ............................ 615
11.17. Современи концепти за подобрување на
617
перформансите на микро/компјутерите ...................................
11.17.1. Кеш меморија ............................................................................ 617
11.17.2. Виртуелна меморија ................................................................ 619
11.17.3. Паралелно процесирање ......................................................... 620
Прашања и задачи за повторување ........................................... 623

12. Програмирање на општ микропроцесор .................... 631

Вовед ................................................................................................. 633


12.1. Компјутерски јазици ............................................................ 633
12.1.1. Јазици од ниско ниво .................................................................. 634
12.1.1.1. Машински јазик ................................................................. 634
12.1.1.2. Асемблерски јазик ............................................................. 634
12.1.2. Јазици од високо ниво ................................................................ 635
12.2. Системски програми за развивање на софтвер .............. 635
12.3. Инструкциско множество на општиот микропроцесор 639
12.3.1. Класификација на инструкциите ............................................. 640
12.3.2. Асемблерска инструкција и нејзин опис ................................. 641
12.3.3. Програмерски модел на омп ...................................................... 643
12.4. Формати на инструкција ................................................... 644
12.5. Адресни начини ................................................................... 646
12.5.1. Имплицитно адресирање ........................................................ 647
12.5.2. Регистерско адресирање .......................................................... 649
12.5.3. Непосредно адресирање ........................................................... 651
12.5.4. Директно адресирање ............................................................... 653
12.5.5. Индиректно регистерско адресирање ................................... 655
Содржина

12.6. Алгоритми ............................................................................. 658


12.7. Блок-дијаграми .................................................................... 658
12.8. Структурни блок-дијаграми ............................................. 660
12.9. Основи на програмирање во асемблерски јазик ........... 664
12.10. Детален опис на асемблерските инструкции на омп .. 666
12.10.1. Инструкции за пренесување на податоци ........................... 667
12.10.2. Инструкции за аритметички операции ............................... 670
12.10.3. Инструкции за логички операции ........................................ 672
12.10.4. Инструкции за гранење и работа со потпрограми ............ 675
12.10.5. Разновидни инструкции за машинска контрола и
677
управување со прекини .........................................................................
12.11. Карактеристики на програмите во асемблерски јазик 681
12.12. Формулар за програми во асемблерски јазик .............. 681
12.13. Примери на програми во асемблерски јазик ................ 684
12.13.1. Програми со линиска структура ............................................ 685
12.13.2. Програми со разгранета структура ....................................... 692
12.13.3. Програми со циклична структура ......................................... 696
12.13.4. Програми со сложена структура ............................................ 700
12.14. Софтверски тајмери ........................................................... 704
12.14.1. Тајмер со примена на бројачки циклус со 8–битен бројач 705
12.14.2. Тајмер со користење на вгнездени циклуси ......................... 707
12.15. Концепт на стек меморијата ............................................. 708
12.16. Принцип на работа на стек меморијата .......................... 710
12.16.1. Инструкциите PUSH и POP и нивна примена ..................... 712
12.16.2. Инструкциите CALL/RET и нивна примена ........................ 715
12.17. Потпрограми и нивна примена ....................................... 717
12.18. Макро инструкции ............................................................. 723
12.18.1. Примена на макро инструкциите .......................................... 724
12.19. Програмирање на сериски влез/излез на податоци ...... 726
12.19.1. Испраќање на податоци во сериски облик преку пинот
726
SOD .............................................................................................................
12.19.2. Прифаќање на податоци во сериски облик преку пинот
730
SID ...............................................................................................................
Прашања и задачи за повторување ............................................. 733
Содржина

Дел II.2. Архитектура на микрокомпјутери – 737


– Изборна настава .........................................................
8. Архитектура на општ микропроцесор ......................... 739
9. Поврзување на општ микропроцесор .......................... 759
9.1. Поврзување на мемориски компоненти ............................ 761
9.2. Поврзување на мемориски компоненти ............................ 767
10. Програмирање на општ микропроцесор .................. 779

Прилог Б ............................................................................. 809


Табела со акроними
Литература
ПРЕДГОВОР
Учебникот “Дигитални системи” е пишуван во согласност со наставните
програми за двата истоимени стручни предмети од редовната и изборната
настава. Oбработените тематски целини квантитативно и квалитативно комплетно
ги опфаќаат предвидените наставни содржини, целосно покривајќи ги и
соответствувајќи на програмите по двата предмети.
Именуваните предмети се изучуваат во трета година во паралелките од
електротехничка струка за образовниот профил електротехничар за компјутерска
техника и автоматика, со следниот фонд на часови:
 Дигитални системи (редовна настава) – фонд од 5 часа/неделно, односно
180 часа/год., и
 Дигитални системи (изборна настава) – фонд од 2 часа/неделно, односно
72 часа/год.
Имајќи предвид дека вкупниот годишен фонд на часови кои овој ракопис гo
покрива е 252 часа, односно 7 часа/неделно, презентираниот материјал е доста
обемен заради што учебникот е поделен на два дела:
 прв дел – Организација на микрокомпјутери (редовна и изборна настава) и
 втор дел – Архитектура на микрокомпјутери (редовна и изборна настава).
Првиот дел од учебникот – ОРГАНИЗАЦИЈА НА МИКРО/КОМПЈУТЕРИ, ги
опфаќа следните тематски целини:
РЕДОВНА НАСТАВА
1. БУЛОВА АЛГЕБРА и логички кола
2. КОМБИНАЦИСКИ МРЕЖИ
3. ФЛИП-ФЛОПОВИ
4. РЕГИСТРИ
5. БРОЈАЧИ
6. АРИТМЕТИЧКИ КОЛА
7. МЕМОРИСКИ КОМПОНЕНТИ
8. ДИГИТАЛНО-АНАЛОГНА и АНАЛОГНО-ДИГИТАЛНА КОНВЕРЗИЈА
ИЗБОРНА НАСТАВА
ВОВЕД И НАСОКИ ЗА РЕАЛИЗАЦИЈА НА ВЕЖБИТЕ
1. ГРАФИЧКА АНАЛИЗА И СИНТЕЗА НА ДИГИТАЛНИТЕ СИСТЕМИ
(СОФТВЕРСКИ ПАКЕТИ ЗА АНАЛИЗА И СИНТЕЗА НА ЕЛЕКТРИЧНИ КОЛА)
2. КОМБИНАЦИСКИ МРЕЖИ
3. ФЛИП-ФЛОПОВИ (БИСТАБИЛНИ КОЛА)
4. РЕГИСТРИ СО КОМБИНИРАН ВЛЕЗ И ИЗЛЕЗ
5. БРОЈАЧИ СО ПРОИЗВОЛЕН МОДУЛ
6. ПОЛУПРОВОДНИЧКИ МЕМОРИИ
7. АНАЛОГНО-ДИГИТАЛНА И ДИГИТАЛНО-АНАЛОГНА КОНВЕРЗИЈА
ii Предговор

Вториот дел од учебникот – АРХИТЕКТУРА НА МИКРО/КОМПЈУТЕРИ, ги опфаќа


следните тематски целини:
РЕДОВНА НАСТАВА
9. ОСНОВИ НА МИКРОКОМПЈУТЕРИ
10. АРХИТЕКТУРА НА ОПШТ МИКРОПРОЦЕСОР
11. ПОВРЗУВАЊЕ НА ОПШТ МИКРОПРОЦЕСОР
12. ПРОГРАМИРАЊЕ НА ОПШТ МИКРОПРОЦЕСОР
ИЗБОРНА НАСТАВА
8. АРХИТЕКТУРА НА ОПШТ МИКРОПРОЦЕСОР
9. ПОВРЗУВАЊЕ НА ОПШТ МИКРОПРОЦЕСОР
10. ПРОГРАМИРАЊЕ НА ОПШТ МИКРОПРОЦЕСОР

Презентираниот материјал е фундаментален, бидејќи ги анализира дигитал-


ните елементи, компоненти и основни склопови кои се неизоставни функционални
делови на електронските инструменти, уреди и апарати, како и на микро-
процесорски базираните системи и на микро/компјутерите.
Напишаниот материјал е подготвен врз база на стручна литература, која е
актуелна последниве години. Како автори, во текстот настојувавме објаснувањата
да бидат јасни, разбирливи, сèопфатни и исцрпни, соодветни на возраста на
учениците, но воедно насочени кон исполнување на целите од наставните програ-
ми за двата предмети. Во таа насока вложивме значајни напори и внимававме да
користиме соодветен стил на пишување, без да се намали квантитетот и
квалитетот на презентираните наставни содржини во ширина и во длабочина,
како од стручен, така и од педагошки и од методолошки аспект.
При објаснувањето на начинот на функционирање на колата користевме
конзистентни системи за означување, соодветни таблици на вистинитост и
функционални таблици, логички равенки со соодветна нумерација, принципиелни
блок-шеми и блок-дијаграми, како и логички и електрични шеми, при тоа
применувајќи стандардни симболи за логичките кола и електронските елементи,
како и временски дијаграми на напоните во карактеристичните точки на шемите.
Имајќи во вид дека станува збор за учебник за стручни предмети наменет за
ученици од трета година, во образложувањето на материјалот акцентот го
ставивме на поопширно и подетално објаснување на принципот на работа и
анализата на колата, додека математичкиот апарат се трудевме да биде сведен на
минимум.
Во текстот на учебникот, и кај двата негови делови, посебно за секоја
тематска целина од редовната настава, се избрани и решени повеќе каракте-
ристични примери со цел полесно да се разбере суштината на методските
единици што се обработуваат. Дополнително, на крајот на секоја тематска целина
се дадени голем број на прашања и задачи за повторување со различна тежина.
Со нивно одговарање и решавање ученикот ќе може да си го проверува и
утврдува стекнатото знаење и воедно значително да го зголеми нивото на
неговиот квалитет, заради што сметаме дека прашањата и задачите се доста
важен дел од учебникот.
Предговор iii

Имајќи во вид дека обработениот материјал за редовните часови е навистина


голем по обем и длабочина наставниците имаат можност да вршат селекција и да
стават поголем акцент на одредени наставни содржини, зависно од потребите за
реализација на наставната програма по овие предмети, како и од капацитетот на
учениците во класовите каде нив ги предаваат. Покрај тоа, воведувањето на
прашањата и задачите им остава простор на наставниците за примена на
различни наставни методи, со кои учениците ќе можат дополнително да ја
развиваат својата креативност.
Што се однесува до часовите за изборната настава во првиот дел од
учебникот – ОРГАНИЗАЦИЈА НА МИКРО/КОМПЈУТЕРИ, тие се предвидени за
изведување на симулациски вежби. Во врска со тоа, заради нивно полесно
реализирање, најнапред во текстот кој се однесува на изборната настава, во
неколку кратки методски единици воведовме упатство и насоки за нивна
реализација. Покрај ова – дополнително, првата тематска целина во избораната
настава содржи упатства за користење и примена на програмите за симулација
Electronic Work Bench (EWB 5.12) и Logisim. На овој начин, соодветно на насоките
во програмата, наставникот по желба покрај EWB 5.12 (кој е задолжителен), ќе
може да го применува и Logisim како втор симулациски софтвер.
Инаку, секоја вежба посебно е изработена и проверена во EWB 5.12, кој е
препорачан во наставната програма. Вежбите се експлицитно одделени и
подредени во посебни тематски целини во рамки на изборната настава, со што е
остварена целта за нивна јасна дистинкција во однос на материјалот кој се
однесува на редовната настава. Понудените вежби се со различно тежинско ниво,
при што нивниот вкупен број е прилично голем – повеќе од 230. За секоја вежба
поединечно, во посебното поле за коментар во самата вежба, во нејзиниот
изворен фајл, е дадено јасно и кратко објаснување што треба да биде изработено
за нејзина реализација.
Нашата замисла е да се дадат квантитативно поголем број на квалитетни
вежби со различни тежински нивоа, од кои наставниците ќе може да селектираат
одредени вежби и да изработат соодветен прирачник, како посебно наставно
помагало. (Што се однесува до прирачникот како посебен едукативен материјал,
тој не е предвиден во рамките на програмата за овој учебник, а покрај тоа со него
значително би се зголемил и бројот на страници.)
Ваквата концепција му овозможува на наставникот од множеството вежби
кои му стојат на располагање на секој ученик да му пристапи индивидуално и да
му избере и зададе вежба која му одговара и е соодветна на неговите пред-
знаења. Така, ќе се зголеми мотивацијата на талентираните ученици и ќе дојде до
израз нивната креативност, а без притоа да им се попречува совладувањето на
основните концепти на учениците со стандардни и пониски нивоа на знаења.
Покрај тоа, наставникот ќе има можност да го одреди формалниот изглед на
извештајот за секоја извршена вежба онака како што тој мисли дека е најдобро за
учениците.
iv Предговор

Во однос на вториот дел од учебникот – АРХИТЕКТУРА НА МИКРО/КОМПЈУТЕРИ


(редовна и изборна настава), би истакнале и потенцирале дека како општ
микропроцесор воведовме оригинална 8-битна дигитална компонента, која како
од хардверски, така и од софтверски аспект, претставува комбинација на
заедничките карактеристики, но едновремено и нивно упростување, на три 8-
битни, најчесто користени микропроцесори, и тоа двата Intel-ови 8080 и 8085 и
делумно на Zilog-овиот Z-80. Овој новововеден општ микропроцесор е разработен
од сите три аспекти наведени во програмата:
 од внатрешен аспект – негова интерна архитектура,
 од аспект на поврзување со полупроводнички мемориски интегрирани
кола, како и со различни влезно/излезни порти, но и
 од софтверски аспект за негово програмирање во асемблерски јазик.
Сличноста на трите процесори во однос на нивните заеднички и базични
хардверски и софтверски особини е доста голема. Со воведувањето на еден ваков
општ микро-процесор „осветлен“ од страна на сите три аспекти, значително се
овозможува поедноставување на изучувањето на материјалот предвиден во
програмата. Имено, на ученикот од една страна му се олеснува совладувањето и
разбирањето на базичните концепти во овој домен, а од друга тој ги стекнува
неопходно потребните знаења за да може полесно да ја разбере архитектонската
структура, функционирањето и програмирањето на реалните микропроцесори,
кои ќе ги изучува во понатамошната едукација – четврта година средно и прва
година универзитетско образование.
Што се однесува до текстот на целиот учебник да потенцираме и тоа дека
многу внимававме на стилот на пишување и на разработка на содржините, како и
на изборот и застапеноста на илустрациите и на начинот на поставување на
прашањата и задачите. Нашата главна цел беше од една страна, ракописот
разбирливо да ја објаснува таргетираната проблематика, која е прилично обемна,
а воедно, од друга страна, да соодветствува на возраста на учениците за кои е
наменет. Токму заради тоа текстoт на учебникот изобилува со голем број на
решени примери, графички прикази како што се најразлични слики, фотографии,
логички шеми, електрични шеми, блок-дијаграми, блок-шеми и табели при што
секој од овие визуелни прилози е поединечно објаснет.
Искрено се надеваме дека нашиот пристап значително ќе им помогне на
колегите наставници кои ги предаваат овие предмети квалитетно да го
реализираат наставниот процес во функција на соодветен трансфер на знаење и
исполнување на секојдневните работни задачи.
На крај им искажуваме благодарност на Советникот за електротехничка
струка м-р Зоран Јовчевски, како и на рецензентите, и тоа посебно на проф. д-р
Митко Костов, кои со своите конструктивни и добронамерни сугестии и забелешки
придонесоа кон значително подобрување на квалитетот на финалната верзија на
овој учебник.

Битола, јули 2019 год.


Од авторите
I дел
Организација на
микрокомпјутери
РЕДОВНА НАСТАВА
Во рамките на редовната настава учениците ќе се запознаат со
теоретските основи од организацијата на микро/компјутерите и со тоа ќе ги
стекнат потребните базични знаења. Поконкретно, овде ќе се изучуваат
следните содржини: булова алгебра и логички кола, комбинациски мрежи,
флип-флопови, регистри, бројачи, аритметички кола, мемориски компоненти и
дигитално-аналогна и аналогно-дигитална конверзија.
ИЗБОРНА НАСТАВА
Во рамките на изборната настава учениците ќе ги прошират и
продлабочат своите знаења кои се однесуваат на организацијата на микро/
компјутерите. Во овој дел учениците ќе имаат можност практично да
изработуваат симулациски вежби од домен на организацијата на компјутерите
применувајќи соодветен софтверски пакет, поконкретно EWB 5.12. ќе се
изучуваат следните содржини: вовед во изборна настава и насоки за вежби,
графичка и синтеза на дигиталните системи, комбинациски мрежи, бистабил-
ни кола (флип - флопови), регистри со комбиниран влез и/или излез, бројачи
со произволен модул, полупроводнички мемории и аналогно – дигитална
конверзија.
2
3

I.1
Организација на
микрокомпјутери
Редовна настава
Наставни теми:
 1) Булова алгебра и логички кола
 2) Комбинациски мрежи
 3) Флип-флопови

 4) Регистри
 5) Бројачи
 6) Аритметички кола
 7) Мемориски компоненти
 8) Дигитално-аналогна и аналогно-дигитална
конверзија
4
1.
БУЛОВА АЛГЕБРА И
ЛОГИЧКИ КОЛА
По изучувањето на оваа тематска целина
 ќе се потсетите на базичните закони и теореми на Буловата алгебра;
 ќе се потсетите и на претставувањето на прекинувачките функции во
алгебарски, табличен и графички облик;
 ќе ги познавате симболите на стандардните логички кола, ќе ги
разликувате според функцијата што ја извршуваат и ќе ги
применувате во логички дијаграми;
 со посебна важност ќе се фокусирате на баферските и драјверските
кола;
 ќе решавате поедноставни задачи од анализа и синтеза на логички
мрежи;
 ќе умеете да претставувате поедноставни прекинувачки мрежи во
две нивоа;
 Ќе се запознаете со основите за проектирање на логички мрежи и со
преминот од логички на физички дизајн;
БУЛОВА АЛГЕБРА И ЛОГИЧКИ КОЛА 6
БУЛОВА АЛГЕБРА И ЛОГИЧКИ КОЛА 7

1.1. ВОВЕД
Бинарното претставување на броевите тешко може да се замисли како дел
од човечкото изразување затоа што ние сме научени да размислуваме декадно.
Меѓутоа, елементарните составни делови на дигиталните уреди се електронски
кола кои се карактери-зираат само со две состојби, така што за нив „природен
јазик” е бинарното означување (нотација). Токму заради ова во дигиталната
техника се применува бинарниот броен систем и соодветна алгебра која оперира
со бинарни броеви.
Буловата алгебра своите корени ги влече од средината на XIX-от век кога
се појавила како нова математичка дисциплина. Нејзин основоположник е
англискиот математичар Џорџ Бул според кој и го добила името. Бидејќи оваа
алгебра се базира на законите на формалното-логичко мислење и заклучување,
за неа се користи и терминот логичка алгебра. Овие закони се темелат на
тврдења кои можат да бидат само вистинити, или невистинити, т.е. примаат само
две вредности, а нив прв ги запишал големиот грчки филозоф Аристотел. Џорџ
Бул предложил законите на формалното-логичко заклучување да се опишат со
алгебарски релации и операции. Токму со ова се овозможи процесот на
формалното-логичко расудување и заклучување едноставно квантитативно да се
претстави и технички да се реализира и автоматизира со примена на компоненти
кои имаат само две состојби. Бидејќи вака се однесуваат прекинувачките
елементи и логичките кола, оваа алгебра се нарекува и прекинувачка алгебра.
1.2. АКСИОМИ И ЛОГИЧКИ ОПЕРАЦИИ
Буловата алгебра е дедуктивен математички систем што се дефинира на
бинарното множество B кое содржи само два меѓусебно различни елементи. За
нив во литературата можат да се сретнат различни симболи, но ние ќе ги
употребуваме симболите „1” (логичка единица) и „0” (логичка нула), така што
B={1,0}. Според ова сите константи и променливи во Буловата алгебра можат да
имаат само една од вредностите 1 или 0, па заради тоа тие и се викаат логички
или прекинувачки променливи. Вообичаено е независно променливите да се
означуваат со големите букви од англиската абецеда и тоа: A,B,C,D,E,… или X0, X1,
X2, X3, …, додека зависно променливите, т.е. функциите кои сега се викаат
логички, прекинувачки, или комутациони функции, да се означуваат со букви Y,
Y0, Y1, Y2, …, или F, F1, F2.
Во множеството B се дефинираат две интерни бинарни операции „+” и „·”,
кои ги задоволуваат следните три аксиоми, познати како аксиоми на Хантингтон:
А.1. Бинарните интерни операции се комутативни и дистрибутивни една
кон друга, т.е. за било која променлива A,B,C од {B} важи:
A B  B A, A B  B A
AB  C    AB    AC  , A  BC    A  B   A  C 
А.2. Бинарните интерни операции поседуваат различни неутрални
елементи 1 и 0, така што за било која логичка променлива А постои елемент 0 за
кој важи A+0=A, и постои елемент 1 за кој важи A·1=A.
А.3. За било која логичка променлива А постои единствена инверзна
променлива A таква што важи A + A =1, A  A  0 .
БУЛОВА АЛГЕБРА И ЛОГИЧКИ КОЛА 8

Една важна особина што произлегува директно од наведените аксиоми е


принципот на дуалност (симетричност). Тоа значи дека сите аксиоми се дадени во
парови, и тоа посебно за операцијата „+”, и посебно за операцијата „.”. Според
овој принцип може да се изврши меѓусебна замена на операцијата „+” со
операцијата “.” и на елементите 1 со 0, па така тргнувајќи од аксиомите за
операцијата „+” се добиваат дуални аксиоми за операцијата „.”, и обратно.
Во Буловата алгебра постојат три основни (елементарни) операции: две
операции кои оперираат со два или повеќе операнди: логичко собирање (+) и
логичко множење (·) и една унарна операција која работи со еден операнд:
логичка негација( ).
Логичкото собирање се вика уште операција ИЛИ (анг. OR) и логичка
дисјункција, а нејзиниот оператор покрај ознаката „+”, може да биде и „  “.
Логичкото множење се вика и операција И (анг. AND), или логичка конјункција, а
нејзиниот оператор покрај ознаката „.”, може да биде и „  “, или „&”. Вообичаено
е овој оператор да се испушта при пишувањето на логичките изрази. Логичката
негација се вика уште операција НЕ (анг. NOT), или КОМПЛЕМЕНТИРАЊЕ, а
покрај ознаката „ “, се означува и со „“ или „~”.
Основните логички операции се дефинираат на начинот прикажан во
табелите таб. 1-1, таб. 1-2 и таб. 1-3.

ИЛИ (+) И (·) НЕ ( )


0+0=0 0·0=0 0 1
0+1=1 0·1=0 1 0
1+0=1 1·0=0
1+1=1 1·1=1
Таб. 1-1. ИЛИ. Таб. 1-2. И. Таб. 1-3. НЕ.
Основни логички операции
Од табелите се гледа дека за операцијата ИЛИ (логичко собирање)
неутрален елемент е 0, додека за операцијата И (логичко множење) е 1, така што
може да се заклучи следново:
1. Ако логички се соберат два операнди, резултатот ќе биде 0 само ако
едновремено и двата операнди се на вредност 0, а инаку се добива 1, т.е.
барем една 1 дава 1;
2. Ако логички се помножат два операнди, резултатот ќе биде 1, само ако и
двата операнди се на вредност 1, инаку се добива 0; барем една 0 дава 0;
3. Ако вредноста на било кој операнд не е 0,тогаш таа е 1, и обратно, ако
вредноста на операндот не е 1, тогаш таа е 0.
Од наведените операции највисок ранг на извршување има комплемен-
тирањето (операцијата НЕ, логичката негација), потоа е логичкото множење
(операцијата И), и на крај е логичкото собирање (операцијата ИЛИ). Редоследот
на извршување на операциите може да се измени со употреба на загради.
Со комбинирање на основните логички операции можат да се изведат
други, нешто посложени операции: НИ, (анг. NAND) која се добива со
комплементирање на множењето (И, а потоа НЕ) и НИЛИ, (анг. NOR) која се
БУЛОВА АЛГЕБРА И ЛОГИЧКИ КОЛА 9

добива со комплементирање на собирањето (ИЛИ, а потоа НЕ). Потоа,


операциите: исклучиво ИЛИ, т.е. ексклузивно ИЛИ, ИСКИЛИ т.е.ЕКСИЛИ
(анг. XOR) што се означува со “  “, и ИСКНИЛИ т.е. ЕКСНИЛИ (анг. XNOR) која
се добива со комплемент од ЕКСИЛИ (ЕКСИЛИ, а потоа НЕ).
Сите претходно дефинирани операции се претставени со табелите таб.
1-4, таб. 1-5, таб. 1-6 и таб.1-7.

НИЛИ ( ) НИ () ЕКСИЛИ () ЕКСНИЛИ ()

0 0 1 00 1 00  0 00 1

0 1  0 0 1  1 0 1  1 0 1  0

1 0  0 1 0  1 1 0  1 1 0  0

11  0 1 1  0 11  0 11  1


Таб. 1-4. НИЛИ Таб. 1-5. НИ Таб. 1-6. ЕКСИЛИ Таб. 1-7. ЕКСНИЛИ
Изведени логички операции
Од дефинициите може да се заклучи дека:
1. Резултатот од НИЛИ ќе биде 1 само ако и двата операнда се 0, инаку се
добива 0,
2. Резултатот од НИ ќе биде 0 само ако и двата операнда се 1, инаку се
добива 1;
3. Резултатот од ЕКСИЛИ е 0 секогаш кога операндите се со иста вредност,
т.е. две 0-и даваат резултат 0, но и две 1-и даваат 0. Ако операндите имаат
спротивни вредности, тогаш се добива 1;
4. Резултатот од ЕКСНИЛИ ќе биде обратен во однос на ЕКСИЛИ. Оваа
операција всушност ги споредува, ги компарира вредностите на
операндите. Имено, ако двата операнда се исти, тогаш резултатот е 1, но
ако се различни тогаш се добива 0.

1.3. ТЕОРЕМИ И ЗАКОНИ


Од аксиомите на Хантингтон може да се изведат различни теореми во
Буловата алгебра кои имаат своја соодветна примена. Ние ќе се задржиме само
на оние теореми кои ги вклучуваат операциите И, ИЛИ и НЕ. Некои од овие
теореми ги изразуваат законите на Буловата алгебра, а сите заедно се користат
како правила при решавањето и поедноставувањето на логичките равенки и
логичките изрази. Теоремите се дадени во симетрични парови со примена на
принципот на дуалност. Сите променливи што се користат во нив се логички
променливи, што значи дека нивните вредности можат да бидат само 0 или 1.
Од овде произлегува дека ако било која променлива А има вредност 1, т.е.
ако е исполнето А = 1, тогаш A = 0, и обратно: ако А = 0, тогаш A = 1.

Најнапред ќе ги наведеме оние теореми кои вклучуваат само една


променлива.
БУЛОВА АЛГЕБРА И ЛОГИЧКИ КОЛА 10

Тоа се:

A= A (т.1-1)
A0  A A 1  A (т.1-2)
A 1  1 A0  0 (т.1-3)
A A  A A A  A (т.1-4)
AA A AA  A (т.1-5)
A A 1 A A  0 (т.1-6)
Теоремите со кои се искажуваат асоцијативниот, комутативниот и
дистрибутивниот закон се дадени последователно во продолжение:
A  B  C    A  B   C A  B  C    A  B   C (т.1-7)
A B  B A A B  B  A (т.1-8)
A B  C   A B  A C A  B  C  A  B A  C  (т.1-9)
Во Буловата алгебра исклучително значајно место заземаат и Де Морган-
овите закони или теореми. Тие можат да се напишат во следниов облик:
A  B  C  ...  A  B  C ..., A  B  C...  A  B  C  ... (т. 1-10)
Од наведените изрази може да се констатира дека:
1. комплемент од логички збир на повеќе променливи може да се замени со
логичкиот производ од комплементите на секоја поединечна променлива и
2. комплемент од логички производ на повеќе променливи може да се
замени со логичкиот збир од комплементите на секоја поединечна променлива.
Покрај претходно наведените теореми, важни се и следниве:
A  AB  A , A A  B   A (т.1-11)

A  AB  A  B , AA  B   AB (т.1-12)
AB  AB  A ,  A  B A  B   A (т.1-13)
AB  A C   A  C A B  ,  A  B A  C   AC  A B (т.1-14)
AB  A C  BC  AB  A C ,  A  B A  C B  C    A  B A  C  (т.1-15)
AB  BC  B C  AB  C ,  A  B B  C B  C    A  B C (т.1-16)
Теоремите (т. 1-11), (т. 1-12) и (т. 1-13) се познати и како теореми за
апсорпција.
На крај ќе ја наведеме и теоремата за развивање (експанзија):
 
Y  A, B, C ,...   A  Y 1, B, C ,...  A  Y 0, B, C ,... (т. 1-17)
При упростувањето и решавањето на посложените логички изрази се
употребуваат сите до сега наведени аксиоми, закони и теореми. Да разгледаме
неколку примери:
БУЛОВА АЛГЕБРА И ЛОГИЧКИ КОЛА 11

Пр. 1.
 
ABC  ABC  AB C  ABC  BC  B C   A B C  C   B C  AB  B C  
 AB  C   AB  AC

 A  B A  B A  C   AA  AB _ AB  BB A  C   A  AB  AB A  C  


Пр. 2.
 A1  B   AB A  C    A  AB A  C   A1  B A  C   AC
Y  A, B, C    A  B AB  C   AB  AC   A(1  B )1B  C   1B  1C  
Пр. 3.
 A0  B 0B  C   0 B  0C   AB  C  B  C   AB0  0  0  AB  C 

1.4. ПРЕКИНУВАЧКИ ФУНКЦИИ И НИВНО ПРИКАЖУВАЊЕ


Секоја логичка променлива чија вредност зависи од вредноста на други
логички променливи претставува логичка (прекинувачка) функција.
Прекинувачките функции се прикажуваат на три начини: табеларно со користење
на т.н. комбинациони таблици (таблици на вистинитост), потоа аналитички
(алгебарски) со помош на логички равенки, и графички со примена на логички
симболи (стандаризирани блок-шеми). Во продолжение ќе биде обработено
табеларното и аналитичкото претставување на функциите. Исто така и на
графичката презентација ќе и биде посветено посебно внимание и простор во
понатамошниот текст, бидејќи таа има исклучителна важност затоа што води кон
шематско прикажување на прекинувачките функции.

1.4.1. ТАБЕЛАРНО ПРЕТСТАВУВАЊЕ


При табеларната (табличната) презентација најпрво се црта
комбинационата таблица или таблица на вистинитост во која се запишуваат
имињата на сите независно променливи во левиот дел, и името на функцијата,
или функциите ако ги има повеќе, во десниот дел од табелата. Така се добиваат
онолку колони колку што има вкупно независни и зависни променливи. Потоа по
редици се запишуваат сите возможни комбинации на вредности што можат да ги
примат независните променливи, и на крај за секоја комбинација се внесува
вредноста на функцијата во соодветната колона.
Ако се претпостави дека е дадена функција што зависи од n променливи,
тогаш во комбинационата таблица ќе има n колони за независно променливите и
n
една колона за функцијата. Бидејќи постојат вкупно N=2 возможни влезни
n
комбинации, јасно е дека во таблицата на вистинитост ќе се појават вкупно N=2
редици. Секоја редица може да се означи во декаден облик со соодветен индекс
“i”, и тоа така што на првата редица и се придружува индексот 0, а на последната
n
редица индексот (N-1), т.е. (2 -1). Комбинационите таблици на било која функција
од 2, 3 и 4 променливи, се означени како таб. 1-8, таб. 1-9 и таб. 1-10, последо-
вателно.
БУЛОВА АЛГЕБРА И ЛОГИЧКИ КОЛА 12

i ABCD Y

0 0 0 00

1 0 0 01

2 0 0 10

i ABC Y 3 0 0 11

0 000 4 0 1 00

I AB Y 1 001 5 0 1 01

0 00 2 010 6 0 1 10

1 01 3 011 7 0 1 11

2 10 4 100 8 1 0 00

3 11 5 101 9 1 0 01

6 110 10 1 0 10

7 111 11 1 0 11

12 1 1 00

13 1 1 01

14 1 1 10

15 1 1 11

Таб. 1-10. Функција


Таб. 1-8. Функција од Таб. 1-9. Функција
од четири
две променливи од три променливи
променливи

Комбинациони таблици на логички функции

Вкупниот број на функции NF што можат да произлезат ако на располагање


се n независни променливи изнесува:
n
N F  22 (1-18)

1.5. СТАНДАРДНИ ЛОГИЧКИ ФУНКЦИИ


Логичките функции кои ги извршуваат основните логички операции И, ИЛИ
и НЕ (комплементирање, инвертирање), како и функциите кои ги извршуваат
операциите НИ и НИЛИ, потоа ЕКСИЛИ (ИСКИЛИ) и ЕКСНИЛИ (ИСКНИЛИ), се од
особена важност заради што сите нив заедно ќе ги прикажеме уште еднаш со
нивните таблици на вистинитост таб. 1-11 а), б), в), г), д), ѓ) и е), вклучувајќи ги и
нивните аналитички форми.
БУЛОВА АЛГЕБРА И ЛОГИЧКИ КОЛА 13

A B A B A B A B
0 0 0 0 0 0 A A
0 1 1 0 1 0 0 1
1 0 1 1 0 0 1 0
1 1 1 1 1 1
а) ИЛИ б) И в) НЕ

A B A B A B AB A B A B A B A B
0 0 1 0 0 1 0 0 0 0 0 1
0 1 0 0 1 1 0 1 1 0 1 0
1 0 0 1 0 1 1 0 1 1 0 0
1 1 0 1 1 0 1 1 0 1 1 1
г) НИЛИ д) НИ ѓ) ЕКС ИЛИ е) ЕКС НИЛИ
Таб. 1-11. Стандардни логички функции
Гледајќи ги таблиците на функциите ЕКСИЛИ и ЕКСНИЛИ можеме да
заклучиме дека овие две логички функции можат да се применат за детектирање
на нееднаквост, односно на еднаквост. Имено, функцијата ЕКСИЛИ има вредност
1 само ако променливите A и B меѓусебно се разликуваат, т.е. ако A=0 и B=1 или
ако A=1 и B=0, додека кога A и B се еднакви функцијата ЕКСИЛИ дава резултат 0.
Од друга страна функцијата ЕКСНИЛИ се однесува спротивно бидејќи нејзината
вредност е 1 само ако променливите A и B меѓусебно се еднакви, т.е. ако A=0 и
B=0 или A=1 и B=1, додека ако се различни, вредноста на ЕКСНИЛИ е 0. Покрај
ова, од таблицата на функцијата ЕКСИЛИ може да се забележи и тоа дека таа
може да се користи за аритметичко собирање во бинарниот броен систем, бидејќи
ги исполнува правилата за собирање на бит со бит. Двете претходно посочени
функции можат да се претстават и во аналитички облик со логички равенки,
применувајќи ги на основните логички функции ИЛИ, И и НЕ (Комплементирање).
YЕКСИЛИ = A  B  A  B  A  B (1-19)
YЕКСНИЛИ = A  B  A  B  A  B (1-20)

1.6. ПРЕКИНУВАЧКИ МРЕЖИ


Логичките функции практично можат да се реализираат на различен начин
применувајќи различни технички решенија, но секогаш користејќи елементи и/или
компоненти кои имаат две состојби: механички прекинувачи, релеа,
полупроводнички прекинувачи и сл. Во секој случај во основа се јавува потребата
од нивно графичко прикажување со помош на соодветни шеми и симболи. Имајќи
во вид дека нашата цел е реализација на логичките функции со електронски
прекинувачи во продолжение фокусот ќе го ставиме врз објаснување на оваа
проблематика, поточно врз графичкото прикажување на логичките функции со
помош на логички кола и нивни симболички ознаки.
БУЛОВА АЛГЕБРА И ЛОГИЧКИ КОЛА 14

Секоја структура која е добиена со адекватно поврзување на одреден број


различни логички кола и реализира некоја прекинувачка функција се вика
логичка, комбинациона, комутациона или прекинувачка мрежа.
Прекинувачката мрежа може да се прикаже со соодветна блок-шема (логички
блок-дијаграм). Тоа е графички облик на претставување, а се добива со примена
на симболите на логичките кола. Кај комбинационите мрежи не постои повратна
врска од излезот на некое логичко коло до било кој влез во мрежата. Заради ова
секој излез на мрежата постои и зависи само од моменталните вредности на
влезните променливи.

1.6.1. ОСНОВНИ ЛОГИЧКИ КОЛА


Сите стандардни прекинувачки функции кои досега ги анализиравме
технички се реализирааат со помош на посебни компоненти кои се викаат
логички кола, врати или порти. Секое логичко коло има еден излез, кој
одговара на функцијата која тоа коло ја извршува, и еден или повеќе влезови
преку кои се доведуваат променливите од кои зависи функцијата на излезот.
За секое логичко коло постои соодветен графички симбол - елементарен
блок-дијаграм, т.е. логички симбол, со кој тоа коло се прикажува во логичките
дијаграми. Во литературата можат да се сретнат различни симболи за означување
на логичките кола. IEEE (Институтот на инжинери од електротехничка струка) го
прифати и го стандарди-зира означувањето на логичките кола воведено од страна
на IEC (Интернационалната комисија за електротехника). Според овој стандард
постојат во основа два различни типа на симболи. Во едната група припаѓаат
симболите кои имаат различен облик зависно од нивната логичка функција,
додека во втората група се користат симболите со правоаголен облик.
Американскиот институт за национални стандарди (ANSI) ги применува токму
симболите со различен облик кои вообичаено се користат и на светско ниво за
едукативни потреби. Од друга страна, симболите со правоаголен облик се
употребуваат од страна на призведувачите на дигитални компоненти, уреди и
апарати за водење на документација. Имајќи го во предвид претходно кажаното,
во понатамошното излагање ќе го користиме означувањето според ANSI
стандардот, т.е. симболите кои имаат различен облик. Сепак, во табелата таб. 1-
12 е даден целосен и споредбен преглед на симболите на елементарните
(основните) логички кола И, ИЛИ и НЕ, т.е. на инверторот, како и на
универзалните НИ и НИЛИ колата и нивното означување според двата стандарда.
Дополнително, покрај секое логичко коло е наведена неговата таблица на
вистинитост и функцијата што ја извршува во аналитички облик со кусо
објаснување.
Од симболите на логичките функции на ИНВЕРТОРОТ (НЕ), НИ и НИЛИ
колото се воочува дека комплементирањето на променливата се означува со
малечок круг (○).
БУЛОВА АЛГЕБРА И ЛОГИЧКИ КОЛА 15

Логички симбол Таблица


Логичко Логичка на Опис на
коло равенка вистинито функцијата
ANSI IEC/IEEE
ст

Инверто A Y Комплемен-
р A Y тирање
YA 0 1 (Инвертирањ
(НЕ) 1 0 е)

A B Y
A 0 0 0
И Y Y  A B 0 1 0
Логичко
B 1 0 0
множење
1 1 1
A B Y
A 0 0 1 Комплемент
Y Y  AB 0 1 1 на логичко
НИ B 1 0 1 множење
1 1 0
A B Y
A 0 0 0
ИЛИ
Y 0
Логичко
B Y  A B 1 1 собирање
1 0 1
1 1 1
A B Y
A 0 0 1 Комплемент
НИЛИ
Y 0 0 на логичко
B Y  A B 1
1 0 0 собирање
1 1 0
A B Y
A Y  A B Ексклузивно
0 0 0
ЕКС- Y (Исклучиво)
ИЛИ B Y  A B  AB 0 1 1 логичко
1 0 1 собирање
1 1 0
Комплемент
A B Y
A Y  A B на
0 0 1
ЕКС- Y Ексклузивно
НИЛИ B Y  AB  A B 0 1 0 (Исклучиво)
1 0 0
логичко
1 1 1 собирање

Таб. 1-12. Преглед на симболите на стандардните логички кола


БУЛОВА АЛГЕБРА И ЛОГИЧКИ КОЛА 16

Во последните две редици од табелата 1-12 се дадени и логичките кола кои


ги реализираат логичките функции ИСКЛУЧИВО (ЕКСКЛУЗИВНО) ИЛИ и НИЛИ, т.е.
ЕКСИЛИ и ЕКСНИЛИ, бидејќи и тие многу често се сретнуваат и во теоријата и во
практиката.
Како посебно значајни ќе ги истакнеме НИ и НИЛИ логичките кола, кои ги
извршуваат универзалните функции НИ и НИЛИ, бидејќи со нив може да се
реализира било која прекинувачка функција. Елементарните функции НЕ, И и ИЛИ
можат да се изразат само преку функцијата НИ. На сл. 1-1 а), б) и в) е прикажан
начинот, според кој овие основни логички кола НЕ, И и ИЛИ можат да се
реализираат само со примена на НИ кола. Од друга страна, применувајќи го
принципот на дуалност, основните логички врати можат да се претстават само со
соодветно поврзување на НИЛИ кола според сл. 1-2 а), б) и в.

A A A A
а) а)

A A
A AB AB AB

B (AB) B (A+B)

б)
B
б)

A A
A+B A A+B A+B
B
B (AB) (A+B)
B в)
в)
Сл. 1-1. Само со НИ порти Сл. 1-2. Само со НИЛИ порти
Реализација на основните логички кола НЕ (Инвертор), И и ИЛИ

1.6.2. ДРУГИ БАЗИЧНИ ЛОГИЧКИ КОЛА


Покрај основните и универзалните логички кола во праксата многу често се
сретнуваат и други базични логички кола кои имаат посебна намена. Станува збор
за баферското коло, колото со три состојби и билатералната порта кои ќе ги
анализираме во продолжение бидејќи овие кола имаат исклучително важна улога
во проектирањето и изведбата на реални дигитални компоненти, а со тоа и
голема практична примена.
Воведувањето на овие кола произлезе од реалните проблеми во практич-
ната работа. Поконкретно, од потребата за поврзување на излезот од некое
логичко коло со друг елемент/компонента која има потреба од поголема струја од
онаа што може реално да му ја обезбеди тоа логичко коло, како и од потребата за
поврзување на повеќе излези од различни логички кола во една точка.
БУЛОВА АЛГЕБРА И ЛОГИЧКИ КОЛА 17

1.6.2.1. БАФЕРСКО КОЛО


Најнапред ќе го претставиме колото за прилагодување (баферот, анг.
buffer) кој има еден влез и еден излез исто како инверторот, само што кај
баферското коло излезот ја следи логичката состојба на влезот, т.е. на излезот се
добива исто логичко ниво со она што е присутно на влезот. На сл. 1-3 а) и б) се
прикажани логичките симболи на баферот и тоа според двата стандарди: ANSI и
IEC/IEEE. Имајќи го предвид однесувањето на баферот, неговата логичка равенка
ќе биде Y = A, додека таблицата на вистинитост таб. 1-13 ќе има облик соодветен
на неа.

A Y A Y
Y=A 0 0
а) 1 1
б)
Сл. 1-3. Симболички ознаки Логичка равенка Таб. 1-13. Комбинациона таблица
Баферско коло (бафер)
Главна карактеристика на баферското коло е неговата можност да дава
поголема излезна струја при исто логичко ниво. Заради ваквата особина баферот
се поврзува на излезот на она логичко коло кое не може директно да се поврзи на
потрошувач со мала отпорност бидејќи постои опасност потрошувачот да повлече
поголема струја од логичкото коло и истото да го преоптовари или оштети.
Баферот служи како склоп за прилагодување и индиректно поврзување на
излезот од дадено логичко коло со потрошувач кој може да повлече поголема
струја од максимално дозволената. Овие кола се користат таму каде што е
потребна поголема моќност од моќноста што некое логичко коло може да ја даде
и затоа баферското коло уште се нарекува и погонско логичко коло или коло за
побудување, логичко коло со моќен излез или драјвер (анг. driver).

1.6.2.2. БАФЕРСКО КОЛО СО ТРИ СОСТОЈБИ


Ова коло уште се вика и три-статички бафер, а својот назив го носи од
англиската терминологија каде се сретнува под поимот three-state или tri-state
buffer бидејќи покрај двете вообичаени логички состојби: 1 или 0, излезот од
колото Y може да се најде и во т.н. трета состојба, или состојба на висока
импенданса која вообичаено се означува со HiZ, Hi-Z или само со Z. Кога колото
се наоѓа во трета состојбa, тогаш тоа не троши никаква струја ( I Y  0 ), што
произлегува од фактот дека во оваа состојба излезот Y се прекинува и се
однесува како отпорник со бесконечно голема вредност ( Z Y   , RY   ).
Нормалната работа на колото се овозможува преку логичкото ниво на
новододадениот контролен влез означен со Е (анг. Enable). Ако на влезот за
контрола Е се донесе 1 (Е=1), тогаш колото функционира како обичен бафер, т.е.
логичката состојба од влезот се пренесува на излезот (Y=A). Меѓутоа, ако на
влезот Е се донесе 0 (Е=0), излезот на колото ќе оди во трета состојба (Y=HiZ),
кога RY   и I Y  0 со што колото практично се исклучува. Ова значи дека
активно ниво на контролниот сигнал E е 1, бидејќи само кога Е=1, баферот
функционира на вообичаен начин.
БУЛОВА АЛГЕБРА И ЛОГИЧКИ КОЛА 18

Однесувањето на три-статичкото баферско коло потсетува на славина за вода.


На сл. 1-4 а), б) се прикажани логичките симболи на три-статичкиот бафер
и тоа според двата стандарди: ANSI и IEC/IEEE, додека таблицата на вистинитост
таб. 1-14 дополнително го рефлектира неговиот начин на работа.

A Y E A Y
А за Е=1
Y= 0 x HiZ
E Hi-Z за Е=0
0 0
а) ANSI. 1
б) IEC/IEEE. 1 1

Таб. 1-14. Комбинациона


Сл. 1-4. Симболички ознаки Логичка равенка
таблица
Баферско коло со три состојби (тристатички бафер) и контролен сигнал активен на 1
Заради појаснување на принципот на функционирање на колото со три
состојби истото ќе го прикажеме и како надворешно контролиран механички
прекинувач (сл. 1-5).

A Y A Y=HiZ A Y=A
RY
IY = 0
E E=0 E=1
Сл. 1-5. Баферско коло како контролиран механички прекинувач во една насока

Тристатичкиот бафер се појави од чисто практични причини и тоа од


потребата во една точка да се поврзат најмалку два излези од различни логички
кола како што е прикажано на сл. 1-6. Едноставното поврзување на излезите од
вратите може да прави проблем затоа што состојбата во заедничката точка не
може да се контролира. Ова ќе се случи ако состојбите на излезите од колата
меѓусебно се разликуваат. Во овој случај логичката состојба во спојната точка не
може да се дефинира што резултира со појава на конфликт (колизија).

B1
Логичко Y1
коло 1
Логичко 1 Y
коло 1 Y1 Логичко Y2 B2
Y
? коло 2
Логичко Y2
E1 E2
коло 2 0
E
Сл. 1-6. Директно поврзување на излези од Сл. 1-7. Поврзување на излези од логички
логички кола и појава на конфликт кола преку бафери со три состојби
БУЛОВА АЛГЕБРА И ЛОГИЧКИ КОЛА 19

Конфликтот може да се избегне токму со воведување на бафери со три


состојби според сликата сл. 1-7. Од неа се гледа дека заради присуството на
баферите B1 и B2 излезите на логичките кола по потреба можат и да се откачат од
спојот. Имено, логичката состојба во заедничката точка на спојување Y ќе зависи
само од баферот што пропушта, т.е. што е активен, ако при тоа баферот на
второто коло се држи пасивен и неговиот излез се форсира да оди во трета
состојба со што ќе се откачи од заедничката точка. Ова е овозможено на тој
начин што на контролниот влез од баферот на колото што треба да ја одреди
логичката состојба во заедничката точка се носи 1, а на влезот за контрола кај
баферот на пасивното коло се доведува 0, како на пр. Е1=1, а Е2=0. Сега е јасно
дека логичката состојба во заедничката точка ќе биде дефинирана само од
логичкото ниво на излезот од првото коло, т.е. ќе важи Y=Y1. Функционалната
таблица 1-15 дополнително го објаснува презентираниот начин на работа.

Е1 Е2 Y
0 0 Hi-Z Е Е1 Е2 Y
0 1 Y2 0 1 0 Y1
1 0 Y1 1 0 1 Y2
1 1 ?
Таб. 1-15. Управување со Таб. 1-16. Управување со еден
два контролни влеза контролен влез и инвертор

За да не дојде до грешка, двата влеза за контрола можат да се поврзат во


единствен контролен влез Е, при што контролниот влез од едниот бафер ќе се
спои директно на овој заеднички влез, а контролниот влез на другиот бафер ќе
оди преку инвертор како што е прикажано на сл. 1-6 со испрекинати линии. Во
овој случај ќе важи комбинационата таблица 1-16, која покажува дека кога Е=0
тогаш Y=Y1, но ако Е=1 тогаш Y=Y2.

Поврзувањето во заедничка точка може да се изведе и со излези од повеќе


логички кола, при што треба да се внимава на управувањето со контролните
влезови. Имено, секогаш треба да е активно само едно од логичките кола, чии
излези се поврзани, додека сите останати кола треба да се пасивни.

Во праксата често се сретнуваат и кола со три состојби кај кои активното


ниво на контролниот сигнал е ниско. Во овој случај на симболот на колото му се
додава кругче на неговиот контролен влез, според сликите сл. 1-8 а) и б). Ваквото
три-статичко коло ќе биде активно ако Е=0, додека тоа ќе стане пасивно и на
излезот ќе се јави трета состојба ако Е=1, соодветно на прикажаната таблица на
вистинитост таб. 1-17.
БУЛОВА АЛГЕБРА И ЛОГИЧКИ КОЛА 20

A Y
E A Y
А за Е=0
Y= 0 0
Hi-Z за Е=1 0
E 1 1
а) ANSI б) IEC/IEEE 1 x Hi-Z

Таб. 1-17. Kомбинациона


Сл. 1-8. Симболички ознаки Логичка равенка
таблица
Баферско коло со три состојби (тристатички бафер) и контролен влез активен на 0

Постојат и реализации на три-статички бафери со контролен влез за оне-


возможување D (од ang. disable) на работата. Во овој случај со доведување на
активно ниво на контролниот влез D излезот оди во трета состојба, а ако на D се
донесе пасивно логичко ниво, излезот нормално функционира и на него се
пренесува состојбата од влезот.
Друг тип на бафери што исто така многу често се сретнуваат се т.н. бафер-
инвертори кои во принцип функционираат на ист начин како и баферските кола
што претходно ги наведовме, само што бафер-инверторите дополнително вршат
инвертирање на влезниот сигнал. Кај нив, кога на контролниот влез се донесе
соодветен активен сигнал, на излезот се јавува комплементарна вредност на
влезната променлива ( Y  A ), заради што на логичкиот симбол на колото на
излезот му се додава кругчето според сл. 1-9 а), б), в), г). Спротивно, ако
контролниот влез е пасивен, баферот оди во трета состојба.

A Y A Y

E E
а) ANSI б) IEC/IEEE в) ANSI г) IEC/IEEE

Контролен влез активен на 1 Контролен влез активен на 0


Сл. 1-9. Логички симболи на бафер-инвертори со три состојби

1.6.2.3. БИЛАТЕРАЛНА (ТРАНСМИСИОНА) ПОРТА


Од посебен интерес во практиката е и колото чиј логички симбол е
прикажан на сл. 1-10. На сл. 1-10 а) е даден симболот според ANSI-стандардот,
додека на сл. 1-10 б) е претставен симболот според IEC/IEEE стандардот. Станува
збор за коло кое или ја овозможува или ја прекинува врската помеѓу влезот и
излезот во двете насоки, т.е. билатерално, заради што ова коло може да се
прикаже и како надворешно контролиран механички прекинувач според сл. 1-11.
БУЛОВА АЛГЕБРА И ЛОГИЧКИ КОЛА 21

G2
G2 G2=0 G2=1
A B A B A B A B

G1 G1=1 G1=0
G1

а) ANSI б) IEC/IEEE a) Симбол б) Вклучен в) Исклучен


Сл. 1-10. Симболички ознаки на Сл. 1-11. Трансмисиона порта како надворешно
билатерален прекинувач контролиран механички прекинувач
Однесувањето на колото се управува преку логичките состојби на
контролните влезови. Имено, трансмисионата порта се вклучува кога на
контролниот влез G1 се доведe 1, додека на вториот контролен влез G2 се носи 0
со што помеѓу влезот и излезот се воспоставува куса врска и меѓу нив е
овозможен пренос во двете насоки: од А кон В, т.е. од В кон А. Обратно, ако на
управувачкиот влез G1 се донеси 0 и едновремено на вториот контролен влез G2
се приклучи 1, трансмисионата врата се исклучува бидејќи комуникацијата помеѓу
влезот/излезот А не може да се оствари со влезот/излезот В заради што излезот е
во прекин (откачен, исклучен) од влезот и се наоѓа во состојба на бесконечно
голема (висока) отпорност, т.е. во трета состојба. Принципот на работа на
билатералната порта е презентиран со таб. 1-18 и сл. 1-12.
Благодарејќи на начинот на работа, ова коло има голема примена во
различни области на електрониката и затоа има уште неколку имиња. Тоа се
нарекува и двонасочна порта, билатерален прекинувач, аналоген прекинувач или
временски селектор.
Вклучен Исклучен
Комуникација G 2 =0 G 2 =1
G1 G2
Влез – Излез A B A B

Куса врска
1 0 G1=1 G1=0
(RA-B  0)
Куса врска Прекинато коло
Прекин (Hi-Z) помеѓу помеѓу
0 1 влезот и излезот влезот и излезот
(RA-B  )
.

Таб. 1-18. Функционална таб. Сл. 1-12. Опис на работата на


на трансмисиона порта трансмисионата порта
Контролата на работата на билатералниот прекинувач може да се изведе и
само преку единствена контролна влезна линија. Во овој случај логичкото ниво на
едниот контролен влез треба да биде во директна форма, додека на другиот во
комплементарен облик преку инвертор. Поврзувањето е во принцип исто со
управувањето на тристатичките бафери прикажано на сл. 1-7, каде контролните
влезови Е1 и Е2 беа поврзани во единствена контролна линија Е.
БУЛОВА АЛГЕБРА И ЛОГИЧКИ КОЛА 22

1.6.3. АНАЛИЗА НА ПРЕКИНУВАЧКИ МРЕЖИ


Анализирањето на прекинувачката мрежа се однесува на функционален
план, затоа што конструкцијата на мрежата е позната преку нејзината логичка
шема. Задачата на анализата е да ги објасни поодделните логички функции на
зададената комбинациона мрежа, со крајна цел - одредување на логичките
состојби во поедините точки на мрежата, и тоа за секоја комбинација на
вредности на влезните променливи. Според она што го забележавме, произлегува
дека проблемот на анализа ќе биде посебно важен при експлоатацијата и
одржувањето на дигиталните уреди.
Логичката шема на мрежата треба да биде нацртана со примена на
соодветните логички симболи на употребените логички кола, како и со
означување на врските кои постојат помеѓу влезовите и излезите од секое
логичко коло. За секоја прекинувачка мрежа познати се имињата на сите влезни
променливи, т.е. независно променливите кои можат да се појават во директен
(вистински, номинален) или комплементаран облик, како и сите имиња на
излезните променливи, т.е. функциите.
По извршената анализа на зададената мрежа треба да се добие
аналитичкиот облик на функцијата, односно функциите што таа мрежа ги
реализира. Ако е возможно, тој облик треба што е можно повеќе да се упрости,
или поточно минимизира. Конечно, ако треба, од добиената равенка може да се
конструира и таблицата на вистинитост на прекинувачката мрежа.
Анализата започнува од влезот кон излезот на мрежата и тоа така што се
означуваат сите излези од логичките кола, и за секој излез се пишува соодветна
равенка која ќе зависи од тоа за какво логичко коло станува збор. Значи,
постапно се одредуваат аналитичките облици на прекинувачките функции на
излезите од сите логички кола, и тоа движејќи се од влезот кон излезот од
мрежата. Оваа постапка се извршува сè додека не се добие израз за секој излез
од било кое логичко коло во мрежата (секоја функција).
Дури потоа се продолжува со упростувањето на секоја функција. Од последнава
равенка, т.е. од равенката која повеќе не може да се поедноставува, ако се бара,
се формира комбинационата таблица нa мрежата.
На сл. 1-13 а), б) и в) сe прикажани три логички шеми кои на прв поглед
меѓусебно се разликуваат. Сепак, ако истите ги анализираме, ќе заклучиме дека
секоја од нив ја опишува прекинувачката мрежа со која се реализира функцијата
Y  A, B, C   A B  B C . Разликата се јавува само во однос на прикажувањето на
комплементирањето, така што секоја шема е валидна и во однос на реализацијата
на добиената логичка функција, може подеднакво да се употребува како и
другите две. Во врска со ова, на сл. 1-13 а) комплементирањето е означено со
инвертор. Сл. 1-13 б) е малку поедноставна затоа што се користат кола со
комплементарни влезови кои се означени со мал круг „○”, додека на сл. 1-13 в)
означувањето е наједноставно бидејќи се претпоставува дека комплементите на
променливите веќе се претходно добиени, што се индицира со цртички над нив
„ ”.
БУЛОВА АЛГЕБРА И ЛОГИЧКИ КОЛА 23

A A
B B

C C

а) логичка негација (комплементирање) со инвертори


б) логичка негација (комплементирање) со влезовите на логичките кола

A
B

B
C
в) логичка негација (комплементирање) со комплементарни влезни променливи
Сл. 1-13. Логички шеми на функцијата Y  A, B, C   A B  B C

Овде сепак ќе истакнеме дека од гледна точка на практична реализација


секој логички дијаграм ќе биде претставен со различно решение. Имено, во
шемата од сл. 1-13 а) се применуваат два инвертори, две И кола и едно ИЛИ коло.
Шемата од сл. 1-13 б) користи само три логички кола од кои две НИ кола кои
можат да инвертираат по еден влез и едно ИЛИ коло. И шемата од сл. 1-13 в)
користи три кола бидејќи комплементирањето на променливите е претходно веќе
остварено со некоја друга логичка структура.
На следните две слики сл. 1-14 и сл. 1-15 последователно се претставени
по два наједноставни примери за примена на И и ИЛИ коло кои често ќе ги
сретнуваме понатаму.

A
A Y=0 Y=A

K=0 K=1 б)
а)
Сл. 1-14. Анализа на логичко И коло
A A
Y=A Y=1

K=0 а) K=1 б)
Сл. 1-15. Анализа на логичко ИЛИ коло
БУЛОВА АЛГЕБРА И ЛОГИЧКИ КОЛА 24

Со анализа на логичките дијаграми презентирани на сл. 1-16 и сл. 1-17 се


добиваат следниве две логички равенки:
Y  A B  AB (1-21)
Y  AB  A B (1-22)
A B AB  A B
0 0 0
0 1 1
1 0 1
1 1 0
Сл. 1-16. Реализација на ЕКСИЛИ логичко коло
A A B AB  A B
AB
B 0 0 1
A+B
0 1 0
(AB+AB)
1 0 0
AB
1 1 1
Сл. 1-17. Реализација на ЕКСНИЛИ логичко коло
Ако за секоја од нив се пополнат соодветни комбинациони таблици и ако
тие се споредат со таблиците на вистинитост на логичките функции ЕКСИЛИ и
ЕКСНИЛИ се докажува дека логичките шеми дадени на сл. 1-16 и 1-17 практично
ги реализираат функциите ЕКСИЛИ и ЕКСНИЛИ. На сл. 1-18 а), б) и сл.1-19 а) б)
е прикажана анализа на уште четири едноставни, но карактеристични примери на
логички дијаграми со кои се реализираат НИ и НИЛИ логичките функции зависни
од три влезни променливи. Сликата сл. 1-20 претставува еден пример на анализа
на логичка шема со бафер со три состојби.

A AB
B ABC ABC
C
а)

A AB AB
B ABC
C
б)
Сл. 1-18. Реализација на НИ логичко коло со три влеза
БУЛОВА АЛГЕБРА И ЛОГИЧКИ КОЛА 25

A A+B
B A+B+C A+B +C
C
а)

A A+B A+B
B A+B+C
C
б)
Сл. 1-19. Реализација на НИЛИ логичко коло со три влеза

A
E S Y Z
Y Z 0 B B
B 0
1 A A
E 0 B HiZ
S 1
1 A HiZ
Сл. 1-20. Анализа на логички дијаграм со излезен тристатички бафер-инвертор

1.6.4. СИНТЕЗА НА ПРЕКИНУВAЧКИ МРЕЖИ


За да се изврши синтеза на некоја прекинувачка мрежа треба да е позната
прекинувачката функција со која таа се опишува. Ова значи дека од некоја
зададена нормална форма или таблица на вистинитост на логичката функција
треба да се добие логичката шема на мрежата што таа функција физички ќе ја
реализира. Многу важен критериум при создавањето на мрежата е секако
вкупниот број на употребени логички кола. Јасно е дека ќе се стремиме кон тоа
прекинувачката мрежа да ја реализираме со што е можно помал број логички
кола и со што е можно помал број влезови по логичко коло, така што прва работа
што треба да се направи во процесот на синтезата е да се изврши минимизација
на зададената прекинувачка функција и таа да се сведе во облик на МДНФ или
МКНФ.
Ако некоја логичка функција е претставена во МДНФ облик (минимална
сума од производи), тогаш прекинувачката мрежа што неа ја реализира ќе се
состои од одреден број на И кола, чии излези ќе се приклучат како влезови во
едно ИЛИ коло, од чиј излез ќе се добие бараната функција. Секоја влезна
променлива прво се проследува преку И коло, кое претставува прво ниво, а потоа
се пренесува преку ИЛИ коло кое претставува второ ниво. Ваквата структура се
нарекува И-ИЛИ логички систем во две нивоа.
БУЛОВА АЛГЕБРА И ЛОГИЧКИ КОЛА 26

На сл. 1-21 е прикажан еден пример на ваква И-ИЛИ мрежа во две нивоа
која ја реализира функцијата Y1  A C D  A B C  AB C  BD .

A B C D

DA B C

A
C
D
A
B
C Y1
A
B
C
B
D

Сл. 1-21. Синтеза на функција од четири променливи со И-ИЛИ логичка структура


Ако некоја логичка функција е прикажена во МКНФ облик (минимален
производ од суми), тогаш повторно ќе се добие логичка структура во две нивоа,
но сега таа ќе биде од ИЛИ-И тип, што значи дека влезни кола ќе бидат ИЛИ
колата и тие ќе го претставуваат првото ниво, додека второто ниво ќе биде
излезното И коло од кое се добива функцијата.
Еден пример на ИЛИ-И мрежа во две нивоа со која се реализира функцијата
   
Y2   A  C  D  C  D B  D  B  C е прикажан на сл. 1-22.

A B C D

A
C
D

C
D
Y2
B
D

B
C

Сл. 1-22. Синтеза на функција од четири променливи со ИЛИ-И логичка структура


БУЛОВА АЛГЕБРА И ЛОГИЧКИ КОЛА 27

Во претходното излагање веќе кажавме дека секоја прекинувачка функција


може да се претстави само со примена на НИ кола, или само со примена на НИЛИ
кола. Покрај ова овие две функции се полесни за техничка реализација, така што
и од практични причини подобро е да се користат НИ и НИЛИ логички кола. Со
примерите што следат ќе објасниме како може да се добие физичка реализација
на логичките функции само со примена на НИ кола, или само со примена на НИЛИ
кола.
Дa јa разгледамe прекинувачката функцијa од три променливи Y=Y(A,B,C)=
  m2,3,4,6    M 0,1,5,7  чија комбинациона таблица е претставена како таб. 1-
19, додека нејзините Карноови карти (КК) во совршена дисјунктивна нормална
форма (СДНФ) и во совршена конјунктивна нормална форма (СКНФ) облик се
прикажани на сл. 1-23 а) и б). По извршената минимизација на функцијата, таа
може да се запиши во МДНФ облик како Y  A B  AC , или во МКНФ облик како
Y   A  B A  C  . Двонивовската И-ИЛИ структура која е прикажана на сл. 1-24 а)
ја реализира функцијата во МДНФ облик, додека според МКНФ обликот се добива
двонивовската ИЛИ-И мрежа прикажана на сл. 1-24 б).

i ABC Y За да покажеме како се добива реализација


само со НИ, и само со НИЛИ порти ќе извршиме
0 000 0 двојно комплементирање посебно на МДНФ
обликот на функцијата и посебно на нејзиниот
1 001 0 МКНФ облик. Со ова практично ништо не сме
2 010 1 промениле, но затоа да видиме што ќе се случи
ако потоа ја примениме Де Моргановата теорема.
3 011 1

4 100 1
Таб. 1-19. Таблица на вистинитост на функцијата
5 101 0
Y ( A, B, C )   m2,3,4,6   M 0,1,5,7 
6 110 1

7 111 0

B B
0 2 6 4 0 2 6 4
0 1 1 1 0 1 1 1
1 3 7 5 1 3 7 5
0 1 0 0 C 0 1 0 0 C
A A
а) минимизација на СДНФ облик б) минимизација на СКНФ облик
Сл. 1-23. Карноова карта на функцијата Y ( A, B, C )   m2,3,4,6   M 0,1,5,7 
БУЛОВА АЛГЕБРА И ЛОГИЧКИ КОЛА 28

A B C

A
B Y=AB+AC

A
C

а) реализација со двонивовска И-ИЛИ комбинациона мрежа

A B C

A
B Y=AB+AC

A
C

б) реализација со двонивовска ИЛИ-И комбинациона мрежа


Сл. 1-24. Синтеза на функцијата Y ( A, B, C )   m2,3,4,6   M 0,1,5,7  две нивоа
Поаѓајќи од МДНФ се добива Y  Y  A B  AC  A B   AC  . Применувајќи ја
трансформацијата од сл. 1-25 добиениот МДНФ облик на функцијата може да се
реализира само со користење на НИ кола како што е прикажано на сл. 1-26.
Лесно се забележува дека конфигурацијата на оваа мрежа е иста со таа што е
прикажана на сл. 1-24 а), само што секое логичко коло се заменува со НИ коло.
A B C

A Y
B

A

B Y
A Y
B A
C

Сл. 1-25. И во НИЛИ Сл. 1-26. Синтеза на функцијата Y =  m(2,3,4,6) [= (0,1,5,7)]
БУЛОВА АЛГЕБРА И ЛОГИЧКИ КОЛА 29

Слично, ако се тргне од МКНФ обликот на функцијата се добива:


Y  Y   A  B   A  C   ( A  B)  ( A  C ) . Оваа форма на функцијата е реализирана
само со примена на НИЛИ врати како што може да се види од сл. 1-28, при што е
употребена трансформацијата од сл. 1-27. И во овој случај е очигледно дека
последната добиена конфигурација и логичката шема од сл. 1-24 б) се разли-
куваат само по тоа што сите логички кола од првата шема се заменети со НИЛИ
порти во втората.

A B C
A Y
B


A
A Y B Y
B
A
C

Сл. 1-27 ИЛИ во НИ Сл. 1-28. Синтеза на функцијата Y=M(0,1,5,7)=  m2,3,4,6)


Од сликите може да се забележи дека согласно теоремите (1-10) и (1-5)
важи A  A  A така што инверторите на сл. 1-47 се реализирани како двовлезни
НИ кола чии влезови се поврзани вo еден. Слично, имајќи ги во вид дуалните
теореми (1-10) и (1-5) ќе важи A  A  A па инверторите се заменети со НИЛИ
кола со два влеза, чии влезови се исто така поврзани во еден.
Од изложеното може да се изведе генерален заклучок дека за да се добие
мрежа, составена само од НИ кола, треба да се почне така што дадената функција
треба да се изрази во МДНФ. Потоа за оваа форма на функцијата треба да се
нацрта соодветна И-ИЛИ конфигурација на логичка мрежа во две нивоа, и на крај
сите логички кола во неа да се заменат со НИ кола.
Слично на претходно наведеното, за да се добие НИЛИ конфигурација на
логичка мрежа потребно е на почетокот функцијата да се претстави во облик на
МКНФ. Понатаму се црта соодветната дво-нивовска ИЛИ-И мрежа, и на крај сите
логички кола во неа се заменуваат со НИЛИ кола.

1.6.5. ПРОЕКТИРАЊЕ НА ПРЕКИНУВАЧКИ МРЕЖИ


На крај ќе презентираме постапка со која се проектира прекинувачка
мрежа што го решава следниот едноставен проблем. Тројца членови на жири
комисија гласаат со притискање на тастер пред секој од нив за тоа дали
кандидатот кој испеал може да продолжи и во следната TВ емисија за избор на
најдобар талент или ќе мора да отпадне. Ако кандидатот добие најмалку два
гласа од комисијата треба да светни зелена светилка што ќе покаже дека тој оди
во следниот круг, додека ако се запали црвена светилка, кандидатот не покажал
задоволителен квалитет и тој отпаѓа.
БУЛОВА АЛГЕБРА И ЛОГИЧКИ КОЛА 30

Најнапред ја формираме таблицата на вистинитост таб. 1-20 така што трите


тастери ќе ги претставиме како независни (влезни) бинарни променливи A, B, C за
кои вредноста 0 ќе значи дека тастерот не е притиснат, додека 1 дека е
притиснат. Како функции, т.е. зависни (излезни) променливи, ќе ги земеме двете
светла: зеленото SZ и црвеното SC. За нив вредноста 1 ќе индицира дека светлото
свети, додека 0 ќе значи дека не свети. Од добиената таблица се заклучува дека
светлата се меѓусебно комплементарни ( SC  SZ ), што ни укажува дека е сосема
доволно да ја решиме едната функција бидејќи другата ќе ја добиеме со
комплементирање на првата. За остварување на оваа цел продолжуваме со
минимизација на една од функциите, на пр. онаа за активирање на зеленото
светло SZ применувајќи ја КК од сл. 1-29. Бидејќи нејзиното минимално решение
го има следниот МДНФ облик SZ=AC+AB+BC, конечно можеме да ја нацртаме и
комбинационата мрежа (сл. 1-30) со која го решаваме дадениот проблем.

i ABC SZ SC
B
0 000 0 1
0 2 6 4
1 001 0 1 0 0 1 0
2 010 0 1 1 3 7 5
0 1 1 1 C
3 011 1 0

4 100 0 1 A
5 101 1 0 Сл. 1-29. Минимизација

6 110 1 0

7 111 1 0

Таб. 1-20. Таблица


на вистинитост
A B C

SZ

SC
Сл. 1-30. Логичка шема
БУЛОВА АЛГЕБРА И ЛОГИЧКИ КОЛА 31

1.7. ЛОГИЧКИ И ФИЗИЧКИ ДИЗАЈН


На следната слика е презентиран едноставен пример за изведба на дадена
логичка шема применувајќи соодветни дигитални интегрирани кола од
фамилијата 74xx која содржи повеќе различни серии изведени во постарата TTL,
односно поновата CMOS техника. Дадениот пример може да им послужи на
наставниците и на учениците како модел за принципот според кој треба зададена
логичка шема на одредена комбинациска или секвенцијална мрежа да се
претстави со реални интегрирани кола, со што значително ќе им се олесни
изведбата на симулациските вежби на часовите за изборната настава, односно
изведбата на монтажната шема на часовите по практичната настава.

Примерот се однесува за сигнализирање на возачот на некое патничко


возило дали тој е заштитен со појасот на неговото седиште.
Влезните променливи A, B и C примаат логички вредности кои се добиваат
од соодветните сензори, и тоа:
 А=1: седиштето е зафатено (возачот седнал),
 B=1: клучот за стартување на возилото е ставен,
 C=1: појасот е приклучен (врзан).
Излезна променлива Y е алармот за појасот:
 Y=0: Нема аларм. Се е во ред.
 Y=1: активирање на светлосен/звучен аларм!
Со логичкиот дизајн поставениот проблем опишан со зборови се
трансформира во соодветна логичка равенка како што е прикажано на сл. 1-31.
Логичкиот израз за појасот ќе биде Y=ABC* што означува дека алармот ќе се
активира ако возачот седнал на шоферското седиште, и го поставил клучот за
стартување на моторот на возилото и појасот на неговото седиште НЕ е поврзан.

Сл. 1-31. Едноставен пример (Y=ABC*) за премин од логички на физички дизајн


За да се реализира физичкиот дизајн најнапред се избираат потребните
дигитални интегрирани кола од сериите 74хх или 40хх, а потоа тие се поставуваат
на печатената плочка и се поврзуваат според логичката шема.
БУЛОВА АЛГЕБРА И ЛОГИЧКИ КОЛА 32

За дадениот пример се понудени две решенија и тоа на сл. 1-32 со


интегрираните кола 74х04 и 74х11, додека на сл. 1-33 за реализација на истиот
проблем се употребени интегрираните кола 74х04 и 74х08.

Сл. 1-32. Физички дизајн на логичката функција Y=ABC* со дик 74х04 и 74х11
Сл. 1-33. Физички дизајн на логичката функција Y=ABC* со дик 74х04 и 74х08

Со вториот едноставен пример се решава функцијата F=(A+B) C, што може


да се види од сликата сл. 1-34 која го следи претходно објаснетиот принцип.

Сл. 1-34. Логички и физички дизајн на функцијата F=(A+B) C со дик 74х32 и 74х08.
БУЛОВА АЛГЕБРА И ЛОГИЧКИ КОЛА 33

ПРАШАЊА И ЗАДАЧИ ЗА ПОВТОРУВАЊЕ


1-1. Наброј ги основните логички операции.
1-2. Според кој приоритет се извршуваат логичките операции при решавањето на
логичките изрази?
1-3. Дефинирај ги наведените логички функции со нивните таблици на
вистинитост и во аналитички облик со логички равенки: И, ИЛИ, НЕ
(комплементирање), НИ, НИЛИ, ЕКСИЛИ и ЕКСНИЛИ.
1-4. Наброј ги универзалните функции.
1-5. Изрази ги основните функции НЕ, И и ИЛИ со функцијата (а) НИ (б) НИЛИ.
1-6. Според кои методи може да се врши минимизирање на логичките фунции?
1-7. Нацртај ги логичките симболи на следниве логички кола: (а) И коло со три
влеза; (б) Инвертор; (в) НИ коло со два влеза; (г) НИЛИ коло со три влеза;
(д) ЕКСИЛИ коло со два влеза; (ѓ) ЕКСНИЛИ коло со два влеза; (е) Баферско
коло; (з) Бафер со три состојби; (ж) Бафер-инвертор со три состојби; (з)
билатерална (трансмисиона) порта.
1-8. Која е разликата помеѓу Бафер со три состојби и билатерална (трансмисиона)
порта?
1-9. Како се формира прекинувачка мрежа?
1-10. Која е разликата помеѓу комбинациона и секвенцијална прекинувачка
мрежа?
1-11. На сл. 1-35 е прикажана една комбинациона мрежа. За сите комбинации на
влезовите S1 и S0 нацртај ја таблицата на вистинитост и одреди ја излезната
функција Y. Од добиениот резултат кoментирај го однесувањето на мрежата.

A
Y
S0
S1
Сл. 1-35
1-12. За комбинационата мрежа прикажана на сл. 1-36 треба да се формира и
пополни табела на вистинитост со S1 и S2 како влезни променливи, а Y како
излезна. Врз основа на пополнетата табела објасни ја работата на мрежата.
1-13. За која комбинација на влезните променливи a, b и c излезот y на логичката
мрежа прикажана на сл. 1-37 ќе биде 1? Задачата реши ја а) логички
размислувајќи кога знаеш дека излезот од екс-или колото е 1 само ако
битовите се различни, додека излезот од екс-нили колото е 1 само ако
битовите се еднакви, и б) со анализа на дадената логичка шема од влезовите
до излезот.
БУЛОВА АЛГЕБРА И ЛОГИЧКИ КОЛА 34

A A
Y
B
Y

S0 S1
C
Сл. 1-36 Сл. 1-37
1-14. За комбинационата мрежа прикажана на сл. 1-38 треба да се пополни
придружната комбинациона таблица и потоа да се опише и објасни нејзината
функција и практична примена.

A B Контролни сигнали Излези


А В
DIR
0
0
1
OE
1 х

Сл. 1-38

A B C D
K 1-15. За логичката мрежа прикажана на
сл. 1-39 претпостави дека променливата К
еднаш има вредност 0, а еднаш 1 и за секој
случај одреди ги логичките нивоа на
излезните сигнали. Каква е улогата на
Y1 Y2 Y3 Y4 променливата К? Образложи!

Сл. 1-39
1-16. Реализирај ги инверторот, И и ИЛИ логичките кола со по два влеза само со
примена на (а) НИ; (б) НИЛИ кола со по два влеза.
1-17. Со примена на И-ИЛИ мрежа во две нивоа, а потоа со НИ кола, да се
реализираат функциите (а) Y  A, B, C , D   A B  B C D  D ; (б)
F  A, B, C , D   AB  BCD  C .
1-18. Со примена на ИЛИ-И мрежа во две нивоа, а потоа со НИЛИ кола, да се
реализираат функциите (а) Z  A, B, C , D   A  C A  B  D D ;
(б) F  A, B, C , D   A  B B  C  D D .
БУЛОВА АЛГЕБРА И ЛОГИЧКИ КОЛА 35

1-19. Функцијата Y(X1,X2,X3,X4)=X1X2+X1X3X4+X1X2X3X4 треба да се реализира (а)


само со примена на НИ логички кола, (б) при што секое коло да има само по
два влеза.
1-20. Функцијата Y(X1,X2,X3,X4)=(X1+X2)(X1+X2+X3)(X1+X2+X3+X4) да се реализира
(а) со користење на НИЛИ порти, (б) при што секоја да има само по 2 влеза.
1-21. Функцијата Y  X 3 , X 2 , X 1 , X 0    m0,1,2,5,7,12,13,14  да се претстави во СКНФ,
а потоа да се минимизира и реализира со (а) НИЛИ (б) НИ логички кола.
1-22. Примени го логичкиот и физичкиот дизајн на следните функции: (а) F=AB+C
и (б) F=AB+C* со претпоставка дека на располагање ти стојат дик 74х04,
74х08 и 74х32.
1-23. Aнализирај ја прикажаната логичка шема дадена на сл. 1-40 а) и б) така што
ќе ја одредиш логичката равенка на излезот Y во зависност од влезните
променливи А и B. Потоа примени го физичкиот дизајн за нејзина
реализација со претпоставка дека на располагање ти стојат дигиталните
интегрирани кола кои за тоа ти се потребни.

Сл. 1-40 а) Сл. 1-40 б)


БУЛОВА АЛГЕБРА И ЛОГИЧКИ КОЛА 36
2.
КОМБИНАЦИСКИ
МРЕЖИ
По изучувањето на оваа тематска целина
 ќе ја разберете логичката структура на следниве
комбинациски мрежи:
 коло за собирање и коло за одземање;
 кодер, декодер;
 мултиплексер, демултиплексер;
 ќе можете да анализирате поедноставни комбинациски
мрежи;
 ќе умеете да го опишувате начинот на функционирање на
поедноставни комбинациски мрежи;
 ќе можете да формирате посложени комбинациски мрежи;
 ќе можете да решавате задачи со комбинациски мрежи;
38 КОМБИНАЦИСКИ МРЕЖИ
КОМБИНАЦИСКИ МРЕЖИ 39

I) КОЛА ЗА РЕАЛИЗАЦИЈА НА
АРИТМЕТИЧКО - ЛОГИЧКИ ФУНКЦИИ

2.1. ВОВЕД
Голем број од сложените операции во дигиталната техника можат да се
извршат со погодно врзување на повеќе соодветни логички кола. Добиените
дигитални мрежи, во ситуација кога излезните сигнали од мрежата зависат само
од моменталните комбинации на вредности на влезните сигнали, претставуваат
комбинациски мрежи. Претходните состојби (вредности) на излезите од
мрежата немаат влијание врз нивните следни состојби, од каде произлегува дека
комбинациските мрежи немаат особина на помнење на информациите.
Комбинациските мрежи имаат многу широка примена заради што се
среќаваат скоро во секој дигитален уред. Во компјутерските системи овие мрежи
се користат за извршување на пресметувачките операции, аритметички или
логички, за генерирање на одредени нумерички вредности, за кодирање и
декодирање на информациите, за пронаоѓање на адресираните локации во
мемориите, за селектирање на одредени поврзувања итн. Разновидноста на
нивната примена е една од причините заради која комбинациските мрежи обично
се нарекуваат според функцијата што ја извршуваат, како на пример: собирач,
одземач, комплементер, компаратор, кодер, декодер, мултиплексер (селектор),
демултиплексер (дистрибутер) итн. Некои од комбинациските мрежи се така
организирани и реализирани за да можат да се користат во праксата како
мемориски компоненти чија содржина може само да се чита, иако немаат
мемориски ќелии.

2.2. КОЛА ЗА СОБИРАЊЕ И ОДЗЕМАЊЕ


Во дигиталните уреди, како што се на пример калкулаторите и
компјутерите, процесот на обработка на информациите се реализира со примена
на посебни кола коишто извршуваат аритметички и/или логички операции.
Во продолжение ќе ги опишеме основните комбинациски кола за
извршување на двете основни пресметувачки операции: собирање и одземање.
Бидејќи при реализација на одземањето се јавува потреба за комплементарните
вредности на броевите, ќе го анализираме и колото кое ја извршува логичката
операција комплементирање.

2.2.1. БИНАРНИ СОБИРАЧИ

Колото за собирање има базична улога при извршувањето на основните


аритметички операции. Да напоменеме и тоа дека дигитална сметачка машина
може да се конструира само со примена на едно коло за собирање кое ќе игра
улога на аритметичка единица. Другите три операции можат да се изведат со
програмирање, односно со задавање на инструкции со кои собирачот ќе се
искористи за реализирање на останатите три операции. Согледувајќи ја неговата
важност, најнапред ќе се задржиме на реализацијата на собирачот.
40 КОМБИНАЦИСКИ МРЕЖИ

Полусобирач: Основен модул којшто се користи во логичките аритметички


компоненти е полусобирачот (анг. half adder, HA). Улогата на полусобирачот е да
собере два бита, и како резултат да ја даде нивната сума, но воедно да генерира
и бит за пренос, според правилата за собирање дадени во табелата таб. 2-1.
Табелата на вистинитост на полусобирачот е прикажана како таб. 2-2, а неговиот
логички симбол е даден на сл. 2-1.
Од сл. 2-1 се гледа дека полусобирачот има два влеза за по еден бит A и B,
и два излеза: еден за битот на збирот (сумата) S и еден за битот на преносот
(анг. carry) C.

A B S C
0 + 0 =0 0 0 0 0 A S
0 + 1 =1 0 1 1 0 HA
1 + 0 =1 1 0 1 0
B C
1 + 1 =0 и пренос 1 . 1 1 0 1

Таб. 2-1. Правила за Таб. 2-2. Комбинациона Сл. 2-1. Логички симбол на
аритметичко собирање табела на полусобирач полусобирач

Битот на збирот ќе биде 0 (S = 0) ако битовите A и B се меѓусебно еднакви:


или двата се истовремено 0 или се 1. Во првиот случај битот за пренос ќе биде 0
(C = 0), а во вториот ќе се појави пренос (C = 1). Збирот ќе има вредност 1 (S =
1) само ако A и B имаат меѓусебно комплементарни вредности при што и за двата
случаи нема да има пренос (C = 0). Овие односи можат да се напишат во
аналитички облик, со следниве логички равенки:
S  AB  AB и C  AB (2-1)
Од нив произлегува и самата реализација на полусобирачот, која е
прикажана на сл. 2-2. Битот на сумата S се добива од ЕКС-ИЛИ коло чии два влеза
се A и B, додека битот на преносот C се формира од И колото со истите влезни
битови A и B.

A
S
B

Сл. 2-2. Логичка шема на полусобирач

Целосен (потполн) собирач: Со полусобирачот можат да се собираат


само еднобитни бинарни броеви од причини што кај него како влез не се јавува
преносот од собирањето на битовите од претходното ниво, т.е. од местото со
помала тежина.
КОМБИНАЦИСКИ МРЕЖИ 41

Колото што го решава овој проблем се вика целосен (потполн) собирач


(анг. full adder, FA), а неговиот логички симбол е прикажан на сл. 2-3. Од сликата
се гледа дека кај потполниот собирач постои додатен влез на кој се носи
преносот од претходното тежинско ниво. Ознаките доаѓаат оттаму што
претпоставуваме дека потполниот собирач ги собира битовите кои се наоѓаат на
одредено i-то место кај секој бинарен број. Табелата на вистинитост на целосниот
собирач е претставена како таб. 2-3.
Целосниот собирач може да се конструира со примена на два полу-
собирачи и едно ИЛИ коло како што е прикажано на сл. 2-4. Оваа реализација не
е најекономична и затоа целосниот собирач обично се изведува директно со
анализа на табелата на вистинитост која е дадена во таб. 2-3, од која
произлегуваат различни практични решенија.

Ai Bi Ci-1 Si Ci
Ai Si
0 0 0 0 0
Bi FA
0 0 1 1 0 C i-1 Ci
0 1 0 1 0
0 1 1 0 1 Сл. 2-3. Логички симбол на целосен собирач
1 0 0 1 0
Ci-1 Si
1 0 1 0 1 A S
1 1 0 0 1 Ai HA
1 1 1 1 1 A S B C Ci
HA
Bi B C
Таб. 2-3. Табела
на вистинитост
Сл. 2-4. Логичка шема на целосен бинарен собирач

Бинарен паралелен собирач: Со примена на повеќе потполни собирачи


може да се проектира собирач за повеќебитни броеви. Знаејќи дека со еден
потполн собирач може да се соберат само два бита, станува јасно дека бројот на
употребените целосни собирачи зависи од тоа колкава е должината на броевите
што се собираат.
На сл. 2-5 е прикажан еден паралелен собирач за позитивни 4 битни
броеви (броеви со должина од еден nibble). Оваа реализација користи 4 потполни
собирачи, при што потполниот собирач со кој се собираат двата најмалку
значајни битови (LSB-битовите) од броевите на влезот Ci-1 има логичка 0. Ова е од
причини што тие битови се од најниското позиционо ниво, па кај нив не може да
се јави пренос од претходното ниво, бидејќи такво ниво нема. Собирањето на
овие два бита не се остварува со употреба на полусобирач затоа што тогаш нема
да може да се изврши поврзување на повеќе вакви собирачи со цел реализација
на собирање на броеви со должина од два или повеќе нибли.
42 КОМБИНАЦИСКИ МРЕЖИ

A3 B3 A2 B2 A1 B1 A0 B0
V(0)
C-
Ai Bi Ci-1 Ai Bi Ci-1 Ai Bi Ci-1 Ai Bi Ci-1
FA FA FA FA
Ci Si Ci Si Ci Si Ci Si A3 A2 A1 A0 B 3 B 2 B1 B 0
C+ C-
C+ S 3 S 2 S1 S 0
S3 S2 S1 S0
а) б)
Сл. 2-5. Логичка структура и симболичка ознака на паралелен 4 битен собирач
При собирањето на два броја карактеристична е појавата на префрлување
(анг. overflow). Тоа фактички претставува пренос кој се појавува по собирањето
на двата најмногу значајни битови (MSB – битовите). Ако се појави 1 на излезот Ci
од потполниот собирач кој ги собира третите битови (последниот потполн
собирач), тоа значи дека добиениот збир е број кој не може да се претстави само
со четири бита, т.е. број што е поголем од 1111(2)=15(10) како најголем број што
може да се прикаже со 4 бита. Заради тоа оваа линија се означува како линија за
детекција на префрлувањето (С+).

2.2.2. КОЛО ЗА КОМПЛЕМЕНТИРАЊЕ

Пресметувачките операции во дигиталните уреди најчесто се изведуваат во


природниот бинарен броен систем или во некој од бинарните системи за
прикажување на броеви со предзнак. Според ова и операцијата комплементирање
ќе се извршува со различни логички кола, со конфигурација која ќе зависи од тоа
за кој систем станува збор. Во принцип, комплементарните вредности и во двата
система се добиваат на ист начин со примена на познатата равенка A =K-A за
првиот и за вториот комплемент на некој даден број A. Да се потсетиме дека
првиот комплемент се однесува на дополнување до најголемиот број во бројниот
систем, а вториот до опсегот на броеви на бројниот систем. Така, во бинарниот
броен систем постојат комплемент на единица (единечен комплемент, 1’s) и
комплемент на двојка (двоен комплемент, 2’s). Покрај ова, уште еднаш ќе потен-
цираме дека комплементарните вредности на броевите се од посебен интерес во
бинарниот броен систем, бидејќи со нив се претставуваат негативните броеви.
Единечниот комплемент се добива така што секој бит од бројот се заменува
со неговата комплементарна вредност. Да претпоставиме дека бинарниот број е
зададен во обликот A=A3A2A1A0, и како еден илустративен пример, да го земеме
бројот A=1011. Неговиот прв комплемент A(1s) ќе биде A(1s)=0100. Јасно е дека
добивањето на првиот комплемент може едноставно да се изведе со употреба на
инверторски (НЕ) кола, бидејќи A(1s )  A3 A2 A1 A0 .
Кога се применува сериски начин за извршување на оваа операција, тогаш
комплементот на зададениот број може да се добие само со еден инвертор.
Имено, на влезот од инверторот последователно се носат поодделните битови на
бројот A0, A1, A2, A3, a на излезот од инверторот ќе се добијат нивните
комплементарни вредности A0 , A1 , A2 , A3 . Серискиот начин на работа е прилично
бавен, заради што обично се применува паралелна обработка на податокот.
КОМБИНАЦИСКИ МРЕЖИ 43

При паралелната постапка бројот на инверторски кола мора да биде


еднаков со должината на зборот, т.е. со вкупниот број битови со кои се
претставува секој поединечен податок. Добивањето на единечниот комплемент
наједноставно се врши со употреба на ЕКСИЛИ логички кола, според шемата на
логичкиот комплементер прикажана на сл. 2-6.

A3 A2 A1 A0
M
(C/D) M Y
0 A

Y3 Y2 Y1 Y0 1 A

Сл. 2-6. Логичка шема на коло за комплементирање и функционална табела

За секој излез од ЕКСИЛИ колата важи равенката:


Yi  M Ai  M Ai (2-2)
Од оваа логичка функција произлегува дека за М=1 на излезите од
комплементорот Yi се добиваат поединечните комплементни вредности на секој
бит од бројот што се доведува на неговиот влез ( Yi  Ai ), а со тоа се добива
комплементот Y  A  A(1s ) на зададениот број А.

Од друга страна, ако на контролната линија М доведеме 0 (М=0) на


излезите Y од комплементерот се добиваат битовите на влезниот број А (Yi=Ai), а
со тоа и самиот број во директен (вистински) облик (Y=A).
Вториот комплемент на даден бинарен број се добива кога на единечниот
комплемент му се додаде 1. Така на пример, првиот комплемент на бројот A=0101
е A  A(1s ) =1010, а вториот комплемент A(2s)=1011. Според ова, мрежата за
реализација на вториот комплемент, покрај ЕКСИЛИ колата со кои се генерира
единечен комплемент ќе треба да користи и собирач за собирање на првиот
комплемент со логичка константа 1.

2.2.3. КОЛО ЗА ОДЗЕМАЊЕ


Аритметичките операции што треба да се извршат кај бинарните броеви со
знак, вообичаено се изведуваат со примена на комплементарната аритметика, со
примена на директните (вистинските) вредности на броевите и нивните
комплементи. Ваквиот начин на работа има одредени предности, посебно кога се
работи за операции со негативни броеви. Веќе знаеме дека негативните броеви
можат да се прикажат на три начини: со предзнак во SM системот, со прв
комплемент во DC системот или со вториот комплемент во RC системот. Во сите
овие случаи најзначајниот бит - MSB битот има вредност 1, со што и се означува
негативната вредност на било кој бинарен број во машинскиот јазик.
Изразувањето на негативните броеви во комплементарен облик овозможува
операцијата одземање да се сведе на собирање, при што со битот за знак се
манипулира на ист начин како и со вредносните битови.
44 КОМБИНАЦИСКИ МРЕЖИ

Во случај броевите да се претставени со својата директна вредност и бит за


предзнак во SM системот, тие како целина можат да се собираат само кога имаат
исти предзнаци. Оваа констатација очигледно посочува на оправданоста за
претставување на негативните броеви со помош на нивните комплементи.
Операциите на собирање и одземање со првиот комплемент во DC системот
се едноставни, бидејќи лесно се добива првиот комплемент на бројот, меѓутоа
при појавата на пренос во резултатот треба да се изврши собирање на
пренесената 1 со резултатот, така што доаѓа до отежнување при реализацијата на
споменатите операции.
Од друга страна, операциите собирање и одземање со примена на вториот
комплемент во RC системот се поедноставни отколку со првиот, бидејќи отпаѓа
постапката за додавање на 1 од преносот, така што работата со двојниот
комплемент е далеку повеќе застапена. Имено, одземањето на позитивните
броеви може да се оствари посредно така што ќе се соберат намаленикот и
вториот комплемент на намалителот. Постапката за посредно одземање е
прикажана на сл. 2-7 со примена на паралелниот четирибитен собирач од сл.
2-5 и на дигиталниот комплементер од сл. 2-6.

A3 A2 A1 A0 B3 B2 B1 B0
M
C+ C-
(S/A)
S 3 S 2 S1 S 0

Сл. 2-7. Логичка шема на мрежа за собирање и одземање


Оваа конфигурација овозможува собирање, ако на контролниот влез M
( S / A ) се донесе ниско ниво (М=0), додека одземање ако М=1. Првиот
четирибитен број се носи директно на влезовите од собирачот Ai, додека вториот
број се носи на влезовите Bi преку ЕКСИЛИ колата на колото за
комплементирање. Прикажаната логичка структура ќе работи како собирач ако на
контролната линија М се донесе ниско логичко ниво (М=0), така што ЕКСИЛИ
колата едноставно го пренесуваат четирибитниот собирок B до влезот од
собирачот во неизменет – директен облик.
Меѓутоа, ако на контролната линија М се донесе високо логичко ниво
(М=1), мрежата се трансформира во коло за одземање. Имено, во овој случај, на
излезите од ЕКСИЛИ колата се формира првиот комплемент на намалителот B, но
затоа што М=1, собирачот практично ја додава таа 1 со што вредноста на бројот
B се изразува во втор комплемент. Така на влезовите од интегрираната
компонента се присутни намаленикот А и вториот комплемент B(2s) на
намалителот B, т.е. неговата негативна вредност, па резултатот од собирањето
означен со S кој се добива на излезите Si каде i=1,2,3,4 е всушност разликата на
броевите A и B.
КОМБИНАЦИСКИ МРЕЖИ 45

2.3. ДИГИТАЛЕН КОМПАРАТОР


Од дигиталните уреди многу често се бара да извршат споредување на два
бинарни броја, така што како резултат се добива информација за тоа дали едниот
број е поголем, еднаков или помал од другиот. Логичката мрежа која ја реализира
оваа функција се вика дигитален или бинарен компаратор, а нејзината блок
шема е претставена на сл. 2-8.
Бинарните броевите што се споредуваат имаат еднаков број битови (n) кои
ги претставуваат влезовите во логичката компонента. Информацијата за тоа кој
од броевите е поголем, односно дали се тие еднакви меѓу себе, се добива преку
трите излезни линии, соодветно на функционалната таб. 2-4. Од табелата се
гледа дека соодветно на односот помеѓу двата броја, само на една од излезните
линии ќе се појави логичка 1.

A YA A B Y 0 Y A Y B

Y0 A=B 1 0 0
B YB A>B 0 1 0
A<B 0 0 1

Сл. 2-8. Логичка шема на дигитален компаратор Таб. 2-4. Функционална табела
Заради разбирање на суштината на проблемот, ќе претпоставиме
наједноставен случај: споредување на два еднобитни бинарни броја A и B. Врз
основа на функционалната табела (таб. 2-4), може да се изведе табелата на
вистинитост на оваа логичка компонента која е дадена како таб. 2-5.
Логичката шема на еднобитниот компаратор кој врши споредување на
битот A со битот B, е прикажана на сл. 2-9. На сликата покрај единственото
ЕКСНИЛИ логичко коло, се применети и два инвертори и две И логички кола.
Централното место во средината на логичката шема го зазема ЕКСНИЛИ
логичкото коло бидејќи ова коло препознава еднакви влезни комбинации. Тоа е
очигледно од неговата табела на вистинитост (таб. 2-5) од која лесно може да се
заклучи дека ЕКСНИЛИ колото фактички игра улога на детектор на еднаквост,
затоа што неговиот излез е 1 само кога и двата влезни битови се меѓусебно
еднакви. Од друга страна, излезот ќе биде 0 само ако битовите се различни меѓу
себе.
Искажаниот услов може да се запише со следнава логичка равенка:

1 ако A=B ,
Y0  ( A  B)  AB  AB  (2-3)
0 ако AB.

Условот A>B ќе биде исполнет со равенката Y A  A B , бидејќи само кога


А=1 и B=0 се добива YA=1. Слично, условот A<B ќе биде исполнет согласно со
равенката YB  AB . Во овој случај YB =1, ако и само ако А=0 и B=1.
46 КОМБИНАЦИСКИ МРЕЖИ

A B Y 0 Y A Y B

0 0 1 0 0 A YA
0 1 0 0 1 Y0
B
1 0 0 1 0 YB
1 1 1 0 0

Таб. 2-5. Таблица на


вистинитост а) б)
Сл. 2-9. Логичка шема на еднобитен компаратор и негов симбол

Презентираната анализа и принцип на резонирање може понатаму да се


развива и надоградува заради реализација на кола за споредување на два
повеќебитни броја.
Како компаратор на два четирибитни бинарни броеви A и B, може да се
употреби и дигиталната мрежа за собирање и одземање од сл. 2-7. Имено, ако
A=B, сите излези Si каде i=1,2,3,4 ќе се наоѓаат на ниско логичко ниво, т.е. ќе
бидат 0-и. (Si=0). Меѓутоа, ако A>B на преносот од највисокото ниво, т.е. на
излезот (C+) ќе се појави логичка 1, додека при A<B на оваа излезна линија ќе се
појави логичка 0.

II) ПРЕКИНУВАЧКИ МАТРИЦИ

2.4. ВОВЕД
Прекинувачките матрици се посложени комбинациски логичко-
прекинувачки мрежи со поголем број влезови и излези. За нив е најважно тоа што
логичките состојби на било кој излез од мрежата зависат само од моменталните
логички состојби на влезовите. Прекинувачките матрици се составени од
прекинувачки елементи кои се наредени во низи, по редици и колони, така што
формираат матрични структури. Oсвен ова, и самите прекинувачки функции што
се реализираат со овие мрежи се дадени во облик на матрици. Меѓутоа, овие
логички мрежи многу почесто се сретнуваат со нивните конкретни функционални
имиња, од кои како најпознати ќе ги наведеме: кодерите, декодерите,
мултиплексерите и демултиплексерите.
Прекинувачките матрици можат да се реализираат со примена на логички
кола, но многу почесто, можат да се најдат и комплетни решенија што се
изведени во техника на интегрирани кола.
КОМБИНАЦИСКИ МРЕЖИ 47

2.5. КОДЕРИ И ДЕКОДЕРИ


Кодерот (анг. е логичка мрежа која врши кодирање
encoder)
(претворување) на некоја нумеричка информација од еден броен систем кој е
примарен во друг, секундарен, броен систем или код. Како примарен броен
систем се подразбира декадниот систем, додека секундарен систем најчесто е
природниот бинарен броен систем, или некој бинарен код како на пр. природниот
BCD код (NBCD), т.е. 8421-кодот, или некој друг.
И декодерот врши претвоуврање, меѓутоа во обратна насока. Тој ја
декодира дигиталната информација од секундарниот броен систем во
примарниот, т.е. податокот запишан во бинарна форма го трансформира во
декаден облик.
Покрај овие два типа комбинациски мрежи постојат и логички мрежи што
се викаат конвертори на код. Тие ја преведуваат информацијата од еден
секундарен систем во друг секундарен систем или код.
Со текот на времето и развојот на дигиталните системи се дојде до тоа
декадниот систем да не е секогаш примарен систем, така што една иста логичка
мрежа за еден систем претставува кодер, за друг декодер, а за трет конвертор на
код. Затоа попрактично е за сите три типа кола да се користи еден заеднички
назив: преведувач или транслатор на код. Меѓутоа, во практиката и понатаму
најчесто се применуваат класичните функционални имиња кои најпрво ги
дефиниравме: кодер или декодер. Од излагањето што следи ќе видиме дека
кодерот е всушност ИЛИ матрична структура, додека декодерот е матрична
структура со И кола.
2.5.1. КОДЕР
Пред да ја започнеме анализата на кодерот, за кратко ќе се фокусираме на
сл. 2-10 која претставува една многу едноставна блок-шема на калкулатор. Во
овој дигитален систем декадниот влез од тастатурата мора да биде претворен во
бинарен облик за да може понатаму како влезен податок да се обработува во
процесорот.

ОБРАБОТКА
ВЛЕЗ ИЗЛЕЗ
ПОДАТОЦИ ЦПЕ, РЕЗУЛТАТИ
7 8 9
МЕМОРИЈА
4 5 6
КОДЕР И ДЕКОДЕР
1 2 3 ДРУГА
0 ЛОГИКА

ТАСТАТУРА 7 - СЕГМЕНТЕН
ЕКРАН

Сл. 2-10. Местото на кодерот во наједноставна блок-шема на калкулатор

Најчеста постапка за изразување на декадните цифри е кодирањето во


познатиот NBCD код (8421 или природен бинарен код), чија кодна табела е
означена со таб. 3-6. Дигиталната компонента за оваа намена е позната како
декаден-во-NBCD кодер (DEC/NBCD). Тој треба да има десет влезови, по еден за
секоја декадна цифра и четири излези на кои се добиваат четирите битови D, C, B
и A на NBCD кодниот збор.
48 КОМБИНАЦИСКИ МРЕЖИ

Изборот и поврзувањето на прекинувачките елементи во формирањето на


кодерската матрица ќе го објасниме со примерот за добивање на третиот бит (B)
во кодниот NBCD збор. Од таб. 2-6 лесно се забележува дека битот B ќе има
вредност 1 (B=1) ако се активира влезот на цифрата 2, или цифрата 3, или ако се
појави цифрата 6, или ако се активира линијата на цифрата 7. Од анализата е
јасно дека излезот B може да се реализира со едно ИЛИ логичко коло што има
четири влеза и тоа линиите 2, 3, 6 и 7. Слично се размислува и се донесува
заклучок за изведбата на другите три бита: D, C, A.
Декад. 8421 (NBCD)
цифра D C B A
0 0 0 0 0
1 0 0 0 1
2 0 0 1 0
3 0 0 1 1
4 0 1 0 0
5 0 1 0 1
6 0 1 1 0
7 0 1 1 1
8 1 0 0 0
9 1 0 0 1
Таб . 2-6. Кодна таблица на 8421 (NBCD) кодот

На сл. 2-11 е прикажана една реализација на DEC/NBCD кодер, изведена со


употреба на еднонивовска матрична структура формирана од ИЛИ логички кола.
Од сликата се гледа дека кај овој кодер влезовите се активни на високо ниво,
бидејќи со притиснување на еден од тастерите на соодветната влезна линија
доведуваме логичка 1, т.е. напон на напојување +VCC. Така со притиснување на
одреден тастер на некоја од влезните линии се побудуваат соодветните ИЛИ кола
и на нивните излези се добива високо логичко ниво (1), додека на останатите
излези од ИЛИ колата кои не се побудени се јавува ниско логичко ниво (0). На
овој начин се добива NBCD кодниот збор кој одговара на декадната цифра која се
наоѓа на тастерот што беше активиран.
На сл. 2-12 е прикажан вака реализираниот DEC/NBCD кодер како посебна
логичка компонента.
Од претходните слики се гледа дека DEC/NBCD кодерот има 10 влезови и 4
излези. Знаејќи дека со 4 бита може да се кодираат 24=16 различни комбинации,
може да се заклучи дека кај DEC/NBCD кодерот остануваат неискористени 6 од
можните 16 излезни комбинации (состојби) и дека тие никогаш нема да се појават
на излезот од мрежата.
Имајќи го предвид кажаното, може да се заклучи дека во општ случај кодер
со N=2n влеза, максимално може да има n излези. Во врска со ова, на претходната
логичка шема може да ѝ се додадат уште шест влезови според табелата на
хексадецималниот броен систем со што би се добил хексадецимален-во-бинарен
кодер (HEX/BIN).
КОМБИНАЦИСКИ МРЕЖИ 49

+VCC

0 1 2 3 4 5 6 7 8 9

D
+VCC
C 9 +VCC D
8 C
7 B
B 6 A
5
4
A DEC/NBCD
3 КОДЕР
2
1
0
R R R R R R R R R R GND

Сл. 2-11. Логичка шема на DEC/NBCD кодер Сл. 2-12. Блок шема на DEC/NBCD кодер
Слично, ако станува збор за октален-во-бинарен кодер може (OCT/BIN) да
се примени табелата за конверзија од октален во бинарен броен систем и да се
добие логичката структура која е прикажана на сл. 2-13 чија симболичка ознака е
дадена на сл. 2-14. Комбинационата табела на вистинитост таб. 2-7 го
дообјаснува принципот на работа на ваквиот кодер.

+VCC

0 1 2 3 4 5 6 7

Y2
X0
X1
Y1 X2 Y0
X3 N/n Y1
КОДЕР
Yn-1
Y0
X N-1

R R R R R R R R

Сл. 2-13 Логичка структура Сл 2-14. Симболичка ознака

OCT/BIN кодер
50 КОМБИНАЦИСКИ МРЕЖИ

Окталниот-во-бинарен кодер ќе има осум влезни линии I0 до I7, при што


секоја линија презентира по една октална цифра и три излезни линии Y2, Y1 и Y0
на кои ќе се добиваат тробитните бинарни еквивалентни вредности.

Влезови Излези Индекс


I0 I1 I2 I3 I4 I5 I6 I7 Y2 Y1 Y0 i
1 0 0 0 0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0 0 1 1
0 0 1 0 0 0 0 0 0 1 0 2
0 0 0 1 0 0 0 0 0 1 1 3
0 0 0 0 1 0 0 0 1 0 0 4
0 0 0 0 0 1 0 0 1 0 1 5
0 0 0 0 0 0 1 0 1 1 0 6
0 0 0 0 0 0 0 1 1 1 1 7

Таб. 2-7. Комбинациона табела на OCT/BIN кодер

Логичките равенки со кои се опишува принципот на работа на кодерот се:

Y0 = I1 +I3 +I5 +I7; Y1 = I2 +I3 +I6 +I7; Y2 = I4 +I5 +I6 +I7; (2-4)

Општо земено, најважно за кодерот е да се забележи дека за секоја од


n
N=2 –те влезни линии на n-те излезни линии треба да се генерира единствен
бинарен коден збор според конкретната кодна табела.

Кај кодерите реализирани според сл. 2-10 и сл. 2-12 како проблем се јавува
фактот што на излезот се добиваат сите нули како да е активирана влезната
линија за цифрата 0, а всушност не е активирана ниту една влезна линија.
Излезниот резултат е ист и ако навистина се активира тастерот на 0-та линија.
Заради елиминирање на овој проблем на кодерот може да му се додаде уште една
влезна линија со која ќе може да се контролира неговото овозможување да
работи или не. Покрај неа, и на излезот може да се додаде уште една линија која
ќе има вредност 1 ако е притиснат било кој од влезните тастери, односно
вредност 0 ако ниту еден од влезовите не е активен.

Имајќи ја во предвид досегашната анализа, може да се заклучи и тоа дека


при реализацијата на презентираните кодери беше претпоставено дека во даден
момент само една од влезните линии можеше да се наоѓа на високо ниво, т.е. на
логичка 1. Заради ова, евентуалното истовремено притиснување на два или
повеќе тастери кај кодерите од сл. 2-10 и сл. 2-12 ќе предизвикаше грешка во
работата на кодерот и појава на неважечки (нелегални, нелегитимни) излезни
комбинации.
КОМБИНАЦИСКИ МРЕЖИ 51

2.5.2. ПРИОРИТЕТЕН КОДЕР

Недостатокот на претходно анализираните кодери да генерираат грешка


при активирање на два или повеќе влезови се надминува со т.н. кодери со
приоритет. Во практиката, ваквите логички компоненти најчесто се изведуваат во
интегрирана техника. Кај приоритетните кодери ако истовремено се притиснат
два или повеќе тастери, на излезот ќе се добие кодната комбинација која
одговара на оној тастер од притиснатите што има поголема нумеричка вредност.
Според ова, кодерите со приоритет ќе имаат модификувана табела на вистинитост
како што е на пр. табелата на OCT/BIN (окталниот-во-бинарен) кодер со приоритет
презентирана како таб. 2-8.

Влезови Излези
I0 I1 I2 I3 I4 I5 I6 I7 Y2 Y1 Y0 V
0 0 0 0 0 0 0 0 x x x 0
1 0 0 0 0 0 0 0 0 0 0 1
x 1 0 0 0 0 0 0 0 0 1 1
x x 1 0 0 0 0 0 0 1 0 1
x x x 1 0 0 0 0 0 1 1 1
x x x x 1 0 0 0 1 0 0 1
x x x x x 1 0 0 1 0 1 1
x x x x x x 1 0 1 1 0 1
x x x x x x x 1 1 1 1 1
Таб. 2-8. Комбинациона табела на OCT/BIN кодер со приоритет
Ако добро ја погледнеме оваа табела, ќе забележиме дека без оглед на
логичките состојби на другите влезови, на излезот секогаш ќе се добива кодниот
збор кој одговара на онаа линија од активираните која има најголема нумеричка
вредност. Во презентираната табела на вистинитост се појавува уште една
излезна линија означена со V која укажува на тоа дали некоја од влезните линии
е активна или не. Логичката вредност присутна на овој излез овозможува да се
прави разлика помеѓу случаите кога е активирана нултата влезна линија (кога е
притиснат 0-иот тастер) и кога не е активиран ниту еден влез.

2.5.3. ДЕКОДЕР
Бидејќи сите информации во дигиталната обработка се претставуваат во
бинарен облик, јасно е дека тие податоци треба да бидат преведени во декадни
броеви секогаш кога нив ќе треба да ги употреби човекот. Постапката со која се
преведуваат бинарните кодови во друг облик што е попогоден за понатамошна
употреба се вика декодирање, а самата дигитална компонента која тоа го
реализира се вика декодер.
52 КОМБИНАЦИСКИ МРЕЖИ

Декодирањето на бинарните податоци


D 0 D 0 во декадни броеви е процедура што е
C 1 C 1
B 2 B 2 инверзна на кодирањето. Заради ова, блок-
A 3 A 3 шемата на NBCD-во-декадниот декодер
4 4
DEC/NBCD 5 DEC/NBCD 5
(NBCD/DEC) која е дадена на сл. 2-15 а) ќе има
ДЕКОДЕР 6
7
ДЕКОДЕР 6
7
десет излези, а четири влеза. Излезите се
8 8 означени од Y0 до Y9, а влезовите се D, C, B, A.
9 9
Излезите се активни на високо ниво, што
a) симболичка ознака значи дека логичка 1 ќе се појави само на оној
излез чиј влезен NBCD коден збор ја
Сл.2-15. NBCD/DEC декодер
претставува нумеричката вредност на тој
излез во бинарен облик.
D C B A Една реализација на NBCD/DEC декодер е
прикажана на сл. 2-15 б). Декодерската
матрица е добиена со следнава анализа.
Активен, т.е. да оди на високо ниво на логичка
Y0 1, треба да биде оној излез што одговара на
конкретната NBCD кодирана декадна цифра
Y1 која е донесена на влезот од декодерот. Така
на пр. на излезот Y6 ќе треба да се појави 1
Y2 само ако на влезот се јави комбинацијата
DCBA = 0110, т.е. ако D =1 и C=1 и B=1 и
Y3
A =1 ( Y6  DCB A ). Ова значи дека излезното
Y4 логичко коло ќе биде И коло со четири влеза
при што C и B се носат директно, а D и A
Y5 комплементарно. Поврзувањето за останатите
девет цифри се добива со размислување на
Y6
аналоген начин со што конечно се добива
Y7 еднонивовска матрична И структура.
Декодерот од сл. 2-15 б) ги отфрла
Y8 погрешните информации затоа што ако на
влезот се појави неважечка комбинација, т.е.
Y9
коден збор кој не претставува NBCD цифра,
како што се: 1010, 1011, 1100, 1101, 1110 или
б) логичка шема (структура) 1111, тогаш нема да биде активна ниту една
Сл. 2-15. NBCD/DEC декодер
излезна линија..

Y0 Во праксата се среќаваат и такви изведби


Y1
I0 на декодери кои не ги отфрлуваат погрешните
I1 n/N Y2
ДЕКОДЕР влезни комбинации.
I n-1
На сликата 2.16. е даден логичкиот
YN-1
симбол на декодер.
Сл. 2-16. Логички симбол на декодер
КОМБИНАЦИСКИ МРЕЖИ 53

Знаејќи дека со 4 бита може да се кодираат 24=16 различни комбинации,


станува јасно дека кај NBCD/DEC декодерот остануваат неискористени 6 од
можните 16 излезни комбинации (состојби). Во врска со ова, може да се заклучи
дека во општ случај декодер со n влеза може максимално да има N=2n излези.
Така на пример, на претходната логичка структура може да и се додадат уште
шест влезови според табелата на хекса-децималниот броен систем со што би се
добил бинарен-во-хексадецимален (BIN/HEX) декодер.

Y0 = CBA Слично, ако станува збор за


бинарен-во-октален (BIN/OCT)
декодер може да се примени табелата
Y1 = CBA за конверзија од октален во бинарен
броен систем и да се добие логичката
Y2 = CBA структура која е прикажана на сл. 2-
17, чија блок шема е даден на сл. 2-
18. Комбинационата табела 2-9
Y3 = CBA
дополнително го објаснува принципот
на работа на ваквиот кодер.
Y4 = CBA Бинарниот-во-октален
(BIN/OCT) декодер има три влезни
Y5 = CBA линии C, B, A и осум излезни линии:
од Y0 до Y7. Логичките равенки со кои
се опишува принципот на работа на
Y6 = CBA
декодерот се дадени покрај секоја
излезна линија. За секоја влезна
Y7 = CBA комбинација постои еднозначно
определена излезна линија, така што
кога на влезот ќе се појави одреден
коден збор на излезот се активира
онаа излезна линија чија бројна
C B A E вредност одговара на влезниот
Сл. 2-17. Логичка шема на BIN/OCT декодер бинарен еквивалент. Така секоја од
со излези активни на високо ниво можните 2n влезни бинарни
комбинации продуцира активирање на
Y0 различна излезна линија според
C Y1 табелата на окталниот броен систем.
B Y2 Практично реализираните деко-
A Y3 дери најчесто содржат уште една
Y4
влезна линија со која се овозможува
E Y5
3/8 Y6 работата на декодерот. Тоа се
ДЕКОДЕР Y7 остварува така што на секое излезно
И коло му се додава уште по еден
Сл. 2-18. Блок шема на BIN/OCT декодер со влез кој се приклучува на ваквата
излези активни на високо ниво влезна линија за дозвола на работа.
54 КОМБИНАЦИСКИ МРЕЖИ

Влезови Излези
E C B A Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7

1 x x x 0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0 0 0 0 0
0 0 0 1 0 1 0 0 0 0 0 0
0 0 1 0 0 0 1 0 0 0 0 0
0 0 1 1 0 0 0 1 0 0 0 0
0 1 0 0 0 0 0 0 1 0 0 0
0 1 0 1 0 0 0 0 0 1 0 0
0 1 1 0 0 0 0 0 0 0 1 0
0 1 1 1 0 0 0 0 0 0 0 1
Таб. 2-9. Комбинациона табела на BIN/OCT декодер

Влезот за дозвола E (анг. enable) е активен ако на него се доведе логичка


0 и во тој случај декодерот најнормално работи. Меѓутоа, ако на овој влез ( E ) се
донесе високо логичко ниво, т.е. 1, ниту една излезна линија, а со тоа ниту еден
минтерм нема да биде селектиран бидејќи сите излези ќе бидат 0-и. Декодерите
кои имаат влез E за овозможување на работата можат да се поврзуваат заради
добивање на декодери со поголем број на влезови и излези.
Доколку има потреба излезите да бидат активни на ниско ниво, тогаш И
колата ќе треба да се заменат со НИ кола, или на секој излез ќе се додаде по
еден инвертор со што секој од излезните минтерми ќе биде даден во
комплементарен облик. Во овој случај на ниско ниво (логичка 0) ќе се наоѓа само
оној излез чија бројна вредност соодветствува на влезната бинарна комбинација,
додека сите останати излези ќе бидат 1-и.
За декодерите е многу важно да се каже и тоа дека секоја логичка функција
од n – променливи која е зададена во ДНФ облик како сума од минтерми може да
се реализира со примена на еден n-во-2n декодер кој ќе ги генерира минтермите и
едно ИЛИ логичко коло кое ќе го формира нивниот збир. Излезните линии од
декодерот одговараат на минтермите на функцијата кои ќе се искористат како
влезови во ИЛИ колото на чиј излез ќе се добие бараната логичка функција.
Дополнително, секоја комбинациона мрежа која има n-влезови и m-излези може
да се реализира со еден n-во-2n декодер и m ИЛИ логички кола. Како што ќе
видиме подоцна, декодерите со n-во-2n логичка структура имаат огромна примена
и се составен дел при реализацијата на ROM и RAM мемориските компоненти.

2.5.4. NBCD-ВО-7 СЕГМЕНТЕН ДЕКОДЕР


Во практиката многу често се сретнува NBCD-во-7 сегментен декодер
(NBCD/7S). Ова е затоа што најголем дел од дигиталните уреди резултатите ги
покажуваат на 7-сегментен екран со светлечки LED диоди или со течни кристали
(LCD).
КОМБИНАЦИСКИ МРЕЖИ 55

Кажаното многу едноставно може да се илустрира со начинот на којшто


калкулаторот ги прикажува резултатите добиени од извршената обработка. На
неговата блок-шема од сл. 2-19 се гледа дека NBCD кодираните излезни податоци
од процесорот мора да се декодираат во таков облик што секоја декадна цифра
ќе може да се прикаже на излезниот 7-сегментен дисплеј.
ОБРАБОТКА
ВЛЕЗ ИЗЛЕЗ
ПОДАТОЦИ ЦПЕ, РЕЗУЛТАТИ
7 8 9
МЕМОРИЈА
4 5 6
КОДЕР И ДЕКОДЕР
1 2 3 ДРУГА
0 ЛОГИКА

ТАСТАТУРА 7 - СЕГМЕНТЕН
ЕКРАН

Сл. 2-19. Местото на декодерот во наједноставна блок-шема на калкулатор


Ако претпоставиме дека дисплејот има заедничка анода, тогаш излезите од
NBCD/7S декодерот треба да се активни ако се наоѓаат на ниско ниво.
Функционалната табела 2-10 претставува основа за синтеза на логичката мрежа
на декодерот која може да се добие со минимизација на секоја од седумте
сегменти како функции: a, b, c, d, e f, g, кои зависат од четирите битови на NBCD
кодниот збор како влезни променливи: D, C, B и A.

BCD Дек. LED Екран со заедничка анода


8421 циф. екран a b c d e f g

0000 0 0 0 0 0 0 0 1

0001 1 1 0 0 1 1 1 1

0010 2 0 0 1 0 0 1 0

0011 3 0 0 0 0 1 1 0

0100 4 1 0 0 1 1 0 0

0101 5 0 1 0 0 1 0 0

0110 6 0 1 0 0 0 0 0

0111 7 0 0 0 1 1 1 1

1000 8 0 0 0 0 0 0 0

1001 9 0 0 0 0 1 0 0

Таб. 2-10. Табела на кодовите за седумсегментен екран со LED диоди и заедничка анода
Ако станува збор за поврзување со 7-сегментен дисплеј со заедничка
катода тогаш излезите од NBCD/7S декодерот ќе треба да се активни на високо
ниво на логичка 1.
56 КОМБИНАЦИСКИ МРЕЖИ

2.6. МУЛТИПЛЕКСЕР И ДЕМУЛТИПЛЕКСЕР


Мултиплексерот и демултиплексерот се користат во оние уреди со кои се
врши претворување на податоците од сериска во паралелна форма, и обратно.
Мултиплексерот во дигиталната електроника има улога на преклопник со
повеќе положби. Имено, тој има поголем број на влезови за бинарните податоци,
а само еден податочен излез. Податоците можат да дојдат на било кој влез, а на
излез се избира еден од нив. Кој сигнал ќе се појави на излезот зависи од тоа
каква е состојбата на адресните (селекционите) влезови на мултиплексерот.
Заради начинот на работа мултиплексерите се викаат и селектори.
Демултиплексерот има инверзна задача: бинарниот податок кој доаѓа на
единствениот влез, треба да го проследи до еден од повеќето излези. И во овој
случај постојат адресни линии со кои се врши селекција за тоа на која излезна
линија ќе се појави податокот. Заради начинот на работа демултиплексерот се
вика и дистрибутер.

2.6.1. МУЛТИПЛЕКСЕР

Воопштено може да се каже дека мултиплексерот е таква прекинувачка


мрежа, која врши избор на една од повеќе влезни линии (N) и битот која е
присутен на таа линија го пренесува на единствениот излез (Y). Покрај влезните
линии за податоци, кај мултиплексерот постојат и т.н. влезни селекциони линии
(n) со кои се врши избор на конкретната влезна линија чија логичка состојба
треба да се пренесе на излезот. Односот помеѓу бројот на влезните линии за
податоци (N) и бројот на линиите за селектирање (n) е даден со равенката
n
N=2 . (2-5)
На овој начин, ако мултиплексерот има n адресни линии, тогаш со нив може
да се врши избор на еден од N=2n влезови. На сл. 2-20 а) е прикажана
еквивалентната шема на мултиплексерот како контролиран прекинувач, а на сл.2
-20 б) неговиот симбол.
КОНТРОЛА
X0
X1
X0
X2 Y X1
X2
Y

X N-1
X N-1

а) Еквивалентна шема
S0 S1 Sn-1

Сл. 2-20. Мултиплексер б) Логички симбол

Наједноставната реализација на мултиплексер со примена на елементарни


логички кола се однесува на 2-на-1 (двоположбен) мултиплексер. Нејзината
логичка шема е дадена на сл. 2-21. Излезното ИЛИ коло проследува еден од двата
сигнали, а кој сигнал ќе биде пропуштен се селектира со состојбата на влезот S
кој ги контролира влезните И кола. Ако S=0 на излезот Y ќе се појави сигналот од
влезот I0, додека ако S=1, сигналот од влезот I1.
КОМБИНАЦИСКИ МРЕЖИ 57

I0
S Y
Y
0 I0 I1
1 I1

Tаб. 2.11. Функционална S


таблица на 2-во-1 мултиплексер
Сл. 2-21. Логичка шема на 2-во-1 мултиплексер
На сл. 2-22 е дадена логичката структура на 4-на-1 (четириположбен)
мултиплексер. Тој има четири влеза за податоци, еден излез и две адресни линии.
Принципот на работа може да се илустрира со табелата на вистинитост таб. 2-12.

I0

I1

Y Е S1 S0 Y
I2
0 x x 0

I3
0 0 I0
0 1 I1
1
1 0 I2
S1 1 1 I3
S0

Сл. 2-22. Логичка шема на 4-во-1 Таб. 2-12. Табела на вистинитост на 4-во-
мултиплексер 1 мултиплексер

На прикажаната логичка шема може да се види присуството на уште еден


влезен сигнал. Тоа е контролниот сигнал за овозможување (дозвола) на работа
означен со Е. Овој управувачки сигнал се јавува кај мултиплексерите кои се
изведуваат како монолитни интегрирани кола. Со контролната линија практично
се вклучува или исклучува интегрираното коло. Имено, мултиплексерот активно
ќе работи само ако Е=1 со што тој добива дозвола за работа и функционира
најнормално според претходно дадената таб. 2-12. Така, неговото однесување ќе
зависи од влезни комбинации доведени на селекционите влезови:
 Ако S1S0=00 (0DEC) на излезот Y ќе се појави логичкото ниво на влезот I0;
 Ако S1S0=01 (1DEC) на излезот Y ќе се појави логичкото ниво на влезот I1;
 Ако S1S0=10 (2DEC) на излезот Y ќе се појави логичкото ниво на влезот I2;
 Ако S1S0=11 (3DEC) на излезот Y ќе се појави логичкото ниво на влезот I3.
Меѓутоа, ако на управувачкиот влез Е се донесе ниско ниво (Е=0), излезот е
секогаш нула (Y=0). Контролната линија E има важна улога и заради тоа што со
неа може да се оствари поврзување на повеќе исти чипови со цел формирање на
мултиплексери со поголем број на влезови.
58 КОМБИНАЦИСКИ МРЕЖИ

Сите досега наведени мултиплексери вршеа избор на еден податочен влез


од повеќето расположиви. Меѓутоа, покрај ваквите мултиплексери во интегрирана
техника се изведуваат и мултиплексери кои вршат селекција на една влезна група
податочни линии од повеќето такви групи што се јавуваат како можни влезови.
Овие мултиплексери имаат онолку излези, колку што линии содржи секоја од
влезните групи. Логичкиот блок-дијаграм на еден ваков мултиплексер е даден на
сл. 2-23 а), симболот на сл. 2-23 б), а неговиот еквивалент како контролиран
механички pрекинувач со повеќе положби на сл. 2-23 в). Оваа селекторска
матрица претставува четирикратен двоположбен мултиплексер, бидејќи на излез
дава една од двете влезни групи што содржат по четири информациони линии.
Колото има осум влеза, четири излеза, еден селекторски влез и еден влез
за контрола. Ако влезот S=0, тогаш на излезите Y0, Y1, Y2, Y3 ќе се појават
податоците присутни на влезовите A 0, A 1, A 2, A3 , додека кога S=1 на излезите ќе
се појават B0, B1, B2, B3 . Се разбира дека при ова контролниот влез означен со E
или STB треба да се наоѓа на ниско ниво и мора да важи E =0 или STB =0.

A0 Y0
A0 A1 Y1
A2 Y2
A3 Y3
Y0
B0 B0
B1
B2
A1
B3

Y1 E (STB)
B1

A2 S

б) Блок шема
Y2
B2

A0
A3 Y0
B0
Y3 A1
B3 Y1
B1

A2
Y2
S B2
A3
E (STB) Y3
B3

а) Логичка шема в) Механички еквивалент

Сл. 2-23. Четирикратен двоположбен мултиплексер

2.6.2. ДЕМУЛТИПЛЕКСЕР

Демултиплексерот го прима податокот преку единствениот влез, и истиот


го пренесува до еден од повеќето постоечки излези. Конкретниот излез што
треба да ја добие влезната информација се избира со помош на линии за
селекција, слично како кај мултиплексерот.
КОМБИНАЦИСКИ МРЕЖИ 59

И кај демултиплексерот важи равенката (2-5) со единствена разлика што


n
сега со n-те адресни линии се врши избор на една од N-те (N=2 ) излезни, а не
влезни линии. Сликата сл. 2-24 а) го прикажува механичкиот еквивалент на
демултиплексерот, а сл. 2-24 б) неговата симболичка ознака.
КОНТРОЛА

Y0
Y0
Y1 Y1
Y2 Y2
A A

YN-1
YN-1

S0 S1 Sn-1

а) Еквивалентна шема б) Логички симбол


Сл. 2-24. Демултиплексер
Наједноставната реализација на демултиплексер е прикажана на сл.
2-25 а). Тоа е 1-на-2 (двоположбен) демултиплексер. Влезниот сигнал А ќе биде
проследен на излезот Y0, ако на селекторскиот влез постои ниско ниво, т.е. ако
S=0. Меѓутоа, ако на линијата за селекција доведеме високо ниво (S=1), тогаш
влезниот податок ќе се појави на излезот Y1. Од сликата се забележува дека
бројот на излезните И кола е еднаков со бројот на излези од демултиплексерот и
дека влезниот податок што треба да се проследи до еден од излезите се доведува
истовремено на по еден влез од секое И коло. Отворањето на конкретното И коло
се контролира преку логичката состојба на селекционата линија која на влезот од
едното И коло се носи во директен облик, а кај другото во комплементарен облик
преку инвертор. На овој начин е остварена целта: во даден момент кога ќе се
побуди влезот за селекција (S) да бидe oтворено само едно од двете И кола и тоа
она коло за кое е наменет битот присутен на влезот А.
A A
Y0
Y0

Y1
Y1
S
S E

а) логичка шема б) со влез за овозможување на работата


Сл. 2-25. 1-на-2 Демултиплексер
На сл. 2-25 б) е прикажана реализација на истиот демултиплексер со влез
за дозвола за (овозможување на) работа Е, активен на високо: ако Е=1
демултиплексерот функционира најнормално, но ако Е=0 сите излези се на
логичка 0. Следејќи го овој принцип, може да се изведе и логичката структура на
1-на-4 (четириположбен) демултиплексер која е прикажана на сл. 2-26. Начинот
на работа на компонентата најлесно се објаснува преку нејзината табела на
вистинитост 2-13.
60 КОМБИНАЦИСКИ МРЕЖИ

И овој демултиплексер располага со влез за овозможување на работата (Е)


со таа разлика што сега контролата на излезните И кола се изведува посредно.
Кај ова решение е воведено влезно И коло со два влеза: едниот за податокот А, а
другиот за влезот за дозвола Е. Ако Е=1 податокот ја минува влезната И порта и
се носи до излезните И кола со што е овозможена нормална работа. Но, ако
влезот Е=0, тогаш излезот од влезното И коло е 0 која едновремено ги побудува
сите излезни И кола со што сите излези се 0-и.

A
E Y0 = AS1S0

Y1 = AS1S0
Е S0 S1 Y0 Y1 Y2 Y3
0 x x 0 0 0 0
Y2 = AS1S0
0 0 A 0 0 0
Y3 = AS1S0 0 1 0 A 0 0
1
1 0 0 0 A 0
1 1 0 0 0 A
S1 S0

Сл. 2-26. Логичка структура на 1-во-4 Таб. 2-13. Комбинациона табела на


демултиплексер 1-во-4 демултиплексер

Споредувајќи го однесувањето на декодерот и демултиплексерот, може да


се забележи дека демултиплексерот може да се користи како декодер ако на
влезната линија на демултиплексерот се донесе фиксно ниво на логичка 1.
Поконкретно, секој 1-во-2n демултиплексер може да се користи како n-во-2n
декодер ако на влезната линија на демултиплексерот се приклучи константна
вредност 1, додека неговите n линии за селекција се користат како n влезни
линии на декодерот, а излезните 2n линии се излезни линии и за декодерот.
Слична транформација на декодер во демултиплексер може да се
реализира само ако декодерот има влез за овозможување на работа. Така на пр.
2-во-4 декодер може да се употреби како 1-во-4 демултиплексер. Влезот за
дозвола на декодерот е влез за податокот кај демултиплексерот, двете влезни
линии на декодерот се земаат како линии за селекција на демултиплексерот,
додека четирите излези се исти и за двете компоненти.
Демултиплексерите кои се изведуваат во интегрирана техника, покрај
податочните и адресните линии вообичаено содржат и контролни линии со кои
компонентата може да се вклучи во работа или да се поврзи со исти такви
демултиплексери за да се формираат компоненти со поголем број излези.
Сите наведени демултиплексери вршеа пренос на единствениот влез до
еден од повеќето расположливи излези. Меѓутоа, покрај ваквите демултиплексери
во интегрирана техника се изведуваат и такви што вршат дистрибуција на една
влезна група податочни линии до една од повеќето такви групи што се јавуваат
како можни излезни групи. Овие демултиплексери имаат онолку влезови, колку
што линии содржи секоја од поединечните излезни групи.
КОМБИНАЦИСКИ МРЕЖИ 61

Логичкиот блок-дијаграм на еден ваков демултиплексер е даден на сл.


2-27 а), симболот на сл. 2-27 б), а неговиот механички еквивалент како
прекинувач на сл. 2-27 в). Дадениот пример е двократен четириположбен
демултиплексер: секоја од четирите групи излези има по две линии.
Интегрираното коло има два податочни влеза, осум излези, две адресни линии и
две контролни линии со што се добива поголема флексибилност. Имено, со
едната контролна линија се овозможува пренос на првиот бит од податокот, а со
втората на вториот бит. Примената на две контролни линии овозможува од една
страна, чипот да се користи како два поединечни 1-на-4 демултиплексери, а од
друга страна, ако двата контролни влеза се врзат во единствен контролен влез се
добива двократен четириположбен демултиплексер. Со селекционите линии се
врши избор за тоа на кои две излезни линии од четирите пара ќе се појават
сигналите присутни на двете влезни линии.

STB1
X0 YA0
YA0 YA0
YA1 X0 YA1
X1 YA 2 YA1
X0
YA 3 YA2
YA 2
YA3
STB YB 0
S1 YA3 STB2 YB1 YB0
YB2 YB1
S1 S0 YB3 X1
YB 0 YB2
YB3
S0 YB1

YB2
в) механички
б) логички симбол
X1 YB3 еквивалент
STB2
Сл. 2-27. Двократен четириположбен
а)логичка шема демултиплексер

III) ПРОГРАМАБИЛНИ ЛОГИЧКИ СТРУКТУРИ


2.7. ВОВЕД И ПОДЕЛБА
Програмабилните логички структури (ПЛС, анг. Programabile Logic
Devices. PLD) се интегрирани компоненти, кои се користат за реализација на
различни комбинациски мрежи по пат на програмирање. Во процесот на
програмирањето всушност станува збор за програмирање на врските на
мрежата, поточно на воспоставување или прекинување на поврзувањето во
внатрешноста на интегрираната компонента помеѓу логичките кола, кои влегуваат
во нејзин состав. Во принцип овие мрежи имаат матрична структура слична на
сите што до сега ги анализиравме, но во две нивоа. Разликата е и во тоа што во
непрограмиран случај ПЛС-и имаат вградени прекинувачки елементи (диоди или
биполарни или униполарни транзистори) како спојни елементи со осигурувач на
пресеците помеѓу вертикалните и хоризонталните водови на мрежата.
62 КОМБИНАЦИСКИ МРЕЖИ

На следната слика (сл. 2-28) се прикажани неколку различни типови на


прекинувачки нискоомски (куси врски) или високоомски (прекинати кола)
елементи со кои се остваруваат поврзувањата.

Сл. 2-28. Матрични структури со спојни елементи со диоди и биполарни транзистори


На сл. 2-29, 30 и 31 се означени основните структури на програмабилните
компоненти. Имено, секоја структура содржи две сериски врзани мрежи: една е со
И логички кола, а втората со ИЛИ порти. Според ова, за разлика од претходно
споменатите едностепени матрични структури, сега станува збор за двостепена
матрична структура за изведување на логичките функции со И-ИЛИ мрежа во две
нивоа.
PLA

програмабилни програмабилни
И кола ИЛИ кола

Сл. 2-29. Блок-шема на PLA програмабилна компонента


PAL

програмабилни фиксни
И кола ИЛИ кола

Сл. 2-30. Блок-шема на PAL програмабилна компонента

PROM

фиксни програмабилни
И кола ИЛИ кола

Сл. 2-31. Блок-шема на PROM програмабилна компонента


Првите две програмабилни структури се однесуваат на интегрираните
компоненти чија намена е реализација на сложени логички мрежи со повеќе
влезови и излези. Кај компонентите изведени според сл. 2-29 е овозможено
програмирање како на И, така и на ИЛИ колата. Оваа структура на логички мрежи
позната е како PLA (анг. Programabile Logic Array), што значи програмабилна
логичка матрица. Од друга страна, концепцијата на интегрираните компоненети
изведени според сл. 2-30 овозможува програмирање само на И колата, додека
ИЛИ колата се изведени како фиксни. Оваа структура е позната според
скратениот назив PAL (Programabile Array Logic), што значи програмабилна
матрична логика.
КОМБИНАЦИСКИ МРЕЖИ 63

На крај, сл. 2-31 се однесува на интегрираните компоненти кај кои програ-


мирањето се врши само на ИЛИ колата, додека И колата се изведени фиксно.
Овие структури се познати како програмабилни мемории што можат само да
се читаат или накратко како PROM (Programabile Read Only Memory).
Програмабилните логички структури во принцип имаат универзален
карактер, со одредени предности и недостатоци во поедини специфични области
на примена. За разлика од PLA и PAL матриците со кои се реализираат сложени
логички функции, PROM имаат посебна намена, а тоа е запамтување на
информации кои не треба да се менуваат. Во продолжение фокусот ќе го ставиме
токму врз работата на PROM мемориите.

2.8. PROM МЕМОРИЈА

PROM -от претставува дигитална компонента изведена во интегрирана


техника која во практиката најчесто се применува како посебен тип на
полупроводничка меморија. Бидејќи нејзината содржина во процесот на работа
може само да се чита, таа спаѓа во групата на т.н. недеструктивни мемории.
Зампамтената содржина во PROM-от не се губи дури и по престанок на
напојувањето на уредот каде е вградена, заради што истата се користи при
иницијализација на компјутерските системи. Така на пр. во PROM-от се сместува
системскиот софтвер (BIOS-от) на компјутерот кој ја тестира исправноста на
компонентите што влегуваат во негов состав, како на пр. графичката картичка,
дискот, и сл. и потоа го стартува неговиот оперативен систем, на пр. Windows-от.
Имајќи ја во предвид блок шемата на PROM-от од сл. 2-31, забележуваме
дека на влезот постои И матрица со веќе формирани фиксни врски. Тоа е декодер
со m-влезови и 2m интерни излези. Овие излези може да се користат како влезови
за излезната матрица која содржи m ИЛИ логички кола. Секој излез од ИЛИ
колото може да претставува произволна функција од m-те влезни логички
променливи. Според ова, од организациски аспект, на PROM-от може да се гледа
како на мемориска компонента која содржи N=2m мемориски зборови секој со
непроменлива должина од n-бита која обично се изразува во бајти 1[B]=8[b].
Секој од запомнатите N=2m зборови претставува одредена комбинација од n-
битови согласно потребите на корисникот. Во меморијата постои соодветна
локација за сместување на секој збор, што значи дека меморијата може да се
смета како едно конечно и уредено множество со голем број мемориски локации
според сл. 2-32. Секоја локација е формирана од одреден број прекинувачки
елементи. Бројот на прекинувачките елементи е еднаков со должината на
меморискиот збор. Зборот, т.е. информацијата, која е сместена во било која
локација ја претставува нејзината содржина. Пристапот до секоја од локациите
оди со задавање (специфицирање) на број кој еднозначно ја определува
соодветната локација. Овој број се вика адреса на локацијата. Ако е позната
адресата на мемориската локација, практично е дефинирана нејзината
местоположба во меморијата. Така, пристапот до било која мемориска локација на
PROM -от е директен со задавање на адресата заради што времето потребно за
пристап до секој запомнет податок е исто.
64 КОМБИНАЦИСКИ МРЕЖИ

Во врска со претходното, како


n - битни капацитет на PROM се дефинира
мемориски
локации
вкупниот број адреси, т.е. вкупниот
(збора) број зборови којшто може да се
Почетна
адреса 0 Содржина на лок. 0 запомни во PROM –от помножен со
1 Содржина на лок. 1 должината на меморискиот збор.
Содржина на лок.
Бидејќи PROM-от има голем број
2 2
.. ... локации, капацитетот вообичаено се
. Капацитет изразува во килобајти или во
PROM 20 10
m - битна
адреса МЕМОРИЈА 2 m
мегабајти. 1[MB] = 2 [B] = 2 [KB]
мемориски
.. 2m . nX збора =1024[KB].
. ..
Кај типичната PROM мемориска
2m-3 Содржина на лок. 2m-3 компонента сите врски се
2m-2 Содржина на лок. 2m-2 воспоставени заради што неговата
Крајна 2m-1 Содржина на лок. 2m-1 содржина е пополнета со сите 1-и. Во
адреса процесот на програмирање се користи
посебен уред т.н. PROM програматор.
Со него се прегоруваат само
n - битни
податоци прекинувачките елементи на оние
места каде треба да се запишат 0-и и
тоа со пуштање на напонски импулси
со поголема вредност од напонот на
Сл. 2-32. Организациска структура на PROM
мемориска програмабилна компонента кој ќе се приклучи PROM-от при
неговата вообичаена работа во уредот
за кој е наменет.

i A2 A1 A0 D3 D2 D1 D0 За полесно разбирање на
0 0 0 0 1 0 0 0 однесувањето на PROM-меморијата ќе го
разгледаме следниот пример. Станува збор
1 0 0 1 0 0 0 1 за трајно зачувување на осум четирибитни
2 0 1 0 0 0 1 1 податоци во PROM-мемориска компонента
според таб. 2-14.
3 0 1 1 0 0 1 0
Од неа се гледа дека содржина на
4 1 0 0 0 1 1 0 првата локација со адреса 000 треба да
5 1 0 1 0 1 1 1 биде податокот 1000, во втората локација
чија адреса е 001 е сместен податокот 0001,
6 1 1 0 0 1 0 1
итн. сé до последната, осмата мемориска ло-
7 1 1 1 1 1 0 0 кација со адреса 111 чија содржина е 1100.

Таб. 2-14. Осум четирибитни податоци


кои треба да се запомнат во PROM
Бидејќи треба да се меморираат N=8 податоци, ќе избереме PROM-
меморија со соодветен број на адресни линии m за да биде исполнет условот
8=2m, од каде добиваме дека m=3. Од друга страна, секој податок што ќе биде
внесен во меморискиот чип има должина од 4 бита, заради што е јасно дека
бројот на излезни податочни линии n ќе биде 4 (n=4).
КОМБИНАЦИСКИ МРЕЖИ 65

Всушност, секој податок ја претставува содржината на секоја од осумте


адресирани мемориски локации. На сл. 2-33 е прикажана блок-шемата на PROM
компонента која ќе се примени за решавање на дадениот пример.
Адресниот декодер практично се реализира со фиксна матрична И
структура, додека внесувањето на информациите оди по пат на програмирање на
ИЛИ матрица која фактички претставува кодер со онолку влезови колку што има
излези од адресниот декодер, а излези колку што е должината на меморискиот
збор.
PROM
8 збора х 4 бита = 32 бита/8 = 4 бајти

a7
m=3 a6 n=4
a5 D3
A2 Адресен a4
A1 Кодер D2
декодер a3 D1
A0 a2 8/4
3/8 D0
a1
a0

Фиксна И Програмабилна
матрица ИЛИ матрица
Сл. 2-33. Блок-шема на PROM компонента

Начинот на имплементација на табелата е прикажан со логичката шема на


оваа PROM компонента претставена на сл. 2-34. Имено, секој бит од податокот,
т.е. меморискиот збор Di ќе биде функција од трите влезни променливи A2, A1 и
A0, а може да се добие со програмирање за тоа кои од осумте излези од
адресниот декодер: a0, a1,…, a7 кои ќе бидат влезови во секое ИЛИ коло
соодветно на дадената кодна табела. Во врска со ова, излезните битови D3, D2, D1
и D0 ќе се добијат од следниве СДНФ форми:
D3  a0  a7  A2 A1 A0  A2 A1 A0
D2 = a4 + a5 + a6 + a7 = ...
D1 = a2 + a3 + a4 + a5 = ...
D0 = a1 + a2 + a5 + a6 = ...
Логичките равенки произлегуваат од самата табела. Од неа се гледа дека
за да се добие излезот D3, треба да биде активна или нултата или седмата
адресна линија (a0 или a7) заради што само со нив се формираат врски како
влезови на првото ИЛИ коло. Останатите шест влезови не треба да бидат
поврзани. Слично, за да се добие D2 се програмираат врските само со a4, a5, a6 и
a7, за D1 се остварува поврзување само со a2, a3, a4 и a5, додека за да се добие D0
на соодветното ИЛИ коло се поврзуваат само влезовите a1, a2, a5 и a6.
66 КОМБИНАЦИСКИ МРЕЖИ

Бидејќи произведувачот на компонентата го има направено адресниот


декодер во склоп на самиот чип, корисникот сам ги внесува содржините во
локациите со помош на програматорот. Преку адресните влезови се задава
адресата на мемориската локација, додека преку податочните линии во
специфицираната мемориска локација се внесува соодветниот мемориски збор
како нејзина содржина по пат на воспоставување или елиминирање на споевите
помеѓу излезите од адресниот декодер и влезовите на секое ИЛИ коло од
излезната матрица.
Заради поголема прегледност, поврзувањето од сл. 2-34 се прикажува како
на сл. 2-35. На оваа слика остварените врски се означени со ставање на спојна
точка во пресекот на соодветните излезни линии од адресниот декодер и
влезовите во ИЛИ колата.

a7
a6
A2 a5
A1 Адресен a4
декодер a3
A0 3/8 a2
a1
a0

D3

D2
PROM
8 збора х 4 бита D1

D0

.
Сл. 2-34. Логички дијаграм на PROM меморија со капацитет 8 збора по 4 бита

a0
a1
A2 a2
A1 a3
A0 a4
a5
a6
a7

D3 D2 D1 D0
Сл. 2-35. Логички дијаграм на PROM меморија со капацитет 8 збора по 4 бита

По завршувањето на програмирањето, т.е. по внесувањето на потребната


содржина во PROM-от, тој може да се употребува во нормален режим на работа
така што се внесува во уредот за кој е наменет.
КОМБИНАЦИСКИ МРЕЖИ 67

Бидејќи содржината на PROM-от може само да се чита тој спаѓа во групата


на програмабилни ROM мемории (анг. Programmable Read Only Memory). Слаба
страна на PROM мемориските чипови е таа што тие може да се програмираат само
еднаш и потоа внесената содржина повеќе не може да се менува. Во праксата се
сретнуваат и EPROM мемориски компоненти кои можат повеќе пати да се
програмираат, а со тоа и повеќе пати да им се менува нивната содржина (анг.
Erasable Programmable ROM). Бришењето на старата содржина на EPROM-ите се
остварува со експозиција на ултра-виолетови (UV) зраци заради што EPROM-овите
се сретнуваат и под името UVEPROM. За EEPROM или E2PROM мемориските чипови
(анг. Electrically Erasable Programmable ROM) е исто така карактеристична можнос-
та за повеќекратно запишување, но во овој случај бришењето се врши со
електрични импулси. Последниве неколку години во праксата нашироко се
применуваат и т.н. Flash мемориски чипови како посебен вид на EEPROM мемории
кои се користат кај USB Flash компонентите и мемориските картички.
68 КОМБИНАЦИСКИ МРЕЖИ

ПРАШАЊА И ЗАДАЧИ ЗА ПОВТОРУВАЊЕ


2-1. Кои се главни карактеристики на комбинациските мрежи?
2-2. Кои операции се извршуваат со комбинациските мрежи?
2-3. Која е улогата на бинарниот собирач?
2-4. Која е улогата на полусобирачот?
2-5. Нацртај ја табелата на вистинитост, логичката шема и логичкиот симбол на
полусобирачот.
2-6. Која е улогата на целосниот собирач?
2-7. Нацртај ја табелата на вистинитост, логичката шема и логичкиот симбол на
целосниот собирач.
2-8. Нацртај логичка шема на паралелен собирач за два двобитни броеви користејќи
целосни собирачи. За кои влезни комбинации, т.е. вредности на влезните броеви,
излезната линија за префрлување ќе стане активна (C+=1) и зошто?
2-9. Која е улогата на компараторот?
2-10. Нацртај ја табелата на вистинитост и логичката шема на еднобитен компаратор.
2-11. Проектирај дигитален (бинарен) компаратор за два двобитни броеви: А=А1А0 и
B=B1B0 кои се појавуваат на неговите влезни приклучоци. Компонентата треба да има
а) три излези YA, YB и Y0 согласно таб. 2-4;
б) два излези G и L чии логички состојби зависат од односот помеѓу дава броеви
што се споредуваат при што:
 Ако A > B тогаш G = 1 и L = 0;
 Ако A < B тогаш G = 0 и L = 1;
 Ако A = B тогаш G = 0 и L = 0.
2-12. Која е улогата на колото за (единечно) комплементирање?
2-13. Нацртај ја логичката шема на (единечен) комплементер за двобитни броеви.
2-14. Применувајќи паралелно коло за собирање на двобитни броја и коло за единечно
комплементирање на двобитни броеви, нацртај логичка шема на коло што ќе извршува
двоен комплемент на двобитни броеви.
2-15. Нацртај ја логичката шема на коло за собирање/одземање на два двобитни броеви.
2-16. Какви комбинациски мрежи се прекинувачките матрици?
2-17. Објасни каква функција врши кодерот!
2-18. Нацртај табела на вистинитост на DEC/NBCD кодер. За која влезна комбинација
битот (а) D; (б) C; (в) B; (г) А од NBCD кодниот збор има вредност 1.
2-19. Нацртај реализација на DEC/NBCD кодер како матрична еднонивовска ИЛИ
структура чиишто влезови се активни на високо ниво, како и нејзиниот логички симбол.
2-20. Нацртај реализација на DEC/NBCD кодер со влезови што се активни на ниско ниво
применувајќи НИ логички кола, како и неговиот логички симбол.
КОМБИНАЦИСКИ МРЕЖИ 69

2-21. Нацртај реализација на OCT/BIN кодер како матрична еднонивовска ИЛИ структура
чиишто влезови се активни на високо ниво, како и нејзиниот логички симбол. На
добиената кодерска матрица, како дополнување, додај и влез за дозвола на работа.
2-22. Која е разликата помеѓу стандардниот кодер и кодерот со приоритет?
2-23. Ако претпоставиме дека на располагање имаш два кодери: еден OCT/BIN без
приоритет и еден OCT/BIN со приоритет и дека и на двата едновремено ги притиснете
тастерите [2], [3] и [4] одговори која е состојбата на излезите од двата кодери. Дали
меѓусебно се разликуваат? Образложете!
2-24. Нацртај реализација на HEX/BIN кодер.
2-25. Ако на влезот од кодерот доаѓаат N различни симболи, кој услов треба да го
исполнува бројот на излезите n, т.е. должината на кодниот збор, со кој може да се
кодираат сите влезни симболи?
2-26. Која е улогата на декодерот?
2-27. Нацртај табела на вистинитост за NBCD /DEC декодер чии излези се активни на (а)
ниско (б) високо ниво.
2-28. Нацртај реализација на NBCD/DEC декодер чиишто излези се активни на високо
ниво, како матрична еднонивовска И мрежа со примена на И логички кола. Каква
модификација треба да се изврши на мрежата, за излезите да бидат активни на ниско
ниво.
2-29. За која влезна комбинација излезот (а) 0 (б) 1 (в) 2 (г) 3 (д) 4 (ѓ) 5 (е) 6 (ж) 7 (з) 8
(џ) 9 од NBCD /DEC декодерот ќе биде активен.
2-30. Нацртај табела на вистинитост за NBCD /7S декодер, а потоа проектирај ја оваа
логичка мрежа со претпоставка дека на располагање стојат сите потребни логички кола
со произволен број на влезови.
2-31. Кој услов треба да го задоволува максималниот број на излези N, ако на влез во
декодерот доаѓаат кодни зборови со должина од n бита?
2-32. Реализирај комбинациона мрежа на 4/16 (BIN/HEX) декодер со примена на a) И б)
НИ логички кола и влез за дозвола на работа Е кој треба да биде активен на 1) ниско 2)
високо ниво.
2-33. Ако имаш на располагање два 2-во-4 декодери со влез за дозвола Е изврши нивно
поврзување за да добиеш еден 3-во-8 декодер.
2-34. Која е функцијата на мултиплексерот?
2-35. Да се нацрта комбинационата табела, логичката шема и логичкиот симбол на (а) 2-
во-1 (б) 4-во-1 (в) 8-во-1 мултиплексер (г) со влез за овозможување на работата активен
на 1) ниско 2) високо ниво.

2-36. На сл. 2-35 е прикажана логичка


мрежа која покрај инвертори содржи и
трансмисиони порти. Формирај ја и
пополни ја таблицата на вистинитост
за мрежата и објасни го нејзиното
однесување, симболичка ознака и
евентуалната примена.
Сл. 2-35
2-37. Нацртај ја логичката шема на четирикратен-двоположбен (4-во-2) мултиплексер.
70 КОМБИНАЦИСКИ МРЕЖИ

2-38. Нацртај ја логичката шема на (а) двократен - двоположбен (2-во-2) (б) двократен-
четириположбен (2-во-4) мултиплексер.
2-39. Каква функција врши демултиплексерот?
2-40. Да се нацрта комбинациската табела, логичката шема и логичкиот симбол на (а) 1-
во-2 (б) 1-во-4 (в) 1-во-8 демултиплексер (г) со влез за овозможување на работата
активен на 1) ниско 2) високо ниво.
2-41. Ако имаш на располагање 1-во-4 демултиплексерот изврши негова трансформација
како во 2-во-4 декодер.
2-42. Ако имаш на располагање 2-во-4 декодер со посебен влез за дозвола на работа,
изврши негова трансформација во 1-во-4 демултиплексер.
2-43. Нацртај логичка шема на двократен-четириположбен демултиплексер (2-во-4) со
посебен влез за селекција на компонентата активен на ниско ниво.
2-44. Нацртај логичка шема на (а) двократен-двоположбен (2- во-2) (б) четирикратен-
двоположбен (4-во-2) демултиплексер со посебен влез за селекција на компонентата
активен на ниско ниво.
2-45. Што претставуваат програмабилните логички структури?
2-46. Како се остварува програмирањето на програмабилните логички структури?
2-47. Прикажи по два примера на (а) нискоомски (б) високоомски електронски елементи
што се користат за остварување на споевите кај програмабилните логички структури.
2-48. Каква структура е PLA? Нацртај ја нејзината блок-шема.
2-49. Каква структура е PAL? Нацртај ја нејзината блок-шема.
2-50. Нацртај блок-шема на PROM компонента.
2-51. Каква структура е PROM и која е нејзината главна примена?
2-52. Како е организирана меморијата?
2-53. Во каков облик се запамтува и каде се сместува секоја информација во меморијата?
2-54. Што претставува адреса на мемориска локација?
2-55. Што е капацитет на меморијата и како се изразува?
2-56. Како се врши внесување на нова содржина во PROM ?
2-57. Кои типови PROM мемории постојат и по што се разликуваат меѓу себе?
2-58. Нацртај блок-шема на PROM (а) 16x4 (16 збора по 4 b) (б) 128x8 (128 збора по 8 b).
2-59. Даден е PROM со организација 64 K x 16. (а) Колку адресни влезни линии (б) Колку
податочни излезни линии, има оваа мемориска компонента (в) Колкав е капацитетот на
PROM -от изразен во (а) зборови (б) бајти.
2-61. Нацртај комбинациона таблица на PROM со соодветен капацитет и должина на ме-
мориските зборови, со кој во локацијата со најмала адреса 0000 се сместува најголемиот
четирибитен број 1111, итн. со зголемување на адресите се намалуваат броевите што во
нив се сместуваат, па така во последната мемориска локација што има адреса 1111, се
сместува податокот 0000. Како дополнување, за секој бит од излезниот податок напиши
ја соодветната совршена нормална форма во функција од (а) излезите (б) влезовите од
адресниот декодер.
2-62(*). На следните неколку слики во чекори е прикажана реализацијата на функцијата
Y=AB*+BC на прото плочка на која врските се остваруваат без лемење. Провери ја
точноста на поврзувањата и одговори дали реалната шема одговара на логичката.
КОМБИНАЦИСКИ МРЕЖИ 71
72 КОМБИНАЦИСКИ МРЕЖИ
3.
ФЛИП -
- ФЛОПОВИ
По изучувањето на оваа тематска целина
 ќе ги препознавате графичките симболи на флип-флоповите;
 ќе ја објаснувате логичката структура на флип флоповите;
 ќе го изучите принципот на работа на лечот (колото за заклучување)
и на флип-флоповите;
 ќе ги анализирате добиените графици на временските дијаграми од
излезите на секој флип-флоп посебно;
 ќе го разберете принципот на работа на флип-флоповите како
елементарни секвенцијални кола со стандардна и master-slave
конфигурација и тоа: SR, JK , D и T флип-флоп;
 ќе умеете да демонстрирате различни трансформации на флип-
флоповите;
 ќе се запознаете со примената на флип-флоповите вo
реализирањето на RAM мемориската ќелија како посложена
секвенцијална компонента;
 ќе се запозанете со можностите за примена на флип-флоповите во
градбата на посложени секвенцијални мрежи;
74 ФЛИП ФЛОПОВИ
ФЛИП ФЛОПОВИ 75

3.1. ВОВЕД И ОСНОВНИ ПОИМИ


Бистабилниот мултивибратор кој популарно се нарекува флип-флоп
претставува основен елемент во дигиталните системи кој овозможува
меморирање на податоците. Тој претставува елементарна мемориска ќелија,
бидејќи може да запомни еднобитен податок, односно најмало количество на
информација. Способноста за помнење е резултат на фактот што флип-флопот
може да се најде во една од две стабилни состојби.
Флип-флопот спаѓа во групата на регенеративни кола, затоа што при
неговата реализација мора да постои позитивна повратна врска. Постојат
различни типови флип-флопови, зависно од тоа каква им е изведбата и начинот
на функционирање. Во дискретната техника, флип-флопот се реализира со
спрегнување на два засилувачки степени, наједноставно со два транзистори,
потоа со погодно врзување на две логички кола, при што најчесто се користат две
меѓусебно поврзани НИ или НИЛИ кола, или во интегрирана техника кога се
изведува како посебна дигитална компонента.
Секој флип-флоп има два излеза кои се комплементарни еден на друг, и
еден или повеќе влезови. Со меѓународна конвенција е усвоено состојбата на
флип-флопот да се изразува преку вредноста на излезот означен со Q
(номиналниот, директниот излез), а со тоа практично се дефинира и вредноста на
излезот означен со Q (комплементарниот излез). За флип-флопот се вели дека е
поставен или сетиран ако Q =1 ( Q =0), односно избришан или ресетиран,
тогаш кога Q =0 ( Q =1), што може да се види и од таб. 3-1.

Состојба на Излези
флип-флопот Q Q

Сетиран (Поставен) 1 0
Ресетиран (Избришан) 0 1
Таб. 3-1. Состојби на флип-флопот

Преку влезовите се управува неговата работа и/или се доведуваат


податоците што ќе бидат запомнети во него. Состојбата на излезите Q , Q
теоретски може да се задржи бесконечно долго, а практично сè додека на некој
од влезовите не се донесе побуда која ќе има ефективно дејство врз излезите,
т.е. побуда што ќе ја промени состојбата на излезите. Во зависност од тоа дали
влезовите имаат директно (непосредно) или индиректно (посредно) влијание врз
излезите, постојат асинхрони флип-флопови и синхрони флип- флопови.
Кај асинхроните флип-флопови состојбата на излезите зависи само од
нивото на побудните сигнали што се јавуваат на информационите (податочните)
влезови. Состојбите на овие влезови детерминираат дали и како ќе се променат
излезните логички нивоа.
76 ФЛИП ФЛОПОВИ

Кај синхроните флип-флопови покрај податочните влезови постои и еден


посебен влез за такт (clock) сигнал кој може да биде означен со: CLK, CK, CL, C,
CP, или T1. Тој претставува напонски правоаголен импулсен облик, или многу
почесто заради практични потреби, квадратен бранов облик.
Тактот има точно определени временски интервали на високото ниво, т.е.
1-та, импулсот Tp, и на ниското ниво, т.е. 0-та, паузата T0, а со тоа е дефиниран и
неговиот период T, T=Tp+T0. Станува збор за сигнал за временско водење и
усогласување (синхронизирање) на работата на флип-флопот, кој определува во
кој момент (кога) нешто ќе се случи, па затоа овие флип-флопови се викаат и
тактирани. Имено, состојбата на флип-флопот може да се промени во зависност
од комбинацијата на влезните сигнали, но само во моментот кога на влезот за
такт-сигналот ќе се појави активно (прекинувачко) ниво. Активно ниво на тактот е
она ниво за чие времетраење другите влезови можат да имаат ефективно дејство
врз излезите од флип-флопот (да можат да предизвикаат „нешто да се случи на
излезите”). Во општ случај, активно ниво може да биде или нивото на 0, или
нивото на 1, но вообичаено е за активно ниво да се зема високото ниво. Кај оние
изведби на флип-флопови кај кои активно ниво е ниското ниво, тоа посебно ќе
биде нагласено.
На сл. 3-1 а), б) се прикажани временски дијаграми на правоаголен и
квадратен такт-сигнал. На сликата се означени двата најважни делови на тактот:
предниот (позитивниот, растечкиот) раб, и задниот (негативниот, опаѓачкиот)
раб. Ова е важно да се забележи, бидејќи најголем број на флип-флопови што се
во употреба се активираат со појавата на растечкиот или со опаѓачкиот раб на
такт-сигналот. Активниот раб се вика и прекинувачки или ефективен раб (срп.
окинувачки, анг. triggering), затоа што само тогаш може да настане промена на
излезите од флип-флопот. Циклусот (интервалот) на такт-сигналот го
претставува времето од едниот активен раб до другиот активен раб, а тоа време
практично е еднакво со периодот на такт-сигналот T.

TP T0 t TP T0 t
а) T TP < T0 б) T TP = T0
Сл. 3-1. Временски дијаграми на правоаголен и квадратен такт-сигнал
Без оглед на тоа со кој раб се активира флип-флопот, ќе напоменеме дека
излезот од флип-флопот реагира на побудата по определен временски период,
кој е многу краток, но сепак е присутен како последица од доцнењето на сигналот
кога тој минува низ флип-флопот. Ова време се вика време на доцнење и се
означува со tpd, td, или  t. Тоа варира во зависност од технологијата во која е
направен флип-флопот, а обично изнесува од неколку [ns] до неколку десетици
[ns]. Заради поедноставно разбирање на принципот на работа на флип-
флоповите, при цртањето на временските дијаграми, ќе разгледуваме идеални
случаи, односно ќе го занемаруваме времето на доцнење (tpd=0), така што
излезот ќе се јавува без задоцнување, истовремено, во однос на влезот.
ФЛИП ФЛОПОВИ 77

Реални случаи, односно временска разлика меѓу излезот и влезот (tpd >0),
ќе опишуваме само тогаш кога ќе сакаме да ја потенцираме појавата на одредени
проблеми кои можат да настанат при самата практична примена на флип-флопот
во работата.
На сл. 3-2 а) е прикажана појавата на влезните сигнали, како и одзивот на
нив, односно појавата на излезните сигнали, за еден пример на флип-флоп кај
кого е занемарено доцнењето. На сл. 3-2 б) е прикажан еден реален случај каде
постои одредено доцнење од побудата до одзивот.

ПОДАТОЦИ ПОДАТОЦИ

ВЛЕЗ ВЛЕЗ
t t
ПОДАТОЦИ ПОДАТОЦИ
ИЗЛЕЗ ИЗЛЕЗ
t t
t pd t pd
а) иделен случај без доцнење влез - излез б) реален случај со доцнење влез - излез
Сл. 3-2. Временски дијаграми на влезни и и излезни сигнали кај флип-флопот
Излезот од флип-флопот, а со тоа и неговиот начин на работа, може да се
прикаже аналитички, преку одредена логичка равенка која е специфична за секој
флип-флоп, и затоа се вика карактеристична равенка или фукција на премин.
Освен овој алгебарски начин, постои и табеларен приказ, со примена на два типа
табели: едната е т.н. каракте-ристична табела или табела на премин и излез, а
другата е табела на побуда или екситација. Табелата на премин се употребува
при анализата на секвенцијалните мрежи, додека табелата на побуда при
реализацијата на секвенцијалните мрежи. Веќе е истакнато дека за илустрација
на работата исто така може да се користи и графичката претстава со временските
дијаграми на напоните на влезовите и излезите од флип-флопот.
Излезот на флип-флопот е функција од сигналите доведени на неговите
влезови, од нивото на тактот ако флип-флопот е тактиран, но и од претходната
состојба на излезите од флип-флопот. Ова значи дека се јавува зависност од
временскиот редослед, т.е. од секвенцата на логичките состојби низ кои поминал
флип-флопот. Според ова, флип-флопот претставува и елементарна
секвенцијална компонента. Бидејќи при прикажувањето на излезот од флип-
флопот ќе фигурираат логички состојби во различни временски интервали кои
следат еден по друг, се воведуваат ознаки за тоа дали состојбата на колото се
однесува на претходниот (сегашниот) временски период: t или T, или за следниот
временски период t+T, t+1, tn+1, или t+. Во овој контекст за состојбата на
излезот од флип-флопот се користат следниве ознаки Q (t) и Q (t+T), или Q (t) и
Q (t+1), или Q (tn) и Q ( tn+1), или Q n и Q n+1, или Q (t) и Q (t+), или
наједноставно Q и Q +.
Во понатамошното излагање ќе претпоставиме дека напонските сигнали
имаат идеален правоаголен облик според сл. 3-3 а) занемарувајќи ги времињата
што се потребни сигналот да го достигне високото или ниското ниво, кои се
јавуваат во случај на реален импулс кој е даден на сл. 3-3 б).
78 ФЛИП ФЛОПОВИ

t а) идеален импулс со tr = tf = 0

tr tf t
б) реален импулс со tr ≠ 0 и tf ≠ 0.

Сл. 3-3. Напонски импулс на влезот или излезот од флип-флопот

3.2. SR ФЛИП-ФЛОП
Во принцип, флип-флоп може да се реализира со вкрстена врска на две
инверторски кола така што излезот од едното коло се врзува на влезот од второто
коло, а излезот од второто оди на првото, како што се гледа на сл. 3-4.

Q
Сл. 3-4. Вкрстена врска на две инверторски кола

Ваквото поврзување овозможува излезите од флип-флопот да се стабилни


и меѓусебно комплементарни. Со вкрстувањето се остварува позитивна повратна
врска која е потребна за создавање на регенеративен процес со кој времето
потребно за премин од едната во другата стабилна состојба е занемарливо мало,
практично еднакво на нула. Меѓутоа вака реализираниот флип-флоп ќе има
случајна состојба која не може да се одреди и не е дефинирана: таа ќе биде или
Q =1 ( Q = 0), или Q =0 ( Q = 1). Покрај ова, не постои можност за управување со
состојбата на излезите бидејќи не постојат влезови.
Заради овие причини се применува вкрстување на логички кола со повеќе
влезови и тоа на различни начини за што ќе зборуваме во продолжение.

3.2.1. SR ФЛИП-ФЛОП ОД НИЛИ ТИП

Флип-флопот кој се добива со вкрстување на две НИЛИ кола со по два


влеза популарно се вика SR или RS флип-флоп. Во англиската терминологија
ваквото коло е познато и како SR Latch, коло за заклучување или задржување. Во
понатамошното излагање терминот леч ќе го превземеме и ќе го користиме без
преведување. Логичката структура на SR флип-флопот е прикажана на сл. 3-5,
додека неговите симболички ознаки на сл. 3-6 а) и б).
ФЛИП ФЛОПОВИ 79

R
Q
S Q S Q

R Q R Q
Q а)
S б)

Сл. 3-5. Логичка шема на SR флип-флоп Сл. 3-6. Симболички ознаки на SR флип-флоп

Влезот S (SET) служи за поставување (сетирање) на флип-флопот ( Q =1).


Тоа се изведува така што на него се носи 1 (S=1), а влезот R се држи на 0. Штом
S ќе го достигне нивото 1, на излезот се јавува состојбата Q =1 ( Q = 0): ако
претходно излезот бил на 1, тој ќе остане на 1, но ако претходно излезот бил на
0, тој ќе го промени нивото и ќе оди на 1.
Преку вториот влез означен со R (RESET), флип-флопот се брише, се
доведува во ресетирана состојба ( Q =0) на начин спротивен од претходниот: сега
на влезот R се носи 1, а влезот S се воспоставува 0. Тогаш кога нивото на R ќе ја
достигне вредноста 1, на излезот се јавува 0, т.е. Q =0 ( Q =1) ако претходно
излезот бил на 0, тој ќе остане на 0, но ако бил на 1, тогаш ќе се промени на 0.
Доколку влезовите S и R истовремено се 0 (S=R=0), флип-флопот ја
задржува својата претходна состојба.
Ако на влезовите S и R истовремено се донесе 1, (S=R=1), тогаш излезната
состојба на флип-флопот ќе биде таква што и Q и Q ќе бидат на 0. Значи, нема
да важи почетната претпоставка дека излезите од флип-флопот меѓусебно се
комплементарни. Освен ова, може да се случи следната состојба на флип-флопот
да не биде дефинирана. Имено, ако претпоставиме дека по побудата S=1 и R=1, и
двата влеза одат на ниско ниво S=0 и R=0, тогаш излезот ќе зависи од оној
сигнал што подолго останал на 1. Излезното ниво ќе биде одредено од состојбата
на оној влезен сигнал којшто подоцна (втор) се спуштил на ниско ниво, а бидејќи
зедовме дека и двата сигнала истовремено се менуваат, излезното ниво на Q и Q
не може прецизно да се определи. Заради ова влезната комбинација S=1 и R=1
кај SR флип-флопот не е дозволена.
Од кажаното произлегува дека ефективно дејство врз флип-флопот, т.е.
промена на излезот, може да се случи само ако постои појава на 1 на некој од
влезовите S или R. Заради ова велиме дека влезовите S и R се активни на 1, т.е.
на високо ниво.
Работата на SR флип-флопот целосно може да се определи од табелата на
премин и излез означена со таб. 3-2, додека неговата табела на побуда е
прикажана како таб. 3-3. Поаѓајќи од табелата на премин 3-1, принципот на
работа на SR флип-флопот може да се опише и по аналитички пат, со следнава
карактеристичната равенка:
Q + = S+ R Q , или Q +=(S+ Q ) R , при што SR=0. (3-1)
80 ФЛИП ФЛОПОВИ

S R Q+ Q Q+ S R
0 0 Q 0 0 0 x
0 1 0 0 1 1 0
1 0 1 1 0 0 1
1 1 ? 1 1 x 0

Таб. 3-2. Табела на премин и Таб. 3-3. Табелата на побуда


излез на SR флип-флоп на SR флип-флоп

Во равенката 3-1 мора да важи SR=0. Ограничувањето SR=0 ја кажува


претходно споменатата забрана дека во ист момент влезот S и влезот R не смеат
да бидат активни, т.е. тие не смеат истовремено да бидат на логичка 1.
Функционирањето на SR флип-флопот е илустрирано со временските
дијаграми дадени на сл. 3-7, при што претпоставено е дека неговата почетна
положба била Q =0, ( Q =1) , односно дека тој на почетокот бил ресетиран.

S
t
R
? t
Q
? t
Q
t
Сл. 3-7. Временски дијаграми во каратеристичните точки на
влезот и излезот од SR флип-флопот

Веќе наведовме дека прикажаната конфигурација на SR флип-флопот од


сл. 3-5 се нарекува леч. За него е карактеристична појавата на транспарентност
бидејќи кај ова коло секоја промена на логичките нивоа на влезовите
предизвикува промена (се рефлектира) на излезните нивоа. Поедноставно
кажано, излезот “може да се гледа” од страната на влезот и влезот “може да се
гледа” од страната на излезот.

3.2.2. SR ФЛИП-ФЛОП ОД НИ ТИП

Покрај SR флип-флоп од НИЛИ тип постои и SR флип-флоп од НИ тип


реализиран со вкрстена врска на две НИ кола со по два влеза според сл. 3-8. За
разлика од SR НИЛИ флип-флопот кој беше активен на 1, SR НИ флип-флопот е
активен на ниво на 0, бидејќи неговиот излез реагира на појавата на 0 на еден од
двата влеза. Заради ова во литературата ваквиот флип-флоп обично се означува
со S R , или на влезовите S и R се става мал круг (). Логичките симболи на S R
флип-флоп се прикажани на сл. 3-9 а) и б).
ФЛИП ФЛОПОВИ 81

S Q S Q S Q
R Q R Q
Q а) б)
R

Сл. 3-8. Логичка шема на S R флип-флоп Сл. 3-9. Симболи на S R флип-флоп

Табелата за премин и излез за S R флип-флопот е означена со таб. 3-4,


додека неговата табела на побуда (екситација) е дадена како на таб. 3-5.

S R Q+ Q Q+ S R
0 0 ? 0 0 0 x
0 1 1 0 1 0 1
1 0 0 1 0 1 0
1 1 Q 1 1 x 1

Таб. 3-4. Табела на премин Таб. 3-5. Табелата на побуда


и излез на S R флип-флоп на S R флип-флоп

Поаѓајќи од дадената комбинациона табела, лесно може да се објасни


работата на S R флип-флопот. Имено, ако на влезот се донесе комбинација S = 0
и R = 1, тогаш флип-флопот ќе биде сетиран, т.е. Q = 1, ( Q = 0). Од друга страна,
ако влезовите се побудат со R = 0 и S = 1, тогаш флип-флопот ќе биде
ресетиран, т.е. Q = 0, ( Q =0). Кога и двата влеза се наоѓаат на логичка 1,
следната состојба на излезот од флип-флопот ќе остане иста со претходната. Кај
овој флип-флоп е забрането на двата влеза истовремено да се појават 0-и. Во
овој случај, ако и двата влеза истовремено се 0-и ( S = R = 0 ), излезите од флип-
флопот Q и Q нема да бидат меѓусебно комплементарни, туку ќе се наоѓаат на
ниво на 1, што лесно може да предизвика појава на недефиниран излез.
Логичката шема на S R флип-флопот од сл. 3-8 со НИ логички кола може
да се трансформира и да се однесува како SR флип-флоп од НИЛИ тип доколку
секој од влезните сигнали на сл. 3-8 се доведе до НИ вратите преку инвертори.

3.2.3. SR ФЛИП-ФЛОП ТАКТИРАН СО НИВОТО НА ТАКТ-СИГНАЛОТ

Ваквиот флип-флоп треба да биде управуван со логичката состојба на


влезовите S и R, но во моментот на појавата на високо логичко ниво на такт-
сигналот C (С=1) што во принцип може да се оствари со поврзувањето прикажано
на сл. 3-10 а). Логичката структура на тактираниот SR флип-флоп реализиран
со НИЛИ кола е прикажана на сл. 3-10 б), со НИ кола на сл. 3-11 а), додека
неговиот симбол е даден на сл. 3-11 б.
82 ФЛИП ФЛОПОВИ

На влезовите S и R се доведуваат соодветните логички напонски нивоа, а


заради присуството на двете И кола чиј излез се контролира преку логичкото
ниво на тактот C кој истовремено се носи како влез и до двете И кола, ефективно
дејство врз состојбата на флип-флопот ќе се изврши само кога ќе се појави
предниот (растечкиот, позитивниот) раб на влезот за такт-сигналот C. И ова коло
претставува леч бидејќи и кај него е карактеристична појавата на транспа-
рентност, но само ако сигналот за такт C е висок (С=1), заради што овој сигнал
може да се гледа и како сигнал за дозвола (овозможување) на работа Е.

R
S Q
S Q
C C

R R Q Q
S
а)
а)
S
Q
S Q
C C
Q R Q
R б)
б)
Сл. 3-10. Логичка структура на Сл. 3-11. Симбол на
тактиран SR флип-флоп тактиран SR флип-флоп
Бидејќи влезовите S и R можат да дејствуваат врз состојбата на флип-
флопот само ако се синхронизирани со такт-сигналот, тие се викаат синхрони
влезови, а самиот флип-флоп синхронизиран или тактиран SR флип-флоп.
Работата на тактираниот SR флип-флоп може да се илустрира со табелата
на премин и излез прикажана на сл. 3-6 и табелата на екситација дадена на сл. 3-
7. Тие практично се исти со табелите на премин и излез за асинхрониот SR флип-
флоп, со една забелешка дека важат само кога тактот преминува од ниско
логичко ниво (0) на високо (1) и има стабилно високо ниво што се случува со
појавата на предниот раб на тактот кој ја овозможува работата на логичките кола.
Ова подобро може да се види од неговата карактеристична равенка со такт
влез C:
Q + = ( S + R Q ) C + Q C , или Q + = [( S + Q ) R ]C + Q C (3-2)
при што треба да биде исполнет условот SR = 0.
За сигурна работа на тактираниот флип-флоп, нивото на влезовите S и R
треба да биде стабилно додека трае такт-импулсот С, или поточно податоците на
влезовите S и R треба да се појават непосредно пред предниот раб на тактот, а да
завршат непосредно по неговиот заден раб, како што е прикажано на сл. 3-12 а).
ФЛИП ФЛОПОВИ 83

S R Q+ Q Q+ S R
0 0 Q 0 0 0 x
0 1 0 0 1 1 0
1 0 1 1 0 0 1
1 1 ? 1 1 x 0

Таб. 3-6. Табела на премин Таб. 3-7. Табела на побуда на


и излез на SR флип-флоп SR флип-флоп

За ваквиот тип на флип-флоп се вели дека е управуван, т. е. дека се


префрлува од една состојба во друга со нивото на такт-сигналот (анг. level-
triggered или pulse-triggered). Ние обично ќе разгледуваме идеални случаи,
опишани со сл. 3-12 б). Ако овој услов не биде исполнет, односно ако некој од
влезовите S или R ја промени својата логичка состојба, таа промена ќе помине
низ влезните кола кои се отворени, бидејќи тактот е на високо ниво, со што ќе
дојде до промена на излезот за време на такт-импулсот.

C C
t t

S или R Податок S или R Податок


t t
а) б)
Сл. 3-12. Усогласеност на влезните сигнали кај SR флип-флоп
управуван со нивото на тактот

C
t
S
t
R
? t
Q
? t
Q
t
Сл. 3-13. Временски дијаграми за начинот на работа на тактиран SR флип-флоп
Со примерот од сл. 3-13 е илустриран принципот на работа кај вака
тактираниот SR флип-флоп, при што е претпоставено дека неговата почетна
состојба била ресетирана: Q = 0, ( Q = 1). Од презентираните временски
дијаграми се гледа дека сега транспарентноста се јавува само ако C=1 бидејќи
само во тој временски интервал промената на влезовите ги афектира излезите
(само тогаш тие меѓусебно „се гледаат”).
84 ФЛИП ФЛОПОВИ

Кај тактираниот флип-флоп е вообичаено да се додаваат уште два влеза,


како што е прикажано на сл. 3-14. Логичкиот симбол на ваквиот флип-флоп е
даден на сл. 3-15 а) и б). Новите влезови се активни на ниско ниво и се
означуваат со Sd или PRS (анг. PRE-SET, почетно сетирање) и Rd или CLR (анг.
CLEAR, бришење, почетно ресетирање).
Sd

S S Sd Q S Sd Q
C C
Q R R Q
d R R Q
d
C
Q
R а) б)

Rd
Сл. 3-14. Логичката шема на Сл. 3-15. Симболи на тактиран SR флип-флоп
тактиран SR флип-флоп со директни со директни (асинхрони) влезови
(асинхрони) влезови

Овие два влеза директно влијаат на излезот од флип-флопот независно од


такт-сигналот, па затоа и се викаат директни или асинхрони влезови. Нивна
задача е да овозможат дефинирање на почетната состојба на флип-флопот, и
евентуално негово управување независно од тактот. Кога Sd =0, флип-флопот
почетно се поставува на високо ниво (Q=1), а ако Rd =0 флип-флопот почетно се
поставува на ниско ниво (Q=0). И за овие влезови важи условот дека истовремено
не смеат да бидат активни. Нивна забранета комбинација ќе биде Sd = Rd =0.
Така, во отсуство на такт-импулсот состојбата на флип-флопот целосно ќе биде
одредена од директните влезови. Кај вака изведените директни влезови активни
нивоа можат да се донесат само ако нивото на тактот е ниско. Меѓутоа, ако
нивото на тактот е високо, а тие се активни заедно со податочните влезови S и R,
но со спротивни барања, како на пр. S=1 и Rd =0, или R= 1 и Sd = 0, тогаш
излезот од флип-флопот Q ќе биде недефиниран.
Rd
S
Q

Q
R

Sd

Сл. 3-16. Логичка шема на тактиран SR флип-флоп со


доминантни директни (асинхрони) влезови
ФЛИП ФЛОПОВИ 85

Овој проблем се избегнува со додавање на уште две И кола на излезот од


флип-флопот, како што е прикажано на сл. 3-14, така што се добива конфигура-
цијата како на сл. 3-16.
Сега директните влезови го надвладуваат (доминираат над) такт-сигналот.
Имено, излезот од флип-флопот зависи само од состојбата на влезовите Sd и Rd ,
независно од нивото на тактот C и влезовите за податоците S и R.
Обично секогаш кога ќе употребуваме синхрони флип-флопови со директни
влезови ќе претпоставуваме дека директните влезови го надвладуваат тактот.
Тактираните флип-флопови можат да работат под дејство на такт-сигналот и
нивното однесување да зависи само од синхроните влезови S и R, единствено
кога директните (асинхроните) влезови се пасивни, за што треба да се држат на
високо ниво.
Треба да спомнеме и тоа дека кај некои изведби на флип-флопови
директните влезови можат да бидат активни на високо ниво. Во овие случаи тие
се означуваат со Sd Rd, односно PRS и CLR. За ваквите флип-флопови забранета
комбинација ќе биде доведувањето на две 1-и на директните влезови, т.е.
Sd=Rd=1. Однесувањето на флип-флопот ќе биде контролирано од синхроните
влезови S и R само кога директните влезови истовремено се на ниско ниво
(Sd=Rd=0).

3.2.4. SR ФЛИП-ФЛОП ТАКТИРАН СО РАБОТ НА ТАКТ-СИГНАЛОТ

Покрај флип-флоповите кои се управувани со нивото на тактот, во


практиката голема примена наоѓаат и т.н. прекинувачки флип-флопови, кои
својата состојба ја менуваат само при појавата на работ на такт сигналот (анг.
edge-triggered) и тоа при неговиот премин од ниско на високо ниво, или од високо
на ниско. Во првиот случај станува збор за менување на состојбата при појава на
позитивниот (растечкиот) раб на тактот, додека во вториот случај на негативниот
(опаѓачкиот). Кај овие флип-флопови такт сигналот може да биде висок и да се
случи било каква промена на логичката состојба на влезовите, но тоа нема да има
никакво влијание врз состојбата на излезите, што не беше случај кај претходно
анализираните флип-флопови. Ваквите флип-флопови во принцип може да се
добијат ако такт сигналот од сл. 3-10 прво се донесе на коло кое ќе врши
детекција на работ (анг. edge-triggered detector) на такт сигналот според сл. 3-17.
Симболичката ознака на ваквите флип-флопови е прикажана на сл. 3-18 а) и б).

S
Q S Q S Q
C C
Детектор
C
на раб R Q R Q
Q

R а) б)

Сл. 3-17. Логичка шема на прекинувачки Сл. 3-18. Симболи на прекинувачки флип-
флип-флоп. флоп
86 ФЛИП ФЛОПОВИ

Детекторот на растечкиот или опаѓачкиот раб, такт-импулсот го претвора


(трансформира) во многу тесен импулс широк само неколку наносекунди. На сл.
3-19 а) и б) последователно се прикажани типични и наједноставни кола за
детекција на растечкиот и опаѓачкиот раб на тактот. Такт сигналот се носи
истовремено на двата влеза од И колото. При ова, едниот влез се побудува откога
тактот ќе помине низ влезното инверторско коло. Улогата на инверторот е да
внесе минимално доцнење од неколку наносекунди заради минувањето на такт-
сигналот низ него и со тоа на влезот од И колото да донесе два минимално
временски поместени инвертирани сигнали. Ваквото поврзување овозможува на
излезот од детекторот да се формира позитивен импулс точно во моментот на
појава на работ на тактот (на предниот раб според сл. 3-19 а), а на задниот
според сл. 3-19 б)), со времетраење кое е еднакво со времето на доцнење на
инверторот. Како замена на логичкото И коло од сл. 3-19 б) може да се употреби
НИЛИ коло.

In In
Out Out

In=C In=C
t t
C C
t t
Out Out
t t
а) детекција на преден раб б) детекција на заден раб
Сл. 3-19. Реализација на детектор на раб и негови временски дијаграми
Кај ваквите флип-флопови што реагираат на појавата на работ на такт
сигналот, а не на неговото ниво, тактот во нивната симболичка ознака се
означува со мал триаголник (Δ) како што е прикажано на сл. 3-18 а) и б).
Симболот на флип-флопот од сл. 3-18 а) се однесува на флип-флоп управуван со
позитивниот раб на тактот, додека сл. 3-18 б) означува флип-флоп управуван со
негативниот раб на тактот.

3.2.5. SR ФЛИП-ФЛОП СО MASTER-SLAVE СТРУКТУРА


Тактираниот SR флип-флоп ги менуваше своите излези ( Q и Q ) со појавата
на растечкиот раб на влезот за такт-сигнал. Меѓутоа, ваквото однесување, во
голем број на дигитални склопови би предизвикал неправилно функционирање.
Проблемот произлегува од следниов факт: дигиталните уреди користат поголем
број меѓусебно поврзани флип-флопови, така што секој флип-флоп реагира на
податокот што е присутен на неговиот влез пред да се случи активниот премин,
но и на новиот податок, кој е резултат на промената на излезите на другите
флип-флопови, кои исто така, го промениле излезот. За да го разјасниме овој
проблем, ќе го разгледаме примерот на два каскадно врзани SR флип-флопови
прикажани на сл. 3-20.
ФЛИП ФЛОПОВИ 87

Ќе претпоставиме дека и двата флип-флопови F1 и F2, реагираат со


појавата на предниот раб на тактот и дека почетната состојба на флип-флоповите
била ресетирана ( Q 1=0 и Q 2=0).
F1 F2
S=1 S Q S Q
C C
R=0 R Q R Q
C
Сл. 3-20. Два каскадно поврзани тактирани SR флип-флопови
На влезот во каскадата се доведува влезната комбинација S1=1 и R1=0, која
во првиот флип-флоп за време на првиот такт-циклус треба да внесе 1, а во
вториот флип-флоп за време на вториот такт-циклус. Попрецизно, кога ќе се
појави првиот такт-импулс, излезот Q 1 треба да оди на 1 ( Q 1=1), додека излезот
Q 2 треба да остане на 0 ( Q 2=0). Со појавата на вториот такт импулс, првиот
флип-флоп треба да остане на 1 ( Q 1=1), а излезот од вториот флип-флоп да оди
на 1 ( Q 2=1). Меѓутоа, склопот нема да работи правилно. Имено, кога ќе се појави
предниот раб на тактот првиот флип-флоп оди на 1 ( Q 1=1), бидејќи S1 = 1 и R1=
0, но со доцнење tPD кое време е потребно за сигналот да помине низ првиот
флип-флоп. За ова кусо време и излезот од вториот флип-флоп не се менува
бидејќи S2= Q 1=0 и R2= Q 1=1. Но, веднаш по завршувањето на tPD, S2 оди на 1
(S2=1), а R2 (R2=0). Сега, бидејќи тактот C сèуште е активен, излезот од вториот
флип-флоп оди на 1 ( Q 2=1) уште за време на првиот такт-импулс, а не онака
како што требаше, за време на вториот. Ова е илустрирано со временските
дијаграми од сл. 3-21 а).
Еден начин за ова да се спречи е да се генерира такт-сигнал кој има
времетраење на импулсите многу помало во однос на траењето на паузите.
Ваквиот такт-сигнал, кој има многу кусо времетраење на активното ниво, покусо
од времето на доцнење tPD, може да предизвика несигурна работа при
префрлување на флип-флоповите, затоа што тоа време може да биде недоволно
за тие да реагираат на влезните податоци. Накратко, времето за кое се
овозможени логичките кола на флип-флоповите е покусо отколку што треба.
Заради ова, се практикува едно поинакво решение со кое се избегнуваат овие
проблеми и кое обезбедува врската помеѓу влезовите и излезите да се прекине
пред излезот да се смени. Станува збор за употребата на т.н. главен-извршен
или MS (анг. master-slave, главен-помошен, двомемориски) флип-флоп. MS
флип-флопот се управува со оној раб на тактот кога тој преминува од
овозможување на логичките кола во работа на нивно оневозможување, а во
случајов тоа е опаѓачкиот раб на импулсот за такт синхронизација.
Одзивот на истата побуда, но со MS флип-флопови е прикажан на сл. 3-21
б). Излезите Q 1 и Q 1 од првиот флип-флоп се менуваат на опаѓачкиот раб од
тактот и не можат да дејствуваат на вториот флип-флоп, бидејќи нивото на тактот
е ниско.
88 ФЛИП ФЛОПОВИ

C C
t t
Q1 Q1
tpd t tpd t
Q2 Q2
tpd tpd t tpd t
а) управувани со нивото на тактот б) управувани со MS структура
Сл. 3-21. Временски дијаграми кај два каскадно поврзани тактирани SR флип-флопови
Промената на вториот излез Q 2 ќе се случи со појавата на опаѓачкиот раб на
такт-сигналот, така што сега склопот работи правилно, а освен ова за време на
вториот такт-циклус податоците можат да се стабилизираат на потребните нивоа
S2 = Q 1=1 и R2= Q 1= 0.
MS структура на флип-флоп се добива со каскадно поврзување на два
тактирани флип-флопови од сл. 3-10 со што се добива сл. 3-22 а) и б) која ја
претставува логичката структура на SR MS флип-флопот. Неговиот логички
симбол е прикажан на сл. 3-22 в).

S Q S Q
C C S Q
R Q R Q C
R Q
а) в)
S
Q

Q
R

R
б) Главен Извршен

Сл. 3-22. Логичката структура (а, б) и логички симбол (в) на SR MS флип-флоп

C
t
S
t
R
? t
Q
? t
Q
t
Сл. 3-23. Временски дијаграми за однесувањето на тактиран SR MS флип-флоп
ФЛИП ФЛОПОВИ 89

Функционирањето на овој флип-флоп е илустрирано со временските


дијаграми прикажани на сл. 3-23. Принципот на работа е идентичен со работата
на обичниот SR флип-флоп, со единствена разлика што сега логичките состојби
на излезот се јавуваат по задниот раб на такт-сигналот. Ова е овозможено со
употребата на двата SR флип-флопови кои се тактирани со меѓусебно
комплементарни тактови.
Имено, предниот раб на тактот дејствува на состојбата на главниот (анг.
master, господарот, меморискиот) флип-флоп, а состојбата на извршниот (slave,
робот, излезниот) флип-флоп останува непроменета затоа што на неговиот влез
се јавува опаѓачкиот раб на тактот. Кога ќе се појави задниот раб на тактот,
престанува дејството врз главниот флип-флоп, но инвертираната вредност на
овој напонски облик т.е. преден раб, сега се јавува на извршниот флип-флоп и тој
ја менува состојбата под дејство на излезите Qm и Qm бидејќи тие се сега негови
влезови: SS= Qm и RS= Qm . Ова значи дека сè додека тактот е константен (на
ниво 1 или 0), флип-флоповите меѓусебно се одвоени, а со тоа и влезот од
излезот кај MS флип-флопот. Со појавата на предниот раб на тактот работи
главниот флип-флоп, додека извршниот флип-флоп е исклучен, па влезните
податоци присутни на S и R влезовите се запишуваат во главниот флип-флоп.
Извршниот флип-флоп податоците ги прима со појавата на задниот раб на тактот,
бидејќи тогаш се вклучува. Во тој момент тие се појавуваат и на излезот, а воедно
е оневозможен и главниот флип-флоп.
И кај MS флип-флопот, за неговата правилна работа, податоците не смеат
да се менуваат за времето кога тактот е активен, т.е. сигналите присутни на
влезовите S и R мора да се стабилни сè додека C=1. Овој недостаток може да се
избегне ако логичката структура на главниот флип-флоп се модифицира така да
тој реагира само на појавата на предниот раб на такт сигналот.
Кај MS структурите на флип-флопови често се додаваат приклучоци за
асинхрони влезови со кои директно се поставува или се брише флип-флопот. Тие
може да се активни на високо или ниско ниво, и зависно од изведбата, смеат да
се донесат само во паузата на тактот, или целосно да го надвладеат дејството на
тактот (да доминираат над него).
Ако направиме осврт на сè она што досега беше изнесено, може да
заклучиме дека oсновен недостаток на SR флип-флоповите од било кој тип, е тоа
што постои забранета влезна комбинација кога влезовите S и R не смеат
истовремено да бидат активни со што се ограничува неговата примена. Дури и
системски да се обезбеди да не дојде до појавување на ваква побуда, заради
дејството на шумот или пречките, некоја дозволена влезна комбинација може да
стане нелегитимна. Поради ова се изработуваат и такви SR флип-флопови кај кои
еден од влезовите е доминантен тогаш кога ќе се појави нелегална влезна
комбинација, па излезот ќе биде одреден од тој доминантен влез. Сепак,
проблемот со забранетата влезна комбинација целосно е надминат со
проектирањето на други типови флип-флопови кои имаат дефинирани состојби за
секој влез. Нивната анализа ќе биде презентирана во понатамошното излагање.
90 ФЛИП ФЛОПОВИ

3.3. ЈК ФЛИП-ФЛОП
JK флип-флопот по својата логичка структура претставува модифициран
SR флип-флоп за кој нема забранета влезна комбинација. Неговата логичка
конфигурација е прикажана на сл. 3-24 а) б) од каде се гледа дека JK флип-
флопот се добива со примена на SR флип-флоп со изведени две вкрстени
повратни врски. При ова, JK флип-флопот ќе биде тактиран ако на влезните НИ
кола се додаде уште по еден влез на кој ќе се носи тактот C како што е
прикажано на сл. 3-24 со испрекинати линии. Симболичката ознака на JK флип-
флопот е дадена на сл. 3-25, табелата на премин и излез е означена со таб. 3-8,
додека табелата на екситација како таб. 3-9.
Врз основа на табелата на премин и излез може да се напише
карактеристичната равенка за JK флип-флопот. За асинхрониот JK флип-флоп,
таа ќе биде дадена со следнава логичка равенка:
Q   J Q  KQ (3-3)
Логичката равенка на синхрониот ЈК флип-флоп со влез за такт C е:
Q   ( J Q  KQ)C  QC (3-4)

J J
S Q
C Q
C
K Q
R Q
K

а) б)
Сл. 3-24. Логичка структура на JK флип-флоп
За ЈК флип-флопот нема забранета влезна комбинација. Имено, од
комбинационата табела, а и од функцијата на премин станува јасен неговиот
принцип на работа: JK флип-флопот работи како SR флип-флоп за сите влезни
комбинации, при што аналоген влез на S е Ј, додека на влезот R соодветствува
влезот K, освен за комбинацијата кога и двата влеза J и K се на ниво на 1. Кога ЈК
флип-флопот ќе се побуди со влезна комбинација J = 1 и K = 1, состојбата на
излезот ќе биде дефинирана и ќе претставува комплемент на неговата претходна
состојба, т.е. ќе важи Q   Q .

J K Q+ Q Q+ J K
0 0 Q 0 0 0 x
J Q 0 1 0 0 1 1 x
C
Q 1 0 1 1 0 x 1
K
1 1 Q 1 1 x 0

Сл. 3-25. Логички Таб. 3-8. Табела на премин Таб. 3-9. Табела на
симбол на JK флип-флоп и излез кај JK флип-флоп побуда на JK флип-флоп
ФЛИП ФЛОПОВИ 91

Еден пример за однесувањето на JK MS флип-флопот е прикажан со


временските дијаграми дадени на сл. 3-26 со ресетирана почетна положба.

C
t
J
t
K
t
Q
t
Q
t
Сл. 3-26. Временски дијаграми за однесувањето на тактиран ЈК флип-флоп

Кај тактираните JK флип-флопови обично се додаваат асинхрони влезови


кои можат да бидат активни на ниско ниво и се означуваат со S d ( PRS ) и Rd
( CLR ), додека ако се активни на високо ниво се означуваат со S d (PRS) и Rd (CLR).
Кај JK флип-флопот можат да настанат одредени проблеми во неговото
функционирање. Така на пр. да претпоставиме дека Ј=1 и К=1 и дека почетната
состојба на флип-флопот била Q  0 (Q  1) . Кога ќе се појави растечкиот раб на
тактот, по одредено задоцнување tpd кое е помало од траењето на импулсот од
такт-сигналот, на излезот ќе се појави Q  1 (Q  0) . Оваа промена од излезот се
враќа на влезот, а бидејќи импулсот од тактот сèуште трае, повторно ќе се
предизвика менување на излезот Q  0 (Q  1) по време tpd, и оваа промена пак се
враќа на влезот итн. сè додека трае такт-импулсот. Ова значи дека излезот
осцилира меѓу 0 и 1 сè додека тактот е активен (C = 1), па така кога тактот ќе се
спушти на пасивно (ниско) ниво, излезот нема да биде дефиниран. Едно решение
би било повратните сигнали да се задоцнат со што доцнењето tpd ќе биде
поголемо од времетраењето на такт-импулсот, но воедно и помало од траењето
на паузата, а второто импулсот да биде пократок од времето на доцнење tpd.
Бидејќи и двете решенија создаваат други проблеми, наведениот недостаток се
надминува ако излезот се менува со појавата на задниот раб на тактот, или ако JK
флип-флопот се реализира со MS структура слично на сл. 3-22. Во овој случај
излезот се враќа на влезот, но сега влезот на такт-сигналот за вториот
(извршниот) флип-флоп се наоѓа на ниско ниво заради што вратениот сигнал не
може да предизвика дополнителна промена.

3.4. Т ФЛИП-ФЛОП
Овој тип флип-флоп има само еден влез означен со T. Логичката структура
на T флип-флопот е прикажана на сл. 3-27 а) и б), а симболот на сл. 3-28. Од
сл. 3-27 се гледа дека и овој флип-флоп се добива од SR (или ЈК) флип-флоп на
кој се изведени две вкрстени повратни врски, додека два влеза се врзуваат во
еден.
92 ФЛИП ФЛОПОВИ

Табелата на премин и излез е прикажана како таб. 3-10, додека табелата


на побуда е презентирана како таб. 3-11 и од нив лесно може да се сфати
неговиот начин на работа.

Q
S Q
T
T
Q R Q

а) б)

Сл. 3-27. Логичка структура на Т флип-флоп

Q Q+ Т
Т Q+ 0 0 0
Q 0 Q 0 1 1
T
Q 1 Q 1 0 1
1 1 0

Таб. 3-10. Табела на Таб. 3-11. Табела на


Сл. 3-28. Логички
премин и излез кај Т побуда на Т флип-флоп
симбол на Т флип-флоп
флип-флоп

Ако на влезот T се донесе 0 (Т=0), тогаш следната состојба на излезот ќе


биде непроменета во однос на претходната: Q   Q . Ако, пак, на влезот T се
донесе 1 (Т=1), тогаш следната состојба на излезот ќе биде комплемент на
претходната Q   Q . Поради овој начин на работа, T флип флопот се вика и
префрлувачки флип-флоп (од анг. toggle или trigger, срп. oкидачки).
Врз основа на табелата на премин може да се напише и карактеристичната
равенка на Т флип-флопот. Таа е дадена со следнава логичка равенка:
Q   (Q  T ) или Q   QT  QT . (3-5)
За тактиран флип-флоп со такт С карактеристичната равенка ќе биде
Q   (Q  T )C  Q C или Q   (QT  QT )C  Q C . (3-6)
На сл. 3-28 е прикажан еден пример за однесувањето на T флип-флоп, со
почетна ресетирана состојба Q  0 (Q  1) .
Ако се погледне карактеристичната табела таб. 3-8 на ЈК флип-флопот, се
забележува дека со поврзување на двата влеза во еден заеднички сме направиле
транформација во Т флип-флоп. Слично, доведувањето на две 1-и на Ј и К
влезовите (J=K=1) кога тактот е активен, предизвикува неговата следна состојба
да биде комплементарна на претходната.
ФЛИП ФЛОПОВИ 93

Од тука произлегуваат изведбите на Т флип-флоп прикажани на сл. 3-29 со


примена на нетактиран и тактиран ЈК флип-флоп чии влезови константно се
држат на логичка 1.

T T
t 1 J Q J Q
T C
Q
t 1 K Q K Q
Q а) б)
t
Сл. 3-28. Временски дијаграми Сл. 3-29. Реализација на Т флип-флоп
за однесувањето на Т флип-флоп со ЈК флип-флоп

Бидејќи T флип-флопот ја менува состојбата при појава на влезен импулс,


произлегува дека тој врши детекција на секој импулс, а тоа може да се примени
за броење на влезните импулси, заради што за него се вели дека е и бројачки
флип-флоп. Во врска со ова, T флип-флопот се користи како основен градбен
елемент при реализацијата на бројачки мрежи за кои ќе стане збор во една од
темите што следуваат.

3.5. D ФЛИП-ФЛОП
Ако се погледнат и анализираат карактеристичните табели 3-6 и 3-8 на SR
и ЈК флип-флоповите лесно се забележува дека доведувањето на влезна
комбинација со меѓусебно комплементарни влезови предизвикува следната
состојба на флип-флопот да биде или 1 или 0. Оттука произлегува изведбата на D
флип-флоп прикажана на сл. 3-30 која користи SR (или JK) флип-флоп и еден
инвертор. Овој флип-флоп има само еден влез означен со D на кој се доведува
податокот. Целта е да се добие дигитална компонента која ќе памти еден бит
доведен на овој влез, така што следната состојба на флип-флопот секогаш ќе
биде иста со логичката состојба на влезот D.
Симболичката ознака на D флип-флопот е дадена на сл. 3-31, додека
неговата логичка структура на сл. 3-32 а) и б). Од сликите се гледа дека кога има
потреба неговата работа да биде синхронизирана со други дигитални кола во
единствен систем, се додава уште еден влез за такт (С) како што е претставено на
сликите со испрекинати линии.

D D
S Q J Q
C C
D Q
C C
R Q K Q
C Q
а) б)

Сл. 3-30. Реализација на D флип-флоп со SR и JK Сл. 3-31. Логички


симбол на D флип-флоп
94 ФЛИП ФЛОПОВИ

D D
Q
Q
C

Q
Q
а) б)

Сл. 3-32. Логичка структура на D флип-флоп

Комплетната работа на овој флип-флоп најдобро може да се илустрира со


помош на неговата табела на премин и излез 3-12 и табелата на побуда
(екситација) 3-13.
Q Q+ Т
+
Т Q 0 0 0
0 0 0 1 1
1 1 1 0 0
1 1 1

Таб. 3-12. Табела на премин Таб. 3-13. Табела на


и излез кај Т флип-флоп побуда на Т флип-флоп

Врз база на овие табели може да се сфати принципот на работа на D флип-


флопот. Без оглед на тоа каква е претходната состојба на излезот Q, следната
состојба на флип-флопот ќе биде иста со доведената состојба на влезот D:
Q   D така што ако D = 0 тогаш Q   0 , a ако D =1 тогаш Q   1 . Оттука
фактички произлегува и скратениот назив на D флип-флопот. Имено, сигналот од
влезот се пренесува на излезот, т.е. податокот (анг. Data) присутен на влезот се
проследува до излезот. При ова секогаш постои одредено доцнење (анг. Delay)
заради неговото поминување низ флип-флопот, колку и да е тоа занемарливо
мало.
Кај тактираните D флип-флопови влезот D зависи од појавата на такт-
сигналот С и затоа треба да биде синхронизиран со него. Кај ваквиот флип-флоп
излезот го следи влезот, почнувајќи од појавата на предниот раб на тактот, па сè
додека тактот е висок, т.е. додека има активно ниво. Обично на тактираниот
флип-флоп му се додаваат уште еден или два директни асинхрони влезови кои се
независни од тактот и доминираат со него.

Начинот на функционирањето на D флип-флопот се опишува и во


аналитички облик преку неговата карактеристична равенка:
Q  D (3-7)
за асихрон флип-флоп, или
Q   DC  QC (3-8)
за синхрон D флип-флоп.
ФЛИП ФЛОПОВИ 95

Принципот на работа на D флип-флопот е илустриран со следниот пример


на временски дијаграми на влезот и излезот од D флип-флопот кои се прикажани
на сл. 3-33.

C
t
D
t
Q
t
Q
t
Сл. 3-33. Временски дијаграми за однесување на D флип-флоп

Овој флип-флоп најмногу се употребува во изведбата на т.н. стационарни и


поместувачки регистри како мемориски компоненти со мал капацитет кои ќе
бидат предмет на анализа во следната тема каде ќе бидат обработени во
поголеми детали.
Практичната реализација на D флип-флопот овозможува поголема густина
на пакување во однос на RS или JK флип-флоповите, заради што обично D флип-
флопот се користи како основна компонента за градба на покомплексни
секвенцијални компоненти.

3.5.1 КОЛО ЗА ЗАКЛУЧУВАЊЕ (ЛЕЧ)

Од претходното излагање може да се констатира дека колото за


заклучување (за задржување), или лечот, е всушност основната градбена единица
на сите флип-флопови. Негова главна карактеристика е транспарентноста во
работата: влезот и излезот се во комуникација и „меѓусебно се гледаат“.
Една од главните практични примени на D флип-флопот како леч е
реализацијата на кола кои вршат прифаќање на податоците, нивно заклучување
(задржување) и во одреден момент, нивно понатамошно проследување. Колото за
задржување има два влеза: еден на кој се носи податокот D и вториот Е кој се
нарекува влез за дозвола бидејќи врши контрола на пропуштањето на сигналот
на податокот од влезот D кон излезот Q.

Влезови Излез E/C


+ t
Операција E D Q
D
Пропушта 0 0 t
1 QL
(Q го следи D) 1 1 t
Заклучува QFF
0 x Q t
(Q е заклучен)

Таб. 3-14. Кобинационата Сл. 3-34. Временски дијаграми за


табела на колото за однесување на колото за
заклучување заклучување
96 ФЛИП ФЛОПОВИ

Во врска со претходното,
 излезот Q го следи влезот D сè додека Е е активен, т.е. со појавата на
неговиот преден раб, па сè додека тој се наоѓа на високо ниво (Е = 1);
 излезот Q ја заклучува (задржува) состојбата на влезот D затекната при
задниот раб на влезот за дозвола Е, т.е. во моментот кога тој преминува од
високо на ниско ниво (од Е = 1 паѓа на Е = 0). Затекнатата состојба на
излезот Q при преминот на влезот за дозвола Е од високо на ниско ниво
останува непроменета за цело време додека Е е пасивен, т.е. сè додека Е се
наоѓа на ниско ниво (Е = 0).

Q   DE  D E (3-9)
Принципот на работа се објаснува со функционалната табела 3-14 и
карактеристична равенка (3-9). Дополнително, на сл. 3-34 се дадени временски
дијаграми кои прикажуваат едноставен пример на однесување на лечот за дадена
влезна побуда. Со цел да се забележи разликата помеѓу однесувањето на D лечот
и D флип-флопот кој е управуван со опаѓачкиот раб на тактот, на сл. 3-34 се
прикажани и временските дијаграми на излезите и кај двете компоненти кои се
побудени со идентични влезни сигнали.

3.5.2. ОСНОВНА МЕМОРИСКА ЌЕЛИЈА

Од досега изложеното може да се претпостави на кој начин флип-флопот


може да се употреби како елементарна мемориска ќелија (МС) која памти податок
од еден бит. Постојат најразлични изведби на мемориски ќелии, но за сите нив е
карактеристична појавата на повеќе влезови и најмалку еден излез.
За мемориската ќелија што овде ќе биде анализирана ќе претпоставиме
дека таа има еден влез (Din) за запишување на содржина во неа (еднобитен
податок), со другиот влез (SEL) се врши селекција на ќелијата, додека преку
третиот влез ( R / W ) се избира операцијата што таа ќе ја извршува: читање на
меморираниот податок или запишување на нов. Од излезот на ќелијата (Dout) се
врши читање на содржината (запамтениот податок).
MC

Din Dout Dout


Din
D Q
R/W R/W
SEL
C Q
SEL
Сл. 3-35. Логички симбол Сл. 3-36. Логичка шема на мемориска ќелија
Симболичката ознака на ваквата мемориска ќелија е прикажана на сл. 3-35,
додека логичката шема што неа ја реализира е дадена на сл. 3-36. Од нив се
гледа дека централното место го зазема D лечот со неговиот влез за контрола C.
Принципот според кој треба да работи мемориската ќелија ќе го опишеме во
продолжение.
ФЛИП ФЛОПОВИ 97

За да може да се работи со мемориската ќелија, поточно за да може да се


чита битот (податокот) што е запамтен во неа или да се запише нов, таа треба да
стане активна. За оставрување на оваа цел, мемориската ќелија треба да биде
адресирана, а тоа се врши со доведување на сигнал со високо логичко ниво на
адресната (селекционата) линија (SEL=1).
Во овој случај постојат две можности:
 ЗАПИШУВАЊЕ на нов податок: Ако сигналот R / W се наоѓа на ниско ниво
( R / W =0), тогаш преку инверторот се добива 1 која минува низ И колото и
го активира сигналот за дозвола (С=1) со што податокот присутен на
влезот Din се запишува во флип-флопот, а на излезот се добива нула
(Dout=0);
 ЧИТАЊЕ на запамтен податок: Ако сигналот R / W се наоѓа на високо ниво
( R / W =1), тогаш од една страна влезот за дозвола се наоѓа на ниско ниво
(С=0) кое не дозволува нивото на линијата за податок Din да влијае врз
состојбата на флип-флопот заради што тој ја задржува старата состојба, а
од друга страна се отвора излезното И коло со што податокот (постоечката
состојба на флип-флопот) се јавува на излезната линија (Dout=Q).
Бидејќи цело време не се работи само со една иста ќелија, туку и со
другите, треба да постои можност мемориската ќелија да не биде селектирана. Во
овој случај, кога ќелијата не е адресирана нивото на линијата за селекција е
ниско (SEL=0), таа е пасивна и го задржува податокот што е внесен во неа. Кога
ќелијата не е селектирана, влезот за дозвола оди исто така на нула (С=0) со што
D флип-флопот ја задржува својата постоечка состојба и не ја менува, а
истовремено на излезот се добива ниско ниво (Dout=0).
Презентираниот принцип на работа на момориската ќелија од сл. 3-35
покомпактно е претставен со функционалната табела 3-15.

Влезови Излези
Операција
SEL R /W Din Q+ Dout

Пасивност 0 x x Q 0

0 0
Запишување 1 0 0
1 1

Читање 1 1 x Q Q

Таб. 3-15. Функционална табела на мемориска ќелија


Покрај ваквите асинхрони мемориски ќелии, постојат и синхрони чија
работа е детерминирана со дополнителен такт сигнал кој ги контролира сите
влезови и излези на ќелијата. Мeмориската ќелија во овој случај се однесува
идентично како и претходно, кога е асинхрона, само што сега читањето и
запишувањето се вршат во точно определено време, со појавата на предниот или
задниот раб на тактот.
98 ФЛИП ФЛОПОВИ

Реалните мемориски компоненти може да имаат мемориски ќелии со


единствен влез за податок: во процесот на читање таа линија да е излезна,
додека при запишување влезна. Покрај ова, кога мемориската ќелија не е
адресирана, најчесто линиите за податок за наоѓаат во трета состојба. За да се
добие вакво однесување треба да се изврши модификација на основната логичка
структура на ќелијата и да се воведе баферско коло за што ќе зборуваме во
темата за мeмории која следува понатаму во учебникот.

3.5.3. ТРАНСФОРМАЦИЈА НА ЛОГИКАТА НА D ФЛИП-ФЛОПОТ

Веќе напоменавме дека D флип-флопот сè повеќе се користи за


реализација на флип-флоповите со друга логика. Ова значи дека D флип-флопот,
во некоја рака станува стандардна компонента за изградба на секвенцијалните
мрежи. Затоа е корисно да се прикажат некои решенија на претходно
анализираните типови флип-флопови изведени со примена на D флип-флопот.
Еден од битните недостатоци на SR флип-флоповите секако е нивната
недефинирана состојба за влезна комбинација R = 1 и S = 1. Меѓутоа, веќе
рековме дека можат да се изградат SR флип-флопови со еден доминантен влез.
Така на пример, за да се оствари SR флип-флоп со доминантен R влез со примена
на D флип-флоп, треба да се употреби начинот на поврзување прикажан на сл. 3-
36 а). Кај оваа конфигурација појавата на влезна комбинација R=1 и S=1
предизвикува ресетирање на излезот. Со ова е отстранета недефинираноста при
побуда со R=1 и S=1 бидејќи флип-флопот се ресетира (Q+=0)
На сл. 3-37 б) е прикажан начинот на поврзување на D флип- флопот, така
што со него се реализира JK флип-флоп. T флип-флопот се применува и како
тактиран, но често пати и како нетактиран. На сл. 3-37 в) е прикажана една
изведба на нетактиран T флип-флоп, додека на сл. 3-37 г) на тактиран T флип-
флоп. И за двете реализации е применет D флип-флоп.

J
K
D Q D Q
S
C C Q C
C Q
R

а) SR флип-флоп со доминантен R влез б) Тактиран JK флип-флоп

D Q
T C T Q
Q D
C C Q

в) Т флип-флоп г) Тактиран Т флип-флоп


Сл. 3-37. Изведби на различни типови флип-флопови со примена на D флип-флоп
ФЛИП ФЛОПОВИ 99

3.6. ИНТЕГРИРАНИ ФЛИП-ФЛОПОВИ


Како што може да се забележи од претходните примери, пооделни флип-
флопови имаат доста комплексна конфигурација, иако се конструирани со помош
на интегрирани логички кола. Напредокот на технологијата овозможи и многу
комплексните структури на флип-флопови да се реализираат во облик на
единствено монолитно интегрирано коло. Овие флип-флопови имаат подобри
особини, а нивната примена во сложените системи е многу поедноставна земајќи
го предвид фактот што сите врски помеѓу поединечните функционални елементи
на флип-флопот веќе се изведени во внатрешноста на интегрираното коло.
Дизајнерот нив ги третира како единствена функционална целина, водејќи сметка
само за зависноста на промените на излезните состојби во функција од
комбинацијата на влезните нивоа. Овие флип-флопови во шемите се прикажуваат
на ист начин како и досега со квадрат на чија десна страна се означуваат
излезите, а на левата, горната и долната страна влезовите на флип-флопот.
Вообичаено е лево да се означуваат синхроните влезови и тактот, додека горе и
долу директните (асинхроните) влезови.
На сл. 3-38 а), б), в) и г) се прикажани симболи на неколку често
применувани интегрирани флип-флопови. Во праксата се сретнуваат и
означувања на асинхроните влезови со мал круг (“”). Ова значи дека
ефективното дејство врз состојбата на флип-флопот, а со тоа и на неговиот излез,
ќе се реализира ако на него се донесе ниско ниво (0).
Кругот на влезот за такт-сигнал C означува дека промената на состојбата
на флип-флопот ќе се врши со појавата на задниот раб на такт-сигналот, но ако
тој е испуштен промената ќе настапи со појавата на неговиот преден раб. Кога на
влезот за такт постои триаголник (Δ) тоа покажува дека се работи за флип-флоп
кој е тактиран (управуван) со предниот раб на тактот ако нема мал круг, односно
со задниот раб ако кругчето постои.

T PRS Q D Q J
Sd
Q D PR Q
C
C Q C Q K Q C Q
CLR CLR Rd CL

а) T флип-флоп б) D флип-флоп в) JK флип-флоп г) D флип-флоп


Сл. 3-38. Симболи на интегрирани флип-флопови
Кај флип-флоповите изведени во интегрирана техника не мора секогаш да
постојат двата асинхрони влезови, ниту пак двата меѓусебно комплементарни
излеза, туку само еден од нив.
Технологијата на интегрирани кола овозможи производство на такви
интегрирани кола кои во себе содржат повеќе независни флип-флопови. Така на
пример, во TTL и CMOS технологиите, чии ознаки се 74xx, односно 40хх, се
сретнуваат најразлични изведби на двократни или четирикратни флип-флопови
интегрирани во една компонента.
100 ФЛИП ФЛОПОВИ

ПРАШАЊА И ЗАДАЧИ ЗА ПОВТОРУВАЊЕ


3-1. Што претставува флип-флопот?
3-2. Колку излези има флип-флопот, како се викаат и како се означуваат?
3-3. Кога флип-флопот е сетиран, а кога ресетиран?
3-4. Флип-флопот, во општ случај, има ... влезови такви што некои од нив се ..., а некои
се ...
3-5. Што се носи на податочните влезови?
3-6. Зошто служат контролните влезови?
3-7. Од што зависи состојбата на излезите кај асинхроните флип-флопови?
3-8. Од што зависи состојбата на излезите кај синхроните флип-флопови?
3-9. Што претставува такт сигналот?
3-10. Што се случува кога ќе се појави активно ниво, односно активен раб на тактот?
3-11. Што е време на доцнење?
3-12. Опиши го начинот на работа на флип-флопот!
3-13. Од што зависи состојбата на излезите од флип-флопот? Зошто се нарекува
елементарна мемориска компонента?
3-14. Нацртај ја логичката структура и логичкиот симбол на SR флип-флоп (флип-флоп
од НИЛИ тип).
3-15. Нацртај ја табелата на премин и излез, табелата на екситација и напиши ја
карактеристичната равенка на SR флип-флопот.
3-16. Кога SR флип-флопот не ја менува својата состојба? Што треба да се направи за тој
да се постави на 1, а што за да се ресетира?
3-17. Кој е основниот недостаток на SR флип-флопот и како тоа аналитички се искажува?
3-18. На сл. 3-39 се прикажани временските дијаграми на влезните сигнали S и R кај SR
флип-флопот. Нацртај го временскиот дијаграм на излезот Q, ако почетната состојба
била (а) Q = 0; (б) Q = 1.

Сл. 3-39 Сл. 3-40

3-19. Нацртај ја логичката структура, логичкиот симбол и табелата на премин за S R


флип-флоп (флип-флоп од НИ тип).

3-20. Дали постои нелегитимна (забранета) влезна комбинација за S R флип-флопот на


сл. 3-40 и, ако постои, која е таа?
ФЛИП ФЛОПОВИ 101

3-21. На следната слика се прикажани временските дијаграми на влезните сигнали S и


R кај S R флип-флопот. Нацртај го временскиот дијаграм на излезот Q, ако почетната
состојба на излезот била (а) Q = 0 (б) Q = 1
3-22. Нацртај ја логичката структура и симболичката ознака на тактиран SR флип-флоп!
3-23. Нацртај ја табелата на премин и излез, табелата на екситација и напиши ја
карактеристичната равенка за тактиран SR флип-флоп.
3-24. Кога сигналите доведени на S и R влезовите кај тактираниот SR флип-флоп имаат
ефективно дејство врз неговата состојба?
3-25. Какви треба да бидат нивоата на сигналите доведени на влезовите S и R за
правилна работа на тактираниот SR флип-флоп? Што ќе биде во спротивниот случај?
3-26. На сликата 3-41 се прикажани временските дијаграми на тактот C и на влезните
сигнали S и R кај тактираниот SR флип-флоп. Нацртај го временскиот дијаграм на излезот
Q ако тој почетно се наоѓал на ниско ниво.

Сл. 3-41 Сл. 3-42


3-27. Нацртај ја логичката структура и симболичката ознака на тактиран SR флип-флоп
со асинхрони (директни) влезови активни на ниско ниво S d и R d кои доминираат над
тактот C.
3-28. Која е улогата на директните влезови кај тактираниот флип- флоп? Кој е условот
што треба да биде исполнет помеѓу директните влезови за флип-флопот да работи
исправно?
3-29. На сл. 3-42 се прикажани временските дијаграми на сигналите доведени на
асинхроните влезови S d и R d , на тактот C, и на податочните влезови S и R кај
тактираниот SR флип-флоп. Нацртај го временскиот дијаграм на излезот Q ако почетно
тој се наоѓал на ниско ниво.
3-30. Објасни ја разликата помеѓу флип-флоповите што реагираат на нивото од тактот и
оние што реагираат на појавата на неговиот раб?
3-31. Нацртај ја логичката структура и логичкиот симбол на MS SR флип-флоп.
3-32. Која е разликата помеѓу тактираниот SR флип-флоп (лечот) и MS SR флип-флопот?
3-33. Која е разликата помеѓу MS SR флип-флопот и тактираниот SR флип-флоп
управуван со работ на такт сигналот?
3-34. Какви треба да бидат податоците присутни на податочните влезови S и R за
правилна работа на MS SR флип- флопот?
102 ФЛИП ФЛОПОВИ

3-35. Нацртај го логичкиот симбол на MS SR флип-флоп со асинхрони влезови активни на


(а) ниско (б) високо ниво.
3-36. Нацртај ја логичката шема и логичкиот симбол на (а) асинхрон (б) синхрон JK флип-
флоп.
3-37. Нацртај ја табелата на премин, табелата на побуда и карактеристичната равенка на
(а) асинхрон (б) синхрон JK флип-флоп.
3-38. Која е разликата во однесувањето помеѓу SR и JK флип-флопот?
3-39. На сл. 3-43 се прикажани временските дијаграми на влезните сигнали J и K кај JK
флип-флопот. Нацртај го временскиот дијаграм на излезот Q ако тој почетно се наоѓал на
ниско ниво.

Сл. 3-43 Сл. 3-44

3-40. На сл. 3-44 се прикажани временските дијаграми на тактот C и на влезните сигнали


J и K кај тактираниот ЈК флип-флоп. Нацртај го временскиот дијаграм на излезот Q ако
тој почетно се наоѓал на ниско ниво.
3-41. Нацртај ја логичката шема и логичкиот симбол на (а) асинхрон (б) синхрон T флип-
флоп.
3-42. Нацртај ја табелата на премин и излез, табелата на побуда и карактеристичната
равенка на (а) асинхрон (б) синхрон T флип-флоп!
3-43. На сл. 3-45 е прикажан временскиот дијаграм на сигналот доведен на T влезот кај T
флип-флоп. Нацртај го временскиот дијаграм на излезот Q ако неговата почетна состојба
била Q=0.

Сл. 3-45 Сл. 3-46


3-44. На сл. 3-46 се прикажани временските дијаграми на сигналите доведени на тактот C
и на податочниот влез T кај T флип-флоп. Нацртај го временскиот дијаграм на излезот Q
ако неговата почетна состојба била Q = 0.
3-45. Нацртај ја логичката шема и логичкиот симбол на (а) асинхрон (б) синхрон D флип-
флоп.
3-46. Нацртај ја табелата на премин и излез, табелата на побуда и карактеристичната
равенка на (а) асинхрон (б) синхрон D флип-флоп.
ФЛИП ФЛОПОВИ 103

3-47. На сл. 3-47 е прикажан временскиот дијаграм на сигналот доведен на влезот за


податок D кај D флип-флопот. Нацртај го временскиот дијаграм на излезот Q ако
неговата почетна состојба била Q = 0.
3-49. На сл. 3-48 се дадени временските облици на сигналите доведени на податочниот
влез D и влезот за контрола E кај D лечот (колото за заклучување). Нацртај го брановиот
облик на излезот Q, ако тој почетно се наоѓал на ниско ниво. Нацртај го брановиот облик
на излезот Q со претпоставка дека истите побудни сигнали се носат на D флип-флоп кој е
управуван а) со предниот б) задниот раб на тактот.

Сл. 3-47 Сл. 3-48


3-48. Објасни ја разликата помеѓу D флип-флопот и D лечот (колото за заклучување).
3-50. Одреди какви типови на флип-флопови се реализираат со логичките шеми
прикажани на сл. 3-49 а), б) и в).
1
J Q
J Q S Q
C
C C
K Q R Q
K Q

а) б) в)
Сл. 3-49
104 ФЛИП ФЛОПОВИ
4.
РЕГИСТРИ
По изучувањето на оваа тематска целина
 Ќе ја сфатите логичката структура на регистрите;
 Ќе го разберете и ќе можете да го опишете принципот на
работа и примената на стандардните регистри:
 стационарен регистер,
 поместувачки регистер,
 регистер со комбиниран влез,
 регистер со комбиниран излез,
 универзален регистер;
 Ќе ги разликувате типовите на регистри според функцијата и
примената;
106 РЕГИСТРИ
РЕГИСТРИ 107

4.1. ВОВЕД И ОСНОВНИ ПОИМИ И КОНЦЕПТИ


Регистрите се сложени секвенцијални мрежи и истите многу често се
користат при градбата на дигиталните уреди. Регистерот претставува склоп кој
служи за меморирање на произволен бинарен податок со ограничена должина
што се вика збор. Бидејќи за помнење на секој бит од зборот треба по еден
бистабилен елемент, т.е. флип-флоп, следува дека за збор со должина од n-бита
ќе бидат потребни n-флип-флопови.
Регистрите се користат како акумулатори за привремено запомнување,
односно прифаќање на влезните податоци, меѓурезултатите или конечните
резултати во процесот на обработката на податоци, потоа неопходни се како
бафери на местата каде е потребна врска на делови од дигиталниот уред кои
работат со различни брзини. Исто така, тие се користат при реализирањето на
аритметичките и логичките операции: комплементирање, специјални случаи на
множење и делење, потоа во преносот на информации како конвертори за
претворување на податоците од паралелен во сериски облик и обратно, итн.
На сл. 4-1 е прикажан брановиот облик на напонот кај некој дигитален
склоп. Станува збор за сигнал кој претставува одреден 8-битен податок, во
примеров 11101011. Напонското ниво на логичката 1 е високо V(1)=+Vcc, додека
на логичката нула е ниско V(0)=0V. На сл. 4-2 дадена е една многу едноставна
блок-шема за регистер со 8 флип-флопови во кој може да се смести дадениот
податок. Бидејќи податокот ќе се запомни во регистерот, истиот ја претставува и
неговата содржина. За нашиот пример, содржината на регистерот ќе биде
11101011.
За влез на податокот во регистерот се користи терминот полнење,
внесување или сместување (анг. load), или поретко запишување (анг. write)
во регистер, додека за излез на податокот од регистерот се користи терминот
читање (анг. read) на содржината.

+V +V +V +V +V +V
Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8
0V 0V
b1 b2 b3 b4 b5 b6 b7 b8 t 1 1 1 0 1 0 1 1
Сл. 4-1. Осум битен податок Сл. 4-2. Блок шема на 8-битен регистер
При запишувањето во регистерот претходната (старата) содржина се губи,
а се запомнува новиот податок доведен на влезните податочни линии кои се и
влез во флип-флоповите од кои е составен регистерот. За разлика од ова,
најчесто, содржината на регистерот може да се чита повеќе пати затоа што при
читањето не доаѓа до промена на податокот што е запишан во него. Ваквото
читање не е деструктивно. Меѓутоа, постои и деструктивно читање кога запиша-
ната содржина се губи, заради што прочитаниот податок мора да се обновува, т.е.
повторно да се полни во регистерот. При читањето, содржината на регистерот се
појавува на излезните податочни линии што всушност се излези од неговите
флип-флопови.
108 РЕГИСТРИ

Состојбата на регистерот се претставува со вредноста на излезите од секој


поединечен флип-флоп, во дефиниран временски период. Затоа, пред да почне со
работа, во регистерот се одредува почетната состојба, така што сите мемориски
елементи се доведуваат во нулта состојба, т.е. во регистерот се запишуваат сите
нули. Оваа операција се вика бришење или чистење (анг. clear) на регистерот.
Понекогаш регистерот се дизајнира така што почетната состојба е различна од
нула, односно во почетниот момент во некои флип-флопови се запишуваат
единици. Оваа операција се вика почетно поставување (анг. preset) на
регистерот.
Бришењето и поставувањето, како и некои други операции што можат да се
извршуваат на содржината внесена во регистерот, како на пример полнење или
читање, се управуваат преку посебни контролни линии. Кога регистерот работи
синхроно, како посебен влез ќе биде присутен и влезот за тактирање, при што
сите флип-флопови што влегуваат во составот на регистерот се тактирани од
истиот такт сигнал. Јасно е дека покрај контролните, регистерот има и влезни,
односно излезни податочни (информациони) линии преку кои тој се полни,
односно се чита неговата содржина (податокот што е внесен во него).
Имајќи го предвид начинот на читање на содржината на регистерот,
односно начинот на кој се запишува новата информација во него, постојат два
начина на читање или запишување на содржината:
1. Паралелно (просторно). сите битови се запишуваат или читаат
истовремено, во еден временски интервал, и
2. Сериски (временски). битовите се запишуваат или читаат редоследно
еден по еден (бит по бит), за секој бит по еден временски интервал, и тоа
почнувајќи од првиот или последниот.
Со комбинација на опишаните начини за влез и излез на податоците се
добиваат повеќе различни типа на регистри:
1. Регистри со паралелен влез и паралелен излез;
2. Регистри со сериски влез и сериски излез;
3. Регистри со сериски влез и паралелен излез;
4. Регистри со паралелен влез и сериски излез и
5. Регистри со комбинирани можности за запис и/или читање.

Првиот тип регистер е стационарен, бидејќи податокот што се запишува


во регистерот останува запомнет во појдовниот облик како содржина на
регистерот која не се менува. Кај другите три типа регистри содржината на
регистерот т.е. запишаниот податок постојано се поместува по еден бит на лево
или на десно, па затоа овие регистри се викаат поместувачки или динамички
(анг. shift) регистри. Во практиката, често пати влезот или излезот на регистрите
се изведува комбинирано, така што е можен сериски или паралелен влез, и/или
сериски или паралелен излез.
РЕГИСТРИ 109

Бидејќи D флип-флопот претставува елементарна секвенцијална


компонента која според начинот на работа памти податок со должина од еден
бит, за градба на регистрите се користат поголем број на тактирани D флип-
флопови според сл. 4-3 соодветно на должината на податокот за кој станува збор,
изразена во битови. Употребените флип-флопови најчесто имаат и асинхрони
влезови со кои се поставува почетна положба на регистрите или се користат
заради проширување на можностите и за добивање на комбинирани типови
регистри. Во практичните реализации на регистри ќе сретнуваме и логички
структури кои како основни елементи користат SR или ЈК флип-флопови, но тоа
не треба да нè зачудува бидејќи секогаш таквите флип-флопови ќе бидат
поврзани во конфигурации што реализираат D флип-флоп според сл. 4-4 а) или
б).

D D
D Q S Q J Q
C C
C Q C C
R Q K Q

а) со SR флип-флоп б) со ЈК флип-флоп
Сл. 4-3. D флип-флоп
Сл. 4-4. Реализација на D флип-флоп

4.2. СТАЦИОНАРЕН РЕГИСТЕР


Стационарниот регистер има паралелен влез и паралелен излез на
податоците како што е и прикажано на едноставната блок-шема од сл. 4-5 а). На
сл. 4-5 б) е прикажана една реализација на четирибитен стационарен регистер со
употреба на четири SR флип-флопови означени како FFi, каде i=1,2,3,4.
Прикажаниот регистер има осум податочни (информациони) линии, од кои четири
се влезни: I1, I2, I3, и I4, додека четири се излезни: O1, O2, O3 и O4. Покрај нив
постојат и три контролни (управувачки) линии: за бришење на регистерот CRL,
потоа за запишување на нова содржина W, како и линија за читање R. Логичкиот
симбол на ваквиот тип регистер е прикажана на сл. 4-5 в).

I1 I 2 I3 Ii In-1 In

O1 O2 O3 Oi On-1 On

а) Едноставна блок-шема б) Симболичка ознака


110 РЕГИСТРИ

I1 I2 I3 I4

S Q S Q S Q S Q

R Q R Q R Q R Q
CLR

O1 O2 O3 O4

в) Логичка шема

Сл. 4-5. Четирибитен стационарен регистер со SR флип-флопови

Регистерот се доведува во почетна состојба на тој начин што преку влезот


за бришење CRL се доведува 1, т.е. високо напонско ниво: (CRL=1). Со ова флип-
флоповите ќе се избришат бидејќи сите нивни влезови за ресетирање се активни
Ri=1 (R1=R2=R3=R4=1), така што неговата почетна состојба ќе биде: Q1=0, Q2=0,
Q3=0 и Q4=0.
Запишувањето во регистерот може да се изведе кога сите битови од
податокот ќе се доведат на влезовите I1, I2, I3 и I4, а потоа на линијата W се носи
високо ниво (W=1) со што истовремено се „отвораат” сите И кола и секој бит се
запишува во соодветниот флип-флоп: Si=Ii. Практично, состојбата ја менуваат
само оние флип-флопови на чии влезови се јавува 1, додека таму каде што влезот
е на 0, флип-флопот ја задржува својата претходна состојба. Заради ова, пред
секое полнење на регистерот тој мора претходно да се избрише со доведување на
високо ниво на влезот за бришење CRL. Запишаниот податок останува мемориран
во регистерот како негова содржина и тоа сè додека не се појави друг податок
кој ќе треба да се внесе на влезните информациони линии Ii.
За да се прочита содржината на регистерот, потребно е на влезот R да се
донесе 1, (R=1) со што истовремено ќе се отворат сите излезни И кола: Oi=Qi. Со
ова, состојбата на излезот од секој флип-флоп ќе се појави на излезот од
регистерот Q0, Q1, Q2, Q3, што значи се добива податокот што е запомнет во
регистерот без тој да се промени. Вака содржината на регистерот може да се
отчитува повеќе пати, а притоа таа да не се менува. Бидејќи кај ваквите регистри
внесената содржина не се поместува односно не се движи, тие се викаат
стационарни. Да не заборавиме дека за правилна работа на регистерот даден на
сл. 4-5 а) не е дозволено истовремено W=1, R=1, или W=1 CRL=1,или R=1, CRL=0
кога се запишува W=1, R=0, CRl=0, и обратно, ако се чита R=1, W=0, CRL=0,
додека ако содржината на регистерот се брише треба CRL=1, W=0, R=0.
РЕГИСТРИ 111

Времето потребно за внесување нова информација во регистерот може да


се скрати ако тој се изведе на таков начин, што ќе овозможи да биде избегната
потребата од претходно бришење на неговата моментална содржина. Логичката
шема на еден ваков регистер е прикажана на сл. 5-6 а). Тој е изведен со D флип-
флопови, така што било кое логичко ниво на податокот доведено на секој од D
влезовите директно се внесува. Покрај ова, работата на регистерот е синхрона со
задниот раб на тактните импулси CLK бидејќи се применети тактирани D флип-
флопови. За регистерот е карактеристично и појавувањето на директни влезови
за ресетирање Rd кои се користат за бришење на неговата содржина. Тоа е
овозможено со нивно заедничко врзување на една линија означена со CRL која
ќе биде активна на ниско ниво, т.е. регистерот се брише ако на неа се донесе 0
( CRL =0).

I1 I2 I3 I4

W
(W/R)

D Q D Q D Q D Q
C C C C
Rd Q Rd Q Rd Q Rd Q
CLK
CLR
R

O1 O2 O3 O4

Сл. 4-6 а) логичка шема

I1 O1 O1
I1
I2 O2 I2 O2
I3 O3 I3 O3
I4 O4 I4 O4
CLK
CLR
CLK
R CLR
W W/R

б) симбол со два контролни сигнали в) симбол со еден контролен сигнал

Сл. 4-6. Четирибитен стационарен регистер со тактирани D флип-флопови


За правилна работа на регистерот, мора да биде исполнет условот за
меѓусебна комплементарност на состојбите на контролните линии за внесување
(полнење, запишување) W и за читање R: WR=0, т.е. високо ниво не смее да се
наоѓа истовремено на двете линии.
112 РЕГИСТРИ

Процесот на запишување или читање, може да се поедностави ако се


користи само една контролна линија и за читање и за запишување, како што е
прикажано на сл. 4-6 а) со испрекинати линии. Сега линијата за читање R се зема
преку инвертор од линијата за запис W, така што секогаш ќе биде исполнет
условот за комплементарност помеѓу состојбите на линиите W, R. Оваа
единствена влезна линија ќе може да се означи со ( W / R ), бидејќи ако на неа се
донесе високо ниво овозможено е запишување, а кога ќе се донесе ниско ниво
овозможено e читање. Имено, ако W / R =1, тогаш е овозможено внесување на
нова содржина во регистерот, бидејќи влезните И кола ги пропуштаат битовите на
податокот Di=Ii, со што Qi+=Di, при што на излезите од регистерот се добиваат
само нули Oi=0. Тоа е така бидејќи на секое излезно И коло има по една нула која
произлегува од комплементирањето на 1 што е присутна на контролната линија
за читање/запис ( W / R ). Од друга страна, ако W / R =0 практично се врши
читање на податокот што се наоѓа во регистерот. Меѓутоа, сега читањето е
деструктивно, т.е. со читањето автоматски се брише содржината на регистерот
затоа што на сите влезови од флип-флоповите се јавуваат нули Di=0, па јасно е
дека Qi+=0.
Симболичката ознака на регистерот изведен со две контролни линии за
читање и запишување прикажана е на сл. 4-6 б), додека симболот на
реализацијата со само една контролна линија за читање или внесување е
претставен на сл. 4-6 в).
I1 I2 I3 I4

M
(C/W)
I1 O1
I2 O2
I3 O3
J K J K J K J K
C C C C
I4 O4
Q Rd Q Q Rd Q Q Rd Q Q Rd Q
M(C/W)
CLK
CLK
CLR
R CLR
R

O1 O2 O3 O4

а) логичка структура б) симбол

Сл. 4-7. Четирибитен стационарен регистер со тактирани со JK флип-флопови

На сл. 4-7 а) е прикажана логичката структура на уште еден стационарен


регистер реализиран со JK флип-флопови, кој работи синхроно, а чија симболичка
ознака е дадена на сл. 4-7 б). И кај оваа изведба нема потреба од бришење на
содржината на регистерот пред внесувањето на нов податок бидејќи се користат
JK флип-флопови поврзани како D флип-флопови. Покрај ова, преку линијата за
контрола М на начинот (режимот) на работа (анг. mode), може да се внесува
новиот податок ако М=0, односно да се комплементира содржината што се наоѓа
РЕГИСТРИ 113

во регистерот ако М=1. Во првиот случај, кога М=0, Ji=Ii, Ki=Ti, така што за
наредниот интервал ќе важи Qi+ =Ii. Ако, пак, на линијата М донесеме високо ниво
М=1, тогаш Ji=Ki=1, така што наредната состојба на излезите од сите флип-
флопови ќе биде комплемент на сегашната: Qi+ =Qi. Кај вака реализираниот
регистер, неговата содржина е присутна на излезните линии веднаш по
внесувањето на новиот податок или по комплементирањето. Меѓутоа, со
додавање на уште една линија за читање R, како што е прикажано на сл. 4-7 a) со
испрекинати линии, може да се врши контрола и на моментот на читање со
донесување на високо ниво на влезот за читање R, (R=1) бидејќи тогаш Oi=Qi. Од
друга страна, ако R=0, тогаш сите излези од регистерот се 0-и: Oi=0.
И кај овој регистер се користат флип-флопови со асинхрони влезови за
ресетирање Rd со кои се брише неговата содржина. Тоа се изведува со нивно
поврзување во единствена линија, означена со CRL која ќе биде активна на ниско
ниво (регистерот се брише ако е исполнет условот CRL=0).
За стационарните регистри реализирани со тактирани флип-флопови може
да се употребат флип-флопови кои реагираат на предниот раб од тактот CLK, како
и флип-флопови од MS структура кои реагираат на појавата на задниот раб од
такт-сигналот.
4.3. ПОМЕСТУВАЧКИ РЕГИСТЕР
За D флип-флопот знаеме дека веднаш по појавата на активниот
(прекинувачкиот) раб (премин) од такт-сигналот на неговиот влез, излезот Q од
флип-флопот ќе ја добие онаа состојба, која беше присутна на влезот D
непосредно пред да се појави активниот раб: Q+=D. Токму заради ова, со примена
на D флип-флопови може да се оствари поместувачки (анг. shift) регистер со
сериски влез и сериски излез на неговата содржина, како што е претставено на
едноставната блок-шема дадена на сл. 4-8 а). Имено, поместувачкиот регистер
во принцип претставува последователна врска (каскада) од неколку D флип-
флопови.
Влезниот податок се појавува на влезот од првиот флип-флоп, а на
неговиот излез ќе биде задоцнет за еден временски интервал кој е еднаков со
периодот на такт-сигналот TP. На излезот од вториот флип-флоп тој ќе се појави
подоцна за уште еден такт-интервал, итн. така што доаѓа до сукцесивно
поместување кон десно на информацијата низ регистерот: Di=Qi - 1 и Qi+ = Qi - 1,
или Di + 1= Qi и Qi + 1+ =Qi. Така без оглед на тоа каква низа од битови ќе се појави
на влезот од регистерот, со секој такт импулс таа група ќе биде поместувана за
еден флип-флоп надесно. Оттука овие регистри и го добиле своето име.
Во современите конструкции на регистри, при нивната изведба се користат
тактирани флип-флопови активни на предниот или задниот раб од тактот или се
реализираат со примена на MS флип-флопови. Еден таков четирибитен
поместувачки регистер кој функционира со задниот раб на тактните импулси е
прикажан во две изведби на сл. 4-8 в) и г). Покрај стандардната изведба со D
флип-флопови (в), употребени се и ЈК флип-флопови поврзани како D на
познатиот начин со меѓусебно комплементирање на Ј и К влезовите (г). Симболот
на поместувачкиот регистер е прикажан на сл. 4-8 (б).
114 РЕГИСТРИ

SI SO
SI SO
CLK
CLR

а) едноставна блок-шема б) симболичка ознака

(W/R) SI SO SO
D Q D Q D Q D Q
SI C C C C
Rd Q Rd Q Rd Q Rd Q
CLR
CLK
в) логичка шема со D флип-флопови
SI SO
J Q J Q J Q J Q
C C C C
K Rd Q K Rd Q K Rd Q K Rd Q
CLR
CLK
г) логичка шема со JK флип-флопови
Сл. 4-8. Четирибитен поместувачки регистер
1 2 3 4 5 6 7 8 9

CLK
1 1 1 t
0 0
SI
1 1 1 t
0 0
Q1
1 1 1 t
0 0
Q2
1 1 1 t
0 0
Q3
1 1 1 t
0 0
Q4
t
Сл. 4-9. Временски дијаграми на поместувачки регистер

Пред почетокот со работа на асинхрониот влез CRL се носи ниско ниво


(логичка 0), со што се брише претходната содржина на регистерот и тој се
иницијализира, се доведува на почетната, нултата состојба. Работата на овој
регистер наједноставно може да се опише со помош на временски дијаграми, како
и со табелата на премин. Во неа се запишува состојбата на секој флип-флоп од
компонентата за секој поединечен такт-интервал.
РЕГИСТРИ 115

За дополнително објаснување и подобро разбирање на начинот на работа


на овој регистер ќе претпоставиме едноставен пример, а тоа е запишување на
податокот 11010 во регистерот, којшто се јавува во t=0. Временските дијаграми
во карактеристичните точки се прикажани на сл. 4-9. За почетната состојба на
регистерот, пред доаѓањето на првиот такт-интервал, поточно првиот опаѓачки
(заден) раб на такт сигналот, ќе претпоставиме дека сите флип-флопови се
ресетирани, односно содржината во нив е 0 (Q1=0, …, Q4=0).
Бидејќи од почетниот момент на разгледување t=0, на влезот од првиот
флип-флоп се појавува влезен податок со високо ниво (логичка 1), јасно е дека
првиот флип-флоп ќе се сетира со доаѓањето на првиот опаѓачки раб. Сите други
флип-флопови на своите влезови имаат ниско ниво, т.е. 0, па тие ќе останат и
натаму ресетирани. Веднаш по овој активен премин на влезот од вториот флип-
флоп се јавува преден раб на импулс, премин од 0 на 1, бидејќи тоа е излезот од
првиот флип-флоп, но со тоа не се сетира вториот флип-флоп бидејќи тој не
реагира на преден раб, туку “го чека” задниот. Влезовите на сите останати флип-
флопови се наоѓаат на ниско ниво.

При појавувањето на вториот


CLK SI (Di) Q1Q2Q3Q4 прекинувачки раб доаѓа до сетирање и
на првиот и на вториот флип-флоп. Кај
1 1 0 0 0 0 првиот флип-флоп тоа е бидејќи и
2 1 1 0 0 0 вториот бит од податокот е 1, додека
кај вториот флип-флоп тоа е затоа што
3 0 1 1 0 0 неговиот влез е фактички излезот од
4 1 0 1 1 0 првиот флип-флоп, кој во претходниот
интервал отиде на високо ниво.
1 0 1 0 1 1
Излезите Q3, Q4 од третиот и четвртиот
6 0 0 1 0 1 флип-флоп и натаму остануваат на 0.
7 0 0 0 1 0 Со секој нареден активен премин на
тактот, податокот „влегува“ во
8 0 0 0 0 1 регистерот. Очигледно е дека по
9 0 0 0 0 0 четвртиот такт-импулс на излезот од
првиот флип-флоп од регистерот ќе се
10 0 0 0 0 0
појави четвртиот бит од податокот (низ
Таб. 4-1. Табела на премин на овој флип-флоп „поминале“ првите три
состојби кај поместувачки регистер битови од податокот и се јавува
четвртиот), додека на излезот од
четвртиот флип-флоп, т.е. на излезот
од регистерот се појавува првиот бит
од податокот кој може да се чита.

Ваквиот начин на отчитување на битовите од содржината на регистерот


претставува начин на работа по принципот FIFO (анг. First-In-First-Out): првиот
внесен, прв излегува. Исчитувањето на содржината на регистерот се врши во
сериска форма, бит по бит и трае онолку такт интервали, колку што има битови
влезниот податок. Табелата на премин на состојбата на регистерот таб. 4-1 се
однесува на влезната комбинација 1101.
116 РЕГИСТРИ

Од она што e досега изложено, станува јасно дека содржината на овој


регистер нема да се изгуби само ако читањето се изврши точно навреме. Имено,
треба да се почне со читање веднаш по n-тиот импулс, каде n е бројот на
употребени флип-флопови (во примеров n=4), т.е. по n-тиот опаѓачки раб. При
ова не треба да се внесува нов податок, бидејќи битот што е поместен надвор од
последниот флип-флоп неповратно ќе се изгуби. За остварување на оваа цел, на
регистерот од сл. 4-8 може да му се додадат две И кола: влезно и излезно
(сликата прикажано со испрекината линија). Дополнителната контролна линија
( W / R ) овозможува запишување ако се наоѓа на високо ниво ( W / R =1), односно
читање ако на неа се доведе ниско ниво ( W / R =0).

4.4. КРУЖЕН РЕГИСТЕР


Битовите запомнети во регистерот може да се сочуваат доколку излезот од
последниот флип-флоп се поврзи назад со влезот на првиот флип-флоп. Кај овој
регистер, битовите на податокот ќе циркулираат низ него, поместувајќи се за по
еден флип-флоп со секој такт импулс. Вака поврзаниот регистер се вика кружен
или циркуларен регистер, или поместувачки регистер со враќање на
преносот од крајот (анг. end-around-carry shift register). Овде треба да
напоменеме дека кружењето на битовите во регистерот е можно само ако се
откачи серискиот влез кога регистерот се „наполни” и веднаш се формира
повратната врска преку која ќе може да се враќаат излезните битови, на влезот
еден по еден. За таа цел, во овој случај ќе мора да се формира додатна логичка
мрежа со соодветни контролни сигнали, такви што на влезот од првиот флип-
флоп ќе може да го поврзува или директниот сериски влез во регистерот, или
излезот од регистерот. Еден ваков пример на кружен регистер е прикажан на сл.
4-10, додека неговата симболичка ознака е презентирана на сл. 4-11.

SI SO
SIN Поместувачки SO
SI регистар CLK
CLR
WE
WE
Сл. 4-11. Логички симбол на
Сл. 4-10. Логички дијаграм на кружен поместувачки
кружен поместувачки
регистер
регистер

Сигналот за овозможување на запишување WE (анг. write enable), ја


контролира линијата за влез на податоците во регистерот SIN преку два-во-еден
мултиплексер добиен со две И и едно ИЛИ коло кои ја реализираат логичката
равенка
SIN = SI  WE SO  WE (4-1)
РЕГИСТРИ 117

Кога WE=1, се отвора И вратата на која е приклучен влезот за податокот SI


(YSI=SI), а се затвора И портата на која е приклучен излезот SO од регистерот
(YSО=0). Така, преку ИЛИ колото во регистерот се запишуваат битовите на новиот
податок YILI=SIN=SI.
Kога WE=0 ситуацијата е обратна: се отвора И вратата која го пропушта
внесениот податок (YSO=SO), а преку другото И коло кое е затворено не се
дозволува влез на нов податок (YSI=0). Така преку ИЛИ колото во регистерот
повторно се полни запомнетата информација YILI=SIN=SO со што се добива
нејзино кружење низ флип-флоповите на регистерот.

4.5. ДВОНАСОЧЕН ПОМЕСТУВАЧКИ РЕГИСТЕР


Претходно разгледаниот поместувачки-регистер го поместува податокот
бит по бит, но само во десно. Во практиката често пати се јавува потреба за
регистер кој треба да ги поместува податоците кон лево. Познавајќи го принципот
за реализација на поместувачкиот регистер во десно, може да го претпоставиме
начинот на поврзување на флип-флоповите во регистерот којшто треба да врши
поместување во лево. Кај ваквиот регистер, влез во претходниот флип-флоп ќе
биде излезот од следниот флип-флоп: Di=Qi+1.
Како нареден пример ќе разгледаме регистер кој има можност да врши
поместување на содржината и во лево и во десно, или т.н. двонасочен
поместувачки регистер. Влезот во секој регистер треба да биде или излезот од
претходниот степен, ако сакаме поместување кон десно, или излезот од следниот
степен, ако треба да се изведе поместување во лево: Di = Qi-1 + Qi+1. И во овој
случај, пред секој флип-флоп ќе треба да се употреби по еден два–во–еден
мултиплексер (сл. 4-12), секој контролиран со единствена линија за насока на
движење. Од анализата произлегува логичката шема на двонасочниот поместу-
вачки регистер прикажана на сл. 4-13 б, чиј симбол е претставен на сл. 4-13 а.

Qn-1
Dn SIK SO
SIL
Qn+1
M(R/L)
CLK
M (R/L)

Сл. 4-12. Два–во–еден мултиплексер Сл. 4-13 а). Двонасочен поместувачки регистер
M(R/L)
R1 R2 R3 R4
SIR
SO
D Q D Q D Q D Q
C C C C
Q Q Q Q
L4 L3 L2 L1

SIL

CLK

б). Логичка структура


Сл. 4-13. Двонасочен поместувачки регистер
118 РЕГИСТРИ

Насоката на поместувањето зависи од контролниот влез M (анг. mode), со


кој се определува начинот (режимот) на работа, бидејќи за влезот Di на секој
флип-флоп i = 1, 2, 3, 4 важи веќе познатата логичка равенка
Di= ( M  Qi 1 M  Qi 1 ) . Кога M=1, содржината на регистерот се поместува во десно,
додека акo M=0 неговата содржина се поместува во лево. При ова внесувањето
на податоците се изведува преку два влеза: едниот е означен со SIR и на него се
донесуваат битовите на оној податок што треба да се поместува во десно, додека
за податокот чиишто битови треба да се поместуваат во лево постои влезот SIL.
Имено, кога M=1 е овозможен пренос на сигналот преку R вратите, а
оневозможен преку L вратите чиишто излези се на ниво на 0 заради присуството
на 0 на по еден влез од секоја L порта. Во овој случај, битовите на податокот се
носат на влезот од првиот флип-флоп D0, чијшто излез Q0 е врзан за влезот од
вториот флип-флоп D1 итн., така што регистерот ја поместува содржината во
десно, на начин кој веќе го опишавме.
Кога M=0, ситуацијата е обратна затоа што сите R врати се затворени,
излезите им се на 0, додека сите L врати се отворени, и врските помеѓу флип-
флоповите се во инверзна насока: прво сигналот се носи на влезот од третиот
флип-флоп D3, потоа од неговиот излез Q3 оди на влезот од вториот флип-флоп
D2, па од Q2 на D1 итн., што значи дека сега битовите ќе се поместуваат еден по
еден во лево.
Многу е важно да напоменеме дека сигналот М може да се менува само
кога нивото на такт сигналот е 0 (CLK=0), инаку може да дојде до несакана
промена на содржината на регистерот.
Овој тип регистер остава можност за читање на битови од податокот
според принципот LIFO, (анг. Last-In-First-Out): последен внесен, прв изнесен. Тоа
се реализира така што битовите на податокот се внесуваат во регистерот преку
поместување во десно, т.е. воспоставување M=1 и употреба на влезот SIR, а
потоа доведување на M=0 и полнење на регистерот преку влезот SIL.

4.6. ПОМЕСТУВАЧКИ РЕГИСТЕР СО СЕРИСКИ ВЛЕЗ И


КОМБИНИРАН ИЗЛЕЗ
Едноставната блок-шема на регистерот, кој има сериски влез и можност за
сериски или паралелен излез е прикажана на сл. 4-14, а една негова реализација
на сл. 4-15 б), која повторно претставува шема на некој четирибитен регистер.
Симболичката ознака дадена е на сл. 4-15 а).
Работата на регистерот, што се однесува до серискиот влез и излез, веќе ни
е позната од претходното објаснување: податокот доаѓа во сериска форма на
влезот од првиот флип-флоп, а сериски се чита од излезот на последниот.
Паралелното читање на содржината на регистерот се врши со доведување
на позитивен импулс на линијата за читање R (R =1) кој ги отвора логичките И
кола и со тоа овозможува состојбата на излезот од секој флип-флоп да се појави
на соодветната излезна линија: O1=Y11=Q1,…,O4=YI4=Q4 со што содржината на
регистерот (податокот) се добива во паралелна форма.
РЕГИСТРИ 119

SI SO
SI SO
O1
CLK
O2
R O3
O1 O2 O3 Oi On-1On CLR O
4

Сл. 4-14. Едноставна блок-шема Сл. 4-15. а) симболичка ознака

SI SO
J Q J Q J Q J Q
C C C C
K Rd Q K Rd Q K Rd Q K Rd Q
CLR
CLK
R

O1 O2 O3 O4
б) логичка шема
Сл.4-15. Четирибитен регистер со сериски влез и комбиниран излез
Од изнесеното станува јасно дека овој регистер претставува сериско-
паралелен конвертор (претворувач) на код, бидејќи податоците се запишуваат
сериски, а се читаат паралелно. Сериски кодираните бинарни информации ги
претвора во паралелен бинарен код, односно врши конверзија од временски во
просторен облик.

4.7. ПОМЕСТУВАЧКИ РЕГИСТЕР СО КОМБИНИРАН ВЛЕЗ И


СЕРИСКИ ИЗЛЕЗ
Едноставниот блок-дијаграм на овој регистер кој има опционен сериски или
паралелен влез и сериски излез, е прикажан на сл. 4-16, а една негова изведба е
дадена на сл. 4-17 б). Тоа повторно е четирибитен регистер, чија симболичка
ознака ја гледаме на сл. 4-17 а). Паралелниот влез на податоците се остварува
преку асинхроните влезови S d , Rd на секој флип-флоп. Директните вредности на
влезниот податок го побудуваат влезот S d преку логички НИ врати, чиј втор
влезен сигнал е линијата за запишување W. Овој контролен сигнал (W) исто така
ги контролира и НИ портите чии втори влезови се коплементите од секој влезен
бит, а излезите го побудуваат директниот влез за ресетирање Rd . На овој начин,
асинхроните влезови S d , Rd на секој флип-флоп секогаш меѓусебно се
комплементарни со што е овозможено во секој флип-флоп да се внеси логичката
состојба присутна на секој влез што обезбедува правилно функционирање на оваа
дигитална компонента. Паралелното запишување на податокот се врши кога на
линијата за запишување W ќе се донесе високо ниво кое ги отвора НИ портите.
120 РЕГИСТРИ

SI SO
I1 I 2 I3 Ii In-1 In I1
I2
I3
SI SO I4
W
CLK
Сл. 4-16. Едноставна блок-шема Сл.4-17 а) симболичка ознака
I1 I2 I3 I4

SI SO
D Sd Q D Sd Q D Sd Q D Sd Q
C C C C
Rd Q Rd Q Rd Q Rd Q
CLK

б) логичка шема
Сл. 4-17 Четирибитен регистер со комбиниран влез и сериски излез
На овој начин, конечната состојба на секој флип-флоп, а со тоа и на
регистерот, зависи само од логичките нивоа на влезните сигнали, а не и од
неговата тековна содржина. Со ова се добива забрзување на работата при
полнење со нова содржина, затоа што нема потреба од бришење на податокот кој
се наоѓа во регистерот.
Информацијата може да биде запишана и во сериска форма преку влезот
на првиот флип-флоп, додека отчитувањето на содржината на регистерот се врши
во сериски облик на излезот од последниот флип-флоп 8.
Ако се врши паралелен запис и сериско читање, паралелно кодираната
бинарна информација фактички се претворува во сериски кодирана, т.е. се врши
конверзија од просторен во временски код. Ова е многу корисна особина затоа
што на овој начин информациите можат да се запишат на непериодичен начин,
секој бит во друго време, а потоа да се отчитуваат периодично, со секој такт-
импулс, бит по бит на сериски начин.

4.8. УНИВЕРЗАЛЕН РЕГИСТЕР


На сл. 4-18 е прикажана едноставната блок-шема на овој регистер, од која
се гледа дека кај овој регистер постои можност и за двата начина на запишување
или читање на податоците. На сл. 4-19 б) е дадена една реализација на ваков
четирибитен регистер, чија симболичка ознака е претставена на сл. 4-19 а).
РЕГИСТРИ 121

SI SO
I1 I2 I3 Ii In-1 In O1
I1
I2 O2
I3 O3
SI SO
I4 O4

PE
R
O1 O2 O3 Oi On-1 On CLK
CLR

Сл. 4-18. Едноставна блок-шема Сл. 4-19. а) симболичка ознака


I1 I2 I3 I4
PE

SI SO
J Sd Q J Sd Q J Sd Q J Sd Q
C C C C
K Rd Q K Rd Q K Rd Q K Rd Q
CLK
CLR
R

O1 O2 O3 O4
б) логичка шема
Сл. 4-19. Четирибитен универзален регистер

Бришењето се изведува со носење на ниско ниво на влезот CLR . Преку


влезот SI (serial input) податоците се внесуваат во сериска форма бит по бит, а
преку паралелните влезови I1,I2,I3,I4, регистерот може да се постави во било која
почетна состојба. Влезот за поставување во почетна положба PE (preset enable-
овозможено поставување) ја овоможува токму оваа операција кога на него ќе се
доведе високо ниво. Претходно, регистерот мора да биде избришан, што важи
генерално: операцијата на бришење мора да претходи на операцијата за
внесување на податок во паралелен облик. Излезната информација може да се
добие во сериски облик на излезот од последниот флип-флоп, или во паралелен
облик ако се доведе високо ниво на линијата за читање R (read) со што состојбата
на секој флип-флоп се јавува на излезните линии.
Кај овој пример на регистер, такт-импулсите прво се инвертираат, а потоа
се доведуваат на влезовите за такт-сигнал C кај сите флип-флопови. Со ова
практично се овозможува работа на регистерот на предниот раб од тактот (со
доцнење од еден период), иако употребените флип-флопови се со MS структура.
122 РЕГИСТРИ

4.9. ДИГИТАЛНО ИНТЕГРИРАНО КОЛО 74595


Чипот 74595 претставува реално дигитално интегрирано коло (ДИК) кое
многу често се применува во секојдневната практика. Заради тоа ќе се задржиме
на анализа на неговата логичка структура и принцип на работа.
Најнапред во куси црти ќе ја опишеме 595-ката која од функционален
аспект може да се смета за регистер со сериски влез и комбиниран излез.
Меѓутоа, ова ДИК всушност е реализирано со два 8–битни регистри како посебни
блокови кои се интерно меѓусебно поврзани. Влезниот регистер е поместувачки,
додека излезниот регистер е стационарен мемориски регистер со паралелни и
баферувани излези. Секој регистер е составен од по 8 D флип-флопови што може
да се види на сл. 4-20 а), б) и в) коишто ја прикажуваат конфигурацијата на
пиновите, внатрешната блок–шема, како и логичкиот симбол на ова ДИК.

а) б) в)
Сл. 4-20. ДИК 74х595 – 8-битен поместувачки регистар со паралелни излези
Оваа дигитална компонента може да прифати 8-бита преку својот сериски
влез (DS, SER) кои се внесуваат и запишуваат во влезниот сериски– поместувачки
регистер во осум такт периоди. Осумте запишани битови на податокот можат да
се испратат до излезниот мемориски регистер со паралелни излези: Q0,Q1,Q2,Q3,
Q4,Q5,Q6,Q7 (QA,QB,QC,QD,QE,QF QG,QH). Состојбата на излезите се контролира преку
соодветни бафери заради што тие можат да се најдат во трета состојба. Од пара-
лелните излези податокот се чита во еден такт период. Влезниот поместувачки
регистер има еден такт-сигнал (SRCLK, SHCP), додека излезниот стационерен
регистер со паралелни излези е тактиран со друг такт–сигнал (RCLK, STCP).
Преку влезот за овозможување на работа (OE*) се управуваат баферите.
Имено, со нив паралелните излези може да се однесат во трета состојба на висока
импеданса (HZ) што се случува ако на овој влез се доведи високо ниво на логичка
1-ца (OE*=1). Спротивно, ако на влезот OE* се донесе ниско ниво (OE*=9),
баферите се отвораат, па така излезите се активни и запамтениот податок од
регистерот се појавува на излезите во паралелен облик.
РЕГИСТРИ 123

Содржината на регистерот може да се избрише преку директниот


контролен влез за ресетирање (SRCLR*, MR*) којшто е активен на ниско логичко
ниво и го надвладува такт-сигналот. Дополнително, регистерот располага и со
посебен излез (Q7S, QH*) кој овозможува каскадирање на вакви регистри еден
после друг.

Контролни влезови Влез Излези Функција (Операција)

MR* OE* SHCP STCP DS Q7S Qn


Ресетирање само на поместувачкиот
L L X X X L NC регистер. (Се анулира неговата
содржина.)
Ресетираната содржина на
поместувачкиот регистер се внесува во
L L X  X L L
паралелниот. (Се анулира паралелниот
регистер.)
Се ресетира (анулира) поместувачкиот
L H X X X L HZ регистер. Паралелните излези се во
трета состојба на висока импенданса.
Логичката состојба на серискиот влез (H
H или L) се внесува во првиот флип-флоп
H L  X или Q6S NC од поместувачкиот регистер. Секој
L следен флип-флоп, последователно, го
прима битот од претходниот флип-флоп.
Битовите на флип-флоповите од
поместувачкиот регистер се пренесуваат
H L X  X NC QnS
до меморискиот регистер и неговите
паралелни излези.
Содржината (податочните битови) на
поместувачкиот регистер се поместува;
Моменталната содржина на поместу-
H L   X Q6S NC
вачкиот регистер се пренесува до
меморискиот регистер и неговите
паралелни излези.
Забелешка:
L = Ниско напонско ниво на лог. 0 HZ = Трета состојба на висока импенданса
H = Високо напонско ниво на лог. 1 NC = нема промена
Х = Небитно (неважно)  = Преден раб на такт сигналот (премин од 0 на 1)

Таб. 4-2. Оперативни начини на работа на ДИК 74х595

Принципот на работа на регистерот 74х595 со сериски влез и комбиниран


излез најлесно може да се разбере од таблицата на функционирање означена
како таб. 4-2, на која се претставени неговите режими на работа.
124 РЕГИСТРИ

ПРАШАЊА И ЗАДАЧИ ЗА ПОВТОРУВАЊЕ


4-1. Што претставува регистерот? Од што е составен?
4-2. Каква е примената на регистрите во дигиталните сметачки машини?
4-3. Што претставува содржината на регистерот?
4-4. Што претставува операцијата полнење (внесување, запишување)?
4-5. Што се врши со операцијата читање?
4-6. Што се случува со старата содржина при полнење на регистерот со нова
содржина?
4-7. Какви начини на читање постојат во зависност од тоа дали при читањето
содржината што се наоѓа во регистерот се губи или не?
4-8. Каде се јавува секој бит при читањето на содржината на регистерот?
4-9. Со што се дефинира состојбата на регистерот?
4-10. Што се прави со операцијата бришење?
4-11. Што се прави со операцијата поставување?
4-12. Кои додатни линии постојат кај секој регистер и за што служат?
4-13. Наброј ги различните начини за читање, односно запишување на
содржината на регистерот!
4-14. Што се случува со битовите на содржината при паралелниот начин?
4-15. Што се случува со битовите на содржината при серискиот начин?
4-16. Што е карактеристично за стационарните регистри?
4-17. Што е карактеристично за поместувачките регистри?
4-18. Каков регистер е прикажан на сл. 4-5 в)? Нацртај ја неговата блок-шема и
логички симбол.
4-19. Објасни како се доведува во почетната состојба регистерот од сл. 4-5 в)!
4-20. Објасни како се изведува полнењето на регистерот од сл. 4-5 в)!
4-21. Објасни како се извршува читањето на содржината на регистерот од сл.
4-5 в)!
4-22. Каков регистер е прикажан на сл. 4-6 в)? Нацртај ја неговата блок шема и
логичкиот симбол.
4-23. Како се доведува во почетна состојба регистерот од сл. 4-6 в)?
4-24. Како се изведува полнењето на регистерот од сл. 4-6 в) со а) две линии б)
една линија за читање и запишување?
4-25. Како се врши читањето на содржината на регистерот од сл. 4-6 в) со а) две
линии б) една линија за читање и запис?
РЕГИСТРИ 125

4-26. Каква треба да биде логичката состојба на сите линии од регистерот даден
на сл. 4-6 в) за да а) во него се запише б) од него се прочита податокот 1) 1101;
2) 1011.
4-27. Каков регистер е прикажан на сл. 4-7 а)? Нацртај ја неговата блок шема и
логичкиот симбол.
4-28. Како се доведува во почетна состојба регистерот од сл. 4-7 а)?
4-29. Што прави линијата М за регистерот од сл. 4-7 а) кога М=1 б) кога М=0?
4-30. Како се врши читањето на содржината на регистерот од сл. 4-7 а)?
4-31. Каква треба да биде логичката состојба на сите линии од регистерот даден
на сл. 4-7 а) за да а) во него се запиши б) од него се прочита податокот 1) 1001;
2) 1110.
4-32. Каков регистер е прикажан на сл. 4-8 в) и г)? Нацртај ја неговата блок шема
и логичкиот симбол.
4-33. Како се доведува во почетна состојба регистерот од сл. 4-8 в) и г)?
4-34. Преку кои линии се внесува и чита содржината на регистерот од сл.4-8 в) и
г)?
4-35. Нацртај ги временските дијаграми на излезите од флип-флоповите, т.е. на
состојбата на регистерот Q1, Q2, ..., Q4 од сл. 4-8 в) и г) ако на влезот доаѓа
податокот 1011. Како ќе изгледаат дијаграмите ако наместо флип-флопови кои се
управувани со работ на такт-сигналот, се применат а) MS D флип-флопови б) D
лечови? Дали ваквиот регистер работи исправно или не? Образложи!
4-36. Нацртај ги временските дијаграми за состојбата на регистерот од сл. 4-8 в) и
г) како и неговата табела на премин ако на влез доаѓа податокот: 1) 10110; 2)
01010.
4-37. Според кој принцип се врши отчитување на содржината од регистерот
прикажан на сл. 4- 8 в) и г)? Зошто?
4-38. Дали постои можност при читањето на содржината од регистерот прикажан
на сл.4-8а,б да дојде до нејзино губење, и под кои услови?
4-39. Објасни ја логичката шема на четирибитен кружен регистер со линија за
сериски влез, линија за сериски излез на податокот, линија за бришење и
контролна линија за запишување на нова содржина, односно за кружење на
старата прикажана на сл. 4-10.
4-40. Нацртај логичка шема и логички симбол на четирибитен поместувачки
регистер во лево со D флип-флопови водени со работ на такт сигналот, и посебен
влез за бришење.
4-41. Опиши го начинот на работа на двонасочниот регистер од сл. 4-12 ако (а)
М=0 (б) М=1.
4-42. На кој начин може да се изврши отчитување на содржината на регистерот
од сл. 4-12 така што првиот внесен бит, да се прочита последен, т.е. по
принципот LIFO.
126 РЕГИСТРИ

4-43. Каков регистер е прикажан на сл. 4-15 б)? Нацртај ја неговата блок-шема и
симболичка ознака.
4-44. На кој начин се полни регистерот од сл. 4-15 б)? Како може да се чита
неговата содржина?
4-45. Каква конверзија овозможува регистерот од сл.4-15 б).
4-46. Каков регистер е прикажан на сл. 4-17 б)? Нaцртај ја неговата блок шема и
симболичка ознака.
4-47. На кој начин се врши полнењето на регистерот сл. 4-17 б)? Како може да се
чита неговата содржина?
4-48. Каков регистер е прикажан на сл. 4-19 б)? Нацртај ја неговата блок шема и
логички симбол.
4-49. Објасни го принципот на работа на регистерот од сл. 4-19 б).
5.
БРОЈАЧИ
По изучувањето на оваа тематска целина
 ќе ја разберете логичката структура на бројачите;
 ќе знаете да го опишете принципот на работа и примената
на асинхроните бројачи:
 бинарен бројач,
 бројач со произволен модул,
 бројач наназад,
 регистер со комбиниран излез,
 двонасочен бројач.
 ќе знаете да го опишете принципот на работа и примената
на синхроните бројачи:
 бинарен бројач,
 бројач со произволен модул,
 декаден бројач,
 кружен бројач.
 ќе умеете да проектирате бројачи со различен модул на
броење.
128 БРОЈАЧИ
БРОЈАЧИ 129

5.1. ВОВЕД И ОСНОВНИ ПОИМИ И КОНЦЕПТИ


Бројачите (анг. counters) се секвенцијални логички мрежи кои ги бројат
импулсите што се доведуваат на нивниот влез, а на својот излез го даваат
редниот број на секој влезен импулс во одреден бинарен код. Најчесто тоа е
природниот бинарен систем, или природниот бинарен код т.е. NBCD или 8421
кодот. Овие дигитални склопови како основни градбени компоненти користат
конечен број мемориски елементи, поточно флип-флопови, најчесто во
комбинација со различни логички кола.
Бидејќи секој флип-флоп има две состојби, тоа значи дека множество од n
флип-флопови може да се најде најмногу во 2n состојби, каде што една состојба
на множеството се дефинира како конкретна комбинација од состојбите на
поединечните флип-флопови. Кај бројачите, флип-флоповите се поврзани во
таква логичка структура што секој импулс на влезниот сигнал го предизвикува
бројачот да ја менува состојбата и од една состојба да влегува во друга. Ако
бројачот почне да брои од некоја почетна состојба и во неа се врати по М влезни
импулси, таквиот бројач се вика бројач со основа М или по модул М. Ако некој
бројач е составен од n флип-флопови и поминува низ секоја од можните 2n
состојби, таквиот бројач се вика бинарен бројач.
Бројачите се базираат на тактираните Т флип-флопови во префрлувачки
(прекинувачки) режим на работа според таб. 3-10 кога влезот Т=1 предизвикува
флип-флопот да ја менува состојбата при секој импулс на такт сигналот. Станува
збор за Т флип-флопови со MS структура (анг. master-slave, т.е. главен-извршен)
кои се активни на задниот раб од такт-сигналот. Флип-флоповите каскадно се
поврзуваат така што првиот флип-флоп ја менува својата состојба на секој
бројачки импулс, вториот на секој втор импулс, третиот на секој четврт,
четвртиот на секој осми, итн. што соодветствува на промената на битовите со
различни тежини кај природниот бинарен систем. Токму заради ова, излезната
информација на бројачот се добива кога истовремено (паралелно) се зема
состојбата на излезот од секој флип-флоп кој влегува во состав на бројачката
мрежа. Затоа излезот на бројачот претставува бинарен вектор со должина од n-
бита, каде што n е бројот на употребените флип-флопови, т.е. степени.
Покрај броењето, од изнесеното станува јасно дека каскадното поврзување
на Т флип-флоповите и нивниот начин на работа овозможува после секој флип-
флоп во состав на бројачката мрежа, фреквенцијата на влезните бројачки
импулси редоследно да се дели со два, заради што бројачите можат да се
користат и како делители на фреквенција.
Инаку, во практичните реализации на бројачките мрежи многу често,
наместо Т се среќаваат каскадно поврзани ЈК MS флип-флопови, кои според таб.
3-8 работат исто како Т флип-флопови во префрлувачки режим, бидејќи на Ј и К
влезовите им се приклучува високо ниво (Ј=1 и К=1). Имено, заради своите два
влеза, ЈК флип-флоповите нудат пошироки можности за изведби на различни
типови бројачи, како по логичката структура, така и по основата на броење.
130 БРОЈАЧИ

Имајќи го предвид претходно наведениот принцип на работа на Т или ЈК


каскадата, како и формирањето на излезната информација на бројачот, станува
јасно дека секој изброен импулс на излезот од бројачот ќе биде презентиран со
соодветен бинарно кодиран број кој лесно може да биде прикажан со помош на
LED (светлечки) диоди, како што може и да се види од сл. 5-1,која претставува
блок шема на бројач во општ случај.
Индикација во
бинарен облик

Индикација во
декаден облик

Такт генератор
на импулси
Бројач Декодер ..
(Астабилен .
мултивибратор)

Сл.5-1. Блок шема на бројач со бинарно и декадно покажување


За визуелно претставување на резултатите од броењето, кога бројот на
импулсите треба да биде лесно разбирлив од страна на човекот, на излезот од
бројачот може да се додаде декодер и седум-сегментен екран како индикатор,
според истата сл. 5-1.
5.2. ОСНОВА И КАПАЦИТЕТ НА БРОЈАЧИТЕ
Веќе наведовме дека состојбата на бројачот е дефинирана преку состојбата
на секој од n-те флип-флопови (степени) што влегуваат во составот на бројачката
мрежа. Во врска со ова, секој бројач има своја почетна состојба, а тоа е
состојбата на секој од флип-флоповите пред да дојде првиот влезен импулс. Со
секој нов импулс бројачот ја менува состојбата за тој, по завршувањето на еден
полн опсег на броење, да се врати во почетната состојба и отпочне нов циклус.
Вкупниот број на различни состојби се вика должина на бројачкиот циклус и ја
дефинира основата на бројниот систем во кој тој брои, т.е. модулот на бројачот.
Според основата на броење бројачите се делат во две групи:
 бинарни бројачи, и
 небинарни бројачи, т.е. бројачи со произволна основа.
Основата на бинарните бројачи се означува со М0 и тоа може да биде било
кој степен на бројот 2, како на пр. 2, 4, 8, 16 и сл. даден со равенката:
M0=2n , (5-1)
каде n = 1, 2, 3, … е бројот на употребени флип-флопови кои го формираат
бројачот.
Бројачите со произволна основа М се делат на декадни бројачи, чија основа
е 10 (М=10) и на други небинарни бројачи.
Капацитетот на даден бројач се означува со NK и се дефинира како
најголемата децимална вредност што тој бројач ја дава на својот излез.
Капацитетот на бројачот може да се претстави преку неговата основа:
БРОЈАЧИ 131

NK = М0 -1 (5-2)
ако е бинарен бројач (во природен бинарен код), односно
NK = M -1 (5-3)
во случај на бројач со произволна основа.
Кога се работи за бинарен бројач, тогаш
NK =2n-1 . (5-4)
Ова значи дека кога ќе се достигне капацитетот на бројачот NK, сите негови
флип-флопови ќе бидат сетирани (излезите ќе им се наоѓаат во состојба на
логичка единица).
Пример: Нека се дадени два бинарни бројачи реализирани со а) n=3 б) n=4
флип-флопови. За секој од нив да се определи основата, т.е. модулот (M0) и
капацитетот (NK).
а) За n=3 се добива M0=23=8 па NK=8-1=7 (=111BIN), што значи дека станува
збор за бројач со основа 8, т.е. октален бројач, додека
б) за n=4 се добива M0=24=16 па NK=16-1=15 (=1111BIN), што значи дека се
работи за бројач по модул 16, т.е. хексадецимален бројач.

5.3. ПОДЕЛБА НА БРОЈАЧИТЕ


Бројачите се делат по различни основи односно критериуми. Така на пр.,
претходно веќе наведовме дека според модулот на броење тие се делат на
бинарни бројачи и бројачи кои бројат според произволна основа. Од друга страна,
според начинот на доведување на импулсите постојат асинхрони бројачи, кои
уште се викаат и бројачи со сериски или реден влез, и синхрони бројачи или
бројачи со паралелен влез. Кај асинхроните бројачи импулсите се приклучуваат
на влезот за такт сигнал во првиот флип-флоп, а секој излез од претходниот
флип-флоп се поврзува на тактот кај следниот. За разлика од нив, кај синхроните
бројачи импулсите се доведуваат паралелно (истовремено) до влезовите за такт
на сите флип-флопови.
Почетната и крајната состојба на бројачот зависат од насоката на броењето,
па според тоа тие се делат на бројачи нанапред и бројачи наназад. Бројачите
нанапред почнуваат од состојбата што одговара на најмалата вредност на
бројачот и со секој нов импулс неа ја зголемуваат за еден движејќи се кон
најголемата вредност, за потоа, по нејзиното достигнување, повторно да почнат
од почеток: од најмалата кон најголемата менувајќи ја секоја претходна состојба
за еден, со што циклусот на броење континуирано се повторува. Спротивно на
бројачите нанапред, бројачите наназад почнуваат од најголемата вредност и со
секој нов импулс неа ја намалуваат за еден, броејќи кон најмалата вредност, за
по нејзиното достигнување, да почнат повторно од најголемата кон најмалата,
итн. И во овој случај циклусот на броење непрекинато се повторува.
Од кажаното следува дека за бинарен бројач нанапред, кој брои според
природниот броен систем, неговата почетна состојба ќе биде ресетирана, т.е.
излезите на сите флип-флопови се 0-и, додека за случај на бинарен бројач
132 БРОЈАЧИ

наназад неговата почетна состојба ќе биде сетирана, т.е. излезите на флип-


флоповите ќе им се 1-и. Значи, ваквиот бројач нанапред, во децимална нотација,
почнува да брои: 0, 1, 2, 3, ..., (NK-1), NK, повторно 0, 1, 2, 3, ... итн., додека
бројачот наназад започнува од NK, (NK-1), ... 2, 1, 0, пак NK, (NK-1), ..., итн. каде
што NK е капацитетот на бројачот, т.е. неговата најголема декадна вредност.
Пример: Нека е даден октален бројач (бинарен бројач со основа M0=8) кој
брои а) нанапред б) наназад и дека за него треба да се определи бројачката
секвенца.
Окталниот бројач е составен од n=3 флип-флопови заради што M0=23=8 па
NK=8-1=7. а) Окталниот бројач нанапред ќе почне да брои од 000 (0DEC) до 111
(7DEC) и ќе ја генерира низата ... 000, 001, 010, 011, 100, 101, 110, 111 ... т.е. во
декадно означување ... 0, 1, 2, 3, 4, 5, 6, 7 ... б) Окталниот бројач наназад брои
обратно: ќе почне од 111 (7DEC) до 000 (0DEC) и ќе ја генерира низата ... 111, 110,
101, 100, 011, 010, 001, 000 ... т.е. декадно ... 7, 6, 5, 4, 3, 2, 1, 0 ....
Во практиката многу често се среќаваат и т.н. кружни бројачи кои по својата
логичка структура значајно се разликуваат и од асинхроните и од синхроните
бројачи. Имено, и кружните бројачи се реализираат како секвенцијални мрежи
формирани од повеќе флип-флопови, но тие се затворени со повратна врска од
излезот на последниот флип-флоп до влезот на првиот и тоа без употреба на
логички кола. Покрај ова, кружните бројачи најчесто се изградени од каскадно
поврзани D, а не Т или ЈК флип-флопови, заради што, од конструктивен аспект,
потсетуваат на поместувачки регистри. Кај кружните бројачи, токму заради
специфичниот начин на поврзување во затворена логичка мрежа, на влезната
низа бројачки импулси не и соодветствуваат наредни броеви во растечки или
опаѓачки редослед како кај бројачите нанапред/наназад, туку се добиваат броеви
во различен бинарен код, зависно од конкретната структура на кружниот бројач.
Изучувањето на бројачите опфаќа нивна анализа и синтеза. Анализата се
однесува на откривање на начинот на работа на веќе зададен бројач со позната
логичка структура и формирање на неговата комбинациона табела и временски
дијаграми. Од друга страна, при процесот на синтеза треба да се проектира
(дизајнира) бројач со однапред зададени карактеристики: тип на бројач (синхрон
или асинхрон), основа (модул) на броење (со бинарна или произволна основа),
насока на броење (напред или назад) и типови на флип-флопови (Т, ЈК или
други). За да се стекне целосна слика за бројачите во натамошниот текст ќе бидат
обработени и двата проблема.
5.4. АСИНХРОНИ БРОЈАЧИ
Асинхроните бројачи кои уште се викаат и бројачи со сериски или реден влез
(анг. ripple counters) имаат наједноставна конфигурација и се употребуваат во
случаи кога нема потреба од поголеми брзини во работата.
Најнапред, фокусот ќе го ставиме на бројачите што бројат нанапред за
потоа, во куси црти да се задржиме и на принципот на работа на бројачите
наназад, а ќе ги анализираме и т.н. двонасочни или билатерални бројачи кои
можат да бројат и нанапред и наназад зависно од логичката состојба на
посебниот контролен влез со кој се избира насоката на броење. На крај, ќе го
објасниме и процесот на проектирање бројачи со небинарна основа.
БРОЈАЧИ 133

5.4.1. БИНАРЕН АСИНХРОН БРОЈАЧ


Броењето во дигиталните уреди се темели на бинарните бројачи кои воедно
се и наједноставни за реализација. Покрај ова, поаѓајќи од структурата на
бинарните бројачи, со одредени модификации релативно едноставно можат да се
добијат небинарни бројачи.
Имајќи ја предвид равенката (5-1) за пресметување на основата M0 на било
кој бинарен бројач (M0=2n), како и фактот дека бројачите ги прикажуваат
изброените импулси во бинарен облик, станува јасно дека за реализација на
бинарен бројач со основа M0 која е цел степен на бројот 2 ќе треба да се
употребат n флип-флопови.
На сл. 5-2 а), односно б), се прикажани две основни изведби на еден
бинарен бројач со примена на три Т, односно ЈК, MS флип-флопови (n=3) што
значи дека станува збор за тростепена бројачка мрежа. Флип-флоповите имаат и
директен влез за ресетирање (бришење), а меѓусебно се каскадно поврзани преку
своите излези при што Т, односно Ј и К влезовите на сите флип-флопови се држат
на ниво на логичка 1 заради што, според последните редици од таб. 3-8 и таб. 3-
10, тие работат во префрлувачки режим: со секој такт импулс состојбата на флип-
флопот се менува во состојба, комплементарна на претходната ( Q  Q  ). Бидејќи
флип-флоповите се со MS структура, тие ја менуваат состојбата при појава на
задниот раб на такт сигналот, па секој следен степен ќе ја промени својата
состојба во моментот кога излезот на претходниот степен преминува од високо на
ниско ниво (од 1 на 0). Значи кај ваквата структура, појавувањето на импулс на
влезот за такт (CK) кај било кој од флип-флоповите, предизвикува промена на
неговата моментална состојба во следна која е комплементарна на неа.

A B C
1 1 1
PI T Q T Q T Q
Ck Ck Ck
Rd Q Rd Q Rd Q
CLR

а) на октален асинхрон бројач со Т флип-флопови

1 J Q A 1 J QB 1 J Q C
PI Ck Ck Ck
1 K R Q 1 KR Q 1 KR Q
d d d

CLR
б) на октален асинхрон бројач со ЈК флип-флопови
Сл. 5-2. Логичка структура
134 БРОЈАЧИ

Побудните импулси (PI) што треба да се избројат се доведуваат на влезот за


такт сигнал на првиот флип-флоп А (CКА=PI), додека излезот Q од секој претходен
флип-флоп претставува такт за следниот. Бидејќи се работи за тактирани Т,
односно ЈК, MS флип-флопови кај кои Т=1, односно Ј=1 и К=1, со секој бројачки
импулс се менува состојбата на првиот флип-флоп А и тоа со појавата на
неговиот заден раб. И флип-флоповите B и C ќе ја менуваат состојбата само кога
на излезите од флип-флоповите што нив им претходат се јавува промена од
високо на ниско ниво, т.е. во моментот кога се воспоставува логичка нула.
Состојбата на флип-флопот B, т.е. неговиот излез QB зависи од излезот на А (QА)
бидејќи тактот на B е токму излезот на флип-флопот А (CKB=QА); слично, излезот
на C (QC) зависи од излезот на B (QB), бидејќи такт за флип-флопот C е излезот на
B (CKC=QB). Начинот на работа на бројачот најдобро се гледа од временските
дијаграми на напоните на излезите од овие мемориски елементи (сл. 5-3). Бидејќи
се работи за секвенцијална мрежа, најнапред ќе треба да се претпостави
почетната состојба која во овој случај, кога се работи за бројач нанапред, ќе
треба да биде 0DEC што бинарно се кодира како ABC=000, т.е. QA=QB=QC=0.
Почетната состојба се дефинира со доведување на краткотрајно ниско ниво
(логичка 0) на влезот за бришење CLR кој е поврзан на влезот за директен ресет
на секој флип-флоп, со што истовремено се ресетираат сите флип-флопови.
1 2 3 4 5 6 7 8 9
PI =C kA
TI t
(2 ) A=C kB 0
0 1 0 1 0 1 0 1 0 1
TA t
(2 ) B=C kC 0
1 0 1 1 0 0 1 1 0 0
TB t
2
(2 ) C 0 0 0 0 1 1 1 1 0 0
TC t
Сл. 5-3. Временски дијаграми на октален асинхрон бројач
Со доведување на првиот импулс на влезот на бројачот се сетира флип-
флопот А и на неговиот излез се воспоставува високо напонско ниво (QA=1). Ова
не влијае врз флип-флопот B бидејќи станува збор за преден раб на неговиот
такт, па тој останува во ресетирана состојба (QB=0). Излезот од флип-флопот B е
такт за флип-флопот C но, бидејќи тој е низок, не ја менува состојбата на флип-
флопот C, па така и флип-флопот C останува ресетиран (QC=0). Вториот влезен
импулс повторно ја менува состојбата на флип-флопот А, сега тој се ресетира, па
на неговиот излез се јавува опаѓачки раб и ниско напонско ниво (QA=0). Ова се
пренесува до влезот за такт на следниот степен, флип-флопот B, со што флип-
флопот B се сетира и на неговиот излез се појавува логичка единица (QB=1),
преден растечки раб што не влијае врз следниот степен, флип-флопот C, кој и
понатаму останува ресетиран (QC=0).
Третиот импулс повторно го сетира флип-флопот А, но не делува на флип-
флоповите B и C (QA=1, QB=1, QC=0). По четвртиот импулс се завршени два
циклуса на промени на состојбите на А, еден циклус на B и започнува промената
на излезот од флип-флопот C (QC=1).
БРОЈАЧИ 135

Еден циклус на C, т.е. повторна промена на неговата состојба, но сега од


високо на ниско ниво (од 1 на 0) ќе се случи дури по осмиот импулс, кога
истовремено сите флип-флопови од сетирана состојба ABC=111, т.е. QAQBQC=111,
што претставува број 7 во декаден систем, преминуваат во ресетирана состојба
ABC=000, т.е. QAQBQC=000 (0DEC) со што повторно се воспоставува почетната
состојба, од која броењето повторно продолжува преку 1, 2, ... кон 7. Јасно е дека
по изброените 8 импулси се завршува циклусот на броење што произлегува и од
равенката 6-1 (M0=2n), според која со замена за n=3 се добива
M0 = 23 = 8 (5-5)
што значи дека модулот (основата) на броењето на овој бинарен бројач е 8
(M0=8), заради што тој и се вика октален бројач.
За објаснување на работата на окталниот бројач може да се користи и
неговата комбинациона табела таб. 5-1 во која се дадени сите состојби на
бројачот Si, конкретните вредности во бинарен облик (комбинациите) на излезите
од флип-флоповите за секоја од состојбите, како и соодветните индекси
(декадните вредности) Ki на секоја комбинација. Од таб. 5-1 се гледа дека
состојбите на бројачот S0, S1, S2, ... S7 одговараат на комбинационите вредности
на бинарните триади на окталниот броен систем: 000, 001, 010, 011, 101, 110 и
111 т.е. 0, 1, 2, 3, 4, 5, 6 и 7 декадно.

Состојби Флип-флопови Имено, комбинационите вредности на


бројачот можат да се определат со помош
Si Ki CBA
на излезите од флип-флоповите А, B и C.
0 0 000 Во секоја редица се запишува состојбата
1 1 001 (Si) во која може да се најде бројачот, како
и нејзиниот индекс (Ki) кој ја претставува
2 2 010 во зависност од поединечната состојба на
3 3 011 секој флип-флоп, каде што i = 0, 1, 2, 3, 4,
5, 6, 7.
4 4 100
Редоследот на состојбите и
5 5 101 вредностите на индексите во табелата
6 6 110 целосно одговараат на броењето во
природниот бинарен броен систем.
7 7 111
0 0 000
Таб. 5-1. Комбинациона табела на
октален асинхрон бројач
Од табелата се констатира дека првиот степен т.е. флип-флопот А има
позиција со најмала тежинска вредност 20, следниот флип-флоп B има тежина 21,
додека крајниот степен C има најголема позициона вредност 22. Така, во декадно
означување, секој изброен импулс може да се претстави со соодветен број N:
N =20QA+21QB+22QC (5-6)
136 БРОЈАЧИ

Вкупниот број на состојби за овој бројач е осум, при што броењето


започнува од почетната - првата состојба кога N=0 (S0=QAQBQC=000), па сè до
последната - осмата состојба кога се достигнува капацитетот на бројачот N=NK=7
(S7=QAQBQC=111).
Во општ случај, за n-степен бинарен бројач вкупниот број на состојби ќе
изнесува 2n, при што се почнува од почетната состојба кога N=0, па сè до
крајната состојба кога N=NK=2n-1.
N =20QA+21QB+22QC+23QD…+2n-1Q (5-7)

Делител на фреквенција: Бинарниот бројач всушност работи и како


делител на фреквенција што лесно се забележува од неговите временски
дијаграми прикажани на сл. 5-3. Бидејќи однесувањето на секој флип-флоп
зависи од неговиот такт сигнал што е всушност излез од неговиот претходник, на
излезот од секој флип-флоп се генерираат два пати помалку импулси во однос на
тој пред него, т.е. сигнал со два пати поголема периода, така што односот на
делење на влезните бројачки импулси зависи од тоа после кој флип-флоп се зема
излезот. Факторот на делење изнесува 2i, каде i е редниот број на флип-флопот
(i=1, 2, 3, .., n). Така на пример, влезната бројачка низа е такт за првиот флип-
флоп, па односот на делење на неговиот излез А е 2 (21), по вториот флип-флоп
B, односот е 4 (22), итн. заради што ако фреквенцијата на влезните бројачки
импулси е fI=1/TI, каде што TI е нивната периода, фреквенцијата на импулсите по
првиот флип-флоп A ќе биде fA=fI/21=fI/2, по вториот fB=fA/2=fI/22=fI/4, по
третиот fC=fB/2=fI/23=fI/8, итн. според равенката
fI
fi  , каде што i = 1(A), 2(B), 3(C), ... n. (5-8)
2i
Селекција на секој од сигналите со фреквенција дадена со равенката (5-8)
може да се добие ако на бројачот се поврзе соодветен мултиплексер.

5.4.2. БИНАРЕН АСИНХРОН БРОЈАЧ НАНАЗАД


Принципот на работа на бројачите наназад е спротивен во однос на
бројачите нанапред. За разлика од бројачите нанапред кои почнуваат да бројат
од најмалата кон најголемата вредност, бројачите наназад поаѓаат од најголемата
вредност и со секој нов изброен импулс нивната вредност се намалува за еден сé
додека не стигнат до најмалата вредност – нула, за веднаш по неа повторно да
влезат во својата почетна состојба - најголемата вредност на бројачот, која пак ќе
се намалува за еден сé до најмалата, итн. циклусот на броење континуирано се
повторува. Идентично како и кај бинарните бројачи нанапред, бројот на потребни
флип-флопови n за реализација на бинарен бројач наназад со основа M0 која е
цел степен на бројот 2, произлегува од познатата равенка (5-1) според која
M0=2n.
Како пример за анализа повторно ќе земеме октален бинарен бројач со
основа 8 (М0=8) реализиран со 3 флип-флопови (n=3), но сега таков што ќе брои
наназад. Комбинационите вредности, т.е. состојбите низ кои минува бројачот се
внесени во табелата таб. 5-2.
БРОЈАЧИ 137

Состојби Флип-флопови Бидејќи се поаѓа од највисока


вредност, во почетниот момент сите
Si Ki CBA
флип-флопови се сетирани: QAQBQC=111
0 7 111 (почетната состојба S0=111 е декадно 7),
1 6 110 за нивната состојба да се промени во 110
(S1=110, т.е. 6-ка), па 101 (S2=101, т.е. 5-
2 5 101 ка), итн. Сè додека бројачот не влезе во
3 4 100 последната – осмата состојба кога сите
флип-флопови се ресетирани: QAQBQC =
4 3 011 =000 (S7=000 или декадно 0), по која
5 2 010 повторно влегува во почетната состојба
кога покажува 7-ка, па 6-ка, па пак 5-ка,
6 1 001
4-ка, итн.
7 0 000
Ваков начин на работа може
0 7 111 наједноставно да се добие ако се
употребат каскадно врзани Т или ЈК флип-
флопови слично како кај бинарниот
Таб. 5-2. Табела на вистинитост бројач нанапред но во овој случај
на октален бројач наназад поврзувањето од еден до друг флип-флоп
оди преку нивните комплементар-ни
излези, а не преку директните.

Логичката структура на бројачот е прикажана на сл. 5-4. Тој се реализира со


ЈК MS флип-флопови во префрлувачки режим на работа (Ј=1 и К=1), а неговите
временски дијаграми се претставени на сл. 5-5.

A B C
1 J Q 1 J Q 1 J Q
PI
1 K Sd Q 1 K Sd Q 1 K Sd Q
PRS

Сл. 5-4. Логичка структура на октален бројач наназад

Бидејќи се работи за бројач наназад, неговата почетна состојба S0 треба да


биде 7-ка декадно која бинарно се кодира како ABC=111, т.е. QA=1, QB=1 и QC=1,
заради што употребените флип-флопови имаат директен влез за сетирање S d .
Токму на сите овие влезови за директно сетирање се поврзува влезот за
поставување PRS , на кој со краткотрајно доведување на логичка нула се
поставува почетната состојба на бројачот, т.е. сетирањето на сите флип-флопови
(QAQBQC=111).
138 БРОЈАЧИ

1 2 3 4 5 6 7 8
PI =C kA
t
A
t
A=C kB
t
B
t
B=C kC
t
C
t
Сл. 5-5. Временски дијаграми на октален бројач наназад
Принципот на работа на овој бројач е такoв што првиот флип-флоп ја менува
состојбата со секој нов влезен бројачки импулс, додека сите останати флип-
флопови ја менуваат состојбата само кога на комплементарниот излез од
претходниот флип-флоп се воспоставува состојба на логичка нула. Според ова, и
со претпоставка дека бројачот се наоѓа во почетната состојба S0=111 кога сите
флип-флопови се сетирани QA=1, QB=1 и QC=1, доведувањето на првиот бројачки
импулс ќе го ресетира флип-флопот А (QA=0) и на неговиот излез ќе се појави
опаѓачки раб, додека комплементарниот излез ќе оди на високо ниво. Бидејќи
комплетарниот излез на флип-флопот А е такт за следниот флип-флоп B, а на
него се појавува растечки раб на напонот ( QA  1 ), тоа не влијае на состојбата на B
која останува непроменета (QB=1). Следниот импулс го враќа флип-флопот А во
состојба на логичка единица (QA=1), на неговиот комплементарен излез се
појавува опаѓачки раб што го ресетира флип-флопот B (QB=0), но не влијае врз
состојбата на флип-флопот C чиј такт е комплементарниот излез на B, а на него
се појавил растечки раб, заради што C останува сетиран (QC=1). Состојбата на
флип-флопот C ќе се промени од сетирана во ресетирана со појавата на задниот
раб на четвртиот импулс бидејќи тогаш на комплементарниот излез на B ќе се
појави опаѓачки раб ( QA  0 ). Циклусот на броење ќе заврши по осмиот импулс
кога бројачот се враќа на почетната состојба на сетирани флип-флопови (S0
=QAQBQC=111).
5.4.3. БИНАРЕН АСИНХРОН ДВОНАСОЧЕН БРОЈАЧ
Од досегашното излагање може да се заклучи дека и бројачите нанапред и
наназад имаат иста конструкција, но различно последователно поврзување. Тоа
иницира примена на логичка мрежа со која ќе може да се реализираат и двата
начини на броење.
Бројачот со ваква карактеристика се вика билатерален бројач (анг. up-down
counter) бидејќи има можност да брои и во двете насоки: нанапред или наназад,
во зависност од состојбата на посебната линија со која ќе се контролира насоката
на броење.
За да се добие асинхрон двонасочен бројач, неговата вообичаена структура
треба да се дополни со логички кола кои ќе овозможат правилно поврзување на
флип-флоповите и при едниот, но и при другиот начин на броење. Ваков бројач,
реализиран со ЈК MS флип-флопови поврзани во префрлувачки режим (Ј=1 и
К=1) е прикажан на сл. 5-6.
БРОЈАЧИ 139

PRS

K
Sd Sd Sd
PI 1 J Q 1 J Q 1 J Q
Ck A Ck B Ck C
1 K Q 1 K Q 1 K Q
Rd Rd Rd

CLR

Сл. 5-6. Логичка структура на октален двосмерен бројач


Бидејќи бројачот треба да има можност за броење и напред и назад,
поврзувањето на флип-флоповите се изведува преку 2-во-1 мултиплексери (секој
реализиран со по две И и едно ИЛИ коло) кои обезбедуваат избор на насоката на
броење со меѓусебна исклучивост: ако бројачот брои нанапред, не може наназад,
и обратно. Од сликата се гледа дека кај мултиплексерите едната влезна линија
обезбедува поврзување на директниот излез на секој претходен флип-флоп до
влезот за такт на секој следен, додека преку втората линија на влезовите за такт
се поврзуваат комплементарните излези.
Изборот на насоката на броење се реализира со контролната линија K која се
приклучува како линија за селекција на сите мултиплексери. Кога бројачот треба
да брои нанапред, на оваа линија (K) со која се дефинира насоката на броење се
поставува логичка нула (K=0) која преку колото за комплементирање како 1-ца се
проследува до горните И-кола и воедно истите ги отвора. Влезовите на овие И-
порти се поврзани со директните излези од флип-флоповите, а нивните излези
преку ИЛИ кола се дистрибуираат до влезот за такт сигнал на секој следен флип-
флоп. Со ова практично секој од мултиплексерите овозможува пренос на сигналот
од директниот излез на претходниот флип-флоп, до влезот за такт на следниот
флип-флоп, а со тоа и броење нанапред.
Ако е потребно да се брои наназад, тогаш на контролната линија K се
поставува високо ниво (K=1), со што се отвораат И-вратите на комплементарните
излези, па заради преносот на сигналот од комплементарните излези на секој
претходен до такт-влезовите на секој нареден флип-флoп, се добива инверзен
процес на броење наназад.
Преку влезовите CLR и PRS се поставува почетната состојба на бројачот:
кога треба да се брои напред сите флип-флопови се ресетираат па поради тоа на
CLR треба да се донеси ниско ниво и на PRS високо ( CLR =0 и PRS =1), додека за
броење наназад побудата на овие два влеза треба да е комплементарна на
претходната ( CLR =1 и PRS =0) со што на стартот сите флип-флопови ќе се
сетираат. Од изнесеното произлегува дека почетната состојба може да се
поставува и со една влезна линија, на пример P, која истовремено ќе се носи
директно до влезовите S d на сите флип-флопови, но и комплементарно, преку
инвертор, до сите нивни R d влезови.
140 БРОЈАЧИ

5.4.4. ПРОЕКТИРАЊЕ НА АСИНХРОН БРОЈАЧ СО ПРОИЗВОЛНA ОСНОВА


Бидејќи дигиталните уреди се базираат на бинарниот броен систем,
основниот принцип на работа, т.е. природната основа на броењето на бинарните
бројачи е 2n, каде n е цел број кој ги претставува употребените мемориски
елементи (флип-флоповите). Според тоа, бинарните бројачи можат да бројат само
со бинарни модули М0, па така со еден флип-флоп се добива бројач со основа
(модул) 2 (М0=21), со два флип-флопови бројач со основа 4 (М0=22), со три бројач
со основа 8 (М0=23), со четири бројач по модул 16 (М0=24), итн. Но, од друга
страна, поради различни практични потреби, многу често се бара бројачите да
бидат изработени со произволна основа М, како небинарни бројачи, што се
изведува со реализирање на соодветна повратна врска врз основната
конфигурација на бинарниот бројач.
Бројачот со произволна основа М составен од n флип-флопови, ќе има
основа која е помала од бинарниот бројач составен од ист толкав број (n) на
флип-флопови кој брои според природната основа M0, така што секогаш ќе важи
релацијата:
M ≤ M0=2n. (5-9)
Така на пример, бидејќи секој четиристепен бројач во својата структура има
4 флип-флопови (n=4), како основа може да ги има сите модули М помали од
M0=24=16, т.е. мора да важи M ≤ M0 =24=16.
Ако претпоставиме дека треба да се проектира небинарен бројач со
произволна основа М, тоа значи дека циклусот на броење треба да заврши по М
влезни импулси, за веднаш потоа бројачот да се врати на својата почетна
состојба. Знаејќи дека модулот на броење M е различен од степен на бројот 2 и се
разликува од природната (бинарната) основа на броење M0 (MM0), каде M0=2n,
меѓу нив се јавува разлика ΔМ што го претста-вува бројот на состојби кои
бројачот треба да ги прескокне за да брои со основа М:
ΔM=M0 - M . (5-10)
Состојбите М во кои може да се најде бројачот кога брои, се викаат
дозволени или легални состојби, додека оние состојби што треба да бидат
прескокнати се недозволени или илегални состојби (ΔM).
За прескокнување на некорисните, т.е. забранетите ΔM состојби може во
принцип да се примени следново решение. Најнапред, многу кусо време се
генерира бинарниот код на изброениот импулс, а потоа се врши ресетирање на
флип-флоповите, т.е. враќање во почетната состојба и продолжување со
процесот на броење. Овде е карактеристично тоа што се јавува една недозволена
квази-состојба помеѓу последната важечка (легална) состојба од претходниот
циклус на броење и првата легална состојба од следниот циклус. Ако оваа
меѓусостојба се прочита би се јавила грешка во броењето.
Пример: За бројач по модул 5, или т.н. квинарен бројач, според првиот
начин, бројачот би ја повторувал низата ...000, 001, 010, 011, 100, 101/000... т.е.
во декадна нотација ... 0, 1, 2, 3, 4, 5/0 ... што значи дека квази-состојбата е 5,
додека забранетите состојби се: 110 и 111, т.е. 6 и 7 децимално. Меѓутоа, ако се
примени второто решение, бројачот би ја генерирал секвенцата ... 000, 001, 010,
011, 100, 111/000 ..., или во декадно означување ... 0, 1, 2, 3, 4, 7/0, ... од каде се
БРОЈАЧИ 141

гледа дека сега квази-состојбата ќе биде 7-ка декадно, а забранети ќе се


состојбите 101 и 110, т.е. декадно 5 и 6. Во секој случај, една од недозволените
состојби, како квази или меѓусостојба, се јавува по секој петти импулс кога
завршува еден циклус на броење, а започнува нов.
За синтеза на бројач со однапред зададена произволнa основа М, се
применуваат флип-флопови со директен влез за ресетирање кои се активни на
ниско ниво ( Rd ). Логичката структура, т.е. потребниот број на мемориски
елементи и начинот на нивното поврзување се добива со примена на следниве
чекори:
1. Бројот на потребни флип-флопови n произлегува од условот (5-9),
поточно треба да важи 2n-1≤ M ≤ 2n, каде што М е зададената основа
(модулот) на бројачот, т.е. должината на циклусот на броење;
2. Флип-флоповите се поврзуваат во каскада и се формира логичка шема
што реализира вообичаен n-степен асинхрон бројач;
3. Се врши претворување (конверзија) на зададениот модул на броење од
декаден во бинарен број: M(10)  M(2) (MDEC  MBIN);
4. Излезите од сите флип-флопови што се наоѓаат на високо ниво (Q=1) при
M(2), треба да се приклучат на НИ коло;
5. Излезот од НИ колото се поврзува на сите влезови за директно
ресетирање на флип-флоповите.

5.4.4.1. АСИНХРОН БРОЈАЧ СО ОСНОВА 5


Наведената постапка за дизајнирање на бројач со произволна основа М ќе ја
илус-трираме на претходниот пример за квинарен бројач чија основа на броење
беше 5 (M=5).

1 J Q A 1 J Q B 1 J Q C
PI
Ck Ck Ck
1 K Q 1 K Q 1 K Q
Rd Rd Rd

Сл. 5-7. Логичка структура на квинарен асинхрон бројач

Ќе претпоставиме дека на располагање имаме ЈК МЅ флип-флопови со


директен влез за ресетирање Rd . Бидејќи располагаме со ЈК флип-флопови кои
треба да ја менуваат состојбата на секој влезен такт импулс, на нивните влезови Ј
и К истовремено приклучуваме високо ниво т.е. ги држиме на фиксна 1-ца (Ј=1 и
К=1), со што практично ЈК флип-флоповите ги трансформираме во Т флип-
флопови кај кои Т=1. На тој начин тие работат во префрлувачки режим кога секој
импулс на влезот за такт им ја менува состојбата во комплементарна.
142 БРОЈАЧИ

Состојби Флип-флопови
1 2 3 4 5 6
Si Ki CBA
PI
0 7 0 0 0 t

1 6 0 0 1 A
t
2 5 0 1 0 B
t
3 4 0 1 1
C
4 3 1 0 0 t
Rd
0 5/0 1/0 0 1/0 t
Таб. 5-3. Табела на Сл. 5-8. Временски дијаграми на квинарен
вистинитост на квинарен асинхрон бројач
асинхрон бројач
Спроведувајќи ги редоследно чекорите од претходно наведената процедура,
добиваме дека за реализација на квинарниот бројач ќе се потребни 3 флип-
флопови (n=3) (22=4≤5≤23=8) при што 5DEC=101BIN, од каде произлегува
логичкиот дијаграм на бројачот прикажан на сл. 5-7, временските дијаграми
дадени на сл. 5-8 и табелата на вистинитост таб. 5-3.
Од сл. 5-8 се гледа дека бројачот работи како вообичаен бинарен бројач до
5-иот импулс, при што цело време излезот на НИ-колото е висок и не делува на
директните влезови за ресетирање кои се активни на ниско ниво. Меѓутоа, по
појавата на опаѓачкиот раб на 5-иот бројачки импулс, бројачот влегува во меѓу-
(квази)-состојбата што соодветствува на модулот на броењето во бинарна
нотација (М=5DEC=101BIN) заради што излезите на флип-флоповите A и C се
високи, додека на B е низок: QA=1, QB=0 и QC=1. Бидејќи излезите на A и C се
врзани на влезовите на НИ-колото и истовремено и двата се на ниво на логичка
единица, тоа предизвикува излезот на НИ-колото од високо да оди на ниско и со
тоа да ги ресетира сите флип-флопови, со што бројачот се поставува во
почетната (точната) состојба: QA=0, QB=0 и QC=0.
За реализација на декаден бројач, т.е. бројач со основа 10 (M=10), ќе се
потребни 4 флип-флопови (n=4): A, B, C и D што произлегува од примена на
првиот чекор, т.е. задоволување на релацијата 2n-1≤ M ≤2n, бидејќи
23=8≤10≤24=16. Поаѓајќи од тоа дека модулот на бројачот е 10 (M=10), ќе се
изврши конверзија во бинарен број и ќе се добие 1010 (10DEC=1010BIN), што
укажува на тоа дека влезовите во НИ колото треба да се земат од излезите на
флип-флоповите B и D (1010=QDQCQBQA), по што лесно може да се комплетира
логичкиот дијаграм на бројачот со примена на флип-флопови од ЈК или Т тип,
неговите временски дијаграми и табелата на вистинитост.

5.5. СИНХРОНИ БРОЈАЧИ


Ограничувањето на брзината во работата кај асинхроните бројачи може да
се избегне ако бројачките импулси се носат паралелно до влезовите за такт кај
сите флип-флопови во структурата на бројачот, а не само на првиот флип-флоп.
На овој начин се овозможува синхроно побудување на флип-флоповите, заради
што ваквите бројачи и се викаат синхрони бројачи или бројачи со паралелен влез.
БРОЈАЧИ 143

Кај овие бројачи, промената на состојбата за сите флип-флопови (степени) ќе


може да се врши истовремено со појавата на тактот, т.е. со бројачката низа која
на него се приклучува. Таа промена нема да зависи од редоследот на флип-
флопот во однос на почетниот, т.е. нема да има чекање, со што преодниот режим
се скратува и јасно доаѓа до зголемување на брзината на работа.
Како што ќе видиме во натамошното излагање, ваквото зголемување на
брзината се остварува со внесување на дополнителни логички кола во
структурата на бројачот што од друга страна, ќе доведе до усложнување на
неговата изведба.
5.5.1. БИНАРЕН СИНХРОН БРОЈАЧ
Знаејќи дека сите бројачи изброените импулси ги прикажуваат во бинарен
облик, јасно е дека за реализација на бинарни синхрони бројачи со основа
(модул) M0 која е цел степен на бројот 2 (M0=2n), ќе треба да се употребат n
мемориски елементи (флип-флопови), исто како и во случајот на бинарните
асинхрони бројачи.
Бидејќи кај синхрониот бројач бројачките импулси ќе се носат истовремено
до влезовите за такт кај сите флип-флопови (степени), ќе треба дополнителна
логика која нема да дозволи првиот импулс да им ја смени состојбата на сите
флип-флопови одеднаш, што би довело до грешка во работата.
Да се потсетиме дека бројачот работи правилно тогаш кога првиот степен ја
менува состојбата со секој влезен импулс, вториот ја менува состојбата само кога
претходниот степен ќе се наоѓа во состојба на логичка единица, а за побудување
на третиот степен и двата претходни флип-флопови треба истовремено да се во
состојба на логичка единица. Четвртиот степен D ќе треба да ја менува состојбата
само кога A и B и C се на високо ниво, итн. Во врска со кажаното станува јасно
дека ќе треба да се применат И кола кои ќе имаат задача да обезбедат
ускладување на работата на флип-флоповите имајќи го предвид такт-сигналот,
т.е. бројачката низа која кај овие бројачи како такт-сигнал се носи истовремено
до сите влезови за такт на флип-флоповите.

1
T Q T Q T Q
A B C
Ck Q Ck Q Ck Q
PI

Сл. 5-9. Логичка структура на октален синхрон бројач со Т MS флип-флопови

Во врска со ова, на сл. 5-9 е претставен еден пример на логичката шема на


октален синхрон бројач (бинарен бројач со основа 8) (М0=8), реализиран со Т MS
флип-флопови.
144 БРОЈАЧИ

Првиот флип-флоп реагира на секој влезен импулс, вториот на секој втор, а


третиот на секој четврт, заради што на Т влезовите од секој флип-флоп се
доведува побудата:
 на А логичка единица (TA=1),
 на B излезот од А (TB=A, т.е. TB=QA), и (5-11)
 на C излезите од А и B (TC = A B, т.е. TB=QAQB).
Овие изрази покажуваат дека на влезот Т од флип-флопот А треба постојано
да биде присутно високо ниво, степенот А директно се врзува на степенот B,
додека за побуда на флип-флопот C е потребно И коло со два влеза на кои ќе се
приклучени излезите од А и B.
Ваквата конфигурација последователно го генерира природниот бинарен код
со три бита со што добиваме идентична работа како кај асинхрониот октален
бројач: ... 000, 001, 010, 011, 100, 101, 110, 111 ... односно декадно ... 0, 1, 2, 3, 4,
5, 6, 7 ... итн.

Состојби Излези Влезови Комбинационата табела таб. 5-4 ги


прикажува сите состојби на бројачот (Si),
Si Ki C B A TC TB TA
нивните бинарни вредности, т.е.
0 0 0 0 0 0 0 1 комбинациите на излезите на трите
1 1 0 0 1 0 1 1 флип-флопови и нивните индекси (Ki) во
декадна нотација. Секоја состојба е
2 2 0 1 0 0 0 1 претставена со различна бинарна
3 3 0 1 1 1 1 1 комбинација и соодветен индекс.
4 4 1 0 0 0 0 1 Состојбите на бројачот се менуваат
според редоследот на бинарните броеви
5 5 1 0 1 0 1 1 во природниот бинарен броен систем од
6 6 1 1 0 0 0 1 000 до 111 (од 0 до 7 декадно), па бројот
на состојбата на бројачот е еднаков со
7 7 1 1 1 1 1 1
индексот на секоја комбинација што таа
0 0 0 0 0 состојба ја претставува (Si=Ki).
Временските дијаграми со кои
Tаб. 5-4. Табела на вистинитост на
синхрон октален бројач нанапред дополнително се опишува и објаснува
принципот на работа на бројачот се
дадени на сл. 5-10.

1 2 3 4 5 6 7 8 9
PI
t
A
t
B
t
C
t
Сл. 5-10. Временски дијаграми на октален синхрон бројач
БРОЈАЧИ 145

На сл. 5-11 е прикажана уште една реализација на синхрон бинарен бројач


со модул 8 (М0=8), но сега со примена на ЈК MS флип-флопови.

A B C
J Q J Q J Q
Ck Ck Ck
K Q K Q K Q

PI

Сл. 5-11. Логичка структура на октален бројач со ЈК MS флип-флопови

5.5.2. БИНАРЕН СИНХРОН БРОЈАЧ НАНАЗАД


Поаѓајќи од принципот на работа на бројачите наназад, а знаејќи ги
логичките структури на бинарните асинхрони бројачи наназад и на синхроните
бројачи нанапред, може да се претпостави структурата на синхрониот бројач
наназад. Една таква принципиелна шема на октален бројач наназад реализиран
со Т MS флип-флопови е прикажана на сл. 5-12.
Намалувањето на вредноста на бројачот за еден е овозможено со
поврзувањето на комплементарниот излез од претходниот флип-флоп на влезот
од следниот флип-флоп. Бидејќи почетната состојба е најголемата (S0=111),
броењето оди кон најмалата (S7=000): ... 111, 110, 101, 100, 011, 010, 001, 000,
..., или декадно ... 7, 6, 5, 4, 3, 2, 1, 0, ... .
1

T Q T Q T Q
A B C
Ck Q Ck Q Ck Q
PI

Сл. 5-12. Логичка структура на октален синхрон бројач наназад

5.5.3. БИНАРЕН СИНХРОН ДВОНАСОЧЕН БРОЈАЧ


Во продолжение, во куси црти ќе се задржиме и на билатералниот синхрон
бројач кој може да брои во двете насоки: нанапред или наназад. Бидејќи и
бројачите нанапред и оние наназад, имаат иста конструкција, но различно
последователно поврзување, тоа значи дека пред секој флип-флоп ќе треба да се
формира логичка мрежа која во основа ќе работи како 2-во-1 мултиплексер и ќе
може да ги реализира и двете можности.
146 БРОЈАЧИ

Бројачот од сл. 5-13 е еден пример на комбиниран октален бројач, т.е.


бинарен бројач по модул 8 (М0=8) со паралелен влез, реализиран со ЈК MS флип-
флопови, што може да брои нанапред или наназад. За да се постигне тоа,
побудата на секој флип-флоп оди преку логичка И–ИЛИ мрежа која овозможува
селективност во насоката на броење преку контролната линија К. Имено, кога на
неа се доведе високо ниво (К=1), таа ги отвора сите И кола на кои се поврзани
директните излези од флип-флоповите кои преку ИЛИ колата ги побудуваат
следните флип-флопови, па бројачот брои нанапред. Спротивно, кога нивото на К
е ниско (К=0), преку инверторот се отвораат сите И кола на кои се поврзани
комплементарните излези од флип-флоповите што преку ИЛИ колата се
проследуваат до следните флип-флопови, па бројачот брои наназад.
K K1
1
A B C
J Q J Q J Q
Ck Ck Ck
K Q K Q K Q

K2
PI
Сл. 5-13. Логичка структура на октален двонасочен синхрон бројач

5.5.4. ПРОЕКТИРАЊЕ НА СИНХРОН БРОЈАЧ СО ПРОИЗВОЛНА ОСНОВА


Многу често, различните проблеми во практиката наметнуваат потреба од
синхрони бројачи со произволна (небинарна) основа, меѓу кои најчесто се бара
реализација на декаден бројач, т.е. бројач по модул 10 (М=10). Во врска со ова,
однапред се познати основата на бројачот М кој треба да се проектира, различна
од 2i (i=1,2,3, …), како и типот на флип-флоповите со кои тој бројач треба да се
реализира. При синтезата на бројачките синхрони мрежи, треба да се определат
дополнителни логички кола со кои ќе се реализираат повратни врски врз флип-
флоповите заради исполнување на претходно поставените услови. Поконкретно,
структурата на бројачот и формирањето на потребната комбинациска мрежа
преку која ќе се реализираат повратните врски, зависи од модулот на бројачот М
и типот на флип-флопови што треба да се употребат за негова градба.
Состојбите што треба да бидат прескокнати се несакани (некорисни,
илегални или забранети) состојби и нивниот број е ΔM (ΔM = M0 - M). Во општ
случај, постои опасност бројачот да влезе во некоја од овие илегални состојби и
потоа да кружи само низ нив со што ќе работи погрешно. Заради претходно
забележаното, проектирањето може да се врши и со дополнителен услов, а тоа е
бројачот да излегува од секоја несакана состојба и да влегува во некоја легална,
т.е. дозволена состојба. Обично при дизајнирањето на бројач со произволен
модул се бара од секоја илегална состојба бројачот да влезе во почетната
состојба која најчесто е ресетирана т.е. сите излези на флип-флоповите да се
нули.
БРОЈАЧИ 147

И во овој случај на дизајнирање синхрон бројач, како и во претходните


реализации на бинарни или небинарни бројачи, најчесто се користат Т или ЈК
флип-флопови. Бројот на потребни флип-флопови n се одредува од познатиот
услов: 2n 1  M  2n , каде М е зададената основа на бројачот (должината на
циклусот на броење). Разликата е во тоа што при проектирањето на синхрон
бројач треба да се користат табелите на побуда (екситација) таб. 3-9 или таб. 3-
11 на употребените флип-флопови.
Процесот започнува со формирање на табелата на вистинитост за бараниот
бројач. По колони, како независни променливи се земаат излезите од флип-
флоповите A, B, C, …(QA, QB, QC, …) што стојат на располагање, додека функциите
се претставени со влезовите Т, односно Ј и К, на секој од дадените флип-
флопови.
Понатаму, се продолжува со пополнување на (М+1)-те редици за излезите
од флип-флоповите наведувајќи ги сите состојби на бројачот (Si), нивните
бинарни комбинации и индекси (Ki), при што i=0, 1, 2, 3, … итн. Се започнува од
почетната, т.е. првата состојба на бројачот S0 и нејзинот индекс K0, потоа втората
(S1), па третата (S2), итн… сé до последната М-тата состојба (SМ-1), за конечно да
се земе уште еднаш почетната состојба S0, но сега како (М+1)-ва.
Користејќи ја соодветната табела на побуда, зависно од тоа кои флип-
флопови ги имаме на располагање, таб. 3-9 за ЈК, односно таб. 3-11 за Т, една по
една, се пополнуваат десните колони од комбинационата табела, т.е.
вредностите на функциите, при што се споредува претходната со следната
состојба на секој од флип-флоповите, дали таа се променила или не, се донесува
заклучок за тоа каква треба да биде неговата побуда (вредноста на Т, односно на
Ј и К влезовите) и истата се внесува во табелата во пресекот на редицата на
анализираната состојба и колоната на разгледуваниот флип-флоп.
Конечно, со минимизација на секоја функција, поточно влезна променлива
на секој флип-флоп (Т, односно Ј и К), се добива бараната комбинациона мрежа
со која се остварува поврзувањето на n-те флип-флопови во единствена
секвенцијална мрежа што ја претставува структурата на бараниот бројач со
зададената основа М.

5.5.4.1. СИНТЕЗА НА СИНХРОН БРОЈАЧ СО ОСНОВА 10


Во практиката, од небинарните бројачи најголема примена имаат декадните
бројачи чија основа на броење (модул) е 10 (М=10), заради што бројачкиот
циклус минува низ 10 состојби, т.е. се состои од 10 различни бинарни состојби
или секвенци. Толкав број на состојби може да се исполни со реализација на
четиристепен бројач, односно со употреба на 4 флип-флопoви (n=4) бидејќи
23≤10≤24. Четиристепениот бројач овозможува 24=16 различни состојби од кои ќе
бидат искористени само 10, додека ΔM=16-10=6 секвенци ќе останат
неискористени, поточно ќе мора да се прескокнуваат бидејќи ќе се илегални.
Враќањето на сите флип-флопови во почетната состојба треба да се случи по
десеттиот импулс и со тоа да заврши циклусот на броење. Кои од состојбите ќе се
одберат како непотребни или квазисостојби, зависи од тоа кој бинарен (BCD) код
ќе се примени.
148 БРОЈАЧИ

Состојби Излези Влезови Најчесто се користи декаден


бројач во природниот BCD код
Si Ki DCBA TD TC TB TA
(NBCD, т.е. 8421 кодот), бидејќи
0 0 0000 0001 редоследот на неговите состојби се
1 1 0001 0011 поклопува со редоследот на
комбинациите на конвенционалниот
2 2 0010 0001 бинарен бројач кој ги опфаќа првите
3 3 0011 0111 10 комбинации од можните 16,
почнувајќи од состојбата на логичка
4 4 0100 0001 нула во сите степени QAQBQCQD=0000
5 5 0101 0011 (декадно 0), па сé до десеттата
состојба кога QAQBQCQD=1001
6 6 0110 0001
(декадно 9). Последните шест
7 7 0111 1111 состојби: QAQBQCQD=1010, 1011,
8 8 1000 0001 1100, 1101, 1110, 1111 (декадно 10,
11, 12, 13, 14 и 15) се забранети и
9 9 1001 1001 како такви се неискористени.
0 0 0000 Циклусот на броење завршува
Tаб. 5-5. Табела на вистинитост на по десет импулси, кога повторно се
декадeн бројач воспоставува почетната состојба
QAQBQCQD=0000.
При синтезата на декадниот NBCD бројач ќе претпоставиме дека на
располагање стојат Т МЅ флип-флопови. Имајќи ги во предвид состојбите на
флип-флопoвите по секој изброен импулс и при тоа користејќи ја табелата на
екситација на Т флип-флопoт (т.3-10) треба да се пополни табелата на
вистинитост таб. 5-5. Врз нејзина основа се продолжува со минимизација на секој
од Т-влезовите на употребените флип-флопoви.
За минимизација на секоја функција, поточно влезна променлива на флип-
флоповите се применува Карноовата метода која е прикажана на сл. 5-14 а), б),
в) и г). Во процесот на минимизација се претпоставува дека шесте нелегални
состојби 10, 11, 12, 13, 14 и 15 нема да настапат, заради што вредноста на било
која функција за наведените комбинации е неважна. Таа може да се смета или за
0 или за 1 и како таква да се маркира со „x”.

TD C TC C
0 4 12 8 0 4 12 8
x x
1 5 13 9 1 5 13 9
x 1 x
A 3 7 15 11
A 3 7 15 11
1 x x 1 1 x x
2 6 14 10 B 2 6 14 10 B
x x x x
a) D D б)
Сл. 5-14. Минимизација со метод на Карноови карти кај синхрон декаден бројач
БРОЈАЧИ 149

TB C TA C
0 4 12 8 0 4 12 8
x 1 1 x 1
1 5 13 9 1 5 13 9
1 1 x 1 1 x 1
A 3 7 15 11
A 3 7 15 11
1 1 x x 1 1 x x
2 6 14 10 B 2 6 14 10 B
x x 1 1 x x
в) D D г)
Сл. 5-14. Минимизација со метод на Карноови карти кај синхрон декаден бројач

По спроведената минимизација за влезовите на мемориските елементи се


добиваат следниве логички равенки:
 за флип-флопот А: TA=1,
 за флип-флопот B: TB= AD,
 за флип-флопот C: TC=AB, и (5-12)
 за флип-флопот D: TD=ABC+AD.

1
T Q T Q T Q Q
T
Ck Q Ck Q Ck Q Ck Q
A B C D

PI

Сл. 5-15. Логичка шема на декаден NBCD бројач


Со равенките 5-12 практично се одредени типот на логички кола и начинот
на нивното за поврзување со флип-флопoвите, од каде што произлегува и
логичката шема на NBCD бројачот прикажана на сл. 5-15.
1 2 3 4 5 6 7 8 9 10
PI
t
A
t
B
t
C
t
D
t
Сл. 5-16. Временски дијаграми на декаден NBCD бројач
150 БРОЈАЧИ

Покрај логичката структура од сл. 5-15, заради подобро разбирање на


процесот на работа, на сл. 5-16 се претставени и временските дијаграми на
декадниот бројач. Од нив се гледа дека сè до 10-иот импулс бројачот работи како
бинарен, а степените А, B, C се однесуваат како Т флип-флопoви во
префрлувачки режим на работа: степенот А реагира на секој импулс, степенот B
на секој втор, а степенот C на секој четврт. Седмиот импулс ги сетира првите три
флип-флопови, додека осмиот импулс го сетира последниот флип-флоп D и
истовремено ги ресетира останатите А, B и C. По деветтиот импулс флип-
флопoвите B и C ќе бидат ресетирани, а сетирани се само првиот и последниот
степен, А и D. Десеттиот импулс воспоставува почетна состојба на сите флип-
флопoви (A, B, C, D = 0000, т.е. QA=0, QB=0, QC=0 и QD=0) со што завршува еден
циклус на броење.

5.6. КРУЖНИ БРОЈАЧИ


Логичката структура на кружните бројачи потсетува на поместувачките
регистри бидејќи е составена од D тип флип-флопови. Ова е суштинска разлика
во однос на бинарните бројачи што до сега ги анализиравме бидејќи тие главно
се базираа на Т флип-флоповите, или на ЈК флип-флопови поврзани како Т.
Покрај наведеното, кај кружните бројачи се работи за едноставна бројачка
мрежа која е затворена со повратна врска од излезот на влезот и тоа без
употреба на логички кола. Ова е уште една разлика во однос на
конвенционалните бројачи чии флип-флопови беа каскадно спрегнати (еден по
друг) и имаа отворен или слободен излез со евентуална примена на одредени
логички кола за меѓусебно поврзување и/или реализација на повратни врски што
зависеше од основата (модулот) на броење.
Дополнителна разлика е и основата на броење во однос на бројот на
употребени мемориски елементи (n). Имено, кога се употребуваат n флип-
флопови за градба на бинарен бројач, неговата основа изнесува М=М0=2n, додека
кај кружните бројачи модулот ќе биде n или 2n, т.е. М=n или М=2n. Ова од една
страна претставува недостаток на кружните бројачи во однос на бинарните,
поради фактот што порастот на модулот кај кружните бројачи предизвикува брзо
зголемување на бројот на флип-флопови n. Меѓутоа, од друга страна, кружните
бројачи имаат предност во поедноставниот начин на поврзување и принципот на
работа и броење.

5.6.1. КРУЖЕН БРОЈАЧ СО ОСНОВА 5


Како еден пример за кружен бројач со основа n ќе го анализираме
квинарниот бројач кој има основа на броење 5 (М=n=5) и користи 5 флип-
флопови (n=5) од D тип. Во табела таб. 5-6 се прикажани сите состојби на
бројачот (излезните комбинации на флип-флоповите) со соодветните индекси во
декадна нотација, како и комбинационите вредности во бинарен облик и
екситационите вредности на D влезовите. Врз основа на таб. 5-6, на сл. 5-17 е
нацртана логичката шема на оваа бројачка мрежа.
БРОЈАЧИ 151

Si Ki EDCBA DE DD DC DB DA
0 1 00001 00010
1 2 00010 00100
2 4 00100 01000
3 8 01000 10000
4 16 10000 00001
0 1 00001
Tаб. 5-6. Комбинациона табела на кружен квинарен
бројач

A B C D E
D Q D Q D Q D Q D Q
Ck Ck Ck Ck Ck
Q Q Q Q Q

PI

Сл. 5-17. Логичка шема на квинарен кружен бројач


1 2 3 4 5
PI
t
A
t
B
t
C
t
D
t
E
t
Сл. 5-18. Временски дијаграми на квинарен кружен бројач

За влезните функции на флип-флоповите можат да се напишат следниве


равенки:
DA=EPI, DB=API, DC=BPI, DD=CPI и DE=DPI. (5-13)
каде што A, B, C, D и E се излезите на флип-флоповите QA, QB, Qc, QD и QE .
152 БРОЈАЧИ

Временските дијаграми со кои попрегледно може да се објасни функци-


онирањето на бројачот се дадени на сл. 5-18. Во почетната состојба на бројачот e
сетиран само првиот степен (А=1), додека сите други степени се ресетирани
(B=C=D=E=0). Кога ќе се доведе првиот бројачки импулс паралелно на сите
влезови за такт, тој ја менува состојбата на првиот и вториот флип-флоп: на А и
на B. Имено, влезот D на флип-флопот А што е приклучен на излезот од
последниот флип-флоп E се наоѓа на ниско ниво (DA=QE=0), додека излезот на А
што е приклучен на влезот D на B е на високо ниво (QA=DB=1). Заради ова се
ресетира флип-флопот А, а се сетира B. Со донесување на вториот импулс се
ресетира степенот B, а се сетира само степенот C, додека останатите излези и
понатаму се на ниско ниво.
Процесот се повторува и со секој такт сигнал високото ниво што почетно
беше присутно на излезот од првиот флип-флоп А последователно се пренесува
кон влезовите на следните флип-флопoви B, C, D и E. Заради повратната врска од
последниот флип-флоп (Е) до првиот (А), петтиот импулс ќе го сетира повторно
флип-флопот А, а ќе го ресетира Е, со што ќе се заврши циклусот на броење и ќе
се воспостави почетната состојба.
Кружен бројач по модул n може да се реализира и со примена на ЈК или SR
флип-флопови, така што излезот Q од секој претходен флип-флоп ќе оди на
влезот S, односно J од секој следен флип-флоп, додека излезот Q ќе треба да се
приклучи на влезот R, односно K. Ваквиот начин на поврзување ќе се примени и
од последниот до првиот флип-флоп: од Е на А. Практично, станува збор за
истата конфигурација на D флип-флопови, бидејќи ваквото поврзување всушност
е трансформација на ЈК или SR флип-флоповите во флип-флопови од D тип.

5.6.2. ДЕКАДЕН КРУЖЕН БРОЈАЧ


Кружниот бројач со модул 2n, од конструктивна гледна точка претставува
модификација на бројачот со основа n. Имено, промената е во формирање на
повратна врска од комплементарниот, а не од директниот излез на последниот
флип-флоп до влезот D на првиот степен. Кружниот бројач со основа 2n најчесто
се сретнува под името Џонсонов бројач, но и како кружен бројач со вкрстена
повратна врска.
Како еден пример на бројач со модул 2n ќе го претставиме кружниот бројач
од слика сл. 5-19 чиј модул е 10 (М=10). Се работи за декаден бројач, составен од
5 флип-флопови (n=5, M=2n=2x5=10) од D тип кои се поврзуваат слично како кај
бројачот по модул 5 од сл. 5-17, со единствена разлика во тоа што на влезот D во
првиот флип-флоп А се поврзува комплементарниот, а не директниот излез од
последниот флип-флоп Е.
БРОЈАЧИ 153

A B C D E
D Q D Q D Q D Q D Q
Ck Ck Ck Ck Ck
Q Q Q Q Q
PI

Сл. 5-19. Лoгичка шема на декаден кружен бројач со D флип-флопoви


Принципот на работа на Џонсоновиот бројач ќе го објасниме преку неговите
временски дијаграми прикажани на сл. 5-20. На почетокот сите флип-флопoви се
ресетирани па бројачот се наоѓа во ресетирана состојба: ABCDE=0000, т.е.
QAQBQCQDQE=00000. Доведувањето на првиот бројачки импулс ќе го сетира првиот
флип-флоп А бидејќи само на неговиот влез е присутно високо ниво кое доаѓа од
комплементарниот излез на последниот степен (DA= QE ), додека останатите флип-
флопoви остануваат ресетирани. Вториот импулс не ја менува состојбата на А,
неговиот излез останува висок, а истовремено го сетира и B. Ваквиот начин на
работа, т.е. последователно сетирање на секој од флип-флопoвите C, D, Е
продолжува сè до шестиот импулс кога се ресетира флип-флопот А, а сите други
флип-флопoви се сетирани. Сега почнува последователно ресетирање на секој од
флип-флопoвите, повторно почнувајќи од А, па преку B, C и D до Е, што се
случува со појавата на секој бројачки импулс, и тоа сè до десеттиот, кога
повторно доаѓа до воспоставување на почетната состојба ABCDE=0000.
1 2 3 4 5 6 7 8 9 10 11
PI
t
A
t
B
t
C
t
D
t
E
t
Сл. 5-20. Временски дијаграми на кружен декаден бројач

Преку комбинационата табела таб. 5-7 дополнително се разјаснува работата


на бројачот. Во неа редоследно се презентирани сите 10 состојби во кои може да
се најде овој бројач.
154 БРОЈАЧИ

Si Ki EDCBA DE DD DC DB DA
0 0 00000 00001
1 1 00001 00011
2 3 00011 00111
3 7 00111 01111
4 15 01111 11111
5 31 11111 11110
6 30 11110 11100
7 28 11100 11000
8 24 11000 10000
9 16 10000 00000
0 0 00000
Tаб. 5-7. Табела со комбинациони вредности на кружен декаден бројач

За конструкција на ваков бројач можат да се употребат ЈК или SR флип-


флопoви ако се трансформираат во D. Имено, секој директен излез од
претходниот флип-флоп ќе треба да се приклучи на влезот Ј од следниот флип-
флоп, комплементарниот излез ќе се поврзи на влезот К (J=Q, K= Q ), додека
врската од последниот до првиот флип-флоп ќе се оствари така што директниот
излез на последниот флип-флоп ќе се приклучи на влезот К на првиот, а
комплементарниот излез на влезот Ј (JA= QE , KA=QE), според логичкиот блок-
дијаграм претставен на сл. 5-21.

J Q J Q J Q J Q J Q
Ck A Ck B Ck C Ck D Ck E
K Q K Q K Q K Q K Q

PI

Сл. 5-21. Лoгичка шема на декаден кружен бројач со ЈК флип-флопoви


БРОЈАЧИ 155

ПРАШАЊА И ЗАДАЧИ ЗА ПОВТОРУВАЊЕ


5-1. Која е основната намена на бројачите? Кои се основните градбени елементи
што ја формираат структурата на бројачот?
5-2. Кои од наведените дигитални компоненти може да се користат како основен
градбен елемент на бројачите; а) флип-флопови управувани со работ на такт-
сигналот, б) MS флип-флопови; в) леч кола? Објасни го одговорот.
5-3. Што претставува една состојба на бројачот?
5-4. Каква е врската помеѓу бројот на употребени флип-флопови во структурата
на бројачот и бројот на состојби во кои тој може да се најде?
5-5. Што претставува основа на броење (модул) на бројач? Што е бројачки
циклус? Што е капацитет на бројачот? Како се тие поврзани со бројот на
употребени флип-флопови во структурата на бројачот и неговата основа?
5-6. Која е а) основата на броење б) капацитетот на бројач составен од 1) n=2, 2)
n=3, 3) n=4 флип-флопови?
5-7. Како се делат бројачите во однос на основата (модулот) на броење?
5-8. Кои типови флип-флопови најчесто се користат за конфигурирање на бројач?
Во каков режим на работа? Како се поврзуваат?
5-9. Дали бројачите можат да се користат како делители на фреквенција?
Образложи го одговорот!
5-10. Нацртај блок шема на бројач со а) бинарна б) декадна индикација.
5-11. Која е разликата помеѓу бинарните бројачи и оние со небинарна основа?
5-12. Како се делат бројачите според насоката на броење?
5-13. Какви бројачи постојат според начинот на приклучување на импулси?
5-14. Кои се разликите помеѓу асинхроните (паралелните) и синхроните
(сериските) бројачи?
5-15. Кои се состојбите низ кои минува бинарен бројач реализиран со а) n=2, б)
n=3, в) n=4 флип-флопови? Кои се тие комбинации, во бинарно и децимално
означување, и по кој редослед се повторуваат?
5-16. Што опфаќа анализата на даден бројач? Што треба да е познато, а што се
бара?
5-17. Што треба да е познато за да се проектира одреден бројач?
5-18. Нека е даден бинарен асинхрон бројач реализиран со: а) n=2, б) n=3, в)
n=4, г) n=5 флип-флопови. Одреди ги: 1) модулот (М0), 2) капацитетот (NК), 3)
почетната и 4) крајната состојба на овој бројач.
156 БРОЈАЧИ

5-19. Нацртај логичка шема, комбинациона табела и временски дијаграми за


бинарен асинхрон бројач со основа а) М0=4, б) М0=8, в) М0=16 реализиран со 1)
Т, 2) ЈК, 3) SR MS (master - slave) флип-флопови што имаат директен влез за
ресетирање Rd .
5-20. Даден е асинхрон бинарен бројач по модул а) М0=4, б) М0=8 и в) М0=16 што
се напојува со извор +Vcc=5V и е побуден со низа на импулси со периода
TP=1[µsec]. Нацртај ги временските дијаграми на бројачот и пресметај ја
фреквенцијата на влезните импулси (fP), како и фреквенциите на импулсите што
се добиваат на излезот од првиот (f1), вториот (f2), ... итн., последниот флип-
флоп.
5-21. Нацртај логичка шема, комбинациона табела и временски дијаграми за
бинарен асинхрон бројач наназад по модул а) М0=4, б) М0=8, в) М0=16 со
примена на 1) Т, 2) ЈК, 3) SR MS флип-флопови што имаат директен влез за
ресетирање Rd .
5-22. Која е главната карактеристика на двонасочниот бројач? Кој е основниот
принцип што овозможува две насоки на броење кај билатералниот бројач?
5-23. Ако претпоставиш дека на располагање ти стојат а) n=3; б) n=4; в) n=5
флип-флопови, определи ги сите можни модули на бројачи со небинарнa основа
MM0.
5-24. Која е основната разлика помеѓу легална (дозволена) и илегална
(недозволена, забранета) состојба кај бројачите со произволна основа?
5-25. Посебно наведи ги и објасни ги, чекорите од постапката (процедурата) за
добивање на асинхрони небинарни бројачи со произволна основа.
5-26. Проектирај асинхрон бројач со произволна основа М= а) 5; б) 6; в) 7; г) 9;
д) 10; ѓ) 11; е) 6; ж) 13; з) 14; ѕ) 15 ако на располагање ти стојат 1) Т, 2) ЈК MS
флип-флопови со влез за директно ресетирање Rd . Нацртај ги неговата логичка
структура, временските дијаграми и комбинационата табела.
5-27. Во што меѓусебно се разликуваат асинхроните и синхроните (редните и
паралелните) бројачи?
5-28. Нацртај логичка шема, табела на вистинитост и временски дијаграми за
бинарен синхрон бројач со основа а) М0=4, б) М0=8 и в) М0=16 со примена на МS
1) Т, 2) ЈК флип-флопови што имаат директен влез за ресетирање Rd . На
располагање ти стојат И кола со произволен број влезови.
5-29. Објасни го принципот на проектирање синхрони бројачи со произволен
модул ММ0.
5-30. Проектирај синхрон бројач со основа а) 5, б) 6, в) 9, г) 10, д) 11, ѓ) 6, ѓ) 14
со примена на 1) ЈК, 2) Т МS флип-флопови. Во процесот на решавање
претпостави дека 1) бројачот никогаш нема да се најде во некоја илегална
состојба; 2) ако се најде во илегална состојба, треба да премине во почетната
(ресетирана) состојба.
БРОЈАЧИ 157

5-31. Кој е основниот начин на поврзување на флип-флоповите во формирањето


на логичката структура кај кружните бројачи?
5-32. Каква врска постои помеѓу бројот на употребени флип-флопови и основата
на броење (модулот) на кружниот бројач реализиран со нив?
5-33. Кои се разликите помеѓу асинхроните и синхроните бројачи во однос на
кружните?
5-34. Ако на располагање ти стојат а) n=4, б) n=5, в) n=6 флип-флопови,
одговори какви кружни бројачи во поглед на основата на броење можат да се
реализираат?
5-35. Анализирај го принципот на работа на квинарниот кружен бројач.
5-36. Нацртај логичка шема, табела на вистинитост и временски дијаграми за
кружен бројач со основа а) М=4, б) М=5, в) М=6 со примена на 1) D, 2) ЈК, 3) SR
МS флип-флопови. Објасни го принципот на работа.
5-37. Анализирај го принципот на работа на декадниот кружен бројач.
5-38. Нацртај логичка шема, табела на вистинитост и временски дијаграми за
кружен бројач со основа а) М=8, б) М=10, в) М=6 со примена на 1) D, 2) ЈК, 3) SR
МS флип-флопови. Објасни го принципот на работа.
158 БРОЈАЧИ
6.
АРИТМЕТИЧКИ
КОЛА
По изучувањето на оваа тематска целина
 ќе се запознаете со примената на комбинациските и
секвенцијалните компоненти за реализација на кола за
множење и делење на бинарни броеви;
 ќе можете да го објасните принципот на работа на колата за
множење и делење.
160 АРИТМЕТИЧКИ КОЛА
АРИТМЕТИЧКИ КОЛА 161

ВОВЕД
Аритметичките операции множење и делење играат значајна улога во
современата обработка на податоци заради што е многу важно истите да бидат
хардверски реализирани во склоп на процесорот.
Знаејќи дека множењето претставува повеќекратно собирање, додека
делењето може да се сведе на повеќекратно одземање, јасно е дека дигиталните
кола кои ги реализираат операциите множење и делење ќе бидат посложени, а
заради тоа покомплексна ќе биде и нивната анализа. Дополниелно, посложената
логичка структура ќе резултира и со доста поголемо време на извршување во
однос на колата со кои се реализираат операциите собирање и одземање.
Заедничка хардверската поддршка на еден процесор како за множење, така
и за делење, се колата за множење, кои ќе ги именуваме како множачи, и колата
за делење кои ќе ги насловуваме како делачи. Во нивната логичка структура ќе
сретнуваме најразлични дигитални, комбинациски и/или секвенцијални, елементи
и компоненти. За нивната градба се користат многубројни конфигурации со
примена на еднобитни полусобирачи и/или целосни собирачи, повеќе-битни
паралелни собирачи и одземачи, логички И-кола, како и поместувачки регистри
чија содржина може да се поместува бит-по-бит во десно или во лево. Една
дигитална компонента која селективно може да ги извршува операциите
собирање или одземање на повеќебитни броеви е секако аритметичко-логичката
единица (АЛЕ). Наведениот хардвер се надополнува и со контролна логика која ќе
донесува одлука за тоа кои операции треба да се превземаат во секој нареден
чекор од постапката за множење, односно делење.
Во врска со наведеното, постојат многубројни изведби на колата за
множење и оние за делење, но во понатамошното излагање, заради
поедноставување и со тоа задржување на соодветното ниво на излагање, ќе ги
претставиме и ќе го објасниме принципот на работа и алгоритмите на неколку
основни множачи и делачи на цели позитивни броеви.

(I) КОЛА ЗА МНОЖЕЊЕ (МНОЖАЧИ)


Постојат голем број алгоритми за аритметичко множење во бинарниот
систем според коишто се развиени најразлични изведби на кола за множење што
спаѓаат во една прилично голема теоретска проблематика во која истите се
презентирани и анализирани во поголеми детали, а одредени нивни реализации
често се сретнуваат и во практиката. Секое од овие кола се базира на сопствена
“филозофија“ од која зависи брзината со која се изведува множењето
(перформансата на колото) и комплексноста на логичката мрежа со која тоа се
реализира (цената на чинење).
Во продолжение ќе ги обработиме множачите на цели позитивни броеви со
низи од собирачи, како и секвенцијалните множачки кола кои користат регистри
како два модели кои се најмногу презентирани во литературата.
162 АРИТМЕТИЧКИ КОЛА

6.1. МНОЖЕЊЕ НА ЦЕЛИ БРОЕВИ ВО БИНАРНИОТ СИСТЕМ


При аритметичкото множење на два бинарни броја секој од нив има
одредена должина изразена во битови. Така на пр. можеме да земеме дека се
дадени два цели позитивни броеви кои треба да ги помножиме. Првиот множител
A нека има должина од m-битови, додека вториот број B нека претставува
бинарен број долг n-битови. Од броевите коишто се множат првиот број A ќе го
нарекуваме множеник, додека вториот број B ќе го именуваме со множител.
Резултатот од множењето ќе биде нивниот производ P.
Аритметичкото множење на бинарните броеви го применува познатиот
принцип од декадното множење на два броеви со повеќе цифри: множење на
секоја цифра од множителот со множеникот и со тоа генерирање на парцијални
производи, потоа нивно поместување во лево за по една цифра и собирање на
тие парцијални производи заради добивање на конечниот производ.
Постапката, во суштина, е иста и кога се множат броеви во бинарниот
систем. Имено, прво се множи битот со најмала тежина (b0, LSb) од множителот B
со множеникот A и се добива првиот парцијален производ. Потоа првиот бит лево
од најмалку значајниот бит LSb на множителот (b1) пак се множи со множеникот A
и добиениот втор парцијален производ се запишува под првиот, но при тоа
поместен во лево за едно место. После ова се зема следниот бит од множителот
(b2) и тој повторно се множи со множеникот A, со што се добива трет парцијален
производ кој се запишува под вториот поместен во лево за уште едно место. Оваа
процдура продолжува сè додека не се добие последниот парцијален производ
како резултат од множењето на најмногу значајниот бит кој има најголема тежина
(MSb, bn-1) од множителот со множеникот A. Бараниот производ P ќе биде збир од
сите парцијални производи генерирани во оваа постапка кој максимално може да
има должина од q=(m+n) битови.
Во продолжение, на следната слика 6-1. е дадена постапката за множење
на два позитивни цели броеви со должина од по 4 бита (=1 нибл) во општ случај.

Сл. 6-1. Mножење на два четирибитни позитивни цели броеви


АРИТМЕТИЧКИ КОЛА 163

Пример 6-1 Заради осветлување на претходно наведената постапка ќе


разгледаме еден конкретен пример 6-1 за множење „со рака“ на два бинарни
броеви со еднаква должина од по четири бита. Така, нека ги земеме четири
битните броеви A и B што значи дека нивната должина m и n изразена во битови
е еднаква и изнесува по еден нибл: m=n=4. Поконкретно, нека се дадени
броевите A=a3a2a1a0=1101(2) или 13(10) како множеник, и B=b3b2b1b0=1001(2) или
9(10) како множител, чие множење ќе резултира со производот
P=p7p6p5p4p3p2p1p0= =1110101(2) или P=117(10).

A= dA=m Множеник (1310): 1 1 0 1


B= dB=n Множител (910): х 1 0 0 1
P= dP=q Производ (11710): 0 1 1 1 0 1 0 1
Пр.6-1. Множење „со рака“ на два бинарни броеви со еднаква должина

Пред да извршиме анализа на примерот, најкратко да се потсетиме на


правилата и компонентите со кои се извршува ова аритметичко множење во
бинарниот систем. Станува збор за последователна примена на операциите
логичко множење, т.е. операцијата И со два бита, како и операцијата
аритметичко собирање на два бита без, или со пренос од претходното ниво, кои
ги изучивме во темата 2. Булова алгебра и логички кола.
1) Операцијата И, т.е. логичко множење бит-со-бит се реализира според
следните правила:
 Ако барем еден од битовите множители е 0, резултатот е 0 и
 Само ако и двата битови кои што се множат се 1, резултатот ќе биде 1.
Логичкото множење на бит-со-бит практично се изведува со логичко И-коло
со два влеза. Таблицата на вистинитост и логичкиот симбол на И-колото се
прикажани на слика 6-2.

Сл.6-2. Таблица на вистинитост и симбол на логичко И-коло

2) Аритметичкото собирање на два бита се изведува со примена на едно-


битни полу-собирачи кога нема претходен пренос, и целосни собирачи кога има
пренос од претходното ниво. Нивните симболи и таблици на вистинитост,
последователно се прикажани на сл. 6-3 и сл. 6-4.
164 АРИТМЕТИЧКИ КОЛА

Сл.6-3. а) б) Симбол и таблица на вистинитост на полу-собирач

Сл.6-4. а) б) Симбол и таблица на вистинитост на целосен собирач


Што се однесува до примерот пр. 6-1, како и сликовитиот приказ даден на
сл. 6-1, со кои ја презентиравме постапката на аритметичко множење, уште на
прв поглед веднаш се воочува фактот дека бројот на битови на производот (P)
т.е. должината на производот q во битови е многу поголема од бројот на битови
како на множеникот (A), така и на множителот (B). Всушност, должината на
производот q, како резултат на множењето на m-битен множеник и n-битен
множител најмногу може да изнесува (m+n). Изведувајќи го аритметичкото
множење може да заклучиме и тоа дека бројот на генерирани парцијални
производи е еднаков со бројот на битови n на множителот (B), додека должината
на секој од нив е еднаква со бројот на битови m на множеникот (A). Јасно, при
ова како последица, вкупниот број на генерирани поединечни производи бит-по-
бит ќе изнесува m x n. За нашиот пример 6-1, кога и двата множители имаат
еднаква должина m=n=4 можеме да забележиме дека добивме n=4 парцијални
производи, секој од нив се должина од по m=4 бита, или вкупно mxn = nxn = n2 =
4х4 = 16 поединечни бит-по-бит производи и финален производ P кој максимално
може да има должина q = n + m = n + n = 2n = 4 + 4 = 8 бита.
Последниот факт дека производот може да има најмногу q = (n + m) бита
наједноставно може да се потврди ако земеме да ги помножиме двата најголеми
позитивни 4-битни цели позитивни броеви, а тоа значи и како множеник и како
множител да го земеме бројот 15(10) или 1111(2). Производот ќе биде 15 х 15 =
225, или во бинарниот систем 8-битниот број 1110001 што е најголем можен број
за овој случај. Слично, ако множевме два бајти, секој од множителите A и B ќе
беше долг oд по m=n=8 бита, ќе добиевме n=8-парцијални производи, секој со по
m=8 поединечни производи или вкупно m x n=n x n=8 х 8=64, додека производот
P ќе беше дво-бајтен број со должина q = m + n =2 x n = 2 х 8 = 16 бита.
АРИТМЕТИЧКИ КОЛА 165

6.2. МНОЖАЧ СО НИЗИ ОД СОБИРАЧИ


Колото за множење или множачот на бинарни броеви според овој принцип
наречен множач со низи од собирачи (анг. Array Multiplier) користи поголем број
1) И-логички кола со два влеза кои ги реализираат И-операциите (логичко
множење) помеѓу поединечните битови на множеникот и множителот, и
2) низи од собирачи со кои потоа последователно се собираат вака добиените
парцијални производи.
Овој множач името го добил заради подреденоста на компонентите во
редови кои се наоѓаат еден под друг така што секој нов ред е поместен во лево за
по едно место.

6.2.1. Множач со низи од собирачи со пренесување на преносите


Множачот со низи кој уште се нарекува и едноставен комбинациски
множач, (анг. Array multiplier = simple combinational multiplier) претставува коло за
множење со низи од собирачи со (последователно) пренесување на преносите,
кое лесно се препознава по својата регуларна структура. Имено, неговата логичка
мрежа е таква што е составена од повеќе низи на целосни собирачи подредени во
редици едни под други.
Слично на добро познатата процедура за аритметичко множење во која се
применува методот на собирање и поместување за едно место во лево, во која се
добиваат парцијални производи кои на крај се собираат, така и овој множач со
низи се базира на неа. Имено, секој парцијален меѓу–производ се добива со
множење на еден бит од множителот B (bj) со секој бит на множеникот A (ai). Од
тука произлегува дека секој парцијален производ содржи повеќе поединечни бит-
со-бит производи кои се реализираат со посебен целосен собирач на чиј еден
влез се јавува логичко И-коло според слика 6-5. Дадената логичка шема може да
ја гледаме како посебна, единечна ќелија за множење.

Сл. 6-5. Логичка шема на единечна ќелија за аритметичко множење


Бројот на парцијалните производи е еднаков со бројот на битови на
множителот т.е. со неговата должина во битови. Вака добиените парцијални
производи се поместуваат во лево, секој од нив за по еден бит, соодветно на
редоследот на битови во множителот, и потоа се собираат.
166 АРИТМЕТИЧКИ КОЛА

Имајќи во вид дека вообичаено процесорот обработува бинарни податоци


со еднаква должина тоа значи дека и множеникот (A) и множителот (B) ќе имаат
должина од n-битови, додека производот ќе има должина од q=2n-битови
(q=n+n=2n). За ваквата реализација на едноставниот кобинациски множач, чија
логичка мрежа е прикажана на слика 6-6, за која знаеме дека множеникот B има
должина n-бита, ќе има потреба од n-редици со целосни собирачи. При тоа,
бидејќи и множителот A е со должина од n-бита, во секоја редица ќе има еднаков
број од n-целосни собирачи. Така, вкупниот број на поединечни производи, а со
тоа и на ќелии за множење, ќе биде n х n = n2.

Сл. 6-6. Логичка мрежа на множачот со пренесување на преносите


На следните две слики (слика 6-7 и слика 6-8) се дадени малку поинакви
логички структури на множачот со последователно пренесување на преносите при
што повторно е претпоставено множење на два четири битни бинарни броеви. Кај
овие конфигурации со трапезоидна форма собирачите се издвоени од логичките
И-кола. Покрај тоа, од сликите може да се примети дека во првиот – најгорниот
ред кој го генерира првиот парцијален производ применува само И-кола наместо
уште еден ред на целосни собирачи. Ова е возможно заради тоа што на првиот
ред не му претходи друг парцијален производ и заради тоа нема потреба од
собирање, туку само од операцијата И за логичко множење, според 6-9 а).
Дополнително, во литературата може да се сретнат изведби на слика 6-7 во
кои секој целосен собирач чиј влез од претходен пренос е 0 (cin=0) е заменет со
полусобирач како на слика 6-9 б).

а) кога cin=0. б) кога и cin=0 и b=0.


Сл.6-9. Трансформациски упростувања на целосниот собирач
АРИТМЕТИЧКИ КОЛА 167

На сликата 6-7 забележуваме дека множеникот е означен со X=x3x2x1x0,


множителот со Y=y3y2y1y0, а производот со P=p7p6p5p4p3p2p1p0. Од друга
страна, сликата 6-8 прикажува една реализација на овој едноставен 4-битен
комбинациски множач со примена на логички компоненти за генерирање на
парцијалните производи, а не поединечни целосни собирачи. Станува збор за 4-
битни паралелни собирачи со последователно пренесување на преносите (анг.
CRA/RCA=CPA).

Сл.6-7. Модификувана логичка структура на едноставен кобинациски множач


Кај сите три слики (слика 6-7, 6-8 и 6-9) се гледа дека за реализација на
парцијалните производи се применува собирање со последователно пренесување
на преносите (анг. ripple carry adder, carry propagate adder) бидејќи преносите се
пренесуваат последователно (хоризонатално) во рамките на секој од парцијални-
те производи.
168 АРИТМЕТИЧКИ КОЛА

Заради ова секој нов парцијален производ зависи од претходниот, вклучи-


телно и од претходниот пренос добиен со собирање на двата највисоки бита на
множеникот и множителот, но со преносот од претходните позиции, кој се чека
последователно да биде добиен после n-собирања. Токму заради ова, ваквиот
множач, може да има долго време на извршување на множењето. Имено, може да
се случи, кога станува збор за големи броеви, последниот највисок бит од
производот да зависи од првиот пренос во првиот парцијален производ.

Сл.6-8. Логичка структура на едноставен кобинациски множач


со паралелни собирачи

Забрзување на процесот на множење може да се постигне со една


модификација на презентираниот множач во која како низи ќе се применуваат
собирачи со запамтување на преносите (анг. CSA), а не низи од собирачи со
(последователно) пренесување на преносите како сега.
АРИТМЕТИЧКИ КОЛА 169

6.2.2. МНОЖАЧ СО НИЗИ ОД СОБИРАЧИ СО ЗАПАМТУВАЊЕ НА


ПРЕНОСИТЕ
На следната слика 6-10 е прикажана логичката структура на колото за
множење со низи од собирачи со запамтување (проследување) или т.н.
конвенционален множач со низи од собирачи (carry save multiplier = Conventional
array multiplier). И оваа слика, како и претходните, се однесува на множење на
два четири битни бинарни броеви: множеникот A=a3a2a1a0 и множителот
B=b3b2b1b0 чиј резултат ќе биде производот P=p7p6p5p4p3p2p1p0. Слично како
и кај едноставниот множач со низи од собирачи, така и кај оваа логичка мрежа,
влезовите во целосните собирачи се поединечните бит-со-бит логички производи
кои се добиени со помош на И-логички кола, додека собирачите се организирани
во низи од повеќе последователни редици што зависи од бројот на битови на
множителот В.
Сепак, вака реализираната логичка мрежа е очигледно различна од
структурата на претходниот едноставен множач со низи од собирачи. Имено, во
оваа конфигурација преносите од секој парцијален производ вертикално се
проследуваат до следната низа, и се запамтуваат до последната низа на
собирачи, а НЕ се пренесуваат последователно (хоризонатално) во рамките на тој
парцијален производ. Токму заради ова дадената логичка мрежа на слика 6-10
содржи уште еден ред на собирачи повеќе кој ги собира последните преноси за да
го даде крајниот производ. Ваквата реализација применува n-редици на собирачи
поврзани со вертикално проследување на преносите и плус еден ред собирачи
поврзани со хоризонтално пренесување на преносите.

Сл. 6-10. Логичка мрежа на множачот со запамтување на преносите


170 АРИТМЕТИЧКИ КОЛА

На сликата 6-11 е презентирана модификувана логичка структура на


множачот со запамтување (проследување) на преносите слична со слика 6-7 и
слика 6-8 бидејќи има трапезоидален облик, при што како пример пак е земено
множење во општ случај на два броеви долги по еден нибл, при што множеникот
е означен со X=x3x2x1x0, множителот со Y=y3y2y1y0, додека производот е
P=p7p6p5p4p3p2p1p0.

Сл. 6-11. Модификувана логичка структура на множачот со запамтување на


преносите
АРИТМЕТИЧКИ КОЛА 171

Оваа конфигурација е слична со онаа на едноставниот комбинациски


множач од со слика 6-7, кај која што логичките И-кола се издвоени од собирачите
и каде што првиот парцијален производ се добива само со нивна примена. Покрај
тоа, овде во секој ред, наместо целосен собирач за највисоката позиција која ја
одредува најголемата тежина на секој парцијален производ се користи логичко И-
коло со што бројот на собирачи е намален за по еден во редица.
И во оваа логичка шема, како и во претходната, секој целосен собирач чиј
влез од претходен пренос е 0 (cin=0) може да се замени со полусобирач.
Како што може да се види од последната слика, за секоја низа од собирачи,
преносите генерирани од секој претходен ред од собирачите „дијагонално“ се
проследуваат до следниот ред на собирачи. Сите преноси и збирови од
последното – највисокото тежинско ниво се здружени во последната најниска
низа на целосни собирачи поврзани со пренесување, од кои како резултат се
добиваат и највисоките битови на производот.
6.3. СЕКВЕНЦИЈАЛНО МНОЖЕЊЕ СО ПОМЕСТУВАЊЕ И
СОБИРАЊЕ
Во досегашното излагање се запознавме со различни логички мрежи на
кола за аритметичко множење со низи од собирачи и воедно ги анализиравме
принципите според кои овие множачи функционираат. Во продолжение ќе го
разработиме т.н. множач со поместување и собирање или како што уште се вика
коло за секвенцијално множење (анг. Shift and Add Multiplier, Sequential
Multiplication).
Но, пред да започнеме со анализата, да се потсетиме на постапката на
множење на два цели позитивни броеви, всушност на алгоритмот за множење
што го имаме научено уште од основно училиште. Имено, кога треба да
помножиме еден број A – множеник, со друг број B – множител, ги земаме
цифрите на множителот B една по една од десно кон лево, при тоа множејќи го
множеникот A со секоја цифра на множителот B. На овој начин добиваме онолку
парцијални меѓу-производи колку што има цифри множителот B, при што секој од
нив содржи онолку поединечни производи колку што има цифри множеникот A.
Притоа секој нов парцијален производ го поместуваме за една цифра во
лево во однос на претходниот. Потоа сите вака генерирани парцијални производи
ги собираме добивајќи го крајниот резулатат – производот на двата дадени
броеви.
Поконкретно, кога станува збор за аритметичко множење во бинарниот
систем, постојат само две можности, а тоа се битовите 0 или 1 како единствени
две цифри со кои тој располага. Токму само заради овие два избора, секој чекор
изведен при множењето кога се генерираат парцијалните производи е доста
едноставен:
 Кога некој бит bi од множителот B е 1 (bi=1) и со него се множи множеникот A
на соодветното место како парцијален производ се запишува неговата
“копија“, т.е. самиот множеник A, бидејќи 1 x множеник A = множеник A, или
 Кога битот bi од множителот B е 0 (bi=0) со кој се множи множеникот A на
соодветното место како парцијален производ се запишува 0 бидејќи 0 x
множеник A = 0.
172 АРИТМЕТИЧКИ КОЛА

6.3.1. ОСНОВНО КОЛО ЗА СЕКВЕНЦИЈАЛНО МНОЖЕЊЕ


Сега, откога се потсетивме на основите на множењето, како следен и
логичен чекор е да го анализираме хардверот потребен за реализација на
секвенцијалното множење прикажан на слика 6-12. Хардверот за множење
едноставно треба само да поместува и да собира, што всушност произлегува од
„рачниот“ метод на множење со пенкало на лист од тетратка кој го имаме научено
уште од првите години на основното училиште. Презентираната блок шема е
позната и како основно коло за секвенцијално множење или множач со
поместување и собирање.
Логичката структура на едно вакво коло за множење со поместување и
собирање е доста посложена од претходниот множач со низи од собирачи. Имено,
како што може да приметиме, покрај И-логичките кола овде се применуваат и
стационарни и поместувачки регистри, потоа паралелен повеќебитен собирач или
аритметичко логичка единица (АЛЕ) и соодветна контролна логика. Сликата се
однесува на множење на два позитивни цели бинарни броеви со должина од по
n=8 бита, т.е. еден бајт (1B=8b). Логичката структура од слика 6-12, која што
овој дизајн ја применува, е нацртана на начин кој прикажува како податоците се
движат од горе надолу, а со цел тоа да изгледа поприфатливо и полесно за
изучување и многу слично со методот на „рачно“ множење кога користиме
пенкало и хартија.

Сл. 6-12. Блок-шема на основното коло за множење со поместување и собирање


Заради полесно разбирање на ова базично коло за секвенцијално множење
со поместување и собирање, на слика 6-13 со блок-дијаграм е презентиран и
алгоритмот за множење како што го изучувавме во основното училиште на кој се
прикажани трите основни чекори потребни за генерирање на парцијалните
производи добиени со множење на секој бит од множителот B со множеникот A и
нивното собирање заради добивање на конечниот производ P.
На почетокот во регистрите на множеникот A и множителот B се внесуваат
броевите, додека содржината на регистерот на производот P се анулира (P=0).
Процедурата започнува чекорот 1) и тоа со тестирање на најмалку значајниот бит
b0 (битот со најмала тежина, LSb) од множителот B со што се одредува дали
множеникот A ќе се додава на содржината на регистерот на производот P, или не.
АРИТМЕТИЧКИ КОЛА 173

Ако најнезначајниот бит b0 од множителот B е 1, множеникот A се додава на


производот. Но, ако испитуваниот бит b0 е 0, а не е 1, ништо не се додава. Во следните
два чекори множеникот A се поместува налево, а множителот B надесно, и тоа секој за
по еден бит. Поместувањето за еден бит во лево во чекорот; 2), има ефект на
поместување на парцијалните производи во лево, според истиот принцип како
што се множи на хартија. Поместувањето на множителот во десно за еден бит во
чекорот; 3) ни го дава следниот бит од множителот кој ќе треба да се испита во
следната итерација од оваа постапка за да се донеси нова одлука. Овие три
чекори треба да се повторат онолку пати колку што битови содржи множителот B.
Во конкретниот случај, за примерот од слика 6-12 должината на множителот B е
еден бајт, т.е. n=8 бита, па заради тоа, за да се добие конечниот производ, бројот
на повторувања на чекорите ќе биде n=8. Така, за да се помножат двата 8-битни
броеви со овој алгоритам ќе треба да се пресметаат и да се соберат 8 парцијални
производи, при што секој од нив ќе содржи по 8 поединечни производи, или
вкупно 64 поединечни производи.
За да ја анализираме блок шемата на множачот од слика 6-12, а притоа
имајќи го предвид и неговиот блок дијаграм, прикажан на слика 6-13, ќе
претпоставиме дека множителот B се ноѓа во својот осум битен регистер, дека
множеникот А е сместен во нискиот бајт од својот регистер и дека 16-битниот
регистер на производот P почетно е иницијализиран на 0, како што е прикажано
на сликите 6-14 а), б) и в).

Сл. 6-13. Блок-дијаграм на алгоритамот за множење со поместување и собирање


174 АРИТМЕТИЧКИ КОЛА

а) Регистер на множителот (8 бита)

б) Регистер на множеникот: (16 бита)

в) Регистер на производот (Акумулаторот) (16 бита)


Сл. 6-14 а), б) и в) Почетните содржини на регистрите на множителите и производот
Од претходниот општ пример за 8-битни множители, којшто го решивме со
„рачно“ пресметување, јасно е дека при секој чекор ќе треба множеникот да го
поместуваме налево за по еден бит, за потоа тој да се додаде на акумулираните
парцијални производи. На овој начин, по 8 чекори, 8-битниот множеник А би се
поместил 8 бита налево. Оттука станува јасно дека ни е потребен 16-битен
регистер за множеникот А при што првично 8-битниот множеник би бил инициран
во неговата десна половина како негов понизок бајт со помала тежина, додека во
неговата лева половина како содржина на неговиот повисок бајт почетно би се
сместила нула внесувајќи нули за сите негови битови. Потоа содржината на овој
регистер – множеникот А, со секој чекор би се поместувала во лево за еден бит за
да дојде до нејзино усогласување со акумулираната сума која се наоѓа во 16-
битниот регистер на производот Р. Практично, секој нов, за еден бит во лево
поместен множеник, претставува парцијален производ кој се додава на
содржината на регистерот на конечниот производ.
Сега можеме најкратко да резимираме за компонентите и алгоритмот на
ваквиот множач со поместување и собирање. Регистерот на множеникот А, АЛЕ
или паралелниот собирач, и регистарот на производите сите се двобајтни
регистри со 16-битна должина, а само регистерот на множителот В е 8 битен.
Првично 8-битниот множеник А како влезен податок се сместува во десната
половина како низок бајт од својот 16-битен, за потоа да се поместува налево по
1 бит во секој чекор. И содржината на 8-битниот регистер на множителот В ќе се
поместува при секој чекор, но во спротивна насока – надесно. Алгоритмот
започнува со производ Р кој на почетокот е иницијализиран на нула што значи
дека во соодветниот 16-битен регистер на производот се наоѓаат 16 нули. Во
процесот на работа регистерот на производот игра улога на акумулатор бидејќи
со секој нов чекор во себе го акумулира збирот на парцијалните производи.
Секоја ваква сума претставува посебен, нов кумулативен производ. Контролната
логика одлучува кога треба да ги помести содржините на регистрите на
множеникот А во лево и на множителот В во десно и дали, и кога, да додаде нов
парцијален производ во регистерот на производот Р и со тоа во него да внесе
нова содржина – нов акумулиран производ.
АРИТМЕТИЧКИ КОЛА 175

Презентираниот множач, чија логичка структура е прикажана со блок-


шемата, дадена на слика 6-12 може да се нарече и сериски–паралелен множач,
поради тоа што множеникот и множителот се поместуваат сериски бит-по-бит,
првиот во лево, а вториот во десно, за да потоа сите битови на множеникот
едновремено и паралелно се собираат со тековниот акумулиран производ
генерирајќи нов кумулативен производ.

Пример 6-2 за секвенцијално множење со поместување и собирање


За да го објасниме и полесно разбереме основното коло за Секвенцијално
множење со поместување и собирање и алгоритамот кој е соодветен за него, ќе
решиме еден едноставен пример во кој наместо 8-битни, ќе земеме два 4-битни
броеви. Со множењето на два 4-битни бинарни броеви ќе можеме во поголеми
детали и поедноставено да ја прикажеме наведената постапка на множење. Во
овој пример се помножени броевите 2(10) со 3(10) , или во бинарен борен систем
0010(2) x 0011(2), чиј што производ е 6(10) т.е. 0110(2).
Табелата, дадена на слика. 6-14 ја покажува вредноста на секој регистер,
наведени во алгоритамот на постапката за множење од 6-13 и означени според
6-14 а), б) и в). Во табелата се дадени секој од чекорите, од првиот па сѐ до
последниот, кога се добива конечната вредност на производот. За да се покажат
вредностите на регистрите што се менуваат во соодветниот чекор се употребени
задебелени букви, а исто така болдиран и дополнително е потцртан оној бит кој
се тестира и кој одредува која операција ќе биде превземена во следниот чекор:
1. дали ќе се собира множеникот како парцијален производ на акумулираниот
производ и ќе се поместува множеникот за еден бит во лево, а множителот
во десно, или
2. ќе ги има само двете шифтирања, едно лево, едно десно, без собирање.

Од разработениот пример и спроведената анализа на работата на ова коло


за множење, со поместување и собирање може да заклучиме дека, кога станува
збор за едно-бајтни множители:
1. Регистерот на множеникот е 16 битен, но неговите 8 битови со поголема
тежина (8-те „најлеви“ битови) на почетокот секогаш се нули;
2. Множеникот се наоѓа во десната половина на својот 16 битен регистер и
неговата содржина со секој чекор се поместува во лево за еден бит
исфрлајќи ги нулите од левата половина една по една;
3. Аритметичко-логичката единица (АЛЕ) или паралелниот собирач
извршува 16-битно собирање на содржините на регистрите на
множеникот и на производот, и секој нов збир го акумулира во
регистерот на производот и
4. Множителот е сместен во 8 битен регистер, и тој секогаш се поместува во
десно при што со секој нов чекор неговиот бит со најмала тежина
(последниот бит – најдесниот) се тестира и потоа отпаѓа.
176 АРИТМЕТИЧКИ КОЛА

Сл. 6-15. Пример за секвенцијално множење со поместување и собирање на броевите


(2(10) х 3(10) = 0010(2) x 0011(2)).

6.3.2. ОПТИМИЗИРАН МНОЖАЧ СО ПОМЕСТУВАЊЕ И СОБИРАЊЕ


Знаејќи го принципот на функционирање на множачот со поместување и
собирање, се поставува прашање: дали постои некаква можност заради негово
оптимизирање, овој хардвер да се упрости и поедностави. Имено, множењето со
ваквиот множач е неефикасно заради различните насоки на поместување на
множеникот во лево, а на множителот во десно. При ова „левиот“ бајт од
множеникот на почетокот е анулиран, а при работата множителот ги губи сите
битови еден по еден и тоа почнувајќи од „најдесниот“.
Најчесто имплементираното решение, кое врши оптимизација на логичката
шема на множачот, со поместување и собирање е такво што наместо множеникот
да се поместува налево бит-по-бит, производот се поместува надесно бит-,по-бит.
Ефектот и резултатот ќе биде ист, со тоа што сега ќе треба производот првично
да се постави во левата половина од својот 16 битен регистер, како повисок бајт
и потоа да се шифтира надесно за по еден бит. Дополнително, во овој случај,
понискиот бајт од производот не е важен бидејќи тој ќе биде исфрлен како
непотребен. Имено, првичниот производ кој е 8 битен како повисок бајт се наоѓа
сместен во левиот дел од својот регистер и се поместува во десно за исто толку
бита колку што е и неговата должина (8 бита). Оттука произлегува и се наметнува
како заклучок дека „пониската“ половина од регистерот на производот може да се
искористи за првично сместување на множителот кој и онака треба да се помес-
тува во десно за по еден бит, и тогаш нема да има потреба од посебен регистер
АРИТМЕТИЧКИ КОЛА 177

за него. Вака ревидираниот хардвер на основното коло на множачот е прикажан


со својата блок-шема дадена на слика 6-16. додека слика 6-17 го претставува
блок-дијаграмот на алгоритамот за множење кој него го применува. На слика 6-18
е прикажан подетален изглед на регистрите и паралелниот собирач или АЛЕ со
насоките на движење и пренесување на битовите кога се работи за вака
оптимизираното множење.

Сл. 6-16. Блок-шема на Оптимизираната верзија на хардверот за множење


Со ова решение се добива поголема брзина на работата и помала цена на
чинење заради тоа што секој чекор ќе се извршува само со еден такт импулс.
Забрзувањето доаѓа од паралелното спроведување на операциите за
поместување. Имено, производот и множителот едновремено се поместуваат во
десно за еден бит додека множеникот се додава на производот кога најнискиот
бит на множителот кој се проверува дали има вредност 1. Ако тестираниот бит е
1, множеникот се собира со акумулаторот следено со поместување во десно, но
ако тој бит е 0, собирањето се прескокнува и се извршува само десното
поместување.

Сл. 6-17. Блок-дијаграм на алгоритамот за оптимизирано множење


178 АРИТМЕТИЧКИ КОЛА

Со ваквата подобрена верзија на хардверот станува јасно дека собирањата


можат да се извршуваат паралелно, а со тоа и многу побрзо. Ова “рафинирање“
на првичната шема на множачот претставува дополнително оптимизирање и
заради тоа што ја искористува неупотребената десна половина од регистерот на
производот (акумулаторот) во која првично се сместува множителот и со тоа
дополнително ја преполовува должината на собирачот или АЛЕ бидејќи сега ќе се
собираат 8 битни, а не 16 битни операнди.

Сл. 6-18. Изглед на регистрите и АЛЕ со насоките на пренесување и поместување на


битовите за оптимизираното множење.
Пример 6-3 за оптимизирано секвенцијално множење со
поместување и собирање
Оптимизираната верзија на множачот со поместување и собирање полесно
ќе ја разбереме ако го обработиме истиот пример за множење на два 4-битни
броеви кој претходно беше презентиран и анализиран со основното коло за
множење со поместување и собирање. И со овој пример се помножени броевите
2(10) со 3(10) , или 0010(2) x 0011(2). Содржините на регистрите за секој чекор од
постапката до добивањето на крајниот производ 00000110(2) или 6(10) за овој
конкретен случај според оптимизираниот хардвер од сликата 6-16 и алгоритмот
од сликата 6-17 се дадени во Табелата прикажана на сл. 6-19.
Како резиме може да се каже дека, во однос на основната верзија на
множачот со поместување и собирање која беше дадена на слика 6-12 сега
регистерот на множеникот и паралелниот собирач или АЛЕ се 8 битни, додека
само регистерот на производот (акумулаторот) остана со должина од 16 бита.
Пoкрај ова, наместо во посебен регистер, сега множителот се поставува во
десната – пониската половина од регистерот на производот, и целиот производ се
поместува во десно. Заради ова се изгуби посебниот регистер на множителот.
Овие промени на слика 6-16 се обележани со друга – сина боја.
АРИТМЕТИЧКИ КОЛА 179

Сл. 6-19. Оптимизирано секвенцијално множење со поместување и собирање на


броевите (2(10) х 3(10) = 0010(2) x 0011(2)).
За да бидеме попрецизни, ќе потенцираме дека регистерот на крајниот
резултат – производот, како и на посебно акумулираните производи, треба да
биде со должина од 9 бита, а не со 8, бидејќи треба да го зема во вид и битот за
пренос од паралелниот собирач или АЛЕ. Во претходниот примeр тој 9-ти бит на
пренос не е прикажан на слика 6-16 само заради полесно презентирање на
еволуцијата на хардверот од слика 6-12 во оптимизирана логичка структура од
слика 6-16. Според ова, треба да се има во вид дека сега регистерот на производи
(акумулаторот) кој беше прикажан како 16 битен регистер, практично земено, ќе
треба да “оди“ со уште еден придружен бит за пренос како негов 17-ти бит.

6.4. МНОЖЕЊЕ СО СТЕПЕНИ НА БРОЈОТ ДВА


На крај можеме да додадеме и еден трик кој го користи процесорот кога
треба да помножи даден број со бројот 2, или негов цел степен како на пр. со
броевите 2(=21), 4(=22), 8(=23), 16(=24), 32(=25), ... итн. Во ваков случај, за
множења со цели броеви кои се степени на бројот 2, процесорот користи само
инструкции за поместување во лево. Ова е од причина што поместувањето за
еден бит лево претставува двојно зголемување на бројот, па така секое следно
поместување на битовите во лево за еден бит има ист ефект како ново
множењето со бројот два кој е основа на бинарниот систем.
180 АРИТМЕТИЧКИ КОЛА

Двата примери кои следат во продолжение се прилично едноставни, но


сосема доволни за да го илустрираат множењето на цел позитивен број со
степени на бројот два со поместување во лево бит-по-бит:
Пример 6-4: Множење на позитивен цел број (9) со 4 (=22) со „лево“
поместување за два бита.
 9 x 4 = 9 x 22 = 9х(2х2)=36, 1001<<2 = 1001 0 0 = 32+0+0+4+0+0 = 36
Пример 6-5: Множење на цел позитивен број (7) со 8 (=23) со
поместување во лево за три позиции.
 7 x 8 = 7 x 23 = 7х(2х2х2)=56, 0111<<<2 = 111 0 0 0 = 32+16+8+0+0+0 = 56

6.5. МНОЖЕЊЕ НА БРОЕВИ СО ПРЕДЗНАК


Досега, во објаснувањето на множачите претпоставувавме дека
множителите се само цели позитивни броеви и не разгледувавме множење со
негативни броеви. Во ваков случај, кога имаме множење на броеви со предзнак,
позитивни и/или негативни, наједноставно решение би било да се запаметат
битовите за знак на множителот и множеникот, а потоа да се додели негативен
знак на производот ако тие знаци се маѓусебно различни. Ова го знаме уште од
основното училиште, кога на производот се доделува негативен знак само ако
знаците на множителот и множеникот меѓусебно се различни, т.е. не се исти.
Сепак, во практиката директно не се применува овој принцип, туку се користат
посебни алгоритми и соодветни множачи развиени врз нивна основа чија анализа
го надминува нивото на нашето излагање.
АРИТМЕТИЧКИ КОЛА 181

(II) КОЛА ЗА ДЕЛЕЊЕ (ДЕЛАЧИ)


Реализирањето на операцијата делење, слично како и операцијата
множење, бара соодветна хардверска и софтверска поддршка. Тоа подразбира
регистри со должина која одговара на операндите вклучени во процесот на
делење; воедно, компонента која може да изведува нивно одземање, како на пр.
одземач или аритметичко-логичката единица (АЛЕ), како и одредена контролна
логика која ќе донесува одлука поконкретно кои операции треба да се превземаат
во секој нареден чекор од постапката за делење. Ваквиот хардвер треба да биде
поддржан и со соодветен алгоритам кој ќе ги искористи овие ресурси и ќе
генерира точни резултати.
На почетокот на ова излагање, само на кратко – „брзински“ да се потсетиме
на делењето со остаток од основно училиште.

6.6. ДЕЛЕЊЕ НА ЦЕЛИ БРОЕВИ СО ОСТАТОК


Како што знаеме уште од нашите први години на школувањето во
основното училиште кога ги изучувавме основните математички операции, за
делењето научивме дека е реципрочна аритметичка операција во однос на
множењето. Делењето има два операнди како влезни податоци, а тоа се
деленикот и делителот. Бројот кој се дели е наречен деленик, додека бројот со
кого деленикот се дели е именуван со делител. Примарниот резултат од делењето
е количник, кој е придружен со уште еден дополнителен – секундарен резултат, а
тоа е остатокот од делењето. Врската помеѓу компонентите на делењето може да
се изрази со следнава равенка:
деленик = количник x делител + остаток (6-1)
Од равенката се гледа дека деленикот се добива кога количникот ќе се
помножи со делителот и ќе се собере со остатокот. При ова остатокот не може да
биде поголем од делителот, т.е. остатокот е секогаш помал од делителот. Овде не
треба да заборавиме и тоа дека делењето со 0 не е дефинирано.
За да се потсетиме на постапката за ваквиот начин на делење од основното
училиште ќе разгледаме два примера за делење на декадни броеви.

Постапка за делење со остаток во декаден систем:


 Поместувај го делителот во лево (множи го со 10) сé додека неговата
цифра со најголема тежина (MSd) не се подреди со цифрата со
најголема тежина (MSd) на деленикот.
 Сé додека остатокот (преостанатиот дел од деленикот) не биде помал од
делителот
 Најди ја најголемата цифра d таква што (d*делител)<деленик!
 Таа цифра d постави ја како најмалку значајна цифра на количникот!
 Пресметај го производот (d*делител)!
 Тој производ одземи го од деленикот!
 Помести го делителот за едно место во десно (подели го со 10)!
 Помести го количникот за едно место во лево (помножи го со 10),
182 АРИТМЕТИЧКИ КОЛА

Пример 1: 147(10)  6(10) = ? Пример 2: 146(10)  3(10) = ?


147  6 = количник 24 + остаток 3 146  3 = количник 48 + остаток 2
Од дадените примери во кои делењето се извршува според добро
познатиот алгоритам за делење од основно училиште, видливо е дека, во
принцип, станува збор за следствено одземање. Имено, во повеќе чекори, се
одредува колку пати делителот се содржи во деленикот и тој број се запишува
како една цифра од количникот, потоа следи повратно множење на добиената
цифра со делителот и одземање од деленикот, при што се добива остаток како
нов деленик, па нова цифра во количникот, итн. со секој нареден чекор се добива
по една дополнителна цифра во количникот, по која следува повратно множење и
одземање кое резултира со остаток како нов деленик, итн. се’ додека не се добие
деленик чија вредност е помала од делителот која го претставува остатокот од
делењето, или евентуално нула. Нашите примери се избрани така што се добива
количници кои покажуваат дека делителите се содржат повеќе пати во
делениците, а притоа има и остатоци.
Кога се делат два броја во бинарниот систем цифрите на количникот,
поточно неговите битови, се добиваат брзо затоа што постои ограничување на
само на еден од два избори: битот во количникот може да биде или 1, или 0. Во
бинарното делење е лесно да се утврди колку пати делителот се содржи во делот
од деленикот кој има еднаков број битови со делителот: тоа е или нула кога тој
не се содржи во него, или само еднаш кога се содржи во него.
Кажаното ќе го илустрираме со двата претходни примери за делење на
декадните броеви 147(10) со 6(10) и 146(10) со 3(10), но во бинарниот броен систем.

Пример 1: 10010011  110 = ? Пример 2: 10010010  11 = ?


10010011  110 = 10010010  11 =
= количник 11000 + остаток 11 = количник 110000 + остаток 10

6.7. ДЕЛЕЊЕ ВО БИНАРЕН БРОЕН СИСТЕМ


Пред да се презентира и анализира хардверот со кој се реализира
делењето во бинарниот броен систем, да се потсетиме дека и за бинарното
делење, во принцип, се применува истата постапка како и кај декадното делење,
но со следните разлики:
 Делењето ќе се извршува во повеќе инивидуални итерации, бидејќи
основата на бројниот систем е помала (таа е 2, а не е 10), а освен тоа и
секое приближување е помало;
 Треба да се најде најголемиот бит b таков што производот (b*делител)
треба да е помал од деленикот, т.е. (b*делител)<деленик, при што
битот b може да прими само една од две вредности: или 0 или 1! и
 Кога при повратното множење производот (b*делител) треба да се
одземе од деленикот, практично нема потреба од множењето бидејќи b
е или 0, или 1, туку треба само да се изврши, или да не се изврши,
одземањето: ако b=1 тогаш едноставно процесорот треба само да го
одземи делителот од деленикот, а доколку b=0 тогаш нема одземање.
АРИТМЕТИЧКИ КОЛА 183

Но, сега се јавува една мала „комликација“ која се однесува на одредување


на битовите на количникот. Имено, со секоја итерација се јавува проблем дали
делителот е помал од делот од деленикот кој има еднаков број битови со него и
во количникот треба да се запише 1 или делителот е поголем од деленикот па во
количникот треба да се запише 0 и да се земе уште еден бит од деленикот.
Најкусо кажано, како процесорот ќе „знае“ дали делителот е помал од делот на
деленикот со кој се споредува за да потоа се одземе, или не е? Човекот кога ги
дели броевите тоа го приметува визуелно со поглед без никаков проблем, но тоа
процесорот не може да го направи. Се поставува прашање: кое би било
решението? Одговорот е прилично едноставен: процесорот треба прво да го
одземе делителот од делот на деленикот кој има еднаков број битови со него, а
потоа да провери дали разликата од тоа одземање е позитивна, нула, или
негативна.
Знаејќи го ова, може да се презентира постапката за делење во цели
позитивни броеви во бинарниот броен систем. Поконкретно, алгоритмот за
делење би започнал така што првично остатокот ќе се земе дека е еднаков со
деленикот. Потоа, сé додека важи дека делителот е помал од деленикот, т.е.
остатокот, итеративно ќе се формираат нови деленици од остатокот, повторувајќи
го следниов циклус кој содржи три чекори:
 Од деленикот т.е. остатокот одземи го делителот, па провери ја нивната
разлика (деленик – делител)!:
o Ако разликата>=0 тогаш запиши 1 како најнизок бит во количникот и
таа разлика внеси ја како остаток, т.е. нов деленик, но
o ако разликата<0 тогаш запиши 0 како најнизок бит на количникот и
врати ја претходната вредност на остатокот, т.е. врати го „стариот“
деленик,
 помести го делителот за една бит позиција во десно и помести го
количникот за една бит позиција во лево.

6.8. ОСНОВНО КОЛО ЗА СЕКВЕНЦИЈАЛНО ДЕЛЕЊЕ


Блок-шемата на основното коло за делење кое ја реализира „нашата“
постапка за делење е претставена на слика 6-20. Регистерот на делителот, АЛЕ и
регистерот на остатокот, сите се дво-бајтни регистри со должина од 16 бита, а
само регистерот на количникот е широк еден бајт, т.е. 8 бита. Почетно 8-битниот
делител е сместен во повисоката – левата половина на својот 16-битен регистер.
За да го подредиме со деленикот, ќе треба посебно со секое ново приближување
во постапката, делителот да го поместуваме надесно за 1 бит. Првично 8-битниот
регистер на количникот е ресетиран и поставен на 0. Регистерот каде што ќе се
добие остатокот почетно се иницијализира со содржина која е еднаква со
деленикот.
За операндите на делењето: деленикот и делителот, ќе претпоставиме дека
се 8-битни броеви (n=8) и при тоа ќе земеме дека тие се позитивни. Јасно е дека
во овој случај, и двата резултати од делењето: количникот и остатокот, исто така
ќе бидат позитивни.
184 АРИТМЕТИЧКИ КОЛА

Контролата одлучува кога да ги помести содржините на регистрите на


делителот во десно и на количникот во лево, како и тоа која и кога, новодобиена
вредност како деленик да ја запише во регистерот на остатокот.

Сл. 6-20. Блок-шема на основното 8-битно коло за делење

На слика 6-21 е прикажан блок-дијаграмот на алгоритмот за делење кој се


извршува во три чекори кои повеќекратно се повторуваат. При неговата анализа,
кога ќе се наведуваат операндите на делењето, всушност преку нив се алудира на
содржините на истоимените регистри.

За разлика од човекот, компјутерот не е интелигентен и не може однапред


да знае дали делителот е помал од деленикот. Затоа, според дадениот алгоритам,
најпрво во чекорот (1) делителот треба да биде одземен од деленикот.
 Ако после одземањето резултатот е позитивен или нула, тоа значи дека
делителот се содржи во деленикот, т.е. делителот е или помал или еднаков
со деленикот, и за двата случаи, во количникот се запишува 1 (чекор (2а);
 но, ако резултатот е негативен, тоа значи дека делителот е поголем од
деленикот, па следниот чекор е да се врати назад претходната –
ненамалената вредност на деленикот со собирање на делителот со
содржината на регистерот на остатокот, и при тоа генерирање на 0 во
количникот бидејќи делителот не се содржи во деленикот (чекор (2б).

После извршувањето на било која од претходните две опции во чекорот


(2), во чекорот 3) делителот се поместува за еден бит во десно и количникот за 1
бит налево и постапката се враќа на почетокот заради повторување на чекорот
(1) и извршување на ново одземање и проверување. По завршувањето на сите
итерации, крајните вредности на остатокот и количникот ќе се најдат во нивните
истоимени регистри.
АРИТМЕТИЧКИ КОЛА 185

Сл. 6-21. Алгоритам за делeњe соодветен на основното коло


Овде треба да се забележи дека со тестот во чекорот (2), за тоа дали
остатокот е позитивен или негативен, едноставно се проверува битот за предзнак
во истоимениот регистер, т.е. најзначајниот бит, за тоа дали е тој 0, или е 1.
Имено, според означувањето во втор комплемент, т.е. 2’s нотација, ако најлевиот
бит е 0, остатокот е позитивен, но ако тој бит е 1, добиениот остаток е негативен.
Можеби малку неочекувано, но треба да знаеме дека за да се добие
точниот количник и соодветниот остаток кој оди со него, овој алгоритам се
извршува во 1 чекор повеќе одколку што е должината деленикот и делителот, т.е.
со (n+1), а не со n, чекори. Така на пр. ако n=8, бројот на чекори ќе биде n+1=9.
186 АРИТМЕТИЧКИ КОЛА

Пример 6-6 за делење со основното коло


Заради полесно разбирање на алгоритмот ќе направиме анализа на
прилично едноставен пример, користејќи два четирибитни броеви. Така на пр.
користејќи соодветна табела да ги поделиме броевите 7(10) со 2(10), или во
бинарниот броен систем 0111(2) со 0010(2), како што е прикажано на слика 6-22.
Затоа што операндите се со должина од по 4 бита (n = 4) регистрите на
делителот и остатокот каде што првично е сместен деленикот, се со двојно
поголема ширина од по еден бајт бидејќи 2*n=8-бита, а таква треба да биде и
аритметичко-логичката единица (АЛЕ). Единствено, само регистерот на
количникот е со должина од n = 4 бита. Согласно алгоритмот, неговите чекори ќе
се повторуваат (n+1) = 4+1 = 5 пати.
На слика 6-22 е прикажана вредноста на секој регистер за секој од
чекорите, со тоа што количникот од делењето изнесува 3(10) или 11(2), додека
остатокот е 1(10) или 1(2). Битот кој се испитува за да го детерминира следниот
чекор е заокружен со кругче во црвена боја.
Ако по чекорот (1) остатокот е позитивен, делителот се содржи во
деленикот, па се продолжува со чекорот (2а) со што се генерира 1 во количникот,
по што следува враќање назад на одземањето во чекор (1). Негативен остаток по
чекорот (1) значи дека делителот НЕ се содржи во деленикот, така што се
реализира чекорот (2б) кога се генерира 0 во количникот и на остатокот се
додава делителот, а потоа следува враќање назад на одземањето во чекор (1). Со
поместувањето во десно за еден бит во чекорот (3) делителот правилно се
подредува во однос на деленикот за следната итерација.
Итерa Чекори Колич Делител Остаток
-ција -ник
0 Почетни/Првични 0000 0010 0000 0000 0111
(Иницијални) вредности Деленик
1 1: Остат. = Остат. – Делител 0000 0010 0000 1110 0111
2б): Остаток < 0; Остат. = Остат. + 0000 0010 0000 0000 0111
Делител, ПомЛевоКолич, Q0 = 0
3: ПомДесноДелител 0000 0001 0000 0000 0111
2 1: Остат. = Остат. – Делител 0000 0001 0000 1111 0111
2б): Остаток < 0; Остат. = Остат. + 0000 0001 0000 0000 0111
Делител, ПомЛевоКолич, Q0 = 0
3: ПомДесноДелител 0000 0000 1000 0000 0111
3 1: Остат. = Остат. – Делител 0000 0000 1000 1111 1111
2б): Остаток < 0; Остат. = Остат. + 0000 0000 1000 0000 0111
Делител, ПомЛевоКолич, Q0 = 0
3: ПомДесноДелител 0000 0000 0100 0000 0111
4 1: Остат. = Остат. – Делител 0000 0000 0100 0000 0011
2а): Остаток >= 0; 0001 0000 0100 0000 0011
ПомЛевоКолич, Q0 = 1
3: ПомДесноДелител 0001 0000 0010 0000 0011
5 1: Остат. = Остат. – Делител 0001 0000 0010 0000 0001
2а): Остаток >= 0; 0011 0000 0010 0000 0001
ПомЛевоКолич, Q0 = 1
3: ПомДесноДелител 0011 0000 0001 0000 0001
Сл. 6-22. Пример за делење со користење на алгоритамот од слика 6-21
АРИТМЕТИЧКИ КОЛА 187

Кратко потсетување: Операцијата одземање се изведува во 2’s нотација


(означување на броевите со предзнак во втор комплемент.) Така на пр. првата
разлика во првиот чекор кога од остатокот, кој првично е еднаков со деленикот
(00000111(2)), се одзема поместениот делител (00100000(2)), се добива:

Аритметички операции одземање и собирање во 2’s нотација (втор комплемент)


Одземањето се Одредувањето на Реализација на Повратното собирање
сведува на 2’s комплемент на одземањето во заради враќање на
собирање броеви негативен број 2’s комплемент претходната вредност на
со предзнак остатокот, т.е. деленикот
00000111 (– 00100000) 00000111 00100000
– 00100000 -------------------- + 11100000 + 11100111
------------------ 1’s: 11011111 ----------------- -----------------
00000111 + +1 11100111 1|00000111
(– 00100000) -------------------- Најзначајниот Се појавува деветти бит
------------------ 2’s: 111000000 бит е 1-а што кој едноставно се
значи дека отстранува и се добива
резултатот е старата вредност.
негативен.
Пр. 6-6. Делење со основното коло

6.9. ОПТИМИЗИРАНО КОЛО ЗА ДЕЛЕЊЕ


Принципот за оптимизирање кој го имавме применето кај множачот исто
така може да се примени и кај погоре анализираното основно коло за делење.
Слично на оптимизацијата применета кај колото за множење, исто така и овде кај
делачот, во принцип, може да се примени слично подобрување со тоа што
десната половина од регистерот на остатокот која е неискористена може да се
искористи за сместување на количникот. На овој начин количникот практично се
комбинира со остатокот спојувајќи се во неговата десна половина.
Подобрувањето на претходниот алгоритам е со цел да се добие поголема
брзина во работата и воедно, со тоа да се поевтини изведбата и хардверот за
негова реализација. Блок-шемата на ревидираниот хардвер е прикажана на
слика 6-23, од која се забележува дека АЛЕ, регистрите на делителот, остатокот и
деленикот се 8-битни, додека не постои регистер на количникот заради тоа што
количникот се сместува во регистерот на деленикот.
Во споредба со слика 6-20, на оваа слика 6-23 АЛЕ и регистерот на
делителот се преполовени од 16 на 8 бита. За оваа оптимизирана верзија на
колото за делење карактеристично е и тоа што регистерот на остатокот се
комбинира со регистерот на деленикот заедно формирајќи дво-бајтен регистер со
должина од 16 бита. Имено, првично, на почетокот на делењето, во високиот –
левиот бајт е сместен остатокот, додека во десната – ниската половина се наоѓа
бајтот на деленикот. Како што ќе видиме понатаму во излагањето, при
реализација на постапката за делење, целата 16-битна содржина на овој
комбиниран регистер ќе се поместува бит-по-бит, но само налево и потоа ќе се
изведуваат 8-битни, а не 16-битни, одземања.
188 АРИТМЕТИЧКИ КОЛА

Токму ова поместување во лево за 1 бит дава можност да не се користи


посебен регистер за чување на количникот, туку со секое поместување за еден
бит налево на деленикот, количникот бит-по-бит ќе го внесуваме од десниот крај
на регистерот на деленикот, па налево.

Сл. 6-23. Блок-шема на оптимизираната верзија на 8-битното коло за делење


Постапката на секвенцијално делење подетално ќе ја објасниме имајќи ги
предвид блок-шемата од слика 6-23 и блок-дијаграмот од слика 6-24, кои се
однесуваат на делење на 8-битни броеви. Веќе наведовме дека делителот има
свој 8-битен регистер, како и тоа дека регистерот на остатокот се комбинира со
деленикот и исто така се користи и за сместување на пресметаниот количник.
Заради тоа се користат два 8 битни регистри формирани како еден 16-битен:
„висок“ регистер (HiR) за повисокиот бајт каде ќе се наоѓа остатокот и „низок“
регистер (LoR) за понискиот бајт каде ќе се наоѓа деленикот и генерираниот
количник. Првично, на почетокот регистерот HiR се ресетира и се тоа остатокот се
иницијализира на 0, додека во LoR регистерот се сместува деленикот, а истиот тој
ќе се користи и за сместување на битовите на количникот.
По воспоставувањето на почетните вредности, првиот чекор е поместување
на содржините на регистерот на остатокот и регистерот на деленикот, т.е.
количникот заедно (HiR||LoR) налево за 1 бит со што се постигнува ист ефект
како делителот да се поместува надесно. Потоа се пресметува разликата (остаток
– делител) т.е. разлика = HiR – делител. Токму ова е поентата на оптимизираната
постапка за делење кога наместо пред секое одземање делителот да се поместува
за по еден бит во десно, деленикот се поместува бит-по-бит во лево.
Како следен чекор е тестирањето на добиената разлика.
 ако разликата >=0, тогаш како нова содржина во HiR каде што е
остатокот се сместува разликата и како најмалку значаен бит на
количникот се поставува 1 во LoR и
 ако разликата < 0, тогаш ништо не се превзема,

Во последниот, трет чекор е проверката дали бројот на повторувања i го


достигнал последното n-то повторување на циклусот:
АРИТМЕТИЧКИ КОЛА 189

 ако НЕ, кога i<n, тогаш се враќа назад на чекорот (1),


 ако е ДА, кога i=n, тогаш се оди на крај и се завршува.

Сл. 6-24. Алгоритам за делeњe според оптимизираната изведба на колото за делење


190 АРИТМЕТИЧКИ КОЛА

Пример 6-7 за делење со оптимизираното коло


Заради полесно разбирање на алгоритмот ќе направиме анализа на
едноставен пример со користење на два четирибитни броеви. Така на пр. да ги
поделиме броевите 7(10) со 2(10), или во бинарниот броен систем 0111(2) со 0010(2).
Затоа што операндите се со должина од по 4 бита (n = 4) регистрите на
делителот и остатокот каде што е првично сместен деленикот, се со двојно
поголема ширина од по еден бајт (2*n=2*4=8-бита), а таква треба да биде и АЛЕ.
Единствено само регистерот на количникот е со должина од n = 4 бита. Согласно
алгоритмот, неговите чекори ќе се повторуваат (n+1) = 4+1 = 5 пати.
Презентираниот хардвер за делење, даден на слика 6-23 и алгоритмот од
слика 6-24 полесно ќе ги разбереме анализирајќи делење на два цели позитивни
броеви, и двата со должина од по четири бита и применувајќи соодветна табела,
која е прикажана на слика 6-25. Како деленик ќе го земеме бројот 14(10)=1110(2), а
како делител 3(10)=0011(2). Бидејќи примерот е избран така што и деленикот и
делителот се 4-битни броеви, должината на сите регистри ќе биде n=4 бита, а 4-
битна ќе биде и АЛЕ, при што алгоритмот за делење ќе заврши со n=4
повторувања.

Итера- Чекори HiR> LoR> Деленик Делител Разлика


ција Остаток (и Количник)
0 Почетни вредности (Првични, Иницијални) 0000 1110 0011
1 1: помести налево, разлика = HI – деленик 0001 1100  0011 1110
2: разлика<0, не прави ништо
2 1: помести налево, разлика = HI – деленик 0011 1000  0011 0000
2: остаток = разлика, постави LSb на LO 0000 1001
3 1: помести налево, разлика = HI – деленик 0001 0010  0011 1110
2: разлика<0, не прави ништо
4 1: помести налево, разлика = HI – деленик 0010 0100  0011 1111
2: разлика<0, не прави ништо
Сл.6-25. Пример за делење со користење на алгоритамот од слика 6-24
На слика 6-25 е прикажана содржината на секој регистер посебно и тоа за
секој од чекорите, со тоа што резултатот од делењето ќе биде количникот 4(10) =
0100(2) и остатокот 2(10) = 0010(2).
На крај ќе наведеме и тоа дека за целосно точен процес на делење двојниот
регистер на остатокот и деленикот реално треба да биде за 1 бит подолг и да има
должина 17-бита. Имено, овој дополнителен бит е потребен како 17-ти највисок
бит на левиот крај од овој регистер за да не се изгуби највисокиот бит на
деленикот кога тој се поместува налево.

6.10. ДЕЛЕЊЕ СО СТЕПЕНИ НА БРОЈОТ ДВА


Ако се навратиме малку назад од порано, кога ги изучувавме бројните
системи, ќе се потсетиме дека ако даден бинарен број го поместиме надесно за
еден бит, ќе се добие број кој што е двојно помал, т.е. сме добиле делење со два.
Слично, поместувањето за два бита во десно дава број поделен со 4,
поместувањето за три генерира број поделен со 8, итн.
АРИТМЕТИЧКИ КОЛА 191

Заклучокот би бил дека поместувањето на битовите во десно го има истиот


ефект како делење со цел степен на бројот 2: 21=2, 22=4, 23=8, итн. Од тука
станува јасно дека делењето со два, како и со степени на бројот два, практично
може да се изведе со поместување на дадениот бинарен број во десно за
потребниот број на битови.
Во продолжение ќе дадеме два примера за делење на цели позитивни
броеви со степени на бројот два со поместување во десно:
1) 8 : 2 = 8 : 21 = 4, во бинарниот систем  1000(2)>2 = 100.0(2) = 4(10)
2) 12 : 4 = 12 : 22 = 3, во бинарниот систем  1100(2)>>2 = 11.00(2) = 3(10)

6.11. ДЕЛЕЊЕ НА БРОЕВИ СО ПРЕДЗНАК


Досегашното објаснување за хардверот и алгоритмите кои се однесуваат на
него беше фокусирано на делењето на цели позитивни броеви игнорирајќи ги
негативните броеви, или поинаку кажано, не разгледувавме делење на броеви со
предзнак. Наједноставно решение за делењето во кое деленикот и делителот се
цели позитивни и/или негативни броеви би било да се запамтат нивните
предзнаци, а потоа да се земе количникот со негативен предзнак ако предзнаците
на деленикот и делителот се меѓусебно различни. Што се однесува до предзнакот
на остатокот треба да се примени правилото дека деленикот и остатокот мора да
имаат ист знак, без оглед на знаците на делителот и количникот.

Заклучок
Заедничка хардверската поддршка на еден процесор како за множење, така
и за делење, на цели позитивни броеви се еден пар регистри со соодветна
должина. Кога станува збор за множење или делење на бајти, едниот од
регистрите треба да биде 8 битен, а другиот 16-битен. Покрај нив, процесорот
треба да располага и со соодветно коло кое може да ги изведува операциите
собирање и одземање (собирач и одземач), како на пр. аритметичко-логичката
единица (АЛЕ) која треба да биде исто така 8-битна, како и контролна логика која
ќе ги проверува соодветните битови и ќе донесува одлука кои операции треба да
се превземаат во секој нареден чекор од постапката за множење, односно
делење. Дополнително, кога се работи за делење, процесорот хардверски или
софтверски, треба да проверува и две аномалии кои може да се појават што би
резултирале со неправилна пресметка. Едната од нив е појава на количник кој е
премногу голем и не може да се прикаже со 8-бита, а другата е сигнализација
дека се појавило делење со нула кога деленикот има вредност нула заради што
количникот е недефиниран, што во основа е слично со претходното.
192 АРИТМЕТИЧКИ КОЛА

ПРАШАЊА И ЗАДАЧИ ЗА ПОВТОРУВАЊЕ


6-1. Применувајќи множач со низи од собирачи со пренесување да се
помножат следните парови 4-битни броеви (A=a3a2a1a0, B=b3b2b1b0):
 А) 1011 х 0101 = 0110111 (11 x 5 = 55)
 Б) 1011 х 1010 = 1101110 (11 x 10 = 110)
6-2. Користејќи множач со низи од собирачи со запамтување да се помножат
следните парови 4-битни броеви (A=a3a2a1a0, B=b3b2b1b0):
 А) 1100 х 1101 = 10011100 (12 х 13 = 156)
 Б) 1101 х 1011 = 10011100 (13 х 11 = 143)
6-3. Претпостави дека претходно зададените парови од по два 4-битни броеви
повторно треба да се помножат така што множеникот и множителот ќе си ги
заменат местата.
6-4. Да се помножат следните парови 4-битни броеви (A=a3a2a1a0,
B=b3b2b1b0) со поместување и собирање според хардверот и алгоритмот на
базичното коло од слика 6-12 и слика 6-13.
 А) 1011 х 0101 = 0110111 (11 x 5 = 55)
 Б) 1100 х 1101 = 10011100 (12 х 13 = 156)
 В) 1101 х 1011 = 10011100 (13 х 11 = 143)
 Г) 1011 х 1010 = 1101110 (11 x 10 = 110)
 Д) 1101 х 1001 = 1110101 (13 x 9 = 117)
6-5. Со примена на основното коло за множење со поместување и собирање, а
при тоа имајќи го во вид истоимениот алгоритам, од слика 6-12 и слика 6-13,
повторно да се помножат претходно зададените парови од по два 4-битни
броеви така што множеникот и множителот ќе си ги заменат местата.
6-6. Да претпоставиме дека повторно треба да се помножат претходно
зададените парови од по два 4-битни броеви (A=a3a2a1a0, B=b3b2b1b0), но
сега користејќи го хардверот и алгоритмот со поместување и собирање според
оптимизираната верзија на основното коло.
6-7. Имплементирајќи ја оптимизираната верзија на множачот и алгоритмот со
поместување и собирање помножи ги претходно зададените парови од по два
4-битни броеви така што множеникот и множителот ќе си ги заменат местата.
6-8. Да се поделат следниве два 4-битни броја (A=a3a2a1a0, B=b3b2b1b0) со
поместување и одемање според хардверот и алгоритмот на основното коло за
делење од слика 6-20 и слика 6-21.
 А) 1101  0011 = 0100 и 00000001 (13  3 = количник 4 и остаток 1)
 Б) 1100  0101 = 0010 и 00000010 (12  5 = количник 2 и остаток 2)
 В) 1111  0100 = 0011 и 00000011 (15  4 = количник 3 и остаток 3)
 Г) 1110  0100 = 0111 и 00000000 (14  2 = количник 7 и остаток 0).
АРИТМЕТИЧКИ КОЛА 193

6-9. Да претпоставиме дека треба повторно да се поделат претходно


зададените парови од по два 4-битни броја (A=a3a2a1a0, B=b3b2b1b0), но
сега, користејќи го хардверот и алгоритмот со поместување и одземање
според оптимизираната верзија на базичното коло од слика 6-23 и слика 6-24.
Следниве парови од по два декадни броја да се поделат во бинарниот броен
систем со примена на а) основното коло за делење со поместување и
одземање, б) неговата оптимизирана варијанта, а при тоа имајќи ги во вид и
нивните соодветни алгоритми прикажани на слика 6-20 и слика 6-21 и слика 6-
23 и слика 6-24. При ова, бинарните еквиваленти на зададените декадни
броеви треба да се земат како бинарни броеви со должина од еден бајт, т.е. 8
бита.
 А) 42  8 = ?
 Б) 69  7 = ?
 В) 169  37 = ?
 Г) 237  45 = ?
 Д) 254  13 = ?
6-10. Задача за размислување. Како би изгледала блок-шемата на хардверот,
како и блок-дијаграмот на алгоритмот со кој би можеле селективно да се
извршуваат аритметичките операции множење и делење?
194 АРИТМЕТИЧКИ КОЛА
7.
МЕМОРИСКИ
КОМПОНЕНТИ
По изучувањето на оваа тематска целина
 ќе ги познавате основните поими и концепти кои се
однесуваат на мемориските компоненти и уреди;
 ќе се запознаете со организацијата на меморијата;
 ќе умеете да ги споредувате различните типови на мемории:
ROM, PROM, EPROM, EEPROM, RAM;
 ќе можете да ги опишувате сличностите и разликите помеѓу
мемориските интегрирани кола;
 ќе знаете да го објасните начинот на адресирање на
меморијата;
 ќе ја познавате логичката структура на RAM мемориската
ќелија и нејзиното функционирање;
 ќе разберете како се одвиваат процесите на читање и
запишување во меморијата, а со тоа ќе умеете да го објасните
и принципот на нејзината работа;
196 МЕМОРИСКИ КОМПОНЕНТИ
МЕМОРИСКИ КОМПОНЕНТИ 197

7.1. ВОВЕД
Мемориските компоненти се едни од основните и главни составни делови
на дигиталните системи. Меморијата има фундаментална улога, посебно кај
компјутерите, бидејќи нејзина улога е да чува (запамeтува) најразлични типови
на податоци, кои претставуваат кодирани информации во бинарен облик.
Основната функција на меморијата е да овозможува читање на внесените
податоци, како и нивно менување (ажурирање) преку запишување на нови.
Мемориите се посебни компоненти составени од голем број на логички кола
реализирани со електронски (полупроводнички) елементи: биполарни и
униполарни транзистори.
Во оваа тема најнапред ќе се запознаеме со хиерахијата на мемориските
компоненти и уреди, со терминологијата и дефинирањето на клучните поими
кои се однесуваат на мемориите со посебен осврт на полупроводничките
мемории, како и на нивната внатрешна организација. Потоа ќе се задржиме на
поделбата на мемориите според различни критериуми. Притоа ќе ги споредиме
сличностите и разликите помеѓу повеќето типови мемориски компоненти,
донесувајќи соодветни заклучоци за нивните предности и слабости.
Заради полесно разбирање на функционирањето на мемориските
компоненти ќе бидат претставени и анализирани: моделот на меморијата,
принципиелната електрична шема - логичката структура, и блок-шемата на
најмалата елементарна градбена единица на меморијата - мемориската ќелија.
Во врска со ова ќе биде објаснет и принципот на работа на меморијата, со
анализа на улогата на нејзините влезни и излезни линии и со користење на
временски дијаграми при анализирање на двете основни операции: читање и
запишување.

7.2. МЕМОРИСКА ХИЕРАРХИЈА


Кога се обработува меморијата како проблематика, неодминливо треба
да се анализира и т.н. мемориска хиерархиска пирамида која на еден сликовит
начин нè воведува во поделбата на мемориските компоненти и уреди и воедно
нè запознава со односот помеѓу нивната цена на чинење, брзина на работа и
капацитет.
Мемориската пирамида, која е прикажана на сл. 7-1, на својот врв ја носи
т.н. скриена или ќеш (анг. Cache) меморија која во однос на другите типови
мемории има најмал капацитет, но од друга страна има најголема брзина при
работата. На второто ниво се наоѓа т.н. главна или примарна меморија, која е
поголема по капацитет од ќеш меморијата, но е поспора од неа во однос на
брзината. За овие две највисоки нивоа карактеристично е тоа што тие се
изградени од полупроводнички елементи. Денес тие најчесто се изработуваат
од униполарни NMOS транзистори или во комплементарна MOS технологија
(CMOS).
198 МЕМОРИСКИ КОМПОНЕНТИ

Како главни претставници на следните хиерахиски нивоа се единиците со


тврди дискови (анг. hard-disk) кои се претставници на т.н. секундарна меморија,
додека единиците со магнетна лента (анг. magnetic tape) припаѓаат на уште
пониското ниво на т.н. терцијална меморија.
Последните два типа на мемориски уреди се всушност магнетни мемории,
бидејќи читањето и запишувањето на податоците се врши на магнетен медиум:
намагнетизирани тенки дискови, односно намагнетизирана лента, за чие
движење се потребни механички елементи. Како последица на тоа, овие
мемориски уреди имаат најмала брзина на работа, но затоа многу поголем
капацитет во однос на полупроводничките мемории.
Регистри
на ЦПУ

Цена по бит Скриена (Ќеш)


Брзина (Cache) Меморија

Главна
(Примарна) Меморија

Секундарна меморија
Тврд диск (hard disc)

Терциерна меморија Капацитет


Магнетна лента (Magnetic tape) (MB)

Сл. 7-1. Пирамида на мемориската хиерархија


Од сликата сл. 7–1 се гледа дека полупроводничките мемориски
компоненти како предност ја имаат големата брзина на работа, но нивна
слабост е тоа што имаат мал капацитет и висока цена на чинење по бит во
однос на магнетните мемории. Од друга страна, мегнетните мемориски уреди,
кои се наоѓаат на дното на пирамидата, се одликуваат со најниска цена на
чинење по бит и најголем капацитет, но нивната голема слабост е малата
брзина на работа во однос на полупроводничките мемории.
Понатаму во излагањето ќе се фокусираме на презентирање на
карактеристиките и анализа на принципот на работа на мемориските
полупроводнички интегрирани компоненти, кои припаѓаат на највисокото
хиерархиско ниво, ќеш меморијата.

7.3. ИНТЕРНА ОРГАНИЗАЦИЈА НА МЕМОРИЈАТА


И БАЗИЧНИ ПОИМИ И КОНЦЕПТИ
Од организациски аспект логичката структура на меморијата претставува
конечно и уредено множесто на голем број мемориски локации (m) во форма на
табела или матрица според сл. 7-2 која ја прикажува на наједноставен начин.
МЕМОРИСКИ КОМПОНЕНТИ 199

Сл. 7-2. Мемориска табела Сл. 7-3. Мемориски збор Сл. 7-4. Мемориска матрица

Во секоја локација може да се наоѓа одреден мемориски збор според сл.


7-3 кој претставува некаков податок кодиран во бинарен облик како низа
(комбинација) од 0-и и 1-и со фиксна должина (n) изразена во битови (бинарен
вектор). Меморискиот збор може да се смести во одредена мемориска локација,
која содржи конечен број на мемориски ќелии, еднаков со должината (бројот на
битови) на зборот, според сл. 7-4. Имено, мемориската ќелија претставува
најмала елементарна градбена единица на секоја мемориска компонента,
бидејќи во неа може да се запамети (меморира) само еден бит (еднобитен
податок): 0 или 1. Најзначајниот бит (MSB) (битот со најголема тежина) од
податокот, кој се наоѓа на најлевата позиција вообичаено се означува со d(n-1),
следниот до него со d(n-2), и така сè до последниот најдесно поставен бит, кој е
најмалку значаен (LSB) (бит со најмала тежина) и се означува со d0. Бидејќи во
практиката се користат мемории чии зборови имаат должина од 1, 2, 4 или 8
бајти, најчесто n ќе биде 8, 16, 32 или 64 бита. Имајќи предвид дека секој
мемориски збор може да претставува одреден податок, кој е кодиран во
бинарен облик и има должина n бита, конкретниот бинарен вектор, т.е.
конкретната комбинација од 0-и и 1-и која е сместена во мемориската локација
ја претставува нејзината содржина. Ова значи дека во рамките на меморијата
секој мемориски збор претставува посебна целина (ентитет) со должина од n
битови до која може да се пристапи со цел да се прочита нејзината содржина
или да се измени преку запишување на нова. Токму преку реализација на овие
две основни операции на читање и запишување мемориската компонента ја
остварува својата функција.
Во врска со ова, кога се користи терминот запишување се мисли на
запамтување (меморирање, внесување, анг. Write) на мемориски збор (нов
податок) кој доаѓа од компонента или уред кој се наоѓа надвор од меморијата и
се запишува во неа како нова содржина во една (било која) зададена
мемориска локација од целото расположиво множество на мемориски локации.
Старата содржина на специфицираната мемориска локација неповратно ќе се
изгуби бидејќи ќе биде заменета со нова.
Од друга страна, кога се употребува поимот читање (анг. Read),
поконкретно се мисли на изнесување на мемориски збор (постоечки запаметен
податок) од меморијата кон некоја надворешна компонента или уред со што
практично се чита содржината која е сместена во зададената мемориска
локација. Постојат два различни начини на читање: деструктивно и
недеструктивно. При деструктивното читање содржината на мемориската
200 МЕМОРИСКИ КОМПОНЕНТИ

локација се губи, додека при недеструктивното читање нејзината содржина


останува каква што била непосредно пред читањето. Во практиката многу
почесто се сретнува недеструктивното читање и кога се користи терминот
читање вообичаено се смета дека тоа е недеструктивно. Согласно со
претходното, содржината на мемориската локација може да се чита само како
единствена целина со фиксна должина од n бита или во неа да се запишува
нова содржина, со истата должина.
Реалните мемориски интегрирани кола располагаат со посебна влезна
контролна линија која вообичаено се означува со R / W , WR или WE . Ако на
неа се доведе 1 ( R / W =1) тоа значи дека од меморијата може да се чита,
додека ако состојбата на оваа линија е 0 ( R / W =0), тоа значи дека во
мемориската компонента може да се запишува.
Имајќи во вид дека новата содржина најбрзо може да се прочита или
промени на паралелен начин, со едновремено пристапување до сите мемориски
ќелии, се наметнува заклучокот дека за секој бит од податокот ќе треба да се
користи по една посебна т.н. податочна линија бидејќи во даден момент преку
една линија може да се пренесува само еден бит. Имено, напонското ниво кое е
присутно на неа може да биде ниско VL=VLOW=V(0) што одговара на логичка 0,
или високо VH=VHIGH=V(1) што соодветствува на логичка 1.
Според ова, ако запишувањето на нов податок (содржина) во зададена
мемориска локација се извршува преку едни водови, а читањето преку други,
тоа може симболички да се претстави според сл. 7-5. На сликите множеството
паралелни податочни линии (сл. 7-5 а) имаат иста намена и заради тоа
поедноставено се означуваат со двојна широка линија (сл. 7-5 б) или со
подебела прецртана линија (сл. 7-5 в) покрај која е напишан вкупниот број на
водови (жици). Со ваквата нотација се поедноставува цртањето на логичките
шеми и воедно им се се зголемува нивната прегледност.
n
n n

n n
а) б) в)
Сл. 7-5. Симболи на мемориска локација со посебни линии за читање и запишување
Имајќи во вид дека истовремено не може и да се чита и да се запишува,
бидејќи во еден момент се пристапува на мемориската локација и нејзината
содржина или се чита, или се запишува нова, наместо употреба на две групи
податочни линии: едни за влез, а други за излез, може да се користи само едно
множество на линии. Тие во моментот кога се чита ќе бидат излезни ( R / W =1),
а тогаш кога ќе се запишува влезни ( R / W =0), што симболички се прикажува со
сл. 7-6 а), б) и в). Во практиката кај реалните мемориски компоненти
податочните линии најчесто се двонасочни (бидирекционални).
n

n n
а) б) в)
Сл. 7-6. Симболи на мемориска локација со двонасочни линии за читање/запишување
МЕМОРИСКИ КОМПОНЕНТИ 201

Бидејќи во даден момент се пристапува само до една мемориска


локација, бројот на податочни линии со кои располага една мемориска
компонента е идентичен со должината на меморискиот збор кој е сместен во
неа, според сл. 7-7 а) б) и сл. 7-8 а) б). Во моментот кога се остварува
комуникацијата помеѓу меморијата и некоја друга компонента, на единствените
податочни линии од мемориското коло ќе се појават или постават битовите кои
се однесуваат само на специфицираната локација. Ваквата структура и
поврзување овозможува бројот на податочни линии да биде еднаков со
должината само на еден мемориски збор, т.е. со бројот на мемориски ќелии во
една мемориска локација (n).

n n
(n-1)(n-2) 2 1 0 n

n n
n n
а) б) а) б)
Сл. 7-7. Симболи на мемориски компоненти Сл. 7-8. Симболи на мемориски компоненти со
со посебни линии за читање/ запишување двонасочни линии за читање/запишување
Реалните мемориски интегрирани кола располагаат со многу голем број
локации. Вкупниот број на мемориски локации со кои располага дадена
мемориска компонента се означува со m, при што m е цел број многу поголем
од 1 (m>>>1) кој вообичаено се движи во опсегот од 210=1024=1K≈103,
220=1024x1024=1M≈106, до 230=1024x1024x1024=1G≈109, што зависи од тоа за
каков дигитален систем станува збор: микропроцесорски, микроконтролерски,
персонален компјутерски или друг поголем систем.
Бидејќи операциите читање или запишување можат да се однесуваат на
било која мемориска локација, ќе треба да постои можност за пристап и
пребарување на целата меморија од нејзината прва до нејзината последна
локација. За да може ефикасно да се оствари пристап до било која мемориска
локација, секој мемориски збор се нумерира (индексира) со посебен број кој
претставува негова еднозначно доделена адреса. Адресата ќе се користи за
одредување на мемориската локација во која дадениот збор ќе се запише или
од каде ќе се прочита. Бидејќи секој мемориски збор има посебна адреса и
мемориска локација, која е еднозначно поврзана со него, тоа значи дека при
операцијата читање или запишување најмалиот податок до кој може да се
пристапи е токму еден мемориски збор кој се наоѓа во специфицираната
мемориска локација. Во врска со ова, кога се пристапува до некоја мемориска
локација за да се изврши зададена операција на читање или запишување се
користи терминот адресирање или специфицирање. На овој начин, со
користење на адреси, може да се обезбеди мемориските зборови да се движат
од надворешните компоненти кон меморијата, и обратно.
202 МЕМОРИСКИ КОМПОНЕНТИ

На тој начин секој податок може да се запише или да се прочита од


мемориската локација чија адреса е зададена.
Од кажаното се наметнува заклучокот дека мемориското коло треба да
има посебни влезни адресни линии со кои ќе може во даден момент да се врши
адресирање (селектирање) на една, било која од вкупниот број на расположиви
мемориски локации (m), што значи дека нивниот број треба да биде еднаков со
вкупниот број на мемориски зборови. На овој начин, со активирање на некоја
од адресните линии, додека останатите се држат пасивни, ќе и се пристапи
токму на мемориската локација која е адресирана и во неа ќе може да се
запишува нов збор (податок), или ќе може да се прочита нејзината содржина
(зборот, податокот кој е зачуван во неа), додека останатите мемориски локации
ќе бидат пасивни. Во тој момент на n–те податочни линии ќе се појави
содржината на посочената локација ако истата се чита, односно на нив ќе треба
да се постави нов податок ако во локацијата треба да се запише нова
содржина. Вообичаено, првиот мемориски збор има нулта адреса, т.е. адресата
на првата мемориска локација се означува со 0 (m=0), додека последниот збор,
а со тоа и последната мемориска локација, како највисока адреса ќе ја има
вредноста (m-1), според сл. 7-9 а) или б).
n
(n-1) (n-2) 2 1 0
n
0 0
1 1
2 2

(m-2) (m-2)
(m-1) (m-1)

n n
а) со посебни линии б) со двонасочни линии за читање/запишување
Сл. 7-9. Означување на адресите во мемориската матрица
Бидејќи бројот на мемориски локации m е многу голем, огромен би бил и
бројот на адресни линии, со кои надворешно би се адресирала меморијата,
заради што адресирањето на мемориските локации (пристапот до целиот
адресен простор, мемориската матрица) се врши преку адресен декодер, кој
влегува во составот на мемориската компонента.
Со неговата примена бројот на надворешни адресни линии се намалува
во голема мерка, поточно со логаритамска зависност, бидејќи за да се добијат
на излезот од декодерот m линии, на неговиот влез се потребни само k линии
при што треба да биде исполнет условот k=log2m, т.е. m=2k.
Во врска со последниот заклучок вкупниот број на мемориски локации m
со кои располага дадена мемориска компонента се добива како степен на бројот
2, така што секогаш ќе важи равенката
m = 2k (7-1)
каде што k е цел број поголем од 1 (k>>1), кој вообичаено се движи во опсегот
од 10 до 30.
МЕМОРИСКИ КОМПОНЕНТИ 203

Заради примената на адресниот декодер, адресната информација ќе


претставува низа битови (бинарен вектор) кои по декодирањето ќе активираат
точно одредена мемориска локација. Поточно, ќе го активираат оној мемориски
збор чија адреса во декадна нотација соодветствува на бинарно кодираната
адреса донесена на адресните линии. Имајќи го предвид фактот дека вкупниот
број на мемориски зборови е m = 2k и дека првиот мемориски збор има нулта
адреса, (m=0) , последниот збор како највисока адреса ќе ја има вредноста (2k-
1) што одговара на (m-1).
Бидејќи сите битови на адресата се носат едновремено (паралелно) до
влезот на декодерот, ќе биде потребна една група (множество) од k адресни
линии. Ова значи дека адресата на секоја мемориска локација ќе претставува k-
битен вектор (бинарен број) чија ширина е еднаква со бројот на адресни линии:
a(k-1)a(k-2)…a2a1a0, според сл. 7-10 а) б).
0
0 1
1 2
0
2
0 1
1 Адресен
Адресен декодер
декодер (k-2)
(k-2)
(k-1)
(k-1)
m=2k m=2k (m-2)
(m-2)
(m-1) (m-1)

а) со посебни линии б) со двонасочни линии за читање/запишување


Сл. 7-10. Еднодимензионално адресирање на мемориски локации со адресен декодер
Декодирањето на адресата се врши според природниот бинарен броен
систем според кој битот што се наоѓа на најлевата позиција има најголема
тежина a(k-1) , додека најдесниот бит има најмала тежина 20=1. Ваквиот пристап
до меморискиот простор кога за адресирање се користи единствен адресен
декодер претставува линарно или еднодимензионално адресирање. Во
практиката најчесто се сретнува т.н. дводимензионално адресирање кога до
мемориската матрица се пристапува со два адресни декодери: еден посебен за
редици еден посебен декодер за колони.
Покрај податочните (d(n-1) d(n-2) … d2d1d0) и адресните линии (a(k-1)a(k-
2)…a2a1a0), како и контролната линија за читање/запишување ( R / W ),
мемориските компоненти без исклучок имаат уште еден многу важен контролен
влез кој најчесто се означува со CS или ME , според англиските термини Chip
Select или Memory Enable. Станува збор за сигнал со кој се врши селекција и
овозможување на работа на мемориската компонента (меморискиот чип,
мемориското интегрирано коло). Овој сигнал CS (или ME ) е активен на ниско
ниво, што значи дека тој има ефективно дејство врз мемориското интегрирано
коло само ако е исполнет условот CS  0 (или ME =0). Само во овој случај
меморискиот чип е селектиран и меморијата е ставена во функција: таа може
да се адресира и со неа може да се извршуваат операциите читање или
запишување.
204 МЕМОРИСКИ КОМПОНЕНТИ

Меѓутоа, ако на овој влез се донеси високо логичко ниво CS  1 (или


ME =1), мемориската компонента ќе биде пасивна (нема ништо да работи)
бидејќи сите нејзини линии ќе одат во состојба на висока отпорност, така што
меморијата ќе биде практично исклучена од дигиталниот систем во чиј што
состав влегува.
Како заклучок, на сл. 7-11 а) б) се дадени симболичките ознаки на
мемориски компоненти со сите влезни и излезни податочни, адресни и
контролни линии.

n Do0-Do(n-1) n
Di0 -Di(n-1) n D0-D(n-1)

k A0-A(k-1) k A0-A(k-1)

R/W R/W
CS CS

а) со посебни линии б) со двонасочни линии за читање/запишување


Сл. 7-11. Симболички ознаки на мемориски компоненти

Капацитет на меморија
Капацитетот на меморијата го претставува вкупниот број на битови (b)
или бајти (B) со кој располага зададената мемориска компонента и него ќе го
означиме со w. Капацитетот може лесно да се добие ако се помножи вкупниот
број на мемориски локации (зборови) со нивната должина според следнава
равенка
w=mxn (7-2)
Капацитетот најчесто се изразува во единици што се многу поголеми од
битовите (b) или бајтите (B) бидејќи реалните мемориски компоненти кои
практично се применуваат располагаат со големи капацитети.
Во врска со ова, најчесто ќе се сретнуваме со единици како што се кило
(K), мега (M) и гига (G):
 1K=210=1024≈103,
 1M=220=210x2101024x1024≈106,
 1G=230=210x210x210=1024x1024x1024≈109,
Применувајќи ја равенката (7-1) во равенката за мемориски капацитет (7-
2) се добива уште една, многу почесто користена равенка за одредување на
капацитетот на меморијата
w = 2k x n (7-3)
Решени примери:
Заради појаснување на она што досега го презентиравме и анализиравме,
во продолжение ќе решиме неколку примери со зададени конкретни вредности.
МЕМОРИСКИ КОМПОНЕНТИ 205

Пример 7-1: Содржината на некоја мемориска компонента со мал


капацитет која располага со m=16 зборови е прикажана во облик на табела или
матрица (Таб.7-1). Во матрицата зборовите се прикажани како редици, при што
секој збор е составен од конечен број битови (n=8), кои ги претставуваат
колоните. Зборовите на мемориското коло се со должина од по 8 бита (n=8),
т.е. 1 бајт (B) што значи дека нејзиниот капацитет според равенката (7-1)
изразен во битови е w=16 збора х 8b/збор = 128 b, додека изразен во бајти би
бил w=16 збора x 1 B = 16 B.

Адреса на мемориска
Содржина на мемориска локација
локација
Бин. Дек. Хекса. Бин. Дек. Хекса. ASCII симбол
0000 0 1 01100001 97 61 а
0 0 01 1 2 0110001 0 98 62 b
0 0 10 2 3 01100011 99 63 c
0 0 11 3 4 01100100 100 64 d
0 1 00 4 5 01100101 101 65 e
0 1 01 5 6 01100110 102 66 f
0 1 10 6 6 01100111 103 67 g
0111 7 7 01101000 104 68 h
1 0 00 8 8 01101001 105 69 i
1 0 01 9 9 01101010 106 6A j
1 0 10 10 A 01101011 107 6B k
1 0 11 11 B 01101100 108 6C l
1 1 00 12 C 01101101 109 6D m
1 1 01 13 D 01101110 110 6E n
1 1 10 14 E 01101111 111 6F o
1111 15 F 01110000 112 70 p

Таб. 7-1. Содржина на мемориско коло со 16 зборови од по 1 бајт

Во меморијата сите информации се чуваат во бинарен облик, токму како


што и означено во првите две колони од адресата и податоците на табелата.
Меѓутоа, ваквите ознаки се разбирливи за машината (компјутерот), но за
човекот претставуваат проблем, како заради својата должина така и заради
бинарната основа 2, заради што адресите и содржините на зборовите во
меморијата се дадени во декаден облик, но и во хексадецимална нотација.
Декадното означување е многу поблиско за разбирање од страна на човекот,
додека со хексадецималното означување долгите бинарни низи (вектори) се
прикажуваат на наједноставен и најкомпактен начин: секоја четворка битови
(секој нибл) се заменува со единствена и соодветна хекса цифра. Од таб. 7-1 се
гледа дека во меморијаta се внесени ASCII кодовите на првите 16 мали букви од
англиската абецеда.
206 МЕМОРИСКИ КОМПОНЕНТИ

Пример 7-2: Табелата Таб.7-2 ја прикажува содржината на првите


четири мемориски локации од мемориска компонента која располага со поголем
број на зборови во однос на претходната бидејќи, како што може да се види од
дадената табела нејзиниот капацитет е m=1024DEC мемориски збора или 1 К
зборови кои се означени со адреси почнувајќи од првата (а=0DEC) до последната
(1023 DEC) кои го претставуваат адресниот простор на меморијата. Покрај ова,
од сликата се гледа дека секоја редица има по 8 полиња (мемориски ќелии) во
кои може да се смести по 1 бит што нè упатува на заклучокот дека секој збор
има должина n=8 бита или 1 бајт (1B). Дополнително од табелата се гледа и
тоа дека содржината на 0-та локација е d7d6d5 d4d3d2d1d0=01000001, на 1-та е
01000010(2), содржината на 2-та локација е 01000011, а во 3-та локација е
сместена содржината 01000100. Ако пред себе ја имаме таблицата на
стандарниот ASCII код, лесно ќе ги препознаеме податоците кои се запаметени
во првите четири локации. Имено, според ASCII табелата во нултата локација е
сместен кодот на буквата А, во првата се наоѓа кодот на B, во втората на C и во
третата на D.
Адреса на мемориска локација Содржина на мемориска локација
Индекс k=10 бита ASCII симбол n=8 бита
Hex Ai(dec) A 9 A 8 … A 2 A 1 A 0 Ch HEX DEC D7D6D5D4D3D2D1D0
000 0000 0 0 0 0 0 0 0 0 0 0 A 41 65 01000001
001 0001 0 0 0 0 0 0 0 0 0 1 B 42 66 01000010
002 0002 0 0 0 0 0 0 0 0 1 0 C 43 67 01000011
003 0003 0 0 0 0 0 0 0 0 1 1 D 44 68 01000100
004 0004 0 0 0 0 0 0 0 1 0 0 E 45 69 01000101
005 0005 0 0 0 0 0 0 0 1 0 1 F 46 70 01000110
006 0006 0 0 0 0 0 0 0 1 1 0 G 47 71 01000111
007 0007 0 0 0 0 0 0 0 1 1 1 H 48 72 01001000
008 0008 0 0 0 0 0 0 1 0 0 0 I 49 73 01001001
009 0009 0 0 0 0 0 0 1 0 0 1 J 4A 74 01001010
00A 0010 0 0 0 0 0 0 1 0 1 0 K 4B 75 01001011
... ... ... ... ...
... ... ... ... ...

3FE 1022 1111111110 b 62 98 01100010


3FF 1023 1111111111 а 61 97 01100001

Таб. 7-2. Содржина на мемориско коло со 1К зборови по 1 бајт

Знаејќи го вкупниот број на мемориски зборови и должината на секој


мемориски збор изразена во битови, може да го определиме капацитетот w на
зададената мемориска компонента согласно равенката (7-1). Пресметката за
капацитетот на меморијата w изразен во бајти (B) и битови (b), последователно
ќе биде:
w = m x n = 1024 збора х 8 b/збор = 210 x 1B = 1K x 1B, т.е. 1KB или 1024B,
w = 1K x 8b, т.е. 8 Kb или 8096 b.
МЕМОРИСКИ КОМПОНЕНТИ 207

Меморијата прикажана на претходната таб. 7-2, можеме да ја


искористиме и за претставување на операциите запишување и читање. Имено,
да земеме дека компјутерот треба да изврши две инструкции: прво ја чита
мемориската локација чија адреса е 3 и потоа прочитаната содржина ја
запишува во почетната локација со адреса 0.
Ако претпоставиме дека читањето е недеструктивно, што се подразбира,
тогаш по завршувањето на програмот содржината на мемориската локација со
адреса 0 ќе биде иста со онаа на адреса 3 при што и во двете локации ќе биде
сместен зборот 01000100(2)., т.е. во две мемориски локации ќе се чува ASCII
кодот на симболот D. Од меморијата неповратно ќе се изгуби податокот
01000001(2), т.е. ASCII кодот на буквата А кој беше сместен во првиот
мемориски збор со нулта адреса според таб. 7-3.

Hex Ai(dec) A9A8… A2A1A0 Ch HEX DEC D7 D6 D5 D4 D3 D2 D1 D0


000 0000 0000000000 D 44 68 0 1 0 0 0 1 0 0
001 0001 0000000001 B 42 66 0 1 0 0 0 0 1 0
002 0002 0000000010 C 43 67 0 1 0 0 0 0 1 1
003 0003 0000000011 D 44 68 0 1 0 0 0 1 0 0
Таб. 7-3. Содржини на првите четири локации на мемориско коло со 1К зборa по 1 бајт
Пример 7-3: На сликата сл. 7-12 а) б) е прикажана блок-шема - модел
на една мемориска компонента, која како и претходната има десет адресни
линии (k=10) и осум податочни (n=8). Имајќи ја предвид претходната анализа и
равенкaта (7-1) мемориското интегрирано коло располага со 1K мемориски
локации (k=10  m=210=1024=1K) со должина од 8 бита (n=8 b =1 B), што
значи дека нејзината внатрешна организација е m=1024 збора по n=8 бита од
каде според равенките (7-2 и 7-3) произлегува дека капацитетот на меморијата
изнесува w=1024 збора x 8 бита = 210 х 1 бајт = 1 КВ.
Првото интегрирано коло дадено на сл. 7-8 а) има две групи на
податочни линии: влезни и излезни. На влезните линии се поставува податокот
кој треба да се запише во меморијата, додека на излезните се добива податокот
кој се чита од неа. Кај второто коло дадено на сл. 7-8 б) постои само едно
множество податочни линии кои се двонасочни (бидирекционални): кога ќе се
запишува податок во меморијата тие ќе бидат влезни, додека кога ќе се чита
тие ќе бидат излезни.

n Do0-Do7 n
Di0-Di7 n D0-D7

k A0-A9 k A0-A9

R/W R/W
CS CS

а) со посебни линии б) со двонасочни линии за читање/запишување


Сл. 7-12. Симболи на мемориска компонента организирана како 1 К зборови х 1 бајт
208 МЕМОРИСКИ КОМПОНЕНТИ

Пример 7-4: Запишување во меморија. Да се одредат логичките


состојби на сите линии на зададеното мемориско коло со цел симболот „J“
(латиничната буква голема J според ASCII кодот) да се запиши во мемориска
локација со адреса 5DEC.
1. Избор на чип: CS =0;
2. Избор на адреса на мемориска локација: 5DEC=aBIN=0000000101. Оваа
адресна информација се поставува на адресните линии (од А9 до А0);
3. Избор на операција запишување: R / W =0;
4. Внесување на податок „J“=dBIN=01001010. Овој податок се поставува
на податочните линии (од D7 до D0);

Пример 7-5: Читање. Да се одредат логичките состојби на сите линии


на зададеното мемориско коло со цел да се прочита содржината на
мемориската локација со адреса 6DEC.
1. Избор на чип: CS =1;
2. Избор на адреса на мемориска локација: 6DEC=aBIN=0000000110. Оваа
адресна информација се поставува на адресните линии (од А9 до А0);
3. Избор на операција читање: R / W =1;
4. Изнесување на податок „G“=dBIN=01000111. Овој податок се поставува
на податочните линии (од D7 до D0);
Голем број од мемориските чипови се произведуваат со две контролни
линии: едната, WE , овозможува запишување, додека втората, OE овозможува
читање. При ова нивната логичка состојбата мора да биде комплементарна
една на друга: се чита кога WE =1 и OE =0, додека се запишува ако е исполнет
условот WE =0 и OE =1.

7.4. ПОДЕЛБА НА МЕМОРИСКИТЕ КОМПОНЕНТИ


Во натамошното излагање ќе се задржиме малку повеќе на поделбата на
полупроводничките мемории, бидејќи тие ќе бидат во фокусот на излагањето
што понатаму следува во рамките на оваа тема.
Во однос на тоа дали меморијата ја губи својата содржина со престанокот
на напојувањето или не, мемориските компоненти се делат на две големи групи
и тоа на деструктивни (анг. Volatile) и недеструктивни мемории (анг.
Non/Volatile memories) како што е претставено на сл. 7-13.
Кај недеструктивните мемории податоците што се внесени не се губат со
престанокот на напојувањето. Типичен и најпознат претставник на оваа група е
т.н. ROM меморија, или меморија од која може само да се чита (анг. Read Only
Memory).
МЕМОРИСКИ КОМПОНЕНТИ 209

ROM-от се изработува како интегрирано коло во кое податоците се


запишуваат со програмирање на внатрешните врски во структурата на
меморијата. Во ROM мемориските компоненти содржината може да се внесе
само еднаш и тоа во процесот на фабрикување на ваквото интегрирано коло.
ROM интегрираните логички кола имаат само еден контролен сигнал за
овозможено читање ( OE ) бидејќи кај нив не е можно да се запишува нова
содржина.

Полупроводнички
мемории

ROM RAM

Биполарни MOSFET Динамички Псеудо Статички


транзист. транзист. RAM статички RAM
RAM

Mаск Mаск
ROM PROM ROM PROM EPROM
(UVEPROM)
EEROM
(E2PROM)

Сл. 7-13. Поделба на полупроводничките мемориски компоненти

Програмабилната ROM меморија, која скратено се нарекува PROM, во


основа претставува ROM компонента кај која корисникот може сам да ги
програмира врските со употреба на посебен уред, PROM програматор, и со тоа
да внесува содржина по свој избор. По програмирањето, PROM-от се однесува
како ROM меморија бидејќи неговата содржина повеќе не може да се менува.

Посебна категорија на PROM мемориите се т.н. бришливи PROM


интегрирани кола (анг. erasable programmable ROM) или скратено EPROM-и. Тие
може да се програмираат исто како и PROM-мемориите, но покрај тоа нивната
содржина може да се брише со нивно изложување на ултравиолетова (UV)
светлина, со што постои можност за внесување на нова содржина во секоја од
мемориските локации посебно и тоа по пат на повторно програмирање на
врските.

EEPROM-от е уште една варијанта на PROM меморија, бидејќи неговата


содржина може да се избрише и да се репрограмира, но бришењето се врши по
електричен пат, со пуштање на струја со поголема јачина, а не со изложување
на ултравиолетова (UV) светлина како во случајот на EPROM компонентите.
Флеш (анг. Flash) мемориските интегрирани кола се посебна класа на EEPROM
мемориски компоненти кај кои запишувањето се врши во блокови, а не бајт-по-
бајт како кај класичниот EEPROM.
Во Таб. 7-4 е даден преглед на основните параметри на различните
типови RОМ мемории.
210 МЕМОРИСКИ КОМПОНЕНТИ

Тип Технологија Циклус на Циклус на Коментар


читање запишување
Маск ROM NMOS, CMOS 20-200 ns 4 недели Еднократно запишување; мала
моќност;
Маск ROM Биполарна <100 ns 4 недели Еднократно запишување; голема
моќност; мала густина;
PROM Биполарна <100 ns 5 минути Еднократно запишување; голема
моќност; без маска;
EPROM NMOS, CMOS 25-200 ns 5 минути Повеќекратно запишување;
мала моќност; без маска;
EEPROM NMOS 50-200 ns 10 s/бајт 10,000 запишувања/локација;
FLASH CMOS 25-200 ns 10 s /блок 100,000 циклуси на бришење;

Таб. 7-4. Споредбени карактеристики на различни типови RОМ мемории

Кај деструктивните мемории нивната содржина се брише со престанок на


напојувањето, меѓутоа, додека постои напојување, нивната содржина може да
се менува во секое време: да се читаат внесените податоци, да се бришат
постоечките и да се запишуваат нови. Токму затоа нивната кратенка е RWM што
прoизлегува од англискиот термин Read/Write Memory што би значело меморија
која може да се чита и во која може да се запишува. Меѓутоа, за ваквите
мемориски компоненти во практиката е нашироко распространета во употреба и
веќе насекаде прифатена многу попозната кратенка RAM, која доаѓа од
англискииот израз Random-Access Memory што значи меморија со случаен
пристап, а се однесува на фактот што времето кое е потребно за да се прочита
било кој бит не зависи од неговата местоположба во меморијата, поточно
времето за пристап до било кој податок во меморијата е еднакво (униформно).
Статичките RAM мемории (SRAM) се посебна група на RAM компоненти,
кај кои податоците се внесуваат и чуваат во мемориски ќелии реализирани со
леч флип-флопови (кола за заклучување). Тие во нив може да се чуваат, читаат
или да се менуваат сè додека мемориското интегрирано коло е приклучено на
напојување. Со исклучување на напојувањето податоците неповратно се губат.
SRAM мемориските ќелии се користат за изработка на ќеш (скриената)
меморијата која има најголема брзина работа.
Динамичките RAM мемории (DRAM) се друга група на RAM компоненти,
бидејќи кај нив податоците се чуваат како полнежи на многу мали
кондензатори заради што со тек на времето тие се празнат, па се јавува
потреба од често периодично обновување (освежување, анг. refresh) на
нивниот полнеж што обезбедува зачувување на информациите кои се внесени
во нив. Покрај асинхрониот DRAM во последно време се почесто кај
персоналните сметачи се јавува и синхрониот DRAM (SDRAM) кај кој преносот
се остварува синхроно со посебен такт сигнал и тоа со појавата на едниот раб
на тактот.
МЕМОРИСКИ КОМПОНЕНТИ 211

Како посебно брзи мемориски кола од ваков тип се познатите DDR


(Double Data Rate) SDRAM интегрирани кола, кои работат со двојно поголема
брзина на пренос на податоците, бидејќи пренесуваат податоци и на предниот
раб и на задниот раб на такт сигналот. Со помош на DRAM мемориските
интегрирани кола се реализира главната (оперативната, примарната) меморија,
која е со поголем капацитет од ќеш меморијата, но од неа е поспора во однос
на брзината на работа. Псеудо статичката DRAM меморија (PSRAM) всушност е
DRAM со интерни кола за освежување кои се однесуваат како SRAM.

7.5. ROM мемориски компоненти


ROM: ROM-от се изработува како интегрирано коло во кое податоците
се запишуваат со програмирање на внатрешните врски во структурата на
меморијата. Поточно, во процесот на програмирањето се воспоставуваат,
односно се прекинуваат одредени интерни врски формирани преку транзистори
изработени во биполарна или MOS технологија, кои внатрешно се поврзани
како диоди. Во ваквите ROM мемории содржината може да се внесе само еднаш
и тоа во процесот на фабрикување на ик според однапред изработена маска
заради што и се викаат маск-програмабилни ROM мемории. Маската ја
изработува производителот на ROM-от врз основа на барање што го поставува
корисникот за тоа која треба да биде нејзината содржина.
PROM: PROM меморијата има голема предност во однос на ROM
меморијата бидејќи корисникот може сам да ги програмира врските со употреба
на PROM програматор. Во процесот на програмирање секоја од воспоставените
врски може да се прекине ако низ неа протечат струјни импулси, што се прави
преку програматорот, и со тоа да се внесе логичка 0, па на овој начин
практично корисникот може да избира на кои позиции ќе ги остави 1-ците, а на
кои ќе внеси 0-и. По програмирањето, PROM-от се однесува како ROM меморија
бидејќи неговата содржина не може да се менува.
EPROM: EPROM-ите може да се програмираат исто како и PROM-
мемориите, но дополнително нивната содржина може да се брише и постои
можност пак да се внесе нова содржина. Ваквото однесување на EPROM-ите се
должи на фактот што тие користат MOS транзистори со т.н. пливачки гејт
бидејќи неговиот потенцијал може да се менува. Вообичаено EPROM-ите може
да се препрограмираат 10 до 100 пати. Бришењето на содржината на EPROM-от
се врши со негово изложување на ултравиолетова светлина заради што ваквите
мемориски кола се викаат и UV EPROM-и. EPROM интегрираните кола на своето
куќиште имаат проѕирен дел преку кој се гледа чипот во внатрешноста на
колото. По програмирањето проѕирниот дел се покрива со заштитна фолија,
која непосредно пред бришењето треба да се извади како би можел чипот да
биде изложен на ултра-виолетовата светлина.
EEPROM: EEPROM-от (или E2PROM-от) е уште една варијанта на PROM
меморија, но кај овие мемориски компоненти бришењето се врши по
електричен пат, со пуштање на струја со поголема јачина, а не со изложување
на UV зраци. Циклусите на бришење и запишување може да се изведуваат и
околу десетина илјади пати. Flash меморијата (FEPROM) е една варијанта на
EEPROM бидејќи може електронски да се брише, но до 100.000 пати.
212 МЕМОРИСКИ КОМПОНЕНТИ

7.6. RАМ
Концепцијата на SRAM меморијата е релативно едноставна за разбирање,
бидејќи станува збор за матрица од мемориски ќелии формирани од леч флип-
флопови, т.е. уредено множество на мемориски ќелии, организирани во редици
и колони. Нив им претходи логика за контрола на процесите на
читање/запишување, како и за декодирање на адресната информација. Во
практиката се користат синхрони и асинхрони SRAM чипови. Aсинхрониот SRAM
е независен од тактот, кој ја синхронизира работата на компјутерот. Кај
асинхрониот SRAM влезот и излезот на податоците се управуваат само со
појавата на контролните сигнали за селекција на чип и читање/запишување. Кај
синхрониот SRAM временското усогласување на адресата, влезните/излезните
податоци и другите контролни сигнали зависат од такт сигналот и се иницирани
со појавата на неговиот преден/заден раб. Тоа е овозможено со посложен
интерфејс во однос на интерфејсот кај асинхрониот SRAM бидејќи синхрониот
SRAM содржи интерни регистри кои ја овозможуваат синхронизацијата на
неговата работа.
7.6.1. SRAM МЕМОРИСКА ЌЕЛИЈА

За да можеме во поголеми детали да ја разбереме работата на SRAM


мемориските компоненти, најнапред ќе се задржиме на логичката структура на
нејзината елементарна градбена единка која е прикажана на сл. 7-14. Станува
збор за т.н. мемориска ќелија која може да запамти еднобитен податок.
Всушност се користи бистабилен мултивибратор, односно за флип-флоп од D-
тип применет како леч (коло за заклучување, задржување) кој може да биде
реализиран и со флип-флоп од SR тип. Во практиката мемориската ќелија
најчесто се реализира со шест MOSFET транзистори: два меѓусебно спрегнати
инвертори (составени од по еден CMOS транзисторски пар), што го памтат
податокот (битот) со дополнителни два транзистори, потребни за поврзување
на линиите преку кои се врши негово читање/запишување.
BL BL
WL

D Q Di Do
E Q R/W
а) принципиелна електрична шема б) логичка структура в) симбол
Сл. 7-14. SRAM мемориска ќелија
Новата содржина, т.е. новиот податок (новиот бит) се запишува преку
влезната линија D, додека запамтената содржина, т.е. битот кој што се чува во
ќелијата се чита од излезот на флип-флопот Q. При запишување на линијата за
контрола Е (за дозвола) се носи ниско ниво (E=0), додека новиот бит се
поставува на влезот D. При читање на линијата за контрола Е се носи високо
ниво (Е=1) со што на излезот Q се појавува тековната состојба на флип-флопот,
т.е. битот што е во него запамтен. Комплементарниот излез на леч-колото Q не
се користи.
МЕМОРИСКИ КОМПОНЕНТИ 213

Бидејќи еден бит е најмалото количество информација што може да го


запомниме, на следната слика сл. 7-15 а) ќе прикажеме на кој начин можеме да
поврземе четири мемориски ќелии за да добиеме еден мемориски збор со
должина од 4 бита, додека на сл. 7-15 б) тоа е претставено симболички. Имајќи
го во вид фактот дека сите 4 бита треба да бидат третирани како една целина,
линијата за контролата на читање/запишување едновремено се доведува на
истиот влез кај сите флип-флопови.
D IN D IN D IN D IN

D Q D Q D Q D Q

E E E E
R/W

D OUT D OUT D OUT D OUT


а) со четири мемориски ќелии
n
(n-1) (n-2) 2 1 0 n n
R/W R/W R/W
n n

б) симболички приказ за n- мемориски ќелии


Сл. 7-15. Формирање на еден мемориски збор
Меѓутоа, при формирањето на меморија од повеќе вакви мемориски
локации ќе се појави проблем бидејќи ваквите мемориски ќелии немаат линија
за адресирање, а со тоа нема да може да се направи селекција на мемориските
локации т.е. не може да се одлучи во која од нив да се внесе податокот кој во
процесот на запишување е присутен на влезните линии. Покрај ова, и
излезните податочни линии од ќелиите на различните локации НЕ можат
директно да се поврзат во единствена точка заради формирање на податочни
излезни линии од меморијата, во процесот на читање, бидејќи тогаш нивната
состојба ќе биде конфликтна: потенцијалот во спојната точка, а со тоа и на
секоја од податочните линии ќе биде недефиниран, според сл. 7-16.
D I0 D I1 D I2 D I(n-1)

D Q D Q D Q D Q

D Q D Q D Q D Q

D Q D Q D Q D Q

D O0 D O1 D O2 D O(n-1)
Сл. 7-16. Недозволено поврзување на излезите од мемориските ќелии за
формирање на податочни линии
Токму заради овие причини на следната слика сл. 7-17 е прикажана
посложената и вообичаена варијанта на мемориска ќелија која содржи допол-
нителна линија за адресирање означена со A, како и излезно баферско коло со
три состојби.
214 МЕМОРИСКИ КОМПОНЕНТИ

D IN D OUT
D Q

E Q
A Di Do
R/W A
R/W
а) логичка структура б) симбол
Сл. 7-17. Мемориска ќелија со адресен влез, податочен влез и податочен излез со три
состојби
Од дадената логичка шема се забележува дека состојбата на адресната
линија A има доминантна улога врз работата на мемориската ќелија, која е
презентирана со таб. 7-5.

А R /W Режим (Операција) Излез Потрошувачка


Неактивна (анг.
0 X Не е селектирана HiZ
standby)
1 0 Запишување HiZ Активна
1 1 Читање DOUT Активна
Таб. 7-5. Функционална таблица на мемориската ќелија од сл. 7-17
Доколку адресната линија А се наоѓа на ниско ниво (А=0), контролната
линија на баферот ќе оди на ниско ниво, со што ќе биде оневозможен преносот
на податокот од излезот на флип-флопот кон излезната податочна линија,
бидејќи излезниот бафер ќе оди во трета состојба (HiZ). Едновремено на ниско
ниво ќе оди и контролната линија Е (Е=0) заради што нема можност за
менување на постоечката состојба на флип-флопот и тој ја зачувува претходно
внесената содржина. Значи ако мемориската ќелија не е адресирана, во неа
ниту може да се запишува нова содржина, ниту од неа може да се чита
постоечката.
Ефективната работа на ќелијата (ќелијата е активна) само ако е
адресирана, поточно само ако се активира линијата A и на неа се постави
високо ниво (А=1) што ќе овозможи запишување или читање, зависно од
сигналот R / W (или WE ) при што:
 ако R / W =0, се отвора И-колото кое ја активира контролната линија Е
за запишувањето на податокот присутен на влезот DIN, а преку
второто И-коло се оневозможува излезниот бафер, бидејќи на
неговата контролна линија се испраќа ниско ниво и тој оди во трета
состојба (HiZ), додека
 ако R / W =1, се отвора И-колото, кое ја активира линијата за контрола
на излезниот бафер и таа оди на високо ниво, така што состојбата на
флип-флопот преку баферот се пренесува до излезот од мемориската
ќелија. При ова контролната линија Е за запишувањето на податокот
се наоѓа на ниско ниво (Е=0) и флип-флопот си ја задржува својата
состојба.
МЕМОРИСКИ КОМПОНЕНТИ 215

Од дадената слика и претходното објаснување станува јасна и улогата на


излезниот бафер кој овозможува излезот од ќелијата да ја рефлектира
состојбата на флип-флопот (1 или 0) на излезната линија, но дополнително
баферот може да се најде и во трета состојба на висока отпорност (HiZ, RD)
што овозможува поврзување на излезите од “паралелните” мемориски ќелии од
секоја локација во единствена заедничка точка и со тоа формирање на
единствена излезна податочна линија од меморијата за соодветниот бит,
според сликата сл. 7-18.
D I0 D I1 D I2 D I(n-1)

D Q D Q D Q D Q

D Q D Q D Q D Q

D Q D Q D Q D Q

D O0 D O1 D O2 D O(n-1)

Сл. 7-18. Поврзување на излези од мемориските ќелии и формирање на податочни


излезни линии
На сл. 7-19 а), б) и в) се дадени симболичките прикази на мемориска
локација формирана од осум вакви ќелии при што поединечните адресни линии
се врзуваат во единствена адресна линија, а исто така и поединечните водови
за контролата на читање/запишување се врзуваат во единствена контролна
линија.
n
(n-1)(n-2) 2 1 0 n n
A A A

R/W R/W n R/W n

а) б) в)
Сл. 7-19. Симболички ознаки на мемориска локација со посебни линии за
адресирање и контрола на читање/запишување
Кај мемориската ќелија, чиј логички дијаграм е прикажан на сл. 7-17
карактеристично е постоењето на две посебни линии за битот на податокот:
преку едната се запишува, додека преку другата се чита. Меѓутоа, ако се
воведе уште еден бафер паралелно на постоечкиот, но во спротивна насока,
според сл. 7-20 а) ќе може да се користи единствена линија за податок која ќе
биде бидирекционална, т.е. ќе овозможува преку неа податокот да се запишува
или да се чита.
216 МЕМОРИСКИ КОМПОНЕНТИ

Од сликата сл. 7-20 а) може да се извлече заклучок за принципот на


работа на вака реализираната мемориска ќелија.
1. Ќелијата нема да биде адресирана ако на адресната линија А се
постави ниско ниво (А=0). Тогаш и двата бафери се оневозможени
заради што не постои комуникација помеѓу флип-флопот и излезот од
ќелијата, кој ќе се наоѓа во трета состојба (HiZ). Флип-флопот е
пасивен и си ја чува постоечката состојба.
2. Ќелијата се адресира со поставување на високо ниво на адресната
линија (А=1), при што се можни две состојби кои зависат од нивото на
сигналот R / W :
 При читање треба R / W да оди на високо ниво ( R / W =1) со што
се овозможува горниот (излезниот) бафер да ја проследи
состојбата на флип-флопот до податочната линија, која во овој
случај ќе биде излезна, додека долниот (влезниот) бафер е
затворен;
 При запишување треба R / W да оди на ниско ниво ( R / W =0) со
што се овозможува долниот (влезниот) бафер да се
отвори/активира, а со тоа битот на податокот, кој се наоѓа на
податочната линија, која сега ќе биде влезна, да се внесе како
нова содржина во флип-флопот. При ова горниот (излезниот)
бафер е затворен.

Симболичката ознака на оваа мемориска ќелија е прикажана на сл. 7-20 б).

D IO
D Q

E Q
A
A D
R/W

R/W
а) логичка структура б) симбол
Сл. 7-20. Мемориска ќелија со адресен влез и двонасочна податочна
линија со 3 состојби
За формирање на 8 битен мемориски збор (локација) 8 мемориски ќелии
треба да се поврзат според сл.7-21 а) и сл. 7-21 б) на која е прикажана
нејзината симболичка ознака.

A D A D A D A D A D A D A D A D

R/W R/W R/W R/W R/W R/W R/W R/W

а) логичка структура
Сл. 7-21. Осум битна мемориска локација со адресен влез, контролен влез за
читање/запишување и двонасочна податочна линија
МЕМОРИСКИ КОМПОНЕНТИ 217

n
A A A

R/W R/W n R/W n


(n-1) (n-2) 2 1 0

б) симболи
Сл. 7-21. Осум битна мемориска локација со адресен влез, контролен влез за
читање/запишување и двонасочна податочна линија

Од сликата се гледа дека адресната линија за меморискиот збор е


единствена. Таа се приклучува паралелно на сите влезови за селекција на
ќелијата. Исто така паралелно во единствена линија се поврзуваат и влезовите
за читање/запишување. Само ваквото спојување на мемориски ќелии
обезбедува формирање на единствена мемориска локација како најмала
адресибилна формација на која ќе може да и се пристапи во меморијата.
Заради формирање на мемориска матрица треба да се изврши поврзување на
поголем број вакви локации според следната слика (сл.7-22). Имајќи во вид
дека ваквиот приказ е прилично оптоварен со линии и доста непрегледен,
многу почесто се користи симболич-ката ознака од сл. 7-23 а) или ознаката од
7-23 б), која ја прикажува мемориската матрица заедно со декодерот.
Адресната линија за секој меморискиот збор е посебна, додека сите поединечни
влезови за читање/запишување паралелно се поврзуваат во единствена линија
за контрола на читање/запишување.

0 D D D D D D D D
A A A A A A A A
R/W R/W R/W R/W R/W R/W R/W R/W

1 D D D D D D D D
A A A A A A A A
R/W R/W R/W R/W R/W R/W R/W R/W

(m-2) D D D D D D D D
A A A A A A A A
R/W R/W R/W R/W R/W R/W R/W R/W

(m-1) D D D D D D D D
A A A A A A A A
R/W R/W R/W R/W R/W R/W R/W R/W
R/W

D7 D6 D5 D4 D3 D2 D1 D0

Сл. 7-22. Поврзување на SRAM мемориски ќелии за формирање на 8 битна мемориска


матрица со m-адресни влезови, единствен контролен влез за читање/запишување и
двонасочна податочна линија
218 МЕМОРИСКИ КОМПОНЕНТИ

n n
0 0
1 1
2 2
0
1
Адресен
декодер
(k-2)
(k-1)
(m-2) m=2k (m-2)
(m-1) (m-1)

R/W
n
R/W

а) без адресен декодер б) со k/m адресен декодер за кој важи m=2k


Сл. 7-23. Логичка структура на 8 битна мемориска матрица со m-адресни влезови,
контролен влез за читање/запишување и двонасочна податочна линија

Покрај екстерните k, односно интерните m=2k адресни водови и


податочните n линии, како и влезот за читање/запишување R / W (или WE ),
мемориските RAM компоненти располагат и со два дополнителни контролни
влеза според сл. 7-24. Со едниот влез се селектира мемориското интегрирано
коло заради што тој се означува со CS (селекција на чип, анг. chip select), додека
вториот влез OE го контролира и овозможува или оневозможува излезот на
податоците (читањето) (анг. output enable), според сл. 7-24 а) и б). Кај реалните
мемориски компоненти овие сигнали најчесто се активни на ниско ниво.
Ако чипот не е селектиран, тогаш CS  1 , и сите податочни водови се
наоѓаат во трета состојба (HiZ). За да се чита или запишува во меморијата таа
мора да биде селектирана со доведување активно (ниско) ниво на линијата за
селекција на чип ( CS  0 ). При ова, на адресните линии, а со тоа и на влезот од
адресниот декодер треба да биде поставена адресната информација на
специфицираната мемориска локација со што ќе се активира соодветната
излезна адресна линија од декодерот.
A
CS A D
D IO CS
WE WE
D Q
OE OE
A E Q
CS A D
R/W CS
R/W

а) логичка структура б) симболички ознаки


Сл. 7-24. Мемориска ќелија со контролната логика за селекција, адресирање и
читање/запишување
МЕМОРИСКИ КОМПОНЕНТИ 219

Во овие услови за да се чита треба да биде исполнет условот R / W =1 ако


читањето и запишувањето се управуваат со еден контролен сигнал R / W ,
односно ќе треба да важи WE =1 и OE =0 кога меморискиот чип располага со
два контролни сигнали за управување на овие процеси. Меѓутоа ако се
запишува, логичките состојби на сигналите треба да бидат спротивни од
претходно: во случај на единствен контролен сигнал за читање/запишување
треба да важи R / W =0, односно WE =0 и OE =1 ако станува збор за два
контролни сигнали за контрола на читањето/запишувањето во меморијата.
Адресен
декодер
(k-2) (m-1)
k во m
(k-1) k (m-2)
m=2
Din Dout Din Dout Din Dout Din Dout
MC MC MC MC
A A A A
R/W R/W R/W R/W

CS
WE
(R/W)

OE
Din/Dout Din/Dout Din/Dout Din/Dout
(n-1) (n-2) (n-3)

Сл. 7-25. Мемориски збор формиран во рамките на SRAM мемориска матрица заедно со
контролните сигнали
Сликата 7-25 го прикажува поврзувањето на четири мемориски ќелии од
некоја SRAM мемориската матрица во единствен мемориски збор вклучувајќи ја
контролната логика и адресниот декодер. Според сликата станува збор за
последната локација на меморијата која има највисока адреса a(m-1)=2k-1 која ќе
биде адресирана ако сите влезни адресни линии се наоѓаат на високо ниво, т.е.
ако важи a(k-1), a(k-2), a(k-3)… a1, a0 = 111…11.

7.6.2. АСИНХРОНО ЧИТАЊЕ И ЗАПИШУВАЊЕ


Работата на меморијата, а со тоа и процесите на нејзино читање и
запишување ги контролира и управува централниот процесор. Додека работата
на процесорот е синхронизирана од неговиот внатрешен такт сигнал,
меморијата може да функционира и асинхроно. Нејзината работа се управува со
промената на логичките нивоа на нејзините влезни контролни сигнали за
селекција на чип и оние сигнали што треба да се постават на двете контролни
линии за читање/запишување. Сигналите присутни на линиите за адресирање
ја специфицираат мермориска локација чија содржина се појавува на податоч-
ните линии.
За објаснување на операциите читање од адресирана мемориска
локација, или запишување во неа, ќе користиме временски дијаграми дадени на
сл.7-26 кои ги прикажуваат напонските нивоа, а со тоа и логичките состојби, на
влезните и излезните водови, преку кои комуницираат компонентите на диги-
талниот систем. За презентирање на високо ниво на логичка 1, ќе користиме
напонски правоаголен импулс со одредено времетраење Tp (сл.7-26 а).
220 МЕМОРИСКИ КОМПОНЕНТИ

За ниско ниво (ниво на логичка 0) напонот е нула заради што на


временската линија во периодот Tp нема да има никаква промена на напонот и
нивото ќе биде нула (сл.7-26 б). Доколку во периодот Tp на водот може да се
појави податок со било каква вредност, високо или ниско (1 или 0), на
почетокот и во крајниот момент на перидот Tp се поставуваат две накрсни
линии во облик на буквата “X” (сл.7-26 в). Помеѓу нив се повлекуваат две
паралелни линии со t-оската за ниско и за високо ниво кои означуваат појава
на бинарен податок чие времетраење е еднакво на Тр. Доколку за време на
периодот Тр водот се најде состојба на бесконечно голема отпорност (висока
импенданса, HiZ) се повлекува паралелна линија на временската оска со
напонско ниво на половина помеѓу високото и ниското (сл.7-26 г).

а) TP t б) TP t в) TP t г) TP t
Сл.7-26. Бранови облици на напоните кои одговараат на различни логички состојби
На следните временски дијаграми визуелно се презентирани логичките
состојби на мемориските линии кои се дадена една под друга со што лесно се
воочува редоследот на појавување и времетраење на сигналите присутни на
тие водови. И во двата случаи за релизација на операциите, сигналот за
селекција на чип треба да биде низок, додека до меморијата се пристапува
преку позната адреса чии адресни битови се поставуваат на адресните линии.
Состојбите на линиите за контрола на читањето/запишувањето ќе ги менуваат
своите вредности во завизност од операцијата која ќе треба да се изврши.
Процесот на читање се реализира кога е исполнет условот WE =1 и
OE =0. Податокот кој се чита и кој е запамтен во специфицираната мемориска
локација не може да се појави на податочната магистрала едновремено со
појавувањето на адресната информација на адресните водови, туку за тоа е
потребен одреден временски интервал. Имајќи го во вид претходното, се
дефинира време на пристап, прикажано на временските дијаграми од сл. 7-27
како максимално време, кое ќе помине од моментот на поставување на
адресната информација на адресните линии, па сè до моментот кога на
излезните податочни линии ќе се појави содржината на адресираната локација.
Временскиот период во кој адресната информација се доведува на адресните
линии и се здржува одреден временски период потребен за да се прочитаат
податоците се дефинира како време на циклусот на читање и се означува со tRC.
tRC
Адреса Важечка адреса

t
CS

t
OE

t
Излез на Важечки
податоци податоци
t
Сл. 7-27. Циклус на читање и време на пристап
МЕМОРИСКИ КОМПОНЕНТИ 221

Кога се извршува операција запишување логичката состојба на


контролните линии треба да биде WE =0 и OE =1. Слично како кај читањето,
кај запишувањето се дефинира време за циклус на запишување означено со
tWC, кое е прикажано на временските дијаграми од сл. 7-28. Овај временски
интервал го претставува максималното време, кое е потребно од поставување
на адресната информација до завршување на сите интерни (внатрешни)
мемориски операции, со кои во специфицираната адресна локација се запишува
новиот податок (меморискиот збор).
tWC
Адреса Важечка адреса

t
CS

t
WE

t
Влез на Важечки
податоци податоци
t
Сл.7-28. Циклус на запишување и време на циклус на запишување
Имајќи го во вид претходното објаснување како и временските дијаграми на
сл. 7-27 и сл. 7-28 треба да се знае дека при читање или запишување во
меморијата, процесорот е koдигиталната компонента која управува со
состојбата на контролните линии. При ова, заради правилна работа на
дигиталниот систем, тој треба да го зема предвид времето на доцнење помеѓу
последователното појавување на контролните сигнали во рамките на времето
на циклусот на читање, односно во рамките на циклусот за запишување.

7.6.3. МЕМОРИСКИ ЦИКЛУС НА СИНХРОНО ЧИТАЊЕ


Функционирањето на синхрониот SRAM е временски усогласено со
системскиот такт според кој работи и процесорот, поточно со појавата на
неговиот активен раб кога започнува конкретниот процес на читање или на
запишување. Во поглед на мемориската матрица и контролните сигнали не
постои принципиелна разлика помеѓу синхрониот и асинхрониот SRAM. Меѓутоа,
основната разлика е во тоа што синхрониот SRAM во себе содржи различни
регистри во кои се заклучуваат сите сигнали: податоците, адресата и
контролните сигнали и тоа синхроно со појавата на предниот раб на
системскиот такт.
Операцијата читање на податок од зададена мемориска локација се
извршува во неколку базични чекори, кои се попрегледно објаснети со
временските дијаграми презентирани на сл. 7-29.
222 МЕМОРИСКИ КОМПОНЕНТИ

еден
циклус

CLK T1 T2 T3 T4
t
Важечки адреси

Адреса адр.1 адр.2 адр.3

CS

t
R/W
(WE)
t

OE

t
Важечки податоци
Излез на
податоци под.1 под.2 под.3

Сл. 7-29. Временски дијаграми на карактеристични сигнали кога се реализира


циклус на читање од меморијата

(1) Непосредно пред појавата на растечкиот (активниот) раб на такт


сигналот микро-процесорот на адресните линии ја поставува адресата што ја
специфицира мемориската локација од која треба да биде прочитан
меморискиот збор (бинарниот податок),
(2) Едновремено со тоа процесорот ја активира линијата за селекција на
меморискиот чип CS поставувајќи на неа ниско ниво ( CS =0), додека процесот
на читање го овозмо-жува така што на контролната линија за
читање/запишување WE поставува високо ниво и на линијата за овозможен
излез OE ниско ниво ( WE =1 и OE =0),
(3) Почнувајќи од моментот кога на адресните водови ќе се постави
адресната информација и доцнење кое е еднакво со времето на пристап, на
мемориските податочни линии се поставуваат осумте битови на податокот
(содржината) на адресираната мемориска локација. Тие се појавуваат во истиот
такт интервал, или во следниот што зависи од тоа за каков начин на читање
станува збор.
Прочитаниот податок (бајт) од специфицираната (адресираната) мемориска
локација процесорот го запишува во својот интерен регистер како негова нова
содржина со што завршува операцијата читање и процесорот може да извршува
друг циклус на читање или на запишување.
МЕМОРИСКИ КОМПОНЕНТИ 223

7.6.4. МЕМОРИСКИ ЦИКЛУС НА СИНХРОНО ЗАПИШУВАЊЕ

И операцијата запишување на податок во конкретно адресирана мемориска


локација се изведува во неколку основни чекори, според временските дијаграми
дадени на сл. 7-30.
еден
циклус

CLK T1 T2 T3 T4
t
Важечки адреси

Адреса адр.1 адр.2 адр.3 адр.4

t
CS

t
R/W
(WE)
t
Важечки податоци
Влез на
податоци под.1 под.2 под.3 под.4

t
Сл. 7-30. Временски дијаграми на карактеристични сигнали при циклус на
запишување
(1) Непосредно пред појавата на активниот (предниот) раб на такт сигналот
адресната информација, што ја специфицира мемориската локација, во која
треба да биде запишан (внесен) меморискиот збор (бинарниот податок), се
поставува од страна на микро-процесорот на адресните линии. Едновремено со
тоа процесорот го селектира и меморискиот чип, т.е. овозможува тој да
функционира преку активирање на соодветната линија за селекција на чип CS
која ја спушта на ниско ниво ( CS =0),
(2) Во истиот момент процесорот на контролната линија за
читање/запишување WE поставува активен сигнал за запишување, а тоа е
ниско ниво: WE =0. Време-траењето на овој сигнал треба да биде доволно
долго за податоците присутни на податочните линии да се запишат во
мемориската компонента по што овој сигнал станува пасивен, т.е. се враќа на
високо ниво.
На овој начин процесот на запишување на нов збор (податок), кој е
поставен на податочната магистрала, се запишува како нова содржина на
посочената (адресираната) мемориска локација во еден такт на процесорот, или
во следниот такт интервал, што зависи од тоа за каков начин на запишување
станува збор.
224 МЕМОРИСКИ КОМПОНЕНТИ

циклус

CLK T1 T2 T3 T4
t
Важечки адреси

Адреса адр.1 адр.2 адр.3 адр.4

некорисен запишу- t
читање читање циклус -вање читање
R/W
(WE)
t
Важечки податоци
Влез на
податоци под.1 под.2 под.4 под.4

t
Сл. 7-31. Временски дијаграми на карактеристични сигнали при читање и запишување

Пример: За примерот што во продолжение ќе го презентираме со таб. 7-6


ќе претпоставиме дека процесите на читање и запишување се однесуваат на
комуникацијата помеѓу централниот процесор и SRAM мемориски чип кај некој
едноставен микро-компјутер. Ако усвоиме дека неговиот микропроцесор
располага со k=16 адресни и n=8 податочни линии тоа значи дека меморискиот
простор кој тој може да го адресира е 216 мемориски зборови, т.е.
26х210=64х1024=64K зборови со должина осум бита (еден бајт). Заради ова се
користи соодветнo меморискo ЅRAM интегрирано коло исто така со k=16
адресни и n=8 податочни линии со капацитет 216=64KB.

Контролни линии Адресни линии Податочни линии


Операција CS R /W Бин. Хекса. Бин. Хекс. Насока
(Смер)

Читање 0 1 0000000011001010 00CA 11110000 F0 Излезни

Пишување 0 0 0000000011001111 00CF 01111001 79 Влезни

HiZ (Висока
Неактивна 1 Х XXXXXXXXXXXXXXXX xxxx xxxxxxxx xx
отпорност)

Таб. 7-6 Пример на основните мемориски операции

Во таб. 7-6 е прикажана состојбата на сите линии кај RAM мемориската


компонента кога а) се чита податокот 240DEC = 11110000BIN што се наоѓа во
мемориска локација чија адреса е 202DEC = 0000000011001010BIN; б) во
мемориска локација со адреса 207DEC = 0000000011001111BIN се запишува
податокот 121DEC = 01111001BIN; в) процесорот не комуницира со меморијата.
МЕМОРИСКИ КОМПОНЕНТИ 225

ПРАШАЊА И ЗАДАЧИ ЗА ПОВТОРУВАЊЕ


7-1. Која е основната улога (задача) на мемориските компоненти и уреди?
7-2. Спореди ги полупроводнички мемории и тврдите дискови и наведени ги
нивните предности и слабости во поглед на брзина на работа, капацитет и цена
на чинење.
7-3. Од организациски аспект каква логичка структура претставува меморијата?
7-4. Меморискиот збор е …
7-5. Мемориска локација е …
7-6. Мемориската ќелија претставува …
7-7. Должината на зборот претставува … и се изразува во …
7-8. Содржина на зборот е …
7-9. Која е улогата на податочните линии? Каква информација се појавува на
нив? Од што зависи нивниот број?
7-10. Најмалата адресибилна целина во меморијата е …
7-11. Кои се двете основни операции со кои меморијата ја остварува својата
функција?
7-12. Читањето претставува . . .
7-13. Запишувањето претставува . . .
7-14. Која е разликата помеѓу деструктивното и недеструктивното читање?
7-15. Адресата претставува . . .
7-16. Која е улогата на адресните линии? Каква информација се појавува на
нив? Од што зависи нивниот број?
7-17. Која е улогата на адресниот декодер?
7-18. Капацитетот на меморијата претставува . . .
7-19. Колку адресни и податочни линии треба да има бајт-организирано
мемориско коло ако има капацитет од а) 512 МВ б) 8КВ в) 64 КВ? Одговори го
истото прашање ако мемориските зборови имаат должина два бајти (1 збор = 2
В).
7-20. Која е намената на контролната линија R / W ?
7-21. Која е намената на контролната линија WE ?
7-22. Која е намената на контролната линија OE (сл. 7-32)?
7-23. За што служи контролната линија CS ( ME )?
7-24. Која е улогата на секоја од влезните/излезните линии за мемориските
компоненти чии симболички ознаки се прикажани на следните слики?
226 МЕМОРИСКИ КОМПОНЕНТИ

n Do0-Do(n-1) n
Di0-Di(n-1) n D0-D(n-1)

k A0-A(k-1) k A0-A(k-1)

R/W R/W
CS CS
a) б)
Сл. 7-32
7-24. Како е организирана и колкав капацитет изразен во бајти има мемориска
компонента со k адресни линии при што а) k=10 б) k=16 в) k=20 в) k=30 ако
истата располага со n податочни линии при што а) n =8 б) n =16 в) n =32 г) n
=64. Нацртај нејзин симбол.
7-25. Колку адресни и податочни линии треба да има мемориска компонента
која располага со а) m=1024 б) m=4096 в) m=65536 г) m=536870912 мемориски
зборови со должина од а) n=8 б) n=16 в) n=32 г) n =64 бита. Нацртај нејзин
симбол.
7-26. Да претпоставиме дека треба да купиме мемориско интегрирано коло во
кое треба да сместиме една книга од а) 100 б) 250 б) 320 страни чиј текст ќе го
внесуваме кодиран според 8-битниот ASCII код. Колкав капацитет изразен во
бајти треба да има мемориската компонента што ќе треба да ја набавиме за да
може да се внесе текстот на посочената книга? Каква треба да е организацијата
на меморијата за да може посебно да му се пристапи на секој симбол од
текстот? Колку вакви книги можат да се сместат во оперативната меморија од
(1) 1 GB (2) 2 GB на Пентиум базиран персонален сметач?
7-27. Која е основната разлика и сличност помеѓу ROM и RAM мемориските
компоненти во поглед на пристапот до податоците и времетраењето на нивното
памтење?
7-28. Наведи ја поделбата на ROM мемориските компоненти. Која е разлика
помеѓу нив?
7-29. Наведи ја поделбата на RAM мемориските кола. Која е разлика помеѓу
нив?
7-30. Кои се разликите помеѓу SRAM и DRAM мемориските компоненти?
7-31. Наведи ги разликите помеѓу асинхрониот и синхрониот SRAM.
7-32. Нацртај ја принципиелната електрична шема на SRAM мемориска ќелија.
7-33. Нацртај ја логичката структура на SRAM мемориска ќелија со две
податочни линии. Објасни го нејзиниот принцип на работа користејќи
функционална табела.
7-34. Нацртај ја логичката структура на SRAM мемориска ќелија со една
податочна линија. Објасни го нејзиниот принцип на работа користејќи
функционална табела.
МЕМОРИСКИ КОМПОНЕНТИ 227

7-35. Во дадената табела 7-7 прикажи ја содржината на првите и последните


три мемориски локации ако во нив се сместени ASCII кодовите на буквите: a, b,
A и B, како и цифрите 1 и 2 според 8-битниот ASCII код. Претпостави дека
мемориската компонента располага со а) 16 б) 32 мемориски зборови со
должина (1) 1 бајт (2) 2 бајти.

7-36. Мемориска компонента со капацитет а)1К б) 4К в) 16К г) 64К бајти чии


мемориски зборови имаат должина од 1) 1 бајт 2) 2 бајти. Во мемориските
локации со адреси а) 255(10) б)256(10) в)1023(10) г)1024(10) д) 4095(10) ѓ) 4096(10)
последователно се запамтени буквите a, b, A и B, како и цифрите 1 и 2 според
8-битниот ASCII код. Пополни ја приложената табела 7-7.

Адреса Содржина

Бин. Хекса. Бин. Хекса. ASCII симбол

Таб. 7-7

7-37. Каква е состојбата на контролните, адресните и податочните линии а) за


да се прочита податокот кој се наоѓа запамтен во мемориска локација со адреса
а) 4095 б) 4096 и потоа да се запише во мемориска локација со адреса а) 1023
б) 1024. Пополни ја приложената табела 7-8.

Контролни линии Адресни линии Податочни линии

Опера-
CS R /W Бин. Хекса. Бин. Хекса. Насока
ција

Таб. 7-8
7-38. Објасни ја улогата и временскиот редослед на појавување на сигналите
кои се однесуваат на процесот на а) читање б) запишување кај асинхрон RAM
чип според временските дијаграми прикажани на сл. 7-26 и сл. 7-27.
228 МЕМОРИСКИ КОМПОНЕНТИ

7-39. Објасни ја улогата и временскиот редослед на појавување на сигналите


кои се однесуваат на процесот на а) читање б) запишување кај синхрон RAM
чип според временските дијаграми прикажани на сл. 7-28 и сл. 7-29.
Претпостави дека фреквенцијата на системскиот такт изнесува 5 MHz.

7-40. Потруди се преку интернет да го најдеш, разгледаш и анализираш


документот со податоци (анг. datasheet) кој ги содржи деталните технички
карактеристики за мемориското интегрирано коло 74LS189. Потоа поконкретно
објасни а) за каква меморија станува збор, б) која е улогата на секој од
пиновите на колото, в) каков е неговиот принцип на работа, и г) прикажи еден
пример со кој ќе го демонстрираш функционирањето на колото.
.

8.
ДИГИТАЛНО –
АНАЛОГНА и
АНАЛОГНО –
ДИГИТАЛНА
КОНВЕРЗИЈА
По изучувањето на оваа тематска целина
 ќе ги познавате базичните поими кои се однесуваат на Д/А и
А/Д конверзија;
 ќа ги разберете основните концепти на процесите на Д/А и
А/Д конверзија;
 и процесот на Д/А и А/Д конверзија;
 ќе ги познавате и принципиелно ќе знаете да ги објаснете
различните методи на Д/А и А/Д конверзија;
 ќе ги познавате различните типови на Д/А и А/Д конвертори
и ќе ја разберете нивната работа;
230 Д/А и А/Д КОНВЕРЗИЈА
Д/А и А/Д КОНВЕРЗИЈА 231

8.1. ВОВЕД
Глобалната и воедно најопштата слика на проблематиката на аналогно-
дигиталната (А/Д) и дигитално-аналогната (Д/А) конверзија е прикажана на сл.
8-1. На едната страна се наоѓа реалниот (физичкиот) свет, а на другата страна се
дигиталните систeми. Тие може меѓусебно да комуницираат само со помош на А/Д
и Д/А конвертори кои како посебни компоненти имаат задача да извршат
прилагодување. Имено, во основа постои фундаментална разлика: појавите во
реалниот свет во општ случај се континуални, тие примаат бесконечно многу
вредности, заради што сигналите со кои тие се опишуваат се аналогни. Од друга
страна, дигиталните системи работат само со дигитални сигнали. Тоа се низи од
бинарни зборови од кои секој претставува комбинација од само две напонски
нивоа: високо V(1)=+VCC и ниско V(0)=0 кои соодветствуваат на логичка 1 и
логичка 0 кои претставуваат бинарно кодирани репрезенти на сигнали кои имаат
дискретни вредности со конечен број на нивоа.

Сл. 8-1. Општа блок-шема за местото и улогата на А/Д и Д/А конверторите во


интеракцијата помеѓу реалниот свет и дигиталните системи
А/Д и Д/А конверторите се неопходно присутни во дигиталните уреди, па
може да се каже и пошироко, бидејќи многу често се користат скоро во сите
електронски уреди. Заедничката употреба на А/Д и Д/А конверторите обезбедува
целосно поврзување (анг. interface) со секакви сензори (анг. sensors) на влезот и
излезни претворувачки елементи (анг. transducers) на излезот со цел реализација
на контролна и управувачка улога кај електронските системи, процесите и
појавите од реалниот свет. На сл. 8-2 А/Д и Д/А конверторите се прикажани на
наједноставен начин како влезен и излезен блок кај некој дигитален систем за
општа намена, додека на сл. 8-3 е даден пример за А/Д и Д/А конверзија на аудио
сигнал со персонален компјутер.
232 Д/А и А/Д КОНВЕРЗИЈА
+VCC +VCC
n - бита n - бита

D(n-1) D(n-1)
Аналоген D(n-2) D(n-2) Аналоген
Сигнал Дигитален Сигнал
Влез АДК систем ДАК Излез
Vin (Компјутер) Vout
D1 D1
D0 D0

GND GND
Сл. 8-2. Наједноставна блок-шема на поврзување на компјутер со А/Д и Д/А конвертор

Сл. 8-3. А/Д и Д/А конверзија на аудио сигнал со персонален компјутер

Кога треба на влезот од дигитален уред да се приклучи аналоген уред,


работата станува прилично комплексна, бидејќи директното поврзување на
аналогните излези на дигитални влезови е невозможно бидејќи аналогните
сигнали можат да имаат бесконечно многу вредности, додека дигиталните
конечно многу дискретни вредности во ограничен опсег. Она што треба да се
направи е да се најде начин да се изврши електронска трансформација на
аналогниот сигнал во дигитален облик, како низи од логички 1-и и 0-и со конечна
должина (бинарни зборови, вектори). Во врска со ова, А/Д конверторот (анг.
analog-to-digital converter, ADC) е електронска компонента или уред кој на својот
единствен влез добива аналоген сигнал, најчесто напон или струја и врши негово
претворување (конверзија) во дигитален сигнал, т.е. зборови од кои секој
претставува низа од битови според одреден бинарен код или во бинарни броеви
според природниот бинарен броен систем. За секој бит на излезот од А/Д
конверторот постои посебна линија по која тој се проследува на понатамошна
обработка до процесорот на дигиталниот систем.
Од друга страна, Д/А конверторот (анг. digital-to-analog converter, DAC) ја
извршува обратната функција. Имено, по завршувањето на обработката на пода-
тоците, резултатите се добиваат во дигитален облик како комбинации од битови
кои по посебни линии се испраќаат до влезовите на Д/А конверторот, кој истите
ги претвора во аналоген сигнал и го пренесува на својот единствен излез.
Поврзувањето на излезите од логичките кола со претворувачки елементи (анг.
tranducers) е прилично едноставно, бидејќи тие самите по својата природа се
дигитални елементи. Имено, излезите од логичките кола лесно се поврзуваат на
транзистори, релеа, итн. заради нивниот принцип на работа со две положби:
вклучен - исклучен, каква што е и природата на сигналите кои се добиваат на
излезите од дигиталните компонети.
Д/А и А/Д КОНВЕРЗИЈА 233

Во оваа тематска целина фокусот ќе биде ставен токму на А/Д конверзијата


и нејзиниот обратен процес, Д/А конверзијата, со посебна анализа и објаснување
на различните постапки на конверзија, како и на принципот на работа на
различните видови конвертори.

8.2. ДИГИТАЛНO-АНАЛОГНA КОНВЕРЗИЈА


Претходно веќе е истакнато дека Д/А конверзијата е процес кој е
поедноставен за реализација во однос на инверзниот процес на А/Д конверзија.
Што е уште поважно, во практиката се користат А/Д конвертори, кои во својот
состав содржат Д/А конвертор, заради што најнапред ќе биде обработен процесот
на Д/А конверзија, а потоа и А/Д конверзијата.
+VCC

D(n-1)
D(n-2)
n - бита Аналоген
Дигитален ДАК Сигнал
(Бинарен)
Влез Vout Излез
D1
D0

GND

а) наједноставна блок-шема б) симболичка ознака


Сл. 8-4. Д/А конвертор
Д/А конверторот има задача дигиталниот сигнал, кој е претставен како
множество од зборови, од кои секој има должина од конечен број битови n кои
доаѓаат на неговите влезови да го конвертира во аналоген облик. На сл. 8-4 а) и
б) се прикажани наједноставна блок шема и симболичка ознака на Д/А
конвертор.

8.3. БАЗИЧНИ РАВЕНКИ, ПОИМИ И ПРЕНОСНА КАРАКТЕРИСТИКА


Д/А конверторот за секој од n-те битови Di во зборот каде i=0, 1, 2, …, (n-1)
треба да генерира аналогна вредност соодветна на реципрочната вредност од
тежината Gi на тој бит во бинарниот збор и потоа сите овие аналогни вредности
треба да ги собере и на својот излез да даде единствена аналогна вредност VODAC
(VOUT) според следнава равенка:
VODAC = K·VREF (Dn-1Gn-1 + Dn-2Gn-2 + ... + D1G1 + D 0G0) (8-1)
Во равенката секој бит Di од зборот што се конвертира може да има
вредност само логичка 0 или 1, додека тежините Gi се претставени како степени
на бројот 2 почнувајќи од најголемиот 2(n-1) кон најмалиот 20=1: 2(n-1), 2(n-2), …, 8,
4, 2, 1, додека +VREF е референтниот напон на кој е приклучен Д/А конверторот.
Во претходната равенка константата на пропорционалност К треба да има
таква вредност, која ќе обезбеди излезниот напон да добива вредности во
границите помеѓу 0 и VREF. Тоа ќе биде исполнето само ако константата K е
234 Д/А и А/Д КОНВЕРЗИЈА

дропка, која го дели референтниот напон VREF на помали делови, така што треба
да важи K=1/2n. Заменувајќи ја последната констатација во равенката (8-1), таа
се трансформира и го добива следниов облик:
VODAC = VREF/2n · (Dn-12n-1 + Dn-22n-2 + ... + D121 + D 020) (8-2)
VODAC = VREF · (Dn-11/20 + Dn-21/21 + ... + D11/2n-1 + D 01/2n) (8-3)
n
Со ваков избор на константата K=1/2 (која важи за т.н. униполарна кодна
шема или униполарно кодирање за најмалата дигитална вредност кога сите
битови се 0-и се добива најмалото, нултото излезно ниво V0=0V, додека за
најголемата дигитална вредност кога сите битови се 1-и се добива најголемото
излезно ниво Vn-1=[(2n-1)/2n]·VREF. Имајќи ја предвид равенката (8-3) станува
јасно дека колку е бројот на битови n поголем, толку попрецизно ќе биде
добиеното излезно аналогно ниво бидејќи секој новододаден бит внесува
дополнителна помала дропка во конечниот збир со кој се дефинира вредноста на
излезното напонско ниво и со тоа го дели VREF на помали можни делови.
Равенката (8-2) може да се напише и во следниов облик:
VODAC = VREF/2n · d (8-4)
Во последната равенка со d е означена декадната вредност на бинарниот
вектор изразена преку збирот (Dn-1Gn-1 + Dn-2Gn-2 + ... + D1G1 + D 0G0).
На следната слика сл. 8-5 а) е прикажана идеализирана преносна
карактеристика на трибитен Д/А конвертор. Ваквиот конвертор на својот влез
може да добие дигитален сигнал претставен со било која од осумте можни
комбинации: 000, 001, 010, ..., 110, 111 бидејќи со 3 бита се кодираат 23=8
различни комбинации. За секоја од нив Д/А конверторот треба на својот излез да
продуцира соодветно напонско ниво во однапред зададени граници. Опсегот кој
го претставува максималното можно ниво на излезниот аналоген сигнал се вика
полн (целосен) износ на скалата и се означува со FS или FSR (анг. full scale range).
Неговата вредност зависи од референтиот напон VREF кој е приклучен на А/Д
конверторот.
VR (FS) VR (FS)
15VR 15
7VR 7 16 14
Аналоген излез

Аналоген излез

6VR 8 6
13
12
8 5VR 11
5 10
4VR 8 4
Q 8VR 9
8 Q
8 3VR 16 7
3 6
2VR 8 2
5
4
8 VR 3
1 VR 2
8 1
0 16 0
001 010 011100 101 110 111 0001... 0100 ... 0010 ... 1111
0000
000
а) Дигитален влез б) Дигитален влез

Сл. 8-5. Идеализирани преносни карактеристики на а) 3-битен б) 4-битен Д/А конвертор

Доколку станува збор за 4-битен Д/А конвертор, тогаш на неговиот влез ќе


можат да се појават 24=16 различни 4-битни вектори, според сликата сл. 8-5 б),
на која е претставена неговата преносна карактеристика.
Д/А и А/Д КОНВЕРЗИЈА 235

Ако претпоставиме дека полниот износ на скалата FS е ист и за двата


случаи, јасно е дека за вториот пример излезниот сигнал ќе биде со поголема
прецизност и подобар кавалитет, бидејќи целиот опсег FS се дели на два пати
повеќе нивоа. Во врска со наведеното, како мерка за прецизност и квалитет на
Д/А конверторот, се воведува поимот резолуција (анг. Resоlution) кој се однесува
на бројот на битови n на зборот, што тој може да ги конвертира, а со тоа и на
вкупниот број различни напонски нивоа N што може да се добијат на излезот од
Д/А конверторот. Имајќи во вид дека на влезот од Д/А конверторот се појавува
бинарен збор со должина n–бита, вкупниот број на различни нивоа N се добива
од познатата равенка N = 2n.

8.4. Д/А КОНВЕРТОРИ


Д/А конверторите во основа претставуваат кола, базирани на инвертирачки
засилувачки степени, чиј излезен напон претставува сума на повеќе влезни
напони. При ова излезниот напон, кој има максимална вредност, ограничена на
однапред зададено референтно ниво +VREF, се добива како збир од влезни
дискретни напонски нивоа, чии вредности се цел број пати помали од
референтното ниво. Ваквите делови имаат бинарна основа. Поточно, тие
претставуваат количници на референтното ниво +VREF со цели степени на бројот
2, така што излезниот напон од Д/А конверторот се добива како збир од VREF/2,
VREF/4, VREF/8, VREF/16, ... итн.
Овие напонски нивоа кај најголемиот број Д/А конвертори се добиваат со
помош на мрежа од прецизни отпорници со различни вредности, поврзани на
влезот од суматорот, на чии влезови се појавува нулто напонско ниво ако битот
на соодветниот влез е 0, или +VREF, ако битот на тој влез е 1.

n
8.4.1. Д/А КОНВЕРТОР СО R/2 R ТЕЖИНСКА ОТПОРНИЧКА МРЕЖА
n
Д/А конверторот со тежинска R/2 R мрежа или со бинарна тежинска
отпорничка мрежа, како што уште се вика, претставува една варијанта на
познатата шема на суматор реализиран со операциски засилувач. Станува збор за
инвертирачка конфигурација на операциски засилувач, побуден од повеќе влезни
напони, според принципиелната електрична шема прикажана на сл. 8-6 а). Кај
суматорот влезните сигнали се доведени преку отпорници со меѓусебно еднакви
вредности R1=R2= … =Ri= … =Rn=R, со цел секој поединечен влезен напон Vi да
има еднакво влијание врз излезениот напон V0. Имајќи во вид дека негативната
повратна спрега е изведена со отпорникот RF кој има иста вредност со влезните
отпорници (RF=R), напонот на излезот V0 ќе го претставува нивниот збир во
инвертиран облик според рав. (8-5).
V0 = − (V1 + V2 + … + Vn) = − ΣVi (8-5)
236 Д/А и А/Д КОНВЕРЗИЈА

V1 R R

V2 R
V0
Vn R

а) GND

V1 R1 RF

V2 R2
V0
Vn Rn

б) GND

Сл. 8-6. Електрични шеми на суматор со операциски засилувач а) со еднакви отпорници,


б) со различни вредности на отпорниците

Доколку влезните отпорници се разликуваат еден од друг, според сл. 8-6


б), различно ќе биде и влијанието на поединечните напони врз излезниот напон.
Имено, излезниот напон повторно ќе биде пропорционален со нивниот збир, но
повеќе нема да ја претставува точната вредност на сумата. Уште повеќе, со
промена на отпорникот RF во повратната врска се контролира и се одредува
засилувањето според следнава равенка:
 1 1 1 
V0   RF  V1  V2  ...  Vn  (8-6)
 R1 R2 Rn 

Токму оваа особина на суматорот е основа за правилна работа на Д/А


конверторот, кај кој било кое од влезните напонски нивоа V1, V2, …, Vn може да
биде високо (+VREF) или ниско (0V) што зависи од тоа дали битот на соодветната
позиција е 1, или 0. Од тука произлегува следнава равенка:
 1 1 1 
V0   RF  VREF   D1  D2  ...  Dn  (8-7)
 R1 R2 Rn 
Во врска со последната забелешка да претпоставиме дека конфигурираме
инвертирачко суматорско коло чии вредности на влезни отпорници меѓусебно
треба да се разликуваат за два пати почнувајќи од најмалиот кон најголемиот.
Поконкретно, ако отпорникот R1 преку кој се носи првиот напон V1 има вредност
R1=R, следниот отпорник ќе треба да има отпорност 2R, и секој нареден отпорник
ќе се зголемува за два пати во однос на својот претходник. Според ова, ако
станува збор за коло со три влеза (n=3), т.е. три битен Д/А конвертор чија шема е
прикажана на сл. 8-7 а) или б) отпорниците ќе бидат: R1=20R=R, R2=21R1=2R и
R3=22R1=4R.
Д/А и А/Д КОНВЕРЗИЈА 237

Покрај ова, да избереме отпорник во повратната врска RF чија вредност е


два пати помала од онаа на отпорникот R1=R, така што ќе важи RF=R1/2=R/2,
заради што согласно равенките (8-6) и (8-7), излезниот напон ќе биде:
1 1 1 
V0   V1  V2  V3  (8-8)
2 4 8 

R R
(MSB)V1

V2 2R
V0
4R
(LSB)V3

а) GND

+VREF (+VCC)
(MSB) v1 R
v2 2R R
(LSB) v3 4R
v0

б)
Сл. 8-7. Трибитен Д/А конвертор со R/2nR тежинска отпорничка мрежа

Имајќи ги предвид равенките (8-6) и (8-7), станува јасно дека ваквиот


избор на отпорници овозможува секој влезен напон V1, V2 и V3, да има точно една
половина помало влијание врз излезниот напон, во однос на претходниот,
согласно равенката (8-8). Кажано со други зборови, влезниот напон V1 ќе има
најголем ефект и ќе влијае врз излезниот напон со една половина од
максималниот референтен напон, следниот напон V2 ќе влијае врз излезот за
половина пати помалку од првиот, т.е. ќе допринесува со една четвртина од VREF,
додека V3 со уште една половина помалку од него, што значи ќе делува со една
осмина. Ваквите вредности на отпорниците, а со тоа и на влијанијата врз
излезниот напон не се случајно избрани бидејќи ги претставуваат истите
тежински односи кои одговараат на соодветните места на битовите кај
приридниот бинарен броен систем како би се реализирала равенката (8-3).
Според оваа анализа, во шемата од сл. 8-7 а) б), на влезот каде е приклучен
најмалиот отпорник треба да се доведе битот со најголема тежина 2n-1 (MSB),
додека на влезот каде што е најголемиот отпорникот треба да се приклучи битот
со најмала тежина 20 (LSB). Конечно може да заклучиме дека ако на влезот од
колото доведеме дигитални излези од три логички кола, а со тоа било која
комбинација од три бита, излезниот напон изразен во волти ќе биде аналоген
репрезент во декаден облик на бинарната вредност на овие три бита, според
следнава равенка:
1 1 1 
V0  V REF   D2  D1  D0  (8-9)
2 4 8 
238 Д/А и А/Д КОНВЕРЗИЈА

Во последната равенка (8-9) VREF го претставува нивото на логичка 1,


V(1)=VREF, додека D2, D1 и D0 се влезните битови чии вредности може да бидат 0
или 1, при што MSB e D2 кој се доведува на првиот влез V1, додека LSB e D0 кој го
побудува третиот влез V3.
Во општ случај, за n-влезови (битови), равенката на овој Д/А конвертор
може да се напише и во следниов облик
VODAC = - RF/R0 x VREF x d = - RF/R0 x VREF x (2n-1Dn-1 + ... + 20D0);
За точно пресметување на вредноста на излезните напони за секоја од
осумте три-битни комбинации, од 000 до 111, кои може да се јават на влезот од
колото, ќе ја примениме равенката (8-9) и ќе ја добиеме таб. 8-1. Во примерот
како референтно ниво на Д/А конверторот е претпоставено напојување од 5V
(VREF = +5V), заради што ќе важи V(1)=+5V и V(0)=0V.

Декадна Бинарен Излезен


вредност еквивалент напон
[V] v1 R
(MSB)

0 000 0.000 v2 R R R

1 001 - 0.625 v3 R R R R
(LSB) v0
2 010 - 1.250
3 011 - 1.875
4 100 - 2.500 Сл. 8-8. Трибитен ДАК со R/2nR тежинска
5 101 - 3.125 отпорничка мрежа од еднакви отпорници
6 110 - 3.750
7 111 - 4.375
Таб. 8-1. Еквивалентни вредности кај
трибитен ДАК

Дадената анализа може да се генерализира и врз основа на позната


вредност на еден од отпорниците на Д/А конверторот да се изврши правилен
избор на останатите отпорници. При ова, ако е познат
 најголемиот отпорник R0 кај битот со најниска тежина LSB, тогаш
отпорникот во повратната врска RF треба да има вредност RF = R0/2n;
 најмалиот отпорник Rn-1 кај битот со највисока тежина MSB, тогаш
отпорникот во повратната врска RF треба да има вредност RF = Rn-1 /2;
 отпорникот во повратната врска RF, тогаш најголемиот отпорник R0 кај
битот со најниска тежина LSB, треба да има вредност R0 = 2n·RF;
Д/А и А/Д КОНВЕРЗИЈА 239

Да не заборавиме дека во секој случај вредностите на влезните отпорници


треба со секој нареден отпорник последователно да се зголемуваат за два пати
почнувајќи од најмалиот Rn-1 кон најголемиот R0.
Доколку се постави барање Д/А конверторот да има поголема прецизност,
ќе треба да се зголеми бројот на битови n, а со тоа и бројот на влезови. При ова,
за секој новододаден дигитален влез ќе се приклучи по еден дополнителен
отпорник кој ќе има вредност два пати поголема од онаа на отпорникот преку кој
се доведуваше LSB-битот, т.е. отпорник кој е два пати поголем од најголемиот
отпорник што постои во мрежата. Ваквото барање ја покажува слабата страна на
овој конвертор бидејќи бројот на прецизни отпорници со различни вредности
станува сè поголем.
Д/А конверторот со тежинска R/2nR отпорничка мрежа може да се
реализира и со примена на повеќе сериски поврзани отпорници за секој влез
посебно, кои ќе имаат иста вредност. Притоа на секој нов влез ќе треба да се
приклучат по два пати повеќе отпорници отколку на претходниот, според сл. 8-8.
Ваквото поврзување го решава претходно наведениот проблем, но за жал, се
јавува нов, а тоа е многу покомплексната конфигурација на отпорничката мрежа.

8.4.2. Д/А КОНВЕРТОР СО R/2R СКАЛЕСТА ОТПОРНИЧКА МРЕЖА

Како најголема слабост на претходниот Д/А конвертор со бинарна тежинска


мрежа беше потребата од сè поголем број на прецизни и единствени отпорници
со различни и сè поголеми вредности. За надминување на оваа слабост во
практиката многу често се користи едно прилично ефикасно решение со
отпорничка мрежа чија топологија наликува на скала. Токму заради тоа, вака
реализираниот конвертор и го добил името конвертор со скалеста мрежа, а
заради вредностите на употребените отпорници тој популарно уште се нарекува и
R/2R Д/А конвертор (анг. R/2R Ladder DAC).
И кај оваа конфигурација повторно се користи суматор, но сега на неговиот
влез се формира отпорничка мрежа која користи отпорници само со две
вредности според сл. 8-9 а) или б). Ако се направи споредба со Д/А конверторот
со тежинска мрежа може да се забележи дека сега бројот на отпорници е
незначително зголемен.
(MSB) v1
v2
(LSB) v3

2R 2R 2R
2R
2R R R
v0

Сл. 8-9. а) Трибитен Д/А конвертор со скалеста R/2R отпорничка мрежа


240 Д/А и А/Д КОНВЕРЗИЈА

+VREF (+VCC )
RF (2R)
(MSB) v1
v0
2R
v2 R

2R
(LSB) v3 R

2R
2R

Сл. 8-9. б) Трибитен Д/А конвертор со скалеста R/2R отпорничка мрежа

Математичката анализа на применетата скалеста мрежа е нешто посложена


од претходниот случај за што треба да се примени Тевененовата теорема. Овде
само ќе го превземеме конечниот резултат без изведувањето. Тој покажува дека
n
левиот дел од шемата со тежинската R/2 R мрежа може да се замени со
еквивалентен Тевененов извор VТ со внатрешна отпорност RT, чии вредности се
идентични со оние кај претходниот Д/А конвертор со тежинска мрежа.
1 1 1
VT  V1  V2  V3 и RT=R (8-10)
2 4 8
Со ова се добива и крајната равенка која се однесува на нивоата на
излезниот напон соодветно на таб. 8-1.
RF R 1 1 1  R 1 1 1 
V0   VT   F  V1  V2  V3    F  V1  V2  V3  (8-11)
RT RT  2 4 8  R 2 4 8 

Ако се избере RF=R, тогаш за излезниот напон се добива изразот:


1 1 1  1 1 1 
V0   V1  V2  V3     D2  D1  D0   V REF (8-12)
2 4 8  2 4 8 
Бидејќи вредноста на влезните напони V1, V2, и V3 може да биде само ниско
ниво (0V) или високо (+VREF) што зависи од тоа дали соодветниот бит е 0 или 1,
добивме идентичен израз со веќе познатата равенка (8-9).
Д/А и А/Д КОНВЕРЗИЈА 241

8.5. АНАЛОГНО-ДИГИТАЛНА КОНВЕРЗИЈА


Дигиталните системи работат со дигитални сигнали, податоци кои се
претставени во дигитален облик како бинарни зборови. Секој збор претставува
комбинација од конечен број битови што системот ги добива на својот влез, а се
однесува на одредена информација од надворешниот свет. Кога станува збор за
комуникацијата помеѓу луѓето, таа се остварува на различни начини, но секогаш
се поставува барање за претворување, поточно за кодирање на речениците и
броевите во дигитален облик. Станува збор за информации кои се добиваат како
комбинации од различни графички симболи (цифри и букви) и знаци (анг.
characters). При извршувањето на пресметките се применуваат декадните цифри
во комбинација со знаците на аритметичките и логичките операции, додека за
зборовите и речениците тоа се буквите во комбинација со знаците за
интерпункција. Конверзијата на ваквите податоци во дигитални е прилично
едноставна бидејќи и декадниот броен систем и азбуките располагаат со конечен
број цифри, букви и знаци, па тие претставуваат дискретни величини кои се
конвертираат со примена на природниот бинарен броен систем, или некој друг
бинарен систем или код.
Меѓутоа, природните појави и процеси во основа се континуални величини,
како на пр. звукот, светлината, притисокот, температурата, брзината, и многу
други. Имено, тие се менуваат континуирано со тек на времето и заради тоа
можат да добијат било која вредност. Покрај ова, секоја природна појава има свои
карактеристики, а соодветно на тоа и посебни единици според кои тие се мерат,
така што секој континуален сигнал може дигитално да се обработува само ако се
претвори во аналогна електрична величина, напон или струја, и потоа се дигита-
лизира. Проблемот на претворање на континуалните сигнали во дигитални, кои се
погодни за обработка на компјутер, или друг дигитален систем, е прилично
комплексна работа што треба да ја изврши системот за аквизиција на податоци
(анг. data acquisition system) чија поедноставена блок шема е прикажана на
следната слика (сл. 8-10).

Сл. 8-10. Блок-шема на ситем за аквизиција на податоци


242 Д/А и А/Д КОНВЕРЗИЈА

Прилагодувањето се изведува во повеќе чекори почнувајќи од трансфор-


мација на континуалната појава во електрична величина аналогна на неа, како на
пр. струја, отпорност, и сл., потоа нејзино претворување во напон и по потреба
негово кондиционирање, и на крај конвертирање на тој напон во дигитален
(бинарен) облик.
Претворувањето на физичките величини како што се на пр. топлината,
светлоста, притисокот, итн. во електрични се врши со помош на сензорски
елементи анг. (sensors). Кондиционирањето претставува подобрување и
прилагодување на напонскиот сигнал на различни нивоа во точно дефинирани
граници. Крајниот чекор е претворувањето на аналогниот напонски сигнал во
дигитален што го извршува најважниот блок, а тоа е А/Д конверторот чија
наједноставна блок шема е прикажана на сл. 8-11 а), додека неговата
симболичка ознака е дадена на 8-11 б).
+VCC

D(n-1)
Аналоген D(n-2)
Сигнал n - бита
Влез АДК Дигитален
Vin (Бинарен)
D1 Излез
D0

GND

а) наједноставна блок-шема б) симболичка ознака

Сл. 8-11. А/Д конвертор


А/Д конверторот на својот влез добива аналоген напон VINA со амплитуда
која се менува континуирано со тек на времето, а на излезите генерира бинарно
кодирани зборови (вектори), поточно одредени комбинации (низи) битови со
конечна должина, кои одговараат на избрани конкретни (селектирани) вредности
од влезниот напон (примероци, одбироци). Амплитудата на аналогниот сигнал
треба да биде ограничена и да припаѓа во границите одредени со минимално и
максимално дозволено влезно ниво (VAMAX и VAMIN).
За А/Д конверторите кои најчесто се сретнуваат во праксата влезниот опсег
е или позитивен и тогаш важи VAMAX=VREF, додека VAMIN=0 V, или влезниот сигнал
може да биде и позитивен и негативен во границите на симетрично дефиниран
опсег кога важи VAMAX=+VREF и VAMIN=−-VREF. Најчесто овие нивоа всушност се
напојувањата на конверторот.

8.6. ОСНОВНИ ПОИМИ И КОНЦЕПТИ


Процесот на А/Д конверзија се извршува во двe фази. Најнапред, во првата
фаза аналогниот сигнал се дискретизира по време, а потоа, во втората фаза се
дискретизира по ниво (по амплитуда), т.е. се квантизира и се кодира.
Д/А и А/Д КОНВЕРЗИЈА 243

Дискретизацијата по време претставува земање на одбироци


(примероци), поточно одредени напонски нивоа од сигналот во регуларни
временски интервали, со периода TS, односно со одредена фреквенција на
одбирање fS, заради што се користи и терминот одбирање или семплирање (анг.
sample).
Дискретизацијата по ниво или квантизацијата, (термин кој најчесто
се користи во практиката), врши претворување на амплитудата (нивото) на секој
одбирок од континуална (бесконечно прецизна, точна вредност) во конкретен
број кој претставува вредност на дискретно напонско ниво со одредена конечна
прецизност.
По квантизацијата секое дискретно ниво кое има конкретна декадна
вредност (d) се претворува во посебен бинарен збор (вектор) според одреден код,
т.е. комбинација од битови со конечна должина (n). Mожеството на сите зборови
го претставува конечниот облик на дигиталниот сигнал кој може да се добие со
рaзлични техники на кодирање. Униполарното кодирање се однесува на
природниот бинарен броен систем и се применува кога се работи за позитивен
опсег на влезниот аналоген напонски сигнал. Кога станува збор за симетричен
опсег на влезниот напон се применува биполарното кодирање. Тоа се извршува
според некој бинарен систем со знак како што е на пр. вториот комплемент (RC
системот).
На следните слики, сл. 8-12 а), б), в) и г) последователно е прикажан еден
пример на влезен аналоген сигнал, неговиот изглед кога е дискретизиран по
време, кога е дискретизиран по ниво (квантизиран) во осум нивоа, кога е
дискретизиран и по време и по ниво и конечниот изглед на дигиталниот сигнал
како низа од битови кој може да биде обработуван од страна на дигиталниот
систем. Секој одбирок има едно од осум можни нивоа кои се кодирани со три бита
со што е дефинирана и должината на кодниот збор.

Сл. 8-12. б) Дискретизирање по ниво или


Сл. 8-12. а) Временско дискретизирање -
Квантизирање – Разделување на
земање на одбироци од влезен аналоген
напонскиот опсег на конечен број напонски
напон (временските интервали се
нивоа (временскиот период е континуиран,
дискретни, додека напонските нивоа се
додека напонските нивоа се
континуални)
дискретизирани)
244 Д/А и А/Д КОНВЕРЗИЈА

Сл. 8-12. в) Дискретизиран и квантизиран Сл. 8-12. г) Дигитален напонски сигнал


сигнал – дискретни временски интервали и добиен во процесот на А/Д конверзија
дискретни вредности на напонските нивоа еквивалентен на влезниот аналоген напон

На сл. 8-13 е прикажана блок шема на процесот дискретизација, т.е. на


земање на одбироци на некој напонски сигнал. Влезниот аналоген напон преку
напонски следител со единечно напонско засилување се доведува на коло за
одбирање и задржување (анг. Sample-and-Hold, SH) на влезот од А/Д конверторот.
Ова коло, наједноставно земено, е комбинација од аналоген прекинувач и
кондензатор. Прекинувачот периодично се отвора и се затвора согласно
фреквенцијата на одбирање fS која зависи од времетраењето на периодата на
такт импулсите TS кои го контролираат неговото вклучување и исклучување. За
време на едната полупериода на тактот прекинувачот е затворен и тогаш се
одбира едно ниво на влезниот напон со што се остварува дискретизација по
време. Во следната полупериода прекинувачот се отвора и последната
моментална вредност на влезниот напон,која беше присутна непосредно пред
отворањето на прекинувачот на кондензаторот и го имаше наполнето до тоа
ниво, се задржува.
Според кажаното, на кондензаторот, а со тоа и на излезот од вториот
напонски следител кој има единечно напонско засилување, исто како и првиот, се
добива временски дискретизиран сигнал со скалест облик формиран од низа на
последователни одбироци, чии амплитуди треба понатаму да се дискретизираат
по ниво, т.е. да се квантизираат.

Електронски
аналоген
прекинувач Дискретизиран
Аналоген излезен напон
влезен
(кон АДК)
напон
vdisk
vanal CS
Такт t
t GND Одбироци (примероци)

Сл. 8-13. Процес на земање на одбироци (примероци) од аналоген сигнал


Д/А и А/Д КОНВЕРЗИЈА 245

Времето кое ќе измине додека повторно да се затвори прекинувачот се


користи за напонското ниво на тековниот одбирок, (кое е присутно на
кондензаторот и на излезот од напонскиот следител), да се проследи на
понатамошна обработка, поточно на квантизација. Во врска со ова, циклусот на
конверзија го претставува временскиот период кој е потребен на А/Д конверторот
за да ја одреди дискретната вредност на нивото на земениот напонски одбирок од
влезниот аналоген сигнал, т.е. да изврши негова конверзија во соодветен
дигитален облик на излезот кој претставува збор (бинарен вектор, комбинација)
чија должина n типично изнесува од 4 до 16 бита, зависно од потребите.
Помеѓу фреквенцијата на одбирање fS и брзината на промена на нивото на
аналогниот влезен сигнал, а со тоа и на неговиот максимален фреквентен опсег
fMAX, во процесот на А/Д конверзија, постои едноставен однос за да не дојде до
изобличување на аналогниот сигнал при неговата рекострукција во инверзниот
процес на Д/А конверзија. Поконкретно, аналогниот сигнал може целосно да се
реконструира од земените примероци ако се задоволи т.н. теорема за одбирање
(анг. Sampling Theorem). Според неа, за да не дојде до изобличување и појава на
шум, од континуален сигнал чија највисока фреквенција во неговиот спектар е
fMAX, треба да се земаат одбироци со фреквенција fS, која е барем два пати
поголема од неа според равенката (8-13), позната како Најквистов критериум.

fS 2fMAX (8-13)

Доколку фреквенцијата на одбирање fS не го исполнува горниот услов,


односно важи обратниот fS<2fMAX, ќе дојде до појавување на лажни фреквенции
(анг. aliasing). Тоа е појава на непостоечки фреквенции во спектарот на
реконструираниот сигнал, кои ги нема во оригиналниот сигнал, а кои се јавуваат
како последица од пресликувањето на некоја реална (постоечка) фреквенција од
влезниот сигнал.
Од до сега изнесеното можеме да извлечеме заклучок дека за правилна
работа на Д/А конверторот времетраењето на циклусот на конверзија треба да
биде помало од периодата на одбирање TS, за да не дојде нов одбирок, а
претходниот да остане неконвертиран.
Што се однесува до процесот на квантизација, тој ќе биде обработен во
поголеми детали во понатамошниот текст.
8.7. КАРАКТЕРИСТИЧНИ ПАРАМЕТРИ И ПРЕНОСНА
КАРАКТЕРИСТИКА
Од сè она што претходно наведовме, може да заклучиме дека во А/Д
конверторот при процесот на квантизација во период на еден такт интервал Ts се
врши сведување на даден напонски интервал Q од влезниот аналоген сигнал
(множество напонски вредности) кој се наоѓа помеѓу две соседни референтни
напонски нивоа (Vi;Vi+1) каде што i=0, 1, 2, …, n во околината на дадено
референтно напонско ниво Vi во него како единствена дискретна вредност. Секое
следно референтно ниво Vi+1 е поголемо од претходното Vi за една иста вредност
која се нарекува чекор на квантизација или квант и се означува со Q, т.е. важи
Vi+1=Vi+Q.
246 Д/А и А/Д КОНВЕРЗИЈА

Процесот на А/Д конверзија најчесто се остварува преку коло кое


реализира преносна функција со скалест облик како на сл. 8-14 на која е
прикажана конкретна преносна карактеристика која овозможува извршување на
процес на А/Д конверзија со три бита. (За да се реализира процесот на А/Д
конверзија ќе биде потребна преносна функција со облик како на сл. 8-14).
Заради дополнително појаснување на процесот на квантизирање на сл. 8-15 е
прикажан еден пример на аналоген влезен сигнал и соодветниот дискретизиран
излезен сигнал за дадената преносна карактеристика.
Дигитален излез (d)

111
110
101
100 Квант
Q
011 23=8
010
нивоа
001
000
2VR 4VR 6VR VR
VR 8 3VR 8 5VR 8 7VR
8 8 8 8
Аналоген влез (Va)
FSR
Грешка Q
(Va-Vd) 0
Аналоген влез (Va)

Сл. 8-14. Идеализирана преносна карак- Сл. 8-15. Аналоген влезен сигнал и соодве-тен
теристика на три битен А/Д конвертор излезен дискретизиран излезен сигнал

Од сликите може да се забележи дека амплитудата на аналогниот сигнал е


ограничена помеѓу две нивоа: најниското нулто напонско ниво од V0=0 V и
највисокото референтно напонско ниво +VREF, заради што овој опсег се нарекува
и полна или целосна скала и се означува со FS или FSR (анг. Full Scale Fange). Во
општ случај, полната скала FSR ја претставува разликата помеѓу најголемата
(VINAmax) и најмалата вредност (VINAmin) што може да ја добие влезниот аналоген
напон, т.е. FSR = VINAmax − VINAmin.
Ако влезниот напон е позитивен и се движи во границите помеѓу 0V и
одредено референтно ниво +VREF, како во нашиот случај, тогаш последната
равенка се поедноставува и го добива следниов облик: FSR = VREF − 0 V = VREF.
Бидејќи во примеров од сликите сл. 8-14 и сл. 8-15 референтно напонско ниво е
VREF=+5V, а најниското 0V, и полната скала е FSR =5V.
Покрај ова, од сликите се гледа дека полниот опсег е поделен на осум
напонски опсези што произлегува од фактот дека станува збор за А/Д конверзија
со три бита. Имено, бројот на напонски опсези NU зависи од бројот на битови n со
кои се врши конверзијата и се пресметува според познатата равенка:
NU=2n (8-14)
Д/А и А/Д КОНВЕРЗИЈА 247

За конкретниов пример n=3, така што NU=23=8. Од тука може да се добие


ширината на напонскиот интервал на секој напонски опсег Q ако износот на
полната скала FS се подели со вкупниот број на напонски опсези NU.
Q=FSR/NU= FSR/2n (8-15)
3
За конкретниот пример Q=5 V /2 = 5 V /8 = 0,625 V.
Сите напони кои се наоѓаат во овој напонски интервал се заменуваат со
единствена вредност зависно од тоа каде се наоѓа конкретниот интервал. Имено,
за конкретниот пример, сите влезни напони помеѓу 0 и влезнo напонско ниво
помало од 0,625 V ќе се конвертираат во нулто референтно ниво V0=0 V кое се
кодира како 000, влезни напони помеѓу 0,625 V и 1,250 V ќе се конвертираат вo
прво референтно ниво V1=0,625 V кое се кодира како 001, итн. сè до последниот
опсег помеѓу 4,325 V и 5 V кој ќе се конвертира во последото седмо референтно
ниво V7=4,325 V кое се кодира како 111. Може да се забележи дека бројот на
референтни напонски нивоа NQ е еднаков со бројот на опсези NU (NQ=NU=2n)
започнувајќи од нултото V0 до последното Vn-1 (во случајов Vn-1=V7), со меѓусебна
напонска разлика еднаква на опсегот Q. Врската помеѓу декадната вредност на
секое напонско ниво Vi и неговата вредност изразена во волти се пресметува
според следнава равенка:
VREF V
Vi  i   i  REF , каде што i=0, 1, 2, …, (n-2), (n-1) (8-16)
NQ 2n

Големината на напонскиот интервал кој ги оддалечува дискретните


референтни напонски нивоа едно од друго се вика квант и како што видовме се
означува со Q. Во нашиот случај при рефрентен напон VREF=+5V и А/Д конверзија
со три бита, големината на квантот изнесуваше 1/8·VREF = 0,625 V, што може да се
види и од таб. 8-2.

Аналоген напонски Напонска Рефрентнo Декадна Бинарен


интервал разлика напонско ниво [V] вредност еквивалент
V0 – V 1 0.000 – 0.625 Q V0=0VR/8 0.000 0 000
V1 – V 2 0.625 – 1.250 Q V1=1VR/8 0.625 1 001
V2 – V 3 1.250 – 1.875 Q V2=2VR/8 1.250 2 010
V3 – V 4 1.875 – 2.500 Q V3=3VR/8 1.875 3 011
V4 – V 5 2.500 – 3.125 Q V4=4VR/8 2.500 4 100
V5 – V 6 3.125 – 3.750 Q V5=5VR/8 3.125 5 101
V6 – V 7 3.750 – 4.375 Q V6=6VR/8 3.750 6 110
V7 – V R 4.375 – 5.000 Q V7=7VR/8 4.375 7 111
Таб. 8-2. Напонски нивоа кај А/Д конверзија според преносната карактеристика од сл. 8-14
Од сè она што досега изложивме станува јасно дека ако се зголеми бројот
на битови n ќе се намали големината на квантот, а со тоа ќе се зголеми бројот на
референтни нивоа и ќе се зголеми прецизноста на квантизерот бидејќи помал
напонски опсег ќе се конвертира во единствено напонско ниво. Така на пр. ако
примениме А/Д конверзија со n=4 бита, бројот на референтни нивоа ќе биде два
248 Д/А и А/Д КОНВЕРЗИЈА

пати поголем NU=24=16, од V0=0 V па до V15=4,6875 V во однос на конверзијата со


три бита, додека квантот ќе биде два пати помал, Q=5 V/24 =5 V/16=0,3125 V,
според преносната карактеристика дадена на сл. 8-16 со што два пати ќе се
зголеми и прецизноста на квантизерот.

1111

Дигитален излез (d)


Квант
1000 Q 24=16
0111
нивоа

0001 VR
0000
VR 8VR 15VR (FS)
16 16 16
0.3125 2.50 5.0V
Аналоген влез (Vina)
Сл. 8-16. Идеализирана преносна карактеристика на четирибитен А/Д конвертор

Така на пр. ако земеме една периода на простопериодичен сигнал и истата


ја дискретизираме еднаш до три битен А/Д конвертор, а еднаш со четирибитен ќе
ги добиеме следните две слики означени со сл. 8-17 а) и сл. 8-17 б).

Сл.8-17. Квантизација на простопериодичен сигнал а) со три бита б) со четири бита

Од сликите 8-17 а) и б) лесно се забележува дека квалитетот во вториот


случај е многу подобар, што укажува на тоа дека прецизноста е поголема ако се
користат поголем број на битови за квантизирање. Во врска со наведеното се
дефинира поимот резолуција (анг. resolution) на конверторот кој се изразува како
број на битови (n) на бинарниот вектор, (должина на зборот) со кој се кодира
било кое влезно дискретно напонско ниво.
Од тука произлегува дека резолуцијата го покажува вкупниот број на
дискретни вредности што можe да се генерираат од А/Д конверторот, за даден
целосен напонски опсег на влезни вредности FSR. Според ова, резолуцијата може
да се изрази и во волти.
Д/А и А/Д КОНВЕРЗИЈА 249

Вредноста на резолуцијата се добива кога полната скала на влезниот


аналоген опсег FSR се подели со вкупниот број на дискретни напонски нивоа (NQ)
според равенката:

FSR FSR
Q  n (8-17)
NQ 2

Практично земено резолуцијата го претставува најмалиот напон чие


појавување на влезот од А/Д конверторот сигурно ќе предизвика промена на
излезното ниво кодирано во битови кај излезниот дигитален сигнал, а тоа значи
промена на битот со најмала тежина LSB. Од тука резолуцијата се нарекува квант,
LSB напон, резолуционен напон или чекор на квантизација и покрај Q се означува
и со .
Како математичка поддршка на изложеното ќе ја презентираме т.н. равенка
на А/Д конверторот од каде попрецизно математички се гледа влијанието на
бројот на битови за конверзија врз прецизноста на А/Д конверторот.
Да претпоставиме дека разгледуваме А/Д конвертор со резолуција од n бита,
каде VREF е референтниот напон, и дека VINА е аналогниот влезен напон кој ќе се
конвертира. Излезниот напон од А/Д конверторот треба да се добие во облик на
бинарен збор (вектор) од n бита (Dn-1Dn-2… D1D0), со својата еквивалентна декадна
вредност d (во декадна нотација). Декадната вредност d еквивалентна на
влезниот аналоген сигнал конвертиран во дигитален облик, т.е. на бинарниот
вектор се пресметува како цел дел од количникот помеѓу конкретната вредност
на аналогниот влезен напон VINА и квантот Q () на компараторот според
равенката

Vin 
d  (8-18)
Q 
Во оваа равенка квантот (резолуцијата) Q () ја претставува најмалата
промена на влезниот напон која може да биде откриена (детерминирана) од
страна на А/Д конверторот, со што практично се дефинира и неговата прецизност.

Van max  Van min V REF  0 V REF


Q   n (8-19)
NQ NQ 2
каде што n е бројот на битови на излезниот дигитален сигнал.
Како мерка за прецизноста на квантизерот се дефинира и грешката на
квантизација (анг. Quantization Error), која претставува разлика помеѓу точното
ниво на одбирокот на аналогниот влезен сигнал и дискретната вредност на
излезот од квантизерот, т.е. отстапување во однос на одредено референтно ниво
Vi. Тоа е средната вредност на разликата помеѓу аналогниот влез и неговата
квантизирана вредност. Во идеален случај на А/Д конверзија, која се однесува на
квантизер, чија преносна карактеристика е дадена на сл. 8-14, грешката се движи
во границите од 0 до Q: од Vi до (Vi+Q).
250 Д/А и А/Д КОНВЕРЗИЈА

Во практиката вообичаено се врши поместување на преносната


карактеристика на А/Д конверторот од сл. 8-14 или 8-16 за Q/2 така што
преносната карактеристика на А/Д конверторот најчесто го има обликот прикажан
на сл. 8-18 за која одговара таб. 8-3 со напонски нивоа која се однесува на три
битен А/Д конвертор, а заради споредување и полесно воочување на разликите
во однос на претходниот пример од сл. 8-14.

Аналоген напонски Напонска Рефрентнo Декадна Бинарен


интервал разлика напонско ниво [V] вредност еквивалент
V0 – V 1 0.0000–0.3125 0,5·Q V0=0VR/8 0.000 0 000
V1 – V 2 0.3125–0.9375 Q V1=1VR/8 0.625 1 001
V2 – V 3 0.9375–1,5625 Q V2=2VR/8 1.250 2 010
V3 – V 4 1,5625–2,1875 Q V3=3VR/8 1.875 3 011
V4 – V 5 2,1875–2,8125 Q V4=4VR/8 2.500 4 100
V5 – V 6 2,8125–3,4375 Q V5=5VR/8 3.125 5 101
V6 – V 7 3,4375–4,0625 Q V6=6VR/8 3.750 6 110
V7 – V R 4,0625–5.000 1,5·Q V7=7VR/8 4.375 7 111
Таб. 8-3. Напонски нивоа кај А/Д конверзија според преносна карактеристика од сл. 8-18

Ваквата промена овозможува заокружување на вредноста во околина на


конкретно референтно напонско ниво што е математички пооправдано. Инаку и
во овој случај даден на сл. 8-18 се гледа дека најголемата грешка на квантизација
по апсолутна вредност изнесува колку што е и вредноста на еден квант Q, како на
сл. 8-14, но сега таа се наоѓа во околината на референтното ниво плус/минус
половина квант: од (Vi -Q/2) до (Vi +Q/2).
Дигитален излез (d)

111
110
101
100 Квант
Q
011 23=8
010
нивоа
001
000
0.625 1.875 3.125 4.375
1.250 2.500 3.750 5.000
Аналоген влез (Va)
FSR
Грешка +Q/2
(Va -Vd)
-Q/2
Аналоген влез (Va)
Сл. 8-18. Идеализирана преносна карактеристика и грешка кај три битен А/Д конвертор
Д/А и А/Д КОНВЕРЗИЈА 251

8.8. ПОДЕЛБА И ВИДОВИ НА А/Д КОНВЕРТОРИ


Постојат повеќе базични постапки врз чија основа се градат А/Д конверторите.
Најголемиот број од нив може да се поделат на следниве поголеми групи:
1. Паралелни (Флеш) А/Д конвертори (анг. Flash или Parallel ADC),
2. А/Д конвертори базирани на Д/А конверзија (анг. DAC based ADC),
3. А/Д конвертори со интегрирање (анг. Integrating ADC) и
4. Делта-сигма (сигма-делта) А/Д конвертори (анг. delta-sigma или sigma-delta
ADC).
А/Д конверторите од секоја група меѓусебно се разликуваат во поглед на
перформансите како што се на пр. брзината на работа, прецизноста и цената на
чинење, од што зависи и нивната практична примена. Во продолжение посебно ќе
се задржиме на конфигурацијата и анализата на принципот на работа на
типичните претставници за секоја од наведените групи. Имајќи во вид дека секоја
група А/Д конвертори има различна практична примена, во продолжение посебно
ќе се задржиме на секоја од нив.

8.8.1. ПАРАЛЕЛЕН АДК

Паралелниот А/Д конвертор или А/Д конверторот со директна конверзија


заради својата речиси молскавична брзина на работа популарно се нарекува и
флеш или блиц (анг. flash) А/Д конвертор. Овој А/Д конвертор функционира на
прилично едноставен начин, така што е доста лесен за разбирање. Имено,
конверторот преку компаратори врши споредување на влезниот аналоген напон
со однапред поставени и дефинирани фиксни напонски нивоа кои се добиени со
разделување на зададениот референтен напон VREF. Неговата вредност е еднаква
со максималното напонско ниво кое може да го достигне влезниот аналоген
напон. Така на пр. ако референтниот напон е 5 V, тогаш и највисокото ниво на
влезниот аналоген напон треба да биде 5 V. Референтниот напон се разделува
преку соодветна отпорничка мрежа која игра улога на напонски делител составен
од еднакви отпорници. При тоа напонот од секој отпорник се зема како одделен
референтен напон за секој компаратор на кој е поврзан, така што моменталната
вредност на влезниот аналоген напон се компарира со конечен број на посебни
референтни напони.
На следната слика сл. 8-19 е прикажан еден многу едноставен пример на
флеш А/Д конвертор со референтен напон VREF=+5V и четири поединечни
компараторски нивоа, побуден од напонот кој го генерира температурниот сензор.
Бидејќи сите отпорници имаат еднаква отпорност (R) вредностите на посебните
напонски нивоа ќе бидат дадени со следниве равенки:
VCC V V
V3   R  3.75V , V2  CC  2 R  2.5V , V1  CC  3R  1.25V , V0  0V (8-20)
4R 4R 4R
252 Д/А и А/Д КОНВЕРЗИЈА

VCC
Температурен
сензор R
од 0V
vAN
D3
до 5V
V3
RD3
R D2
V2
RD2
R D1
V1
RD1
R
V0

Сл. 8-19. Флеш А/Д конвертор со четири нивоа

На излезите од секој компаратор се наоѓаат светлечки LED диоди при што


одредена диода ќе засвети во моментот кога излезното напонско ниво од
температурниот сензор го достигне соодветното компараторско ниво на
компараторот на чиј што излез е таа поврзана. Нејзиното светнување ќе покаже
дека на тој излез е присутно високо ниво, 1.
Така на пр. ако влезниот аналоген напон е под V1=1.25 V ниту еден
компаратор не реагира и јасно ниту една од LED диодите нема да свети. Ако
влезниот напон го надмине првиот референтен праг од V1=1.25 V ќе засвети
првата LED диода D1, ако го надмине второто ниво од V2=2.5 V покрај првата, ќе
засвети и втората LED диода D2, а кога ќе го надмине третото ниво V3=3.75 V,
покрај првите две диоди ќе засвети и третиот LED D3. Сигнализацијата е прилично
корисна и предупредувачка бидејќи со порастот на температурата расте и
напонот, а со тоа и бројот на диоди што светат. Меѓутоа ваквиот принцип на
работа не е најсоодветен за процесирање од страна на компјутер или некој друг
дигитален систем бидејќи на излезот се добива сигнал кој не е кодиран во
соодветен бинарен облик.
За конкретниов пример, за да се добие бинарно кодиран излезен сигнал,
излезите од компараторите ќе треба да се приклучат на 4-во-2 кодер. Со
приклучување на влезовите од кодерот на излезите од операциските засилувачи,
при секое достигнување на едно од трите референтни нивоа на излезот од
кодерот ќе се генерира единствена бинарна комбинација од два бита. Бидејќи
температурата континуирано расте или се намалува, вакво однесување ќе може
да се обезбеди само ако се примени кодер со приоритет.
Заради полесно разбирање на принципот на работа на ваквиот А/Д
конвертор, ќе ја анализираме принципиелната електрична шема дадена на сл. 8-
20 на која е прикажан еден прилично едноставен, трибитен флеш А/Д конвертор
со 8-во-3 приоритетен кодер при што како компаратори се користат идеални
операциски засилувачи. Бидејќи претпоставивме дека на излезот ќе треба да се
генерира трибитен излезен вектор, тоа значи дека неговата најмала вредност ќе
биде 0(10) или 000(2), односно како најголема вредност ќе се појави 111(2), или
7(10).
Д/А и А/Д КОНВЕРЗИЈА 253

VR E F
R
vIN

R П р ио р и тет ен
8 -во -3 код ер

R D2
D1
D0
R

Сл. 8-20. Принципиелна електрична шема на 3-битен флеш АДК

Токму заради тоа што се работи за трибитен А/Д конвертор отпорничкиот


делител е формиран од 23=8 отпорници со еднакви вредности и седум
компаратори. Излезите од компараторите се доведуваат како влезови на кодерот.
Бидејќи се работи за кодер кој реагира со приоритет на нивото на влезниот
напон, на неговиот излез ќе се појави оној коден збор кој одговара на влезното
аналогно ниво кое е најблиско до најголемото од седумте референтни нивоа
различни од нултото. Наједноставна реализација на 8-во-3 приоритетниот кодер е
примената на ик со ознака 74x148.
Имајќи во вид дека разгледуваниот А/Д конвертор е трибитен, најмалата
разлика, т.е. квантниот интервал Q помеѓу излезните напонски нивоа, ќе
претставува зголемување или намалување од 625 mV. Имено, бидејќи
отпорниците се приклучени помеѓу нултото референтно ниво (заземјувањето,
“масата”) и напојувањето од 5 V (VREF=+5V) ова ниво е практично и максималното
ниво што може да се појави на влезот од кодерот. Така целосниот опсег FSR, ќе
биде еднаков со напојувањето на отпорниците од 5 V. Бидејќи со три бита се
кодираат N=23=8 различни нивоа со примена на равенката (8-17) се добива
квантна разлика Q од 625 mV (Q=5 V/8=0.625 V). Така првото реферетно ниво ќе
биде V1=625 mV, второто ниво ќе биде V2=1.25 V, итн. на секое следно и пого-
лемо референтно ниво ќе одговара претходната референтна вредност на напонот
зголемена за 625 mV, па сè до последното, осмото ниво V7=4.375 V. Се разбира
дека најниското референтно ниво е нултото, потенцијалот на масата, V0=0 V.
Од сл. 8-20 се забележува дека електричната шема на флеш А/Д конверторот
е прилично едноставна. Меѓутоа, за посериозна примена, кога се бара поголема
прецизност од осум или повеќе бита, ваквиот А/Д конвертор ќе биде доста скап
n
бидејќи во неговиот состав ќе влезат голем број на компаратори, или поточно (2 -
1), каде што n е бројот на битови во излезниот коден збор. Така на пр. за 8-битен
8
флеш А/Д конвертор ќе бидат потребни 2 -1=255 компаратори, додека за
16
професионален 16-битен А/Д конвертор дури 2 -1=65.535! Покрај ова, кога има
254 Д/А и А/Д КОНВЕРЗИЈА

потреба за зголемување на резолуцијата, а со тоа и на прецизноста, потрошу-


вачката на моќност кај флеш А/Д конверторот значително расте за секој
новододаден бит бидејќи со тоа двојно се зголемува бројот на компаратори.
Од друга страна, овој А/Д конвертор се одликува со многу брза работа
бидејќи бинарниот еквивалент на излезот од А/Д конвертор, кој одговара на
аналогниот напон доведен на неговиот влез, се добива директно и скоро
моментално на излезот. Имено, доцнењето се сведува само на времето кое е
потребно сигналот да помине преку операциските засилувачи и логичките кола на
кодерот, време кое е навистина многу кратко. Токму заради ваквата брзина на
работа овој А/Д конвертор го добил и своето име флеш, блиц или молскавичен
А/Д конвертор.

8.8.2. А/Д КОНВЕРТОРИ БАЗИРАНИ НА Д/А КОНВЕРЗИЈА


Главната одлика на овие А/Д конвертори е фактот што влезниот аналоген
сигнал се компарира со дигитална вредност што него најмногу му одговара, и со
тоа се поставува, или не поставува (брише), одреден бит во излезниот дигитален
сигнал. Имено, принципот на работа на ваквите А/Д конвертори се базира на
остварување на повратна врска преку интерен Д/А конвертор, според блок
шемата прикажана на сл. 8-21. Основната идеја е контролната логика да
генерира бинарен збор со должина n-бита: Dn-1, Dn-2, ..., D1, D0, кој преку Д/А
конверторот се претворува во интерен аналоген напон VADAC со декадна вредност
d која потоа се споредува со влезниот аналоген напон VAIN.
vAIN
vE

vAOUT
ДАК Контролна и
(n - бита) друга логика

D (n-1) D (n-2) D1 D0
Сл. 8-21. Блок-шема на А/Д конвертор базиран на Д/А конвертор
На едниот влез во компараторот се доведува токму излезниот VADAC од
вградениот Д/А конвертор што е составен дел на ваквиот тип на А/Д конвертор,
додека на другиот влез се носи влезниот аналоген напон VAIN. Разликата која се
јавува како сигнал на грешка го детерминира однeсувањето на контролната
логика која врши корекција на дигиталниот сигнал со цел да се минимизира
разликата (грешката) помеѓу двата сигнали. Во оној момент кога излезниот напон
од Д/А конверторот ќе го надмине нивото на влезниот аналоген напон за
вредност на грешката која ќе биде помала од вредноста на квантот
(резолуцијата), компараторот ја менува својата излезна вредност и го ресетира
контролното коло да почне од почеток. Во истиот момент се запамтува
дигиталната вредност во облик бинарен збор со должина n–бита на излезниот
напон од Д/А конверторот. Со ова процесот на конверзија на одбирокот е завршен
и повторно се почнува со конвертирање на следниот примерок од влезниот
аналоген сигнал.
Д/А и А/Д КОНВЕРЗИЈА 255

Постојат неколку различни начини за изведба на А/Д конвертори кои во


нивниот блок за компарација како основен составен дел применуваат Д/А
конвертор. Во продолжение ќе бидат анализирани два од нив кои припаѓаат на
оваа група конвертори:
 А/Д конверторот со броење (со бројачка конверзија) или со дигитална
рампа (анг. ADC with ramp counter или digital ramp ADC) и
 А/Д конверторот со последователно приближување (анг. successive-
approximation ADC).
8.8.2.1. АДК СО БРОЈАЧКА РАМПА

Основен елемент со кој се изведува конверзијата кај овој А/Д конвертор е


внатрешниот бинарен бројач. Тој почнува да брои од нула кон својата
најголемата вредност и тоа сè до оној момент кога неговата состојба преку
внатрешниот А/Д конвертор не се изедначи со точната вредност која
соодветствува на одбирокот на влезниот аналоген напон Vin, или најблиската
дигитална вредност поголема од тоа ниво. Најголемата вредност на бројачот
n
изнесува (2 -1) од каде се гледа дека таа зависи од резолуцијата на конверторот,
т.е. од бројот на битови n.
Заради ваквиот принцип на работа овој А/Д конвертор се вика конвертор со
бројачка, скалеста или дигитална рампа (анг. ramp counter ADC или digital ramp
ADC). Приципиелната блок-шема на овој конвертор е прикажана на следната
слика означена како сл. 8-22, додека временските дијаграми на напоните во
карактеристичните точки на колото кои се прикажани на сл. 8-23 дополнително
го појаснуваат неговото однесување.

vIN
Start

CLR

Контролна EOC
ДАК CLK
(n - бита) логика
Бројач
(n бита)
Clock

Излезни леч кола


за заклучување

D(n-1) D(n-2) D1 D0

Сл. 8-22. Блок-шема на А/Д конвертор со бројачка рампа

На сликата со Vin е прикажан аналогниот влезен напон, додека n–те


дигитални излези (битовите) се означени од Dn-1 до D0. Работата на бројачот се
контролира преку влезната линија START. Во моментот кога на неа ќе се доведе
високо ниво, таа го ресетира бројачот и преку контролната логика овозможува
тактните импулси (Clock) да дојдат на неговиот влез со што тој почнува да брои.
256 Д/А и А/Д КОНВЕРЗИЈА

Со секој импулс од такт сигналот бројачот ја зголемува вредноста за 1.


Излезите од бројачот го побудуваат Д/А конверторот и бидејќи овие влезни
комбинации континуирано се зголемуваат за 1, на излезот од Д/А конверторот се
добива напонски сигнал со скалест облик кој постојано расте, или т.н. дигитална
рампа.
v(t)

Аналоген Дискретизиран
сигнал сигнал

Сл. 8-23. Временски дијаграми на влезниот аналоген напон и споредбениот излезен


напон генериран од интерниот Д/А конвертор кај А/Д конверторот со бројачка рампа

Главната идеја на овој А/Д конвертор е зголемување на вредноста на


бројачот сè додека вредноста што тој ја дава преку интерниот Д/А конвертор не
го достигне нивото на одбирокот од влезниот аналоген сигнал. На почетокот од
секој циклус на конверзија, излезот од компараторот, кој ги споредува влезниот
аналоген сигнал и интерно генерираниот аналоген сигнал, чија амплитуда
постојано расте, се наоѓа на ниско ниво. Во моментот кога излезот од Д/А
конверторот ќе го достигне нивото на влезниот напон, бинарната комбинација,
која се наоѓа на неговиот влез и која е иста со вредноста на излезот од бројачот,
се зема како дигитален еквивалент на аналогниот сигнал. Во тој момент излезот
од компараторот се менува од ниско на високо, што предизвикува реакција на
логиката за контрола, која испраќа сигнал за крај (анг. End), т.е. дека процесот на
конверзија на одбирокот е завршен ЕОС (анг. End Of Conversion) и дека може да
се конвертира следен примерок од влезниот аналоген напон. Едновремено
сигналот ЕОС ги активира излезните леч кола кои ја заклучуваат (задржуваат)
тековната дигитална вредност на бројачот за таа да може да се прочита и
обработи.
Излезниот бафер, во чиј состав се леч-колата, не мора да е составен дел на
овој конвертор, но неговото присуство значи голема предност бидејќи
задржувањето на дигиталната вредност на одбирокот му овозможува на колото,
кое ги добива конвертираните вредности од А/Д конверторот, истите да ги
прочита или процесира додека самиот А/Д конвертор веќе работи на следниот
одбирок од влезниот аналоген напон.
По добивањето на сигналот EOC, влезните кола на Д/А конверторот на
влезот од компараторот го пренесуваат следниот одбирок од аналогниот сигнал и
едновремено со него испраќаат сигнал START за почеток на негово конвертирање
во дигитална вредност. Ова значи дека за секој одбирок на влезниот аналоген
напон, што треба да биде конвертиран, се испраќа по еден START импулс со
фреквенција, која е еднаква со фреквенцијата на одбирање fS.
Д/А и А/Д КОНВЕРЗИЈА 257

Накратко кажано бројачот брои почнувајќи од 0 до својата максимална


n
вредност (2 −1) додека не ја достигне точната или најсоодветната дигитална
вредност на нивото на одбирокот од аналогниот напон, кој е присутен на влезот
од А/Д конверторот. Кога тоа ќе се случи, се генерира сигналот EОС и
дигиталниот облик на влезното ниво на аналогниот напон (одбирок) Vin се добива
преку бинарниот вектор присутен на излезите од бројачот од Dn-1 до D0. Во врска
со ова, главен проблем кај овој АДК е неговата брзина. Имено, за одбироци кои
имаат мала вредност на напонското ниво времето за конверзија е мало, но за
поголеми влезни нивоа времето на конверзија драстично се зголемува. Така овој
конвертор е прилично бавен бидејќи за секој примерок што треба да се
конвертира и има вредност блиска до најголемата, може да поминат и до (2n-1)
такт интервали (циклуси). Така на пр. за 8 битен АДК за одбирок кој има
максимално ниво ќе бидат потребни 28-1=256-1=255 такта, но ако се работи за
АДК со 12 бита, тогаш за конвертирање на овој одбирок ќе требаат 212-
1=(4х1024)-1=4096-1=4.095 тактни интервали. Покрај ова, ваквиот принцип на
работа имплицира примена на такт-сигнал со фреквенција fCLK која треба да биде
2n пати повисока од фреквенцијата на одбирање fS.

8.8.2.2. АДК СО ПОСЛЕДОВАТЕЛНО ПРИБЛИЖУВАЊЕ


А/Д конверзијата со последователно приближување (анг. successive
approximation ADC) е еден од најчесто користените принципи за конвертирање на
аналогните сигнали во дигитални. На следната слика, сл.8-24 е прикажана една
принципиелна блок-шема од која се гледа дека изведбата на овој тип А/Д
конвертор, слично како и А/Д конверторот со броење, се базира на интерен Д/А
конвертор кој генерира сигнал за споредба со нивото на одбирокот од аналогниот
влезен сигнал.
Аналогниот влезен напон е означен со Vin, додека дигиталните излези на
кои се добива дигиталниот еквивалент на моменталното влезно напонско ниво на
примерокот, се n-те битови, означени како Dn-1, D n-2, ..., D1, D0. Блокот означен со
SAR се однесува на т.н. регистер за последователно приближување (анг.
Successive Approximation Register). Контролната логика, слично како и кај А/Д
конверторот со бројачка рампа, ги испраќа истите контролни сигнали: START за
пуштање во работа на регистерот, со што се стартува конверзијата на било кој
одбирок, ЕОС (END) сигналот кој укажува дека конверзијата на конкретниот
примерок е завршена, како и такт сигналот CLOCK. Од сликата се гледа дека и во
овој случај се користи излезен бафер, така што дигиталниот податок (бинарниот
збор) стои на располагање на логичката мрежа што треба да го обработува
додека конвертерот го процесира следниот одбирок од влезниот аналоген напон.
Сепак, овде постои голема разлика во принципот на работа во однос на А/Д
конверторот со скалеста рампа.
258 Д/А и А/Д КОНВЕРЗИЈА

vIN START
Контролна CLOCK
логика END

SAR
ДАК (n бита)
(n бита)
CLK
CLR

Излезен бафер

D(n-1) D(n-2) D1 D0

Сл. 8-24. Блок-шема на А/Д конвертор со последователно приближување

Поконкретно, овој конвертор последователно се приближува кон


моменталната вредност на аналогниот влезен одбирок, започнувајќи со
n-1
поставување на MSB битот Dn-1 кој има најголема тежина (2 ) на ниво на
логичка 1. Со ова практично на излезот од внатрешниот Д/А конвертор се
појавува сигнал кој има напонско ниво еднакво на една половина од
максималниот опсег кој е еднаков со референтниот напон +VREF. Овој напон
компараторот го споредува со влезниот аналоген напон. Врз основа на
споредбата компараторот генерира соодветен сигнал до контролниот блок со кој
му укажува:
 дали битот треба да остане поставен на 1 (што се случува кога
излезниот напон од интерниот Д/А конвертор е помал од нивото на
одбирокот, т.е. нивото на влезниот одбирок е поголемо од аналогниот
напон генериран од страна на внатрешниот Д/А конвертор) или
 поставениот бит треба да го избрише, т.е. да се постави на 0 (што ќе се
случи ако излезниот напон од интерниот Д/А конвертор е со поголемо
ниво од она на влезниот напон, т.е. од одбирокот).
Ваквиот принцип на работа се повторува и за следниот бит Dn-2 кој има
n-2
два-пати помала тежина од претходната (2 ) со што аналогната вредност на
излезот од Д/А конверторот сега ќе изнесува една четвртина од максималното
ниво на А/Д конверторот. Во компараторот повторно се врши споредување помеѓу
ова ново генерирано ниво со нивото на одбирокот. По извршената споредба
излезното ниво од компараторот повторно преку контролната логика детерминира
дали овој бит треба да остане на 1, или треба да се ресетира, итн.
компарирањето продолжува сè до последниот LSB бит D0 кој има најниска тежина
0
(2 ). Целата оваа постапка е сликовито претставена на сл. 8 -25 и сл. 8-26.
Главната предност на овој тип на А/Д конвертор е неговата брзина на
работа. Имено, за одредувањето на соодветната дигитална вредност за нивото на
аналогниот одбирок, во најлош случај, ќе бидат потребни n циклуси на тактот,
каде што n е бројот на битови кој што се користи за дигитална презентација на
n
аналогниот влез, а не 2 како кај А/Д конверторот со бројачка рампа.
Д/А и А/Д КОНВЕРЗИЈА 259

Така на пр. ако станува збор за ваков 8 битен А/Д конвертор со сукцесивна
апкроксимација, дигиталната вредност на еден одбирок ќе биде одредена за
8
најмногу 8 такта, што споредено со 2 -1=255-такта кои би се потрошиле во
случајот на А/Д конверторот со бројачка рампа, е навистина големо подобрување.

5.0 V VREF (FSR) b3 b2 b1 b0


Аналоген влез и излез од интерен ДАК

4.6875 15 1 1 1 1
4.375 14 1 1 1 0
4.0625 13 1 1 0 1
Излез
3.75 12 1 1 0 0
од АДК
3.4375 11 1 0 1 1
3.125 10 1 0 1 0 b3 b2 b1 b0
2.8125 8.60 9 1 0 0 1
2.5 "8" 8 1 0 0 0 1 0 0 0
2.1875 6.40 7 0 1 1 1
1.875 "6" 6 0 1 1 0 0 1 1 0
1.5625 5 0 1 0 1
1.25 4 0 1 0 0 Такт
0.9375 3 0 0 1 1
0.625 2 0 0 1 0
0.3125 1 0 0 0 1
0V 0 0 0 0 0
t
Сл. 8-25. Временски дијаграм на процесот на последователно приближување за два одбироци

v(t)

Сл. 8-26. Временски дијаграми на влезниот аналоген напон и споредбениот излезен


напон генериран од интерниот Д/А конвертор кај А/Д конверторот со последователно
приближување

Во случај на 12 битна А/Д конверзија, дигиталната вредност на примерокот


може да се добие за 12 такт циклуси, а кај претходниот конвертор со скалеста
12
рампа за тоа можеа да се потрошат и до 2 -1=4.095 временски интервали. Од
изложеното станува јасно дека може да се примени такт-сигнал со фреквенција
fCLK која треба да биде само n пати повисока од фреквенцијата на одбирање fS, а
не 2n пати како кај конверторот со дигитална рампа.
260 Д/А и А/Д КОНВЕРЗИЈА

8.8.3. АДК БАЗИРАНИ НА ИНТЕГРАТОРСКО КОЛО

Постојат различни начини за дизајнирање на АДК со помош на


интегрирање (анг. Integrating ADC). Во продолжение ќе ги разгледаме А/Д
конверторот со единечен наклон. (анг. Single-slope ADC) и А/Д конверторот со
двоен наклон (анг. Dual-slope ADC).
Како што ќе видиме во понатамошното излагање, заедничка каратеристика
и на двата претходно наведени А/Д конвертори е сличноста во принципот на
работа со А/Д конверторот со бројачка рампа. Имено, и кај овој тип на конверзија
се применува бројач, со таа разлика што за генерирање на интерниот аналоген
напон кој се споредува со вредноста на одбирокот на аналогниот влезен сигнал,
сe користи интеграторско коло, а не Д/А конвертор. Само во овој случај на
излезот од интеграторот се добива напон за споредба кој има растечки линеарен,
а не скалест облик.

8.8.3.1. А/Д КОНВЕРТОР СО ЕДИНЕЧЕН НАКЛОН

Принципиелната блок-шема на А/Д конверторот со интегрирање е


претставена на сл. 8-27. Заради принципот на работа кој во продолжение ќе го
објасниме во поголеми детали, овој А/Д конверторот се вика и конвертор со
единечен наклон (анг. single-slope ADC). Имено, ако обрнеме поголемо внимание
на сликата, ќе видиме дека оваа шема е многу слична со онаа на А/Д конверторот
со бројачка рампа бидејќи и во овој случај се користи бројач. Меѓутоа, сега за
генерирање на интерниот аналоген напон кој се компарира со аналогниот влез, сe
користи интеграторско коло, поточно генератор на пилест напон (анг. integrator,
saw-tooth generator) наместо Д/А конверторот кој на својот излез исто така
продуцираше растечки сигнал, но со скалест, а не со линеарен облик. Интегратор-
ското коло во основа се состои од операциски засилувач со капацитивна
негативна повратна врска, при што побудниот напон се носи на инвертирачкиот
влез преку отпорник. Кога на влезот од интеграторот се доведи константен
еднонасочен негативен напон −VREF, на излезот од интеграторот ќе се добие
линеарен растечки сигнал (напонски облик) бидејќи колото врши инверзија на
знакот. MOSFET-от има улога на прекинувачки елемент со кој се контролира
почетокот на секој циклус на конверзија.
Clock

CLK
vIN CLR
Бројач
(n бита)
T

C Излезен
STB Бафер
VREF R

D(n-1) D(n-2) D1 D0
Сл. 8-27. Блок-шема на А/Д конвертор со интеграторско коло и единечен наклон
Д/А и А/Д КОНВЕРЗИЈА 261

Пилестиот напон, кој се добива на излезот од интеграторот линеарно расте,


тргнувајќи од најниското нулто ниво, кон својата најголема вредност која по
апсолутна вредност е еднаква со максималното можно ниво на влезниот сигнал
|−VREF|=+VREF. Во овoј временски период влезниот аналоген напон е поголем од
пилестиот и на излезот од компараторот се добива ниско ниво. Излезот од
компараторот се доведува на гејтот од MOSFET-от така што неговата ниска
вредност го поларизира MOSFET-от во запирното подрачје и со тоа го држи
исклучен заради што тој не проведува. Бидејќи кондензаторот е поврзан
паралелно на спојот дрејн-сорс, а низ него не тече струја (ID=0), целата струја
тече низ кондензаторот С кој се полни. Оваа струја на полнење има константна
јачина (IC=VREF/R), па на излезот од операцискиот засилувач се јавува растечки
пилест сигнал.
Едновремено со моментот кога почнува да се генерира пилестиот импулс,
n
бројачот почнува да брои од 0 кон (2 -1), каде n е бројот на битови кои ги
користи А/Д конверторот. Кога пилестиот напон генериран од интеграторот го
достигне нивото на одбирокот на аналогниот влезен сигнал Vin, компараторот го
менува своето излезно ниво со што ја детектира вредноста што во тој момент ја
има бројачот, т.е. неговата последна вредност. Во тој момент се активира
контролниот влез на излезниот бафер и во него се сместува оваа дигиталната
вредност која кореспондира на аналогното ниво на одбирокот од влезниот напон
кој се конвертираше. Едновремено промената на излезното ниво на компараторот
го ресетира бројачот и преку MOSFET-от го празни кондензаторот од
интеграторот. Имено, во моментот на изедначување на линеарниот напон, кој има
тенденција на пораст, и влезниот аналоген напон, компараторот го менува свoeто
излезно ниво од ниско на високо кое го побудува гејтот на MOSFETот заради што
тој се вклучува. Бидејќи напонот дрејн-сорс се однесува како куса врска (UDS=0V)
потенцијалот на излезот од интеграторот паѓа на нула и скоро моментално доаѓа
до празнење на кондензаторот С со што веднаш се овозможува започнување на
нов (следен) циклус за конверзија.
Временските дијаграми на напоните во карактеристичните точки на А/Д
конверторот со интеграторско коло и единечна стрмина кои се прикажани на сл.
8-28 го илустрираат и визуелно го појаснуваат неговиот принцип на работа.
v(t)

Аналоген Дискретизиран
сигнал сигнал

Сл. 8-28. Временски дијаграми на влезниот аналоген напон и споредбениот излезен


напон генериран од интеграторот кај А/Д конверторот со бројачка рампа
262 Д/А и А/Д КОНВЕРЗИЈА

Имајќи ја предвид презентираната анализа, како и блок-шемата на овој А/Д


конвертор, може да се заклучи дека и сега се користи излезно баферско коло,
што значи дека додека се чита последната конвертирана вредност, конверторот
веќе го работи следниот примерок од влезниот аналоген напонски сигнал.
Иако оваа реализација на конверзија е поедноставна од онаа базирана на
бројачка рампа, сепак и овде станува збор за последователно броење кое се
зголемува за 1, така што и овој А/Д конвертор го има истиот проблем, а тоа е
малата брзина на работа бидејќи за да се конвертира одбирок со големо напонско
ниво може да се потребни и до (2n-1) тактни интервали. Покрај ова, кај ваквиот
тип на А/Д конверторот со единечен наклон се јавува уште еден проблем, а тоа е
т.н. калибрациско поместување. Имено, фактот што интеграторот не е поврзан на
тактниот сигнал на бројачот најчесто со тек на времето доаѓа до одредени
отстапувања.

8.8.3.2. А/Д КОНВЕРТОР СО ДВОЕН НАКЛОН

Вториот популарен дизајн, базиран на интеграторско коло е познат како


А/Д конвертор со двоен наклон (анг. Dual-Slope ADC). Неговата стандардна, но
поедноставена блок шема е прикажана на сл. 8-29. Овој А/Д конвертор го решава
системскиот проблем на калибрациското поместување кај А/Д конверторот со
единечен наклон кој предизвикуваше појава на грешки затоа што генерирањето
на пилестиот сигнал не беше синхронизирано со тактот на бројачот.
Кај А/Д конверторот со двоен наклон, циклусот на конверзија се извршува
во два чекори. Во првата фаза контролната логика го става прекинувачот S во
положба 1 (S=1) со што го приклучува на аналогниот влезен напон VINA, додека
во втората фаза го преспојува во положба 2 (S=2) на константниот референтен
напон кој има негативна вредност −VREF.
На почетокот на процесот на конверзија кога прекинувачот Ѕ се наоѓа во
положба (1) позитивното ниво на одбирокот од аналогниот сигнал се носи до
влезот на интеграторот (генераторот на пилест напон), заради што на неговиот
излез почнува да се генерира пилест напон кој има спротивен, негативен наклон.
Овој линеарен опаѓачки сигнал се генерира за одреден фиксен (константен)
временски период T1. За ова време компараторот е пасивен, додека контролната
логика управува со работата на бројачот кој почнува да брои од нула точно
одреден број на такт-импулси со што практично се дефинира константна
должината на временскиот интервал T1. Кога овој фиксен временски интервал ќе
помине, контролната логика реагира и ја менува положбата на прекинувачот од
состојба (1) во (2), со што овозможува на влезот од интеграторот да се приклучи
референтниот напон −VREF. Едновремено таа испраќа два контролни импулси до
бројачот: со едниот го ресетира бројачот (го враќа на броењето на почеток), а со
вториот ги пропушта тактните импулси со што истиот го побудува веднаш по
ресетирањето повторно да почне да брои. Компараторот и понатаму сèуште
останува пасивен.
Бидејќи сега на влезот од интеграторот е приклучен негативен референтен
напон −VREF, на излезот од интеграторот ќе се добие пилест напон кој линеарно
ќе почне да расте кон нултото ниво почнувајќи од негативното ниво до кое што
предмалку стигнал кога на неговиот влез беше приклучен аналогниот сигнал.
Д/А и А/Д КОНВЕРЗИЈА 263

По одреден временски период T2 кога излезниот сигнал од интеграторот ќе


го достигне нултото ниво, компараторот ќе реагира, а состојбата на бројачот ќе ја
претставува дигиталната вредност на аналогниот влезен сигнал која ќе се
запамти во излезниот бафер.
CLK
C Бројач
CLR
(n бита)
vIN (1) R
(2)
VREF Контролна логика

Излезен
STB Бафер
Clock

D (n-1) D(n-2) D 1 D 0

Сл. 8-29. Блок-шема на А/Д конвертор со интегрирање и двоен наклон


Кажаното подобро ќе го разбереме ако уште еднаш се навратиме на
циклусот на конверзија. Во првата положба на прекинувачот (S=1) за време на
интервалот T1 кој беше фиксен се генерираше пилест напон чија стрмнина
зависеше од нивото на аналогниот влез VINA: ако нивото беше со поголема
вредност и стрмнината ќе беше поголема, и обратно. За разлика од тоа, во
втората положба (S=2) побудата на интеграторот беше константа (−VREF), па
временскиот интервал T2 за кој излезниот напон од интеграторот ќе ја стигне
нулата зависи од тоа до кое претходно ниво тој тргнал.

vINT (t)
T 2''
T1 T 2'
a1 t

а) a2 VREF
VA1 VA1 RC
RC
VA2 VREF
RC RC
VA2

vComp(t)

б)

T1 T 2' t
T 2''

Сл. 8-30. Бранови облици на излезите од а) интеграторот и б) компараторот

Оваа постапка подобро може да се разбере ако се погледне сл. 8-30, на


која се прикажани временските дијаграми (брановите облици) на сигналите во
карактеристичните точки од шемата и тоа на излезите од интеграторот и
компараторот.
264 Д/А и А/Д КОНВЕРЗИЈА

Времетраењето T1 е константно и неменливо, додека периодот T2 е


пропорционален со вредноста на одбирокот на влезниот напон VINA. Практично
моменталното ниво на аналогниот сигнал VINA ја поставува вредноста на наклонот
(стрмнината) на линеарниот напон: колку што е тоа поголемо, толку ќе биде
поголема и стрмнината, што значи дека поголем ќе биде и аголот, а со тоа и
времето T2 потребно да се достигне нултото ниво, бидејќи стрмнината со која
сигналот се стреми кон нула е константна. Равенката (8-21) ја презентира
зависноста помеѓу претходно наведените напонски нивоа и временски интервали.
VINA VREF T
  VINA  VREF  2 (8-21)
T2 T1 T1
Токму заради ова, периодот T2 се однесува на вториот чекор од
конверзациониот циклус кога бројачот брои сè до моментот кога излезот од
интеграторот не го достигне нултото ниво, кога компараторот реагира (го
променува нивото на својот излез), со што повторно се активира контролното
коло кое сега ги испраќа следниве управувачки сигнали:
 за ресетирање на бројачот,
 за пропуштање на импулсите од такт-сигналот до бројачот и отпочнување
со броење,
 за задржување на бинарниот збор – дигитално конвертираниот аналоген
одбирок во баферот и
 за враќање на аналогниот прекинувач S во положба (1).
Со ова може да се земе нов одбирок и да се отпочне следниот циклус на
конверзија.

8.8.4. ДЕЛТА-СИГМА А/Д КОНВЕРТОРИ

Од принципиелна гледна точка, однесувањето на делта-сигма (ΔΣ) или


сигма-делта (ΣΔ) А/Д конверторите (анг. delta-sigma или sigma-delta ADC)
прилично се разликува од другите А/Д конвертори, иако малку потсетува на А/Д
конверторот со двоен наклон. Наједноставната блок шема на делта-сигма
конверторот која е прикажана на сл. 8-31 во основа содржи два блока. Првиот
блок е аналоген модулатор кој го прифаќа аналогниот влезен сигнал и го
конвертира во долга сериска низа од многу голем број битови, т.е. генерира едно-
битен поток (анг. stream), заради што делта-сигма (ΔΣ) конверторите се познати и
како еднобитни конвертори. Вториот блок е дигитален НФ филтер кој содржи и
т.н. дециматор. Овој блок врши конверзија на долгите низи битови кои доаѓаат од
модулаторот во дигитален излез, т.е. во облик на бинарни зборови со должина n-
бита.
Аналоген Еднобитен n - битен
сигнал сериски излез дигитален сигнал

Аналоген Дигитален
модулатор Филтер

Сл. 8-31. Блок дијаграм на сигма – делта А/Д конвертор


Д/А и А/Д КОНВЕРЗИЈА 265

Принципот на работа на аналогниот делта-сигма модулатор ќе го објасниме


со помош на неговата блок-шема која е прикажана на сл. 8-32. Компараторот ја
препознава разликата (Δ) помеѓу излезот од интеграторот и нултото ниво, додека
интеграторот ги интегрира (ги собира, Σ) разликите помеѓу излезните напони од
компараторот (едно-битниот Д/А конвертор) и аналогниот влезен сигнал. Ова е
овозможено со негативната повратна врска која е остварената преку едно-
битниот Д/А конвертор. Неговото излезно ниво може да има само две различни
вредности кои се означуваат со VRmax и VRmin со кое е ограничено максималното
ниво на влезниот сигнал. Така на пр. ако VRmin=0V и VRmax=+5V опсегот на
влезните напонски нивоа ќе биде помеѓу 0V и 5V, меѓутоа ако VRmin=–10V и
VRmax=+10V, тогаш влезниот опсег на напони ќе биде помеѓу –10V и +10V.
Vmax
1-битен
ДАК

Vmin

Интегратор Компаратор
vINA (1-битен АДК)
Кон дигиталниот
филтер и дециматорот

... 1100101001 ...
1-битна излезна
Такт низа (бит-поток)
GND
(KfS )

Сл. 8-32. Блок дијаграм на модулаторот кај сигма – делта А/Д конвертор
За делта-сигма конверторот е карактеристична големата фреквенција на
тактот со која работи компараторот, т.е. еднобитниот Д/А конвертор така што од
аналогниот влезен сигнал се земаат прекумерен број на примероци заради што
овие конвертори се познати и како конвертори со прекумерен број на одбирања
(анг. over-sampling ADC). Заради ова, потокот од битови кој се добива на излезот
од аналогниот модулатор е сериски едно-битен сигнал чија фреквенција fCLK е
повеќекратно зголемена во однос на фреквенцијата на одбирање fS=2·fMAX. Таа е
цел број пати (К) поголема од Најквистовата фреквенција fS: fCLK=K·fS= K·2·fMAX.
Главна карактеристика на ваквата долга и густа низа од битови за кус временски
период е фактот што нивното средно ниво го претставува средното ниво на
влезниот аналоген сигнал за тој период. Поголемиот број на 1-и во единица време
индицира поголемо ниво на влезниот анлоген сигнал, и обратно. Бидејќи излезот
од А/Д конверторот е дигитален најголемото ниво ќе биде претставено со сите 1-и
во излезниот дигитален збор, додека најниското ниво со сите 0-и. Колку што е
бројот на 1-и поголем, т.е. колку се тие погусти, толку ќе биде поголемо и нивото
на влезниот аналоген сигнал. Обратно, ако влезното ниво опаѓа, и бројот на 1-и
ќе се намалува, како што е прикажано на примерот од сл. 8-33. Од тука станува
јасно дека колку што е фреквенцијата на тактот поголема, толку ќе биде поголема
и прецизноста на делта-сигма модулаторот.
Еден прилично едноставен начин за да се утврди нивото на влезниот
сигнал е да се употреби бројач кој ќе ги брои 1-те во одреден фиксен временски
интервал. Кога ќе заврши броењето, излезите на бројачот ќе го претставуваат
дигиталниот еквивалент на аналогниот сигнал за тој временски интервал.
266 Д/А и А/Д КОНВЕРЗИЈА

Меѓутоа, кај делта-сигма конверторите кои практично се реализираат за да


го претворат еднобитниот поток од битови во дигитален излез, т.е. бинарно
кодирани зборови, се применува т.н. техника на десеткување (децимација) (анг.
Decimacion) со која се редуцира бројот на одбироци кај временски
дискретизираниот влезен сигнал.
vIN (t)
Vmax

Vmin
t
vOM (t)

t
Сл. 8-33. Бранови облици на неколку одбироци и излезниот сигнал од модулаторот
Бидејќи со децимирањето практично се намалува фреквенцијата на земање
на одбироци треба да се внимава да не биде нарушен Најквистовиот критериум.
Заради ова на излезот од А/Д модулаторот најнапред се поврзува дигитален НФ
филтер, а потоа дециматор. НФ филтерот се користи како филтер за
елиминирање на лажните фреквенции (анг. anti-aliasing filter) со што се редуцира
фреквентниот опсег на сигналот, а потоа со дециматорот се врши намалување на
фреквенцијата на одбирање (анг. downsampling) на сигналот, со што конечно се
добива средното ниво на влезниот сигнал во дадениот временски интервал.
Делта-сигма А/Д кoнверторите се применуваат за прецизни мерења и
заради тоа се користат кај инструментите, во индустријата и сл.
Д/А и А/Д КОНВЕРЗИЈА 267

ПРАШАЊА И ЗАДАЧИ ЗА ПОВТОРУВАЊЕ


8-1. Аналогните сигнали претставуваат ...
8-2. Дигиталните сигнали претставуваат ...
8-3. Нацртај наједноставна блок шема на А/Д конвертор и коментирај ја неговата
улога.
8-4. Под поимот А/Д конверзија се подразбира ...
8-5. Под поимот Д/А конверзија се подразбира ...
8-6. Нацртај наједноставна блок шема на Д/А конвертор и коментирај ја неговата
улога.
8-7. Нацртај наједноставна блок шема за поврзување на компјутер со А/Д и Д/А
конвертор.
8-8. Напиши ја равенката за излезниот напон кај идеален Д/А конвертор а) во
општ случај со резолуција n-бита, б) со резолуција n=3 бита, в) со резолуција n=4
бита.
8-9. Нацртај ја преносната карактеристика на идеален Д/А конвертор со
резолуција а) n=3 бита, б) n=4 бита.
8-10. Проектирај а) 3-битен, б) 4-битен Д/А конвертор со чекор од 1 V
претпоставувајќи дека високото логичко ниво (нивото на 1) е (1) 5 V, (2) 10 V. Кој
ќе биде излезниот напонски опсег за Д/А конверторот кој ќе го реализираш?
8-11. Проектирај а) 3-битен, б) 4-битен Д/А конвертор со чекор од 0,2 V
претпоставувајќи дека високото логичко ниво (нивото на 1) е а) 5 V, б) 10 V. Кој
ќе биде излезниот напонски опсег за Д/А конверторот кој ќе го реализираш?
8-12. Нацртај електрична шема на Д/А конвертор со тежинска R/2nR отпорничка
мрежа и резолуција а) n=3 бита, б) n=4 бита, в) n=5 бита.
8-13. Нацртај електрична шема на Д/А конвертор со скалеста R/2R отпорничка
мрежа и резолуција а) n=3 бита, б) n=4 бита, в) n=5 бита.
8-14. Спореди ги добрите и лошите страни (предностите и слабостите) на Д/А
конвертор со тежинска R/2nR и скалеста R/2R отпорничка мрежа.
8-15. Што претставува дискретизацијата по време на аналогниот сигнал?
8-16. Што претставува квантизацијата (дискретизацијата по ниво) на аналогниот
сигнал?
8-17. Нацртај еден дел од временски дијаграм на аналоген напонски сигнал во
опсег од 0 до 5 V. Изврши негова дискретизација по време така што од него ќе
земеш 5 одбироци кои се дискретизирани по ниво (квантизирани) со а) n=3 бита,
б) n=4 бита. Нацртај го и неговиот конвертиран дигитален сигнал.
8-18. Циклус на конверзија е …
268 Д/А и А/Д КОНВЕРЗИЈА

8-19. Фреквенција на одбирање е …


8-20. Зошто е важен Најквистовиот критериум?
8-21. Да претпоставиме дека се дадени два аналогни сигнали: едниот е аудио
сигнал кој зафаќа фреквентен опсег од 0 до 20 KHz, додека другиот е видео
сигнал во опсег од 0 до 5 MHz. Која е најниската фреквенција на одбирање за
секој од сигналите?
8-22. Нацртај преносна карактеристика на идеален А/Д конвертор со резолуција
а) n=3 бита, б) n=4 бита.
8-23. Што претставува опсегот на целосна (полна) скала FS(R)?
8-24. Што е резолуција на квантизерот? Од што зависи? Во кои единици се
изразува? Според која равенка се пресметува?
8-25. Што е квант (чекор на квантизација) (Q)? Од што зависи? Според која
равенка се пресметува?
8-26. Зошто е важно чекорот на квантизација (квантот) да биде мал? Коментирај!
8-27. Што претставува грешката на квантизација? Во кои граници се движи?
8-28. Да претпоставиме дека на влезот од идеален А/Д конвертор доаѓа напонски
аналоген сигнал во опсегот од 0 до 10 V. Пресметај го бројот на квантизациони
нивоа и резолуциониот напон (големината на квантот) и грешката на
квантизација ако А/Д конверторот врши конверзија со а) n=3 бита, б) n=4 бита,
в) n=12 бита, г) n=16 бита.
8-29. Наброи ги главните групи на постапки според кои се градат А/Д конвертори.
8-30. Имајќи ја во вид принципиелната шема на паралелниот (флеш) А/Д
конвертор објасни го принципот на неговата работа.
8-31. Колкав број на отпорници е потребен за да се реализира а) 8-битен, б) 12-
битен, в) 16-битен флеш А/Д конвертор? Колку компаратори ќе бидат потребни?
8-32. Што е заедничко за А/Д конверторите со бројачка рампа, со последователно
приближување и со следење?
8-33. Имајќи ја во вид принципиелната шема на А/Д конвертор со бројачка рампа
објасни го принципот на неговата работа.
8-34. Имајќи ја во вид принципиелната шема на А/Д конвертор со последователно
приближување објасни го принципот на неговата работа.
8-35. Кои А/Д постапки се базираат на примената на интеграторско коло?
8-36. Имајќи ја во вид принципиелната шема на А/Д конвертор со единечен
наклон објасни го принципот на неговата работа.
8-37. Имајќи ја во вид принципиелната шема на А/Д конвертор со двоен наклон
објасни го принципот на неговата работа.
8-38. Спореди ги и коментирај ги предностите и слабостите на различните
постапки за А/Д конверзија и на А/Д конверторите што нив ги реализираат.
Д/А и А/Д КОНВЕРЗИЈА 269

8-39. Во некое музичко студио (сл. 8-34) дигитално се снима музика за CD со


фреквенција на одбирање 44.1 kHz. а) Колкав мемориски простор изразен во
битови (b) и бајти (B) е потребен за да се сними песна која трае 1) 3 минути, 2) 4
минути? б) Ако капацитетот на едно CD е 700 MB колку минути музика може да се
сними на него? в) Ако амплитудата на аналогниот аудио сигнал се менува во
границите од 0 до 5V, колку изнесува бројот на квантизациони нивоа, чекорот на
квантизација (резолуциониот напон, квантот) и грешката на квантизација?

Сл. 8-34
270 Д/А и А/Д КОНВЕРЗИЈА
I.2
Организација на
микрокомпјутери
Изборна настава
Наставни теми:
Вовед во изборна настава и насоки за вежбите
 1. Графичка и синтеза на дигиталните системи
 2. Комбинациски мрежи
 3. Бистабилни кола (флип - флопови)
 4. Регистри со комбиниран влез и/или излез
 5. Бројачи со произволен модул
 6. Полупроводнички мемории
 7. Аналогно – дигитална конверзија
272
Вовед во изборната настава и
насоки за реализација на вежбите
Успешното совладување на електрониката не е баш лесно, како што
изгледа кога се обработуваат нејзините теоретски основи. Напротив. Додека
теоретските концепти релативно лесно може да се совладаат, нивната примена во
реалниот свет, кога одреден уред или склоп, треба да се поправи заради негово
„враќање во живот“ често пати не е тривијална и едноставна работа.
Техничарот треба да го применува стекнатото теоретско знаење во
праксата, да стекне одредени вештини и притоа да применува соодветни техники
и методи за да дојде до целта – исправна работа на склопот или уредот што се
сервисира. Голем дел од тешкотијата е и поради тоа што техничарот треба да
применува различни инструменти, поставувајќи им ги параметрите во оптимална
работна точка за да изврши точно мерење. Тој треба да користи и одредени
математички пресметки за да може, кога за тоа ќе има потреба, да ги одреди
вредностите на неисправните елементи и компоненти и да одбере нови за нивна
замена. Притоа, секој од нив ќе треба да биде нагоден на таква вредност, која на
уредот кој се поправа ќе му се обезбеди оптимална функција. Во реалноста може
да биде прилично сложено сето ова да се усогласи, посебно ако станува збор за
одржување на покомплексни уреди или пософистицирана опрема. За да го
постигнете тоа и да станете вешт техничар кој може релативно лесно да ги
решава идните реални проблеми со кои ќе се сретнувате во праксата, ќе треба
доста да се ангажирате на часовите за изборна и практична настава и успешно да
ги изработувате поставените вежби, користејќи различни ресурси и средства.
На часовите за изборна настава ќе користите програми со кои се
составуваат виртуелни електрични кола на работната површина на програмот, кој
се користи со наједноставно „земање и спуштање“ (анг. drag-and-drop) на
најразлични електрични (и аналогни и дигитални) електронски елементи,
компоненти и интегрирани кола. Покрај тоа ваквите и слични програми
дополнително овозможуваат на виртуелните кола да им се симулира нивната
функција, тестирајќи ги и анализирајќи ги со исто така виртуелни инструменти
кои даваат графичка и нумеричка анализа на резултатите од изведбата на вашите
виртуелни симулациски вежби. Една карактеристична вежба може да се состои од
креирање на коло, зададено со неговата електрична или логичка шема, со
одбирање на елементи и компоненти чии вредности се еднакви со зададените и
негово побудување со тест сигнали, или различни нивоа на логички влезни
променливи, а притоа мерејќи ги бараните излезни величини со соодветни
инструменти.
Симулациските вежби успешно ќе ги реализирате ако се имате добро
запознаено со принципот на работа и користењето на програмите за симулирање
на електрични, аналогни и дигитални кола, нивните виртуелни елементи и
компоненти со кои тие располагаат и со начинот на нивното поврзување заради
добивање на шема за симулација која е соодветна на електричната или
логичката.
274 Вовед во изборна настава и насоки за вежби

Овде секако припаѓаат и палетата на инструменти како што се на пр.


дигиталниот мултимер, функцискиот генератор, осцилоскопот, логичката сонда,
логичкиот анализатор и други, со кои ваквите софтвери располагаат и нивно
поставување во кругот на колото како опрема заради тест-побудувања и мерења
на резултатите.
На часовите за практична настава, во најголемиот број на случаи, ќе
составувате идентично реално коло со она што е симулирано и ќе му ја тестирате
неговата функционалност. Кога ќе работите на часовите по практична настава ќе
користите реални електронски компоненти и кола, а многу често ќе ги
составувате истите кола кои сте ги симулирале на вежбите и во принцип, ќе треба
да добивате многу слични резултати. На крај, ќе вршите анализа на вашите
излезни податоци добиени од мерењата на практичните вежби кои тогаш ќе ги
реализирате и ќе ги споредувате со предвидените вредности од теоретското
изучување на наставните содржини, и оние добиени од симулациските вежби.
Успешно реализираните симулациски вежби многу ќе ви помогнат исто така
успешно да ги асемблирате практичните вежби во реални услови. На часовите за
практична настава ќе стекнувате вистинско „техничарско“ искуство со примена на
вистински електрични и електронски елементи и компоненти, кои ќе ги
поставувате на експериментални прото-плочки (анг. breadbord) или ќе
изработувате печатени плочки (анг. printed circuit board, PCB) и на нив ќе ги
залемувате, (а кога ќе згрешите и ќе ги одлемувате!). Потоа ќе ги поврзувате
елементите и компонентите со проводници, или бакарни водови, и притоа по
потреба ќе употребувате реални – вистински инструменти како што се на пр.
универзални мултиметри, осцилоскоп, функциски генератор, логичка сонда, и
логички анализатор, како и извори за напојување со вредности кои можат да се
нагодуваат, соодветни за ваквата намена.

1. Изведување и документирање на вежбите


Часовите од изборната настава се посветени за изработка на компјутерски
базирани симулациски вежби со користење на програмите Electronics Workbench,
евентуално по избор на наставникот и Logisim, како софтверски алатки за
креирање и симулирање на виртуелни електрични, аналогни и дигитални
електронски кола.
Пред започнување со работа, наставникот од множеството вежби кои му
стојат на располагање за секоја тема, ќе ви избере и зададе вежба што ќе треба
да ја реализирате, а која е соодветна на вашите знаења. Додека ги изработувате
вежбите, посветете им сериозно внимание на упатството и на насоките кои ќе ви
бидат посочени од страна на наставникот. Задолжително запишете ги најважните
од нив. По извршените работни задачи, вашите индивидуални набљудувања и
мерења исто така ќе треба да ги запишете и од нив ќе треба да извлечете
значајни заклучоци. За нејасните работи продискутирајте со соученикот, кој
заедно со вас ја работи вежбата, и доколку заедно не ги откриете вистинските
одговори, слободно поставувајте му ги неодговорените прашања на вашиот
наставник.
Вовед во изборна настава и насоки за вежби 275

Од вас се очекува да ги имате во вид и да ги евидентирате резултатите за


секој важен чекор од вежбата и истите да ги вклучите во печатениот извештај за
таа вежба. Покрај тоа, направете слики кои се копија од екранот на сите кола
што сте ги симулирале и внесете ги во вашиот извештај од вежбата. Бидете
сигурни дека по секоја завршена симулациска вежба сте снимиле копија од сите
направени кола кои правилно функционираат во вашиот простор за фајлови на
дискот и на вашиот личен мемориски USB стик.
Ќе треба да водите детална евиденција чекор-по-чекор и да направите
копија од екранот и подесувањата на инструментите кои се поврзани во вашата
вежба, за да можете истите да ги вклучите во извештајот на секоја вежба.
Паралелено, ќе треба да ги зачувувате електронските верзии на сите фајлови кои
сте ги генерирале и искористиле.
Најдобро е извештајот од секоја вежба да биде еднострано отпечатен и
доставен до професорот во посебна папка во хартиен облик, но и во електронски
облик запамтен во соодветно именуван документ и посебна електронска папка
(анг. folder).
За да бидете ефикасни, паралелно со започнувањето на секоја симулациска
вежба, треба да имате паралелно отворено и текст документ за едновремено со
извршувањето на вежбата да ги запишувате податоците, добиените резултати,
потоа сликите кои се копии од екранот на реализираните колата, временските
дијаграми и графиците на осцилоскопот или логичкиот анализатор, како и
логичките вредности во карактеристичните точки на шемата. На овој начин ќе
креирате целокупна документација и структура на извештајот, која подоцна ќе
може лесно да биде подобрена и надоградена со понатамошни детали и
видувања.

2. Вежби што стојат на располагање


Што се однесува до вежбите, тие се систематизирани и зададени во
изборната настава, како посебно одвоено множество во рамките на секоја
тематска целина. Генерално земено, на наставникот му стојат на располагање
(многу) голем број на вежби со различна тежина за нивно изведување.
Поедноставните вежби се однесуваат на базичните знаења и основните
теоретски концепти кои се обработени во редовната настава. За нив, но и
вежбите од нешто повисоко ниво, ќе треба да ги определите, анализирате и
споредите со теоријата, сите, или само некои од:
1. Логичките шеми на комбинациските и секвенцијалните кола,
2. Таблиците на вистинитост,
3. Таблиците на функционирање (функционалните таблици),
4. Логичките равенки и
5. Временските дијаграми.
276 Вовед во изборна настава и насоки за вежби

Во секоја тема од изборната настава се издвојуваат и пософистицирани


вежби за изведба, како и такви вежби, кои можат да се искористат за изработка
на проекти од помал обем. За овие вежби се применуваат реални CMOS,
понекогаш и TTL, дигитални интегрирани кола најчесто од фамилијата 74хх, но и
од фамилијата 40хх. Пред да се започне со нивната изведба, наставникот ќе
треба да ги има на располагање, т.е. претходно да ги има превземено од
интернет како посебни фајлови во PDF облик, документите со податоци
(листовите со податоци, анг. datasheets) за сите интегрирани кола кои се
применуваат во соодветната вежба. Од нив ќе треба да направи резимеа со
карактеристиките, кои се најважни за секое коло посебно, и потоа да премине на
реализација на вежбата, која во основа ја презентира вообичаената примена во
практиката на употребените дигитални интегрирани кола. Како најважно, со
изведбата на секоја ваква вежба ученикот ги надополнува, продлабочува и
проширува своите знаења, а со тоа и стекнува нови практични знаења за
проблематиката која се изучува во актуелната тематска целина. Имено,
успешната симулација на ваквите вежби, евентуално помали проекти, дава
можност истите да бидат реализирани на часовите во рамките на практичната
настава.

Ваквата концепција на поголем број систематизирани вежби со различна


тежина дава можност наставникот на секој ученик да му пристапи индивидуално,
знаејќи го неговиот капацитет и да му зададе вежба која е соодветна на неговите
предзнаења. Дополнително, на овој начин, ќе се зголеми мотивацијата на
талентираните ученици и ќе дојде до израз нивната креативност, а без при тоа да
им се попречува совладувањето на основните концепти на учениците со
стандардни и пониски нивоа на знаења.

3. Опис на формата на извештаите за вежбите


Како што веќе истакнавме, по завршувањето на секоја вежба потребно е да
предадете извештај кај наставникот, што се состои од опис на активностите кои
сте ги превземале за време на нејзината изведба. Извештајот треба да започне со
една општа изјава за целта на вежбата. Потоа, за секоја вежба треба да бидат
претставени: шемите на колото (електричната, односно логичката), па
шематскиот приказ – шематскиот дијаграм на симулираното коло, графиците на
набљудуваните бранови облици и логички нивоа, релевантните излезни податоци,
потоа логичките равенки и доколку тоа се бара од вас, нивното изведување,
описот на теоретското однесување на колото и одговорите на најважните
прашања поставени на почетокот на работата од страна на наставникот.
Претставувањето на вашите резултати треба да биде добро организирано и
целосно финализирано, а вашите дијаграми да имаат соодветни наслови и ознаки,
за да може и некој ученик, кој не е запознаен со вежбата, или не присуствувал на
часот, без тешкотии да разбере што е направено.
Вовед во изборна настава и насоки за вежби 277

На крајот од секој извештај, напишете краток заклучен дел, во кој се


сумираат резултатите и се дискутираат проблемите и решенијата. Станува збор за
согледувањата кои сте ги осознале и за карактеристичните предизвици со кои сте
се соочиле и ви одзеле најмногу време за нивно решавање. Целта е да се стигне
до фазата на синтеза и да ви се даде шанса да разберете кои краткорочни цели
се остварени со вежбата на патот до совладување на наставната програма.

Составувањето на извештајот ќе ви биде полесно да го направите ако


1) при реализацијата на вежбата паралелно имате отворено и текст документ
и во него ги внесувате резултатите, а покрај тоа ги снимате симулациските
кола и земате копии од екранот во облик на слики и нив исто така ги
запамтувате;
2) првичниот извештај го напишете во рок од еден или два дена по
завршувањето на вежбата, додека сеуште ги памтите деталите.

Сепак, и да не постапите по препораките, за да го завршите извештајот за


вежбата ќе имате цела недела да го комплетирате бидејќи вашиот завршен
извештај ќе треба да биде предаден најдоцна до почетокот на следната вежба; на
овој начин имате доволно време навремено да го финализирате извештајот за
секоја вежба. Внимавајте дека недела дена е вашиот краен рок. После овој рок
нема да имате друго дополнително време за доработка на вашиот извештај на
вежбата. Задоцнетиот извештај нема да се прифаќа и во тој случај ќе ја добиете
најниската оценка. Се разбира дека оправданото отсуство се зема во вид, но
треба да знаете дека за успешно да го завршите изучувањето на предметот, во
принцип, сите вежби треба да ви се изработени и оценети со позитивна оценка,
повисока од недоволната.

Извештаите од симулациските вежби ви препорачуваме да ги имате и како


копија, бидејќи на часовите по практична настава, откако ќе изработите исти или
слични вежби со симулациските, но сега во реални услови, резултатите од тие
вежби ќе можете да ги споредите со резултатите од симулациските вежби и од
теоретските предавања.

4. Оценување на вежбите
Формалниот изглед на извештајот за една извршена вежба, во општ случај,
ќе ви го прикаже наставникот, презентирајќи ви еден празен формулар за
вежбите кој е соодветен за наставната тема која ги покрива тие вежби. Формата
на понудениот извештај може да биде унифицирана, а форматот да зависи од
креативноста на наставникот. Таа треба да биде запазена со една важна
забелешка дека не мора да бидат пополнети сите сегменти од формуларот.
Имено, кој дел од нив задолжително ќе треба да го пополните ќе зависи од
конкретната вежба што ја изведувате и од инструкциите кои ќе ги добиете од
страна на наставникот, а се соодветни за таа вежба.
278 Вовед во изборна настава и насоки за вежби

После завршувањето на вежбите, за да може да ве оцени, професорот ќе


посвети посебно внимание на содржинското и формално-техничкото уредување
на извештаите и тоа посебно на следното:
• Комплетирање на вежбата и завршување на сите предвидени чекори
потребни за успешна симулација,
• Давање на соодветни валидни, јасни и разбирливи одговори на
поставените прашања и задачи поткрепени со бараните и точни резултати
запишани во соодветен облик,
• Вклучување на сите потребни отпечатени листови со добиените табели со
податоци, електричните шеми на колата кои како вежби се изведуваат и
нивните соодветни симулациски шеми, користените математички и логички
равенки и формули со направените пресметки за добивање на резулатите и
логичките нивоа, како и брановите облици на напоните во карактеристич-
ните точки на влезовите и излезите;
• Придржување кон назначениот формат за изработка на извештајот за
вежбите со запазување на бараната структурата на извештајот, поврза-
носта на поставените задачи и цели со добиените резултати, како и со
неговото целокупно уредување.
1.
ГРАФИЧКА АНАЛИЗА И
СИНТЕЗА НА
ДИГИТАЛНИТЕ
СИСТЕМИ
По изучувањето на оваа тематска целина
 ќе познавате разни софтверски пакети за анализирање на
дигитални системи;
 ќе знаете да го користите софтверскиот пакет Electronic Work
bench, а покрај него ќе се запознаете и со Logisim;
 ќе ги применувате опциите од менијата на соодветната
програма;
 ќе ги познавате дискретните компоненти вклучени во самата
програма.
280 ГРАФИЧКА АНАЛИЗА И СИНТЕЗА
ГРАФИЧКА АНАЛИЗА И СИНТЕЗА 281

(I) Electronics WorkBench (EWB)


Упатство и насоки за користење
Постојат голем број софтверски пакети за симулација и анализа на работата
на електричните кола. Со нив може да се моделира однесувањето на различни
аналогни, импулсни и дигитални електрични кола. Ваквите програми овозмо-
жуваат да се испитува однесувањето на конкретно коло со реални вредности на
елементите и компонентите кои влегуваат во неговиот состав, и нивно тековно
менување. Целта е да се вршат различни анализи и тоа за еднонасочен режим на
работа, (за еднонасочен сигнал, DC), за наизменичен сигнал (АC), и преоден
режим на работа (транзиентна анализа). Ваквите програми содржат голем број на
најразлични модели на реални пасивни и активни полупроводнички елементи и
компоненти, интегрирани кола, генератори, инструменти итн.
Еден ваков софтверски пакет е и познатиот Electronics Workbench кој ќе го
обработиме во продолжение во најкуси црти. Оваа програма ја има во различни
верзии, од кои верзијата која што е наменета за образовни институции, ученици и
студенти е MULTISIM v14 којашто може да се спушти директно преку интернет
врската: http://www.ni.com/download/ni-circuit-design-suite-educational-edition-
14.1/6510/en/. Меѓутоа, за училишна примена сосема е доволна верзијата 5 од
која најмногу е користена EWB 5.12.
EWB 5.12 е доста поедноставна верзија за користење во однос на поновите
верзии, но сепак е прилично моќна и многу корисна за ученици, студенти и
почетници. Освен тоа лесно се симнува од веб-страната на познатата и
непрофитна интернет библиотека https://archive.org со конкретниот линк:
https://archive.org/details/ElectronicWorkbenchEwb5.12. Покрај оваа врска, EWB 5.12
може да се најде за спуштање уште на два интернет линкови, и тоа:
http://www.mediafire.com/file/32vnaiv67mgp5a9/Electronic+Workbench+Ewb+5+12.zi
p, и http://www.electronickitschool.com/p/download-software_19.html.
Разликата која што се јавува во
насловот на различните верзии на
програмот EWB е заради тоа што
познатата фирма Nacional
Semiconductor (NI) ги откупи правата и
тимот програмери на EWB, и потоа
новите подобрени верзии на EWB ги
наслови со MULTISIM. Софтверскиот
пакет може бесплатно да се преземе
како демо-верзија за вежбање и
пробување на нејзините можности.
Верзиите кои се купуваат располагаат со многу поголеми можности и со
подобри перформанси во однос на демо – верзијата, а како такви постојат верзии
за студенти, за едукативна намена и за професионалци. Секоја од нив со повисока
цена една од друга, но со зголемен квалитет и перформанси.
282 ГРАФИЧКА АНАЛИЗА И СИНТЕЗА

1.1. Electronics Workbench и негови особини


Electronics Workbench е софтверски пакет кој врши емулација на виртуелна
лабораторија преку симулирање и испитување на електрични кола со најразлична
конфигурација. Негови добри страни се:
1. Можност да се дизајнираат и анализираат секакви видови електрични кола
без да се купуваат и практично да се користат реални електрични и
електронски елементи, компоненти и инструменти;
2. Едноставен интерфејс кој е лесен за учење и применување, бидејќи само со
кликнување и влечење (анг. drag and drop) може лесно да се цртаат дури и
сложени електрични шеми;
3. Можноста да се прават различни екперименти, испитувања и анализи со
голем процент на точност и прецизност;
4. Примена и ракување со сите инструменти кои се потребни во една
лабораторија за аналогна, импулсна и дигитална електроника и
5. Ниска цена на чинење - цената на купување и одржување на опремата што
се користи во Electronics Workbench во овај случај е многу помала во однос
опремата која е потребна во реална лабораторија по електроника.
Програмот Electronics Workbench (EWB) се користи како софтверска
дизајнерска алатка за креирање и симулирање на работата како на електрични,
така и на импулсни, но и на логички шеми на вашиот персонален компјутер или
лап-топ.
Пристапот, принципот на начинот на користење, како и можностите на EWB
ќе ги запознаете постапно преку преку моделирање и анализа на класичен
отпорнички напонски делител, потоа на RC и на CR коло како кола за обликување
на сигнали. Креирањето на комбинациски и секвенцијални мрежи, како и
тестирањето и испитувањето на нивното однесување и утврдување на принципот
на функционирање ќе го оставиме за крајот на овој прирачник.

1.1.1. Aнализа на електрични кола


Што се однесува до принципот на кој може да се симулира, испитува и
анализира однесувањето на некое електрично коло најнапред ќе треба:
1. Користејќи ја програмата и воедно имајќи ја пред себе електричната шема
на колото истата да ја нацртаме;
2. Да ги определиме мерните точки, влезните и излезните сигнали, како и
индикаторските елементи и инструментите кои ќе ги употребуваме и
поврзиме на соодветните места и
3. Да ја вклучиме симулацијата и да внимаваме како се однесува креираното
коло, поточно што покажуваат приклучените инструменти.
ГРАФИЧКА АНАЛИЗА И СИНТЕЗА 283

Заради оваа цел прво ќе се задржиме на основните менија и алатки на


програмата, а потоа ќе се фокусираме на принципот на креирање на одредена
електрична шема и анализа и испитување на нејзината работа.
Да не заборавиме една важна забелешка. Секоја верзија на Electronics
Workbench EWB 512, од каде и да ја спуштите, нема можност за враќање на ниту
една активности назад бидејќи не постои команда UNDO. Невообичаено, но за
жал, вистинито! Заради ова ќе треба секој напредок при цртањето на вашата
шема често го запамтувате со стандардната команда SAVE.

1.1.2. Основни менија


Програмата се стартува на вообичаен начин со Start > Programs
Electronics Workbench или со притискање на нејзинота икона од
работната површина.
По стартувањето на програмата, пред нас излегува основниот екран
прикажан на сл. 1-1 кој најголемиот дел го отстапува на работната површина. Во
горниот дел содржи поголем број менија меѓу кои веднаш паѓаат в очи добро
познатите копчиња за работа со фајлови како што се креирање, отворање,
затворање, бришење и печатење. Датотеките со кои работи програмата имаат
екстензија *.ewb и всушност тоа се електричните кола кои ќе ги анализираме во
поглед на нивната работа.

Работна површина

Сл. 1-1. Основен екран на програмата Electronics Workbench

(1) (4)
(2) (3)

Сл. 1-2. Основна лента со алатки (алатник) на Electronics Workbench


284 ГРАФИЧКА АНАЛИЗА И СИНТЕЗА

За цртање на електрични кола и нивна анализа најважни се менијата кои ни


стојат на располагање во вториот ред под основата лента со алатки и тие на
следната сл. 1-2 се означени со бровите (1), (2), (3) и (4). Со кликнување на секое
од понудените квадратчиња се отвора содветна библиотека на елементи или
компоненти.

 Така на пример ако притиснеме на едно од квадратчињата означени со


(1) на располагање ќе ни се појават (сл. 1-3):
- различни типови на напонски и струјни независни и зависни извори за
напојување ...;
- базични (основни) елементи: отпорници, кондензатори, калеми, спојници;
- диоди од секаков тип: сигнални, светлечки, Зенерови, потоа динистори,
тиристори, итн. и
- транзистори, и тоа: биполарни (од NPN и PNP тип), униполарни (N и P
канални FET-ови и МOSFET-ови).
Со селекција на квадратчињата означени со (2) имаме можност да
употребиме (сл. 1-4):
- различни операциски и други типови на засилувачи, компаратори, како и
секакви други аналогни интегрирани кола, потоа
- хибридни интегрирани кола кои се користат во аналогната, во дигиталната
и импулсната електроника, како што се: аналогно - дигитални конвертори,
дигитално – аналогни конвертори, моностабилни мултивибратори, како и
познатото временско интегрирано коло 555, и сл.

1 2

Сл. 1-3. Основни елементи Сл. 1-4. Интегрирани елементи


ГРАФИЧКА АНАЛИЗА И СИНТЕЗА 285

Ако активираме едно од квадратчињата означени со (3) тогаш можеме да


цртаме електрични шеми кои содржат дигитални елементи и компоненти, (сл. 1-
5): и тоа:
- логички кола: основни и поедноставни: И, ИЛИ, НЕ, НИЛИ, ЕКСИЛИ, ... итн;
- дигитални интегрирани кола од серијата 74хх или 40хх: биполарни или
CMOS ... и
- основни мемориски елементи: флип-флопови и други комбинациони
компоненти како де/мултиплексери, де/кодери, ...
Библиотеката симболи означена со (4) ни овозможува поврзување на
елементи, компоненти и уреди кои се корисни за следење на однесувањето на
колото што се анализира кои се поврзуваат на влезните, излезните или испитните
точки на шемата (сл. 1-6):. Така на пример,
- од индикаторите можеме да употребиме светлечки диоди, седум-сегменти
екрани, амперметри и волтметри, додека
- од инструментите можеме да користиме: дигитален мултимер, двоканален
осцилоскоп, функциски генератор, генератор на бинарни комбинации
(зборови), итн. ...

3
4

Сл.1-5. Логички и дигитални кола Сл.1-6. Индикатори и инструменти


На основната лента со алатки, горе во средината, се наоѓа и
“лупата” која овозможува зголемување или намалување на погледот
врз колото кое тековно ќе се работи.
На лентата со алатки, во горниот десен агол од екранот може
да се забележи и еден преклопник кој има многу важна улога.
Имено, со негово вклучување се симулира работа на електричната
шема која сме ја формирале, додека со негово исклучување
симулацијата се стопира. Под ова копче се наоѓа и тастерот со кој
во било кој момент може привремено да се стопира (паузира)
нејзиното извршување.
286 ГРАФИЧКА АНАЛИЗА И СИНТЕЗА

1.1.3. Моделирање и анализа на напонски делител


Пред да се започне со моделирањето, веднаш по стартувањето на програмата
EWB512, препорачливо е
1) од алатникот да се избере опцијата <Circuit> и да се постави мрежа (GRID)
на работната површина: <Circuit><Schematic Options><Grid><Show grid>
, и
2) погледот да се постави на 100% (со зумирање ZOOM+ да се промени од
80% на 100%).
Доколку не се постапи според препораките, работната површина ќе остане
бела како празен лист, а погледот на шемите кои ќе се работаат ќе биде нешто
помал. Ако сте повеќе навикнати на таков изглед едноставно игнорирајте ги
препораките, или применете ја онаа којашто вас ви одговара.

Сл. 1-7. Поставување на мрежа и промена на факторот на зумирање


Презентираниот принцип на работа се однесува на многу едноставен
пример од електротехниката: тоа е напонскиот делител чија електрична шема на
сите ни е добро позната и која е претставена на сл. 1-7, како и равенките со кои
се определуваат струјата во колото и напоните на отпорниците.

E 12V
I   4mA
R 1  R 2 3KΩ
R1
U  R 1I  E  4V
R1  R 2
R2
U  R 1I  E  8V
R1  R 2

Сл. 1-7. Електрична шема на напонски делител со конкретни вредности на елементите


ГРАФИЧКА АНАЛИЗА И СИНТЕЗА 287

По стартувањето на програмата ќе треба да отвориме нов документ и истиот


да го именуваме, како на пример nap-del, којшто веднаш се креира и ја добива
екстензијата .ewb. За да се нацрта шемата треба наједноставно да се кликне на
соодветното квадратче каде се наоѓа елементот што е потребен, истиот треба да
се избере од паѓачкото мени и со држење на левиот клик на глувчето и влечење
на елементот да се постави на работната површина. Ќе се забележи дека секој
елемент се спушта во хоризонтална положба. Најдобро е оваа постапка повеќе
пати да се повтори и на листот да се наредат сите елементи од шемата според сл.
1-8 а).

Сл.1-8. а) Изглед на подредени елементи б) Опции за работа со елементи


Елементите кои треба да се постават во вертикална положба, се ротираат со
дво-клик врз елементот со што истиот прво се селектира, а потоа со десен клик
на глувчето се отвораат неколку различни опции кои се однесуваат на елементот
меѓу кои и копирање, бришење, негова ротација, огледално копирање, менување
на вредностите и слично, според сл. 1-8 б).
За меѓусебно поврзување на елементите потребно е да се изврши спојување
на по еден крај од два елемента применувајќи линии, т.е. проводни жици. За таа
цел со глувчето се поинтира на едниот крај од елементот при што се појавува
црна точка и со влечење се пристапува до крајот на другиот елемент. Кога и на
тој крај ќе се појави црна точка, тоа значи дека врската може да се воспостави,
според сл. 1-9. Во тој момент се отпушта глувчето и врската е остварена.

Сл. 1-9. Принцип на поврзување на два краеви


Следејќи ја претходната постапка со која се врши поврзување во три чекори,
како еден многу едноставен пример може да се нацрта колото на напонскиот
делител од сл. 1-7.
288 ГРАФИЧКА АНАЛИЗА И СИНТЕЗА

Овде може да се каже само уште тоа дека ако поинтираме од некој елемент
на едно место на проводник кој веќе спојува два елементи, таму автоматски ќе се
појави спојна точка на која најмногу можат да се поврзат до четири проводници и
тоа од секоја страна по еден, како што се гледа од следниот пример даден на сл.
1-10.

Сл. 1-10. Принцип на поврзување на повеќе проводници во единствена точка


Во процесот на формирањето на врските корисна улога може да одигра
спуштањето на една или повеќе вакви точки (јазли) од лентата со алатки, горе
лево во менито на основните елементи (анг. basics elements) и тоа уште на
почетокот кога се подредуваат елементите на работната површина.

За крај треба да се внимава дека секое коло што се креира


треба да биде заземјено на нултиот потенцијал за што од
основните елементи се зема симболот за маса. Исто така, не
треба да се заборави дека при процесот на поврзување на
располагање ни стои и алатката за зумирање.
Со неа, по потреба, може да се зголемува-намалува погледот
врз конфигурацијата на електричната шема заради олеснување на
поврзувањето.

По завршеното поврзување и визуелна проверка на шемата која сме ја


нацртале истата се запамтува и потоа се стартува симулацијата со притискање
врз копчето кое се наоѓа горе десно на лентата со алатки.
За да се изврши мерење на напоните и струјата кај напонскиот делител кој
пред малку го моделиравме го применуваме мултимерот кој ни стои на
располагање во групата на инструменти, како и амперметарот и волтметарот од
групата на индикаторски елементи (сл. 6-11).

Сл. 1-11. Избор на амперметар,


волтметар и мултиметар
ГРАФИЧКА АНАЛИЗА И СИНТЕЗА 289

Амперметарот и волтметарот се поврзуваат наједноставно на вообичаениот


начин: амперметарот сериски, додека волтметарот паралелно. Меѓутоа мулти-
метарот покрај тоа што ќе треба се поврзи, со двоклик можеме да добиеме
целосна и детална слика на инструментот, од која може да се отчитуваат сите
потребни мерења. На следните две слики, сл. 6-12 а) и б), редоследно се
претставени предвидените мерења на струјата и напоните, додека на сл. 1-13 е
претставено мерење на отпорност на отпорник со мултиметар.

Сл. 1-12 а) Мерење на струја

Сл. 1-12 б) Мерење на напон


290 ГРАФИЧКА АНАЛИЗА И СИНТЕЗА

Сл. 1-13. Мерење на отпорност со мултиметар

1.1.4. Mоделирање и анализа на RC и CR коло


Во продолжение ќе презентираме примена на EWВ во која се врши анализа
на RC и на CR коло, како два примери на кола за обликување на сигнали, кои се
побудени со периодична поворка на биполарни правоаголни импулси. За да може
да се следи однесувањето на колата повторно ќе се изберат базични елементи и
тоа отпорник и кондензатор, R и C. Следен чекор е селекција на библиотеката со
инструменти преку притискање на соодветното копче, а со единствена цел на
работната површина да се спуштат и да се поврзат функцискиот генератор и
двоканалниот осцилоскоп, според сл. 6-14.. Имено, со генераторот ќе се
побудуваат RC колата, додека со осцилоскопот ќе се следи однесувањето на
мрежата.

Сл. 1-14. Избирање на функциски генератор и осцилоскоп


Функцискиот генератор има три приклучоци (сл. 6-15): еден е заеднички за
заземјување, а другите два се меѓусебни инвертирани – со спротивна фаза на кои
се добива простопериодичен, триаголен или правоаголен периодичен побуден
сигнал. Со двојно кликнување на инструментот се добива подетална слика на која
може да се врши избор и промена на потребните величини: обликот, амплитудата
и фреквенцијата.

Сл. 1-15. Функциски генератор


ГРАФИЧКА АНАЛИЗА И СИНТЕЗА 291

Осцилоскопот има четири приклучоци: еден е заеднички заради заземјување,


вториот е влез за еден сигнал (каналот А), третиот е канал B за приклучување на
уште еден влезен сигнал, а четвртиот е за приклучување на надворешен
синхронизационен сигнал (сл. 1-16).
Со двојно кликнување на осцилоскопот се добива негова развиена слика
односно слика на предниот панел од која подобро се следат брановите облици на
сигналите, и воедно, може да се вршат попрецизни отчитувања, но и промена на
потребните величини на каналите: поделок по амплитуда, поделок во време и
слично.

Сл. 1-16. Двоканален осцилоскоп


RC коло: Првиот канал од осцилоскопот ќе се поврзи на влезниот напон, т.е.
паралелно на излезот од функцискиот генератор за да се следи побудата, додека
вториот канал се поврзува на отпорникот за да се следи одзивот (излезниот
сигнал) на таа побуда, според сл. 1-17.

Сл. 1-17. Анализа на RC коло побудено со правоаголен периодичен сигнал


292 ГРАФИЧКА АНАЛИЗА И СИНТЕЗА

CR коло: При анализата на CR колото, заради појасно следење на сигналите


и попрецизна работа со осцилоскопот може да се користи неговиот проширен
облик кој може да се добие кога ќе се притисне на копчето <expand>. По оваа
акција шемата за анализа на CR колото го добива изгледот прикажан на сл. 1-18.

Сл. 1-18. Анализа на CR коло побудено со правоаголен периодичен сигнал

1.1.5. Примена на EWB за креирање и анализа на логички шеми


EWB ги содржи и сите потребни компоненти и инструменти за цртање,
тестирање и испитување на логички шеми со различна тежина. Со него ќе
изработувате вежби со кои ќе се симулира работата на дигитални комбинациски и
секвенцијални мрежи, со различна конфигурација и комплексност, почнувајќи од
прилично едноставни, до посложени.
Пред да започнете со првичните симулациски вежби, кои се доста
едноставни, за секоја од нив ќе треба сами претходно да ги имате креирано:
соодветната таблица на вистинитост, логичката равенка, Карноовата карта за
нејзина минимизација и логичката шема. Целта е да се стекнете со одредено
искуство во дизајнирање на логички кола и за вежбање на процесот на
минимизација со Карноовите карти. За почеток, исто така, ќе се потсетиме и на
корисничкиот интерфејс на EWB содржи лета со менија, лента со алатки, како и
голем број на елементи, компоненти и блокови.
Електричните и логичките шеми се цртаат во основниот екран, а тоа е
прозорецот за цртање на шеми. Компонентите и инструментите, кои ви се
потребни за да креирате кола, се класифицирани во различни групи на сродни
компоненти, наречени кошнички со алатки (анг. parts bin). Секоја кошничка има
соодветна сликичка, како копче во алатникот. Со кликање на едно од овие
копчиња на екранот се појавува помала лента со алатки како уште еден
дополнителен мал алатник, кој исто така се состои од различни сликички –
копчиња, кои ги претставуваат компонентите и инструментите што се наоѓаат во
таа кошничка.
ГРАФИЧКА АНАЛИЗА И СИНТЕЗА 293

За да можете да поставите компонента или инструмент во основниот


прозорец потребно е да кликнете на копчето на посакуваниот дел и да ја влечете
компонентата или инструментот во прозорецот во кој ќе се креира колото.
Алатникот за инструменти (анг. Instruments toolbar), покрај другите, содржи
дигитален инструмент, генератор на зборови, логички анализатор и логички
конвертор. Овие инструменти можете да ги влечете и да бидат составен дел на
колото во прозорецот каде што го креирате истото. Тие може да се користат за да
се тестира колото кое штотуку сте го креирале на ист начин како што би ги
користеле реалните инструменти за тестирање во вашиот училишен кабинет по
електроника. Последната компонента на лентата со менија е прекинувачот за
напојување. Со него практично се овозможува започнување на симулација на
колото. Вие треба само да кликнете на овој прекинувач и да го активирате во оној
момент кога веќе го имате завршено дизајнот на колото и кога ќе бидете
подготвени за тоа.

Сл. 1-19. Основен екран на Electronics Workbench со означени менија


Наједноставен начин да се запознаете со EWB, кога сте почетник, е да
нацртате логичка шема на некоја многу едноставна комбинациска мрежа како што
е на пр. логичко И коло на чии влезови се приклучени два прекинувачи, а на
излезот е поврзана сигнална сијаличка. Процесот на цртање на ваквиот
наједноставен дигитален систем е прикажан во чекори и илустриран со следните
неколку слики за секој од нив.
Во EWB, корпата со логички кола, покрај стандарниот шематски приказ на
симболите на основните логички кола, се вклучени и дигиталните интегрирани
кола што се наоѓаат во долниот ред на оваа кошничка. За оваа вежба, ќе ги
употребите првите седум основни логички кола наброени во првиот ред, а тоа се:
294 ГРАФИЧКА АНАЛИЗА И СИНТЕЗА

И, ИЛИ, НЕ (Инверторот), НИЛИ, НИ, ЕксИЛИ и ЕксНИЛИ колата. Треба да бидете


внимателни и да го занемарите вториот ред каде што се поставени компоненти
кои се сосема поинаку означени бидејќи се работи за дигитални интегрирани кола
од стандардните TTL и CMOS логички фамилии со сериски ознаки 74хх и 40хх.

1-20. Мени со логички кола


Чекор 1: Најдете ги соодветните компоненти и делови од алатниците со
кошнички и сместете ги на работната површина од основниот прозорец каде ќе го
креирате колото, како што е прикажано на следната слика од екранот. На прв
поглед не се забележува вредноста на напојувањето, и заради тоа треба да
запамтите дека копчето Vcc претставува батерија како еднонасочен извор за
напојување од +5 V.

1-21. Смесување на компонентите 1-22. Прозорец за помош


За да добиете дополнителни информации за некоја компонента или за
некој инструмент, треба тој елемент да го селектирате со лев клик на глувчето
кога е над него, и потоа да го притиснете тастерот F1. Ќе ви се појави прозорец
за помош со информациите кои ги баравте. Следната слика е од екранот и
претставува еден пример за тоа како изгледа менито за помош на поставеното
логичко И коло со два влеза.
За да ги поставите или вметните ознаките и со тоа да зададете вредности
на компонентите, или да го промените бројот на влезови или излези на некоја
компонента, селектирајте ја истата со лев клик, кликнете на десното копче од
глувчето и од новодобиеното мало мени, кое се гледа на следната слика што е
копија од екранот, изберете својства на компонентата (анг. component properties).
Треба да забележите и тоа дека истото мени може да се користи и за копирање,
бришење, ротирање или огледално пресликување (анг. flip) на селектираната
компонента.
ГРАФИЧКА АНАЛИЗА И СИНТЕЗА 295

Чекор 2: Применувајќи ја претходно наведената постапка означете ги и


ротирајте ги оние компоненти кои што се потребни за да се добие сликата што е
копија на основниот екран и која е прикажана подолу.

а) б)
1-23. Нагодување на компонентите
За да ги поврзете компонентите заедно, позиционирајте се со глувчето на
крајната точка од компонентата каде сакате да остварите врска, притиснете го
левото копче на глувчето, задржете го и повлечете го, со што ќе се појави линија
за врска која претставува проводник. Повлечете ја линијата до крајот на другата
компонента или до приклучокот за некој инструмент. Кога крајот на втората
компонента или на инструментот ќе се истакне или осветли, ослободете го
копчето на глувчето. Линијата се насочува и поврзува под прав агол, без да ги
преклопи икончињата на инструментите или на другите компоненти.
Ако влечете жица од крајот на компонентата до друга жица и истата ја
допрете, кога ќе го отпуштите копчето на глувчето автоматски се креира
конектор, т.е. точка на спојување како симбол на залемување. Копчето за
конектор, неговиот симбол како голема точка, се појавува и во основната лента со
алатки (анг. Basic toolbar). Ова ви овозможува да вметнувате конектори во
постоечкиот дизајн на колото, а потоа да повлечете друга жица до еден од
неговите четири слободни краеви кои се негови приклучни точки. Алтернативно,
можете да го поставите конекторот на основниот екран каде што го цртате колото
и тоа на она место каде што планирате да направите врска и да влечете жици од
другите елементи кон неговите краеви. Замаптете дека на еден конектор можат
да се приклучат најмногу до 4 водови. Искуството покажува дека поставувањето
на конектори на испланирани места во основниот прозорец пред да се
повлекуваат проводни водови е добра практика, како што може и да се види на
приложената слика.

Чекор 3: На следната слика е прикажан изгледот на логичката шема


според претходната техника кога најнапред се поставуваат спојните точки, а
потоа се остваруваат врските. Поврзете ги и вие компонентите како што е
прикажано на сликата од основниот екран.
296 ГРАФИЧКА АНАЛИЗА И СИНТЕЗА

Чекор 4: Со помош на глувчето, кликнете на прекинувачот за напојување


за да го вклучите напојувањето и со тоа да ја симулирате работата на оваа
едноставна логичка шема. Потоа, притиснувајте различни комбинации на
тастерите A и B за да ја проверите неговата функција и да ја потврдите табелата
на вистинитост за означеното И коло, која сигурно ви е многу добро позната.

1-24. Изглед на логичка шема на колото

1.1.5.1. Насоки и препораки


Доколку треба да креирате некое друго посложено коло треба да користите
проводници во различни бои, бидејќи обоените линии полесно можат да се
разликуваат и со нив да се пратат врските во шемите. За да ја смените бојата на
некој проводник, двојно кликнете со левото копче на маусот на таа жица, или
одете над неа, и со десен клик изберете ја опцијата за карактеристики на жицата
(анг. wire properties) и опцијата за шемата (анг. Schematic Option). Кликнете на
една од неколкуте бои (анг. color) и изберете една нова боја од понудените
квадратчиња со различни бои во прозорецот за дијалог што се појавил.
Логичките порти кои ќе бидат повлечени од кошничката со делови ќе имаат
два влеза. Доколку имате потреба за дополнителните влезови, тие може да се
додадат со десен клик на саканата логичка порта, избирајќи „Својства на
компоненти" (анг. "Component Properties"), а потоа „Број на влезови" (анг.
"Number of Inputs").
За да внесете компонента во постоечко коло, и таа да биде директно
поставена и приклучена на некои од проводните линии во шемата, ќе треба
истата да ја поставите над нив. Ако има простор, таа ќе биде автоматски вметната
и нејзините краеви автоматски поврзани. Но, ако нема доволно простор за
компонентата, таа ќе остане над водот без да биде вметната.
ГРАФИЧКА АНАЛИЗА И СИНТЕЗА 297

1.1.5.2. Дигитални инструменти


Претходните четири чекори ви помогнаа постапно да научите како да
креирате логичка шема за дадена едноставна комбинациска мрежа и да ја
проверите нејзината функција. Следна работа што треба да ја совладате е
поврзувањето на дигиталните инструменти и нивната примена за тестирање и
испитување на (малку или многу) посложени логички шеми.
За исполнување на поставената цел ќе треба најнапред во основниот
прозорец на EWB да ја нацртате логичката шема прикажана на следната слика за
која постапно, повторно во чекори, ќе биде објаснето приклучувањето,
иницијализацијата и примената на следниве три дигитални инструменти:
генераторот на зборови (анг. Word Generator), логичкиот анализатор (анг. Logic
Analyzer) и логичкиот конвертер (анг. Logic Converter). Сите инструменти се
зголемуваат со лев-двоклик на глувчето. Воедно се отвораат можности за нивна
иницијализација и фино дотерување.

1-25. Изглед на логичка шема


1.1.5.3. Генератор на зборови (Word Generator)
Генераторот на зборови може да побудува веќе креирана логичка мрежа преку
генерирање на низи од 16-битни зборови (два бајти) на своите 16 излези, при што
секој збор претставува различна комбинација од битови. Со збор-генераторот
можете овие комбинации на дигитални зборови да ги испраќате до влезовите во
логичките шеми со цел да извршите нивно тестирање. Иконата на генераторот на
зборови изгледа вака:

1-26. Генератор на зборови


За да видите како работи генераторот на зборови и да извршите негово
тестирање додајте го во колото како што е прикажано на сликата подолу, која е
копија од екранот на EWB.
Чекор 1. Со позиционирање на глувчето на генераторот на зборови и со
двоен клик на него ќе се отвори панелот за контрола и нагодување на неговите
параметри.
298 ГРАФИЧКА АНАЛИЗА И СИНТЕЗА

Чекор 2. Во менито за контрола на генераторот на зборови поставете ја


фреквенцијата на 1 Hz, иницијализирајте го полето за почетна вредност на 0000,
додека во полето за крајна вредност внесете 000F. Забележете дека 16-битните
зборови се зададени во хексадецимално означување како 4 хекса цифри, секоја
преставена со по 4 бита според позната таблица за конверзија од бинарен во
хекса систем. Кликнете на копчето со кое се поставуваат бинарните комбинации
според еден од понудените шаблони (анг. Pattern) и одберете ја опцијата за
броење нанапред (анг. Up Counter). Кликнете на копчето за чекор-по-чекор (анг.
Step) од контролниот панел на генераторот и гледајте како се однесува и како
свети LED диодата. Обидете се истото да го повторите, но со некој друг образец
така што ќе притиснете на некое друго копче, на пр. за циклично повторување
(анг. Cycle) кога зборовите циклично се генерираат и се повторуваат, или на
копчето за последователно и брзинско испукување на зборовите кога генераторот
испраќа рафално неколку зборови еден по друг (анг. Burst) и потоа застанува.

1-27. Поврзување на генераторот на зборови на логичката шема

Чекор 3. Користејќи го претходниот чекор, изведете ја логичката функција


за колото и верификувајте ја точноста на неговата таблица на вистинитост.

1.1.5.4. Логички анализатор (Logic Analyzer)


Логичкиот анализатор со кој располага EWB е 16-канален бидејќи може
едновремено да прикажува 16 излези од веќе конструирани логички шеми. На нив
може да се добијат најмногу до 16 временски дијаграми во карактеристичните
точки на шемата. Тие ги претставуваат напонските нивоа во секоја точка во
функција од времето, што е во основа слично со сликата која може да ја
забележите кога имате вклучен осцилоскоп во некое аналогно електрилно коло.
Разликата е во тоа што сега временските облици кои се прикажуваат
претставуваат дигитални сигнали чии напонски вредности се менуваат и можат да
примат само две нивоа: високо, кое одговара на логичка единица, или ниско кое
соодветствува на логичка нула.
ГРАФИЧКА АНАЛИЗА И СИНТЕЗА 299

Иконата на логичкиот анализатор изгледа вака:

1-28. Логички анализатор


За да го пробате принципот на работа на логичкиот анализатор и да
извршите негово тестирање, вметнете го во колото како што е прикажано на
следната слика, која преставува уште една копија од основниот екран на EWB.

Чекор 1. На првите три влеза од логичкиот анализатор поврзете ги


влезовите од шемата, а на неговиот единствен излез приклучете го нејзиниот
излез.

1-29. Поврзување на логичкиот анализатор на логичката шема

Чекор 2. Двојно кликнете на логичкиот анализатор за да го отворите


неговиот панел-прозорец како што е прикажано подолу:
Чекор 3. Поставете ги такт-импулсите на едно квадратче по поделок.
Потоа, кликнете на копчето за поставување (анг. Set) во празната рамка на такт-
сигналот (анг. Clock) и поставете ја внатрешната фреквенција (анг. Internal Clock
Rate) на вредност од 1 Hz.
Чекор 4. Вклучете го прекинувачот за напојување и следете го
временскиот дијаграм на излезниот сигнал кој се добива на прозорецот од
анализаторот.
Чекор 5. Поверете го и потврдете го добиениот временски дијаграм со
табелата на вистинитост на колото.
300 ГРАФИЧКА АНАЛИЗА И СИНТЕЗА

1-30. Изглед на временскиот дијаграм на логичкиот анализатор


1.1.5.5. Логички конвертер (Logic Converter)
Логичкиот конвертер e многу интересна и „силна“ алатка која може да има
голема примена во вашите симулациски вежби. Со него EWB навистина ви
обезбедува многу згоден инструмент за широка примена.
Логичкиот конвертер врши конверзија од еден начин на прикажување во
друг, поточно преминување од дадена логичка функција во нејзина логичка
шема, и обратно. Освен тоа, „во игра“ може да се вклучи и таблицата на
вистинитост, аналитички приказ со логичка равенка, па дури и минимизирање на
логичка функција со методот на Карноови карти. Така на пр. со конверторот на
логика може логичка мрежа да се прикаже на различен начин: со таблица на
вистинитост, со логичка равенка и логичка шема на комбинациска мрежа на
колото во изворен и минимизиран облик.
Иконата за логичкиот конвертер изгледа вака:

1-31. Логички конвертер


За да го тестирате и испитате принципот на работа на логичкиот конвертор
ќе треба да го додадете и да го поврзете во колото како што е дадено на сликата,
која преставува нова копија од основниот екран на EWB.
Чекор 1. На првите влезови од логичкиот конвертер поврзете ги трите
влезовите од шемата, а на неговиот единствен излез приклучете го нејзиниот
излез, исто како што е прикажано на следната слика презентирана подолу.
Чекор 2. Двојно кликнете на конвертерот за да го отворите неговиот панел и
потоа кликнете на копчето за конверзија за да ја видите таблицата на
вистинитост за колото. Споредете ја таблицата на вистинитост со вашата таблица
која претходно сте ја добиле по аналитички пат со анализа на изработената
логичка шема.
ГРАФИЧКА АНАЛИЗА И СИНТЕЗА 301

1-32. Поврзување на дадена логичка шема на логичкиот конвертор

1-33. Анализа и конверзија на логичка шема на дадена функција во табела на


вистинитост

Чекор 3. Кликнете на табелата на вистинитост на копчето за равенки за да ја


добиете равенката за колото.

1-34. Конверзија на табела на вистинитост во логика равенка

Чекор 4. Кликнете на таблицата на вистинитост, која е означена со копче за


минимизација (анг. SIMP). Tоа е следното копче надолу со што ќе да ја добиете
поедноставената - минимизираната равенка за дадената табела на вистинитост.
302 ГРАФИЧКА АНАЛИЗА И СИНТЕЗА

1-35. Минимизација на табела на вистинитост


Чекор 5. Пробајте ги и другите три карактеристични можности на логичкиот
конвертер. Имено, покрај наведените претворувања, конвертерот може да се
користи и за конвертирање на позната логичка равенка на зададена логичка
функција во таблица на вистинитост, нејзина логичка шема реализирана како
комбинациска мрежа со инвертори, И и ИЛИ логички кола, како и со логичка шема
изведена само со НИ логички кола со по два влеза.
Како две едноставни вежби можете, со логичкиот конвертот и последно
наведените три конверзии, едно по едно, да ги реализирате ЕксИЛИ и ЕксНИЛИ
логичките кола. Тоа може да го изведете така што по отворањето на панелот на
конвертерот во најдолниот негов дел каде се наоѓа просторот за внесување на
логичка равенка прво ќе го внесете изразот за ЕксИЛИ колото: AB’+A’B, а после
тоа и изразот AB+A’B’ кој што одговара за ЕксНИЛИ логичкото коло. Од
наведените равенко лесно може да заклучите дека комплементирањето на
логичките променливи се означува со апостроф (‘).

1-36. Синтеза на ЕксИЛИ логичко коло 1-37.Синтеза на ЕксНИЛИ логичко коло


За секоја равенка посебно ќе треба редоследно да ги избирате последните
три копчиња едно по едно при што по секој избор за дадената логичка равенка ќе
добивате соодветни: таблица на вистинитост, И-ИЛИ мрежа и НИ логичка шема.
По завршувањето на двете постапки ќе треба да го имате добиено изгледот на
основниот екран на EWB како што е дадено на следната слика.
ГРАФИЧКА АНАЛИЗА И СИНТЕЗА 303

(II) LogiSim - Упатство и насоки за користење


1.2. Logisim и негови особини
Со овој прирачник, или кусо упатство за користење, ќе ги разгледаме и
осветлиме најважните карактеристики и можности, а ќе го објасниме и начинот на
функционирање на Logisim како софтверска алатка за компјутерски дизајн на
логички шеми, која се користи за едукативни цели. Покрај применат на Logisim за
логички дизајн на дигитални системи, тој исто така може да се користи од страна
на учениците и при реализација на вежби, задачи или посложени дизајнерски
проекти. Logisim е дизајниран и развиен од страна на Dr. Carl Burch од Hendrix
College (Колеџот Хендрикс). Тој е бесплатен и слободен мултиплатформски
софтверски пакет кој може да се инсталира на трите најмногу користени
оперативни системи: Linux, MacOS-X и Windows и да се редистрибуира под
условите на GNU-овата општа јавна лиценца објавена од Фондацијата за слободен
софтвер.
Основната, главната веб страна на Logisim е http://www.cburch.com/logisim/
на која се наоѓа и прилично обемна документација и корисни линкови. Од неа
може бесплатно да се спушти најновата верзија на програмот преку линкот
http://www.cburch.com/logisim/download.html. Покрај оваа врска, Logisim може
директно да се симне и со следните два интернет линкови:
 https://sourceforge.net/projects/circuit/files/latest/download (ver. 2.7.1)
 https://www.cs.rit.edu/~vcss345/downloads/logisim-2.3.1.jar (ver. 2.3.1)
Подготовка: Бидејќи Logisim работи на било која платформа што поддржува
Java, и тоа верзија 5 или подоцнежна, треба да проверите дали на вашиот
персонален или лаптоп компјутер веќе сте инсталирале Java v5 или некоја понова
верзија, и ако евентуално немате откога тоа ќе го направите, можете да го инста-
лирате Logisim пакетот, што не преставува некаков тежок проблем. Напротив,
прилично е едноставно.
1.2.1. Вовед
Во продолжение ќе бидат разгледани и анализирани главните
карактеристики и основните можности на програмот Logisim, како и начинот на
неговото функционирање. Logisim се користи како едукативна софтверска алатка
за дизајнирање и симулација на работата на комбинациски и секвенцијални
мрежи што ќе ги користите во вашите часови за вежби по стручните предмети кои
ја обработуваат оваа проблематика. За таа цел во рамките на Logisim ќе ги
применувате како стандардните логички кола, така и основните флип-флопови
како базични мемориски елементи. Ќе експериментирате и со други посложени
компоненти на симулаторот и ќе се запознаете со начинот на неговата употреба и
функционирање.
Со својот едноставен интерфејс на алатникот и симулацијата на колата што
ќе ги изработувате, едноставно кажано, се олеснува учењето на основните, но и
на понапредните концепти поврзани со дигиталните системи. Logisim може да се
користи за образовни цели и тоа дури за дизајн и симулација и на поедноставни
процесори. Овој програм има таков капацитет што со негова примена може да се
изградат посложени логички мрежи од помали суб-кола и да се повлече мно-
жество на проводни линии како единствена магистрала само со едно кликнување
и повлекување на глушецот.
304 ГРАФИЧКА АНАЛИЗА И СИНТЕЗА

1.2.2. Корисничкиот интерфејс на Logisim


По стартувањето на Logisim ќе ви се отвори основниот прозорец кој го
претставува неговиот кориснички интерфејс. На слика 1-38, можете да го видите
неговиот изглед.

Сл. 1-38 а. Корисничкиот интерфејс и основниот екран на Logisim

Сл. 1-38.б. Корисничкиот интерфејс и основниот екран на Logisim


ГРАФИЧКА АНАЛИЗА И СИНТЕЗА 305

Прозорецот на основниот екран ги содржи следните компоненти:


Линија со менија (Menu bar) (1): Линијата со менија содржи кратки
врски - патеки (shortcuts) до разни елементи (items) што ќе треба да ги користите.
Имено, покрај стандардните менија за работа со фајлови (датотеки, File),
едитирање (уредување, Edit) и помош (Help), на лентата има и менија кои ви
дозволуваат да додадете библиотеки на компоненти на симулаторот и да ја
контролирате симулацијата на вашето коло. Преку системот за помош (help) може
да се добијат корисни информации за компонентите на менијата, како и
прирачник за почетници за негова употреба на англиски јазик.

Алатник (Toolbar) (2): Алатникот содржи кратки врски - патеки


(shortcuts) до различни елементи (items) што најчесто ќе ги користите:
 Aлатката за покажување во облик на мала рака (The poke tool) се
користи за промена на вредностите на влезовите во вашето коло при
неговото тестирање.
 Алатката за селектирање во облик на стрелка , ви овозможува да ги
изберете или придвижите (преместите) компонентите во шематската мрежа
(schematic grid).
 Алатката за поврзување се користи за создавање на линии
(ожичување) помеѓу влезните и излезните пинови на компонентите.
 Алатката за текст ви овозможува да додадете или да напишете текст на
компонентите и нивните влезни и излезни пинови и да сместите слободен
текст на позадината (основата, canvas).
 Алатките на компонентите овозможуваат брз пристап до
најчесто употребуваните компоненти на колото.
 Влезниот пин (зелено „кругче“ во квадрат) се користи за испраќање на
сигнал преку некоја влезна линија. На почетокот, кога влезниот пин се
поставува на позадината (основата, ang. canvas), тој се иницијализира
на 1-бит. Бројот на влезови (битови) може да се зголеми во табелата на
атрибути или карактеристики.
 Излезниот пин (зелено „кругче“ во круг) се користи за да се набљудува
логичката состојба на излезот од портата. Излезниот пин се менува во
реално време секогаш кога е овозможена симулацијата од менито со
изборот Симулирај > Симулирај овозможено.
 Трите симболи на основните логички кола (порти) доволно зборуваат
сами за себе.

Основа или позадина (canvas) (3): Ова е празна површина која зафаќа
најголем дел и простор од екранот и претставува мрежа од точки, каде што ќе се
креира вашата шема. Позадината или основата е областа во која може да се
креираат логичките шеми на најразлични дигитални кола. На основата може во
реално време да се симулираат колата на корисникот и тоа додека трае процесот
на нивно дизајнирање.
306 ГРАФИЧКА АНАЛИЗА И СИНТЕЗА

Панел за истражување (Explorer Pane) (4): Ова е правоаголна област


веднаш под алатката за покажување (рачето) и копчињата со стрелки. Таа ги
содржи помалку користените компоненти на колото, како што се компонентите на
библиотеките што може да ги вчитате во симулаторот. Панелот за истражување е
список на врски, логички кола/порти, мултиплексери, итн. кои се достапни за да
се реализира одреден дигитален дизајн во Logisim. Се забележува дека изборот е
голем при што многу е јасно дека при креирањето на некој проект не мора да се
користат сите неведени елементи, туку само потребните.

Табела со атрибути (5): Ова е правоаголна област веднаш под


прозорецот за истражување. Таа ви овозможува да промените некои од
атрибутите на избраните компоненти. Табелата на атрибути или својства ни дава
детални карактеристики на компонентите за дигитален дизајн (на пр. на И, ИЛИ
ЕксИЛИ портите). Табелата на својствата ни овозможува да го менуваме и бројот
на влезови/излези кај логичките кола и другите дигитални компоненти.

1.2.3. Системот за помош на Logisim


Logisim содржи систем за помош (анг. help) кој ви овозможува да добивате
информации за повеќето од елементите на менито, копчињата и областите на
симулаторот. Притискањето на копчето помош ве води до изборно мени, кое ви
овозможува да изберете помеѓу три типа на помош: прирачник за почетници
(Beginner's Tutorial); целосно упатство за корисникот на Logisim (The Logisim User's
Guide); и библиотека со клучни зборови и нивно објаснување (Library Reference).
• Прирачникот за почетници (Beginner's Tutorial) ве води преку креирање на
едноставно XOR коло и ви дава одличен вовед во основните техники што ќе ви
требаат при користење на симулаторот.
• Целосното упатство за корисникот на Logisim (The Logisim User's Guide) ви
дава целосно објаснување за секоја опција на симулаторот, вклучувајќи ги и
опциите достапни преку менијата Проект и Симулатор (Project и Simulator).
• Библиотеката со клучни зборови и нивно објаснување (Library Reference)
ги објаснува сите компоненти достапни во библиотеките Base и Gate (претходно
вчитани во панелот истражувач на симулаторот), како и различните библиотеки
на посложени порти (меморија, аритметички единици, мултиплексери итн.)
достапни за вчитување во симулаторот.

1.2.4. Совети и насоки за користење на Logisim


Топло ви препорачуваме најпрво со рака на хартија да го нацртате, или во
некој програм за цртање да го нацртате и отпоечатите дијаграмот – логичката
шема, со што ќе знаете каде сакате да ги сместите потребните компоненти.
Стартувајте го симулаторот и прво додајте ги сите компоненти на шемата, а потоа
поврзете ги и приклучете ги сите меѓусебно на начин на кој што е потребно тоа
да се направи.
Можете да изберете повеќе компоненти кои треба да ги придвижите,
отсечете или копирате на неколку различни начини.
 За да изберете еден објект, кликнете на него со левото копче на
глувчето.
ГРАФИЧКА АНАЛИЗА И СИНТЕЗА 307

 За да ги изберете сите објекти на позадината (canvas-от), притиснете


control-A, додека покажувачот на глувчето е на позадината.
 За да одберете повеќе компоненти, користете лев клик за да го изберете
првиот објект, а потоа користете го левиот клик за поместување (shift-
left-click) за да додадете објекти кон изборот што сте го направиле; тие
се дополнителни компоненти кои би ги додале на вашата селекција.
 Алтернативно, можете да го повлечете левото копче на глувчето преку
позадината за да креирате една рамка како ограничена површина; со
ова го избирате секој објект кој е целосно содржан во ограничената
површина.
Забелешка. Понекогаш, ретко, сепак може да се појави мало, но
забележливо временско доцнење помеѓу моментот кога ќе кликнете на некој
објект или елемент до неговата реакција, па затоа треба да му оставите малку
време од секунда или две на симулаторот да реагира и да не се грижите околу
тоа. Едноставно не претпоставувајте дека можеби нешто не е во ред.

1.2.5. Примена на Logisim


Со ова релативно кусо упатство за работа, како еден мал прирачник или
туторијал, ќе опишеме и покажеме како да се креира дигитален систем со помош
на шематскиот едитор (едиторот на логички шеми или шематски дијаграми). Ќе ги
објасниме потребните чекори за дизајнирање, симулирање и имплементирање на
едноставен проект кој ќе претставува четирибитан паралелен собирач.
Постојат различни начини за формално опишување и прикажување на
дигиталните системи: со таблици на вистинитост, со логички равенки, со
дијаграми на состојби, со шематско прикажување, или со посебен јазик за
хардверски опис како што е на пр. VHDL. Logisim ни овозможува да работиме само
со помош на логички шеми. Една од карактеристиките на Logisim е тоа што
овозможува покрај цртањето и уредувањето, на истата логичка шема со еден
клик да преминете од режим на едитирање во режим на симулирање и со тоа да и
го анализирате нејзиното однесување, односно да ја симулирате нејзината работа
и со тоа да ја одредите нејзината функција. Најпрво ќе биде објаснето како да го
нацртате првиот логички дијаграм, а подоцна ќе објасниме како да го симулирате
колото и со тоа како стекнатите знаења и вештини да ги имплементирате на
часовите за вежби.

1.2.5.1. Режим на уредување

1. За да го користите режимот за уредување или едитирање, едноставно


изберете ја стрелката , како што е прикажано на Слика 1.
2. Потоа можете да изберете компонента од библиотеката која се наоѓа на
левата страна. За да ја додадете во шемата, едноставно притиснете на
саканата компонента, а потоа кликнете на дијаграмот.
3. Секоја компонента што ќе ја користите има својства (карактеристики) кои
можат да се модификуваат во долната лева област во Logisim. На пример,
ако поставите И коло, можете да го смените бројот на неговите влезни
приклучоци сигнали или да инвертирате еден од неговите влезови.
308 ГРАФИЧКА АНАЛИЗА И СИНТЕЗА

4. Исто така е овозможено да се копираат и вметнат една или повеќе


компоненти. Во тој случај, вметнатите компоненти ги задржуваат сите
својства кои претходно сте ги дефинирале.
5. Во продолжение ви е дадена листа на елементи што ви се потребни за ова
упатство:
 • За влез, pin (пин) и wiring (поврзување).
 • За излез, pin (пин) и wiring (поврзување) и поставување на атрибутот
„output” („излез") на yes (ДА).
 • Логичките порти се наоѓаат во Gates library (библиотеката на порти).
 • Splitter (разделник) и wiring (поврзување).
 • The ground (заземјување), power (напојување), и wiring (поврзувањe).
6. Откако ќе ги поставите сите компоненти, вие мора да ги поврзете. За да го
направите ова, едноставно позиционирајте го глувчето на една од портите.
Кликнете и повлечете до крајната порта.

1.2.5.2. Креирање на првото коло

Сите кола направени во Logisim може да се користат и во други кола. За да


креирате ново коло, одете до Project (Проект)-> Add Circuit… (Додај коло) ->... - а
потоа именувајте го колото. Новосоздаденото коло ќе стане достапно во
библиотеката.
Еднобитен собирач: Реализирајте ја шемата прикажана на Слика 1-39.
Именувајте ја на пр. Како Add1bit (Собирач за еден бит).
Забелешки:
 • Колото кое во моментот се уредува е она коло, кое има мала лупа на
името на проектот.
 • Не грижете се за бојата на линиите при поврзувањето или вредноста
на влезниот пин. Најпоследно додадениот пин е на почеток во сина боја.
 • Можете да ја смените ориентацијата на компонентите со промена на
атрибутот Facing.

Сл. 1-39. Еднобитен собирач


ГРАФИЧКА АНАЛИЗА И СИНТЕЗА 309

1.2.5.3. Режим за симулирање


Logisim нуди можност за симулирање на колото и за прикажување на
вредностите на сигналот директно на дијаграмот. Корисникот може да ги
дефинира влезните вредности на битот и да го набљудува однесувањето на
колото кое се дизајнира.
1. Изберете го копчето со малата рака во горниот лев агол на Logisim за
да го користите режимот за симулирање.
2. Потоа, со кликнување директно на различните влезови, можете да ја
контролирате нивната состојба. Синиот симбол X на влезниот пин претставува
висока импеданса. Во практичните вежби работите само со високи и ниски
напонски нивоа, т.е. со логичките состојби 1 и 0. За да ја отстраните состојбата со
висока импеданса, мора да го смените атрибутот на влезниот пин, така што
атрибутот со три состојби ќе биде поставен на НЕ.
Забелешка: Внимавајте...! Во литературата со симболот X вообичаено се
означува небитна вредност која покажува дека не е важна нејзината логичка
состојба: сеедено е дали таа ќе биде 1 или 0; може да биде било која од нив.
Вообичаено за третата состојба на бесконечно висока импеданса која покажува
дека тој приклучок во моментот е исклучен и низ него не протекува струја, во
литературате се користи една од селдниве ознаки: HiZ, HZ или само Z.
3. Со кликнување на влезот, неговата вредност ќе се менува на 0 или 1.
4. Тестирајте ја функционалноста на вашиот 1-битен собирач. При ова
треба да ја знаете улогата и описот на боите на линиите кои може да се појават
во режимот за симулирање. Најкратко ќе се задржиме малку и на нив преку
соодветно на сликата 1-40, која го покажува нивното значење.

Сл. 1-40. Боите на линиите во режимот за симулирање

 Сива боја: Ширината на бит линијата е непозната (бројот на линии во неа е


непознат). Линијата е поврзана со било кој влез или излез.
 Сина боја: Линијата содржи вредност, но не знаеме која е таа вредност.
 Темно зелена боја: Логичката вредност на проводната линија е 0.
 Светло зелена боја: Логичката вредност на проводникот е 1.
 Црна боја: Покажува дека станува збор за магистрала, дека вака означената
линија содржи повеќе проводници.
 Црвена боја: На линијата се појавила грешка или недефинирана вредност.
 Портокалова боја: Компонентите што се поврзани со ваква линија не содржат
коректна ширина изразена во битови.
310 ГРАФИЧКА АНАЛИЗА И СИНТЕЗА

1.2.5.4. Хиерархиски дизајн


Дизајнерската методологија која штотуку ја користевте важи за
дизајнирање на прилично едноставни дигитални системи, т.е. на системи со мал
број на логички кола. Кога системите стануваат посложени, бројот на кола и
врски брзо се зголемува. Во тие случаи, ризикот од правење на грешки станува
значително поголем.
Клучот за правилно управување со поголема комплексност на дизајнот е
корисникот да применува хиерархиски дизајн, бидејќи со Logisim може да се
работи на различни нивоа на апстракција. Првото ниво користи основни блокови,
само логички кола, а потоа тие блокови може да се користат како компоненти за
креирање на покомплексен систем. Во нашиот случај 1-битниот собирач може да
се искористи за да се изгради 4-битен собирач. Овој нов блок, може исто така,
потоа да се искористи како дел од уште посложен или поголем систем.
За да креирате хиерархиски дизајн, користејќи го 1-битниот собирач,
потребно е да ги направите следниве чекори:
1. Креирајте ново коло на еднобитен собирач како што е објаснето пред
малку. За да се префрлите од уредување на едно коло во друго, кликнете двапати
на името на посакуваното коло во левото мени.
2. Тогаш е можно да се додаде суб-коло или под-коло. Додајте го едно-
битниот собирач на ист начин како што користите било која компонента.
Кликнете на менито прикажано на Сликата 1-41, а потоа сместете го него со
кликнување на дијаграмот на колото.
3. Ако колото Add1bit е создадено правилно, тогаш тоа треба да биде
претставено со мал блок со три сини точки на левата страна, кои одговараат на
влезовите и две црвени точки на десната страна што одговараат на излезите.

Сл. 1-41. Еднобитниот собирач како суб/под-коло


ГРАФИЧКА АНАЛИЗА И СИНТЕЗА 311

4. Ако излезите се сини наместо црвени на дијаграмот, проверете дали сте


го наместиле атрибутот на излезот на излезните пинови на yes (да).
5. За да имплементирате 4-битен собирач, потребни ви се четири 1-битни
собирачи. Значи, завршете го дијаграмот со поврзување на влезните и излезните
порти. Една од разликите помеѓу 1-битните и 4-битните кола за собирање е таа
што кај 1-битниот собирач сите влезови и излези се независни, а кај 4-битните
собирачи користиме податочни магистрали за влезот и излезот. На пример, за да
го поставите влезот А како 4-битна магистрала, додадете пин елемент и
поставете ја неговата вредност на 4 со користење на атрибутот за податочните
битови (show attributs).
6. Кога ќе сакате да повлечете линија/врска од еден од овие влезови, треба
да знаете дека тоа не е едноставен 1-битен сигнал, туку 4-битна магистрала. За
да ги поврзете влезовите на влезовите на 1-битните собирачи, ќе треба да ги
разделите различните излези од магистралата со цел нив да ги поврзете еден по
еден. Елементот за разделување (splitter) дозволува такви конверзии
(претворувања) во двете насоки: 4-битна магистрала во 4 линии и 4 линии
(врски) во 4-битна магистрала. За подобро разбирање, погледнете ја следната
слика 1-42.
Ние ги дефинираме влезните и излезните големини на разделникот преку
својствата (карактеристиките): fan out (факторот на разгранување) и bit width in
(ширина во битови). Во нашиот случај тие се и двете со вредност 4. Забелeшка:
На излезот од сплитерот (разделникoт) најмалку значајниот бит е индексиран со 0

Сл. 1-42. Пример за употреба на разделници (splitters)


312 ГРАФИЧКА АНАЛИЗА И СИНТЕЗА

4-битен собирач: Креирајте го 4-битниот собирач како на Сликата 1-43, и


потврдете го (верификувајте го) неговото правилно функционирање со
симулација. Со цел да се олесни читањето на влезните/излезните вредности,
можеби ќе треба да ја промените основата на бројниот систем
(бинарен/октален/декаден) во опциите на пиновите.

Сл. 1-43. 4-битен собирач

1.2.6. Вежба: Коло за одредување на еднаквост


За да ја повторите и утврдите постапката на креирање и симулирање на
логички шеми со поголем број на влезови ви е даден уште еден пример на
едноставна логичка шема. За вежбање ќе треба „брзински“ да дизајнирате
едноставно коло кое ја проверува еднаквоста помеѓу два 3-битни брoeви.
1-битен проверувач на еднаквост (ЕксНИЛИ логичко коло):
Започнуваме со креирање на ЕксНИЛИ портата битејќи од нејзината добро
позната таблица на вистинитост веднаш се приметува дека со неа можете да ја
утврдите еднаквоста помеѓу два единечни битови. Постапката се изведува
постапно, во неколку чекори, според следниов начин:
 Започнете со поставување на две И логички кола и едно ИЛИ коло,
 Намалете го бројот на влезни битови на два за секоја од портите преку
табелата со атрибути,
 Ставете инвертор (НЕ порта) пред едниот од влезовите на секоја И порта, а
истото тоа направете го и на излезот од ИЛИ портата,
ГРАФИЧКА АНАЛИЗА И СИНТЕЗА 313

 Поврзете ги линиите со влечење од секоја влезна/излезна точка како што е


прикажано на Сл. 1-44,
 Со ова ја креираме портата ЕксНИЛИ, која на излезот ќе даде 1-ца само
кога логичките нивоа на двата влеза се еднакви: или се две 0-и, или се две
1-и.

Сл. 1-44. ЕксНИЛИ порта, реализирана И, ИЛИ и НЕ логички кола

3-битен проверувач на еднаквост: Кога располагате со логичко коло со


кое можете да ја проверите еднаквоста помеѓу два едно-битни броеви, а тоа е
вашата ЕксНИЛИ порта, истата ќе ја употребите како суб-коло или под-коло за
понатамошниот дизајн. Неа ќе ја искористите за проверка на еднаквоста помеѓу
два 3-битни влезови.
 Започнете со одбирање на Проект> Додај коло,
 Доделете му на вашето ново коло име „еднаквост“,
 Притиснете на десен клик врз „еднаквост“ и кликнете на „Постави како
главно коло“.
Сега можете да го додадете вашето ЕксНИЛИ коло во колото за еднаквост
со кликнување и влечење како што се постапува со било која друга порта. Со ова
можеме да го финализираме нашето коло за испитување на еднаквост во неколку
едноставни чекори:
 Додајте 3 од вашите ЕксНИЛИ кола во колото за еднаквост,
 Додајте два влеза, чија еднаквост треба да ја провериме,
 Изберете го секој влез поединечно и во Табелата со атрибути сменете го
бројот на битови на податоците на 3.
 Излезната линија сега ќе биде магистрална која во својот состав содржи
повеќе врски, линии, кои се однесуваат како единствена.
 Поставете два раздвојувачи (анг. splitters) за проверка на поединечните
битови. Тие се наоѓаат во Explorer Plane> Wiring> Splitter.
 Изберете ги раздвојувачите и променете ја ширината на битовите за
влезот и излезот на 3 бита (бидејќи нашите влезови се со големина
ширина од 3-бита).
 Секој од соодветните битови од раздвојувачот поврзете го на ЕксИЛИ
колото.
 Кон нашето коло Додадете со влечење едно И коло.
 Поврзете ги сите три излези на ЕксИЛИ колото со И портата.
 Додадете го со влечење излезот на колото и поврзете го со И-портата.
314 ГРАФИЧКА АНАЛИЗА И СИНТЕЗА

На сликата 1-45 е прикажан конечниот изглед на 3-битното коло за


препознавање на еднаквост на два три-битни бинарни броеви.

Сл. 1-45. Комплетно (целосно) 3-битно коло за еднаквост


Сега ова коло може да проверува еднаквост помеѓу два 3-битни влезови. Со
избирање на алатката за покажување (алатката во облик на рака) и со кликање
на поединечните битови на влезовите можете да ги промените влезовите за
тестирање на вашето коло. Додека ги менувате логичките вредности на битовите,
ќе забележите дека се менува и излезот, и тоа така што со 1 се покажува еднак-
вост меѓу двата влезни податоци, а 0-та укажува на тоа дека тие не се еднакви.

1.2.7. Симулација
Како што може да се забележи од претходните два примери, симулацијата
не е сложена, бидејќи можеме да симулираме исто како да станува збор за реално
коло и веднаш да го видиме резултатот со поставување различни логички
вредности на влезните пинови. Покрај нив постојат и други видови на симулации,
кои се важни за други ситуации. Најчесто користен случај е кога се употребува
такт сигнал за да се овозможи работа на коло, кое има некаква меморија:
секвенцијално коло или секвенцијална комбинациска мрежа. Различните видови
на симулација, поддржани од Logisim се:
 Симулацијата е овозможена: Колото да работи врз основа на неговите
влезови. Мора да биде овозможено симулациите да функционираат за секој
такт импулс.
 Симулација со чекори: Оваа симулација дозволува корисникот да симулира
само по еден чекор во даден момент – работа чекор по чекор. Ако се
промени влезот, во симулацијата со чекори мора претходно да го
проверите сигналот на секоја порта постапно (чекор по чекор) (ctrl-I).
 Симулација со такт импулс (такт сигнал): Се користи за притискање на
тактот (се наоѓа во Explorer Plane Wiring> Clock. Ова е од витално значење
за секвенцијалните кола кои можат да се најдат во различни состојби, како
што се на пр. флип-флоповите, RAM чиповите и сл.)
 Еднократна симулација на притискање на такт импулсот: само еднаш
притиска тактот и тоа само кога се оди од високо на ниско ниво или
обратно,
 Овозможена симулација со такт импулси: автоматски се прикажуваат
такт импулсите со појавување еднакво со нивната фреквенција.
 Фреквенција на тактот: Колку често, или колку брзо, да се притисне
тактот (изразено во Hz).
ГРАФИЧКА АНАЛИЗА И СИНТЕЗА 315

Пример на D флип-флоп: Флип-флоповите се користат за да се овозможи


работата на секвенцијалните кола. Флип-флоповите се наоѓаат во Explorer Plane>
Memory> <type of FF >. Во овој пример ќе одбереме типичен D Флип-флоп (DFF)
и ќе покажеме како се користи синхронизирано со тактот. DFF го прифаќа влез-
ниот бит на растечкиот (предниот) раб на тактот, што значи кога тактот преми-
нува од ниско напонско ниво на логичка 0, на високо напонско ниво на логичка 1.

Сл. 1.46. D Флип флоп (DFF)

Постојат неколку влезови на DFF, на кои ќе се потсетиме:


 D: Вредноста за внесување во DFF (податокот кој се носи на влезот D) се
наоѓа на следниот растечки раб,
 Такт: тактот што временски ја синхронизира работата на DFF-от.
 Q: Излезот на DFF-от чија логичка вредност ја дефинира неговата состојба .
 Асинхроно ресетирање: Пинот, што се наоѓа на долниот лев агол, кој го
ресетира DFF-от поставувајќи му го излезот на ниско логичко ниво, кога на
асинхрониот влез се донесе 1-а.
 Овозможување: Кога тоа е поставено на 0, влезот на тактот е игнориран, а
DFF ќе ја задржи својата моментална вредност.
 Асинхроно поставување: Преку овој влезен пин DFF-от се сетира бидејќи на
излезот се добива високо логичко ниво на 1-а и тоа кога на овој асинхрон
влез се донесе 1-а.

1.2.8. Печатење на шематски приказ


Logisim ви овозможува да печатите копии од вашето коло. Од File менито
изберете ја опцијата Print; таа ве носи до прозорецот Параметри за печатење
(Print Parameters), кој ви овозможува да го селектирате колото или под-колото за
печатење, да поставите заглавие (header) на страната за печатење и сл. Кога ќе
кликнете на копчето ОК, се појавува поле за дијалог Print, кое ви овозможува да
го изберете посакуваниот печатач, или печатење во датотека, евентуално да
извршите промена на поставувањето на страницата (page setup) и сл.
Колото можете да го експортирате заедно со позадината и како слика во
GIF формат. Повторно од File менито, изберете ја опцијата „експортирај како GIF“
(Export as GIF). Слично како и при опцијата Print, ќе ви се појави прозорец за
параметри, и со кликање на копчето ОК, ќе се појави прозорец за зачувување на
фајловите со кој ви се овозможува да го внесете саканото име на вашата GIF
датотека со сликите.
316 ГРАФИЧКА АНАЛИЗА И СИНТЕЗА
2.
Комбинациски
мрежи
По изучувањето на оваа тематска целина
 ќе ги разликувате видовите комбинациски мрежи;
 ќе ги препознавате графичките симболи на основните логички
кола во програмскиот пакет кој ќе се користи;
 ќе креирате и анализирате комбинациски кола и мрежи;
 ќе синтетизирате нови комбинациски мрежи врз основа на
поставен проблем;
 ќе објаснувате соодветна дигитална структура на основни
логички компоненти за градба на комбинациски мрежи и кола;
 ќе можете да работите во програмската околина на соодветниот
програмски пакет кој ќе се користи;
 ќе решавате примери и задачи со комбинациски мрежи;
 ќе можете да работите на проекти и истите да ги елаборирате;
318 КОМБИНАЦИСКИ МРЕЖИ
КОМБИНАЦИСКИ МРЕЖИ 319

Симулациски вежби за реализација


на комбинациски мрежи

Сл. 2-1. а) Инвертор со биполарен транзистор

Сл. 2-1. б) Инвертор со биполарен транзистор


320 КОМБИНАЦИСКИ МРЕЖИ

Сл. 2-2. ИЛИ коло реализирано со НИ-кола

Сл. 2-3. Дик 7400: 4-кратни НИ-кола со по два влеза


КОМБИНАЦИСКИ МРЕЖИ 321

Сл. 2-4. Дик 7404: 6-кратни инвертори

Сл. 2-5. Логичко И коло со два влеза


322 КОМБИНАЦИСКИ МРЕЖИ

Сл. 2-6. Логичко ИЛИ коло со два влеза

Сл. 2-7. Дик 4082: 2-кратни И-кола и Дик 4072: 2-кратни ИЛИ-кола со по четири
КОМБИНАЦИСКИ МРЕЖИ 323

Сл. 2-8. Инверторско коло

Сл. 2-9. Баферско коло (раздвоен степен)


324 КОМБИНАЦИСКИ МРЕЖИ

Сл. 2-10. Баферско коло со три состојби

Сл. 2-11. а) Шмитово коло


КОМБИНАЦИСКИ МРЕЖИ 325

Сл. 2-11. б) Шмитово коло

Сл. 2-11. в) Шмитово коло


326 КОМБИНАЦИСКИ МРЕЖИ

Сл. 2-12. Логичко НИЛИ коло со два влеза

Сл. 2-13. Логичко НИ коло со два влеза

Сл. 2-14. Логичко ЕксИЛИ коло со два влеза


КОМБИНАЦИСКИ МРЕЖИ 327

Сл. 2-15. Логичко ЕксНИЛИ коло со два влеза

Сл. 2-16. Генератор на зборови


328 КОМБИНАЦИСКИ МРЕЖИ

Сл. 2-17. Логичко НИ коло со три влеза и логички анализатор

Сл. 2-18. Стандардни логички кола и логички анализатор


КОМБИНАЦИСКИ МРЕЖИ 329

Сл. 2-19. Логички конвертор на функцијата ЕксИЛИ

Сл. 2-20. Логички конвертор на функцијата ЕксНИЛИ


330 КОМБИНАЦИСКИ МРЕЖИ

Сл. 2-21. Логички конвертор на зададена логичка функција

Сл. 2-22. а) Логички конвертор на И коло и ИЛИ коло со по два влеза


КОМБИНАЦИСКИ МРЕЖИ 331

Сл. 2-22. б) Логички конвертер на И коло и ИЛИ коло со по два влеза

Сл. 2-23. Седум сегментен LED екран со прекинувачи и батерии


332 КОМБИНАЦИСКИ МРЕЖИ

Сл. 2-24. Декодиран седум сегментен LED екран

Сл. 2-25. Инвертор со подигнувачки отпорник


КОМБИНАЦИСКИ МРЕЖИ 333

Сл. 2-26. Логички конвертор на функцијата ЕксИЛИ со два влеза

Сл. 2-27. Логички конвертор на функцијата ЕксНИЛИ со два влеза


334 КОМБИНАЦИСКИ МРЕЖИ

Сл. 2-28. Логичка шема на основен 1-во-8 демултиплексер со генератор на


зборови
КОМБИНАЦИСКИ МРЕЖИ 335

Сл. 2-29. Логичка шема на основен 1-во-8 демултиплексер со прекинувачи


336 КОМБИНАЦИСКИ МРЕЖИ

Сл. 2-30. Основна компонента на 1-во-8 демултиплексер со генератор на зборови

Сл. 2-31. Логичка шема на 4-во-2 приоритетен кодер со декодиран 7-сегментен


LED
КОМБИНАЦИСКИ МРЕЖИ 337

Сл. 2-32. Седум сегментен LED екран со генератор на зборови и со прекинувачи

Сл. 2-33. Дик 4511: NBCD во 7s LED леч/декодер/драјвер и логички анализатор


338 КОМБИНАЦИСКИ МРЕЖИ

Сл. 2-34. Дик 4511: NBCD во 7s LED леч/декодер/драјвер со генератор на зборови


и логички анализатор

Сл. 2-35. Дик 7447: 7s LED декодер/драјвер со прекинувачи


КОМБИНАЦИСКИ МРЕЖИ 339

Сл. 2-36. Дик 7447: 7s LED декодер/драјвер со генератор на зборови

Сл. 2-37. Логичка шема на основен декаден-во-NBCD кодер со прекинувачи


340 КОМБИНАЦИСКИ МРЕЖИ

Сл. 2-38. Дик 74154: 4-во-16 декодер/демултиплексер за реализација на три


логички функции и генератор на зборови

Сл. 2-39. Дик 74154: 4-во-16 декодер/демултиплексер за реализација на три


логички функции и прекинувачи
КОМБИНАЦИСКИ МРЕЖИ 341

Сл. 2-40. Дик 74154: 4-во-16 декодер/демултиплексер за реализација на 8x4 ROM


342 КОМБИНАЦИСКИ МРЕЖИ

Сл. 2-41. Дик 74154: 4-во-16 декодер/демултиплексер за реализација на 4x4 ROM


КОМБИНАЦИСКИ МРЕЖИ 343

Сл. 2-42. а) Дик 74138: 3-во-8 декодер/демултиплексер за реализација на 8x4


ROM

Сл. 2-42. б) Дик 74138: 3-во-8 декодер/демултиплексер за реализација на 8x4


ROM
344 КОМБИНАЦИСКИ МРЕЖИ

Сл. 2-43. а) Дик 74138: 3-во-8 декодер/демултиплексер со инвертори на излезите


за реализација на 8x4 ROM

Сл. 2-43. б) Дик 74138: 3-во-8 декодер/демултиплексер со инвертори на излезите


за реализација на 8x4 ROM
КОМБИНАЦИСКИ МРЕЖИ 345

Сл. 2-44. Анализа на логичка шема на функција со генератор на зборови и


логички анализатор

Сл. 2-45. Логички конвертор за анализа и минимизација на логичка шема


346 КОМБИНАЦИСКИ МРЕЖИ

Сл. 2-46. Основни логички шеми на полусобирач и целосен собирач

Сл. 2-47. Конвертори на код од грејов во бинарен и од бинарен во грејов


КОМБИНАЦИСКИ МРЕЖИ 347

Сл. 2-48. Основна компонента на NBCD во 7s LED декодер/драјвер


348 КОМБИНАЦИСКИ МРЕЖИ

Сл. 2-49. а) Дик 74138: 3-во-8 декодер/демултиплексер со прекинувачи и логички


анализатор

Сл. 2-49. б) Дик 74138: 3-во-8 декодер/демултиплексер со прекинувачи и логички


анализатор
КОМБИНАЦИСКИ МРЕЖИ 349

Сл. 2-50. а) Дик 74138: 3-во-8 декодер/демултиплексер со прекинувачи и


генератор на зборови и логички анализатор

Сл. 2-50. б) Дик 74138: 3-во-8 декодер/демултиплексер со прекинувачи и


генератор на зборови и логички анализатор

Сл. 2-51. Дик 74138: 3-во-8 декодер/демултиплексер со прекинувачи


350 КОМБИНАЦИСКИ МРЕЖИ

Сл. 2-52. Дик 74138: 3-во-8 декодер/демултиплексер со генератор на зборови и


логички анализатор

Сл. 2-53. Дик 74138: 3-во-8 декодер/демултиплексер за реализација на 4-во-16


декодер
КОМБИНАЦИСКИ МРЕЖИ 351

Сл. 2-54. Дик 7442: NBCD во декаден декодер

Сл. 2-55. Основна шема на 4-во-1 мултиплексер


352 КОМБИНАЦИСКИ МРЕЖИ

Сл. 2-56. Дик 74151: 8-во-1 мултиплексер

Сл. 2-57. Двосмерно броење со Дик 74157: 4-кратни 2-во-1 мултиплексери


КОМБИНАЦИСКИ МРЕЖИ 353

Сл. 2-58. Демултиплексер – мултиплексер систем со Дик 74138 (3-во-8


декодер/демултиплексер) и со Дик 74151 (8-во-1 мултиплексер)
354 КОМБИНАЦИСКИ МРЕЖИ

Сл. 2-59. а) Кодер – декодер систем со Дик 74148 (8-во-3 приоритетен кодер) и
Дик 7447 (NBCD во 7s декодер/драјвер со отворени колектори)

Сл. 2-59. б) Кодер – декодер систем со Дик 74148 (8-во-3 приоритетен кодер) и
Дик 7447 (NBCD во 7s декодер/драјвер со отворени колектори)
КОМБИНАЦИСКИ МРЕЖИ 355

Сл. 2-60. а) Кодер – декодер систем со Дик 74148 (8-во-3 приоритетен кодер) и со
основна компонента NBCD во 7s декодер/драјвер

Сл. 2-60. б) Кодер – декодер систем со Дик 74148 (8-во-3 приоритетен кодер) и со
основна компонента NBCD во 7s декодер/драјвер
356 КОМБИНАЦИСКИ МРЕЖИ

Сл. 2-61. Дик 7447: NBCD во 7s декодер/драјвер со отворени колектори и 7s LED


екран

Сл. 2-62. Дик 74147: 10-во-4 приоритетен кодер со декодиран 7s LED екран
КОМБИНАЦИСКИ МРЕЖИ 357

Сл. 2-63. Дик 74147: 10-во-4 приоритетен кодер со Дик 7447 (NBCD во 7s
декодер/драјвер со отворени колектори) и 7s LED екран

Сл. 2-64. Дик 7447: NBCD во 7s декодер/драјвер со со отворени колектори и 7s


LED екран
358 КОМБИНАЦИСКИ МРЕЖИ

Сл. 2-65. Основна компонента на полусобирач

Сл. 2-66. Дик 7445: NBCD во декаден декодер со прекинувачи


КОМБИНАЦИСКИ МРЕЖИ 359

Сл. 2-66. Основна компонента на целосен собирач

Сл. 2-67. Собирање со три основни компоненти на целосен собирач


360 КОМБИНАЦИСКИ МРЕЖИ

Сл. 2-68. Основна компонента на 8-во-1 мултиплексер


КОМБИНАЦИСКИ МРЕЖИ 361

Сл. 2-69. а) Oсновна компонента на 1-во-8 демултиплексер

Сл. 2-69. б) Oсновна компонента на 1-во-8 демултиплексер


362 КОМБИНАЦИСКИ МРЕЖИ

Сл. 2-70. Основна компонента на 1-во-8 демултиплексер со логички анализатор

Сл. 2-71. Дик 74148: 8-во-3 приоритетен кодер со прекинувачи


КОМБИНАЦИСКИ МРЕЖИ 363

Сл. 2-72. Дик 74181: аритметичко логичка единица со генератор на зборови и


логички анализатор

Сл. 2-73. Дик 74181: аритметичко логичка единица со прекинувачи


364 КОМБИНАЦИСКИ МРЕЖИ

Сл. 2-74. Сигнализација за тоа дали се испразнети три резервоари со различни


течности

Сл. 2-75. Сигнализација со аларм за тоа дали се испразнети три резервоари со


различни течности
КОМБИНАЦИСКИ МРЕЖИ 365

Сл. 2-76. Сигнализација за тоа дали се спуштени трите авионски тркала

Сл. 2-77. Сигнализација со аларм за тоа дали се спуштени трите авионски тркала
366 КОМБИНАЦИСКИ МРЕЖИ

Сл. 2-78. Двојна сигнализација за тоа дали патниците ги врзале четирите појаси
во патничкото возило (потврда на Де моргановата теорема)
КОМБИНАЦИСКИ МРЕЖИ 367

Сл. 2-79. а) Реализација на логичка функција со дик 7404 (6 х Инвертори) и 7400


(4 х НИ-2)

Сл. 2-79. б) Реализација на логичка функција со дик 7404 (6 х Инвертори) и 7400


(4 х НИ-2)
368 КОМБИНАЦИСКИ МРЕЖИ

Сл. 2-80. Реализација на логичка функција со стандардни логички кола

Сл. 2-81. Анализа, минимизација и синтеза на логичка функција со логички


конвертор
КОМБИНАЦИСКИ МРЕЖИ 369

Сл. 2-82. Минимизација и синтеза на логичка функција со логички конвертор

Сл. 2-83. Синтеза на логичка функција со логички конвертор


370 КОМБИНАЦИСКИ МРЕЖИ

Сл. 2-84. Игра за двајца “Моја рака – Твоја рака“

Сл. 2-85. а) Игра за двајца “Моја рака – Твоја рака“ со сигнализација за лажење

Сл. 2-85. б) Игра за двајца “Моја рака – Твоја рака“ со сигнализација за лажење
КОМБИНАЦИСКИ МРЕЖИ 371

Сл. 2-86. а) Светлосна сигнализација на патничко возило

Сл. 2-86. б) Светлосна сигнализација на патничко возило

Сл. 2-86. в) Светлосна сигнализација на патничко возило


372 КОМБИНАЦИСКИ МРЕЖИ

Сл. 2-87. а) Светлосна сигнализација со движење наназад на патничко возило

Сл. 2-87. б) Светлосна сигнализација со движење наназад на патничко возило


КОМБИНАЦИСКИ МРЕЖИ 373

Сл. 2-88. а) Реализација на тастер со логичко И коло и инвертор

Сл. 2-88. б) Реализација на тастер со логичко И коло и инвертор


374 КОМБИНАЦИСКИ МРЕЖИ

Сл. 2-89. Реализација на тастер како суб-коло

Сл.2-89. а) Тастер како суб-коло со осцилоскоп

Сл. 2-89. б) Тастер како суб-коло со осцилоскоп


3.
Бистабилни кола
(Флип флопови)
По изучувањето на оваа тематска целина
 ќе ги разбирате четирите типови на флип-флопови;
 ќе ги препознавате графичките симболи во разните
програмски пакети;
 ќе го објаснувате принципот на работа на флип-флоповите;
 ќе ги анализирате добиените графици од излезите на секој
флип флоп посебно.
 ќе работите во програмската околина на соодветниот
програмски пакет кој го користите;
 ќе решавате примери кои ги содржат соодветните
дискретни структури;
 ќе ја објаснување на соодветната дигитална структура на
флип флоповите;
 ќе можете да работите на проект и да го елаборирате;
 ќе решавате примери и задачи од флип- флопови.
376 ФЛИП ФЛОПОВИ
ФЛИП ФЛОПОВИ 377

Симулациски вежби со бистабилни кола (флип-флопови)

Сл. 3-1. а) Игра “Петка - Круна“ (“Писмо - Глава“) со тактиран D флип-флоп

Сл. 3-1. б) Игра “Петка - Круна“ (“Писмо - Глава“) со тактиран D флип-флоп

Сл. 3-1. в) Игра “Петка - Круна“ (“Писмо - Глава“) со тактиран D флип-флоп


378 ФЛИП ФЛОПОВИ

Сл. 3-2. а) S*R* леч реализиран со НИ логички кола

Сл. 3-2. б) S*R* леч реализиран со НИ логички кола


ФЛИП ФЛОПОВИ 379

Сл. 3-3. а) SR флип-флоп реализиран со логички кола и основна SR леч


компонента тактиран со предната ивица (растечкиот раб) на такт сигналот

Сл. 3-3. б) SR флип-флоп реализиран со логички кола и основна SR леч


компонента тактиран со предната ивица (растечкиот раб) на такт сигналот
380 ФЛИП ФЛОПОВИ

Сл. 3-4. а) SR леч реализиран со НИЛИ логички кола

Сл. 3-4. б) SR леч реализиран со НИЛИ логички кола

Сл. 3-4. в) SR леч реализиран со НИЛИ логички кола


ФЛИП ФЛОПОВИ 381

Сл. 3-5. Реализација на D флип-флоп со примена на логички кола кој е тактиран


со предниот раб на такт сигналот и има директен влез за почетно поставување

Сл. 3-6. Примена на S*R* леч реализиран со НИ кола заради елиминација на


отскокнувањата на напонот кај механички прекинувач
382 ФЛИП ФЛОПОВИ

Сл. 3-7. Примена на S*R* леч реализиран со НИ кола заради елиминација на


отскокнувањата на напонот кај механички прекинувач со осцилоскоп

Сл. 3-8. Реализација на D леч со влез за дозвола реализиран со НИ кола


ФЛИП ФЛОПОВИ 383

Сл. 3-9. Реализација на D флип-флоп кој реагира на предниот раб на такт


сигналот со примена на логички кола

Сл. 3-10. Реализација на D флип-флоп кој реагира на предниот раб на такт


сигналот со примена на логички кола со генератор на зборови и логички
анализатор
384 ФЛИП ФЛОПОВИ

Сл. 3-11. а) Дик 7475: двократен D леч

Сл. 3-11. б) Дик 7475: двократен D леч


ФЛИП ФЛОПОВИ 385

Сл. 3-12. Дик 7475. двократен D леч со генератор на зборови и логички


анализатор

Сл. 3-13. а) Дик 7474: двократен D флип-флоп тактиран со предниот раб


386 ФЛИП ФЛОПОВИ

Сл. 3-13. б) Дик 7474: двократен D флип-флоп тактиран со предниот раб

Сл. 3-14. Дик 7474: двократен D флип-флоп тактиран со предниот раб и со


генератор на зборови и логички анализатор
ФЛИП ФЛОПОВИ 387

Сл. 3-15. Дик 74112: двократен ЈК флип-флоп тактиран со задниот раб на тактот

Сл. 3-16. Дик 74112: двократен ЈК флип-флоп тактиран со задниот раб на тактот и
со генератор на зборови и логички анализатор
388 ФЛИП ФЛОПОВИ

Сл. 3-17. а) ЈК флип-флоп реализиран со логички кола и основна SR леч


компонента тактиран со предната ивица (растечкиот раб) на такт сигналот

Сл. 3-17. б) ЈК флип-флоп реализиран со логички кола и основна SR леч


компонента тактиран со предната ивица (растечкиот раб) на такт сигналот
ФЛИП ФЛОПОВИ 389

Сл. 3-18. “Старт – Стоп“ прекинувач реализиран со основен ЈК флип-флоп

Сл. 3-19. Дик 7476: двократни ЈК флип-флопови кои реагираат на задната ивица
на тактот со директни влезови за сетирање и ресетирање
390 ФЛИП ФЛОПОВИ

Сл. 3-20. Основна компонента на SR леч

Сл. 3-21. Основна компонента на SR леч со осцилоскоп


ФЛИП ФЛОПОВИ 391

Сл. 3-22. Основна компонента на ЈК флип-флоп кој реагира на задната ивица на


тактот со директни влезови за сетирање и ресетирање

Сл. 3-23. Основна компонента на D флип-флоп коj реагира на предната ивица на


тактот
392 ФЛИП ФЛОПОВИ

Сл. 3-24. Дик 4013: двократни D флип-флопови кои реагираат на предната ивица
на тактот со директни влезови за сетирање и ресетирање

Сл. 3-25. Четири основни компоненти на D флип-флоп кои реагираат на предната


ивица на тактот и се едновремено тактирани
ФЛИП ФЛОПОВИ 393

Сл. 3-26. Основна компонента на D флип-флоп коj реагира на предната ивица на


тактот со директни влезови за сетирање и ресетирање

Сл. 3-27. a) S*R* флип-флоп реализиран со D флип-флоп коj реагира на предната


ивица на тактот со доминантен влез за сетирање
394 ФЛИП ФЛОПОВИ

Сл. 3-27. б) S*R* флип-флоп реализиран со D флип-флоп коj реагира на предната


ивица на тактот со доминантен влез за сетирање
4.
Регистри со
комбиниран влез
и/или излез
По изучувањето на оваа тематска целина
 ќе разликувате повеќе видови регистри;
 ќе ги препознавате графичките симболи на основните градбени
секвенцијални кола во програмскиот пакет кој ќе се користи;
 ќе го објаснува принципот на работа на регистрите;
 ќе познавате секвенцијални кола и мрежи;
 ќе креирате регистри со комбиниран влез и/или излез;
 ќе решавате логички проблеми;
 ќе решавате примери кои ги содржат соодветните дискретни
структури за конструкција и анализа на секвенцијални мрежи;
 ќе можете да работите во програмската околина на соодветниот
програмски пакет кој ќе се користи;
 ќе решавате примери и задачи со регистри.
396 РЕГИСТРИ
РЕГИСТРИ 397

Симулациски вежби за
реализација на регистри

Сл. 4-1.4-битен поместувачки регистер во десно со основни компоненти на D


флип-флоп

Сл. 4-2. а) Дик 74164: 8-битен регистер со сериски влез и комбиниран излез
398 РЕГИСТРИ

Сл. 4-2. б) Дик 74164: 8-битен регистер со сериски влез и паралелен излез

Сл. 4-3. а) Дик 74164: 8-битен регистер со сериски влез и и паралелен излез со
можност за циркулирање на податокот

Сл. 4-3. б) Дик 74164: 8-битен регистер со сериски влез и и паралелен излез со
можност за циркулирање на податокот
РЕГИСТРИ 399

Сл. 4-4. а) Игра за двајца „Кој е побрз?“

Сл. 4-4. б) Игра за двајца „Кој е побрз?“

Сл. 4-4. в) Игра за двајца „Кој е побрз?“


400 РЕГИСТРИ

Сл. 4-5. а) Паралелно – сериска – паралелна конверзија на 8-битен податок со


Дик 74165 (осумбитен регистер со паралелен влез и сериски излез) и Дик 74164
(осумбитен регистер со сериски влез и паралелен излез)

Сл. 4-5. б) Паралелно – сериска – паралелна конверзија на 8-битен податок со


Дик 74165 (осумбитен регистер со паралелен влез и сериски излез) и Дик 74164
(осумбитен регистер со сериски влез и паралелен излез
РЕГИСТРИ 401

Сл. 4-6. Генератор на секвенца (низа од 4-битни комбинации) реализиран со Дик


74164 (осумбитен комбиниран регистер) и со Дик 7486 (4-кратни ЕксИЛИ кола со
по два влеза)

Сл. 4-7. Генератор на секвенца (низа од 4-битни комбинации) реализиран со Дик


74164 (осумбитен комбиниран регистер) и со Дик 74266 (4-кратни ЕксНИЛИ кола
со по два влеза)
402 РЕГИСТРИ

Сл. 4-8. Четирибитен поместувачки регистер во десно реализиран со основни


компоненти на ЈК флип-флопови

Сл. 4-9. Четирибитен стационарен регистер со паралелен влез и паралелен излез


реализиран со Дик 74173 (4-кратни D флип-флопови кои реагираат на растечката
предна ивица на тактот и излези кои може да одат во трета состојба)
РЕГИСТРИ 403

Сл. 4-10. Четирибитен стационарен регистер со паралелен влез и паралелен


излез, реализиран со основни компоненти на D флип – флопови активни на
предниот раб на такт импулсот

Сл. 4-11. Четирибитен универзален регистер, со комбиниран влез и комбиниран


излез реализиран со основни компоненти на D флип – флопови активни на
предниот раб на такт импулсот
404 РЕГИСТРИ

Сл. 4-12. Четирибитен универзален регистер, со комбиниран влез и комбиниран


излез реализиран со основни компоненти на D флип – флопови активни на
предниот раб на такт импулсот
РЕГИСТРИ 405

Сл. 4-13. Четирибитен комбиниран регистер со сериски влез и паралелен/сериски


излез реализиран со основни D флип-флопови

Сл. 4-14. Четирибитен комбиниран регистер со сериски влез и паралелен излез


реализиран со основни D флип-флопови
406 РЕГИСТРИ

Сл. 4-15. Четирибитен поместувачки регистер во десно со сериски влез и сериски


излез реализиран со основни D флип-флопови

Сл. 4-16. Четирибитен комбиниран регистер реализиран со D флип- флопови со


сериски влез и паралелен/сериски излез со контрола на паралеленото читање
РЕГИСТРИ 407

Сл. 4-17. Дик 74194: Четирибитен двосмерен (бидирекционален) универзален


регистер со логички анализатор

Сл. 4-18. а) Дик 74194: Четирибитен двосмерен (бидирекционален) универзален


регистер
408 РЕГИСТРИ

Сл. 4-19. б) Дик 74194: Четирибитен двосмерен (бидирекционален) универзален


регистер

Сл. 4-20. Четирибитен комбиниран регистер реализиран со D флип- флопови со


сериски влез и паралелен излез со контрола на паралеленото читање со И-кола
РЕГИСТРИ 409

Сл. 4-21. Четирибитен комбиниран регистер реализиран со D флип- флопови со


сериски влез и паралелен излез со контрола на паралеленото читање со бафери
со три состојби

Сл. 4-22. а) Собирач за два 4-битни бинарни броеви со акумулаторски


стационарен регистер реализиран со D-флип-флопови
410 РЕГИСТРИ

Сл. 4-22. б) Собирач за два 4-битни бинарни броеви со акумулаторски


стационарен регистер реализиран со D-флип-флопови
5.
Бројачи со
произволен
модул
По изучувањето на оваа тематска целина
 ќе ја разбирате логичката структура на бројачите;
 ќе ги препознавате графичките симболи на основните градбени
секвенцијални кола во програмскиот пакет кој ќе се користи;
 ќе разликувате видови бројачки мрежи;
 ќе го објаснувате принципот на работа на бројачите;
 ќе ги познавате секвенцијалните кола и мрежи;
 ќе знаете да креирате бројач со произволен модул;
 ќе решавате логички задачи и проблеми;
 ќе знаете да ја објаснувате соодветната дигитална структура на
бројачите;
 ќе решавате примери и задачи за бројачи;
 ќе можете да работите на проекти и истите да ги елаборирате;
412 БРОЈАЧИ
БРОЈАЧИ 413

Симулациски вежби за
реализација на бројачи

Сл. 5-1. а) Четирибитен асинхрон бројач со стандардни ЈК флип- флопови со


основа М=9

Сл. 5-1. б) Четирибитен асинхрон бројач со стандардни ЈК флип- флопови со


основа М=9
414 БРОЈАЧИ

Сл. 5-2. а) Дик 4017: петбитен Џонсонов бројач со десет состојби

Сл. 5-2. б) Дик 4017: петбитен Џонсонов бројач со десет состојби


БРОЈАЧИ 415

Сл. 5-3. “Светлечко срце” реализирано со Дик 4017 (петбитен Џонсонов бројач со
десет состојби)

Сл. 5-4. “Светлечко срце” реализирано со Дик 4017 (петбитен Џонсонов бројач со
десет состојби) со такт генератор реализиран со временско ик 555
416 БРОЈАЧИ

Сл. 5-5. Декаден двоцифрен бројач со основа на броење М=100 реализиран со


две Дик 74190 (синхрон двосмерен NBCD бројач)

Сл. 5-6. а) Хекса децимален двоцифрен бројач со основа на броење М=256


реализиран со две Дик 74191 (синхрон 4-битен двосмерен бројач)
БРОЈАЧИ 417

Сл. 5-6. б) Хекса децимален двоцифрен бројач со основа на броење М=256


реализиран со две Дик 74191 (синхрон 4-битен двосмерен бројач)

Сл. 5-6. в) Хекса децимален двоцифрен бројач со основа на броење М=256


реализиран со две Дик 74191 (синхрон 4-битен двосмерен бројач)
418 БРОЈАЧИ

Сл. 5-7. Хекса децимален двоцифрен бројач со основа на броење М=256


реализиран со две основни бројачки компоненти

Сл. 5-8. а) “Паркинг простор“ Сигнализација за не/достапност на паркинг места


со декаден двоцифрен бројач со основа на броење М=100 реализиран со две Дик
74190 (синхрон двосмерен NBCD бројач)
БРОЈАЧИ 419

Сл. 5-8. б) “Паркинг простор“ Сигнализација за не/достапност на паркинг места


со декаден двоцифрен бројач со основа на броење М=100 реализиран со две Дик
74190 (синхрон двосмерен NBCD бројач)

Сл. 5-9. а) Двоцифрен декаден бројач со основа на броење М=100 реализиран со


две Дик 74192 (синхрон двосмерен NBCD бројач)
420 БРОЈАЧИ

Сл. 5-9. б) Двоцифрен декаден бројач со основа на броење М=100 реализиран со


две Дик 74192 (синхрон двосмерен NBCD бројач)

Сл. 5-10. Трибитен Џонсонов (Мобиусов) бројач реализиран со основни


компоненти на ЈК флип-флопови
БРОЈАЧИ 421

Сл. 5-11. Петтостепен Џонсонов бројач со декодирани излези реализиран со


основни компоненти на D флип-флопови (симулација на Дик 4017)

Сл. 5-12. Четирибитен кружен бројач реализиран со основни компоненти на ЈК


флип- флопови
422 БРОЈАЧИ

Сл. 5-13. а) Асинхрон квинарен бројач со основа на броење 5 реализиран со


основни компоненти на ЈК флип- флопови

Сл. 5-13. б) Асинхрон квинарен бројач со основа на броење 5 реализиран со


основни компоненти на ЈК флип- флопови
БРОЈАЧИ 423

Сл. 5-14. Четирибитен бинарен асинхрон бројач со основа на броење М=16


реализиран со основни компоненти на ЈК флип- флопови

Сл. 5-15. Четирибитен бинарен асинхрон бројач со основа на броење М=16 со


осцилоскоп на излезите искористен како делител на фреквенција и реализиран со
основни компоненти на ЈК флип- флопови
424 БРОЈАЧИ

Сл. 5-16. Четирибитен бинарен асинхрон бројач со основа на броење М=16 со


осцилоскоп на излезите искористен како делител на фреквенција реализиран со
основни компоненти на ЈК флип-флопови. Примената на Дик 74153 (двојни 4-во-1
мултиплексери) овозможува избор на фреквенцијата на делење.

Сл. 5-17. Четирибитен бинарен бројач со основа М=16 реализиран со две Дик
74107 (двојни ЈК флип-флопови тактирани на заданиот раб и влез за директно
ресетирање)
БРОЈАЧИ 425

Сл. 5-18. “Трчечко светло” реализирано со Дик 74191 (четирибитен синхрон


бинарен двосмерен бројач) и Дик 74154 (4-во-16 декодер/демултиплексер)

Сл. 5-19. “Електронско зарче” реализирано со Дик 7490 (асинхрон NBCD бројач)
поврзан за броење со основа М=6
426 БРОЈАЧИ

Сл. 5-20. Бројач на секвенца на парни броеви ...0-2-4-6-...

Сл. 5-21. Делител на фреквенција реализиран со Дик 7490 (асинхрон NBCD


бројач) поврзан како бројач со основа М=3 со осцилоскоп
БРОЈАЧИ 427

Сл. 5-22. Четририбитен бинарен бројач со основа М=16 реализиран со основна


бројачка компонента

Сл. 5-23. а) Двоцифрен бинарен бројач со основа М=256 реализиран со две


основни бројачки компоненти со основа М=16
428 БРОЈАЧИ

Сл. 5-23. б) Двоцифрен бинарен бројач со основа М=256 реализиран со две


основни бројачки компоненти со основа М=16

Сл. 5-24. Четирибитен кружен бројач со основа М=8 реализиран со основни


компоненти на ЈК флип-флопови
БРОЈАЧИ 429

Сл. 5-25. Четирибитен кружен бројач со основа М=8 реализиран со основни


компоненти на D флип-флопови

Сл. 5-26. Октален бинарен бројач со основа на броење 8 реализиран со основни


компоненти на D флип - флопови
430 БРОЈАЧИ

Сл. 5-27. Октален бинарен бројач со основа на броење 8 реализиран со основни


компоненти на D флип - флопови и логички анализатор

Сл. 5-28. Четирибитен бинарен асинхрон бројач со основа М=16 реализиран со


основни компоненти на D флип – флопови поврзани како Т
БРОЈАЧИ 431

Сл. 5-29. Бинарен бројач со основа на броење М=4 реализиран со Дик 7473
(двојни ЈК флип-флопови кои реагираат на задна ивица на тактот)

Сл. 5-30. Синхрон бројач според Грејовиот код со секвенца на броење ...0-1-3-2-6-
7-5-4-... реализиран со основни компоненти на ЈК флип – флопови
432 БРОЈАЧИ

Сл. 5-31. Примена на основна бројачка компонента поврзана како декаден бројач
со основа М=10 заради анализа на принципот на работа на Дик 7445 (NBCD во
декаден декодер)

Сл. 5-32. Примена на асинхрон октален бинарен бројач со основа на броење М=8
заради анализа на принципот на работа на основна шема на 3-во-8 декодер
6.
Полу-
проводнички
мемории
По изучувањето на оваа тематска целина
 ќе ги препознавате графичките симболи на основните градбени
кола за полупроводничките мемории во програмскиот пакет кој
ќе се користи;
 ќе го знаете принципот на работа на полупроводничките
мемории;
 ќе анализирате шеми на полупроводнички RAM мемории;
 ќе го објаснувате принципот на работа на полупроводнички
RAM мемории;
 ќе синтетизирате полупроводнички мемории врз основа на
поставен проблем;
 ќе решавате логички проблеми, како и примери кои ги содржат
соодветните дигитални структури;
 ќе знаете да решавате примери и задачи со полупроводнички
мемории;
 ќе знаете да ги објасните разликите помеѓу видовите
полупроводнички мемории: ROM, PROM, E/ЕPROM, RAM;
434 ПОЛУПРОВОДНИЧКИ МЕМОРИИ
ПОЛУПРОВОДНИЧКИ МЕМОРИИ 435

Симулациски вежби за реализација на


полупроводнички мемории

Сл. 6-1. Логички симбол, пин дијаграм и таблица на функционирање на реално


CMOS SRAM мемориско ик 62256 со капацитет 32К-збора х 8b (32КВ)

Сл. 6-2. Сл. 6-3.

Сл. 6-4. Сл. 6-5.

Различни изведби на SRAM мемориски ќелии со D флип-флоп и логички кола


436 ПОЛУПРОВОДНИЧКИ МЕМОРИИ

Сл. 6-6. Суб-коло на мемориска локација со должина од 4 бита (1 нибл)

Сл. 6-7. SRAM меморија 2 х 4 (две мемориски локации со по четири бита); Секоја
мемориска локација е суб-коло
ПОЛУПРОВОДНИЧКИ МЕМОРИИ 437

Сл. 6-8. a) Мемориска локација со должина од 4 бита (1 нибл) со една контролна


линија за читање/запишување

Сл. 6-8. б) Мемориска локација со должина од 4 бита (1 нибл) со една контролна


линија за читање/запишување
438 ПОЛУПРОВОДНИЧКИ МЕМОРИИ

Сл. 6-9. а) Мемориска локација со должина од 4 бита (1 нибл) со две посебни


контролни линии за читање и за запишување и асинхрон влез за дозвола

Сл. 6-9. б) Мемориска локација со должина од 4 бита (1 нибл) со две посебни


контролни линии за читање и за запишување со синхрон такт сигнал
ПОЛУПРОВОДНИЧКИ МЕМОРИИ 439

Сл. 6-10. Логички симбол, пин дијаграм и таблица на функционирање на реално


CMOS EPROM меморискo ик 27256 со капацитет 32К-збора х 8b (32КВ)

Сл. 6-11. а) Реализација на диодна матрица како ROM компонента со капацитет 8


збора х 4 бита применувајќи дик 74138 како адресен 3-во-8 декодер; основната
компонента на бројачкото коло ги излистува содржините на сите локации

Сл. 6-11. б) Реализација на диодна матрица како ROM компонента со капацитет 8


збора х 4 бита применувајќи дик 74138 како адресен 3-во-8 декодер; дик 7493 е
реален бројач со кој се излистуваат содржините на сите меориски локации
440 ПОЛУПРОВОДНИЧКИ МЕМОРИИ

Сл. 6-12. Реализација на диодна матрица како ROM компонента со капацитет 8


збора х 4 бита применувајќи дик 74138 како адресен 3-во-8 декодер; основната
компонента на бројачкото коло ги излистува содржините на сите локации

Сл. 6-13. Реализација на диодна матрица како ROM компонента со капацитет 8


збора х 4 бита применувајќи Дик 74154 како адресен 4-во-16 декодер; од можните
16 излези од декодерот се користат само пониските осум
7.
Аналогно-
Дигитална
конверзија
По изучувањето на оваа тематска целина
 ќе ги разликувате видовите дигитални кола за аналогно-дигитална и
дигитално- аналогна конверзија;
 ќе ги препознавате графичките симболи на основните градбени кола
за А/Д и Д/А конверторите во програмскиот пакет кој ќе се користи;;
 ќе го објаснувате принципот на работа на А/Д и Д/А конверторите;
 ќе анализирате шеми на А/Д и Д/А конвертори;
 ќе ги проследувате случувањата од влезот кон излезот;
 ќе решавате логички проблеми и примери кои ги содржат
соодветните дигитални структури;
 ќе го разбирате работењето во програмската околина на соодветниот
програмски пакет кој се користи;
 ќе решавате примери и задачи од оваа овласт;
 ќе можете да работите на проект и да го елаборирате истиот.
442 АНАЛОГНО-ДИГИТАЛНА КОНВЕРЗИЈА
АНАЛОГНО-ДИГИТАЛНА КОНВЕРЗИЈА 443

Симулациски вежби за реализација


на АД и Д/А конвертори

Сл. 7-1. а) Дигитално-аналоген конвертор (ДАК) реализиран со дик 7490 како


декаден бројач и два операциски засилувачи лик 741

Сл. 7-1. б) Дигитално-аналоген конвертор (ДАК) реализиран со дик 7490 како


декаден бројач и два операциски засилувачи лик 741
444 АНАЛОГНО-ДИГИТАЛНА КОНВЕРЗИЈА

Сл. 7-2. а) Дво-битен флеш аналогно-дигитален конвертор (АДК) со основни


компараторски кола и влезен напон преку потенциометар

Сл. 7-2. б) Дво-битен флеш аналогно-дигитален конвертор (АДК) со основни


компараторски кола и влезен напон преку потенциометар
АНАЛОГНО-ДИГИТАЛНА КОНВЕРЗИЈА 445

Сл. 7-3. а) Дво-битен флеш аналогно-дигитален конвертор (АДК) со основни


компараторски кола и влезен напон од функциски генератор

Сл. 7-3. б) Дво-битен флеш аналогно-дигитален конвертор (АДК) со основни


компараторски кола и влезен напон од функциски генератор
446 АНАЛОГНО-ДИГИТАЛНА КОНВЕРЗИЈА

Сл. 7-4. а) Аналогно-дигитален конвертор (АДК) со бројачка рампа и резолуција


од 4 бита чиј влезен напон се носи преку потенциометар; АДК е реализиран со
дик 7493 како хекса-декаден бројач и основна ДАК компонента

Сл. 7-4. б) Временски дијаграми на излезот од 4-битниот аналогно-дигитален


конвертор (АДК) со бројачка рампа
АНАЛОГНО-ДИГИТАЛНА КОНВЕРЗИЈА 447

Сл. 7-5. Три-битен флеш аналогно-дигитален конвертор (АДК) со 7 основни


компараторски кола и со Дик 74148 (8-во-3 приоритетен кодер) и можност за две
побуди: аналоген влезен напон добиен од функциски генератор или преку
потенциометар
448 АНАЛОГНО-ДИГИТАЛНА КОНВЕРЗИЈА

Сл. 7-6. Три-битен флеш аналогно-дигитален конвертор (АДК) со 7 основни


компараторски кола и со Дик 74148 (8-во-3 приоритетен кодер) побуден со
аналоген влезен напон добиен од функциски генератор
АНАЛОГНО-ДИГИТАЛНА КОНВЕРЗИЈА 449

Сл. 7-7. Три-битен флеш аналогно-дигитален конвертор (АДК) со 8 основни


компараторски кола и со Дик 74148 (8-во-3 приоритетен кодер) и можност за две
побуди: аналоген влезен напон добиен од функциски генератор или преку
потенциометар
450 АНАЛОГНО-ДИГИТАЛНА КОНВЕРЗИЈА

Сл. 7-9. Три-битен флеш аналогно-дигитален конвертор (АДК) со 8 основни


компараторски кола и со Дик 74148 (8-во-3 приоритетен кодер) побуден со
аналоген влезен напон добиен преку потенциометар
АНАЛОГНО-ДИГИТАЛНА КОНВЕРЗИЈА 451

Сл. 7-10. а) Процес на А/Д – Д/А конверзија со основни АДК и ДАК компоненти

Сл. 7-10. б) Временските сигнали во карактеристичните точки од процес на А/Д и


Д/А конверзија со основни АДК и ДАК компоненти за фреквенции на одбирање од
f1=20 kHz и од f2=40 kHz
452 АНАЛОГНО-ДИГИТАЛНА КОНВЕРЗИЈА

Сл. 7-11. а) Четири-битен дигитално-аналоген конвертор (ДАК) со R-2R


отпорничка мрежа и операциски засилувачи лик 741

Сл. 7-11. б) Четири-битен дигитално-аналоген конвертор (ДАК) со R-2R


отпорничка мрежа и операциски засилувачи лик 741
АНАЛОГНО-ДИГИТАЛНА КОНВЕРЗИЈА 453

Сл. 7-12. Процес на А/Д – Д/А конверзија со основни АДК и ДАК компоненти и две
различни фреквенции за одбирање за f1=5 kHz и f2=1kHz

Сл. 7-13. а) Електрична шема на процес на А/Д – Д/А конверзија со основни АДК и
ДАК компоненти и две различни фреквенции за одбирање за f1=5 kHz и f2=1kHz

Сл. 7-13. б) Временските сигнали во карактеристичните точки од процес на А/Д и


Д/А конверзија со основни АДК и ДАК компоненти за фреквенции на одбирање од
за f1=5 kHz и f2=1kHz
454 АНАЛОГНО-ДИГИТАЛНА КОНВЕРЗИЈА

Сл. 7-14. Три-битен дигитално-аналоген конвертор (ДАК) со R-2R отпорничка


мрежа и основни компоненти на операциски засилувачи

Сл. 7-15. А/Д конверзија со основно АДК и различни фреквенции за одбирање за


f=5 kHz и f=1kHz
АНАЛОГНО-ДИГИТАЛНА КОНВЕРЗИЈА 455

Сл. 7-16. а) А/Д конверзија со основно АДК и фреквенција за одбирање f1=1kHz

Сл. 7-16. б) А/Д конверзија со основно АДК фреквенција за одбирање f2=5kHz

Сл. 7-17. А/Д конвертор со основно АДК побудено со аналоген влезен напон преку
потенциометар и 4-битен излез
456 АНАЛОГНО-ДИГИТАЛНА КОНВЕРЗИЈА

Сл. 7-18. А/Д конвертор со основно АДК побудено со аналоген синусен влезен
напон од функциски генератор и 8-битен излез

Сл. 7-19. 4-битен Д/А конвертор со основно струјно ДАК коло

Сл. 7-20. 4-битен Д/А конвертор со основно напонско ДАК коло


АНАЛОГНО-ДИГИТАЛНА КОНВЕРЗИЈА 457

Сл. 7-21. а) Процес на А/Д и Д/А конверзија со основни АДК и ДАК кола со
различна фреквенција на земање на одбироци за f=2 kHz, f=5 kHz и f=20kHz.

Сл. 7-21. б) Временски дијаграми на сигналите во карактеристичните точки од


процес на А/Д и Д/А конверзија со основни АДК и ДАК компоненти за фреквенции
на одбирање од f1=20kHz и за f2=5 kHz
458 АНАЛОГНО-ДИГИТАЛНА КОНВЕРЗИЈА

Сл. 7-22. Процес на А/Д и Д/А конверзија со основни АДК и ДАК кола со различна
фреквенција на земање на одбироци за f=2 kHz, f=5 kHz и f=20kHz и RC НФ
филтер на излезот
Прилог А.
Пин конфигурации
на дигитални
интегрирани кола
На следните неколку страни се прикажани пин-конфигурациите на
најчесто применуваните дигитални интегрирани кола од TTL и CMOS
фамилиите со ознака 74хх, кои ги опфаќаат основните логички кола,
некои кодери, декодери, мултиплексери, демултиплексери, флип-флопови,
регистри и бројачи.
А-2 Прилог-А
Прилог-А A-3

Прилог А1
А-4 Прилог-А

Прилог А2
Прилог-А A-5

Прилог А3
А-6 Прилог-А

Прилог А4
II дел
Архитектура на
микрокомпјутери
РЕДОВНА НАСТАВА
Во рамките на редовната настава учениците ќе се запознаат со
теоретските основи кои се однесуваат на архитектурата на компјутерите.
Поконкретно, фокусот на изучувањето ќе биде ставен во доменот на
микрокомпјутерите, и тоа врз следните наставни содржини: основи на
микрокомпјутерите, архитектура на општ микропроцесор, поврзување на
општ микропроцесор и програмирање на општ микропроцесор во
асемблерски јазик.
ИЗБОРНА НАСТАВА
Во рамките на изборната настава учениците ќе ги прошират и
продлабочат своите знаења кои се однесуваат на наставните теми од
задолжителната настава во врска со архитектурата на општиот
микропроцесор, неговото поврзување со мемориски и на Влезно/Излезни
компоненти, како и негово програмирање во асемблерски јазик. Во овој
дел учениците ќе се стекнат и со практични знаења кои ќе им овозможат
да изработуваат вежби од претходно наведените области.
460
461

II.1
Архитектура на
микрокомпјутери
Редовна настава
Наставни теми:
 9) Основи на микрокомпјутерите
 10) Архитектура на општ микропроцесор
 11) Поврзување на општ микропроцесор
 12) Програмирање на општ микропроцесор
462
9.
ОСНОВИ НА
МИКРО-
КОМПЈУТЕРИТЕ
По изучувањето на оваа тематска целина ќе се запознаете со
 класификацијата на компјутерите;
 поделбата на компјутерите по различни критериуми;
 архитектурата на микро/компјутерите;
 структурата и функционирањето на микро/компјутерите;
 работата на микро/компјутерот;
 магистралната организација на микро/компјутерот;
 блок-шемата на основиот микро/компјутер и микро/процесорски
систем;
464 Основи на микрокомпјутери
Основи на микрокомпјутери 465

9.1. КЛАСИФИКАЦИЈА НА КОМПЈУТЕРИТЕ


Компјутерите се современи електронски уреди во кои од страна на
корисниците се внесуваат влезни податоци кои се обработуваат со соодветни
програми. Програмата претставува множество на меѓусебно логички поврзани
инструкции, по чие извршување се добиваат излезни податоци - резултати што се
запамтуваат со цел да се искористат кога за тоа ќе има потреба. Компјутерите врз
примените податоци може да извршуваат најразлични логички и математички
пресметки, како и други машински операции со кои влезните или добиените
податоци се пренесуваат помеѓу посебните функционални единици.
Денешните компјутери се користат за повеќе намени и се појавуваат во
најразлични големини, со различни брзини и капацитет за обработка на
податоците, а како примери ќе ги наведеме:
 Многу мали, т.н. вградливи (анг. embedded) компјутери кои се вградени во
огромен број на уреди и апарати кои секојдневно ги користиме,
 Џебни компјутери и паметни мобилни телефони, со специфична намена,
чии можности за пресметување се ограничени,
 Прилично моќни и функционални десктоп и лаптоп-преносни компјутери за
лична употреба, кои ги користиме во домовите и на работните места во
компаниите,
 Мали, т.н. мини компјутери со кои може да се управуваат помали
индустриски процеси или да се користат како сервери за поголем број на
вмрежени персонални компјутери,
 Големи, или т.н. главни компјутери кои ги користат банките, глобалните
компании, државните институции, и сл.,
 Супер моќни компјутери кои извршуваат огромни математички пресметки
заради одредување на прецизна временска прогноза, истражување на
вселената, контролирање на одбрамбениот систем на државно ниво, итн.
Општо земено, компјутерите се со најразлични димензии, капацитет,
можности и дизајн, заради што нивната поделба не е баш едноставна. Во врска со
наведеното, компјутерите се класифицираат во повеќе категории и типови според
различни критериуми. Тие може да се групираат според функционалноста и видот
на податоците кои ги обработуваат, примената во практиката, големината и
капацитетот за меморирање на податоците, за што ќе зборуваме во продолжение.

9.2. ПОДЕЛБА СПОРЕД ВИДОТ НА ПОДАТОЦИТЕ КОИ ГИ ОБРАБОТУВААТ


Постојат три различни начини според кои податоците можат да бидат
прифаќани, обработувани и генерирани од страна на компјутерот. Согласно на
тоа, има три видови на компјутери, а тие се:
 Дигитални компјутери,
 Аналогни компјутери, и
 Хибридни компјутери.
466 Основи на микрокомпјутери

9.2.1. Дигитални компјутери


Податоците со кои дигиталниот компјутер (анг. Digital Computer)
манипулира може да се текстуални – зборови или нумерички – броеви во
бинарниот систем изразени во облик на битови. Поточно, тоа се комбинации од
битови, 0-и или 1-и, организирани во бајти со конечна должина од по 8 бита чии
физички претставници се дигитални сигнали со две напонски нивоа. На логичката
вредност 1 одговара високо напонско ниво Vhigh=VH=V(1)=+5V, додека на
логичката вредност 0 соодветствува ниско напонско ниво Vlow=VL=V(0)=+0V.
Дигиталните компјутери се дизајнирани да обработуваат само вака
претставени податоци, во бинарен облик како дигитални напонски сигнали, при
што со нив тие извршуваат секакви математички и логички операции. Исто како
влезните податоци, така и добиените резултати се во дигитален облик и можат
привремено да се запамтуваат и да се складираат на подолг временски период.
Типични примери за дигитални компјутери се преносливите персонални десктоп,
лаптоп и таблет компјутери прикажани на сл.9-1.

Сл. 9-1. Современи персонални десктоп, лаптоп и таблет компјутери


Дигиталните сигнали се добиваат и од физички големини кои претходно со
аналогно-дигитални конвертори се претвораат во напони со конечен број на
нивоа примајќи скоковити, т.е. дискретни вредности изразени со броеви во
декадниот броен систем. Потоа секое вакво ниво се конвертира во бинарен облик
како посебна низа од 1-и или 0-и, односно дигитални сигнали со две напонски
нивоа: високо VH и ниско VL.

9.2.1.1. Основни компоненти на дигитален компјутер


Четирите базични функции кои треба да ги извршува дигиталниот
компјутер се прифаќање на податоци, нивно процесирање, потоа добивање на
излезни резултантни податоци и нивно запамтување за понатамошна употреба.
Основните компоненти на компјутерот со кои тој ги извршува своите
функции се прикажани на блок-шемите дадени на сл. 9-2 и 9-3, а тоа се: влезна
единица, излезна единица, централна процесорска единица и мемориска единица.
 Влезната и излезната единица заедно може да се претстават со единствена
Влезно/Излезна (В/И) единица (анг. Input/Output Unit, I/O) која во себе
содржи В/И компоненти кои имаат за задача да ги пренесуваат податоците
помеѓу компјутерот и неговата надворешна околина.
Основи на микрокомпјутери 467

 Централна процесорска единица (ЦПЕ) (анг. Central Processing Unit, CPU) во


жаргон едноставно се нарекува процесор. Тој ја контролира работата на
компјутерот такашто од работната меморија ги презема програмските
инструкции една по една, ги декодира и извршува. Со тоа ги обработува
влезните податоци и генерира излезни резултати.
 Работната или оперативната меморија се реализира со RAM мемориски
интегрирани кола во кои се запамтуваат и се чуваат како програмите, така
и влезните и излезните податоци. За време на работата процесорот од
меморијата ги презема инструкциите и ги чита податоците, и по
извршената обработка, добиените резултaти во неа или привремено ги
меморира или ги складира за користење на подолг временски период.

Сл. 9-2. Основни компоненти на дигитален компјутер

Сл. 9-3. а) б) Аналогија помеѓу компонентите на компјутерот и човекот


Во лекциите што следат во продолжение ќе ги изучуваме дигиталните
компјутери и фокусот ќе биде ставен исклучиво само на нив. Заради ова кога ќе
го користиме како општ поим терминот компјутер тој ќе се однесува на дигитален
компјутер.
468 Основи на микрокомпјутери

9.2.2. Аналогни компјутери


Аналогниот компјутер (анг. Analogue Computer) обработува вредности во
облик на броеви од некоја континуирана физичка величина, чии промени ги
претставуваат својствата на некој систем што се моделира. Аналогниот компјутер
како континуирана физичка величина го користи напонот со кој ги претставува
добиените податоци аналогно со физичката големина од реалниот свет.
Аналогните сигнали се различни од дигиталните по тоа што тие континуирано се
менуваат со тек на времето, а не скоковито како дискретните сигнали кои во
дигиталниот компјутер се обработуваат во бинарен облик. Аналогните компјутери
(сл. 9-4) ги мерат континуираните физички величини, аналогно на нив генерираат
напони со што добиените мерења се претвораат во податоци и истите ги
обработуваат со различни конфигурации на операциски засилувачи. Денес
аналогните компјутери многу малку се користат и тоа само во одредени области
од човековото живеење како на пр. за контрола и управување на одредени
индустриски процеси или за научно-истражувачка работа.

Сл. 9-4. Аналогни компјутери од периодот 1960 до 1980 год.


9.2.3. Хибридни компјутери
Хибридниот компјутер (анг. Hybrid Computer) има карактеристики кои се
комбинација од оние на двата претходно спомнати типа на компјутери:
дигиталниот и аналогниот. Хибридните компјутери извршуваат и аналогни
мерења и дигитални пресметки. Едната функција е карактеристична за
аналогниот, додека втората за дигиталниот компјутер. За пресметковни цели,
овие компјутери користат аналогни компоненти, а за зачувување на податоци се
користат дигитални мемориски уреди.

Сл. 9-5. Хибриден компјутер


Хибридните компјутери имаат можност да генерираат влезни и излезни
дигитални и аналогни сигнали во исто време, а ниту дигиталниот, ниту аналог-
ниот компјутер не се соодветни за обработка на двата сигнали во исто време.
Еден типичен пример за хибриден компјутер е машината за броење хартиени
банкноти прикажана на сл. 9-5.
Основи на микрокомпјутери 469

9.3. ПОДЕЛБА НА КОМПЈУТЕРИТЕ СПОРЕД НАМЕНАТА


Според примената, компјутерите се класифицираат во две големи категории:
компјутери за општа намена и компјутери за специјализирана намена.

9.3.1 Компјутери за специјализирана намена


Компјутерите за специфична, посебна или специјализирана намена како
што уште се нарекуваат (анг. Special, Specific Purpose Computers), се дизајнирани
за да се справат со специфичен проблем или да извршат посебно одредена
задача. Ваквиот компјутер може да се користи само за извршување на однапред
точно зададена функција и нема општа примена. Во компјутерите со
специјализирана намена припаѓаат компјутерите од следниве две подгрупи:
вградливи компјутери и роботи.
Вградливите компјутери (анг. Embedded computers) се со мали
димензии, вградени, вметнати или фиксирани во голем број производи за широка
потрошувачка со што таквите производи можат да извршуваат посебни функции.
Вградливиот компјутер воообичаено е дел од некој поголем систем, но тој
функционира автономно со сопствен микро/процесор или микро/контролер.
Вградливите компјутери (сл. 9-6) денес ги има во секој инструмент, во
автомобилите и другите превозни средства, во апаратите кои се користат во
домаќинството: фрижидери, микробранови, машини за перење, телевизиски
уреди, мобилни телефони, камери, итн. итн. ... ги има насекаде околу нас. Еден
интересен податок за вградливите компјутери е фактот дека нивниот број е
многу поголем и од човековата популација. Вградливите компјутери ги има многу
повеќе отколку што е бројот на сите жители на земјината топка!

Сл. 9-6. Уреди со вградливи компјутери

Роботите (анг. Robots) се компјутерски системи контролирани од одредена


личност или од друг компјутер кои можат да се движат, да прифаќаат податоци
од сензорски влезови, да ги обработуваат и соодветно да реагираат со движење.
470 Основи на микрокомпјутери

Роботите (сл. 9-7) наоѓаат широка примена во истражувањето на вселената и


океанското дно бидејќи нив човекот не може да ги изведе заради околните услови
во кои тој физички не може да опстојува.

Сл. 9-7. Индустриски роботи


Роботите денес многу повеќе се користат и за извршување на прецизни и
монотони активности кои се повторуваат или се многу тешки за изведување, како
што е на пр. заварувањето, заштрафувањето, бојадисувањето во автомобилската
индустрија, но и за многу други работи со кои се реализираат голем број на
индустриски процеси. Во последната декада роботиката се разви со големи
чекори така што роботите се повеќе се користат како за едукативни цели, така и
за забава.
9.3.2. Компјутери за општа намена
Компјутерите за општа намена (анг. General Purpose Computers) (сл. 9-8) се
дизајнирани за да извршуваат голем број на различни задачи бидејќи во нив се
чуваат голем број на програми наменети за секакви корисници и тоа за
најразлични области од животот. Кога го употребуваме поимот компјутер,
всушност, секогаш мислиме на ваков тип компјутери. Имено, меѓу бројните задачи
и функции на компјутерите за општа намена, е нивната примена за обработка на
текст, за математички и табеларни пресметки, за управување со бази на
податоци, графички дизајн и изработка на презентации, за обработка на слики,
снимање и слушање на музика, гледање филмови, играње, секакви видови на
едукативни активности, пребарување и комуникација преку интернет, итн. итн.

Сл. 9-8. Компјутери за општа намена


Оперативните системи како основа, и различните апликативни софтверски
пакети инсталирани на нив, се користат за извршување на големиот број
различни функции и на сите претходно наведени задачи. Со нив се контролира и
Основи на микрокомпјутери 471

управува работата на компјутерот чија единствена цел е опслужување на


поставените барања од страна на корисниците. Стандардниот сет на програми
вообичаено вклучува оперативен систем со интегриран софтвер за едитирање на
текст, за табеларни пресметки, за работа со бази на податоци, за обработка на
слики, како и софтвер за графичка презентација, за заштита од компјутерски
вируси и веб-прелистувачи.
Дополнително, компјутерите за општа намена се делат и според својата
големина. Во текстот што следува ќе се задржиме повеќе на оваа поделба.
9.4. ПОДЕЛБА НА КОМПЈУТЕРИТЕ СПОРЕД ГОЛЕМИНАТА И КАПАЦИТЕТОТ
Кога се класифицираат врз база на големината и капацитетот или моќта,
компјутерите се делат на повеќе групи: супер компјутери, главни или големи
компјутери, мини или мали компјутери и микро или персонални компјутери.
9.4.1. Микро компјутери
Микро компјутерите или персоналните компјутери (анг. Micro computers,
PC, Personal Computers) се всушност сегашните портабл или преносливи
конвенционални персонални компјутери за лична употреба. Овде припаѓаат
различните видови и модели на десктоп, лаптоп, ноутбук, таблети и компјутери
кои можат да се држат во рака. Сите претходно наброени компјутери се за лична
употреба и со релативно ниска цена на чинење која може да си ја дозволи секој
вработен граѓанин. Покрај примената за лични потреби, микрокомпјутерите се
користат и за контролирање и управување на индустриски процеси од помал
обем. За нив е карактеристично и тоа што содржат само еден процесор.
• Десктоп (анг. Desktop): Десктоп компјутерот (сл. 9-9) е за лична намена
и неговиот облик, големина и дизајн се такви што може да се постави на секое
работно биро со стандардни димензии. Десктоп компјутерот е составен од
неколку посебни единици и тоа: куќиште во кое се наоѓа напојувањето, потоа
матичната плоча со процесорот, мемориските интегрирани кола, секундарните
мемориски уреди, компонентите за аудио и графичка обработка, како и
мониторот, тастатурата и глувчето. Вообичаено, под поимот компјутер, се
подразбира персонален компјутер, и тоа токму десктоп компјутер.

Сл. 9-9. Десктоп компјутери


472 Основи на микрокомпјутери

• Лаптоп (анг. Laptop): Лаптопот (сл. 9-10) е пренослив компјутер кој ги


содржи сите компоненти како и декстоп-от, вклучувајќи ги и екранот и
тастатурата, но со помали димензии. Сите овие компоненти и уреди се
интегрирани во единствено куќиште кое е нешто поголемо од тетратка од А4
формат со вообичаени димензии од околу 40 х 30 см и дебелина од 3 до 4 см.

Сл. 9-10. Лаптоп компјутери


• Ноутбук (анг. Notebook): Ноутбукот е пренослив компјутер кој е помал од
лаптоп-от со дименизии скоро колку А4-тетратка. Исто и тој ги содржи сите
компоненти како и лаптоп-от кои се интегрирани во единствено куќиште.
• Таблет (анг. Tablet): Таблетот е персонален компјутер за мобилна
употреба бидејќи е уште помал од ноутбукот, со димензии колку еден поголем
нотес заради што не користи тастатура. Кај екранот е осетлив на допир и служи и
како влезен и како излезен уред.

Сл. 9-11. Ноутбук, таблет, смарт-мобилен телефон и палмтоп


• Палмтоп (анг. Palmtop или Handheld computer): Палмтопот е многу мал
компјутер исто така за лична употреба, но со големина колку една човечка
дланка, кој исто како и таблетот е без тастатура и со екран кој е осетлив на
допир. Овие компјутери денес се истиснати од употреба и не се произведуваат
бидејќи нивното место целосно го завзедоа паметните (анг. smart) телефони.
На сл. 9-11, на една работна маса, се прикажани ноутбук компјутер, над
него палмтоп, и покрај него таблет. Палмтопот е PDA (personal digital assistant).
• Работната станица (анг. Workstation) е десктоп компјутер кој што е
поврзан во мрежа со други компјутери, како што е прикажано на сл. 9-12. Во овој
контекст, работната станица е само генерички термин за компјутер кој е
предвиден за работа во мрежа за еден корисник (анг. client). За разлика од него,
компјутерот кој е сервер (анг. server) ги опслужува сите овие клиентски станици
заради што неговите можности во поглед на брзината на работа, капацитетот и
моќноста се поголеми од оние на работните станици.
Основи на микрокомпјутери 473

Сл. 9-12. Мрежа со компјутери


9.4.2. Мини компјутери
Миникомпјутерите (анг. Minicomputers, Mid-range servers) имаат поголем
мемориски капацитет и поголема брзина на работа од микро компјутерите. Иако
се насловени како мини (сл. 9-13), овие „машини“ може да се користат за научно-
истражувачи цели и процесирање на податоци од помал обем. Тоа се и серверски
компјутери со средна големина, со не многу голем и обемен опсег на работа.
Сепак, поимот мини не треба да се сфати на начин на кој повеќето од нас
помислуваат кога ќе слушнат за него. Имено, тоа се компјутери со средна
големина кои располагаат со податоци и програми достапни за одредена група на
корисници врзани во мрежа.

Сл. 9-13. Три модели на миникомпјутери


Според големината и моќта, мини-компјутерите се наоѓаат помеѓу
работните станици и големите компјутери. Генерално земено, мини-компјутерот
може едновремено да поддржува од неколку до стотина корисници. Во
изминатата деценија во поглед на перформансите, како да се изгуби разликата
помеѓу помалите мини-компјутери и работните станици. Исто така во овој
временски период, некако се поклопија перформансите на големите мини-
компјутери со помалите големи компјутери.

9.4.3. Големи компјутери


Големите или главните компјутери (анг. Mainframe Computers) се оние
компјутери (сл. 9-14) кои ги набавуваат големите корпорации и банките, а покрај
нив и министерствата, поголеми владини служби, како и други институции со
многу голем број на вработени.
474 Основи на микрокомпјутери

Тоа се многу моќни мултипроцесорски компјутерски системи кои се


користат за складирање и чување на голема количина на податоци и програми,
достапни на поголема група на корисници. Тие се прилично големи и доста скапи
компјутери кои може да поддржуваат стотици или дури илјадници корисници
истовремено.

Сл. 9-14. Различни модели на големи компјутери


Големите компјутери се дизајнирани да работат со многу големи брзини и
многу голем мемориски капацитет, како на примарната така и на секундарната
меморија, така што се користат и за апликации со обемни графички пресметки, но
и за големи научно-истражувачки проекти. Во хиерархијата на компјутери, која
започнува со наједноставниот таблет-микрокомпјутер на дното и се движи до
супер компјутерите на врвот, големите компјутери се веднаш под супер
компјутерите.

9.4.4. Супер компјутери


Супер компјутерите (анг. Super Computers) се екстремно моќни
компјутери кои се користат за многу сложени и комплексни пресметки со огромен
обем на работа. Ова се најголемите и најмоќните типови на компјутери на
земјината топка (сл. 9-15). Воедно тие го имаат приматот и во поглед на брзината
и во поглед на цената како најбрзи и најскапи компјутери. Супер компјутерите се
користат за специјализирани апликации кои бараат огромни количини на
математички и други пресметки какви што се потребни за предвидување на
временските прилики.
Карактеристична е и примената на супер компјутерите за научно-
истражувачка работа поврзана со нуклеарната енергија, потоа за испитување на
вселената, за обработка на огромни количини на податоци заради безбедносни
причини, кои се однесуваат на полициски и воени бази на податоци на ниво на
држава, и сл.
Главната разлика помеѓу супер компјутерот и големиот компјутер е таа што
супер компјутерот ја канализира целата своја моќ во што е можно побрзо
извршување на неколку програми со огромни брзини во затворен систем, додека
големиот компјутер ја користи својата моќ за истовремено извршување на
поголем број програми кои опслужуваат голем број корисници.
Основи на микрокомпјутери 475

Сл. 9-15. Два примери на супер компјутери


9.5. НИВОА НА АПСТРАКЦИЈА
Современите компјутери се исклучително комплексни системи реализирани
со голем број на електронски компоненти и полупроводнички интегрирани кола
кои внатрешно содржат милиони транзистори. Нив од една страна потајно им се
восхитуваме заради брзината со која обработуваат огромен број на податоци за
краток временски период, а од друга страна се прашуваме како е тоа можно кога
сите знаеме дека компјутерите го „разбираат“ исклучиво само „јазикот“ на
Буловата алгебра, кој користи само две логички вредности: 1-а и 0-а. Сигурно
секој од нас, барем еднаш, се запрашал како работат компјутерите. Од тука се
наметнува и предизвикот поедноставно и појасно да се објасни структурата на
компјутерите, нивните градбени компоненти, како и да се изврши анализа на
нивната работа и функционирање.
Хиерархиската природа на сложените системи е од суштинско значење како
за нивното опишување, така и за нивната анализа и дизајнирање. Заради тоа
изучувањето на компјутерската техника се базира на различни нивоа на
апстракција и на нивната хиерархија (сл. 9-16). Во врска со наведеното, во
зависност од претходните знаења, а заради полесно разбирање на суштинските
концепти, оној што ја изучува оваа проблематика во поголеми детали, треба да се
справува само со одредено ниво на компјутерскиот систем, а не со целиот систем
наеднаш. При тоа, на секое ниво, системот може да се претстави како множество
составено од различни компоненти, поврзани со соодветни врски.

Сл. 9-16. Нивоа на апстракција и нивната хиерархија


Однесувањето на секое ниво зависи само од поедноставената, апстрактната
карактеризација на системот од пониското ниво. Оние што се заинтересирани за
продлабочување на своите знаења во домен на компјутерската техника треба да
се фокусираат и на структурата и на функцијата на компјутерот како систем.
476 Основи на микрокомпјутери

Ова важи во секој случај, и на секое ниво, бидејќи компоненти од


повисокото ниво кое се изучува дефинитивно произлегуваат од оние во
пониското, но секако тие се меѓусебно различни:
 Структурата го објаснува начинот на кој компонентите се меѓусебно
поврзани, додека
 Функцијата го претставува начинот и принципот на работа на секоја
поединечна компонента како дел од таа структура.
Кажано наједноставно, нивоата на апстракција ни помагаат постапно
изучувајќи едно по едно ниво, да сфатиме и да разбереме како компјутерите
работат од највисокото ниво на апликативни програми, па надолу, се до
најниското ниво на електронски елементи. Но и обратно, од долу нагоре.
Компјутерската архитектура се наоѓа некаде во средните нивоа каде се
спојуваат двете во основа многу различни погледи и нивоа на апстракција:
нивото на софтверот и нивото на хардверот. Архитектурата на компјутерите од
една страна е блиска до програмерскиот поглед врз хардверот, поточно до
програмирањето во асемблерски јазик како нижи програмски јазик, додека од
друга страна е блиска до логичкиот дизајн и организациските аспекти на самиот
хардвер.
Во тематските целини што следат, преку методските единици опфатени во
нивни рамки ќе се запознаеме и ќе ги анализираме од архитектонски аспект
хардверските компонентите кои влегуваат во состав на компјутерот, како и
начинот според кој тие меѓусебно се поврзуваат. Се разбира дека при тоа ќе го
имаме во вид и како основа, познавањето на нивните градбени компоненти и
нивното однесување и функционирање од пониското, организациско ниво.
Покрај тоа ќе треба да разбереме како програмите напишани во
асемблерски јазик кој е разбирлив за човекот се трансформираат во машински
програми на јазик кој е разбирлив за машината (компјутерот). Ќе ја разгледаме и
анализираме поврзаноста помеѓу софтверот и хардверот. На кој и каков начин и
според кои принципи софтверот го управува и води хардверот да ги изврши
операциите содржани во програмските инструкции.

9.6. СТРУКТУРА И ФУНКЦИОНИРАЊЕ НА КОМПЈУТЕРОТ


Во суштина, ако ја имаме предвид сл. 9-17, за функционирањето на
компјутерот, би можеле да кажеме дека тоа е прилично едноставнo. На сликата се
прикажани во најопшт случај четирите основни функции кои компјутерот може да
ги изврши, а тоа се:
 Пренесување (трансфер) на податоци: нивно читање, прифаќање, или
примање и нивно запишување или испраќање,
 Обработка на податоци,
 Запамтување (меморирање) на податоци, и
 Контрола и управување.
Од друга страна на сл. 9-18 е дадена внатрешната структура на самиот
компјутер која е слична со претходната во поглед на едноставноста. И на оваа
слика се воочуваат четири главни структурни компоненти, кои се појаснети
понатаму.
Основи на микрокомпјутери 477

Сл. 9-17. Начин на Сл. 9-18. Внатрешна структура на компјутерот со


функционирање на компјутерот неговите главни структурни компоненти

Влезно/Излезни единици:
 Преку влезниот блок, кој ги претставува влезните компоненти и уреди,
компјутерот добива изворни, влезни, необработени податоци. Ваквите
податоци вообичаено ги внесува човекот и тоа во облик на текстови,
броеви, слики, и сл. Преку влезната единица во компјутерот се внесуваат и
инструкциите од програмите кои ќе треба да бидат извршени.
 Излезниот блок ги претставува надворешните компоненти и уреди до кои се
испраќаат податоците, добиени како резултати од нивната обработка, со
цел да бидат видени од страна на човекот кој го користи компјутерот.
Централен процесор:
 Со централната процесорска единица компјутерот ги обработува
податоците, извршувајќи ги со нив операциите зададени во инструкциите
на програмот којшто се извршува. Процесорот е дигитална интегрирана
компонента која може да ги презема инструкциите од меморијата во
бинарна форма и да ги декодира, да ги чита влезните податоци од
меморијата или да ги прифаќа од влезните компоненти, и со нив да ги
изврши аритметичко-логичките операции зададени во инструкциите, како и
да ги запишува резултантните податоци во меморијата или да ги испраќа
до излезните компоненти.
Работна меморија:
 Мемориската единица содржи компоненти кои можат да ги памтат
податоците кои треба да бидат обработени од страна на процесорот како и
програмите кои влезните податоци по обработката ги трансформираат во
резултати како излезни податоци. Вообичаено мемориската единица
содржи ROM и RAM мемориски интегрирани кола.
478 Основи на микрокомпјутери

RAM мемориските кола се користат за да се реализира оперативната


меморија на компјутерот бидејќи за време на работата содржината запамтена во
RAM-чиповите може да се чита, но и да се менува со запишување на нова.
Во ROM меморијата се запамтени програми и податоци кои не смеат да се
менуваат. Таков е на пр. системскиот софтвер наречен основен влезно/излезен
систем (анг. BIOS) кој се вклучува со секое пуштање во работа на било кој
компјутер.

Системска поврзаност:
 Станува збор за механизам којшто овозможува комуникација помеѓу
процесорот, главната меморија и В/И компонентите. Стандарден и
вообичаен пример за интерконекција е системската магистрала, која се
состои од множество на проводни линии реализирани со прилично тенки
бакарни водови на кои се поврзуваат сите други компоненти.

9.7. СИСТЕМ НА МАГИСТРАЛИ


За да може да комуницира и така да разменува податоци со периферните
компоненти како што се В/И портите и мемориските интегрирани кола,
микро/процесорот се поврзува на нив со посебни жичани врски. Тие
овозможуваат пренос на дигитални електрични сигнали кои може да се најдат
само во една од две можни состојби и тоа високо или ниско напонско ниво, VH
(VHIGH)=+5V или VL (VLOW)=0V, заради што нивните вредности се прикажуваат во
бинарен облик со 1-а за високо, односно со 0-а за ниско напонско ниво.
Соодветнo на ова, должината на податоците кои се пренесуваат е изразена во
битови, при што секој податок e претставен со конечен број на битови кој се
изразува во бајти при што еден бајт содржи осум бита (1B = 8b). Трансферот се
остварува симултано во единица време дефинирана со работниот такт на
процесорот во паралелен облик: секој од осумте битови на податокот се
пренесува едновремено со другите.
Бидејќи комуникацијата се остварува по електричен пат, со поставување на
високи или ниски напонски нивоа, кои одговараат на логичките состојби 1 и 0,
како врски меѓу компонентите на микропроцесорскиот (МКП) систем се користат
проводници кои практично се фабрикуваат како многу тенки бакарни водови.
Овие проводници се поделени во повеќе групи од кои секоја има своја
специјализирана намена. Секоја проводна жица, во било која од групите
вообичаено се нарекува линија или вод, и преку неа, во даден момент може да се
пренеси само еден бит бидејќи напонското ниво на таа линија може да биде или
високо +5V за логичка 1-а, или ниско 0V за логичка 0-а. Множеството на линии во
една група во која секој од водовите има истородна намена се нарекува
магистрала (сл. 9-19). На овој начин врските во секој МКП систем се реализираат
со систем на магистрали. Магистралната организација на секој МКП систем се
состои од три типа на магистрали и тоа: адресна, податочна и контролна магис-
трала. Секоја магистрала го добила своето име според видот на сигналите кои се
разменуваат по таа магистрала и според информациите кои во нив се содржат.
Основи на микрокомпјутери 479

Сл. 9-19. Апстрактен и подетален апстрактен поглед на една магистрала


Заедно сите три магистрали ја претставуваат системската магистрала на
еден МКП систем (сл. 9-20), која во целост ја овозможува комуникацијата помеѓу
МКП и надворешните компоненти како негова периферија.

Сл. 9-20. Систем на магистрали

9.7.1. Податочна магистрала


Податочната магистрала (ПМ, анг. Data bus, DB) е двонасочна и бројот на
нејзините линии зависи од тоа која е максималната ширина на податокот изразена
во битови. Тоа се битовите што процесорот може паралелно да ги прифати и
обработи во единечен временски интервал. Овој број на битови го дефинира
бројот на водови на податочната магистрала и воедно ја претставува должината
на зборот на микро/процесорот. Како единечен временски интервал во
терминологијата на компјутерската техника вообичаено се зема времетраењето на
еден такт период од такт-сигналот според кој се синхронизира работата на
процесорот и на сите други компоненти во состав на микро/компјутерскиот
систем. Такт сигналот претставува бесконечна низа на напонски импулси и паузи
со еднакво времетраење кои периодично се повторуваат.
Преку податочната магистрала процесорот од оперативната RAM меморија
добива инструкции за тоа кои операции треба да ги изврши, потоа од меморијата
чита или од некоја влезна порта прифаќа влезни податоци, а исто така преку неа
во оперативната RAM меморија ги запишува пресметаните резултати или истите
ги испраќа до некоја излезна порта.
480 Основи на микрокомпјутери

Оваа магистрала се користи за пренос на податоци како од/кон


мемориските, така и од/кон В/И компоненти кои се поврзани со МКП. Кога го
употребуваме податокот како поим во контекст на податочната магистрала треба
да знаеме дека тој има поширок контекст. Имено, по оваа магистрала се
пренесуваат „пасивни“ податоци кои се операнди на некоја операција што МКП
треба да ја извршува во рамките на тековната програмска инструкција, или на
резултатите од неа, но исто така по неа процесорот презема и „активни“ податоци
од меморијата, а тоа се кодовите на операцијата, кои се содржани во самите
инструкции.
Пасивните податоци може да се влезни и со нив се извршува операцијата
зададена во инструкцијата, или да се излезни во форма на резултати добиени по
извршувањето на операцијата. Влезните податоци се читаат од некоја адресирана
мемориска локација или влезна порта, додека излезните се запишуваат во некоја
друга локација или излезна порта.
За разлика од „пасивните“ податоци, кодот на операција може да се смета
како „активен“ податок. Тој се сместува во посебен инструкциски регистер во МКП
од каде потоа се декодира со посебна логика. Врз основа на тоа до контролната
единица која исто како инструкцискиот регистер и декодерот на инструкции е во
состав на МКП, се испраќаат сигнали која понатаму генерира соодветни
внатрешни и надворешни контролни и управувачки сигнали за да ја изврши
бараната операција, а со тоа и тековната програмска инструкција.
Оттука интуитивно станува јасно дека прво од меморијата по податочната
магистрала МКП го пре/зема „активниот“ податок т.е. кодот на операција на
тековната инструкција која се извршува и внатрешно го декодира. Потоа по истата
магистрала ги зема и „пасивните“ податоци кои треба да бидат обработени според
декодираниот код на операција со што ќе се комплетира извршувањето на
инструкцијата.
Значи, да заклучиме, по податочната магистрала се пренесуваат два
различни вида на податоци:
 кодови на операција како „активни“ податоци кои во себе содржат
инфомација за тоа која операција треба МКП да ја изврши, но и
 „пасивни“ влезни податоци со кои се извршува таа операција, или
„пасивни“ излезни резултантни податоци добиени по обработката.
Во врска со ова, исто така интуитивно станува јасно дека кодовите на
операција само се читаат од меморијата и во тој случај податочната магистрала е
влезна, додека кога МКП работи со податоци кои се поврзани со извршување на
некоја операција оваа магистрала може да биде влезна кога МКП ги чита или
прифаќа потребните влезни податоци, односно излезна кога МКП ги запишува или
ги испраќа резултатите како излезни податоци по завршувањето на инструкцијата.
Токму заради ова, податочната магистрала по својата природа е двонасочна
(бидирекционална), бидејќи по неа се трансферираат податоци во две насоки, но
во различни временски моменти.
Во секој случај, заради паралелниот начин на пренос и бројот на водови на
податочната магистрала за кој ќе претпоставиме дека изнесува 8 линии, ниту еден
код на операција или податок кога се пренесува во единечен временски интервал
преку неа не може да биде поширок од 8 бита т.е. 1 бајт (1B = 8b).
Основи на микрокомпјутери 481

9.7.2 Адресна магистрала


Адресната магистрала (AM, анг. Address bus, AM) е излезна и еднонасочна
(унидирекционална) бидејќи состојбата на нејзините водови ја дефинира микро-
процесорот. Тој адресните битови во облик на електрични сигнали ги поставува
на нејзините линии и со тоа во даден момент адресира некоја мемориска локација
во избран RОM мемориски чип или селектира одредена периферна компонента со
која ќе разменува податоци: дали тоа ќе биде влезна или излезна порта.
Попрецизно земено, некои од адресните линии се поврзуваат на декодерско
интегрирано коло, или декодерска логика чии излези се поврзани на
надворешните компоненти. По декодирањето на адресната информација се
активира само еден од излезите на декодерот и со тоа за комуникација се избира
само адресираната надворешна компонента. За бројот на водовите на адресната
магистрала ќе претпоставиме дека изнесува 16, а со тоа ја дефинираме и
ширината на оваа магистрала.

9.7.3 Контролна (управувачка) магистрала


Како што и самото име сугерира, контролната магистрала (KM, анг. Control
bus, CB) се применува од страна на МКП за контрола и управување со неговата
периферија. Таа содржи линии кои имаат различна намена при што секоја од нив
има своја специјализирана функција. Преку нив, пренесувајќи, добивајќи и
испраќајќи, контролни битови или сигнали, МКП ги контролира, управува и
временски ги координира и ги усогласува т.е. синхронизира, своите внатрешни
операции со однесувањето на различните периферни компоненти кои се поврзани
на него: мемориските интегрирани кола и влезно/излезни (В/И) порти.
На контролната магистрала и припаѓаат контролните сигнали за читање,
односно запишување во меморија или В/И компонента, но и сите потребни
сигнали за временско усогласување и за синхронизација на нивната работа со
МКП. Тука се вклучени и оние сигнали со кои екстерните компоненти бараат и
добиваат одобрување на прекин, бараат и добиваат прифаќање за директен
мемориски пристап, и некои други. За линиите од контролната магистрала може
да се каже дека тие се еднонасочни, но што е многу важно, некои од нив се
излезни од МКП кон периферијата, а другите се еднонасочни во обратна насока од
периферијата кон МКП.
Ваквиот концепт е суштински различен од сигналите присутни на другите
две магистрали. Водовите на адресната магистрала кои ги носат адресните
сигнали или битови, се исто така еднонасочни, но сите се излезни од МКП и
насочени кон периферијата. Од друга страна линиите на податочната магистрала,
на која се јавуваат кодовите на операција или податоците, се двонасочни, но сите
заедно во даден временски момент се или влезни од екстерните компоненти кон
процесорот, или сите заедно се излезни од процесорот кон периферијата.
Заради важноста на концептот, на сл. 9.21 е повторно прикажана
магистралната организација на еден МКП систем во општ случај, во кој главната
улога секако ја има микро/процесорот (МКП).
482 Основи на микрокомпјутери

Сл. 9-21. Контролна, адресна и податочна магистрала

9.8 ОПШТ МИКРОПРОЦЕСОР


Централна процесорска единица (ЦПЕ) која е „мозокот“ на дигиталниот
компјутер е неговиот најважен хардверски дел бидејќи може да ги извршува
инструкциите на програмот кој е запамтен во работната меморија на компјутерот.
Централниот процесор овозможува компјутерот да биде програмабилна машина.
Процесорот од оперативната меморија ги презема програмските инструкции, потоа
од неа ги чита или од влезните компоненти ги прифаќа влезните податоци, ги
извршува аритметичко-логичките операции со нив и излезните резултати ги запи-
шува повторно во меморијата или ги праќа до излезните компоненти. За да може
да ја извршува својата функција централниот процесор ги има следниве три
функционални составни блокови: единицата за извршување на аритметичко-
логички операции, единицата за контролирање и временско усогласување, како и
множеството на регистри за општа и специјализирана намена.
Во минатото, централните процесорски единици беа изработувани во
дискретна техника со поединечни интегрирани кола со мал степен на интеграција,
со транзистори и други електронски елементи, взаемно поврзани на единствена
печатена плочка. Со развојот и напредокот на технологијата на изработка на
интегрирани кола, сѐ повеќе логички кола се сместуваа во еден чип, степенот на
интеграција се зголемуваше, така што во 70-тите години од 20-иот век стана
возможно производството на централниот процесор со сите потребни компоненти
за негово правилно функционирање на единствено интегрирано коло (ИК)
наречено микропроцесор. После ова, започна масовното производство на микро-
процесорите за комерцијални цели, а меѓу попознатите од тој временски период
се двата 8-битни микропроцесори на компаниите Интел (8080/8085) и Моторола
(MC 6800) пакувани во 40-пинско DIP-куќиште претставени на следната сл. 9-22.

Сл. 9-22. Осум-битни микропроцесори на компаниите Моторола и Интел


Основи на микрокомпјутери 483

Од тогаш па до денес, во современите персонални компјутери кои секој-


дневно ги користиме, микропроцесорот како единствено интегрирано коло се
монтира на матичната плоча на компјутерот. Денешните микропроцесори се
дигитални интегрирани кола изработени во многу висок степен на интеграција со
кои всушност се имплементира централната процесорска единица на секој
компјутер. Заради тоа поимите процесор и микро-процесор станаа синоними.
Трите базични функционални блокови кај микропроцесорот се фабрикувани
во единствен чип и сместени во соодветно куќиште, со што се добива МКП
интегрирано коло. МКП е комплексно дигитално ИК, кое во својот состав содржи
голем број најразлични комбинациски и секвенцијални елементи и компоненти
изведени во интегрирана техника: основни логички кола, кодери и декодери,
мултиплексери и демултиплексери, потоа флип-флопови, регистри, бројачи, итн.
Секој МКП има свое множество на инструкции кои може да ги извршува и со
кои ги обработува влезните податоци согласно инструкците кои тековно ги
извршува. Резултатите пак од пресметките ги испраќа до мемориските
интегрирани кола (ИК-а) и/или излезните компоненти поврзани на него. Начинот и
принципот според кој МКП ја извршува обработката на податоците: аритметичко-
логичките операции, нивниот пренос и разменување со периферијата, е
определен од неговиот логички дизајн, и токму овој логички дизајн е познат како
архитектура на МКП. Во врска со кажаното, секој МКП, во општ случај, се
карактеризира со својата брзина на работа, должината на зборот, архитектурата и
инструкциското множество. Во следната тема ќе се фокусираме на архитектурата
на еден општ МКП, неговите операции, внатрешната архитектура, функцискиот
опис, генерирањето на контролните сигнали, како и принципот според кој тој
извршува даден програм.
Компјутерите кои се дизајнирани со имплементирање на микропроцесор
претставуваат микрокомпјутери. Според денешната современа класификација и
терминологија во класата на микрокомпјутери припаѓаат различните типови на
преносливи десктоп, лаптоп и ноутбук персонални компјутери.

9.9 ОСНОВЕН МИКРОКОМПЈУТЕР И МИКРОПРОЦЕСОРСКИ СИСТЕМ


Денешните микрокомпјутери се со многу посложена и покомплексна
хардверска структура и со многу поголеми можности за извршување на секакви
софтверски пакети во однос на микрокомпјутерите од пред 30-тина и повеќе
години кога тие за прв пат се појавија на пазарот. И покрај тоа, во фокусот на
анализирање и изучување на архитектурата на микрокомпјутерите, во светската
литература и современите едукативни системи во домен на компјутерските науки,
вообичаено како централна градбена компонента која се применува е
поедноставен микропроцесор каков што се користел на почетокот на развојот на
микрокомпјутерите, во периодот помеѓу 1975 и 1980 година.
Слично на тоа, како општ микропроцесор (ОМП) околу кој ќе се поврзуваат
останатите влезно/излезни и мемориски компоненти заради формирање на
поедноставен микропроцесорски систем, или микрокомпјутер, ние ќе користиме
упростен 8-битен микропроцесор кој е хардверски и софтверски, многу близок до
реалните 8-битни микропроцесори кои беа познати и многу користени во
практиката во минатото: Intel 8080, Intel 8085, Zilog Z80 и Motorola MC6800, но
сепак е доста поедноставен во однос на нив.
484 Основи на микрокомпјутери

Поконкретно, „нашиот“ ОМП е најблизок сродник на Intel-овите микро-


процесори 8080 и 8085 од кои посебна важност има 8085-ката која иако е
пуштена во комерцијална продажба официјално уште во 1976-тата година, таа
сеуште се произведува, иако сега е 2019 год., и сеуште наоѓа своја практична
примена.
Изборот на ваков прилично едноставен МКП е со единствена цел учениците
полесно да ги разберат основните концепти за поврзување на мемориски
интегрирани кола и влезно/излезни порти реализирани со посебни баферски и
леч-интегрирани кола, во едноставен МКП систем. Секако, со тое ќе се олесни и
пристапот кон разбирање на програмирањето во асемблерски јазик.
Кај „нашиот“ основен микропроцесорски систем (сл.9-23) блокот на примар-
ната меморија се реализира со поврзување на мемориски чипови на општиот
микропроцесор. Станува збор за полупроводнички интегрирани кола со случаен
пристап (анг. Random Access Memory, RAM), чија содржина на мемориските
локации може само да се чита, како на пр. различни видови на ROM (Read Only
Memory) чипови: PROM или OTP ROM, EPROM или UVEPROM, EEPROM, Flash, или
RAM-чипови, чија содржина може да се чита, но може и да се менува со
запишување на нова (анг. RWM, Read/Write Memory). На секоја мемориска
локација која му припаѓа на било кој тип од наведените мемориски ИК-а,
микропроцесорот и пристапува директно за исто време.

Сл. 9-23. Основен микрокомпјутер и микропроцесорски систем


RAM мемориските кола, како и во секој друг микрокомпјутерски систем и
овде се користат за да се реализира оперативната, или како што уште се
нарекува, работната, или главната меморија. На податоците запамтени во
работната меморија процесорот може да им пристапи директно, да ги чита
запамтените, или да запишува нови, заради што RAM-чиповите припаѓаат во
групата на RWM мемориски интегрирани кола. Во нив се сместуваат сите
кориснички програми, влезните податоци и резултатите од обработката сѐ додека
компјутерот работи и ги извршува програмите. Со исклучување на напојувањето
целата содржина на RAM чиповите се брише.
Основи на микрокомпјутери 485

Сл. 9-24. Различни прикази на поврзувањата кај основниот МКП систем


Во RAM мемориските кола на оперативната меморија во бинарен облик,
како мемориски зборови со иста должина изразена во битови, т.е. како содржини
во нивните мемориски локации, секоја со своја посебна адреса, се запамтуваат
инструкциите на програмот што го извршува МКП. Секоја инструкција во себе
содржи код на операција што МКП треба да ја изврши, како и операнд кој може да
биде самиот податок над кој таа операција се извршува, или адреса на
компонентата во микрокомпјутерскиот систем во која се наоѓа тој податок. За да
го изврши програмот што тековно се реализира, МКП ги чита RAM-мемориските
локации во кои се сместени инструкциите, и една по една ги извршува, така што
ги реализира соодветните операции со потребните податоци.
Содржината на најстарите ROM (анг. Read Only Memory) мемориски чипови
можеше само да се чита и НЕ можеше да се менува ниту за време на работата на
компјутерот, ниту после неговото исклучување од напојувањето заради што тие си
го добиле и своето име. Меѓутоа, во сегашноста ваквите мемориски ИК-а ги има во
повеќе изведби и варијанти кои се познати како: MaskROM (MROM, ROM), PROM
(OTP ROM), (UV)EPROM, EEPROM (или E2PROM), како и најчесто користените USB
мемориски стикови кои всушност се Flash EEPROM-и. Запамтените податоци кај
некои од ROM мемориите, како што се на пр. MaskROM (MROM, ROM) и PROM (OTP
ROM) НЕ може воопшто да се менуваат, а кај другите може.
486 Основи на микрокомпјутери

Така на пр. содржината на (UV)EPROM-от може да се избрише само со


изложување на чипот на UV-светлина одредено време и потоа да се
репрограмира, т.е. да се запише нова содржина со т.н. EPROM-програматор кога
запишувањето се изведува со приклучување на меморијата на повисоко ниво на
напојување. Содржината на EEPROM (или E2PROM) и Flash EEPROM-ите се брише и
во нив се запишува нова на едноставен начин, додека компјутерот нормално
работи, но овие чипови НЕ се користат за реализација на работната меморија.
Во ROM мемориските чипови се чуваат програми од траен карактер кои се
активираат со вклучување на компјутерот во работа, како на пр. основниот
софтвер за проверка на хардверот, или некој друг мониторски програм. Со
неговото извршување се тестира хардверската исправност на компјутерскиот
систем, за да потоа се активира оперативниот систем со што корисникот може да
му пристапи на компјутерот со своите апликативни програми кои за време на
извршувањето ја користат оперативната меморија реализирана со RAM чипови.
Овде ќе повториме дека и ROM и RAM мемориите се вушност RAM мемории
при што ROM-мемориите може само да се читааат така што тоа се ROM-RAM
чипови, додека во RAM мемориите може да се запишува и да се читаат, па така
тие се RWM-RAM чипови. Сепак, во секојдневниот живот се применуваат и се
одомаќинети скратените поими ROM и RAM.
Секундарната меморија ги содржи оние компоненти на кои процесорот не
може директно да им пристапи. Ваков секундарен мемориски уред е на пр.
единицата со тврд диск (анг. Hard Disk Drive, HDD). Секундарните мемориски
уреди ги чуваат и складираат оние податоци и програми кои по потреба, и не
секогаш, се користат од страна на процесорот. Процесорот нив ги користи така
што ги пренесува во работната меморија само ако има барање од страна на
корисникот или од страна на софтверот кој тековно се извршува. Програмите и
податоците меморирани во секундарните мемориски уреди се складираат на
подолг временски период за понатамошна работа и кога компјутерот ќе се
исклучи од напојувањето.
Покрај мемориските ИК-а, како надворешни или периферни елементи на
МКП системот, во однос на микропроцесорот, се и различните В/И единици
(порти, компоненти, склопови или уреди) преку кои процесорот добива влезни
податоци од надворешниот свет, односно преку нив ги испраќа резултатите после
извршената обработка или пресметка. Како наједноставни периферни влезни
компоненти можат да бидат на пр. 8-прекинувачи сместени во единствено
дворедно DIP куќиште или мала тастатура најчесто со 16 копчиња, додека како
излезни компоненти би биле 8-светлечки LED-диоди, или 7-сегментни екрани исто
со светлечки LED диоди.
Основи на микрокомпјутери 487

ПРАШАЊА И ЗАДАЧИ ЗА ПОВТОРУВАЊЕ


9-1. Што претставува компјутерот?
9-2. Како се делат компјутерите според видот на податоците кои ги
обработуваат?
9-3. Со какви сигнали работи дигиталниот компјутер?
9-4. Кои се четирите базични функции кои треба да ги извршува дигиталниот
компјутер?
9-5. Кои се основните компоненти на дигиталниот компјутер со кои тој ги
извршува своите основни функции?
9-6. Кои компоненти се содржани во влезно/излезната единица? Која е нивната
задача?
9-7. Која е улогата на централната процесорска единица, т.е. на процесорот?
9-8. Објасни ја улогата на оперативната меморија.
9-9. Какви сигнали обработуваат аналогните компјутери?
9-10. Врз основа на кој шримцип работат хибридните комјутери?
9-11. Како се делат компјутерите според намената?
9-12. За која цел се дизајнирани компјутерите за специфична (посебна) намена?
9-13. За што се применуваат компјутерите за општа намена? Наброј неколку
конкретни примени!
9-14. Како се класифицираат компјутерите врз база на големината и капацитетот?
9-15. Кои видови компјутери спаѓаат во микро компјутери и што е
карактеристично за нив?
9-16. Кои се карактеристиките на мини компјутерите? За што се користат?
9-17. Што е карактеристично за големите компјутери?
9-18. Каде се применуваат супер компјутерите?
9-19. Имајќи ја во вид сл. 9-16, објасни ги нивоата на апстракција и нивната
хиерархиска структура.
9-20. Имајќи ја во вид сл. 9-17, кои се четирите основни функции кои компјутерот
ги извршува?
9-21. Имајќи ја во вид сл. 9-18, наведи ги структурните компоненти на
компјутерот, а потоа во куси црти објасни ја нивната улога.
9-22. Што претставува магистралата? Какви сигнали се пренесуваат преку неа?
9-23. Од колку видови на магистрали се состои системот на магистрали на секој
микро/процесорски систем или микро/компјутер? Кои се тие?
488 Основи на микрокомпјутери

9-24. Какви сигнали се пренесуваат преку податочната магистрала? Во која


насока? Колку видови на сигнали се пренесуваат преку неа? Која е нивната
намена? Која е улогата на податочната магистрала? Објасни малку подетално.
9-25. Какви сигнали се пренесуваат преку адресната магистрала? Во која насока?
Која е улогата на адресната магистрала? Објасни малку подетално.
9-26. Какви сигнали се пренесуваат преку контролната магистрала? Во која
насока? Која е улогата на контролната магистрала? Објасни малку подетално.
9-27. Наведете краток опис на општиот микропроцесор.
9-28. Наброете ги и во куси црти објаснете ги функционалните делови на
основниот микро/компјутер и микро/процесорски систем.
9-29. Кои компоненти се содржани во мемориската единица на основниот
микро/компјутер? Која е нивната функција?
9-30. Од кои мемориски компоненти е составена примарната (оперативната)
меморија на микро/компјутерот?
9-31. Имајќи го предвид начинот и брзината на пристап до податоците, како и
можноста за нивно менување, по што се разликуваат, а по што се меѓусебно
слични RAM и ROM мемориските интегрирани кола?
9-32. Од кои мемориски компоненти е составена секундарната меморија на
микро/компјутерот? Која е нивната улога?
9-33. Имајќи го предвид начинот и брзината за пристап до податоците, како и
можноста за нивно менување, по што се во принцип меѓусебно слични
компонентите на примарната (оперативната) меморија во однос на компонентите
на секундарната меморија?
9-34. Кои компоненти се содржани во влезно/излезната единица на основниот
микро/компјутер? Која е нивната функција?
10.
АРХИТЕКТУРА НА
ОПШТ
МИКРОПРОЦЕСОР
По изучувањето на оваа тематска целина
 ќе ја познавате глобалната архитектура на општиот микропроцесор
 ќе ги знаете карактеристиките на општиот микропроцесор;
 ќе умеете да ги дефинирате податоците на општиот микропроцесор;
 ќе ја разбирате функцијата на пиновите и пин дијаграмот на
општиот микропроцесор;
 ќе знаете да ја опишете архитектурата на општиот микропроцесор;
 ќе умеете да ја објасните употребата на регистрите за општа и
специјална намена кај општиот микропроцесор;
 подетално ќе се запознаете со фазите на извршување на
инструкциите, и
 со временските циклуси за извршување на инструкциите;
490 Архитектура на општ микропроцесор
Архитектура на општ микропроцесор 491

Вовед
Во оваа тематска целина во поголеми детали ќе се запознаeме со
архитектурата на општиот микропроцесор. Општиот микропроцесор (ОМП) (анг.
general microprocessor unit, GMP) е 8-битна софтверски програмабилна дигитална
компонента за општа употреба. ОМП е 8-битна компонента бидејќи во единечен
временски интервал може едновремено да пренесува и/или обработува 8 битни
податоци на паралелен начин, процесирајќи ги одеднаш сите нив како единствена
8-битна дигитална содржина. Кога говориме за дигитална обработка на податоци
не треба да заборавиме дека дигиталните системи работат само со дигитални
електрични сигнали кои може да се најдат во едно од две напонски нивоа и тоа
високо од +5V (Vhigh, VH, H) или ниско од 0V (Vlow, VL, L). Овие напонски нивоа се
физички репрезенти на битовите кои можат да примат една од следните две
логички состојби: 1 или 0.
На почетокот ќе се задржиме на функционалната блок шема и ќе ја
анализираме улогата на секоја функционална единица која влегува во нејзин
состав. Потоа ќе го презентираме пин дијаграмот на ОМП ставајќи го фокусот врз
улогата на секој негов пин. На крај ќе ги анализираме фазите на извршување на
асембелерските инструкции во општ случај, како и сигналите кои се активни за
реализација на секоја фаза, вклучувајќи ја и нивната временска усогласеност и
синхронизација со работниот такт на процесорот.

10.1. Податочна и контролна единица


За да ја остварува својата основна функција, а таа наједноставно кажано е
да ги презема, декодира и извршува програмските инструкции од оперативната
меморија, микропроцесорот во својот состав треба да содржи одредени
функционални единици кои поврзани во соодветна структура ќе овозможат негова
правилна работа. Така, секој микропроцесор, во општ случај, може да се смета
дека е составен од два мeѓусебно поврзани функционални блокови: податочна
патека (податочнa единица, податочен пат, анг. Datapath, Data Unit) и контролна
единица (анг. Control Unit, Control Path).

Податочниот пат ги содржи сите


оние функционални единици на ОМП
кои ги извршуваат аритметичките и
другите операции со податоци-те,
како и компонентите во кои при-
времено, за многу краток период, се
памтат податоците за да бидат
обработени.
Податочниот пат ја опфаќа и
внатрешната магистрала која прет-
ставува множество многу тенки
проводници кои ги поврзуваат
претходно наведените фукционални
единици и со тоа овозможуваат
пренос на податоците во процесорот
Сл. 10-1. Наједноставна блок-шема на МКП за време на нивната обработка.
492 Архитектура на општ микропроцесор

Како компоненти на податочниот пат ПП ќе ги наведеме: аритметичко-


логичката единица (АЛЕ) (анг. Arithmetic-Logic Unit, ALU), потоа различните
комбинациски кола: де/мултиплексери, де/декодери и сл, но и различните типови
на секвенцијални кола, како што се регистрите и бројачите. АЛЕ е посебно важен
функционален блок, кој го издвојуваме бидејќи ги извршува аритметичко-логич-
ките операции и со тоа ги обработува и модификува влезните податоци во
излезни резултантни податоци. Останатите компоненти во поголеми детали ќе
бидат објаснети во текстот што следува.
Контролната единица е оној функционален блок кој го контролира и
управува извршувањето на операциите во процесорот, но и на периферните
компоненти поврзани на него. Овој блок ги контролира единиците на податочниот
пат, но исто така и надворешните компоненти поврзани во МКП систем како што
се мемориските и влезно/излезните уреди. Наједноставно кажано, контролната
единица „командува“ со однесувањето на податочната патека, меморијата и
надворешните В/И компоненти соодветно на инструкциите на програмот кои
процесорот ги извршува. Контролната единица раководи со протокот и
обработката на податоци внатре во процесорот и со преносот на податоци помеѓу
процесорот и периферните уреди. Управувањето со функционалните единици
контролната единица го прави со обезбедување и испраќање на соодветни
сигнали за контрола и временско усогласување. Во продолжение ќе ја анализира-
ме функционалната блок шема на ОМП и на нејзините функционалните единици.
10.2. Функционална шема на општиот микропроцесор
Во состав на податочниот пат на општиот микропроцесор влегува
аритметичко-логичката единица, потоа множеството на регистри кое содржи
повеќе регистри со најразлична намена, како и единиците за контрола на прекини
и сериски пренос на податоци. Тука секако припаѓа и внатрешната 8-битна
магистрала како главна комуникациска патека, која претставува множество на
проводници и ги поврзува сите функционални делови на процесорот. Контролната
единица ги содржи: инструкцискиот регистер, инструкцискиот декодер со кодерот
на машински циклуси и единицата за контрола и временска синхронизација.
Имајќи ја пред себе функционалната блок шема на ОМП која е прикажана на
сл.10-2 ќе ги наброиме и во кратки црти ќе се задржиме и ќе ја осветлиме улогата
на основните функционални делови на ОМП.
10.2.1. Баферски регистри
За да изврши трансфер на податоци со периферните компоненти кои се
поврзани со него, ОМП им пристапува на истите така што ги адресира,
поставувајќи конкретни адресни битови на адресната магистрала и испраќајќи
соодветни контролни сигнали. Потоа потребниот податок го прифаќа, односно го
испраќа на податочната магистрала. За оваа цел, ОМП содржи два регистри:
едниот од нив е 16-битниот адресен бафер регистер (анг. MAR, Memory Address
Register) кој е поврзан на адресните пинови, додека другиот е 8-битниот
податочен бафер регистер (анг. Memory Data Register, MDR) кој е поврзан на
податочните пинови од ОМП. Со овие два регистри се остварува приклучување на
ОМП на надворешните магистрали: со адресната 16 – битна и со податочната 8
битна од една страна, како и со внатрешната 8-битна магистрала од друга страна.
Токму адресниот MAR и податочниот MDR бафер регистер ја овозможуваат
комуникацијата на ОМП со компонентите од надворешниот свет.
Архитектура на општ микропроцесор 493

Сл. 10-2. Функционална блок-шема на ОМП


494 Архитектура на општ микропроцесор

Преку внатрешната 8-битна


магистрала во адресниот регистер
MAR се внесуваат адресни битови од
регистрите на ОМП, кои се
поставуваат на адресната магистрала
и со тоа му овозможуваат на ОМП да
адресира одредена мемориска
локација во едно од меморските
интегрирани кола или пак да адресира
некоја конкретна В/И порта.
Самиот бајт којшто треба да се
запише во, или да се прочита од
адресираната мемориска локација или
од некоја В/И порта се внесува во
податочниот регистер MDR.
Сл. 10-3. Бафер регистри кај ОМП
Ако прочитаниот бајт е код за некоја операција која ОМП треба да ја
изврши, тој бајт се пренесува до инструкцискиот регистер (IR) (анг. Instruction
Regsiter), но ако е влезен податок тој може да се пренесе до некој од другите
регистри на процесорот. Во податочниот регистер MDR се пренесува и резултатот
од некој од другите регистри во ОМП, кој како излезен податок ќе биде испратен
до aдресиранaта надворешна компонента: мемориско коло или излезна порта, па
запишан во неа.
10.2.2. Инструкциски регистер, декодер на инструкции со кодер на
машински циклуси и единица за контрола и временска синхронизација
Инструкцискиот регистер е исклучително важен 8-битен регистер бидејќи во
него се сместува кодот на операција на инструкцијата која што процесорот ја зема
од работната меморија и која што треба да ја изврши. Инструкцискиот декодер ја
декодира содржината на IR и испраќа контролни сигнали до кодерот на машински
циклуси. Врз основа на добиените сигнали од декодирањето, кодерот на
машински циклуси испраќа соодветни сигнали до единицата за контрола и
временско усогласување (синхронизирање).
Единицата за контрола и временска синхронизација (анг. Control and timing
unit) го претставува „мозокот“ на процесорот. Единицата за контрола и временска
синхронизација ги прифаќа сигналите испратени од кодерот на машински
циклуси, а покрај нив и прима и други внатрешни и надворешни сигнали на
состојба. Врз основа на нивните вредности, оваа функционална единица испраќа
излезни внатрешни и надворешни сигнали чија улога во продолжение ќе биде
објаснета во најкуси црти, а во следната методска единица во поголеми детали.
Едни од влезните сигнали од неговата надворешна околина доаѓаат до
единицата за контрола и временска синхронизација се сигналот READY и сигналот
BUSRQ. Со сигналот за спремност READY некоја мемориска или В/И периферна
компонента му укажува на процесорот дека и треба дополнително време за да
испрати или да прифати податок на начин што сигналот READY го поставува на
ниско напонско ниво. Вообичаено, кога нема потреба од дополнително време,
линијата READY треба да се наоѓа на високо напонско ниво со што компонентата
Архитектура на општ микропроцесор 495

покажува дека е спремна за трансфер на податоци и нема потреба од чекање.


Кога надворешната компонента поврзана на ОМП преку сигналот за барање
контрола над магистралите BUSRQ (анг. Bus Request) испрати високо ниво таа
бара директен пристап до оперативната RAM меморија на мкп системот.
Покрај овие два влезни сигнали, на контролната единица се поврзува и такт
сигналот CLK (анг. Clock). Такт сигналот CLK временски ја синхронизира и
ускладува работата на сите внатрешни и надворешни компонети во системот. Тоа
е периодичен сигнал кој непрекидно повторува низа на правоаголни импулси со
високо напонско ниво Vcc=+5V и паузи со ниско ниво од 0V со еднакво
времетраење и периода на повторување Т0=1 us, т.е. фреквенција f0=1MHz. Од
логички аспект, тоа е непрекината низа на 1-и и 0-и.
На контролната единица се приклучува и
влезниот сигнал за хардверско ресетирање на
процесорот RSTIN (анг. Reset in) со чие
активирање ако се спушти на ниско ниво,
процесорот влегува во првобитна, почетна
состојба. Врз основа на сите овие влезови,
котролната единица ги обезбедува сите
контролни, управувачки и временски сигнали
кои се потребни заради извршување на
бараната операција. Испраќајки ги
генерираните сигнали до сите внатрешни
функционални единици, но и до компонентите
надвор од него, ОМП целосно ја управува
работата на МКП системот.
Како надворешни сигнали кои контролната
единица ги испраќа за да ја контролира и со
тоа да управува со својата периферија, со
Сл. 10-4. Инструкциски регистер, мемориските компоненти и влезно/излезните
декодер со кодер на машинските уреди, контролната единица кaко излезни ги
циклуси и единицата за контрола и генерира сигналите MRD*, MWR*, IORD*,
временска синхронизација IOWR*, и BUSAK.
Со сигналите MRD* (анг. memory read) и MWR* (memory write) контролната
единица укажува дека реализира читање, односно запишување податок од/во
мемориска компонента. Од друга страна, со сигналите IORD* (I/O read) и IOWR*
(I/O write) покажува дека реализира примање на податок од влезна, односно
испраќање на резултантен податок до излезна порта. При трансферот на
податоци контролната единица активира само еден од овие четири сигнали кого
го поставува на ниско ниво и тоа соодветно на тоа со која надворешна
компонента ќе разменува податоци и дали ќе чита од неа, или ќе запишува во
неа. Другите три сигнали ОМП ги држи пасивни подигнувајќи ги на високо ниво.
Преку поставување на сигналот одобрена (дозволена) контрола над
магистралите BUSAK (анг. bus acknowledge) на високо ниво ОМП одговара на
надворешниот уред кој побарал ДМП дека поставеното барање за ДМП го
прифаќа. Веднаш потоа ОМП се исклучува од магистралите и овозможува тој ДМП
да се реализира помеѓу надворешениот уред и работната RAM меморија.
496 Архитектура на општ микропроцесор

10.2.3. Аритметичко–логичка единица, акумулатор и регистер со


знаменца
Аритметичко – логичката единица (АЛЕ) (анг. Arithmetic – Logic Unit) е
посебна функционална единица во рамки на ОМП која извршува аритметичко-
логички операции и со тоа ги обработува и модификува влезните податоци во
излезни резултантни податоци. АЛЕ може да извршува одредени аритметички и
логички операции со податоци чија должина е 1 бајт (8-бита). Такви операции кои
АЛЕ ги извршува со два влезни податоци се на пример: аритметичките операции
собирање и одземање, како и логичките операции: комплементирање (логичката
негација), операцијата И (логичко множење), потоа операцијата ИЛИ (логичко
собирање), како и операцијата ЕКС-ИЛИ (Исклучиво-ИЛИ, Ексклузивно-ИЛИ).
Покрај нив, АЛЕ може да врши и поместување на битовите на некој податок во
лево или во десно или да ја зголемува, односно намалува неговата вредност за 1.
Акумулаторот или акумулаторскиот регистер (сл. 10-5) се означува со А или
Acc е 8-битен регистер кој е директно поврзан со АЛЕ. Во акумулаторот А секогаш
се сместува еден од податоците кој што треба да биде обработен, но и податокот
којшто како резултат се добива после операцијата која што АЛЕ ќе ја изврши со
него. Практично стариот податок кој претставува стара содржина на акумулаторот
се брише и се заменува со нова содржина која го преставува резултантниот
новодобиен податок.

Сл. 10-5. Акумулаторски регистер


Како посебен регистер кој е поврзан со АЛЕ е и регистерот на знаменца F
(анг. Flags). (Кај некои реални МКП овој регистер се нарекува регистер на
состојба или статусен регистер, анг. Status Register). Како што може да се види од
сл. 10-6, која ги покажува позициите на секој статусен бит во рамките на овој
регистер, станува збор за 8-битен регистер од кој се користат само 4 бита, додека
другите 4 се неупотребени. Всушност на регистерот со знаменца F може да се
гледа како на четири посебни флип-флопови кои укажуваат на состојбата на
резултатот по обработката во АЛЕ. Поконкретно, секој од 4-те бита од овој
регистер е посебно знаменце кое сигнализира појава на една од следниве 4
состојби во која може да се најде добиениот податок, а тоа се:
 Знаменце за предзнак (S) (анг. SIGN FLAG). Знаменцето S сигнализира дали
добиениот податок е позитивен или негативен според означувањето во
втор комплемент. Ова знаменце “го гледа“ најмногу значајниот, осмиот бит
од резултатот а7. Ако овој бит е 1, тогаш резултатот е негативен и
знеменцето се подигнува на високо ниво (S=1). Меѓутоа, ако најлевиот бит
во резултатот а7 е 0, тоа значи дека е добиена позитивна вредност и
знаменцето се ресетира на 0 (S=0).
Архитектура на општ микропроцесор 497

 Знаменце за нула (Z) (анг. ZERO FLAG). Знаменцето Z е бит којшто


покажува дали резултатот од обработката е нула. Ако резултатот е нула,
тогаш знаменцето се сетира, се поставува на 1 (Z=1). Ако добиениот
резултат НЕ е 0, тогаш знаменцето се бриши, се спушта на ниско ниво на 0
(Z=0).
 Знаменце за парност (P) (анг. PARITY FLAG). Знаменцето P укажува на
бројот на 1-ци во добиениот резултантен бајт. Ако бројот на 1-ци е парен,
тогаш знаменцето се подигнува поставувајќи се на високо ниво (P=1).
Спротивно на тоа, кога бројот на 1-ци во резултатот е непарен, тогаш ова
знаменце се спушта на ниско ниво (P=0).

Сл. 10-6. Регистер со знаменца (F)


 Знаменце за пренос (CY) (анг. CARRY FLAG). Знаменцето CY е бит којшто
укажува дали по извршената операција во добиениот резултантен податок
има пренос после 8-от бит. Ова е всушност појава на 9-ти бит кој ќе биде
сместен во посебен флип-флоп надвор од акумулаторот и поставен на
високо (CY=1) кога аритметички се собираат два податоци и се добива збир
за чие претставување се потребни 9 бита. Знаменцето за пренос се сетира
(CY=1) и ако при операцијата одземање има потреба од позајмување кон 8-
иот, најзначајниот бит во резултатот. Ова се случува тогаш кога и двата
броеви што се одземаат како најлев бит имаат 1-ца, но намалителот
(податокот кој се одзема) е поголем од намаленикот (податокот од кој се
одзема). Спротивно на птретходните два случаи, ако при собирањето нема
појава на пренос од најзначајниот 8-ми бит, т.е. нема 1-ца како 9-ти бит,
или ако при одземањето нема потреба од позајмување на 9-ти бит кон
најзначајниот 8-ми бит во резултатот, ниту пак се појавила 1-ца при
поместувањето на битовите, во сите овие случаи знаменцето за пренос ќе
биде ресетирано и спуштено на ниско ниво (CY=0). Овој бит се подигнува
на високо (CY=1) и после операцијата поместување на содржината на
акумулаторот во лево или во десно, ако тоа поместување покрај 8-те бита
на акумулаторот го вклучува и ова знаменце и во него се појави 1-а.
Сликата 10-7 ја покажува улогата на знаменцето за пренос CY кое се наоѓа
во регистерот со знаменца F, но може да се разгледува како дополнителен и
посебен 9-ти бит надвор од акумулаторот кој е логички поврзан со содржината на
8-битниот акумулатор и кога ова знаменце ќе биде поставено (сетирано, CY=1)
истото може да се смета како најзначаен бит над а7 кој е надвор од Асс.
498 Архитектура на општ микропроцесор

Сл. 10-7. Акумулаторот и улогата на знаменцето за пренос

10.2.4. Регистри за општа и специјална намена


Во ОМП постојат дополнителни регистри во кои се внесуваат податоци кои
како нивни содржини привремено се чуваат со што, покрај акумулаторот,
регистерот со знаменца и аритметичко-логичката единица, се овозможува
извршување на секоја инструкција од програмот.
Регистри за општа намена: Општиот микропроцесор содржи и четири R
регистри за општа намена означени со B, C, H и L, при што во секој од нив може
привремено да чува 8 битен податок, т.е. 1 бајт. ОМП овие регистри може да ги
третира и како два посебни регистерски парови Rp и тоа: парот B||C или BC кој
заеднички се означува како B-пар и вториот пар H||L или HL кој се означува како
H-регистерски пар. Со спарувањето на регистрите е овозможено, по потреба, во
нив привремено да се чуваат и дво-бајтни податоци долги по 16-бита.
ОМП располага и со четири дополнителни 8-битни привремени TMP (анг.
Temporary) регистри кои се потребни за непречено реализирање на внатрешниот
пренос на податоци и извршување на операциите со нив. Тоа се двата регистри
означени со HiТR и LoТR поврзани со регистрите за општа намена, како и
привремениот регистер AluTR кој е приклучен кон АЛЕ бидејќи е неопходен за
комплетирање на аритметичко-логичките операции. Во овие регистри привремено
се чуваат податоците што се потребни за на крај на извршувањето на
инструкцијата да се добијат крајните податоци, кои се сместуваат во другите
регистри на процесорот. Четвртиот привремен регистер АссTR овозможува во
акумулаторот да се смести влезниот податок, а по извршената операција да се
внеси добиениот резултат.

Сл. 10-8. Аритметичко-логичката единица и сите регистри на ОМП


Архитектура на општ микропроцесор 499

Регистри за специјална намена: ОМП располага и со два 16-битни


регистри за посебна намена. Тоа се специјалните регистри: програмскиот бројач
PC и покажувачот кон стек меморијата – стек поинтерот SP.
Програмскиот бројач PC (анг. Program Counter) е првиот мемориски
поинтерски регистер кон примарната меморија на ОМП со посебна намена. Имено,
програмскиот бројач ја содржи мемориската адреса на локацијата каде што е
сместена следната инструкција од програмот што треба да се изврши. ОМП по
автоматизам ја зголемува содржината на програмскиот бројач секогаш кога ќе се
изврши некоја инструкција и со тоа покажува на следната адреса во меморијата
во чија локација е сместена следната инструкција што треба да биде извршена.
Стек поинтерот SP (анг. Stack Pointer) покажува кон стек меморијата. Тоа е
уште еден мемориски поинтерски регистер со специјална намена која е сосема
различна од онаа на програмскиот бројач РС. Имено, стек поинтерот SP покажува
на дел од оперативната меморија што е наменета за т.н. стек, магацинска или
напластена меморија. Поконкретно, во SP е сместена адресата на повисоката од
двете адреси две мемориски локации во кои можат да се сместат двобајтни
податоци, поточно содржини на два 8-битни регистри од ОМП, или еден 16-битен.
Стек меморијата е карактеристична по тоа што последно запишаниот податок во
неа се чита прв според принципот последен-внатре-прв-надвор (анг. LIFO, last in
first out). Стекот е динамички променлив сегмент од работната меморија на ОМП
којшто расте од дното према врвот. SP секогаш покажува на дното на стекот кое
всушност е негов врв. Имено, кога на стекот се става податок адресата во SP го
покажува дното на стекот, но кога ќе се вади податок таа го покажува врвот на
стекот. Заради тоа што SP е 16-битен регистер и содржи два бајти, а мемориските
локации се широки еден бајт, јасно е дека при секое запишување (внесување,
анг. PUSH) во стек-меморијата содржината на SP се намалува за два, додека при
секое читање (изнесување, анг. POP) од стекот содржината на SP се зголемува за
два. При запишување новите два бајти се запишуваат исклучиво над постоечките,
додека при читање можат да се читаат само последно запишаните два бајти.
10.2.5. Единици за контрола на прекините и за сериски влез/излез
Единица за контрола на прекините. Како што сугерира и самото нејзино
име, преку оваа единица се контролираат прекините за време на работата на
процесорот кога тој извршува одреден програм.

Ако за време на извршувањето на


главниот програм одреден надворешен
настан или компонента побара прекин за
да биде опслужена, микропроцесорот го
прекинува извршувањето на тековниот
програм и почнува да извршува
соодветен потпрограм со кој ќе го
сервисира барањето за прекин. По
комплетирањето на сервисниот
потпрограм, процесорот продолжува со
извршување на главниот програм од
Сл. 10-9. Единици за контрола на местото каде што бил прекинат.
прекините и за сериски влез/излез
500 Архитектура на општ микропроцесор

На контролата на прекини се поврзани два влезни сигнали за немаскирлив


прекин NMI (анг. Non-Maskable Interrupt) и за прекин со одобрување (INTR) (анг.
Interrupt). Процесорот барањето на линијата за немаскирлив прекин NMI го
опслужува без одлагање, додека добиеното барање за прекин преку водот INTR
го сервисира само ако тоа барање е овозможено и не е маскирано. Токму со
излезниот сигнал INTA* (анг. Interrupt Acknowledge) процесорот покажува кога го
прифаќа и одобрува прекинот на линијата INTR.
Единица за сериски влез/излез. Со оваа единица ОМП ја контролира
комуникација со периферна компонта која пренесува податоци на сериски начин,
бит-по-бит. Преку сигналот за сериски влез на податоци SID (анг. serial inpit data)
процесорот може да прифати 8-битен податок (еден бајт) за време од 8 такт
периоди, додека преку сигнал за сериски излез на податоци SOD (анг. serial output
data) OMП може за исто толкаво време може да испрати 8-битен податок. Како и
сите други функционални единици, така и овие две се контролирани и управувани
од страна на контролната единица.

10.3. Пин конфигурација на општиот микропроцесор


Општиот микропроцесор е „главниот играч“ во микрокомпјутерот или некој
друг микропроцесорски систем кој се гради околу него поврзувајќи го со одредени
периферни компоненти. Такви надворешни компоненти можат да бидат
најразлични мемориски ИК-а и В/И порти.
Како најчесто применувани ќе ги наведеме полупроводничките мемориски ИК-
а со случаен пристап од кои за време на работата на мкп системот може само да
се чита (E/E/P/ROM-и), односно RAM мемориските чипови кои се RWM мемориски
кола бидејќи од нив може да се чита, но и да се запишува.
В/И портите во наједноставен случај претставуваат повеќекратни баферски
интегрирани кола како влезни порти на кои се приклучуваат прекинувачи или
тастери, односно повеќекратни D-лечови или D-флип-флопови како излезни порти
на кои се поврзуваат повеќе светлечки LED-диоди.
Претходно наведените дигитални интегрирани кола се приклучуваат на ОМП
преку неговите 8 (осум) податочни и 16 (шеснаесет) адресни пинови од кои
произлегуваат двете магистрали: 16-битната адресна магистрала и 8-битната
податочна магистрала. Покрај нив ОМП располага и со дополнителни влезни
пинови на кои добива сигнали за тоа во каква состојба се наоѓаат приклучените
надворешни компоненти, но и излезни пинови преку кои испраќа сигнали за да ја
контролира и управува работата на компонентите кои се поврзани во рамките на
неговиот МКП систем. Од овие пинови произлегува контролната магистрала на
МКП систем.
Дополнителни пинови со посебна улога се оние што се потребни за
напојување на ОМП, пинот на кој се поврзува референтно нулто ниво („масата“),
потоа пинот на кој се приклучува такт сигналот со кој временски се синхронизира
работата на ОМП и надворешните компоненти, како и пинот за ресетирање на
ОМП. Во продолжение ќе ги наброиме сите 40 пинови на ОМП и ќе се задржиме
малку подетално на нив поединечно објаснувајќи ја нивната улога.
Архитектура на општ микропроцесор 501

Сл. 10-10. а) Изглед на ИК на ОМП

Сл. 10-10. б) Изглед на ИК на ОМП

Сл. 10-10. в) Пин дијаграм со распоредот на пиновите на ОМП

Сл. 10-11. а) б) Функциски пин-дијаграми на ОМП

10.3.1 Пинови за напојување, ресетирање и временска синхронизација


ОМП може да функционира само ако се напојува преку извор на стабилен
еднонасочен напон и ако се приклучи на референтно напонско ниво. За оваа
намена на пинот означен со +Vсс (или +Vdd) се приклучува напојување од +5V,
додека на пинот GND (анг. ground, заземјување, „маса“ кој се означува и со Vss)
се поврзува референтен потенцијал од 0V.
502 Архитектура на општ микропроцесор

Влезниот пин RSTIN* (анг. reset input) е влез за хардверско ресетирање, за


првично бришење, кој овозможува ресетирање на процесорот и негово
поставување на почетната состојба кога во програмскиот бројач се сместуваат
сите 16 0-и: 0000000000000000bin, т.е. 0000hex. Процесорот се доведува во
почетна иницијална состојба ако на овој пин се донеси ниско напонско ниво, што
значи дека овој пин е активен на ниско напонско ниво.
На влезниот пин за такт сигнал CLK (анг. Clock) се приклучува такт генератор
кој во основа претставува астабилно коло кое генерира периодична низа на
правоаголни импулси и паузи со еднакво време траење и со амплитуда еднаква со
напојувањето од +5V. Овој сигнал има периода To=1us, односно фреквенција
fo=1MHz (fo=1/To). Неговата улога е да ја синхронизира работата на ОМП и
другите надворешни компоненти поврзани во системот. Тактот за компјутерот ја
има истата улога како што e работата на срцето кај човекот. Човекот живее се
додека неговото срце работи, иако од тоа воопшто не зависи која и каква
активност тој ќе извршува. Но, ако срцето престане да чука, тогаш човекот не
може воопшто да функционира. Аналогно на тоа, ако тактот престане да работи,
процесорот ќе застане во стабилна состојба, ништо нема да се менува и тој како и
секоја машина ќе престане со работа. Имено, тактот не носи никаква
информација, освен што го одредува времето кога може да дојде до промени.
Тактот времето го означува со секое појавување на растечки, преден раб кога
такт-сигналот преминува од ниско VL на високо VH ниво, или со појавување на
опаѓачки или заден раб на преминот од високо VH на ниско VL ниво. Од логички
аспект тоа се премини од 0-а на 1-а (01), односно од 1-а на 0-а (10).

Тактот времето го одредува со време-


траењето на високото ниво VH, односно на
ниското ниво VL. Од една страна со појавата
на активен раб на такт импулсот влезовите
на сите логички кола на коишто тактот е
поврзан се менуваат, а од друга страна
времетраењето на тактот му дава време на
комбинациските и секвенцијалните кола да
ја сменат и стабилизираат својата состојба
на излезите за да можат да прифатат друга
влезна побуда.
Сл. 10-12. Такт-генератор на ОМП

Сл. 10-13. Временски облик на такт сигналот (периодична низа на високо и ниско ниво)
Архитектура на општ микропроцесор 503

Времетраењето на периодата на такт сигналот To може да се одреди како


период од неговата предна ивица на импулсот, до следната предна ивица, или од
појавата на задниот раб на импулсот, до следниот заден раб. Периодата на тактот
Т0 се зема како единечен временски интервал бидејќи тоа е најмалиот временски
интервал кој е потребен за да состојбите на сите комбинациски и секвенцијални
кола кои влегуваат во состав на МКП да се променат, воспостават и
стабилизираат. Заради овој факт, времетраењето на периодата на тактот То
терминолошки во жаргонот на архитектурата микропроцесорските системи се
нарекува и T-состојба која за „нашиот“ ОМП ќе земеме дека трае од еден заден
раб на такт-импулс до следниот заден раб на импулсот и се означува со Ts.
Ако процесорот може да биде тактиран со сигнал чиј такт трае покус
временски период тоа ќе значи дека него ќе му треба помалку време за да ја
промени својата состојба и толку побрзо може да дојде следната побуда. Токму
времетраењето на периодата на такт сигналот, односно неговиот такт имаат
исклучителна важност врз перформансите на МКП систем затоа што секоја
инструкција се извршува во временски период наречен инструкциски циклус (IC)
кој трае конечен број на машински циклуси (MC), а секој машински циклус трае
одреден број на Т–состојби. Заклучокот сам се наметнува: колку е помала такт
периодата, односно повисока фреквенцијата, исто толку е пократко време-
траењето на Т–состојбата и инструкциите ќе се извршуваат за покус временски
период и процесорот ќе ги обработува податоците со поголема брзина.
10.3.2. Пинови на адресната и податочната магистрала и пинови за
сериска комуникација
Општиот микропроцесор може да прифаќа и испраќа податоци на паралелен и
сериски начин. Главната примена на ОМП е обработката на податоци на
паралелен начин кога во единечен временски интервал од еден такт период тој
едновремено може да прочита или да запише еднобајтен податок долг 8 бита.
Сепак, ОМП може да прифаќа или да испраќа податоци и во сериски облик бит-
по-бит кога за читање, односно за запишување на еднобајтен податок, во идеален
случај, ќе му бидат потребни 8 такт периоди То.
Адресни пинови (А15 – А0): Преку 16-те адресни пинови, кои се исклучиво
излезни, ОМП испраќа адресни сигнали кои ги носат 16-те адресни битови со кои
ОМП адресира, а тоа значи селектира, одредена мемориска компонента од
повеќето приклучени, за со неа да разменува податоци. Повисокиот адресен бајт
HiAB се формира од сигналите присутни на пиновите А15 – А8, додека во состав
на понискиот адресен бајт LoAB се адресните сигнали на пиновите А7 – А0.
Заради ова ОМП најмногу што може да адресира се 216 = 65536 = 64 К различни
мемориски локации.
Податочни пинови (D7 – D0): Заради тоа што ОМП располага со 8 податочни
пинови тој може од периферните компоненти едновремено, во единечен
временски интервал кој изнесува еден такт, паралелно да прочита/ прифати,
односно да запише/испрати едно-бајтен збор долг 8-бита (“еден такт – еден
бајт“). За прифаќање на влезниот податок, односно за испраќање на некој
резултат како излезен податок на пиновите од податочната магистрала, ОМП
располага со повеќе регистри за општа намена чија должина изразена во битови
е исто така 8-бита. Ова значи дека ОМП е и внатрешно и надворешно 8-битен
процесор. Имајќи го во вид кажаното може да се заклучи дека 8-те пиновите на
504 Архитектура на општ микропроцесор

податочната магистрала се двонасочни, но во различни временски моменти:


влезни кога ОМП чита/прифаќа некој бајт како влезен податок, односно излезни
кога ОМП испраќа/запишува резултантен податок како излезен бајт. Што се
однесува до податочната магистрала треба да потенцираме една многу важна
работа која се однесува на читање од оперативната меморија. Имено, кога ОМП
ќе прочита содржина од одредена адресирана мемориска локација од работната
меморија тој бајт го добива преку податочните пинови, при што истиот може да
биде „пасивен“ или „активен“ податок. „Пасивниот“ податок може во вистински
смисол на зборот да е податок кој треба да биде обработен од страна на ОМП, но
може да биде и некоја адреса на В/И порта или еден од двата бајти на адресата
на некоја мемориска локација. Меѓутоа, прочитаниот бајт може да биде и
„активен“ податок, а тоа е кодот на операцијата кој е содржан во инструкцијата
што ОМП треба да ја изврши.
Значи, бајтите кои процесорот ги добива читајќи ја меморијата се податоци но
во поширок контекст бидејќи можат да бидат кодови на операција или влезни
податоци кои ќе бидат обработувани. По завршената обработка добиениот
резултат може да биде само пасивен – излезен податок кој исто така по
податочната магистрала процесорот ќе го запише во адресираната мемориска
локација и/или ќе го испрати до некоја излезна порта.
Сериската комуникација бит-по-бит ОМП ја реализира преку двата пинови
насловени како SID (анг. serial input data – влез за сериски податоци) и SOD (анг.
serial output data – излез за сериски податоци). Користејќи ги овие пинови ОМП
може за еден такт период, или да прифаќа по еден бит преку пинот SID, или по
еден бит да испраќа преку пинот SOD („еден такт – еден бит“).
Јасно, за пренос на еднобајтен податок би се изгубиле осум такта, што прет-
тавува значително успорување, но за сметка на тоа се користи само една линија
за влез и една за излез, додека податочната магистрала останува слободна за
вообичаениот паралелен пренос на еднобајтните податоци во еден такт интервал.

а) б)
Сл.10-14. а) Пинови на податочната магистрала и б) пинови за сериска комуникација

10.3.3. Пинови за контрола на читањето/запишувањето


Кога комуницира со периферните компоненти преку адресната и податочната
магистрала процесорот всушност разменува податоци со мемориски интегрирани
кола со случаен пристап чија содржина може само да се чита (E/E/P/ROM), или
покрај читањето да се запишува и нова (RAM), или со влезно-излезни порти. За да
ја оствари предвидената размена на податоци ОМП користи четири излезни пина.
Архитектура на општ микропроцесор 505

Станува збор за следните пинови:


 Пинот МRD* (анг. Memory Read), читај од меморија,
 Пинот MWR* (анг. Memory Write), запиши во меморија,
 Пинот IORD* (анг. Input/Output Read), читај/прифати од влезно/излезна
порта, поточно од влезна порта,
 Пинот IOWR* (анг. Input/Output Write), запиши/ испрати/проследи до
влезно/излезна порта, поточно до излезна порта.
Испраќајќи контролни сигнали на овие пинови, процесорот управува со
преносот и насоката на движење на податоците. Тој може да чита, односно да
запишува податок во адресирана периферна компонента како на пр. одредено
мемориско ИК, или да прифаќа, односно да испраќа податок до некоја В/И порта.
При извршување на било која од овие четири машински операции, процесорот
активира само еден од наведените контролни сигнали поставувајќи на него ниско
напонско ниво (VL=VLOW=0V) кое одговара на логичка 0, додека другите три
контролни сигнали ги држи пасивни поставувајќи на нив високо ниво
(VH=VHIGH=+5V) кое соответствува на логичка 1. Според наведеното, овие четири
излезни сигнали се активни на ниско ниво и соодветно на конкретниот трансфер
кој треба да го изврши, само еден од сигналите ќе биде активен што процесорот
го покажува спуштајќи го истиот на ниско ниво. Така, за да прочита податок од
некое мемориско ИК процесорот поставува ниско ниво на пинот МRD* (МRD*=0),
а кога треба да запише податок во некое мемориско ИК тој го активира сигналот
на излезниот пин MWR* поставувајќи на истиот ниско ниво (MWR*=0). При ова
адресата на мемориската локација е поставена на сите 16 адресни водови. Кога
ОМП треба да комуницира со некоја влезна компонента и од неа да
прифати/прочита податок процесорот го спушта на ниско ниво пинот IORD*
(IORD*=0), додека ако треба да испрати/запише податок во некоја излезна порта
тој поставува ниско ниво на пинот IOWR* (IOWR*=0). При преносот на податок со
В/И компонента ОМП адресата на портата ја поставува само на ниските 8 адресни
водови заради што максимално може да адресира до 28 =256 В/И порти.
Да заклучиме: При комуникацијата и трансферот на податоци со надворешна
компонента процесорот активира само еден од четирите сигнали, такашто нивото
на тој сигнал го спушта на ниско ниво, а другите три сигнали ги подигнува на
високо ниво и со тоа ги држи пасивни. Кој е активниот сигнал зависи од тоа дали
периферната компонента е мемориско интегрирано коло или влезно/излезна
порта, и дали процесорот од неа чита податок, или во неа запишува податок.
Како дополнителен пин кој е потребен за остварување на пренос со побавни
периферни компоненти ОМП располага со уште еден влезен пин за спремност на
трансферот кој е означен со READY (спремен, готов). Преку овој влезен пин
READY процесорот добива информациски сигнал од некоја поспора периферна
компоненти за тоа дали при читањето или при запишувањето, процесорот треба
да внесе дополнителен такт период на чекање (анг. WAIT) со кој ќе го почека
адресираниот надворешен уред да се спреми за испраќање или прифаќање на
податокот. Кога сигналот, присутен на пинот READY се наоѓа на високо ниво
(READY=1), нема потреба од циклус за чекање и трансферот се извршува без
чекање од страна на процесорот. Но, ако процесорот на пинот READY добие ниско
ниво (READY=0) тој внесува циклуси на чекање се додека нивото на тој пин
повторно не се подигне на високо ниво.
506 Архитектура на општ микропроцесор

10.3.4. Пинови за контрола на трансферот со прекини


Општиот микропроцесор дава можност за поврзување на периферни
компоненти во МКП системот преку т.н. прекиден трансфер кога надворешна
компонента или некој настан го прекинува извршувањето на тековниот програм
на процесорот и го форсира да изврши посебен прекиден потпрограм со кој ќе го
сервисира бараниот прекин на начин што од таа периферна компонента ќе
прочита податок, или до неа ќе испрати и запише податок, и со тоа ќе ја опслужи
компонентата која го барала тој прекин. За остварување на комуникација,
поточно за трансфер на податоци со надворешни компоненти преку прекини ОМП
располага со три пинови и тоа: влезниот пин за немаскирлив прекин NMI (анг.
Non-Maskable Interrupt или TRAP), влезниот пин за прекин со одобрување INTR
(анг. Interrupt) и излезниот пин INTA* за одобрување на прекин (анг. Interrupt
Acknowledge). Надворешните компоненти кои се приклучени на влезните пинови
NMI и INTR бараат сервисирање така што секоја од нив на својата линија ќе си
постави високо ниво со што на процесорот му сигнализира дека има потреба да
биде опслужена. На влезниот пин за НЕ-маскирлив прекин NMI се приклучува
компонента кој треба да биде опслужена без одлагање, додека компонентата која
е приклучена на пинот INTR прекин ќе биде опслужена само ако нејзиното
барање биде потврдено (прифатено, одобрено, дозволено) од страна на ОМП. Во
секој случај, ако процесорот треба да сервисира побаран прекин, тој во принцип
реагира на ист начин. Имено, ако прекинот е прифатен процесорот го прекинува
извршувањето на тековниот програм на начин што ја завршува инструкцијата што
моментално ја извршува, и адресата на следната инструкција што треба да се
изврши ја запамтува во посебниот стек-сегмент од оперативната меморија. Потоа
во програмскиот бројач ја внесува адресата на специјализираниот потпрограм кој
е наменет за компонента која барала прекин кој се нарекува потпрограм за
опслужување или за сервисирање на прекин (анг. Interrupt Service Sub/Routine).
Со тоа е прекинато извршувањето на тековниот програм и процесорот ги
извршува инструкциите од прекидната рутина опслужувајќи го уредот, кој
побарал прекин. По завршувањето на потпрограмот за сервисирање на прекинот
процесорот продолжува со извршување на следната инструкција од главниот
програм која е прва после последно извршената инструкција која тој ја извршил и
преминал на опслужување на прекинот. Имено, од стек меморијата процесорот ја
чита адресата која беше таму запамтена и ја внесува во програмскиот бројач.
Бидејки таа адреса беше адресата на следната инструкција од тековниот програм
веднаш после прекинот, процесорот најнормално си ја продолжува работата на
тој програм. Како критичен и карактеристичен надворешен настан кој вообичаено
предизвикува прекин е губењето на напојување, додека таков внатрешен настан
може да биде делењето со нула. Надворешна компонента која предизвикува
прекин може да биде и тастатурата или некој прекинувач или тастер кој ја
променил состојбата.
Пред малку ги спомнавме влезните пинови за не-маскирлив и маскирлив
прекин. Маскирањето е всушност софтверска техника со која програмерот може
да го „ослепи“ процесорот за тој да „не го гледа“ барањето за прекин. Барањето
на не-маскирлив прекин преку влезот NMI има највисок приоритет, тој НЕ може да
се маскира и заради тоа процесорот веднаш извршува прекиден потпрограм со кој
ја опслужува компонентата која го побарала таквиот прекин.
Архитектура на општ микропроцесор 507

Барањето на прекин преку INT влезот може да биде претходно софтверски


маскирано, такашто компонентата поврзана на пинот INT ќе биде опслужена само
ако програмерот не го маскирал барањето за прекин на таа линија. Во тој случај
процесорот го прифаќа и го одобрува поставеното барање добиено на пинот INT,
така што на излезот за потврден и прифатен прекин INTA* поставува ниско ниво
со што и сигнализира, ја информира компонентата која побарала INT прекин дека
ќе биде опслужена и го извршува соодветниот прекиден потпрограм. Но, ако
прекинот е софтверски маскиран, процесорот НЕ го прекинува извршувањето на
тековниот програм и нема да го опслужи бараниот прекин бидејќи истиот „не го
гледа“ и „не е свесен“ за него.
10.3.5. Пинови за контрола на директен мемориски пристап
Општиот микропроцесор овозможува и приклучување на периферни
компоненти во својата околина кои со меморијата ќе комуницираат и разменуваат
податоци со директен мемориски пристап (ДМП) (анг. DMA, direct memory access).
За ваквиот трансфер на податоци процесорот располага со два пина на кои е
поврзана надворешната компонента која бара директен мемориски пристап. Таа
барањето му го поставува на процесорот преку влезниот пин за барање на
контрола над магистралите BUSRQ (анг. Bus request). Процесорот пак, преку
излезниот пин BUSAK (анг. Bus acknowledge) испраќа сигнал до компонентата дека
е прифатено барањето за ДМП и дека е одобрена контролата над магистралите од
страна на процесорот. За ваквиот трансфер на податоци реалните процесори овие
два пина ги означуваат и со DMARQ (анг. Direct Memory Access Request, или HOLD)
барање за ДМП, и DMACK (анг. DMA, Direct Memory Access Acknowledge, HLDA)
прифатен, одобрен ДМП.
Надворешната компонента која бара ДМП, преку посебно програмабилно
дигитално ИК со специјална намена наречено ДМП контролер, на линијата BUSRQ
поставува високо ниво (BUSRQ=1). Процесорот го прифаќа барањето за ДМП
преку поставување на високо ниво на излезниот пин BUSAK (BUSAK=1) и со тоа,
повторно преку ДМП контролерот, на периферната компонента и испраќа сигнал
со којшто покажува дека се исклучува од магистралите и на таа компонента и
овозможува директен пристап до меморијата за нивни меѓусебен трансфер на
податоци. Потоа процесорот може да извршува само внатрешни работни
операции, додека контролата над магистралите ја има ДМП контролерот кој
овозможува надворешната компонента директно да пренесува, да чита, односно
да запишува, податоци со работната RAM меморија. Кога периферната
компонента ќе го заврши ДМП трансферот, таа на процесорот му испраќа барање
за прекин за тој да може повторно да ја земе контролата над магистралите, а со
тоа да продолжи со извршувањето на следната фаза од тековната инструкција
која би следувала доколку не беше реализиран ДМП. За време на ДМП процесорот
сам му ја препушта контролата над магистралите на ДМП контролерот.

Заклучок за внатрешната архитектура на ОМП:


ОМП е 8-битен процесор кој ги има следниве карактеристики:
 Единствено напојување од +5V,
 Правоаголен периодичен такт сигнал кој претставува низа од
правоаголни импулси и паузи со високо и ниско напонско ниво и со
периода То=1µs со која се одредува работната фреквенција fо=1 MHz,
508 Архитектура на општ микропроцесор

 Внатрешна 8-битна магистрала,


 8-битна аритметичко логичка единица,
 8-битен акумулаторски регистер и 8-битен статусен регистер со 4 знаменца,
 Четири осумбитни регистри B, C, H, L за општа намена на кои може да им
се пристапи и како на два пара регистри B||C и H||L од по 16 бита,
 Надворешна податочна магистрала широка 8-бита ,
 Надворешна адресна магистрала широка 16-бита,
16
 Максимален адресен простор од 64 КВ (2 адресни линии = 64 К
мемориски локации, секоја со 8-битна ширина (по 1В),
8
 Посебно одвоен адресен простор за 256 В/И порти (2 ниски адресни
линии = 256 В/И порти исто така со 8-битна ширина (по 1В),
 16-битен програмски бројач (PC), и
 16-битен покажувач кон стек-меморијата – стек поинтер (SP) .

10.4. Извршување на инструкција


Програмот напишан во асемблерски јазик како и секој друг програм,
претставува низа на последователно и меѓусебно логички поврзани инструкции
кои се секвенцијално запамтени во примарната меморија на микро/компјутерот.
Доколку програмот е внесен во некој E/E/P/ROM чип тоа е некој системски
монитор програм, но ако е запамтен во RAM меморико ик, тоа е или програм на
оперативниот систем, или кориснички програм кој го напишал програмерот во
асемблерски или некој друг јазик.
За да го изврши целиот програм зачуван во меморијата, ОМП ја извршува
првата инструкција од програмот, потоа втората, па третата, па таа после неа и
тн. сѐ до последната. Општо земено, МКП гo изведува програмот на тој начин што
редоследно ги извршува сите асемблерски инструкции кои тој ги содржи, а
потекнуваат од множеството на инструкции со кои тој процесор располага.
Секоја асемблерска инструкција, во општ случај, задолжително содржи
мнемоник. Покрај мнемоникот, инструкцијата може да содржи, еден или два
операнди, кои следуваат со мнемоникот. Сепак, постојат и инструкции без
операнд/и, и тие содржат само мнемоник бидејќи операндите им се испуштени.
Мнемоникот претставува кратенка со одредено значење која потсетува на тоа која
операција треба да ја изврши инструкцијата. Од друга страна, операндот се
однесува на податокот со кој таа операција треба да се изврши.
При процесот на асемблирање на програмот напишан во асемблерски јазик,
системскиот програм асемблер секоја асемблерска инструкција ја преведува во
една машинска инструкција и со тоа генерира програм во машински јазик.
Преведениот програм во машински јазик е единствено разбирлив за процесорот на
компјутерот бидејќи тој може само него да го изврши. Машинскиот програм
претставува големо количество на 1-и и 0-и, организирани во низи од бајти, секој
од по 8 бита, кои се запамтуваат во соодветни мемориски локации и со тоа
завземаат одреден простор во оперативната RАМ меморија на компјутерот.
Односот на преведување е 1:1, така што на една инструкција во асемблерски јазик
и одговара една инструкција во машински јазик која може да содржи од еден до
три бајти и која се извршува во временски период наречен инструкциски циклус.
Архитектура на општ микропроцесор 509

Имено, по асемблирањето на програмот, од мнемоникот на секоја инструкција


како прв бајт се генерира код на операција (КОП) (анг. code of operation) во
машинскиот програм кој се запамтува во меморијата и која носи информација за
тоа која операција ОМП треба да ја изврши. Дополнително, во операндот на
инструкцијата се содржи информацијата за тоа кој е податокот или каде тој
конкретно се наоѓа. Доколку операцијата има потреба и од податок кој треба таа
да го обработи, тој податок може да биде вториот бајт на инструкцијата, или овој
втор бајт ќе биде адреса на некоја влезна компонента т.е. порта каде тој податок
се наоѓа. Евентуално, ако податокот се наоѓа некаде во меморијата, адресата на
таа мемориска локација ќе бидат вториот и третиот бајт на инструкцијата. Вториот
и евентуално третиот бајт се запамтуваат во мемориски локации веднаш под
мемориската локација каде што е запамтен КОП на инструкцијата.
Во врска со кажаното, за да изврши некоја инструкција, ОМП прво го
пре/зема КОП од меморијата. Потоа преземениот КОП процесорот внатрешно го
декодира со инструкцискиот декодер и со тоа ОМП “дознава“ дали инструкцијата
има и втор или трет бајт. Ако инструкцијата нема друг бајт, или бајти, ОМП ја
извршува операцијата која е зададено со тој КОП. Но, ако инструкцијата покрај
КОП има уште еден бајт како операнд, тогаш процесорот уште еднаш му
пристапува на меморијата и го чита вториот бајт на инструкцијата кој претставува
или директен податок кој треба да се обработи, или адреса на некоја влезна порта
од каде тој податок ќе биде добиен. Ако пак, инструкцијата покрај КОП содржи
уште два бајти, тогаш процесорот уште два пати чита од меморијата и со тоа
добива директно податок кој е дво бајтен, или добива адреса на мемориска
локација каде се наоѓа бараниот податок и истиот го чита. Дури после тоа ОМП
завршува со извршува-њето на инструкцијата и истата ја комплетира. Заклучокот
се наметнува сам по себе: секоја инструкција како прв бајт има еднозначно
определен КОП. Постојат инструкции со должина од два или најмногу три бајти.
Кај нив вториот и/или третиот бајт содржи податок кој треба да биде обработен со
операцијата содржана во КОП, или пак содржи адреса каде тој податок се наоѓа.

10.5. Фази на извршување на инструкција

Секој процесор има свое посебно инструкциско множество, а тоа се сите


негови инструкции во асемблерски, односно машински јазик, со кои тој располага
и може да ги изврши.

Иако множествата на инструкции се


разликуваат од еден до друг процесор, општо
земено, секој процесор било која инструкција
ја извршува, т.е. процесира во временски
период дефиниран како инструкциски циклус,
и тоа во две фази според сл.10-15 а):
I) фаза на преземање на инструкцијата,
II) фаза на извршување на инструкцијата.

Сл. 10-15. а) Фази на извршување на инструкција


510 Архитектура на општ микропроцесор

Глобално гледано, секоја од двете фази на извршување дополнително се


дели на потфази, како што е прикажано на сл. 10-15 б).

Сл. 10-15. б) Потфази за извршување на инструкција


Фазите и потфазите на извршување на една инструкција се:
I) Фазата на преземање се реализира во две потфази кои се исти за секоја
инструкција, а тие се:
1) читање на првиот бајт на инструкцијата кој го претставува нејзиниот КОП,
2) декодирање на кодот на операција на инструкцијата (КОП).
II) Фазата на извршување на инструкцијата содржи три потфази кои се
различни за секоја инструкција.
3) земање на операндот oд меморијата,
4) извршување на инструкцијата,
5) запамтување на резултатот.

10.6. Објаснување на фазите на инструкцијата


Во првата фаза, секогаш задолжително се реализираат и првата и втората
потфаза при што прво се презема КОП после што следува негово декодирање.
Доколку инструкцијата нема потреба од податок, таа се извршува во следната,
втората фаза, и тоа само во нејзините четврта и петта потфаза. Имено, кај овие
инструкции нема потреба од дополнително обраќање на ОМП кон меморијата или
кон некоја влезна порта бидејќи нема потреба од податок кој се наоѓа надвор од
процесорот. Исто така нема потреба од комуникација и тогаш кога инструкцијата
има потреба од податок, но тој се наоѓа во регистрите на процесорот. Ваквите
инструкции извршуваат само внатрешни машински операции кои може да бидат
аритметички, логички, тестирање на некој услов, операции за внатрешен пренос
на податоци меѓу регистрите и сл. и се завршуваат без третата под-фаза.
Архитектура на општ микропроцесор 511

Следните три под-фази, се реализираат тогаш кога после декодирањето на


КОП, се утврди дека инструкцијата има потреба од податок и ако тој податок се
наоѓа надвор од процесорот, во некоја од неговите периферни компоненти како
на пр. меморијата или некоја В/И порта. Кога извршува вакви инструкции ОМП ќе
треба да реализира екстерни, надворешно ориентирани машински операции. При
тоа, ако податокот се наоѓа во меморијата или во некој В/И модул, ОМП ја
извршува третата под-фазата на земање на податок. Тогаш ОМП ќе изврши
екстерна работна операција со која ќе прочита или прифати еднобајтен податок.
Тој податок може да биде содржина на некоја мемориска локација, или да бил
запамтен во стек магацинската меморија, или да е еден бајт добиен од некоја
влезна компонента или порта. Потоа, имајќи го потребниот влезен податок, ОМП
ќе премине на четвртата под-фаза извршување на инструкцијата.
Меѓутоа, ако дополнително во инструкцијата, покрај наведеното читање на
влезен податок, се бара и запишување на резултантен податок во меморијата или
тоа е податок наменет за во стек – меморијата, или некој бајт кој треба да се
пренесе до адресирана излезна порта, ОМП ќе премине на петтата под-фаза на
запамтување на резултатот.
Заради претходното објаснување, инструкцискиот циклус во литературата
се нарекува и циклус на пре/земање (донесување) и извршување (анг. fetch-and-
execute cycle), или циклус на пре/земање (донесување), декодирање и
извршување (анг. fetch-decode-execute cycle).
Значи, инструкцијата ќе биде извршена од страна на МКП само ако КОП на
инструкцијата биде пре/земен од главната RAM меморија, а заедно со него,
доколку постои, биде прочитан и податокот од меморијата или од В/И порта, кој
ќе биде со неа обработен. Од кажаното станува јасно дека за секоја инструкција
времето што е потребно за нејзино извршување варира и тоа е различно од
инструкција до инструкција.

10.6.1. Фаза– 1: Пре/земање на кодот на операција од


оперативната меморија
Процесорот ја става вредноста на програмскиот бројач PC во меморискиот
адресен баферски регистер MAR, во него ја задржува и со тоа ја става на
адресната магистрала со што адресира одредена мемориска локација од
оперативната RAM меморија.
Едновремено со пренесувањето на содржината на програмскиот бројач во
MAR, процесорот ја зголемува содржината на програмскиот бројач за 1 како би
можел да ја чита следната мемориска локација. Содржината на адресираната
мемориска локација е кодот на операција на инструкцијата, кој е нејзин прв бајт
што процесорот го чита и го презема преку податочната магистрала сместувајќи
во својот мемориски податочен бафер регистер MDR. Добиениот КОП понатаму се
пренесува до инструкцискиот регистер IR каде што се сместува и привремено се
задржува за да може да биде декодиран од страна на декодерот на инструкции.
10.6.2. Фаза– 2: Декодирање на кодот на операција
Инструкцискиот декодер IR го декодира кодот на операција на
инструкцијата и врз основа на тоа кодира машински циклуси кои треба да бидат
реализирани заради нејзино извршување и ја активира единицата за контрола и
512 Архитектура на општ микропроцесор

временска синхронизација која испраќа соодветни внатрешни и надворешни


контролни сигнали до сите внатрешни функционални единици и надворешни
компоненти за да го комплетира започнатото извршување на инструкцијата.
Доколку инструкцијата е едно бајтна, т.е. содржи само код на операција следното
читање од меморијата ќе биде пре/земање на код на операција на следната
инструкција. Меѓутоа, ако инструкцијата содржи два или три бајти, ОМП
преминува во третата фаза на земање на потребниот податок за комплетирање на
инструкцијата.

10.6.3. Фаза– 3: Земање на податок од меморијата


Во оваа фаза се чита операндот на инструкцијата кој е нејзин втор бајт и
кој може да биде податок кој ќе биде обработен со операцијата која се извршува,
или адреса на мемориска локација или В/И порта каде што се наоѓа тој податок.
Прочитаниот бајт се сместува во некој од регистрите на процесорот, што зависи
од конкретната инструкција што се извршува, но никако во инструкцискиот
регистер. Доколку инструкцијата има и трет бајт, кој исто така е операнд, после
вториот, и овој бајт процесорот ќе го прочита од следната мемориска локација. По
ова ОМП може да премина на следната фаза во процесирањето на инструкцијата,
а тоа е фазата на нејзино извршување.

10.6.4. Фаза– 4: Извршување на инструкцијата


За да влезе во ова фаза, кодот на операција од IR е веќе декодиран од
страна на декодерот на инструкции и од него веќе се испратени соодветни
сигнали до контролната единица. Врз основа на добиените декодирани сигнали
контролната единица генерира и испраќа секвенца (низа) од дополнителни
внатрешни и/или надворешни контролни сигнали кон внатрешните логички и
секвенцијални кола и/или надворешнитре компоненти: мемориските интегрирани
кола или В/И порти. Тоа се сигнали испратени до релевантните функционални
единици на процесорот, за да ги превземат оние активности кои се потребни за
извршување на инструкцијата. Тоа се регистрите и/или АЛЕ кои треба да се
вклучени на пр. за извршување на некоја аритметичка или логичка операција со
внесениот податок, или читање на вредности од регистри, или нивно
префрлување во други, или пренесување на вредности до АЛЕ, или запишување
на добиени резултати од АЛЕ во други регистри, и тн. Доколку врз основа на
извршената операција од страна на АЛЕ, кога е таа вклучена, се исполнил некаков
услов како на пр. резултат кој е нула, или е негативен, или има пренос, до
контролната единица ќе биде испратен соодветен сигнал т.н. знаменце кој
покажува каква е состојбата по завршената операција.

10.6.5. Фаза– 5: Запомнување на резултатот


По извршувањето на било која аритметичка или логичка операција ОМП
резултатот добиен од неа го пренесува во акумулаторот. Токму заради тоа што
резултатот се сместува во акумулаторот, кај ОМП може да се земе дека 4-тата и 5-
тата фаза може да се третираат заеднички како единствена 4-та фаза – фаза на
извршување во која се подразбира дека извршувањето опфаќа и внесување на
резултатот од операцијата во акумулаторот. Заради ова, за општиот микро-
роцесор може да се каже дека е акумулаторски ориентиран.
Архитектура на општ микропроцесор 513

По завршувањето на оваа последна фаза процесорот циклично ги повторува


сите фази повторно почнувајќи од првата фаза кога зема код на операција од
следната мемориска адреса бидејќи програмскиот бројач е веќе зголемен за 1.
Доколку ОМП извршува инструкција која проверува исполнување на
одреден услов, тој го тестира резултатот добиен по операцијата извршена од
страна на АЛЕ кој е сместен во акумулаторот. Ако при тоа се исполнил
тестираниот услов, на пр. резултатот е нула или има пренос, тогаш во
програмскиот бројач ќе се внесе нова адреса на онаа мемориска локација каде
што е сместена бараната инструкција соодветна за исполнување на поставениот
услов. И во овој случај се повторуваат сите фази почнувајќи од првата кога
процесорот го чита и презема кодот на операција на новоадресираната
инструкција.
Од претходното може да се заклучи дека должината на инструкциите
изразена во бајти, што се нарекува и формат на инструкција, може да биде еден,
два, или три бајти. Покрај тоа е јасно дека брзината или времето на извршување
на инструкциите со различен формат ќе биде исто така различна затоа што:
 еднобајтните инструкции ѝ пристапуваат само еднаш на меморијата кога
процесорот го зема единствениот бајт, а тоа е кодот на операција на
инструкцијата,
 двобајтните инструкции во два наврати ѝ пристапуваат на меморијата,
 три-бајтните инструкции бараат уште едно – трето дополнително обраќање
кон меморијата.

10.7. Пример за извршување на инструкција


ОМП функционира според познатиот концепт за извршување на програм кој
е запамтен во неговата работна меморија, поточно во некое од мемориските ИК на
примарната меморија, кои се поврзани со него и формираат МКП систем. Имајќи
во вид дека секој програм претставува множество на логички поврзани
инструкции, кои извршуваат одредена задача, тоа значи дека ОМП, за да го
изврши програмот, практично ги презема инструкциите од меморијата една по
една и секвенцијално ги извршува и процесира, по редослед по кој ги прифатил.
Како едноставен пример ќе претпоставиме дека ОМП го извршува
програмот кој е сместен во работната RAM меморија, која претставува едно
мемориско интегрирано коло, и дека ги зафаќа мемориските локации почнувајќи
од адресата 1500hex до 3200hex. Поконкретно, ќе анализираме извршување на
една асемблерска инструкција која припаѓа во тој програм, а тоа е асемблерската
инструкција MVI A, 69H со која ОМП треба податокот 69H да го внесе во
акумулаторскиот регистер. За објаснувањето ќе ја користиме блок шемата
прикажана на сл. 10-16 а) б). Сликата го прикажува протокот на сигнали при
извршување на оваа инструкција која зафаќа два бајти од меморијата:
 првиот бајт на анализираната инструкција е нејзиниот код на операција
3E кој е запамтен во мемориска локација со адреса 2000H, додека
 вториот бајт на инструкцијата е податокот 69H, кој треба да биде со неа
обработен и е сместен веднаш под КОП, како содржина на следната
мемориска локација со адреса 2001H.
За да ја изврши оваа инструкција, ОМП ги извршува следниве чекори:
514 Архитектура на општ микропроцесор

1. На почеток во програмскиот бројач PC се внесува 16-битната адреса 2000H


на мемориската локација каде е сместен КОП како прв бајт на
инструкцијата. Оваа адреса се пренесува до меморискиот адресен регистер
MAR и поставува на адресната магистрала, со што го селектира и го
поврзува МКП со меморискиот чип. Едновремено, содржината на
програмскиот бројач автоматски се зголемува за 1 добивајќи вредност
2001H, со што МКП ќе може по завршувањето на оваа инструкција повторно
да ѝ пристапи на меморијата и да ја чита следната мемориска локација.
2. Контролната единица испраќа активен сигнал MRD* поставувајќи го на
ниско ниво (MRD*=0) со што МКП „го информира“ мермориското ик дека
МКП ќе чита од него, поточно ќе ја чита содржината на адресираната
мемориска колација чија адреса е 2000 H. Со ова практично МКП „ѝ
наредува“ на меморијата да ја овозможи оваа операција и адресираниот
бајт, поточно 8-битниот код на операција, да се појави на податочната
магистрала.

Сл. 10-16. а) Прва фаза на извршување на инструкцијата MVI A, 69H

Сл. 10-16. б) Втора фаза на извршување на инструкцијата MVI A, 69H


Архитектура на општ микропроцесор 515

3. Инструкцискиот код 3E кој е сместен во адресираната мемориска локација


2000H се поставува на податочната магистрала и преку неа се пренесува
до инструкцискиот регистер (IR) во МКП.
4. Од инструкцискиот регистер (IR) кодот на операција се пренесува во
инструкцискиот декодер. Во овој блок од една страна се декодира КОП со
што МКП „открива“ која операција треба да биде извршена, а од друга
страна врз основа на претходното ги одредува бројот и видот на следните
машински циклуси кои се потребни заради завршување на инструкцијата.
Конкретно, КОП 3Е укажува на пренос на податокот од следната мемориска
локација во акумулаторскиот регистер на МКП.
5. Конечно, овие информации во форма на одредени електрични сигнали се
испраќаат до контролната единица така што таа генерира соодветни
контролни сигнали, како внатрешни, така и надворешни, за да ја изврши
бараната операција за која треба да го обезбеди потребниот податок 69Н
кој се наоѓа на адреса 2001Н.
6. Бидејќи програмскиот бројач е претходно зголемен за 1, на адресната
магистрала се појавува адресата 2001Н, а програмскиот бројач пак
автоматски се зголемува за 1 добивајќи вредност 2002H.
7. Од меморијата се чита податокот 69Н кој претставува содржина на
мемориската локација со адреса 2001Н, и се сместува во акумулаторот со
што е комплетирано извршувањето на инструкцијата MVI A, 69H. (Општо
земено, преносот можеше да биде и во некој друг регистер од регистрите за
општа намена на МКП, или евентуално да биде активирана АЛЕ која ќе
изврши одредена операција зададена со КОП, и резултатот ќе го смести во
акумулаторот. Што ќе биде превземено зависи од претходното декодирање
на КОП.)
8. Повторно следува извршување на првиот чекор кога повторно се чита
меморијата и тоа содржината на нејзината мемориска локација со адреса
2002H, бидејќи содржината на програмскиот бројач претходно автоматски
веќе беше зголемена за 1. Така МКП повторно ѝ пристапува на меморијата и
ја чита следната мемориска локација каде сега ќе се наоѓа кодот на
операција на следната програмска инструкција која треба да се изврши.
На следните две слики (сл. 10-17. а) и б)) е претставено извршувањето на
истата инструкција (MVI A, 69H) на поинаков и нешто поедноставен начин.
Овој принцип на работа се однесува и на извршувањето на секоја друга
инструкција од програмот кој е запамтен во оперативната меморија. На овој
начин, извршувајќи инструкција-по-инструкција од програмот кој го работи, МКП
практично го извршува целиот програм.
Наведениот пример се однесува на инструкција која е составена од два бајти:
првиот бајт е КОП, додека втор бајт е непосредниот податок кој треба да е
обработен со операцијата наведена во КОП.
Во практиката меѓутоа, МКП извршува и тро-бајтни инструкции кои покрај
кодот на операција како прв бајт содржат уште два бајти со кои се специфицира
податокот кој ќе биде обработен со тој КОП. За да може нив да ги изврши
процесорот освен првото обраќање кон оперативната меморија кога го чита КОП,
на меморијата и пристапува уште два пати.
516 Архитектура на општ микропроцесор

Сл. 10-17. а) Прва фаза на извршување на инструкцијата MVI A, 69H

Сл. 10-17. б) Втора фаза на извршување на инструкцијата MVI A, 69H


Покрај тробајтни инструкции во множеството на инструкции на еден МКП има и
едно-бајтни инструкции. Тоа се такви инструкции кои се составени само од кодот
на операција и кои ОМП ги извршува само со едно читање на меморијата кога го
презема КОП на инструкцијата.
10.8. Временски циклуси за извршување на инструкција
Сите работни, т.е. машински операции потребни за да се изврши било која
инструкција во машински јазик, се изведуваат редоследно, последователно и
сихронизирано со временските моменти кои се точно одредени со работниот или
инструкцискиот такт на процесорот. Ова значи дека секоја работна операција ОМП
ја извршува во прецизно дефинирани временски моменти, и за точно одреден
временски интервал кој трае повеќе такт-периоди чијшто број зависи од самата
инструкција. Познавањето на улогата на временскиот фактор е од суштинска важ-
ност заради полесно разбирањето на фазите при извршувањето на инструкциите.
Архитектура на општ микропроцесор 517

Како клучни поими со кои ќе се запознаеме и ќе ја анализираме нивната улога


од овој временски аспект се:
 Инструкцискиот циклус (IC) го дефиниравме како време, потребно да се
заврши извршувањето на една инструкција. Инструкцискиот циклус на било
која инструкција на ОМП може да се состои од 1 до 5 машински циклуси.
 Машинскиот циклус (MC) е дефиниран како време кое му е потребно на
ОМП да изведе точно одредена машинска операција. За време на машински-
от циклус ОМП може да заврши една операција на читање или запишување
кога пристапува до некоја мемориска компонента, В/И порта, или да
прифати одредено надворешно барање од некој друг периферен уред. Било
кој машински циклус на ОМП може да се реализира за 3 до 6 Т-состојби.
 Т-состојбата (TS) се дефинира како најмал, единечен временски интервал
во временската рамка на работната операција со која се извршува еден
машински циклус. Секоја од Т-состојбите е всушност време кое му е
потребно на процесорот за да ги промени и стабилизира сите логички
состојби на комбинациските и секвенцијалните кола што влегуваат во негов
состав. Сите Т-состојби се синхронизирани со процесорскиот такт и секоја
Т-состојба е еднаква на еден период на тактот земено од една до негова
следна задна ивица.

10.8.1. T-состојба
T-состојбата (Тѕ) или машинската состојба (MS) како што уште се нарекува,
е временски период еднаков на една периода од такт сигналот на ОМП. Секој такт
сигнал трае одреден временски период и се наоѓа на високо напонско ниво на пр.
Vhigh=VH=5V кое одговара на логичка вредност 1 кога се јавува импулс, додека
потоа следува ниско ниво Vlow=VL=0V кое соодветствува на логичката вредност 0,
бидејќи се јавува пауза. Овие две состојби регуларно се повторуваат во еднакви
временски интервали како што е прикажано на сл. 10-18 а) б), од која се гледа
дека такт-сигналот претставува низа на правоаголни импулси и паузи со еднакво
времетраење. Секој импулс започнува со неговиот растечки (преден) раб кога тој
преминува од ниско на високо ниво, и завршува со неговиот опаѓачки (заден) раб
кој преминува од високо на ниско ниво, после што следува паузата со еднакво
времетраење како и импулсот.
Т-состојбата е времетраење од една периода на такт сигналот којашто
започнува од задната ивица на претходниот такт-импулс, и трае исто така до
задната ивица на следниот такт-импулс. Ова е од причина што промената и
стабилизацијата на логичките состојби на синхроните секвенцијални логички кола
кои влегуваат во состав на процесорот се случува помеѓу два опаѓачки раба на
такт импулсот, кога тој преминува од високо на ниско логичко ниво.
Т-состојбата се зема како единечен временски интервал бидејќи тоа е
најмалиот временски интервал кој е потребен за да состојбите на сите комбина-
циски и секвенцијални кола кои влегуваат во состав на МКП (логички кола,
де/мултиплексери, де/кодери, флип-флопови, регистри, бројачи, итн.) да се
променат, воспостават и стабилизираат. Заради важноста на кажаното, ќе
потенцираме уште еднаш дека промената на логичката состојбата на дигиталните
компоненти може да се случи само на задниот раб од тактот, а тоа е на преминот
од високо на ниско ниво. Во перидот помеѓу два сукцесивни такт импулси
518 Архитектура на општ микропроцесор

логичката состојба на компонентите е нестабилна бидејќи тогаш се менува и во


тој период се стабилизира. Ако процесорот може да биде тактиран со сигнал чиј
такт трае покус временски период тоа ќе значи дека ќе му треба помалку време за
да ја промени својата состојба и толку побрзо може да дојде следната побуда.
Имајќи предвид дека реципрочната вредност од работната такт-периода ја
претставува фреквенцијата на тактот, според познатата равенка f0=1/T0, ова ќе
значи дека колку е поголема неговата фреквенција, толку е помала неговата
периода. Бидејќи секој инструкциски циклус се состои од повеќе машински
циклуси, а секој машински циклус од повеќе Т-состојби станува јасно дека
поголемата фреквенција, т.е. помалиот такт, значат и поголема брзина на работа
на процесорот. Бидејќи за ОМП имаме претпоставено дека работната фреквенција
на инструкцискиот такт е еднаква со фреквенцијата на генераторот на такт
сигналот на кој ОМП треба да се приклучи и таа изнесува е 1 MHz, тоа значи дека
ОМП ја синхронизира својата работа на такт-сигнал кој има периода на
повторување од 1s.
Идеалниот временски облик на такт сигналот кој претставува низа на
периодични правоаголни импулси со еднакво времетраење на импулсот и паузата
е прикажан на сл. 10-18. а). Од сликата се забележува дека високото ниво на такт
сигналот се достигнува на предната ивица со скоковита промена, т.е. моментално.
Исто така, и враќањето на сигналот од високо на ниско ниво е моментално и се
случува веднаш со појавувањето на задната ивица на тактот. Меѓутоа, реалниот
облик на такт сигналот се разликува во однос на идеалниот бидејќи растечката и
опаѓачката ивица на сигналот имаат многу кусо, скоро моментално, но сепак
конечно време на траење, кое е потребно сигналот од ниско да премина на високо
ниво, и обратно. На сл.10-18. б) e прикажан реалниот облик на истиот такт сигнал
кој ќе биде употребен при објаснувањето на временските процеси кои се одвиваат
во ОМП, а за тоа ќе се користат временски дијаграми.

Сл. 10-18. а) Идеален и б) реален временски облик тактот и на T-состојбите


Да напоменеме и тоа дека кај реалните МКП работната периода на внат-
решниот инструкциски такт на процесорите, која е еднаква со времетраењето на
Т-состојбите, не мора да е еднаква со периодата на генераторот на такт сигналот.
10.8.2. Машински циклус
Временскиот период кој му е потребен на ОМП за да пристапи на одредена
периферна компонента се нарекува машински циклус. Машинскиот циклус (МС) е
основната машинска (работна) операција која што процесорот може да ја изврши.
Секој машински циклус содржи одреден конечен број на T-состојби. Кога се
наведува периферна или надворешна компонента во рамките на микро-
процесорскиот систем всушност се мисли на некое мемориско интегрирано коло
или влезно/излезна порта. Пристапот до било која од надворешните компоненти
значи дека ќе треба да се изврши операција на читање (прифаќање), или
Архитектура на општ микропроцесор 519

операција на запишување (испраќање) со таа компонента што е адресирана, т.е.


со компонентата со која ОМП стапил во комуникација за да изврши тренсфер на
податоци. Вообичаено поимите читање и запишување ќе се користат за пренос на
податоци со мемориски компоненти, додека прифаќање и испраќање ќе се
однесуваат за тренсфер со влезно/излезни порти. Инаку, во основа, и
прифаќањето на податок е негово читање, исто како што и испраќањето е
запишување. Секој машински циклус (МС) на ОМП се состои од најмалку три до
најмногу шест T-состојби, без оглед на тоа со која периферна компонента ОМП
разменува податоци или која операција ја извршува (читање/прифаќање или
запишување/испраќање).
Машинските циклуси се класифицираат врз база на работните операции кои
се изведуваат од страна на ОМП. Кај ОМП ќе претпоставиме дека тој може да
реализира 7 различни машински операции т.е. седум различни машински циклуси
кои се наведени во следното набројување. Од сите нив само една машинска
операција НЕ вклучува трансфер на податоци преку магистралите помеѓу проце-
сорот и периферната компонента. Машинските циклуси кај ОМП се следните:
1. Циклус на преземање на кодот на операција
2. Циклус на читање на меморијата
3. Циклус на запишување во меморијата
4. Циклус на читање од В/И компонента
5. Циклус на запишување во В/И компонента
6. Циклус на потврдување на прекин
7. Циклус на мирување.

10.8.3. Инструкциски циклус


Времето потребно да се заврши (комплетира, процесира или изврши) една
инструкција веќе го дефиниравме како инструкциски циклус (IC). Сега ќе
потенцираме дека секој инструкциски циклус е составен од конечен број на
машински циклуси кои се потребни за таа инструкција целосно да се изврши.
Бидејќи претходно објаснивме како секоја инструкција се завршува во две фази:
фаза на пре/замање и фаза на извршување станува јасно дека вкупниот број на
машински циклуси, кој е потребен за извршување и на двете фази на
инструкцијата го одредува времето потребно за нејзино комплетирање.

Сл. 10-19. Временски циклуси за извршување на една инструкција


520 Архитектура на општ микропроцесор

За ОМП претпоставуваме дека инструкциите се извршуваат од најмалку за


еден до најмногу за пет машински циклуси, при што на секој машински циклус му
се потребни најмалку три до најмногу шест T-состојби.

10.9. Временски дијаграми


Графичкото прикажување на состојбата на различните контролни сигнали
во одредени карактеристични пинови или точки кои се вклучени и битни за
машинските циклуси во функција од времето, се нарекуваат временски дијаграми.
Тие точно покажуваат како контролните сигнали се синхронизирани и усогласени
со такт-сигналот. Ваквото објаснување ни осветлува и појаснува што, каде и кога
се случува во системот за време на комплетирање на фазите на извршување на
било која инструкција и попрецизно прикажува во кој временски момент кој
сигнал го сменил нивото од активно во пасивно, т.е. кој сигнал се активирал, а кој
се пасивизирал. Едновремено, со ваквите дијаграми се прикажува и временскиот
момент кога адресните и податочните битови, претставени со своите сигнали,
треба да се појавуваат, како и нивното времетраење, т.е. временскиот период во
кој тие треба да стабилни и да не ја менуваат својата логичка состојба.
Сигналите кои се вклучени во секој машински циклус се тактот CLK,
адресните битови чии сигнали се присутни на адресните линии A15 – A0, потоа
податочните битови чии сигнали се присутни на водовите на податочната
магистрала D7 – D0, како и контролните линии за комуникација со периферијата,
а тоа беа сигналите за читање, односно запишување во мемориска компонента
MRD* и MWR* како и сигналите за читање, односно запишување во В/И
компонента IORD* и IOWR*.
За да го добиеме изгледот на временските дијаграми на било која
инструкција, треба да ги знаеме машинските циклуси со кои таа инструкција се
извршува, и истите да ги нацртаме сукцесивно еден под друг според редоследот
на извршување. Временските дијаграми на било која од инструкциите на ОМП се
добиваат со комбинирање, поточно со последователно слепување на различните
машински циклуси со кои се извршува на конкретната инструкција.
При цртањето на временските дијаграми се користи соодветно симболичко
прикажување на временските облици на сигналите дадено во таб. 10-1.

Изглед на
Објаснување на значењето на изгледот - обликот на сигналот
сигналот
Две паралелни полни линии означуваат магистрала – поголем број на
проводни водови со одредена намена со кои се поврзуваат
компонентите на МКП систем. Сѐ додека двете линии се паралелни тоа
значи дека секој сигнал на својата линија ја задржува тековната
состојба: напонското ниво или е високо, или е ниско, но не се менува.

Две полни паралелни линии кои се пресекуваат го означува моментот


кога сигналите на магистралата го менувааат своето напонско ниво од
високо на ниско, или обратно.

Таб. 10-1. Објаснување на изгледот на сигналите применети во временските дијаграми


Архитектура на општ микропроцесор 521

Изглед на
Објаснување на значењето на изгледот - обликот на сигналот
сигналот

Растечка права коса полна линија е индикација дека одреден дигитален


сигнал на некој вод го менува своето напонско ниво од ниско (VL=0V)
на високо (VH=5V).

Опаѓачка права закосена полна линија е индикација дека одреден


дигитален сигнал на некој вод го менува своето напонско ниво од
високо (VH=5V) на ниско (VL=0V).

Двете паралелни испрекинати линии покажуваат дека сигналот на еден


вод или сигналите на водовите од магистралата се наоѓаат во трета
состојба на бесконечно голема отпорност (анг. HiZ, HZ, TriState) бидејќи
низ нив не тече струја – таа е нула, и тие практично се исклучени.

Кругчето го прикажува моментот на некој сигнал кој е причина за


промена на нивото на друг сигнал. Насочената полна линија со стрелка
покажува на на моментот кога сигналот кој е последица на причината
ќе го промени своето ниво.

Таб. 10-1. Објаснување на изгледот на сигналите применети во временските дијаграми


10.9.1. Циклус на пре/земање на кодот на операција
Овој машински циклус ОМП го користи за да го донесе КОП на инструкци-
јата од оперативната RAM меморија во IR на ОМП, и токму заради тоа се вика
машински циклус на пре/земање на КОП. Во овој случај адресата на мемориската
локација каде што е сместен КОП е зададенa од програмскиот бројач. Донесениот
КОП се пренесува во инструкцискиот регистер на ОМП заради негово декодирање
и потоа за комплетирање на инструкцијата. Овој машински циклус е секогаш прв
за секој инструкциски циклус, т.е. при извршување на било која инструкција.

Сл. 10-20. Временски дијаграми на машински циклус на земање КОП а) 4Т- б) 6Т-состојби
522 Архитектура на општ микропроцесор

При реализација на овој циклус линијата RDM* за читање од меморија


треба да се активира заради што ОМП истата ја поставува на ниско напонско ниво
од 0V, кое одговара на ниво на логичка 0 (MRD*=0).
Во општ случај, за комуникација со периферијата на ОМП му се доволни
само 3 T-состојби за да му пристапи на било која периферна компонента,
мемориска или влезно/излезна, но тогаш кога се извршува машински циклус на
земање на кодот на операција на ОМП му е потребно дополнително време од 1
такт период заради негово декодирање, така што машинскиот циклус на
пре/земање на КОП вообичаено трае 4 Т-состојби. Овде ќе потенцираме и тоа
дека овој машински циклус, за одредени КОП како на пр. за инструкциите CALL,
INX Rp и DCX Rp, PUSH Rp и POP Rp трае 6 T-состојби. На сл. 10-20 а) се
прикажани временските дијаграми на машинскиот циклус на земање на КОП кој
трае 4Т-состојби, додека на сл. 10-20 б) даден е циклус кој има 6Т-состојби.
10.9.2. Циклус на читање на меморијата
За да се прочитаат и со тоа земат операндите на инструкцијата од
меморијата кои може да бидат податоци или адреси на податоци ќе биде потребен
посебен машински циклус наречен циклус на читање на меморијата. ОМП го
извршува овој машински циклус кога чита содржина на мемориска локација од
оперативната RAM или Е/P/ROM полупроводничка мемориска компонента.
Во овој машински циклус ОМП преку
меморискиот адресен регистер MAR на линиите на
адресната магистрала ги поставува адресните
битови. Овде се користи програмскиот бројач PC,
но може и инструкцијата да ја дава адресата со
која специфицира каде се наоѓа бараниот податок
во меморијата. Имено, 16-битната адреса се
пренесува во меморискиот адресен регистер MAR и
со тоа веднаш е поставена и на адресните линии.
Адресните битови доаѓаат од програмскиот бројач
PC, покажувачот на стек-меморијата SP, или од
регистерскиот пар H формиран од двата регистри
за општа намена H и L. Потоа, преку вообичаено
читање на меморијата, ОМП гo пре/зема податокот
или неговата адреса од адресираната мемориска
локација. Како и при фазата на читање на КОП,
така и во оваа фаза, линијата MRD* треба да е
активна, т.е. да се наоѓа на ниско напонско ниво на
логичка 0. Времетраењето потребно за да се
Сл. 10-21. Машински циклус заврши земањето на операндот, а со тоа и на овој
на читање на меморијата
машински циклус е 3 Т-состојби.
Генерално гледано, циклусот на земање на КОП и циклусот на читање на
меморијата би требало да траат еднаков временски интервал бидејќи и во двата
случаи се чита од оперативната RAM меморија. Сепак, не е така. Имено времето
потребно за да се финализира циклусот на земање на КОП е подолг за една Т-
состојба бидејќи после неговoто сместување во IR, тој треба и да се декодира, за
што треба уште една, четврта Т-состојба.
Архитектура на општ микропроцесор 523

На слика сл. 10-21 е прикажан машинскиот циклус на читање на


меморијата. Од сликата се гледа дека овој машински циклус е сличен со
претходниот, со таа разлика што сега ОМП не влегува во состојба Т4 бидејќи нема
потреба од декодирање, туку само читање на содржина на адресираната
мемориска локација, која ќе биде сместена во некој од регистрите на процесорот,
но никако во инструкцискиот.

10.9.3. Концептoт на состојба на чекање (WAIT)


За одредени апликации на микро/компјутерскиот систем како периферни
компоненти на ОМП се користат мемориски кола или В/И порти, чија брзина на
работа е поспора. Тие имаат подолго време на пристап и заради тоа не се
компатибилни со брзината на работа на ОМП. Ова значи дека на циклусот на
читање ќе му треба повеќе време за да биде завршен. Во ваквите примени
периферната меморија ќе треба некако да „го натера“ ОМП да почека додека таа
да ги спреми податоците за пренос. Овој концепт се реализира со активирање на
линијата поврзана на влезниот пин на ОМП означен со СПРЕМЕН (анг. READY).
Имено, сѐ додека пинот READY се наоѓа на високо логичко ниво, тоа значи дека
меморискиот чип е спремен за комуникација и трансфер на податоци така што се
врши вообичаено читање на меморија според машинскиот циклус со три Т-
состојби, кој пред малку беше објаснет слика 10-21.
Меѓутоа, доколку на пинот READY се постави ниско напонско ниво од некоја
перифер-на (мемориска или В/И) компонента, тоа значи активирање на оваа
контролна линија што предизвикува ОМП да влезе во т.н. состојба на чекање (анг.
WAIT). На следната слика сл. 10-22 се прикажани временските дијаграми на два
машински циклуси на читање на меморија: првиот е без состојба на чекање (сл.
10-22 а)), а додека вториот (сл. 10-22 б)) се извршува со една состојба на чекање.

Сл. 10-22. Читање од меморија а) со состојба на чекање и б) без неа


524 Архитектура на општ микропроцесор

Од првата слика 10-22 а), се гледа дека таа е идентична со претходната


слика 10-21, само што сега е прикажана логичката вредност на пинот READY. На
претходната слика 10-21 не беше дадено нивото на пинот READY бидејќи беше
претпоставено дека ОМП чита од мемориска компонента која е временски
компатибилна со брзината на процесорот и сигналот READY беше висок.
Со втората слика 10-22 б) се разјаснува концептот на спремност (готовност)
со воведување и активирање на сигналот READY на ниско логичко ниво од страна
на некој надворешен уред. Од сликата се гледа дека за време на Т2-состојбата
ОМП го проверува сигналот READY и ако тој се наоѓа на ниско напонско ниво кое
одговара на логичка нула, на крајот од состојбата Т2 во машинскиот циклус се
внесува состојба на чекање Т-wait и процесорот влегува во неа. Со ова состојбата
на чекање Т-wait станува трета, додека состојбата кога податокот е спремен и
може да се прочита станува четврта Т-состојба. Вакви состојби на чекање ќе
бидат внесувани во овој машински циклус сѐ додека линијата на пинот READY се
држи на ниско напонско ниво од страна на адресираната периферна компонента
од која процесорот треба да прочита податок. Од сликата се гледа дека за време
на состојбата на чекање логичките нивоа, т.е. напонските вредности присутни на
адресната магистрала, податочната магистрала и на контролната магистрала НЕ
се менуваат и нив процесорот ги држи исти за цело време на состојбата на чекање
Т-wait како што биле на крајот од претходната Т2-состојба. Со воведувањето на
состојба на чекање Т-wait на адресираната мемориска компонанта, која е поспора
и временски неусогласена (несинхронизирана) со ОМП, ѝ се овозможува да добие
барем уште еден такт за да може да постави валидни податоци на податочната
магистрала. Последната Т-состојба со која ќе се комплетира циклусот на читање
од меморија ќе се изврши кога на пинот READY ќе се врати високото ниво.
10.9.4. Циклус на запишување во меморијата
ОМП извршува циклуси на запишување во работната RAM-меморија кога
запишува излезни податоци како резултати добиени од некaква обработка.
Во овој машински циклус 16-битната адреса
на мемориската локација е директно или
индиректно зададена во инструкцијата.
Зависно од начинот на адресирање, оваа
адреса се добива од програмскиот бројач PC, или
од покажувачот на стек-меморијата SP, или од
регистерскиот пар H формиран од двата регистри
за општа намена H и L, и преку MAR се поставува
на адресните линии. Потоа едно бајтниот податок
кој треба да се запише се поставува на водовите на
податочната магистрала.
Во оваа фаза треба да се активира линијата
за запишување, а тоа беше линијата MWR* која
треба да е активна, т.е. да се наоѓа на ниско
напонско ниво на логичка 0. Со паѓање на
контролниот сигнал MWR* на ниско ниво веднаш
се овозможува запишување во адресираната
Сл. 10-23. Машински циклус мемориска локација.
на запишување во меморија
Архитектура на општ микропроцесор 525

Имено во моментот кога MWR* ќе падне на ниско ниво, се активира


меморискиот чип и тој ги прифаќа 8-те битови на податокот, кои се присутни на
податочната магистрала и ги запамтува во специфицираната мемориска локација
како нејзина нова содржина. Времето потребно за да се заврши запишувањето на
податокот, а со тоа и на овој машински циклус е 3Т-состојби, исто колку што трае
и циклусот на читање.
На слика 10-23 е прикажан машинскиот циклус на запишување во
меморијата. Од сликата, која ги прикажува временските дијаграми на состојби на
овој машински циклус се гледа сличноста со оние на циклусот на читање, но со
една многу битна разлика дека сега наместо сигналот MRD*, процесорот го
активира контролниот сигнал MWR* поставувајќи го него на ниско логичко ниво.
И кај овој машински циклус на запишување, процесорот може да вметне
една или повеќе состојба на чекање Т-WAIT. Принципот на работа е всушност
ист како кај машинскиот циклус за читање на меморијата кога на крајот од Т2-
состојбата процесорот ја проверува состојбата на пинот READY и реагира
соодветно на нејзиното логичко ниво.

10.9.5. Циклус на читање на В/И компонента


ОМП го извршува циклусот на читање на В/И компонента кога прифаќа
податоци од некој влезен уред, влезна компонента или од наједноставна влезна
порта, а не од меморија. Адресата на портата е дадена во самата иснтрукција како
втор бајт покрај нејзиниот КОП.
Како што може да се забележи од слика 10-24 а) која го претставува
временскиот дијаграм на овој циклус, времето потребно за да се финализира
примањето на податок е 3Т-состојби, што е еднакво со циклусот на читање од
меморија. Покрај ова, операциите кои ги извршува ОМП при читање во В/И
компонента се истите како и при читање на мемориска компонента. Само во овој
случај треба да се активира линијата за читање од В/И уред, а тоа беше линијата
IORD*, која треба да се наоѓа на ниско напонско ниво на логичка 0.

Сл. 10-24. Циклус на а) читање од В/И компонента б) запишување во В/И компонента


526 Архитектура на општ микропроцесор

При извршување на овој машински циклус има уште една многу важна
разлика која се однесува на адресирањето на В/И портата. Имено, при работата со
неко-ја влезна компонента адреси-раната В/И порта има 8- битна адреса, а не 16-
битна како при меморискиот машин-ски циклус за читање.
За ОМП ќе претпоста-виме дека 8-битната адреса на портата се пренесува
преку пониските 8-бита на адресната магистрала A0 – A7, додека логичката
состојба на нејзините повисо-ки 8-бита A8 – A15 е неважна.
И кај овој машински циклус, слично на машинскиот циклус за читање на
меморијата, процесорот може да вметне една или повеќе состојби на чекање Т-
WAIT. Имено, на крајот од Т2-состојбата процесорот ја проверува состојбата на
пинот READY: ако READY се наоѓа на високо ниво, читањето на влезната порта
трае 3Т состојби, но ако READY се наоѓа на ниско ниво, и сѐ додека е така,
процесорот после Т2 дополнува една или повеќе состојби на чекање Т-WAIT.

10.9.6. Циклус на запишување во В/И компонента


Циклусот на запишување во В/И компонента ОМП го извршува кога испраќа
податоци до излезна компонента или до некоја излезна порта, наместо до
меморијата. Адресата на излезната порта, слично како кај циклусот за читање на
влезна порта, е дадена и се содржи во самата инструкција како нејзин втор бајт.
Временскиот дијаграм на циклусот на запишување во В/И компонента е
прикажан на сл. 10-24 б). Од неа се гледа дека и во овој случај процесорот ги
извршува истите операции како и при читање во В/И компонента, но при тоа
активирајќи ја линијата за запишување во В/И уред, IOWR* која ја спушта на
ниско напонско ниво на логичка 0. Покрај ова, на сликата се забележува и тоа
дека времето потребно за да се заврши циклусот на запишување на податок во
В/И компонента изнесува 3Т-состојби, што е еднакво со времињата потребни за
извршување на претходните три машински циклуси.
Што се однесува до адресирањето на В/И портата, и при извршување на
овој машински циклус, таа се адресира со 8-битна адреса, чии битови се
поставени на нискиот адресен бајт A0 – A7, додека состојбата на високиот адресен
бајт A8 – A15 од адресната магистрала е неважна.
Слично на претходните три машински циклуси, и кај овој, на крајот од Т2-
состојбата процесорот ја проверува логичката состојба на пинот READY и доколку
е таа висока, не внесува состојба на чекање, но ако е ниска, вметнува една или
повеќе состојби на чекање Т-WAIT.
Важен заклучок за машинските циклуси на читање, односно запишување,
од/во мемориските или В/И компоненти е дека тие траат еднаков временски
интервал од три Т-состојби и дека кај секоја од нив процесорот може да внесе
состојба на чекање. Овие циклуси меѓусебно се разликуваат во однос на тоа што
се активира, спуштајќи се на ниско ниво, само еден контролен сигнал, кој е
соодветен на својот машински циклус, додека другите три контролни сигнали се
пасивни (неактивни) бидејќи се наоѓаат на високо логичко ниво. Важна разлика
постои и во поглед на адресирањето на меморијата кога на некоја мемориската
локација ѝ се пристапува преку сите 16 адресни битови, додека за адресирање на
влезно/излезните порти се користат само ниските 8 адресни битови.
Архитектура на општ микропроцесор 527

10.9.7. Циклус на потврдување на прекин


Овој машински циклус за прифаќање и потврдување на прекин ОМП го
извршува како одговор на барањето за прекин присутно на линијата на влезниот
пин INTR. Кога на овој пин се најде високо ниво ОМП го извршува овој машински
циклус, читајќи го кодот на операција на RST инструкцијата од некоја надворешна
компонента. ОМП го изведува овој циклус за да добие информација која RST
инструкцијата треба да ја изврши за опслужување на компонентата која побарала
прекин.
Во овој случај пред да се прекине извршувањето на главниот програм и
пред да се пренесе извршувањето на потпрограмот за сервисирање на бараниот
прекин, ОМП ја запамтува содржината на програмскиот бројач кој покажува на
следната инструкција од прекинатиот програм во стек-меморијата. Со ваквиот
принцип на работа, по завршувањето на прекидната субрутина, ОМП од стек-
меморијата ја извлекува запамтената адреса и ја користи како повратна адреса
ставајќи ја во програмскиот бројач за да може да продолжи со извршувањето на
главниот програм и тоа точно со следната инструкција после онаа што беше
последна извршена пред прeкинот.
Од претходно презентираното објаснување логично е да се претпостави
дека за да се заврши циклусот на прифаќање на прекин како прв машински
циклус, ќе се потребни повеќе од 4 Т-состојби, односно овој циклус ќе заврши за 6
Т-состојби. Покрај ова, овој инструкциски циклус ќе се изврши со последователна
реализација на уште два други машински циклуси на запишување, или вкупно три,
како што е прикажано на сл. 10-25.

Сл. 10-25. Циклус за потврдување на прекин за RST


528 Архитектура на општ микропроцесор

Од сл. 10-25 се гледа дека како прв машински циклус М1 е циклусот за


прифаќање на прекин кој е многу сличен со машинскиот циклус на пре/земање на
КОП, со единствена, но многу важна и голема разлика. Тоа е активирањето на
сигналот за прифаќање на прекинот INTA*, кој ОМП го спушта на ниско ниво,
наместо да го активира сигналот за читање од меморија RDМ*, кој го држи
пасивен на високо ниво. За време на овој прв машински циклус се декодира КОП
на инструкцијата RST со што се иницира повикување на едно-бајтна CALL
инструкција до специфицираната локација на векторот.
За време на вториот М2 и третиот М3 машински циклус се изведуваат
циклуси на запишување во меморија, поточно во стек меморијата, каде што се
запишува содржината на програмскиот бројач, а потоа се продолжува со новиот
инструкциски циклус.

10.9.8. Циклус на мирување


Кога ОМП влегува во овој циклус на мирување или паузирање Т-Idle, тој
извршува само внатрешни работни операции. За време на овој циклус на
паузирање сите адресни, податочни и контролни линии ОМП ги носи во трета
состојба на бесконечно голема импеданса (HiZ, HZ, TriState) и во овој циклус ОМП
не извршува никакви недворешни операции. Процесорот не разменува податоци,
не комуницира со периферијата бидејќи ниту чита, ниту запишува во компо-
нентите на неговиот мемориски или В/И систем. За разлика од другите машински
циклуси, за време на овој циклус ОМП е исклучен од магистралите, поточно
самиот се исклучува, заради што не може да комуницира и не разменува податоци
со ниту една периферна компонента. Времето потребно за да се финализира
циклусот на мирување е 4Т-состојби.
ОМП влегува во овој циклус на мирување
 кога му остава време на процесорот да ги прифати и да ги реши барања-
та за прекин од некоја надворешна компонента преку пинот NMI, иli
 кога ја извршува инструкцијата HLT (анг. Halt), т.е. ЗАСТАНИ, СТОЈ.
Контролните линии МRD* и МWR*, како и IORD* и IOWR*, сите се наоѓаат
во трета состојба на висока импенданса со што е овозможено тие линии да бидат
контролирани од други надворешни уреди или компоненти. За време на оваа
состојба пинот INTA* е неактивен, но НЕ е во трета состојба. Единствен излез од
оваа состојба е хардверското ресетирање на процесорот преку пинот RSTIN*.
Циклусот на мирување е сличен со циклусот на читање на КОП, со една многу
важна разлика дека процесорот на крајот од Т2-состојбата го проверува влезниот
пин NMI дали е активиран од страна на некоја надворешна компонента.
Доколку линијата за немаскирлив прекин NMI е активирана процесорот влегува
во состојби Т3 и Т4 кои се разликуваат од оние што се вообичаени и кои водат кон
декодирање на КОП, што е прикажано на дијаграмите од сл. 10-26. Имено, сега
следува нов машински циклус М2 на мирување со траење од 6 Т-состојби во кој се
вклучува RST инструкцијата, се запамтува содржината на програмскиот бројач во
стек-меморијата и во програмскиот бројач се запишува соодветната вектор адреса
како на пр. 0024Н ако процесорот добил барање за прекин на пинот NMI.
Архитектура на општ микропроцесор 529

Сл. 10-26. Циклус на мирување за NMI

Сл. 10-27. Циклус на мирување за HLT


ОМП влегува во циклус на мирување и во случај кога треба да ја изврши
инструкцијата HLT за стопирање на работата. Како што се гледа од сл. 10-27, по
машинскиот циклус со кој ОМП го презема КОП и истиот го декодира, автотматски
се зголемува за еден вредноста на програмскиот бројач PC и веднаш потоа сите
адресни и податочни водови, како и контролните линии МRD*, МWR*, IORD* и
IOWR*, сите се наоѓаат во трета состојба на бесконечно висока отпорност. Во оваа
состојба на мирување пинот INTA* е неактивен, но НЕ се наоѓа во трета состојба.
530 Архитектура на општ микропроцесор

Заклучок за временските циклуси за извршување на инструкција


На крај може да се заклучи дека бројот на машински циклуси потребни за да се
заврши извршувањето на некоја инструкција варира помеѓу еден и пет машински
циклуси што зависи тоа каков е нејзиниот формат: дали е тој еднобајтен,
двобајтен или трибајтен, потоа дали инструкцијата повикува потпрограм, дали
опслужува барање за прекин, или процесорот одговара на барање за директен
мемориски пристап.

Дополнително, секој машински циклус се извршува


најмалку за три, а најмногу за шест T-состојби. При
ова, првите три T-состојби во принцип се исти за секој
машински циклус, а тоа е поставување на адресните
битови во Т1, активирање на сигналот за читање или
запишување во Т2 и појавата на податоците во Т3.
Состојбата Т4 се појавува само ако се работи за
машински циклус на преземање на код на операција и
тоа е дополнително време потребно за декодирање на
преземниот КОП кој после трите состојби се наоѓа во
инструкцискиот регистер. Петтата и шестата Т-состојба
се јавуваат после Т4 само за неколку посебни
инструкции. Поедноставениот дијаграм на состојби за
извршување на било кој машински циклус е прикажан
на следната слика сл. 10-28. Во него не се земени во
вид циклусот на мирување и циклусот на потврдување
на прекин. Состојбата ТR е почетната состојба во која
процесорот влегува единствено со негово хардверско
ресетирање преку влезниот пин RSTIN* кој е активен
Сл. 10-28. Дијаграм на
состојби на машинските
кога на него ќе се донеси ниско напонско ниво.
циклуси
Архитектура на општ микропроцесор 531

ПРАШАЊА И ЗАДАЧИ ЗА ПОВТОРУВАЊЕ


10-1. Кои се двете основни функционални единици кои влегуваат во составот
на секој микро/процесор и објасни ја нивната улога?
10-2. Што е претставено на функционалната блок-шема на ОМП прикажана на
сл. 10-2?
10-3. Наведи ги баферските регистри на ОМП. Која е нивната должина
изразена во битови? Накратко објасни ја нивната улога.
10-4. Која е улогата на инструкцискиот регистер? Која е неговата должина
изразена во битови?
10-5. Каква функција има иструкцискиот декодер со кодерот на машински
циклуси?
10-6. Која е улогата на единицата за контрола и временска синхронизација?
10-7. Која е намената на аритметичко–логичката единица (АЛЕ)? Колкава е
должината на податоците изразена во битови на податоците кои оваа
единица може да ги обработи?
10-8. Колкава е должината на акумулаторот (А) изразена во битови? Објасни
во куси црти која е улогата и за што се користи овој регистер?
10-9. Колку бита има регистерот на знаменца (F) кај ОМП? Дали се користат
сите од нив? Наброи ги знаменцата (flag-овите) со кои располага
ОМП? Од што зависи нивната вредност? (Што е причина за нивно
сетирање/поставување или ресетирање/бришење?) Што покажува овај
регистер?
10-10. Наброj ги регистрите на ОМП за општа и специјална намена и нивната
должина во битови?
10-11. Која е улогата на регистрите за општа намена?
10-12. Дали некои од регистрите на ОМП може да формираат регистерски
парови и ако може, кои се тие?
10-13. Објасни во куси црти која е улогата и за што се користи програмскиот
бројач (РС) во ОМП? Која е неговата должина во битови?
10-14. Објасни во куси црти која е улогата и за што се користи покажувачот на
стек (напластената, магацинската) меморија (стек-поинтерот, ЅР)? Која
е неговата должина во битови?
10-15. Која е улогата на eдиницaта за контрола на прекините?
10-16. Која е улогата на eдиницaта за комуникација преку серискиот
влез/излез?
10-17. Што претставува пин-конфигурацијата на ОМП прикажана на сл.10-10?
10-18. Која е основната разлика и сличност помеѓу функциската блок-шема и
пин-конфигурацијата на ОМП?
532 Архитектура на општ микропроцесор

10-19. Јасно е дека општиот микропроцесор може да работи само ако се


напојува од соодветен извор. Каков напон тој треба да генерира? Кои
пинови се клучни за напојување на ОМП? (Која е улогата на пиновите
за напојување?)
10-20. Кој пин се користи за хардверско ресетирање на ОМП? Што се случува
кога на тој пин се донеси активен сигнал? Какво треба да биде неговото
ниво?
10-21. Кој е пинот што овозможува временска усогласеност и синхронизација
на работата на сите внатрешни функционални единици на ОМП? Каков
сигнал треба да се приклучи на него?
10-22. Што претставува такт генераторот? Што генерира ова коло? Која е
неговата улога?
10-23. Што е магистрала? Со колку магистрали располага ОМП? Наброј кои се
тие? Колкава е нивната ширина? Која е насоката на движење на
битовите кај секоја од нив? Во најкуси црти објасни ја нивната улога.
10-24. Колку пинови ја формираат адресната магистрала на ОМП и која е
нивната улога? Дали се сите тие влезни, излезни, двонасочни или некои
се влезни, а други излезни?
10-25. Колку пинови ја формираат податочната магистрала на ОМП и која е
нивната улога? Дали се сите тие влезни, излезни, двонасочни или некои
се влезни, а други излезни?
10-26. Која е улогата на пиновите од контролната магистрала на ОМП? Дали
сите тие се влезни, или сите се излезни? Можеби се двонасочни? Или
некои од нив се влезни, а други излезни? Наведи ги еден по еден.
10-27. Што значи сериски, а што паралелен пренос на податоци? Која е
разликата помеѓу нив? Објасни ја во најкуси црти разликата помеѓу нив
со претпоставка дека станува збор за трансфер на податок со должина
од 1 бајт (1B=8b) имајќи ја предвид сл. 10-14.
10-28. Кои се пиновите за сериска комуникација и која е нивата улога? За што
се користат линиите SID и SOD? Дали се влезни или излезни?
10-29. Ако знаеме дека работната фреквенција на ОМП е 1 MHz, колку време
треба да помине за сериски влез на податокот а) 247 б) 369?
Претпостави дека секоја цифра е кодирана во а) 4-битниот NBCD (8421)
код б) 8-битниот ASCII код? Кој пин или кои пинови се користат за таа
намена?
10-30. Одговори го претходното прашање ако сега претпоставиш дека
преносот на истите податоци е паралелен, т.е. станува збор за
паралелен влез, односно излез на истите податоци.
10-31. Кои се пиновите за контрола на читањето/запишувањето со
мемориските интегрирани кола и која е нивата улога? Кога и за што се
користат сигналите МRD* и МWR*? Дали се влезни или излезни?
Објасни во куси црти.
Архитектура на општ микропроцесор 533

10-32. Кои се пиновите за контрола на читањето/запишувањето со


Влезно/Излезните (В/И) порти и која е нивата улога? Кога и за што се
користат сигналите IORD* и IOWR*? Дали се влезни или излезни?
Објасни во куси црти.
10-33. Кога и за што се користи сигналот READY? Дали е влезен или излезен?
Објасни во куси црти.
10-34. Објасни ја состојбата на чекање (WAIT) кај ОМП? Кога и зошто се
јавува? Меѓу кои и какви ИК-а се извршува трансфер за да се појави
ваква состојба? Која линија ја има главната улога за појава на ваква
состојба? Каква е состојбата на адресната и податочната магистрала
при ваква состојба?
10-35. Наведи ги пиновите за контрола на трансферот со прекини и објасни го
нивниот начин на функционирање?
10-36. Кога и за што се користи сигналот NMI? Дали е тој влезен или излезен?
Појасни во најкуси црти.
10-37. Кога и за што се користат сигналите INT и INTA*? Објасни во куси црти.
10-38. Наведи ги пиновите за контрола на директниот мемориски пристап
(ДМП) и објасни ја нивната улога.
10-39. Кога и за што се користат сигналите BUSERQ и BUSAK? Објасни во
куси црти.
10-40. Што е директен мемориски пристап (ДМП)? Кои контролни сигнали при
тоа се користат? Меѓу кои ИК-а се остварува ДМП? Која е улогата на
ОМП при тоа? За што се користат сигналите BUSERQ и BUSAK?
Објасни во куси црти.
10-41. Редоследно наведи ги фазите за извршување на било која инструкција.
10-42. Објасни ја фазата на пре/земање на КОП од оперативната RAM RWM
меморија.
10-43. Објасни ја фазата на декодирање на кодот на операција.
10-44. Објасни ја фазата на земање на операнд од меморијата.
10-45. Објасни ја фазата на извршување на инструкцијата.
10-46. Објасни ја фазата на запомнување на резултатот.
10-47. Објасни ги двете фази на извршување на инструкцијата MVI A, 69H
имајќи го во вид сликите сл. 10-16 а) и сл. 10-16 б)?
10-48. Објасни ги двете фази на извршување на инструкцијата MVI A, 69H
имајќи ги во вид сликите сл. 10-17 а) и сл. 10-17 б)?
10-49. Претпостави дека програмскиот бројач на микро/процесорот ја содржи
адресата 1234H и дека треба да ја изврши инструкцијата MVI B, 78H. Со
неа податокот 78H кој се наоѓа во мемориската локација веднаш под
кодот на операција на инструкцијата треба да се пренеси во регистерот
В. Извршувањето на бараната инструкција прикажи го во две фази со
блок-шема според сликите а) сл. 10-16 а) б), односно сл. 10-17 а) б).
534 Архитектура на општ микропроцесор

10-50. Со следните две слики 10-31 a) и б) се прикажани двете фази на


извршување на инструкцијата MOV M, C. Пробај да објасниш во кратки
црти што всушност се случува со извршувањето на оваа инструкција?
Претпостави дека содржината на програмскиот бројач PC е 3000hex,
податокот во акумулаторот А е 10hex, во регистерот В се наоѓа 23hex, во
C е сместен 45hex, додека во H е внесен 67hex, а во регистерот L има
89hex.

Сл. 10-31. а) Прва фаза на извршување на инструкцијата MOV M, C

Сл. 10-31. б). Втора фаза на извршување на инструкцијата MOV M, C


Архитектура на општ микропроцесор 535

10-51. Имајќи ги во вид претходните две слики, на ист начин, прикажи го во


две фази извршувањето на инструкцијата MOV M, B. Во оваа инструкција
единствената разлика во однос на претходната е преземањето на
улогата на регистерот C од страна на регистерот B. За оваа задача
претпостави дека содржината на програмскиот бројач PC е 5000hex,
податокот кој се наоѓа во акумулаторот А е 10hex, податокот во
регистерот В е наоѓа 23hex, во C е 45hex, во H е 67hex и во регистерот L
е 89hex.
10-52. Редоследно наброј ги временските циклуси за извршување на секоја
инструкција?
10-53. Објасни што е T-состојба (Ts)?
10-54. Објасни што е машински циклус (MC)?
10-55. Објасни што е инструкциски циклус (IC)?
10-56. Која е разликата, а која е сличноста помеѓу машински и инструкциски
циклус?
10-57. Објасни го машинскиот циклус на пре/земање на КОП на инструкцијата
како процес. Кога тој се случува и кој регистер ја има главната улога?
10-58. Поединечно објасни ги временските дијаграми на следниве временски
циклуси:
1. На циклусот на пре/земање на кодот на операција според сл. 10-20.
2. На циклусот на читање на меморијата според сл. 10-21.
3. На циклусот на читање на меморијата со состојба на чекање (WAIT)
според сл. 10-22.
4. На циклусот на запишување во меморијата според сл. 10-23.
5. На циклусот на читање на влезна компонента според сл. 10-24 а).
6. На циклусот на запишување излезна компонента според сл. 10-24 б).
7. На циклусот на потврдување на прекин за RST инструкцијата според
сл. 10-25.
8. На NMI циклусот на мирување според сл. 10-26.
9. На HLT циклусот на мирување според сл. 10-27.
10-59. Што прикажува дијаграмот на состојби презентиран на сл. 10-28?
Објасни го во куси црти.
536 Архитектура на општ микропроцесор
11.
ПОВРЗУВАЊЕ НА
О П ШТ
МИКРОПРОЦЕСОР
По изучувањето на оваа тематска целина
 ќе ги познавате основите на формирање на микрокомпјутер
со примена на ОМП;
 ќе ги толкувате основите на поврзување со меморијата и со влез/излез;
 ќе умеете да го објаснувате поврзувањето со меморијата и влез/излез;
 ќе знаете да го објаснувате поврзувањето со ROM и RAM
меморијата;
 ќе го идентификувате адресното декодирање на мемориските ИК-а
и на В/И портите;
 ќе го објаснувате поврзувањето со практични В/И порти;
 ќе се запознаете со адресното декодирање на мемориските ИК-а/чипови ;
 ќе го толкувате поврзувањето на програмираниот пренос на
податоци со В/И компоненти
 ќе ја познавате и разбирате синхронизацијата на В/И пренос
на податоци со употреба на прекини (interrupt-и);
 ќе го разбирате трансферот на податоци со ДМП;
 ќе се запознаете со виртуелната меморија и концептите на
мемориски менаџмент и организацијата на кеш меморијата
538 Поврзување на општ микропроцесор
Поврзување на општ микропроцесор 539

Вовед во поврзување на мемориски и В/И компоненти


Микрокомпјутерот претставува дигитален систем во чиј состав влегуваат
микропроцесорот којшто ги извршува програмите, потоа RAM и ROM мемориски
ик-а кои ја формираат примарната меморија во која се сместени тие програми,
како и В/И компоненти и уреди, кои се меѓусебно поврзани со системската
магистрала. Трите магистрали кои влегуваат во состав на системската магистрала:
податочната, адресната и контролната, се заеднички за сите компоненти, и преку
нив микропроцесорот, во единечен временски интервал, може да разменува
податоци само со една од компонентите која тој ја има адресирано. За да се
пренесуваат податоци помеѓу процесорот и меморијата или В/И компонентите,
адресата која ја генерира микропроцесорот ќе треба, со соодветна логика, да се
декодира за тој да може еднозначно да одреди со која екстерна компонента ќе
врши размена на податоци. Со методските единици во првиот дел од оваа
тематска целина ќе бидат опишани и во поголеми детали објаснети техниките за
поврзување, (мапирање или адресирање) на
 полупроводничките мемориски ИК-а со случаен пристап (анг. RAM) како
што се различните ИК-а чија содржина може да се чита, но во нив и да се
запишува нова (анг. RWM) општо познати како RAM мемориски чипови,
како и мемориските ИК-а од типот ROM каде што припаѓаат PROM, EPROM и
EEPROM чиповите чија содржина може само да се чита, потоа
 наједноставни В/И елементи и компоненти како што се прекинувачите и
тастерите за внесување на влезни податоци, односно светлечките LED
диоди за прикажување на излезните резултати.
Дополнително, ќе бидат дадени и анализирани и суштинските карактерис-
тики на специјализираните интегрирани кола кои ја имаат улогата на интерфејсни
компоненти кои се применуваат за да ги овозможат наведените техники на
поврзување.
Во вториот дел од оваа тема ќе бидат дадени основните принципи кои во
општ случај се користат за поврзување на В/И уреди и посложени периферни
единици. Ќе бидат објаснети базичните концепти на поврзување на различни
периферни уреди на системската магистрала со микро/процесорот со кои се
остварува пренос на податоци помеѓу В/И уредите и оперативната RAM меморија.
Овде се опфатени и двете техники на софтверски контролираниот пренос:
програмски контролираниот и прекидниот влез/излез, но и директниот мемориски
пристап (ДМП) (анг. DMA direct memory access) како единствена техника на
хардверски контролиран пренос.
540 Поврзување на општ микропроцесор

Сл. 11-1. Блок-шема на поврзување на меморијата и В/И уредите со микропроцесорот


Во секој случај, поврзувањето на МКП со мемориските ИК-а и В/И елементи,
склопови, компоненти и уреди општо земено се реализира преку соодветна
логичка комбинациска мрежа, или специјализирани дигитални ИК-а за поврзу-
вање кои со заедничко име се нарекуваат интерфејс или интерфејсни компоненти,
како што е прикажано со блок-шемата од сл. 11-1 на МКП систем во општ случај.
11.1. Означување на мемориските адреси
Меморијата е интегрален и нераскинлив дел на секој микро/процесорски и
микро/компјутерски систем. Процесорот од полупроводничките ROM и RAM
мемориски интегрирани кола со кои се реализира примарната меморија, ги чита
инструкциите кои треба да ги изврши и податоците кои овие инструкции ги
обработуваат. Поконкретно, од ROM-чиповите само ги чита оние програми и
податоци кои за време на вообичаената работа НЕ се менуваат. Дополнително, од
RAM-чиповите со кои се реализира оперативната меморија, многу често,
континуирано за време на својата работа, ги чита инструкциите на различните
програми кои ги внесува програмерот, и со тоа го активира нивното извршување
и ги обработува податоците со кои овие инструкции треба да оперираат и во нив
ги запишува резултатите по извршените операции. Контрола-та на читањето,
односно запишувањето, процесорот ја реализира со соодветнио поставување на
логичките вредности на излезните сигнали кои ги испраќа преку пиновите MRD* и
MWR*. Овде само да се потсетиме за да не заборавиме, дека и инструкциите, и
влезните податоци, како и излезните резултати присутни на податочната
магистрала се во бинарен облик, и тоа како комбинации од битови со фиксна
должина од 1 бајт, т.е. 8 бита (1B = 8b) кои процесорот ги разменува на
паралелен начин преку 8-битната податочна магистрала.
ОМП располага со адресна магистрала чија ширина изнесува 16 бита, т.е.
два бајти од каде произлегува дека максимално расположивиот адресен простор
16 6 10
изнесува 2 = 2 х 2 = 64 х 1K = 64 К мемориски зборови. Како што знаеме од
претходно ОМП е 8-битен процесор, како внатрешно заради тоа што акумулаторот
и другите регистри за општа намена во ОМП се 8-битни, така и надворешно што е
последица од ширината на податочната магистрала која е исто така 8-битна. Ова
значи дека секој мемориски збор треба да има фиксна должина од 8 бита, или 1
бајт во опсегот помеѓу 0000 0000 и 1111 1111. Заклучокот би бил дека ОМП може
16
максимално да адресира 2 = 64 К збора х 1 бајт што изнесува 64 КВ. Овие 64 К
мемориски адреси ќе започнуваат со почетната адреса на првата мемориска
локација, а тоа е адресата 0000 0000 0000 0000, па сѐ до последната адреса 1111
1111 1111 1111.
Поврзување на општ микропроцесор 541

Заради избегнување на долгите бинарни броеви,


16-те адресни, односно 8-те податочни битови
стандардно ќе ги прикажуваме во хексадецимално
означување со кое секоја четворка битови т.е. нибл, се
заменува со една хекса-цифра според добро познатата
таблица за конверзија од бинарен во хекса-децимален
систем, и обратно. Така, секој збор кој е долг еден бајт
(1B = 8b) ќе биде прикажан со две хекса-цифри и ќе
може да добива вредност помеѓу 00hex и FFhex или 00H
и FFH, додека два бајти (2B = 16b) ќе бидат
презентирани со четири хекса-цифри во опсегот од
0000hex до FFFFhex, или од 0000H до FFFFH.
Во текстот што следува фокусот ќе го ставиме врз
принципите и начинот на поврзување на ОМП со
различните RAM и ROM мемориски чипови. Во зависност
од бројот на мемориските кола, нивниот капацитет, како
и начинот на поврзување може да се дизајнира вкупниот
мемориски адресен простор – целокупната меморија која
ќе му стои на располагање на ОМП за што се користат
водовите на адресната магистрала.

11.2. Мемориска мапа (карта) и мемориска адресна табела


Во практичните реализации НЕ секогаш е неопходно ОМП да го користи
целиот расположив адресен простор од 64 КВ. Мемориски простор кој ќе му треба
на ОМП зависи од тоа каква ќе биде практичната примена на МКП систем и од
конкретните софтверски апликации, кои ќе ги извршува.
Бидејќи вкупно расположивиот адресен простор е 64 КВ јасно е дека секое
мемориски ИК ќе добие мемoриски блок во рамките на тие 64 КВ со толку адреси
со колку што е капацитетот на самиот чип. Така адресниот простор ќе биде
распределен на мемориски сегменти соодветни на капацитетот на чиповите. Во
општ случај, во зависност од намената на МКП систем, НЕ е секогаш неопходно и
правилно да се користи само еден EPROМ и еден RAM чип, ниту пак тие да имаат
ист капацитет. Имено, како од примената на МКП систем и конкретнатa
апликација, така и од капацитетот на мемориските кола кои стојат на
располагање понекогаш ќе треба да се употребат повеќе EPROМ и/или RAM
мемориски ИК-а и тоa со различни капацитети.
Од кажаното се наметнува потребата од сликовито прикажување на
максимално расположивиот адресен простор на ОМП во кој ќе бидат исцртани и
означени оние мемориски сегменти кои се покриени, т.е. зафатени од
мемориските ИК-а поврзани во МКП систем. Ваквата претстава ќе овозможи лесно
да се види која мемориска компонента колкав и кој дел од максималниот
адресибилен простор на ОМП таа го покрива. Едноставно кажано, на сликовит
начин ќе се види каде е позициониран секој мемориски чип во адресниот простор
на ОМП и колкав блок од мемориски локации тој зафаќа. Ваквата сликовита
презентација на меморијата за даден МКП систем ја претставува неговата
мемориска карта или мемориска мапа (анг. Memory map) прикажана на сл. 11-2.
542 Поврзување на општ микропроцесор

Сл. 11-2. Мемориска карта на ОМП

Искористениот адресен простор од секој мемориски чип на мемориската


мапа вообичаено се означува со почетната и крајната адреса на неговата прва и
последна мемориска локација во хексадецимално означување. Адресите на сите
други преостанати мемориски локации се подразбира дека се наоѓаат помеѓу овие
две крајни вредности.
Општо земено, адресниот простор кој го покриваат мемориските EPROМ
и/или RAM ИК-а може да биде лоциран било каде во вкупно расположивиот 64 КВ
адресен простор. Меѓутоа, заради тоа што со пуштањето ва работа на ОМП, или
со неговото ресетирање, програмскиот бројач почнува да го извршува програмот
кој е запамтен од почетната адреса 0000H, станува јасно дека првата инструкција
од програмот кој иницијално ќе се извршува треба да биде лоцирана токму на
оваа адреса. Заклучокот би бил дека E/P/ROМ чипот ќе треба да го зафаќа
меморискиот блок ќе започнува од нултата адреса 0000H, додека оперативнта
меморија која се реализира со RAM ИК-а ќе ги зафаќа блоковите со повисоки
адреси после највисоката адреса на E/P/ROМ чипот.
На сликите сл. 11-3 а) и б) се прикажани два примери за мемориски мапи
на два различни МКП системи формирани околу ОМП кој максимално располага со
64 КВ адресен мемориски простор. Во првата мемориска карта се искористени
само 8 КВ со 2 мемориски интегрирани кола, секое со капацитет од по 4 КВ,
додека во вториот пример се покриени 16 КВ со 4 мемориски интегрирани кола,
исто така секое со капацитет од по 4 КВ.
Од сликите може веднаш да се воочи дека:
 За првиот систем првите 4 КВ мемориски адресен простор се покриени
со EPROM-чипот, додека вторите 4 КВ адреси ги зафаќа RAM ИК;
 За вториот систем првиот мемориски блок од 4 КВ е покриен од страна
на едно PROM ИК-а, додека другите три чипа се RAM мемо-риски ИК-а
кои зафаќаат уште 12 КВ мемориски адресен простор;
Поврзување на општ микропроцесор 543

Сл. 11-3. Мемориски мапи на ОМП а) 4kEPROM+4kRAM б) 4kPROM+12kRAM


Првиот од вака конфигурираните МКП системи располага само со 4 KB
мемориски простор за апликативни програми, додека вториот со 12 KB. Преоста-
натиот мемориски капацитет на ОМП од 56 КВ кај првиот, односно 48 КВ кај
вториот систем не е искористен и може во иднина, ако има потреба за тоа, да се
искористи за проширување на меморијата на овие два МКП системи.
Мемориските блокови со кои се позиционираат EPROM и RAM мемориските
чипови во мемориската мапа на МКП систем не мора секогаш задолжително да
бидат сместени во последователни мемориски адреси еден после друг. Така на
пример, ако EPROM-от е мапиран, т.е. ги покрива мемориските адреси од 0000H
до 0FFFH, RAM меморијата не мора да се лоцира веднаш под него почнувајќи од
мемориска адреса 1000H, како што беше дадено во претходниит пример на сл. 11-
3 а). Каде ќе биде лоцирана оваа мемориска компонента во мемориската мапа на
процесорот зависи исклучиво од хардверското поврзување кое ќе го
импелемнтира дизајнерот на МКП систем. Поконкретно, адресниот мемориски
простор покриен со RAM-от кој изнесува 4 КВ и на слика 11-3 а) почнува од
адреса 1000H може да го сместиме и на друго место и со тоа да зафаќа друг
мемориски блок на адреси, во преостанатиот адресен простор после адресата
1000H, но секако неговата најголема адреса не смее да биде поголема од
последната адреса на максимално адресибилниот простор на ОМП која е FFFFH.
Покрај мемориската карта како сликовита презентација на меморијата на
даден МКП може да се примени и табеларна презентација со т.н. мемориска
адресна табела или табела на адреси на меморискиот систем. Ваквата табела е
малку покомпактна бидејќи ги прикажува само зафатените мемориски сегменти
преку нивната почетна и крајна адреса, но при тоа покрај хекса-децималната
нотација се користи и бинарното означување. Така на пр. табелата 11-1 ја
прикажува мемориската табела на адреси за мемориската мапа од сл. 11-3 а), која
покрива два мемориски блока на адреси од по 4 КВ.
544 Поврзување на општ микропроцесор

Битови на адресната магистрала


Нибл N3 Нибл N2 Нибл N1 Нибл N0 HEX
А А А А А А А А А А А А А А А А
Мемориски ИК-а Адреса
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Почетна адреса на
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0000H
EPROM
Крајна адреса на
0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0FFFH
EPROM
Почетна адреса на
0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1000H
RAM
Крајна адреса на
0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1FFFH
RAM

Таб. 11-1. Мемориска адресна табела на ОМП систем со 4kEPROM+4kRAM од сл. 11-3 а)
За домашна работа пробајте да ја прикажете мемориската адресна табела
која ќе се однесува на мемориската мапа од сл. 11-3 б). Таа ќе го има истиот
облик со таб. 11-1, но ќе содржи уште два мемориски чипови, така што ќе треба
да ги содржи почетните и крајните адреси на мемориските сегменти кои ги
зафаќаат четирите мемориски интегрирани кола: PROM-1, RAM–1, RAM–2 и RAM–3
и тоа сите од по 4 КВ.

11.3. Основни концепти за поврзување на мемориски ИК-а


Како мемориски компоненти кои ќе се поврзат на ОМП за да биде формиран
неговиот мемориски систем се користат полупроводнички мемориски ИК-а со
случаен пристап (анг. Random Access Memory, RAM) како што се различните
видови на ROM (анг. Read Only Memory) чипови чија содржина може само да се
чита и која не се брише со исклучување на напојувањето: PROM, EPROM, EEPROМ.
Покрај нив, овде припаѓаат и RWM (анг. Read Write Memory) чиповите, попознати
само со поимот RAM-чипови, чија содржина може да се чита, или во нив да се
запишува нова, но чија содржина се брише кога ќе се исклучи напојувањето.
Вообичаено, во практиката, мемориските интегрирани кола, чија содржина може
само да се чита, се нарекуваат ROM чипови, додека оние мемориски кола, чија
содржина може да се чита, но и да се запишува во нив нова, се познати како RАM
чипови. Во врска со тоа, на почетокот ќе истакнеме неколку важни забелешки.
Кога се работи за поврзување на мемориски компоненти треба да се знае
дека на ОМП треба да биде поврзан соодветен хардвер кој претставува одредена
декодерска логика, која ќе обезбеди пристап до полупроводничките мемориски
чипови преку декодирање на адресните информации со:
1. Селектирање, т.е. адресирање на мемориското ИК (меморискиот чип),
2. Идентификување на адресата на конкретната мемориска локација,
3. Овозможување на читање или запишување на нејзината содржина.
Поврзување на општ микропроцесор 545

Бидејќи во единечен временски интервал микропроцесорот може да чита


податоци од, или да запишува во само една мемориска компонента, декодерската
логика ќе треба еднозначно да ја декодира адресата која е генерирана од страна
на микропроцесорот. Заради ова, на секоја мемориска компонента процесорот
треба да може да ѝ пристапи независно.
За да ги контролира операциите на читање од, или запишување во
мемориските чипови, процесорот испраќа соодветни котролни сигнали преку
пиновите MRD* и MWR*. Со спуштање на логичкото ниво на нула на еден од овие
два контролни сигнали, процесорот адекватно активира еден од нив, што зависи
од тоа дали ќе чита од некоја мемориска компонента или ќе запишува во неа.
Во продолжение ќе бидат опишани и објаснети базичните концепти за
поврзување на мемориските ИК-а познати како техники за адресно декодирање
кои се применуваат речиси во сите реални микро-процесорски системи и кои се
класифицираат во две поголеми групи, и тоа:
 Техника на апсолутно или целосно адресно декодирање, и
 Техника на линеарно, парцијално или делумно декодирање.
Како што ќе видиме понатаму, заедничко и за двете овие техники за
декодирање на адресите е поврзувањето на ниските адресни линии чии битови
одат директно на адресните пинови од мемориските интегрирани кола. Разликата
помеѓу целосното и делумното адресирање е во декодирањето на адресните
битови кои се јавуваат на повисоките адресни водови.
Претходно именуваните техники на принципиелно ист начин, освен на
мемориските ИК-а, се применуваат и за адресирање на В/И компоненти.
11.4. Апсолутно декодирање на адресите
Со техниката за апсолутно или целосно декодирање на адресите се
декодираат сите адресни линии од повисок ред кои не можат директно да се
поврзат на адресните пинови на мемориското ИК и со тоа чипот се селектира само
за единствена комбинација од конкретни логички нивоа на овие повисоки адресни
линии. Кога се применува ваквата техниката за избирање на мемориските
интегрирани кола со кои процесорот ќе разменува податоци секој чип е
еднозначно селектиран со единствена адреса – ниту една друга комбинација од
битови не може да го селектира тој чип.
На сл. 11-5 е прикажана блок-шема на вакво целосно адресно декодирање
во општ случај при што е претпоставено дека за внатрешно декодирање на
локациите на мемориското ИК се користат 12 адресни линии што значи дека
станува збор за чип со организација 212 збора х 1В, т.е. со капацитет од
212=22210=4KВ. Сите преостани повисоки 4 адресни водови целосно се декодираат
и потоа излезниот сигнал од декодерската логика се поврзува на пинот за
селекција CS* на меморискиот чип. На пиновите за контрола на читање и
запишување кај RAM-от се поврзуваат двете излезни линии MRD* и MWR* од
процесорот кои се едни од повеќето на контролната магистрала. При поврзување
на E/P/ROM-от се приклучува само едната контролна линија на влезот за читање.
546 Поврзување на општ микропроцесор

Сл. 11-5. Логичка шема на целосно адресно декодирање


Во примерот на сл. 11-5 само една од 24=16-те можни адресни комбинации
ќе го селектира мемориското ИК. Преостанатите 15 комбинации можат да се
искористат за поврзување на уште 15 вакви чипови.
Апсолутното или целосното декодирање вообичаено се користи кај МКП
системи кои имаат потреба од поголема меморија, што значи дека МКП ќе биде
поврзан со повеќе мемориски компоненти и ќе го користи поголемиот дел од
неговиот максимален адресен простор што му стои на располагање, кој за ОМП
изнесуваше 64КВ. Покрај тоа, целосното декодирање на адресите го олеснува
поврзувањето на дополнителни мемориски чипови заради потребата од
евентуално проширување на меморискиот капацитет на МКП систем.
За полесно да се разбере оваа техника на апсолутно или целосно
декодирање на адресите ќе анализираме два прилично едноставни примери.
Имајќи во вид дека и во двата примери за декодирање на адресните сигнали со
кои се селектираат меморииите се применува познатото декодерско ИК со ознака
74х138, најпрво во куси црти ќе го објасниме принципот на неговата работа, а
потоа ќе ги анализираме примерите.
ИК 74х138, 3-во-8 декодер: Што се однесува до ова декодерско ИК, на
сл. 11-6 а) е прикажана неговата внатрешна логичка шема, на сл. 11-6 б)
неговиот логички и функционален симбол, на сл. 11-6 в) изгледот на самото ИК во
неговото DIP-куќиште со распоредот на пиновите, додека таб. 11-2 ја претставува
таблицата на функционирање на овој декодер. Принципот на работа на декодерот
најлесно се заклучува од неговата функцинална таблица:
 Колото функционира само ако сите три контролни влеза за дозвола се
активни што ќе важи ако и само ако G1*=0, G2*=0, и G0=1. Ако макар и
еден влез од трите наведени се наоѓа на друго логичко ниво, декодерот ќе
биде пасивен и сите негови 8 излези ќе се наоѓаат на високо ниво на 1-ца.
 Ако на декодерот му се овозможи да работи со комбинацијата G1*=0,
G2*=0, и G0=1, тогаш за секоја кодна комбинација на трибитната влезна
побуда А, B, C ќе се активира соодветниот декодиран излез така што тој ќе
се спушти на ниско ниво на логичка 0. Сите други излези ќе бидат пасивни
на високо ниво;
Поврзување на општ микропроцесор 547

Сл. 11-6. Декодерско ИК 74х138 а) Внатрешна логичка шема б) Логички симбол в) Изглед
на DIP – куќиштето

Влезни пинови Влезни пинови за


Излезни пинови – Активeн е оној што се
за селекција на адресирање и селекција
наоѓа на ниско ниво на логичка нула (L)
ИК чипот 74х138 на еден од 8-те излези
G1 G2 G0 A (20) B (21) C (22) Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7
H X X X X X H H H H H H H H
X H X X X X H H H H H H H H
X X L X X X H H H H H H H H
L L H L L L L H H H H H H H
L L H H L L H L H H H H H H
L L H L H L H H L H H H H H
L L H H H L H H H L H H H H
L L H L L H H H H H L H H H
L L H H L H H H H H H L H H
L L H L H H H H H H H H L H
L L H H H H H H H H H H H L
Забелешка:
H – високо напонско ниво на логичка единица, (анг. H – High voltage level)=+5V,
L – ниско напонско ниво, (анг. L – Low voltage level) )=0V
X – неважно, небитно, може да биде било што (1 или 0), (анг. don’t care)
Таб. 11-2. Таблицата на функционирање на 3-во-8 декодерот 74х138

Пример-1:
Првата слика означена како сл. 11-7 прикажува еден пример со кој на ОМП
се поврзани две мемориски интегрирани кола: еден EPROM и еден RAM чип, и
двата со капацитет од по 8 КВ организирани во 8К збора х 8 бита = 8K x 8b = 8K x
1B = 8KB и тоа со апсолутно декодирање на адресите.
548 Поврзување на општ микропроцесор

Ваквата техника на адресно декодирање може да се претпостави од


презентираната логичка шема на сликата заради тоа што сите 16 линии од
адресната магистрала се декодираат: ниските 13 се поврзани директно на
адресните пинови на мемориските чипови, додека преостанатите 3 највисоки
адресни линии се поврзани и се декодираат со ИК 74х138.

Сл. 11-6. 8КВ EPROM и 8КВ RAM поврзани на ОМП со апсолутно адресно декодирање
Како мемориски интегрирани кола се претпоставени реални мемориски
чипови со следниве ознаки: за 8KB EPROM е употребено ИК 2764, додека за 8KB
RAM е поврзано ИК 6264. И двете мемориски кола имаат капацитет од 8KB бидејќи
се организирани како мемориски блокови од по 8 K мемориски зборови, секој со
должина од 8b = 1B (8К х 1В). Токму заради ваквата организација на секое
мемориско коло треба да се поврзат ниските 13 адресни линии преку кои ќе се
селектира било која мемориска локација во рамките на секој чип чија должина е
8b = 1B. Ваквата поврзаност на најниските 13 адресни линии овозможува
внатрешна или интерна селекција на мемориските локации. Имено, меморискиот
капацитет на ИК организирано во 8К зборови х 1 В може да се претстави и на
3 10 13
следниот начин (8 х 1КВ)= (8 х 1024) В = (2 x2 ) В = 2 В, од каде станува јасно
зошто секое мемориски коло има по 13 адресни пинови.
Според претходно наведеното 13-те најниски адресни водови А12А11, ...,
А2А1А0 ќе треба да се поврзат директно на адресните линии на секој од
чиповите. Дополнително, трите повисоки адресни водови А15А14А13 ќе бидат
целосно декодирани за да ги генерираат соодветните сигнали CS1* и CS2* со кои
ќе се врши избор на некој од мемориските чипови.
За целосно декодирање на преостанатите 3 линии од адресната магистрала
кои ги носат повисоките три адресни бита се користи со ИК 74х138 кое
претставува 3-во-8 декодер/демултиплексер со 3 контролни сигнали за дозвола
Поврзување на општ микропроцесор 549

кои ја овозможуваат неговата работа. Со ваквото поврзување целиот адресен


простор на ОМП од 64КВ се фактички се разделува на 8 мемориски сегменти,
секој од по 8 КВ со што секоја излезна линија од декодерот можеме да ја
искористиме за поврзување на 8 мемориски чипови од по 8 КВ со што би имале
целосно декодирање на адресите.
Во примерот, на декодерот ќе треба за цело време да му биде овозможена
работата и тоа веднаш со појавата на адресните битови. Овој услов ќе се
исполни доколку контролните сигнали за дозвола се поврзат така што на влезот
G0 се поврзи на високо напонско ниво на напојувањето +Vcc, додека другите два
сигнали се приклучат на ниско напонско ниво од 0V (на референтен нулти
потенцијал, на „маса“, GND).
3 адресни влезни битови за 13 адресни битови на
Селекција на декодерското ИК 74х138
селекција на 1 од 8-те излези мемориските ИК-а
G0 G1* G2* C B A А12, А11,… A2, A1, A0
1 (H, +Vcc) 0 (L, GND) 0 (L, GND) А15 А14 А13 А12, А11,… A2, A1, A0

Битови на адресната магистрала


Мемориско ИК Избор на МИК Селекција на мемориска локација во МИК HEX
/Капацитет Адреса
А А А А А А А А А А А А А А
А9 А8
15 14 13 12 11 10 7 6 5 4 3 2 1 0
Почетна адреса
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0000H
на EPROM (8КВ)
Крајна адреса на
0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1FFFH
EPROM (8КВ)
Почетна адреса
0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 2000H
на RAM (8КВ)
Крајна адреса на
0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2FFFH
RAM (8КВ)

Таб. 11-3. Мемориска адресна табела на 8К EPROM и 8К RAM поврзани со апсолутно ад-
ресно декодирање
Бидејќи пинот за селекција на меморискиот EPROM чип е поврзан на
излезот Y0 од декодерот истиот ќе биде селектиран само ако сите три повисоки
адресни линии се најдат на ниско логичко ниво, т.е. само ако биде исполнет
условот А15А14А13=000. Само за таа бинарна комбинација на излезот Y0 ќе се
добие ниско ниво потребно за да го активира EPROM-от, а сите други излези ќе
бидат високи и со тоа пасивни. Слично, затоа што излезот Y1 од декодерот е
поврзан на чип-селекторскиот сигнал CS* на RAM интегрираното мемориско коло,
оваа компонента ќе биде селектирана само ако на високите адресни линии
А15А14А13 се појави бинарната комбинација А15А14А13=001. Само тогаш на
излезот Y1 ќе се добие ниско напонско ниво, а сите други излези ќе бидат на
високо напонско ниво и со тоа неактивни.
550 Поврзување на општ микропроцесор

Табелата 11-3 ја претставува мемориската


адресна табела, додека сликата сл. 11-8 ја
прикажува мемориската мапа на вака дизајнираниот
мемориски систем на ОМП.
Од поврзувањето, од мемориската мапа и од
табелата на мемориски адреси е видно дека од 8-те
излези на декодерот се искористени само два,
додека преостанатите шест се неупотребни. Ова
значи дека овој МКП систем користи само 16 KВ
меморија, а преостанатите 48 КВ се неискористени.
Но, лесно се приметува дека меморијата може лесно
да се прошири до максималниот мемориски
капацитет од 64 КВ со додавање на уште 6
мемориски ИК-а од по 8 КВ.
Сл. 11-8. Мемориска мапа на
дизајнираниот мемориски систем
со 8К EPROM и 8К RAM поврзани со
апсолутно адресно декодирање

За целосно декодирање на повисоките 3 адресни линии наместо декодерско


ик може да се употреби и посебно изведена декодерска логика реализирана со
комбинациска мрежа од логички кола, а соодветно избрани од дигиталните
интегрирани кола од фамилијата 74хх.
Пример-2:
Логичката шема претставена на сл. 11-9 прикажува уште еден едноставен
мемориски систем за ОМП кој содржи две мемориски интегрирани кола со
капацитет од по 1 КВ: еден EPROM и еден RAM со целосно адресно декодирање за
што ќе се увериме по спроведената анализа.
Во примерот се употребени два мемориски чипа организирани во 1К збора
од по еден бајт (1 К х 1В), заради што и на едниот и на другиот директно ќе им ги
поврземе пониските 10 линии од адресната магистрала на ОМП која брои вкупно
16 адресни водови. Имено, 1К различни адреси се добиваат со 10 адресни пинови
затоа што 210=210=1х1024=1х1К = 1K. Со ова, за адресирање на мемориските
локации во рамките на секој мемориски чип ќе бидат искористени најниските 10
адресни линии, но ќе останат уште 6 високи адреси. Тие ќе треба да бидат
декодирани со соодветна логика или декодерско ИК. За декодирање и во овој
пример ќе биде искористено познатото и многу често користено 3-во-8 декодерско
ИК 74х138 на кое што се поврзани сите 6 останати повисоки адресни водови.
Три од нив, и тоа А12, А11, А10, се поврзуваат на контролните влезови за
селекција и овозможување на работа на декодерот G1*, G2*, додека влезот G0 се
држи цело време на високо ниво со напојувањето +Vcc. А12 и А11 одат на G1*
преку ИЛИ логичко коло (А12+А11=G1*), додека А10 се поврзува директно на G2*
(А10=G2*). Со ваквиот начин на поврзување на декодерот ќе му биде дозволена
работа само ако логичката вредност на сите три линии А12, А11, А10 биде нула,
т.е. само ако е исполнет условот А12,А11,А10 = 000. Дополнително, највисоките
три адресни водови А13, A14, A15 се приклучуваат на влезовите за селекција А,
В, С (А13=А, А14=В, А15=С) со што тие се употребуваат за избор на еден од 8-те
излези на декодерот каде можат да се поврзат најмногу до 8 мемориски чипови.
Поврзување на општ микропроцесор 551

Сл. 11-9. Мемориски систем со апсолутно адресно декодирање со 1К EPROM и 1К RAM


Табелата 11-4 ја претставува мемориската адресна табела, додека сл. 11-10
ја прикажува мемориската карта на вака развиениот мемориски систем на ОМП.

Од нив се забележува дека и EPROM и RAM


чиповите, иако имаат капацитет од само по 1
КВ, секој од нив посебно покрива мемориски
простор од по 8 КВ. Попрецизно, меморискиот
простор кој стои на располагање за овој МКП
систем е 2 КВ, но при тоа се зафатени 16 КВ.
Во Секој мемориски блок од по 8 КВ кој му
одговара на еден декодерски излез, реално се
користи по 1КВ, додека по 7 КВ се
неискористени и НЕ можат да се употребат
бидејќи тие не постојат во мемориската мапа.
Ваквото поврзување остава можност
Сл. 11-10. Мемориска карта на единствено за мемориско проширување со
развиениот мемориски систем со само уште на 6КВ: на секој од 6-те преостанати
1К EPROM и 1К RAM поврзани со излези од декодерот по еден мемориски чип од
апсолутно адресно декодирање по 1 КВ.

3 адресни влезни битови за 10 aдресни битови на


Селекција на декодерското ИК 74х138
селекција на 1 од 8-те излези мемориските ИК-а
G0 G1* G2* C B A A9, A8 … A2, A1, A0
1 (H, +Vcc) (А12+A11) A10 А15 А14 А13 A9, A8 … A2, A1, A0
552 Поврзување на општ микропроцесор

Битови на адресната магистрала


Селекција на Избор на ИК Селекција на мемориска локација во HEX
Мемориски ИК-а
МИК (CS1/2*) 74х138 (G012) МИК
/Капацитет Адреса
А А А А А А А А А А А А А А
А9 А8
15 14 13 12 11 10 7 6 5 4 3 2 1 0
Почетна адреса на
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0000H
EPROM (1КВ)
Крајна адреса на
0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 03FFH
EPROM
Почетна адреса на
0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 2000H
RAM (1КВ)
Крајна адреса на
0 0 1 0 0 0 1 1 1 1 1 1 1 1 1 1 23FFH
RAM

Таб. 11-4. Мемориска адресна табела на 1К EPROM и 1К RAM поврзани со апсолутно


адресно декодирање
Пример-3:
Како трет пример за поврзување на мемориски ИК-а со апсолутно
декодирање ќе разгледаме едноставен МКП систем за кој ќе претпоставиме дека
треба така да биде дизајниран што ќе располага со 1KB RAM како работна
меморија, но при тоа на располагање да стојат само две RAM мемориски ИК-а
2114 со капацитет од 512 В чија организација е 1 К збора х 1 нибл(=4b) (1К х 4b).
За декодирање на адресите повторно е искористен декодерот 74х138, во принцип,
според истата логичка шема од претходната слика. Единствената разлика е во
начинот на поврзување на адресните линии за селекција на ова декодерско коло.
Имено, иако сега G1*=A12 наместо G1*=A12+A11 и G2*=A10+A11 наместо
G2*=A10, тоа ништо не менува при селекцијата на декодерот, ниту пак при
изборот на мемориските кола.
Логичката шема за начинот на поврзување е прикажанa на сл. 11-11 и на
неа ќе видиме дека е извршено „хардверско составување“ на две мемориски ИК
едно-до-друго и со тоа „хоризонтално слепување“ на мемориските сегменти кои
тие ги зафаќаат во мемориската карта.
Најнапред да се потсетиме дека ОМП, со кого треба да го дизајнираме
бараниот систем, е 8-битен МКП што значи дека податоците кои внатрешно ги
обработува и надворешно ги разменува со периферните компоненти треба да
имаат должина од 1 В. Од друга страна, расположивите мемориски чипови се
организирани во нибли, во мемориски локации со должина од 4 бита, што значи
дека адресирањето на една, било која, нивна мемориска локација ќе значи
читање, или запишување на 4-битен податок, а не 8 битен каков што му треба на
процесорот.
За да го решиме овој проблем ќе треба да употребиме две мемориски ИК-а
2114 организирани во четворки со капацитет од 512 В (1 К збора х 1 нибл (=4b)
(1К х 4b).
Поврзување на општ микропроцесор 553

Нив ќе ги поврзиме на тој начин што од едното ИК процесорот ќе го добива


повисокиот нибл, повисоката 4-ка битови од потребниот бајт, додека од другиот
мемориски чип ќе го добива понискиот нибл, пониската 4-ка битови.

Сл. 11-11. Мемориски систем со апсолутно адресно декодирање со две RAM ИК-а со
организација 1Кх4

При ова ќе треба едновремено да бидат


селектирани истите мемориски локации, со
иста адреса и од едниот, и од другиот
мемориски чип. Со ова поврзување ќе
добиеме „слепување“ на висок и низок нибл
(две 4-ки битови, висока и ниска) со иста
адреса од различни мемориски ИК-а во
единствен 8-битен податок. Со ваквото
поврзување се остварува слепување на
висока и ниска четворка и добивање на еден
Сл. 11-12. Мемориска карта на бајт за секоја адресирана мемориска лока-
развиениот мемориски систем со две ција, што сликовито може да се види на сл.
RAM ИК-а од по 1Кх4 поврзани со 11-12.
апсолутно адресно декодирање

3 адресни влезни битови за 10 aдресни битови на


Селекција на декодерското ИК 74х138
селекција на 1 од 8-те излези мемориските ИК-а
G0 G1* G2* C B A A9, A8 … A2, A1, A0
1 (H, +Vcc) А12 (А10+A11) А15 А14 А13 A9, A8 … A2, A1, A0
554 Поврзување на општ микропроцесор

Битови на адресната магистрала


Селекција на Избор на ИК Селекција на мемориска локација во HEX
Мемориски ИК-а
МИК (CS1/2*) 74х138 (G012) МИК
/Капацитет Адреса
А А А А А А А А А А А А А А
А9 А8
15 14 13 12 11 10 7 6 5 4 3 2 1 0
Почетна адреса на
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0000H
RAM-1 (1К x 4)
Крајна адреса на
0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 03FFH
RAM-1 (1К x 4)
Почетна адреса на 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0000H
RAM-2 (1К x 4)
Крајна адреса на 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 03FFH
RAM-2 (1К x 4)

Таб. 11-5. Мемориска адресна табела на две RAM ИК-а од по 1Кх4 поврзани со апсолутно
адресно декодирање

11.5. Линеарно декодирање на адресите


Во помалите МКП системи каде што ОМП нема потреба од поголем
мемориски капацитет за извршување на програмите и каде што не се очекува
идно дополнително мемориско проширување, наместо хaрдверска имплементација
на декодерско ИК, или изведба на декодерска логика, може директно без нивно
декодирање, или со многу поедноставна декодерска логика, да се искористат
повисоките адресни линии и со нив директно да се селектираат мемориските
чипови. Ваквиот начин на поврзување на мемориските ИК-а, со кој се елиминира
потребата од целосно декодирање на повисоките адресни сигнали, се нарекува
линеарно, парцијално или делумно декодирање на адресите.
Кога се применува делумното адресно декодирање на мемориските чипови
секое мемориско ИК ќе биде селектирано повеќезначно, со повеќе различни
адреси заради што за секој вака селектиран мемориски чип ќе се појави
мултиплициран адресен простор. Меморискорото коло ќе засенува повеќе
мемориски сегменти во адресниот простор на ОМП, при што секој скриен блок ќе
е со капацитет колку што е адресибилниот простор на самото мемориско ИК
коешто е адресирано на ваков начин. Вкупниот број на скриени мемориски
сегменти Nsms се одредува со помош на бројот на изоставени повисоки адресни
линии k кои се земаат како битови, според равенката Nsms=2k. Првиот мемориски
сегмент за кој сите k-битови се нули, се нарекува основен или примарен, додека
останатите (Nsms-1) сегменти се покриени со него.
Сликата 11-12 ја прикажува истата блок-шема како онаа на сл. 11-5 со која
еден мемориски чип од 4 КВ е поврзан со МКП во општ случај, но сега е
применето парцијално линеарно адресно декодирање. Овде пониските адресни
линии се поврзуваат на ист начин како на претходната слика – директно на
адресните пинови од мемориското ИК. Што се однесува до влезовите за читање и
запишување кај RAM-от, односно само на влезот за читање кај EPROM-от и тие се
поврзуваат на ист начин како на претходно наведената слика.
Поврзување на општ микропроцесор 555

Сл. 11-12 Блок-шема на парцијално линеарно адресно декодирање

Дека станува збор за линеарно адресирање лесно се забележува од


декодирањето на повисоките адреси бидејќи сега се декодираат само две, а не
сите 4-те преостанати високи адресни линии. Во овој случај, излезниот сигнал од
декодерската логика кој се поврзува на пинот за селекција на меморискиот чип
CS* ќе се избере со 4 адресни комбинации од сите 16 можни. Имено, бројот на
неупотребени високи адресни линии е k=2 од каде што следува дека овој
мемориски чип од 4КВ покрива Nsms=22=4 мемориски блока, секој од по 4КВ. Ова
значи дека мемориското ИК зафаќа 4 КВ мемориски адресен простор, но сокрива
уште три пати по толку, или вкупно 16 КВ. Поинаку кажано, на овој начин можат
да се поврзат само уште 3 вакви мемориски ИК-а. Доколку имавме оставено само
една адресна линија, бројот на покриени сегменти ќе беше само два (Nsms=21=2),
но ако имавме оставено три од повисоките адреси вкупниот број на зафатени
мемориски блокови ќе беше осум (Nsms=23=8).
Техниката на парцијалното декодирање на адресите полесно може да ја
разбереме повторно со анализа на два поедноставни примери.

Пример-1
На сл. 11-13 е прикажано поврзување на еден EPROM и еден RAM чип, и
двата со капацитет од по 8 КВ. Станува збор за примена на истите мемориски
чипови како во претходниот пример-1 со целосно адресно декодирање, но сега е
применета техниката на парцијално декодирање на адресите.
556 Поврзување на општ микропроцесор

Сл. 11-13. Логичка шема на парцијално адресно декодирање на 8 КВ EPROM и 8 КВ RAM

Битови на адресната магистрала


Нибл N3 Нибл N2 Нибл N1 Нибл N0 HEX
Мемориски ИК-а А А А А А А А А А А А А А А А А
Адреса
/капацитет 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Почетна адреса
0 X X 0 0 0 0 0 0 0 0 0 0 0 0 0 0000H
на EPROM (8КВ)
Крајна адреса на
0 X X 1 1 1 1 1 1 1 1 1 1 1 1 1 1FFFH
EPROM
Почетна адреса
1 X X 0 0 0 0 0 0 0 0 0 0 0 0 0 8000H
на RAM (8КВ)
Крајна адреса на
1 X X 1 1 1 1 1 1 1 1 1 1 1 1 1 9FFFH
RAM

Таб. 11-6. Адресна табела на парцијално адресно декодирање на EPROM и RAM од 8 КВ

Бидејќи и двете мемориски ИК-а се со еднаков капацитет и иста


организација (8 K збора x 8 b = 8K х 1B) ќе треба на секое од нив да се приклучи
еднаков број адресни линии и тоа пониските 13: А12А11А10, ..., А2А1А0. Трите
повисоки адресни битови може целосно да се декодираат со примена на ИК
74х138 коешто се користи како адресен декодер. Со ваквото решение севкупно
расположивата мемориска мапа на ОМП од 64КВ би била поделена на 8
мемориски блокови од по 8 КВ.
Поврзување на општ микропроцесор 557

Вака би можеле секоја излезна линија од декодерот да ја искористиме за


поврзување на 8 мемориски чипови од по 8 КВ со што би имале целосно
декодирање на адресите. И тогаш, за овој пример, би се искористиле само две од
нив бидејќи се само два мемориски чипа. Меѓутоа, во задачата се бара парцијално
адресирање, а не целосно.
Заради ова можеме да ја избегнеме употребата на декодерско коло и
наједноставно со една од преостанатите повисоки адресни линии да оствариме
поврзување и на двата мемориски чипа. На сл. 11-13 како селекторска линија за
мемориско коло е искористена највисоката адресна линија A15. Оваа адресна
линија директно се поврзува на влезот CS1* на првото EPROM мемориско коло,
додека на влезот за селекција на чип CS2* на второто RAM мемориско коло се
поврзува комплементарната вредност на оваа линија преку едно инверторско
коло. Така, кога линијата А15 се наоѓа на ниско логичко ниво се селектира
EPROМ-от, додека ако на неа се појави високо логичко ниво, ќе биде избрана RAM
мемориската компонента.
Од сликата 11-13 се забележува дека со ваквата техника се намалува
комплексноста во поврзувањето на мемориските чипови со ОМП и се избегнува
употребата на декодерска логика или декодерски чип. Меѓутоа, како што ќе
видиме во анализата што следува, во овој случај доаѓа до една негативна појава
на мултиплицирани (редундантни или повеќезначни) адреси што резултира со т.н.
скриен или засенет (анг. foldback) мемориски простор, кој иако е фактички
слободен, практично е искористен од истото мремориско ИК и него не може да го
користи друг мемориски чип.
За полесно да разбереме за што се работи да претпоставиме дека на
адресната линија А15 се појавило ниско напонско ниво. Со тоа нејзинaта
логичката состојба е нула, EPROM – от ќе биде селектиран и ОМП ќе може да ги
чита содржините на неговите мемориски локации. Во овој случај, после
инверторот, логичката состојба на пинот за селекција на RAM-чипот ќе биде на
високо ниво, што одговара на состојба на логичка 1-ца, и заради тоа, јасно дека
RAM – мемориското колото нема да биде селектирано.
Од друга страна, кога на адресната линија А15 се појави високо ниво, после
инверзијата ќе се добие ниско, и со тоа ќе биде активирано RAM – мемориското
коло па ОМП ќе може да разменува податоци со него: да ја чита содржината на
било која негова (RAM) адресирана мемориски локација, или да запишува нова
содржина во неа. Во овој случај, ОМП со EPROM-от не ќе може да комуницира,
бидејќи сигналот за негова селекција ќе биде на високо ниво (CS*1=1) и со тоа
неактивен. Заради ваквото директно поврзување на највисоката aдресна линија
А15 на CS1* влезот од EPROM-от, а само преку инвертор и со CS2* сигналот на
RAM-от, другите две високи адресни линии А14А13 не се поврзуваат, т.е. не се
користат за генерирање на сигнали за селекција на чип, и едноставно не се
разгледуваат. Со тоа нивната состојба е небитна и не влијае врз селекцијата на
мемориското коло дали тоа ќе биде поврзано со ОМП, или не. Секоја од нив може
да има било која логичка вредност 0, или 1, но тоа е сосема неважно (А14А13
=хх).
558 Поврзување на општ микропроцесор

Адресната табела 11-6 на понуденото


решение го прикажува адресниот опсег на
двете мемориски интегрирани кола, додека
изгледот на мемориската мапа е прикажан
на сл. 11-14. Од сликата која ја прикажува
мемориската мапа на овој парцијален начин
на адресно декодирање јасно се воочува
зошто се користи поимот засенет или скриен
мемориски простор и исто така е јасно
колкав е тој простор.
Имено, заради тоа што е поврзана
само највисоката адресна линија А15, а
состојбата на преостанатите високи 2 линии
е небитна, секое појавување на ниско ниво
на 15-тата адресна линија „го носи“
процесорот во EPROM-от, додека секое
појавување на високо ниво на 15-тата
адресна линија „го носи“ процесорот во
RAM-от. Едноставно, сите возможни
комбинации од 2-бита на преостанатите две
повисоки адресни линии (k=2) А14А13 кои
се вкупно Nsms=22=4 за појава на 0-а на
линијата А15, но исто толку Nsms=22=4 и за
појава на 1-ца на истата линија всушност
претставуваат по 4-пати по 8 КВ мемориски
простор кој е зафатен еднаш од EPROM-от,
кога А15=0, и еднаш од RAM-от за А15=1.
Така, сега процесорот „гледа“, и практично
користи, само 16 КВ меморија и само таа му
стои на располагање: 8 КВ EPROM и 8 КВ
RAM. Жаргонски може да се каже дека 8 КВ
EPROM засенува, или крие, други 24 КВ
мемориски простор, а исто толкав друг 24
Сл. 11-14. Мемориска мапа на КВ простор, само во повисоките адреси,
парцијално адресно декодирање за сокрива и 8 КВ RAM чипот.
EPROM и RAM од по 8 КВ

Иако ОМП максимално може да адресира 64 КВ со ваквото поврзување тој


ќе користи само 16 КВ, но поврзувањето со мемориските чипови е максимално
поедноставено. Во овој случај и EPROM-от и RAM-от заедно го покриваат целиот
адресен простор на ОМП од 64 КВ, бидејќи секој посебно покрива по 32 КВ, но од
нив ОМП реално за секој мемориски чип може да користи само по 8К.
Поврзување на општ микропроцесор 559

Битови на адресната магистрала


Нибл N3 Нибл N2 Нибл N1 Нибл N0 HEX
Мемориски ИК-а А А А А А А А А А А А А А А А А
Адреса
/капацитет 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Почетна адреса
0 X X 0 0 0 0 0 0 0 0 0 0 0 0 0 0000H
на EPROM (8КВ)
Крајна адреса на 1FFFH
0 X X 1 1 1 1 1 1 1 1 1 1 1 1 1
EPROM (7FFFH)
Почетна адреса
1 X X 0 0 0 0 0 0 0 0 0 0 0 0 0 8000H
на RAM (8КВ)
Крајна адреса на 9FFFH
1 X X 1 1 1 1 1 1 1 1 1 1 1 1 1
RAM (FFFFH)

Таб. 11-6. Мемориска адресна табела на понуденото решение


Пример-2
Следниот пример претпоставува проектирање на МКП систем околу ОМП
кој ќе располага со мемориски простор од 1КВ EPROМ и 1КВ RAM. Поставениот
проблем е повторно решен со техниката на линеарно адресирање со логичката
шема која е претставена на сл. 11-15.

Сл. 11-15. Логичка шема на парцијално адресно декодирање на 1 КВ PROM и 1 КВ RAM


Кога станува збор за пацијално декодирање на два мемориски чипа, слично
како и во претходниот пример доволно ќе биде да употребиме само една од
повисоките 5 адресни линии и тоа може, заради споредба, повторно да биде
највисоката адресна линија А15. И во овој случај водот А15 директно, без
декодирање, е поврзан на пинот за селeкција CS1* на PROM чипот, за потоа, само
со едно коло за комплементирање, инвертираната вредност на оваа линија да се
поврзе на пинот за селекција CS2* на RAM мемориското ИК.
560 Поврзување на општ микропроцесор

Со едноставна анализа на овој пример на линеарно декодирање даден на


сл. 11-15 се забележува дека, како и претходо, со секое поставување на ниско
логичко ниво на 15-тата адресна линија процесорот всушност го адресира PROM-
от, додека со секоја појава на високо ниво на оваа линија тој го адресира RAM-от.
Меѓутоа, заради поврзувањето на мемориски ИК-а од само 1 КВ, сега се возможни
сите адресни комбинации од по 5-бита (k=5) на водовите А14А13А12А11А10 кои
се вкупно Nsms=25=32 за појава на 0-а на линијата А15, но исто толку
(Nsms=25=32) и за појава на 1-ца на истата линија. На овој начин се зафатени 32-
пати по 1 КВ мемориски простор скриени еднаш од PROM-от кога А15=0, и еднаш
од RAM-от за А15=1. Всушност сега процесорот може да користи само 2 КВ
меморија: 1 КВ EPROM и 1 КВ RAM. Едноставно може да се каже дека сега 1 КВ
PROM засенува 32 КВ мемориски простор, а тоа е целата прва половина на
мемориската мапа, а исто толкав простор од 32 КВ простор, поточно цела втора
половина на мемориската мапа, ја сокрива вториот мемориски RAM чип кој има
исто така капацитет од 1 КВ. Секоја адреса во примарниот адресен блок на PROM-
от во опсегот од 0000H до 03FFH се мултиплицира уште 31-пати во првата
половина од мемориската мапа кога водот А15 се наоѓа на ниско логичко ниво.
Разбирливо, и секоја адреса во примарниот адресен блок на RАM-от во опсегот од
8000H до 83FFH се појавува дополнителни 31-пати во втората половина од
мемориската мапа за која на линијата А15 се наоѓа високо логичко ниво.
Иако ОМП максимално може да адресира 64 КВ со ваквото линеарно
поврзување кое е максимално поедноставено, тој реално ќе користи само 2КВ: по
1КВ во секој мемориски чип, а сепак PROM-от и RAM-от заедно го покриваат
целиот адресен простор на ОМП од 64 КВ, бидејќи секој посебно покрива по една
половина од 32 КВ.
Битови на адресната магистрала
Нибл N3 Нибл N2 Нибл N1 Нибл N0 HEX
Мемориски ИК-а А А А А А А А А А А А А А А А А
Адреса
/капацитет 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Почетна адреса
0 х х х х х 0 0 0 0 0 0 0 0 0 0 0000H
на PROM (1КВ)
Крајна адреса на 03FFH
0 х х х х х 1 1 1 1 1 1 1 1 1 1
PROM (7FFFH)
Почетна адреса
1 х х х х х 0 0 0 0 0 0 0 0 0 0 8000H
на RAM (1КВ)
Крајна адреса на 83FFH
1 х х х х х 1 1 1 1 1 1 1 1 1 1
RAM (FFFFH)

Таб. 11-7. Адресна табела на парцијално адресно декодирање на PROM и RAM од 1 КВ


Деталната мемориска адресна табела на бараниот мемориски систем со
опсегот на мемориските адреси е прикажана со таб. 11-7, додека неговата
мемориска мапа е дадена на сл. 11-16.
Поврзување на општ микропроцесор 561

Сл. 11-16. Мемориска мапа на парцијално адресно декодирање за PROM и RAM од по 1 КВ


Како мало дообјаснување би кажале и тоа дека целата мемориска мапа од
64 КВ би повторно покриена само со овие две мемориски ИК-а од по 1 КВ и
доколку за поврзувањето на чиповите наместо адресната линија А15 изберевме
една, било која друга, од преостанатите повисоки адресни линии. Разликата ќе
беше само во распределбата на скриените мемориски сегменти. Така на пр. ако на
на логичката шема од сл. 11-15 го искористевме адресниот вод А10 наместо А15,
PROM-от ќе ги сокриваше сите непарни мемориски блокови од по 1КВ, додека
RAM-от сите парни сегменти помеѓу нив исто така од по 1КВ, со што ќе се
променеше и неговата мемориска адресна табела и мемориска карта.
562 Поврзување на општ микропроцесор

11.6. Споредба помеѓу целосно и парцијално адресно


декодирање

Табелата означена како таб. 11-8 претставува концизна споредба на


најважните карактеристики помеѓу целосното и парцијално адресно декодирање.
Во табелата, покрај мемориските интегрирани кола, се наведени и В/И
компонентите бидејќи овие две техники за декодирање на адресите, како што ќе
видиме во продолжение, се применуваат и за нив.

6.5. Целосно адресно декодирање Парцијално адресно декодирање

1. Сите повисоки адресни линии се Некои од повисоките адресни линии


декодирани за да ја селектираат се декодирани за да ја селектираат
мемориската или В/И компонента. мемориската или В/И компонента.

2. За да се дизајнира декодерската Потребен е многу поедноставен


логика потребни се повеќе хардвер кој се применува као
хардверски компоненти или посебно декодирачка логика, а најчесто тој
декодерско ИК. може да биде изоставен.

3. Повисоки трошоци за декодерската Пониски трошоци за логиката за


логика или специјализираното ИК. декодирање на адресите.

4. Адесите се единствени – еднозначно Појава на повеќезначно адресирање.


одредени. Нема други мултипли- Повеќе адреси за една иста
цирани адреси за иста компонента. компонента. Мултиплицирани
адреси (скриени, засенети адреси).

5. Се користат во поголемите системи Се користат во помалите системи и


кои лесно се прошируваат и кај нив проширувањето и
надградуваат со нови компоненти. надградувањето е потешко.

Таб. 11-8. Споредба помеѓу техниките на адресно декодирање


Поврзување на општ микропроцесор 563

11.7. Основни концепти за поврзувањето на В/И компоненти


Микропроцесорскиот систем во својот состав покрај мемориските ИК-а
содржи и В/И компоненти или уреди овозможувајќи му на човекот да му пристапи
на тој систем и истиот полесно да го користи. Микропроцесорот за време на
работата, во секој такт-период чита и/или запишува, податоци само со една од
мемориските или В/И компонентите кои се заеднички за целиот МКП систем и кои
се поврзани со него преку податочната, адресната и контролната магистрала.
Поврзувањето на мемориските чипови веќе го анализиравме, така што сега
ќе се задржиме на поврзувањето на В/И компоненти и уреди и декодирањето на
нивните адреси кои се употребуваат и кај реалните микро-компјутерски системи.
Техниките на апсолутно, т.е. целосно декодирање, и на парцијално, т.е. делумно
декодирање кои се применуваа кај поврзувањето на мемориските ИК-а важат и за
приклучувањето на В/И компонентите во МКП системот.
Дополнително, В/И уредите може да бидат мапирани и врз основа на два
други и меѓусебно различни принципи кои се однесуваат на местоположбата на
адресите на В/И компонентите во расположивиот адресен простор на ОМП.
Поимот мапирање всушност претставува начин на поврзување на В/И
компонентите во адресниот простор на ОМП. Доколку адресите на В/И уредите се
издвоени од меморискиот адресен простор на ОМП во посебен, т.н. В/И адресен
простор, станува збор за посебно, издвоено, стандардно или изолирано
мапирање. Од друга страна, кога адресите на В/И уредите се припаѓаат во
рамките на меморискиот адресен простор, се работи за т.н. мемориски мапирани
В/И компоненти или мемориско пресликување на В/И компонентите.
В/И уредот ќе биде издвоено поврзан на ОМП ако на блокот за декодирање
се приклучени само ниските 8 адресни линии (нискиот адресен бајт A0 до A7), или
само некои од нив. При тоа контролниот сигнал IORD* се применува за
читање/прифаќање на податок од влезна компонента, додека контролниот сигнал
IOWR* се применува за запишување/испраќање на податок до излезна
компонента. На слика 11-8 е прикажана блок-шема на издвоено мапирана влезна
или излезна компонента во општ случај.
Од друга страна, В/И уредот ќе биде мемориски пресликан на ОМП ако на
влезот од блокот за декодирање се приклучени сите 16 адресни линии (А0 до
А15), или само некои од нив. При тоа контролниот сигнал МRD* се применува за
читање/прифаќање на податок од влезна компонента, додека контролниот сигнал
МWR* се применува за запишување/испраќање на резултат до излезна
компонента. На слика 11-19 е претставена блок-шема на мемориски пресликана
влезна или излезна компонента во општ случај.
Во секој случај, заради декодирање на адресите на В/И уредите,
поврзувањето оди преку некое декодерско интегрирано коло или декодерска
логика која дизајнерот наменски ја креира применувајќи различни логички кола.
564 Поврзување на општ микропроцесор

Сл.11-18. Блок-шема на издвоено Сл.11-19. Блок-шема на мемориски


мапирана влезна или излезна компонента пресликана влезна или излезна компонента
Во продолжение ќе се фокусираме и во поголеми детали ќе го анализираме
и на едниот и другиот начин на адресирање, при тоа земајќи ги предвид и двете
претходно веќе анализирани техники на декодирање на адресите: целосно и
делумно, и тоа со секој од двата начини на поврзување, т.е. мапирање: издвоено
или мемориски пресликано.
11.8. Влезно/излезни (В/И) порти
Независно од тоа според кој принцип и на каков начин конкретно се
мапирани В/И компонентите или уредите, наједноставната форма на нивното
поврзување со ОМП е преку т.н. В/И порти, што се забележува и на двете слики
сл. 11-18 и сл. 11-19. Кога ОМП прифаќа или чита податок, преносот на податок
помеѓу ОМП и влезната компонента се извршува со помош на влезна порта. Од
друга страна, трансферот на податок од ОМП до излезниот уред кога ОМП
испраќа или запишува податок се остварува преку излезна порта.
В/И портите претставуваат дигитални интегрирани кола кои се наменски
произведени за да го редуцираат бројот на интегрираните и другите логички кола
на надворешната декодерска логика во еден микропроцесорски базиран систем.
На В/И портите се поврзуваат линиите за пренос на податоци од податочната
магистрала заради нивно проследување до/од периферниот уред, кој е поврзан на
нив. Покрај нив на В/И портите се приклучуваат и одреден број на адресни и
контролни линии. В/И портите во однос на насоката на пренос на податоците
може да бидат влезни, излезни, или со двојна намена: и влезни и излезни. Што се
однесува до можноста за нагодување на изборот на насоката на движење на
податоците, портите можат да бидат непрограмабилни или програмабилни.
Линиите за пренос на податоци од податочната магистрала можат да се
употребуваат за прифаќање на влезни податоци или за испраќање на излезни
податоци што зависи од употребеното ИК со кое се реализира самата порта.
Програмабилна В/И порта: Програмабилната порта претставува посебно
наменски дизајнирано ИК кое може да биде програмирано за да се однесува или
како влезна или како излезна порта, или пак и како влезна и како излезна. Тоа
зависи од контролниот команден збор, кој ваквата порта го добива од страна на
процесорот и кој привремено го сместува во т.н. контролен регистер за да го
декодира со својата внатрешна логика и врз основа на тоа соодветно да се
Поврзување на општ микропроцесор 565

иницијализира: кои пинови ќе бидат влезни, а кои излезни. Контролниот регистер


има и своја втора улога кога процесорот ја чита неговата содржина. Тогаш тој има
улога на статусен регистер на состојба бидејќи содржи информации за тоа во
каква состојба се наоѓа В/И уредот кој е поврзан на портата.
Покрај контролниот/статусниот регистер, секоја програмабилна порта
содржи и податочен регистер во кој што привремено го чува податокот кој треба
да се пренесе помеѓу периферниот уред и процесорот.
И двата регистри се поврзани на податочната магистрала преку која ги
разменуваат своите содржини со процесорот. Имено, како на податочниот, така и
на контролниот/статусниот регистер им се доделени еднозначни адреси кои ги
добиваат преку одредени линии од адресната магистрала кои се приклучени на
В/И портата.
Логично, за да ја исполни својата улога, секоја програмабилна порта
располага и со одредени пинови за контрола на функционирањето кои се
поврзани на контролната магистрала, од кои некои се влезни, а други излезни.
Интегрираните дигитални кола со кои се реализираат програмабилните В/И
порти се применуваат за поврзување на покомплексни В/И компоненти и уреди
како што се на пр. тастатура, хард диск, Д/А и А/Д конвертори, и сл.
Непрограмабилна порта: За влезна порта треба да се употреби повеќе-
кратно баферско коло, односно повеќекратно леч-коло за задржување како
излезна порта. Бројот на нивните влезни, односно излезни пинови треба да биде
еднаков со бројот на водови на податочната магистрала. Покрај овие, има и такви
интегрирани кола, кои може да се употребат како порти со двојна намена: само за
влез, или само за излез на податоци, што зависи од вредноста на сигналите
присутни на контролните пинови на ваквата порта. Непрограмабилната порта,
поврзана во влезен режим на работа се однесува како влезна порта –
повеќекратно баферско коло, додека пак ако е поврзана во излезeн режим се
однесува како излезна порта – повеќекратно леч-коло за задржување. Непро-
грамабилните В/И порти, поточно интегрираните кола кои со нив се реализираат
се употребуваат за поврзување со наједноставни В/И компоненти како што е на
пр. група од осум прекинувачи или тастери, односно осум светлечки диоди. За нив
ќе го продолжиме нашето излагање.
11.8.1. Влезна порта
Наједноставната влезна порта, која се користи за читање на податоци од
влезна компонента, единица или уред поврзани со МКП, претставува баферско
(драјверско) интегрирано коло со три состојби чија симболичка ознака е
прикажана на сликата сл. 11-20.
Бидејќи баферското ИК на излезот може да се најде и во трета состојба на
висока импенданса, неговите излези ќе бидат овозможени само ако сигналот за
дозвола со кој се овозможува неговата работа Е (анг. ENABLE) биде активен.
Баферското ИК содржи 8 бафери чии излези се отвараат со именуваниот
заеднички влез за овозможување на работата Е (анг. ENABLE) заради што ова ИК
се нарекува 8-кратен бафер. Типичен реален пример на еден ваков 8-кратен
бафер е дигиталното ИК од серијата 74хх со ознака 74х244.
566 Поврзување на општ микропроцесор

На неговите влезови може да се поврзе комбинација од 8 прекинувачи во


заедничко DIP куќиште, или тастатура со 16 тастери чии излези ќе бидат
декодирани. Излезите од баферот се поврзани на водовите од податочната
магистрала и влезната комбинација ќе биде пренесена и разположива на излезот
само кога ќе биде активен сигналот за дозвола Е.
Така на пр, ако ОМП треба да прочита податок од некој влезна компонента,
ОМП треба да иницира соодветна инструкција за читање и со тоа да испрати
соодветен контролен сигнал кој може да биде или MRD* или IORD*, што зависи
од тоа дали портата е мемориски или издвоено мапирана. Овој сигнал треба да
биде поврзан на влезот за дозвола на драјверското ИК и со тоа да ги активира
сите негови излези. Со тоа, ОМП испраќа активен контролен сигнал до влезната
порта преку контролна линија која е приклучена на влезот за дозвола Е. Штом е
баферот овозможен, податокот од влезниот уред стои на располагање на
податочната магистрала и тогаш ОМП истиот го чита. Со ова се активираат
излезите на баферот со што податокот присутен на неговите влезови се појавува
на излезите и се поставува на податочната магистрала од каде ОМП го чита и
прифаќа во еден од неговите регистри.

Сл. 11-20. Осум-кратно баферско (драјверско) интегрирано коло со три состојби


ИК 74х244
Што се однесува до ИК 74х244, тоа е 8-кратен бафер/драјвер на магистрала
чија што внатрешна логичка шема е прикажана на сл. 11-21 а). Колото се именува
уште и како унилатерален или еднонасочен бафер/драјвер за магистрала, што
произлегува од неговата функција. На сл. 11-21 б) е даден изгледот на самото ИК
во неговото DIP-куќиште и распоредот на пиновите, а на сл. 11-21 в) неговата
функционална таблица и логички симбол. Од сликите се гледа дека колото
всушност претставува два 4-кратни бафери/драјвери, од кои секој со свој посебен
влез за контрола на логичакта состојба на излезите: 1ОЕ* и 2ОЕ*. Ваквата
логичка структура овозможува ДИК 74х244 да се применува или како два посебни
4-кратни бафери/драјвери, кога контролните влезови се управуваат одделно еден
од друг, или како единствен 8-кратен бафер/драјвер ако тие влезови се поврзат
заедно. Во таб. 11-14 е претставена таблицата на функционирање на овa ДИК од
која лесно се заклучува неговиот принцип на работа. Имено, логичката состојба
на влезовите А ќе се префрли на излезите Y само ако на контролните влезови
1ОЕ* и 2ОЕ* се донеси ниско напонско ниво на логичка 0 (1ОЕ*=0 и/или
2ОЕ*=0).
Поврзување на општ микропроцесор 567

Меѓутоа, ако на овие влезови (1ОЕ* и 2ОЕ*) се донеси високо напонско


ниво на логичка 1 (1ОЕ*=1 и/или 2ОЕ*=1), излезите кои се контролирани од/со
нив ќе одат во состојба на бесконечно голема отпорност (висока импенданса HiZ,
HZ) со што тие практично се исклучени од водовите на кои се поврзани.

Сл. 11-21. ИК 74х244 8-кратен бафер на магистрала (а) Внатрешна логичка шема
(б) Изглед на ИК во DIP-куќиште (в) Функционална таблица и логички симбол

ИК 74х245
Уште едно ДИК со ознака 74х245 често се применува за поврзување на
микропроцесорските надворешни компоненти на магистралите на процесорот
заради формирање на функционален микропроцесорски систем. Како што ќе
забележиме од краткото објаснување што следува во продолжение, ова ДИК
претставува 8-кратен билатерален или двонасочен бафер/драјвер за магистрала.
На сл. 11-21 а) е прикажана внатрешната логичка шема, на сл. 11-21 б) е даден
изгледот на самото ИК во неговото DIP-куќиште и распоредот на пиновите, а на
сл. 11-21 в) неговиот логички симбол и функционална таблица. 245-ката
располага со осум „антипаралелено“ поврзани бафери/драјвери што може да се
види од неговиот функционален дијаграм шема дадена на сл. 11-21в). Ваквата
логичка структура овозможува пренос на податочниот пин во две насоки што
зависи од дополнителниот контролен пин за таа намена означен со DIR. Имено,
ако DIR=0, влезни пинови се десните, а излезни се левите па така и се
пренесуваат сигналите: од страната В кон страната А (од десно на лево). Меѓутоа,
кога на контролниот влез DIR се постави високо ниво (DIR=1), пиновите ја
менуваат својата улога: влезни пинови се левите, а излезни десните. Во овој
случај битовите се пренесуваат од страната А кон страната В (од лево на десно).
Ваквиот принцип на функционирање на преносот на битовите е овозможен
ако и само ако на контолниот влез за трета состојба ОЕ* е донесено ниско ниво
на логичка нула: ОЕ*=0. Со поставувањето на високо ниво на логичка единица на
овој влез ОЕ*=1, сите бафери се оневозможени, и сите пинови, и А, исто како и В,
ќе се наоѓаат во трета состојба на висока отпорност (HiZ, HZ) со што практично
тие се исклучени од водовите на кои се поврзани.
568 Поврзување на општ микропроцесор

Сл. 11-21. ИК 74х245 8-кратен бафер на магистрала (а) Внатрешна логичка шема
(б) Изглед на ИК во DIP-куќиште (в) Логички симбол и таблица на функционирање
11.8.2. Излезна порта
ОМП освен што прима, тој многу често до некоја излезна компонента или
уред испраќа резултати од обработката како излезни податоци. Такви излезни
компоненти се на пр. множество од осум посебни светлечки LED диоди, или седум
сегментен светлечки LED екран, поврзан преку соодветен декодер.
Наједноставната реализација на излезна порта којашто ОМП ја употребува
за да испрати, да запише податоци во излезна компонента е ИК кое содржи 8 D-
леч кола (лечови) или 8 D-флип-флопови чии излези се баферувани и може да се
најдат и во трета состојба. Преку неа на ОМП можат директно да се поврзат осум
светлечки LED диоди. Симболичката ознака или функционалниот логички симбол
на вакво 8-кратно бистабилно ИК е прикажан на сликата 11-22. Ова ДИК содржи 8
D-лечови заради што и се нарекува 8-кратен D-леч.

Сл. 11-22. Осум кратен D-леч со баферувани излези кои може да одат во трета состојба
На осумте влезови од ова ДИК се поврзуваат линиите од податочната
магистрала чии податочни сигнали може да се пропуштат или заклучат преку
еден заеднички контролен влез кој тоа го контролира со нивото на сигналот LE
(анг. LATCH ENABLE). Ако сигналот LE е низок, тој е неактивен и податоците се
пропуштаат, но ако на LE се доведе високо ниво тој станува активен и во тој
момент ја заклучува состојбата на податочните водови.
Поврзување на општ микропроцесор 569

На влезот за заклучување LE се поврзува контролниот сигнал кој го испраќа


процесорот, а тоа може да биде или MWR* или IOWR*, што зависи начинот на кој
ќе биде портата поврзана.
Сите 8 излези на лечовите може да се отварат со еден заеднички влез за
овозможување на работата ОЕ* (анг. OUTPUT ENABLE), но преку него и да се
однесат во трета состојба на бесконечно висока импенданса (Z, HiZ, HZ).
Контролниот влез ОЕ* треба цело време да биде активен за да може влезните
битови во лечовите да се пренесуваат до нивните излези и преку излезните
бафери на излезите од ИК. Кога МКП треба да испрати податоци до излезниот
уред, тој иницира соодветна инструкција за запишување и го поставува податокот
на податочната магистрала.
Кога ОМП сака да го испрати резултатот до LED диодите, тој него го
поставува на податочната магистрала и преку своите излезни сигнали MWR* или
IOWR*, го активира сигналот за заклучување LE. Со тоа податокот е заклучен
(„лечуван“) во леч-колата при што ОЕ* треба цело време да биде активен за да
може таа состојба затекната на податочните линии да се појави на излезите од
портата и со тоа да му стои на располагање на адресираната излезна компонента.
На овој начин ОМП ги заклучува сите 8 податочни битови и ги проследува на
своите излези побудувајќи ги на пр. светлечките диоди кои се на нив приклучени.
Ако излезната компонента работи синхроно во системот тогаш наместо 8 D-
лечови може да се користат 8 D-флип-флопови.
ИК 74х373
Што се однесува до ИК 74х373, тоа е реално ДИК кој претставува 8-кратен
транспарентен D-леч на чии излези се поврзани бафери кои може да се најдат во
трета состојба. Ова ДИК овозможува пропуштање и заклучување на излените
податоци. Внатрешната логичка шема на еден од осумте лечови е прикажан на
сл. 11-23 а), а на сл. 11-23 б) е претставен изгледот на самото ИК во неговото
DIP-куќиште и распоредот на пиновите, додека на сл. 11-23 в) неговиот логички
симбол како функционален блок-дијаграм и таблица на функционирање.
Секој до лечовите „се отвора“ и станува транспарентен за да неговиот
влезен бит D, без оглед на тоа дали е 0 или 1, биде пропуштен низ него и
пренесен кон излезот од лечот, само ако на контролниот влез LE (G) се постави
на високо логичко ниво LE(G) = 1. Во овој случај “излезот го гледа влезот“.
Во моментот кога контролниот влез LE (G) „паѓа“ од високо на ниско
логичко ниво LE (G) = 0 постоечкиот влезен бит се заклучува (задржува) во лечот
и за цело време додека на контролниот влез LE (G) е присутно ниско ниво LE (G)
= 0, лечот го задржува тој бит, иако на влезот D можеби дошло до смена на
логичката состојба. Значи, кога LE (G) = 0 лечот се заклучува и станува
нетранспарентен со што „излезот не го гледа влезот“.
Со вториот контролен влез ОЕ* се контролира преносот на излезот од D-
лечот од внатрешноста на ДИК, до неговите излезни пинови. Имено, логичката
состојба присутна на излезот од секој леч Q ќе се пренеси до секој излез Y=OUT
само ако контролниот влез ОЕ* се најде на ниско напонско ниво на логичка 0
(ОЕ*=0).
570 Поврзување на општ микропроцесор

Спротивно, ако на влезот ОЕ* се донеси високо напонско ниво на логичка 1


(ОЕ*=1), нема да има трансфер на логичката состојба на излезот од секој од
лечовите до соодветниот излезен пин бидејќи секој излез ќе оди во состојба на
бесконечна отпорност (висока импенданса HiZ, HZ) со што практично леч-колата
ќе бидат исклучени од водовите на кои е поврзано ова ДИК. ДИК 74х373 се
применува за асинхроно поврзување на порта со излезни елементи. Меѓутоа, ако
излезната компонента треба да работи синхроно во системот тогаш наместо осум
D-лечови треба да се користат осум D-флип-флопови.

Сл. 11-23. ИК 74х373 - 8-кратен транспарентен D-леч (а) Внатрешна логичка шема, (б)
Изглед на ИК во DIP-куќиште (в) логички симбол и таблица на функционирање.

ИК 74х374
Доколку се дизајнира микро/процесорки систем во кој излезната
компонента треба да работи синхроно со другите системски компоненти, тогаш
како излезна порта треба да се искористи ИК со осум D-флип-флопови кои
реагираат на работ на такт-импулсот, а не се транспарентни како D-лечовите.
Едно вакво реално ДИК со ознака 74х374, е прикажано на сл. 11-24 а), б) и в) од
кои се гледа дека тоа има ист распоред на пиновите како и лечот 74х373, со
единствена разлика во начинот на кој се внесува еднобитниот податок во секој
флип-флоп. Кај ова ДИК пинот [11] НЕМА улога на контролен влез LE за отворање
на D-флип-флоповите, туку е такт сигнал и заради тоа е означен со CP. Имено,
секој од осумте D-флип-флопови е сензитивен само на растечката ивица на такт-
сигналот и заради тоа само во тој момент, во преминот од ниско на високо ниво
на такт сигналот треба да се донеси битот на влезот D од флип-флопот за истиот
да биде запамтен и да се појави на неговиот излез Q во внатрешноста на колото.
Кај ДИК 74х374 улогата и функцијата на вториот контролен влез ОЕ* е идентичен
како и кај ДИК 74х373: тој го контролира преносот на излезот од секој D-флип-
флопт од внатрешноста на ДИК, до неговите излезни пинови. Имено, ако ОЕ*=0,
логичката состојба на излезот Q од секој флип-флоп се пренесува на соодветниот
излезен пин Y=OUT. Меѓутоа, ако ОЕ*=1, секој излезен пин ќе оди во состојба на
бесконечна отпорност (висока импенданса HiZ, HZ) со што излезите од флип-
флоповите се исклучени од линиите на кои е поврзана 374-ката.
Заради споредба, на сл. 11-25 а) и б) се презентирани внатрешните логички
шеми и таблиците на функционирање на 8-кратните ДИК: D-лечовите 74х373 и D-
флип-флоповите 74х374.
Поврзување на општ микропроцесор 571

Сл. 11-24. ИК 74х374 - 8-кратни D-флип-флопови (а) Внатрешна логичка шема,


(б) Изглед на ИК во DIP-куќиште (в) логички симбол и таблица на функционирање.

Сл. 11-25 Внатрешните логички шеми и таблици на функционирање на ДИК


а) 74х373 - 8 D-лечови б) 74х374 -8 D-флип-флопови

11.9. Издвоено мапирање на В/И порти


Кога ги набројувавме пиновите на ОМП и ја анализиравме нивната улога се
задржавме и на двата пинови означени со IORD* и IOWR*. Овие два пина му
овозможуваат на ОМП да поддржува издвоен (изолиран) или т.н. посебно, или
стандардно мапиран В/И систем. Применувајќи ги овие два пина дизајнерот на
МКП систем може со соодветен начин на поврзување да реализира пристап до В/И
компонентите кој е различен и посебно издвоен во однос на пристапот до
мемориските локации. ОМП располага само со две инструкции, IN a8 и OUT a8,
кои се применуваат и овозможуваат посебен трансфер (прифаќање и испраќање)
на податоци помеѓу акумулаторот на процесорот и В/И компонентите. Во овие две
инструкциии а8 е осум-битна адреса на порта, при што со инструкцијата IN се
чита податок од влезна порта во акумулаторот, додека со инструкцијата OUT се
запишува податокот од акумулаторскиот регистер во адресираната излезна порта.
572 Поврзување на општ микропроцесор

Сл.11-24. Мемориска мапа на издвоено мапирање на В/И порти


Јасно, заради 8-битната В/И адреса, дополнителниот, посебниот адресен
простор за издвоени В/И компоненти кај ОМП ќе биде максимално 28=256
различни адреси, наменети за посебни В/И порти (сл. 11-24 б). Имено, кога ОМП
извршува инструкции IN a8 или OUT a8 кои се однесуваат исклучиво за
комуникација со В/И порти ОМП активира една од излезните контролните сигнали
IORD* или IOWR*, што зависи од тоа дали извршува инструкција на читање
(прифаќање) податок од влезна компонента, или запишува (испраќа) податок кон
излезна компонента или уред. Во овие случаи ОМП ги користи само пониските 8
бита од адресната магистрала А7, А6, А5, А4, А3, А2, А1, А0, т.е. нејзиниот
понизок бајт (сл. 11-25). Како што веќе знаеме со 8 бита може да се генерирааат
28=256 различни 8-битни комбинации, а тоа се всушност максималниот број на
расположиви и различни адреси кои на ОМП му стојат на располагање за
адресирање В/И компоненти или уреди.

Сл.11-25. Блок шема на издвоено мапирање на В/И порти во општ случај


Состојбата на повисоките 8 адресни линии, А15, А14, ..., А9, А8, на
повисокиот адресен бајт при ваквото мапирање е или еднаква со оние на
пониската магистрала, или е случајна и непозната. Во секој случај вредностите на
повисоките 8 адресни бита се неважни и не се користат при поврзувањето. Како
заклучок, може да резимираме дека кај издвоената техника на поврзување, покрај
максималниот мемориски адресен простор од 64 КВ ОМП може да располага и со
дополнителен, посебно издвоен адресен простор за најмногу 256 В/И компоненти.
Поврзување на општ микропроцесор 573

Теоретски земено, може да се приклучат 512 В/И порти бидејќи на иста В/И
адреса може да се поврзи една влезна и една излезна порта. Секоја од нив ќе
биде селектирана со различен сигнал: влезната со IORD*, додека излезната со
IOWR*.
11.10. Мемориско мапирање на В/И порти
Освен можноста за идвоено поврзување на В/И компонентите и нивно
хардверско поврзување на ОМП преку контролните сигнали IORD* и IOWR* со
што се раздвојува В/И адресниот простор од меморискиот адресен простор, ОМП
овозможува и мемориско мапирање на В/И компонентите кое уште се нарекува и
мемориски пресликан влез/излез. Принципот на мемориско мапирање на В/И
порти се остварува со нивно поврзување преку контролните сигнали за читање и
запишување во мемориски ИК-а, а тоа беа излезните процесорски сигнали MRD* и
MWR*.Вака поврзаните В/И порти процесорот ги третира како мемориски локации
кои припаѓаат во неговиот меморискиот адресен простор од 64 КВ (сл. 11-26 а).
Во овој случај, процесорот не прави разлика помеѓу адресирање на
мемориска локација и В/И порта. Тој на В/И портата „гледа“ како на некоја
мемориска локација. Токму заради ова, овој начин на поврзување на В/И порти
(компоненти) се нарекува и мемориски пресликан влез/излез. При тоа,
процесорот „мисли“ и е „убеден“ дека има работа со мемориска локација и сите
инструкции кои овозможуваат трансфер, читање или запишување на податоци
помеѓу процесорот и меморијата можат да се користат и за комуникацијата со В/И
порта. Тоа се инструкциите за читање директно читање на мемориска локација во
акумулаторот LDA a16, и за директно запишување на содржината на акумулаторот
во адресирана мемориска локација STA a16. Покрај нив, може да се применат и
инструкциите MOV M, Rs и MOV Rd, M за индиректно адресирање на мемориските
локации и трансфер на нивната содржина во акумулаторот, односно во
регистрите за општа. Овде припаѓаат и инструкциите со кои се извршуваат
аритметички и логички операции помеѓу содржината на акумулаторот и податок
кој е сместен во некоја мемориска локација која е индиректно адресирана со
некоја од инструкциите: ADD M, SUB M, INR M, ORA M, ANA M, XRA M и CMP M.

Сл.11-26. Мемориска мапа за мемориско мапирани В/И порти


574 Поврзување на општ микропроцесор

Кај сите претходно наведени инструкции адресирањето на В/И портите се


реализира преку сите 16 бита на адресната магистрала и тоа во рамките на
меморискиот адресен простор на ОМП кој изнесува 64 КВ. На сл. 11-27 е дадена
блок шема на мемориско мапирани В/И порти во општ случај.

Сл.11-27. Блок шема на мемориско мапирани В/И порти во општ случај


Кога процесорот адресира мемориски мапирана В/И порта тој испраќа 16-
битен адресен сигнал кон нив како кон периферни компоненти преку својата 16-
битна адресна магистрала, кои се временски синхронизирани и усогласени со
појавата на еден од контролните сигнали за комуникација и воспоставување на
трансфер со меморијата: MRD* или MWR*.

Резиме за поврзувањето и декодирањето на адресите на В/И порти


Во врска со претходното излагање за различните можности кои се
однесуваат на техниките на поврзување на В/И компонентите можеме да
заклучиме дека тие можат да се мапираат во МКП систем со ОМП на два различни
начини прикажани на сл.11-28.
 Влезно/Излезно мапирано (посебно, издвоено, стандардно) поврзување
на В/И компонентиите и уредите, кога тие се адресираат само со 8
адресни бита во посебно издвоен и дополнителен адресен простор за 256
В/И порти,
 Мемориски мапиран или мемориски пресликан начин на поврзување на
В/И компонентите или портите, кога тие се адресираат со сите 16 адресни
бита во границите на меморискиот адресен простор од 64 KB, кога
процесорот на вака адресираните В/И порти им пристапува како да се
мемориски локации.
Поврзување на општ микропроцесор 575

Сл.11-28 а) Издвоено и б) мемориско мапирано поврзување на В/И компоненти


Влезната порта ќе биде издвоено адресирана ако на баферското ИК
процесорот му овозможи работа со контролниот сигнал IORD*, но ако процесорот
го отвара баферот со сигналот MRD* тогаш портата е мемориски пресликана.
Излезната порта е издвоено адресирана кога процесорот го активира
влезот за заклучување на податокот во лечовите преку контролниот сигнал
IOWR*. Меѓутоа, ако контролниот сигнал, кој ќе го испрати процесорот за да го
активира лечот и со тоа да го заклучи податокот, е сигналот MWR*, тогаш
портата е мемориски мапирана.
Покрај со двата претходно наведени различни начини на мапирање:
посебното, односно мемориски пресликаното, В/И компонентите во еден МКП
систем, слично како и мемориските ИК-а, можат да се поврзат и со примена на
двете различни техники за декодирање на адресите: целосното (апсолутното)
декодирање и делумното (парцијалното, линеарното) декодирање (сл.11-29).
Овие две техники на декодирање на адресите детално веќе ги објаснивме
кај поврзувањето на ОМП со мемориски интегрирани кола. Така на пр. ако за
поврзување на В/И компоненти се применува целосното декодирање на адресите,
ќе треба да се декодираат сите адресни линии: кај издвоено мапираните
пониските осум бита од А0 до А7, додека кај мемориски пресликаните сите 16
адресни битови од А0 до А15. Овој начин на адресирање ќе се реализира со
декодерско ИК, или со изведба на посебна декодерска логика, при што секоја В/И
порта ќе биде селектирана само со единствена комбинација од конкретни логички
нивоа на сите адресни линии, а со тоа ќе има и единствена, еднозначно дефини-
рана адреса.

Сл.11-29 Блок-шема на а) целосно и б) делумно декодирање


576 Поврзување на општ микропроцесор

Меѓутоа, ако за поврзување на В/И компоненти се применува делумното


декодирање на адресите тогаш директно без декодирање се користат само некои
адресни линии кои на В/И портите се поврзуваат или директно, или само преку
инвертори без да се употреби декодерско ИК, ниту пак посебно изведена
декодерска логичка мрежа. Овој начин на адресирање овозможува секоја В/И
порта да биде повеќезначно селектирана преку повеќе различни комбинации на
адресните битови што ќе резултира со појава на мултиплицирани (редундантни,
повеќезначни) адреси за една В/И порта. Ако за поврзување на В/И компонентите
се применува парцијалното декодирање на адресите, ќе треба да се изберат
некои од адресните водови: кај издвоено мапираните некои од 8-те пониски
адресни линии од А0 до А7, додека кај мемориски пресликаните само некои од 16-
те адресни битови од А0 до А15.

11.11. Примери на издвоено мапирано стандардно


поврзување на В/И компоненти
Доколку В/И компонентите се поврзани на ОМП на таков начин што тие се
посебно (издвоено) адресирани од страна на ОМП, читањето и запишувањето во
нив ОМП може да го извршува со две посебни инструкции за таа намена, а тоа се
инструкциите IN и OUT. Со нивното извршување ОМП ја раздвојува комуникација-
та со В/И компоненти од онаа со мемориските. Заради ова ваквиот начин на
поврзување на В/И компоненти уште се нарекува и издвоено или стандардно
мапирање. При извршувањето на било која од овие две инструкции ОМП ги
користи ниските осум бита од адресната магистрала на кои ја поставува адресата
на портата на В/И уредот со кој ќе разменува податок и со тоа В/И компонента е
специфицирана само со нискиот бајт од адресната информација на ОМП.
Со цел да прифати, т.е. да прочита податок од влезна порта ОМП ја
изведува инструкцијата IN а8, и со тоа тој го активира спуштајќи го на ниско ниво
контролниот сигнал IORD*=0. При тоа преостанатите контролни сигнали ги држи
пасивни на високо ниво MRD*, MWR*, IORD*=1. Од друга страна, кога ОМП треба
да испрати, т.е. да запише податок до некоја излезна порта, тој ја извршува
инструкцијата OUT а8 и го активира спуштајќи го на ниско ниво контролниот
сигнал IOWR*=0, а другите контролни сигнали ги држи пасивни на високо ниво
MRD*=1, MWR*=1, и IOWR*=1.
Изворот и одредиштето на податоците кај издвоеното мапирање на В/И
компонентите е ограничено. Ова е од причини што кога се применува
инструкцијата IN за читање на податок од влезна компонента, одредишен
регистер е секогаш акумулаторот. Слично, кога се извршува инструкцијата OUT
изворниот регистер каде е сместен податокот кој ќе се испраќа кон излезната
компонента е секогаш акумулаторот. И за двете инструкции, еден од операндите
задолжително е акумулаторот, додека вториот операнд е адресираната В/И порта.
Како што истакнавме претходно, кога се работи за издвоено адресирање на
В/И компоненти, ОМП може да адресира најмногу до 28=256 различни В/И уреди.
Имено, ОМП со својата периферија комуницира преку адреси чија ширина
изнесува 8 бита која се појавува како понизок бајт од (АBLow) на 16-битната
адресна магистрала на процесорот, т.е. на битовите А7, А6, ..., А1, А0.
Поврзување на општ микропроцесор 577

Од тука произлегува дека во даден временски момент, со една В/И инструкција IN


или OUT процесорот може да селектира една од 28=256 можни В/И порти.
За да биде избрана соодветната В/И порта, ќе биде треба да се реализираат
следниве чекори:
1. Да се декодира 8-битната адресна информација присутна на пониските 8
линии од адресната магистрала и да се генерира единствен, еднозначно
определен сигнал за адресирање кој одговара на адресата на В/И
компонента, која е поставена на адресната магистрала,
2. Кога овој сигнал за адресирање на В/И уредот и контролниот сигнал за
читање, односно запишување, и двата се активни на ниско ниво на логичка
0, треба да се генерира сигнал за селекција на В/И компонентата,
3. Овој сигнал за селекција на В/И компонентата треба да се искористи за да
се активира компонентата за поврзување, т.е. соодветната В/И порта.
Пример-1
На сл.11-30 е прикажан пример на поврзување на влезна или излезна
компонента преку соодветна порта со издвоено селектирање и со апсолутно
декордирање на адресата. Во примерот е употребено познатото декодерско
интегрирано коло 74LS138 кое претставува 3-во-8 декодер со три влеза за
дозвола за работа.
В/И портата треба да биде 8-кратно интерфејсно ИК со 8 влеза и 8 излеза, и
тоа 8-кратни бафери или D-леч кола, или 8-кратни D-флип-флопови. Ако
процесорот комуницира со излезна компонента, процесорот го активира сигналот
IOWR* и во тој случај како интерфејсен поврзувачки чип ќе треба да се употреби
8-кратен D-леч 74LS373 кој ќе го задржи (заклучи) излезниот податок потребен
временски период. Меѓутоа, доколку процесорoт адресира влезна компонента
тогаш тој ќе го испрати сигналот IORD* и тогаш чипот за поврзување треба да
биде 8-кратен еднонасочен (унилатерален) бафер/драјвер на магистрала 74LS244.

Сл. 11-30. Пример-1. Издвоено адресирање на В/И компонента со апсолутно декордирање


на адресите
578 Поврзување на општ микропроцесор

За да се изврши целосно декодирање на 8-те бита од адресната информација и


со тоа да се исполни првиот чекор треба да се активни влезовите G1, G2*, G3* со
кои се овозможува работата на ик 74х138, а покрај нив треба да се декодираат и
трите декодерски влезови А, В, С.
Од сликата се гледа дека едниот влез за дозвола G1* се отвора со адресниот
бит А3 кој треба да биде на ниско логичко ниво (А3=0). Другиот влез G2* ќе се
активира само ако неговиот излез оди на ниско ниво за што е потребно адресните
линии А6А5А4 да бидат сите нули (А6А5А4=000) бидејќи тие се приклучени на
ИЛИ логичко коло. Третиот влез за дозвола G) се отвора преку адресниот вод А7
кој треба да биде на високо логичко ниво (А7=1). На овој начин декодерот ќе
биде активен само ако А76543=10000. Бидејќи најниските адресни битови А2А1А0
се поврзани директно на влезовите за декодирање, 8-те излези од декодерот
можат да бидат активирани со адресни комбинации во кои првите пет најзначајни
битови мора да бидат А76543=10000, додека најмалку значајните три бита
последователно би биле од А2А1А0=000, па се до А2А1А0=111. На овој начин,
ваквото поврзување овозможува адресирање на 8 различни В/И порти чии адреси
ќе бидат еднозначно одредени и тоа почнувајќи од А76543210=1000 0000, па се
до последната А76543210=1000 0111, или во хекса означување: 80Н, 81Н, 82Н,
83Н, 84Н, 85Н, 86Н, 87Н. Сигналот за адресирање на портата се добива на
излезот Y0 од адресниот декодер 74LS138, што значи дека битовите кои ќе се
декодираат А2А1А0 треба да ги имаат логичките вредности А2А1А0=000. Според
ова, може да се пополни Таб. 11-16, од каде јасно се забележува дека адресата на
оваа влезна, односно излезна порта ќе биде 80h.

Селекциони влезови
Селекција на декодерско ИК Влезна или излезна порта
на декодерот

Активен
А7 А6 А5 А4 А3 А2 А1 А0 Хекса Адреса
излез

1 0 0 0 0 0 0 0 Y0 80Н

Таб. 11-16. Табела на В/И порта за примерот за селектирање на В/И компонента


За да се оствари вториот чекор со којшто ОМП ќе може да му пристапи на
селектираната порта, во примерот е употребено уште едно логичко ИЛИ коло со
два влеза. На едниот влез од ова ИЛИ коло е поврзан сигналот добиен од првиот
излез од декодерот 74х138 означен со Y0, додека на вториот влез може да се
приклучи контролниот сигнал за читање на В/И компонента IORD* кога треба да
се поврзи влезна порта, или за запишување IOWR* кога треба да се поврзи
излезна порта.
Последниот, третиот чекор со кој се овозможува работата на селектираната
В/И порта се остварува на тој начин што излезот од второто ИЛИ коло се
поврзува на влезот за дозвола на работа на портата OE*.
Пример-2
ОМП може да добие 8-битен податок од некоја влезна компонента или уред
како што се на пр. 8-прекинувачи, поголем број различни сензори, различни
претворувачи од аналогни во дигитални сигнали, и сл.
Поврзување на општ микропроцесор 579

На сл. 11-31 е прикажана принципиелната логичка шема со која на ОМП се


поврзува влезна порта реализирана со 8-кратен бафер кој се користи за да може
ОМП да ги прочита логичките вредности на 8 прекинувачи сместени во дворедно
DIP куќиште. И во овој пример портата се адресира со техниката на издвоено
(посебно) селектирање и со апсолутно декодирање на адресните сигнали.
Од сликата се забележува дека поврзувањето на портата и декодирањето
на адресите се извршува според истиот принцип како претходниот пример од сл.
11-30, со една важна разлика во формирањето на адресата на портата. Имено,
адресата на оваа влезна компонента е 82h бидејќи сега сигналот за селекција се
добива на излезот Y2 од декодерот што ќе биде исполнето само кога А2А1А0=010.
Имајќи во вид дека 8-те адресни битови присутни на 8-те пониски водови од
адресната магистрала А7 – А0 се поврзани на декодерот идентично како на
сл. 11-30, јасно е дека сигналот за активирање на баферската влезна порта ќе
оди на ниско логичко ниво само кога тие имаат вредност А7А6А5А4А3А2А1А0 =
1000 0010 или 82h. Табелата на адреси во овој случај е дадена како таб. 11-17.

Сл. 11-31. Издвоено адресирана влезна порта со апсолутно декордирање на адресите

Селекциони влезови
Селекција на декодерско ИК Влезна или излезна порта
на декодерот

Активен
А7 А6 А5 А4 А3 А2 А1 А0 Хекса Адреса
излез

1 0 0 0 0 0 1 0 Y2 82Н

Таб. 11-17. Табела на адреси за Пример 2 (за поврзување на влезна компонента)


580 Поврзување на општ микропроцесор

Кога некој од прекинувачите е вклучен, состојбата на таа линија ќе биде


ниска, додека ако прекинувачот е исклучен, логичката вредност на тој вод ќе
биде висока. Со ваквото поврзување ОМП, и со едноставен асемблерски програм
од неколку инструкции кој што ќе го објасниме во следната тематска целина,
лесно може да провери дали некој од прекинувачите е вклучен, дали некој е
исклучен, и точно коj е редоследот на тој прекинувач.

Пример-3
На следната слика 11-32 е прикажан пример на поврзување на излезна
порта која е издвоено мапирана како и оние во претходните два примери, со
апсолутно декордирање на адресите. За разлика од претходните слики каде беше
применет 3-во-8 декодерот 74LS138 со три влеза за дозвола за работа и три
декодерски влезови, адресното декодирање во овој пример се изведува
наједноставно само со едно НИ логичко коло со осум влеза. Излезот од колото ќе
биде активен и ќе се спушти на ниско логичко ниво само ако сите 8 адресни
линии кои се директно приклучени на влезовите од колото се доведе
комбинацијата А76543210= 11110000 што ја одредува адресата на портата F0h во
хексадецимално означување.

Сл. 11-32. Издвоено мапирана излезна порта со апсолутно адресно декордирање

Пример-4
Декодирањето на некои од адресните сигнали, а не на сите нив, како што
објаснивме претходно кај поврзувањето на мемориски ИК-а, резултира со појава
на редундантност и т.н. скриени адреси или во овој случај, до повеќезначно
адресирање на една В/И порта со неколку различни адреси. Ваквото посебно
мапирање на истата излезна порта од претходниот пример, но сега само со
парцијално декодирање на повисоките четири адресни линии А7654 е дадено на
сл. 11-33. При ова, логичкото НИ коло ќе се отвори и на неговиот излез ќе се
добие активен низок сигнал ако на логичките нивоа на овие негови влезови се
појаваи високи нивоа на логичка 1, т.е. кога ќе се појави влезна комбинација
А7654=1111.
Поврзување на општ микропроцесор 581

Сл. 11-33. Издвоено мапирана излезна порта со парцијално декодирање на


повисоките четири адресни линии
Имајќи во вид дека четирите пониски адресни линии А3210 НЕ се користат
за декодирање на адресите, станува јасно дека овие четири слободни водови ќе
предизвикаат појава на 16 скриени адреси бидејќи со нив може да се генерираат
24=16 различни комбинации.
Заради тоа што се фиксни само 4-те повисоки адресни битови, а логичките
нивоа на пониските четири се неважни, оваа излезна порта ќе може да се
адресира со било која варијанта што произлегува од сите 16 комбинации на 4-те
ниски адресни линии. Така, 16-те адреси со чие декодирање во секој случај се
адресира оваа излезна компонента ќе бидат А76543210=1111хххх, и тоа
почнувајќи од 11110000 до 11111111, или во хекса-нотација од F0h до FFh.
Примарната адреса на оваа порта е 11110000 или F0h, сокривајќи ги, или
засенувајќи ги преостанатите 15 адреси.

11.12. Примери на мемориски мапирани В/И компоненти


Кај мемориски пресликаниот начин на поврзување на В/И компоненти, или,
како што уште се нарекува, мемориското мапирање на В/И компонентите,
процесорот до нив ги испраќа контролните сигнали MRD* и MWR* и со нив
практично ја одредува насоката на пренесувањето на податоците кон нив, или од
нив. Во овој случај В/И компонента се специфицира со сите 16 бита од адресата
на ОМП. На овој начин практично на секоја В/И порта ѝ се доделува една
мемориска локација од меморискиот адресен простор на ОМП. Така на пр. ако на
ваков начин во МКП систем бидат поврзани 3 влезни и 2 излезни компоненти, при
што секоја од нив нормално треба да работи со 8-битни податоци, тогаш од
вкупниот мемориски простор на овие В/И компоненти ќе му бидат доделени пет
мемориски адреси. Така, регистерот каде се наоѓа 8-битниот податок на В/И порта
се третира од страна на ОМП како вообичаена мемориска локација со посебна
адреса. Токму заради ова, ваквиот начин на поврзување и се нарекува мемориски
пресликан влез/излез, или мемориски мапирани В/И компоненти.
582 Поврзување на општ микропроцесор

Кога станува збор за вака мемориски мапирани В/И компоненти, сите


асемблерски инструкции кои се мемориски ориентирани и кои се однесуваат и
применуваат за обработка на податоци помеѓу регистрите на процесорот и
мемориските локации, можат да се применат и врз податокот кој ОМП ќе го добие
од, или ќе го испраќа на В/И порта која е поврзана на ваков начин во МКП
системот. Сега В/И компоненти „стануваат“ дел од системската мемориска мапа на
ОМП.
За разлика од посебното (издвоеното) мапирање на В/И компонентите каде
изворот и одредиштето на податоците се ограничени само на акумулаторот, кога
станува збор за мемориски пресликан В/И уред, изворот и одредиштето на
податоците може да биде било кој регистер на процесорот, и со податоците од
В/И портата може директно да се извршуваат сите аритметичко-логички операции
со кои располага ОМП.
Имено, кај посебното адресирање В/И компонентите/портите можеше да се
применуваат исклучиво само инструкциите IN и OUT. Со инструкцијата IN се чита
(прифаќа) податок од влезна компонента чиј одредишен регистер е секогаш
акумулаторот. Слично, кога се извршува инструкцијата OUT изворниот регистер
каде е сместен податокот кој ќе се запишува (испраќа) кон излезната компонента
е секогаш акумулаторот. И за двете инструкции, еден од операндите мора да биде
акумулаторот.
Од друга страна, кај мемориски пресликаните В/И уреди програмерот може
да ги применува сите мемориски ориентирани инструкции: STA a16 и LDA a16, MVI
M, d8, MOV M, Rs и MOV Rd, M, LHLD a16, SHLD a16, потоа ADD M, SUB M, INR M,
ORA M, ANA M, XRA M и CMP M. На овој начин податокот добиен од, или наменет
за, некоја В/И компонента може да биде пренесуван во секој регистер за општа
намена на процесорот, и со него да се извршуваат наведените операции за кои
вториот операнд ќе биде во акумулаторот.

Пример-1
Како прв пример за поврзување на надворешна компонента преку В/И
порта која е мемориски мапирана (пресликана) и тоа со апсолутно декордирање
на адресата е прикажана прилично едноставната логичка шема од сл. 11-34. За
целосно декодирање на адресите повторно е употребено декодерското
интегрирано коло 74LS138 кое претставува 3-во-8 декодер со три влеза за
дозвола за работа.
Гледајќи ја сликата можеме да заклучиме дека декодерот ќе биде
овозможен само кога на неговиот контролен влез G1* се појави ниско ниво што ќе
се случи само кога контролната линија MRD* падне на нула (MRD*=0) која е
приклучена/поврзана на него. Ова се случува самокога процесорот комуницира со
меморијата што јасно укажува дека В/И портата е мемориски пресликана. Освен
ова, контролниот влез G2* ќе се отвори само ако на адресната линија А3 се
појави ниско напонско ниво на лигичка нула (А3=0) бидејќи таа линија е директно
поврзана на овој влез. Дополнително, покрај наведеното, за да се отвори портата,
на 12-те повисоки адресни линии треба да се појави единствено следнава адресна
комбинација: А15-А4=1111-1000-1111.
Поврзување на општ микропроцесор 583

Преостанатите три најниски адресни битови А2А1А0 директно се


декодираат преку влезовите за декодирање на 138-ката. При ова за секоја од 8-те
влезни комбинации ќе се активира спуштајќи се на ниско ниво некој, еднозначно
определен и посебен, само еден од 8-те можни излези на ова декодерско коло.
Имајќи го предвид претходното објаснување, сите 16 адресни линии се
декодираат со што е јасно дека се работи за апсолутно декодирање на адресите.

Сл. 11-34. Aпсолутно декордирање на мемориски мапирана В/И компонента.

Пример-2
Дополнителни два примери на мемориски пресликани В/И периферни
компоненти со примена на декодерот 74х138 се прикажани на сл. 11-35 а) и б).
Првата влезна компонента е поврзана преку влезната порта реализирана со ИК
74х244. Станува збор за ИК кое претставува еднонасочен драјвер чиј што влез за
овозможување на работа се активира преку излезот од декодерот означен со Y7.
Втората излезна компонента е поврзана преку излезната порта реализирана со
лечот 74х373 чии излези може да се најдат во трета состојба, чија работа се
дозволува кога ќе се активира излезот на декодерот Y6.
И во овој пример адресните информации се целосно (апсолутно) декодирани,
но со поинаку изведена логика во однос на примерите од сл. 11-30 и сл. 11-31,
иако како и таму, се користи истото декодерско интегрирано коло 74х138.
Имено, во оваа логичка шема со 74х138-ката се декодираат адресните линии,
но сега тоа се сите 16, а покрај тоа за да се добијат активни сигнали за
овозможување на портите, секој од двата излези посебно, Y7 и Y6 се носи на НИ
логичко коло. Неговиот излез ќе биде активен само кога ќе се добие ниско ниво
на контролниот сигнал MRD*, односно MWR*. Ова е од причини што тие две
сигнали се втори влезови на НИ колата и само така ќе го пропуштат активниот
(соодветниот) излез од декодерот до влезот за овозможување на влезната,
односно излезната порта.
584 Поврзување на општ микропроцесор

Сл. 11-35. а) Aпсолутно декордирање на мемориски пресликани В/И периферни


компоненти
Од дадената логичка шема може да се заклучи дека декодерот ќе биде
селектиран и овозможен во работа, единствено со следнава бит-комбинација на
13-те повисоки адресни линии: А15-А8=1111-1111, А7654=1111, А3=0. Само оваа
адресна комбинација ќе ги активира влезовите за дозвола на декодерот бидејќи
што само тогаш G2*=0 и G1*=0 и G0=1. Имено, највисоките 8 адресни линии А15-
А8 преку НИ коло се поврзани на G2*, следните четири А7-А4 се приклучени на
G1*, додека на G0 доаѓа адресниот вод А3. Последните најниски три адресни
линии А2А1А0 директно се декодираат затоа што се поврзани на неговите влезови
за декодирање A, B и C. Така, со овие адресни линии може да се адрeсираат осум
В/И порти, и тоа секоја од нив на еден од посебните осум излези: Y7, Y6, ..., Y0.
Според ова, адресата на портата која е приклучена на излезот Y7 ќе биде: А15-
А0=1111-1111-1111-0111, додека портата поврзана на излезот y6 ќе има адреса
А15-А0=1111-1111-1111-0110, или во хекса нотација FFF7Н, односно и FFF6Н.

Сл. 11-35. б) Aпсолутно декордирање на мемориски пресликани В/И периферни


компоненти
Поврзување на општ микропроцесор 585

Овде треба да нотираме дека лечувањето на податоците кои се присутни на


податочната магистрала се врши со активирање на контролниот влез LE за
заклучување на ИК 74х373, но за да тие податоци му стојат на располагање на
излезната компонента, излезите на сите 8 D-леч кола треба да бидат отворени,
поточно да им бидат овозможени нивните излезни бафери. Тоа ќе се оствари само
ако контролниот влез за отворање на излезните бафери на 373-ката се наоѓа на
ниско ниво. Токму заради тоа, овој контролен влез е фиксно врзан на „масата“
GND, т.е. на нултото референтно ниво.

Пример-3
Уште еден пример на поврзување на влезна порта која е мемориски
пресликана, исто како и оние во претходните два примери, со апсолутно
декордирање на адресите е претставен на следната слика, сл. 11-36.

Сл. 11-36. Aпсолутно декордирање на мемориски мапирана порта


586 Поврзување на општ микропроцесор

Сепак, за разлика од претходните примери каде беше применет 3-во-8


декодерот 74x138 со три влеза за дозвола за работа и три за декодирање,
адресното декодирање во овој случај се изведува поедноставно со три НИ
логички кола од кои две НИ кола се осум-влезни, додека третото НИ коло е со три
влеза. На излезот од последното НИ коло може да се поврзе само една порта, која
за овој пример е земена да биде влезна. Од ваквата логика на поврзување
произлегува дека, приклучената порта ќе биде овозможена само ако се исполнети
следниве услови:
1) Прво треба двата излези од 8-влезните НИ кола да се активни, што ќе се
случи само со целосно декодирање на сите 16 адресни битови и тоа за следнава
адресна комбинација А15-А0 = а) 0101 1111 1111 1111, б) 1001 1111 1000 1110
или во хекса означување 5FFFн и 9F8Eн, последователно, и потоа треба
2) процесорот да го активира контролниот влез за читање од меморија
MRD*, поставувајќи го истиот на ниско логичко ниво (MRD*=0).

Пример-4
Пред да го презентираме последниот четврт пример, кратко ќе се
потсетиме на парцијалното декодирање на адресите кога поврзувањето на
периферните компоненти со процесорот се изведува со декодирање на некои од
16-те адресните сигнали, а не со сите нив. Тоа предизвикува редунданција, т.е.
појава на скриени адреси и заради тоа повеќезначно адресирање на една В/И
порта со неколку различни адреси.
Ваквото делумно декодирање на адресите на влезна порта која е
мемориски пресликана е прикажано на сл. 11-37, од која се воочува дека за
декодирање на адресите е повторно употребено добро познатото декодерско
интегрирано коло 74LS138 кое претставува 3-во-8 декодер со три влеза за
дозвола за работа.

Сл. 11-37. Делумно адресно декодирање на мемориски пресликана порта


Поврзување на општ микропроцесор 587

Ако се фокусираме на адресните линии и ја погледнеме логиката на


нивното поврзување со декодерот, ќе забележиме дека се декодираат само
највисоките 8 адресни линии А15-А8. Бидејќи ниските осум А7-А0 адресни битови
не се декодираат ќе изведеме заклучок дека заради нив ќе се појавуваат 28=256
ниски редундантни адреси. Така секоја висока 8-битна адреса ќе сокрива 28=256
ниски адреси.
Поконкретно, декодерот 74LS138 ќе биде селектиран со следнава
комбинација на петте највисоки адресни линии А15А14А13А12А11=10100, додека
преостаните три А10А9А8 директно се декодираат при што за секоја од можните 8
комбинации почнувајќи со 000 и завршувајќи со 111, се добива активен еден од 8-
те излези на декодерот со следниов редослед: Y0, Y1, …, Y7. Од сликата се гледа
дека на едниот влез од излезното НИ коло со кое се активира влезната порта е
поврзан излезот Y0, додека на неговиот втор влез е приклучен излезниот
контролен сигнал од процесорот за читање од меморија MRD* со кој што се
определува мемориски пресликана влезна компонента.
Консеквентно, оваа мемориски мапирана влезна компонента може да се
специфицира со следнава комбинација на повисоките 8 адресни битови:
А15А14А13А12-А11А10А9А8 = 1010-0000 или А0Н, и со сите можни 256 различни
адреси кои се добиваат со понискиот бајт на адресната информација почнувајќи
од А7654-3210=0000-0000, па се до А76543210=1111-1111, или во хексадекадно
означување од 00Н до FFH. Конечно, примарната адреса на портата ќе биде
А000Н, додека сите преостанати 255 адреси од А001Н до А0FFH ќе бидат засенети
(скриени) со неа.
За понуденото решение лесно може да се промени адресната комбинација
за селекција на декодерот со наједонставно меѓусебно заменување на адресните
линии А15 со А14 една со друга. Во овој случај декодерот ќе биде овозможен со
комбинацијата А15А14А13А12А11=01100, така што примарната адреса на портата
ќе биде А13А12-А11А10А9А8 = 0110-0000 или 6000Н, додека сокриените 255
адреси ќе се наоѓаат во опсегот од 6000Н до 60FFH.
Од друга страна, опсегот на адреси исто така едноставно може да се смени
само ако како влез во НИ колото, наместо излезот Y0 се избери некој друг излез
од декодерот.
588 Поврзување на општ микропроцесор

11.13. Споредба помеѓу издвоеното и мемориското


мапирање на В/И порти
Во таб. 11-18 многу кратко и јасно е дадена споредбена анализа на најважните
карактеристики на издвоеното и мемориското мапирање на В/И порти.

Мемориско мапирање на В/И Издвоено мапирање на В/И


компоненти компоненти

1. Во овој уред адресата е 16-битна. Во овој В/И уред адресата е 8-битна.


Линиите од А0 до А15 се користат за да Линиите од А0 до А7 се користат за да
ја генерираат адресата на уредот или ја генерираат адресата на уредот или
компонентата. компонентата.

2. Контролните сигнали MEMR* и МЕМW* Контролните сигнали IOR* и IOW* се


се користат за да ги контролираат В/И користат за да ги контролираат В/И
операции читање и пишување. операции читање и пишување.

3. Расположивите инструкции се LDA a16, Расположивите инструкции се IN и


STA a16, LDAX rp, STAX rp, MOV M, R, OUT. Може да се користи само
MOV R, M, ADD M, CMP M, и сл. На тој директно адресирање.
начин, ние можеме да користиме и
директен и индиректен режим на
адресирање.

4. Податочниот трансфер е помеѓу било Податочниот трансфер е само помеѓу


кој регистер и В/И уредот акумулаторот и В/И уредот

5. Теоретски земено, максимално Максимално можниот број на В/И


можниот број на В/И уреди кои може уреди кои може да се приклучат е
да се приклучат е еднаков со 28=256. (максималниот адресен
максималниот адресен мемориски мемориски простор останува
простор кој изнесува 216=65536 216=65536)

6. Брзината на извршување, времето Брзината на извршување, времето


потребно за извршување на потребно за извршување на IN/OUT
инструкциите е променливо и зависи инструкциите изнесува 10 Т-состојби.
од тоа конкретно која инструкција ќе
се изведува. За директно адресирање
потребни се 13 Т-состојби, додека за
индиректно 7 Т-состојби на кои треба
да се додадат дополнителни Т-состојби
за полнење (внесување) на иницијална
состојба во регистерскиот пар H||L.

7. Декодирањето на 16-те адресни битови Декодирањето на 8-те адресни


ќе бара повеќе хардвер – повеќе битови поедноставно се изведува
хардверски компоненти и заради тоа што хардверските потреби
покомплексно поврзување. се помали.

Таб. 11-18. Споредба помеѓу издвоеното и мемориското мапирање на В/И комоненти


Поврзување на општ микропроцесор 589

11.14. Влезно/Излезен систем


Главната задача на В/И системот е да пренесува податоци помеѓу
процесорот или меморијата и надворешниот свет. Бидејќи најважен дел од
надворешниот свет е секако и човекот, со преносот на податоци помеѓу
процесорот и некој влезен или излезен уред, единица или компонента, човекот
испраќа и добива нови информации кои ги содржат во себе тие податоци. В/И
системот претставува комбинација од различни В/И модули, чија главна улога им
е да поврзуваат (анг. interface) и заради тоа за сите нив, во општ случај, се
употребува поимот интерфејс.
Овде е многу важно да акцентираме дека В/И системот не претставува
едноставно механичко поврзување на различните периферни уреди на
системската магистрала со обични прекинувачи. В/И системот треба да содржи
соодветни В/И модули како интерфејсни комоненти со сопствена логика за да
може да се реализира комуникацијата помеѓу периферниот В/И уред и
магистралата. В/И модулите во себе содржат одредена логика за поврзување кон
внатрешноста на компјутерот, кон процесорот и меморијата, но и дополнителна
логика заради поврзување кон надворешноста, кон периферните В/И компоненти
или уреди.
В/И системот, во основа, има две главни функции, а тоа се:
 поврзување со процесорот и меморијата преку системската магистрала,
 поврзување на еден или повеќе В/И уреди со соодветни врски кои се
прилагодени на податоците кои се пренесуваат и разменуваат.
За појасно разбирање на В/И системот, сл. 11-38 прикажува блок-шема на МКП
систем. На системската магистрала која ги содржи податочната, адресната и
контролнaта магистрала се поврзани процесорот, оперативната меморија, како и
В/И системот на кој се приклучени неколку периферни компоненти. На сликата
може да се забележат и врските помеѓу В/И модулите што ги опфаќаат
контролните сигнали и сигналите за состојба кои В/И системот ги разменува со
процесорот и со екстерните В/И уреди.

Сл. 11-38. Блок шема на МКП систем со работната меморијата и В/И системот
590 Поврзување на општ микропроцесор

За да се оствари успешна комуникација и трансфер на податоци помеѓу


секој В/И уред, микро/процесорот и оперативната RAM меморија, тој периферен
уред треба
 да биде поврзан на адресната магистрала за да може процесорот да го
адресира со еднозначно определена адреса и со тоа да пристапи до
него,
 да биде приклучен и на податочната магистрала за процесорот да може
да испраќа податоци према него, или да прифаќа податоци од него, и
 да биде поврзан со одредени линии од контролната магистрала за
процесорот да може од една страна да ја прочита, да ја „види“
состојбата во која се наоѓа тој В/И уред, а од друга страна да ја
контролира и да управува неговата функција.
Од дадената блок-шема може да се заклучи дека таа се однесува на
паралелен пренос на податоци бидејќи сите компоненти во микро-процесорскиот
систем се поврзани на податочната магистрала која е осум битна што значи дека
по неа, во било кој временски момент, паралелено се пренесуваат сите битови на
податокот во облик на збор со должина од еден бајт.
Покрај наведеното, ќе истакнеме и тоа дека преносот на податоци помеѓу
МКП и периферните компоненти во основа е асинхрон бидејќи внатрешниот такт
сигнал, во опшпт случај на секоја В/И единица е независен од другите така што
секоја од нив за своите внатрешни регистри го користи сопствениот такт. Ако
регистрите на В/И интерфејсот споделуваат заеднички такт со регистрите на
процесорот се смета дека преносот помеѓу двете единици е синхрон. Но, овде тоа
не е случај, така што било кои две единици се асинхрони една во однос на друга,
и кога помеѓу нив ќе се случи пренос на податоци, тој пренос ќе биде со асинхрон
карактер. За асинхронскиот пренос на податоци помеѓу две независни единици
карактеристична е и потребата да се пренесуваат и контролни сигнали меѓу нив,
за тие временски да ги усогласат моментите кога ќе испраќаат податоци.

11.14.1. Влезно/Излезни програмабилни порти


Поврзувањето на статички Е/P/ROM и RAM мемориските ИК-а и на
наједноставни В/И компоненти претходно веќе го анализиравме во поголеми
детали. Посебно се задржавме на примената на непрограмабилните В/И порти
преку анализа на принципот на поврзување на интегрираните кола кои со нив се
реализираат. Разгледавме поедноставни примери за приклучување на
повеќекратни баферски и леч-кола за задржување со наједноставни влезни,
односно излезни компоненти како што се група од осум прекинувачи, односно
осум светлечки диоди.
Меѓутоа, за поврзување на покомплексни В/И компоненти и уреди како што
се на пр. тастатура, хард диск, Д/А и А/Д конвертори, и сл. треба да се користат
интегрираните дигитални кола со кои се реализираат програмабилни В/И порти.
Во продолжение ќе се запознаеме со нивните базични карактеристики, а фокусот
ќе го ставиме и врз основните принципи за начините на нивно поврзување, како и
за можностите за нивна примена.
Поврзување на општ микропроцесор 591

Програмабилната В/И порта претставува посебно наменски дизајнирано ИК,


чија функција може да се програмира со контролен команден збор што ваквата
порта го добива од страна на процесорот и кој привремено се сместува во т.н.
контролен (статусен) регистер. Програмабилната порта го декодира командниот
збор со својата внатрешна логика и врз основа на тоа соодветно ги иницијализира
своите податочни пинови: кои од нив ќе бидат влезни, а кои излезни.
Контролниот регистер има и своја втора улога на статусен регистер бидејќи од
страна на В/И уредот, кој е поврзан на портата содржи информации за тоа каква
е неговата состојба. Во тој случај, програмерот може да ја прочита неговата
содржина и врз и врз база на тоа да предвиди извршување на одредена
програмска секвенца која ќе ја изврши процесорот.
Податокот кој треба да се пренесе помеѓу периферниот уред и процесорот
привремено се чува во т.н. податочен регистер кој, покрај контролниот регистер,
е составен дел од секоја програмабилна порта.
За да може да ги разменуваат своите содржини со процесорот, и двата
регистри се поврзани на податочната магистрала, на некои водови од адресната
магистрала, така што имаат еднозначно доделени адреси, како и на некои линии
од контролната магистрала.
Програмабилната порта може најчесто да се програмира во следниве
карактеристични начини на работа:
 контролен режим.
 едноставен влезен или излезен режим,
 стробирачки влезен или излезен режим.
Во контролен режим на работа В/И портата може се програмира од страна
на процесорот којшто преку податочната магистрала до неа испраќа наредба во
облик на команден збор. Оваа команда се запишува во посебен контролен
регистер на портата кој се декодира со нејзината внатрешна логика и соодветно
на тоа таа го поставува својот режим на работа. Всушност, секој бит во
контролниот збор содржи одредена информација со која ги конфигурира
поединечните пинови на портата да бидат сите влезни, односно да бидат сите
излезни, или некои да бидат влезни, а други излезни. Во овој режим на работа
процесорот управува со портата и ја иницијализира нејзината функционална
конфигурација поставувајќи ја насоката на преносот на податоци кон, или од,
периферниот В/И уред кој е поврзан на неа.
Во едноставните режими на работа, портата пренесува податоци преку
податочната магистрала кои може да ги лечува (задржува) ако се добиени од
влезен уред во влезен режим на работа, односно да ги баферува излезните
податоци до излезниот уред ако е во излезен режим.
Во стробирачки режим податоците се внесуваат или празнат со менување
на логичкото ниво на надворешниот строб (блиц) сигнал.
И во едниот и во вториот работен режим податоците коишто се
пренесуваат привремено се запамтуваат во посебен податочен регистер кој
влегува во состав на ваквото програмабилно интегрирано коло.
592 Поврзување на општ микропроцесор

11.14.2. Барања на В/И системот


Јасно е дека В/И системот претставува одреден хардвер со кој се остварува
поврзување на В/И уредот на системската магистрала, заради што и се нарекува
В/И интерфејс. Главните активности на В/И интерфејсот во општ случај се:
1. контрола и временско усогласување и синхронизација (тајминг),
2. пренос и размена на податоци со процесорот,
3. пренос и размена на податоци со периферниот В/И уред,
4. баферување на податоците, и
5. откривање на грешки.
На нив ќе се задржиме во продолжение и ќе ги осветлиме во малку
поголеми детали. В/И интерфејсот вклучува барања во поглед на контролата и
времето заради координирање на протокот на податоци („сообраќајот“) помеѓу
внатрешните ресурси на компјутерот како што се меморијата и системската
магистрала со неговите надворешни периферни В/И компоненти или уреди. Во
врска со наведеното, комуникацијата на интерфејсот со процесорот вклучува
трансфер на различни видови на контролни сигнали со кои се синхронизира
нивното меѓусебно функционирање.
Поради тоа што на В/И интерфејсот често пати можат да бидат поврзани и
неколку периферни уреди, тој треба да го насочува трансферот на податоци
помеѓу процесорот и секој од приклучените периферни уреди. При ова, В/И
интерфејсот треба како влезни сигнали да ги користи сигналите присутни на
адресната магистрала и потоа да доделува единствена и еднозначно определена
адреса на секоја периферна комонента или уред кој е поврзан со него. Покрај
нив, помеѓу процесорот и В/И интерфејсот се пренесуваат сигнали кои
претставуваат податоци што се разменуваат преку податочната магистрала. Овде
припаѓаат и контролните сигнали заради управување со машинските циклуси на
читање или запишување кои процесорот ги испраќа до В/И системот, како и
сигналите на состојба кои процесорот ги прима од него. И едните и другите
вообичаено се присутни на некои од линиите на контролната магистрала.
Брзината на трансфер на податоците кај периферните уреди е најчесто, скоро
секогаш без исклучок, многу помала отколку брзината на процесорот. Заради ова
неопходно е потребно процесорот да проверува дали периферниот уред е
спремен, или не е спремен за пренос на податоците. Доколку В/И уредот не е
спремен, процесорот мора да чека. Заради ова процесорот треба да ја знае
состојбата на В/И уредот преку проверување на неговиот В/И интерфејс. За
ваквата намена се користат специјализирани, посебни наменски сигнали како што
е сигналот за зафатеност (анг. BUSY) и сигналот за спремност (анг. READY).
Како заклучок би резимирале дека В/И интерфејсот мора да биде способен
да извршува комуникација со процесорот која вклучува прифаќање на
управувачки команди, размена на статусни информации за тековната сотојба, и
пренос на податоци.
Баферувањето на податоците е исто така една суштинска задача на В/И
интерфејс. Брзината на трансфер на податоци кај периферните уреди е далеку
помала отколку брзините со кои работат процесорите и мемориските полу-
проводнички интегрирани кола кога тие се вклучени во преносот. Податоците кои
Поврзување на општ микропроцесор 593

доаѓаат од меморијата преку процесорот или директно од него се испраќаат до


В/И интерфејсот, таму се баферуваат и потоа се испраќаат до периферниот В/И
уред со брзина која нему му одговара. Од друга страна, податоците треба да
бидат баферувани во В/И интерфејс и тогаш кога нив ги испраќа В/И уредот до
процесорот или мемориските интегрирани кола, за да може брзината на пренос во
овој случај да биде поголема и прилагодена на брзината на работа на процесорот
и меморијата. Оттука станува јасно дека В/И интерфејсот мора да биде способен
да функционира како со помала брзина која му одговара на периферијата, така и
со поголема брзина која ги задоволува барањата поставени од страна на
процесорот и меморијата.
Во микро/компјутерскиот систем можат да се случат грешки од најразлична
механичка или електрична природа како што се на пр. ненамерни и неочекувани
промени во битовите на податокот, евентуални грешки во преносот на податокот,
и многу други. В/И интерфејсот е исто така одговорен и за детекција на
појавените грешки и за нивно пријавување до процесорот.

11.14.3. В/И интерфејсен модул


За да се исполнат сите овие барања, В/И интерфејсниот модул како
најважни блокови задолжително треба да ги содржи оние што се прикажани на
слика 11-39. Заради поедноставување и полесно разбирање, на сликите е
употребено блоковскиот пристап со блок-шема наместо детално прикажување на
внатрешните елементи и врските меѓу нив.
Како што може да се види од слика 11-39, В/И интерфејсот содржи два
регистри од кои едниот е означен како податочен регистер, додека вториот како
статусен (контролен) регистер. Како на податочниот, така и на статусниот
регистер им се доделени еднозначни адреси при што и двата регистри се
поврзани на податочната магистрала.
Податочниот регистер привремено го чува податокот кој треба да се
пренесе од уредот до процесорот, или треба да го прифати оној податок што
процесорот го испраќа кон периферниот уред.
Другиот регистер е означен како контролен/статусен регистер затоа што
има двојна намена: кога процесорот го чита тој има улога на статусен регистер на
состојба, додека кога во него запишува тој игра улога на контролен регистер.
Статусниот регистер содржи информација која е релевантна за состојбата на В/И
уредот поврзан на В/И интерфејсот. Имено, читајќи ја содржината на овој
регистер процесорот ја дознава состојбата на В/И уредот, а со тоа и неговиот
статус. Од друга страна, со испраќање на контролен команден збор и негово
запишување во истиот тој регистер, процесорот може да ја менува и да ја
одредува работата на В/И уредот. Неговата содржина ја „разбира“ и декодира
централната В/И логика и со тоа ги контролира внатрешните блокови на модулот
и ја детерминира неговата работа. Токму заради ова, централната В/И логика е
најважниот блок на модулот. Таа може да ги извршува наредбите испратени од
страна на микро/процесорот заради што ваквиот В/И модул може да се
програмира со ограничен број на функции во насока на извршување на В/И
трансфер на податоците.
594 Поврзување на општ микропроцесор

На влезот од централната В/И логика се наоѓа адресниот декодер на кој


што се приклучени водовите на адресната магистрала за тој да може да ја
декодира адресата која што ја испраќа процесорот. Покрај нив, до блокот на В/И
логика доаѓаат и одредени контролни сигнали од контролната магистрала, како и
сигналите кои до него ги испраќа интерфејсната логика за поврзување со
надворешниот В/И уред.

Сл. 11-39. Најважни блокови на В/И интерфејсниот модул


Улогата на интерфејсната логика за поврзување со надворешниот В/И уред,
или на екстерната интерфејсна логика како што уште се нарекува, се содржи во
самото нејзино име. Таа ги прифаќа податоците од самиот В/И уред, како и
неговите статусни сигнали за состојбата во која се наоѓа. Покрај нив, излезната
логика до В/И уредот ги испраќа управувачките сигнали со кои се контролира
насоката на движење на податоците помеѓу процесорот и В/И уредите како и
брзината на тој пренос.

Сл. 11-40. Блок-шемата на В/И интерфејсот на влезниот или излезниот уред


На сл. 11-40 е прикажана блок-шемата на В/И интерфејсот на самиот
влезен или излезен уред. Тој содржи одредена контролна логика преку која до
В/И модулот ги испраќа сигналите на состојба, односно ги прифаќа сигналите со
кои се контролира неговата работа. Дополнително, со претворувачот (анг.
transducer) ги прифаќа сигналите кои ги претставуваат податоците на В/И уредот
во облик својствен за него и ги претвора во бинарен облик погоден за транспорт
до В/И модулот, и обратно. Непосредно пред да бидат испратени, односно кога ќе
бидат примени, податоците се баферуваат во истоимениот блок (анг. buffer).
Поврзување на општ микропроцесор 595

11.14.4. Техники за влезно/излезен пренос на податоците


Кога се зборува за влезно/излезниот пренос на податоци, всушност се
работи за пренос на податоци помеѓу В/И уредите и оперативната RAM меморија.
За да се изврши ваквиот В/И трансфер на податоци се користат повеќе различни
техники, при што кај микро/компјутерите како основни и најчесто користени
техники се софтверски и хардверски контролираниот пренос. Во рамките на
софтверски контролираниот пренос припаѓаат:
 Програмски контролиран влез/излез, кој уште се нарекува и програмиран
влез/излез (анг. programmed I/O), и
 Влезно/излезен трансфер управуван со прекини (анг. Interrupt driven I/O).
Хардверски контролираниот пренос, како што веќе спомнавме, е познат под
името директен мемориски пристап (ДМП).

Првите две техники се во принцип


меѓусебно различни, но и двете се софтверски
управувани и во практиката се користат за
пренос на помал број на податоци, вообичаено
еден по еден бајт. Ова е од причини што во овие
два начини на пренос процесорот целосно го
контролира трансферот при што извршува
соодветен програм – низа од инструкции според
принципиелниот блок-дијаграм прикажан на
слика 11-41. Од дијаграмот се воочува дека за
секој пренесен бајт од некоја влезна порта до
меморијата, односно од меморијата до некоја
излезна порта, процесорот извршува прилично
голем број на инструкции заради кои губи
значително време.

Сл. 11-41. Принципиелен блок-дијаграм за програмски контролиран В/И пренос


Техниката за пренос на податоци, водена од прекини е вториот и подобар
софтверски метод за трансфер на податоци бидејќи поефективно го искористува
времето на процесорот. Кога се применува оваа техника, програмерот прво го
овозможува прекидниот систем на процесорот и го иницира В/И уредот за пренос
на податоци, по што процесорот продолжува со извршување на инструкциите од
главниот програм. На крајот на секоја инструкција, процесорот автоматски
внатрешно проверува дали некоја периферна компонента, преку посебниот
контролен пин за таа намена, до него има доставено валиден (важечки) сигнал за
прекинување на програмот кој тековно го извршува.
Ако нема барање за прекин, процесорот продолжува со извршувањето на
тековниот програм. Но, ако има барање за прекин, процесорот го прекинува
извршувањето на главниот програм, и преминува на извршување на посебен
потпрограм за опслужување на тој прекин.
596 Поврзување на општ микропроцесор

По неговото комплетирање, процесорот се враќа во главниот програм и


продолжува со негово извршување од следната инструкција по онаа во која беше
прекинат.

Сл. 11-42. Блок-дијаграм на трансфер на податоци кој е контролиран со прекини


Како една споредба помеѓу овие два техники ќе го наведеме примерот за
одговарање на телефонски повик. Според програмски контролираниот В/И ние би
требало циклично, на одреден временски интервал, да ја оставаме работата која
ја извршуваме, сами да се „прекинуваме“ и нон-стоп да проверуваме дали некој
нѐ бара. Разговорот ќе го реализираме само тогаш кога некој нѐ бара, што
можеби воопшто нема да се случи, а ние нон-стоп, само непотребно проверуваме.
Спротивно на ова, при прекидно контролираниот В/И ние ќе се јавиме и ќе го
обавиме разговорот, а при тоа работата ќе ја оставиме, само тогаш кога
телефонот ќе заѕвони.
Последната трета техника за пренос на податоци преку директен пристап на
В/И уредот до меморијата е хардверски контролиран и заради тоа концепциски е
многу поразлична од претходните две софтверски техники на В/И пренос. Имено,
при директниот мемориски пристап (ДМП) процесорот не игра никаква улога и тој
воопшто не го контролира трансферот на податоци туку извршува некои внат-
решни операции. Во овој случај преносот е хардверски контролиран и управуван
од страна на т.н. ДМП контролер кој претставува посебно програма-билно
дигитално интегрирано коло и, ако така може да се каже, на некој начин, само
при преносот, ја презема улогата на процесорот. Директниот мемориски пристап
(ДМП) се применува за пренесување на поголемо количество податоци како што е
на пр. трансферот на блок од податоци помеѓу хард-дискот и оперативната RAM
меморија.
Поврзување на општ микропроцесор 597

11.14.5. Програмиран трансфер на податоци


Во овој режим на податочен трансфер работните операции се резултат на
В/И инструкции кои се составен дел на компјутерскиот програм. Секој пренос на
податоци е инициран со одредена инструкција во програмот. Кога се реализира
ваков начин на комуникација програмот нема да продолжи со извршување додека
бараната В/И инструкција не биде завршена. Ова значи дека В/И инструкцијата
сигурно ќе се изврши пред било што друго да се случи.
Постојат два начини на кои може да биде извршен програмираниот В/И
пренос, а тие/тоа се: безусловен В/И пренос, и условен В/И пренос.
Со користење на безусловниот В/И пренос, процесорот може да испрати
податоци до надворешна компонента во секое време. Надворешната единица
мора секогаш да е спремна за трансфер на податоци. Овој метод на безусловен
асинхрон пренос е со помош на т.н. строб сигнал (анг. strobe) – блиц импулс со
многу кратко време на траење кој се појавува преку единствена контролна линија
и тоа во моментото кога треба да се случи преносот.
Ваков трансфер на податоци беше помеѓу процесорот и мемориските
интегрирани кола каде што стробот е контролниот сигнал за мемориско
запишување MWR* испратен од страна на процесорот до меморискиот чип.
Слично, како на строб сигнал при читање на податок од мемориското коло може
да земе контролниот сигнал за читање од меморија MRD*. Доколку брзината на
работа на меморијата беше нешто помала во однос на процесорот, до процесорот
преку посебно коло се испраќаше сигнал за спремност (анг. Ready) со кој се
обезбедуваше временско синхронизирање. Уште еден ваков пример беше и
поврзувањето на излезна порта реализирана со повеќекратно леч-коло за
задржување преку која на микро/процесорскиот систем приклучувавме светлечки
LED диоди.
Главен недостаток на методот со користење на строб сигнал е фактот што
изворната единица која го иницира трансферот нема начин „да дознае“ дали
одредишната единица навистина ги примила податоците што беа ставени на
магистралата бидејќи од неа нема добиено повратна информација што се случи со
нив. Заради ова техниката на трансфер со „строб контрола“ („strobe control”) се
применува само на многу кратки растојанија и со прилично едноставни В/И
компоненти, како што се и претходно наведените примери.

Сл. 11-43. Метод a) со користење „строб“ сигнал и б) со „ракување“


Овој проблем може да се реши со условниот В/И пренос кога процесорот ги
испраќа податоците до надворешниот уред со трансфер кој е наречен наречен
„ракување“ или „поздравување“ (анг. handshaking) заради контролните сигнали
кои процесорот и В/И уредот си ги разменуваат пред да се изврши трансферот на
598 Поврзување на општ микропроцесор

податоци. Методот на „ракување“ воведува втора линија за уште еден контролен


сигнал со која му се овозможува одговор, повратен сигнал до единицата која го
иницира трансферот. Процесорот прво се „поздравува“, со В/И уредот, а потоа го
реализира преносот на податоците.
Кога В/И преносот се реализира на овој начин, програмот нема да
продолжи со извршување додека бараната В/И инструкција не биде завршена.
Ова значи дека В/И инструкцијата сигурно ќе се изврши пред било што друго да
се случи.
Кога В/И преносот се реализира на овој начин, процесорот во рамките на
програмот што го извршува му задава инструкција на В/И уредот и влегува во
режим на „зафатеност и чекање“ (анг. busy-wait) сѐ додека В/И трансферот не
биде завршен, како што е прикажано на сл. 11-44 а) со блок-дијаграм. За време
на овој период на „зафатеност и чекање“ процесорот е цело време ангажиран со
проверување на знаменцето заради што изгледа дека мирува бидејќи
континуирано цело време проверува, т.е. го испитува уредот дали ја завршил В/И
трансакцијата и ништо друго не работи. Од гледна точка на корисна работа, може
да се земе дека тој е во состојба на некакво привидно мирување бидејќи не
работи ништо корисно, туку само проверува и чека. Ова нѐ потсетува на
ситуацијата која често ни се случува кога возиме автомобил и застануваме на
семафор; моторот на автомобилот работи, но самиот автомобил не се движи –
работи во “лер“ и мирува додека ние како возачи цело време проверуваме дали
на семафорот се запалило зелено светло за да продолжиме со возење.
За да се реализира ваквиот програмски воден начин на пренос на податоци
секогаш во „игра“ се вклучува статусен регистер на состојба со соодветно
знаменце кое треба да покаже дали В/И инструкцијата е комплетирана како што е
прикажано на сл. 11-44 б). Кога В/И трансферот е завршен, уредот тоа му го
сигнализира на процесорот со поставување на знаменцето.

Сл. 11-44. а) б) Програмиран трансфер на податоци


Кога процесорот испраќа резултати вообичаено е преносот на податокот да
се врши од некој негов регистер до некој периферен уред или компонента. Од
друга страна, процесорот во истиот, или во друг регистер ги сместува влезните
податоци што ги прифаќа и кои што му се потребни за да изврши некоја
пресметка или обработка. Кога еднаш податоците се испратени, процесорот
почнува да го испитува интерфејсот за да види кога може да го направи следниот
трансфер. Програмските инструкции водат континуирана евиденција за сѐ што се
случува со В/И уредите преку интерфејсната компонента.
Поврзување на општ микропроцесор 599

Трансферот на податоци бара извршување на следниве три инструкции:


1. Прочитај го статусниот регистер,
2. Провери ја состојбата (вредноста) на еднобитното знаменце и оди на
претходниот чекор 1 ако тоа НЕ Е поставено, или на чекор 3 ако е
поставено,
3. Прочитај го податочниот регистер.
На сл. 11-45 е прикажан поедноставен и подетален блок-дијаграм на извршу-
вањето на програмиран В/И пренос.

Сл. 11-45. Блок-дијаграми на програмираниот В/И трансфер на податоци


Во оваа техника процесорот е одговорен за читање на податоците од мемо-
ријата и нивно испраќање кон излезните уреди, односно за нивно прифаќање од
влезните единици и запамтување во меморијата.
Недостаток на условниот програмиран В/И пренос е тоа што микро/
компјутерот треба да го проверува статусниот бит извршувајќи циклус на чекање
додека уредот не биде спремен за трансфер. Кај бавните В/И уреди ова чекање
може да ја намали способноста на микрокомпјутерот да ги процесира другите
инструкции и со тоа да ја забави обработката на податоците.
600 Поврзување на општ микропроцесор

11.14.6. Програмиран В/И пренос со повикување


Доколку на микро/компјутерскиот систем се поврзани повеќе периферни В/И
компоненти или уреди со кои преносот на податоци е софтверски управуван
тогаш се користи т.н. В/И трансфер со проверка кој уште се нарекува В/И пренос
со повикување или „со гласање“ (анг. pooling). Имено, процесорот извршува
програм со кој последователно ги „анкетира“ сите приклучени уреди за да
провери кој од нив има потреба да испрати, односно да прифати податок и
доколку има таков, со тој уред да го реализира соодветниот пренос. По
завршување на проверката на сите порти, процесорот продолжува со извршување
на тековниот програм – вообичаените програмски задачи, за да по некое време ја
повтори оваа софтверска рутина за проверување и опслужување на В/И
компонентите.

Следниот блок-дијаграм го прикажува


алгоритамот на едноставна софтверска
рутина која повремено ја проверува
состојбата на два В/И уреди поврзани во
МКП систем преку два порта означени со Р1
и Р2. За време на оваа проверка ОМП по ред
го испитува статусот и на двете приклучени
В/И компоненти и проверува дали некоја од
нив има потреба од сервисирање.
Имено, ОМП најпрво го презема
статусот на В/И портата Р1, внесувајќи го во
акумулаторот. Потоа ја испитува неговата
содржина за да провери дали е поставен
битот за барање на опслужување. Ако овој
бит е поставен, тогаш се повикува
потпрограмот за опслужување на уредот
поврзан на портата Р1. По завршување на
рутината за сервисирање на портата Р1,
главниот програм продолжува со тестирање
на портата Р2, и истата ја опслужува ако
има барање за тоа, односно не презема
никаква акција ако нема. По одреден
временски интервал повторно почнува со
тестирање на портата Р1 и ако треба
нејзино опслужување, па проверка на Р2,
Сл. 11-46. Блок-дијаграм на итн. Во меѓувреме ги извршува програмските
програмиран В/И пренос со инструкции од главниот програм.
повикување

Од блок-дијаграмот на програмот за сервисирање на В/И компонентите


може да се види дека на секоја В/И компонента ѝ е доделен различен приоритет
за нејзино опслужување. Имено, со започнувањето на извршувањето на овај
програм за проверка и сервисирање на В/И компонентите, оној уред што е
поврзан преку портата Р1 секогаш се проверува прв, со што тој има повисок
приоритет во однос на уредот поврзан на портата Р2.
Поврзување на општ микропроцесор 601

Слаби страни на програмираниот В/И пренос: Главниот недостаток на


програмски иницираниот В/И пренос е тој што процесорот треба да ги надгледува,
т.е. да врши мониторинг на В/И единиците за цело време додека се извршува
програмот. На овој начин процесорот останува во циклус на програмско
повторување се додека В/И компонентата или уредот, не покаже дека е
спремна/ен за пренос на податоци. Јасно е дека овој процес одзема време и дека
процесорското време се троши некорисно, заради тоа што процесорот програмски
внимава и го контролира извршувањето на В/И трансферот. За да се надмине овој
проблем се воведува втората софтверска техника на В/И пренос управуван со
прекини каде што се користат посебни контролни сигнали на процесорот
специјализирани за ваква намена.

11.15. В/И трансфер управуван со прекини


Често пати за време на работата, микро/компјутерот, во даден момент,
автоматски треба да изврши една од неколку различни сервисни потпрограми
(анг. routines) од кои секоја е наменета за опслужување на различна периферна
компонента во МКП системот. Овие рутини треба да се извршат само ако се
исполнети одредени услови во системот како што е на пр. сервисирање на
тастатура кога ќе биде притиснат некој тастер, задвижување на глувчето, читање
на податок од некој А/Д конвертор, потоа некаква промена на состојба заради
податок добиен од некој сензор, или опслужување на други компоненти и/или
уреди кои бараат „внимание“.
Еден вообичаeн метод за сервисирање на ваквите компоненти и уреди би
бил пристапот преку нивна софтверска проверка после одреден временски
период, којшто претходно го разгледавме и анализиравме. Кога се применува
оваа техника позната како програмиран трансфер со проверување (анкетирање,
гласање, анг. pooling), В/И компонентите се анкетираат при што секоја од нив „се
повикува“ да „гласа“ и да „каже“ дали има потреба од услуга. Со примена на овој
метод процесорот редоследно мора да ги тестира сите уреди еден по еден, и секој
од нив да го „праша“ дали има потреба од комуникација со процесорот.
Поконкретно процесорот ги проверува сите В/И компоненти циклично дали со
некоја од нив треба да реализира пренос на податоци. Ако се примени ваквиот
пристап може лесно да се заклучи дека процесорот троши прилично голем дел од
главниот програм, гледано од временски аспект, во континуирано извршување на
проверка и „ис/прашување“ на секоја компонента дали „сака“ да комуницира со
ОМП и да оствари трансфер на податоци со него. Ваквиот метод би имал сериозни
и деградирачки ефекти врз брзината на работа на микропроцесорскиот систем,
успорувајќи го, а со тоа и ограничувајќи го извршувањето на неговите
вообичаени програмски задачи.
Во ваквите случаи, кога периферните уреди бараат асинхроно
опслужување, понекогаш, или одвреме навреме, позгоден метод би бил кога
процесорот би си ја извршувал најнормално својата вообичаена работа –
главниот програм, и би се префрлил на извршување на потпрограмот за
сервисирање на некој периферен уред само кога тој уред самиот „ќе посака“ да
биде опслужен. Како последица на тоа, за реализација на овој метод кај ОМП
треба да постои надворешен асинхрон влез, посебен пин, преку кој ОМП ќе биде
информиран дека треба да ја заврши тековната инструкција од главниот програм
602 Поврзување на општ микропроцесор

(било која што во тој момент се извршува), и програмската контрола да ја пренесе


извршувајќи нов, посебен сервисен потрпограм (анг. Sub/routine) за опслужување
на уредот кој тоа го бара.
По завршувањето на бараната услуга, кога сервисната рутина ќе биде
завршена, процесорот треба да продолжи со извршување на главниот програм
којшто беше прекинат, и тоа со првата инструкција во него што следува по
последната која тој ја имаше извршено. Ваквиот метод на сервисирање на
барањата за В/И трансфер се нарекува прекидно управуван В/И трансфер или
прекиден В/И пренос. Со овој начин на опслужување, лесно може да забележиме
дека системот ќе работи многу поефикасно бидејќи неговата комуникација со
бавните В/И компоненти и уреди ќе се случи само кога навистина ќе има потреба
за тоа. Имено, со прекидниот трансфер нема потреба од циклична проверка на
В/И уредите во одредени регуларни временски интервали и губење на непотребно
време и ресурси за ваквото испитување. Со ова станува јасно дека брзината на
работа и пропусната моќ на МКП системот значително ќе се подобрат.
Освен надворешните барања, постојат и внатрешно иницирани барања за
прекин од страна на оперативниот систем на микро/компјутерот или софтверски
генерирани прекини кога програмерот сам поставува прекидни точки во
програмот кој го изработува заради проверка на точноста на обработката или
како контрола и одговор на некои непосакувани настани кои може да се случат
при неговото извршување.
11.15.1. Основен принцип за опслужување на прекин
Специјализираната потпрограма за опслужување на В/И компонентата се
нарекува потпрограма или рутина за сервисирање на прекин или на анг. interrupt
service routine, ISR. Прекидниот принцип на работа и сервисирање на барањата од
В/И уредите сликовито е илустриран со сл.11-47. Настанот кој го предизвикал
прекинувањето на извршувањето на главниот програм се нарекува прекин,
додека специјализираниот потпрограм на која се „скока“ и кој се извршува за
сервисирање на тој прекин е всушност потпрограмот, или рутината како што
жаргонски се нарекува, за сервисирање на тој прекин.
Најпрво треба да знаеме дека процесорот по автоматизам проверува дали
постои барање за прекин на крајот од извршувањето на секоја инструкција,
поточно за време на секоја втора T-состојба на последниот машински циклус на
инструкцијата што тековно ја извршува. Доколку процесорот добие валидно
барање за прекин тој ја внесува содржината на програмскиот бројач во
магацинската стек-меморија. Всушност во стек-меморијата се внесува адресата на
следната инструкција од главниот програм која што треба да се изврши после
извршувањето на прекидната рутина за опслужување на прекинот, т.е. на стекот
ја сместува т.н. повратна адреса.
Потоа во програмскиот бројач се сместува адресата на мемориската
локација каде што е запамтена првата инструкција на соодветната прекидна
потпрограмата за опслужување на тој прекин (ISR) со што се започнува со
нејзиното извршување. На крајот на секоја прекидна рутина, како последна
инструкција треба да биде запишана инструкцијата RET со која се овозможува
враќање во главниот програм кој беше прекинат. Кога се извршува инструкцијата
RET, процесорот ја извлекува содржината од магацинската стек-меморија, а тоа
Поврзување на општ микропроцесор 603

беше адресата на следната инструкција од главниот програм непосредно пред


прекинот на неговото извршување и неа ја внесува во програмскиот бројач. Со
тоа процесорот го завршил сервисирањето на прекинот и се враќа во главната
програма со што повторно ја превзема програмската контрола над
микро/компјутерскиот систем.

Сл. 11-47. Барање за прекин од В/И уред и негово опслужување

11.15.2. Класификација на прекините


Комерцијалните МКП овозможуваат прекинување на извршувањето на
главниот програм и пренос на програмската контрола на посебен специјализиран
потпрограм за опслужување на онаа В/И компонента која побарала прекин на
работата на МКП, што значи дека појавата на барање за прекин има повисок
приоритет во однос на другите сигнали. Тие располагаат со најразлични видови
на прекини заради што во литературата, од општ аспект, прекините може да се
класифицираат според различни критериуми за што токму сега ќе зборуваме.
Дополнително, како што реалните МКП овозможуваат генерирање на
различни типови на прекини, така и ОМП располага со можности за прекинување
на извршувањето на главниот програм, со една важна забелешка дека неговиот
систем на прекини е многу поедноставен. Понатаму ќе се фокусираме и ќе го
анализираме и системот управуван со прекини на ОМП во поголеми детали.

11.15.2.1. Софтверски и хардверски прекини: Во однос на причината


за нивното настанување прекините се делат на софтверски или хардверски.
За софтверските прекини може да се каже дека се иницирани од
внатрешноста на процесорот бидејќи тие се всушност инструкции коишто ги
извршува процесорот, а се напишани во одредени програмски редови во
програмот кои програмерот ги испланирал за нив. При извршување на програмот
кога процесорот ќе наиде на внесената прекидна инструкција тогаш тој го
прекинува тековниот програм и ја извршува соодветната суб/рутина за да го
опслужи тој прекин. По нејзиното завршување процесорот се враќа на
прекинатиот програм и продолжува со негово извршување од следната
инструкцијата веднаш по онаа, каде беше прекинат.
604 Поврзување на општ микропроцесор

Што се однесува до ОМП тој располага со четири т.н. рестартирачки RST


инструкции кои може да предизвикаат четири различни софтверски прекини, а
тоа се асемблерските инструкции RST0, RST1, RST2 и RST3.
Хардверските прекини се иницирани од страна на надворешна компонента
или уред која што е приклучена на процесорот на специјализиран пин за
прекинување на неговата работа. Имено, компонентата која бара прекин
поставува активен сигнал на оној влезен пин на процесорот на кој е таа поврзана
и кој пин е фабрикуван за ваква екстерна сигнализација на прекин. Доколку
прекинот е прифатен од страна на процесорот тој во принцип реагира на ист
начин како и за софтверскит прекин: го прекинува тековниот програм, ја
извршува соодветната прекидна потпрограма за сервисирање на периферната
компонента која го побарала тој прекин и по нејзино комплетирање продолжува
со извршување на главниот програм.
Без разлика дали станува збор за софтверски или хардверски инициран
прекин, извршувањето на прекидниот потпрограм од страна на процесорот се
нарекува сервисирање или опслужување на прекин.

11.15.2.2. Немаскирливи и маскирливи прекини: Во поглед на


одговорот на барањето за прекин од страна на ОМП, поточно во однос на времето
на опслужување хардверските прекини може да бидат маскирливи или
немаскирливи.
Немаскирливите прекини процесорот веднаш ги опслужува без одлагање
штом на содветниот влезен пин добие активен сигнал за барање на прекин.
Вообичаено тоа се прекини кои се хардверски иницирани од надворешен уред кој
е поврзан на посебно издвоен влезен пин на процесорот за таква намена. Овде
само кратко ќе додадеме и тоа дека софтверските прекини спаѓаат во групата на
прекини кои се немаскирливи.
Прекидните пинови чии влезови може да се маскирааат се одвоени од
другите процесорски пинови. За разлика од немаскирливите прекини, процесорот
маскирливите прекини ги сервисира само ако НЕ се маскирани. Доколку се
маскирани, тие се всушност оневозможени и процесорот нив не ги препознава.
Тогаш тој „не е свесен“ за нивното постоење иако нив некоја надворешна
компонента ги бара, и заради тоа што „не ги гледа“, процесорот нив не ги
опслужува се додека се маскирани. Тој го одлага нивното сервисирање се до оној
момент кога бараниот маскиран прекин се демаскира и со тоа се овозможува.
Маскирањето всушност претставува софтверска техника која програмерот ја
користи за да го прикрие барањето за прекин од процесорот за тој да не може
истото да го препознае и со тоа да не треба да го опслужи.
Што се однесува до ОМП, тој располага со два пина за хардверски прекини:
 влезниот пин означен со NMI (анг. Non maskable interrupt) овозможува
поврзување на надворешна компонента која ќе биде сервисирана со
немаскирлив прекин;
 влезниот пин чија намена е приклучување на периферна компонента
чие барање за прекин може да се оневозможи е означен со INTR (анг.
Interrupt, прекин).
Поврзување на општ микропроцесор 605

Барањето на прекин преку овој пин може да биде маскирано, но ако тоа
е демаскирано, ОМП него го прифаќа и го одобрува испраќајќи
соодветен сигнал до компонентата која барала прекин преку излезниот
пин INTA* (анг. Interrupt acknowledge, потврден прекин) кој како
дополнителен пин му е придружен на пинот INTR.

11.15.2.3. Векторски и невекторски прекини: Во поглед на адресите


на прекидните рутини и нивната местоположба во адресниот мемориски простор
на процесорот прекините се делат на векторски и невекторски прекини.
Доколку причината за предизвиканиот прекин покажува (како некој
вектор), на конкретна хардверски предефинирана адреса во RAM оперативната
меморија, тогаш се работи за векторски прекин. Тоа е почетната адреса на
мемориската локација каде треба да се наоѓа првата инструкција од прекидниот
потпрограм и се нарекува вектор адреса.
Доколку адресата на прекидната потпрограма не е претходно вградена и
може да се наоѓа на различно место во меморијата, т.е. треба да биде одредена
од страна на компонентата која бара прекин, таквиот прекин се нарекува
невекторски прекин.
Кај векторските прекини процесорот претходно „ја знае“ адресата на
прекидната рутина на секој векторски прекин, бидејќи таа е хардверски вградена
во процесорот кога тој се произведувал. За разлика од векторските прекини, кога
треба да опслужи невекторски прекин, процесорот треба да ја добие адресата на
прекидната рутина за тој невекторски прекин од надворешната компонента која
него го побарала.
Во секој случај, вообичаено е сите прекини, векторски или невекторски, тие
да се мапирани, да се наоѓаат во т.н. прекидна вектор табела ПВТ (анг. Interrupt
Vector Table, IVT) која вообичаено се наоѓа некаде во првата страница од
оперативната меморија која зафаќа 256 бајти и започнува од адреса 0000h до
00FFh. Главната улога на IVT е во себе да ги содржи вектор-адресите на сите
векторизирани прекини кои ќе го упатат (редиректираат) процесорот на
соодветното место во оперативната меморија за секој прекин кој ќе пристигни до
него од секој уред којшто побарал опслужување.

11.15.3. Софтверски прекини кај ОМП


ОМП му остава можност на програмерот да располага со четири софтверски
иницирани прекини кои не може да се оневозможат, ниту да се маскираат. Тоа се
рестартирачките инструкции од типот RST n, каде што n=0, 1, 2, 3, т.е.
инструкциите RST0, RST1, RST2 и RST3. Секоја од овие инструкции го пренасочува
вообичаениот програмски тек на извршувањето на своја посебна, однапред
хардверски одредена мемориска адреса, каде се наоѓа мемориска локација, чија
содржина е поврзана со соодветниот прекин. Ова значи дека сите четири RST
прекини се векторски бидејќи секоја RST инструкција си има своја однапред
дефинирана вектор адреса од која треба да започне нејзината соодветна
прекидна потпрограма. Табелата 11-19 ги презентира рестартирачките инструк-
циии со своите кодови на операција и нивните вектор адреси.
606 Поврзување на општ микропроцесор

Наведувањето на инструкциите RST n, каде што n=0, 1, 2, 3 е идентично со


повикување на потпрограм со инструкцијата CALL проследена со адресата на
прекидната рутина. Така на пр. RST3 инструкцијата е идентична со инструкцијата
CALL 0018H. Единствената разлика е во тоа што секоја од RST инструкциите е
еднобајтна, додека повикувањето потпрограм со инструкцијата CALL e три-бајтна.

Таб. 11-19. Рестартирачки RST инструкции со своите КОП и нивните вектор адреси
Рестартирачкиот прекин вообичаено се наведува како RST инструкција на
она место во програмата каде што програмерот смета дека треба да постави
контролна точка заради проверка на точноста на резултатите од извршувањето
на претходните програмски инструкции. Каква ќе биде улогата и функцијата на
соодветните прекидни потпрограми за сервисирање на ваквите софтверски
прекини ги дефинира самиот програмер бидејќи тој знае каде може да се појави
непосакуваниот настан кој треба да биде решен со неа.

Сл. 11-48. Сервисирање на софтверски RST2 прекин кај ОМП


Кога процесорот ќе наиде на една од инструкциите за софтверски прекин,
тој по ставањето на стек на повратната адреса, како нова содржината во
програмскиот бројач ја внесува векторската адреса на соодветната прекидна
инструкција. Така на пр. ако е наведена инструкцијата RST2, во програмскиот
бројач се внесува содржината 0010H каде што треба да биде сместена првата
инструкција на прекидната програма за опслужување на тој софтверски прекин.
Понатамошното однесување на процесорот е веќе познато: по завршување на
прекидната рутина и извршување на најзината последна инструкција RET
програмската контрола му се враќа на главниот програм кој беше прекинат.
Поврзување на општ микропроцесор 607

11.15.4. Хардверски прекини кај ОМП


За хардверските прекини на ОМП напоменавме дека тие се иницираат од
страна на некој надворешен уред на начин што тој уред поставува соодветен
активен сигнал на некој од прекидните пинови на процесорот чија состојба
процесорот ја проверува за време извршување на последниот машински циклус
на секоја инструкција. Ако ОМП препознае валиден знак за прекин и ако прекинот
е демаскиран и овозможен, тогаш процесорот го прифаќа тој прекин и преминува
на негово сервисирање. Доколку прекинот потекнува од пинот за немаскирлив
прекин NMI тој веднаш и недоложно се опслужува префрлувајќи ја програмската
контрола на вектор адресата 0024Н каде што треба да биде сместена првата
инструкција на прекидната рутина за опслужување на овој немаскирлив прекин.
Меѓутоа, ако барањето за прекин доаѓа од пинот INT и ако ако тој прекин е
демаскиран, процесорот потврдува дека прекинот е одобрен и прифатен со
испраќање на сигналот INTA* до екстерниот уред кој го побарал тој прекин, и
потоа преминува на негово сервисирање. Бидејќи прекинот на пинот INT не е
векторски, компонентата или уредот кој го прекинува главниот програм треба
веднаш по добивањето на сигналот за потврда INTA*, преку податочната
магистрала на процесорот да му го достави кодот на операција на една од RSTn
(n=0, 1, 2, 3) инструкциите, а со тоа и да му ја предочи адресата на прекидната
рутина која што тој треба да ја изврши. По добивањето на оваа новопоставена
адреса процесорот започнува со извршување на прекидната рутина чија што прва
инструкција се наоѓа токму на оваа новодобиена адреса.
Сликата 11-49 се однесува на класификацијата на прекините кај ОМП. Таа
ги прикажува како хардверските, така и софтверските прекини, потоа оние што се
немаскирливи и маскирливи, вклучувајќи ги и векторските адреси во меморијата
каде што треба да се наоѓаат нивните прекидни рутини.

Сл. 11-49. Класификацијата на прекините кај ОМП


Векторската табела на прекините за ОМП е претставена како таб. 11-20, на
која се наведени вектор адресите на софтверските и хардверските прекини,
кодовите на рестартирачките инструкции, причините за нивно предизвикување и
маскирливоста, т.е. нивното возможување, односно оневозможување.
608 Поврзување на општ микропроцесор

Адреса Прекин КОП Причина Маскирливост


0000 RST0 C7H Хардверски преку Се маскира со
0008 RST1 CFH пинот [14] INTR или инструкцијата DI
софтверски со
0010 RST2 D7H
истоимената
0018 RST3 DFH Се демаскира со
инструкцијата
инструкцијата EI
0024 Хардверски преку Немаскирлив прекин
пинот [13] NMI

Таб. 11-20. Векторска табела на прекини кај ОМП


11.15.5. Системот управуван со прекини на ОМП
Имајќи во вид дека хардверските прекини потекнуваат од надворешна В/И
единица поврзани на ОМП тие по природа се асинхрони, тоа значи во секое време
може да се појави било каков прекин. Покрај тоа, исто така, може да се појават и
повеќе прекини во еден момент. Бидејќи микропроцесорот може да опслужува т.е.
решава само еден прекин во даден момент, мора да постои систем за решавање
на приоритети според кој микропроцесорот ќе може да одлучува за прекините врз
основа на тој приоритет.
Реалните 8-битни микропроцесори имаат посебни и различни системи
управувани со прекини така што секој од нив располага со различен број на
пинови за прекин на нивната работа.
За ОМП веќе претпоставивме дека тој располага само со два влезни пинови
накои може да се иницираат следниве прекини:
 немаскирлив прекин – кој може да биде инициран на пинот за NMI,
 прекин кој може да биде маскиран (дозволен) на пинот – INTR, на кој му е
придружен излезен пин INTA* со кој процесорот информира дека прекинот
е одобрен кога тој е дозволен и не е маскиран.
Очигледно е дека пиновите NMI и INTR може да предизвикаат два различни
типа прекини што значи дека од една страна прекидниот систем на ОМП не е
многу комплициран и тежок за објаснување, а од друга ќе ни ги даде потребните
базични знаења за оваа проблематика.
ОМП обезбедува две нивоа на логика за решавање на приоритетот на
надворешно иницираните прекини. Прекинот на пинот NMI има повисок
приоритет, додека прекинот на пинот INTR има понизок приоритет. Таб. 11-21
прегледно и концизно ни ги дава приоритетните нивоа на двата прекини, нивната
маскирливост, векторизираност и обликот на сигналот кој што нив може да ги
предизвика.
Прекин Приоритет Маскирливост Векторизираност Активирање
NMI Највисок НE ДА, вектор адреса Со работ и со нивото
пин [13] 0024н на сигналот
INTR Најнизок ДA, со инструк- НЕ, адресата е надво- Со нивото на
пин [14] циите EI/DI решно обезбедена сигналот
Таб. 11-21. Прекините кај ОМП и нивните карактеристики
Поврзување на општ микропроцесор 609

На сл. 11-50 е прикажана шема на внатрешната логика на системот


управуван со прекини на ОМП, со која се контролираат прекините во МКП
системот формиран околу него. Оваа слика го објаснува приоритетот на
прекините, т.н. прекидната логика со примена на две логички кола и еден т.н.
прекиден флип-флоп.

Сл.11-50. Логиката на системот за контрола на прекините кај ОМП


Наjнапред да забележиме дека и двата влезни пинови за прекин NMI и INTR се
компатибилни со транзисторско-транзисторската логика (TTL) така што високото
ниво кое треба да се појави за нивна побуда треба да има стандардна вредност од
+5V, како што е претставено на сл. 11-51. Меѓутоа, ако овие пинови не се
користат, секој од нив треба да биде заземјен на референтен потенцијал од 0V,
т.е. на „маса“ преку спуштачки (анг. pull-down) отпорник од 10 KὩ.

Сл. 11-51. Поврзување на В/И компонента која бара прекин на пинот а) NMI б) INTR
Од сликата се забележува дека прекинот на пинот за немаскирлив прекин
NMI се активира со појавата на предниот раб и со нивото на побудниот прекиден
импулс доведен на самиот тој влез кој треба да трае одреден временски период.
Микропроцесорот не може да го игнорира барањето за немаскирлив прекин на
пинот NMI и него мора веднаш да го сервисира, заради што се користи само за
итни цели.
Од друга страна, прекинот на пинот за маскирлив прекин INTR се активира
само со нивото на побудниот импулс доведен на тој влез кој треба да трае
одреден временски период. Приложениот сликовит приказ појаснува и тоа како EI
610 Поврзување на општ микропроцесор

и DI инструкциите можат да влијаат на овозможување или оневозможување


(демаскирање или маскирање) на прекинот предизвикан преку пинот INTR. Покрај
тоа на сликата се прикажани и векторизираните локации на сите овие прекини.
Прекинот инициран на INTR пинот ќе биди опслужен од страна на ОМП само
ако прекидниот флип-флоп биде сетиран со инструкцијата EI и со тоа го
овозможува системот за управување со прекини на ОМП. Само тогаш ОМП ќе
испрати низок сигнал за потврда на излезниот пин INTA*. Спротивно, овој прекин
ќе биде маскиран (оневозможен) ако се изврши инструкцијата DI, или процесорот
веќе сервисира некој прекин, или процесорот е надворешно ресетиран преку
пинот за стартување RSTIN*.
Во продолжение да се задржиме во малку поголеми детали за секој од овие
прекини и со тоа да го разјасниме системот управуван со прекини со кој тие се
опслужуваат од страна на ОМП.
Поврзување на општ микропроцесор 611

11.15. Споредба помеѓу програмираниот и прекидниот


В/И трансфер
Програмиран В/И трансфер В/И трансфер управуван со прекини
1. При програмираниот В/И трансфер Се користи надворешен асинхрон влез за
процесорот треба да ја провери да му се сигнализира „каже“ на
секоја В/И единица последователно и процесорот дека на одредена В/И
да ја анкетира, да ја повика да гласа, единица му треба сервисирање од негова
да ја „праша“ дали ѝ е потребна страна, па процесорот не треба да ги
комуникација со процесорот. Оваа проверува сите В/И единици дали имаат
проверка се постигнува со еден потреба за да бидат опслужени од него,
затворен круг на последователно туку ја опслужува само онаа која бара
проверување, „гласање“ или прекин.
„повикување“ на сите компоненти
така што тогаш процесорот не може
да извршува други инструкции.
2. За време на гласањето Кај В/И трансфер управуван со прекини
(повикувањето) на В/И уредите на процесорот му е овозможено да ги
процесорот е зафатен и со тоа има извршува своите инструкции последо-
сериозни негативни ефекти врз вателно и нив ги прекинува само за да го
пропусната моќ на системот. опслужи В/И уредот кога тој уред самиот
Брзината на работа – ефикасноста на ќе го побара тоа преку прекидниот пин
извршување на програмите на процесорот. Ваквиот механизам ја
зголемува пропусната моќ на МКПсистем.
3. Се применува без потреба од посебна Имплементиран е со користење на
хардверска поддршка која е хардверска поддршка, посебни ИК-а кои
неопходна кога не би се применувал овозможуваат реализирање на прекиден
прекиден трансфер. трансфер на податоци.
4. Преносот помеѓу В/И компонентата и За да се изврши В/И трансфер управуван
процесорот не зависи од статусот со прекини системот управуван со
(состојбата) на прекинот дали прекини мора да биде овозможен, а со
компонентата бара или не бара тоа и прекините, и прекините да не се
прекин маскирани.
5. Преносот нема потреба од Преносот има потреба од
експлицитна иницијализација на иницијализација на стек-меморија.
стекот.
6. Пропусната моќ се намалува како што Пропусната моќ на системот не зависи од
се зголемува бројот на поврзаните бројот на В/И уреди, кои се поврзани во
В/И компоненти или уреди во системот.
системот.

Таб. 11-22. Споредба помеѓу програмиран В/И трансфер и В/И трансфер управуван со
прекини
612 Поврзување на општ микропроцесор

11.16. Директен мемориски пристап (ДМП)


Извршувајќи ги своите програмски задачи, процесорот има честа потреба
за комуникација и размена на податоци со В/И компонентите од својата околина.
И програмираниот и прекидниот трансфер како софтверски преноси му одземаат
прилично значајно време на процесорот за нивна реализација бидејќи тој нив ги
контролира и управува извршувајќи соодветни потпрограми за што губи
значително време. Имено, и кај двете софтверски техники на В/И трансфер,
програмски контролираниот и трансферот што е управуван со прекини, постојат
два главни недостатоци, а тоа се следниве:
 Брзината со која се остварува В/И трансферот е ограничена со брзината со
која процесорот може да ги испитува и сервисира В/И уредите,
 Времето кое му е потребно на ОМП да го тестира статусот на В/И
компонентата и да изврши одреден број на инструкции потребни за
остварување на преносот на податоци со В/И уредот, може многу покорисно да
се потроши за извршување на други врски.
Ова значи дека ваквиот метод на трансфер на податоци кој е софтверски
контролиран не е погоден за пренос на поголема количина на податоци како што
е на пр. размената на податоци со хард дискот. Заради надминување на овие
недостатоци, се применува една друга, алтернативна техника, со која трансферот
на податоци е контролиран од страна на хардверот на машината, која во
компјутерската техника е позната под името директен мемориски пристап.
11.16.1. Хардверски контролиран податочен трансфер
За да се реализира оваа хардверска техника се употребува надворешна
компонента, поточно специјализирано интегрирано коло кое го котролира
трансферот на податоците. Оваа компонента генeрира адресни и контролни
сигнали кои се потребни за да го управуваат преносот на податоци и му
овозможуваат на периферниот уред директно да му пристапи на оперативната
RAM меморија. Од тука произлегува и именувањето на оваа техника како
директен мемориски пристап (ДМП, анг. Direct Memory Access, DMA).
Надворешната специјализирана компонента која го контролира ваквиот пренос на
податоците се нарекува ДМП контролер (DMPK, анг. Direct Memory Access
Controller, DMAC) чиј концептуален внатрешен блок–дијаграм е прикажан на
следната слика 11-52.

Сл. 11-52. Концептуален внатрешен блок-дијаграм на контролерот за ДМП


Поврзување на општ микропроцесор 613

Уредот кој сака да изврши ДМП до процесорот поставува сигнал за


барање на магистралата. Процесорот го завршува тековниот циклус на
магистралата, а потоа до уредот испраќа сигнал дека магистралата му е доделена.
На сл. 11-53 е прикажана блок шема на ваквиот пренос во рамките на
компјутерскиот систем. Начинот на функционирање на ДМП ќе го објасниме со
анализа на оваа блок шема.

Сл. 11-53. Блок шема на ДМП пренос во рамките на компјутерскиот систем

Покрај сликата
11-53, заради поилу-
стративно презенти-
рање на ДМП, ќе ја
користиме и сликата
11-54, која со броеви
го прикажува времен-
скиот редослед на
активности кои после-
дователно се извршу-
ваат при реализа-
цијата на ДМП. На
оваа слика е прикажан
и интерфејсот на В/И
уредот.

Сл. 11-54. Блок шема на


ДМП пренос во
компјутерскиот систем со
временски редослед на
активностите
614 Поврзување на општ микропроцесор

11.16.1.1. ДМП пасивен циклус на поврзување со оперативната


меморија
Кoга системот ќе се вклучи во работа сите прекинувачи се наоѓаат во
позицијата А така што магистралите го поврзуваат процесорот со работната ДМП
меморија и со периферните В/И уреди. Процесорот го извршува програмот сѐ до
првата инструкција во која има потреба од вчитување на блок податоци од
дискот. За да прочита блок податоци од дискот процесорот испраќа низа од
неколку команди до диск контролерот наредувајќи му и форсирајќи го да го
побара и прочита посакуваниот блок на податоци од дискот. Кога диск
контролерот е спремен за да го пренесе првиот бајт од податоците од дискот, тој
со сигналот MEMRQ испраќа барање за ДМП пристап до ДМП контролерот. Потоа
ДМП контролерот испраќа барање за ДМП преку сигналот DMARQ кој е поврзан на
влезниот пин BUSRQ на процесорот. Процесорот одговара на овој BUSRQ сигнал
така што неговите пинови кои се приклучени на адресната и податочната
магистрала ги носи во трета состојба и самиот се дисконектира од магистралите.
Едновремено во трета состојба ги носи и контролните линии за читање, односно
запишување во меморија и во В/И уреди: RDM*, WRM*, IORD* и IOWR*.
Исто така веднаш по исклучувањето од магистралите, процесорот испраќа
сигнал BUSAK со кој го известува ДМП контролерот дека е прифатено неговото
барање за ДМП. Кога ДМП контролерот ќе го прими сигналот BUSAK, на својот
влез DMACK тој на дискот му испраќа потврден сигнал MEMAK и со соодветни
контролни сигнали ја променува на позицијата на прекинувачите од позицијата А
во В. Со ова на магистралите е приклучен ДМП контролерот и тој ја има
контролата над нив бидејќи процесорот самиот веќе се исклучил.

11.16.1.2. Активен циклус на ДМП за преземање на магистралите


Кога ДМП контролерот ќе ја добие контролата над магистралите тој ја
испраќа мемориската адреса од која треба да биде земен првиот бајт од
податоците запишани на дискот. Тој исто така испраќа сигнал DMACK до диск
контролерот на дискот дека дискот треба да се спреми за да испрати еден бајт
како излезен податок. На крај, ДМП контролерот ги поставува (активира) двата
сигнали IOR* и MЕМW* на контролната магистрала. Со поставување на IOR*
сигналот му овозможува на диск контролерот да ипрати еден бајт како излезен
податок од дискот на податочната магистрала, додека со поставување на
сигналот MЕМW* му овозможува на адресираната мемориска локација да го
прифати податокот од податочната магистрала. Во оваа техника податоците се
пренесуваат директно од диск контролерот до мемориските локции без притоа да
минуваат преку процесорот или ДМП контролерот.
Сега станува јасно дека процесорот е вклучен во трансферот на податоци
само на почетокот и на крајот од овој пренос кој е хардверски контролиран.
Трансферот на податоци е мониториран од страна на ДМП контролерот кој
жаргонски се нарекува и ДМП канал.
Поврзување на општ микропроцесор 615

Кога процесорот сака да прочита, или да запише блок од податоци, тој му


дава команда на ДМП контролерот на тој начин што му ги испраќа следниве
информации:
1) Наредба (команда) за читање или запишување,
2) Адреса на В/И уредот којшто е вклучен во трансферот,
3) Почетната адреса на мемориската локација од каде треба да се започне
со читање на податоците, или запишување во нив,
4) Бројот на бајти кој треба да биде прочитан, или запишан.

11.16.1.3. Видови на трансфер на податоци со ДМП


Претходно наведовме дека директниот пристап до меморијата (ДМП) е
операција со која податоците се пренесуваат од една компонента или уред до
друга во рамки на компјутерски систем, без учество на процесорот. Ваквиот
трансферот на податоци е овозможен и се извршува под контрола на контролер
за ДМП се реализира како посебно програмабилно интегрирано коло или друга
дигитална компонента. Поконкретно, самиот пренос на податоци со ДМП може да
се реализира со еден од следниве три начини на работа:
1. Единечен начин на пренос или т.н. крадење на циклуси,
2. Блок трансфер режим на пренос,
3. Пренос врз основа на барање.

Сл. 11-55. Преломни точки за ДМП во инструкцискиот циклус


Во секој случај, постојат повеќе преломни точки за реализација на ДМП и тоа
за време на извршувањето на инструкцијата и после секоја нејзина фаза од
инструкцискиот циклус што може да се види од временскиот дијаграм даден на
сл. 11-55.
616 Поврзување на општ микропроцесор

Единечен начин на пренос (анг. single, cycle stealing). Ваквиот начин на


ДМП пренос е често користен во практиката, а се карактеризира со принцип на
работа кога уредот може да изврши само еден трансфер и тоа само на еден бајт.
После секој трансфер ДМП контролерот му ја враќа контролата над магистралите
назад на процесорот. Со единечниот начин на пренос процесорот има пристап до
магистралите на регуларна основа после секој ДМП пренос на еден бајт.
Практично земено, ДМП контролерот му зема, му „краде“ од такт циклусите на
процесорот кои тој треба да ги троши за извршување на инструкцијата заради
што се нарекува и дмп со крадење на циклуси (сл. 11-56). Со овој модел на
трансфер ДМП контролерот го споделува времето и контролата над магистралите
со процесорот.
Блок или последователен (анг. block, burst) начин на трансфер. Во
овој режим на работа В/И уредот може да изврши поголем број на трансфери и
тоа како што му е запишано во регистерот кој го содржи бројот на бајти, т.е.
мемориски зборови што треба да се пренесат и го формираат блокот од податоци
(сл. 11-56 б)). После секој пренесен збор регистерот кој ги брои пренесените
зборови се намалува за 1, додека адресата која покажува на мемориската
локација се намалува или зголемува за 1 зависно од тоа дали со овој ДМП
локациите се читаат во растечки, или во опаѓачки редослед. ДМП трансферот
продолжува сѐ додека бројачот на зборови не дојде до нула.

Сл. 11-56. Трансфер на податоци со ДМП а) поединечен б) блоковски

Пренос врз основа на барање (анг. demand). Во овој начин на ДМП


пренос трансферот продолжува да извршува сѐ додека самиот уред не го повлече
барањето за ДМП преку поставување неактивно ниво на сигналот DREQ, т.е. да го
пасивизира сигналот DREQ.
Поврзување на општ микропроцесор 617

11.17. Современи концепти за подобрување на


перформансите на микро/компјутерите
За да се зголеми брзината на извршување на програмите, а со тоа и
генерално да се подобрат перформансите на микро/компјутерите, дизајнерите на
мирко/компјутери применуваат различни техники од кои најпознати се следниве
три концепти: кеш меморија, виртуелна меморија и паралелно процесирање.

Конкретната изведба и имплементација подразбира примена на одреден


хардвер кој е поддржан со соодветни системски програми кои се дел од
оперативниот софтвер на современите микро/компјутери. Бидејќи деталната
анализа на наведените концепти го надминува нашето ниво на излагање, ние ќе
се задржиме и ќе ги осветлиме само нивните базични принципи.

11.17.1. Кеш меморија


Кеш меморијата (помошната скриена меморија, предмеморијата) (анг. cache
memory), која понекогаш се именува и како процесорска меморија, е скапа и
многу брза статичка RAM меморија со случаен пристап (SRAM), на која
микропроцесорот може да му пристапи побрзо отколку на оперативната RAM
меморија која вообичаено е изведена со динамички RAM интегрирани кола
(DRAM) со помала брзина на работа. Оваа меморија најчесто е интегрирана
директно на процесорскиот чип или изведена како одвоено меморискo
интегрирано коло кое има посебна магистрала за поврзување со процесорот.
Намената на кеш меморијата е да ги запамтува програмските инструкции и
податоци, кои најчесто се користат при извршувањето на програмите, како и оние
кои најверојатно на процесорот ќе му се следни потребни – во најскоро време.
Процесорот може многу побрзо да им пристапи на овие информации
запамтени во кеш меморијата, отколку ако треба да ги земе истите од главната
меморија која е поспора. Токму брзиот пристап до инструкциите и податоците кои
се наоѓаат во ќешот ја зголемува брзината на извршување на програмите, а со
тоа и на компјутерскиот систем.
Кога процесорот ги обработува податоците, тој прво бара во кеш
меморијата. Ако во неа ги најде наредбите или податоците кои ги барал, тој не ќе
мора да губи време за да чита од главната (оперативната, работната) RAM
меморија или од другите надворешни мемориски уреди за чување на податоци
како што е хард дискот. Кеш меморијата е „одговорна“ за забрзување на
извршувањето на операциите и програмите на компјутерот, а со тоа и со
намалување на времето потребно за целокупната обработка.
Кога еднаш ќе се активираат одредени програми, и кога тие работат, со тек
на времето, најголемиот број од нив користат само дел од ресурсите на
компјутерот. Тоа е затоа што често повикуваните инструкции имаат тенденција да
бидат сместени во кеш меморијата. Заради ова при мерењата на перформансите
на компјутерските системи, конфигурирани (асемблирани) со побавни процесори,
но со поголема кеш меморија, може да се случи тие да бидат побрзи од оние
компјутери, кои располагаат со побрзи процесори, но со помала кеш меморија.
618 Поврзување на општ микропроцесор

Форматот на мемориската кеш хиерархија вообичаено се однесува на т.н.


нивоа на кеш, преку кои се опишува близината на кеш чиповите и можноста за
брз пристап до нив од страна на микропроцесорот.
L1 кешот, или примарниот кеш, е екстремно брза, но со релативно мал
капацитет меморија која обично е вградена во процесорскиот чип заради што е
позната и како процесорска кеш меморија.
L2 кешот, или секундарниот кеш, е со поголем капацитет од примарниот L1
кеш. Секундарниот L2 кеш може да биде вграден во CPU, или тој може да биде на
посебен чип или копроцесор, и да има алтернативна системска магистрала со
голема брзина, која го поврзува со централниот процесор. Со ваквиот начин на
поврзување преку посебна магистрала не може да дојде до успорување на
сообраќајот доколку тој (L2 кешот) беше или би бил поврзан на главната
системска магистрала. Кешот од третото ниво, или т.н. L3 кешот е специјализи-
рана меморија, развиена за да ја подобри перформансата на примарниот L1 и
секундарниот L2 кеш.

Сл.11-57. Процесорот и пребарувањето на информации во систем со кеш меморија

Сл. 11-58. Одредување на адресата на баран податок во систем со кеш меморија


Поврзување на општ микропроцесор 619

Терциерниот L3 кеш вообичаено има двојно поголема брзина од брзината


на оперативната RAM-меморија, но сепак L1 и L2 ќешот се значително побрзи од
него. Во минатото L1, L2 и L3 кеш мемориите беа креирани со користење на
посебен – наменски процесор и асемблирани како дополнителни компоненти на
матичната плоча.
Во поново време, трендот е во насока на консолидирање на сите три
нивоа на мемориско кеширање во самиот централен процесор.

11.17.2. Виртуелна меморија


Виртуелната меморија (ВМ анг. virtual memory) е способност на
оперативниот систем (ОС) за мемориски менаџмент таков што привидно го
зголемува капацитетот на расположивата оперативна RAM меморија со
дополнителен мемориски простор. Според концептот на виртуелната меморија ОС
менаџира со употребата на меморијата, користејќи различни софтверски техники
врз постоечките хардверски ресурси. Ваквиот ОС со ВМ му овозможува на
компјутерскиот систем да го компензира недостатокот на физичка меморија со
привремено пренесување на активните програми и податоци од оперативната
RAM меморија на хард дискот. Виртуелниот адресен простор е зголемен со
користење на активната RAM меморија и пасивниот (неактивниот) мемориски
простор, која зафаќа мал сегмент на хард дискот за да формира континуиран
адресен простор, во кој ќе може да се сместуваат корисничките програми со
своите податоци.

Сл. 11-59. Хиерархиска мемориска организација со виртуелна меморија


620 Поврзување на општ микропроцесор

Концептот и реализацијата на виртуелната меморија беше развиена во


време кога инсталираната физичката меморија, т.е. главната, оперативнаата или
работната RAM меморија беше многу скапа. Бидејќи секој компјутер има одреден
конечен RAM мемориски капацитет, кој е ограничен, секогаш се појавува
недостаток од оперативна RAM меморија, особено тогаш кога во исто време се
извршуваат повеќе програми. OС, кој користи виртуелна меморија, употребува
дел од хард дискот за целосно да го реплицира (емулира) RAM-от.
Со виртуелната меморија системот може да вчитува и со тоа да полни во
RAМ-от поголеми програми или да извршува истовремено повеќе програми. На тој
начин, теоретски гледано, на секој од нив му дозволува да функционира исто како
кога компјутерот би располагал со бесконечен мемориски простор, а без при тоа
реално да обезбеди поголема оперативна меморија со физичко додавање на нови
RAM мемориски интегрирани кола.

Сл. 11-60. Транслација на виртуелните адреси во физички адреси


При копирањето на виртуелната меморија во физичката меморија, ОС ја
дели меморијата на т.н. фајлови страници (анг. page files) или фајлови за размена
(анг. swap files) со фиксен број на адреси. Секоја страница е запамтена на хард-
дискот и кога треба истата да се искористи, ОС неа ја копира од дискот во
главната меморија, при што виртуелните мемориски адреси ги претвора во
реални адреси.

11.17.3. Паралелно процесирање


Паралелната обработка на програмите е таква обработка при која нивните
програмски инструкции се разделуваат помеѓу повеќето процесори кои се во
склоп на компјутерот, а со единствена цел да се намали времето потребно за
нивно извршување. Да разгледаме еден пример на стандарден персонален
компјутер со 1 микропроцесор. Кај него, ако е потребен 1 час за извршување на
програма со интензивни математички пресметки и 1 час за извршување на некој
програм за копирање на лента, вкупно за нивно извршување процесорот ќе
Поврзување на општ микропроцесор 621

изгуби временски период од два часа. Меѓутоа, за истиот пример, во случај на


почетоците на паралелната обработка, се овозможува извршување на двете
програми заедно со преплетување и преклопување. Така на пр. компјутерот
започнува В/И операција за копирање и додека чека таа операција да заврши, тој
ќе извршува инструкции од другиот програм со интензивни математички
пресметки. Со ваквиот начин на работа, вкупното време на извршување на двата
програми може да биде само малку повеќе од 1 час.
Следното подобрување во домен на паралелното процесирање беше
концептот на мултипрограмирање. Во компјутерскиот систем со мулти-
програмирање, повеќето програми внесени од страна на корисниците, можеа да
го користат процесорот, секој од нив, одредено кратко време што им беше
дозволено од страна на ОС. На корисниците тоа им изгледаше како сите програми
да се извршуваат во исто време. Но, многу брзо како први проблеми во овие
системи се појавија користењето и распределбата на компјутерските ресурси.
Експлицитните барања за ресурси доведуваа до заглавување на системот,
проблем познат како „ќор-сокак“ (анг. deadlock). Натпреварувањето секој програм
да си ги добие потребните ресурси без никакви инструкции за разрешување,
доведе до вметнување на посебни програми кои го разрешуваат овој проблем.
Векторската обработка беше уште еден обид за да се зголемат
перформансите, со истовремено извршување на повеќе задачи од страна на
процесорот. Во овој случај, компјутерот со еден микропроцесор имаше можност
да дозволи една инструкција да собира (или да одзема, да множи) две низи од
броеви или да извршува некоја друга операција. Ова беше значајно во одредени
инженерски апликации каде што податоците беа вектори или матрици. Сепак,
векторската обработка на податоци не носеше значајно подобрување за оние
апликации кои обработуваа податоци, кои не беа така форматирани.
Следниот чекор во паралелната обработка, беше воведувањето на
мултипроцесорска работа во неговата почетна фаза. Кај овие компјутерски
системи со повеќе микропроцесори, два или повеќе процесори ја споделуваат
задачата која треба да се изврши. Поконкретно, овие системи имаат повеќе
процесори кои работат паралелно и заеднички го споделуваат такт-генераторот,
потоа магистралите, В/И периферни уреди, итн.

Сл. 11-61. Блок-шема мултипроцесорски системи


Најраните верзии на компјутери со мултипроцесорска обработка биле со
асиметрична конфигурација бидејќи еден процесор бил главен (анг. master) и тој
бил програмиран да биде одговорен за целата работа во системот.
622 Поврзување на општ микропроцесор

Само главниот процесор можел да извршува задачи во оперативниот систем и


само тој менаџирал со структурата на податоците и со нивниот проток. Другиот
процесор бил извршен (анг. slave) и тој ги извршувал само оние задачи што му
биле доделени од главниот процесор. Во тој период единствено бил возможен
ваков начин на функционирање бидејќи тогаш сеуште не се знаело како да се
програмираат компјутерите за да може секој процесор да соработува со другиот и
паралелно и адекватно заедно да управуваат со ресурсите на системот.

Сл. 11-62. Блок-шема на симетричен мултипроцесорски систем


Решавањето на овие проблеми во поново време доведе до развој на
симетрични мултипроцесорски системи кои сеуште се присутни и се развиваат.
Кога станува збор за системи со симетрично мултипроцесирање, повеќето
процесори ја делат заедничката меморија и оперативниот систем. Кај нив секој
процесор е подеднакво способен и одговорен за управување со процесот на
работа на системот. Сите процесори во системот при извршување на процесите
работат во тандем. Оперативниот систем сите процесори ги третира подеднакво,
и ниту еден процесор не е резервиран само за извршување на некои одредени
задачи.
Поврзување на општ микропроцесор 623

ПРАШАЊА И ЗАДАЧИ ЗА ПОВТОРУВАЊЕ


11-1. Што претставува мемориска мапа (карта)? Прикажи наједноставен пример.
11-2. Што претставува мемориска адресна табела? Прикажи наједноставен
пример.
11-3. Која е улогата на декодерската логика со која на микропроцесорот треба да
се поврзат мемориски компоненти и што e потребно таа да обезбеди?
11-4. Кои се техниките што се применуваат за декодирање на адресите кај микро-
процесорските системи? (Кои се двата основни концепти за поврзување на
мемориските компоненти со ОМП?)
11-5. Објасни ја блок-шемата за целосно (апсолутно) адресно декодирање
прикажана на сл. 11-5.
11-6. Нацртај ја и во куси црти објасни ја блок-шемата за целосно (апсолутно)
адресно декодирање.
11-7. Нацртај го функцискиот симбол на ИК 74х138 и во најкуси црти објасни ја
улогата на секој од неговите пинови.
11-8. Принципот на функционирање на декодерското ИК 74х138 најдобро може да
се разбере ако се анализира неговата функцискa блок-шема прикажана на
сл. 11-7 и таблицата на функционирање дадена како таб. 11-2. Имајќи ги во вид
истите, во кратки црти објасни како се однесува ова ИК?
11-9. Објасни ја сликата сл. 11-6, која прикажува поврзување на ОМП со две
мемориски интегрирани кола со целосно адресно декодирање: еден EPROM и еден
RAM чип, секој со капацитет од по 8 КВ (8 К збора х 1 бајт). а) Прикажи ја
мемориската адресна табела на дадениот пример, б) Нацртај ја и мемориската
мапа (карта) на овој МКП систем.
11-10. На следната слика 11-63 е извршена мала модификација во однос на
сл. 11-6. Одговори дали ваквото поврзување има логика и во врска со тоа дали е
дозволено? Образложи најконцизно. а) Прикажи ја мемориската адресна табела
на МКП систем од сл. 11-6, но со оваа измена, б) Нацртај ја и неговата мемориска
мапа.

(сл. 11-63)
624 Поврзување на општ микропроцесор

11-11. На следната слика 11-64 е извршена друга модификација во однос на


сл. 11-6. Одговори дали ваквото поврзување има логика и во врска со тоа дали е
дозволено? Образложи во најкуси црти. а) Прикажи ја мемориската адресна
табела на МКП систем од сл. 11-6, но со оваа измена, б) Нацртај ја и неговата
мемориска карта.

(сл. 11-64)

11-12. Објасни ја сликата сл. 11-9, на која е презентирано поврзување на ОМП со


две мемориски интегрирани кола со капацитет од по 1 КВ (1 Кзбор х 1 бајт): еден
EPROM чип и еден RAM чип со целосно адресно декодирање. а) Прикажи ја
мемориската адресна табела на дадениот пример, б) Нацртај ја и мемориската
мапа на овој МКП систем.
11-13. На следната слика (сл. 11-65) фокусот е ставен само врз декодерската
логика од сл. 11-9. Изврши мала модификација на поврзувањето така што (1)
EPROM -от ќе го поврзиш на излезот Y3, а RAM-от на излезот Y6 од декодерот.
а) Прикажи ја мемориската адресна табела на МКП систем од сл. 11-9, но со оваа
измена, б) Нацртај ја и неговата мемориска карта. Образложи во најкуси црти. (2)
Изврши мала модификација на поврзувањето така што адресните линии А11 и А10
ќе си ги заменат местата. а) Прикажи ја мемориската адресна табела на МКП
систем од сл. 11-9, но со оваа измена, б) Нацртај ја и неговата мемориската мапа
(карта). Образложи најконцизно.

(сл. 11-65)
11-14. Објасни ја сликата сл. 11-11, која прикажува поврзување на две RAM
мемориски ИК-а со капацитет од 512 бајти и апсолутно декодирање на адресите.
Логичката организација на секој од овие два чипа е 1 Кзбор х 4b (1 К х 1 нибл).
а) Прикажи ја мемориската адресна табела на дадениот пример, б) Нацртај ја и
мемориската мапа (карта) на овој МКП систем.
Поврзување на општ микропроцесор 625

11-15. Да претпоставиме дека на сл. 11-11 пинот G0 на декодерот 74х138


случајно наместо на напојувањето +Vcc, е поврзан на „маса“ (нултиот референтен
потенцијал, GND). Која би била последицата од ваквата несакана грешка?
Образложи во најкратко.
11-16. Модификувај ја сл. 11-11 така што адресните линии А12 и А10 ќе си ги
променат местата. а) Прикажи ја мемориската адресна табела на МКП систем од
сл. 11-11, но со оваа измена, б) Нацртај ја и неговата мемориска мапа (карта).
Образложи во најкуси црти.
11-17. На следната слика 11-66 е извршена мала модификација во однос на
сл. 11-11. Одговори дали ваквото поврзување има логика и во врска со тоа дали е
дозволено? Образложи во најкратки црти. а) Прикажи ја мемориската адресна
табела на МКП систем од сл. 11-6, но со оваа измена, б) Нацртај ја и неговата
мемориска мапа (карта).

(сл. 11-66)
11-18. Објасни ја блок-шемата за парцијално (делумно, линеарно) адресно
декодирање прикажана на сл. 11-12.
11-19. Нацртај ја и во куси црти објасни ја блок-шемата за парцијално (делумно,
линеарно) адресно декодирање.
11-20. Објасни ја сликата сл. 11-13, на која е презентирано поврзување на две
мемориски интегрирани кола на омп со примена на техниката на парцијално
декодирање на адресите: еден EPROM и еден RAM чип, секој со капацитет од по 8
КВ (8 К збора х 1 бајт). а) Прикажи ја мемориската адресна табела на дадениот
пример, б) Нацртај ја и мемориската мапа (карта) на овој МКП систем.
11-21. Модификувај ја сл. 11-13, така што за селекција на мемориските чипови на
местото од адресната линија А15 ќе го искористиш адресниот вод а) А14 б) А13.
1) Прикажи ја мемориската адресна табела на МКП систем од сл. 11-11, но со оваа
измена, 2) Нацртај ја и неговата мемориската мапа (карта). Образложи во најкуси
црти.
11-22. Објасни ја сликата сл. 11-15, која прикажува поврзување на две мемориски
интегрирани кола на ОМП со примена на техниката на парцијално декодирање на
адресите: еден EPROM и еден RAM чип, секој со капацитет од по 1 КВ (1 К збора х
1 бајт). а) Прикажи ја мемориската адресна табела на дадениот пример, б)
Нацртај ја и мемориската мапа на овој МКП систем.
626 Поврзување на општ микропроцесор

11-23. Модификувај ја сл. 11-15 така што за селекција на мемориските чипови на


местото од адресната линија А15 ќе го искористиш адресниот вод а) А11 б) А13 в)
А14. а) Прикажи ја мемориската адресна табела на МКП систем од сл. 11-11 но со
оваа измена, б) Нацртај ја и неговата мемориска мапа (карта). Образложи
накратко.
11-24. Направи сублимирана споредба на најважните карактеристики на
целосното и парцијалното декодирање на адресите.
11-25. Нацртај ја и во куси црти објасни ја едноставната блок-шема на издвоено
мапирана влезна или излезна компонента.
11-26. Нацртај ја и во кратки црти објасни ја едноставната блок-шема на
мемориски мапирана влезна или излезна компонента.
11-27. Кои се ДИК-а, што најчесто се користат како влезна, односно излезна
порта?
11-28. Нацртај го фукцискиот логички симбол на ИК 74х244 и најконцизно објасни
ја улогата на секој од неговите пинови. Која е неговата вообичаена улога при
хардверскиот дизајн на некој микропроцесорски систем?
11-29. Принципот на функционирање на 8-кратниот еднонасочен бафер/драјвер
на магистрала ДИК 74х244 најдобро може да се разбере ако се анализира
неговата функцискa блок-шема и функционална таблица прикажани на сл. 11-21.
Имајќи ги нив во вид, во куси црти објасни како се однесува ова ИК?
11-30. Нацртај го фукцискиот логички симбол на ИК 74х245 и накратко објасни ја
улогата на секој од неговите пинови. Која е неговата вообичаена улога при
хардверскиот дизајн на некој микропроцесорски систем?
11-31. Принципот на функционирање на 8-кратниот двонасочен бафер/драјвер на
магистрала ДИК 74х245 најдобро може да се разбере ако се анализира неговата
функцискa блок-шема и функционална таблица прикажани на сл. 11-21. Имајќи
ги во вид истите, во куси црти објасни како се однесува ова ИК?
11-32. Нацртај го функцискиот логички симбол на ДИК 74х373 и во најкуси црти
објасни ја улогата на секој од неговите пинови. Каква улога вообичаено има ова
ДИК во хардверскиот дизајн на некој микропроцесорски систем?
11-33. Принципот на функционирање на 8-кратните D-лечови на ДИК 74х373
најдобро може да се разбере ако се анализира неговата функцискa блок-шема и
функционална таблица прикажани на сл. 11-23. Имајќи ги во вид истите,
најкратко објасни како се однесува ова ИК?
11-34. Нацртај го функцискиот логички симбол на ДИК 74х374 и во куси црти
објасни ја улогата на секој од неговите пинови. Каква улога вообичаено има ова
дик во хардверскиот дизајн на некој микропроцесорски систем?
11-35. Принципот на функционирање на 8-кратните D-флип-флопови во ДИК
74х374 најдобро може да се разбере ако се анализира функцискaта блок-шема и
функционална таблица на ова ДИК прикажани на сл. 11-23. Имајќи ги нив во вид,
во кратки црти објасни како се однесува ова ИК.
11-36. Нацртај ја и концизно објасни ја блок-шемата на издвоено мапирани В/И
порти во општ случај (сл. 11-25).
Поврзување на општ микропроцесор 627

11-37. Каде се наоѓаат адресите на В/И компонентите во мемориската карта на


МКП систем кога тие се поврзани според техниката на издвоено мапирање?
Образложението поткрепи го со едноставен пример на мемориска карта.
11-38. Нацртај ја и во куси црти објасни ја блок-шемата на мемориско мапирани
В/И порти во општ случај (сл. 11-27).
11-39. Каде се наоѓаат адресите на В/И компонентите во мемориската карта на
МКП систем кога тие се поврзани според техниката на мемориско мапирање?
Образложението поткрепи го со едноставен пример на мемориска карта.
11-40. Нацртај ја и во куси црти објасни ја блок-шемата на а) целосното и
б) делумното декодирање на адресите дадена на сл. 11-29.
11-41. Кои се трите чекори што треба да ги превземе микропроцесорот за да
избере одредена В/И порта?
11-42. Објасни ја сликата сл. 11-30, која претставува еден пример на поврзување
на влезна или излезна компонента со издвоено селектирање и со апсолутно
декордирање на адресата.
11-43. Модификувај ја сл. 11-30 така што а) адресните линии А3 и А7 ќе си ги
заменат мастата: А3 ќе се приклучи на пинот G0, додека А7 на G1*, б) влезна
линија во ИЛИ колото нема да биде излезот од декодерот Y0, туку на негово
место ќе се приклучи излезот Y5. Која е адресата на портата со оваа измена?
Образложи во најкуси црти.
11-44. На сл.11-31 е прикажана логичка шема на поврзување на влезна
компонента со издвоено адресирање и со апсолутно декордирање на адресите.
Објасни ја накратко сликата.
11-45. Промени ја сл. 11-31 така што а) адресните линии А3 и А7 ќе си ги заменат
мастата: А3 ќе се приклучи на пинот G0, додека А7 на G1*, б) влезна линија во
ИЛИ колото нема да биде излезот од декодерот Y2, туку на негово место ќе се
приклучи излезот Y6. Која е адресата на портата со оваа измена? Образложи
концизно.
11-46. Објасни ја сликата сл. 11-32, која прикажува уште еден пример на
поврзување на издвоено мапирана излезна порта со апсолутно декордирање на
адресите.
11-47. Модификувај ја сл. 11-32 така што а) адресните линии А7 и А6 ќе бидат
инвертирани, додека А1 и А0 неинвертирани. Која е адресата на портата со оваа
измена? Образложи кратко.
11-48. Објасни ја сликата сл. 11-33, на која е претставена посебно мапирана
излезна порта, која е адресирана со парцијално декодирање на повисоките
четири адресни линии.
11-49. Модификувај ја сл. 11-33 така што а) адресните линии А7А6А5А4 ќе бидат
слободни и неповрзани, додека на нивни место ќе се поврзат ниските адресни
линии А3А2А1А0. Која е адресата на портата со оваа измена? Образложи во
најкуси црти.
628 Поврзување на општ микропроцесор

11-50. Со логичката структура на шемата од слика сл. 11-34 е претставен пример


на мемориски мапирана В/И порта со апсолутно декодирана адреса. Објасни ја
концизно сликата.
11-51. Модификувај ја сл. 11-34 така што а) адресните водови А8А9А10 да бидат
неинвертирани, додека А13А14А15 инвертирани. Која е адресата на портата со
оваа измена? Образложи во најкуси црти.
11-52. Дали може на сл. 11-34 линиите А3 со RD* да си ги заменат местата, т.е. А3
да се поврзи на G1*, а контролниот сигнал MRD* на G2*? Која ќе биде
последицата од ваквата измена во шемата?
11-53. Дали може на сл. 11-34 излезот од ИЛИ колото да се поврзи на пинот G1*,
додека контролниот сигнал MRD* да оди на пинот G0? Која ќе биде последицата
од ваквата измена во шемата?
11-54. Објасни ја сликата сл. 11-35 а) б) на која се дадени два примери на
мемориски пресликани В/И периферни компоненти со апсолутно декодирање на
адресите.
11-55. Модификувај ја сл. 11-35 така што 1) адресните водови А3 со А0 ќе си ги
сменат местата и за двете слики, 2) на сл. 11-35 а) исклучи го излезот Y7 од
влезот во НИ колото и на негово место поврзи го Y1, 3) на сл. 11-35 б) исклучи го
излезот Y6 од влезот во НИ колото и на негово место поврзи го Y2. Кои се
адресите на портите за секоја од овие модификации?
11-56. Дали на сл. 11-35 може да се поврзат излезната и влезната порта
едновремено на иста излезна линија, на пр. на Y7, како што е прикажано на
следната слика 11-67. Образложи го одговорот, објаснувајќи која ќе биде
последицата од ваквата измена на шемата?

(сл. 11-67)

11-57. Објасни ја сл. 11-36, која прикажува мемориски пресликана влезна порта
со апсолутно декодирана адреса.
11-58. Што треба да се промени во поврзувањата на шемата од сл. 11-36 за
влезната порта да има адреса во хекса означување а) 2407H б) 3690H?
11-59. Објасни ја сл. 11-37, која претставува пример на мемориски мапирана
влезна порта со делумно декодирање на адресите.
Поврзување на општ микропроцесор 629

11-60. Модификувај ја сл. 11-37 така што а) наместо да се декодираат високите


адресни водови ќе се декодира нискиот адресен бајт, б) Излезот од декодерот Y0
да се откачи од НИ колото и на негово место да се поврзи Y4. Која ќе биде
адресата на портите за секоја од овие измени?
11-61. Изврши споредбена анализа на најважните карактеристики на издвоеното
и мемориското мапирање на В/И порти.
11-62. Што претставува програмабилната В/И порта? Кои се најкарактеристичните
и најчестите начини на работа во кои вообичаено се програмира некоја
програмабилна В/И порта?
11-63. Која е улогата на интерфејсната логика за поврзување со надворешен В/И
уред? Нацртај ја блок-шемата на интерфејсен модул во општ случај (Сл. 11-39) и
објасни ја улогата на регистрите и контролните блокови.
11-64. Која е улогата на В/И интерфејсот на влезниот или излезниот уред?
Нацртај ја неговата блок-шема во општ случај (Сл. 11-40) и објасни ја улогата на
неговите блокови.
11-65. Наведи ги софтверските и хардверски техники за контролиран
влезно/излезен пренос на податоци?
11-66. Нацртај го и во куси црти објасни го принципиелниот блок-дијаграм за
програмски контролиран В/И пренос (Сл. 11-41).
11-67. Нацртај го и во кратки црти објасни го принципиелниот блок-дијаграм за
В/И пренос контролиран со прекини (Сл. 11-42).
11-68. Кои се двата начини според кои во принцип може да биде извршен
програмираниот В/И пренос? Во што се разликуваат еден од друг? Нацртај ги и
накусо објасни ги двете блок-шеми од сл. 11-43.
11-69. Објасни го условниот В/И пренос на податоци според методата на
„ракување“ (анг. handshaking). При тоа имај ги во вид принципиелната блок-шема
дадена на сл. 11-44 и блок-дијаграмот од сл. 11-45.
11-70. Каков метод се применува за трансфер на податоци кога на микро-
компјутерскиот систем се поврзани повеќе периферни В/И компоненти или уреди?
Нацртај го и во куси црти објасни го блок-дијаграмот ваквиот В/И пренос на
податоци (сл. 11-46).
11-71. Во куси црти објасни го „механизмот“ според кој микропроцесорот
извршува В/И трансфер на податоци кој е управуван со прекини.
11-72. Во куси црти објасни го основниот принцип за опслужување на прекин,
имајќи ја во вид сл.11-47.
11-73. Како се класифицираат прекините во однос на причината за нивното
настанување? Која е основната разлика помеѓу нив?
11-74. Како се класифицираат хардверските прекини во поглед на одговорот на
барањето за прекин од страна на ОМП, поточно во однос на времето кога ќе
бидат опслужени? Која е разликата помеѓу нив?
11-75. Со колку пина за хардверски прекини располага ОМП? Кои се тие пинови?
Која е нивната улога?
11-76. Како се класифицираат прекините во однос на адресите на прекидните
рутини и нивната местоположба во адресниот мемориски простор на процесорот?
Која е разликата помеѓу нив?
630 Поврзување на општ микропроцесор

11-77. Колкав број на софтверски иницираните прекини може да бидат иницирани


кај ОМП? Кои се тие? Во кои групи на прекини според различни критериуми? Каде
може да се класифицираат софтверските прекини кај ОМП?
11-78. Што се случува кога мкропроцесорот при извршувањето на некој програм,
ќе наиде на една од инструкциите за софтверски прекин? Објасни ја накратко сл.
11-48.
11-79. Објасни го прекидниот систем на ОМП, имајќи ја во вид логичката шема за
контрола на прекините прикажана на сл. 11-50.
11-80. Во кратки црти изврши споредбена анализа на принципот на програмиран
В/И трансфер и на В/И трансфер управуван со прекини.
11-81. Кои се главните недостатоци на двете софтверски техники на В/И трансфер
на податоци: на програмски контролираниот пренос и на преносот што е
управуван со прекини?
11-82. Знаејќи ја блок шемата на директниот мемориски пристап (ДМП) како
хардверски контролиран пренос на податоци во рамките на микрокомпјутерскиот
систем (сл. 11-53 и сл. 11-54) објасни во куси црти како тој се реализира.
11-83. Објасни го ДМП пасивниот циклус на поврзување со оперативната
меморија.
11-84. Објасни го ДМП активниот циклус за преземање на магистралите.
11-85. Знаејќи ја сл. 11-55, која го прикажува временскиот редослед на
извршување на фазите на една инструкција во инструкцискиот циклус, означи ги
временските моменти кога може да се реализира ДМП?
11-86. Кои се трите типа на различен трансфер на податоци со ДМП?
11-87. Во најкуси црти објасни го единечниот начин на ДМП пренос.
11-88. Накратко објасни го блок или последователниот начин на ДМП трансфер.
11-89. Во најкратко црти објасни го ДМП преносот врз основа на барање.
11-90. Кои современи концепти за подобрување на перформансите на
микро/компјутерите ги познаваш?
11-91. Нацртај ја и во куси црти објасни ја блок-шемата на МКП систем со кеш
меморија според сл. 11-57.
11-92. Имајќи ја предвид сл. 11-58 објасни како се одредува адресата на баран
податок во МКП систем со кеш меморија.
11-93. Во куси црти објасни го концептот на виртуелна меморија? При тоа
искористи ја сл. 11-59, која ја прикажува хиерархиската мемориска организација
во МКП систем со виртуелна меморија.
11-94. Што претставува и како во основа се извршува паралелната обработка на
програмите?
11-95. Најкратко објасни го концептот на мултипрограмирање.
11-96. Што значи мултипроцесорска работа? Објасни ги концептите на
симетрично и асиметрично мултипроцесирање според блок-шемата од сл. 11-61.
12.
ПРОГРАМИРАЊЕ НА
ОПШТ
МИКРОПРОЦЕСОР
По изучувањето на оваа тематска целина

 ќе разликувате машински и асемблерски јазик;


 ќе толкувате поедноставено инструкциско множество во однос на:
 аритметичките операции;
 логичките операции;
 операциите за пренос наподатоци;
 операциите за гранење;
 операциите за реализација на потпрограми;
 разни други операции;
 ќе умеете да пишувате програми;
 Ќе се запознаете со
 адресните начини (модови);
 линискиот програм;
 гранењето во програмот;
 циклусот во програмот;
 сложени програми;
 употребата на потпрограми во програмот.
632 Програмирање на општ микропроцесор
Програмирање на општ микропроцесор 633

Вовед
Главната предност на микро/компјутерот над другите машини е фактот што
тој има способност да изврши зададена задача или да реши проблем според
програм запамтен во неговата меморија. Програмата е множество на логички
поврзани инструкции напишани со соодветен редослед во некој програмски јазик
кои може да се извршат на даден микро/компјутер и со тоа да решат претходно
поставена задача или проблем.
Микро/процесорот е програмабилна дигитална компонента, тој е „мозокот“
на микро/компјутерот, којшто ги извршува сите програми адекватни за тој
микро/компјутер. Примарната задача на микро/процесорот е да ја изврши
програмата која е запамтена работната, оперативната RAM меморија на
микро/компјутерот. Микропроцесорот секвенцијално ги зема инструкциите една
по една од меморијата и истите ги извршува. Ова преземање и извршување на
инструкциите се изведува според истиот редослед како што се тие запишани во
програмот.
Во ова поглавје ќе ги изучуваме блок-дијаграмите, програмските чекори, како
и техниките на програмирање, при тоа презентирајќи и разновидни примери на
алгоритми и програми кои решаваат поедноставни, но и малку посложени задачи.
12.1. Компјутерски јазици
Вообичаено под поимот софтвер се подразбираат поединечни програми,
или множество на програми напишани во било кој програмски јазик, кои може да
ги изврши даден микро/компјутер за општа намена.
Системскиот софтвер содржи компјутерски програми со посебна,
специјализирана намена дизајнирани така да можат да управуваат со хардверот
на компјутерот, но и со корисничките програми – корисничкиот софтвер, за потоа
тие апликации да можат хардверски да се извршат. Ако компјутерскиот систем го
гледаме како слоевит модел, тогаш системскиот софтвер е интерфејс, поврзувач
на хардверот на машината со било кој апликативен програм на корисникот.
Најпознат пример за системски софтвер е оперативниот систем за некој компју-
тер. Оперативниот систем е множество на системски програми, кои се меѓусебно
поврзани така да можат да управуваат со сите други програми во компјутерот.
За разлика од системскиот софтвер, апликативниот софтвер претставува
множество на програми развиени и креирани од страна на програмери за точно
одредена намена со кои се решаваат конкретни проблеми поставени од страна на
некој корисник. Примери на вакви апликативни програми се оние што овозможу-
ваат пишување на текстови, табели и/или финансиско работење, работа со слики,
играње на игри, слушање музика, пребарување и сурфање на интернет, итн.
Без оглед на тоа за каков софтвер се работи, и едните и другите програми
се пишуваат во некој програмски јазик како логички поврзано множество на
инструкции кои обработуваат податоци и со тоа извршуваат одредена задача.
Едноставно кажано јазиците со кои се пишуваат програмите, кои компјутерот
може да ги изврши се нарекуваат компјутерски или програмски јазици. Тие во
основа може да се класифицираат во две поголеми групи: јазици од ниско ниво и
јазици од високо ниво, или нижи и виши програмски јазици.
634 Програмирање на општ микропроцесор

12.1.1. Јазици од ниско ниво


Јазиците од ниско ниво се јазици кои се зависни и поврзани со машината.
Ова значи дека нижиот програмски јазик е дизајниран само за пишување на
програми за одреден микро/компјутер, поточно за неговиот процесор. Затоа, за
јазиците од ниско ниво честопати се вели дека се машински-ориентирани јазици.
Ваквите програми не може лесно да се конвертираат за да работат и да се
извршат на компјутер со друг процесор различен од оној за кој е креиран тој
програм. Нижите програмски јазици се релативно тешки за учење, бидејќи е
потребно детално познавање на внатрешната организација и архитектура на
микро/компјутерот. Јазиците од ниско ниво дополнително се делат на две групи:
тоа се машинскиот јазик и асемблерскиот јазик.
12.1.1.1. Машински јазик
Во машинскиот јазик, инструкциите се напишани во облик на низи од бајти,
во „чист“ бинарен код со 1-и и 0-и, и само такви бинарни низи компјутерот
разбира и истите може да ги извршува. Иако се разбирливи за компјутерите,
програмите во машински јазик целосно се неразбирливи за луѓето и тие нив не
можат да ги применуваат. Сите кодови на инструкциите и сите податоци во
машински јазик се само еден огромен број на бинарни броеви кои многу тешко
можат да се запомнат, пишуваат и корегираат. Во практиката, единствен јазик кој
наоѓа примена е следниот јазик од ниско ниво, а тоа е асемблерскиот јазик.
12.1.1.2. Асемблерски јазик
Кога се кодира во асемблерски јазик, т.е. кога се пишува програм во него,
се користат инструкции кои користат одредени кратенки од англискиот јазик во
кодирана форма. Овие кратки кодови се нарекуваат мнемоници бидејќи се
соодветно избрани за да го потсетуваат програмерот на операциите кои ги
извршуваат инструкциите.
Асемблерскиот јазик ги содржи истите инструкции како и машинскиот јазик
заради што е најблизок до хардверот на машината, но сега наместо инструкциите
и променливите да се само бинарни броеви во облик на бајти, тие имаат свои
симболички имиња. Како едноставен пример, за микропроцесорите Intel 8080-
8085, ќе ја земеме инструкцијата STA 1234H. Со неа содржината на регистерот,
наречен акумулатор, директно се запамтува во мемориска локација со адреса
1234H. Во инструкцијата мнемоникот STA е кратенка за операцијата „запамти-
акумулатор-директно“ која произлегува од англиските зборови “Store-Accumulator-
Direct“, додека 1234H е адреса на мемориска локација во хекса-децимално
означување. Дадената асемблерска инструкција STA 1234H компјутерот ќе ја
изврши само ако истата ја добие како машинска инструкција во бинарен код преку
следниве три бајти: 00010011В, 00010010В, 00110100В.
Програмот напишан во асемблерски јазик е разбирлив за човекот, но не е
разбирлив за машината. Бидејќи за компјутерот единствено се разбирливи само
програмите во машински јазик кои претставуваат низи од бајти од неговиот
внатрешен машински код, потребно е трансформирање на креираниот програм од
асемблерски јазик во машински код. Ваквото преведување се реализира со
посебен системски програм наречен асемблер.
Програмирање на општ микропроцесор 635

Овде ќе напоменеме и тоа дека асемблерски јазик не е лесно разбирлив за


секој корисник на компјутер. Имено, асемблерските инструкции се во основа само
машински инструкции напишани во јазички симболичка форма. Овој факт јасно
укажува дека програмите напишани во асемблерски јазик се врзани за хардверот
на машината. Од тука произлегува дека програмерот во асемблерски јазик треба
да располага со солидни знаења во домен на организацијата и архитектурата на
компјутерските системи, што е прилично стручна инжинерска област.

Сл.12-1. Нивоа на апстракција и хиерархија на програмски јазици


12.1.2. Јазици од високо ниво
Јазиците од високо ниво се машински независни јазици бидејќи програмите
напишани за одреден компјутер можат да се извршат на него, но исто така тие
можат да работат и на други машини. Јазиците од високо ниво се дизајнирани за
решавање на секакви проблеми и задачи кои се произлезени од секојдневниот
живот и затоа се нарекуваат проблемски–ориентирани јазици. Вишите програмски
јазици се уште поразбирливи за човекот во однос на асемблерскиот јазик бидејќи
програмските инструкции пишувани во секој виш програмски јазик се уште
поблиски до говорниот англиски јазик и не зависат од хардверот на компјутерот.
Во нив ние како корисници на компјутерите, креираме и пишуваме наменски или
апликативни програми за проблемите кои „нѐ мачат“ и кои сакаме софтверски да
ги решиме. Од друга страна, програмите напишани во вишите програмски јазици
се „уште понеразбирливи“ за компјутерот, кој нив тој ги „сака“ и „очекува“ един-
ствено во облик на машински програм. Тоа се остварува со повикување на еден
од двата системски програми компајлер или интерпретер кој ќе ги преведе
инструкциите напишани во некој од вишите програмски јазици во машински јазик.
Иако припаѓаат на различно ниво, асемблерските и вишите програмски
јазици припаѓаат во групата на т.н. симболички програмски јазици бидејќи и кај
едните и кај другите инструкциите што компјутерот ги извршува се преставуваат
со симболички имиња, а не во бинарен код со логички 0-и и 1-и што е каракте-
ристично за машинскиот јазик.
12.2. Системски програми за развивање на софтвер
Програмите кои ги пишува човекот микро/компјутерот може да ги изврши
само ако се тие внесени во неговата меморија применувајќи посебен програм
наречен едитор, за да потоа со повикување на програм преведувач истите ги
преведе во машински јазик и потоа ги изврши.
636 Програмирање на општ микропроцесор

Програмите напишани со некој од вишите програмски јазици кои се


разбирливи за човекот се преведуваат во програми на машински јазик со два типа
на системски програми. Тоа се интерпретерот (анг. Interpreter) и компајлерот
(анг. Compiler). Интерпретерот е програм којшто работи на следниот начин:
програмот напишан во изворен код со инструкции на некој виш програмски јазик
го извршува така што при секое негово повикување ги чита програмските
инструкции една по една, ги преведува во машински инструкции, и потоа една по
една ги извршува. Компајлерот е исто така системски програм кој го преведува
изворниот програм во машински код, но на поинаков принцип. Тој ги вчитува сите
инструкции на програмот напишани во вишиот програмски јазик, ги преведува во
посебен машински програм и истиот го генерира како извршен објектен фајл,
како посебна датотека со наставка (.obj), која компјутерот може да ја изврши.
1. Едиторот (анг. Editor). – Едиторот е наменски програм кој му
овозможува на корисникот инструкциите на програмите во вишите или нижите
програмски јазици да ги пишува и запамти во меморијата на микро/компјутерот.
Жаргонски, програмите напишани од страна на корисниците се нарекуваат
изворни програми, „сорс“ (анг. source) програми, кратко само „сорсови“, или
програми напишани во изворен код.
За сите едитори на текст карактеристично е тоа што со нив може да се
брише текст, да се додава нов, потоа текстот да се поместува со табулатор, и сл.
По запишувањето на инструкциите на целиот програм едиторот креира датотека
која ја запамтува во последователни мемориски локации во оперативната RAM
меморија при што сите инструкции ги запамтува како стандарден текст во ASCII
формат. По внесувањето на целата програма, датотеката се зачувува на хард
дискот. Оваа датотека е изворна датотека, а нејзината додавка зависи од тоа во
кој јазик е пишуван програмот. Ако станува збор за програм во асемблерски јазик
неговата наставка ќе биде .asm, додека ако е пишуван во некој од вишите
програмски јазици таа ќе треба да биде соодветна на јазикот во кој се
програмира, како на пр. (.c), (.cpp), (.pas), (.bas), итн.
2. Асемблер (анг. Assembler). – Асемблерот е системски програм кој се
користи за трансформирање на програмот напишан од асемблерски јазик (.asm)
во програм на машински јазик со соодветни бинарни кодови.
Кога се стартува асемблерот, тој ја
чита изворната датотека на програмот
(.asm) напишанa во асемблерски јазик од
дискот каде што е зачувана со едиторот.
Потоа инструкциите напишани со
мнемоници и операнди разбирливи за
човекот асемблерот ги преведува во
бајти кои се разбирливи за машината.
При ова за секоја асемблерска
инструкција се генерира една машинска
инструкција. По асемблирањето на
програмата, асемблерот дава две дато-
теки од кои првата е објектна датотека
во машински јазик со додавка (.obj).
Сл.12-2. Процес на преведување на програм напишан во асемблерски јазик
Програмирање на општ микропроцесор 637

Втората датотека чија наставка е (.lst) претставува листинг на


асемблерските инструкции заедно со нивниот машински код. Покрај тоа што ги
излистува, листинг датотеката содржи и некои дополнителни информации како на
пр. дали е се во ред со асемблирањето или пак се појавиле грешки и во кои
програмски редови, за колку време е извршена конверзијата од асемблерски во
машински код, и сл.

Сл.12-3. Процес на преведување на програм напишан во асемблерски јазик


Овде ќе ја наведеме и разликата помеѓу поимите асемблер, асемблерски
програм и асемблерски јазик. Често пати, жаргонски, се користи исказот
„програмирање во асемблер“ кој не е баш најсоодветен бидејќи станува збор за
„програмирање во асемблерски јазик“, што прецизно земено, не е исто со
претходното. Имено, асемблерскиот јазик спаѓа во групата на нижи програмски
јазици и е дефинитивно различен од системскиот програм асемблер. Според ова,
се програмира во асемблерски јазик применувајќи едитор, а асемблерот се
повикува заради преведување на изворниот (.asm) код во машински (.obj) модул.
Освен ова, програмирањето во асемблерски јазик многу се разликува од
програмирање во некој од вишите програмски јазици C, Pascal, Basic, C++, Java
или некој друг. Ова е заради тоа што асемблерскиот јазик е строго зависен и
посебен за секој процесор, бидејќи креираниот асемблерски програм е софтвер
кој е хардверски врзан за машината. Програмирањето во асемблерски јазик е
најблиската врска, спојот на софтверот со хардверот за конкретниот компјутер.
Така на пр. програмирањето во асемблерскиот јазик за микропроцесорот Intel
8080/8085 е многу поразлично во однос на асемблерскоот јазик на микро-
процесорот Motorola MC 6800. Уште повеќе, не мора да значи дека еден ист
асемблерски програм може да се изврши на два микропроцесорски системи иако
тие имаат исти процесори. Toa се случува ако системите хардверски не се исти
заради различните периферни компоненти кои се поврзани на процесорот. Ова
важи дури и тогаш кога системите се разликуваат и само по начинот на
поврзување на едни исти компоненти за ист процесор.
3. Линкер (анг. Linker). – Линкерот е исто така системски програм кој
генерира машински разбирлив програм, поврзувајќи го објектниот код на
преведениот апликативен програм што бил напишан или во асемблерски јазик
или во некој виш програмски јазик, со други софтверски, исто така објектни
компоненти. Тоа може да се посебни потпрограми кои реализираат одредени
функции и кои вообичаено се сместени во посебна библиотека. Линкерот ги
поврзува објектните датотеки во единствена извршна датотека со наставка (.exe).
638 Програмирање на општ микропроцесор

Линкерот го поврзува објектниот програм со оние објектни модули кои


него му се потребни. Освен веќе готовите потпрограми запамтени во
библиотеката, тоа може да се и одредени модули од оперативниот систем.
Линкерот креира единствен поврзувачки фајл кој ги содржи бинарните кодови на
сите веќе комбинирани објектни модули на апликативниот програм.
4. Лоудер (анг. Loаder). – Лоудерот го внесува објектниот код во мемо-
ријата. Тој е еден од главните компоненти на оперативниот систем кој ги вчитува
машинските кодови на програмата во системската RАМ меморија. Тоа е првата
почетна фаза во процесот на извршување на апликативниот програм, бидејќи
покрај тоа што е одговорен за запамтување на програмите во меморијата, тој
истите ги подготвува и за извршување. Тоа го прави со читање на содржината на
извршната датотека и потоа запамтување на овие инструкции во RAM меморијата.
Покрај тоа, тој во меморијата ги полни и сите други компоненти кои треба да се
наоѓаат во неа, бидејќи му се потребни на програмот при неговото извршување.
Лоудерот ги пронаоѓа физичките мемориски адреси кои се достапни и слободни
во меморијата во моментот на извршување на програмот. По вчитувањето на
програмот во меморијата тој е подготвен да работи и да се извршува од страна на
процесорот.
5. Дебагер (анг. Debugger). – Дебагерот е системски програм што се
користи за проверка дали програмот, кој се извршува функционира правилно.
Дебагерот е софтверска алатка која овозможува запамтување на објектниот
програм во оперативната меморија, негово извршување и со тоа откривање и
корекција на грешките. Двата најважни аспекти на квалитетен дебагер се
можностите за набљудување и контрола на извршувањето на програмот. Во врска
со ова, некои дебагери овозможуваат прекинување на извршувањето после секоја
инструкција, така што таа може да се проверува и ако има грешка истата да се
отстрани. Дебагерот овозможува и поставување точки на прекин после било која
инструкција во програмот. Во тој случај, дебагерот ја стартува програмата и ја
извршува сѐ до инструкцијата каде што е поставена точката на прекин и на тоа
место го прекинува извршувањето.

Сл.12-4. Процес на развивање на програм во асемблерски јазик


Заради избегнување на компликациите кои може да се појават со
поединечното и последователно повикување на системските програми: едитор,
компајлер, преведувач, асемблер, линкер, лоудер и дебагер во современата
практика најчесто се сретнуваат интегрирани софтверски алатки.
Програмирање на општ микропроцесор 639

Интегриранaта развојнa околина (анг. integrated development environment,


IDE) претставува софтверска апликација која комбинира повеќе системски
програми. Ваквите алатки на програмерите им обезбедуваат сеопфатни можности
за поефикасен развој на нивните програми бидејќи во себе ги вклучуваат сите
поединечни системски програми за развој на софтвер во единствен пакет.
Интегрираните развојни пакети на програмерите и сите оние што се заинтереси-
рани да го изучуваат и да работат на полето на дизајнирање и развој на софтвер
им го олеснува развојот на програми овозможувајќи им фокусот да го стават врз
пишувањето на квалитетни програми, а не да се изморуваат со процесот на
нивното преведување во машински код.
Кога станува збор за програмирање во асемблерски јазик на некој
микро/процесор многу важна улога играат и програмите кои се наречени
симулатори (анг. simulator). Симулаторот е програм којшто се активира на
компјутер во кој вообичаено не е вграден микро/процесорот за кој е наменет тој
симултор, туку некој посовремен од него. Симулаторот врши функционална
симулација на асемблерските кодови на процесорот за кој е наменет, но на друга
машина. Симулаторот не претставува замена за вистинскиот, реалниот микро-
процесорски систем како хардвер бидејќи е софтверска алатка. Тој ги симулира
инструкциите на микропроцесорот за кој е наменет и покажува како би се
однесувал тој микропроцесор при нивното извршување. Симулаторот е многу
вредна софтверска алатка која често се користи во едукативни цели, но и
пошироко од страна на програмерите бидејќи со неа се забрзува развојот и
дебагирањето на програмите напишани во асемблерски јазик.
Програмирањето претставува процес во кој програмерот за дадени
проблеми или задачи осмислува решенија користејќи инструкции на одреден
програмски јазик кои ги запамтува во облик на програми што компјутерот може да
ги изврши. Имајќи во вид дека следната цел е да ја совладаме „уметноста“ на
програмирањето во асемблерски јазик најнапред ќе се запознаме со инструкцис-
кото множество на ОМП, класификацијата а инструкциите според видот на
операциите што ги извршуваат, потоа нивните формати и начини на адресирање.

12.3. Инструкциско множество на општиот микропроцесор


Како што кажавме претходно, асемблерскиот јазик спаѓа во групата на
нижи програмски јазици кој е строго зависен и посебен за секој процесор бидејќи
е „хардверски врзан за машината“. Множеството на сите инструкции што може да
ги изврши одреден микро/процесор го претставуваат инструкциското множевство
(анг. instruction set) на тој процесор. Инструкциското множество за 8-битен МКП
може најмногу да содржи 28=256 различни мнемоници во асемблерски јазик за
исто толкав број кодови на операции, а со тоа и на исто толку инструкции коишто
процесорот може да ги изврши. За секој мнемоник постои соодветен бајт кој
претставува еднозначно определен код на операција во машински јазик. За
општиот микропроцесор, заради поедноставување, ќе дефинираме инструкциско
множество од многу помал број на инструкции, поточно само 144.
640 Програмирање на општ микропроцесор

12.3.1. Класификација на инструкциите


Најопшто земено инструкциите кои влегуваат во состав на инструкциското
множество на сите реални МКП можат да се класифицираат во неколку групи и
тоа според типот на операциите што ги извршуваат. Според тоа, постојат:
 Инструкции за пренос (трансфер), влезно-влезни инструкции и инструкции
за работа со напластената (магацинската или стек) меморија (анг. stack),
 Инструкции кои извршуваат аритметички операции,
 Инструкции кои извршуваат логички операции,
 Инструкции за гранење и работа со потпрограми,
 Други разновидни (преостанати) инструкции за машинска контрола на ОМП
и управување со прекините.
Табелата 12-1, дадена подолу, ги содржи мнемониците на сите инструкции
од инструкциското множество на ОМП, класифицирани секоја во својата група,
заедно со англиските зборови од каде што тие потекнуваат, вклучувајќи го и
нивното значење превeдeно на македонски јазик.

Групи на Анг. именување Мнемоници Значење на


инструкции на инструкциите инструкцијата
Инструкции за MOVE, MOV, MVI ПРЕНЕСИ,
пренос(трансфер, LOAD, LXI, LDA, LHLD ВНЕСИ/СМЕСТИ/НАПОЛНИ,
копирање) на STORE, STA, SHLD, ЗАПАМТИ (ЗАЧУВАЈ,
податоци/бајти, МЕМОРИРАЈ)
влезно-влезни
инструкции и INPUT, OUTPUT. IN, OUT ВЛЕЗИ, ИЗЛЕЗИ.
инструкции за
PUSH, PUSH, СТАВИ,
работа со стек-
меморијата POP, POP, ИЗВАДИ,

Инструкции кои ADD, ADI, ADD, СОБЕРИ,


извршуваат SUBTRACT, SUI, SUB ОДЗЕМИ,
аритметички INCREMENT, INC, INX, ЗГОЛЕМИ ЗА 1,
операции
DECREMENT, DCR, DCX НАМАЛИ ЗА 1,
Инструкции кои AND, ANI, ANA, И,
извршуваат OR, ORI, ORA ИЛИ,
логички операции EXOR, XRI, XRA ЕКСИЛИ;
COMPARE CPI, CMP СПОРЕДИ.
COMPLEMENT CMA КОМПЛЕМЕНТИРАЈ,

SET CARRY FLAG STC ПОСТАВИ CY ЗНАМЕНЦЕ ЗА


COMPLEMENT CARRY CMC ПРЕНОС
FLAG КОМПЛЕМЕНТИРАЈ CY
ЗНАМЕНЦЕ ЗА ПРЕНОС

ROTATE RAR, RAL РОТИРАЈ,


RRC, RLC РОТИРАЈ ПРЕКУ ЗНАМЕНЦЕ
ЗА ПРЕНОС CY

Таб. 12-1. Групите на инструкции и нивното значење (табелата продолжува)


Програмирање на општ микропроцесор 641

Групи на Анг. именување Мнемоници Значење на


инструкции на инструкциите инструкцијата

Инструкции за JUMP. JMP, СКОКНИ БЕЗУСЛОВНО


гранење и СКОКНИ АКО
работа со
JZ, JNZ, (НЕ) Е 0
потпрограми
JC, JNC, (НЕМА) ИМА ПРЕНОС
JPE, JPO, (НЕМА) ИМА ПАРЕН БРОЈ
JМ, JP, 1-ЦИ 0
АКО (НЕ) Е ПОЗИТИВЕН

CALL, RETURN. CALL, RET ПОВИКАЈ, ВРАТИ СЕ.


Restart RST n РЕСТАРТИРАЈ
(n=0, 1, 2, 3)
Други NO Operation, NOP, НЕ РАБОТИ,
разновидни HALT, HLT, ЗАСТАНИ,
(преостанати)
инструкции за Enable Interrupt EI, ОВОЗМОЖИ ПРЕКИН,
машинска Disable Interrupt DI, ОНЕВОЗМОЖИ ПРЕКИН,
контрола на Set interrupt mask SIM, ПОСТАВИ МАСКА НА
МКП) и Read Interrupt mask RIM, ПРЕКИН
управување со ПРОЧИТАЈ МАСКА НА
прекините ПРЕКИН

Таб. 12-1. Групите на инструкции и нивното значење (продолжение)

12.3.2. Асемблерска инструкција и нејзин опис


Секоја инструкција, напишана во асемблерски јазик за некој МКП, во општ
случај, мора да содржи мнемоник и евентуално операнд, или операнди. Имено,
мнемоникот е одреден од операцијата која ја извршува инструкцијата, од каде
само по себе е јасно дека ако нема операција, не може да има инструкција, и
обратно.
Мнемоникот претставува кратенка од неколку букви, која потсетува и
укажува за тоа која операција се извршува, додека операндот го одредува
податокот кој ќе биде обработен со таа операција. За да не заборавиме, најкратко
да се потсетиме дека секој мнемоник е англиска кратенка за операцијата која се
извршува со инструкцијата каде што е тој мнемоник наведен. При ова на секој
мнемоник му соодветствува еднозначно доделен код на операција во машински
јазик. Кодот на операција претставува точно дефинирана комбинација од 8 бита
(8b), осум 0-и и 1-и, што значи дека има должина од 1 бајт (1В)во машински јазик.
Операндот на инструкцијата може да биде самиот тој податок, или
местоположбата, поточно адресата каде тој се наоѓа во МКП систем и од каде
треба да биде прочитан, ако е влезен податок, или каде треба да биде испратен
ако е излезен податок или резултат.
642 Програмирање на општ микропроцесор

Така на пр. поконкретно ако се работи за влезен податок, тој може да биде
содржина на некој регистер во МКП, или да доаѓа од периферијата на МКП и да
претставува адреса на некоја мемориска локација каде што тој податок се наоѓа и
од каде треба да се прочита, или да биде адреса на некоја влезна порта од каде
податокот ќе биде прифатен. Слично, ако станува збор операнд кој укажува на
излезен податок, тој операнд може да биде самиот податок, или може да биде
регистер во МКП кадешто ќе биде запишан, или да специфицира адреса на
мемориската локација кадешто тој податок ќе треба да се запише, или да биде
адреса на онаа излезна порта каде податокот ќе биде испратен.

Примери на Инструкција
Појаснување
инструкции Мнемоник Операнд/и
Инструкции NOP ;Инструкциите се такви што нема
без операнди HLT потреба од операнд/и

DCR L ;Oперандот е регистерот L


Инструкции STA 1234H ;Oперанд е 16b мемориска адреса 1234H
со еден
операнд LXI H 5678H ;Oперанд е 16b податок 5678H
IN 07H ;Oперанд е 8b адреса на влезна порта
MOV A, B ;Изворен операнд е регистерот B, додека
Инструкции одредишен операнд е акумулаторскиот
со два регистер A
операнди ;Изворен операнд е 8b податокот 69H и
MVI C, 69H
Одредишен операнд е регистерот С

Таб. 12-2. Асемблерски инструкции


Од појаснувањата што се однесуваат на инструкциите со два операнди,
може да се забележи изворниот операнд е десно, додека одредишниот операнд е
лево, што значи дека насоката на движење на податоците е од-десно-на-лево.

Сл.12-5. Извор и одредиште во асемблерските инструкции


Во однос на операндот, заклучокот би бил дека тој може да биде испуштен
– да го нема во инструкцијата и таа да содржи само мнемоник, или тој да биде
едно-бајтен, или дво-бајтен. Имено, операндот ќе биде еднобајтен ако тој го
претставува самиот податок или е 8-битна адреса до некоја В/И порта. Од друга
страна, операндот ќе биде дво-бајтен ако тој операнд претставува некоја адреса
на мемориска локација која како што знаеме има должина од 16-бита. Операндот
може да биде и двобајтен податок ако се однесува на регистерски пар.
Програмирање на општ микропроцесор 643

12.3.3. Програмерски модел на ОМП

Како програмерски модел на некој


МКП се сметаат сите оние регистри кои
влегуваат во неговиот состав, но само ако
се достапни („видливи“) за програмерот во
асемблерски јазик. Поточно кажано, тоа
се сите регистри на МКП кои се користат
за време на програмирањето и кои можат
да бидат зададени, специфицирани во
асемблерските инструкции. Сликата 12-6
дадена го илустрира програмерскиот
модел на општиот микропроцесор.

Сл. 12-6 а) Програмерски модел на ОМП

Сл. 12-6 б) Множеството на регистри на ОМП


Прикажаните регистри со заедничко име се нарекуваат програмерски модел
на ОМП, а во нив припаѓаат:
 Акумулаторот, или акумулаторскиот 8-битен регистер A (анг. Accumulator,
Асс) во кој може да се смести едно-бајтен податок (1B = 8b);
 Регистерот со знаменца (F, анг. Flags), или регистерот на состојба или
статусниот регистер, како што уште се нарекува е исто така 8-битен
регистер, но од него се користат само четири занменца и тоа: знаменцето за
нула (Z), знаменцето за пренос (CY), знаменцето за знак (S) и знаменцето за
парност (P);
 Четири регистри за општа намена: B, C, H и L кои исто така се 8-битни; Два-
по-два од овие регистри можат да се спарат B со C и H со L (B||C и H||L) и да
се користат како 16-битни регистерски парови кои се означуваат како B и H
регистерски пар.
 Програмскиот бројач РС (анг. Program counter) е 16-битен мемориски поинтер
кој ја покажува адресата на онаа мемориска локација која содржи код на
операција;
 Покажувачот на стек меморијата SP (анг. Stack Pointer), или како што уште се
именува со магацинска, напластена или стог меморија, претставува уште
еден 16-битен мемориски поинтер кој ја покажува адресата (на дното) на стек
меморијата;
 Како што ќе видиме набрзо, при анализата на т.н. индиректен адресен начин,
и регистерскиот пар H=H||L може да се користи како уште еден мемориски
поинтер заради што на сликата истиот е означен со две стрелки и буквата М.
644 Програмирање на општ микропроцесор

Сл. 12-7. Програмерски модел на ОМП со АЛЕ


На сликата 12-7 програмскиот модел на општиот микропроцесор е дополнет
и со аритметичко-логичката единица (АЛЕ) од која е видливо дека еден од
операндите на инструкцијата кои таа ги обработува задолжително треба да се
наоѓа во акумулаторот, и дека резултатот по обработката исто така се внесува
во акумулаторот.

12.4. Формати на инструкција


Форматот на инструкциите покажува колкава е должината на секоја
асемблерска инструкција од инструкциското множество на oмп, изразена во
машински јазик во бајти. Бидејќи секоја асемблерска инструкцијата обврзно
содржи мнемоник, а не мора да содржи операнд, или ако содржи тоа може да
биде само едно-бајтен или дво-бајтен, форматот на инструкциите напишани во
асемблерски јазик може да биде со должина од еден бајт, два бајти или најмногу
три бајти, при што
 Инструкцијата има еднобајтен формат кога содржи само мнемоник,
бидејќи операндот е испуштен,
 Инструкцијата ќе биде во двобајтен формат ако покрај мнемоникот
содржи едно-бајтен операнд,
 Форматот на инструкцијата ќе биде трибајтен, кога инструкцијата покрај
мнемоникот содржи дво-бајтен операнд,
Имено, бидејќи ОМП е 8-битен процесор, ширината на неговата податочна
магистрала е 8 бита или 1 бајт (1B = 8b), а тоа значи дека едно-бајтната
инструкција има должина еден бајт и во асемблерски јазик се пишува само со
својот мнемоник без операнд, додека во машински јазик ќе содржи само код на
операција и ќе зафаќа само еден бајт.
Двобајтната инструкција ќе содржи еден бајт за својот код на операција и
еден бајт за самиот податок или адреса на некоја В/И порта каде тој се наоѓа.
Програмирање на општ микропроцесор 645

И трибајтната инструкција ќе биде составена од код на операција како свој


прв бајт, а потоа ќе следуваат уште два бајти што ќе претставуваат адреса на
мемориската локација каде што тој податок се наоѓа ако е влезен, или ќе се
запише, ако е излезен податок во облик на резултат. Двата бајти придружени на
тробајтната инструкција може да бидат и 16-битен податок ако кодот на
операција во инструкцијата се однесува на регистерски пар.
Бајтите на секоја инструкција, еден под друг, се запамтуваат во една, две
или три последователни мемориски локации при што кодот на оперција на
инструкцијата е секогаш првиот бајт.

Формати на инструкција на ОМП


Едно-бајтни Бајт-1: Во сите формати тоа е кодот на
КОП операција на инструкцијата (КОП)
.

Дво-бајтни Бајт-1: (КОП)


КОП Бајт2:
Бајт-2  податок, или
.  адреса на В/И порта

Вториот бајт може да се внеси во било кој од регистрите A, B, C, H или L.

Трo-бајтни Бајт-1: (КОП)


КОП Бајт2:
Бајт-2  понизок бајт на адреса на мемориска
локација или на податок
Бајт-3
.
Бајт3:
 повисок бајт на адреса на мемориска
локација или на податок

Вториот бајт е помалку-значајниот бајт со помала тежина, понискиот бајт


кој се сместува во регистрите C, L, или како понизок бајт од 16-битните
регистри PC или SP.
Третиот бајт е повеќе-значајниот бајт со поголема тежина, повисокиот
бајт кој се сместува во регистрите B, H, или како повисок бајт од 16-
битните регистри PC или SP.

Таб. 12-3. Формати на инструкција на ОМП

Ваквиот начин на сместување на повеќе-бајтните податоци, во конкретниот


случај дво-бајтните, во меморијата се нарекува мал-ендиан (ang. little-endian)
формат бидејќи во првата мемориска локација се запамтува понискиот бајт, а во
втората повисокиот бајт („понискиот крај е прв, а повисокиот е втор“) од 16-
битниот податок.
Во практиката постојат и такви процесорски базирани системи кај кои
повеќе-бајтните податоци се запамтуваат во обратен редослед, во т.н. голем-
ендиан (ang. big-endian) формат кога во првата мемориска локација се
запаметува повисокиот бајт, а во втората понискиот бајт („повисокиот крај е прв,
а понискиот е втор“).
646 Програмирање на општ микропроцесор

12.5. Адресни начини


Адресните начини (или режими, анг. Addressing modes) со кои располага
еден МКП претставуваат различни начини и можности за пишување на
асемблерските инструкции. Имено, секоја инструкција претставува комбинација
од мнемоник без операнд, или со операнд. На овој начин, токму со адресните
начини е овозможен различ-ен/ни пристап-/и на една иста операција зададена со
својот мнемоник, до податокот кој нејзе ѝ треба, а може да се наоѓа на различно
место во МКП - системот што зависи од наведениот операнд. Така со одредена
инструкција, користејќи иста операција зададена со својот мнемоник, но различни
опаранди, може на различен начин да му се пристапи на податокот. Со конкретен
операнд може јасно и недвосмислено или директно да се пристапи до самиот
податок, или до него да се пристапи со задавање на адресата со која е одредена
компонентата кадешто тој податок се наоѓа во МКП - системот. Така на пр. него-
вата местоположба може да биде во некоја мемориска локација од RAM или ROM
мемориските ИК-а, или во некоја влезна или излезна порта.

Сл. 12-8. а) б) Aдресни начини


Адресните начини прикажани на сл. 12-8 а) и б), потоа сл. 12-9, како и таб.
12-4 може да ги разгледуваме како различни методи за пристап и манипулација
со податоците за тие да се прочитаат (прифатат) ако се влезни, или да се запи-
шат (испратат) ако се излезни резултати. Во врска со наведеното, програмерот во
асемблерски јазик за општиот микропроцесор може да користи пет различни
адресни начини, а тоа се следниве:
 (1) имплицитно адресирање (анг. inherent, implicit, implied addressig),
 (2) регистерско адресирање (анг. register addressing),
 (3) непосредно адресирање (анг. immediate addressing),
 (4) директно адресирање (анг. direct addressing), и
 (5) индиректно регистерско адресирање (анг. register indirect addressing),
Во продолжение ќе бидат објаснети различните адресни начини кај ОМП
заедно со нивните формати, а исто така ќе бидат презентирани и различни
конкретни примери на инструкции.
Програмирање на општ микропроцесор 647

Асемблерска инструкција
Начини на Формат
Местоположба и тип на податоците
адресирање во бајти
За овој тип на инструкции не е потребен никаков
Имплицитно Еден бајт дополнителен податок и /или адреса. Сите активности за
нивно извршување се случуваат во МКП.
Местоположбата на податокот е во самата инструкција; 1 бајт
Два или е КодОп +1 бајт податок ако е наменет за регистер или +2
Непосредно
три бајти бајти податок кој е всушност адреса која се однесува на
регистерскиот пар, вкупно 2 или 3 бајти.
Регистерско Еден бајт Податокот се наоѓа во некој регистер (B, C, H или L).
Регистерско Местоположбата на податокот е во одредена мемориска
Еден бајт
индиректно локација чија адреса е сместена во регистерскиот пар H=H||L.
Податокот се наоѓа на адреса во меморијата специфицирана
со 2-от или 2-от и 3-от бајт на инструкцијата. 1 бајт е КодОп +1
Два или
Директно бајт за адреса ако податокот се однесува на влезна/излезна
три бајти порта, или +2 бајти ако податокот се пренесува од/до
одредена мемориска локација, (вкупно 2 или 3 бајти).

Таб. 12-4. Адресни начини кај ОМП заедно со нивните формати

Сл. 12-9. Адресни начини


Покрај наведените начини на адресирања, ОМП располага и со неколку
инструкции кои применуваат комбиниран начин од две адресирања, но тие ќе
бидат посебно анализирани во понатамошното излагање.

12.5.1. Имплицитно адресирање


Инструкциите ко.и го применуваат имплицитниот начин на адресирање по
својот формат се најкратки бидејќи содржат само мнемоник кога се користат за
пишување на програми во асемблерски јазик, односно само код на операција во
машински јазик. Заради ова нивниот формат е со должина од еден бајт, бидејќи
не се наведува операнд, и оттука ваквиот начин на адресирање се нарекува
имплицитно адресирање (операндот е имплицитно познат, т.е. се подразбира
каде се наоѓа податокот или се знае каде треба да се изврши инструкцијата). Како
инструкции со имплицитно адрсирање би ги навеле оние за кои се подразбира
дека се однесуваат на податокот кој е вусшност содржината на акумулаторот.
648 Програмирање на општ микропроцесор

Такви се на пр. инструкцијата за комплементирање на неговата содржина


(CMA), оние кои вршат ротација (поместување) на содржината на акумулаторот во
лево (RAL, RLC), или десно (RAR, RRC) како и двете инструкции кои го се
однесуваат на регистерот со знаменца (статусниот регистер) и тоа за поставување
(сетирање) на знаменцето за пренос (STC), односно негово бришење (ресети-
рање) (CMC). Овде припаѓаат и инструкциите кои се однесуваат на системот на
прекини на ОМП и тоа овозможување (EI), или оневозможување (DI), на неговиот
прекиден систем, маскирање на прекините (SIM) и отчитување на состојбата со
системот на прекини (RIM), односно работа со серискиот пренос на податоци бит-
по-бит, и двете инструкции кога ОМП мирува една Т-состојба и ништо не работи
(NOP), односно застанува со извршувањето на инструкциите (HLT).
На следната слика сл. 12-10 е презентиран пример на инструкцијата CMA со
која содржината на акумулаторскиот регистер се комплементира бит-по-бит.

Kомплементирај ја
CMA
содржината на акумулаторот

Притоа е претпоставено дека во Асс се наоѓа податокот BFH=10111111В,


После извршување на инструкцијата во Асс ќе се внесе како нова содржина бајтот
40H=01000000В.

Сл. 12-10. Имплицитно адресирање – извршување на инструкцијата CMA


Слично, ако содржината на акумулаторот пред извршување на
инструкцијата CMA била (A) = 00001111 = 0Fh, по завршување на CMA таа ќе
биде (A) = 11110000 = F0h.
(A) Пред извршување Инструкција (A) После извршување

00001111 0Fh CMA 11110000 0Fh

10111111 BFH 01000000 40H

Таб 12-5. Содржината на акумулаторот А пред и по извршување на инструкцијата CMA

(F) Пред извршување Инструкција (F) После извршување

S Z x x x P x CY CMC S Z x x x P x CY
1 0 x x x 1 x 0 1 0 x x x 1 x 1

Сл. 12-11. Состојбата на знаменцето CY пред и по извршување на инструкцијата CMC


Програмирање на општ микропроцесор 649

Како втор пример ќе го наведеме извршувањето на инструкцијата CMC со


која се комплементира знаменцето за пренос CY. Така, ако знаменцето за пренос
пред извршување на инструкцијата CMC било поставено (сетирано) на 1 (CY=1),
по извршување на инструкцијата CMA тоа ќе се ресетира (CY) = 0.

12.5.2. Регистерско адресирање


Кај инструкциите кои го применуваат регистерскиот начин на адресирање
покрај мнемоникот, односно КОП во машински јазик, треба да се наведе и
операндот кој укажува дека податокот се наоѓа во некој од регистрите за општа
намена на МКП. Така операндот може да биде регистерот B, C, H или L. Форматот
на овие инструкции со регистерско адресирање, слично како на оние што
користат имплицитно адресирање, е со должина еден бајт.
ОМП располага со голем број на инструкции кои користат вакво
адресирање како што се на пр. инструкциите кои ги извршуваат аритметичките
операции собирање (ADD R), одземање (SUB R), и споредување на содржината на
акумулаторот (CMP R) со онаа на зададениот регистер. Овде припаѓаат и
инструкциите кои ги изведуваат логичките операции И (логичко множење) (ANA
R), ИЛИ ( логичко собирање) (ORA R) и ексклузивно (исклучиво) ИЛИ (ЕксИЛИ)
(XRA R).
Секоја ваква инструкција како прв податок ја зема содржината на
акумулаторот (A, Acc), кој во инструкцијата не се наведува како операнд туку се
подразбира, а како втор податок ја смета содржината на наведениот регистер кој
е единствен операнд кај ваквите инструкции. По завршување на инструкцијата
резултатот се внесува во акумулаторот како негова нова сорджина, а старата му
се брише. Содржината на специфицираниот регистер НЕ се менува, т.е. останува
иста пред, и по извршувањето на инструкцијата.
Дополнително, ваков начин на регистерско адресирање применуваат и
инструкциите за зголемување на содржината на некој регистер за 1 (INR R),
односно намалување за 1 (DCR R). Вакви инструкции за зголемување или
намалување на содржината за 1 се однесуваат и на регистерските парови B||C,
H||L, (INX Rp, DCX Rp) и на SP – покажувачот на стек (магацинската,
напластената) меморија.
Регистерското адресирање се користи и од страна на инструкциите за
пренос (трансфер), поточно копирање на податоци (MOV Rd, Rs), кога содржината
од еден регистер оди во друг, при што содржината на изворниот регистер Rs не се
менува, додека како нова содржина на одредишниот регистер Rd се сместува онаа
на изворниот.
На следната слика 12-12 е прикажан пример за изведување на инструкци-
јата MOV A, B со која податокот од регистерот B се пренесува во Асс. Oд примерот
е јасно дека одредишниот регистер во асемблерската инструкција се наведува
прв, а потоа како втор е изворниот регистер така што трансферот се извршува од
десно налево.
650 Програмирање на општ микропроцесор

Пренеси ја (копирај ја) во акумулаторот


MОV A, B
содржината на регистерот В

Сл. 12-12. Регистерско адресирање – извршување на инструкцијата MOV A, В


Пред извршување Инструкција После извршување

(A) xxxxxxxx MOV A, B (A) 01110001

(B) 01110001 (B) 01110001

Бидејќи податоците кои ги обработуваат овие инструкции се наоѓаат во


регистрите на ОМП, нивното извршување е многу брзо. Имено, сите фази на
извршување на инструкциите се случуваат интерно во процесорот.
Примери:
1) Аритметички да се собере содржината на акумулаторот со содржината на
регистер В, ADD B. Кај аритметичкото собирање секој податок процесорот
го гледа како бинарен број. Заради ова секој бит си има своја тежина во
зависност од неговата позиција во тој број. Секогаш кога од собирањето на
два бита кои се наоѓаат на иста позиција во двата броеви ќе се добие збир
2, се јавува бит за пренос од таа позиција со помала тежина кон соседните
два бита од левата страна кои имаат поголема тежина.
2) Логички да се собере (да се изврши операција ИЛИ помеѓу) содржината на
акумулаторот и содржината на регистерот В, ORA B. Кај логичкото
собирање, поточно при извршување на операцијата ИЛИ податоците
процесорот ги гледа како два бајти и заради тоа нивните битови не се
тежински. Едноставно операцијата ИЛИ се извршува бит-по-бит со двата
бита (парот битови) од едниот и од другиот податок кои се наоѓаат на иста
позиција во двата броеви.
Потсетување за аритметичко и логичко собирање на два нибла (две
четворки битови):
Програмирање на општ микропроцесор 651

Инструкција СОБЕРИ ADD B ORA B Инструкција ИЛИ


(АРИТМЕТИЧКИ ЗБИР) (ЛОГИЧКИ СОБЕРИ)
Операнд (A) 00001111 00001111 (A) Операнд
Операнд (B) 01110001 01110001 (B) Операнд
Резултат од ЗБИР 10000000 01111111 Резултат од ИЛИ

Таб 12-6. Аритметичко и логичко собирање на две четворки бита

12.5.3. Непосредно адресирање


Овој начин на адресирање насловот го добил заради тоа што податокот, кој
го обработува операцијата наведена во инструкцијата, се наоѓа во меморијата и
тоа во мемориска локација, чија адреса следи веднаш после мемориската
локација каде што е сместен кодот на операцијата (КОП). Во асемблерски јазик
се наведува мнемоникот на операцијата и самиот податок во бинарна, декадна
или хексадецимална нотација.
Примери за инструкции кои применуваат непосредно адресирање се оние со
кои во регистрите на процесорот вообичаено се внесува влезен податок, одреден
бајт, со кој се поставува почетната состојба на тој регистер или двобајтен
податок во регистерски пар како на пр. MVI R, d8 и LXI Rp, d16. Покрај нив, тука
спаѓаат и инструкции кои ги изведуваат базичните аритметички и логички
операции помеѓу содржината на акумулаторот и одреден однапред познат или
зададен податок како што се инструкциите: ADI R, d8; SUI R, d8; ANI R, d8; XRI R,
d8; ORI R, d8; CPI R, d8. По завршувањето на било која од инструкциите
содржината на акумулаторот се менува, додека податокот ја задржува својата
константна вредност – не се менува. Форматот на овие инструкции е два бајти
при што во првиот бајт е сместен кодот на операцијата, додека во вториот е
сместен податокот.
И од овие примери се забележува дека во означувањето во асемблерскиот
јазик трансферот на податоци се врши од десно на лево бидејќи податокот кој е
изворен операнд се наведува како втор – десен операнд, додека одредишниот
регистер во кој треба тој податок да се внеси се наведува како прв – лев операнд.
Како еден пример за ваквиот адресен начин на следната слика 12-13 ја
презентираме инструкцијата MVI A, 40H за полнење (внесување) на почетна
вредност 40H во акумулаторскиот регистер А.

Пренеси го во акумулаторот
MVI A, 40H
бајтот (податокот) 40Н

Во табелата 12-7 е даден пример за внесување на почетна вредност во


бројачки регистер С (MVI C, 00H).
652 Програмирање на општ микропроцесор

Сл. 12-13. Пример за непосредно адресирање - инструкцијата MVI A, 40Н


Содржина на регистри Иструкција Содржина на регистри
пред извршување после извршување
(A) xxxxxxxx MVI A, 40H (A) 01000000
(C) xxxxxxxx MVI C, 00H (C) 00000000
Таб. 12-7. Пример за непосредно адресирање со инструкцијата MVI
Во продолжение ќе биде презентиран и пример за аритметичко собирање
(инструкција ADI) на содржината на Асс. 35H со фиксен бајт 69H (ADI 69H), како
и за логичко собирање (инструкција ORI) на содржината на Асс. 35H со истиот
фиксен бајт 69H (ORI 69H).
Инструкција СОБЕРИ ADI 69H ORI 69H Инструкција ИЛИ
(АРИТМЕТИЧКИ ЗБИР) (ЛОГИЧКИ СОБЕРИ)
Содржина на А (A)=35Н 00110101 00110101 Содржина на А (A)=35Н
Непосреден податок 69H 01101001 01101001 Непосреден податок 69H
Резултат од ЗБИР 10011110 01111101 Резултат од ИЛИ

Содржина на регистри Иструкција Содржина на регистри


пред извршување (Собери) после извршување
(A) 00110101 ADI 69H (A) 10011110
податок 01101001 податок 01101001

Содржина на регистри Иструкција Содржина на регистри


пред извршување (ИЛИ) после извршување
(A) 00110101 ORI 69H (A) 011111010
податок 01101001 податок 01101001
Таб. 12-8. Пример за непосредно адресирање со инструкциите ADI и ORI
Следната табела е пример за внесување на еден двобајтен податок 1234H во
рег. H и рег. L. Се користат две инструкции за полнење на секој регистер
посебно: MVI H, 12H и MVI L, 34H.
Содржина на регистри Иструкција Содржина на регистри
пред извршување после извршување

(H) xxxxxxxx MVI H, 12H (H) 00010010

(L) xxxxxxxx MVI L, 34H (L) 00110100

Таб. 12-9. Пример за внесување на двобајтен податок во рег. H и рег. L


Програмирање на општ микропроцесор 653

Со непосредното адресирање, може да внесува одредена фиксна содржина,


дво-бајтен податок, и тоа во некој од регистерските парови: B||C, H||L, и на SP –
покажувачот на стек (магацинската, напластената) меморија. Форматот на
инструкциите кои применуваат вакво непосредно адресирање на регистерски
парови е три бајти. Ова од причини што сега непосредниот податок е всушност
со должина од два бајти: еден за едниот регистер од регистерскиот пар, додека
вториот податок за другиот регистер од парот. Во меморијата првиот бајт од
инструкцијата, како што е вообичаено, е КОП, а потоа следуваат двата бајти
според мал-ендиан (ang. little-endian) форматот. Имено, вториот бајт под него, во
пониската адреса, е понискиот бајт (помалку значајниот бајт, бајтот со помала
тежина) на 16-битниот податок, додека третиот бајт е за ушта една мемориска
локација подолу во повисокат аадреса каде се сместува повисокиот бајт (повеќе
значајниот бајт, бајтот со поголема тежина) на 16-битниот податок.
Така на пример регистрите H и L сега можат да се наполнат со два бајти
применувајќи една инструкција LXI H, 1234H бидејќи преку неа процесорот двата
регистри ги третира како единствен регистерски пар H||L.
Содржина на регистри Инструкција Содржина на регистри
пред извршување после извршување

(H) xxxxxxx LXI H, 1234H (H) 00010010

(L) xxxxxxx (L) 00110100

Таб. 12-10. Пример за внесување на двобајтен податок во рег. H и рег. L

12.5.4. Директно адресирање


Како што може да се претпостави и од самиот наслов на ваквиот начин на
адресирање, со директното адресирање инструкцијата го чита, или запишува,
податокот од меморијата со директно задавање на 16-битната адресата на
неговата мемориска локација каде што самиот тој податок е сместен како
содржина на таа локација. Овие инструкции, покрај мнемоникот во асемблерски
јазик, односно кодот на операција во машински, содржат и точно специфицирана
вредност на 16-битната мемориска адреса која всушност го претставува дво-
бајтниот операнд на инструкцијата која применува директно адресирање.
Инструкции кои се најкарактеристични примери на директното адресирање
на меморијата се оние за внесување на нова содржина во акумулаторот на МКП
(LDA am16), од мемориска локација со позната (зададена) (16-битна) мемориска
адреса, или на запаметување (запишување) (STA am16) на содржината на
акумулаторот во неа. И за двата случаи, практично гледано, содржината на
изворниот операнд (податок) се копира во одредишниот. Јасно, изворниот подато
не се менува, додека одредишниот ја добива вредноста на изворниот. Форматот
на овие две инструкции е три-бајтен, бидејќи во програмската меморија во првиот
бајт од инструкцијата вообичаено се наоѓа кодот на операцијата, по што следува
понискиот, а потоа и позначајниот бајт од адресата на мемориската локација каде
се наоѓа податокот. И во овој случај подреденостa на бајтите во меморијата е со
мал-ендиан формат: во првата адреса под КОП се наоѓа понискиот бајт од
адресата, додека во втората адреса под КОП е сместен нејзиниот повисок бајт.
654 Програмирање на општ микропроцесор

На следната слика 12-14 е даден пример за внесување на почетна вредност


во Асс која се наоѓа во меморијата и претставува содржина на адресираната
мемориска локација LDA 3050H.
Внеси ја (копирај ја) во акумулторот содржината на
LDA, 3050H мемориската локација чија адреса е 3050Н (бајтот, податокот
кој се наоѓа запамтен во меморијата на адреса 3050Н)

Сл. 12-14. Пример за директно адресирање со инструкцијата LDA


Во табелата што следува, покрај инструкцијата LDA 3050H, даден е и пример за
запишување на резултат од Асс во меморијата и тоа конкретно како нова
содржина на специфицираната мемориска локација со инструкцијата STA 4060H.
Пред извршување Инструкција После извршување

(A) xxxxxxxx LDA 3050H (A) 00100100 24H

24H Мем.адр. 00100100 Мем.адр. 00100100 24H


3050 3050

24H (A) 00100100 STA 4060H (A) 00100100 24H

Мем.адр. xxxxxxxx Мем.адр. 00100100 24H


4060 4060

Таб. 12-11. Пример за директно адресирање со инструкциите LDA и STA


И со ваквиот начин на адресирање со инструкцијата SHLD am16, може
директно да се запамтат два бајти од регистерскиот пар H||L во две последова-
телни мемориски локации чии адреси се am16 за содржината на L регистерот и
am16+1 за податокот од H регистерот. Обратен ефект во однос на оваа инструк-
ција има инструкцијата LHLD am16, со која содржината на мемориската локација
чија адреса е am16 се чита од меморијата и се внесува во регистерот L, додека
податокот од следната мемориска адреса am16+1 се внесува во регистерот H.
Ваквиот начин на директно адресирање може да се однесува и на некоја
влезна, или излезна порта и тогаш операндот ќе биде 8-битна адреса на влезна
порта од која треба Асс да прифати податок (IN ap8), или адреса на излезна
порта кон која ОМП од Асс му испраќа податок (OUT ap8), резултат добиен по
некоја пресметка.
Програмирање на општ микропроцесор 655

Инструкциите IN и OUT имаат формат од два бајти: во првата мемориска


адреса се наоѓа кодот на операцијата, а под него во следната повисока
мемориска адреса е сместен бајтот кој ја содржи адресата на периферната порта.
Како пример ќе дадеме по една и за двете наведени инструкции IN и OUT. Имено,
во следната табела е даден пример за прифаќање влезен податок од Асс во
излезна порта со одредена адреса (IN 06H), како и пример за испраќање на
резултат од Асс во илезна порта со одредена адреса (OUT 09H).
Пред извршување Инструкција После извршување

(A) Xxxxxxxx IN 06H (A) 01111000 (ip06)=78H


01111000
(A) 00110110 OUT 09H (op09) xxxxxxxx
00110110 (op09)=36H

Пред извршување Инструкција После извршување

(A) xxxxxxxx IN 06H (A) 01111000 78H


78H В/И адр. 01111000 В/И адр. 01111000 78H
06Н 06Н

Пред извршување Инструкција Пред извршување


45H (A) 01000101 OUT 09H (A) 01000101 45H
В/И адр. xxxxxxxx В/И адр. 01000101 45H
09Н 09Н

Таб. 12-12. Пример за директно адресирање со инструкциите IN и OUT

12.5.5. Индиректно регистерско адресирање


За индиректниот начин на адресирање може да се каже дека е
најкомплексен, но и најитересен и многу применлив во оние програми во кои
ОМП треба да чита податоци од последователни мемориски локации, или кога
треба да запишува резултати исто така во последователни мемориски локации
чии адреси континуирано се зголемуваат за 1.
Ваквата можност произлегува од самиот механизам на извршување на овој
адресен начин. Да се задржиме малку на него, да го разјасниме и објасниме во
куси црти. Во „центарот“ на индиректниот регистерски начин на адресирање се
наоѓа регитерскиот пар H||L. Регистерскиот пар H||L треба да содржи адреса на
мемориска локација во која се наоѓа податокот кој ќе се чита од страна на ОМП и
чија содржина ќе се запише во некој од регистрите на ОМП: Acc, B или C, или
адреса во која ќе се запише актуелната содржина на некој од овие регистри.
656 Програмирање на општ микропроцесор

Практично земено, регистерскиот пар H||L претставува податочен


мемориски поинтер, мемориски покажувач. При реализација на ваквата
инструкција процесорот „гледа“ во регистерскиот пар H||L, и ја зема неговата
содржина како адреса на мемориската локација каде што се наоѓа податокот на
кој треба да му пристапи. Со зголемување, или намалување, на содржината на
регистерскиот пар H||L за вредност за 1, и со повторување на една од
инструкциите со индиректно адресирање, лесно се пристапува до
последователните мемориски локации, а со тоа и до податоците сместени во
нив. Форматот на овие инструкции кои користат индиректно регистерско
адресирање е само еден бајт и во него е сместен само КОП во машински јазик,
односно само мнеоникот во асемблерски јазик. Интуитивно е јасно дека пред да
се наведе оваа инструкција, во регистерскиот пар H||L треба претходно да е
сместена соодветна 16-битна содржина, т.е. два бајти кои ја претставуваат
адресата на мемориската локација на податокот.
ОМП располага со поголем број на инструкции кои користат индиректно
регистерско адресирање со кои изведува различни операции над индиректно
адресираните податоци во меморијата. Тука спаѓаат инструкциите со кои се врши
запишување на податок од некој регистер во процесорот до индиректно
адресираната мемориска локација, или пак таа локација се чита и нејзината
содржина се внесува во именуваниот регистер како што се на пр. инструкциите
MVI M, d8; MOV M, R и MOV R, M. Важно место секако заземаат и оние инструкции
кои што ги изведуваат базичните аритметички и логички операции: ADD M, SUB
M, INR M, DCR M, ANA M, XRA M, ORA M и CMP M. Кај нив првиот операнд е
податокот сместен во Асс, вториот податок е оној што се наоѓа во мемориска
локација која е индиректно адресирана, а резултатот стандардно оди во Асс.
На сликата 12-15 е прикажан „механизмот“ според кој се извршува
инструкцијата MOV A, M со кој мемориската локација чија адреса е 3050Н е
индиректно адресирана и нејзината содржина, а тоа е податокот 40Н се внесува
во Асс. Претходно во регистерскиот пар H||L е веќе внесена мемориската адреса
3050Н.
Пренеси го (копирај го) во акумулторот бајтот (податокот)
MOV A, M запамтен на мемориска локација чија адреса е поинтирана со
содржината на регистерскиот пар H||L.

Пред извршување Инструкција После извршување

(A) xxH MOV A, M (A) 01000000H 40H

30H (H) 00110000H (H) 00110000H 30H

50H (L) 01010000H (L) 01010000H 50H

40H Мем.адр. 01000000 Мем.адр. 01000000 40H


3050H 3050H
Програмирање на општ микропроцесор 657

Сл. 12-15. Пример за индиректно регистерско адресирање со инструкцијата MOV A, M


Заклучок: Од досегашното излагање може да се констатира дека секоја
инструкција напишана во асемблерски јазик задолжително треба да содржи
мнемоник кој во машински јазик претставува код на операција и прв бајт на
инструкцијата. Покрај мнемоникот, инструкцијата напишана во асемблерски јазик
може да содржи и операнд кој го претставува податокот што треба да се
обработи, или адресата, а со тоа и неговата местоположба (во меморијата или во
некоја В/И порта) каде тој се наоѓа за да може процесорот да му пристапи.
За да се пристапи до податоците, за да изврши одредена операција со нив,
или за да испратат податоци добиени како резулатат од обработката до
периферните компоненти (меморијата или В/И порти) на програмерот во
асемблерски јазик му стојат на рапослагање различни адресни начини.
Во зависност од тоа кој адресен начин се користи и дали, и кој операнд
покрај мнемникот на инструкцијата е наведен, во машински јазик, покрај бајтот
кој го содржи КОП, некои инструкции содржат уште еден, а други уште два бајта.
Од тука произлегува дека форматот на инструкциите може да биде еднобајтен,
двобајтен, или три-бајтен.
На крај, на следната слика 12-16 се дадени сите пет различни начини на
адресирање применети во различни инструкции со различни формати, но со
единствена цел, ефектот после нивното извршување да биде ист и во
акумулаторот како негова содржина да се наоѓа податокот, т.е. бајтот 40H.

Сл. 12-16. Пет различни начини на адресирање


Кај реалните МКП постојат и други, дополнителни, начини на адресирање
кои меѓусебно се разликуваат, но овие што пред малку се наведени за ОМП ги
содржат скоро сите реални 8-битни МКП.
658 Програмирање на општ микропроцесор

12.6. Алгоритми
Програмирањето претставува процес на трансформирање, жаргонски
кажано „кодирање“, на некој алгоритам во листа на инструкции напишани во
одреден програмски јазик, така што тој програм, кажано во жаргон „код“ може да
се изврши од страна на микро/компјутерот. Без алгоритам, кој претставува
решение на поставениот проблем или задача, не треба да се генерира програм.
Програмирањето е всушност „уметноста“, начинот или постапката според која
идните програмери креираат и создаваат софтвер во некој програмски јазик на
решенијата кои веќе ги осмислиле во облик на одреден алгоритам. Алгоритмите
го опишуваат решението на проблемот, имајќи ги секогаш во вид потребните
влезни податоци со кои се иницијализира проблемот, како и сите потребни
чекори во конечен број и соодветно логички поврзани, за на крајот да се добие
посакуваниот резултат.
Програмските јазици и алгоритмите обезбедуваат таков начин на
означување со кој можат да се претстават влезните и излезните податоци како и
чекорите на процесот на нивната обработка. За остварување на таа цел тие
располагаат со разновидни типови на податоци и контролни конструкции.
Контролните структури се блокови од активности кои можат да се заменат со
програмски инструкции кои овозможуваат алгоритамските чекори да бидат
претставени на пригоден и недвосмислен начин, прикажувајќи кои пресметки ќе
бидат извршени врз влезните податоците и кои резултати ќе бидат добиени како
излезни податоци.
12.7. Блок-дијаграми
Блок-дијаграмите (анг. flowcharts) претставуваат графички тип на дијаграми
со кои се прикажуваат алгоритмите. Секој блок-дијаграм дава визуелна претстава
на алгоритмот, а со тоа на протокот на податоците и на редоследот, т.е.
логичката поврзаност на чекорите за нивна обработка. Тој може да се користи за
да се прикаже претпоставеното решение за дадениот проблем или задача, и тоа
без разлика дали е тој едноставен или сложен. За почетниците во
програмирањето од витално значење е да го совладаат начинот на прикажување
на алгоримите со блок-дијаграми за да ја разберат основната логика која „стои“
зад програмата. Откако блок-дијаграмот ќе биде креиран, тој може да се напише
и имплементира, да се „искодира“ во било кој програмски јазик со инструкции кои
одговараат на секој блок од алгоритмот следејќи ја нивната поврзаност.
За ваквото графичко прикажување на алгоритмите се користат одредени
стандардизирани симболи со кои вообичаено се цртаат блок-дијаграмите. Тие се
посебни и меѓусебно различни геометриски форми. Секој симбол претставува
одреден вид на чекор со различна акција што ќе биде превземена во рамките на
алгоритамскиот процес, односно соодветна инструкција во некој програмски јазик.
Со примената на симболите прикажани на следната слика сл. 12-17 секој блок-
дијаграм добива своја графичка претстава со стандардизирана форма, разбирлива
за секој кој програмер. Покрај графичките симболи, во блок-дијаграмите на секој
алгоритам задолжително се сретнуваат и насочени линии. Тоа се т.н. линии на
тек кои имаат стрелки на краевите. Тие линии, исто како и симболите, играат
многу значајна улога бидејќи покажуваат каква е поврзаноста помеѓу симболите,
а со тоа и на чекорите, односно на инструкциите и каков треба логички да течи
нивното извршување.
Програмирање на општ микропроцесор 659

Елипсовидните форми ги дефинираат точките за почеток и крај на


алгоритмот. Тоа се оние места во алгоритмот од каде тој започнува и каде што
истиот завршува.
Правоаголниците се користат за да се претстави некој процес што
претставува обработка или пресметка. Кај посложените алгоритми процесниот
симбол може во себе да содржи поголем број на операции, но за едноставни
блок-дијаграми, какви што ние ќе користиме, вообичаено во правоаголникот ќе
запишуваме само една операција.
Паралелограмот се користи за прикажување на операција за влез или излез
кога се внесуваат влезните податоци, односно се дистрибуираат или пренесуваат
излезните податоци. Во практиката најчесто се користи истиот облик и за двете
операции: и за влез и излез, а внатре се пишува која од овие две активности
треба да се изврши со соодветни инструкциии. Заради прегледност, може да се
примене и означување со два различни симболи на трапез: едниот со мала основа
за влезни, односно вториот со голема основа, за излезни операции.
Симболот во облик на ромб означува проверка на услов. Внатре во ромбот се
запишува условот кој ќе биде тестиран. Во ромбот треба да влегува само една
линија на тек, а од него треба да излегуваат најмалку две линии, иако може да
има и повеќе. Важно е да се знае дека условот треба така да биде поставен за
едната излезна стрелка меѓусебно да се исклучува со другата. Исто така многу е
битно условот да ги опфаќа сите алтернативи кои може да се појават. Не смее да
се заборави ниту една.

Сл. 12-17. Стандардизирани симболи за цртање блок-дијаграми


Правоаголникот со странични двојни линии повикува друг, однапред
дефиниран алгоритам којшто извршува посебна функција. Тоа се алгоритми на
потпрограми (анг. sub/routines) кои се претходно напишани и проверени дека
навистина точно ја извршуваат својата функција. Кога се повикува потпрограм,
контролата од алгоритмот на главниот програм се префрлува на потпрограмот и
се продолжува со нејзино извршување. По завршувањето на потпрограмот,
контролата на извршување се враќа во онаа точка од главниот алгоритам, која се
наоѓа веднаш под повикот на суб/рутината.
Малите кругови се користат како конектори или точки за спојување.
Конектор со стрелка што излегува надвор од поголем круг насочува кон
точка во алгоритмот од каде што алгоритмот треба да продолжи со извршување.
Конектор со стрелка која насочува кон кругот означува од каде треба алгоритамот
да продолжи со извршување. Во кругот на влезниот и на излезниот маркер треба
660 Програмирање на општ микропроцесор

да има запишан ист број или голема буква од англиската абецеда. Ваквите
конектори можат да се користат кога алгоритмот е поголем, и него не го собира
до крајот на страницата, па заради тоа за доцртување треба да се искористи
нејзината втора половина. Кога алгоритамот ќе дојде до ваков конектор тоа значи
безусловен скок којшто треба да се избегнува кога се креираат алгоритамски
решенија со блок-дијаграми, и по можност воопшто да не се применува, освен за
премин на нова страница како што предмалку наведовме.
За целосно прикажување на големите и комплексни блок-дијаграми
потребни се повеќе страници. Во таквите случаи се применува триаголнест
симбол за крај, односно за почеток на нова страница. Внатре во симболот се
запишува бројот на страницата на која продолжува цртежот на прекинатиот
алгоритам.
Насоките според кои треба да се применуваат симболите при цртање на
блок-дијаграм на алгоритмите би биле селдниве:
1. Вообичаената насока за редоследот на извршување на алгоритамските
чекори е од лево кон десно или од горе кон долу,
2. При цртањето на соодветниот блок-дијаграм за осмислениот алгоритам, сите
чекори и нивните поврзувања треба да бидат наведени со логичен редослед,
3. Блок-дијаграмот треба да биде јасен, прегледен и лесен за следење без
двосмислености и дилеми.

12.8. Структурни блок-дијаграми


Бројот на проблеми и задачи кои може да се прикажат алгоритамски со
блок-дијаграми и да се извршат на компјутер за општа намена е практично
неограничен. Но, предизвикот е да се открие и применува таков пристап кон
решавањето на проблемите кој ќе нѐ форсира да дојдеме до нивното решение на
ефективен и ефикасен начин.
Овој проблем е сличен на проблемот кој ни се јавува кога сме тргнале на
прошетка во некој шумски предел и сме се изгубиле па треба да ја најдеме
вистинската патека која ќе нѐ однесе дома. Уште попрецизно, треба да откриеме
таков начин, или принцип, кој секогаш кога ќе го применуваме, ќе ни олеснува да
го најдеме патот кој нѐ води дома.
Фундаментална цел на секој почетник, па и искусен програмер, е при
развојот на софтвер, без разлика колку е тој голем, неговиот алгоритам да има
конзистентна структура. Еден ваков приод нуди структурното програмирање кое
користи само неколку основни структури како блокови што програмерот треба да
ги искористи на соодветен и правилен начин. Структурните програми се водат
според структурни алгоритми, чии блок-дијаграми се прегледни и лесни како за
креирање, така и за разбирање, во смисол на нивната логичка поврзаност. Токму
примената на вакви основни структури како шаблонски блокови го поттикнува
програмерот на здраво логичко размислување, и го насочува да пишува струк-
турни програми. Основата на структурното програмирање е примена на базични
логички структури. Секоја од нив има само една влезна и една излезна точка.
Програмирање на општ микропроцесор 661

Структурните програми се изградени од три едноставни базични структурни


блокови или како што уште се нарекуваат основни контролни структури, а тоа се:
 Блок наречен низа или секвенца за секвенцијална, редоследна или
линиска обработка,
 Условен блок или блок за гранење (за селекција) или избор на една
обработка врз основа на проверка на некој услов и донесена одлука,
 Блок кој остварува циклус на повторувања за последователно
(итеративно) повторување на една иста обработка во циклус доколку
некој услов е, или не е исполнет.
Графичкиот приказ на секој основен структурен блок е претставен на
следните слики применувајќи ги симболите за цртање на блок-дијаграмите.

Сл.12-18. Основни градбени блокови на алгоритмите за структурирано


програмирање а) секвенца б) услов в) селекциска структура
Секој од наведените базични блокови може да се користи како основа за
градење и генерирање на принципиелно исти вакви блокови, но со посложена
алгоритамска структура со нивно логичко комбинирање и поврзување. Ваквата
особина на структурното програмирање произлегува од фактот што секој од трите
структурни блокови има само една влезна и една излезна точка, т.е. само една
влезна линија на тек, а исто така и само една излезна линија.
На следните слики се прикажани основните структурни блокови, но покрај
нив на сликите гледаме и структурни блокови кои се изведени од основните.
Дозволено е и тие да се применуваат за дизајнирање на блок-дијаграми на
структурни алгоритми.
Основниот блок-дијаграм, блокот означен на сл. 12-1а а) се именува како
низа или секвенца (анг. sequence) и тој претставува низа од чекори кои редослед-
но се извршуваат еден по еден. Нив може да ги има еден, два, три или повеќе.
Структурата означена на сл. 12-18 б) е наречена услов или гранење „Ако-
тогаш-инаку“ (анг. ... decision, conditional, "If Then.. Else") бидејќи на ова место се
донесува одлука. Ако е исполнет условот кој се проверува, се извршува блокот 1,
но ако условот не е исполнет се извршува блокот 2. Во никој случај не може да
бидат извршени и двата блока бидејќи тие се меѓусебно исклучиви.
Следната структура означена со 12-18 в) се вика селекциска структура „во
случај ако“ (анг. case structure или selection structure). Таа е всушност изведена од
структурата за гранење со повеќе последователно поврзани блокови за гранење.
662 Програмирање на општ микропроцесор

Сл. 12-19. Условни структури а) основна „ако-тогаш-инаку “б) „ако-тогаш“ в) „ако-инаку“


На сл. 12-19 а) е повторно дадена основната структура „ако-тогаш-инаку“
од сл. 12-18 б). Ова е заради тоа што следните две условни структури
произлегуваат од основната и се нејзина поедноставена варијанта бидејќи едниот
блок од двата го нема. Тоа се условните структури „ако-тогаш“ и „ако-инаку“
прикажани на сликата и означени со сл. 12-19 б) и в). И за двата случаи, ако се
исполни условот, во онаа гранка каде што нема блок едноставно ништо не се
извршува. Алгоритмот си продолжува понатаму со следниот блокот што следува
по условната структура.

а) „додека ... прави“ б) “прави... додека“ в) „за ... следен“ г) „за секој“
Сл. 12-20 Структури со повторување циклични структури
Структурите што следат на сл. 12-20 а) б) в) г) овозможуваат одреден блок
циклично да се повторува повеќе пати. Блокот што се повторува се нарекува тело
на циклусот. Секој циклус е различен од другиот, но иако се меѓусебно различни,
во принцип, секоја циклична структура може да се реализира со било која друга.
Првиот цикличен блок-дијаграм на сл. 12-20 а) се именува како пре-тест циклус
„додека ... прави“ (анг. While … do). Според него блокот се повторува сѐ додека
условот е исполнет, при што блокот може и воопшто да не се изврши (ниту
еднаш!) бидејќи проверката на условот со кој се остварува гранењето е пред
блокот.
Програмирање на општ микропроцесор 663

Од друга страна, во блок-дијаграмот Сл. 12-20 б) прво задолжително се


извршува блокот, па потоа се проверува условот и се реализира циклусот. Затоа
оваа основна структура се нарекува пост-тест циклус “прави... додека“ (анг. do …
while, do … until). Кај оваа структура блокот еднаш мора да се изврши. Покрај ова,
цикличното повторување се изведува ако условот не е исполнет.
И кај двете основни циклични структури може да се зададат спротивни
услови за проверување и тогаш ќе се сменат и условите со кои се повторуваат
блоковите во циклусот.
Следната циклична структура сл. 12-20 в) е „за ... следен“ (анг. for … next).
Кај неа блокот се извршува повеќе пати во зависност од тоа каква е состојбата на
контролната променлива (бројачот). На почетокот се задава неговата стартна
вредност, но и неговата крајна вредност. Најпрво се проверува условот со
почетната вредност и ако тој е исполнет, телото на циклусот се извршува, а ако
не е исполнет, блокот се прескокнува – не се извршува и се оди понатаму. После
секое поминување на циклусот вредноста на бројачот се менува (зголемува или
намалува најчесто за 1), па повторно се извршува блокот на циклусот, и циклусот
се повторува сѐ додека условот е исполнет. Ако условот не е исполнет,
повторувањата не се извршуваат повеќе, се излегува од циклусот и се
продолжува понатаму со следениот блок што се наоѓа под циклусот. Во зависност
од тоа како ќе биде поставен условот, блокот кој треба да се повторува може да
не биде извршен ниту еднаш.
Како изведена циклична структура сл. 12-20 г) е структурата од типот „за
секој“ (анг. "For Each") која може да се смета дека е во основа „за ... следен“
структура само без бројач. Имено, блокот ќе се повторува сѐ додека има елементи
во условот, или поинаку кажано дадениот блок треба да се извршува за секој
елемент додека има елементи.
Предноста на техниката на структурно програмирање е во развојот на
програми кои се посигурни, полесни за разбирање, полесни за менување и
полесни за документирање. Заради тоа, во практиката, базичните логички
структури и нивните варијации се основата на програмскиот дизајн и развојот на
посериозни софтверски производи.
За крај би заклучиле дека:
1. За секој проблем или задача треба да се развие алгоритам кој ќе
претставува негово решение,
2. Алгоритмот треба да биде прикажан со соодветен блок-дијаграм,
3. Блок-дијаграмот на алгоритмот треба да има логички тек, да биде
прегледен и јасен, без двосмислености, заради што треба да се користат
трите основни структурни блокови: линиска структура, структура на
гранење и структура на повторување,
4. За алгоритамското решение презентирано со генерираниот блок-
дијаграм, и при тоа имајќи го истиот како основа, треба да се креира
изворен програм во одреден програмски јазик.
664 Програмирање на општ микропроцесор

Синтаксата на скоро сите програмски јазици на високо ниво директно ги


поддржува основните логички структури на структурното програмирање. Меѓутоа,
кога се програмира на асемблерски јазик, потешко е да се придржуваме кон
структурните програмски концепти, бидејќи основните логички структури не се
директно поддржани од страна на асемблерскиот јазик кој спаѓа во групата на
програмски јазици од ниско ниво. Според ова, за да се увидат можностите за
имплементација на основните контролни структури на структурното
програмирање во асемблерските програми ќе има потреба од проучување на
нивната реализација со примена на повеќе асемблерски инструкции со кои ќе се
симулира секој базичен структурен блок.
12.9. Основи на програмирање во асемблерски јазик
Кога имаме задача софтверски да решиме некој проблем треба да развиеме
соодветен алгоритам кој ќе биде основа за пишување на програмот што ќе го
реши поставениот проблем. Во секој случај, пред да почнеме со решавање на
проблемот и генерирање на софтверот, треба да имаме некаков план, всушност
алгоритам за неговиот развој. Развојот на софтвер е итеративен процес во кој
редоследно ги извршуваме следниве чекори:
Чекор-1) Дефинираме листа на потребни влезни и очекувани излезни
податоци,
Чекор-2) Развиваме алгоритам за софтверот кој треба да го креираме. Него ќе
го користиме како план кој треба да претставува низа на чекори во кои се
содржани операциите што програмот треба да ги изврши за да се добие точно
решение на поставениот проблемот. Во практиката најчесто се применуваат три
различни пристапи за пишување на алгоритмот.
Кога се соочуваат со проблем кој не е многу обемен, искусните програмери
алгоритмот го развиваат директно на оној компјутерски јазик кој им е најсоодве-
тен за решавање на поставената задача.
Од друга страна пак, почетниците имаат потреба од апстрактен метод за
документирање на посакуваниот редослед на превземените чекори. За презен-
тирање на алгоритмот тие треба да применуваат или графички приказ со блок-
дијаграм или текстуален облик со псевдо-код.
Што се однесува до псевдо-кодот не постојат формални правила во врска со
начинот на неговото пишување. Имено, псевдо кодот претставува опишување на
алгоритмот со неформални кратенки од некој човечки јазик, постапно
наведувајќи што треба и кога треба да се направи чекор по чекор. Иако ова не е
лош пристап, сепак не се препорачува токму од причини што од една страна не
е формализиран, а од друга користењето на кратенки во различни јазици остава
простор за уште поголема неразбирливост на вака опишаните алгоритми.
На програмерите почетници им се препорачува да применуваат структурни
блок-дијаграми со кои ќе го прикажат и документираат алгоритамот на софтвер-
ското решение кое планираат да го развијат. Дополнителна причина за ова е
фактот што за структурните блокови постојат и формализирани текстуални
блокови на псевдо код на англиски јазик што значи дека алгоритмите претста-
вени со блок-дијаграми можат да се опишат и во формализиран псевдо код.
665 Програмирање на општ микропроцесор

Чекор-3) Третата фаза е тестирањето која го опфаќа пронаоѓањето на


грешките (анг. bugs) и нивното поправање (анг. debagging). Кога се тестира готов
програм, треба да се дадат повеќе комбинации на конкретни вредности на
влезните променливи и со калкулатор или друг проверен програм да се
пресметаат излезните резултати, кои ќе се споредат со оние добиени по извршу-
вањето на нашиот програм за истите тие вредности. Со дебагирањето како трет
чекор треба да се отстранат грешките во првичниот програм. Со тоа во голема
мера ќе се подобри квалитетот на креираниот софтвер, но воедно ќе се стекне
поголемо искуство за ефикасно развивање на секој следен програм бидејќи
истите грешки сигурно нема да се повторуваат.

Сл. 12-22. Чекори во развојот на софтвер

Чекор-4) Документирање на програмите и потпрограмите


Последен чекор, на кој (за жал) програмерите му посветуваат најмалку
значење е документирањето на готовиот софтверски производ. Овој чекор во
основа е административен и заради тоа е избегнуван, но тоа не ја намалува
неговата важност и улога. Станува збор за печатен листинг на конечната верзија
на програмот која е тестирана, проверена и исчистена од грешки и тоа на
неговиот изворен код пропратен со коментари на оние програмски редови каде
што навистина за тоа има потреба. Софтверската документација треба да содржи
и пишан текст кој во куси црти ја објаснува логиката и функционирањето на
софтверскиот производ, со соодветно вметнати илустрации кои визуелно го
поддржуваат, како што се на пр. различните видови на блок-дијаграми.
666 Програмирање на општ микропроцесор

12.10. Детален опис на асемблерските инструкции на ОМП


Во оваа наставна единица ќе бидат презентирани сите 144 асемблерски
инструкции на ОМП со своите мнемоници класифицирани во групи со деталните
описи на операциите што ги извршува секоја од нив. Покрај описот, за секоја
инструкција посебно, е даден нејзиниот симболички приказ, влијанието врз
знаменцата по нејзиното извршување, бројот на бајти кои што таа ги зафаќа,
потребниот број на Т-состојби за нејзино извршување, како и начинот на
адресирање (адресниот режим) кој се однесува на неа.
Следната табела 12-13 во најкуси црти ги презентира регистрите и
регистерските парови на ОМП со нивните симболички имиња и должина изразена
во бајти, а му стојат на располагање и му се достапни на програмерот во
асемблерски јазик.

Регистри достапни за програмерот (Програмерски Должина во бајти и


модел на општиот микропроцесор) битови (1B = 8b)
 A (Асс, Акумулатор, Акумулаторски регистер) Едно бајтен регистер
(8b=1B)
 F (Flags) = Регистер со знаменца, Едно бајтен регистер
(Регистер на состојба, Статусен регистер) (8b=1B) (се користат
само четири: Z, CY, S, P)
 B, C, H, L = Регистри за општа намена Четири еднобајтни
регистри. Секој по 8b
 РС = програмски бројач (покажувач на адреса на Двобајтен регистер
мемориска локација која содржи код на операција) (16b=2B)
 SP = стек поинтер Двобајтен регистер
(покажувач на адреса на стек меморијата) (16b=2B)

 Регистерски парови: B и H Два двобајтни


при што В=B||C и H=H||L регистерски парови.
Секој по (16b=2B)
 PSW = програмски статусен збор (збор на состојба) Двобајтен регистер
во чиј состав како регистерски пар влегуваат (16b=2B)
акумулаторот А и регистерот на знаменца F.

Таб. 12 -13. Регистри на ОМП достапни за програмерот


При опишувањето на операцијата што ја извршува секоја инструкција и
нејзиниот симболички приказ во таб. 12-13 се користат следниве кратенки:
d8> 8-битен податок (бајт)
d16> 16 битен податок, дво-бајт (збор)
R> Еден од регистрите: A, B, C, H, L
 Rs> Изворен регистер,
 Rd> Одредиштен (дестинациски) регистер
(R)> Содржина на регистер: A, B, C, H, L
Програмирање на општ микропроцесор 667

Rp> Регистерски пар: B=B||C, H=H||L


(Rp)> Содржина на регистерски пар: B=B||C, H=H||L
(PC)> Содржина на програмскиот бројач
(SP)> Содржина на покажувачот на стек меморија (стек поинтерот)
a16 или am16> 16-битна адреса на мемориска локација
(a16) или (am16)> содржина на мемориска локација со адреса a16/am16
a8 или p8> 8-битна адреса на влезна/излезна порта
(a8) или (ap8)> содржина на влезна/излезна порта со адреса a8/ap8
M> Мемориска локација чија адреса е сместена во регистерскиот пар H
(меморискиот поинтер) H=H||L
((HL))> содржина на мемориска локација чија адреса се наоѓа во
регистерскиот пар H=H||L (меморискиот поинтер)
Z, CY, S, P> знаменца во регистерот на состојба (статусниот регистер) F
 нула (Z); пренос, односно позајмување (CY); предзнак (S); парност (P)
Знаци на аритметичките операции: Собирање “+”, Одземање “–“.
Знаци на логичките операции: ИЛИ (логичко собирање) “+”, Ексклузивно
(Исклучиво) ИЛИ, ЕКСИЛИ “”, И (логичко множење) “”, Комплеметирање
(логичка негација) “*”.

12.10.1 Инструкции за пренесување на податоци


Инструкциите за пренесување реализираат трансфер на податоци, т.е.
бајти, поточно нивно копирање, помеѓу регистрите во процесорот, помеѓу нив и
мемориските локации и помеѓу регистрите и В/И порти. Зависно од конкретната
инструкција изворен операнд може да биде регистер, мемориска локација, В/И
порта или 8-битен податок. Одредишен операнд може да биде регистер,
мемориска локација или В/И порта. При ова секој регистер или регистерски пар се
означува со своето симболичко име. Мемориската локација може да биде
адресирана директно со 16-битна адреса, или индиректно преку содржината на
регистерскиот пар H (=H||L). В/И порта се адресира директно со 8-битна адреса
ако е издвоено мапирана. Ако В/И портата е мемориски мапирана до неа се
пристапува директно или индиректно со 16-битна адреса како да е мемориска
локација.
Во секој случај, трансферот на податокот ја менува содржината на одреди-
шниот операнд, додека НЕ ја менува на изворниот операнд. Практично, ова значи
дека кога се извршува инструкција за пренос на некој бајт всушност тој податок
се чита од изворот и се пренесува во одредиштето така што станува збор за
негово копирање од изворот во одредиштето.
Што се донесува до инструкциите за трансфер на податоци треба да
напоменеме дека нивното извршување НЕ влијае врз знаменцата. Имено, по
извршувањето на било која инструкција за пренос знаменцата НЕ се афектирани и
нивната состојба останува иста како и пред тоа.
668 Програмирање на општ микропроцесор

Инструкции за пренесување (трансфер) на податоци


Инструкција Симболичен Зна- Бајти – T- Начин на
Опис на операцијата
(Мнемоник+Операнд) приказ менца состојби адресирање
Пренеси во регистер непосредно податок кој е запишан како MVI R, d8 R  d8 – 2B – 7Ts Непосредно
втор бајт на инструкцијата по КОП (A, B, C, H, L)
Пренеси во индиректно адресирана мемориска локација со
MVI M, d8 (HL)  d8 – 2B – 10Ts Индирeктно и
адреса во Rp H=H||L непосредно податок кој е запишан како Непосредно
втор бајт на инструкцијата по КОП
Пренеси во регистер Rd содржина од регистер Rs MOVE Rd, Rs Rd  Rs – 1B – 4Ts Регистерско
(A, B, C, H, L)
Пренеси во индиректно адресирана мемориска локација со MOVE M, Rs (HL)  Rs – 1B – 7Ts Регистерско
адреса во Rp HL содржина од регистер Rs (A, B, C, H, L) индиректно
Пренеси во регистер Rd содржина од индиректно адресирана MOVE Rd, M Rd  (HL) – 1B – 7Ts Регистерско
мемориска локација со адреса во Rp HL (A, B, C, H, L) индиректно
Внеси во Rp непосредно 16 битен податок кој се наоѓа како LXI Rp, d16 Rp  d16 – 3B – 10Ts Непосредно
втор и трет бајт на инструкцијата по КОП (B||C, H||L, SP)
Запамти ја содржината на Аcc директно во мемориска локација
STA a16 (a16)  A – 3B – 13Ts Директно
со адреса a16
Внеси во Аcc содржина на мемориска локација директно со
LDA a16 A  (a16) – 3B – 13Ts Директно
адреса a16
Запамти ги содржините на Rp HL директно во две мемориски (a16)  L – 3B – 16Ts Директно
локации со прва адреса a16 SHLD a16
(a16+1)  H
Внеси во Rp HL содржини на две мемориски локации директно L (a16) – 3B – 16Ts Директно
со прва адреса a16 LHLD a16
H (a16+1)
Таб. 12 -14. Инструкции за пренесување на податоци

Инструкциите за пренос на податоци со влезно/излезни порти и за работа со стек меморијата може да се класифицираат
и во последната група на т.н. разновидни инструкции, но зарaди тоа што во основа и тие вршат пренос на податоци истите ги
наведуваме овде во рамките на инструкциите за трансфер.
Програмирање на општ микропроцесор 669

Инструкции за влезно/излезен пренос. Со овие инструкции е обезбеден трансфер на податоци помеѓу ОМП и
посебно адресирани влезно-излезни (В/И) компоненти преку соодветни В/И порти. Тоа се две инструкции од кои едната е за
прифаќање (читање) на податок, додека другата е за испраќање (запишување) на податок од/до влезно-излезно порта. При тоа
за адресирање на портите се употребуваат пониските осум адресни битови, т.е. понискиот адресен бајт а7 – а0 бидејќи
издвоено од меморискиот адресен простор од 64 КВ ОМП може максимално да адресира 256 В/И порти.
Инструкции за влезно/излезен пренос
Влез во Аcc содржина на мемориска локација директно со A  (a8) –
адреса a8
IN a8 2B – 10Ts Директно
Излез на содржина на Аcc директно во излезна порта со
OUT a8 (a8)  A – 2B – 10Ts Директно
адреса a8
Таб. 12 -15. Инструкции за влезно/излезен пренос
Инструкции за работа со стек меморија. Стек меморијата (анг. stack) или магацинската, напластената или стог
меморијата како што уште се нарекува, преставува мемориски сегмент за привремено запамтување на податоци и потоа нивно
читање според LIFO принципот: последен запишан–прв прочитан. Првата адреса на стек меморијата се иницијализира со внесува-
ње на содржина во покажувачот на адреса на стекот, SP. Преносот на податоци се остварува со инструкциите за внесување PUSH
и изнесување POP. Изворишните податоци за стекот се два бајти (16 бита) кои можат да бидат содржините на рeгистерските
парови BC или HL, програмскиот статусен збор кој претставува комбинација од содржината на акумулаторот A и регистерот со
знаменца F, а по автоматизам кога се повикува потпрограм во стек-меморијата привремено се запамтува содржината на РС.

Инструкции за работа со стекот


Инструкција Симболичен Зна- Начин на
Опис на операцијата (Мнемоник+Операнд) менца Бајт/и
приказ адресирање
SP (SP) – 1 –
Турни ги содржините на Rp во две мемориски локации на PUSH Rp (SP) RpHiR Регистерско
1B – 12Ts
стекот индиректно адресирани со првата адреса на (SP). (B||C, H||L) SP (SP) – 1 индиректно
(SP) RpLoR
PUSH PSW SP (SP) – 1 –
Турни ги содржините на регистрите Acc и F во две индиректно (A||F) (SP) А Регистерско
1B – 12 Ts
адресирани со првата адреса на (SP). SP (SP) – 1 индиректно
(SP) F
670 Програмирање на општ микропроцесор

Инструкции за работа со стекот


RpLoR  (SP) –
Извaди ги содржините на двете мемориски локации од стекот POP Rp SP SP + 1 Регистерско
1B – 10Ts
индиректно адресирани со првата адреса (SP) во Rp. (B||C, H||L) RpHiR  (SP) индиректно
SP SP + 1
F (SP) –
Извaди ги содржините на двете мемориски локации од стекот
POP PSW SP (SP) + 1 Регистерско
индиректно адресирани со првата адреса (SP) во регистрите 1B – 10Ts
Acc и F. (A||F) A (SP) индиректно
SP (SP) + 1
Таб. 12 -16. Инструкции за работа со стекот
12.10.2 Инструкции за аритметички операции
Најголемиот број од инструкциите кои извршуваата аритметички операции го вклучуваат регистерот А (Акумулаторот,
Асс). Во секоја аритметичка инструкција во која барем еден од операндите е Асс, резултатот по извршувањето на инструкцијата
се сместува (запишува, внесува или полни) повторно во Асс. Јасно е дека претходната содржина на Асс се заменува со
новодобиениот резултат додека вториот податок кој што е специфициран со вториот операнд не се менува. Така на пр. ако
податокот е содржина на некој регистер, некоја адресирана мемориска локација или В/И порта, таа останува иста пред и
посивршувањето на операцијата зададена во инструкцијата. Аритметичката група на инструкции ги извршуваат следниве
аритметички операции: собирање,одземање и зголемување и намалување за 1.

Инструкции за аритметички операции


Инструкција
Зна- Начин на
Опис на операцијата (Мнемоник+Операн Симболичен приказ Бајт/и
мен-ца адресирање
д)
Собери ја содржината на регистерот R со содржината на Асс и ADD R
A  (A) + (R) Сите 1B – 4Ts Регистерско
збирот внеси го во Асс (A, B, C, H, L)
Собери ја содржината на Асс со содржината на индиректно
Регистерско
адресирана мемориска локација со адреса во Rp HL и збирот ADD M A  (A) + ((HL)) Сите 1B – 7Ts
внеси го во Асс индиректно
Собери го непосредно податокот кој е запишан како втор бајт
на инструкцијата по КОП со содржината на Acc и збирот внеси ADI d8 A  (A) + d8 Сите 2B – 7Ts Непосредно
го во Асс
Програмирање на општ микропроцесор 671

Инструкции за аритметички операции


Одземи ја содржината на регистерот R од содржината на Асс и SUB R
A  (A) – (R) Сите 1B – 4Ts Регистерско
разликата внеси ја во Асс (A, B, C, H, L)
Одземи ја содржината на индиректно адресираната мемориска
Регистерско
локација со адреса во Rp HL од содржината на Асс и разликата SUB M A  (A) – ((HL)) Сите 1B – 7Ts
внеси ја во Асс индиректно
Одземи го непосредно податокот кој е запишан како втор бајт
на инструкцијата по КОП од содржината на Acc и разликата SUI d8 A  (A) – d8 Сите 2B – 7Ts Непосредно
внеси ја во Асс
INR R S, Z, P
Зголеми ја за 1 содржината на регистерот R и внеси ја во R R  (R) + 1 1B – 4Ts Регистерско
(A, B, C, H, L) NotCY
Зголеми ја за 1 содржината на индиректно адресираната ((HL))  ((HL)) + 1 S, Z, P 1B – 10Ts Регистерско
мемориска локација со адреса во Rp HL и внеси ја во истата INR M NotCY индиректно
локација
INX Rp
Зголеми ја за 1 содржината на Rp и внеси ја повторно во Rp Rp  (Rp) +1 – 1B – 6Ts Регистерско
(B||C, H||L)
DCR R S, Z, P
Намали ја за 1 содржината на регистерот R и внеси ја во R R  (R) – 1 1B – 4Ts Регистерско
(A, B, C, H, L) NotCY
Намали ја за 1 содржината на индиректно адресираната ((HL))  ((HL)) – 1 S, Z, P 1B – 10Ts Регистерско
мемориска локација со адреса во Rp HL и внеси ја во истата DCR M NotCY индиректно
локација
DCX Rp
Зголеми ја за 1 содржината на Rp и внеси ја повторно во Rp Rp  (Rp) – 1 – 1B – 6Ts Регистерско
(B||C, H||L)
Таб. 12 -17. Инструкции за аритметички операции
672 Програмирање на општ микропроцесор

12.10.3 Инструкции за логички операции


Принципот на работа на инструкциите кои извршуваат логички операции во основа е ист како и кај аритметичките
инструкции. Имено, и во овој случај, најголемиот број од логички инструкции го вклучуваат акумулаторскиот регистер А (Асс).
Во секоја логичка инструкција во која барем еден од операндите е Асс, резултатот по извршувањето на инструкцијата се
сместува (запишува, внесува или полни) повторно во Асс. Јасно е дека претходната содржина на Асс се заменува со
новодобиениот резултат додека вториот податок кој што е специфициран со вториот операнд не се менува. Така на пр. ако
податокот е содржина на некој регистер, некоја адресирана мемориска локација или В/И порта, таа останува иста пред и по
извршувањето на операцијата зададена во инструкцијата. Во групата на инструкции спаѓаат оние кои што ги извршуваат
следниве логички операции: И (логичко множење), ИЛИ (логичко собирање), ЕксИЛИ (ексклузивно, исклучиво ИЛИ),
комплементирање (НЕ, логичка негација), ротирање во лево ли во десно за еден бит и споредување. За операциите И, ИЛИ и
ЕксИЛИ треба да напоменеме дека се изведуваат бит-по-бит за секој бит од 8-те бита на податоците со кои тие се извршуваат
според дадената слика сл.12-23.

сл. 12-23. Принципот на работа на инструкциите за логички операции

Забелешка за означувањето: Знакот “+” на операцијата ИЛИ (за логичко собирање) се поклопува со знакот на
истоимената аритметичка операција СОБИРАЊЕ од која драстично се разликува по својата функција и заради што треба да се
внимава на нивната примена бидејќи овие две операции не треба да се поистоветуваат. Логичката операција Ексклузивно
(Исклучиво) ИЛИ, ЕКСИЛИ, (анг. EXOR) се означува со симболот „крвче во кругче“ “”. Логичката негација, комплеметирањето,
или првиот комплемент се означува со ѕвездичка “*” во десно.
Програмирање на општ микропроцесор 673

Инструкции за логички операции


Инструкција Симболичен Зна- Начин на
Опис на операцијата (Мнемоник+Операнд) приказ Бајт/и
менца адресирање
Изврши ја операцијата И (логичко множење) бит-по-бит на ANA R Сите,
содржината на Асс со содржината на регистерот R и A  (A)  (R) 1B –4Ts Регистерско
резултатот внеси го во Асс (A, B, C, H, L) CY=0

Изврши ја операцијата И (логичко множење) бит-по-бит на


содржината на Асс со содржината на индиректно адресирана Сите, Регистерско
ANA M A  (A)  ((HL)) 1B –7Ts
мемориска локација со адреса во Rp HL и резултатот внеси го CY=0 индиректно
во Асс
Изврши ја операцијата И (логичко множење) бит-по-бит на
Сите,
содржината на Асс непосредно со податокот кој е запишан како ANI d8 A  (A)  d8 2B –7Ts Непосредно
втор бајт на инструкцијата по КОП и и резултатот внеси го во Асс.
CY=0

Изврши ја операцијата ЕксИЛИ (ексклузивно собирање) бит-по- XRA R Сите,


бит на содржината на Асс со содржината на регистерот R и A  (A)  (R) 1B –4Ts Регистерско
резултатот внеси го во Асс (A, B, C, H, L) CY=0

Изврши ја операцијата ЕксИЛИ (исклучиво ИЛИ) бит-по-бит на


содржината на Асс со содржината на индиректно адресирана Сите, Регистерско
XRA M A  (A)  ((HL)) 1B –7Ts
мемориска локација со адреса во Rp HL и резултатот внеси го CY=0 индиректно
во Асс
Изврши ја операцијата ЕксИЛИ (исклучиво ИЛИ) бит-по-бит на
Сите,
содржината на Асс непосредно со податокот кој е запишан како XRI d8 A  (A)  d8 2B –7Ts Непосредно
втор бајт на инструкцијата по КОП и и резултатот внеси го во Асс.
CY=0

Изврши ја операцијата ИЛИ (логичко собирање) бит-по-бит на ORA R Сите,


содржината на Асс со содржината на регистерот R и A  (A) + ® 1B –4Ts Регистерско
резултатот внеси го во Асс (A, B, C, H, L) CY=0

Изврши ја операцијата ИЛИ (логичко собирање) бит-по-бит на


содржината на Асс со содржината на индиректно адресирана Сите, Регистерско
ORA M A  (A) + ((HL)) 1B –7Ts
мемориска локација со адреса во Rp HL и резултатот внеси го CY=0 индиректно
во Асс
674 Програмирање на општ микропроцесор

Инструкции за логички операции


Изврши ја операцијата ИЛИ (логичко собирање) бит-по-бит на
содржината на Асс непосредно со податокот кој е запишан како Сите,
ORI d8 A  (A) + d8 2B –7Ts Непосредно
втор бајт на инструкцијата по КОП и и резултатот внеси го во CY=0
Асс.
Спореди ја содржината на Acc со содржината на R и соодветно CMP R 1B –4Ts
(A) – (R) Сите Регистерско
постави знаменца. (A, B, C, H, L)
Спореди ја содржината на Acc со содржината на индиректно Регистерско
адресирана мемориска локација со адреса во Rp HL и CMP M A – ((HL)) Сите 1B –7Ts
соодветно постави знаменца. индиректно
Спореди ја содржината на Acc непосредно со податокот кој е
запишан како втор бајт на инструкцијата и соодветно постави CPI d8 (A) – d8 Сите 2B –7Ts Непосредно
знаменца.
Комплементирај ја содржината на Асс бит-по-бит и резултатот –
CMA A  (A*) 1B –4Ts Имплицитно
внеси го во Асс
Сетирај го знаменцето за пренос (постави го знаменцето CY на CY  1 CY 1B –4Ts
STC Имплицитно
1)
Комплементирај го знаменцето за пренос. CMC CY  (CY*) CY 1B –4Ts Имплицитно
Таб. 12 -18. Инструкции за логички операции
Програмирање на општ микропроцесор 675

Инструкции на операции за ротирање


Инструкција Симболичен Зна- Начин на
Опис на операцијата (Мнемоник+Операнд) Бајт/и
приказ менца адресирање
Ротирај ја во лево за по еден бит содржината на Асс и во RLC ai+1 ai,
знаменцето CY. a0 a7, CY 1B –4Ts Имплицитно
CY a7
ai-1 ai, Имплицитно
RRC
Ротирај ја во десно за по еден бит содржината на Асс и во
a7 a0, CY 1B –4Ts
знаменцето CY.
CY a0
ai+1 ai, Имплицитно
RAL
Ротирај ја во лево за по еден бит содржината на Асс преку
a0 CY, CY 1B –4Ts
знаменцето CY.
CY  a7
ai-1 ai, Имплицитно
RAR
Ротирај ја во десно за по еден бит содржината на Асс преку
a7 CY, CY 1B –4Ts
знаменцето CY.
CY a0
Таб. 12 -19. Инструкции на операции за ротирање

12.10.4 Инструкции за гранење и работа со потпрограми


Инструкциите за гранење од типот JUMP (инструкции за скок) му овозможуваат на програмерот да го менува редоследот на
извршување на инструкциите од програмот и заради тоа уште се нарекуваат и инструкции за програмска контрола. Овде
припаѓаат инструкциите за безусловно гранење и условно гранење при што се проверува дали одреден услов е, односно не е
исполнет. Всушност се испитува состојбата на некое од знаменцата дали е сетирано (поставено), или е ресетирано
(избришано). Општиот микропроцесор за работа со потпрограми нуди две инструкции за повикување на потпрограм и за
враќање од потпрограм. Покрај наведените, на програмерот на располагање му стојат уште четири рестартирачки инструкции
со чија примена може да се извршат потпрограми за сервисирање на исто толкав број различни прекини кои се сместени на
хардверски предефинирани мемориски адреси.
676 Програмирање на општ микропроцесор

Инструкции за гранење и работа со потпрограми


Инструкција Симболичен Зна- Начин на
Опис на операцијата (Мнемоник+Операнд) менца Бајт/и
приказ адресирање
Скокни на наведената адреса на мемориската локација –
зададена со 2-от и 3-от бајт на инструкцијата
JMP a16 PC  a16 3B –10Ts Непосредно

Jxx a16 –
Ако F- битот го
Ако е исполнет условот на знаменцето скокни на наведената  JZ, JNZ
задоволува
адреса на мемориската локација зададена со 2-от и 3-от бајт  JC, JNC условот 3B –7/10Ts непосредно
на инструкцијата  JP, JM PC  a16
 JPE, JPO
((SP) – 1)  –
Повикај потпрограм чија прва инструкција се наоѓа во (PCH)
мемориска локација со адреса која се формира од 2-от и 3-от
CALL a16 ((SP) – 2) 
бајт на инструкцијата. (Најпрво содржината на PC привремено
(PCL) 3B –9/18Ts Непосредно
се запамтува во две мемориски локации во стекот со прва
адреса (SP). SP  (SP) – 2
PC  а16
PCL  ((SP)) –
Врати се од потпрограм во главниот програм. Од стекот во PC Регистерско
се враќа запамтената содржина од две мемориски локации од RET PCH  ((SP) + 1) 1B –10Ts
стекот со прва адреса (SP). индиректно
SP  (SP) + 2
((SP) – 1)  –
Рестартирај на пре–дефинирани четири мемориски адреси каде (PCH)
се запамтени потпрограми за сервисирање на прекин. RST n
((SP) – 2)  Регистерско
(Најпрво содржината на PC привремено се запамтува во две  n = 0, 1, 2, 3 (PCL) 1B –12Ts
мемориски локации во стекот со прва адреса (SP). индиректно
SP  (SP) – 2
(PC)  [n8]HEX

Таб. 12 -20. Инструкции за гранење и работа со потпрограми


Програмирање на општ микропроцесор 677

12.10.5 Разновидни инструкции за машинска контрола и управување со прекините


Во групата на разновидни инструкции спаѓаат другите преостанати некласифицирани инструкции меѓу кои се оние за
управување со прекините со кои се овозможува, односно се оневозможува надворешно инициран прекин, потоа за поставување
и читање на маската на прекини со кои се контролира прекидниот систем на ОМП, како и две други инструкции за контрола на
машината од кои со едната компјутерот застанува и престанува да го извршува програмот, додека со втората ништо не работи,
т.е. едноставно само троши време од 4 Т-состојби.

Други разновидни преостанати инструкции за машинска контрола на МКП и управување со прекините


Инструкција Симболичен Зна- Начин на
Опис на операцијата (Мнемоник+Операнд) менца Бајт/и адресирање
приказ
Ништо НЕ – –
Нема операција NOP 1B –4Ts
работи
Застани со – –
Стој HLT 1B –5Ts
работа
Овозможи прекин EI (IE-FF)  1 – 1B –4Ts –

Оневозможи прекин DI (IE-FF)  0 – 1B –4Ts –

Постави прекидна маска IntrMask A – –


SIM SODa7 ако 1B –4Ts
a61
Прочитај прекидна маска A  IntrMask – –
RIM a7SID 1B –4Ts

Таб. 12-21. Други разновидни преостанати инструкции за машинска контрола на ОМП и управување со прекините
678 Програмирање на општ микропроцесор
Програмирање на општ микропроцесор 679
680 Програмирање на општ микропроцесор

Бр. Мнемоник Бр. Мнемоник Бр. Мнемоник Бр. Мнемоник


1. ADD A 41. INR H 81. MOV H, C 121. RLC
2. ADD B 42. INR L 82. MOV H, H 122. RRC
3. ADD C 43. INR M 83. MOV H, L 123. RST 0
4. ADD H 44. INX B 84. MOV H, M 124. RST 1
5. ADD L 45. INX H 85. MOV L, A 125. RST 2
6. ADD M 46. INX SP 86. MOV L, B 126. RST 3
7. ADI Data 47. JC Label 87. MOV L, C 127. SHLD Addr.
8. ANA A 48. JM Label 88. MOV L, H 128. SIM
9. ANA B 49. JMP Label 89. MOV L, L 129. STA Addr.
10. ANA C 50. JNC Label 90. MOV L, M 130. STC
11. ANA H 51. JNZ Label 91. MOV M, A 131. SUB A
12. ANA L 52. JP Label 92. MOV M, B 132. SUB B
13. ANA M 53. JPE Label 93. MOV M, C 133. SUB C
14. ANI Data 54. JPO Label 94. MOV M, H 134. SUB H
15. CALL Label 55. JZ Label 95. MOV M, L 135. SUB L
16. CMA 56. LDA Addr. 96. MVI A, Data 136. SUB M
17. CMC 57. LHLD Addr. 97. MVI B, Data 137. SUI Data
18. CMP A 58. LXI B 98. MVI C, Data 138. XRA A
19. CMP B 59. LXI H 99. MVI H, Data 139. XRA B
20. CMP C 60. LXI SP 100. MVI L, Data 140. XRA C
21. CMP H 61. MOV A, A 101. MVI M, Data 141. XRA H
22. CMP L 62. MOV A, B 102. NOP 142. XRA L
23. CMP M 63. MOV A, C 103. ORA A 143. XRA M
24. CPI Data 64. MOV A, H 104. ORA B 144. XRI Data
25. DCR A 65. MOV A, L 105. ORA C
26. DCR B 66. MOV A, M 106. ORA H
27. DCR C 67. MOV B, A 107. ORA L
28. DCR H 68. MOV B, B 108. ORA M
29. DCR L 69. MOV B, C 109. ORI Data
30. DCR M 70. MOV B, H 110. OUT Port-Addr.
31. DCX B 71. MOV B, L 111. POP B
32. DCX H 72. MOV B, M 112. POP H
33. DCX SP 73. MOV C, A 113. POP PSW
34. DI 74. MOV C, B 114. PUSH B
35. EI 75. MOV C, C 115. PUSH H
36. HLT 76. MOV C, H 116. PUSH PSW
37. IN Port-addr. 77. MOV C, L 117. RAL
38. INR A 78. MOV C, M 118. RAR
39. INR B 79. MOV H, A 119. RET
40. INR C 80. MOV H, B 120. RIM
Програмирање на општ микропроцесор 681

12.11. Карактеристики на програмите напишани во асемблерски јазик


Пред да дадеме примери за поедноставни, но и за малку посложени
програми во асемблерски јазик, само кратко ќе наброиме некои факти што се
однесуваат на програмирањето во асемблерски јазик. Имено, ако добро го разби-
раме и „владееме“ асемблерскиот јазик ни стануваат појасни следните прашања:
 Како се претставени инструкциите во оперативната меморија на
компјутерот,
 Како се претставени операциите на инструкциите и податоците кои ги
обработуваат,
 Како процесорот им пристапува на инструкциите и како ги извршува,
 Како инструкциите им пристапуваат на податоците и како ги обработуваат,
 Како се извршуваат програмите на ниско ниво, кое е најблиско до
хардверот на машината,
 Како процесорот ги адресира влезно/излезните компоненти и им
пристапува на истите,
 Како процесорот ги прифаќа податоците од влезните уреди и како на
излезните компоненти им ги испраќа резултантните податоци.
Што се однесува пак до предностите што ги имаат програмите напишани во
асемблерски јазик во однос на програмите кодирани во некој од вишите
програмски јазици, ќе ги наведеме следните:
 На асемблерските програми им е потребен многу помал мемориски простор
и многу помалку време за извршување во однос на програмите напишани
во некој од вишите програмски јазици;
 За апликации кои се извршуваат во реално време, кога брзината на
извршувањето е критичен фактор, најсоодветно е тие да се кодираат во
асемблерски јазик,
 За пишување на потпрограми, кои опслужуваат прекини и други сервисни
рутини што се дел од системскиот софтвер на компјутерот, најзгодно е да
се користи асемблерски јазик.
12.12. Формулар за пишување на програми во асемблерски јазик
Програмите во асемблерски јазик се пишуваат во соодветен формулар,
инструкција по инструкција, и тоа секоја во посебен ред. Секој програмски ред
или линија на асемблерски код содржи четири колони, со соодветно поле во
секоја од нив и тоа почнувајќи одлево надесно полина на <ознаки>, <мнемоници
(операции)>, <операнди> и <коментари>.
Асемблерски инструкции
Ознаки: ;Коментари
Мнемоник Операнд/и
POCETOK: Prva instrukcija ;Ako programskiot red ima oznaka taa
... ;zadolzitelno treba da zavrsuva so znak :
… Instrukcii ;Ako vo programskiot red ima komentar
… ;pred nego zadolzitelno treba da ima znak ;
KRAJ: Posledna instrukcija ;oznakite i komentarite NE se zadolzitelni
Таб. 12-22. Формулар за пишување програми во асемблерски јазик
682 Програмирање на општ микропроцесор

Во формуларот презентиран во таб. 12-22 средните две колони се


„срцето“ на асемблерскиот програм. Еден програмски ред во овие две колони
опфаќа мнемоник и операнд. Мнемоникот и операндот всушност претставуваат
една асемблерска инструкција, која процесорот може да ја декодира и да ја
изврши. Првата и последната колона се исто така многу важни заради поголема
читливост и разбирливост на напишаниот програм.
Имено, при развивањето на асемблерскиот програм, ознаките и
коментарите најдобро би било да се користат разумно, само во програмските
редови кои се важни заради одредено потсетување и заради полесно разбирање
и читливост на програмот, како оној што е прикажан со таб. 12-22. Вака
напишаниот програм во асемблерски јазик, тестиран, дебагиран и проверен дека
нема грешки, како финална верзија, заедно со неговиот листинг и блок-дијаграм
на алгоритмот може да се документира. Начинот на кој се употребени ознаките и
коментарите во програмот од таб. 12-22 во крајна линија не мора да значи дека
се единствен и најисправен. Некој друг програмер, можеби ќе означи или ќе
коментира некои други програмски редови поразумно, или „по свое“, но секако
нема целосно да ги испушти, ниту пак ќе претера со нив. Ознаките и коментарите
не треба да бидат целосно заборавени во програмскиот код, но не е добро ниту
да бидат наведувани во секој програмски ред како што е тоа направено на
примерот презентиран со таб 12-23. Ваквите асемблерски програми ќе бидат
тешко читливи и неразбирливи: едниот заради тоа што ќе нема никакви ознаки и
коментари, додека вториот пак ќе „тежи“ од нив.

Инструкција
Ознаки: ;Коментар/и
Мнемоник Операнд/и
START: ORA A ; Anuliraj ja sodrzinata na Acc
INICIRAJ: MVI C, 0AH ; Vnesi 10dec vo brojackiot register C
CIKLUS: ADI 24H ; Dodaj 24H na sodrzinata na Acc
; Rezultatot zapisi go vo
ZAPAMTI: STA 6789H
; memoriska loakcija so adresa 6789H
; Rezultatot isprati go i na
IZLEZ: OUT 07H
; izlezna porta so adresa 07H
; Namali ja sodrzinata na
NAMALI: DCR C
; brojacot C za 1 (C = C – 1)
; Testiraj go brojacot C dali e 0.
TEST: JNZ CIKLUS
; Ako e 0 skokni nazad gore da povtoruvas
KRAJ: HLT ; Zastani so izvrsuvanje

Таб. 12-23. Пример на програм напишан во асемблерски јазик


Сега да се задржиме малку на формуларот и во најкуси црти да ја
објасниме улогата на секое негово поле. Како симболи кои се дозволени за
пишување во асемблерскиот код се сите големи и мали букви на англиската
азбука од A/a до Z/z и декадните цифри од 0 до 9 при што не е дозволено како
прв симбол да се користи цифра.
Програмирање на општ микропроцесор 683

Како што ќе видиме во продолжение, во одредени полина од формуларот не


смеат да се употребат одредени букви наречени резервирани симболи.
1. Поле за ознаки. – Ознаките можат да се пишуваат на почетокот на секоја
програмска линија, но не се задолжителни. Тие се проследени со симболот
две-точки („:“) и празно место за да се одделат од следната колона.
Ознаките најчесто се користат заради симболичко именување на позначајни
програмски редови. Тие му овозможуваат на програмерот полесно да го
пишува програмот, полесно да се снаоѓа во асемблерскиот код, полесно да го
чита и полесно да ги наоѓа грешките при дебагирањето. Користењето на
ознаки е препорачливо за маркирање на одделни делови од кодот коишто
вршат одредена функција. Означувањето има голема примена за имплемен-
тирање на инструкциите за гранење и за циклично повторување во рамките
на програмот. Користењето на соодветни ознаки во овие случаи е
дефинитивно добра практика. Резервирани симболи кои НЕ се дозволени за
користење во полето на ознаки се: A, B, C, D, E, H, L, M, SP и PSW. Тие не
смеат да се појават ниту со мали, ниту со големи букви.
Слободно можеме да кажеме дека средните две колони во формуларот се
најважни за асемблерскиот програм. Тие се полето за мнемоници и полето за
операнди, кои заедно во секој програмски ред ја формираат било која
асембелерска инструкција.
2. Поле за мнемоници. – Мнемониците ги претставуваат операциите кои ги
извршува асемблерската инструкција. После секој мнемоник се внесува
празно место. Мнемониците програмерот ги запишува соодветено со блок-
дијаграмот на алгоритмот, кој претходно веќе го осмислил и нацртал.
3. Поле за операнди. – Покрај мнемоникот, зависно од инструкцијата, полето за
операнди може да е празно, да има еден или најмногу два операнди. Секој
операнд од мнемоникот е одделен со празно место, а кога се два, тие се
меѓусебно еден од друг одделени со запирка. Една многу важна работа која
треба да се запамти е дека одредишниот операнд е прв до мнемоникот,
додека вториот операнд до него после запираката е изворниот операнд.
Според ова, кај инструкциите за пренос на податоци трансферот се врши
оддесно налево.

Сл.12-24. Изворен и одредишен операнд кај инструкција со два операнди


4. Операндите ги претставуваат податоците кои ќе бидат обработени од страна
на операциите означени со мнемониците, или адресите на мемориските
локации или В/И портите каде што тие се наоѓаат и треба да им се пристапи.
Со соодветен избор на мнемоникот на инструкцијата и операндот се
добиваат различни адресни начини и формати на инструкциите со кои се
реализира претходно осмислениот алгоритамски чекор. После секој операнд
се запишува празно место.
684 Програмирање на општ микропроцесор

Заради претходното, при пишувањето на асемблерскиот програм, програме-


рот секогаш треба пред себе да има лист за „брзинско“ потсетување. Во него, во
табеларна и компактна, скратена форма треба да ги има сите инструкции од
инструкциското множество, сите начини на адресирање и формати на
инструкции, како и програмерскиот модел на процесорот со неговиот функци-
онален пин дијаграм и краток опис на улогата на пиновите.
Во ова поле, покрај мнемониците може да се наведат и асемблерски
директиви или т.н. псеудо инструкции, како и макро-инструкции за кои ќе
зборуваме пред самиот крај на оваа тематска целина.
5. Поле за коментари. – Коментарите се одредени куси забелешки на
програмерот заради негово потсетување на оние програмски редови кои се
од суштинска важност за точноста на програмот. Коментарите се пишуваат
во последната колона. И тие како ознаките можат да се пишуваат во секоја
програмска линија, на нејзиниот крај, но не се задолжителни. Коментарите
задожително се одделени од инструкциите со празно место по кое следува
точка-запирка („;“).
Правилното користење на ознаките и коментарите во финалните верзии на
веќе тестираните асемблерски програми е скоро исто толку важно колку и
самите асемблерски инструкции.
12.13. Примери на програми во асемблерски јазик
Заради полесно совладување на процесот на програмирање во асемблерски
јазик, пред се потребно е запознавање и разбирање на различните техники на
програмирање, како и искуство што се стекнува со анализа на поедноставни
програми кои претставуваат решенија на полесни задачи. Токму заради ова, во
прилог следуваат поголем број на решени примери со различна тежина и тоа
почнувајќи од наједноиставни програми со линиски тек, потоа програми со
разгранета структура, па програми со циклично повторување на наредби, и на
крај малку посложени програми кои ги комбинираат сите три претходно наведени
структури. За секој пример е наведена задачата што преставува проблем и која
треба да се реши, потоа блок-дијаграм на алгоритамот на нејзиното решение како
и програмот кодиран во асемблерски јазик напишан според него со соодветни
многу кратки коментари во одредени програмски редови и куси објаснување за
секој од нив.
Фокусирањето на поставениот проблем „своја глава“ и на „свој начин“ е
многу корисна работа која исто така го зголемува програмерското искуството на
програмерот и делува на подобрување и разбудување на неговиот „здрав“ разум.
Дадените програмски решениjа сигурно не се единствени. Размислувајќи за
поставениот проблем друг програмер можеби ќе развие друго, „негово“ исправно
решение кое исто така ќе дава точни резулатати. Фокусирањето на зададена
задача и барање на решение со своја глава е и пожелно и посакувано. Имено, да
се размислува на свој начин е многу корисна и важна работа која зголемува
искуството на програмерот бидејќи дополнително го буди, „го размрдува“
неговиот здрав разум и делува на подобрување на неговото логичко расудување.
На крајот е даден принципот според кој се програмираат софтверските
тајмери, а дополнително се дадени и анализирани неколку вакви примери.
Програмирање на општ микропроцесор 685

Tајмерите претставуваат куси асемблерски програми чија главна задача им


е да генерираат различни временски доцнења со кои се овозможува решавање на
проблеми во реално време.

12.13.1 Програми со линиска (секвенцијална) структура


Во наредниот текст ќе бидат дадени неколку примери на програми со
линиска (секвенцијална) структура, и тоа: пример 1 за одредување на прв
комплемент на 8-битен број, пример 2 за собирање на два 8-битни цели
позитивни броеви, без вклучено знаменце за пренос, пример 3 за маскирање на
пониската четворка (нибл) од 8-битен број, пример 4 за поместување налево на 8-
битен број за 1 бит преку знаменцето за пренос CY кое е ресетирано (CY=0),
пример 5 за поместување надесно на 8-битен број за 2 битa преку знаменцето за
пренос CY кое е ресетирано (CY=0), како и пример 6 на програм кој ќе ги
распакува двете BCD цифри од пакуван во распакуван формат.
За секој пример е прикажан блок-дијаграмот на алгоритмот кој се
применува за негово решение, потоа програмот напишан во асемблерски јазик
според тој блок-дијаграм, како и изгледот на делот од меморијата каде што е
сместен програмот во машински јазик според асемблерскиот код. Решението е
проследено со соодветно кратко објаснување и тест податоци.

Пример 1: Одредување на прв комплемент на 8-битен број

Блок дијаграм Објаснување


Задачата е решена со алгоритам и програм во
асемблерски јазик кој има линиска структура.
Оваа програма го одредува 1-от комплемент на
8-битен број, зачуван во мемориската локација
3000H.
 Да претпоставиме дека операндот, зачуван
на мемориската локација 3000H, е 85H.
 Операндот се пренесува во акумулаторот од
мемориската локација 3000H.
 Потоа, се одредува неговиот комплемент со
помош на CMA инструкцијата.
 Резултатот е зачуван на мемориската
локација 3001H.
Следните табели го претставуваат изворниот
програм во асемблерски јазик на неколку
вообичаени, но меѓусебно различни начини. Кај
некои од нив е прикажан и машинскиот код кој
започнува од адреса 2000Н.
686 Програмирање на општ микропроцесор

Машински јазик Асемблерски јазик


Адреса Бајт Ознака Инструкција Коментар
1 2 3
2000 3A 00 30 LDA 3000H ;Vnesi vo reg. par H||L 8-biten
podatok od mem. adr. 3000H.
2003 2F CMA ;Komplementiraj ja vrednosta vo
akumulatorot.
2004 32 01 30 STA 3001H ;Zacuvaj go rezultatot na
memoriskata lokacija 3001H.
2007 76 ;Stop/Kraj.

Машински јазик Асемблерски јазик


Адреса Бајт Ознака Инструкција Коментар
Мнемоник Операнд
2000 3A (КОП) LDA 3000H ;Vnesi vo reg. par H||L 8-biten
podatok od mem. adr. 3000H.
2001 00 ;Ponizok bajt od adresa 3000H.
2002 30 ;Povisok bajt od adresa 3000H.
2003 2F (КОП) CMA ;Komplementiraj ja vrednosta
vo akumulatorot.
2004 32 (КОП) STA 3001H ;Zacuvaj go rezultatot na
memoriskata lokacija 3001H.
2005 01 ;Ponizok bajt od adresa 3001H.
2006 30 ;Povisok bajt od adresa 3001H.
2007 76 (КОП) HLT ;Stop/Kraj.

Асемблерски јазик
Инструкција
Ознака Мнемоник Операнд Коментар
LDA 3000H ;Vnesi vo reg. par H||L 8-biten podatok od mem.
adr. 3000H.
CMA ;Komplementiraj ja vrednosta vo akumulatorot.
STA 3001H ;Zacuvaj go rezultatot na memoriskata lokacija
3001H.
HLT ;Stop/Kraj.

Влезни податоци: Излезни податоци/резултати:


- Пред извршување: - После извршување:
3000H: 85H 3001H: 7AH
Програмирање на општ микропроцесор 687

Пример 2: Собирање на два 8-битни цели позитивни броеви без вклучено


знаменце за пренос. Имено, претпоставено е дека секогаш нивниот збир ќе биде
помал од (28–1)=255dec=FFhex=11111111bin кој е најголем можен број со 8 бита.
Блок дијаграм Објаснување
Оваа програма собира два операнди
сместени на мемориската локација 3000H и
3001H, без вклучено знаменце за пренос.
 Да претпоставиме дека операндот, кој е
зачуван на мемориската локација 3000H
е 04H и на локацијата 3001H е 02H.
 Првично, во H-L парот е сместена
адресата на првата мемориска локација.
 Првиот операнд се пренесува од
мемориската локација 3000H во
акумулаторот, а H-L парот се зголемува
за да покажува на следната мемориска
локација.
 Вториот операнд се пренесува од
мемориската локација 3001H во
регистерот B.
 Двата операнди се собираат и
резултатот се зачувува во акумулаторот.
 H-L парот повторно се зголемува и
резултатот се пренесува од
акумулаторот во мемориската локација
3002H.

Влезни податоци:
- Пред извршување:
3000H: 04H
3001H: 02H
Излезни податоци/резултати:
- После извршување:
3002H: 06H
Програм во асемблерски јазик:
Ознака Мнемоник Операнд Коментар
LXI H, 3000H ;Vnesi vo reg. par H||L so adr. 3000H.
MOV A, M ;Prenesi go 1-ot broj od memorijata vo reg. A
INX H ;Zgolemi ja vrednosta na parot H||L.
MOV B, M ;Prenesi go 2-ot broj od memorijata vo reg. B
ADD B ;Soberi go A so B i zbirot vo A.
INX H ;Zgolemi ja vrednosta na H||L parot.
MOV M, A ;Prenesi go rezultatot od reg. A vo memorija.
HLT ;Kraj
688 Програмирање на општ микропроцесор

Пример 3: Маскирање на пониската четворка (нибл) од 8-битен број.

Блок дијаграм Објаснување


Оваа програма ја маскира пониската четворка
(нибл) од 8-битен број зачуван на мемориската
локација 3000H.
 Да претпоставиме дека податокот 45H е
зачуван на мемориската локација 3000H.
 Операндот се преместува во акумулатор од
мемориската локација 3000H.
 Тогаш, се извршува логичката операција И
(логичко множење) на F0H со
акумулаторот. Ова резултира со маскирање
на пониската четворка битови (понискиот
нибл).
 Резултатот е зачуван на мемориската
локација 3001H.
Влезни податоци:
- Пред извршување:
3000H: 45H
Излезни податоци/резултати:
- После извршување:
3001H: 40H
.

Програм во асемблерски јазик:


Адреса Мнемоник Операнд Коментар
LDA 3000H ;Vnesi vo reg. par H||L so podatoci od 3000H.
ANI FOH ;operacija I (log. Mnozenje - AND) na reg. A
neposredno so F0H.
STA 3001H Zapamti go rezultatot vo mem. lokacija so adresa
3001H
HLT ;Kraj.

Пример 4: Поместување налево на 8-битен број за еден бит преку знаменцето за


пренос CY кое е ресетирано (CY=0).

Пред да ја решиме задачата да се потсетиме за тоа како ОМП ги извршува


четирите асемблерски инструкции за ротирање на содржината на акумулаторот:
RAL, RAR, RLC и RRC. Имајќи ја предвид сл. 12-25, јасно е дека треба да ја
примениме инструкцијата RAL.
Програмирање на општ микропроцесор 689

Сл. 12-25. Начин на извршување на инструкциите RAL, RAR, RLC и RRC

Блок дијаграм Објаснување

Оваа програма ја извршува операцијата


поместување налево на 8-битен број за 1 бит,
зачуван во мемориската локација 3000H.
 Да претпоставиме дека операндот
зачуван на мемориската локација
3000H е 05H.
 Операндот се преместува во
акумулатор од мемориската локација
3000H.
 Потоа се врши операцијата
поместувањето налево со помош на
RAL инструкцијата.
 Резултатот е зачуван на мемориската
локација 3001H.
.

Влезни податоци:
- Пред извршување:
3000H: 05H=00000101, CY=0
Излезни податоци/резултати:

- После извршување:

Ротирање налево на 05H преку CY 3001H: 0AH=00001010, CY=0


.
690 Програмирање на општ микропроцесор

Програм во асемблерски јазик:

Ознака Мнемоник Операнд Коментар


LDA 3000H ;Vnesi vo reg. par H||L so podatoci od 3000H.
RAL ;Pomesti go nalevo akumulatorot preku CY.
STA 3001H ;Zacuvaj go rezultatot vo mem. lokacija so
adresa 3001H.
HLT ;Kraj.

Пример 5: Поместување надесно на 8-битен број за два битa преку знаменцето


за пренос CY кое е ресетирано (CY=0).
Блок дијаграм Објаснување

Оваа програма ја извршува операцијата


поместување надесно на 8-битен број за 2
бита, зачуван во мемориската локација
3000H.
 Да претпоставиме дека операндот
зачуван на мемориската локација
3000H е 05H.
 Операндот се преместува со
операцијата во акумулатор од
мемориската локација 3000H.
 Потоа се врши операцијата
поместувањето надесно со помош на
операцијата RAR, која се извршува 2
пати.
 Резултатот е зачуван на мемориската
локација 3001H.

Влезни податоци:
- Пред извршување:
3000H: 05H=00000101, CY=0
Излезни податоци/резултати:
- После извршување:
После прво: 3001H: 02H=00000010, CY=1
Ротирање надесно на 05H преку CY После второ: 3001H: 81H=10000001, CY=0
.
Програмирање на општ микропроцесор 691

Програм во асемблерски јазик:

Ознака Мнемоник Операнд Коментар


LDA 3000H ;Vnesi vo reg. par H||L so podatoci od 3000H.
RAR ;Pomesti go nadesno akumulatorot preky CY.
RAR ;Pomesti go nadesno akumulatorot preky CY.
STA 3001H ;Zapamti go rezultatot vo mem. lokacija so
adresa 3001H.
HLT ;Kraj.

Пример 6: Во мемориска локација со адреса 2200h, како нејзина содржина од


еден бајт, сместени се две BCD (поточно NBCD, 8421) цифри во пакован формат:
високиот нибл (високата четворка) е едната цифра, додека ниската четворак
(нискиот нибл) е втората цифра. Треба да се напише програм во асемблерски
јазик кој ќе ги распакува двете BCD цифри од пакован во распакован формат. BCD
цифрите ќе бидат сместени во две последователни мемориски локации, секоја во
посебен бајт еден под друг. И кај двата бајти високите нибли се нули при што
двете цифри се запамтени во ниските нибли: на пониската адреса е меморирана
повисоката BCD цифра, а потоа на повисоката адреса се наоѓа повиската цифра.

Блок дијаграм Објаснување

Од понуденото решение се гледа дека ја


применуваме инструкцијата RRC заради тоа што
при ротирањето на битовите, кога втората
цифра од високиот нибл ја спуштаме во
нискиот, нема потреба да го ротираме и
знаменцето за пренос CY.
Задачата може да се реши и со примена
на инструкцијата RAR, но претходно ќе мора да
го ресетираме знаменцето за пренос CY. Во
спротивно, ако неговата вредност е 1, сигурно
ќе добиеме погрешен резултат.
На следната слика означена како сл.12-25
се прикажани и двата формати според кои се
меморираат BCD цифрите: а) пакувани во еден
бајт две цифри како висок и низок нибл, и б)
распакувани во два бајти посебно во ниските
нибли, чии високи нибли се нули.
.
692 Програмирање на општ микропроцесор

Пакован BCD формат Распакован BCD формат


BCD-2 BCD-1 BCD-1 0 0 0 0 B3 B2 B1 B0
B3 B2 B1 B0 B3 B2 B1 B0 BCD-2 0 0 0 0 B3 B2 B1 B0
Сл.12-26. Два формати за меморирање на BCD цифрите а) пакуван б) распакуван
Програм во асемблерски јазик:

Ознака Мнемоник Операнд Коментар


LDA 2200 ; go citame vo Acc neraspakuvaniot
;BCD broj kako eden bajt = dva nibli
ANI F0 ; go maskirame niskiot nibl so nuli
; ja anulirame prvata BCD cifra
RRC ; visokiot nibl = vtorata cifra
RRC ; ja prenesuvame kako nizok nibl
RRC ; go anulirame visokiot nibl
RRC ; so cetiri nuli
STA 2201 ; go zamaptuvame Acc =
raspakuvanata vtora BCD cifra
LDA 2200 ; pak go vnesuvame vo Acc
; raspakuvaniot BCD broj
ANI 0F ;go maskirame visokot nibl
; ja anulirame vtorata BCD cifra
STA 2202 ; go zamaptuvame Acc =
; raspakuvanata prva BCD cifra
HLT ; kraj na programot

Пред извршување После извршување


Пакован BCD формат Распакован BCD формат
BCD-2 BCD-1 BCD-1 0 0 0 0 1 0 0 1
0 1 1 0 1 0 0 1 BCD-2 0 0 0 0 0 1 1 0

12.13.2. Програми со разгранета структура


Во текстот што следува ќе бидат дадени 2 примери на програми со
разгранета структура, и тоа: пример 7 за собирање на два 8-битни броеви, со
вклучено знаменце за пренос и пример 8 за наоѓање на поголемиот од два 8-
битни броеви.

Пример 7: Собирање на два 8-битни броеви, со вклучено знаменце за пренос CY.


(структура со гранење).
Програмирање на општ микропроцесор 693

Блок дијаграм Објаснување


Оваа програма собира два операнди
сместени на мемориската локација 3000H и
3001H, со вклучено знаменце за пренос (ако
има т.е. ако постои).
 Да претпоставиме дека операндот, кој
е зачуван на мемориската локација
3000H е FAH, a на локацијата 3001H е
28H.
 Првично, во H-L парот е сместена
адресата на првата мемориска
локација.
 Првиот операнд се пренесува од
мемориската локација 3000H во
акумулаторот, а H-L парот се зголемува
за да покажува на следната мемориска
локација.
 Вториот операнд се пренесува од
мемориската локација 3001H во
регистерот B.
 Регистерот C се иницијализира на 00H.
Тој го меморира преносот (ако постои).
 Двата операнди меморирани во
регистерот А и B се собираат и
резултатот се зачувува во
акумулаторот.
 Потоа, знаменцето за пренос се
проверува дали има пренос. Ако има
пренос, регистерот C се зголемува.
 H-L парот се зголемува и резултатот се
преместува од акумулаторот во
мемориската локација 3002H.
 H-L парот повторно се зголемува и
преносот, (независно дали е 0 или 1)
се пренесува од регистерот C во
мемориската локација 3003H.

Влезни податоци:
- Пред извршување:
3000H: FAH
3001H: 28H

Излезни податоци/резултати:
- После извршување:
3002H: 22H
3003H: 01H
694 Програмирање на општ микропроцесор

Програм во асемблерски јазик:


Ознака Мнемоник Операнд Коментар
LXI H, 3000H ;Vnesi vo reg. par H||L so adr. 3000H.
MOV A, M ;Prenesi go 1-ot broj od memorijata vo reg. A
INX H ;Zgolemi ja vrednosta na parot H||L.
MOV B, M ;Premesti go 2-ot broj od memorijata vo reg. B
MVI C, 00H ;Inicijaliziraj go reg. C so 00H.
ADD B ;Soberi go B so A. (Dodaj go B na A)
JNC ZGOL ;Skokni na adresa ZGOL ako nema prenos.
INR C ;Zgolemi ja vrednosta na reg. C.
ZGOL: INX H ;Zgolemi ja vrednosta na parot H||L.
MOV M, A ;Prenesi go rezultatot od reg. A vo memorijata.
INX H ;Zgolemi ja vrednosta na parot H||L.
MOV M, C ;Zapamti go prenosot od reg. C vo memorija.
HLT ;Kraj.

Пример 8: Програма за наоѓање на поголемиот од два 8-битни броеви.

Програм во асемблерски јазик:

Ознака Мнемоник Операнд Коментар


LXI H, 3000H ;Vnesi vo reg. par H||L so adr. 3000H.
MOV A, M ;Prenesi go 1-ot broj od memorijata vo reg. A
INX H ;Zgolemi ja vrednosta na parot H||L.
MOV B, M ;Premesti go 2-ot broj od memorijata vo reg. B
CMP B ;Sporedi go B so A
JNC IZLEZ ;Skokni na adresa IZLEZ ako nema prenos.
MOV A, B ;Prenesi go pogolemiot od reg. B vo reg. A.
IZLEZ: INX H ;Zgolemi ja vrednosta na parot H||L.
MOV M, A ;Prenesi go rezultatot od reg. A vo memorijata.
HLT ;Kraj.
Програмирање на општ микропроцесор 695

Блок дијаграм Објаснување

Оваа програма споредува два броеви за да го


најде поголемиот од нив.
 По споредбата, поголемиот од двата мора
да биде во акумулаторот, за да од таму се
премести во меморијата.
 Ако не е во акумулаторот, тогаш прво тој се
сместува во акумулаторот, а потоа од таму,
тој се запамтува во меморијата.
 Да претпоставиме дека операндот, зачуван
на мемориската локација 3000H е 25H, а тој
што е зачуван на локацијата 3001H е 15H.
 Првично, во H-L парот е сместена адресата
на првата мемориска локација.
 Првиот операнд се преместува во
акумулаторот од мемориската локација
3000H и H-L парот е зголемен за да
покажува на следната мемориска локација.
 Вториот операнд се поместува во регистер
B од мемориската локација 3001H.
 Двата операнди се споредуваат.
 По споредбата, ако A>B, тогаш CF=0, и ако
A<B, тогаш CF = 1.
 Знаменцето за пренос се проверува дали
има пренос. Ако има, тоа значи дека бројот
во рег. B е поголем од А и тој се преместува
во акумулаторот.
 На крај, содржината на H-L парот се
зголемува за еден и поголемиот број се
пренесува од акумулаторот во мемориската
локација со адреса 3002H.
Влезни податоци:
- Пред извршување:
3000H: 25H
3001H: 15H
Излезни податоци/резултати:
- После извршување:
3002H: 25H
696 Програмирање на општ микропроцесор

12.13.3. Програми со циклична структура


Во понатамошниот текст ќе бидат дадени неколку примери на програми со
повторување (циклична структура) и тоа: пример 9 за множење на два 8-битни
броја без пренос, пример 10 за одредување сума на низа од N 8-битни броеви и
Пример 11 за генерирање на првите седум броеви од низата на Фибоначи.

Пример 9: Множење на два 8-битни броја без пренос (структура со повторување)


Оваа програма множи два броеви сместени на мемориската локација 3000H
и 3001H применувајќи последователен метод на собирање. Со последователниот
метод на собирање, вториот број се зема како бројач, за да после тоа првиот број
се собира самиот со себе сѐ додека бројачот не се намали на нула.
Блок дијаграм Објаснување
Да претпоставиме дека операндот, кој е
зачуван на мемориската локација 3000H е
02H, a на локацијата 3001H е 05H. Со примена
на последователниот метод на собирање, се
добива 02H + 02H + 02H + 02H + 02H = 0AH.
 Првично, во H-L парот е сместена
адресата на првата мемориска локација.
 Првиот операнд се пренесува во
регистерот B од мемориската локација
3000H, а H-L парот се зголемува за да
покажува на следната мемориска
локација.
 Вториот операнд се пренесува во
регистерот C од мемориската локација
3001H за да се земе како бројач.
 Акумулаторот е иницијализиран на 00H.
 Двата операнди се собираат и резултатот
се зачувува во акумулаторот.
 H-L парот повторно се зголемува и
резултатот се преместува од акумулаторот
во мемориската локација 3002H.
Регистарот B се собира со акумулаторот и
резултатот е зачуван во акумулаторот.
• Регистерот C (бројачот) е намален за 1.
• Потоа, бројачот се проверува за нула.
Доколку сеуште не станал нула, тогаш
регистерот се собира со акумулаторот, а
бројачот повторно се проверува за нула.
Ако бројачот стане нула, H-L парот се
зголемува и резултатот се пренесува од
акумулаторот до мемориската локација 3002H.
Програмирање на општ микропроцесор 697

Програм во асемблерски јазик:

Oзнака Мнемоник Операнд Коментар


LXI H, 3000H ;Vnesi vo reg. par H||L so adr. 3000H.
MOV B, M ;Prenesi go 1-ot broj od memorijata vo reg. B
INX H ;Zgolemi ja vrednosta na parot H||L.
MOV C, M ;Premesti go 2-ot broj od memorijata vo reg. C
MVI A, 00H ;Inicijaliziraj go akumulatorot so 00H.
ZBIR: ADD B ;Soberi go B so A. (Dodaj go B na A)
DCR C ; Namali go registerot C (brojacot).
JNZ ZBIR ; Skokni nazad na adresa ZBIR ako C≠0
INX H ;Zgolemi ja vrednosta na parot H||L.
MOV M, A ;Prenesi go rezultatot od reg. A vo memorijata.
INX H ;Zgolemi ja vrednosta na parot H||L.
MOV A ;Prenesi go rezultatot od Acc. vo memorijata.
HLT ;Kraj.

Влезни податоци: Излезни податоци/резултати:


- Пред извршување: - После извршување:
3000H: 02H 3002H: 0AH
3001H: 05H

Пример 10: Одредување сума на низа од N 8-битни броеви


Програм во асемблерски јазик:

Ознака Мнем. Операнд Коментар


LXI H, 3000H ;Vnesi vo reg. par H||L so adr. 3000H.
MOV C, M ;Prenesi go vkupniot broj na sobiroci od mem. vo C
MVI A, 00H ;Inicijaliziraj go akumulatorot so 00H.
ZGOL: INX H ;Zgolemi ja vrednosta na parot H||L.
MOV B, M ;Prenesi go sledniot broj od memorijata vo reg. B.
ADD B ;Soberi go B so A. (Dodaj go B na A)
DCR C ;Namali go brojacot.
JNZ ZGOL ;Skokni nazad na adresa ZGOL ako brojacot C≠0
INX H ;Zgolemi ja vrednosta na parot H||L.
MOV M, A ;Prenesi go rezultatot od reg. A vo memorijata.
HLT ;Kraj.

Блок дијаграм Објаснување


698 Програмирање на општ микропроцесор

Оваа програма пресметува збир на броеви


во низа. За да се најде збирот на броевите,
 Прво бројачот мора да се иницијализира
со големината на низата и акумулаторот
се иницијализира на нула.
 Потоа, првиот број се преместува во
регистерот B и се собира со акумулатор.
 По собирањето, бројачот се намалува и се
проверува дали ја достигнал нулата. Ако
одговорот е да, циклусот завршува, а во
спротивност (ако не ја достигнал нулата),
следниот број се прнесува во рег. B и се
собира.
 Да претпоставиме дека мемориската
локација 3000H го меморира (зачувува)
бројачот. Следната мемориска локација ја
зачувува низата.
 Првично, во H-L парот е сместена
адресата на бројачот и се пренесува во
регистерот C.
 Акумулаторот е иницијализиран на 00H.
 Тогаш, H-L пар се зголемува за да
насочува на првиот број во низата и се
пренесува во рег. B.
 Регистарот B се собира со акумулаторот и
резултатот е зачуван во акумулаторот.
 Потоа, бројачот се намалува и се
проверува дали станал нула.
 Ако не станал нула, тоа значи дека сеуште
има броеви во низата. Во овој случај,
контролата скока назад за да го зголеми
H-L парот и го поместува следниот број во
регистерот B.
 Овој процес продолжува сѐ додека
бројачот не стане нула, т.е. сѐ додека сите
броеви во низата не се собрани.
 Најпосле, H-L парот се зголемува и
резултатот се пренесува од акумулаторот
во меморијата.

Влезни податоци: Излезни податоци/резултати:


- Пред извршување: - После извршување:
3000H: 04H 3005H: 10H
3001H: 06H
3002H: 02H
3003H: 03H
3004H: 05H
Програмирање на општ микропроцесор 699

Пример 11: Напиши програма за генерирање


на првите десет броеви од низата на Фибоначи
(Fibonacci) кои следуваат после почетните 0 и 1.
Забелешка: Низата на Фибоначи броевите
започнува со 0, после што следува 1, а
понатаму секој нов број се добива со собирање
на тековниот врој со својот претходник според
општата равенка Fn = Fn-1 + Fn-2.
Така на пр. првите десет броеви од низата на Фибоначи би биле следните броеви:
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, ... итн.

Блок дијаграм Објаснување


.

Ознака Мнем. Операнд Коментар


MVI C, 0AH ;inicializiraj
brojac na 10d
MVI B, 00 ;inicijaliziraj
reg. B kako
predhodеn br.
MVI H, 01 ;inicijaliziraj
reg. H kako
momental. br.
NAZAD: MOV A, B ;prenesi
prethoden
broj vo Acc
ADD H ;sobiranje na
dvata broevi
MOV B, C ;momentalniot
broj stanuva
prethoden br.
MOV H, A ; zacuvaj go
rezultatot
kako nov
moment. br.
DCR C ;namali go
brojacot C-1
JNZ NAZAD ;ako brojacot
ne e 0 vrati se
na NAZAD
HLT ;kraj na
programot
.
700 Програмирање на општ микропроцесор

12.13.4. Програми со сложена структура

Во продолжение ќе бидат дадени неколку примери на програми со сложена


структура, со повторување и гранење и тоа: пример 12 за наоѓање на најмалиот
број од дадена низа броеви, пример 13 за наоѓање на бројот на негативни броеви
на дадена низа, како и пример 14 која е програма за откривање на броење на
бројот на единици во зададен податок.
Пример 12: Програма за наоѓање на најмалиот број од дадена низа броеви

Блок дијаграм
Програмирање на општ микропроцесор 701

Објаснување:
Со оваа програма се наоѓа најмалиот број во една низа. Првично, бројачот
е иницијализиран со големината на низата. Потоа, два броја се внесуваат во
регистрите A и B и се споредуваат. По споредбата, помалиот од двата мора да
биде во акумулаторот. Ако веќе е во акумулаторот, тогаш е во ред, инаку, тој се
пренесува во акумулаторот. Бројачот се намалува и се проверува дали достигнал
нула. Ако одговорот е да, циклусот завршува, а ако не, следниот број се
преместува во регистерот и се споредува.
Програм во асемблерски јазик:
Адреса Мнемоник Операнд Коментар
LXI H, 3000H ;Vnesi vo reg. par H||L so adr. 3000H.
MOV B, M ;Prenesi go 1-ot broj od memorijata vo reg. B
INX H ; Zgolemi ja vrednosta na parot H||L.
MOV A, M ;Prenesi go prviot broj od memorijata vo Acc.
DCR C ;Namali go brojacot.
ZGOL: INX H ; Zgolemi ja vrednosta na parot H||L.
MOV B, M ;Prenesi sleden broj od memorijata vo reg. B.
CMP B ;Sporedi go B so A.
JC NAMAL ; Skokni na adresa NAMAL ako nema prenos.
MOV A, B ; Prenesi go pomaliot od reg. B vo reg.A.
NAMAL: DCR C ;Namali go brojacot.
JNZ ZGOL ;Skokni na adresa ZGOL ako brojacot ne e 0.
INX H ; Zgolemi ja vrednosta na parot H||L.
MOV M, A ; Prenesi rezultat od Acc. vo memorijata.
HLT ;Kraj.

 Да претпоставиме дека во мемориската локација 3000H е мемориран


вкупниот број на броеви. На следните мемориски локации се чува низата.
 Првично, во H-L парот е сместена адресата на мем. лок. каде се наоѓа
вкупниот број на броеви и тој се пренесува во бројачкиот рег. C.
 H-L парот се зголемува за да покажува на првиот број во низата. Првиот
број се пренесува од меморијата во акумулатор, а бројачот се намалува.
 Парот H-L повторно се зголемува и вториот број се пренесува во рег. B.
 Двата броја се споредуваат. По споредбата, ако A> B, тогаш знаменцето за
пренос CF = 0, а ако A <B, тогаш CF = 1. Знаменцето за пренос се
проверува дали има пренос. Ако нема пренос, тоа значи дека B е помал од
А и тој се пренесува во акумулаторот. Инаку Асс не се менува.
 Бројачот се намалува и се проверува дали достигнал нула.
 Ако не станал нула, тоа значи дека има уште броеви во низата. Во овој
случај, контролата скока назад за да го зголеми H-L парот и го пренесува
следниот број во регистерот B.
702 Програмирање на општ микропроцесор

 Овој процес продолжува се додека бројачот не стане нула, односно се


додека сите броеви во низата не се споредени.
 На крај, H-L парот се зголемува и најмалиот број кој се наоѓа во Асс се
пренесува од акумулаторот во меморијата.

Влезни податоци: Излезни податоци/резултати:


- Пред извршување: - После извршување:
3000H: 03H 3004H: 02H
3001H: A1H
3002H: 02H
3003H: 5DH

Пример 13: Да се најде колку негативни броеви (податоци, елементи) има


во дадена низа чија должина (вкупен број на броеви во низата) е сместена на
мемориска локација 2200H, а низата започнува од адреса локација 2201H. Бројот
негативни елементи треба да се зачува на мемориска локација со адреса 2300H.

Блок дијаграм Објаснување


.

Ознака Мнем. Операнд Коментар


LDA 2200 ;procitaj dolzina
niza
MOV C, A ;inicijaliziraj
brojac
MVI B, 00H ;negativen
brojac = 0
LXI H, 2201H ;inicijaliziraj
pokazuvac
NAZAD: MOV A, M ;zemaj broj

ANI 80 ;proveri MSB


JZ SKOK ;ako MSB = 1
INR B ;zgolemi
negativen brojac
SKOK: INX H ;zgolemi
pokazuvac
DCR C ;namali brojac
JNZ NAZAD ;ako brojacot C
ne e 0 zemi broj
MOV A, B ;prenesi neg.
brojac vo Acc
STA 2300H ;zacuvaj rezultat
HLT ;kraj program
Програмирање на општ микропроцесор 703

Влезни податоци: Излезни податоци/резултати:


- Пред извршување: - После извршување:
2200H: 04H 2300H: 03H
2201H: 95H (10010101В)
2202H: 14H (00010100В)
2203H: А7H (10100111В)
2204H: 82H (10000010В)

Пример 14: Креирај програма која ќе го брои бројот на единици („1“) во


податокот сместен во H регистерот и нивниот број привремено смести го во
регистерот В, а потоа зачувај го во мемориска локација со адреса 1000Н.

Блок дијаграм Објаснување


.

Ознака Мнем. Операнд Коментари


MVI B, 00Н ;inicijaliziraj
brojac na 1
MVI C, 08Н ;inicijaliziraj
brojac bitovi
MOV A, H ;prenesi po-
datok vo Acc
NAZAD: RAR ;rotiraj
desno LSb
vo CY
JNZ SKOKNI ;ako ne e 0
odi SKOKNI
INR B ;ako e 0
zgolemi
brojac B na 1
SKOKNI: DCR C ;namali
brojac na
bitovi C
JNZ NAZAD ;ako ne e 0
zemi nov bit
MOV A, B ;prenesi br.
B na 1 vo A
STA 1000Н ;zapamti
brojac mem.
HLT ;STOJ
.
704 Програмирање на општ микропроцесор

Задачата се решава со проверување на


сите 8 битови на дадениот податок (бајт) кој е
сместен во регистерот Н. Се користи инструк-
ијата RAR со која најнискиот бит LSb се ротира
во знаменцето за пренос CY. После секоја ро-
тација се проверува CY-то. Ако CY е 1 се брои,
но ако не е се поместува нов бит во десно и се
проверува. Постапката завршува кога бројачот
на битови С стигне од 8 на нула.

Влезни податоци: Излезни податоци/резултати:


- Пред извршување: - После извршување:
H: D5H (11010101B) 2300H: 05H

12.14. Софтверски тајмери


Временскиот фактор е исклучително важен во апликациите кои треба да
решаваат проблеми во реално време. Такви програми се на пр. контролата на
семафорите, дигиталниот часовник, контролата и управувањето со процеси во
индустријата, сериската комуникација бит-по-бит и многу други. Кај сите овие и
слични програмски решенија кои се реализираат во реално време, потребно е да
има временско доцнење помеѓу преминот од една во друга состојба или од еден
до друг настан. Овие временски каснења се со различен ред на големина: од
микро секунди преку мили секунди, па се до траење од неколку секунди и
најчесто се меморираат како потпрограми кои по потреба се повикувани од
страна на некој главен програм. Како што ќе видиме понатаму, временските
интервали можат релативно едноставно да се програмираат и да бидат генери-
рани со циклично повторување на една иста група инструкции. Програмските
решенија со повеќекратно извршување на исти инструкции заради генерирање на
временски каснења се нарекуваат софтверските тајмери.
На кратко, само да се потсетиме дека микропроцесорскиот систем се состои
од две основни компоненти, хардвер и софтвер. Софтверските компоненти го
контролираат и управуваат хардверот за да го добијат посакуваниот резултат со
помош на инструкциите. За да ги изврши тие инструкции, на микропроцесорот за
секоја инструкција му треба одредено фиксно време за нејзино извршување, и тоа
точно колку што изнесува времетраењето на нејзиниот инструкциски циклус.
Инструкцискиот циклус се извршува во повеќе машински циклуси (Мс), а секој
машински циклус трае точно дефиниран број на Т–состојби (Ts). Т–состојбата е
временскиот интервал, кој е еднаков со работниот такт на процесорот Т0 (Тs=Т0),
кој има фиксно време на траење од 1us (Т0=Тs=1us), бидејќи е воден од прецизен
такт генератор на правоаголни импулси и паузи со работна фреквенција f0=1MHz.
Имајќи го ова предвид, на програмерот му е овозможено со применување на
различни условни инструкции за гранење и со менување на бројот на
повторувања на друга група на инструкции во рамките на програмот практично да
воведеме каснење за одредено време помеѓу два настани. Во продолжение ќе
разгледаме различни техники за имплементирање на вакви софтверски
генерирани доцнења.
Програмирање на општ микропроцесор 705

Најчесто применувана техника за генерирање на временско каснење е со


внесување на „празни“ циклуси. Имено, бидејќи се познати времињата на
извршување на секоја инструкција, идејата е како попрограм да се имплементира
циклус на повторување со примена на една или две променливи како софтверски
бројачи. Со конкретно одредување на почетната и крајната вредност на бројачот,
или бројачите, се определува вкупниот број на повторувања и се добива
посакуваното временско каснење. Ова е заради тоа што во секој поединечен
циклус процесорот извршува одредени инструкции, а за секоја од нив губи точно
познат временски интервал.
Како корисна инструкција за реализација на временски интервали на
чекање е инструкцијата NOP. Со нејзиното извршување процесорот мирува
одредено време кога ништо не работи и за неа троши 4Т-состојби. Така, ако во
програмот внесеме една NOP инструкцијата помеѓу други две асемблерски
инструкции, ние со тоа земеме 4Т-состојби од времето на процесорот и практично
внесуваме каснење од 4Т-состојби.
12.14.1. Тајмер со примена на бројачки циклус со 8–битен бројач
За да се разбере која е и каква е улогата на 8-битниот или едно-бајтниот
бројач, во поголеми детали ќе биде разгледана следната куса програма напишана
само со три асемблерски инструкции.

Ознака Мнемоник Операнд Коментар Број на Т-состојби


MVI C, n ;Vo brojackiot register 7 Ts
smesti cel broj
VRTI: DCR C ;Namali go brojacot 4 Ts
JNZ VRTI ;Ako brojacot NE e 0,VRTI 10/7 Ts

Таб. 12-24. Асемблерски програм со примена на 8–битен бројач

Во оваа програма инструкциите DCR C и


JNZ VRTI се извршуваат повеќе пати, што
зависи од вредноста на бројачот n кој е
зачуван како 8-битен цел број кој
претставува содржина на регистерот C.
Почетната вредност на овој операнд се
внесува со првата инструкција од
програмот MVI C, n при што неговата најго-
лема вредност може да биде nmax=(28-1)=
255D=FFH=11111111B. Времето потребно
за извршување на програмата се смета со
помош на Т-состојбите (Ts). Колоната, која
е десно од коментарите, го покажува бројот
на Т-состојби во инструкцискиот циклус на
секоја инструкција. При ова, JNZ се
извршува за 10Ts ако условот НЕ е
исполнет, односно за 7Ts ако е исполнет.
Сл.12-27. Блок дијаграм за тајмер со примена на 8–битен бројач
706 Програмирање на општ микропроцесор

Првата инструкција MVI C, n процесорот ја извршува само еднаш на


почетокот и за неа се потребни 7 Т-состојби. За бројот на Т-состојби за
инструкцијата JNZ се одредени два временски интервали. Оваа инструкција се
извршува за поголемиот број на 10Т-состојби кога условот е задоволен, а
помалиот број на 7Т-состојби се применува еднаш кога условот не е задоволен.
Постојат (n – 1) вртења низ циклусот кога условот е задоволен и контролата се
пренесува назад на првата инструкција во циклусот DCR C, n која содржината на
бројачкиот регистер ја намалува за еден и се извршува за 4Т-состојби. Бројот на
Т-состојби кои се јавуваат додека поставениот услов C да не е 0 важи, ќе биде
одреден според равенката (n – 1)x(4 + 10)Ts. За време на последното помину-
вање низ циклусот, условот не е задоволен и циклусот завршува. Бројот на Т-
состојби кои се појавуваат при ова последно поминување е (4+7)Тs. Следствено,
вкупниот број на Т–состојби Tsn за општа вредност на бројачот n, кои се потребни
за извршување на дадената програма ќе се пресмета на следниот начин:
Тѕn = 7Ts + [(n – 1)x(4 + 10)]Ts + (4+7)Ts = {7+ (n – 1)x14 + 11}Ts

Тѕn = [18+14x(n – 1)]Ts

Вкупно Т-состојби MVI C ciklusi Posleden ciklus


Tsn = 7Ts + (n – 1)x(4 + 10)Ts + (4 +7)Ts
Таб. 12-25. Пресметка на вкупното времетраење Тsn со број на Т–состојби
Пример 1: Да се пресмета вкупниот број на Т–состојби Tsn, потребни за
извршување на дадена програма, ако вредноста на бројачот е 5 (n=5). Како
работна фреквенција на ОМП да се земе дека таа изнесува 1 MHz.
Најнапред, за да се определи времетраењето на една Т–состојба ќе се
потсетиме дека перидота на такт-сигналот и времетраењето на една Т-состојба се
еквивалентни Ts=Т0. Од тука можеме да ја изведеме равенката Ts=Т0=1/f0, од
каде се добива дека една T-состојба Тѕ = 1/f0=1/1MHz = 1μs. Сега може да се
пресмета вкупното време, потребно за да се изврши дадената програма:
Tsn=Тs5=[7+(5–1)x14+11]Ts=[18+4x14]Ts=(18+56)Ts=74Тѕ (74 Т-состојби)
Бидејќи времето потребно за една Т–состојба е 1μsec (Тѕ=1us), вкупниот
број на Т–состојби за n=5 ќе биде Ts5 = 74 µs =74 μsec.
Имајќи во вид дека се користи 8-битен бројач најголемиот број на вртења
на циклусот може да биде n=28 – 1=255. Со оваа вредност може да се определи
максималното можно каснење Тsmax, кое ќе изнесува:
Тsmax8 = 7Тs + [(255 – 1) x 14]Ts + 11Ts = 3574Ts=3574μsec.
Според претходно наведеното, може да се забележи дека примената на
софтверско каснење со примена на 8-битен бројач ќе биде соодветно само за
мали доцнења со ред на големина од неколку микросекунди до најмногу 3,5
милисекунди, но не и за поголеми.
Дополнително доцнење може да се реализира со внесување на инструкци-
јата NOP веднаш под, или над инструкцијата DCR C. Ваквата програмска линија од
само еден ред код прилично ќе го зголеми временскиот интервал бидејќи сега ќе
дојде до промена во претходната равенка за пресметка на вкупното време.
Програмирање на општ микропроцесор 707

Равенката со воведена NOP инструкција ќе го добие следниот облик:


Тѕn = 7Ts + [(n–1)x(4 + 4+ 10)]Ts + (4+4+7)Ts = {7+ (n–1)x18 + 15}Ts
Тѕn = [23+18x(n–1)]Ts
По потреба може да се применат уште една, две, евентуално и повеќе NOP
инструкции веднаш под првата со што ќе се добие ново дополнително време.

Ознака Мнемоник Операнд Коментар Број на Т-состојби

MVI C, n 7 T - sostojbi

DCR C 4 T - sostojbi

NAZAD: NOP ;Vnesi uste 4Ts 4 T - sostojbi

JNZ NAZAD 10/7 T - sostojbi

Таб. 12-26. Асемблерски програм со примена на 8–битен бројач и NOP инструкција

Освен со оваа модификација, времетраењето на тајмерот може уште


„пофино“ да се подесува ако инструкцијата NOP се додаде во кодот на место каде
би се извршила само еднаш, како на пример веднаш после првата инструкција
пред циклусот, или после последната инструкција. Внесувањето на NOP-
инструкции надвор од циклусот е такво што тие се извршуваат само еднаш и со
тоа нагодувањето на времето е многу попрецизно.
12.14.2. Тајмер со користење на вгнездени циклуси

Уште поголемо временско доцнење во однос


на претходната техника со 8-битен бројач може да
се постигне ако се употребат два или повеќе
вгнездени циклуси еден во друг.
Наједноставно е да се употреби уште еден
надворешен циклус со m-броења, додека
внатрешниот циклус ќе биде со претходно
анализираниот циклус на n-броењa со едно-бајтен.
Сo ваквото повторување циклус во циклус,
доцнењето кое е одредено со внатрешниот циклус
може да се повторува со фактор на множење кој е
определен со надворешниот циклус.

Сл.12-28. Блок дијаграм за тајмер со


повторување циклус во циклус (со користење на
вгнездени циклуси)
708 Програмирање на општ микропроцесор

Ознака Мнемоник Операнд Коментар Број на Т-состојби


MVI B, m ;Inicijaliziraj go so “m” 7 T - sostojbi
nadvoresniot brojac B
OKOLU: MVI C, n ;Inicijaliziraj go so “n” 7 T - sostojbi
vnatresniot brojac C
VRTI: DCR C ;Namali go vnatresniot 4 T - sostojbi
brojac C za 1
JNZ VRTI ;Ako brojacot C ne e 0 vrti 10/7 T - sostojbi
DCR B ;Namali go nadvoresniot 4 T - sostojbi
brojac B za 1
JNZ OKOLU ;Ako nadvoresniot brojac 10/7 T - sostojbi
B ne e 0 vrti naokolu

Таб. 12-27. Асемблерски програм за тајмер со користење на вгнездени циклуси


Бидејќи T-состојбите потребни за извршување на внатрешниот циклус се
дадени со равенката во која n е бројачот кој го одредува доцнењето:
Тn= [7 + (n – 1) x 14 + 11]Ts

вкупниот број на T-состојби потребни за извршување на дадената програма ќе се


пресмета со следната равенка во која m е факторот на множење:
Tm= [(m – 1) x (Тn+ 14) + 11]Ts

Заради продолжување на временскиот интервал и кај вака реализираното


доцнење генерирано со вгнездени циклуси може да се примени внесување на
една или две инструкции NOP на соодветно избрани места во програмот.

12.15. Концепт на стек меморијата


За време на извршување на програмите често пати се случува регистрите
за општа намена на процесорот да не се доволни за извршување на програмските
инструкции. Заради тоа, одреден мемориски простор од оперативната меморија на
процесорот, од RAM-от, може да се искористи за привремено чување на нивните
содржини. Тие вообичаено се некакви меѓу-резултати потребни за понатамошна
обработка, а од друга страна регистрите мора да се ослободат и да се искористат
за извршување на некои други инструкции. Оној мемориски блок, кој е дел од
оперативната меморија на микро-компјутерот и се искористи за привремено
чување на нивните содржините на регистрите на процесорот изворно на англиски
јазик се нарекува stack, што се изговара како стек. Македонската терминологија
би била магацинска, напластена или стог меморија. По комплетирање на инструк-
циите заради кои регистрите требаше да се испразнат, т.е. нивната содржина
привремено да се смети во стек-меморијата, можно е прилично едноставно, овие
привремено складирани податоци да се вратат на своето место во истите
регистри каде и што се наоѓале. Како што ќе видиме во објаснувањето што следи
во продолжение за тоа кој е принципот за запамтување и враќање назад на
податоците од стекот, ваквото именување на овој мемориски блок не е случајно.
Програмирање на општ микропроцесор 709

Стек-меморијата игра суштунска улога и при извршувањето на потпрограми


(анг. Sub/routine) кои претставуваат група на логички поврзани инструкции што
извршуваат одредена помала програмска задача кои пи извршувањето на некој
програм има потреба да се извршува повеќе пати. Потпрограмот е посебен блок
на инструкции кој, покрај главниот програм, исто така се сместува во посебен дел
од оперативната меморија, а се повикува за извршување од страна на тековниот,
главниот програм кој во тој момент ја има програмската контрола. Повикувањето
на потпрограмот се реализира со наведување на инструкцијата CALL во главниот
програм.
Со повикување на потпрограмот процесорот ја извршува таа потпрограма
пренесувајќи ја програмската контрола од главниот програм на првата
инструкција во потпрограмот. На овој начин, процесорот почнува редоследно да
ја извршува потпрограмата, почнувајќи од нејзината прва инструкција кон
последната. Последната инструкција во потпрограмот е инструкцијата RET, со чие
извршување програмската контрола му се враќа назад на главниот програм, така
што како негова прва инструкција, која ќе биде изведена по враќањето од
потпрограмот, ќе биде инструкцијата што следува под повикувачката инструкција
CALL.
Употребата на потпрограмите (субрутините) е многу важна техника во
развојот и дизајнирањето на софтвер за микропроцесорските системи бидејќи ја
елиминира потребата од повеќекратно пишување на еден ист програмски блок во
главниот програм, кој извршува некоја помала задача што треба да се повторува
повеќе пати. Имено, потпрограмата се пишува како посебен програмски блок од
инструкции и зафаќа само еден дел од оперативната меморија, а од главниот
програм може да се повикува повеќе пати. На овој начин програмската меморија
се искоритува многу поефикасно.
Кога се развива наменски софтвер за било каква примена во реалноста,
слободно може да се каже дека е невозможно тоа да се направи без примена на
потпрограми, а на почетокот наведовме дека развивањето на софтвер
применувајќи потпрограми нераскинливо е поврзано со работење со стек
меморијата. Пред сѐ, на стекот се сместува повратната адреса на онаа
инструкција што треба да ја изврши процесорот по враќањето во главниот
програм.
Овде секако треба да го наведеме и тоа дека кога микрокомпјутерот работи
во реално време, неговата работа е често пати прекинувана од периферни
компоненти на системот, кои бараат соодветно опслужување. Кога процесорот
нив ги опслужува, тој извршува одредени наменски и специјализирани
потпрограми, наречени прекидни рутини кои се посебни за сервисирање на секоја
надворешна компонента што побарала прекин на неговата тековна работа.
Надворешната компонента бара да биде опслужена така што преку еден од
влезните пиновите за прекин поставува активен сигнал за прекинување на
извршувањето на тековниот програм. Јасно е дека и во овој случај, слично како и
при извршувањето на потпрограмите, стекот е неопходен мемориски блок кој
мора да се предвиди и соодветно да се користи.
710 Програмирање на општ микропроцесор

12.16. Принцип на работа на стек меморијата


Пред малку наведовме дека стекот претставува дел од оперативната
меморија – RAM-от, и тоа еден нејзин блок кој програмерот може да го одреди
заради привремено меморирање на податоците или заради примена на
потпрограми во развојот на наменски ориентиран софвер. Да не заборавиме, или
да се потсетиме, дека со исклучување на напојувањето оперативната меморија –
RAM-от целосно се брише, а со тоа се брише и сѐ што било зачувано на стекот.
За работа со стекот се применуваат инструкциите PUSH и POP.
Запишувањето на информациите на стекот е во форма на бајти за што се користи
инструкцијата PUSH, додека за читање на неговата содржина се користи
инструкцијата POP. Бајтите кои се запамтуваат може да претставуваат податоци –
меѓурезултати, преземени од регистрите на процесорот или мемориски адреси за
враќање во главниот програм кога се користат потпрограми. Именувањето на
инструкциите PUSH и POP доаѓа од начинот на кој тие податоци или адреси, се
запамтуваат во, односно се читаат од стекот. Поинаку кажано тие се внесуваат
во, односно се извлекуваат, се земаат од стекот.
Имено, микро-процесорот податоците или адресите ги става на стекот со
инструкцијата PUSH „напластувајќи“ ги еден над друг на сличен начин како што
келнерот ги става празните садови на рака еден над друг кога гостите ќе завршат
со вечерата. Принципот е во основа ист. Секој нов податок на стекот оди над
претходниот. Заради тоа се вели дека „стекот расти од дното па нагоре, кон
врвот“. Обратно, кога податокот од стекот треба да се прочита, се користи
инструкцијата POP со која всушност се врши празнење на стекот, а со тоа и на
последно запамтениот податок кој се наоѓа на неговиот врв. Така и келнерот кога
ги остава садовите во кујната прво го остава најгорниот сад, па потоа тој под него
итн. се до последниот сад, кој го имаше ставено прв на раката.

Сл. 12-29. Асоцијација на начинот на кој ОМП работи со стекот Сл. 12-30.

Друг пример од реалниот живот за тоа како функционира стекот би било


делењето на карти. Имено, кога играме карти, оној што дели, секогаш картите ги
дели од горе па надолу. На истиот принцип се празни и стекот со извршување на
операцијата POP кога од стекот се зема последно ставениот податок.
Програмирање на општ микропроцесор 711

Ваквиот начин на работа за поставување и празнење на податоците од


стекот е всушност познатиот LIFO концепт за меморирање на податоците:
последен дојден – прв излезен. Како што ќе видиме од објаснувањето што
следува, главната улога на стекот кога тој се применува во програмите е заради
ефикасното искористување на оперативната меморија.
Стекот претставува дел од меморијата но тој НЕ е однапред дефиниран.
Процесорот сам НЕ одредува однапред кој блок од мемориски локации, поточно
кои мемориски адреси, ќе се користат за стек-меморијата. За да се имплементира
стекот и истиот да се користи од страна на програмата што програмерот ќе ја
креирера, тој треба најнапред да дефинира дно на стекот. Тоа е највисоката
мемориска адреса на која „ќе лежат“ податоците еден над друг бидејќи стекот ќе
се полни од дното нагоре. За ваквата намена во микропроцесорот постои посебен
мемориски покажувачки регистер за таа намена, наречен покажувач на стек
меморија или стек-поинтер (анг. stack pointer). Стек поинтерот секогаш покажува
на адресата во меморијата каде е сместен последно внесениот податок, а тоа е
врвот на стекот.
Така, кога се полни (става, внесува, запишува) во стек меморијата со PUSH
инструкцијата стек-покажувачот се намалува за еден и со тоа новиот податок го
става во мемориската локација, која се наоѓа над адресата на податокот на кој
покажуваше.

Сл. 12-31. Принцип на работа на стек меморијата (инструкциите PUSH и POP)


Спротивно на ова, кога стекот се празни (се чита) податок со инструкцијата
POP, процесорот го зема податокот од адресата на која покажува стек-поинтерот
и потоа стек-поинтерот ја зголемува својата вредност за еден со што оди надолу
кон своето дно, а тоа беше почетно дефинираната адреса.
За време на извршување на програма која ја користи стек меморијата, или
кога се извршуваат потпрограми, на почетокот стекот е празен бидејќи стек-
поинтерот покажува на дното на стекот. Тоа дно е мемориската локација со
највисока адреса, која во тој момент додека стекот е празен е воедно и негов врв.
712 Програмирање на општ микропроцесор

Со користењето на стекот за
време на работата, кога тој се полни со
податоци или адреси, со инструкцијата
PUSH, неговата вредност расте нагоре,
кон помалите адреси, и со тоа зафаќа
сѐ поголем простор од RAM-от. Но, за
време на извршувањето на потпрогра-
мите стекот не само што се полни, туку
тој и се празни и тоа се случува кога се
извршува POP инструкцијата. При тоа се
ослободува зафатениот мемориски
простор. Значи стекот, како мемориски
блок, е динамички променлив: се полни
нагоре – се празни надолу.
Сл. 12-32. Мемориска карта на работната
RAM меморија со иницијализиран стек

Бидејќи ОМП располага со програмски бројач кој е 16-битен и преку


адресните пинови се приклучува на 16-битна адресна магистрала, разбирливо е
дека и стек-покажувачот ќе биде 16-битен, а со тоа и почетната, највисоката
мемориска адреса, која го дефинира дното на стек-меморијата.

Сл. 12-33. Принцип на работа на стек меморијата

12.16.1. Инструкциите PUSH и POP и нивна примена


Ако програмерот планира да користи стек-меморија, тој треба најнапред да
го иницијализира дното на стекот. Во главниот програм не може и не смее да се
користи ниту една инструкција која се однесува на стек-меморијата, а за стекот да
не е познато на која мемориска адреса се наоѓа неговото дно. Заради ова, уште
Програмирање на општ микропроцесор 713

на почетокот една од првите инструкции во главниот асемблерски програм треба


да биде иницијализацијата – почетното поставување на стек – поинтерот со
внесување на валидна мемориска 16-битна адреса како негова прва содржина. За
оваа намена се користи инструкцијата LXI SP, аm16 каде што аm16 е конкретна
мемориска адреса. Во принцип земено, програмерот може стекот да го
иницијализира било каде во RAM-от, меѓутоа како една општа практика, се
препорачува примена на прилично висока адреса, блиску до адресите на
последните мемориски локации бидејќи стекот расте нагоре кон пониските
мемориски адреси, каде што се наоѓа програмот, потпрограмите и податоците.
Ако на ова не се внимава, стекот со своето растење може нив да ги преклопи и со
тоа да го блокира изведувањето на главниот програм и да предизвика негово
непредвидливо и предвремено завршување. Поконкретно, кога се користат PUSH
и POP инструкциите кај ОМП, всушност стекот се полни, односно се празни, со по
два бајти. Со PUSH се внесуваат два бајти: долу првиот бајт и над него вториот,
додека со POP се земаат два бајти: прво горниот, а потоа долниот бајт.
PUSH инструкција – принцип на работа: Со инструкцијата PUSH стекот се
полни со 16-битната дигитална содржина во форма на два бајти и тоа се
извршува во две фази: во првата фаза стек-покажувачот се намалува за еден и во
мемориската локација која се наоѓа на таа мемориска адреса се става повисокиот
бајт. Потоа, во втората фаза, стек-поинтерот уште еднаш се намалува за еден, и
на втората мемориска локација, која се наоѓа над првата, го внесува понискиот
бајт од 16-битната содржина.
Како 16-битна содржина во стекот може да се внесуваат двобајтни
податоци од процесорските регистерски парови H (=H||L) или B (=B||C), или тоа
да биде т.н. програмски статусен збор PSW (анг. Program status word) кој исто
така содржи два бајти: првиот бајт е содржината на акумулаторот (А, Асс) која
вообичаено претставува некој резултат или меѓу-резултат од обработаката,
додека вториот бајт е содржината на регистерот со знаменца (F, статусниот
регистер, регистерот на состојба, анг. Flags register) кој ја содржи информацијата
за тоа каква е состојбата на резултатот од пресметката, кој се наоѓа во Асс.
Покрај нив, по автоматизам, кога се повикува потпрограма со инструкцијата
CALL стекот се полни со адресата која е сместена во програмскиот бројач и
покажува на првата програмска наредба во главниот програм после наредбата за
повикување на потпрограма CALL.
Пример-1: Содржината на регистерскиот пар B||C=7698h се полни т.е. се
внесува на стек со инструкцијата PUSH В. Стек поинтерот покажува на адреса
FFF6h. Следната слика сл. 12-34 ги прикажува чекорите во извршување на
инструкцијата и конечната состојба кога и регистерскиот пар и стекот имаат исти
содржини: (B)=76, (C)=98, (FFF5)=76, (FFF4)=98.

Сл. 12-34. Стек-меморијата за инструкцијата PUSH B ако SP=FFF6H, a B||C= 7698H.


714 Програмирање на општ микропроцесор

POP инструкција – принцип на работа: Со инструкцијата POP стекот се


празни, од него се зема, се извлекува, се чита 16-битна дигитална содржина во
форма на два бајти. Тоа се извршува во две фази: во првата фаза содржината на
мемориската локација адресирана со стек-поинтерот се внесува во понискиот бајт
од регистерскиот пар наведен во инструкцијата POP, и потоа стек-покажувачот се
зголемува за еден, и со тоа од ново-адресираната мемориска локација ја зема
нејзината содржина и ја внесува во повисокиот бајт од регитерскиот пар. На крај
стек-покажувачот уште еднаш се зголемува за 1 покажувајќи на третата
мемориска локација каде што е сместен понизок бајт од некоја друга дво-бајтна
содржина. Од кажаното треба да се заклучи дека читањето на стек-меморијата е
деструктивно бидејќи со инструкцијата POP стекот навистина се празни, од него
се земаат најгорните два бајти и тие не може повторно да се прочитаат. За
разлика од тоа, содржината на било која мемориска локација може да се чита
неограничен број пати бидејќи нејзиното читање е недеструктивно – содржината
на локацијата со читањето си останува непроменета, не се извлекува туку се чита
во вистинска смисла на зборот.
Пример-2: Содржината на двата бајти запамтени во стек-меморијата
7698h се читаат и внесуваат (полнат) во регистерскиот пар H||L со инструкцијата
POP H. Стек поинтерот покажува на адреса FFF4h. Сликата сл. 12-35 ги прикажува
чекорите во кои се извршува оваа инструкција и конечната состојба кога во
регистерскиот пар H||L се внесени двата податоци од стекот: (H)=76, (L)=98. Од
стекот се испразнети два бајти и сега SP поинтира на адресата FFF6.

Сл. 12-35. Стек-меморијата за инструкцијата POP H ако SP=FFF4H, a H||L= xxxxH.


Пример-3: Да претпоставиме дека одреден програмски чекор бара
привремено ослободување на регистрите B, C, H, L. Тоа може да се направи со
две последователни PUSH инsтрукции: на пр. прво PUSH B и потоа PUSH H.
PUSH B Сега регистрите се привремено слободни бидејќи нивната
PUSH H содржина е однесена во стекот. По завршувањето на
… програмските редови кои ги користеле овие регистри, со две
POP H последователни POP инструкции може во именуваните регистри
POP B да се врати нивната претходна, „стара“ содржина.

Овде НЕ треба да заборавиме дека со PUSH B и PUSH H во стекот горе се


наоѓаат двата бајти на регитрите H, L, а под нив двата бајти на регистерскиот пар
B, C. За да си се вратат сите бајти на своето место, инструкциите POP ги
наведуваме во обратен редослед: прво POP H, а потоа POP B.
Следните два примери за употреба на стекот се доста интересни иако се
прилично едноставни. Првото програмче овозможува многу лесно да се изврши
меѓусебна замена на содржините на регистерските парови BC со HL. Со второто
пак, содржината на акумулаторскиот регистер и на регистерот со знаменца се
копира и привремено запамтува во регистерскиот пар B||C.
Програмирање на општ микропроцесор 715

Пример-4: Со примена на стек меморија содржината на програмскиот


статусен збор на состојба (PSW=A||F) пренеси (копирај) го во рег. пар B||C.
Пример-5: Замени ги содржините на регистерските парови B||C со H||L и
со примена на стек меморија.

Пр. 4 Мнемоник Операнд Пр. 5 Мнемоник Операнд

LXI SP, FF99 LXI SP, FFF9


PUSH PSW PUSH H
POP B PUSH B
POP H
POP B

Таб. 12-28 а) Копирање на содржината на програмскиот статусен збор на состојба (PSW=


=A||F) го во рег. пар B||C. б) Заменa на содржините на регистерските парови B||C со H||L
12.16.2. Инструкциите CALL/RET и нивна примена
Доколку одредена група на инструкции треба да се изврши повеќе пати за
време на извршување на некој програм постојат два начини да се избегне
нивното повеќекратно препишување во рамките на тој главен програм.
Едниот од нив, а воедно и најчесто користен начин е таа група на
инструкции да се напише како посебен програмски блок кој се нарекува
потпрограм, суб-рутина или само рутина (анг. Subroutine или Routine). Според ова,
за потпрограмот може да се каже дека е група на инструкции кои се логички
поврзани во единствена програмска целина која решава одредена помала задача
(проблем) запамтена во посебен дел од оперативната меморија.
На овој начин, со издвојување на програмскиот блок инструкции во посебна
потпрограма, секогаш кога ќе има потреба од извршување на инструкцискиот
блок на субрутина во главниот програм, се наведува инструкцијата CALL која ќе ја
повика потпрограмата, со што програмската контрола се префрлува на таа група
инструкции и тие се извршуваат. Ваквиот механизам бара повратна адреса и
затоа непосредно пред активирање на повикувањето на потпрограмата во стек-
меморијата автоматски се внесува адресата на првата инструкција од главниот
програм, која следува после инструкцијата CALL. За да се врати програмската
контрола на главниот програм, и со тоа процесорот да продолжи со извршување
токму на првата инструкција после CALL, на крајот на потпрограмата, како
последна инструкција се наведува инструкцијата RET. Кога ОМП ќе ја прочита
оваа инструкција, тој автоматски од стекот ја зема повратната адреса, која таму
беше сместена, и со неа го полни програмскиот бројач РС. Бидејќи оваа адреса е
адресата на првата инструкција во главниот програм после инструкцијата CALL,
главниот програм продожува да си работи без да прескокне ниту една од своите
инструкции.
Во инструкциското множество на ОМП, како и кај сите реални МКП, имаме
претпоставено дека постојат двете предходно наведени инструкции, CALL и RET,
со кои се имплементира програмската техника за користење на потпрограми.
716 Програмирање на општ микропроцесор

На сликата сл.12-36 e прикажан


главен програм кој е запамтен во
корисничкиот RAM мемориски простор
почнувајќи од адреса 4080Н. Програмот
повикува одредена потпрограма со
инструкцијата CALL. За да се реализира
повикувањето една од првите инструкции
на главниот програм е LXI SP, 621F со која
се дефинира адресата 621FH како најниска
стек мемориска локација. За да се повика
конкретниот потпрограм, во главниот
програм на соодветното место, е наведена
инструкцијата CALL 5400H со која се
повикува потпрограмот кој е мемориран
почнувајќи од адреса 5400Н.
На следната слика, сл.12-37 се
дадени инструкциите и мемориските
блокови каде се наоѓаат главниот програм,
потпрограмот и стекот, но на друг начин.
На сл. 12-36 мемориските сегменти се
прикажани еден под друг онака како што
растат мемориските адреси, додека на сл.
12-37 тие се наведени еден покрај друг.
Сл.12-36. Повикување на потпрограм од
главен програм

Во литературата се користат и двата начини за сликовита презентација на


извршувањето на главен програм кој повикува потпрограм.
Повикувајќи го потпрограмот со инструкцијата CALL 5400H најпрво на
стекот на адресите 621FH и 621EH се внесуваат два бајти заради привремено
запамтување на адресата 4103Н од програмскиот бројач со што стекот расти
нагоре и покажувачот на стек се позиционира на адреса 621DH. Со извршувањето
на инструкцијата RET оваа адреса (4103Н) се враќа во програмскиот бројач со
што главниот програм продолжува со работа од инструкцијата која следува
веднаш после CALL 5400H.

Сл.12-37. Повикување на потпрограм од главен програм


Програмирање на општ микропроцесор 717

Доколку од било која причина, има потреба потпрограмот да биде повикан


повеќе пати во рамките на главниот програм, тогаш инструкцијата CALL 5400H ќе
треба да се наведе повеќе пати. Со секое повикување на потпрограмот и враќање
во програмот, стек поинтерот ја намалува својата содржина за две адреси, па
потоа ја зголемува за две адреси: внесува два бајти нагоре, а потоа ги изнесува
тие два бајти слегувајќи надолу.

Сл.12-38. Повеќекратно повикување на потпрограм од главен програм


На сл. 12-38 e прикажан главен програм запомнат во меморијата од мемо-
риска адреса 2000Н кој стекот го иницијализира на адреса 8079Н и потоа три пати
повикува потпрограм кој е сместен во меморијата почнувајќи од адреса 6000Н.

12.17. Потпрограми и нивни примери


Од претходната дискусија знаеме дека инструкцијата CALL се користи за
повикување на потпрограмата од главниот програм и заради тоа се пишува во
онаа програмска линија во главниот програм од која натаму ќе биде извршувана
обработката и/или пресметките од страна на повиканата потпрограма. Од друга
страна, инструкцијата RET е последната инструкција во потпрограмата која по
завршувањето на сите пресметки и/или обработки овозможува враќање во
главниот програм и предавање на програмската контрола повторно на главниот
програм и тоа на првата инструкција во него која следи по наредбата CALL.
И двете инструкции, по автоматизам, ја вклучуваат стек-меморијата “во
игра“. Имено, со инструкцијата CALL во стек меморијата се запамтува мемориската
адресата на првата следна инструкција после CALL и потоа процесорот веднаш ја
предава програмската контрола на првата инструкција од повиканата
потпрограма. Кога ќе се заврши извршувањето на потпрограмата со инструкцијата
RET од стекот се чита запамтената повратна адреса која овозможува враќање во
главниот програм и продолжување на неговата работа.
718 Програмирање на општ микропроцесор

Концептот на стек меморија, како и употребата на потпрограмите во


програмирањето полесно ќе ја разбереме со анализта на следниве три примери
на различни потпрограми.
Пример 1 (Потпрограм DOCNI):
Првиот пример е главен програм кој повикува потпрограма за доцнење.

Со главниот програм треба да му


се додава фиксна вредност 6 (шест) на
содржините на еден блок од 256
последователни мемориски локации,
чија почетна адреса им е 0200h. Секоја
корегирана вредност се враќа како нова
содржина во мемориската локација на
истата адреса, но едновремено треба и
да се испрати и на излезна порта 7 на
која, да претпоставиме, се поврзани
светлечки LED диоди. Бидејќи времето
што му е потребно на човековото око за
да ја види состојбата на диодите, која
од нив свети, а која не, е многу
поголемо од брзината со која работи
процесорот, резултатот кој се
прикажува на излезната порта 7 треба
да биде присутен и стабилен одреден
временски период. Ваквото временско
доцнење го извршува потпрограмата
DOCNI и заради тоа после секое
испраќање на корегираната вредност на
излезната порта се повикува
именуваната потпрограма.
Блок дијаграмите на главниот
програм и на потпрограмот се дадени
на сл. 12-39 а) и б) после кои што следи
листингот на нивниот асемблерски код.
Со овој асемблерски код најнапред со
инструкцијата LXI SP, FF9h се поставува
иницијална вредност во стек поинтерот
со што програмерот уште на почетокот
одредува дека ќе користи одреден
мемориски дел од оперативната
меморија како стек и дефинира дно на
стекот со мемориската адреса 0FF9h.

сл. 12-39 а) Блок дијаграм на главен програм кој повикува потпрограм


Програмирање на општ микропроцесор 719

Потоа следат инструкциите од


главниот програм, почнувајќи од неговата
прва инструкција запишана на адреса 0100h,
кои последователно ги извршува процесорот
сѐ до инструкцијата CALL со која главниот
програм повикува извршување на именува-
ната потпрограма. Со тоа микропроцесорот
ја пренесува програмската контрола од
(главната) програма на потпрограмата
DOCNI, која се наоѓа во друг мемориски
блок од оперативната меморија што почнува
од адреса 0500h во однос на главната
програма која е запамтена со почетна
адреса 0100h. Непосредно пред предавање
на програмската контрола на потпрогра-
мата, адресата на инструкцијата (0114h)
која следува непосредно по инструкцијата
CALL, се запамтува во стек-меморијата на
адрaса 0FF9h: прво високиот бајт од
адресата (01h), а потоа нискиот бајт (14h).

сл. 12-39 б) Блок дијаграм на потпрограм DOCNI

Сега се извршува програмската секвенца содржана во потпрограмата


DOCNI која го реализира потребното доцнење со примена на бројачки циклус. Во
него регистерот C се користи како бројач на циклуси кој се намалува за еден
почнувајќи од 80dec (50h) до нула и во кој се извршува само една операција на
мирување (NOP) за да се добие во време. По завршување на циклусот со
инструкции кои го обезбедуваат потребното доцнење на крајот како последна
инструкција во потпрограмата се извршува инструкцијата RET. Со нејзино
извршување од стекот се чита повратната адреса на првата инструкција во
главниот програм (0114h) после повикот CALL и нејзе ѝ се предава програмската
контрола, а со тоа ѝ се обезбедува враќање во главниот програм и тоа на
соодветната програмска линија.
Практично, од хардверски аспект, кога се извршува инструкцијата CALL и се
повикува потпрограмата се зема тековната содржина на програмскиот бројач
(која да не заборавиме автоматски се зголемува по секое извршување на секоја
инструкција) и таа мемориска адреса се носи на стек, а во програмскиот бројач се
внесува адресата 0500h која е прва инструкција од потпрограмата. Со извршу-
вање на инструкцијата RET за враќање назад во главниот програм од стекот се
зема (чита) адресата на првата инструкција после CALL во главниот програм
(повратната адреса) и се внесува во програмскиот бројач така што со тоа си
продолжува извршувањето на главниот програм.
720 Програмирање на општ микропроцесор

Aсемблерски кодови на главниот програм и потпрограмот DOCNI:


0100: ;GLAVEN Program
LXI SP, FFF9h
LXI H, 0200h
MVI B, FFh
ZEMI: MOV A, M
ADI 06h
MOV M, A
OUT 07h
CALL DOCNI
0114: DCR B
JNZ ZEMI

;Potprogram DOCNI
DOCNI: (0500H)
VRTI: MVI C, 50h ;50h=80dec
NOP
DCR C
JNZ VRTI
RET


;STEK memoriski blok segment
0FF5: …
0FF6: xx …
0FF7: 14H
0FF8: 01H
0FF9H xxH ;dno na stekot

Пример 2 (Потпрограм FVOM):


Како втор пример за примена на потпрограм ќе биде следнава задача: Да
се напише потпрограм со наслов FVOM кој кога ќе биде повикан, ќе ја запамти
содржината на регистерот со знаменца (F) во зададена мемориска адреса.
Потпрограмот треба така да работи што најпрво ќе ги ослободи сите регистри на
процесорот и нивната содржина привремено ќе ја стави на стекот. Потоа ќе треба
да го меморира регистерот со знаменца во мемориската локација чија адреса е
2407Н и на крај во процесорот ќе треба да ги врати истите вредности на сите
регистри, кои тие ги содржеа во главниот преограм непосредно пред повикува-
њето на потпрограмата со инструкцијата CALL.
Програмирање на општ микропроцесор 721

Во продолжение се дадени само две најважни инструкции во рамки на


замислениот главен програм кој го повикува потпрограмот FVOM: првата
инструкција е LXI SP, FF99Н со која се иницијализира стек меморискиот сегмент и
со која се избира како најдлабока адреса FF99Н, додека втората инструкција е
повикувањето на потпрограмот со инструкцијата CALL FVOM. Потоа следува
асемблерскиот код на потпрограмот FVOM од кој е видливо дека потпрограмот
има линиска структура со фреквентна употреба на инструкциите за работа со стек
меmоријата PUSH и POP.
Aсемблерски кодови на главниот програм и потпрограмот FVOM:
; Glaven program
1000: LXI SP, FF99h ; Inicijalizacija dno na stekot
… Инструкции
на главниот програм

CALL FVOM ;Povikuvanje na potrprogramot
… Инструкции
на главниот програм

FVOM: ; Start na potprogram FVOM
PUSH H ; Stack←HL
PUSH B ; Stack←BC
PUSH PSW ; Stack←AF
POP B ; BC←AF
MOV A, C ; A←C=F
STA 2407H ; am2407H←F
PUSH B ; Stack←BC=PSW
POP PSW ; PSW←Stack=AF
POP B ; BC← Stack=BC
POP H ; HL← Stack=HL
RET ; nazad vo glaven program
Потпрограмот работи така што на дното на стекот го носи регистерскиот
пар H||L, потоа над него парот регистри B||C, и на врвот на стекот програмскиот
статусен збор PSW, а тоа се всушност акумулаторот А и геристерот на знаменца F.
На овој начин најдолу на стекот се зачувани B||C и H||L, а најгоре се А и F. Сега
од стекот ги вади акумулаторот А и знаменцата F и ги носи во парот B||C:
акумулаторот во регистерот B, a знаменцата во C. Бидејќи се бара да се
меморираат знаменцата на адреса 2407Н, содржината на С, т.е. на знаменцата, се
пренесува во акумулаторот и од таму со директно адресирање се запишува во
посочената адреса. После тоа на стекот се внесува содржината на регистерскиот
пар B||C, поточно на врвот од стекот се враќа зборот на состојба PSW, а тоа беше
акумулаторот А и регистерот на знаменца F.
722 Програмирање на општ микропроцесор

Бидејќи после оваа инструкција на стекот ги имаме содржините на трите


регистерски парови, истите може да ги реставрираме со нивно извлекување назад
од стекот во соодветните регистри: најпрво го влечиме статусниот збор PSW, т.е.
А и F, потоа парот B||C и на крај H||L. За да ја задржиме конзистентноста на
податоците и секој од нив да си оди в својот регистер, нив ги извлекуваме од
стекот по обратен редослед од оној по кој се внесувани.

Пример 3 (Потпрограм COMZN):


Да се напише потпрограм COMZN кој ќе ги комплеметира вредностите на
знаменцата во регистерот за знаменца (F).

Блок дијаграм Асемблерски код на потпрограмот COMZN

Мнем. Операнд Коментар


PUSH PSW ;zacuvaj gi znamencata vo
stek; A, F
POP H ;vrati gi znamencata vo reg.
par HL; H←A, LF
MOV A, L ;go kopira L t.e. znamencata
F vo Acc.
CMA ;komplimentira AA* t.e.
AF*
MOV L, A ;Acc. t.e. F* go smestuva vo
reg. L
PUSH H ;zacuvaj HL (H=A, L=F*) na
Stack;
POP PSW ;Izvadi go PSW od stek;
AA, FF*
HLT ;kraj na programot

Потпрограмот работи така што програмскиот статусен збор PSW, а тоа се


всушност акумулаторот А и регистерот на знаменца F, ги носи на стекот. Потоа од
стекот нив ги вади и ги носи во парот H||L: содржината на акумулаторот оди во
регистерот H, a знаменцата се внесуваат во регистерот L (овде можеше и во B||C).
Бидејќи се бара да се комплементира нивната содржина тие мора да се пренесат
во акумулаторот и таму да се комплементираат. Вака изменетите знаменца се
враќаат во регистерот L за да може на стекот да се внесат назад акумулаторот и
комплементираните знаменца кои се сместени во регистерскиот пар H||L:
регистерот H го содржи акумулатoрот, додека во регистерот L се внесени
комплементираните знаменца. Сега статусниот збор на состојба PSW може да се
извлече назад од стекот бидејќи знаменцата се комплементирани.
Програмирање на општ микропроцесор 723

12.18. Макро инструкции


Имајќи предвид се што до сега е кажано за потпрограимте и за
“механизмот“ како тие се повикуваат од главниот програм, може да се заклучи
дека со повикувањето на било кој потпрограм со инструкцијата CALL, неговото
извршување и враќањето во главниот програм со инструкцијата RET бара
дополнително време од процесорот. Заради ова, кога станува збор за програмска
задача која може да се изврши со неколку инструкции, т.е. помала група на
инструкции, не е исплатливо тие да се дефинираат со заедничко име како
потпрограма и така да се пакуваат во главниот програм. Во овие случаи, може да
се користи друга техника со која програмирањето ќе биде поефикасно, а тоа е
употребата на т.н. макро инструкции, или популарно наречени макрои (анг. Macro
instruction/s).
Треба да знаеме дека и макро-инструкцијата или макрото е слична на
поттпрограмот, но уште поважно е да знаеме дека извршувањето на макроата и
потпрограмите драстично се разликува едни од други. Тaка на пример и макро
инструкцијата е составена од група на инструкции кои извршуваат одредена
помала задача која се повторува во главниот програм повеќе пати. Сепак,
повикувањето на макро-инструкцијата е различно во однос на повикувањето на
потпрограмата. Имено, кога ќе ја повикаме макро инструкцијата во главниот
програм, системскиот програм асемблер на тоа место во програмата автоматски
ќе ги внесе сите инструкции кои се во состав на макро инструкцијата.
Повикувањето на макро инструкција значи вметнување на сите инструкции од
макрото во кодот на главниот програм онолку пати колку што ќе биде повикана
таа макро инструкција. Со ова програмот експандира, тој се проширува и зафаќа
повеќе место во меморијата што претставува нејзина слаба страна.
Но, сега, кога се работи со макро инструкции, нема потреба од
дополнително време за пренесување и враќање на програмската контрола од
главниот програм на потпрограмот и обратно. Тие се вградени во кодот на
главниот програм. Извршувањето на макро инструкциите е побрзо, што
претставува нивна предност.
Како за споредба, да се потсетиме дека кога се повикува потпрограма,
нејзиното извршување е многу поразлично: таму програмската контрола се
пренесува од програмот на потпрограмот, и обратно, a потпрограмата зафаќа
само едно место во меморијата. Таа не го раширува кодот на главниот програм.
Но, ваквото пренесување на програмската контрола значи трошење на
дополнителна време за секое повикување на потпрограмот и со тоа побавно
извршување на главниот програм.
На крај ќе истакнеме и дека некои системски асемблерски програми НЕ
овозможуваат работа со макрои. Заради тоа, оние асемблери кои овозможуваат
дефинирање на макро инструкции се нарекуваат макро–асемблери.
724 Програмирање на општ микропроцесор

12.18.1. Примена на макро инструкциите


За да се примени макро во некој програм напишан на асемблерски јазик
треба да се знаат трите чекори кои треба редоследно да се извршат, а тоа се:
1) Макро–дефинирање (Дефинирање на макро инструкцијата),
2) Макро–референцирање (Макро–повикување),
3) Макро–експанзија (Макро–проширување).
Во дефинирањето на макро инструкцијата се запишуваат редоследно сите
инструкции во група како една целина кои ќе влезат во нејзини рамки.
За да се употреби макро инструкција таа треба веќа да била дефинирана и
тогаш може да се повика, односно да биде референцирана на она место во
главниот програм каде што групата на инструкции, т.е. макрото треба да се
изврши.
Макро-проширувањето е експанзија на макрото во рамките на главниот
програм со сите нејзини инструкции како што е дефинирана.
Првите два чекори се спроведуваат од страна на програмерот или
дизајнерот/архитектот на софтверот, а третиот од системскиот програм, макро
асемблерот.
Макро дефиницијата го има следниов формат:

Ознака Асемблерски код Операнд


(Мнемоници)

Име на макрото MACRO Листа на операнди

Различно од Тело на макрото Операнди кои се од интерес во


мнемониците на ... (сите инструкции главниот програм, а овде се
инструкциите кои се потреби за вклучени во инструкциите; ако ги
извршување на макро има повеќе треба меѓусебно да се
– инструкцијата) ... одвоени со запирки

ENDM

Пример 1: Да претпоставиме дека во одреден асемблерски програм има потреба


од вчитување на податоци во некој од регситрите на микропроцесорот со
индиректно адресирање. Во продолжение е дефинирана макро инструкцијата
именувана како LRIND и воедно е прикажаноп нејзиното повикување и
експандирање во рамките на главниот програм.
Макро дефинирање>
LRIND MACRO REG, ADR
LHLD ADR
MOV REG, M
ENDM
Програмирање на општ микропроцесор 725

Макро референцирање (повикување во рамките на главниот програм)>


...
LRIND B, PTR1 ;povikuvanje za vnes od memlok vo reg.B
LRIND C, PTR2 ;povikuvanje za vnes od memlok vo reg.C
...
Макро експандирање>

Макро инструкцијата Макро инструкцијата


LRIND B, PTR1 LRIND C, PTR1
се заменува со инструкциите се заменува со инструкциите

… …
LHLD PTR1 LHLD PTR2
MOV B, M MOV C, M
… …
Пример 2:
Следната макро инструкција ја ротира N пати содржината на акумулаторот
А во лево преку знаменцето за пренос CY. Оваа постапка се реализира со циклус
кој завршува кога содржината на бројачкиот регистар стигне до нула. Бројот на
ротации N е всушност содржината на регистерот REG кој ќе се користи како
бројач. Овие два операнди се двата параметри на макро инструкцијата.
Макро дефинирање>
RALN MACRO N, REG
LOCAL LOOP
MVI REG, N
VRTI: RAL
DCR REG
JNZ VRTI
ENDM

Макро референцирање>
...
RALN 04H, C ;povikuvanje za 4 rotacii so brojac reg. C
...
Макро експандирање>

MVI C, 04H
0001: RAL
DCR C
JNZ 0001

726 Програмирање на општ микропроцесор

Бидејќи во самата макро дефиниција се користи ознака VRTI истата во


макро-дефиницијата се дефинира како локална променлива со асемблерската
директива LOCAL. Макро асемблерот на локалните променливи им доделува
посебни специфични имина као што е во примерот “?0001” за “VRTI“. Со ова се
избегнува проблемот кој сигурно ќе се појави ако два или повеќе пати во главни-
от програм се повика макрото. Имено, ако ознаката VRTI не се дефинира како ло-
кален параметар, тогаш при експандирањето во главниот програм ќе се појави
иста ознака (VRTI) за две или повеќе различни програмски линии што ќе предиз-
вика појава на грешка при преведувањето од асемблерски во машински код.

12.19. Програмирање на сериски влез/излез на податоци


За прифаќање/читање, односно за запишување/испраќање на податоци на
сериски начин бит-по-бит најзгодно е да се користат пиновите SOD и SID со кои
располага ОМП. Тие можат да се употребуваат како две едно-битни „порти“ за
сериска комуникација. Од нив, пинот SOD (анг. Serial Output Data) се користи за
сериски излез, додека за сериски влез се користи пинот SID (анг. Serial Input
Data). Пренесувајќи податоци на сериски начин со примена на овие два пина, се
ослободуваат сите осум податочни пинови и тие непречено можат да се користат
за паралелен пренос на податоци.
На линијата SOD сериски ќе се испраќаат податоци бит-по-бит ако се
применува инструкцијата SIM. Од друга страна, за да се прифаќа податок во
сериски облик исто така бит-по-бит се употребува пинот SID (анг. Serial input
data) во комбинација со инструкцијата RIM.

12.19.1. Испраќање на податоци во сериски облик преку пинот SOD


За пренесување на сериски податоци бит-по-бит најпрво треба излезниот
пин SOD на ОМП да се поврзе со влезната линија на надворешната компонента
која ќе го прифаќа податокот во сериски облик. Што се однесува пак до форматот
на инструкцијата SIM, тој е даден на сл. 12-40. Најнапред, пред да се наведе
инструкцијата SIM, се припрема соодветна бинарна комбинација т.н. контролен
збор според форматот наведен на сл. 12-40. Потоа, тој контролен збор се внесува
во акумулаторот, па се пишува инструкцијата SIM. По добивањето на оваа
инструкција ОМП ја толкува содржината на акумулаторот според дефиницијата на
SIM форматот и ја извршува. Во овој формат битот D7 се користи како податочен
бит додека битот D6 се користи за да го овозможи или оневозможи серискиот
излезен порт, т.е. пинот SOD, додека преостанатите битови не се користат.

Сл.12-40. Формат на SIM инструкцијата


Програмирање на општ микропроцесор 727

Сега, доколку D6 е сетиран (поставен) (D6=SDE=1), тогаш, и само тогаш,


единствениот податочен бит присутен на пинот SOD ќе биде испратен кон
периферната компонента, додека во спротивно, ако D6 е ресетиран (избришан)
(D6=SDE=0), битот на SOD-пинот нема да биде пренесуван. Подетална слика за
принципот на работа е прикажан на сл. 12-41.
За да се испрати бит на
линијата SOD контролниот збор кој
треба да се внесе како содржина на
акумулаторот е бајтот „х100 0000“. Во
оваа бинарна комбинација најлевиот
бит означен со неважно (х) треба да
биде 0 (х=0) за таа 0, како единствен
бит, да се пренесе преку пинот SOD
кога ќе се повика инструкцијата SIM.
Меѓутоа, доколку овој бит се постави
на 1, (х=1) тогаш таа 1 ќе биде
испратена преку пинот SOD.
Сл.12-41. Сериска комуникација преку
SOD линијата

Инструкциите потребни за да се реализира ваквиот сериски излезен пренос


на еден бит се:

За испраќање 0 во SOD пинот пиши “0” За изпраќање 1 во SOD пинот пиши “1”

MVI A, 40h ;A  40h, a70 i a61 MVI A, C0h ;A  C0h, a71 i a61
SIM ;SOD  (a7) SIM ;SOD  (a7)

Таб.12-29. Испраќање на податоци во сериски облик преку пинот SOD


Значи, ако сакаме било кој бит сериски да биде испратен, без разлика дали
е тоа 0 или 1, најнапред неговата вредност ќе ја пренесеме како осми бит во
акумулатoрот (а7=1 или 0), потоа ќе го сетираме седмиот бит (а6=1) и на крај ќе
ја извршиме инструкцијата SIM. Со тоа битот SDE ќе ја прими вредноста на
шестиот бит од акумулаторот а6 со што ќе биде овозможен пренос на битот а7 од
акумулаторот на пинот SOD=а7. Ако направиме аналогија, инструкцијата SIM
испраќа еднобитен податок, со што потсетува на инструкцијата OUT која на
податочните битови паралелно испраќаше 8-битен податок.
Следните неколку реда асемблерски код можат да се искористат за
испраќање на едно-битен податок чија вредност е всушност состојбата на
знаменцето за пренос CY. Имено, со инструкцијата STC знаменцето за пренос CY
се поставува на 1 (CY=1), додека со инструкцијата CTC знаменцето се
комплементира и со тоа ресетира добивајќи вредност 0 (CY=1*=0).
По извршување на една од овие две инструкции, содржината на акуму-
латорот А треба да се помести во десно за еден бит со инструкцијата RAR со што
битот од знаменцето CY ќе се пренесе во акумулаторот како негов осми бит
(а7=CY), додека седмиот бит ќе се сетира (а6=CY) со што се добива потребниот
728 Програмирање на општ микропроцесор

контролен збор за излезен сериски пренос на еден бит. Сега, по извршување на


инструкцијата RAR може да се изврши инструкцијата SIM со што на излезниот пин
SOD практично се пренесува битот кој се наоѓаше во знаменцето за пренос CY.

За испраќање CY=1: За испраќање CY=0:

MVI A, 80h ; A80h, a71 i a60 MVI A, 80h ; A80h, a71 i a60
STC ; CY1 STC ; CY1
RAR ; a7CY i a61 CTC ; CYCY*=1*=0
SIM ; SOD  (a7) RAR ; a7CY i a61
SIM ; SOD  (a7)

Таб.12-30. Асемблерски код за сериско испраќање на едно-битен податок

Пример-1: Да претпоставиме дека е даден ОМП со работен такт f0 = 1


MHz, односно периода T0=1μs. Да се напише програм кој ќе генерира правоаголен
периодичен сигнал со времетрање на 1-та (високото ниво, импулсот) Ton = 0.25
ms, додека времетрањето на 0-та (ниското ниво, паузата) треба да биде Toff = 0.5
ms. Правоаголните импулси ќе треба да се појавуваат на излезниот пин SOD.

Решение: Бидејќи времетраењето на импулсот и паузата се различни (Ton


=/= Toff) ќе треба да напишиме два посебни потпрограми со различно доцнење
од 0.25 ms и 0.5 ms. При пишувањето на главниот програм кој го дава бараното
решение ќе претпоставиме дека потпрограмите се веќе познати и именувани со
DOC25 и DOC50. Идејата е програмот да испрати 1 (да генерира високо ниво,
импулс) на пинот SOD и потоа преку повикување на потпрограмот DOC25 да вмет-
не временски интервал на чекање од 0.25 ms. Потоа на истиот пин SOD, програ-
мот ќе треба да испрати 0 (да генерира ниско ниво, пауза) со временски интервал
од 0.50 ms кој ќе се добие со повикување на потпрограмот DOC50. Ваквите
испраќања на 1-и и 0-и бесконечно ќе се повторуваат во еден непрекинат циклус.

START: ; Glaven program


LXI SP, FF00H ; Inicijaliziraj SP
PRATI: MVI A, 40 ; Vnesi 40H vo A za 0
SIM ; Isprati 0-a na SOD pinot
CALL DOC50 ; Povikaj potprog. DOCNI 0.5 ms
MVI A, C0H ; Vnesi C0H vo A za 1
SIM ; Isprati 1-a na SOD pinot
CALL DOC25 ; Povikaj potprog. DOCNI 0.25 ms
JMP PRATI ; Vrati se nazad i prakaj pak
; Nema stop

Таб.12-31. Асемблерски програм кој генерира правоаголен периодичен сигнал


Програмирање на општ микропроцесор 729

Сл. 12-42. Изглед на импуслите на испратениот правоаголен периодичен сигнал


Да пробаме, со користење на потпрограми за доцнење само со еден бројач,
да ги добиеме бараните доцнења од 0.25 ms и 0.50 ms. И за двата потпрограми ќе
го користиме следниот асемблерски код кој ни е познат како софтверски тајмер.

; Potprogram DOCNENJE
; Broj na T-sostojbi (Ts)
MVI C, n ; 7Ts
VRTI: DCR C ; 4Ts
JNZ VRTI ; 10/7Ts
RET ; 10Ts

Таб. 12-32. Асемблерски потпрограм - софтверски тајмер со еден бројач


Како непозната променлива n која треба да ја откриеме за да го добиеме
потребното доцнење е вредноста на бројачот n која вообичаено се сместува во
регистерот С кој што се иницијализира токму со пресметаната вредност.
За тоа можеме да ја искористиме познатата пресметка од примерот
разработен во наставната единица 12.14.1.
Бројот на Т-состојби nTs за извршување на потпрограмот за доцнење ќе
биде:
nTs = 7T + (4T + 10T) * n – 3T + 10T = (14 + 14 * n)
Доцнењето nTs кое ќе се јави заради извршување на инструкциите MVI,
SIM и CALL во главниот програм ќе биде: nTs= 7T + 4T + 18T = 29T
Вкупното доцнење vnTs ќе биде: vnTs = (29 + 14 + 14 * n)
Од последната равенка може да се пресметаат вредностите на бројачот,
регистерот С, за доцнење од 0.5 ms и 0.25 ms.
За доцнењето Toff кое е потребно за генерирање на 0-та се добива:
0.5 ms = (43 + 14 * n) 1μs
43 + 14* n = 500μs / 1μs
n500 = (500-43)/14 = 32,64dec = 33dec = 21hex
Слично, за доцнењето Ton кое е потребно за генерирање на 1-та имаме:
0.25 ms = (43 + 14 * n) 1μs
43 + 14 count = 250μs / 1μs
730 Програмирање на општ микропроцесор

n250 = (250-43)/14 = 14,78dec = 15dec = 11hex


Во продолжение се дадени асемблерските потпрограми врз основа на
пресметаното:

Потпрограм DOC50 Потпрограм DOC25

;Toff=0.50 ms ; Ton=0.25 ms
MVI C, 21H MVI C, 21H
vrti1: DCR C vrti1: DCR C
JNZ vrti1 JNZ vrti1
RET RET

Таб. 12-33. Асемблерски кодови на тајмерите за доцнење од 0.5 ms и 0.25 ms


Од добиените пресметки може да се забележи дека вредностите на
бројачот не се цели броеви и дека истите ги заокруживме. Доколку има потреба
од поголема прецизност ќе треба да се пробаат модификувани временски
потпрограми за доцнење на пр. со додавање на една или повеќе NOP инструкции,
или со вгнездени циклуси и два бројачки регистри.

12.19.2 Прифаќање на податоци во сериски облик преку пинот SID


За примање на сериски податоци бит-по-бит треба влезниот пин SID на
ОМП да се поврзе со излезната линија на периферната компонента која ќе го
испраќа податокот во сериска форма. Сликата 12-43 го прикажува поврзувањето
на ОМП за сериски пренос со сериска компонента.
Притоа, за сериско прифаќање на битови кај ОМП се користи инструкцијата
RIM чие извршување ќе го објасниме во продолжение. Со извршување на RIM
инструкцијата ОМП реагира на начин што содржината на Асс ја интерпретира
(„гледа“) според форматот претставен на сл. 12-44.

ОМП ја чита содржината на SID


пинот како да е тој осми бит (а7) на Асс.
Другите битови во Асс се битови кои се
третираат од страна на прекидниот
систем на ОМП и тие битови „не му се
интересни на процесорот“ кога тој
реализира сериска комуникација. При
извршување на RIM инструкцијата
нивото на сигналот присутно на пинот
SID се заклучива, се лечува и оваа
заклучена вредност во следниот
машински циклус се внесува како осми
бит (а7) во Асс.

Сл. 12-43. Прифаќање на податоци во сериски облик преку пинот SID


Програмирање на општ микропроцесор 731

Извршувањето на инструкцијата RIM со која процесорот прима еднобитен


податок потсеќа на инструкцијата IN со која процесорот паралелно преку своите
податочни линии прифаќаше 8-битен податок.

Сл. 12-44. Формат на RIM инструкцијата

Пример-2: Да претпоставиме дека на влезниот пин SID за сериска


комуникација бит-по-бит е приклучен сигнал кој може да има високо ниво на
логичка 1-а, или ниско ниво на логичка 0-а. Високото ниво се појавува кога се
случува некој настан, додека ниското ниво стои ако тој настан не се случил. Треба
да се напише пот/програм кој ќе ги брои настаните и ќе заврши со работа кога ќе
изброи 25 настани.

Решение: Ќе земеме дека ако одреден настан се случил тогаш кога


влезниот еднобитен податок присутен на пинот SID е 1, додека ако тој настан НЕ
се случил, тогаш битот на влезниот пин SID ќе биде 0. Бидејќи треба да ги броиме
појавите, т.е. настаните, тоа ќе го реализираме со инструкцијата за споредување.
Прво треба да го прифатиме битот од влезниот пин SID во акумулаторот како
негов осми бит (а7), и потоа него да го тестираме за да утврдиме дали е тој 1-а,
или е 0-а. Ако со проверката утврдиме дека сме добиле високо ниво на 1-а, тоа ќе
значи дека настанот се случил што треба да го забележиме во бројачот на
состојби за 1-и зголемувајќи ја неговата вредност за 1. Но, ако напонското ниво
присутно на влезниот пин SID НЕ е високо, туку е ниско напонско ниво на 0-а,
едноставно само продолжуваме со повторна проверка, која претставува следен
чекор во извршување на овој програм.

Сл. 12-45. Изглед на импулсите


732 Програмирање на општ микропроцесор

Start: ; Program Broi nastani na pin SID (seriski port)


MVI C, 00 ; Inicijaliziraj brojac na nastani na 0
MVI B, 80 ; Inicijaliziraj osmi bit na reg. B (b7) na 1-a
zemib: RIM ; Procitaj bit-podatok na pinot SID vo Acc
dali1: ANI 80 ; Maskiraj gi site bitovi vo Acc osven osmiot bit (a7)
CMP B ; Sporedi ja sodrzinata na Acc so onaa na reg. B
; Vsunost sporedi osmi bit na A so osmi bit na reg.B
JZ dali1 ; Proveruvaj dali bitot e 1 i ako NE e odi ponatamu
MVI B, 00 ; Inicijaliziraj osmi bit na reg. B (b7) na 0-a
dali0: RIM ; Procitaj bit-podatok na pinot SID vo Acc
ANI 80 ; Maskiraj gi site bitovi vo Acc osven osmiot bit (a7)
CMP B ; Sporedi ja sodrzinata na Acc so onaa na reg. B
; Vsusnost sporedi osmi bit na A so osmi bit na eg.B
JZ dali0 ; Proveruvaj dali bitot e 0 i ako NE e odi ponatamu
INR C ; Zgolemi go brojacot na nastani
; bidejki se pojavila sledna 1-a
MOV A, C ; Prenesi go brojacot vo Acc
CPI 25 ; Proveri dali brojacot e izbroil 25 nastani
JNZ zemi ; Ako ne izbroil 25 odi na pocetok da zemi pak 1 bit
HLT ; Stop

Таб.12-34. Асемблерски програм за броење настани на пинот SID


Од досегашното објаснување за пиновите за сериска комуникација SID и
SOD, може да биде изведен интересен и корисен заклучок. Имено, тие овозможу-
ваат еден метод за трансфер на податоци со периферните компоненти без да се
користат посебни контролни порти или интегрирани кола што се потребни
секогаш кога податоците се испраќаат на излезна или влезна порта во паралелен
облик како посебни бајти со инструкциите OUT и IN. Наједноставно речено, пино-
вите SID и SOD се однесуваат како еднобитни порти и така можат да се користат.
Програмирање на општ микропроцесор 733

ПРАШАЊА И ЗАДАЧИ ЗА ПОВТОРУВАЊЕ


12-1. Што се подразбира под поимот софтвер?
12-2. Што претставува системскиот софтвер?
12-3. Што претставува оперативниот систем?
12-4. Што претставува апликативниот софтвер?
12-5. Како се класифицираат програмските јазици?
12-6. Кои се системските програми за развивање на софтвер?
12-7. Што претставува едиторот и која е неговата улога?
12-8. Што претставува асемблерот и која е неговата улога?
12-9. Што претставува линкерот и која е неговата улога?
12-10. Што претставува лоудерот и која е неговата улога?
12-11. Што претставува дебагерот и која е неговата улога?
12-12. Сликовито прикажи ја поврзаноста на системските програми за развивање
на софтвер.
12-13. Сликовото прикажи го процесот на развивање на програм во асемблерски
јазик.
12-14. Што претставува инструкциско множество на еден микропроцесор?
12-15. Како се класифицираат инструкциите кои влегуваат во состав на
инструкциското множество? Наброј ги сите групи на инструкции и наведи
понеколку примери на инструкции за секоја група посебно?
12-16. Кои операции ги извршуваат инструкциите за пренос на податоци?
12-17. Кои операции ги извршуваат влезно-влезните инструкции?
12-18. Кои операции ги извршуваат инструкциите за работа со магацинската
(стек) меморијата?
12-19. Кои операции ги извршуваат аритметичките инструкции?
12-20. Кои операции ги извршуваат логичките инструкции?
12-21. Кои операции ги извршуваат инструкциите за гранење?
12-22. Кои операции ги извршуваат инструкциите за работа со потпрограми?
12-23. Наброј ги преостанатите разновидни инструкции за машинска контрола и
за управување со прекините.
12-24. Што треба да содржи секоја инструкција напишана во асемблерски јазик?
12-25. Што претставува програмерскиот модел општиот микропроцесор?
12-26. Сликовито прикажи го програмскиот модел на општиот микропроцесор?
12-27. Што претставува формат на инструкциите?Со кои формати располага ОМП?
734 Програмирање на општ микропроцесор

12-28. Што претставуваат адресните начини на општиот микропроцесор? Наброј


ги адресните начини со располага општиот микропроцесор?
12-29. Посебно за секој адресен начинит наведи ги местоположбата и типот на
податоците, како и форматот на инструкциите изразен во бајти.
12-30. Сликовито поединечно прикажи ги различните начини на а) имплицит-но,
б) регистерско, в) непосредно, г) директно, д) индиректно регистерско адре-
сирање со соодветен пример за извршување на некоја асемблерска инструкција.
12-31. Каква е поврзаноста помеѓу програмирањето и алгоритмите?
12-32. Што претставуваат блок-дијаграмите?
12-33. Наброј ги стандардизирани симболи за цртање блок-дијаграми, поединечно
нацртај ги нивните симболи и наведи која е нивнат улога?
12-34. Кои се основните градбени блокови на алгоритмите за структурирано
програмирање?
12-35. Нацртај ги различните варијанти на условни структури.
12-36. Нацртај ги различните варијанти на циклични структури со повторување
12-37. Кои се чекорите за развојот на софтвер? Прикажи ги со блок-дијаграм.
12-38. Кои се предностите што ги имаат програмите напишани во асемблерски
јазик во однос на програмите кодирани во некој од вишите програмски јазици?
12-39. Како изгледа формуларот за пишување програми во асемблерски јазик?
12-40. Наброј ги полињата во формуларот и што треба да се пишува во нив?

Секоја од задачите почнувајќи од бр. 12-41 до бр. 12-47 треба да ги решиш


така што ќе нацрташ блок-дијаграм на алгоритмот и ќе напишеш програм во
асемблерски јазик со линиска структура.
12-41. Одредување на прв комплемент на 8-битен број.
12-42. Собирање на два 8-битни броеви без вклучено знаменце за пренос.
12-43. Маскирање на а) пониската б) повисоката четворка од 8-битен број.
12-44. Поместување 1) налево 2) надесно на 8-битен број за а) еден бит б) два
бита преку знаменцето за пренос CY.
12-45. Конверзија на две BCD цифри а) од пакован во распакован формат б) од
распакован во пакован формат.
12-46. Одредување на втор комплемент на 8-битен број.
12-47. Одземање два цели 8-битни броеви со претпоставка дека секогаш
намалителот ќе биде помал од намаленикот.

За секоја од задачите со реден бр. 12-48, 12-49 и 12-50 дадени во


продолжение треба да нацрташ блок-дијаграм на алгоритмот и програм во
асемблерски јазик со разгранета структура кој го решава зададениот проблем.
12-48. Собирање на два 8-битни броеви, со вклучено знаменце за пренос CY.
12-49. Програма за наоѓање на а) поголемиот б) помалиот од два 8-битни броеви.
12-50. Одземање на два 8-битни броеви со земање во вид на позајмувањето.
Програмирање на општ микропроцесор 735

Секоја од задачите почнувајќи од бр. 12-51 до бр. 12-54 треба да ги решиш


така што ќе нацрташ блок-дијаграм на алгоритмот и ќе напишеш програм во
асемблерски јазик со циклична структура со повторување.
12-51. Множење на два 8-битни броја без вклучено знаменце за пренос.
12-52. Одредување сума на низа од n осум-битни броеви.
12-53. Генерирање на првите а) седум б) десет броеви од низата на Фибоначи.
12-54. Одредување на квадрат на 8-битен број.

Секоја од задачите почнувајќи од бр. 12-55 до бр. 12-61 треба да ги решиш


така што ќе нацрташ блок-дијаграм на алгоритмот и ќе напишеш програм во
асемблерски јазик со сложена структура кој го решава зададениот проблем.
12-55. Наоѓање на а) најмалиот б) најголемиот број од дадена низа броеви
12-56. Одредување на а) негативните б) позитивните броеви во дадена низа со
позната должина.
12-57. Одредување на бројот на а) единици б) нули во 8-битен податок.
12-58. Програма за наоѓање на најголемиот број од дадена низа броеви
12-59. Да се соберат само а) парните б) непарните броеви од дадена низа.
12-60. Наоѓање на 8-битен број (бајт) во дадена низа од повеќе броеви.
12-61. Проверка на парноста на секој број во дадена низа од повеќе броеви.

12-62. Да се соберат следниве броеви: а) 11, 22, 33, 44 и б) 12, 34, 56, 78 и 96,
користејќи различни начини на адресирање и инструкции соодветни на нив.
Збирот треба да биде сместен во мемориска локација чија адреса е 0690h.
А1) со примена на непосредно адресирање директно полнејќи го
акумулаторот, и директно адресирање за запамтување на резултатот, но БЕЗ
индиректно адресирање и БЕЗ циклус,
А2) со примена на непосредно адресирање директно полнејќи го
акумулаторот, и директно адресирање за запамтување на резултатот БЕЗ
индиректно адресирање и СО циклус,
Б1) со примена на непосредно и директно адресирање за полнење на
акумулаторот и запамтување на резултатот, но БЕЗ индиректно адресирање
и БЕЗ циклус,
Б2) со примена на непосредно и директно адресирање за полнење на
акумулаторот и запамтување на резултатот, но БЕЗ индиректно адресирање
и СО циклус,
В1) со примена на непосредно, директно и индиректно адресирање за
полнење на акумулаторот и запамтување на резултатот, но БЕЗ циклус,
В2) со примена на непосредно, директно и индиректно адресирање за
полнење на акумулаторот и запамтување на резултатот, но СО циклус,

12-63. Што претставува софтверски тајмер?


12-64. Нацртај блок дијаграм и напиши соодветен асемблерски програм за тајмер
со примена на а) 8–битен бројач, б) со користење на вгнездени циклуси, в) со
бројачки циклус со 16–битен бројач.
12-65. Објасни го сликовито концептот на стек меморија.
736 Програмирање на општ микропроцесор

12-66. Објасни ја а) сл. 12-31, б) сл. 12-32, в) Сл. 12-33.


12-67. Објасни го принципот на работа на а) PUSH б) POP инструкцијата со
соодветен пример.

За секоја од задачите со бр. 12-68, 12-69 и 12-70 треба да нацрташ блок-


дијаграм и да генерираш соодветен асемблерски код на потпрограмот кој го
решава поставениот проблем, а потоа истиот да го повикаш во некој главен
програм:
12-68. Потпрограм за каснење од а) 2 ms б) 5ms в) 10 ms.
12-69. Потпрограм кој ја комплементира содржината на регистерот со знаменца
12-70. Потпрограм кој ја запамтува во зададена мемориска адреса а) содржината,
б) комплемент на содржината на регистерот со знаменца.

12-71. Што претставува макро-инструкцијата и како се извршува?


12-72. Која е разликата во извршувањето на макроата и потпрограмите?
12-73. Кои се чекорите што треба редоследно да се извршат за да се примени
макрото во некој програм напишан на асемблерски јазик?
12-74. Наведи еден пример на дефинирање и повикување на некоја макро
инструкција?
12-75. Кој е форматот на SIM инструкцијата?
12-76. За примерот 1 кој претставува асемблерски код за испраќање на податоци
во сериски облик во вид на правоаголни периодични импулси преку пинот SOD
треба да нацрташ соодветен блок-дијаграм и да го објасниш.
12-77. Кој е форматот на RIM инструкцијата?
12-78. За примерот 2 кој претставува асемблерски код за броење на настани во
сериски облик преку пинот SID треба да нацрташ соодветен блок-дијаграм и да го
објасниш. Б) Задачата реши ја со претпоставка дека настанот се случил кога на
пинот SID се појавило ниско напонско ниво, т.е. на задната ивица од импулсот на
преминот од 1 на 0.
12-79. Треба да се соберат броевите 93hex со B7hex и нивниот збир да се смести
во мемориска локација со адреса 2052hex. Програмот треба да започнува (да биде
сместен во меморијата) почнувајќи од мемориска адреса 1000h заради што
веднаш уште на почетокот на програмот треба да се наведе асемблерската
директива (псеудо-инструкција) ORG 1000. Задачата реши ја најмалку со три
различни начини (методи или техники) на решавање.
II.2
Архитектура на
микрокомпјутери
Изборна настава
Наставни теми:
 8) Архитектура на општ микропроцесор
 9) Поврзување на општ микропроцесор
 10) Програмирање на општ микропроцесор
738
8.
Архитектура
на oпшт
микропроцесор
По изучувањето на оваа тематска целина
 ќе ја познавате глобалната архитектура на ОМП;
 ќе ги знаете заедничките карактеристики на општ микропроцсор;
 ќе умеете да ги дефинирате податоците на ОМП;
 ќе ја разбирате функцијата на пиновите и пин дијаграмот;
 ќе знаете да ја опишете архитектурата на ОМП;
 ќе умеете да ја објасните употребата на регистрите на ОМП и на
покажувачот на стек меморијата;
 ќе знаете да анализирате замислен-општ микропроцесор кој е
сличен со реалните 8-битни микропроцесори но е поедноставен за
употреба;
 ќе анализирате со примена на блок дијаграм;
 ќе знаете да решавате задачи од оваа област.
740 Архитектура на општ микропроцесор
Архитектура на општ микропроцесор 741

Вовед

Во рамките на редовната настава, во тематската целина Тема 10:


Архитектура на општ микропроцесор, ја изучувавме податочната и контролната
единица, а потоа фокусот го ставивме врз фукционалната блок-шема на општиот
микропроцесор (ОМП) и неговиот пин дијаграм т.е. конфигурацијата на пиновите,
објаснувајќи ја во детали улогата на секој негов составен блок и секој негов пин.
Покрај тоа ги наброивме и фазите на извршување на било која машинска
инструкција. Дополнително, детално анализиравме еден пример за извршување
на инструкција.
Во таа тематска целина се запознавме и со временските циклуси за извршу-
вање на една инструкција, воедно објаснувајќи ги и нивните временски дијаграми.
Во продолжение ќе дадеме повеќе прашања и задачи со цел да го повториме и
утврдиме наученото и да ги продлабочиме и прошириме знаењата во врска со
оваа проблематика. Со примена на знаењата на теоретските основи од
материјалот, обработен во редовната настава, ќе треба да ги најдете одговорите
на поставените прашања и да ги решите поставените задачи.

На сл. 8-1 е прикажан функционалниот пин дијаграм на ОМП, во кој пиновите


се означени со броеви и групирани според својата функција што ја извршуваат.
Од вас се бара:
1) да ги препознаете пиновите и за секој од нив да ја наведете кратенката
со која тој пин се означува и
2) за секоја група пинови во куси црти, кратко и јасно, да елаборирате која е
нивната улога во поврзувањето на ОМП со периферните компоненти во
мкп системот: мемориските интегрирани кола и влезно/ излезните порти.

На сл. 8-2 е прикажана функционалната блок шема на ОМП, во која


функционалните единици се означени со броеви. Од вас се бара:
1) да ги препознаете функционалните единици, и за секоја од нив, означена
со соодветен број, да наведете за која функционална единица станува
збор,
2) за секоја функционална единица, во куси црти, јасно да објасните преку
кратко елаборирање која е нејзината улога во архитектурата на ОМП и во
функционирањето на ОМП.
742 Архитектура на општ микропроцесор

Сл. 8-1. Функциски пин-дијаграм на ОМП

Сл. 8-2. Функциски пин-дијаграм на ОМП


Архитектура на општ микропроцесор 743

Сл. 8-3. Функционална блок шема на општиот микропроцесор


744 Архитектура на општ микропроцесор

Во продолжение е прикажано извршувањето на три примери на инструкции,


секоја со своите две фази: земање на кодот на операција (КОП) на инструкцијата
и негово извршување. Заради полесно разбирање на процесирањето на анализи-
раните инструкции се применува блоковска презентација.
Пример 1. Извршување на инструкцијата MVI B, 78H (Сл. 8-4 и 8-5):
Со оваа инструкција во регистерот В на микропроцесорот се внесува бајтот 78H.
Ќе претпоставиме дека програмскиот бројач на микро/процесорот ја содржи адре-
сата 2000H и дека содржината на таа мемориска локација е КОП на инструкцијата
MVI B, 78H. За да ја изврши оваа инструкција во нејзината прва фаза, микро-
процесорот од меморијата го презема нејзиниот КОП според блок-шемата дадена
на сл. 8-4 а). Во втората фаза од извршувањето, податокот 78H кој се наоѓа во
мемориската локација веднаш под кодот на операција со адреса 2001Н, се прене-
сува во регистерот В, како што е прикажано со блок-шемата на сл. 8-4 б).

Сл. 8-4 а) и сл. 8-4 б) Две фази на извршување на инструкцијата MVI B, 78H
Архитектура на општ микропроцесор 745

На следните две слики: сл. 8-5 а) и сл. 8-5 б) исто така со блок-шема, но во
една поедноставна варијанта, е презентирано извршувањето на истата инструк-
ција MVI B, 78H со која бајтот 78Н непосредно се пренесува, поточно се копира и
се вметнува како нова содржина во регистерот В.

Сл. 8-5 а) б) Две фази на извршување на инструкцијата MVI B, 78H


Пример 2. Извршување на инструкцијата MOV M, C (Сл. 8-6): Со
извршувањето на оваа инструкција податокот од регистерот С се запишува,
поточно се копира, во мемориска локација, чија адреса е сместена во
регистерскиот пар H||L. При ова, содржината на С-регистерот останува
непроменета и истата се запамтува во мемориската локација, која е поинтирана со
регистерскиот пар H||L.
746 Архитектура на општ микропроцесор

Во првата фаза од извршувањето на оваа инструкција микропроцесорот од


меморијата го презема нејзиниот КОП според блок-шемата дадена на сл. 8-6 а). За
да имаме поконкретна претстава што се случува по извршувањето на инструк-
цијата MOV M, C ќе претпоставиме дека содржината на програмскиот бројач PC е
3000hex, податокот во акумулаторот А е 10hex, во регистерот В се наоѓа 23hex, во
C е сместен 45hex, додека во H е внесен 67hex, а во регистерот L има 89hex.
Содржината на мемориската локација чија адреса е 6789Н нека биде 77Н. Имајќи
ги во вид овие конкретни вредности, јасно е дека КОП на инструкцијата се наоѓа
на адреса 3000Н и дека во мемориската локација, чија адреса е 6789Н се
пренесува бајтот 45Н кој се запамтува како нејзина нова содржина.

Сл. 8-6 а) б) Две фази на извршување на инструкцијата MOV M, C


Пример 3. Извршување на инструкцијата MOV В, М (Сл. 8-7): По
процесирањето на оваа инструкција бајтот, запамтен како содржина на мемориска
локација, чија адреса е поинтирана од регистерскиот пар H||L се пренесува,
Архитектура на општ микропроцесор 747

поточно се копира во регистерот В. Имено, податокот во мемориската локација


адресирана со регистерскиот пар H||L останува непроменета и истата се сместува
како нова содржина во регистерот В. Вообичаено, во првата фаза од
извршувањето на оваа инструкција микропроцесорот од меморијата го презема
нејзиниот ОМП според блок-шемата дадена на сл. 8-7 а).

Сл. 8-7 а) б) Две фази на извршување на инструкцијата


За да разбереме што конкретно се случува по извршувањето на инструкцијата
MOV В, М ќе претпоставиме дека сега содржината на програмскиот бројач PC е
5000hex, додека содржините на другите регистри се исти како во претходниот
пример: бајтот сместен во акумулаторот А е 10hex, податокот во регистерот В е
23hex, во C се наоѓа 45hex, во H е внесена содржината 67hex, во регистерот L е
748 Архитектура на општ микропроцесор

сместен бајтот 89hex, додека содржината на мемориската локација чија адреса е


6789Н нека биде 77Н. Земајќи ги предвид овие конкретни вредности, јасно е дека
КОП на инструкцијата се наоѓа на адреса 5000Н и дека содржината од
мемориската локација чија адреса е 6789Н како нов податок се пренесува,
поточно се копира, во регистерот В, па така неговата нова содржина ќе биде 77Н.
Следните временски дијаграми се примери за извршување на повеќе
различни машински инструкции наведени во асемблерски јазик. Инструкцискиот
циклус на секоја инструкција е презентиран со своите машински циклуси. Во
врска со ова, првиот машински циклус на секоја асемблерска инструкција е
пре/земање не нејзиниот код на операција (КОП) кој вообичаено трае четири Т-
состојби (4-Тѕ). Сепак, за некои инструкции оваа фаза може да трае подолго за
уште две Т-состојби и да трае вкупно шест Т-состојби (6-Тѕ). Имајќи го ова
предвид, во објаснувањето и анализата на временските циклуси на инструкциите
кои следуваат како примери, за првата фаза е претпоставено нејзино траење од
четири Т-состојби. Доколку биде разгледан пример чија фаза на пре/земање на
КОП трае шест Т-состојби, тоа ќе биде експлицитно наведено. Овде ќе
потенцираме дека КОП е еднозначно определен и различен за секоја инструкција.
MOV A, B (“Пренеси В во А“) (Сл. 8-8): Содржината на регистерот B се
пренесува во акумулаторот: A(B). Поточно тој податок се копира бидејќи по
извршувањето на оваа инструкција за која е потребен еден машински циклус на
пре/земање на КОП (FMC) содржината на регистерот B останува непроменета.

ADD B (“Собери В со А“):


Содржината на регистерот B
(аритметички) се собира со содржината
од акумулаторскиот регистер и збирот се
сместува во акумулаторот.
Содржината на регистерот В останува
непроменета, додека претходната
содржина на акумулаторот која го
претставуваше вториот собирок се губи
бидејќи во акумулаторот се сместува
збирот од регистерот В и старата
содржина на акумулаторот: А(A)+(B).
За извршување на оваа инструкција е
потребен само еден машински циклус на
пре/земање на КОП (FMC).
Сл. 8-8. Инструкција MOV A, B

MVI A, 45H (“Пренеси непосредно бајт 45Н во А“) (Сл. 8-9): Со извршува-
њето на оваа инструкција податокот 45Н непосредно се сместува во акумулаторот
регистер. Извршувањето и на оваа инструкција се изведува во два машински
циклуси: пре/земање на КОП од RAM-меморијата од локацијата адресирана од
програмскиот бројач и потоа читање на мемориската локација која има адреса
што е за 1 поголема од адресата каде што беше сместен КОП (FMC и RMMC). Во
втората мемориска локација е сместен бајтот 45Н.
Архитектура на општ микропроцесор 749

Сл. 8-9. Инструкција MVI A, 45H


MOV M, A (“Пренеси А во М“) (сл.8-10): Со извршувањето на оваа инструкција
бајтот од акумулаторскиот регистер се запишува, поточно се копира, во
мемориска локација чија адреса се наоѓа во регистерскиот пар H||L. Имено,
содржината на акумулаторот останува непроменета, и истата таа содржина се
запамтува во мемориската локација која е адресирана со регистерскиот пар H||L.
За извршување на оваа инструкција се потребни два машински циклуси:
пре/земање на КОП од RAM-меморијата од локацијата адресирана од
програмскиот бројач и запишување на тој податок во мемориската локација
поинтирана со содржината на регистерскиот пар H||L (FMC и WMMC).

Сл. 8-10. Инструкција MOV M, A


MOV A, M (“Пренеси М во А“) (Сл. 8-11): Ефектот од извршувањето на оваа
инструкција е спротивен во однос на инструкцијата MOV M, A. Имено, сега
содржината на мемориската локација која е адресирана со регистерскиот пар H||L
се внесува, поточно се копира, во акумулаторскиот регистер. Содржината на
мемориската локација останува непроменета, и истата таа содржина се сместува
во акумулаторот. Извршување на оваа инструкција се реализира со два машински
циклуси: пре/земање на КОП од RAM-меморијата од локацијата адресирана од
програмскиот бројач и читање на податокот од мемориската локација поинтирана
со содржината на регистерскиот пар H||L (FMC и RMMC).
750 Архитектура на општ микропроцесор

Сл. 8-11. Инструкција MOV A, M


MVI M, 96H (“Пренеси непосредно 96Н во М“) (Сл. 8-12): Со извршувањето
на оваа инструкција податокот 96Н се запамтува во мемориска локација чија
адреса се наоѓа во регистерскиот пар H||L (мемориска локација која е адресирана
со регистерскиот пар H||L). За извршување на оваа инструкција се потребни три
машински циклуси: пре/земање на КОП од RAM-меморијата од локацијата
адресирана од програмскиот бројач, потоа читање на следната мемориска
локација која го содржи податокот 96Н, и како трет машински циклус е
запишувањето на тој податок во мемориската локација поинтирана со содржината
на регистерскиот пар H||L (FMC, RMMC и WMMC).

Сл. 8-12. Инструкција MVI M, 96H


INR M (“Зголеми М за 1“) (Сл.8-13): Содржината на мемориска локација чија
адреса се наоѓа во регистерскиот пар H||L се зголемува за 1. За извршување на
оваа инструкција се потребни три машински циклуси: пре/земање на КОП од RAM-
меморијата од локацијата адресирана од програмскиот бројач, потоа читање на
мемориската локација која е адресирана со содржината на регистерскиот пар H||L
и нејзино зголемување за 1, и на крај како трет машински циклус е запишување
на тој зголемен број назад во истата мемориската локација поинтирана од
рехистерскиот пар H||L (FMC, RMMC и WMMC).
Архитектура на општ микропроцесор 751

Сл. 8-13. Инструкција INR M


ADD М (“Собери А со М“) (Сл.8-14): Содржината на мемориска локација чија
адреса се наоѓа во регистерскиот пар H||L се собира со содржината на
акумулаторот и резултатот се внесува во акумулаторот. За извршување на оваа
инструкција се потребни два машински циклуси: пре/земање на КОП од RAM-
меморијата од локацијата адресирана од програмскиот бројач и потоа читање на
мемориската локација која има адреса што е за 1 поголема од адресата каде што
беше сместен КОП (FMC и RMMC).

Сл. 8-14. Инструкција ADD М


STA 2000H (“Запамти бајт од А на адреса 2000Н“) (Сл.8-15): Со оваа
инструкција содржината на акумулаторот се запишува, поточно се копира, во
мемориска локација чија што адреса е 2000Н. Првиот машински циклус на
инструкцијата е земање на КОП, вториот и третиот машински циклуси се читање
на следните две мемориски локации каде што се наоѓа дво-бајтната мемориска
адреса 2000H, и како последен четврт машински циклус е запишување на
податокот од акумулаторот во адресираната мемориска локација чија адреса
2000H. (FMC, RMMC1, RMMC2, WMMC).
752 Архитектура на општ микропроцесор

Сл. 8-15. Инструкција STA 2000H


LDA 2000H (“Внеси во А бајт од адреса 2000Н“) (Сл.8-16): Oваа инструкци-
ја извршува спротивна операција во однос на инструкцијата STA 2000H. Имено,
сега содржината на мемориска локација чија што адреса е 2000Н се пренесува,
поточно се копира, во акумулаторот. И оваа инструкција извршува за 4 машински
циклуси: Првиот машински циклус на инструкцијата е земање на КОП, вториот и
третиот машински циклуси се читање на следните две мемориски локации каде
се наоѓа дво-бајтната мемориска адреса 2000H, и како последен четврт машински
циклус е повторно читање на адресираната мемориска локација чија адреса е
2000H и негово внесување во акумулаторот. (FMC, RMMC1, RMMC2, RMMC3).

Сл. 8-14. Инструкција LDA 2000H


OUT 09H (“Испрати бајт од А во излезна порта со адреса 09Н“) (Сл.8-17):
Со оваа инструкција содржината на акумулаторот се запишува, поточно се
копира, во излезна порта чија што адреса е 09Н. Како и секогаш, првиот машин-
ски циклус на инструкцијата е преземање на нејзиниот КОП, вториот машински
циклус е читање на следната мемориска локација каде што се наоѓа адресата на
портата 09H, и како последен трет машински циклус е пренесување на податокот
од акумулаторот во адресираната порта со адреса 09H. (FMC, RMMC, WOMC).
Архитектура на општ микропроцесор 753

Сл. 8-17. Временски дијаграми на Инструкцијата OUT 09H


IN 06H (“Прифати бајт од излезна порта со адреса 06Н во А“) (Сл.8-18):
По извршувањето на оваа инструкција податокот кој се наоѓа во влезната порта
со адреса 06Н се внесува, поточно се копира, во акумулаторот. Вообичаено,
првиот машински циклус на оваа инструкцијаа е преземање на нејзиниот КОП,
вториот машински циклус е читање на следната мемориска локација каде што се
наоѓа адресата на влезната портата 06H, и трет машински циклус е пренесување
на податокот од адресираната влезна порта во акумулаторот. (FMC, RМMC, RIMC).

Сл. 8-18. Временски дијаграми на Инструкцијата IN 06H

INX H (“Зголеми за 1 проширено Н“) (Сл.8-19): Со оваа инструкција содржи-


ната на регистерскиот пар H||L се зголемува (инкрементира) за 1. За извршување
на оваа инструкција е потребен само еден машински циклус на пре/земање на
КОП (FMC) од RAM-от. Во оваа инструкција процесорот “ги гледа“ двата регистри
како еден и заради тоа фазата на преземање на КОП трае шест Т-состојби, или
две Т-состојби подолго од воообичаените четири.
754 Архитектура на општ микропроцесор

Сл. 8-19. Инструкција INX H


LXI H, 1234H (“Внеси проширено во Н непосредно двобајт 1234Н“)
(Сл.8-20): Со оваа инструкција во регистерскиот пар H||L непосредно се внесува
двобајтен податок 1234Н. За извршување на оваа инструкција се потребни три
машински циклуси од кои првиот е земање на КОП од мемориска локација чија
адреса се наоѓа во програмскиот бројач, а вториот и третиот машински циклус се
читање на содржините на следните две мемориски локации кои се наоѓаат
веднаш под локацијата кадешто е сместен КОП. На тие две адреси е сместен
двобајтниот податок 1234Н: во првата локација под КОП е сместен бајтот 12Н, а
во таа после неа 34Н. Во првото читање во регистерот L се пренесува 34Н, а со
второтo читање во регистерот H се внесува 12Н. (FMC, RMMC1, RMMC2).

Сл. 8-20. Временски дијаграми на Инструкцијата LXI H, 1234H


JUMP 2345Н: Инструкција за безусловен скок, безусловно гранење
(“Скокни на адреса 2345Н“) (Сл.8-21): Со оваа инструкција се менува
редоследното извршување на програмските инструкции бидејќи во програмскиот
бројач се внесуваат два бајти кои претставуваат мемориска адреса 2345Н. Со ова,
по извршувањето на оваа инструкцијата, извршувањето на програмот продолжува
со инструкцијата чиј КОП се наоѓа во мемориската локација со адреса 2345Н. За
извршување на оваа инструкција се потребни три машински циклуси: пре/земање
Архитектура на општ микропроцесор 755

на КОП од RAM-меморијата од локацијата адресирана од програмскиот бројач,


потоа читање на следната мемориска локација под неа чија адреса е поголема за
1 каде што е сместен понискиот бајт од адресата 45Н, и уште едно читање на
следната мемориска локација каде што се наоѓа повисокиот адресен бајт 23Н.
Понискиот адресен бајт 45Н се внесува во понискиот бајт од програмскиот бројач,
додека повисокиот адресен бајт 23H се внесува во повисокиот бајт на
програмскиот бројач. (FMC, RMMC1 и RMMC2).

Сл. 8-21. Временски дијаграми на Инструкцијата JUMP 2345Н


JZ 6789H: Инструкција за условен скок, условно гранење (“Скокни на
адреса 6789Н ако резултатот е нула“).
Постојат две можности за извршување на оваа инструкција:
1) Ако условот е исполнет (Сл.8-22) тогаш е поставено знаменцето за
нула (Z=1) и следна инструкција која што треба да се изврши е онаа што се
наоѓа во мемориска локација со адреса 6789Н.
Извршувањето оваа инструкција кога условот е исполнет (Z=1) е аналогно
на извршувањето на инструкцијата за безусловен скок за што се потребни три
машински циклуси и тоа пре/земање на КОП од RAM-меморијата од локацијата
адресирана со програмскиот бројач, и потоа читање на двете последователни
мемориски локации под неа каде се наоѓа адресата 6789Н. (FMC, RMMC1 и
RMMC2).
756 Архитектура на општ микропроцесор

Сл. 8-22. Временски дијаграми на Инструкцијата JZ 6789H (со исполнет услов)


2) Ако условот НЕ е исполнет (сл.8-23) тогаш е ресетирано знаменцето за
нула (Z=0) и тогаш инструкцијата што треба да се изврши е онаа што се
наоѓа во следната мемориска локација. Во овој случај нема скок, туку
програмот продолжува редоследно да да извршува со следната
инструкција.
Извршувањето на оваа инструкција ако условот НЕ е исполнет (Z=0), се
извршува со два машински циклуси и тоа: пре/земање на КОП од RAM-
меморијата од локацијата адресирана со програмскиот бројач, и потоа читање
само на првата последователна мемориска локација под неа каде се наоѓа
понискиот бајт од адресата на следната инструкција кој се сместува во
понискиот бајт на програмскиот бројач. (FMC и RMMC).

Сл. 8-23. Инструкцијата JZ 6789H (со неисполнет услов)


Архитектура на општ микропроцесор 757

LHLD 1234Н: (“Во HL внеси двобајт од адреса 1234Н“) (Сл. 8-24): Со оваа
инструкција во регистерскиот пар H||L се внесуваат два бајти од кои првиот е
запамтен во мемориска локација 1234Н, а вториот во следната локација со
адреса 1235Н. За извршување на оваа инструкција се потребни пет машински
циклуси од кои првиот е земање на КОП од мемориска локација чија адреса се
наоѓа во програмскиот бројач. Вториот и третиот машински циклус се читање на
содржините на следните две мемориски локации кои се наоѓаат веднаш под
локацијата кадешто е сместен КОП. На тие две адреси е сместена адресата на
двобајтниот податок 1234Н. Во првото читање во понискиот бајт од меморискиот
бафер-адресен регистер (MAR) пренесува 34Н, а со второто читање во неговиот
повисок бајт се внесува 12Н. (FMC, RMMC1, RMMC2, RMMC3, RMMC4). Четвртиот и
петтиот машински циклус повторно се циклуси на читање од меморијата. Имено,
сега прво се чита податокот запамтен на мемориска локација со адреса 1234Н и
се внесува (копира!) во регистерот L, и на крај се чита податокот запамтен на
мемориска локација со адреса 1235Н кој се пренесува (копира!) во регистерот Н.
SHLD 5678Н: (“Двобајт од HL запиши во адреса 5678Н“) (Сл. 8-25): Со
оваа инструкција двата податоци, кои претставуваат содржини на регистерскиот
пар H||L се запамтуваат во две мемориски локации со адреси 5678Н и 5689Н. За
извршување на оваа инструкција се потребни пет машински циклуси од кои
првиот е земање на КОП од мемориска локација, чија адреса се наоѓа во
програмскиот бројач. Вториот и третиот машински циклус се читање на
содржините на следните две мемориски локации кои се наоѓаат веднаш под
локацијата, кадешто е сместен КОП. На тие две адреси е сместена адресата 5678Н
кадешто треба да се запише двобајтниот податок од регистерскиот пар H||L. Во
првото читање во понискиот бајт од меморискиот бафер-адресен регистер (MAR)
пренесува 78Н, а со второто читање во неговиот повисок бајт се внесува 56Н.
(FMC, RMMC1, RMMC2, RMMC3, RMMC4). Четвртиот и петтиот машински циклус се
циклуси на запишување во меморија. Имено, најпрво податокот, кој претставува
содржина на регистерот L, се копира и се запамтува во мемориска локација со
адреса 5678Н, и на крај се запишува податокот од регистерот Н на мемориска
адреса 5679Н.
758 Архитектура на општ микропроцесор

Сл. 8-24. и сл. 8-25 Временски дијаграми на Инструкциите LHLD 1234Н и SHLD 5678Н
9.
Поврзување на
општ микро-
процесор
По изучувањето на оваа тематска целина
 Ќе знаете да ја објасните организацијата на наједноставен
микрокомпјутер со примена на општиот микропроцесор;
 Ќе можете да го објасните поврзувањето со ROM и RAM
меморијата;
 ќе го анализирате поврзувањето со практични В/И порти;
 ќе го толкувате адресното декодирање;
 ќе анализирате примери за различни начини на пренос на
податоци, просторно адресирање и временско ускладување.
 ќе знаете да обработувате различни примери и задачи за
микрокомпјутерскиот систем базиран на општиот МКП со
потенцирање на улогата на минималниот систем;
 ќе користите блоковски пристап;
 за секое поврзување ќе знаете да користите посебна блок шема
(пример или задача), за да го објасните адресирањето,
временските дијаграми, а со тоа и принципот на работа,
DMA
760 Поврзување на општиот микропроцесор
Поврзување на општиот микропроцесор 761

Вовед
Со методските единици обработени во првиот дел од истоименета тематска
целина во задолжителната настава беа опфатени и опишани техниките за
поврзување (мапирање, адресирање) на полупроводничките RAM и E/P/ROM
мемориски ИК-а со случаен пристап, како и на наједноставните В/И компоненти
како што се прекинувачите за внесување на влезни податоци, односно
светлечките LED диоди за прикажување на излезните резулатати. При тоа беа
анализирани и неколку конкретни, но поедноставни примери.
Во вториот дел од таа тематска целина беа презентирани основните
концепти на поврзување на различните периферни уреди на системската
магистрала со микро/процесорот. Во врска со тоа, беа објаснети базичните
концепти за пренос на податоци помеѓу В/И уредите и оперативната RAM
меморија и тоа двете техники на софтверски контролираниот пренос, програмски
контролираниот и прекидниот влез/излез, и директниот мемориски пристап (ДМП)
како единствена техника на хардверски контролиран пренос.
Заради продлабочување и проширување на стекнатите знаења, во
продолжение ќе бидат разработени неколку дополнителни примери за
поврзување на општиот микропроцесор со полупроводнички RAM и E/P/ROM
чипови. Покрај нив ќе се сретнеме и со логички шеми кои за внесување на влезни
податоци користат прекинувачи како наједноставните В/И компоненти, односно
светлечки LED диоди за прикажување на излезните резулатати.

9.1. Поврзување на мемориски компоненти


Пример 1 (сл. 9-1): (2x8KВ EPROM 2764 и 2x2KB RAM 6116). Да се
дизајнира микропроцесорски систем за ОМП кој ќе содржи 16 KB EPROM и 4KB
RAM. На располагање имаме четири полупроводнички мемориски компоненти и
тоа две 8KB EPROM мемориски кола 2764 и два RAM мемориски чипови 6116 од по
2KB. Должината на мемориските зборови за секое од овие кола е 1 бајт, така што
внатрешната организација на ЕPROM-чиповите е 8К збора х 8b, додека на RAM ик-
а е 2K збора x 8 b.
На сл. 9-1 е прикажан ваквиот мемориски систем во кој се употребени и на
соодветен начин поврзани зададените мемориски ИК-а.

Сл. 9-1. а) Логичка шема на поврзување на 2x8KВ EPROM и 2x2KВ RAM со ОМП
762 Поврзување на општиот микропроцесор

На секое 8 KB EPROM ИК му се
приклучени 13 адресни линии, поконкретно
пониските 13 водови од адресната
магистрала: А12А11А10, ..., ...А2А1А0. На
секој 2KB RAM мемориски чип, во однос на
EPROM-ите, му се потребни две адресни
линии помалку заради тоа што 2К зборови х 1
В = (2 х 1К) В = (2 х 1024) В = (2^1x2^10) В
= 2^11, или поконкретно 11 адресни линии.
Исто како за EPROM-ите претходно, така и
сега, на RAM чиповите за поврзување на
адресната магистрала ќе ги искористиме
нејзините пониски 11 водови: А10А9, ...,
А2А1А0. За адресирање на некој од 4-те
мемориски компоненти ќе ги користиме
преостанатите 3 повисоки адресни линии на
адресната магистрала: А15А14А13. Со нивно
декодирање ќе ги добиеме 4-те сигнали за
селекција на чип CS1*, CS2*, CS3* и CS4*.
Мемориската мапа на вака
проектираниот МКП систем е прикажана на
сл. 9-1 и со Таб. 9-1.
Сл. 9-1. б) Мемориска мапа на МКП систем со
2x8KВ EPROM и 2x2KВ RAM

Битови на адресната магистрала


N3 N2 N1 N0 HEX
Мемориски ИК -а А А А А А А А А А А А А А А
А9 А8 Адреса
/капацитет 15 14 13 12 11 10 7 6 5 4 3 2 1 0
Почетна адреса на
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0000H
EPROM 1
Крајна адреса на
0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1FFFH
EPROM 1
Почетна адреса на
0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 2000H
EPROM 2
Крајна адреса на
0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3FFFH
EPROM 2
Почетна адреса на
0 1 0 X X 0 0 0 0 0 0 0 0 0 0 0 4000H
RAM 1
Крајна адреса на
0 1 0 X X 1 1 1 1 1 1 1 1 1 1 1 47FFH
RAM 1
Почетна адреса на
0 1 1 X X 0 0 0 0 0 0 0 0 0 0 0 6000H
RAM 2
Крајна адреса на
0 1 1 X X 0 1 1 1 1 1 1 1 1 1 1 67FFH
RAM 2

Таб. 9-1. Мемориска табела на МКП систем со 2x8KВ EPROM и 2x2KВ RAM
Поврзување на општиот микропроцесор 763

Пример 2 (сл. 9-2): (2KВ EPROM и 2KВ RAM). Да се проектира МКП систем
со ОМП кој ќе располага со 2 KB EPROM и 2 KB RAM. Адресниот простор на
EPROM-от треба да започнува од почетна адреса 0000h, додека првата адреса на
RAM-от треба да биде 6000h. Претпостави дека на располагање стојат соодветни
мемориски чипови кои се бајт-организирани, секој од нив со еднаков капацитет од
по 2 КВ (2 КВ збора х 8 b = 2 KВ збора х 1 B)

Сл. 9-2. а) Логичка шема на поврзување на ОМП со 2x8KВ EPROM и 2x2KВ RAM

Бараното решение е дадено на сл. 9-2 б). Заради еднаквиот капацитет и


истата организација од 2 K збора х 1 B и на двете мемориски кола ќе треба да се
поврзат 11 адресни линии со кои ќе бидат избирани адресите на нивните
мемориски локации. Поврзувањето повторно ќе се изврши на 11-те пониски линии
од адресната магистрала А10А9А8, ..., А2А1А0 од кои адресата на првата
мемориска локација треба да биде 000 0000 0000 или 000hex, а на последната 111
1111 1111 или 7FFhex. Преостанатите 5 повисоки адресни линии
А15А14А13А12А11 ќе бидат искористени за генерирање на двата сигнали за
селекција на чиповите: CS1* и CS2*.
764 Поврзување на општиот микропроцесор

Ова значи дека првата адреса како на EPROM, така и на RAM-чипот треба
да биде со следниов облик: xxxx x000 0000 0000. Меѓутоа, во задачата се бара
конкретно за EPROМ-от таа да биде 0000h, додека на RAM-от 6000h. Од тука
произлегува дека повисоките пет адресни битови за EPROМ-от треба да бидат
А15А14А13А12А11=00000, додека за RAM-от А15А14А13А12А11=01010. Така,
почетната адреса на EPROМ-от ќе биде 0000 0000 0000 0000 (=0000h), а после-
дната 0000 0111 1111 1111 (=07FFh), додека RAM-блокот мемориски локации ќе
започнува од адреса 0110 0000 0000 0000 (=6000h), па сѐ до неговата последна
адреса 0110 0111 1111 1111 (=67FFh). Таблицата со мемориски адреси е
прикажана како таб. 9-2 додека мемориската мапа на сл. 9-2.
Битови на адресната магистрала
N3 N2 N1 N0 HEX
Мемориски ИК -а А А А А А А А А А А А А А А
А9 А8 Адреса
/капацитет 15 14 13 12 11 10 7 6 5 4 3 2 1 0
Почетна адреса на
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0000H
EPROM
Крајна адреса на
0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 07FFH
EPROM
Почетна адреса на
0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 6000H
RAM
Крајна адреса на
0 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 67FFH
RAM

Таб. 9-2. Мемориска табела на МКП систем со 2x8KВ EPROM и 2x2KВ RAM

Во овој пример декодирањето на


адресите е целосно, но постои мемориски
простор кој е покриен и со EPROМ и со RAM
чиповите и не се гледа заради начинот на
поврзување на високите адресни битови на
декодерот 74х138. Тој простор НЕ може да се
користи заради нив. Имено, на еден излез од
декодерот можи да се поврзи 8К мемориско
коло, а ние врзуваме на два излези по 2 К.
Наместо да врзиме 2х8К=16К, ние врзуваме
само 2х2К, или само 4К. Овој мемориски
простор е покриен - недостапен, а НЕ е скриен
(прикриен, редундантен).

Сл. 9-2. б) Мемориска мапа на МКП систем со


2x8KВ EPROM и 2x2KВ RAM
Поврзување на општиот микропроцесор 765

Пример 3 (сл.9-3): (2KB EPROM и 2KB RAM). Оваа задача претставува


варијација на претходната. Имено, и со решението кое е понудено на сл. 9-3 а) на
ОМП се поврзуваат два мемориски чипа и тоа еден 2 KB EPROM и еден 2 KB RAM.
Главната разлика е во тоа што за нивна селекција се користи само еден инвертор
кој е приклучен на највисоката дресна линија А15, а НЕ адресен декодер 74х138
со што се добива значително поедноставна конфигурација. Како последица на ова
EPROM-от ќе биде адресиран со 16 различни адреси од кои највисокиот адресен
бит ќе биде 0, додека RAM интегрираното коло ќе биде адресирано со останатите
16 адреси чијшто бит со најголема тежина е 1. Имено, од повисоките адресни
линии кои можат да се користат за селекција на мемориските чипови единствено
се користи највисоката адресна линија А15, одека преостанатите четири:
А14А13А12А11 се неповрзани и заради тоа што се оставени слободни секоја од
можните 16 комбинации пред кои стои 0 ќе го адресира EPROM-чипот, додека
истите тие 16 комбинации пред кои стои 1 ќе го адресира RАM-чипот.

Сл. 9-3. а) Логичка шема на поврзување на ОМП со мемориски систем со 2KB EPROM и
2KB RAM
Селекцијата на EPROM-от ќе биде со почетна адреса 0ххх х000 0000 0000 и
крајна адреса 0ххх х111 1111 1111, додека селекцијата на RАM-от ќе биде со
почетна адреса 1ххх х000 0000 0000 и крајна адреса 1ххх х111 1111 1111.
766 Поврзување на општиот микропроцесор

Во овој пример декодирањето на


адресите е парцијално при што првата
половина од 32КВ од вкупниот
адресибилен простор од 64 КВ на
микро-процесорот е скриена со EPROМ-
от, додека втората половина е
прикриена со RAM-от. Ваквата
редундантност во адресниот простор
на ОМП најдобро се гледа од
таблицата со мемориски адреси табела
9-3, како и од мемориската мапа која е
прикажана на слика 9-3.

Сл. 9-3. б) Мемориска мапа на МКП систем


со 2KB EPROM и 2KB RAM

Битови на адресната магистрала


N3 N2 N1 N0 HEX
Мемориски ИК-а А А А А А А А А А А А А А А
А9 А8 Адреса
/капацитет 15 14 13 12 11 10 7 6 5 4 3 2 1 0
1) Почетна адреса
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0000H
на EPROM /2 КВ
Крајна адреса на
0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 07FFH
EPROM
2) Почетна адреса
0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0800H
на EPROM /2 КВ
Крајна адреса на
0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0FFFH
EPROM
… …
15) Почетна адреса
0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 7700H
на EPROM /2 КВ
Крајна адреса на
0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 7FFFH
EPROM
16) Почетна адреса
0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 7800H
на EPROM /2 КВ
Крајна адреса на
0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7FFFH
EPROM

Табелата продолжува
Поврзување на општиот микропроцесор 767

Продолжение на табелата
Битови на адресната магистрала
N3 N2 N1 N0 HEX
Мемориски ИК-а А А А А А А А А А А А А А А
А9 А8 Адреса
/капацитет 15 14 13 12 11 10 7 6 5 4 3 2 1 0
1) Почетна адреса
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8000H
на RAM /2 КВ
Крајна адреса на
1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 87FFH
RAM
2) Почетна адреса
1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 8800H
на RAM /2 КВ
Крајна адреса на
1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 8FFFH
RAM
… …
15) Почетна адреса
1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 F000H
на RAM/2 КВ
Крајна адреса на
1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 77FFH
RAM
16) Почетна адреса
1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 F800H
на RAM/2 КВ
Крајна адреса на
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 FFFFH
RAM

Таб. 9-3. Мемориска табела на МКП систем со 2KB EPROM и 2KB RAM

9.2. Поврзување на В/И компоненти


Пример 4 (Сл. 9-4): Издвоено адресирање на излезна порта на адреса 86H со
апсолутно декодирање на адресите.
ОМП може да испраќа 8-битни податоци на некоја излезна компонента како
што е на пр. множество од 8 светлечки LED диоди, 7 сегментен LED дисплеј,
паралелен порт на печатар, и сл. На сл. 9-4 е дадена една принципиелна шема на
електрично коло со кое на ОМП е поврзана излезна порта реализирана со 8 D-
лечови преку која ќе се испраќа 8-битен податок со што ќе може да се засветли,
или да се изгасне една, било која од 8-те светлечки LED диоди. Диодите се
поврзани на таков начин, кој ќе овозможи одредена диода да светне ако
излезниот пин, на кој таа е поврзана, се најде на ниско логичко ниво. И во оваа
шема како адресно декодерско коло се користи 3-во-8 декодерот 74LS138 и
излезот Y6 од декодерот кој оди/се поврзува на првиот влез од едно логичко
НИЛИ коло со два влеза, а вториот влез е контролниот сигнал за запишување во
излезна компонента IOWR*. Излезот од НИЛИ колото генерира сигнал за селек-
ција на В/И компонента така што го овозможува заклучувањето на излезниот бајт
на податочната магистрала. Комбинацијата на тие битови предизвикува
засветлување на едни, односно гасење на други светлечки диоди. Адресата на
оваа излезна компонента е 86h бидејќи сигналот за избор оди на високо логичко
ниво само кога адресните битови присутни на 8-те пониски битови од адресната
магистрала А7 – А0 имаат вредност А7А6А5А4А3А2А1А0 = 1000 0110 = 86h.
768 Поврзување на општиот микропроцесор

Сл. 9-4. Логичка шема на посебно адресирана излезна порта со адреса 86H која е
целосно декодирана
Селекциони влезови Активен
Селекција на декодерско ИК Хекса Адреса
до декодерот излез

А7 А6 А5 А4 А3 А2 А1 А0 Излезна Порта Y6

1 0 0 0 0 1 1 0 86Н 0

Таб. 9-4. Табела на В/И адреси за логичката шема од сл. 9-4


Бидејќи сигналот за дозвола за заклучување е активен на високо ниво, сега
ќе употребиме едно НИЛИ логичко коло со два влеза чијшто излез ќе биде
приклучен токму на влезот за овозможување (дозвола) на заклучувањето LE кој е
активен на високо логичко ниво. На првиот влез од дво-влезното НИЛИ логичко
коло ќе биде приклучен декодираниот 6-ти излез од декодерот, додека на
неговиот втор влез ќе се поврзе контролната линија за запишување IOWR*. На
ваков начин излезниот леч ќе се активира само кога едновремено бидат активни
на ниско логичко ниво и излезот Y6 од декодерот и излезниот микропроцесорски
сигнал за контрола на запишување во В/И компонента IOWR*. Пинот за дозвола
на излезите OE* од 8-кратниот D-леч работа треба цело време да биде активен, а
тоа значи да биде поврзан на ниско ниво, на „маса“, и со тоа да овозможи просле-
дување на „заклучениот“ податок до излезите каде што се поврзани диодите.
Светлечките диоди се така поврзани што ќе светнат само кога на соодветната
излезна линија од лечот ќе се појави ниско напонско ниво на логичка 0 бидејќи на
секоја од нив преку отпорник за ограничување на струјата е поврзана катода на
една светлечка диода. Анодите на секоја диода се приклучени на напојувањето
како високо напонско ниво. Така, за секоја диода на чија катода ќе се појави 0V,
таа диода ќе проведе и тогаш излезниот леч ќе повлече струја.
Поврзување на општиот микропроцесор 769

Имајќи го ова во вид, за да бидат запалени LED светлечките диоди


означени со L3, L4 и L5 на нивните катоди ќе треба да се појави ниско напонско
ниво од 0V, а на сите останати високо. Ова ќе се случи ако се извршат следните
две линии асемблерски код:
...
MVI A, E3Н
OUT 86Н

Со првата инструкција MVI A, E3Н во акумулаторот се внесува податокот
E3h, а тоа е всушност бајтот D7D6D5D4D3D2D1D0=1110 0011. Со втората
инструкција OUT 86Н тој бајт како излезен 8-битен податок се поставува на
податочната магистрала и се испраќа до излезната порта со адреса 86Н, поточно
до лечот 74х373 кој соодветно на него проследува нула волти само до катодите
на трите LED диоди кои се наоѓаат во средината и тие светнуваат, додека на чети-
рите крајни диоди се појавува високо напонски ниво и тие остануваат изгаснати.
Пример 5 (Сл. 9-5): Мемориски пресликано адресирање на влезна порта на
адреса 0084H со апсолутно декодирање на адресите.
На сл. 9-5 е даден еден пример на мемориски мапирана влезна порта
реализирана со 8-кратното баферско/драјверско ДИК 74х244. Во врска со
мемориски пресликаните В/И порти и декодирањето на нивните адреси треба да
се потсетиме дека за селекција на портата ОМП ја користи контролната линија за
читање на меморија MRD* и сите 16 адресни линии. Според ова, за да се
реализира целосно адресирање на портата ќе треба да се декодираат сите 16
адресни линии, како што може и да се види на логичката шема на ваквиот начин
на поврзување од сл. 9-5.

Сл. 9-5. Логичка шема на мемориски пресликано адресирана влезна порта со адреса
0084H која е апсолутно декодирана
770 Поврзување на општиот микропроцесор

За да ја одредиме единствената адреса на влезната порта ќе ја


анализираме дадената логичка шема и ќе ја пополниме адресната табела 9-5. Од
сликата лесно се воочува дека за селекција на декодерот високиот адресен бајт
мора да ги има сите нули (А15, ..., А8=00000000) бидејќи само тогаш излезот од
ИЛИ колото на кое тие линии се поврзани ќе биде нула што е неопходен услов за
да се „отвори“ пинот за дозвола на работа G2* на декодерот на кој е поврзан тој
излез. За да се отвори вториот влез за овозможување на работа на декодерот G0
треба на адресниот вод А7 да се донеси високо ниво на логичка единица бидејќи
оваа адресна линија е поврзана на влезот G0. Третиот влез за дозвола на работа
G1* ќе биде отворен ако неговата логичка состојба биде нула што ќе се случи
само ако сите четири адресни линии А6А5А4А3 се наоѓаат на ниско напонско
ниво. Имено, само тогаш излезот од второто ИЛИ коло кој е поврзан на влезот
G1* ќе биде нула затоа што на тоа ИЛИ коло именуваните адресни линии се
поврзани како влезни. Најниските три адресни водови А2А1А0 се приклучени на
адресните пинови од декодерот АВС и заради тоа што влезната порта е поврзана
на излезната линија Y4 од декодерот, овие адресни битови треба да бидат 100.
Од спроведената анализа може да се пополни адресната табела на логичката
шема за примерот од сл. 9-5 со што ја добиваме адресата на портата
0000000010000100=0084Н.
Битови на адресната магистрала
N3 N2 N1 N0 HEX
Селекција на декодерско ИК
Вид на А А А А А А А А А А А А А А А А Активен Хекса
порта 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 излез Адреса
Влезна
0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 Y4 0084H
порта

Таб. 9-5. Табела на В/И адреси за логичката шема од сл. 9-5


Ако процесорот разменува податоци со некоја влезна, или излезна порта која е
мемориски мапирана, тој неа ја смета како мемориска локација со соодветна
адреса. Заради тоа за размена на податоци со мемориски пресликана порта може
да се користат сите асемблерски инструкции кои се однесуваат за работа со
меморија.
Конкретно за овој пример со инструкцијата LDA 0084Н податокот кој е
присутен на податочната магистрала, а добиен со соодветно поставување на
прекинувачите, ќе се внесе во акумулаторот како негова нова содржина.

Пример 6 (Сл. 9-6): Издвоено адресирање на излезни порти со адреси F0H и


78Н со апсолутно декодирање на адресите.
На следните две слики е прикажано поврзување на две излезни порти со
општиот микропроцесор. Треба да се одредат адресите на портите и начинот на
мапирање.
Поврзување на општиот микропроцесор 771

Сл. 9-6. а) Логичка шема на издвоено адресирана излезна порта со адреса F0H која е
апсолутно декодирана
И кај двете логички шеми се декодираат сите 8 адресни линии што значи
дека и за двата примери станува збор за апсолутно адресно декодирање.
Табелата 9-6 прикажува како може на едноставен начин да се одредат
конкретните адреси и на двете порти. За слика 9-6. а) декодерот ќе биде
селектиран само ако G0=A7=1, G2*=0 што ќе се случи кога неговите три влеза се
на високо, т.е. кога А6А5А4=111 и G1*=A3=0. Последните три бита на адресата
A2A1A0 се поврзани на адресните влезови на декодерот АВС, а бидејќи излезната
порта, лечот 74х373 е поврзан на излезот Y0, јасно е дека ови три најниски бита
треба да бидат нули, т.е. A2A1A0=АВС=000. Така се добиваат сите 8 адресни
битови на портата: 11110000 = F0H.
Селекциони влезови Хекса Активен
Сл. Селекција на декодерско ИК
до декодерот Адреса излез
Излезна
А7 А6 А5 А4 А3 А2 А1 А0
Порта
9-6 а) 1 1 1 1 0 0 0 0 F0Н Y0
9-6 б) 0 1 1 1 1 0 0 0 78H Y0
Таб. 9-6. Табела на В/И адреси за логичките шеми од сл 9-6 а) и сл 9-6 б)
Што се однесува до слика 9-6. б) може да се спроведе слична анализа
после која што се заклучува дека декодерот ќе биде селектиран само ако
G1*=А7=0 и G2*=0 што ќе биде исполнето само ако сите четири влезови во НИ
колото кои се всушност адресните водови А6А5А4А3 да бидат на високо напонско
ниво на логичка нула А6А5А4А3=1111. Имајќи предвид дека најниските три
адресни битови A2A1A0 се поврзани на адресните влезови на декодерот АВС, на
нив ќе треба да се донесат сите нули. Имено, од сликата е видливо дека и во овој
пример излезната порта, лечот 74х373 е поврзан на излезот Y0, па заради тоа е
јасно е дека битовите A2A1A0=АВС треба да бидат нули A2A1A0=АВС=000.
Конечно, осумте адресни битови на портата ќе бидат: 01111000 = 78H.
772 Поврзување на општиот микропроцесор

За да биде селектиран излезниот леч се употребува НИЛИ коло со два


влеза: во него првиот влез е излезниот сигнал од декодерот 74х138, додека
втората влезна линија е контролниот сигнал за запишување во излезна порта
IOWR*. Ваквото поврзување укажува на стандарден начин на мапирање (издвоен,
посебен или изолиран) на овие две излезни порти кои се реализирани со ИК
74х373 кое беше октален леч (единствено дворедно DIP интегрирано коло кое во
себе содржи 8 кратни D-лечови).

Сл. 9-6. б) Логичка шема на издвоено адресирана излезна порта со адреса 78Н која е
апсолутно декодирана
Доколку имаме потреба да испратиме некој податок до овие излезни порти
можеме да ги користиме претходните две асемблерски инструкции во кои ќе
треба 1) во акумулаторот да внесеме конкретен податок, т.е. бајт кој како податок
ќе биде испратен до излезната порта и 2) да ја напишеме адресата на
соодветната порта. Така на пр. со следните два реда асемблерски код на
излезната порта од сл. 9-6. а) испраќаме податок 55Н, додека со другите две
редици до излезната порта, дадена на сл. 9-6. б) го пренесуваме бајтот 44Н.
... ...
MVI A, 55Н MVI A, 44Н
OUT F0Н OUT 78Н
… …

Пример 7 (Сл. 9-7): Мемориски мапирани делумно декордирани излезни порти


со адреси ххF0H и хх78Н.
Излезните порти од претходниот пример можеме и мемориски да ги
пресликаме така што ОМП нив ќе ги „гледа“ како мемориски локации со адреси
00F0H и 0078Н доколку на сл. 9-7 а) и 9-7 б) во НИЛИ колото на местото од
контролната линија за запишување во В/И порта ја поставиме контролната линија
за запишување во меморија MRW*, а друго ништо не треба да менуваме. Ваквото
поврзување е прикажано на следните две слики 9-7 а) и 9-7 б).
Поврзување на општиот микропроцесор 773

а) б)
Сл. 9-7. Логичка шема на мемориски мапирани делумно декордирани излезни порти со
адреси а) ххF0H и б) хх78Н
Кога станува збор за испраќање на податок до мемориски пресликани
излезни порти, а при тоа имајќи го предвид претходниот пример, првата
асемблерска инструкција треба да остане иста, но втората треба да се замени со
инструкцијата STA 00F0H за првата слика, односно со инструкцијата STA 0078H за
втората слика. Така, двете асемблерски инструкции за сл. 9-7. а) и сл. 9-7. б)
последователно ќе бидат:

... ...
MVI A, 55Н MVI A, 44Н
STA 00F0Н STA 0078Н
… …
Што се однесува до мемориски пресликаните В/И порти и декодирањето на
нивните адреси не треба да забораваме дека со вклучувањето на контролниот
сигнал за контрола на запишување во меморија MWR*, “во игра“ се вклучени и
преостанатите осум високи адресни линии од А15 до А8, што значи сите 16
адресни водови. Бидејќи во претходната шема, повисоките осум адресни водови
воопшто не ги искористивме и ги оставивме слободни, со ваквата промена
добивме делумно (парцијално) декордирање на излезните порти и т.н.
мултиплициран адресен простор. Имено, како последица од неповрзувањето на
повисоките адресни линии, треба да знаеме дека првата порта може да се
адресира со било која од 256-те можни бинарни комбинации кои може да се
добијат на повисокиот адресен бајт почнувајќи од А15А14А13А12А11А10А9А8
=00000000, па се до последната комбинација А15А14А13А12А11А10А9А8 =
=11111111, или во хекса-децимално означување тоа се 256-те адреси од 00F0H до
FFF0H. Слично, и втората излезна порта зафаќа мултиплициран адресен простор
со иста должина, а тоа се повторно 256-те адреси кои за неа почнуваат од
адресата 0078H па се до FF78H. Практично земено, секоја посебно од овие две
В/И порти сокрива адресен простор за 256 мемориски локации. Секој од нив
служи за адресирање на само по една излезна порта чија почетна адреса на
првата порта е 00F0H па се до 256-та адреса FFF0H, односно почетна адреса на
втората порта е 0078H, па до последната 256-та адреса FF78H.
774 Поврзување на општиот микропроцесор

Пример 8 (Сл. 9-8): Издвоено адресирање на излезнa портa со адреси 80H, 88H,
90H и 98H и со парцијално декордирање на адресите.
Слично на претходниот пример, излезниот леч се селектира со НИ коло со
два влеза: првиот влез е излениот сигнал Y0 од декодерот 74х138, додека втората
влезна линија е контролниот сигнал за запишување во излезна порта IOWR*.
Ваквото поврзување на оваа излезна порта повторно укажува на стандарден
(издвоен, посебен или изолиран) начин на мапирање на портата, но сега се
работи за нејзино парцијално адресирање. Имено, сега селектирањето на
декодерското коло се изведува без да се користат сите осум адресни линии што
претставува многу важна разлика во однос на претходниот пример. Поконкретно,
сега двe од осумте адресни водови, а тоа се А4 и А3, се слободни. Оставањето на
овие две линии да бидат неповрзани овозможува адресирање на оваа излезна
порта со четири адреси бидејќи декодерот ќе биде селектиран за било која нивна
комбинација во адресниот бајт А7А6А5А4А3А2А1А0=100хх000, односно за било
која од следниве четири адреси: 10000000=80Н, 10001000=88Н, 10010000=90Н и
10011000=98Н. Ова претставува нееднозначно селектирање на една периферна
порта и појава на четири мултиплицирани адреси.

Сл. 9-8. Логичка шема на мемориски мапирани делумно декордирани излезни порти со
адреси: 80Н, 88Н, 90Н, 98Н.

Селекциони влезови Хекса Активен


Селекција на декодерско ИК
до декодерот Адреса излез
А7 А6 А5 А4 х А3 х А2 А1 А0 Изл. порта
0 1 1 0 0 0 0 0 80H Y0
0 1 1 0 1 0 0 0 88H Y0
0 1 1 1 0 0 0 0 90H Y0
0 1 1 1 1 0 0 0 98H Y0

Таб. 9-8. Табела на В/И адреси за логичката шема од сл 9-8


Поврзување на општиот микропроцесор 775

Според претходното, ако наведеме било која од следниве четири


асемблерски инструкции, со различни адреси, тоа ќе значи пренесување на
содржината на акумулаторскиот регистер до истата порта: OUT 80Н, OUT 88Н,
OUT 90 и OUT 98Н.
Доколку контролната линија IOWR* се замени со MWR* излезната порта ќе
биде мемориски мапирана, а ќе остане нејзиното делумно декодирање на
адресите. Меѓутоа, ако не ги искористиме високите осум адресни водови, секоја
од четирите основни адреси 0080Н, 0088Н, 0090Н и 0098Н ќе се мултиплицира по
256-пати, па така скриениот адресен простор ќе биде многу поголем и ќе изнесува
4 х 256 = 1024 = 1К мемориски локации во следните адресни опсези: од 0080Н до
FF80Н, потоа од 0088Н до FF88Н, па од 0090Н до FF90Н и конечно од 0098Н до
FF98Н. Наведувањето на било која од овие 1024 адреси ќе значи обраќање на
само една излезна порта. За да запишеме податок во вака поврзана излезна порта
можеме да искористиме било која од следниве четири инструкции при што во
секоја од нив може да наведеме било која од 256-те различни адреси кога на
местото од двете хекса-цифри хх може да напишеме било кој број од 00H до FFH:
STA хх80Н, STA хх88Н, STA хх90Н и STA хх98Н.

Пример 9 (Сл. 9-9): Заедничко комбинирано поврзување на В/И порти: влезна


порта на адреса 81H и излезна порта на адреса 82H. Станува збор за издвоено
(посебно) мапирање со апсолутно декодирање на адресите.
Со сликата сл. 9-9 е презентиран уште еден пример за тоа како може едно-
времено да се приклучат една влезна и една излезна портa. За прикажаната шема
адресата на влезната порта е 81h, додека на излезната порта е 82h.

Сл. 9-9. Логичка шема на издвоено (посебно) мапирани апсолутно декодирани адреси
(влезна порта на адреса 81H и излезна порта на адреса 82H)
776 Поврзување на општиот микропроцесор

Од сликата се гледа дека декодерот се селектира со следнава комбинација


од највисоките пет бита на адресата: А7А6А5А4А3=10000. За избор на една од
портите “се одговорни“ најниските три адресни линии А2А1А0 кои се поврзани на
адресните влезови на декодерот АВС. Бидејќи влезната порта е приклучена на
излезот Y1 од декодерот, а излезната порта на излезот Y2 адресните битови треба
да бидат А2А1А0=001 за влезната, односно А2А1А0=010 за излезната порта, што
значи дека адресата на влезната порта е 10000001=81Н, додека на излезната
10000010=82Н.

Селекција на Селекциони влезови Хекса Активен


декодерско ИК до декодерот Адреса излез
А4 А3
А7 А6 А5 А2 А1 А0
х х
Влезна
0 1 1 0 0 0 0 0 81H Y1
Порта
Излезна
0 1 1 0 1 0 0 0 82H Y2
Порта
Таб. 9-9. Табела на В/И адреси за логичката шема од сл 9-9

Следните две програмски линии се инструкции во асемблерски јазик со кои


преку светлечките LED диоди може да се види каква е состојбата на
прекинувачите: кој е вклучен, а кој е исклучен.
...
IN 81Н
OUT 82Н

Со првата инструкција IN 81Н логичката состојба на прекинувачите
поврзани на влезната порта 81Н се вчитува во акумулатоскиот регистер, додека
со втората инструкција OUT 82Н нивната состојба веднаш се проследува од
акумулаторот до излезната порта 82Н каде се поврзани светлечките LED диоди.
Бидејќи прекинувачите се поврзани на влезовите од баферот кој претставува
влезна порта преку подигнувачки отпорници, ниско ниво ќе се појави само на
влезовите од баферот каде што се прекинувачите затворени (Ѕ1 и Ѕ4), додека
високо ниво ќе остани на сите други влезови каде прекинувачите се отворени (Ѕ0,
Ѕ2, Ѕ3, Ѕ5, Ѕ6, Ѕ7). Според ова, инструкцијата IN 81Н во акумулаторот ќе го внеси
бајтот D7D6D5D4D3D2D1D0=11101101 кој со инструкцијата OUT 82Н ќе биде
испратен до излезната порта – лечот 74х3737. Бидејќи на неговите излези се
поврзани катодите на светлечките диоди, јасно е дека ќе светнат само првиот и
четвртот LED што покажува и кои прекинувачи ги имаме затворено.
На сликата 9-9, покрај контролните сигнали за читање и запишување во
В/И компоненти IORD* и IOWR*, во заграда се означени и сигналите за контрола
на читање/запишување во меморија MRD* и MWR*. Ако ги исклучиме првите два,
а на нивно место ги поврзиме вторите два сигнали, тогаш ќе се смени и техниката
на мапирање на овие две порти, но и начинот на декодирање на адресите.
Поврзување на општиот микропроцесор 777

Со ваквата промена портите ќе бидат мемориски пресликани и за нив


микропроцесорот “ќе мисли“ и ќе ги третира како да се мемориски локации, а не
В/И порти. Покрај ова, адресите на портите се парцијално декодирани бидејќи
сите осум повисоки адресни водови А15 ... А8 се слободни и не се користат за
декодирање на адресите на портите. Ова значи дека влезната порта ќе има 256
мултиплицирани адреси во опсегот од 0081Н до FF81H и секоја од нив ќе ја
адресира оваа порта, а исто толку редундантни адреси ќе има и излезната порта
која ќе може да се адресира со една од следните 256 адреси: од 0082H до FF82H.
Практично, секоја од овие две В/И порти крие (покрива, зафаќа) адресен простор
за 256 мемориски локации.
Следните две програмски линии се инструкции во асемблерски јазик со кои
преку LED диодите може да се види кој прекинувач е отворен, а кој е затворен.
...
LDA 0081Н
STA 0082Н

Принципот на работа и однесувањето на светлечките диоди е исто како во


претходниот пример, но инструкциите се различни. Имено, инструкцијата LDA
0081Н ја чита содржината на мемориска локација со адреса 0081Н, но заради
ваквото хардверско поврзување всушност ќе ја чита содржината на влезната
порта. Слично, со инструкцијата STA 0082Н микропроцесорот би требало да
запише нова содржина во мемориска локација чија адреса е 0082Н, но практично
тој испраќа податок до излезната порта. Најкратко да забележиме дека на
местото од адресата на влезната порта 0081Н може да се напише било која
адреса од опсегот на 256-т можни адресни комбинации од 0081Н до FF81H. Истата
забелешка се однесува и на излезната порта чија адреса може да биде било која
од 256-те комбинации од 0082Н до FF82H.
778 Поврзување на општиот микропроцесор
10.
ПРОГРАМИРАЊЕ
Н А О П ШТ
МИКРО-
ПРОЦЕСОР
По изучувањето на оваа тематска целина
 ќе го разбирате начинот на програмирање во асемблер;
 ќе пишувате програм со примена на операциите од
инструкциското множество;
 ќе применувате потпрограми во програмот;
 ќе ги толкувате асемблерските инструкции и различните
адресни начини;
 ќе знаете да решавате различни примери од секаков тип на
инструкции и различни структури на програми.
780 Програмирање на општ микропроцесор
Програмирање на општ микропроцесор 781

Во продолжение се дадени решени примери на програми во асемблерски


јазик со различна тежина, почнувајќи од програми со линиска структура, потоа
програми со разгранета структура, програми со циклична структура (со повтору-
вање) и сложени програми со комбинирана структура.
За секој пример е прикажан блок-дијаграмот на алгоритмот кој се
применува за негово решение, потоа програмот напишан во асемблерски јазик
според тој блок-дијаграм, како и изгледот на делот од меморијата каде што е
сместен програмот во машински јазик според асемблерскиот код. Решението е
проследено со соодветно кратко објаснување и тест податоци.

Пример 1: Одредување на втор комплемент на 8-битен број (Линиска структура)

Објаснување: Пограмот најпрво ја чита содржината на одредена мемориска


локација. На тој влезен податок кој претставува некој 8-битен број го наоѓа
првиот комплемент, а потоа со негово зголемување за 1 го одредува вториот
комплемент и тој резул-тантен нов бајт како излезен податок го запишува во
друга мемориска локација.
- Ќе претпоставиме дека податокот е 85H и дека тој е зачуван во мемориска
локација со адреса 3000H,
- Податокот 85Н од мемориската локација 3000H се пренесува во
акумулаторот,
- Со помош на инструкцијата CMA се одредува неговиот прв комплемент
(7АН) кој се внесува во акумулаторот,
- На добиениот прв комплемент (7АН) во акумулаторот се додава 1 (се
зголемува за 1) со што се добива неговиот втор комплемент (7ВН).
- Резултатот се запамтува во мемориската локација со адреса 3001H.
Блок дијаграм Програм во асемблерски јазик
Задачата е решена со алгоритам и програм во
асемблерски јазик кој има линиска структура.
Мнемоник Операнд Коментари
LDA 3000H ;Vnesi vo акум. reg. А 8-
biten podatok od mem. lok
so adr. 3000H.
CMA ;Komplementiraj ja
sodrzinata na akum. A
INR A ;Zgolemi ja vrednosta na
akumulatorot A za 1
STA 3001H ;Zacuvaj go rezultatot vo
mem. lokacija 3001H
HLT ;Stop/Kraj.
Во следната табела покрај програмот во
асемблерски јазик е прикажан и неговиот код
напишан во машински јазик кој започнува од 2000Н.
782 Програмирање на општ микропроцесор

Адреса Мнемоник Операнд Код на Коментари


операција
2000 LDA 3000H 3A ;Vnesi vo ak. reg. A 8-biten podatok
od mem. adr. 3000H.
2001 00 ;Poniskiot bajt od adresata 3000H.
2002 30 ;Povisokiot bajt od adresata 3000H.
2003 CMA 2F ;Komplementiraj ja vrednosta vo А.
2004 INR A 2C ;Zgolemi ja vrednosta na ak. А za 1
2005 STA 3001H 32 ;Zacuvaj go rezultatot vo mem. lok
so adresa 3001H.
2006 01 ;Poniskiot bajt od adresata 3001H.
2007 30 ;Povisokiot bajt od adresata 3001H.
2008 HLT 76 ;Stop/Kraj.

Влезни податоци: Излезни податоци/резултати:


- Пред извршување: - После извршување:
3000H: 85H 3001H: 7BH

Пример 2: Маскирање на повисоката четворка битови (повисокиот нибл) на 8-


битен број (Линиска структура)
Објаснување: • Оваа програма ја маскира повисоката четворка битови
(повисокиот нибл) од 8-битен број зачуван во некоја мемориска локација.
• Ќе претпоставиме дека податокот 75H е зачуван во мемориска локација 4001H.
• Податокот од мемориската локација 4001H се пренесува во акумулаторот.
• Тогаш, се извршува логичката операција И (логичко множење) на 0FH со
акумулаторот. Ова резултира со маскирање на повисоката четворка битови.
• Резултатот се запамтува во мемориска локација со адреса 4002H.
Блок дијаграм Програм во асемблерски јазик

Задачата е решена со алгоритам и програм во


асемблерски јазик кој има линиска структура.
Мнемоник Операнд Коментари
LDA 4001H ;Vnesi vo
akumulatorskiot reg. A
podatok od 4001H.
ANI 0FH ;operacija I (logicko
mnozenje) na reg. A
neposredno so 0FH.
STA 4002H Zapamti go rezultatot vo
memoriska lokacija so
adresa 4002H
HLT ;Kraj.
Програмирање на општ микропроцесор 783

Адреса Мнемоник Операнд Код на Коментари


операција
3500 LDA 4001H 3A ;Vnesi vo ak. А podatok od 4001H
3501 01 ;Ponizok bajt od adresata 40001H.
3502 40 ;Povisok bajt od adresata 4001H.
3503 ANI 0FH E6 ;Operacija I (logicko мnozenje –
AND) na akum. reg. A neposredno
3504 F0 ;so vrednost 0FH
3505 STA 4002H 32 Zapisi go rezultatot vo mem.
lokacija so adresa 4002H
3506 02 ;Ponizok od adresata 4002H.
3507 40 ;Povisok bajt od adresata 4002H.
3508 HLT 76 ;Kraj.

Влезни податоци: Излезни податоци/резултати:


- Пред извршување: - После извршување:
4001: 75H (01110101) 5000H: 45H (00000101)

Пример 3: Поместување надесно на 8-битен број за еден бит (Линиска структура)


Објаснување: Оваа програма ја извршува операцијата поместување надесно на 8-
битен број за 1 бит, кој е зачуван во мемориската локација 4000H.
• Да претпоставиме дека податокот 05H е зачуван на мемориската локација 4000H
• Операндот се сместува во акумулаторот од мемориската локација 4000H.
• Потоа, операцијата поместувањето надесно се извршува со инструкцијата RAR.
• Резултатот се зачувува во мемориската локација 5000H.
Блок дијаграм Програм во асемблерски јазик

Слично како претходните два примери, и оваа


задача е решена со алгоритам и програм во
асемблерски јазик со линиска структура.

Мнемоник Операнд Коментари


LDA 4000H ;Vnesi vo akum. reg. A
podatoк od 4000H.
RAR ;Pomesti nadesno
sodrzina na akum. A
STA 5000H ;Zapamti go rezultatot
vo mem. lokacija so
adresa 5000H.
HLT ;Kraj.

Во следната табела покрај програмот во асемблерски јазик е прикажан и


неговиот код напишан во машински јазик. При тоа е претпоставено дека
машинскиот програм е запамтен во меморијата и започнува од адреса 2000Н.
784 Програмирање на општ микропроцесор

Адреса Мнемоник Операнд Код на Коментари


операција
2000 LDA 4000H 3A ; Vnesi vo akumulator A podatoк od
mem. lok. so adr. 4000H.
2001 00 ;Poniskiot bajt od adresata 4000H.
2002 40 ;Povisokiot bajt od adresata 4000H.
2003 RAR 17 ;Pomesti go nadesno podatokot vo
akumulatorot za 1 bit.
2004 STA 5000H 32 ;Zapamti go rezultatot vo mem.
lokacija so adresa 5000H.
2005 00 ;Poniskiot bajt od adresata 5000H.
2006 50 ;Povisokiot bajt od adresata 5000H.
2007 HLT 76 ;Kraj.

Влезни податоци: Излезни податоци/резултати:


- Пред извршување: - После извршување:
4000H: 05H, CY=0 5000H: 02H, CY=1

Пред извршување на инструкцијата: После извршување на инструкцијата:

Пример 4: Поместување налево на 8-битен број за два битa (Линиска структура)

Објаснување: Оваа програма ја поместува содржината на податокот кој е


запамтен во мемориската локација 3000H налево за два бита.
• Да претпоставиме дека податокот 05H е зачуван на мемориската локација 3000H
• Податокот се чита од мемориската локација 3000H и се внесува во акумулаторот
• За да се помести содржината на акумулаторот во лево за два бита се извршува
два пати инструкцијата RAL.
• Резултатот се запамтува во мемориската локација со адреса 3001H.
Програмирање на општ микропроцесор 785

Блок дијаграм Програм во асемблерски јазик


Оваа решена задача е уште еден пример за
примена на алгоритам и програм во асемблерски
јазик со линиска структура.

Мнемоник Операнд Коментари


LDA 3000H ;Vnesi vo reg. par H||L
so podatoci od 3000H.
RAL ;Pomesti go ednas
nalevo akumulatorot.
RAL ;Pomesti go nalevo
akumulatorot uste ednas
STA 3001H ;Zapamti go rezultatot
vo mem. lokacija so
adresa 3001H.
HLT ;Kraj.
Во следната табела покрај програмот во
асемблерски јазик е прикажан и неговиот код
напишан во машински јазик. При тоа е претпоста-
вено дека машинскиот програм е запамтен во
меморијата и започнува од адреса 2000Н.

Адреса Мнемоник Операнд Код на Коментари


операција
2000 LDA 3000H 3A ;Vnesi vo reg. А podatoк od 3000H.
2001 00 ;Poniskiot bajt od adresata 3000H.
2002 30 ;Povisokiot bajt od adresata 3000H.
2003 RAL 17 ;Pomesti go nalevo akumulatorot.
2004 RAL 17 ;Pomesti go nalevo akumulatorot.
2005 STA 3001H 32 ;Zapamti go rezultatot vo mem.
lokacija so adresa 3001H.
2006 01 ;Poniskiot bajt od adresata 3001H.
2007 30 ;Povisokiot bajt od adresata 3001H.
2008 HLT 76 ;Kraj.

Влезни податоци: Излезни податоци/резултати:


 Пред извршување:  После извршување:
3000H: 05H, CY=0 3001H: 20H, CY=0
Пред извршување на инструкцијата: После извршување на инструкцијата:
786 Програмирање на општ микропроцесор

Пример 5: Конверзија на BCD формати (Линиска структура)


Дадени се две NBCD цифри кои претсставуваат две четворки битови (два
нибли) во распакован BCD формат: секој нибл во посебна мемориска локација.
Мемориските локации се наоѓаат една под друга во последователни мемориски
адреси. Треба да се напише програм во асемблерски јазик кој двете BCD цифри ќе
ги конвертира од распакован во пакован формат.
На сл. 10-1 а) и б) е прикажан изгледот на мемориските локации кога две
NBCD цифри се запамтени во распакован и во спакован формат. Во локациите
2200Н и 2001Н се сместени двете цифри распаковани: во пониската адреса е
сместена пониската цифра, додека во повисоката адреса е запамтена повисоката
цифра. Секоја цифра е сместена во свој бајт при што високите четири бита се
нули, а цифрата е сместена во ниските четири бита. Во локацијата 2300Н треба да
се сместат двете цифри една до друга: високиот нибл на бајтот да биде високата
цифра, додека ниската четворка на бајтот да биде ниската четворка.
Блок дијаграм Програм во асемблерски јазик

Мнемоник Операнд Коментари


LDA 2201 ; ja zemame vo Acc
povisokata BCD cifra
na brojot od memorija.
RLC
RLC
RLC ;ja rotirame levo 4-pati

RLC
ANI F0 ;go maskirame niskiot
nibl na A(najniski 0000
MOV C, A ; ja prenesuvame
sodrz. na Acc vo reg.C
LDA 2200 ; ja zemame niskata
BCD cifra na brojot od
memorija vo Acc
ADD C ; niskata cifra ja
dodavame na visokata.
STA 2300 ; go memorirame
dobieniot spakovan
BCD format na brojot
HLT ; Zastani
Програмирање на општ микропроцесор 787

Распакован BCD формат


BCD – Адреса на Содржина на
цифра мем. локација мемориска локација
Ниска NBCD 2200 0 0 0 0 bL3 bL2 bL1 bL0
Висока NBCD 2201 0 0 0 0 bH3 bH2 bH1 bH0
На сл. 10-1 a) Распакован BCD формат на две NBCD цифри

Спакован BCD формат

Адреса на Содржина на
мем. локација мемориска локација
Висока BCD-цифра Ниска BCD-цифра
2300 bH3 bH2 bH1 bH0 bL3 bL2 bL1 bL0
На сл. 10-1 б) Спакован BCD формат на две NBCD цифри

Објаснување: Оваа задача ќе ја решиме исто како и претходно со алгоритам и


програм во асемблерски јазик кој има линиска структура.
- во акумулаторот ја внесуваме од меморијата 2201Н повисоката BCD цифра.
Таа во акумулаторот се внесува како бајт кој има високи четири нули и
ниска четворка битови кои се всушност BCD цифрата,
- ја поместуваме во лево содржината на акумулаторот 4 пати и со тоа BCD
цифрата ја поместуваме и ја носиме да биде висока четворка на бајтот,
- го маскираме, т.е. го бришиме нискиот нибл на акумулаторот така што како
најниски четири бита внесуваме четири нули. Сега во акумулаторот има
висок нибл кој е високата BCD цифра, додека нискиот нибл се 0000,
- Содржината на акумулаторот је копираме во регистерот С,
- Во акумулаторот ја вчитуваме од меморијата 2200Н ниската BCD цифра.
Бајтот во акумулаторот има висок нибл со четири нули, и низок нибл кој е
ниската BCD цифра.
- Ја собираме содржината на акумулаторот со содржината на регистерот С.
Резултатот ќе биде бајт кој има висока BCD цифра како негов висок нибл, и
ниска BCD цифра како негова ниска четворка битови. Тоа е всушност
спакован формат на двете BCD цифри.
- Податокот од акумулаторот го запамтуваме во мемориската локација 2300Н.

Влезни податоци: Излезни податоци/резултати:


- Пред извршување: - После извршување:
2200H: 03H 2200H: 03H
2201Н: 05Н 2201Н: 05Н
2300Н: ххН 2300H: 53H
788 Програмирање на општ микропроцесор

Пример 6: Одземање два цели 8-битни броеви со претпоставка дека секогаш


намалителот ќе биде помал од намаленикот (Линиска структура) Забелешка: Со
ова нема да биде потребно позајмување и разликата ќе биде точна, но програмот
нема да дава точен резултат кога намалителот ќе биде поголем од намаленикот.
Објаснување:
- Оваа програма одзема два податоци, т.е. два 8-битни броеви запамтени во
мемориските локации 3000H и 3001H, не земајќи го предвид позајмувањето.
- Да претпоставиме дека намаленикот кој е зачуван на мемориската локација
3000H е 05H, додека бројот кој се наоѓа во локацијата 3001H е намалителот 02H.
- Бидејќи ќе примениме индиректно адресирање, првично во H||L регистеркиот
пар ке ја внесиме адресата на првата мемориска локација каде е намаленикот.
Овој пар ке биде мемориски понтер (покажувач на мемориска адреса).
- Првиот број (намаленикот) се пренесува од мемориската локација 3000H во
акумулаторот, а веднаш потоа содржината на H||L парот се зголемува за 1 за да
покажува на следната мемориска локација 3001H.
- Сега вториот број (намаленикот) се пренесува од мемориската локација 3001H
во регистерот B.
- Од содржината на акумулаторот се одзема податокот кој е сместен во
регистерот В и резултатот се внесува како нова содржина во акумулаторот.
- Содржината на H-L парот повторно се зголемува за 1 и резултатот од
акумулаторот се меморира, т.е. се копира во мемориската локација 3002H.

Блок дијаграм Програм во асемблерски јазик

И овој пример користи алгоритам и програм во


асемблерски јазик со линиска структура.

Мнемоник Операнд Коментари


LXI H, 3000H ;Vnesi vo reg. par H||L
adrеса 3000H.
MOV A, M ;Prenesi go namaleni-
kot od memorijata
pointiran so reg. par
H||L vo reg. A
INX H ;Zgolemi ja vrednosta
na parot H||L za 1.
MOV B, M ;Vnesi go namalitelot
od memorija vo reg. B
SUB B ;Odzemi go B od A.
Razlikata odi vo A.
INX H ;Zgolemi ja vrednosta
na H||L parrot za 1.
MOV M, A ;Prenesi go rezultatot
od reg. A vo mem. lok.
HLT ;Kraj
Програмирање на општ микропроцесор 789

Во следната табела покрај програмот во асемблерски јазик е прикажан и


неговиот код напишан во машински јазик. При тоа е претпоставено дека
машинскиот програм е запамтен во меморијата и започнува од адреса 1000Н.

Адреса Мнемоник Операнд Код на Коментари


операција
1000 LXI H, 3000H 21 ;Vnesi vo reg. par H||L adresa
3000H.
1001 00 ;Poniskiot bajt od adresata 3000H.
1002 30 ;Povisokiot bajt od adresata
3000H.
1003 MOV A, M 7E ;Prenesi go 1-ot broj
(namalenikot) od mem. lok.
pointirana so reg. par H||L vo Acc
1004 INX H 23 ;Zgolemi ja vrednosta na parot
H||L za 1.
1005 MOV B, M 46 ;Prenesi go 2-ot broj (namalitelot)
od memorijata vo registerot B
1006 SUB B 90 ;Odzemi go B od A. Razlikata vo A
1007 INX H 23 ;Zgolemi ja vrednosta na H||L
parrot za 1.
1008 MOV M, A 77 ;Prenesi go rezultatot od reg. A vo
slednata memoriska lokacija.
1009 HLT 76 ;Kraj

Влезни податоци: Излезни податоци/резултати:


 Пред извршување:  После извршување:
3000H: 05H 3000H: 05H
3001H: 02H 3001H: 02H
3002H: xxH 3002H: 03H

Резултатот е позитивен бидејќи кога од 05H ќе се одземи 02H се добива 03H.

Влезни податоци: Излезни податоци/резултати:


 Пред извршување:  После извршување:
3000H: 02H 3000H: 02H
3001H: 05H 3001H: 05H
3002H: xxH 3002H: FDH Грешка!

Резултатот е погрешен бидејќи дава позитивна вредност FDH = 253dec, а разли-


ката која треба да се добие треба да биде негативна бидејќи кога од 02H ќе се
одземи 05H се добива минус 03H. Имено, разликата се зема како позитивен број
бидејќи НЕ се проверува знаменцето за пренос кое при операција одземање
укажува на позајмување, а со тоа и на негативен број во акумулаторот.
790 Програмирање на општ микропроцесор

Пример 7: Одземање на два 8-битни броеви со земање во вид на позајмувањето


кога за тоа ќе има потреба (со вклучено позајмување) (Разгранета структура)

Објаснување:
Оваа програма е подобрување на претходната бидејќи одзема два броеви и ако
намалителот е поголем од намаленикот. Тогаш кога тоа ќе се случи доаѓа до
појава на позајмување што треба да биде сигнализирано на одреден начин. Во
примерот повторно се разгледуваат двате броеви кои се сместени на мемориските
локации 3000H и 3001H.
- Да претпоставиме дека операндот, кој е зачуван на мемориската локација
3000H е 05H, a на локацијата 3001H е 02H.
- Првично, во H||L парот ќе се смести адресата на првата мемориска
локација.
- Првиот број се пренесува од мемориската локација 3000H во акумулаторот,
а содржината на H||L парот се зголемува за 1 за да покажува на следната
мемориска локација.
- Вториот операнд се пренесува од мемориската локација 3001H во
регистерот B.
- Регистерот C се иницијализира на 00H бидејќи во него се сместува
позајмувањето ако тоа се појави.
- Двата броеви кои се внесени во регистерот А и B се одземаат и резултатот
се сместува во акумулаторот А.
- Потоа, се проверува знаменцето за пренос кое го сигнализира
позајмувањето кога тоа ќе се појави, т.е. кога намалителот ќе биде поголем
од намаленикот. Ако тоа се случи ќе има позајмување и тогаш содржината
на регистерот C се зголемува за 1, т.е. станува 1. Ако нема позајмување
содржината на регистерот C останува непроменета, т.е. останува 0.
- Содржината на H||L парот се зголемува за 1 и разликата како резултатот од
акумулаторот се запамтува во мемориската локација 3002H.
- H||L парот повторно ја зголемува за 1 својата содржина со што сега
поинтира на мемориската локација 3003H,
- Позајмувањето, кое се наоѓа во регистерот C, независно дали е 0 и го нема,
или е 1 зарди тоа што постои, се пренесува во мемориската локација
3003H.
Програмирање на општ микропроцесор 791

Блок дијаграм Програм во асемблерски јазик

Ознака Мнем. Операнд Коментари


LXI H, 3000H ;Vnesi vo reg.
par H||L 3000H
MOV A, M ;Prenesi go 1-ot
broj mem.lok.
vo reg. A
INX H ;Zgolemi ja
vrednosta na
parot H||L.
MOV B, M ;Premesti go 2-
ot broj od
mem.lok vo B
MVI C, 00H ;Inicijaliziraj go
reg. C so 00H.
ADD B ;Odzemi go B
od A. Razl. vo A
JNC ZGOL ;Skokni na
ZGOL ako nema
pozajmuvanje.
INR C ;Zgolemi ja
vrednosta na
reg. C.
ZGOL: INX H ;Zgolemi ja
vrednosta na
parot H||L.
MOV M, A ;Prenesi go
rezultatot od
reg. A vo
memorijata.
INX H ;Zgolemi ja
vrednosta na
parot H||L.
MOV M, C Prenesi ja
vrednosta na
pozajmuvanjeto
od reg. C vo
memorijata
HLT ;Kraj.
792 Програмирање на општ микропроцесор

Адреса Мнемоник Операнд Код на Коментари


операција
2000 LXI H, 3000H 21 ;Vnesi vo reg. par H||L so adr.
3000H.
2001 00 ;Poniskiot bajt od adresata 3000H.
2002 30 ;Povisokiot bajt od adresata 3000H.
2003 MOV A, M 7E ;Prenesi go 1-ot operand od
memorijata vo reg. A
2004 INX H 23 ;Zgolemi ja vrednosta na parot
H||L.
2005 MOV B, M 46 ;Premesti go 2-ot operand od
memorijata vo reg. B
2006 MVI C, 00H 0E ;Inicijaliziraj go reg. C with 00H.
2007 00 ;Neposrednata vrednost 00H
2008 ADD B 90 ;Odzemi go B od A.
2009 JNC 200D D2 ;Skokni na adresa 200DH ako nema
pozajmuvanje.
200A 0D ;Poniskiot bajt od adresata 200DH.
200B 20 ;Povisokiot bajt od adresata 200DH.
200C INR C OC ;Zgolemi ja vrednosta na reg. C.
200D INX H 23 ;Zgolemi ja vrednosta na parot
H||L.
200E MOV M, A 77 ;Prenesi go rezultatot od reg. A vo
memorijata.
200F INX H 23 ;Zgolemi ja vrednosta na parot
H||L.
2010 MOV M, C 71 Prenesi ja vrednosta na
pozajmuvanjeto od reg. C vo
memorijata
2011 HLT 76 ;Kraj.

Влезни податоци: Излезни податоци/резултати:


 Пред извршување:  После извршување:
3000H: 05H 3000H: 05H
3001H: 02H 3001H: 02H
3002H: xxH 3002H: 03H
3003H: xxH 3003H: 00H
CY = 0 CY = 0

Резултатот е позитивен бидејќи кога од 05H ќе се одземи 02H се добива 03H.

Влезни податоци: Излезни податоци/резултати:


 Пред извршување: CY = 0  После извршување: CY = 1
3000H: 05H 3000H: 05H
3001H: 02H 3001H: 02H
3002H: xxH 3002H: FDH
3003H: xxH 3003H: 01H
Програмирање на општ микропроцесор 793

Разликата FDH сега е точна бидејќи неговата вредност FDH сега се “гледа“ како
негативен број во втор комплемент, а тоа е – 3dec. Имено, сега се третира и
знаменцето за пренос CY, кое покажува позајмување и воедно дека добиениот
резултат треба да се зема како негативен број во втор комплемент.

Пример 8: Програма за наоѓање на помалиот од два 8-битни броеви (Структура


со гранење)

Објаснување:
- Оваа програма споредува два броеви кои се влезни податоци и да го најде
помалиот од нив.
- По споредбата, помалиот од двата броеви треба да биде во акумулаторот. Кога
ќе се ноѓа таму, од акумулаторот се пренесува во меморијата.
- Ако НЕ е во акумулаторот, тогаш прво тој се внесува во акумулаторот, а потоа
од таму, се запамтува во меморијата.
- Да претпоставиме дека првиот број е 25H и тој зачуван во мемориската локација
чија адреса е 4000H е 25H, а тој што е зачуван во локацијата 4001H е 15H.
- Првично, во H||L парот се внесува адресата 4000H на првата мемориска
локација.
- Првиот податок од таа мемориска локација (4000H) со индиректно адресирање
преку рег. пар H||L како мемориски покажувач се сместува во акумулаторот
- Содржината на H-L парот се зголемува за 1 за да покажува на следната
мемориска локација, 4001H.
- Вториот број од оваа адресата на мемориска локација зголемена за 1, 4001H, се
внесува во регистерот B.
- Двата броеви се споредуваат по што се проверува знаменцето за пренос CY:
- ако има пренос (CY = 1) тогаш бројот во акумулаторскиот регистер А е
помал од бројот во регистерот В (A < B) и тој број се запамтува во меморијата,
- ако нема пренос (CY = 0) тогаш бројот во акумулаторскиот регистер А е
поголем од бројот во регистерот В (A > B) и бројот од В треба да се пренеси во А,
- Содржината на меморискиот поинтер, на H||L парот се зголемува за 1,
- Бројот кој се наоѓа во акумулаторот се запамтува во мемориската локација
3002H адресирана со регистерскиот пар H||L.
794 Програмирање на општ микропроцесор

Блок дијаграм Програм во асемблерски јазик


Задачата е решена со алгоритам и програм
во асемблерски јазик со разгранета структура.
Ознака Мнем. Операнд Коментари
LXI H, 4000H ;Vnesi vo reg.
par H||L adr.
4000H.
MOV A, M ;Prenesi go 1-
ot broj od
mem. лок vo
reg. A
INX H ;Zgolemi ja
vrednosta na
parot H||L.
MOV B, M ;Premesti go
2-ot broj od
mem.lok. vo
reg. B
CMP B ;Sporedi ja
sodrzinata A
so B
JNC IZLEZ ; ako ima
prenos skokni
na adresa
100BH.
MOV A, B ;Inaku(=ako
ima prenos)
Prenesi go
pomaliot br.
od reg. B vo
Acc.
IZLEZ: INX H ;Zgolemi ja
vrednosta na
parot H||L.
MOV M, A ;Prenesi go
rezultatot od
reg. A vo
memorijata.
HLT ;Kraj.
Во следната табела покрај програмот во
асемблерски јазик е прикажан и неговиот код
напишан во машински јазик. При тоа е претпо-
ставено дека машинскиот програм е запамтен
во меморијата и започнува од адреса 1000Н.
Програмирање на општ микропроцесор 795

Адреса Мнемоник Операнд Код на Коментари


операција
1000 LXI H, 4000H 21 ;Vnesi vo reg. par H||L so adr.
3000H.
1001 00 ;Poniskiot bajt od adresata 4000H.
1002 30 ;Povisokiot bajt od adresata 4000H.
1003 MOV A, M 7E ;Prenesi go 1-ot operand od
memorijata vo reg. A
1004 INX H 23 ;Zgolemi ja vrednosta na parot
H||L.
1005 MOV B, M 46 ;Premesti go 2-ot operand od
memorijata vo reg. B
1006 CMP B B8 ;Sporedi go B so A
1007 JNC 100BH D2 ; ako ima prenos skokni na adresa
100BH
1008 0B ; Poniskiot bajt od adresata 100BH.
1009 20 ; Povisokiot bajt od adresata
100BH.
100A MOV A, B 78 ;Prenesi go pomaliot od reg. B vo
reg A.
100B INX H 23 ;Zgolemi ja vrednosta na parot
H||L.
100C MOV M, A 77 ;Prenesi go rezultatot od A vo
mem.lok
100D HLT 76 ;Kraj.

Влезни податоци: Излезни податоци/резултати:


- Пред извршување: - После извршување:
4000H: 25H 4000H: 25H
4001H: 15H 4001H: 15H
4002H: xxH 4002H: 15H
796 Програмирање на општ микропроцесор

Пример 9: Одредување на квадрат на 8-битен број (Структура со повторување)


Објаснување:
Бројот на квадрат се пресметува со множење на бројот самиот со себе. Затоа,
бројот се собира со себе толку пати колку што е самиот тој. Ќе се користи метод
на последователно собирање. Така на пр. ако претпоставиме дека бројот кој
треба да се квадрира е 3, би добиле: 32 = 3 х 3 = 3+3+3 = 9. Три пати треба да го
собираме податокот 03H со што го добиваме неговиот квадрат: 03H + 03H + 03H
= 09H. За собирање се користат регистрите А и В. И во акумулаторот А, и во
регистерот В се сместува бројот, а како бројач се користи регистерот C. На
неговата содржина треба да “внимава“ програмот така што операцијата собирање
ќе се изврши колку пати колку што е самиот број.
• Оваа програма пресметува квадрат на 8-битниот број 03H кој е зачуван во
мемориската локација 3000H.
• На почетокот (иницијално, првично) во H||L парот се сместува адресата на
мемориската локација 3000H каде што е сместен бројот кој треба да се квадрира.
• Тој број се пренесува од мемориската локација 3000H во регистерот B,
• Истиот се пренесува (се копира) и во регистерот C.
• Акумулаторот се иницијализира на 00H.
• Бројот кој е содржина на регистерот B се собира со содржината на акумулаторот
и збирот како резултат се внесува во акумулаторот (03Н + 00Н = 03Н) така што
во А се наоѓа истот број: А = В = 03Н,
• Бидејќи е извршено едно собирање регистерот C (бројачот) се намалува за 1.
• Потоа, се проверува вредноста на бројачот дали е нула (дали C=0). Доколку С
сѐ уште не станал нула, извршувањето на програмот се враќа назад на собирање
каде што регистерот B се собираше со рег. А и повторно се собира содржината на
акумулаторот А со онаа на В, што значи собирање на бројот 03Н самиот со себе,
после што повторно се проверува дали бројачот стигнал до нула. Ако С не е нула,
постапката на враќање и собирање се повторува.
• Ако се исполни условот бројачот С да стане нула (кога C=0), тогаш содржината
на H||L парот се зголемува за 1,
• Резултатот од сите собирања, т.е. квадратот на бројот 03Н во овој пример, се
наоѓа во акумулаторот и од таму се пренесува во мемориската локација 3001H
која е поинтирана од H||L парот.
Забелешка: За да се одреди квадратот на некој друг број, во програмот ќе треба
да се изврши корекција така што во мемориската локација со адреса 3000H ќе
треба да се внесе некој друг број. Овде треба да се внимава на тоа да бројот кој
се внесува да биде помал од 15dec = 0FH бидејќи веќе за 16dec = 10H се добива
квадрат кој е поголем од максималниот опсег на броеви 255dec = FFH што може
да се прикаже со еден бајт, а тоа е 256dec=100H (162=16 x 16 = 256).
Програмирање на општ микропроцесор 797

Блок дијаграм Програм во асемблерски јазик


Оваа задача се решава со алгоритам и
програм во асемблерски јазик кој има циклична
структура (со повторување).
Ознака Мнемоник Операнд Коментари
LXI H, 3000H ;Vnesi vo
reg. par
H||L adr.
3000H.
MOV B, M ;Prenesi go
brojot od
memorijata
vo reg. B
MOV C, M ;Prenesi go
istiot broj vo
registerot C.
MVI A, 00H ;Inicijaliziraj
go akum. A
so 00H.
ZBIR: ADD B ; Soberi go
B so A.
DCR C ; Namali go
brojacot reg.
C za 1
JNZ ZBIR ; ako C NE
e0 skokni
nazad na
linija ZBIR.
INX H ; Inaku (ako
C=0)
zgolemi ja
sodrz. na
parot H||L.
MOV M, A ;Prenesi go
rezultatot od
ak. А vo
mem. lok.
HLT ;Kraj.
Во следната табела покрај програмот во
асемблерски јазик е прикажан и неговиот код
напишан во машински јазик кој е запамтен во
меморијата и започнува од адреса 2000Н.
798 Програмирање на општ микропроцесор

Адреса Мнемоник Операнд Код на Коментари


операција
2000 LXI H, 3000H 21 ;Vnesi vo reg. par H||L so adr.
3000H.
2001 00 ;Poniskiot bajt od adresata 3000H.
2002 30 ;Povisokiot bajt od adresata
3000H.
2003 MOV B, M 46 ;Prenesi go operandot od
memorijata vo reg. B
2004 MOV C, M 4E ;Prenesi go istiot operand vo
registerot C.
2005 MVI A, 00H 3E ; Inicijaliziraj go akumulatorot with
00H.
2006 00 ; Neposrednata vrednost 00H
2007 ADD B 80 ; Soberi go B so A.
2008 DCR C 0D ; Namali go reg. C (brojac)
2009 JNZ 2007H C2 ; ako C ≠ 0 togas skokni nazad na
adresa 2007H
200A 07 ;Poniskiot bajt od adresata 2007H.
200B 20 ;Poviskiot bajt od adresata 2007H.
200C INX H 23 ;Zgolemi ja vrednosta na parot
H||L.
200D MOV M, A 77 ;Prenesi go rezultatot od
akumulatorot vo memorijata.
200E HLT 76 ;Kraj.

Влезни податоци: Излезни податоци/резултати:


- Пред извршување: - После извршување:
3000H: 03H 3000H: 03H
3001H: xxH 3001H: 09H

Пример 10: Програма за наоѓање на најголемиот број од дадена низа броеви


(Сложена структура со повторување и гранење)
Објаснување: Оваа програма го наоѓа најголемиот број во една низа.
Првично, бројачот C е иницијализиран со големината на низата (вкупниот број на
броеви во низата). Потоа, се внесуваат првите два броја во регистрите A и B и се
споредуваат. По споредбата, поголемиот од двата броја треба да се смести во
акумулаторот А. Заради тоа, ако тој број е веќе е во акумулаторот, тогаш таму и
останува, но инаку, ако поголемиот број е во регистерот В, тогаш тој број се
пренесува од В во акумулаторот А. Бројачот С се намалува за 1 и се проверува
дали достигнал нула. Ако условот е исполнет и одговорот е да, циклусот
завршува, но ако бројачот НЕ е нула, тогаш има уште броеви за проверување од
низата на броеви, па следниот број се преместува во регистерот В, и се
продолжува со споредување на регистерот В со содржината на А бидејќи таму е
сместен помалиот број од сите дотогашни споредби.
Програмирање на општ микропроцесор 799

• Да претпоставиме дека во мемориската локација 3000H е запамтена вредноста


на бројачот С. Почнувајќи од следната мемроиска локација па натаму во
последователни мемориски локации е сочувана низата на броеви: во секоја
локација по еден 8-нжбитен број.
• Иницијално, во H||L парот се внесува адресата на мемориската локација каде
што се наоѓа вкупниот број на броеви,
• Содржината на таа локација се пренесува и се копира во бројачкиот регистер C
• Потоа, содржината на меморискиот поинтер, на H||L парот се зголемува за 1 за
да покажува на првиот број во низата.
• Првиот број се пренесува од меморијата во акумулатор, па бројачот С се
намалува за еден.
• Содржината на регистерскиот пар H||L повторно се зголемува за 1 и вториот
број се пренесува во регистерот B.
• Двата броја се споредуваат. По споредбата, се проверува услов за преносот CY
- ако знаменцето за пренос CY = 0, тоа значи дека A > B,
- ако знаменцето за пренос CY = 1, тоа значи дека A < B,
• Ако нема пренос, тоа значи дека A е поголем од B и тогаш ништо не се менува.
Меѓутоа, ако има пренос тогаш бројот во регистерот В е поголем од оној што е
сместен во акумулаторот и тој број од В се пренесува во акумулаторот; во секој
случај, бројот кој се наоѓа во акумулатрот е поголемиот број од секоја споредба,
• потоа бројачот С се намалува за 1 и се проверува дали достигнал нула, т.е. дали
се завршиле сите броеви во низата,
• Ако бројачот НЕ е нула, тоа значи дека има уште броеви во низата, па ќе треба
да се земи следниот број, заради што контролата скока назад каде што за 1 се
зголемува содржината на поинтерскиот пар H||L,
• во регистерот B се пренесува бројот кој е адресиран со H||L, а тоа е всушност
следниот број од низата,
• овој процес се повторува се додека бројачот С не стане нула, што ќе значи дека
сите броеви во низата се споредени.
• Кога бројачот падне на нула, содржината на H||L парот се зголемува последен
пат за 1 и бројот кој се наоѓа во акумулаторот А бидејќи е најголемиот број во
низата, се пренесува во следната мемориска локација адресирана со содржината
на H||L меморискиот поинтер/пожувач.
Во продолжение е прикажан блок-дијаграмот на алгоритмот според кој е
напишан асемблерскиот програм за решавање на оваа задача која го одредува
најголемиот број во дадена низа од повеќе 8-битни броеви. После него е даден
изворниот код на асемблерскиот програм, а покрај него и програмот во напишан
во машински јазик. При тоа е претпоставено дека машинскиот програм е запамтен
во меморијата и започнува од адреса 2000Н.
Тест податоците следуваат веднаш после нив.
800 Програмирање на општ микропроцесор

Блок дијаграм

Влезни податоци: Излезни податоци/резултати:


- Пред извршување: - После извршување:
3000H: 05H 3000H: 05H
3001H: 15H 3001H: 15H
3002H: 01H 3002H: 01H
3003H: 65H 3003H: 65H
3004H: E2H 3004H: E2H
3005H: 83H 3005H: 83H
3006H: xxH 3006H: Е2H
Програмирање на општ микропроцесор 801

Ознака Мнемоник Операнд Коментари


LXI H, 3000H ;Vnesi vo reg. par H||L so adr. 3000H.
MOV C, M ;Prenesi go vkupniot broj broevi vo C
INX H ; Zgolemi ja vrednosta na parot H||L.
MOV A, M ;Prenesi go prviot broj od memorijata vo reg. A.
DCR C ;Namali go brojacot C za 1.
ZGOL: INX H ; Zgolemi ja vrednosta na parot H||L.
MOV B, M ;Prenesi go sledniot broj od memorijata vo reg. B.
CMP B ;Sporedi go B so A.
JNC NAMAL ; Ako ima prenos odi na linija so oznaka NAMAL
MOV A, B ; Inaku, ako ima prenos, odnesi go pogolemiot
broj od reg. B vo akumulatorskiot reg. A.
NAMAL: DCR C ;Namali go brojacot.
JNZ ZGOL ;ako brojacot ne e 0 vrati se na programska linija
so oznaka ZGOL.
INX H ; Zgolemi ja vrednosta na parot H||L.
MOV M, A ; Prenesi go rezultatot od reg. A vo memorijata.
HLT ;Kraj.

Адреса Мнем. Операнд Код на оп. Коментари


2000 LXI H, 3000H 21 ;Vnesi vo reg. par H||L adr. 3000H.
2001 00 ;Poniskiot bajt od adresata 3000H.
2002 30 ;Povisokiot bajt od adresata 3000H.
2003 MOV C, M 4E ;Prenesi go vkupniot broj broevi od
mem. lok. 3000H vo reg. C
2004 MOV B, M 4E ;Prenesi go 1-ot broj od mem. vo C
2004 INX H 23 ; Zgolemi ja vrednosta na parot H||L.
2005 MOV A, M 7E ;Prenesi go prviot broj od mem. vo A.
2006 DCR C 0D ;Namali go brojacot C za 1.
2007 INX H 23 ; Zgolemi ja vrednosta na parot H||L.
2008 MOV B, M 46 ;Prenesi go sledniot broj od
memorijata vo reg. B.
2009 CMP B B8 ;Sporedi go B so A.
200A JNC 200EH DA ;ako nema prenos skokni adr. 200EH
200B 0E ; Poniskiot bajt od adresata 200EH.
200C 20 ; Povisokiot bajt od adresata 200EH.
200D MOV A, B 78 ; Prenesi go pogolemiot br. od B vo A.
200E DCR C 0D ;Namali go brojacot.
200F JNZ 2007H C2 ; ako brojacot ne e 0 sokni adr. 2007H
2010 07 ; Poniskiot bajt od adresata 2007H.
2011 20 ; Povisokiot bajt od adresata 2007H.
2012 INX H 23 ; Zgolemi ja vrednosta na parot H||L.
2013 MOV M, A 77 ; Prenesi go rezultatot od A vo mem.
2014 HLT 76 ;Kraj.
802 Програмирање на општ микропроцесор

Следните неколку примери се решени задачи со сложена програмска


структура (линиски, со циклус и со гранење) за кои се претставени нивните блок-
дијаграми на алгоритмите и изворните програми на нивните решенија, секое
според соодветниот алгоритам даден со својот блок-дијаграм. Листинзите на
кодовите во машински јазик не прикажани бидејќи тие ќе ги обременат
решенијата. Секој ученик, соодветно на претходно решените примери,
внимателно може да ја напише табелата со инструкциите во машински јазик за
секој од презентираните примери.
Пример 11: (“Собери парни броеви“) Да се соберат само парните броеви
од дадена низа. Должината на низата е сместена во меморијата на мемориска
локација со адреса 2200H, а самата низа започнува од мемориска локација 2201H.

Блок дијаграм Програм во асемблерски јазик

Ознака Мнем. Операнд Коментари


LDA 2200
MOV C,A ;inicijal. na
brojacot C
MVI B,00 ; sumata
inicijal.na 0
LXI H,2201 ;inicijal. na
mem.pokaz.
BACK: MOV A,H ; vcituvanje
na broj
ANI 01 ;proverka
na parnosta
JNZ ZEMIP ;brojot e
neparen
MOV A,B ;sumata se
stava vo A
ADD M ; dodavame
paren broj
MOV B,A ;sumata se
smestuva
vo reg. B
ZEMIP: INX H ; zgolemi
pokazuvac
DCR C ; namali
brojac
JNZ BACK ;proveri dali
brojac = 0
STA 2210 ;sumata se
zapamtuva
vo mem.lok.
HLT ;kraj
Програмирање на општ микропроцесор 803

Пример 12: (“Пронајди бајт!“) Решението на оваа задача треба да биде програм
кој ќе пронајде еден 8-битен број (бајт) во низа од 50 броеви кои се запамтени во
меморијата во мемориски локации со последователни адреси започнувајќи од
адресата 2000Н. Ќе претпоставиме дека бројот кој го бараме веќе се наоѓа во
регистерот B. Покрај тоа, во мемориските локации со адреси 2200H и 2201H треба
да се зачува и адресата на саканиот број. Ако пронајдениот број не е пронајден,
тогаш во мемориските локации 2200H и 2201H, ќе треба да се запише 00Н.

Блок дијаграм
804 Програмирање на општ микропроцесор

Програм во асемблерски јазик

Ознака Мнемоник Операнд Коментари

MVI B, 27H ;vnesuvanje na brojot (bajtot) koj se bara


vo reg. B (kako primer e zemen 27H)

LXI H, 2000 ;inicijalizacija na registerki par HL kako


memoriski pokazuvac

MVI C, 52 ;inicijalizacija na register C kako brojac na


vrednost ednakva so vkupniot broj broevi

ZEMAJ: MOV A, M ;vcituvanje na prviot broj vo Acc. od mem.


lokacija pointirana so reg. par HL

CMP B ;sporeduvanje na procitaniot broj so


baraniot bajt koj e smesten vo reg. C

JZ PAMTI skokni predkraj za da se zapisi adresata


na pronajdeniot broj

INX H ;zgolemi go memoriskiot pointer za 1

DCR C ;namali go za 1 brojacot na broevi

JNZ ZEMAJ ;ako brojacot NE e 0 (C≠0) vrati se nazad i


prodolzi da baras vcituvajki sleden broj

LXI H, 0000 ;brojot NE e najden. vnesi 00H vo parot HL

PAMTI: SHLD 2200 ;zapamti ja sodrzinata na parot HL

HLT ;kraj na programata

Задача за дома: (Изменет “Пронајди бајт! “)


Да се напише потпрограм кој го „бара“ бајтот 24h во 80dec (50h)
последователни мемориски локации почнувајќи од адреса 0369h. При првото
наоѓање на тој бајт (24h) потпрограмот треба на излезната порта 07h да испрати
0Fh, и да се врати во главниот програм без да ги пребарува другите мемориски
локации кои останале непребарани. Доколку не го најди бараниот бајт, (не дојде
до поклопување на податокот 24h сместен во Асс со содржината на ниту една од
мемориските локации), тогаш на истата излезна порта 07h треба да испрати F0h.
Програмирање на општ микропроцесор 805

Пример 13: (“Проверка на парност”) Да претпоставиме дека се дадени одреден


број на ASCII симболи (букви, цифри, итн.), кодирани во стандардниот 7-битен
ASCII. Вкупниот број на вакви симболи (N) нека е даден како содржина на
мемориска локација чија адреса е 2040H. ASCII-симболите нека се сместени во
меморијата почнувајќи од адреса 2041H. Кај секој 7-битно кодиран ASCII-симбол
највисокиот (најмногу значајниот) 8-ми бит е 0. Во задачата се бара да се нацрта
блок дијаграм и да се напише програм во асемблерски јазик кој за секој од
запамтените карактери ќе изврши проверка на парноста и врз основа на тоа
бројот на 1-ци во секој кодиран симбол ќе го направи да биде парен. (За парен
број 1-ци нема да се менува 8-от бит и тој ќе остане 0, додека за непарен број 1-
ци, како 8-ми бит ќе треба да се запише 1-ца на место од 8-от бит кој е 0.)

Блок дијаграм Програм во асемблерски јазик

Ознака Мнем Операнд Коментари


LXI H, 2040 ;inicijaliziraj
adresa na
vkupno simb
MOV C,M ;inicijaliziraj
reg. C kako
brojac na simb
CITAJ: INX H ;vcitaj simb
adresiran so
reg.par HL
MOV A,M ;vcitaj simbol
vo Acc.
ORA A ;proverka na
parnost
JPO PAREN ;paren broj 1-
ci. Zemi nov
simbol.
ORI 80 ;neparen broj
1-ci. Dodaj 8-
mi bit 1-ca.
PAREN: MOV M, A ;zacuvaj
simbol
DCR C ;namali brojac
na simb C za 1
JNZ CITAJ ;ako brojac NE
e 0 odi nazad i
vcitaj nov
karakter
HLT ;kraj na
programata
806 Програмирање на општ микропроцесор

Пример 14: Софтверски тајмер со примена на бројачки циклус со 16–битен


бројач
Доколку има потреба од поголеми временски доцнења во нашите програми
може да се користи 16-битен, наместо 8-битен бројач кој што пример беше
презентиран во рамките на истоимената тематска целина во задолжителната
настава. Улогата на ваквиот дво-бајтен бројач полесно ќе се осветли и разбере
ако се анализира следната програма, напишана со само пет асемблерски
инструкции.
Во оваа програма, инструкциите DCX B; MOV A, C; ORA B и JNZ BACK се
извршуваат повеќе пати, зависно од вредноста на бројачот n, кој сега е зачуван
во регистерскиот пар B||C и претставен како 16-битен цел број така што
пресметката да се врши според него. За извршување на инструкцијата LXI B, n се
потребни 10Т-состојби и неа процесорот ја извршува само еднаш.

Ознака Мнем. Операнд Коментар Број на Т-


состојби
LXI B, n ;Vnesi vo brojacot presmetan 10T-sostojbi
broj
VRTI: DCX B ; Namali go brojacot za 1 6T-sostojbi
(Rp=B||C = Rp – 1)
MOVE A, C ; Prenesi go niskiot bajt C od 4T-sostojbi
brojacot Rp=B||C vo Acc.
ORA B ;Sporedi gi bit-so-bit (so 4T-sostojbi
operacija ILI, logicko sobiranje)
sodrzinite na niskiot bajt C so
visokiot bajt B od brojacot
Rp=B||C
JNZ VRTI ;ako rezultatot od sporedbata 10T/7 T-sostojbi
NE e 0, vrati se nazad i povtori (10Тs за циклус
назад, 7Ts за
излез од циклусот

Од излистаниот асемблерски код може да се пресмета бројот на Т-состојби


потребни за еден циклус на повторувања кој ќе биде даден со равенка следната
равенка: (6 + 4 + 4 + 10)Тs = 24 Т-состојби. Дополнително, бројот на Т-состојби
потребни за последната инструкција со која се излегува од циклусот ќе биде (6 +
4 + 4 + 7) = 21 Т-состојби. Ова значи дека вкупниот број на Т–состојби, потребни
за извршување на прикажаниот програм ќе биде:

Вкупно Т-состојби LXI B Циклуси Последен циклус

Tsn = 10 Ts + (n – 1) Ts x (24 +21)Ts


Програмирање на општ микропроцесор 807

Решена задача за софтверски тајмер со 16–битен бројач :


Колкав е бројот на Т-состојби, а со тоа и времето кое е одредено со
тајмерот во кој дво-бајтниот бројач е поставен на вредност n=03FF hex при
работна фреквенција f0=1MHz?
За да се реши задачата најнапред треба да се изврши конверзија на
хексадецималниот број n во декаден:
n = 03FFhex = 0х163+3х162+Fх161+Fх160= 0+3х162+15х16+15х1=1023dec.
Конверзијата во декаден систем можеше да се изврши и преку бинарниот
систем: n=03FFhex = (0000 0011 1111 1111)bin што дава ист резултат од 1023dec.
Познавајќи ја вредноста на n во декадно означување може да се одреди
вкупниот број на Т-состојби (Tsn) со внесување на неговата конкретна вредност
во претходната равенка:

Tsn = 10Ts + (n–1)Ts x (24 +21)Ts

Tsn = [10+(1022)x24+21]Ts=24559Ts
Имајќи предвид дека работната фреквенција на општиот микропроцесор е
f0=1MHz, времето потребно за една Т–состојба ќе биде е 1μs (Ts = T0 = 1/1MHz =
1μs). Според ова, вкупното време потребно за да се изврши дадената програма ќе
се добие кога вкупниот број на Т-состојби се помножи со времетраењето на една
Т–состојба а тоа е 1μs:

Тѕ1023 = 24559 х 1 μs = 24559μs = 24,559 ms.


Истиот резултат можеше да се добие и ако вкупниот број на Т-состојби се
поделеше со работната фреквенција f0=1MHz на микропроцесорот:

Тѕ1023 = 24559/1MHz = 24559 μsec = 24,559 ms.


Користењето на 16-битниот бројач значително ни ја зголемува можноста за
продолжување на временските доцнења генерирани со софтверски тајмери.
Имено, во овој случај, максималното можно каснење Тn16max ќе се определи со
најголемиот 16-битен број, а тоа е 1111 1111 111 1111 bin или 65535 dec.

Тsmax16 = [10+(65534)x24+21]Ts=[10+1572816+21]Ts=15.722.847 μsec.


Од последниот резултат е очигледно дека со дво-бајтниот бројач
временскиот опсег се зголеми до 15,7 секунди, што е за 1000 пати повеќе во
однос на софтверскиот еднобајтен бројач анализиран во рамките на истоимената
тематска целина во редовната настава.
Ако има потреба од дополнително времетраење во нов програмски ред под
инструкцијата ORA B, а пред инструкцијата JNZ VRTI, може да се внеси
инструкцијата NOP за која со секое нејзино извршување процесорот ќе губи 4Ts.
808 Програмирање на општ микропроцесор
Прилог Б.
Асемблерски
инструкции и
асемблерски
директиви
На следните неколку страни се дадени две табели за ОМП.
Првата табела ги содржи сите 144 асемблерски инструкции
наведени по азбучен редослед со нивниот код на операција, форматот
изразен во бајти, потребниот број на Т-состојби за нивно извршување и
описот на англиски јазик.
Втората табела се однесува на асемблерските директиви, кои се
пропратени со нивно кратко објаснување и карактеристични примери за
нивна примена во програмите, напишани на асемблерски јазик.
Б-2 Прилог-Б
Прилог-Б Б-3

Прилог Б-1

Бр. Мнемоник Оп.Код Бајти Ts Опис на англиски јазик


1. ADD A 87 1 4
2. ADD B 80 1 4 ADD Register
3. ADD C 81 1 4 to A
4. ADD H 84 1 4
5. ADD L 85 1 4
6. ADD M 86 1 7 Add memory to A
7. ADI Data C6 2 7 Add immediate to A
8. ANA A A7 1 4
9. ANA B A0 1 4 AND Register
10. ANA C A1 1 4 to A
11. ANA H A4 1 4
12. ANA L A5 1 4
13. ANA M A6 1 7 AND memory to A
14. ANI Data E6 2 7 AND immediate to A
15. CALL Label CD 3 18 CALL unconditional
16. CMA AF 1 4
17. CMC 3F 1 4
18. CMP A BF 1 4
19. CMP B B8 1 4 Compare Register
20. CMP C B9 1 4 with A
21. CMP H BC 1 4
22. CMP L BD 1 4
23. CMP M BD 1 7 Compare Memory with A
24. CPI Data FE 2 7 Compare Immediate with A
25. DCR A 3D 1 4
26. DCR B 05 1 4 Decrement
27. DCR C 0D 1 4 Register
28. DCR H 25 1 4
29. DCR L 2D 1 4
30. DCR M 35 1 10 Decrement memory
31. DCX B 0B 1 6 Decrement reg. pair B||C
32. DCX H 2B 1 6 Decrement reg. pair H||L
33. DCX SP 3B 1 6 Decrement stack pointer
34. DI F3 1 4 Disable interrupt
35. EI FB 1 4 Enable interrupt
36. HLT 76 1 5 Halt
Б-4 Прилог-Б

Бр. Мнемоник Оп.Код Бајти Ts Опис на англиски јазик


37. IN Port-addr. DB 2 10 Input from port
38. INR A 3C 1 4
39. INR B 04 1 4 Increment
40. INR C 0C 1 4 Register
41. INR H 24 1 4
42. INR L 2C 1 4
43. INR M 34 1 10 Increment memory
44. INX B 03 1 6 Increment reg. pair B||C
45. INX H 23 1 6 Increment reg. pair H||L
46. INX SP 33 1 6 Increment stack pointer
*)
47. JC Label DA 3 7/10 Jump on carry
*)
48. JM Label FA 3 7/10 Jump on minus
49. JMP Label C3 3 10 Jump unconditional
*)
50. JNC Label D2 3 7/10 Jump on no carry
*)
51. JNZ Label C2 3 7/10 Jump on no zero
*)
52. JP Label F2 3 7/10 Jump on plus (positive)
*)
53. JPE Label EA 3 7/10 Jump on parity even
*)
54. JPO Label E2 3 7/10 Jump on parity odd
*)
55. JZ Label CA 3 7/10 Jump on zero
56. LDA Addr. 3A 3 13 Load A direct
57. LHLD Addr. 2A 3 16 Load reg. pair H||L direct
58. LXI B 01 3 10 Load immediate reg. pair B||C
59. LXI H 21 3 10 Load immediate reg. pair H||L
60. LXI SP 31 3 10 Load immediate stack pointer
61. MOV A, A 7F 1 4
62. MOV A, B 78 1 4 Move register
63. MOV A, C 79 1 4 to register
64. MOV A, H 7C 1 4
65. MOV A, L 7D 1 4
66. MOV A, M 7E 1 7 Move memory to register
67. MOV B, A 47 1 4
68. MOV B, B 40 1 4 Move register
69. MOV B, C 41 1 4 to register
70. MOV B, H 44 1 4
71. MOV B, L 45 1 4
72. MOV B, M 46 1 7 Move memory to register

*) 10Тs ако условот е исполнет, односно 7Тs ако условот НЕ е исполнет.


Тs e Т—состојбa.
Прилог-Б Б-5

Бр. Мнемоник Оп.Код Бајти Ts Опис на англиски јазик


73. MOV C, A 4F 1 4
74. MOV C, B 48 1 4 Move register
75. MOV C, C 49 1 4 to register
76. MOV C, H 4C 1 4
77. MOV C, L 4D 1 4
78. MOV C, M 4E 1 7 Move memory to register
79. MOV H, A 67 1 4
80. MOV H, B 60 1 4 Move register
81. MOV H, C 61 1 4 to register
82. MOV H, H 64 1 4
83. MOV H, L 65 1 4
84. MOV H, M 66 1 7 Move memory to register
85. MOV L, A 6F 1 4
86. MOV L, B 68 1 4 Move register
87. MOV L, C 69 1 4 to register
88. MOV L, H 6C 1 4
89. MOV L, L 6D 1 4
90. MOV L, M 6E 1 7 Move memory to register
91. MOV M, A 77 1 7
92. MOV M, B 70 1 7 Move register
93. MOV M, C 71 1 7 to memory
94. MOV M, H 74 1 7
95. MOV M, L 75 1 7
96. MVI A, Data 3E 2 7
97. MVI B, Data 06 2 7 Move immediate
98. MVI C, Data 0E 2 7 register
99. MVI H, Data 26 2 7
100. MVI L, Data 2E 2 7
101. MVI M, Data 36 2 10 Move immediate memory
102. NOP 00 1 4 No operation
103. ORA A B7 1 4
104. ORA B B0 1 4 OR Register
105. ORA C B1 1 4 with A
106. ORA H B4 1 4
107. ORA L B5 1 4
108. ORA M B6 1 7 OR memory with A
109. ORI Data F6 2 7 OR immediate with A
110. OUT Port-Addr. D3 2 10 Output to port
Б-6 Прилог-Б

Бр. Мнемоник Оп.Код Бајти Ts Опис на англиски јазик


111. POP B C1 1 10 Pop register pair B||C off stack
112. POP H E1 1 10 Pop register pair H||L off stack
113. POP PSW F1 1 10 Pop A and Flags off stack
114. PUSH B C5 1 12 Push register pair B||C on stack
115. PUSH H E5 1 12 Push register pair H||L on stack
116. PUSH PSW F5 1 12 Push A and Flags on stack
117. RAL 17 1 4 Rotate A left through carry
118. RAR 1F 1 4 Rotate A right through carry
119. RET C9 1 10 Return
120. RIM 20 1 4 Read interrupt mask
121. RLC 07 1 4 Rotate A left
122. RRC 0F 1 4 Rotate A right
123. RST 0 C7 1 12
124. RST 1 CF 1 12 Restart
125. RST 2 D7 1 12
126. RST 3 DF 1 12
127. SHLD Addr. 22 3 16 Store reg. pair H||L direct
128. SIM 30 1 4 Set interrupt musk
129. STA Addr. 32 3 13 Store A directl
130. STC 37 1 4 Set carry
131. SUB A 97 1 4
132. SUB B 90 1 4 Subtract register
133. SUB C 91 1 4 from A
134. SUB H 94 1 4
135. SUB L 95 1 4
136. SUB M 96 1 7 Subtract memory from A
137. SUI Data D6 2 7 Subtract immediate from A
138. XRA A AF 1 4
139. XRA B A8 1 4 Exclusive OR
140. XRA C A9 1 4 register with A
141. XRA H AC 1 4
142. XRA L AD 1 4
143. XRA M AE 1 7 Exclusive OR memory with A
144. XRI Data EE 2 7 Exclusive OR immediate with A
Прилог-Б Б-7

Прилог Б-2

Табела за потсетување со асемблерските инструкциите на КОП


Б-8 Прилог-Б
Прилог-Б Б-9

Прилог Б-3
Асемблерските директиви или т.н. псеудо-инструкции не генерираат
извршни инструкции во машински код, туку го насочуваат асемблерот да изврши
одредена операција. Асемблерските директиви се инструкции до асемблерот, кои
се во врска со програмата што во моментот се асемблира. Тие не се преведуваат
во машински и нив не им се доделуваат мемориски локации во објектниот фајл.

ASM директива Опис што се извршува со нејзино наведување


ORG (origin) Инструкцијата ORG му ја кажува на асемблерот адресата
на мемориската локација за следната инструкција или
податочниот бајт, кој треба да се асемблира. ORG се
внесува на почетокот на програмата. На пр. со ORG
1000Н следниот блок на инструкции или податоци треба
да се смести на мемориските локации почнувајќи од
адресата 1000h.
END Асемблерскиот програм завршува со читање на
програмата кога ќе наиде на директивата END која значи
крај на асемблерскиот програм. Асемблерската инструк-
ција HLT сугерира застанување заради крај на програ-
мата, но не мора да значи дека е крај на асемблирањето.
EQU (equate) EQU асемблерските директиви обично се појавуваат како
група на почетокот на програмата со формат: име EQU
израз каде што „Име“ означува симболичко име. Секогаш
кога името се појавува во програмата, тоа се заменува
со вредноста на изразот во EQU псевдо инструкцијата.
На пример, CNT EQU 0100H, на симболичкото име CNT му
доделува вредност 0100H.
DB (define byte) DB директивата се користи за декларирање на еднобајтна
optional name: DB list променлива или за меморирање на еден бајт во
мемориска локација. Иницијализира (резервира)
мемориски простор бајт по бајт. Асемблираните бајти на
податоци се запамтуваат во последователни мемориски
локации се додека не се зачуваат сите вредности.
Пример: Асемблерскиот програм на псеудо
инструкцијата ORG 0100H, проследена со DB 30, 18H,
‘A’+3, ‘ABC’ ќе предизвика во меморијата да се запишат
следните податоци: на адреса
0100H: 1EH,
101H: 18H,
102H: 44H,
103H: 41H,
104H: 42H,
105H: 43H.
Табелата продолжува
Б-10 Прилог-Б

Продолжение на табелата

ASM директива Опис што се извршува со нејзино наведување


DW (define word) Иницијализира мемориски простор од два бајти (еден
збор) истовремено. Директивата DW се користи за да се
дефинира променлива од типот збор или да се резервира
мемориски простор од типот збор во меморијата.
Пример: Асемблерскиот програм со исказот (псеудо
инструкцијата) ORG 100H, проследена со DW 1234H,
30+5, ‘A’+3 ќе предизвика во меморијата да се запишат
следните податоци: на адреса
100H: 34H,
101H: 12H,
102H: 23H,
103H: 00H,
104H: 44H,
105H: 00H.
DS (define storage) Резервира одреден мемориски простор со број на
optional label: DS мемориски локации. Ознаката може да се користи во
expression програмата како мемориска локација за почетокот на
меморискиот блок. Може да се користи како мемориски
бафер, што претставува множество на последователни
мемориски локации, а исто така се користи и за
привремено зачувување на податоци.
DS dddd Дефинира простор. Асемблерот не пишува
никаков код на следните dddd мемориски локации.
Пример: Асемблерскиот програм со исказот (псеудо
инструкцијата) ORG 100H, DW 3759H, DS 30H и DB’AB’ ќе
предизвика во меморијата да се запишат следните
податоци: на адреса
100H: 59H,
101H: 37H,
132H: 61H,
133H: 62H.
Содржините на локациите од 102H до 131H не се
одредени (специфицирани).
Табела на акроними
Акроним Значење на акронимот
A, Acc Акумулатор (Акумулаторски регистер)
АМ Адресна магистрала
АЛЕ, АЛУ Аритметичко–логичка единица, Аритметичко–логички уред
АСЈ Асемблерски јазик
АСМ Асемблер (системски програм)
b Бит
B Бајт (8 бита)
В/И Влезно/Излезна, Влезно/Излезни, Влез/Излез
ВМ Виртуелна меморија
ДИК Дигитално интегрирано коло
ДМП Директен мемориски пристап
EPROM Програмабилна меморија од која може само да се чита и која e
(UV PROM) избришлива со ултравиолетова светлина
EEPROM Програмабилна меморија од која може само да се чита и која e
електрички избришлива
Z Знаменце кое сигнализира нула
ИК Интегрирано коло
IR Инструкциски регистер
IC Инструкциски циклус
КЕ Контролна единица
КМ Контролна магистрала
КОП, ОПК Код на операција (Операциски код)
ЛИК Линеарно (аналогно) интегрирано коло
LIFO Последен внесен – прв изнесен
MAR Мемориски адресен бафер регистер
MDR Мемориски податочен бафер регистер
МКП Mикропроцесор
МКПС Микропроцесорски систем
МКК Mикрокомпјутер
МККС Микрокомпјутерски систем
MC Машински циклус
ОМП, ОМКП Општ микропроцесор
ОС Оперативен систем

Табелата продолжува
Продолжение на табелата

Акроним Значење на акронимот


P Знаменце кое сигнализира парност
PC Програмски бројач
PROM Програмабилна меморија од која може само да се чита и која може
(OTP ROM) само еднаш да се испрограмира
PSW Програмски статусен збор (Програмски збор на состојба)
ПМ Податочна магистрала
P Знаменце кое сигнализира парност
PC Програмски бројач
PROM Програмабилна меморија од која може само да се чита и која може
(OTP ROM) само еднаш да се испрограмира
PSW Програмски статусен збор (Програмски збор на состојба)
ПМ Податочна магистрала
ПЕ Податочна единица
RAM Меморија со случаен пристап од која може да се чита и во која
може да се запишува
ROM Меморија со случаен пристап од која може само да се чита
RWM Меморија од која може да се чита и во која може да се запишува
S Знаменце за предзнак
SP Покажувач на стек (магацинска) меморија
TMP Привремени регистри (анг. Temporary registers)
ТS Т – состојба (една периода на тактот на процесорот)
F Регистер на знаменца (регистер на состојба, статусен регистер)
HZ, HiZ, Трета состојба на бесконечно голема импеданса (отпорност)
TriState
ЦПЕ, ЦПУ Централна процесорска единица, Централен процесорски уред
CY Знаменце за пренос
Користена литература:

Библиографија:
1. Сервини, Ј. (2008). Импулсна и дигитална електроника I (прв дел), трето
издание, Просветно дело.
2. Сервини, Ј., Дужевиќ, М. (2008). Импулсна и дигитална електроника II (втор
дел), четврто издание, Просветно дело.
3. Сервини, Ј., Сервини, Ж. (2010). Дигитална електроника и микропроцесори,
Министерство за образование и наука на Република Македонија.

WEB-ографија:
1. D. K. Kaushik. (2010) AN INTRODUCTION TO MICROPROCESSOR 8085. Dhanpat Rai
Publishing co., New Delhi, India.
https://www.researchgate.net/publication/264005162_An_Introduction_to_Microprocessor_8085

2. Intel Corporation. (1980). 8080/8085 MACRO ASSEMBLER OPERATOR'S MANUAL,


Intel Corporation, Santa Clara, California, USA.
http://www.bitsavers.org/pdf/intel/ISIS_II/9800292-
04D_ISIS_II_8080_8085_Macro_Assembler_Operators_Guide_Aug81.pdf

3. Intel Corporation. (1978). 8080/8085 ASSEMBLY Language Programming Manual,


Intel Corporation, Santa Clara, California, USA.
http://bitsavers.trailing-edge.com
/components/intel/8085/9800301C_8080_8085_Assembly_Language_Programming_Manual_Nov78.
pdf

4. John Crisp. (2004, 2nd Edition.). Introduction to Microprocessors and


Microcontrollers. Newnes Elsevier. Oxford, Massachusetts, USA.
https://www.pdfdrive.com/introduction-to-microprocessors-and-microcontrollers-d158887842.html

5. Microprocessor Fundamentals.pdf
https://www.pdfdrive.com/microprocessor-fundamentalspdf-d41485263.html

6. MICROPROCESSOR 8085 (Highlited extracts)


https://inspirit.net.in/books/academic/8085%20Microprocessor%20-%20Ramesh%20Gaonkar.pdf

7. Morris R. Mano. (1992, 3rd Edition). Computer System Architecture. Pearson;


Prentice Hall.
https://www.pdfdrive.com/computer-system-architecture-morris-mano-third-edition-d31004022.html
(https://www.amazon.com/Computer-System-Architecture-Morris-Mano/dp/0131755633
Документи со податоци за интегрирани кола (анг. datasheets)
1. https://www.nexperia.com/products/analog-logic-ics/synchronous-interface-logic/

2. https://www.nexperia.com/products/analog-logic-ics/control-logic/

3. https://www.onsemi.com/PowerSolutions/taxonomy.do?id=612

You might also like