Для керування режимами роботи т/с і для організації їх взаємодії з системою переривань використовуються два регістри спеціальних функцій (TMOD і TCON), опис яких наведено нижче. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Для керування режимами роботи т/с і для організації їх взаємодії з системою переривань використовуються два регістри спеціальних функцій (TMOD і TCON), опис яких наведено нижче.



Таблиця 11 - Регістр режиму роботи таймера/лічильника

Символ Позиція Назва і призначення
GATE TMOD.7 для Т/С1 і TMOD.3 для Т/СО Управління блокуванням. Якщо біт встановлено, то таймер/лічильник "x" дозволений до тих пір, поки на вході "lNTx" високий рівень і біт управління "TRx" встановлено. Якщо біт скинутий, то Т/С дозволяється, як тільки біт управління "TRx" встановлюється
С/Т TMOD.6 для T/C1 і TMOD.2 для Т/СО Біт вибору режиму таймера або лічильника подій. Якщо біт скинутий, то працює таймер від внутрішнього джерела сигналів синхронізації. Якщо встановлено, то працює лічильник від зовнішніх сигналів на вході "Tx"
M1 TMOD.5 для T/C1 і TMOD.1 для Т/СО Режим роботи
M1 M0  
    Таймер ВЕ48. "TLx" працює як 5-бітний дільник
    16 бітний таймер/лічильник. "THx" і "TLx" увімкнений послідовно
    8-бітний автоперезавантажуваний таймер/лічильник. "THx" зберігає значення, яке має бути перезавантажена в "TLx" кожного разу пвсля переповнення
    Таймер/лічильник 1 зупиняється. Таймер/лічильник 0: TLO працює як 8-бітний таймер/лічильник, і його режим визначається керуючими бітами таймера 0. TH0 працює тільки як 8-бітний таймер, і його режим визначається керуючими бітами таймера 1
M0 TMOD.4 для Т/С1 і TMOD.0 для Т/СО

 

 


Таблиця 12 - Регістр управління/статусу таймера TCON

Символ Позиція Ім'я та призначення
TF1 TCON.7 Прапорець переповнення таймера 1. Встановлюється апаратно при переповненні таймера/лічильника. Скидається при обслуговуванні переривання апаратно
TR1 TCON.6 Біт управління таймера 1. Встановлюється/скидається програмою для пуску/зупинки
TF0 TCON.5 Прапорець переповнення таймера 0. Встановлюється апаратно. Скидається при обслуговуванні переривання
TR0 TCON.4 Біт управління таймера 0. Встановлюється/скидається програмою для пуску/зупинки таймера/лічильника
IE1 TCON.3 Прапорець фронту переривання 1. Встановлюється апаратно, коли детектується фронт зовнішнього сигналу INT1. Скидається при обслуговуванні переривання
IT1 TCON.2 Біт управління типом переривання 1. Встановлюється/скидається програмно для специфікації запиту INT1 (фронт/низький рівень)
IE0 TCON.1 Прапорець фронту переривання 0. Встановлюється за фронту сигналу INT0. Скидається при обслуговуванні переривання
IT1 TCON.0 Біт управління типом переривання 0. Встановлюється/скидається програмно для специфікації запиту INT0 (фронт/низький рівень)

 

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

Рисунок 17 - Режими роботи таймерів-лічильників

Режим 0 Переведення будь-якого Т/С в режим 0 робить його схожим на таймер КМ1816ВЕ48 (восьмибітний лічильник), до входу якого під’єднаний п'ятибітний дільник частоти. Роботу Т/С в режимі 0 на прикладі T/C1 ілюструє рис.17а. У цьому режимі таймера регістр має розрядність 13 біт. При переході зі стану "всі одиниці" у стан "всі нулі" встановлюється прапорець переривання від таймера TF1. Вхідний дозволений синхросигнал таймера 1 (надходить на вхід Т/С1), коли керуючий біт TR1 установлений в 1 або керуючий біт GATE (блокування) дорівнює 0, або на зовнішній вивід запиту переривання INT1 надходить рівень 1. Установка біта GATE в 1 дозволяє використовувати таймер для вимірювання тривалості імпульсного сигналу.

Режим 1 Робота будь-якого Т/С у цьому режимі така сама, як і в режимі 0, за винятком того, що регістр таймера має розрядність 16 біт.

Режим 2 У цьому режимі робота організована таким чином, що переповнення (перехід зі стану "всі одиниці" у стан, "всі нулі") восьмибітного лічильника TL1 призводить не тільки до установки прапорця TF1 (див. рис.17б), але й автоматично перезавантажує в TL1 вміст старшого байта (TH1) таймерного регістра, яке попередньо було задано програмним шляхом. Перевантаження залишає вміст TH1 незмінним. У режимі 2 Т/С0 і Т/С1 також працюють абсолютно однаково.

