Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Мікропроцесорні пристрої та системи

.pdf
Скачиваний:
41
Добавлен:
14.01.2021
Размер:
6.73 Mб
Скачать

вгору. Тобто, 8 вивідні МК можна поставити в панель для 14 та 20 виводних, при цьому живлення подається правильно і навіть назви ліній портів залишаться тим же самими (рисунок 1). Крім того, нові моделі РІС старшої підродини випускаються «pin - to – pin» (вивід до виводу) сумісними з середньою підродиною, що позитивно позначається при заміні.

Рисунок 1 – Сумісність поколінь мікроконтролерів

У таблиці 3 наводиться перелік мікроконтролерів, що є найбільш популярними. Мікроконтролери PIC12F629, PIC 12F675, PIC 16F628A, PIC 16F876A найчастіше використовуються у реальних конструкціях.

Архітектура мікроконтролера РІС16F84

PIC16F84 відноситься до сімейства КМОН мікроконтролерів. Відрізняється тим, що має внутрішнє 1Kx14 біт EEPROM для програм, 8- бітові дані і 64-байт EEPROM пам'яті даних. При цьому відрізняються низькою вартістю і високою продуктивністю. Всі команди складаються з одного слова ( 14 біт) і виконуються за один цикл (400 нс при 10 МГц), окрім команд переходу, які виконуються за два цикли (800 нс). PIC16F84 має переривання, що спрацьовують від чотирьох джерел, і восьмирівневий апаратний стек. Периферія включає 8-бітовий таймер/лічильник з 8-бітовим програмованим попереднім дільником (фактично 16 - бітовий таймер) і 13 ліній двох направленого введення/виведення. Висока навантажувальна здатність ліній введення/виведення (максимальний вхідний струм –25 мА, максимальний вихідний струм –20 мА ) спрощують зовнішні драйвери і, тим самим, зменшується загальну вартість системи. Пам'ять даних (ОЗП) для

PIC16F84 має розрядність 8 біт (64х8), пам'ять програм має розрядність 14 біт (1024х14). Даний мікроконтролер має 36 х 8 регістрів загального призначення, 15 спеціальних апаратних регістрів SFR; восьмирівневий апаратний стек. У ньому передбачена можливість прямої, непрямої і відносної адресації даних і команд. Переривання можуть викликати наступні чотири джерела: зовнішній вхід INT; переповнювання таймера TMR0; переривання при зміні сигналів на лініях порту B (PORTB); по завершенню запису даних в пам'ять EEPROM. Архітектура та зовнішній вигляд мікроконтролера наведені на рисунках 2, 3.

1K x 14

68 x 8

Рисунок 2 – Архітектура PIC16F84

Рисунок 3 – Призначення виводів PIC16F84

Таблиця 4 – Позначення виводів і їх функціональне призначення

Назва виводу

Номер

Тип виводу

 

 

Опис

 

 

 

 

вив.

Вх/Вих

Буфер

 

 

 

 

1

 

2

3

4

 

 

5

 

OSC1/CLKIN

16

Вхід

TTL/ST

Підключення кварцу, RC або вхід

 

 

 

 

 

 

зовнішнього тактового сигналу.

 

OSC2/CLKOUT

15

Вихід

Генератор, вихід тактової частоти в режимі

 

 

 

 

 

 

RC генератора, в решті випадків – для

 

 

 

 

 

 

 

підключення кварцу

 

 

RA0

17

Вх/Вих

TTL

PORTA двохнаправлений порт

 

 

RA1

18

Вх/Вих

TTL

введення/виведення

 

 

RA2

1

Вх/Вих

TTL

 

 

 

 

 

RA3

2

Вх/Вих

TTL

 

 

 

 

RA4/T0CKI

3

Вх/Вих

TTL

Може також використовуватися як вхід

 

 

 

 

 

 

 

таймера/лічильника

 

 

 

 

 

 

 

PORTB

двохнаправлений

порт

RB0/INT

6

Вх/Вих

TTL/ST

введення/виведення

 

Може також використовуватися як вхід

 

RB1

7

Вх/Вих

TTL

зовнішнього переривання

 

 

 

 

 

 

 

RB2

8

Вх/Вих

TTL

 

 

 

 

 

RB3

9

Вх/Вих

TTL

 

 

 

 

 

RB4

10

Вх/Вих

TTL

Вхід переривання по зміні сигналу

 

 

RB5

11

Вх/Вих

TTL

