Призначення виводів:
VCC
Напруга живлення
GND
Земля
Port A (PA7..PA0)
Порт А - 8-розрядний двонаправлений порт уведення-виводу. До виходів порту можуть бути підключені убудовані що підтягують резистори (окремо до кожного розряду). Вихідні буфери забезпечують струм, що втікає, 20 ма і здатні прямо керувати світлодіодними індикаторами. При використанні висновків порту як входи й установці зовнішнім сигналом у низький стан, струм буде випливати з висновків тільки при підключених убудованих резисторах, що підтягують. У процесі скидання висновки порту А переводяться у високоімпедансний стан (навіть при відключеному тактовому генераторі). Порт A при наявності зовнішньої SRAM використовується в якості мультиплексируючої шини адреси/даних.
AT90S4414/8515
Порт B (PB7.. PBO)
Порт B 8-розрядний двонаправлений порт уведення-висновку з убудованими навантажувальними резисторами. Вихідні буфери забезпечують струм, що втікає, 20 ма. При використанні висновків порту як входи й установці їхнім зовнішнім сигналом у низький стан, струм буде випливати з висновків тільки при підключених убудованих навантажувальних резисторах. У процесі скидання висновки порту B переводяться у високоімпедансний стан (навіть при відключеному тактовому генераторі). Порт B використовується також при реалізації різних спеціальних функцій.
Порт С (PC7.. PCO)
Порт ІЗ - 8-розрядний порт уведення-висновку. Вихідні буфери забезпечують струм, що втікає, 20 ма. Порт C використовуються також як виходи адреси при використанні зовнішньої SRAM. При використанні висновків порту як входи і установці їхнім зовнішнім сигналом у низький стан, струм буде випливати з висновків тільки при підключених убудованих навантажувальних резисторах. У процесі скидання висновки порту C переводяться у високоімпедансний стан (навіть при відключеному тактовому генераторі).
Порт D (PD7.. PDO)
Порт D - 8-розрядний двонаправлений порт уведення-висновку з убудованими навантажувальними резисторами. Вихідні буфери забезпечують струм, що втікає, 20 ма. При використанні висновків порту як входи й установці їхнім зовнішнім сигналом у низький стан, струм з висновків буде випливати тільки при підключених убудованих навантажувальних резисторах. Порт D використовується також при реалізації різних спеціальних функцій. У процесі скидання висновки порту D переводяться у високоімпедансний стан (навіть при відключеному тактовому генераторі).
RESET
Вхід скидання. Низький рівень на цьому висновку тривалістю більш 50 ns генерує сигнал скидання мікроконтролера, навіть при зупиненому тактовому генераторі. Можливість організації скидання більш короткими імпульсами не гарантується.
XTAL1
Вхід підсилювача генератора, що інвертує, і вхід зовнішнього тактировання.
XTAL2
Вихід підсилювача генератора, що інвертує.
ICP
Вхідний контакт захоплення таймера/лічильника 1.
OC1B
Вихідний контакт порівняння в режимі Compare B таймера/лічильника 1.
ALE
Строб дозволу фіксації адреси, використовувана для дозволі зовнішньої пам'яті. Строб ALE використовується для фіксації молодшого байта адреси в засувках адреси протягом першого циклу звертання до пам'яті. Протягом другого циклу при звертанні до даних, висновки AD0- AD 7 використовується як шину даних.
5.8 Вибір рідкокристалічного індикатора
Для розробки підійде РКІ фірми Winstar WH0802A-NGG-CT, в ньому 2 рядка і 8 знакомісць у кожному рядку. Розглянутий РКІ за допомогою стандартного 14-контактного рознімання (табл.5.4) обмінюється інформацією з керуючим мікроконтролером (у нашому випадку з AVR). AVR-мікроконтролер посилає в РКІ команди (табл.5.5), що керують режимами його роботи, і ASCII-кодами виведених символів. У свою чергу, РКІ може посилати AVR-мікроконтролеру по його запиті інформацію про свій стан і дані зі своїх внутрішніх блоків пам'яті.
N | Назва висновку | Опис |
1 | VSS | (-) Живлення. 0 V. |
2 | VDD | (+) Живлення.+5V. |
3 | V0 | Напруга зсуву, що керує контрастністю |
4 | RS | Вхід. Високий рівень - Дані; Низький - Команди |
5 | R/W | Вхід. Висок-Читання, Низьк-Запис |
6 | E | Вхід. Строб, що супроводжує сигнали на шині "команди/дані" |
7 | DB0 | Шина "команди/дані" |
8 | DB1 | |
9 | DB2 | |
10 | DB3 | |
11 | DB4 | |
12 | DB5 | |
13 | DB6 | |
14 | DB7 |
Три вивода 14-контактного рознімання призначені для подачі живильної напруги і напруги зсуву, що керує контрастністю дисплея. На рис. 5.12 показана схема підключення цих виводів. Ї
Рисунок 5.12 - Схема живлення РКІ
З 11 виводів, що залишилися, 8 (DB0 - DB7) використовуються для організації мультиплексированної шини "команди / дані", і на 3 вивода (RS, R/W, E) AVR-мікроконтролер виставляє керуючі сигнали. На рис.5.13 зображені часові діаграми цих сигналів при записі команд / даних у контролер РКІ. За допомогою сигналу на лінії RS мікропроцесор повідомляє контролерові індикатора про те, що саме передається по шині: команда або дані. Сигнал на лінії Е є стробом, що супроводжує сигнали на шині "команди / дані". Запис інформації в РКІ відбувається по спаду цього сигналу. Потенціал на керуючому висновку R/W задає напрямок передачі даних: запис у RAM індикатора (R/W=0) або зчитування відтіля (R/W=1). Контролер РКІ після прийому байта команди або байта даних вимагає деякого часу (табл. 5.5) для обробки отриманої інформації, протягом якого AVR-мікроконтролер не повинний виконувати нових передач.
Рисунок 5.13 - Запис даних у РКІ
Для того, щоб визначити, коли контролер РКІ закінчить свої внутрішні операції, AVR може опитувати BUSY-прапор індикатора (команда "читання busy-прапора"), що скинеться тільки тоді, коли контролер РКІ звільниться. Другий, більш простий спосіб полягає в тім, що керуючий мікроконтролер, знаючи, скруговьки часу потрібно РКІ на обробку тієї або іншої команди, просто виконує тимчасову затримку після кожної передачі інформації. Якщо під час циклу запису AVR-мікроконтролер передає в контролер індикатора код команди, то цей код записується в регістр команд контролера РКІ, і команда відразу ж починає виконуватися. Якщо AVR-мікроконтролер передає в контролер РКІ дані, що являють собою ASCII-коди відображуваних символів, то вони записуються в буфер даних (DDRAM), що містить 80 осередків (рис. 5.14). При записі або зчитуванні буфера даних звертання здійснюється до осередку, на яку в даний момент указує курсор.
а - однорядковий РКІ, б - двостроковий РКІ
Рисунок 5.14 - Відображення на дисплеї символів, ASCII-коди яких записані в DDRAM
Таблиця 5.5 - Система команд контролера НD4478
Код | Опис команди | Час виконання команди (fosc= 250кгц) | |||||||||
RS | R/W | DB7 | DB6 | DB5 | DB4 | DB3 | DB2 | DB1 | DB0 | ||
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | Очистити дисплей і установити курсор у нульову позицію (адреса 0) | 82мкс до 1.64мс |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | * | Установити курсор у нульову позицію (адреса 0). Установити дисплей щодо буфера DDRAM у | 40мкс до 1.6мс |
початкову позицію. Уміст DDRAM при цьому не міняється. | |||||||||||
0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | I/D | S | Установити напрямок зрушення курсору вправо (I/D=1) або вліво (I/D=0) при записі/читанні чергового коду в DDRAM. Дозволити (S=1) зрушення дисплея разом зі зрушенням курсору. | 40мкс |
0 | 0 | 0 | 0 | 0 | 0 | 1 | D | C | B | Уключити(D=1)/виключити(D=0) дисплей. Запалити(C=1)/погасити(C=0) курсор. Зображення курсору зробити миготливої (B=1). | 40мкс |
0 | 0 | 0 | 0 | 0 | 1 | S/C | R/L | * | * | Перемістити курсор (S/C=0) або зрушити дисплей (S/C=1) вправо (R/L=1) або вліво(R/L=0). | 40мкс |
0 | 0 | 0 | 0 | 1 | DL | N | F | * | * | Установити розрядність шини даних 4 біти (DL=0) або 8 біт (DL=1), круговькість рядків дисплея - одна (N=0) або дві (N=1), шрифт - 5х7 крапок (F=0) або 5х10 крапок (F=1). | 40мкс |
0 | 0 | 0 | 1 | ACG | Установка адреси CGRAM. Після цієї команди дані будуть записуватися/зчитуватися до/з CGRAM. | 40мкс | |||||
0 | 0 | 1 | ADD | Установка адреси DDRAM. Після цієї команди дані будуть записуватися/зчитуватися до/з DDRAM. | 40мкс | ||||||
0 | 1 | B F | AC | Читання стану busy-прапора (BF) і лічильника адреси. | 1мкс | ||||||
1 | 0 | Дані | Запис даних у DDRAM або CGRAM. | 40мкс | |||||||
1 | 1 | Дані | Читання даних з DDRAM або CGRAM. | 40мкс |
Буфер даних має більше осередків, чим число знакомісць дисплея. Зміщаючи вікно індикатора щодо буфера даних (див. систему команд), можна відображати на дисплеї різні області буфера. У двострокових індикаторів перші 40 осередків буфера даних, звичайно, відображаються на верхньому рядку дисплея, а другі 40 осередків - на нижньому рядку. Зрушення вікна дисплея щодо буфера даних для верхнього і нижнього рядків відбувається синхронно. Курсор буде видний на індикаторі тільки в тому випадку, якщо він потрапив у зону видимості дисплея (і якщо попередньо була подана команда відображати курсор). Крім DDRAM, контролер РКІ містить ще один блок пам'яті - знакогенератор. Його "прошивання", тобто відповідність ASCII-кодів накресленню символів. Приклад такого "прошивання" представлений у рис 5.16. Знакогенератор складається з двох частин. Основна його частина являє собою ПЗУ (CGROM) і неї, отже, не можна змінити. Друга частина, у якій задаються накреслення символів для перших 16-ти кодів таблиці знакогенератора, являє собою перепрограмувальне ОЗУ(CGRAM). Мається можливість задати накреслення 8 символів, що відповідають кодам 0(8), 1(9), 2(10)... 7(15). Для кожного з восьми перепрограмувальних символів у CGRAM приділяється по 8 комірок пам'яті, кожна з яких відповідає одному рядкові крапок у зображенні символу. Таким чином, перепрограмувальна частина знакогенератора містить 64 байта пам'яті (8х8). Приклад кодування CGRAM для однієї букви приведений на рис. 5.15.