АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Програмна модель мікроконтролера 8051

Читайте также:
  1. II. Учебно-информационная модель
  2. III. Изучение демократического транзита в России (модель Б.А. Исаева)
  3. Sog Pentagon, новая модель
  4. Американская модель общества угрожает Европе
  5. Американская модель управления.
  6. Асемблерна мова мікроконтролера 8051
  7. Базовая модель Солоу
  8. Визначення рівноважного ВВП за методом “вилучення–ін’єкції”. Модель “заощадження-інвестиції”.
  9. Влияние периодичности решетки на электронные состояния. Зонная модель
  10. Вопрос 17. Модель «матрица»: характеристика, достоинства и недостатки
  11. Вплив держави на економічну рівновагу. Модель економічної рівноваги за методом “витрати-випуск” для змішаної закритої економіки.
  12. Голографическая модель

 

  0FFFH
   
  23H TI, RI
   
  1BH T/C1
   
13H INT1
   
  0BH T/C0
   
03H INT0
   
  00H
   
15 8  
    PC
 
7 0  
   
  Рис.1.Структура резидентної пам'яті програм мікроконтролера 8051  
       
 

У попередньому розділі було відзначено, що ядром сімейства MCS-51 є мікроконтролер 8051 (вітчизняний аналог КР1816ВЕ51). У зв'язку з цим видається доцільним розгляд особливостей програмування зазначеного сімейства на прикладі саме цього мікроконтролера.

Програмна модель МК 8051 містить резидентну пам'ять даних, регістри спеціальних функцій, резидентну пам'ять програм і програмний лічильник PC.

Резидентна пам'ять програм (мал.1) має байтову організацію і доступна тільки для читання, при цьому її осередку (4 Кбайт) адресуються з використанням дванадцяти молодших розрядів PC. Резидентна пам'ять програм може бути доповнена зовнішньою пам'яттю. У цьому випадку загальний максимально допустимий обсяг пам'яті програм складе 64 Кб. Молодші адреси резидентної пам'яті програм відведені під обробку зовнішніх переривань , , від таймерів/лічильників T/C0, T/C1 і переривання від послідовного порту. У випадку виникнення якого-небудь із зазначених переривань відбувається звертання до відповідної комірки резидентної пам'яті програм (наприклад, при виникненні переривання в PC записується код 0003H).

Резидентна пам'ять даних (мал.2) складається з 128-ми 8-розрядних комірок з адресами 00H-7FH і може бути доповнена зовнішньою пам'яттю даних ємністю до 64 К. При цьому простір резидентної і зовнішньої пам'яті не перетинаються, тому що доступ до них здійснюється за допомогою різних команд.

 

 

Розподіл резидентної пам’яті

Призначення Адреса Примітки
Спеціальні регістри див. табл. 3  
Прямоадресовані регістри 2Fh…7Fh  
Поле прямоадресованих бітів 00h..7Fh 20h…2Fh  
R0…R7 18h…1Fh Банк 3 (RS0=1, RS1=1)
R0…R7 10h…17h Банк 2 (RS0=0, RS1=1)
R0…R7 08h…0Fh Банк 1 (RS0=1, RS1=0)
R0…R7 00h…07h Банк 0 (RS0=0, RS1=0)

 

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

Назва Призначення Адреса Бітова адресація Примітки
A,ACC Акумулятор 0E0h Є  
B Розширювач акумулятора 0F0h Є  
PSW Слово стану програми 0D0h Є  
SP Вказівник стеку 81h    
DPH Вказівник даних, молодший байт 83h   DPTR
DPL Вказівник даних, старший байт 82h    
P0 Порт 0 80h Є  
P1 Порт 1 90h Є  
P2 Порт 2 0A0h Є  
P3 Порт 3 0B0h Є  
IP Регістр приоритетів переривань 0B8h Є  
IE Регістр маски переривань 0A8h Є  
TMOD Режими таймерів/лічильників 89h    
TCON Керування таймерами/лічильниками 88h Є  
TH0 Таймер/лічильник 0, старший байт 8Ch    
TL0 Таймер/лічильник 0, молодший байт 8Ah    
TH1 Таймер/лічильник 1, старший байт 8Dh    
TL1 Таймер/лічильник 0, молодший байт 8Bh    
SCON Керування прийомом/передачею 98h Є  
SBUF Буфер прийому/передачі 99h    
PCON Керування потужністю 87h    

 

Резидентна пам'ять даних     Регістри спеціальних функцій  
  7FH   F7 F6 F5 F4 F3 F2 F1 F0 0F0H
      E7 E6 E5 E4 E3 E2 E1 E0 0E0H
  30H   D7 D6 D5 D4 D3 D2 D1 D0 0D0H
7F 7E 7D 7C 7B 7A     2FH   - - - BC BB BA B9 B8 0B8H
                2EH   B7 B6 B5 B4 B3 B2 B1 B0 0B0H
6F 6E 6D 6C 6B 6A     2DH   AF - - AC AB AA A9 A8 0A8H
                2CH   A7 A6 A5 A4 A3 A2 A1 A0 0A0H
5F 5E 5D 5C 5B 5A     2BH   SBUF 99H
                2AH   9F 9E 9D 9C 9B 9A     98H
4F 4E 4D 4C 4B 4A     29H                   90H
                28H   TH1 8DH
3F 3E 3D 3C 3B 3A     27H   TH0 8CH
                26H   TL1 8BH
2F 2E 2D 2C 2B 2A     25H   TL0 8AH
                24H   TMOD 89H
1F 1E 1D 1C 1B 1A     23H   8F 8E 8D 8C 8B 8A     88H
                22H   PCON 87H
0F 0E 0D 0C 0B 0A     21H   DPH 83H
                20H   DPL 82H
R7 1FH   SP 81H
                      80H
R0 18H      
R7 17H      
         
R0 10H      
R7 0FH      
           
R0 08H     Рис.2. Структура резидентної пам'яті даних і регістрів спеціальних функцій мікроконтролера 8051  
R7 07H      
         
R0 00H      
                                             

 

Молодші 32 байта РПД згруповані в 4 банки по 8 регістрів R0-R7 у кожнім. Відзначимо, що Банк0, Банк1, Банк2 і Банк3 займають відповідно адреси 00H-07H, 08H-0FH, 10H-17H і 18H-1FH. Наступні після банків регістрів 16 байт (адреси 20H-2FH) чи 128 біт (адреси 00H-7FH) утворять область осередків, до яких можливе побітове звертання. Набір команд МК 8051 містить значну кількість інструкцій, що дозволяють працювати з зазначеними бітами.

Область регістрів спеціальних функцій (РСФ) (мал.2) містить 21 регістр, призначення яких приведено в табл.2.1. Як видно з мал.2 і табл.2.1, 11 РСФ допускають побітове звертання (біти з адресами 80H-0F7H).

 

Порти P0, P1, P2, P3 є двохнаправлені порти вводу/виводу і призначені для забезпечення обміну інформацією МК із зовнішніми пристроями, вони можуть утворити 32 лінії вводу/виводу. Крім звичайного вводу/виводу зазначені порти можуть виконувати ряд додаткових функцій. Зокрема, при роботі МК із зовнішньою пам'яттю програм чи даних через порти P0 і P2 виводяться відповідно молодший і старший байти адреси, крім того через порт P0 видається (приймається) байт даних (байт даних або байт команд). При цьому обмін байтом даних, ввід байта команди і вивід молодшого байта адреса зовнішньої пам'яті мультиплексовані в часі. Лінії порту P3 мають наступні альтернативні функції: P3.0 (P3.1) - вхід (вихід) послідовного порту; P3.2 (P3.3) - вхід зовнішнього переривання (); P3.4 (P3.5) - лічильний вхід 0 (1); P3.6 (P3.7) - вихід сигналу запису (читання) у зовнішню пам'ять даних (із зовнішньої пам'яті даних).

Вказівник стека SP (Stack Pointer) - регістр, вміст якого інкрементується (збільшується на одиницю) перед записом даних у стек при виконанні команд PUSH і CALL. Початкове скидання встановлює покажчик стека в 07H, а область стека в РПД починається з адреси 08H. При необхідності, шляхом перевизначення вказівника стека область стека може бути розташована в будь-якому місці РПД.

Вказівник даних DPTR (Data PoinTer)призначений для збереження 16-розрядної адреси зовнішньої пам'яті даних і складається з двох програмно доступних регістрів DPH (Data Pointer High) і DPL (Data Pointer Low), що можуть використовуватися як незалежні регістри загального призначення, якщо немає необхідності в збереженні згаданої адреси. Крім того, DPTR служить базовим регістром при непрямій адресації в деяких командах пересилання даних, чи переходу.

 

Регістри TH0, TL0, TH1, TL1 (Timer/counter Low (High) byte). Вихідний (поточний) стан j-го таймера/лічильника T/Cj у мікроконтролері визначається (відбивається) програмно доступними регістрами THj, TLj. Причому регістри THj - старші, а регістри TLj - молодші 8 розрядів. Зазначені регістри можуть бути програмно прочитані чи завантажені як при виключених, так і при працюючих таймерах/лічильниках. Нове завантаження THj, TLj відразу ж означає нову величину з якої буде початий рахунок у T/Cj, а стара губиться. Якщо завантаження зроблене при включеному T/Cj, то рахунок продовжується з нової величини. Черговість завантаження регістрів THj, TLj довільна. Вимикання T/Cj не спотворює код, що знаходиться в THj, TLj. Таймер/лічильник T/Cj можна виключити, через довільний час знову включити і рахунок почнеться з тієї величини, що була в регістрах THj, TLj на момент вимикання.

 

Регістр TCON (Timer/counter Control). Найменування і призначення розрядів регістра TCON приведені в табл.2.3. Усі розряди цього регістра доступні по записі і по читанню.

 

Таблиця 2.3

Біти Назва Призначення
  TF1 Прапор переповнення T/C1.
  TR1 Біт включення T/C1. TR1=1 - включений, TR1=0 - виключений.
  TF0 Прапор переповнення T/C0.
  TR0 Біт включення T/C0. TR0=1 - включений, TR0=0 - виключений.
  IE1 Прапор запиту зовнішнього переривання .
  IT1 Біт, що визначає вид переривання . IT1=0 - переривання за рівнем (низькому), IT1=1 - переривання по фронті (перехід з"1" у "0").
  IE0 Прапор запиту зовнішнього переривання .
  IT0 Біт, що визначає вид переривання . IT0=0 - переривання за рівнем (низькому), IT0=1 - переривання по фронті (перехід з"1" у "0").

Прапор TFj апаратно встановлюється в "1" при переході T/Cj зі стану "всі одиниці" у стан "усі нулі". Якщо переривання від T/Cj дозволено, то установка прапора TFj викликає переривання. Біт TFj апаратно скидається в "0" при звертанні до підпрограми обробки переривання. Прапор IEj апаратно встановлюється в "1" від зовнішнього переривання : від низького рівня або переходу з "1" у "0" сигналу переривання. Якщо при цьому зовнішнє переривання дозволене, то здійснюється перехід до підпрограми його обслуговування. Скидання прапора IEj виконується апаратно при обслуговуванні переривання тільки в тому випадку, коли ITj=1.

Регістр TMOD (Timer/counter Mode). Найменування і призначення розрядів регістра TMOD приведені в табл.2.4. Усі розряди цього регістра доступні по записі і по читанню.

При роботі як таймер вміст T/Cj інкрементується з частотою , де f є частота синхронізації мікроконтролера. При роботі T/Cj як лічильника зовнішніх подій, його вміст інкрементується у відповідь на перехід з "1" у "0" сигналу на j-ом рахунковому вході мікроконтролера. Для надійної роботи T/Cj у режимі лічильника необхідно, щоб максимальна частота зазначеного сигналу була не більш , а рівень цього сигналу залишався незмінним протягом як мінімум одного машинного циклу ().

Таблиця 2.4

