Програмування і керування

Після сигналу Reset і закінчення циклу ініціалізації мікросхеми (не більш 100 мс) вона готова до роботи.

Для зв'язку по шині 12С мікросхемі СЕ110 призначена базова адреса $78.

 

 

Для керування процесом обміну з мікросхемою СЕ100 в введено таке поняття, як керує слово - - «Control Byte», яке передається безпосередньо після «Slave»-адреси. «Control Byte» (рис.3.1.4.2) містить набір керуючих бітів, що визначають загальний режим роботи для послідовності байтів, яка передається.

Біт 3 визначає вид посилки. Якщо С0=0 за «Control Byte» передається багатобайтова послідовність, яка завершується або «Stop»-умовою, або новою «Start»-умовою. Якщо С0=1 за «Control Byte» передається один байт даних, за яким буде передано новий «Control Byte».


Біт Rg визначає область доступу. Якщо Rg = 0 (рис.3.1.4.2, а) відбувається доступ до РК-модуля, при цьому в 5-ому і 6-ому бітах «Control Byte» передаються значення ліній РК-модуля R/W і RS відповідно, які будуть присутні під час передачі всієї наступної послідовності. Якщо Rg = 1 (рис.3.1.4.2, б) - - відбувається доступ до внутрішніх регістрів мікросхеми СЕНО, причому в бітах «Control Byte» 1...6 передається адреса регістра, який приймає чи передає дані.

Приклад виконання операцій обміну з мікросхемою СЕ110 можна бачити на рисунку 3.1.4.3, а, б. Тут показано загальний випадок обміну, справедливий як для керування РК-модулем, так і для доступу до внутрішніх регістрів СЕ110.

Друга, відносно незалежна частина набору команд зв'язана з керуванням клавіатурою. Інтерфейс обміну з контролером клавіатури полягає в доступі до внутрішніх регістрів мікросхеми СЕ110, тобто прапорець Rg повинен бути рівний 1. При цьому інші біти «Control Byte» (крім 3, див. рис. 3.1.4.3, б) визначають адресу регістра. Нижче наведено призначення регістрів:


00 - «KeyBu£>»: регістр буфера клавіатури. Коли контролер клавіатури розпізнає натискання клавіші і дешифрує її код, він додає до нього 1 в старший розряд (прапорець наявності в буфері нової інформації) і записує отримане значення в буфер. Через регістр «KeyBuf» доступне значення верхівки - - найпершого байта буфера. Після читання вмісту «KeyBuf» керуючим пристроєм прапорець нової інформації (тобто старший розряд) автоматично скидається, залишаючи незмінним значущий код.

01 - «WorkMode»: регістр керування. В ньому містяться три прапорці, що визначають режим роботи мікросхеми СЕ110:

0 - «KeyModFl»: прапорець режиму роботи контролера клавіатури. При 0 - видаються коди клавіш, що натискаються; 1 - видаються коди що натискаються і клавіш, що відпускаються, причому в 6-ом біті коду клавіші передається прапорець: 0 - клавіша натиснута, 1 -відпущена.

1 - «KeyBufSizFl>»: прапорець розміру буфера клавіатури. О — буфер клавіатури має розмір 1 символ, 1 - - буфер має розмір 8 символів.

2 - «LCDRdWtFl»: прапорець режиму роботи інтерфейсу РК-модуля. О - - відбувається автоматичне очікування скиду прапорця BF РК-модуля, 1 - - перевірка прапорця BF не буде відбувається.

02 - «KeyAutoTime»: регістр тайм-ауту включення автоповтору. В ньомуміститься значення часу, через яке почнеться автоматична видача коду останньої натиснутої і утримуваної клавіші.

03 - «KeyAutoSpeed»: регістр частоти автоповтору. Задає період проходження символів під час автоповтору.

04 - «KeyPause»: регістр паузи для захисту від дребезга. Визначає тривалість паузи після перекомутації клавіші, протягом якої контролер клавіатури не робить опитування матриці, щоб захиститися від дребезга механічних контактів.


I04...07 He використовуються.

08...OF «MaskO»...«Mask7»: маски, що дозволяють автоматичний повтор клавіш. Кожен регістр «Mask» відповідає одному рядку матриці клавіатури, а кожен біт регістра - - відповідній клавіші. Біт 0 регістру «MaskO» відповідає за клавішу з кодом $00, біт 0 регістру «Maskl» за клавішу $08, і так далі. Встановлення прапорця в 1 дозволяє автоповтор для даної клавіші.

10... 17 «KeyMatO»... «KeyMat7»: регістри стану матриці клавіатури. Через дані регістри доступні поточні значення стану стовпців матриці клавіатури. Регістру «KeyMatO» відповідає нульовий рядок, і, відповідно, клавіші з кодами $00... $07, «KeyMatl» - - перший рядок, і так далі. Кожен біт регістру «KeyMat» відповідає за одну клавішу, причому розподіл бітів аналогічний розподілу в регістрах «Mask». Одиничне значення біта матриці говорить про те, що клавіша відпущена, нульове - - що натиснута.

 

Після здійснення операції обміну з регістром (запис чи читання) його адреса автоматично збільшується на 1. Це зручно при початковому визначенні параметрів роботи мікросхеми СЕ110, чи при збереженні поточного стану і його наступного відновлення. Після проходження сигналу Reset всі регістри мікросхеми СЕ110 скидаються в 0, буфери матриці «KeyMatO»... «KeyMat7» приймають значення $FF.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: