, оскільки ці висновки також використовуються периферійними пристроями мікроконтролера.
Звернення до портів проводиться через регістри введення/виведення, причому під кожен порт в адресному просторі введення/виведення зарезервовано по 3 адреси. За цими адресами розміщуються три регістра: регістр даних порту PORTx, регістр напрями даних DDRx і регістр висновків порту PINx. Розряди цих регістрів мають назви: Рх7.РхО - для регістрів PORTx, DDx7.DDxO - для регістрів DDRx і PINx7.PINxO - для регістрів PINx. Дійсні назви регістрів (і їх розрядів) виходять підстановкою назви порту замість символу В«хВ», відповідно для порту А регістри називаються PORTA, DDRA, PINA, для порту В - PORTB, DDRB, PINB і т.д. При скиданні мікроконтролера регістри DDRx і PORTx очищаються, а всі висновки портів після скидання встановлюються в третій стан.
Слід зауважити, що В«регістриВ» PINx насправді регістрами не є, за цими адресами здійснюється доступ до фізичним значенням сигналів на висновках порту. Відповідно, вони доступні тільки для читання, тоді як регістри PORTx і DDRx доступні і для читання, і для запису. А в мікроконтролері АТ90С8534 регістр висновків порту взагалі відсутній, бо єдиний порт цієї моделі є тільки портом виводу.
Порядковий номер виводу порту відповідає, зрозуміло, порядковому номеру розряду регістрів цього порту. Тому якщо розрядність порту менше восьми, в регістрах порту використовується відповідне число молодших розрядів. Незадіяні старші розряди регістрів доступні тільки для читання і завжди містять В«0В».
Таким чином, запис у порт означає запис необхідного стану для кожного виводу порту до відповідного регістру даних порту PORTx. А читання стану порту виконується читанням або регістра даних порту PORTx, або регістра висновків порту PINx. При читанні регістра висновків порту PINx відбувається зчитування логічних рівнів сигналів, присутніх на висновках порту. А при читанні регістра даних порту PORTx відбувається зчитування даних, що знаходяться в регістрі-засувці порту. Причому сказане справедливо як для вхідних, так і для вихідних контактів.
Порти мікроконтролера мають всього дві можливості по конфігурації:
завдання напрямку передачі даних (вхід або вихід);
підключення/відключення внутрішнього підтягуючого резистора. Напрямок передачі даних визначається вмістом регістра передачі даних DDRx. Якщо розряд DDRx цього регістра встановлений в В«1В», відповідний х-й висновок порту є виходом. Якщо ж розряд DDRx цього регістра скинутий в В«0В», відповідний висновок порту є входом.
Управління підтягує резистором здійснюється за допомогою регістра даних порту PORTx. Якщо розряд Рхn регістра PORTx встановлений в В«...