Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
На колоквіум мікропроцесори.DOC
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
642.05 Кб
Скачать

2.2.9. Робочий регістр w

Робочий регістр W містить другий операнд в двохоперандних командах і підтримує внутрішню передачу даних.

2.2.10. Порти вводу-виводу

Регістри вводу-виводу можуть керуватися, як будь-які інші регістри. Проте, команда "читання" (наприклад MOVF 6, W) завжди зчитує фактичний рівень сигналу на ніжці порту, незалежно від того, запрограмований цей розряд порту на ввід чи на вивід. Після сигналу "Скид" всі порти вводу-виводу встановлюються на "ввід" (електрично еквівалентно третьому стану), а керуючі регістри TRISA, TRISB та TRISC встановлюються в одиниці (конфігурація на ввід).

Для того, щоб сконфігурувати деякі лінії порту на вивід, необхідно встановити відповідні біти у потрібному TRIS регістрі в "0". Це можна робити командою "TRIS f".

Порт А є 4-бітним портом вводу-виводу. Використовуються тільки молодші 4 біти (RA0 – RA3). Старші 4 біти – завжди читаються як нулі.

Порт B є 8-бітним портом вводу-виводу.

Порт С для PIC 16C55/C57: 8-бітний порт вводу-виводу. Для PIC16C54/C56: внутрішній регістр загального призначення пам'яті даних (не порт).

Схема одного розряду (лінії) порту вводу-виводу наведена на рис. 2.7.

При операціях вводу порти не защепуються. Вхідний сигнал повинен бути присутній поки іде процес читання (наприклад, MOVF 6, W). При операціях виводу порти защіпуються і зберігають значення до тих пір, поки не будуть перезаписані. На рис. 2.7 не показані діоди, що захищають ніжку порту від зовнішніх імпульсів великої напруги. Вони обмежують імпульсну напругу на ніжці значеннями від Vss (0,6 В) до Vdd (+ 6 В).

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

Проблеми при організації двонаправлених портів. Деякі команди виконуються в режимі читання-модифікація-запис. Наприклад, команди BCF і BSF повністю читають порт, модифікують один біт і виводять результат назад. Тут необхідна обережність. Наприклад, команда BSF для біта 5 регістра f6 (порт В) спочатку зчитує всі 8 бітів. Після цього виконуються дії над бітом 5 і нове значення байта повністю записується у вихідні защіпки. Якщо другий біт регістра f6 використовується в якості двонаправленого вводу-виводу (скажімо біт 0) і в даний момент він визначений як вхідний, вхідний сигнал на цій ніжці буде зчитаний і записаний назад у вихідну защіпку цієї ж ніжки, стираючи її попередній стан. До тих пір, поки ця ніжка залишається в режимі вводу, жодних проблем не виникає. Проте, якщо лінія 0 переключиться пізніше в режим виводу, її стан буде невизначеним.

На вивід, що працює в режимі виходу, не повинні підключатися зовнішні навантаження за схемою "монтажне І" чи "монтажне АБО". Великі струми, що виникають при цьому, можуть пошкодити кристал.

Рис. 2.7. Схема одного розряду порту вводу-виводу PIC 16C5X

Послідовне звертання до портів вводу-виводу. Запис в порт вводу відбувається наприкінці командного циклу. Але при читанні, дані повинні бути стабільні на початку командного циклу. Будьте уважні в операціях читання, що відбуваються відразу за записом в той же порт. Тут потрібно враховувати інерційність встановлення напруги на виводах. Може знадобитись програмна затримка, щоб напруга на ніжці (залежить від навантаження) встигла стабілізуватися до початку виконання наступної команди читання.