Режим 3 У режимі 3 Т/С0 і Т/С1 працюють по-різному. Т/С1 зберігає незмінним свій поточний зміст. Роботу Т/С0 ілюструє рис.17в. У режимі 3 TL0 і TH0 функціонують як два незалежних восьмибітних лічильника. Роботу TL0 визначають керуючі біти Т/С0 (С/Т, GATE TR0), вхідний сигнал INT0 і прапорець переповнення TF0. Роботу TH0, який може виконувати тільки функції таймера (підрахунок машинних циклів мікро-ЕОМ), визначає керуючий біт TR1. При цьому TH0 використовує прапорець переповнення TF1. Режим 3 використовується в тих випадках, коли потрібна наявність додаткового восьмибітного таймера або лічильника подій. Можна вважати, що в цьому режимі мікроЕОМ 8051 має у своєму складі три таймера/лічильника. У разі ж, якщо Т/С0 використовується в режимі 3, Т/С1 може бути або вимкнений, або переведено в режим 0, 1 або 2, або може бути використаний послідовним портом як генератор частоти передавання.

Приклад програми

Організувати почергове перемикання лінійки світлодіодів в шаховому порядку. На статичному індикаторі відображати числа 01h і 02h. Організувати затримку почергового виведення на світлодіоди й індикатор, що дорівнює 1 с. Використовувати таймер 0.

$ NOMOD51

$ Include (D:\ Sum_GU_STUD\MPP\ BIN\ASM51\mod51)

ORG 0

Begin:

mov R1, # 01h; записати в R1 число 1

mov R2, # 02h; записати в R2 число 2

mov P1, # 01010101b; виведення результату на лінійку світлодіодів

mov P2, R1

call timer_50mcs; виклик підпрограми затримки

mov P2, R2

mov P1, # 10101010b; виведення результату на лінійку світлодіодів

call timer_50mcs; виклик підпрограми затримки

jmp Begin, перехід на початок програми

 

timer_50mcs:

mov R7, # 20d

Sec_1:

mov TMOD, # 00000001b

mov TH0, # HIGH (15542)

mov TL0, # LOW (15542)

setb TR0

jnb TF0, $

clr TF0

clr TR0

djnz R7, Sec_1

ret

END

 

 


Таблиця 13 - Варіанти індивідуальних завдань до ЛР 7

Номер вар. Текст індивідуального завдання
1,11, Занести до регістра R1число 09Н, віднімаючи від числа "1", відображати результат на статичному індикаторі у молодшому розряді до нуля. Вмикати переміщення світлодіода на HL1-HL8. Організувати затримку почергового виведення на світлодіоди і індикатор, що дорівнює 2 с. Використовувати таймер 0
2,12, Занести до регістра R1 число 05Н. Організувати біжучий рядок на статичному індикаторі справа наліво. Вмикати в шаховому порядку світлодіоди HL1-HL8. Організувати затримку почергового виведення на світлодіоди й індикатор, що дорівнює 1,5 с. Використовувати таймер 1
3,13, Вмикати в шаховому порядку світлодіоди HL1-HL8. Занести до регістра R5 00Н, додаючи до числа "1", відображати результат на статичному індикаторі у молодшому розряді до 9. Вмикати переміщення світлодіода на HL1-HL8. Організувати затримку почергового виведення на світлодіоди й індикатор, що дорівнює 2,5 с. Використовувати таймер 0
4,14, Почергово відображати на статичному індикаторі числа від 0 до 9, дублювати ці числа на лінійці світлодіодів (у двійковій формі). Організувати затримку почергового виведення на світлодіоди і індикатор, що дорівнює 3 с. Використовувати таймер 1
5,15, Вмикати переміщення світлодіода на HL1-HL8 зліва направо, а потім справо наліво. На статичному індикаторі відображати номер варіанта у форматі ХХН. Організувати затримку почергового виводу на світлодіоди і індикатор рівну 3,5 сек. Використовувати таймер 0
6,16 Занести до регістра R7 08Н, віднімаючи від числа "2" відображати результат на статичному індикаторі в старшому розряді до нуля. Вмикати переміщення світлодіоду на HL1-HL8. Організувати затримку почергового виведення на світлодіоди і індикатор, що дорівнює 1 с. Використовувати таймер 1
7,17 Занести до регістра R1 число 08Н. Організувати біжучий рядок на статичному індикаторі з ліва на право. Вмикати в шаховому порядку світлодіоди HL1-HL8. Організувати затримку почергового виведення на світлодіоди і індикатор, що дорівнює 4 с. Використовувати таймер 0

Продовження табл. 13

8,18 Вмикати в шаховому порядку світлодіоди HL1-HL8. Занести до регістр R0 00Н, додаючи до числа "2", відображати результат на статичному індикаторі у молодшому розряді до 0АН. Вмикати переміщення світлодіода на HL1-HL8. Організувати затримку почергового виведення на світлодіоди і індикатор, що дорівнює 5 с. Використовувати таймер 1
9,19 Почергово відображати на статичному індикаторі числа від 9 до 0, дублювати ці числа на лінійці світлодіодів (у двійковій формі). Організувати затримку почергового виведення на світлодіоди і індикатор, що дорівнює 5,5 с. Використовувати таймер 0
10,20 Вмикати переміщення світлодіода на HL1-HL8 справа наліво, а потім зліва направо. На статичному індикаторі відображати номер варіанта у форматі ХХН. Організувати затримку почергового виведення на світлодіоди і індикатор, що дорівнює 6 с. Використовувати таймер 1
Примітка. Х – цифра від 0 до 9

 

Рисунок 18 - Схема до лабораторної роботи 7

 



Поделиться:


Последнее изменение этой страницы: 2016-06-07; просмотров: 179; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.20.203.230 (0.014 с.)