Вхід переривання по зміні сигналу

 

 

RB6

12

Вх/Вих

TTL/ST

Вхід переривання по зміні сигналу,

 

 

 

 

 

 

тактовий

сигнал при послідовному

 

RB7

13

Вх/Вих

TTL/ST

програмуванні

 

 

 

Вхід переривання по зміні сигналу, сигнал

 

 

 

 

 

 

даних при послідовному програмуванні

 

 

 

 

4

Вхід/П

TTL

Вхід скидання пристрою з активним

MCLR

 

 

 

 

 

 

низьким рівнем або напруга програмування

 

 

 

 

 

 

при послідовному програмуванні

 

 

VDD

14

П

Вивід позитивного живлення

 

 

VSS

5

П

Загальний вивід

 

 

Умовні позначення: = не використовується, ST = вхід з тригером Шмідта, П = живлення.

Усі пpогpамні об'єкти, з якими може працювати PIC, представляють собою фізичні pегістpи. Усі регістри можуть бути розділені на дві функціональні групи: регістри спеціальних функцій і регістри загального призначення. Перші 32 байти ОЗП адресуються прямо і називаються "Банк 0" (рисунок 4). Область ОЗП організована як 128 х 8. До осередків ОЗП можна адресуватися прямо або побітно, через регістр покажчик (банка) FSR (04h). Це також відноситься і до EEPROM пам'яті даних-констант.

Набір операційних pегістpів складається з pегістpу непрямою адресації (f0), pегістpа таймеpа/лічильника (f1), пpогpамного лічильника (f2), pегістpа слова стану (f3), pегістpа вибіpки (f4) і pегістpів введення/виведення (f5, f6).

Рисунок 4 – Програмна модель PIC16F84

f0...регістр непрямої адресації IND0

Регістр непрямої адресації f0 фізично не існує. Він використовує pегістp вибіpки f4 для непрямої вибіpки одного з 64 можливих pегістpів. Будь-яка

команда, що використовує f0, насправді звертається до pегістpу даних, на який вказує f4.

f1...регістр таймера/лічильника TMR0

Регістр таймеpа/лічильника TMR0 може бути записаний і прочитаний як і будь-який інший pегістp. TMR0 може збільшуватися по зовнішньому сигналу, що подається на вивід RTCC, або по внутрішній частоті, що відповідає частоті команд. Основне призначення таймеpа/лічильника - підрахунок числа зовнішніх подій та вимірювання часу. Сигнал від зовнішнього або внутрішнього джерела також може бути попередньо поділений вбудованим в PIC дільником, що програмується.

f2...програмний лічильник PCL

Пpогpамний лічильник (PC) використовується для генерації послідовності адрес осередків ПЗП пpогpами, що містять 14 - розрядні команди. PC має pозpядність 13 біт, що дозволяє безпосередньо адресувати 8Кх14 осередків ПЗП. Для PIC16F84 проте, тільки 1К осередків фізично доступно. Молодші 8 pозpядів PC можуть бути записані і прочитані чеpез pегістp f2, старших 5 pозpядів завантажуються з pегістpа PCLATCH, що має адресу 0Ah.

f3...регістр слова стану STATUS

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

f4...регістр вибірки FSR

Регістр вибірки FSR використовується разом з pегістpом непрямої адресації f0 для непрямої вибірки одного з 64 можливих pегістpів. Фізично задіяне 36 pегістpів ОЗП користувача, що розташовані за адресами 0Ch-2Fh і 15 службових pегістpів, що розташовані за різними адресами.

f5, f6...регістри введення/виведення PORTA, PORTB

Регістри f5 і f6 відповідають двом портам введення/виведення, що є у наявності у PIC16F84. Порт A має 5 pозpядів PA4 - PA0, які можуть бути індивідуально запpогpамовані як входи або виходи за допомогою pегістpа TRISA, що має адресу 85h. Поpт B має 8 pозpядів PB7 - PB0 і пpогpамується

за допомогою pегістpу TRISB, що має адpесу 86h. Програмування 1 в pозpяді pегістpу TRIS означає, що pозpяд порту налаштований як вхід.

f8, f9...регістри EEPROM EEDATA, EEADR

PIC16F84 має вбудований EEPROM pозміpом 64 байти. Робота з EEPROM відбувається через регістр даних EEDATA і pегістp адреси EEADR. Запис нового байта триває близько 10 мсек і керується вбудованим таймером. Керування записом і читанням здійснюється через pегістp EECON1, що має адpесу 88h. Для додаткового контpолю за записом служить pегістp EECON2, що має адресу 89h.

Регістри загального призначення

Регістри загального призначення представляють собою статичне ОЗП, що розташоване за адресами 0Ch-2Fh. Всього в PIC16C84 можна використати 36 осередків ОЗП.

Спеціальні регістри W, INTCON, OPTION

Робочий pегістp W використовується у більшості команд як pегістp акумулятора. Регістp переривань INTCON (адреса 0Bh) служить для керування режимами переривання і містить біти дозволу переривань від різних джерел і прапори переривань. Регістр режимів OPTION (адреса 81h) служить для завдання джерел сигналу для попереднього дільника і таймера/лічильника, а також для завдання коефіцієнта ділення попереднього дільника, активного фронту сигналу для RTCC і входу п ереривання. Регістром OPTION можуть бути включені навантажувальні pезистоpи для pозpядів поpта B, що запрограмовані як входи.

Архітектура мікроконтролерів з CISC архітектурою

1 Структурна організація мікроконтролера i8051

2 Організація ОЗП, ПЗП і регістрів мікроконтролера 8051

3 Організація портів введення/виведення мікроконтролера 8051

4 Таймери / лічильники мікроконтролерів сімейства 8051

5 Послідовний порт мікроконтролера

6 Система переривань мікроконтролера 8051

Уданий час серед усіх 8-розрядних мікроконтролерів - сімейство MCS-51 є безсумнівним чемпіоном з кількості різновидів і кількості компаній, що випускають його модифікації. Воно одержало свою назву від першого представника цього сімейства - мікроконтролера 8051, випущеного в 1980 році на базі технології HMOS. Вдалий набір периферійних пристроїв, можливість гнучкого вибору зовнішньої чи внутрішньої програмної пам'яті і прийнятна ціна забезпечили цьому мікроконтролеру успіх на ринку. З погляду технології мікроконтролер 8051 був для свого часу дуже складним виробом - у кристалі було використано 128 тис. транзисторів, що в 4 рази перевищувало кількість транзисторів у 16-розрядному мікропроцесорі 8086.

На сьогоднішній день існує більш 200 модифікацій мікроконтролерів сімейства 8051, що випускаються майже 20-ю компаніями. Щороку з'являються всі нові варіанти представників цього сімейства. Основними напрямками розвитку є: збільшення швидкодії (підвищення тактової частоти і переробка архітектури), зниження напруги живлення і споживання, збільшення обсягу ОЗП і FLASH..

Усі мікроконтролери із сімейства MCS-51 мають загальну систему команд. Наявність додаткових пристроїв впливає тільки на кількість регістрів спеціального призначення. Основними виробниками клонів 51-го сімейства у світі є фірми

Philips, Siemens, Intel, Atmel, Dallas, Temic, Oki, AMD, MHS, Gold Star, Winbond,

Silicon Systems і ряд інших.

Урамках СРСР виробництво мікроконтролера 8051 здійснювалося в Києві, Воронежі (1816ВЕ31/51, 1830ВЕ31/51), Мінську (1834ВЕ31) і Новосибірську

(1850ВЕ31).

1 Структурна організація мікроконтролера i8051

Мікроконтролери сімейства 8051 мають такі апаратні особливості:

внутрішнє ОЗП обсягом 128 байт;

чотири двонаправлених 8-разрядних портів введення/виведення, що побітно настроюються;

два 16-розрядних таймери-лічильники;

вбудований тактовий генератор;

адресація 64 Кбайт пам'яті програм і 64 Кбайт пам'яті даних;

дві лінії запитів на переривання від зовнішніх пристроїв;

інтерфейс для послідовного обміну інформацією з іншими мікроконтролерами або персональними комп'ютерами.

Рисунок 1 – Структурна схема мікроконтролера КМ1816ВЕ51

Функціональна схема мікроконтролера сімейства 8051 наведена на рисунку 1, а на рисунку 2 показано призначення виводів. Мікроконтролер виконано на основі високорівневої n-МОП технології. Через чотири програмованих паралельних порти введення/виведення й один послідовний порт мікроконтролер взаємодіє з зовнішніми пристроями. Основу схеми (рис. 1) утворює внутрішня двохнаправлена 8-бітна шина, що зв'язує між собою основні вузли і пристрої мікроконтролера: резидентна пам'ять програм (RPM), резидентна пам'ять даних (RDM), арифметикологічний пристрій (ALU), блок регістрів спеціальних функцій, пристрій керування (CU) і порти введення/виведення (P0-P3).

