Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КЛ_Мікропроцесорні пристрої.docx
Скачиваний:
4
Добавлен:
01.07.2025
Размер:
1 Мб
Скачать
☆
    1. Периферійні присторої омк

      1. Порти введення/виводу

Порти Р0…Р3 призначені для уведення або виводу інформації і забезпечують обмін із зовнішніми пристроями: пам'яттю програм і даних, контролерами різного призначення, периферійними пристроями.

З боку центрального процесора ці порти подаються у виді відповідних регістрів спеціальних функцій P0…P3. У ці регістри процесор може записувати вихідну інформацію або зчитувати з них вхідні дані.

Кожний з портів складається з 8-розрядного регістра-засувки (Ргз), вихідних транзисторів Т1 і Т2, вхідних ланцюгів і схем D1, D2 з відкритим стоком. Схемотехніка портів трохи відрізняється, тому що вони виконують різні функції. Як приклад розглянемо структуру одного біта порту Р0 (рис. 3.8).

При читанні входу порту Р0.X дані через конъюнктор D1 передаються на внутрішню шину даних (ВШД), що організована як

«монтажне АБО». Якщо у відповідний розряд Ргз записана «1», то дані з входу порту без пошкодження передаються до приймача. Якщо біт РгЗ=0, то у відповідний разряд приймача буде записаний «0» незалежно від значення вхідного сигналу.

При записі інформації в порт дані записуються в РгЗ і виводяться через транзистор Т1 на вихід порту.

Рисунок 3.8 – Структура порта Р0

Звертання до портів можливе тільки за прямою адресою.

Усі розряди портів знаходяться в бітовому просторі.

При роботі в режимі мікроконтролера порти односпрямовані. Кожен біт порту може бути налагоджений як на введення (PX.Y=1), так і на вивід. За скиданням в Ргз записується код 0FFh, тобто порти Р0…Р2 налаштовуються на введення, а Р3 – на виконання системних функцій. У режимі мікропроцесора порт Р0 – двонаправлений.

Для читання даних з порту або регістра засувки використовуються різні команди. Читання Ргз здійснюється командами «читання – модифікація – запис», при виконанні яких команда зчитує стан Ргз, при необхідності модифікує отримане значення і записує результат назад у Ргз:

ORL Px, A ; XRL Px, A ANL Px, A INC Px DEC Px

DJNZ Px, rel

Для читання окремих бітів використовуються команди: JBC Px.y, SETB Px.y

CPL Px.y, MOV Px.y, C

В усіх випадках, коли операндом і регістром призначення є порт чи біт порту, команди зчитують інформацію з виходів РгЗ, а не з зовнішніх

контактів виводів порту. При читанні регістра-засувки дані передаються через D2.

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

MOV (A, @Ri, Rn, ad), Px ADD A, Px

Читання інформації з виходів Ргз, а не з зовнішніх контактів, дозволяє виключити в ряді випадків неправильну інтерпретацію рівня напруги на виводах порту. Наприклад, при з'єднанні виводу порту з базою n-p-n транзистора і подачі лог. 1, транзистор відкривається і читання стану зовнішнього виводу покаже лог. 0, тому що на контакті порту присутнія напруга база-емітер транзистора (0,7 В). Читання ж Ргз підтвердить подачу лог. 1.

Запис даних у порт здійснюється командами: MOV Px, (A, Rn, @R0, #d).

Порти Р0, Р1, Р2, Р3 залежно від особливості застосування можуть реалізувати різні функції (табл. 3.4).

Таблиця 3.4 – Специфікація ліній портів

Ім'я порту

Альтернативна функція

Адреса регістрів даних

P0

Мультиплексування шини адреса/дані (при використанні зовнішньої пам'яті або даних програм)

80h

P1

-

90h

P2

Шина адреси – старший байт (при використанні зовнішньої пам'яті або даних програм)

A0h

P3

Кожна лінія специфікована індивідуально: P3.0 – вхід приймача послідовного порту RXD;

P3.1 – вихід передавача послідовного порту TXD; P3.2 – вхід зовнішнього запиту INT0;

P3.3 – вхід зовнішнього запиту INT1; P3.4 – зовнішній вхід таймера T0; P3.5 - зовнішній вхід таймера T1; P3.6 – сигнал шини керування WR; P3.7 – сигнал шини керування RD.

Примітка. Активним рівнем сигналів WR, RD є «0». Використовуються при адресації зовнішньої пам'яті даних

B0h

При роботі з зовнішньою пам'яттю порт Р0 є системним портом, через який у режимі з поділом часу передаються молодший байт адреси і

дані. Поява молодшого байта адреси супроводжується сигналом ALE, за яким він повинний бути зафіксований у зовнішньому регістрі.

У системному режимі керування обміном через порт Р0 виконується командами MOVX, MOVC.

Якщо Р0 використовується як порт загального призначення, то до виходу порту повинний бути приєднаний зовнішній «підтягуючий» резистор від джерела живлення +5 В, тому що в цьому режимі транзистор Т1 закривається.

На відміну від Р0 порти Р1…Р3 мають убудоване навантаження, що виключає необхідність у зовнішніх резисторах. Порт Р2 виводить старший байт адреси при роботі в системному режимі. Особливістю порту Р2 є можливість мультиплексування на вихід умісту Ргз або старшого байта адреси. При роботі в режимі адресної шини вміст Ргз зберігається і надходить на вивод порту в тих машинних циклах, коли немає звертання до зовнішньої пам'яті. При звертанні до зовнішньої пам'яті на вихід порту виводиться інформація з регістра адреси DPTR чи з програмного лічильника РС за командами MOVC і MOVX. Виключення складають команди MOVX A, @Ri, і MOVX @Ri, A, при виконанні яких на виході знаходиться вміст регістра-засувки.

Навантажувальна здатність Р0 - два входи ТТЛ, в інших - один. Р1 - порт загального призначення й особливостей не має.

Р3 - при записі в Рг3 «1» виконує системні функції. Специфікація Р3 наведена в таблиці 3.4. Якщо в біт Ргз порту Р3 записаний «0», то на виході порту фіксується «0».

При використанні порту Р3 необхідно враховувати функціональні особливості кожного входу. T1, T0, INT1, INT0 – вхідні лінії. Якщо не використовуються зовнішні переривання і/або лічильники, то призначення цих ліній визначає користувач. RD, WR - вихідні лінії, сигнали на яких формуються тільки при виконанні команд MOVX, і так далі.

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

Звертання до зовнішньої пам'яті даних вимагає двох машинних циклів. Тому другий імпульс ALE усередині машинного циклу при звертанні до зовнішньої пам'яті даних не генерується.

Часова діаграма циклу читання із зовнішньої пам’яті даних показана на рисунку 3.9.

Рисунок 3.9 – Цикл читання із зовнішньої пам’яті даних

За зрізом сигналу ALE молодший байт адреси, що надходить з виводів порту P0, повинний бути зафіксований у зовнішньому регістрі- засувці. Старший байт адреси зберігається на виводах порту P2 протягом усього циклу і не вимагає зовнішньої фіксації. Дані зчитуються у фазі P1 стану S3 поточного машинного циклу. До цього моменту вони повинні бути свідомо встановлені на шині даних.

Часова діаграма циклу запису у зовнішню пам’ять даних показана на рисунку 3.10.

Рисунок 3.10 – Цикл запису у зовнішню пам’ять даних

При звертанні до внутрішньої пам'яті даних сигнали RD і WR не виробляються.

Для звертання до зовнішньої пам'яті програм використовується механізм, відмінний від механізму звертання до пам'яті даних. Для читання пам'яті програм використовується сигнал PSEN. При цьому сигнали ALE і PSEN виробляються двічі за машинний цикл.

Часова діаграма циклу читання із зовнішньої пам’яті програм показана на рисунку 3.11.

Рисунок 3.11 – Цикл читання із зовнішньої пам’яті програм

Так само, як і у випадку пам'яті даних, молодший байт адреси повинний бути зафіксований у зовнішньому регістрі за зрізом сигналу ALE. Байти програми зчитуються у фазі P1 станів S4 і S1 поточного машинного циклу. При звертанні до внутрішньої пам'яті програм сигнал PSEN не генерується.

При використанні сигналу ALE як джерела синхросигналів необхідно враховувати особливості його формування для різних машинних циклів.

Робота із зовнішньою пам'яттю програм дозволена лише при низькому рівні на вході EA. При цьому мікроконтролер вважає, що вся пам'ять програм розташована в зовнішній пам'яті. При високому рівні сигналу на цьому вході мікроконтролер реалізує цикл звертання до зовнішньої пам'яті програм тільки у випадку, якщо необхідна адреса виходить за межі внутрішнього сегмента пам'яті програм. Якщо в мікросхемі «прошитий» біт таємності, то рівень сигналу на вході EA фіксується при скиданні мікроконтролера у внутрішній засувці і подальша його зміна не впливає на роботу системи.