Фрагменти програм з використанням логічних команд

1. Логічне „І”

MOV R1, #01010101B; запис числа в регістр

MOV A, #10101010B; запис числа в акумулятор

ANL A, R1; логічне „і” акумулятора і регістра. Результат 00000000В.

2. Логічне „виключаюче або”

MOV R1, #01010101B; запис числа в регістр

MOV A, #10101010B; запис числа в акумулятор

ХRL A, R1; логічне „ виключаюче або”. Результат 11111111В.

Фрагменти програм з використанням команд зсуву:

MOV A, #00001111B; запис числа в акумулятор

SWAP A; обмін тетрадами в акумуляторі. Результ 11110000В.

RL A; зсув вліво. Результат 1110001.

4. ПРОГРАМУВАННЯ ПАРАЛЕЛЬНИХ ПОРТІВ

Мікроконтролер АТ89С51 має чотири 8 - бітні паралельні двунаправлені порти P0 - P3, які дозволяють вводити і виводити цифрові сигнали. На рис.4.1,а – 4.1, д зображено бітові структурні схеми цих портів.

а) Бітова структура порту Р0 б) Бітова структура порту Р1

с) Бітова структура порту Р2 д) Бітова структура порту Р3

Рис.4.1

Кожен з портів містить восьмирозрядний регістр, що має байтову і бітову адресацію для установки (запис '1') або скидання (запис '0') розрядів цього регістра за допомогою програмного забезпечення. Виходи цих регістрів з'єднані з драйверами портів. Кожен розряд регістра порту є D-тригером. Дані з внутрішньої шини мікроконтролера записуються в регістр по сигналу "запис". Вихід "Q" D-тригера передається до внутрішньої шини за сигналом "читання". Значення сигналу безпосередньо з зовнішнього виводу порту зчитується за сигналом "читання виводу".

4.1. Ініціалізація портів

При записі в розряд SFR- регістра порту логічного «0» вихідний транзистор драйвера відкривається і на виводі мікросхеми з'являється низький потенціал, змінити який ззовні неможливо. Якщо в цей розряд записати логічну «1», то вихідний транзистор драйвера закривається і на виводі мікросхеми з'являється високий потенціал. Цей потенціал можливо змінити зовнішніми пристроями на нульовий, наприклад, замиканням цієї ніжки мікросхеми на корпус. В цьому випадку, логічний стан, що зчитується мікроконтролером, буде відповідати стану на виході зовнішнього пристрою. Тому, перед тим як здійснити введення інформації по якомусь виводу порту, відповідний розряд SFR-регістра порту необхідно налаштувати на режим введення - записати в нього логічну «1».

При ініціалізації ліній порту на режим передавача необхідно у відповідні розряди SFR-регістру порту записати значення, що відповідають вихідним значенням передавача. Наприклад, якщо необхідно встановити на лінії порту високий рівень напруги, то до відповідного розряду SFR- регістру цього порту необхідно записати логічну «1».

З тієї ж причини при налаштуванні виводів порту на виконання альтернативних функцій у відповідні розряди повинні бути записані логічні '1'.

При скиданні мікроконтролера в усі розряди SFR- регістрів портів записуються логічна «1», тобто всі порти переходять у режим приймача.

Окрім роботи в якості звичайного порту введення - виведення, порт Р3 може виконувати ряд додаткових (альтернативних) функцій.

Кожна лінія порту Р3 має індивідуальну альтернативну функцію перелік яких приведено в табл. 4.1.. Лінії порту Р3 можуть виконувати альтернативні функції тільки в тому випадку, якщо у відповідні цим лініям розряди SFR- регістра P3 записані логічні «1».

Таблиця 4.1.

Символ біту Позиція Призначення
RD P3.7 Читання. Активний сигнал низького рівня формується апаратно при зверненні до ВПД
WR P3.6 Запис. Активний сигнал низького рівня формується апаратно при зверненні до ВПД
T1 P3.5 Вхід таймера/лічильника ТС1
T0 P3.4 Вхід таймера/лічильника ТС0
INT1 P3.3 Вхід запиту переривання INT1.
INT0 P3.2 Вхід запиту переривання INT0.
TXD P3.1 Вихід передавача послідовного порту. Вихід синхронізації в режимі регістра зсуву.
RXD P3.0 Вхід приймача послідовного порту. Введення/вивід даних в режимі регістра зсуву.

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: