Мікроконтролери MCS-51: режими роботи, команди регістрів, таймер, матриця


Загальна характеристика сімейства MCS-51.

У табл. 7.2.1 наведені основні показники мікросхем шести груп MCS-51, що розглядаються в цьому розділі.

У кожну з них зведені мікросхеми найбільш близьких за функціональними особливостями і електричним параметрам мікроконтролерів відповідно до методики, прийнятої в технічній документації фірми Intel.

В позначеннях, наведених в таблиці мікросхем, використовується тільки четверте поле системи позначень фірми Intel, при цьому перший елемент 8 є символом фірми.

другий елемент мікросхем відображає: 0 – кристал без ПЗУ (починаючи з мікросхем 5-ї групи); 3 – масочное ПЗУ (починаючи з мікросхем 5-ї групи); 7 – репрограмміруемом ПЗУ з ультрафіолевим стиранням (УФРПЗУ).

буквений елемент C вказує на КМОП-технологію виготовлення мікросхем.

В 4-й і 5-й групах не наведено кристали з позначенням L, що відноситься до мікросхем з 3-вольта харчуванням.

При відсутність літерного елемента мікросхеми виготовлені по nМОП-технології.

наступні дві цифри 51 у всіх випусках мікросхем, починаючи з 5-ї групи служать для позначення розглянутого сімейства МК MCS-51.

Літерні символи в кінці позначення відображають функціональні та інші особливості мікросхем.

У перших випусках мікросхем (з 1-го по 4-ю групи): цифра 3 відображала відсутність ПЗУ; 5 – наявність ПЗУ, A наступна цифра 1, 2, 4 або 8 – ємність ПЗУ відповідно 4, 8, 16 або 32 Кбайт.

Сімейство MCS-51 поповнилося новими регістрами допоміжних функцій SFR.

Наведений в табл. 7.2.2 перелік регістрів SFR (зірочкою * позначена можливість побитной адресації) складено з урахуванням їх введення в наступні модифікації мікросхем.

При цьому регістри мікросхем нижчих груп залишилися в мікросхемах старших груп.

Однак в деяких з них, наприклад, в регістрах дозволу переривань (IE) і пріоритетів переривань (IP, IPH) задіяні не використовувані раніше розряди.

Мікросхеми 6-ї групи поповнилися двома портами введення / виведення.

значно розширилися альтернативні функції висновків портів Р0-Р5 (табл.7.2.3).

Введення нових апаратних засобів в наступні розробки мікросхем призвело до розширення можливостей мікроконтролерів сімейства.

Додаткові функціональні можливості мікроконтролерів різних груп МСS-51 по відношенню до базової версії відображені (позначені знаком +) в табл.7.2.4.

Таймер-лічильник T / C2

Таймер-лічильник T / C2 шляхом відповідної установки біта C / ¯T2 регістра управління T2СON (табл.7.2.5) може бути використаний як таймер для підрахунку машинних циклів або як лічильник подій, що фіксує на вході число перепадів з 1 в 0.

Шестнадцатіразрядний таймер-лічильник T / C2 складається з пари восьмирозрядних регістрів TH2 (старші 8 розрядів) і TL2 (молодші 8 розрядів).

Зовнішнім входом T / C2 служить висновок P1.0 порту P1, на який подається сигнал T2.

Інший висновок P1.1 того ж порту використовується для управління автоматичною перезавантаженням T / C2.

Режими роботи T / C2 (Табл.7.2.6) вибираються битами регістра T2CON.

У табл.7.2.7 наведено призначення біт регістрів IE, IP і порту P1, використовуваних для T / C2.

режим засувки

На ріс.7.2.1 представлена ​​схема, що ілюструє роботу T / C2 в режимі засувки, або фіксації.

При EXEN2 = 0 (позиція T2CON.3) відбувається рахунок імпульсів внутрішнього тактового генератора або імпульсів, що надходять від зовнішнього джерела на висновок P1.1.

Переповнення T / C2 призводить до установки прапора TF2 в регістрі T2CON.

При EXEN2 = 1 рахунок імпульсів ведеться до першого перепаду з 1 в 0 на виведення P1.1, після чого відбувається замикання регістрів RCAP2L, RCAP2H, що відображають поточний стан лічильника (регістрів TL2, TH2), і установка прапора EXF2 в T2CON.

Прапори TF2 і EXF2 можуть бути використані для виклику переривань.

режим автоперезагрузка встановлюється згідно з даними табл.7.2.6 режимів роботи T / C2.

Розглянемо випадок DCEN = 0 в регістрі режиму T2МOD (табл.7.2.8), відповідний станом МК після скидання.

При DCEN = 0 конфигурируется схема підсумовуючого лічильника T / C2 (ріс.7.2.2, а).

Якщо ЕХЕN2 = 0, то T / C2 вважає вгору до 0FFFFh і потім встановлює прапор переповнення ТF2 = 1.

Переповнення викликає перезавантаження TL2, TH2 лічильника вмістом регістрів RСАP2L, RСАP2Н, яке заздалегідь встановлюється програмно.

Якщо ж ЕХЕN2 = 1, то перезавантаження TL2, TH2
лічильника може статися як від переповнення, так і від перепаду сигналу T2ЕХ з 1 в 0 на виведення P1.1.

При цьому встановлюються прапори ТF2 = 1, ЕХF2 = 1, які можуть викликати переривання, якщо воно дозволено.

Установка біта DCEN = 1 регістра режимів T2МOD (табл.7.2.8) переводить T / C2 в режим рахунку вгору або вниз (ріс.7.2.2, б).

Напрямком рахунку управляє рівень сигналу T2ЕХ на виведення P1.1:

● при T2ЕХ = 1 лічильник рахує вгору.

Після досягнення значення 0FFFh відбувається переповнення лічильника та встановлення ТF2 = 1, після чого лічильник (ТL2, TH2) перезавантажується вмістом регістрів RСАP2L, RСАP2Н;

● при T2ЕХ = 0 лічильник рахує вниз.

У разі рівного розподілу значень вмісту TH2 і RСАP2Н, ТL2 і RСАP2L фіксується антипереполнение, яке викликає установку ТF2 = 1 і перезавантаження лічильника значенням 0FFFFh.

Біт ЕХP2 (позиція T2СОN.6) змінює своє значення щоразу, коли відбувається переповнення або антипереполнение.

Він не викликає підпрограми (при ЕХF2 = 1) і може бути використаний як 17-й біт.

Генератор імпульсів синхронізації приймача. Цей режим T / C2 встановлюється згідно з даними таблиці 7.2.6 режимів роботи T / C2.

Для його пояснення скористаємося схемою на ріс.7.2.3.

За допомогою сигналів TCLК і РСLК проводиться вибір таймерів T / C1 або T / C2 для формування сигналів синхронізації передачі (СІ Tx) і прийому (СІ Rx) даних по послідовному каналу.

При обраному T / C2 (ТСLК = 1, RСLК = 1) переповнення таймера (T2 = 1) призводить до перезавантаження його регістрів вмістом регістрів RСАP2Н, RСАP2L.

При цьому швидкість передачі приймача в бодах в режимах 1 і 3 послідовного порту визначається відношенням FПП = FOSC / (32 [65536- (RСАP2Н, RСАP2L)]) де FOSC- частота тактового генератора; (RСАP2Н, RСАP2L) – вміст регістрів RСАP2Н, RСАP2L, взяте 16-бітове без знака.

При установці T2OЕ = 1, С / T2 # = 0 генеруються імпульси з частотою F = 8 FПП будуть надходити на висновок P1.0 порту P1.

Матриця програмованих лічильників.

Введення в мікроконтролері 8ХС51FХ матриці програмованих лічильників РСА, призначених для виконання різних операцій із застосуванням таймерів / лічильників, дозволяє скоротити число звернень до центрального процесора і зменшити обсяг програмного забезпечення.

Матриця РСА містить:

● один, закріплений за нею, таймер / лічильник;

● регістр управління ССОN (табл.7.2.9);

● регістр режиму CMOD (табл.7.2.10);

● п’ять 16-розрядних регістрів порівняння / фіксації ССАМРn, де n = 0 … 4 (табл.7.2.11).

У табл.7.2.12 наведені відомості про використання висновків P1.х порту P1 для РСА.

Кожен модуль може бути запрограмований на один з п’яти можливих режимів (табл.

7.2.13): фіксації, програмного таймера, високошвидкісного виходу, широтно-імпульсного модулятора і сторожового таймера.

Режим 16-бітної фіксації. Для реалізації одного з можливих режимів фіксації необхідно встановити біти регістра режиму модуля ССАРМn (табл.7.2.13, ріс.7.2.4):

● САРР = 1 – для режиму фіксації по позитивному фронту (ПФ) вхідного сигналу СЕХn;

● САРN = 1 – для режиму фіксації по негативному фронту (ОФ) СЕХn;

● САРР = 1, САРN = 1 для режиму фіксації по перепаду (зміни) сигналу (ІС) СЕХn.

У момент перепаду або зміни сигналу відбувається (ріс.7.2.4):

● завантаження 8-розрядних регістрів порівняння / фіксації ССАРН, ССАРL поточним вмістом таймера / лічильника РСА;

● установка прапора ССFn в регістрі управління ССON.

Якщо в регістрі режиму модуля ССАРМn біт ЕССFn = 1, то прапор ССFn може бути використаний для переривання від РСА.

Скидання прапора ССFn здійснюється програмно. У режимі фіксації зі зміни сигналу останнє значення сигналу має зберігатися в ОЗУ до наступного моменту фіксації.

Режим 16-бітного програмного таймера. Цей режим встановлюється битами ЕСОМn = 1 (запускає компаратор), МАТn = 1 (створює ланцюг для прапора ССFn) регістра режиму модуля ССАРМn (табл.7.2.13, ріс.7.2.5).

Поточне значення таймера / лічильника РСА порівнюється з попередньо завантаженим значенням регістрів порівняння / фіксації ССАРnН, CCAPnL.

У момент рівності значень відбувається установка прапора ССFn в регістрі управління CCON.

Якщо в регістрі режиму модуля ССАРМn біт ECCFn = 1, то прапор CCFn може бути використаний для переривання від РСА.

Скидання прапора ССFn здійснюється програмно.

Відзначимо, що в процесі обробки переривання в регістри порівняння / фіксації ССАРnН, CCAPnL можуть бути записані нові значення (на ріс.7.2.5 ланцюга не пока
зані).

З метою недопущення неправильного результату рекомендується наступна послідовність запису:

● спочатку молодшим байтом завантажується регістр CCAPnL, при цьому компаратор вимкнений, так як ЕСОМn = 0 (см.ріс.7.2.5);

● потім старший байт записується в регістр ССАРnН і для відновлення роботи компаратора встановлюється ЕСОМn = 1.

Режим з високошвидкісним виходом (HSO)

Цей режим відрізняється від режиму програмного таймера тим, що додатково задіяний один з висновків порту P1 для зняття сигналу СЕХn шляхом установки біта TOGn = 1 в регістрі режиму модуля ССАРМп (табл.7.2.13, ріс.7.2.5).

В, режимі з високошвидкісним виходом за однакової кількості значень таймера / лічильника РСА і регістрів порівняння / фіксації ССАРnН, CCAPnL крім установки прапора CCFn в регістрі управління CCON відбувається зміна сигналу СЕХn.

Подальше його зміна відбудеться при повторній фіксації рівності значень таймера / лічильника РСА і регістрів порівняння / фіксації ССАРН, CCAPL, тобто

після переповнення РСА і досягнення нового рівності значень.

Режим сторожового таймера (WDT)

У цьому режимі використовується модуль 4 порівняння / фіксації.

Щоб увімкнути режим (крім наведених в табл.7.2.13 даних) в регістрі режиму CMOD матриці РСА встановлюється біт WDTE = 1 (позиція CMOD6).

У разі рівного розподілу значень таймера / лічильника РСА і регістрів порівняння / фіксації ССАР4Н, CCAP4L формується сигнал внутрішнього скидання RESET, який виробляє скидання мікроконтролера (ріс.7.2.6).

Широтно-імпульсний модулятор (PWM). Включення модулятора здійснюється битами ЕСОМn = 1, PWMn = 1 (ріс.7.2.7, а).

В процесі роботи модулятора в компараторе відбувається порівняння молодших байтів (МБ) лічильника / таймера CL і регістра фіксації / порівняння CCAPnL.

За результатами порівняння сигнал на виході СЕХn має:

● низький рівень, якщо МБ CL < МБ CCAPnL;

● високий рівень, якщо МБ CL > МБ CCAPnL.

Змінюючи значення байта в регістрі CCAPnL від 0 до 255, можна управляти скважностью формованих імпульсів СЕХn (ріс.7.2.7, б).

Особливості послідовного інтерфейсу.

Послідовний порт ряду мікросхем сімейства МСS-51 на відміну від базової версії володіє додатковими можливостями.

Можна обмінюватися об’єктами з різними швидкостями. Така можливість обумовлена ​​введенням таймера / лічильника T / C2 з можливістю зміни швидкості передачі в режимах 1, 3 і досягається шляхом використання при обміні даними з зовнішнім пристроєм двох таймерів T / C1 і T / C2.

Один з таймерів налаштовується на передачу, інший – на прийом. У базовій мікросхемі для реалізації режиму обміну з різними швидкостями необхідно кожен раз робити перенастроювання швидкості таймера T / C1 на передачу і прийом.

Визначення відсутності стоп-біта.

Для виявлення відсутності стоп-біта при прийомі інформації по послідовному каналу використовується сьомий розряд SCON.7 регістра управління послідовним інтерфейсом.

При відсутності стоп-біта в цьому розряді встановлюється прапор помилки (FE = 1).

Так як розряд SCON.7 задіяний для біта SM0 кодування режимів послідовного інтерфейсу, перевірка прапора FE здійснюється за допомогою керуючого біта SMOD0 регістра управління енергоспоживанням PCON (PCON.6): SMOD = 1 забезпечує доступ до прапора FE, SMOD = 0 – до біту SM0 .

Автоматичне визначення адреси.

Цей режим призначений для використання в мультипроцесорних системах.

Для його реалізації в ведених МКn задіяні два спеціальних функціональних регістра SADDR і SADEN.

індивідуальний адреса веденого МКn вказується в SADDR.

Регістр SADEN містить байт маски адреси, нульові біти якого маскують (роблять незначущими) відповідні розряди власного адреси.

Припустимо, що в регістрі SADDR знаходиться власну адресу 11110001 МК1, A регістр SADEN містить байт 11111100, значення двох молодших розрядів якого рівні 0.

тоді в Загалом адресу 111100ХХ звернення до МК1 зберігаються шість старших розрядів власного адреси, два молодших розряду маскуються.

Вони можуть приймати будь-які 4 значення і, отже, дозволяють ведучому МК звертатися до МК1 за чотирма адресами.

МК1 МК2 МК3 Вміст регістра SADDR 11110001 11110010 11110011 Вміст регістра SADEN 11111100 11111010 11110101 Загальний адреса (адреса відгуку МК) 111100хх 11110 × 1х 1111x0x1 Адреси індивідуального звернення 11110000 11110110 11111001 11110111 11111011 Адреси звернення до МК1 і МК3 11110001 11110001 Адреси звернення до МК1 і МК2 11110010 11110010 Адреси звернення до МК1, МК2, МК3 111111хх 11111х1х 1111x1x1 Використовуючи зазначений підхід, можна побудувати досить гнучку систему адресації.

Вище за приклад показана
одна з таких можливостей звернення до трьох веденим мікроконтролерів.

У мікросхемах передбачена можливість одночасного звернення до всіх веденим МК.

Для цього формується широкомовний адресу (зазвичай OFFh) шляхом логічної операції АБО над вмістом регістрів SADDR і SADEN.

При цьому нулі в регістрах SADEN як і раніше визначають незначні біти в адресному байті.

Для 9-бітних режимів послідовного порту прапор переривання RI приймача буде встановлюватися тільки в разі надходження свого або широкомовної адреси, що має 1 в дев’ятому бите (RB8 = 1). Даний механізм працює і в разі 8-бітного режиму, оскільки 9-м бітом є стоп-біт.

Таким чином, при передачі провідним МК по послідовному каналу даних одному або декільком веденим МК здатність автоматичного розпізнавання адреси (на відміну від мікросхем 8051) дозволяє забезпечити переривання тільки необхідного мікроконтролера, що прискорює процес обміну.

Розширений послідовний порт SЕР

У мікросхемах 6-ї групи передбачений порт розширення послідовних каналів, який збільшує можливості МК з управління підключеними до нього периферійними пристроями за допомогою послідовного коду, надаючи кошти для апаратної реалізації шини l2C-bus.

Порт SEP має 3 джерела тактирования і 4 режими роботи, які задають неактивний рівень і фронт (передній або задній) сигналів тактирования.

Для виведення сигналів тактирования послідовної посилки задіяний висновок Р4.0 порту Р4, для введення / виведення даних – висновок Р4.1. Обмін даними через порт ведеться байтами.

Байт передається за 8 тактів. При відсутності обміну тактовий сигнал і дані неактивні.

Для обслуговування режимів порту SEP використовуються:

● регістр даних SEPDAT;

● регістр управління SEPCON (табл.7.2.14);

● регістр стану SEPSTAT (табл.7.2.15).

У мікросхемі МК передбачені вхід зовнішнього запуску ТRIGIN і вісім аналогових входів АСН0 … АСН7, A також висновок для подачі опорного напруги СОМРRЕF і окремі висновки харчування AVrefі землі AVSS.

Режим порівняння. Цей режим завжди активний і використовується для порівняння в компараторе вхідних напруг АСН0 … АСН7 з опорною напругою COMPREF.

Режим внутрішнього запуску АЦП. Цей режим активізується установкою біта ATM = 1 (висновок ACON.0 регістра управління).

Після установки біта АСЕ = 1 (висновок ACON.4) в наступному машинному циклі починається перетворення даних нульового каналу АСН0.

Прапор переривання AIF (висновок ACON.5) встановиться тільки після завершення перетворення в сьомому каналі АСН7.

У разі дозволу прапор AIF викликає переривання по вектору АЦП.

Новий цикл перетворення може початися тільки після того, як завершено попередній.

Режим зовнішнього запуску АЦП. У цьому режимі (АТМ = 0) перетворення починається по негативному перепаду зовнішнього сигналу TRIGIN.

Для його виявлення використовується два машинних циклу.

У кожному машинному циклі проводиться опитування входу TRIGIN.

Після фіксації перепаду АЦП працює так само, як і в режимі внутрішнього запуску.

режим сканування

При установці біта AIM = 0 (висновок ACON.1 регістра управління) відбувається перетворення в порядку АСН0 … АСН7 з занесенням результату відповідно до регістрів AD0 … AD7.

Режим обраного каналу

При установці біта AIM = 1 (висновок ACON.1 регістра управління) відбувається перетворення даних каналу, обраного за допомогою двухразрядного коду з бітів ACS1, ACS0 (00 – канал асно, 01 – канал АСН1, 10 – канал АСН2, 11 – канал АСН3, ) з занесенням результату до відповідного регістру результатів ADn (n = 0 … 3).

Після цього, як і в режимі сканування відбувається опитування каналів АСН4 … АСН7 з занесенням результатів в регістри AD3 … AD7.

Можливості використання АЦП для меншого числа каналів.

Якщо час перетворення некритично, то результат з необхідного каналу зчитується по завершенню перетворення на 7-му каналі.

Якщо ж результат необхідно отримати відразу по завершенні перетворення на даному каналі, то можна скористатися двома способами:

● використовувати таймер і його переривання, програмуючи його виходячи з відомого часу перетворення кожного каналу і, отже, відомого тимчасового інтервалу від початку циклу до читання регістра результату перетворення необхідного каналу;

● виробляти періодично порівняння значення в регістрі результату необхідного каналу.

Зміна вмісту регістра результату буде свідчити про те, що сталося нове перетворення.

Ссылка на основную публикацию