Скачиваний:
28
Добавлен:
17.03.2016
Размер:
557.06 Кб
Скачать

7. Структура мікроконтролерів сімейства mcs-51

В дійсний час найбільш розповсюдженим серед усіх 8-розрядних мікроконтролерів (МК) є сімейство MCS-51 з CISC-архітектурою фірми Intel. Воно одержало свою назву від першого представника цього сімейства - МК і8051. Вдалий набір периферійних пристроїв, можливість гнучкого вибору зовнішньої або внутрішньої пам'яті програм і невисока вартість забезпечили цьому МК успіх на ринку. У результаті на сьогоднішній день існує більш 200 модифікацій МК сімейства і8051, що випускаються майже 20-ю компаніями.

Усі МК сімейства MCS-51 мають загальну систему команд. Наявність додаткового устаткування впливає тільки на кількість регістрів спеціального призначення. Вітчизняний аналог МК і8051 – К1816ВЕ51.

Базова модель сімейства MCS-51 МК і8051 містить :

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

- внутрішню (резидентну) пам'ять програм ПЗП об’ємом 4 КБайт;

- внутрішню (резидентну) пам'ять даних ОЗП об’ємом 128 байт;

- можливість адресації 64 КБайт пам'яті програм та 64 КБайт пам'яті даних;

- 32 двонапрямлені та індивідуально адресовані лінії введення-виведення (порти Р0-Р3);

- послідовний порт введення/виведення;

- два 16-розрядні багатофункціональні таймери-лічильники;

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

Структурна схема МК і8051 наведена на рис. 4. Розглянемо склад схеми та призначення її елементів.

Мікроконтролер містить 8-розрядний центральний процесор ЦП, резидентну пам'ять програм (ПЗП) об’ємом 4 КБайт, резидентну пам'ять даних (ОЗП) об’ємом 128 байт, чотири 8-розрядних програмованих порти введення-виведення Р0-Р3, блок керування БК і блок переривань, таймерів та послідовного порту.

Центральний процесор ЦП містить 8-розрядний арифметико-логічний пристрій АЛП зі схемою десяткової корекції СДК, два акумулятори А і В, регістр слова стану процесора PSW (Processor State Word) та програмно-недоступні буферні регістри T1 і T2, які виконують функції розподілу вхідних та вихідних даних АЛП. Центральний процесор виконує операції додавання, віднімання, множення, ділення, логічні операції І, АБО, ВИКЛЮЧАЛЬНЕ АБО, операції зсуву, інверсії та скидання. Він оперує з такими типами змінних: булевими (1 біт), цифровими (4 біт), байтовими (8 біт) та адресними (16 біт). Особливістю МК є великий набір операцій з бітами: окремі біти даних можуть бути встановлені, скинуті, інвертовані, перевірені, передані.

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

Регістр слова стану процесора PSW зберігає інформацію про стан АЛП у процесі виконання програми і має формат, наведений у табл. 2. Прапорець перенесення (позики) С встановлюється у разі виходу результату додавання (віднімання) беззнакових операндів за межу діапазону. Прапорець додаткового перенесення (позики) АС встановлюється у разі перенесення з молодшої тетради у старшу (з розряду D3 у розряд D4). Прапорець OV встановлюється у командах додавання і віднімання, якщо результат перевищує ємність 7 біт і старший біт не може бути інтерпретований як знаковий у командах ділення відбувається скидання OV, а під час ділення на нуль він знову встановлюється. У командах множення OV набуває значення логічної одиниці, якщо результат перевищує 0FFH. Прапорець Р є доповненням вмісту акумулятора А до парності, тобто 9-розрядне слово, що складається з 8 біт акумулятора А та біта Р, має завжди парну кількість одиниць.

Блок керування БК складається з генератора тактових імпульсів Г, схеми керування і синхронізації СКС та програмно-недоступного регістра команд (РК). Код команди, зчитаної з резидентної пам’яті програм, запам’ятовується у 8-розрядному РК і надходить на дешифратор команд, який входить до складу СКС. На підставі декодованого коду команди, зовнішніх керуючих сигналів та сигналів синхронізації блок керування БК виробляє внутрішні сигнали керування блоками МК.

Рис. 4. Структурна схема мікроконтролера і8051

Постійний запам'ятовувальний пристрій ПЗП, або резидентна пам'ять програм (РПП) МК i8051 має інформаційну ємність 4 Кбайт і виконана у вигляді ПЗП програмною маскою. ПЗП має 16-розрядну адресну шину, що дає змогу розширити пам'ять до 64 Кбайт через під'єднання зовнішніх ВІС. Адреса визначається вмістом лічильника команд PC {Program Counter) або вмістом регістра-покажчика даних DPTR (Data Pointer Register). Регістр DPTR використовується за не­прямих переходів у програмі або під час адресації таблиць, або як один 16-розрядний регістр, або як два незалежних 8-розрядних регістри DPH і DPL.

Формат слова стану PSW Таблиця 2

Біт

Позначення

Призначення

Доступ

до біта

7

С

Прапорець перенесення

А або П

6

АС

Прапорець додаткового перенесення

А або П

5

F0

Прапорець користувача

П

4

RS1

Покажчик банку робочих регістрів:

00 – банк 0; 10 – банк 1;

01 – банк 2; 11 – банк 3

