Порти вводу-виводу
Кожен порт мікроконтролерів складається з певного числа висновків, через які мікроконтроллер може здійснювати прийом і передачу цифрових або аналогових сигналів. rn Вихідні буфер всіх портів, маючи симетричні навантажувальні характеристики, забезпечують високу навантажувальні здатність при будь-якому рівні сигналу. Навантажувальні здатності достатньо для безпосереднього управління світлодіодними індикаторами. rn Вхідні буфер всіх висновків побудовані за схемою тригери Шміт. Для всіх входів є можливість підключення внутрішнього підтягує резистора між входом і шиною живлення VCC. rn Звернення до портів здійснюється через регістри вводу-виводу. Під кожен порт в адресний простір вводу-виводу зарезервовано по три адреси, за якими розміщені наступні регістри: регістр даних порту PORTx, реєстр напрямки даних DDRx і регістр висновків порту PINx. Оскільки з допомогою регістрів PINx здійснюється доступ до фізичних значень сигналів на висновках порту, вони доступні тільки для читання, тоді як інші два регистра доступні як для читання, так і для запису. rn Порядковий номер виводу порту відповідає порядковому номеру розряду регістрів цього порту. rn Розряд DDxn регістру DDx визначає напрямок передачі даних через контакт вводу-виводу. Якщо цей розряд встановлений у «1», то n-й вивід порту є виходом, якщо ж скинутий в «0» - входом. rn Розряд PORTxn регістру PORTx виконує подвійну функцію. Якщо висновок функціонує як вихід, цей розряд визначає стан виведення порту. Якщо розряд встановлений у «1» на виведенні встановлюється напруга високого рівня. Якщо розряд скинутий в «0» на виведенні встановлюється напруга низького рівня. rn Якщо висновок функціонує як вхід, розряд PORTxn визначає стан внутрішнього підтягує резистора для даного виводу. При встановленні розряду PORTxn в «1» підтягує резистор підключається між виведенням мікроконтролера і шиною живлення. rn Управління підтягує резистором в моделях сімейства Mega здійснюється на двох рівнях. Загальне управління (для всіх висновків портів) здійснюється розрядом PUD (2-й розряд регістра спеціальних функцій SFIOR). rn Якщо розряд PUD скинутий в «0», стан підтягує резисторів буде визначатися станом розрядів PORTxn для кожного входу порту. Якщо ж розряд PUD встановлений у «1», підтягує резистори відключаються від всіх висновків мікроконтролера. rn Всі можливі сполучення станів керуючих розрядів і відповідно конфігурації висновків портів зведені в табл. 26.2. rn Таблиця 26.2. rn Конфігурації висновків портів rn rn rn rn rn DDxn rn | rn rn PORTxn rn | rn rn PUD * rn (в SFIOR) rn | rn rn Функція rn виводу rn | rn rn резистор rn | rn rn Примітки rn | rn rn rn rn 0 rn | rn rn 0 rn | rn rn Х rn | rn rn Вхід rn | rn rn Вимкнений rn | rn rn Третє стан (Hi-Z) rn | rn rn rn rn 0 rn | rn rn 1 rn | rn rn 0 rn | rn rn Вхід rn | rn rn Підключений rn | rn rn При підключенні навантаження між виведенням і загальним проводом, висновок є джерелом струму rn | rn rn rn rn 0 rn | rn rn 1 rn | rn rn 1 rn | rn rn Вхід rn | rn rn Вимкнений rn | rn rn Третє стан (Hi-Z) rn | rn rn rn rn 1 rn | rn rn 0 rn | rn rn Х rn | rn rn Вихід rn | rn rn Вимкнений rn | rn rn Висновок встановлений в «0» rn | rn rn rn rn 1 rn | rn rn 1 rn | rn rn Х rn | rn rn Вихід rn | rn rn Вимкнений rn | rn rn Висновок встановлений у «1» rn | rn rn rn rn Стан виводу мікроконтролера (незалежно від установок розряду DDxn) може бути отримано шляхом читання розряду PINxn регістру PINx. rn Слід зазначити, що переважна більшість контактів вводу-виводу всіх мікроконтролерів мають додаткові функції і можуть використовуватися різними периферійними пристроями мікроконтролерів. При цьому можливі дві ситуації. В одних випадках користувач повинен самостійно задавати конфігурацію виводу, а в інших - висновок конфігурує автоматично при включенні відповідного периферійного пристрою.
|