Нульовий біт управління режимом послідовного порту
9EH
SM1
SCON.6
Перший біт управління режимом послідовного порту
9DH
SM2
SCON.5
Другий біт управління режимом послідовного порту
9CH
REN
SCON.4
Біт дозволу прийому
9BH
TB8
SCON.3
8-й біт даних передавача
9AH
RB8
SCON.2
8-й біт даних приймача
99H
TI
SCON.1
Прапорець переривання передавача
98H
RI
SCON.0
Прапорець переривання приймача
0AFH
EA
IE.7
Біт заборони всіх перериваний
0ACH
ES
IE.4
Біт дозволу переривання від послідовного порту
0ABH
ET1
IE.3
Біт дозволу переривання від першого таймера/лічильника
0AAH
EX1
IE.2
Біт дозволу переривання від сигналу на виводі INT1
0A9H
ET0
IE.1
Біт дозволу переривання від нульового таймера/лічильника
0A8H
EX0
IE.0
Біт дозволу переривання від сигналу на виводі INT0
0B7H
RD
P3.7
Фіксатор сигналу читання даних з зовнішньої пам'яті
0B6H
WR
P3.6
Фіксатор сигналу запису даних в зовнішню пам'ять
0B5H
T1
P3.5
Фіксатор зовнішнього сигналу для першого таймера/лічильника
0B4H
T0
P3.4
Фіксатор зовнішнього сигналу для нульового таймера/лічильника
0B3H
INT1
P3.3
Фіксатор сигналу переривання на виводі INT1
0B2H
INT0
P3.2
Фіксатор сигналу переривання на виводі INT0
0B1H
TXD
P3.1
Фіксатор біта передавача послідовного порту
0B0H
RXD
P3.0
Фіксатор біта приймача послідовного порту
0BCH
PS
IP.4
Біт пріоритету переривання від послідовного порту
0BBH
PT1
IP.3
Біт пріоритету переривання від першого таймера/лічильника
0BAH
PX1
IP.2
Біт пріоритету переривання по сигналу на виводі INT1
0B9H
PT0
IP.1
Біт пріоритету переривання від нульового таймера/лічильника
0B8H
PX0
IP.0
Біт пріоритету переривання по сигналу на виводі INT0
Апаратне забезпечення мікро ЕОМ 8051
1. Порти вводу/виводу
1. Система переривань
Рис.1.1 Система переривань MCS51
Таблиця 1.1
Адрес
Ім’я
Номер біту
Призначення
0AFH
EA
IE.7
Біт заборони всіх перериваний
0ACH
ES
IE.4
Біт дозволу переривання від послідовного порту
0ABH
ET1
IE.3
Біт дозволу переривання від першого таймера/лічильника
0AAH
EX1
IE.2
Біт дозволу переривання від сигналу на виводі INT1
0A9H
ET0
IE.1
Біт дозволу переривання від нульового таймера/лічильника
0A8H
EX0
IE.0
Біт дозволу переривання від сигналу на виводі INT0
Таблиця 1.2
Адрес
Ім’я
Номер біту
Призначення
0BCH
PS
IP.4
Біт пріоритету переривання від послідовного порту
0BBH
PT1
IP.3
Біт пріоритету переривання від першого таймера/лічильника
0BAH
PX1
IP.2
Біт пріоритету переривання по сигналу на виводі INT1
0B9H
PT0
IP.1
Біт пріоритету переривання від нульового таймера/лічильника
0B8H
PX0
IP.0
Біт пріоритету переривання по сигналу на виводі INT0
Таблиця 1.3
Джерело переривання
Прапорець
Пріоритет
Адрес вектору (ASM)
Номер (С51)
RESET
INT0
IE0
1(max)
T0
TF0
0Bh
INT1
IE1
13h
T1
TF1
1Bh
SERIAL
RI,TI
5(min)
23h
2. Таймер/лічильник
Два програмувальних 16-бітних таймери/лічильника (Т/C0 і Т/C1) можуть бути використані як таймери або лічильники зовнішніх подій. При роботі як таймер вміст Т/С інкрементується в кожному машинному циклі, тобто через кожні 12 періодів кварцового резонатора. При роботі в режимі лічильника вміст Т/С інкрементується після переходу з 1 в 0 зовнішнього вхідного сигналу, який подається на відповідний (Т0, Т1) вхід МК51. Вміст лічильника буде збільшене на 1, у тому випадку, якщо в попередньому циклі був визначений вхідний сигнал високого рівня (1), а в наступному — сигнал низького рівня (0). На розпізнавання переходу потрібно два машинних цикли, тобто максимальна частота підрахунку вхідних сигналі дорівнює 1/24 частоти резонатора. На тривалість періоду вхідних сигналів обмежень зверху немає. Для гарантованого прочитання вхідного зчмтуваного сигналу він повиннен утримуватися в 1, як мінімум, на протізі одного машинного циклу 8051.
Для керування режимами роботи Т/С и для організації взаємодії таймерів із системою переривань використовуються два регістри спеціальних функцій (TMOD і TCON), опис цих регістрів приводиться в табл. 2.1 і 2.3 відповідно. Як випливає з опису керуючих біт TMOD, для обох Т/С режими роботи 0,1 і 2 однакові. Режим 3 для Т/С0 і Т/С1 різні. Розглянемо коротко роботу Т/С у всіх чотирьох режимах
Таблиця 2.1
Ім’я
T/C1
T/C0
Призначення
GATE
TMOD.7
TMOD.3
Уравління блокировкою
1 – Т/Сх працює коли на вході INTх – 1, та TRх – 1;
0 - Т/Сх працює коли TRх – 1.
C/T
TMOD.6
TMOD.2
Біт вибору режиму роботи Т/З
1 – Т/Сх лічильник зовнішніх сигналів на вході “Тх”
0 – Т/Сх режим таймера (лічильник машинних циклів).
M1
TMOD.5
TMOD.1
Вибір режиму роботи (Таблиця 2.2)
M0
TMOD.4
TMOD.0
Таблиця 2.2
M1
M0
№ режиму
Опис режим роботи
13 – біт Т/З; TLx – 5 – біт дільник частоти
16 – біт Т/З
8 – біт Т/С з автоматичним перезавантаженням, THx – значення яку завантажується в TLx.
Т/З0 працює як 2 паралельних 8 – біт таймери
Таблиця 2.3
Адрес
Ім’я
Номер біту
Призначення
8FH
TF1
TCON.7
Біт переповнення першого таймера/лічильника
8EH
TR1
TCON.6
Біт включення першого таймера/лічильника
8DH
TF0
TCON.5
Біт переповнення нульового таймера/лічильника
8CH
TR0
TCON.4
Біт включення нульового таймера/лічильника
8BH
IE1
TCON.3
Біт прапорець першого переривання
8AH
IT1
TCON.2
Біт управління першим перериванням
89H
IE0
TCON.1
Прапорець нульового переривання
88H
IT0
TCON.0
Біт управління нульовим перериванням
Рис. 2.1. Таймер/лічильник подій: 1 а - Т/С1 у режимі 0: 13-бітний лічильник; б - Т/С1 у режимі 2: 8-бітний автоперезаписуваний лічильник; у - Т/С0 в режимі 3: два 8-бітний лічильники
Режим 0. Первід будь-якого Т/С в режим 0 робить його схожим на таймер 8048 (8-бітний лічильник), на вхід якого підключений 5-битий дільник частоти на 32. Роботу Т/С в режимі 0 на прикладі T/C1 ілюструє мал. 2.1, а цьому режимі таймерний регістр має розрядність 13 біт. При переході зі стану «всі одиниці» у стан «всі нулі» встановлюється прапорець переривання TF1. Вхідний синхросигнал таймера 1 дозволено (надходить на вхід таймера Т/С1), коли керуючий біт TR1 встановлений в 1 і або керуючий біт GATE (блокування) дорівнює 0, або на зовнішній вивід запиту переривання INT1 надходить 1.
Установка біта GATE в 1 дозволяє використовувати таймер для вимірювання тривалості імпульсу, який подається на вхід INT.
Режим 1. Робота будь-якого Т/С в режимі 1 така ж, як і в режимі 0, за винятком того, що таймерний регістр має розрядність 16-біт.
Режим 2. В режимі 2 робота організована таким чином, що переповнення (перехід зі стану «всі одиниці» у стан «всі нулі») 8-бітного лічильника TL1 приводить не тільки до встановлення прапорця TF1, (мал. 2.1, б), але й автоматично перезавантажує в TL1 вміст старшого байта (ТН1) таймерного регістра, який попередньо було задано програмним шляхом. Перезавантаження залишає вміст ТН1 незмінним. У режимі 2 Т/С0 і Т/С1 працюють ідентично.
Режим 3. В режимі 3 Т/С0 і Т/С1 працюють по-різному. Т/С1 зберігає незмінним своє поточне вміст. Іншими словами, ефект, такий же, як і при скиданні керуючого біта TR1 у нуль.
Роботу Т/С0 в режимі 3 ілюструє мал. 2.1, в. В режимі 3 TL0 і ТН0 функціонують як два незалежних 8-бітних лічильники. Роботу TL0 визначають керуючі біти Т/С0 (С/Т, GATE, TRO), вхідний сигнал INTO і прапорець переповнення TF0. Роботу ТН0, який може виконувати тільки функції таймера (підрахунок машинних циклів), визначає керуючий біт TR1. При цьому ТНО використовує прапорець переповнення TF1.
Режим 3 використовується в тих випадках застосування МК51, коли потрібна наявність додаткового 8-бітного таймера або лічильника подій.
Можна вважати, що в режимі 3 МК51 має у своєму складі три таймери/лічильники. Якщо Т/С0 використовується в режимі 3, Т/С1 може бути використаний послідовним портом як генератор частоти передачі, чи, у будь-як інакше у випадку, що він не вимагає переривання.