Микропроцессоры и микроконтроллеры

 
 
 
Измерять продуктивность программирования подсчетом строк кода — это так же, как оценивать постройку самолета по его весу.
Bill Gates
Русский | Українська



На правах рекламы:



Rambler's Top100 Рейтинг@Mail.ru
Микропроцессоры и микроконтроллеры :: Принципи програмування MSC-51 :: Опис варіантів конфігурації таймерів-лічильників

Опис варіантів конфігурації таймерів-лічильників

Фактично робота визначається конфігурацією лічильних регістрів. Управління запуском і зупинкою таймерів здійснюється відповідно логікою сприйняття значень розрядів TRx, GATE та сигналу INTx. (див. ріс.14.3) і є однаковим для всіх типів конфігурації. Для всіх режимів однаковим є також вибір джерела імпульсів, які підраховуються, через встановлення значення розрядів С /Т (регістр TMOD). При переповнення лічильних регістрів (перехід зі стану "1 ... 1" до стану "0 ... 0") встановлюється відповідний прапор переривання (TF0 або TF1), що є сигналом для процесора МК51 про завершення чергового циклу підрахунку. Після видачі сигналу переривання таймер продовжує підрахунок імпульсів у відповідності з встановленим режимом. Дії, які повинні виконуватися при переповнення таймера, залежать від завдання і визначаються програмістом.

rn

Конфігурація 0 (M1 = 0, М0 = 0) - Register THх працює як восьміразрядній Т /С, на вхід якого підключений пятіразрядній лічильник-дільник з коефіцієнтом 32, реалізований на TLх. Схема таймера-лічильника в режимі 0 показана на ріс.14.4-а (мал. 26-а в комплекті). Таймерний регістр має довжину 13 біт (TLx = 5, THx = 8).

rn

Конфігурація 1 (M1 = 0, M0 = 1) - Т /С реалізований на основі 16-розрядної таймерного регістру TLx: THx. По суті, робота така ж, як і в конфігурації 0, але дільник на TLx має розрядність 8 і коефіцієнт 256. Максимальна кількість імпульсів, що може бути підраховано в цьому режимі, - 65536, вимірювань інтервал часу до 65 мс з точністю 1 мкс.

rn

Конфігурація 2 (M1 = 1, M0 = 0) - TLx є восьміразряднім лічильних регістром. Переповнення регістра TLx викликає генерацію прапора переривання TFx і автоматичне завантаження в TLx стартового числа, яке попередньо може бути записано в регістр Тнх. Схема таймера для конфігурації 2 показана на ріс.14.4-б (мал. 26-б в комплекті). Таймер-лічильник у конфігурації 2 має сенс використовувати для реалізації повторяющихся інтервалів часу однакової тривалості. Одним з стандартних застосувань Т/С1 в цій конфігурації є завдання швидкості передачі інформації через послідовний порт. При цьому сигнал переповнення TF1 є стробом передачі чергового біта (ріс.13.1).

rn

Конфігурація 3 (M1 = 1, M0 = 1) - Т/С1 не працює і зберігає своє вміст незмінним. Схема Т/С0 в конфігурації 3 показана на ріс.14.5 (мал. 27 в комплекті). Регістри TL0 і ТН0 функціонують як два незалежних восьміразрядних таймера. Управління роботою TL0 здійснюється битами С /Т, GATE і TR0 таймер 0, а також сигналом INT0. При переповнення таймера TL0 формується прапор переповнення TF0. Таймер ТН0 може працювати тільки як лічильник МЦ із запуском від TR1 і формуванням прапора TF1. Якщо Т/С0 використовується в конфігурації 3, то Т/С1 може застосовуватися за призначенням, яке не вимагає явної обробки переривань, наприклад, для синхронізації послідовного порту.

rn

rn

Рис. 14.4

rn
rn
Особенності реалізації тимчасових інтервалов
rn
Рис. 14.5












При использовании любых материалов с сайта обратная ссылка на сайт Микропроцессоры и микроконтроллеры обязательна.