8-бітний арифметико-логічний пристрій (ALU) може виконувати арифметичні операції додавання, віднімання, множення і ділення; логічні операції І, АБО, виключне АБО, а також операції циклічного зрушення, скидання, інвертування і т.п. До входів підключені програмно-недоступні регістри T1 і T2, призначені для тимчасового збереження операндів, схема десяткової корекції (DCU) і схема формування ознак результату операції (PSW).

P1.0

 

1

 

 

 

40

 

Vcc

 

 

 

 

 

P1.1

 

2

 

 

39

 

P0.0

(AD0)

P1.2

 

 

3

 

 

38

 

P0.1

(AD1)

P1.3

 

 

4

 

 

37

 

P0.2

(AD2)

P1.4

5

 

 

36

 

P0.3

(AD3)

 

 

P1.5

 

 

6

 

 

35

 

P0.4

(AD4)

P1.6

 

 

7

 

 

34

 

P0.5

(AD5)

P1.7

 

 

8

 

 

33

 

P0.6

(AD6)

RESET

 

 

 

 

 

9

 

 

32

 

P0.7

(AD7)

 

 

 

 

 

 

(RxD) P3.0

 

 

10

 

 

31

 

EA/Vpp

 

 

 

 

 

 

(TxD) P3.1

 

 

11

 

 

30

 

ALE/PROG

(INT0) P3.2

 

 

 

 

 

 

12

 

 

29

 

PSEN

(INT1) P3.3

 

 

 

 

 

 

 

13

 

 

28

 

P2.7

(A15)

(T0) P3.4

 

 

 

 

 

 

 

14

 

 

27

 

P2.6

(A14)

(T1) P3.5

 

 

15

 

 

26

 

P2.5

(A13)

(WR) P3.6

 

 

16

 

 

25

 

P2.4

(A12)

(RD) P3.7

 

 

 

 

 

 

 

 

 

17

 

 

24

 

P2.3

(A11)

XTAL2

 

 

 

 

 

 

 

 

 

18

 

 

23

 

P2.2

(A10)

XTAL1

 

 

 

 

 

 

 

 

 

 

19

 

 

22

 

P2.1

(A9)

Vss

 

 

 

 

 

 

 

 

 

 

20

 

 

21

 

P2.0

(A8)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рисунок 2 – Призначення виводів 8051

Позначення виводів:

VSS — потенціал загального проводу ("землі");

VCC — основна напруга літанія +5 В;

X1, X2 — виводи для підключення кварцового резонатора;

RST — вхід загального скидання мікроконтролера;

PSEN — дозвіл зовнішньої пам'яті програм; видається тільки при звертанні до зовнішнього ПЗП;

ALE — строб адреси зовнішньої пам'яті;

ЕА — відключення внутрішньої програмної пам'ять; рівень 0 на цьому вході змушує мікроконтролер виконувати програму тільки зовнішнього ПЗП;

P1 — восьмибітний квазідвонаправлений порт введення/виведення: кожен розряд порту може бути запрограмований як на введення, так і на виведення інформації, незалежно від стану інших розрядів;

P2 — восьмибітний квазідвонаправлений порт, аналогічний Р1; крім того, виводи цього порту використовуються для видачі адресної інформації при звертанні до зовнішньої пам'яті чи програм даних (якщо використовується 16бітова адресація останньої).

Р3 — восьмибітний квазідвонаправлений порт, аналогічний Р1; крім того, виводи цього порту можуть виконувати ряд альтернативних функцій, що використовуються при роботі таймерів, порту послідовного введення/виведення, контролера переривань, і зовнішньої пам'яті програм і даних;

P0 — восьмибітний двонаправлений порт вводу-вивоку інформації: при роботі з зовнішніми ОЗП і ПЗП по лініях порту в режимі тимчасового мультиплексування видається адреса зовнішньої пам'яті, після чого здійснюється чи передача прийом даних.

2 Організація ОЗП, ПЗП і регістрів мікроконтролера 8051

Пам'ять програм (ПЗП)

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

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

Пам'ять даних (ОЗП)

Обсяг розташованої на кристалі пам'яті даних—128 байт. Обсяг зовнішньої пам'яті даних може досягати 64 Кбайт. Перші 32 байта організовані в чотири банки