Біти Назва Призначення
  GATE1 Біт дозволяє (забороняє) керувати T/C1 від зовнішнього виводу . GATE1=1 – керування дозволене, GATE1=0 – керування заборонене.
  Біт визначає роботу T/C1 як таймер ( =0), лічильника зовнішніх подій ( =1).
  М1.1 М0.1 Біти визначають один з 4-х режимів роботи T/C1.
      M1.1 M0.1 Режим    
               
               
               
               
  GATE0 Біт дозволяє (забороняє) керувати T/C0 від зовнішнього виводу . GATE0=1 – керування дозволене, GATE0=0 – керування заборонене.
  Біт визначає роботу T/C0 як таймер ( =0), лічильника зовнішніх подій ( =1).
  М1.0 М0.0 Біти визначають один з 4-х режимів роботи T/C0.
      M1.0 M0.0 Режим    
               
               
               
               

 

Існує чотири режими роботи кожного таймера/лічильника, які визначаються значенням бiтiв М0, М1 у регiстрi TMOD. Встановлення будь-якого із режимів роботи можливе для кожного з них окремо без взаємного впливу, так як вони повнiстю незалежнi один вiд одного.

Режим 0. Цей режим роботи визначається значенням бiтiв М0=0, M1=0. Таймер/лічильник у при цьому є пристроєм на основi 13-розрядного регiстра i функцiонально сумiсний із таймером/лiчильником сiмейства МК48 (восьмирозрядний таймер/лiчильник iз попереднім подiльником на 32). Тринадцятирозрядний регiстр складається iз 8 розрядiв регiстра TH0 i 5 молодших розрядiв регiстра TL0 та iз 8 розрядiв регiстра TH1 i 5 молодших розрядiв регiстра TL1 відповідно для таймера/лічильника T/C0 і T/C1. У цьому режимi функцiю подiльника на 32 виконують регiстри TL0, TL1. Вони є програмно доступними, але треба пам'ятати, що значущими у режимi 0 є тiльки п'ять молодших розрядiв регiстра TL0 (TL1).

Розглянем логіку роботи таймера/лічильника у режимi 0.

Установка біту C/T в одиницю задає роботу у якості лічильника подій, а запис нуля – як таймера. У режимі таймера джерелом сигналів є частота тактового генератора, поділена на 12. Для лічильника подій джерелом сигналів є зовнішній вивід порту Р3 (Р3.4 – для T/C0 або Р3.5 - для T/C1), якому призначена альтернативна функція входу таймера /лічильника.

Рахунок починається при встановленнi бiта TR регiстра TCON у стан "1". При необхiдностi керування лiчбою ззовнi бiт GATE регiстра TMOD встановлюється у стан "1". Тодi при TR=1 рахунок буде дозволено, якщо на входi INT0 встаповлено стан "1" i буде заборонено, якщо встановлено стан "0". Якщо дозволена робота таймера/лічильника, то кожен імпульc, який прийшов від джерела сигналів, попередньо ділитиметься на значення, яке записане у ТL, збільшуватиме вміст регістру TН на одиницю. При переповненні TН (перехiд вмiсту регiстра iз стану "всi одиницi" у стан "всi нулi") встановлюється в одиницю флажок переповнення TF у регiстрi TCON. Якщо дозволене переривання від таймера/лічильника, то буде викликана відповідна підпрограма обробки переривання, а флаг TF апаратно скинеться в нуль.

Скид бiта TR в 0 зупиняє роботу таймера/лічильниканезалежно вiд стану інших бiтiв.

Режим 1. Цей режим роботи визначається значенням бiтiв М1=0, M0=1. Він аналогiчний режиму 0. Вiдмiннiсть полягає у тому, що в цьому режимі таймер/лічильник працює як 16-розрядний регiстр, що складається із двох програмно доступних пар TL і TH.

Режим 2. Цей режим роботи визначається значенням бiтiв M1=1, M0=0. У цьому режимi таймер/лічильник є восьмирозрядним пристроєм на основі регiстра TL0. При кожному переповненнi TL, крiм встановлення у регiстрi TCON флага TF вiдбувається автоматична перегрузка вмiсту iз TH у TL. Регiстри TH завантажуються програмно. Перезапис значень iз TH в TL не впливає на вмiст регiстрiв TH. Призначення бiтiв керування TR, GATE, TF, C/T таке ж, як і у режимах 0 та 1.

Режим 3. Цей режим роботи визначається значенням бiтiв M1=1, M0=1. На відміну від режимів роботи 0, 1, 2, які однаковi для обох таймерів/лічильників, у режимі 3 таймер/лічильник 1 блокується, зберігаючи дані пари регістрів TH1та TL1 і доступ до них не впливаючи на С/Т 0.

При встановленні цього режиму роботи для таймера/лічильника 0 він перетворюється в пару двох незалежних восьмибітних регістрів TH0 та TL0. При цьому TH0 працює тільки в режимі таймера, який підраховує машинні цикли (тактову частоту генератора ділену на 12). Його запуск/зупинка дозволяється установкою/скидом біту TR1 а про переповнення свідчить установка біту TF1. TL0 працює восьмибітний таймер/лічильник. Біти керування TR0, GATE0, TF0, C/T0 мають таке ж призначення як і для режимів 0,1,2.

Якщо таймер/лічильник 0 працює в режимі 3, то таймер/лічильник 1 може бути включеним, виключеним, переведеним у власний режим 3, використаним послідомним портом для генерації частоти обміну. Слід пам’ятати, що при цьому таймер/лічильник 1 не генеруватиме сигнала переповнення (переривання).

 

Регістр SCON (Serial port Control) призначений для прийому і збереження коду, що керує послідовним інтерфейсом. Найменування і призначення розрядів регістра SCON приведені в табл.2.5. Усі розряди цього регістра програмно доступні по запису і читанню.

 

Таблиця 2.5

Біти Назва Призначення
  SM0 SM1 Біти визначають один з 4-х режимів роботи послідовного порту
    SM0 SM1 Режим Характеристика режиму
          восьмибітний регістр зсуву. Швидкість (частота) прийому/ передачі f/12.
          8-бітовий універсальний асинхронний приймач/ передавач (УАПП). Швидкість (частота) прийому передачі задається частотою переповнень T/C1.
          9-бітовий УАПП. Швидкість (частота) прийому/ передачі f/64 чи f/32.
          9-бітовий УАПП. Швидкість (частота) прийому/ передачі задається частотою переповнень T/C1.
  SM2 Біт дозволу багатопроцесорної роботи.
  REN Біт дозволяє (забороняє) прийом. REN=1 – прийом дозволений, REN=0 – прийом заборонений.
  TB8 Дев'ятий біт переданих даних у режимах 2, 3.
  RB8 Дев'ятий біт прийнятих даних у режимах 2, 3.
  TI Прапор переривання передавача.
  RI Прапор переривання приймача.

У режимах 2 і 3 при SM2=1 прапор RI не активізується (не встановлюється в "1"), якщо дев'ятий прийнятий біт даних дорівнює "0". У режимі 1 при SM2=1 прапор RI не активізується, якщо не прийнятий стоп-битий рівний "1". У режимі 0 біт SM2 не використовується і повинний бути скинутий у "0". Прапор TI апаратно встановлюється в "1" наприкінці періоду передачі 8-го біта в режимі 0 чи на початку періоду передачі стоп-бита в інших режимах. Прапор RI апаратно встановлюється в "1" наприкінці періоду прийому 8-го біта в режимі 0 чи в середині періоду прийому стоп-бита (дев'ятого біта) у режимі 1 (у режимах 2 і 3) при SM2=0.