П

3

RS0

2

OV

Прапорець переповнення

П

1

Резервний прапорець

П

0

P

Біт парності

А або П

Примітка: У таблиці використано такі позначення: А – біт встановлюється апаратно; П - біт встановлюється програмно.


Розподіл адресного простору ПЗП показано на рис. 5. Молодші адреси ПЗП відводяться для оброблення перери­вань і початку роботи МК після скидання.

Оперативний запам'ятовувальний пристрій ОЗП, або резидентна пам'ять даних (РПД) складається з двох об­ластей (рис. 6). Перша область - ОЗП даних з інформаційною ємністю 128 х 8 біт з адресами 0 — 7FH, друга область - ре­гістри спеціальних функцій (SFR — Special Function Registers) з адресами 80Н — FFH.

Резидентна пам'ять даних адресується 8-розрядними регіст­ром адреси (РА) або покажчиком стеку (SP) (див. рис. 4). Регістр адреси є програмно-недоступним регістром, у який завантажується адреса комірки ОЗП під час виконання ко­манд. Регістр SP призначений для адресації стеку, який є частиною РПД. Вміст SP інкрементується перед запам'ято­вуванням даних у стеку за командами PUSH і CALL та декрементується за командами POP і RET. У процесі ініціалізації МК після надходження сигналу скидання (RESET) у SP автоматично завантажується код 07Н. Отже, якщо програма не перевизначає стек, то перший байт даних у стеку розміщується у комірці РПД за адресою 08Н.

Резидентна пам'ять даних, так само як і РПП, може бути розширена до 64 Кбайт за допомогою зовнішніх ВІС.

Рис. 5. Розподіл адресного простору РПП

Блок переривань, таймерів та послідовного порту (рис. 4) містить два таймери-лічильники Т/С0 та Т/С1, регістр режимів таймерів-лічильників TMOD (Timer/Counter Mode Control Register), регістр керування таймерами-лічильниками TCON (Timer/Counter Control Register), буфер послідовного порту SBUF (Serial Data Buffer), регістр керування послідовним портом SCON (Serial Port Control Register), регістр дозволу переривань IE (Interrupt Enable Register), регістр пріоритетів переривань IP (Interrupt Priority Control Register) та регістр керування енергоспоживанням PCON (Power Control Register).

Таймери-лічильники містять два 16-розрядних регістра Т/С0 та Т/С1. Кожний з цих регістрів складається з двох 8-розрядних регістрів – ТН0, ТL0 і ТН1, ТL1 відповідно.

Всі регістри блоку переривань, таймерів та послідовного порту, а також регістри DPTR, SP, PSW, акумулятори А і В, регістри портів P0 – P3 відносяться до регістрів спеціальних функцій SFR (Special Function Registers), які розташовані у РПД за адресами 80Н-FFH (рис. 6). Перелік регістрів спеціальних функцій наведений у таблиці 3.

00H

БАНК 0

Прямо адресовані біти

07H

D7

D1

08H

БАНК 1

20H

07

06

05

04

03

02

01

00

0FH

21H

0F

0E

0D

0C

0B

0A

09

08

10H

БАНК 2

22H

17

16

15

14

13

12

11

10

17H

Внутрішній

ОЗП

23H

1F

1E

1D

1C

1B

1A

19

18

18H

БАНК 3

24H

27

26

25

24

23

22

21

20

1FH

25H

2F

2E

2D

2C

2B

2A

29

28

20H

Прямо

адресовані

біти

26H

37

36

35

34

33

32

31

30

27H

3F

3E

3D

3C

3B

3A

39

38

2FH

28H

47

46

45

44

43

42

41

40

29H

4F

4E

4D

4C

4B

4A

49

48

2AH

57

56

55

54

53

52

51

50

7FH

2BH

5F

5E

5D

5C

5B

5A

59

58

80H

Регістри

спеціальних

функцій

2CH

67

66

65

64

63

62

61

60

2DH

6F

6E

6D

6C

6B

6A

69

68

FFH

2EH

77

76

75

74

73

72

71

70

2FH

7F

7E

7D

7C

7B

7A

79

78

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

Регістри спеціальних функцій Таблиця 3

Адреса

Позначення

Найменування

0E0H

АСС*

Акумулятор А

0F0H

В

Акумулятор В

0D0H

PSW*

Слово стану процесора

080Н

P0*

Порт 0

090H

Р1*

Порт 1

0A0H

P2*

Порт 2

0B0H

P3*

Порт 3

081H

SP

Регістр покажчик стеку

083H

DPH

Старший байт регістра-покажчика даних DPTR

082H

DPL

Молодший байт регістра-покажчика даних DPTR

08CH

TH0

Старший байт таймера 0

08AH

TL0

Молодший байт таймера 0

08DH

TH1

Старший байт таймера 1

08BH

TL1

Молодший байт таймера 1

089H

TMOD

Регістр режимів таймерів-лічильників

088H

TCON*

Регістр керування-статусу таймерів

Продовж. табл. 3

0B8H

IP*

Регістр пріоритетів переривань

0A8H

IE*

Регістр дозволу переривань

087H

PCON

Регістр керування енергоспоживанням

098H

SCON*

Регістр керування послідовним портом

099H

SBUF

Буфер послідовного порту

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

Соседние файлы в папке Протоколы