- •Конспект лекцій з дисципліни “Мікропроцесорні пристрої”
- •1 Основи теорії мікропроцесорних пристроїв
- •Класифікація мікропроцесорів. Варіанти архітектури
- •Базова структура мікропроцесорної системи
- •Основні характеристики мп
- •Типова структура мікропроцесора
- •Система команд мп і режими адресації
- •Організація передачі інформації в мпс. Інтерфейс
- •1.6.1 Способи передачі інформації
- •Методи обміну інформацією в мікропроцесорній системі
- •2 Мікроконтролери
- •Структура мк
- •Процесорне ядро мк
- •Резидентна пам'ять мк
- •Порти уведення/виводу
- •Таймери і процесори подій
- •Аналогово-цифрові й цифро-аналогові перетворювачі
- •Мінімізація споживання енергії в мп-системах
- •Моніторинг напруги живлення мк
- •Апаратні і програмні рішення по підвищенню надійності роботи мк
- •Контролери Intel mcs-51
- •3.1 Структурна організація Intel 8051
- •3.1.1 Арифметично-логічний пристрій
- •Зовнішня пам'ять
- •Пристрій керування і синхронізації
- •Програмна модель омк
- •Система команд Intel 8051
- •Арифметичні операції:
- •Логічні команди:
- •Бітові команди:
- •Периферійні присторої омк
- •Порти введення/виводу
- •Звертання до портів можливе тільки за прямою адресою.
- •Лічильники/таймери
- •Послідовний порт
- •Примітка
- •Мікроконтролер pic16f877
- •Характеристика мікроконтролера
- •Cтруктурна схема мікроконтролера pic16f877
- •Організація пам'яті
- •Пам’ять програм
- •Організація пам'яті даних
- •Регістр стану status
- •Лічильник команд
- •Порти введення/виводу
- •Регістри portа і trisa
- •Регістри portb і trisb
- •Регістри portc і trisc
- •Регістри portd і trisd
- •Регістри porte і trise
- •Таймери
- •Модуль таймера tmr0
- •Модуль таймера tmr1
- •Модуль таймера tmr2
- •Модуль 10-розрядного ацп
- •Adcon0 (адреса 1Fh)
- •Adcon1 (адреса 9Fh)
- •Переривання
- •Сторожовий таймер wdt
- •Біти конфігурації
- •Слово конфігурації (адреса 2007h)
- •Система команд
- •Література
Лічильники/таймери
Лічильник/таймер (СТ) призначений для обробки зовнішніх і внутрішніх подій, формування програмно-керованих тимчасових затримок, виконання часозавдавальних функцій.
До складу ОМК входять два 16-розрядних підсумовуючих СТ. Лічильник складається з регістрів лічильника TLi (молодший байт), THi (старший байт), логіки керування вхідними сигналами і тригера переповнення TFi. Біт TFi установлюється при переході лічильника зі стану
«усі 1» у стан «усі 0». Біт TFi розташовується в бітовому просторі і доступний за прямою адресою. Звертання до TLi, THi здійснюється роздільно за прямими адресами.
Керування роботою лічильника виконується за допомогою регістра режиму роботи TMOD і регістра керування-статусу TCON.
Формат
регістра TMOD показаний на
рисунку 3.12.
GATE1, GATE0 – керування способом запуску СТ;
С / T 0
, С / T1 – визначають роботу СТ як лічильника ( С / T
=1)
або таймера ( С / T =0);
М1, М0 - задають режими роботи
Рисунок 3.12 – Формат регістра режиму лічильника/таймера TMOD
Спосіб запуску СТ може бути апаратний чи програмний. Якщо GATEi =1, то реалізується апаратний запуск, при якому дозвіл рахування подається на вхід INTi порту Р3. Попередньо повинний бути встановлений біт запуску лічильника TRi у регістрі TCON. (і – номер лічильника- таймера). При програмному запуску GATEi =0, початок рахунка задається установкою біта TRi =1.
У режимі таймера СТ працює від внутрішнього генератора з частотою OSC/12.
При роботі в режимі лічильника вміст СТ інкрементується під впливом переходу з «1» у «0» зовнішнього сигналу, який подається на відповідні входи Т0, Т1 порту Р3. Інкремент виконується після аналізу стану «0» і «1» на вході Тi, тому накладаються певні обмеження на параметри преутвореного сигналу: рівень «0» і «1» повинний продовжуватися не менше OSC/12. Максимальна преутворена зовнішня частота - OSC/24.
Лічильник/таймер може бути налаштований на один з 4 режимів. Режими 0,1,2 однакові для обох лічильників, і в цих режимах вони цілком незалежні. Робота СТ0 і СТ1 у режимі 3 різна. При цьому установка СТ0 у режим 3 впливає на режими роботи СТ1.
Режим 0: режим 13-розрядного регістра, що складається з TНi і 5 молодших розрядів TLi. Структура показана на рисунку 3.13.
Рисунок 3.13 – Структура лічильника/таймера у режимі 0
Режим 1: режим 16-розрядного регістра, що складається з THi і TLi.
Структура показана на рисунку 3.14.
Рисунок 3.14 – Структура лічильника/таймера у режимі 1
Режим 2: у цьому режимі СТ являє собою пристрій на основі 8-розрядного регістра TLi. При кожному переповненні Tli, крім установки прапора Tfi, відбувається автоматичне завантаження вмісту THi у TLi. Структура показана на рисунку 3.15.
Рисунок 3.15 – Структура лічильника/таймера у режимі 2
Необхідний коефіцієнт розподілу повинний записуватися одночасно в THi і TLi.
Принцип роботи СТ у режимах 0,1,2 пояснює рисунок 3.16.
Рисунок 3.16 – Принцип роботи лічильника/таймера в режимах «0, 1, 2»
Режим 3: у цьому режимі лічильник 0 функціонує як 2 незалежних лічильники, а лічильник 1 заблокований і просто зберігає свій код (виконує функції регістра). При цьому можна настроїти лічильник 1 на інші режими.
Принцип роботи СТ у режимі 3 пояснює рисунок 3.17.
Рисунок 3.17 – Принцип роботи СТ у режимі 3
Режим 3 використовується, якщо необхідно збільшити кількість діючих лічильників до трьох. При роботі в цьому режимі СТ0 розподіляється на два 8-розрядних лічильники, сформованих на базі регістрів ТН0, ТL0. Лічильник на базі ТН0 може працювати тільки в режимі таймера, керується бітом ТR1 і формує сигнал переповнення ТF1. Лічильник на базі TL0 особливостей у керуванні не має .
Установка СТ0 у режим 3 позбавляє СТ1 біта включення TR1. Тому СТ1 у режимах 0, 1, 2 при GATE=0 завжди включений і при переповненні в
режимах 0 і 1 СТ1 обнуляється, а в режимі 2 перезавантажується, не встановлюючи прапора, якщо СТ0 знаходиться в режимі 3.
СТ1 апаратно зв'язаний із блоком синхронізації послідовного порту. Тому в режимах 0, 1, 2 при переповненні СТ1 завжди виробляє імпульс синхронізації послідовного порту.
Регістр керування і стану TCON (рис. 3.18) призначений для формування сигналів запуску СТ і збереження прапорів їхнього переповнення, завдання типу сприйманого запиту і збереження прапорів зовнішніх переривань.
TFi – прапор переповнення СТ. Установлюється апаратно при переповненні лічильника/таймера, скидається програмно. При обслуговуванні переривання скидання виконується апаратно.
TRi – біти керування СТ. Установлюється/скидається програмно для пуску/зупинки;
ITi – біт керування видом сигналу запиту переривання. При Іті=1 програмується переривання за зрізом імпульсу запиту, при ITi=0 – за низьким рівнем (і – номер входу запиту зовнішнього переривання);
IEi – прапор запиту переривання. Установлюються апаратно від зовнішніх запитів на входах INTi. Скидаються апаратно, якщо переривання викликане зрізом імпульсу запиту чи програмно. Можливе програмне керування цим прапором.
Рисунок 3.18 – Формат регістра TCON
Для настроювання лічильника/таймера на необхідний режим треба:
задати необхідний коефіцієнт перерахування К в регістри Тні, ТLі. Якщо лічильник підсумовуючий, то К= 65535 – С +1, де С – необхідний коефіцієнт розподілу;
задати режим роботи в слові TMOD;
при програмному введенні-виводу замаскувати відповідні переривання від лічильника, а при використанні переривання, їх дозволити;
при програмному запуску біт дозволу ТRі в слові TCON встановлюється в момент початку роботи СТ, а при апаратному – на стадії ініціалізації.
На базі СТ можна організувати перетворювачі частоти, часового інтервалу, періоду в код, генератори та формувачі сигналів. Однак необхідно враховувати, що TFi апаратно недоступно, тому вихідні сигнали варто формувати на виходах паралельних портів.
