- •Конспект лекцій з дисципліни “Мікропроцесорні пристрої”
- •1 Основи теорії мікропроцесорних пристроїв
- •Класифікація мікропроцесорів. Варіанти архітектури
- •Базова структура мікропроцесорної системи
- •Основні характеристики мп
- •Типова структура мікропроцесора
- •Система команд мп і режими адресації
- •Організація передачі інформації в мпс. Інтерфейс
- •1.6.1 Способи передачі інформації
- •Методи обміну інформацією в мікропроцесорній системі
- •2 Мікроконтролери
- •Структура мк
- •Процесорне ядро мк
- •Резидентна пам'ять мк
- •Порти уведення/виводу
- •Таймери і процесори подій
- •Аналогово-цифрові й цифро-аналогові перетворювачі
- •Мінімізація споживання енергії в мп-системах
- •Моніторинг напруги живлення мк
- •Апаратні і програмні рішення по підвищенню надійності роботи мк
- •Контролери Intel mcs-51
- •3.1 Структурна організація Intel 8051
- •3.1.1 Арифметично-логічний пристрій
- •Зовнішня пам'ять
- •Пристрій керування і синхронізації
- •Програмна модель омк
- •Система команд Intel 8051
- •Арифметичні операції:
- •Логічні команди:
- •Бітові команди:
- •Периферійні присторої омк
- •Порти введення/виводу
- •Звертання до портів можливе тільки за прямою адресою.
- •Лічильники/таймери
- •Послідовний порт
- •Примітка
- •Мікроконтролер pic16f877
- •Характеристика мікроконтролера
- •Cтруктурна схема мікроконтролера pic16f877
- •Організація пам'яті
- •Пам’ять програм
- •Організація пам'яті даних
- •Регістр стану status
- •Лічильник команд
- •Порти введення/виводу
- •Регістри portа і trisa
- •Регістри portb і trisb
- •Регістри portc і trisc
- •Регістри portd і trisd
- •Регістри porte і trise
- •Таймери
- •Модуль таймера tmr0
- •Модуль таймера tmr1
- •Модуль таймера tmr2
- •Модуль 10-розрядного ацп
- •Adcon0 (адреса 1Fh)
- •Adcon1 (адреса 9Fh)
- •Переривання
- •Сторожовий таймер wdt
- •Біти конфігурації
- •Слово конфігурації (адреса 2007h)
- •Система команд
- •Література
Регістри portа і trisa
PORTA – 6-розрядний порт уведення/виводу. Усі канали PORTA мають відповідні біти напряму в регістрі TRISA, що дозволяють настроювати канал як вхід або вихід. Запис «1» в TRISA переводить відповідний вихідний буфер у 3-й стан. Запис «0» в регістр TRISA визначає відповідний канал як вихід, уміст защіпки PORTA передається на виведення мікроконтролера (якщо вихідна защіпка підключена до виведення мікроконтролера).
Читання регістра PORTA повертає стан на виводах порту, а запис проводиться в защіпку PORTA. Всі операції запису в порт виконуються за
принципом «читання – модифікація – запис», тобто спочатку проводиться читання стану виводів порту, потім зміна і запис у защіпку.
RA4 – має трігер Шмідта на вході і відкритий стік на виході, мультипліковані з тактовим входом TOCKI. Решта всіх каналів PORTA має TTL буфер на вході і повнофункціональні вихідні КМОП буфери.
Канали PORTA мультипліковані з аналоговими входами АЦП і аналоговим входом джерела опорної напруги VREF. Біти управління режимів роботи каналів порту введення/виводу PORTA знаходяться в регістрі ADCON1.
Примітка. Після скидання по включенні живлення виводи настроюються як аналогові входи, а читання дає результат «0».
Біти регістра TRISA управляють напрямом каналів PORTA, навіть коли вони використовуються як аналогові входи. Користувач повинен упевнитися, що відповідні канали PORTA налаштовані на вхід при використанні їх як аналогових входів. Структурні схеми виводів порта PORTA показані на рисунку 4.6.
а б
а – виводи RA3-RA0 та RA5; б – вивод RA4 Рисунок 4.6 – Структурна схема виводів порта PORTA
Регістри portb і trisb
PORTB – 8-розрядний двонаправлений порт введення/виводу. Біти регістра TRISB визначають напрям каналів порту. Установка біта в 1 регістра TRISB переводить вихідний буфер у 3-й стан. Запис '0' в регістр TRISB настроює відповідний канал як вихід, уміст защіпки PORTB передається на виведення мікроконтролера (якщо вихідна защіпка підключена до виведення мікроконтролера).
Три виведення PORTB мультипліковані зі схемою низьковольтного програмування: RB3/PGM, RB6/PGC, RB7/PGD.
До кожного виведення PORTB підключений внутрішній підтягаючий резистор. Біт-RBPU (OPTION_REG <7>) визначає підключені (-RBPU=0) чи ні (-RBPU=1) підтягаючі резистори. Підтягаючі резистори автоматично відключаються, коли канали порту настроюються на вихід і після скидання по включенні живлення POR.
Чотири канали PORTB RB7:RB4, налаштовані на вхід, можуть генерувати переривання по зміні логічного рівня сигналу на вході. Якщо один з каналів RB7:RB4 налаштований на вихід, то він не може бути джерелом переривань. Сигнал на виводах RB7:RB4 порівнюється із значенням, збереженим при останньому читанні PORTB. У разі неспівпадання одного зі значень встановлюється прапор RBIF (INTCON<0>) і, якщо дозволено, генерується переривання.
Це переривання може вивести мікроконтролер з режиму SLEEP. У підпрограмі обробки переривань необхідно зробити наступні дії:
виконати читання або запис у PORTB, виключивши невідповідність;
скинути прапор RBIF в «0».
Невідповідність збереженого значення з сигналом на вході PORTB завжди встановлює біт RBIF в 1. Читання з PORTB перерве умову невідповідності і дозволить скинути прапор RBIF в «0».
Переривання по зміні сигналу на входах рекомендується використовувати для визначення натиснення клавіш, коли PORTB повністю задіяний для реалізації клавіатури. Не рекомендується опитувати PORTB при використанні переривань по зміні вхідного сигналу.
Переривання по зміні сигналу на входах PORTB і програма перемикання конфігурації цих каналів дозволяє реалізувати простий інтерфейс обслуговування клавіатури з виходом з режиму SLEEP по натисненню клавіш .
RBO/INT вхід зовнішнього джерела переривань, що настроюються бітом INTEDG (OPTION_REG<6>).
Структурна схема виводів порта PORTВ показана на рисунку 4.7.
Примітки:
Виводи портів мають захисні діоди, підключені до VDD і Vss- Для включення підтягаючих резисторів необхідно встановити в «1»
відповідний біт TRIS і скинути в «0» біт -RBPU (OPTION_REG<7>).
а б
а – виводи RВ3-RВ0; б – виводи RВ7-RB4
Рисунок 4.7 – Структурна схема виводів порта PORTВ