Режим 2 і режим 3 послідовних портів дозволяють організувати роботу мікроконтролерів 8051 у багатопроцесорних системах, що використовують для обміну інформацією між МК розділений моноканал (коаксіальний кабель, витіі пари, оптоволокно й ін.). У цих режимах прапор RI установиться тільки в тому випадку, коли або SM2=0, або прийнятий дев'ятий біт даних дорівнює "1". Зазначену особливість роботи послідовного порту можна використовувати для організації межконтроллерного обміну в такий спосіб. Нехай ведучому МК потрібно передати блок даних якомусь (декільком) відомому (відомим) МК. З цією метою ведучий МК у протокольному режимі "широкомовної" передачі (усім відомим МК) видає в моноканал байт-ідентифікатор абонента (код адреси МК-приймача), що відрізняється від байтів даних тільки тим, що в його дев'ятому біті міститься "1". Програма реалізації протоколу мережного обміну інформацією повинна бути побудована таким чином, щоб при одержанні байта-ідентифікатора у всіх відомих МК відбулися переривання прикладних програм і виклик підпрограми порівняння байта-ідентифікатора з кодом власної мережної адреси. Адресований МК скидає свій керуючий біт SM2 у "0" і готується до прийому блоку даних. Інші відомі МК, адреса яких не збігся з кодом байта-ідентифікатора, залишають незмінним стан SM2=1 і передають керування основній програмі. Байти даних, що надходять по моноканалу в послідовний порт відомих мікроконтролерів у який SM2=1, переривання не викликають (не встановлюється прапор RI), тобто ігноруються.

Регістр SBUF (Serial port Buffer). Через SBUF забезпечується програмний доступ до регістрів передавача і приймача послідовного порту. Причому передача починається будь-якою командою мікроконтролера, що використовує SBUF як регістр призначення, тобто виконуючої операцію "запис у SBUF".

Регістр PCON (Power Control). Конструкція регістра PCON визначається технологією виготовлення мікроконтролера. Для варіанта виготовлення по технологи n-МОП (8051) регістр PCON має лише один біт - SMOD, керуючий швидкістю передачі послідовного порту. Для варіанта виготовлення за технологією КМОП (80С51) найменування і призначення розрядів регістра PCON приведені в табл.2.2. Для 8051 і 80С51 розташування і призначення розряду SMOD ідентичні. Біти GF0 і GF1 користувач може задіяти за своїм розсудом. Якщо в PD і IDL одночасно записана "1", то перевага має PD.

Особливості режиму холостого ходу і режиму мікроспоживання полягають у тім, що при першому блокуються тільки вузли, що складають центральний процесор мікроконтролера (тактовий генератор продовжує функціонувати), а при другому блокується робота усіх вузлів. Струми споживання мікроконтролера 80С51 у режимах холостого ходу і мікроспоживання складають відповідно не більш 4,2 мА і не більш 50 мкА. Для закінчення режиму холостого ходу існують два способи.

Активізація будь-якого дозволеного переривання автоматично приведе до скидання біта IDL у "0", закінчуючи режим холостого ходу, при цьому стан резидентної пам'яті даних і РСФ залишається таким же, яким він був на момент переходу в зазначений режим. Після виконання команди (інструкції), що забезпечує вихід з підпрограми обслуговування переривання, буде виконуватися інструкція, яка першою стоїть за командою, що перевела контролер в режим холостого ходу. Іншим способом закінчення режиму холостого ходу є ініціалізація (скидання) мікроконтролера. У цьому випадку зберігається тільки вміст РПД. Зазначений спосіб використовується і для закінчення режиму мікроспоживання.

Таблиця 2.2

Біти Назва Призначення
  SMOD Біт подвоєння швидкості передачі через послідовний порт. При установці в "1" швидкість передачі подвоюється. Доступний по читанню.
  - Не використовується.
  - Не використовується.
  - Не використовується.
  GF1 Програмно керований прапор користувача.
  GF0 Програмно керований прапор користувача.
  PD Біт включення режиму мікроспоживання ("1" - включення, "0" - скасування). Доступний по читанню.
  IDL Біт включення режиму холостого ходу. ("1" - включення, "0" – скасування). Доступний по читанню.

 

 

Регістр IE (Interrupt Enable) використовується для дозволу чи заборони переривань від відповідних джерел. Найменування і призначення розрядів регістра IE приведені в табл.2.6. Усі біти зазначеного регістра програмно доступні по запису і читанню.

Таблиця 2.6

Біти Назва Призначення
  EA Біт керування всіма джерелами переривань одночасно. EA=0 - переривання заборонені, EA=1 - переривання можуть бути дозволені індивідуальними дозволами EX0, EX1, ET0, ET1, ES.
  - Не використовується.
  - Не використовується.
  ES Біт керування перериванням від послідовного порту. ES=0 – переривання заборонене, ES=1 – переривання дозволене.
  ET1 Біт керування перериванням від T/C1. ET1=0 – переривання заборонене, ET1=1 – переривання дозволене.
  EX1 Біт керування перериванням від зовнішнього джерела . EX1=0 – переривання заборонене, EX1=1 – переривання дозволене.
  ET0 Біт керування перериванням від T/C0. ET0=0 – переривання заборонене, ET0=1 – переривання дозволене.
  EX0 Біт керування перериванням від зовнішнього джерела . EX0=0 – переривання заборонене, EX0=1 – переривання дозволене.

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

Джерело Пріоритет усередині рівня
IE0 високий
TF0  
IE1  
TF1  
RI, TI низький

Необхідно особливо підкреслити, що структура "Пріоритет усередині рівня" працює тільки в тих випадках, коли визначається послідовність обслуговування запитів на переривання, що прийняті одночасно і при цьому мають однаковий рівень пріоритету.

Регістр IP (Interrupt Priority) використовується для установки рівня пріоритету переривання для кожного з п'яти джерел переривань. Найменування і призначення розрядів регістра IP приведені в табл.2.7. Усі біти цього регістра програмно доступні по запису і читанню. Наявність у заданому розряді регістра IP "1" установлює для відповідного джерела високий рівень пріоритету, а наявність "0" - низький рівень пріоритету.

Таблиця 2.7

Біти Назва Призначення
  - Не використовується.
  - Не використовується.
  - Не використовується.
  PS Біт установки рівня пріоритету переривання від послідовного порту.
  PT1 Біт установки рівня пріоритету переривання від таймера/лічильника T/C1.
  PX1 Біт установки рівня пріоритету переривання від зовнішнього джерела .
  PT0 Біт установки рівня пріоритету переривання від таймера/лічильника T/C0.
  PX0 Біт установки рівня пріоритету переривання від зовнішнього джерела .

 

Регістр PSW (Program Status Word). Найменування і призначення розрядів регістра PSW приведені в табл.2.8.

Таблиця 2.8

Біти Назва Призначення
  C Прапор переносу. Встановлюється в "1" (скидається в "0") апаратно чи програмно. Апаратно встановлюється (скидається) під час виконання команди додавання або вирахування при наявності (відсутності) відповідно переносу чи зайому в 7-ому біті результату. Під час виконання команди множення або ділення прапор завжди апаратно скидається.
  AC Прапор додаткового переносу. Установлюється (скидається) апаратно або програмно. Апаратно встановлюється (скидається) під час виконання команди додавання чи вирахування при наявності (відсутності) відповідно переносу або зайому в 3-ому біті результату.
  F0 Програмно керований прапор користувача.
  RS1 RS0 Розряди керування вибором банку робочих регістрів. Установлюються (скидаються) програмно.
      RS1 RS0 Банк    
               
               
               
               
  OV Прапор переповнення. Установлюється (скидається) апаратно чи програмно. Апаратно встановлюється під час виконання команди додавання (вирахування) якщо є перенос (позика) у 6-ом біті результату і немає переносу (зайому) у біті 7, чи є перенос (позика) у біті 7 і немає в біті 6, у противному випадку прапор скидається. Під час виконання команди розподілу прапор апаратно скидається, а у випадку розподілу на нуль – установлюється. При множенні прапор апаратно встановлюється якщо результат більше 255, у противному випадку – скидається.
  Без імені Прапор користувача. Установлюється (скидається) програмно. Доступний по читанню.
  P Прапор паритету. Програмно доступний тільки по читанню. Апаратно скидається (установлюється) у кожному машинному циклі для індикації парності (непарності) кількості розрядів акумулятора, що знаходяться в стані "1". Якщо в акумуляторі всі розряди скинуті в "0", прапор апаратно скидається.

 

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

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

 


 


1 | 2 | 3 | 4 | 5 | 6 | 7 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.016 сек.)