Устройство микроконтролер таймери MCS-51
Основните модели на семейството има два програмируеми 16-битови таймер / броячи (Т / С 0 и Т / С1), които могат да бъдат използвани или като таймери и броячи като външни събития. Всеки от тях се състои от два 8-битов регистрира ТН0 (високо байт) и TL0 (нисш байт) 0 или таймер ТН1 (високо байт) и TL1 (ниско байт) за таймер 1.
В стойността на таймера режим на таймера / брояч се увеличава във всяка инструкция цикъл, т.е. на всеки 12 периоди на кварцов резонатор.
В режим на брояч, съдържанието на таймер / брояч се увеличава на преход 1-0, външната входния сигнал подава към изхода T0 или Т1 микроконтролер. Тъй като се изисква периода на откриване на два цикъла, максималната честота на сигнала броене е равно на 1/24 от входната честота на резонатора. От продължителността на периода на входните сигнали имат горни граници. За да се гарантира, че четенето трябва да притежава стойността на входния сигнал е 1, най-малко в един цикъл на микро-компютър машина.
Също така, Таймер 1 може да се използва за задаване на скоростта на предаване (скоростта в бодове) серийния порт.
За да превключите режима на таймери, използвани бита M0 и M1 TMOD специална функция регистър. Името произлиза от свиването на две английски думи: T (таймер) - таймер и режим - режим. Имената на битовете и подредбата показани на Фигура 1:
Фигура 1. Операцията контрол регистър на режим формат TMOD таймери.
Тъй таймерите контрол 0 и 1 са напълно идентични, тогава се получава назначаване бита по име:
Име и предназначение
TMOD.7 таймер 1 и таймер 0 TMOD.3
контрол Таймер от ключалката краката INTx. Ако битът е 1, на таймер / брояч "Х" е разрешено, докато на входа "lNTx" високо ниво и контрол бит "TRX" е зададена. Ако битът е изчистена до 0, а след това T / C е позволено, веднага след като контролният бит "TRX" е 1.
TMOD.6 таймер 1 и таймер 0 TMOD.2
Изберете таймер малко или брояч събитие режим. Ако битът е изчистена до 0, таймерът работи на вътрешния осцилатор, ако е зададено на 1, а след това работи на външни сигнали "Tx" вход
TMOD.5 таймер 1 и таймер 0 TMOD.1
Избор на режим на таймер
TMOD.4 за Т / С1 и TMOD.0 за Т / С0
В режим на функциите на нулева таймер като 13-битов сумиране брояч. Този брояч се състои от 8-битов регистър THX и долните 5 бита на TLX регистър, където х предназначение регистър се заменят с 0 или 1 в зависимост от това дали таймера, който управлява. Старши 3 битови регистъра TLX не е определено и се игнорират. Монтаж стартира таймер TR0 или TR1 флаг не изчисти регистрите. веригата на таймера или таймера 0 1 работи в режим 0, показано на фигура 2.
Фигура 2. Схематична таймери 0 или 1 в режим 0
В тази схема, таймер не е показан за контрол на веригата. Ще обсъдим характеристиките на контролните таймерите 0 и 1, както и схема за управление по-късно.
0 режим е въведен за съвместимост с наследството MCS-48 семейството на микроконтролери, за да се улесни прехвърлянето на вече разработени програми за нови процесори и по тази причина не се използва в момента. Въпреки това, този режим може да осигури интервал за образуване на 8096 продължителност MS с честота 12 MHz осцилатор.
Когато съдържанието на брояча се променя от състоянието на всички "1" състояние във всички "0". е установен (със стойност "1") прекъсват TF0 флаг или TF1 таймер.
Потребителите обикновено не се интересуват от максималния размер на време, както и специфичното си интервал от време. За да се намали интервала от време, в регистрите на таймера може да бъде предварително въведете номер и по този начин генерира произволен интервал от време. Вземем примера на таймер подготовка T0 за генериране на интервал от време 5 мс.
В този пример, за разцепване на 16-малко постоянно в два отделни байтове са използвани функция разделяне възрастните и младите байт. Тези функции са налични в повечето сглобяващи за MCS-51 микроконтролер. Ако езика за програмиране не съдържа в състава си подобни функции, възможно е да изберете една операция да се възползват от байтове, разделен на 256.
В първия режим на работа, таймерът работи като Шестнадесетично брояч. Режим 1 е подобен режим 0, с изключение на регистрите на таймера използват всичките 16 бита. В този режим, регистри и THX TLX също са включени едни от други. Таймер 0 и таймер 1 режим 1 съответства на диаграмата:
Фигура 3. Таймер 0 или 1 в режим 1.
В този режим е възможно да се осигури образуването на интервал времетраенето 65536 микросекунди с честота 12 MHz осцилатор.
Вземем примера на таймера T0 за генериране на интервал от време 15ms.
В този пример, преливане на таймера се появят след 15000 цикъла CPU, т.е. след 15 милисекунди. Програмата непрекъснато ще провери състоянието на преливник флаг таймер, и веднага след като се установи, в устройството ще премине към следващата команда.
Нула и първата режими T0 и Т1 таймери са предназначени да образуват един интервал от време. Ако се наложи да се генерира последователност от интервали от време за периодичен процес, ТН0 за товарене и TL0 регистрира, за да определите желания интервал от време се извършва в областта на софтуера, който за кратки интервали от време може да доведе до значителни разходи за процесорно време.
За създаването на една и съща последователност на времеви интервали използвано от операцията на таймера, за да се рестартира - 2 режим.
Режим на регистър 2 TLX Таймерът работи като брояч на 8-битов с автоматично презареждане на първоначалната стойност на регистъра да регистрира THX TLX. Overflow регистрирате TLX TFX не само поставя флаг, но и зарежда съдържанието на регистъра TLX THX регистър, който преди това е бил инициализира чрез софтуер. Претоварване не се променя съдържанието на THX регистъра. Таймерът 0 и таймер 1 в режим на 2 съответства на схемата:
Фигура 4. Схема таймери 0 или 1 в режим 2.
Таймер 1 при работа в режим 3 просто държи стойността си. Ефектът е същият, както при нулирането малко TR1.
0 таймер в режим 3 представлява два отделни 8-битов брояч (TL0 регистри и TN0), TL0 регистър използва таймер контролни битове 0: C / T0. GATE0, TR0 и TF0. TN0 регистър работи само в режим на таймер и използва бита TR1 и TF1 таймер 1. Поради това, TN0 регистър контролира таймерът за таймер прекъсване 1. Режимът на логиката 0 е показан на схема 3:
Фигура 5. Схема taymera 0 в режим 3.
операция TL0 таймер е позволено, ако малко TR0 = 1, таймер ТН0 - ако малко TR1 = 1. Таймер 1 Таймер 0 при работа в режим 3 е постоянно включен.
Този режим позволява два независими таймера, ако таймерът 1 се използва за сериен порт, но трябва да се каже, че на практика режим 2 не е от голямо значение.
таймерите контролната верига 0 и 1 са идентични и таймер T0 е показано на фигура 6. Т1 схема таймер ще се промени само стаи контролира бита (нули са заместени с 1). На диаграмата сенчести правоъгълник маркиран външната крака чип микроконтролер.
Фигура 6. Схема за контрол таймери 0 или 1.
Схемата показва, че Таймерът може да се включва и изключва бита TRX. По този начин е възможно да се намали консумацията на чипа и нивото на смущения, генерирани от него. Като се има предвид, че брояча на таймера са включени при висока честота, те могат да консумират до половината от консумацията на ток на микроконтролера. Трябва да се отбележи, че при включване и след нулирането на таймера на микроконтролера е забранено.
Възможно е да се контролира работата на таймера от външната страна с помощта на T0 външните крака за T0 или T1 таймер за T1 таймер. За да направите това, написано в малко Gatex логическа единица (да не забравяме да се позволи работа на таймера използване TRX бита).
Освен това, на таймера може да бъде синхронизирано с външен осцилатор. За да направите това, малко C / T управление трябва да бъде написана логика един.
Битове включване TR0 и TR1 се поставят в таймери TCON регистър (контрола - контрола), а битове GATE и C / T в TMOD регистър. TCON регистрира намален формат на следващата фигура:
Фигура 7. Формат за контрол на режима на работа регистър TCON таймери.
контрол тип малко прекъсвания 0 е настроен / изчиства от софтуер, за да се определи вида на заявка за прекъсване INT0 (нарязани / ниска)
В допълнение, таймерите за управляващата верига интересен с това, че позволява използването на таймери като измервателни уреди. Помислете за тази възможност по-подробно.
Използване на таймера като мярка за продължителност на импулса
Известно е, че измерването на продължителността на импулса може да бъде направена чрез броене на импулси на референтната честота. импулс принцип на измерване, продължителност е илюстрирано на фигура 8.
За измерване на продължителността на импулса на измервания сигнал се подава на изхода на микроконтролера и в INTx GATE контрол малко е писано логическо даде възможност на сигнала. Таймер / брояч се намира в режим на запис с таймер е в битов C / Tx логика нула. Съдържанието на таймера се нулира.
Пример импулс програма ширина измерване е показан на фигура 9.
Фигура 8. Принципът на измерване на продължителността на импулса
Фигура 9. програма Измерване продължителност на импулса
Ако сега в микроконтролер INT0 вход импулс хранени с неизвестна продължителност, регистрите ТН0 и TL0 ще бъдат написани на продължителността му в микросекунди.
Използване на таймера като честота брояч.
Известно е, че честотата на измерване може да се направи чрез отчитане на броя на периодите с неизвестна честота за единица време. принцип на измерване честота е илюстрирано на Фигура 10.
Фигура 10. Честотен Принцип Измерване
измерения сигнал се подава към изхода Tx на микроконтролера за измерване честота. Таймер / брояча е конфигуриран в режим на брояч вписване в битов C / Tx логическа единица. Съдържанието на таймера се нулира. Таймерът се включва за строго определен интервал от време. Този интервал е настроена оставащия часовник.
Пример сигнал програма измерване на честотата на микроконтролера крак T0 А е показана на Фигура 11.
Фигура 11. Програма за измерване на честота
Ако сега в T0 микроконтролер вход за сигнализиране с неизвестна честота, регистрите ТН0 и TL0 ще бъдат записани на неговата честота в килохерца.
Заедно с статията "Архитектура микроконтролери MCS-51" да се чете: