Програмування цифрового автомату

Міністерство  освіти і науки, молоді та спорту України

Національний авіаційний університет

Інститут інформаційно-діагностичних  систем

Кафедра інформаційно-вимірювальних  систем

 

 

 

 

 

 

 

Курсова робота

з дисципліни: «Мікроконтролери у вимірювальній техніці»

Варіант  № 12

 

 

 

 

 

 

 

Виконала:

студентка групи 512 ІС

Самчук Тетяна Олександрівна

 

 

 

 

 

Роботу здано “___”________ 2012 р.              

 

Курсову роботу захищено з оцінкою: ____________________

 

 

 

 

 

Київ – 2012

Національний авіаційний університет

Інститут інформаційно-діагностичних систем

Кафедра інформаційно-вимірювальних  систем

 

 

 

ЗАВДАННЯ

студентки Самчук Тетяни Олександрівни

Варіант № 12

 

 

На базі мікроконтролера MCS-51 та стенду EV8031 розробити цифровий автомат із використанням 8-бітного  ЦАП. Цифровий автомат має виконувати таку послідовність дій:

1) після запуску програми  протягом 12 секунд із виходу ЦАП поступає пилкоподібний сигнал;

2) протягом 9 секунд із виходу ЦАП поступає послідовність прямокутних імпульсів;

3) якщо протягом перших 12 секунд роботи програми (п.1) була натиснута кнопка INT0 з виходу ЦАП протягом 6 секунд поступає синусоїда. У протилежному випадку ЦАП вимикається на 7 секунд, після чого процес повторюється, починаючи з п.1.

Період кожного із сигналів має складатися із 15 точок.

Програма повинна мати наступні функції:

1) встановлення частоти  поточного вихідного сигналу  за допомогою кнопки INT0;

2) протягом виведення  на ЦАП амплітуда вихідного  сигналу має плавно змінюватися від мінімуму до максимуму та навпаки;

3) кількість секунд, що  залишилися до кінця, та номер циклу виводиться на статичний індикатор у десятковому форматі.

 

 

 

 

 

Зміст

 

Вступ………………………………………………………………………….4

  1. Теоретична частина:
    1. Загальні відомості про цифро-аналоговий перетворювач……...…5
    2. Мікроконтролер 8051…………………………………………….…..8
      1. Програмна архітектура МК 8051……………………………..…..8
      2. Структура внутрішньої пам’яті…………………………….....…10
      3. Система переривань…………………………………….…….….15
    3. Цифровий автомат…………………………………………….……..21
      1. Що являє собою цифровий автомат……………………….....….21
      2. Структурна схема цифрового автомату…………………..…......23
      3. Синтез цифрового автомату……………………………..…..…..25
  2. Практична частина:
    1. Алгоритм програми для реалізації цифрового  автомата………….26                                                                                                         
    2. Алгоритм для підпрограми обробки переривань…………………..28
    3. Текст програми з коментарями…………………………………......29

Висновки………………………………………………………………...….33

 

 

 

 

 

 

 

 

 

 

 

 

Вступ

Дана курсова робота виконується з метою більш  поглибленого вивчення дисципліни «Мікроконтролери у вимірювальній техніці», набуття навичок самостійного вирішення поставлених задач, більш детального вивчення принципу роботи MCS-51 стенду EV8031, та вдосконалення знань, набутих під час виконання лабораторних робіт.

Для успішного виконання курсової роботи студент повинен вміти працювати з літературою, знати необхідний матеріал, вміти складати алгоритми та розроблювати програми мовою СІ. В курсовій роботі використовуються такі теоретичні відомості, як відомості про вбудований у стенд ЦАП, а також принцип роботи цифрового автомату, необхідні для кращого розуміння поставленої задачі та розроблення шляхів її реалізації на базі MCS-51 стенду EV8031; відомості про апаратні та програмні можливості використовуваного стенду EV8031 та мікроконтролера MCS-51.

В курсовій роботі використовується програмне середовище Keil uVision3. 

 

 

 

 

 

 

 

 

 

 

 

 

 

1. Теоретична частина

    1. ЗАГАЛЬНІ ВІДОМОСТІ ПРО ЦИФРО-АНАЛОГОВИЙ  ПЕРЕТВОРЮВАЧ

Цифро-аналогові  перетворювачі (ЦАП) виробляють струм  чи напругу, функціонально зв'язану з керуючому кодом. ЦАП застосовуються для формування вихідних аналогових сигналів цифрових вимірювальних і обчислювальних пристроїв. Для перетворення двійкового коду в аналоговий сигнал зазвичай формуються струми, що пропорційні вагам розрядів коду після чого додаються ті зі струмів, що відповідають ненульовим розрядам вхідного коду.

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

У випадку використання на вході двійкового позиційного  коду значення всіх розрядів надходить  одночасно, і робота таких ЦАП  описується виразом:

де X - аналогова величина.

 - коефіцієнти відповідних двійкових розрядів, що приймають дискретні значення одиниці чи нуля.

Р - опорний сигнал

b - число розрядів

У перетворювачах з опорної напруги формуються еталонні величини, які відповідають значенням розрядів вхідного коду, які підсумовуються і утворюють дискретні значення вихідної аналогової величини.

Класифікація  ЦАП може бути приведена по ознакам:

    • способу формування вихідної напруги (з підсумовування або розподілом напруг);
    • роду вихідного сигналу (з токовим виходом або виходом по напрузі);
    • полярності вихідної напруги (постійна або змінна).

Основні структури, які використовуються в ЦАП інтегрального  виконання це:

    • Структури з підсумовуванням струмів.
    • ЦАП - зі зваженими резисторами в ланцюгах емітерів.
    • ЦАП - зі зваженими резисторами в ланцюгах навантаження.
    • ЦАП зі сходовою матрицею R-2R у ланцюгах емітерів транзисторів джерел струмів.
    • ЦАП з вихідною сходовою матрицею R-2R

Параметри ЦАП:

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

Похибки ЦАП  можуть бути виражені у відсотках  чи інших відносних одиницях, а  також у частках кванта.

Спрощена схема  ЦАП для розуміння роботи перетворення вхідного коду в струм (напругу) визначеної величини зображений на рис. 1


Рис. 1. Схематичне представлення ЦАП на основі матриці R-2R

Якщо співвідношення резисторів ЦАП встановити рівним 8R, 4R, 2R, 1R, то при включенні всіх комутаторів у відповідності до закону Ома напруга в точці OUT буде дорівнювати напрузі VCC. Якщо ввімкнути комутатор резистора R8, напруга в точці OUT буде рівною VCC/2.

Аналогічно  можна отримати значення напруги, при  різних комбінаціях вхідного коду.

В складі учбово-відлагоджувального стенда є мікросхема ЦАП КР572ПА1. Вона ввімкнена в режимі роботи 10 розрядного ЦАП з виходом по напрузі (напруга повної шкали вказується на платі розширення). Для спостереження вихідного сигналу з мікросхеми ЦАП необхідно під’єднати осцилограф до BNC роз’єму і замкнути перемичку J4. Цифровий код подається через лінії РА0-РА7 і РС0-РС7 мікросхеми паралельного ПП. Звернення до ЦАП відбувається як до байту зовнішньої пам’яті із адресою 0x8000 (0x8002 для двох старших бітів). Цап є однополярним, тобто не може відтворювати від’ємні значення напруги.

 

 

 

1.2 МІКРОКОНТРОЛЕР 8051

 

1.2.1 ПРОГРАМНА АРХІТЕКТУРА МІКРОКОНТРОЛЕРІВ 8051

 

Апаратна архітектура 8051 представлена ​​на рис. 2.

У мікроконтролера 8051 всі  обчислення виконуються в арифметико-логічному пристрої, що є частиною базового процесорного модуля (CPU). Обмін даними, що знаходяться в оперативній пам'яті мікроконтролера, а також зчитування команд виконується по внутрішній шині 8051. По цій шині здійснюється і обмін даними з портами вводу/виводу P1 - P3, з послідовним портом і таймерами. Внутрішній контролер шини формує необхідні сигнали (EA, ALE, PSEN, RD / WR) для роботи із зовнішньою пам'яттю програм і даних, а також сигнал скидання / початкової установки RST.

Рис. 2. Апаратна архітектура 8051

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

Швидкість виконання  операцій в системі на базі 8051 залежить від тактової частоти, з якою працює кристал і яка може варіюватися  від одиниць до декількох десятків мегагерц. В архітектуру класичного мікроконтролера 8051 були внесені деякі зміни (до двох існуючих таймерам доданий третій, а також розширена внутрішня пам'ять),які привели до створення пристрою 8052, найбільш популярного в даний час.

Мікроконтролера 8051 реалізований у вигляді однокристального пристрою з зовнішніми виводами, позначеними, як показано на рис. 3.

 

Рис. 3. Схема розміщення виводів МК 8051

Вхідні і вихідні  сигнали мікроконтролера 8051 мають  наступні призначення:

• XTAL і XTAL2 -входи підключення кварцового резонатора для роботи генератора тактової частоти мікроконтролера;

• PSEN - сигнал, що використовується при зверненні до зовнішньої пам'яті програм;

• ALE - вихідний сигнал дозволу фіксації адреси при зверненні до зовнішньої пам'яті програм / даних;

• EA - сигнал, що блокує роботу із внутрішньою пам'яттю;

• RST - сигнал загального скидання;

• P0 - P3 - висновки портів введення / виводу мікроконтролера;

• Vss і Vcc - висновки подачі напруги харчування.

Порти P0, P2 і P3 крім функціонування в режимі вводу/виводу дискретних сигналів можуть виконувати, залежно від конфігурації, і інші функції. Так, через порт P0 при зверненнях до зовнішньої пам'яті виставляються молодші 8 біт 16-розрядної адреси, а потім, у фазі запису/читання даних, через цей порт йде обмін даними. Порт P2 при зверненнях до зовнішньої пам'яті служить джерелом старших 8 біт 16-розрядної адреси.

Висновки порту P3 мікроконтролера 8051 мають такі альтернативні призначення:

• P3.0 - вхід прийому даних у послідовний порт;

• P3.1 - вихід передачі даних з послідовного порту;

• P3.2 - вхід зовнішнього переривання INT0;

• P3.3 - вхід зовнішнього переривання INT1;

• P3.4 - вхід управління таймером 0;

• P3.5 - вхід управління таймером 1;

• P3.6 - вихід сигналу запису в пам'ять;

• P3.7 - вихід сигналу читання з пам'яті.

Для використання альтернативних функцій порту P3 необхідно налаштувати  відповідним чином програмне  забезпечення системи 8051.

1.2.2 Структура внутрішньої пам’яті 8051

Мікроконтролера 8051 оперують двома типами пам'яті: пам'яттю програм  і пам'яттю даних. Пам'ять даних може бути реалізована як комбінація розміщеного на кристалі (резидентного або on $ chip) статичного ОЗУ і зовнішніх мікросхем пам'яті. Для простих апаратно-програмних конфігурацій із застосуванням 8051 буває досить резидентної пам'яті самого мікроконтролера.

Програмний код розміщується в пам'яті програм, яка фізично  може бути реалізована у вигляді  одноразово програмованого пристрою (EPROM), перепрограмованого пристрою (EEPROM) або  флеш $ пам'яті. Якщо для запису програм  використовується EPROM або EEPROM, то програмний код зазвичай розташовується в зовнішньому по відношенню до мікроконтролера пристрої. У переважній більшості сучасних мікроконтролерів 8051 пам'ять програм розташовується у флеш пам'яті, що знаходиться, так само як і резидентна пам'ять даних, на одному кристалі.

Пам'ять програм і  пам'ять даних фізично і логічно  розділені, мають різні механізми  адресації, працюють під управлінням  різних сигналів і виконують різні  функції.

Пам'ять програм може мати максимальний об'єм, рівний 64 Кб, що зумовлено використанням 16-розрядної шини адреси. У багатьох випадках ємність пам'яті програм, розміщеної на кристалі 8051, обмежена 4, 8 або 16 Кб. У пам'ять програм крім команд можуть записуватися константи, керуючі слова ініціалізації, таблиці перекодування вхідних та вихідних змінних і т.п. Доступ до вмісту пам'яті програм здійснюється за допомогою 16-бітової шини адреси. Сам адреса формується за допомогою якого програмного лічильника (PC), або регістра $ покажчика даних (DPTR). DPTR виконує функції базового регістра при непрямих переходах за програмою або використовується в операціях з таблицями.

Загальна структура  пам'яті мікроконтролера 8051 показана на рис. 4.

Рис. 4. Загальна структура пам'яті мікроконтролера 8051

Розглянемо більш докладно резидентну (on-chip) пам'ять мікроконтролера 8051.Резидентні пам'ять складається з двох частин: внутрішнього ОЗУ розміром 128 байт і пам'яті, що виділяється для регістрів спеціальних функцій (Special Function Registers, SFR). Внутрішнє ОЗУ має структуру,показану на рис. 5.


Рис. 5. Структура внутрішньої ОЗУ

Для доступу до даних, розміщених у внутрішньому ОЗП, використовується однобайтова адреса. Архітектура внутрішньої пам'яті даних 8051 дозволяє звертатися до окремих бітам даних у спеціально виділеної області внутрішнього ОЗУ,починаючи з адреси 0x20 і закінчуючи 0x2F. Таким чином, у зазначеному діапазоні адрес можна звертатися до 128-бітовим змінним за допомогою команд бітових операцій SETB і CLR. Бітові змінні нумеруються, починаючи з 0x0 і закінчуючи0x7F. Це не означає, що не можна звертатися до цих осередків пам'яті, як до байтів при звичайних операціях з пам'яттю.

У другому випадку  звернення виконується до байту  за адресою 0x20, а встановлення відповідних  бітів виконується операцією  «логічне АБО».

У внутрішньому ОЗП мікроконтролера 8051 виділено 4 банки регістрів загального призначення. При включенні мікроконтролера  банком за замовчуванням стає банк 0 (див. рис. 5).

При цьому регістру R0 відповідає адреса 0x00, регістру R1 - адреса 0x01, нарешті,регістру R7 при використанні банку 0 відповідає адреса 0x07. Якщо банком за замовчуванням стає, наприклад, банк 1, то регістру R0 буде відповідати адресу0x08, регістру R1 - адреса 0x09 і регістру R7 - адреса 0x0F.

До адресного простору внутрішнього ОЗУ починаючи з адреси 0x80 приєднуються і адреси регістрів спеціальних функцій (рис. 6).

Регістри спеціальних функцій (Special Function Registers, SFR) призначені для управління ходом обчислювальних операцій, а також відповідають за ініціалізацію, настройку і управління портами вводу / виводу, таймерами, послідовним портом. Крім того, регістри спеціальних функцій містять інформацію про пріоритети переривань, а також біти управління дозволом переривань. Регістри спеціальних функцій із зазначенням їх призначення перераховані в табл. 1

Рис. 6. регістри спеціальних функцій

 

 

Таблиця 1. Регістри спеціальних  функцій

Позначення

Опис

Адреса

А

Акумулятор

0Е0Н

В

Регістр-розширювач акумулятора

0F0H

PSW

Слово стану програми

0D0H

SP

Регістр-покажчик стека

81H

DPTR

Регістр-покажчик даних (DPH)

83H

(DPL)

82H

P0

Порт 0

80H

P1

Порт 1

90H

P2

Порт 2

0A0H

P3

Порт 3

0B0H

IP

Регістр пріоритетів  переривань

0B8H

IE

Регістр маски переривань

0A8H

TMOD

Регістр режиму таймера/лічильника

89H

TCON

Регістр управління/статусу  таймера

88H

TH0

Таймер 0 (старший байт)

8CH

TL0

Таймер 0 (молодший байт)

8AH

TH1

Таймер 1 (старший байт)

8DH

TL1

Таймер 1 (молодший байт)

8BH

SCON

Регістр управління прийомопередатчиком

98H

SBUF

Буфер прийомопередатчика

99H

PCON

Регістр управління потужністю

87H


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

1.2.3 Система переривань

Робота мікроконтролера 8051 в системах реального часу була б неможлива без обробки подій, що генеруються зовнішніми пристроями, і установки тимчасових залежностей  між подіями в системі. Саме цим  цілям і служить логіка обробки  переривань 8051, функціональна схема якої показана на рис. 7.

Класичний мікроконтролер 8051 має 5 джерел переривань: два зовнішніх переривання, ініційованих сигналами на входах, - INT0 (висновок P3.2) і INT1(висновок P3.3); два  переривання таймерів - 0 і 1; переривання  послідовного порту(див. рис. 7). Послідовність виконання двох і більше переривань у випадку їх одночасного надходження визначається їх пріоритетами.

 

Рис. 7. Структура переривань 8051

Якщо припустити, що всі  переривання мають однакові установки  пріоритету, то за одночасного виникнення декількох переривань вони обробляються так, як показано на рис. 2. Наприклад, переривання INT0 має найвищий пріоритет (йому відповідає умовне позначення 1 на рис. 2), переривання таймера 0 має нижчий пріоритет у порівнянні з INT0 (позначено цифрою 2) і т.д. Найнижчий пріоритет у пристрої 8051 має переривання послідовного порту (позначено цифрою 5 на малюнку). Для мікроконтролера 8052 найнижчим пріоритетом має переривання таймера 2 (позначено цифрою 6). Для зміни пріоритетів виконання переривань слід встановлювати спеціальні флаги в регістрі пріоритетів IP.

Мікроконтролер реагує на переривання, тільки якщо буде встановлено флаг відповідного переривання в регістрі TCON.

Будь-яке з переривань буде викликано  тільки в тому випадку, якщо його виклик вирішено шляхом установки відповідних бітів у регістрі IE.

Розглянемо, як викликаються і обробляються зовнішні переривання INT0 і INT1 в мікроконтролері 8051. Зовнішні переривання INT0 і INT1 можуть бути викликані рівнем або переходом  сигналу з 1 в 0 на входах мікроконтролера в залежності від значень керуючих бітів IT0 і IT1 в регістрі TCON. Якщо відповідний біт ITx (x = 0,1)встановлено, то переривання викликається по перепаду 1-0 на відповідному вході INTx мікроконтролера. Якщо ці біти скинуті, то переривання INTx викликається при наявності низького рівня на відповідному вході.

При виникненні зовнішнього переривання INTx встановлюється відповідний флаг IEx в регістрі TCON, який ініціює виклик відповідної підпрограми обслуговування або,по-іншому, програми обробника переривання. Скидання флага IEx виконується апаратно у випадку, якщо переривання було викликано перепадом сигналу на вході INTx. Якщо ж вхід переривання INTx налаштований на спрацювання за низьким рівнем, то про стан флага IEx повинна піклуватися програма $ обробник даного переривання.

Зовнішні переривання INT0 і INT1 можуть (якщо дозволені) викликатися одним  з трьох способів:

  • установкою низького рівня сигналу на відповідному виводі мікроконтролера;
  • програмною установкою бітів P3.2 та / або P3.3;
  • установкою флагу переривання IE0 або IE1.

Переривання від таймерів викликаються при переповненні регістрів  таймера (TH0 - TL0 для таймера 0, TH1 - TL1 для  таймера 1 і TH2 - TL2 для таймера 2). Для  всіх трьох таймерів при досягненні значень 0xFF в THx - TLx (x = 1, 2, 3) наступний  інкремент таймера викличе установку флага TFx, що ініціює переривання. Флаги переривання таймерів 0 і 1 розміщені в регістрі TCON, при цьому TF0 відповідає біту TCON.5, а TF1 - биту TCON.7.

Флаги запитів переривання  від таймерів TF0 і TF1 скидаються автоматично  при передачі управління підпрограмі обслуговування.

Переривання послідовного порту викликається установкою одного з флагів - TI або RI (див. рис. 2). Флаги запитів переривання RI і TI встановлюються логікою послідовного порту апаратно, але скидатися повинні програмою. Переривання можуть бути викликані або скасовані програмою, тому що всі перераховані флаги програмно доступні. Обмін даними через послідовний порт буде розглянуто далі в цій книзі, тому зупинятися більш докладно на особливостях обробки переривань послідовного порту ми поки не будемо.

Всі операції з обробки  переривань виконує логіка переривань мікроконтролера. Флаги переривань опитуються в кожному машинному  циклі, при цьому аналіз пріоритетів  переривань виконується протягом наступного машинного циклу. Логіка переривань апаратно сформує дальній виклик LCALL відповідної програми $ обробника переривання, якщо тільки цей виклик не блокується з однієї з таких причин:

• в даний момент обслуговується запит переривання з пріоритетом рівним або більш високим, ніж поточний;

• поточний машинний цикл не є останнім у циклі виконуваної команди;

• в даний момент виконується команда RETI або будь-яка команда, яка звертається до одного з регістрів - IE або IP.

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

Паралельні порти вводу / виводу даних мікроконтролера 8051 має  чотири 8-бітових порту введення / виводу, позначених P0- P3 і призначених для введення або виведення інформації як у формі байта, так і побитово.

Кожен порт містить керований регістр-клямку, вхідний буфер і вихідний драйвер. Узагальнена функціональна схема  порту введення / виводу показана на рис. 8.

 

Рис. 8. Узагальнена функціональна схема порту введення / виводу

Порт P0 є двонаправленим, а порти P1 - P3 - квазідвунаправленими, при цьому кожна лінія портів може бути використана незалежно  від інших для введення або  виведення. По сигналу скидання в  регістри-засувки всіх портів автоматично записуються одиниці, що переводить вихідні лінії портів в режим введення. Всі порти можуть бути використані для організації введення / виводу інформації з двонаправленим лініях передачі.

Однак порти P0 і P2 не можуть бути використані для цієї мети у випадку, якщо система має зовнішню пам'ять, зв'язок з якою організовується через загальну поділювану шину адреси / даних, що працює в режимі тимчасового мультиплексування. Схема функціонування однієї лінії введення / виводу порту P0 показана на рис. 4.


Рис. 9. Схема функціонування однієї лінії введення / виводу порту P0

Вихідні драйвери порту P0 реалізовані з відкритим стоком, як це видно з рис. 4, тому напряму використовувати цей порт для введення / виведення даних не можна. Для роботи порту P0 в режимі введення / виведення даних потрібно до виводів порту приєднати резистори номіналом 10 К (рис. 10).

Рис. 10. Використання ліній Р0 для вводу/виводу

Для читання порту P0 потрібно спочатку записати в нього одиниці, а потім прочитати вхідне значення. Апаратна архітектура портів P1 - P3 дещо відрізняється від тієї, що реалізована для P0. Функціональна схема однієї лінії введення / виводу портів P1 - P3 показана на рис.11.

Рис. 11. Функціональна схема однієї лінії введення / виводу портів P1 - P3

Вихідні каскади портів P1 - P3 використовують внутрішні підтягують резистори, з'єднані зі стоком вихідних транзисторів, тому необхідність у  зовнішніх резисторах, як у випадку  порту P0, відпадає. Вихідні драйвери портів 0 і 2, а також вхідний буфер  порту 0 використовуються при зверненні до зовнішньої пам'яті. При цьому через порт 0 в режимі тимчасового мультиплексування спочатку виводиться молодший байт адреси, а потім видається або приймається байт даних. Через порт 2 виводиться старший байт адреси в тих випадках, коли розрядність адреси дорівнює 16 біт.

Порти P1, P2 і P3 можуть використовуватися, так само як і порт P0, для введення/виведення  даних, при цьому не потрібно встановлювати  підтягують резистори, як це робиться для порту P0. Як і для порту P0, при читанні даних слід записати у відповідні розряди портів P1, P2 і P3 одиниці.

Усі висновки порту P3 можуть бути використані для реалізації альтернативних функцій. Ці функції  можуть бути задіяні шляхом запису одиниці у відповідні біти регістра-засувки (P3.0 - P3.7) порту P3.

Звернення до портів введення / виведення можливо з використанням  команд, що оперують з байтом, окремим  бітом або з довільною комбінацією  бітів. При цьому в тих випадках, коли порт є одночасно і операндом  і місцем призначення результату, пристрій управління автоматично реалізує спеціальний режим, який називається «читання-модифікація-запис». Цей режим обігу передбачає введення сигналів не з зовнішніх висновків порту, а з його регістра $ засувки, що дозволяє виключити неправильне зчитування раніше виведеної інформації. Цей механізм звернення до портів реалізований в командах:

• ANL - «логічне І», наприклад: ANL P1, А;

• ORL - «логічне АБО», наприклад: ORL P2, А;

• XRL - «виключає АБО», наприклад: XRL Р3, А;

• JBC - перехід з подальшим очищенням біта, наприклад: JBC P1.1, LABEL;

• CPL - інверсія бита, наприклад: CPL Р3.3;

• INC - інкремент порту, наприклад: INC P2;

• DEC - декремент порту, наприклад: DEC P2;

• DJNZ - декремент порту і перехід, наприклад: DJNZ P1, LABEL;

• MOV PX.Y, C - передача біта перенесення C в біт Y порту X;

• SET PX.Y - установка біта Y порту X;

• CLR PX.Y - скидання біта Y порту X.

При роботі з портами  введення/виводу мікроконтролера 8051 необхідно  враховувати, що вихідні драйвери цих  портів можуть забезпечити максимальний струм в навантаженні порядку декількох міліампер, тому при підключенні потужнострумових вихідних навантажень слід використовувати буферні схеми.

1.3 ЦИФРОВИЙ АВТОМАТ

1.3.1 ЩО ЯВЛЯЄ  СОБОЮ ЦИФРОВИЙ АВТОМАТ

Цифровий автомат представляє  собою обчислювальний пристрій або вузол, що містить елементи пам'яті і виконує дискретні перетворення над інформацією, що зберігається в автоматі. Цифровий автомат здатний переходити з одного стану в інший в результаті вхідних інформаційних впливів і видавати вихідну інформацію, що залежить від свого стану і вхідного впливу.

Складність цифрового  автомата в основному визначається числом станів та обсягів вхідних  впливів. Чим більше число станів автомата, тим більше він повинен  містити запам'ятовуючих елементів  для зберігання та ототожнення своїх станів. Якщо при проектуванні обчислювальних пристроїв ставиться завдання аналізу та синтезу тільки логічних, в тому числі арифметичних, перетворень без розгляду форм і способів зберігання вихідних даних і результатів, то таке завдання вирішується на основі булевих перетворень і використання тільки комбінаційних схем. Таким чином, проблема аналізу і синтезу цифрових автоматів є більш загальною, що включає в себе питання аналізу та синтезу, як комбінаційних схем, так і елементів пам'яті.

Програмування цифрового автомату