- •2.Описание лабораторного стенда
- •3.Описание материнской платы
- •4.Использование пакета программ
- •4.1.Работа в интегрированной среде разработки Silicon Laboratories ide.
- •4.2.Пример работы с платой и ide.
- •5.Лабораторные работы
- •5.1.Работа №1 «Работа со светодиодным матричным дисплеем»
- •5.2.Работа №2 «Контроль температуры»
- •5.3.Работы №3,4 «Управление электродвигателями»
- •5.4.Работа №5 «Символьный экран и матричная клавиатура»
- •6.Описание встроенных периферии мк
- •6.1.Порты ввода/вывода. Матрица назначения выводов портов
- •6.1.1.Приоритетный декодер матрицы
- •6.1.2.Инициализация портов ввода/вывода
- •6.1.3.Порты ввода/вывода общего назначения
- •6.2.Таймеры/счетчики
- •6.2.1.Таймер 0 и Таймер 1
- •Режим 0: 13-разрядный таймер/счетчик
- •Режим 1: 16-разрядный Таймер/Счетчик
- •Режим 2: 8-разрядный таймер/счетчик с автоперезагрузкой
- •Режим 3: Два 8-разрядных таймера/счетчика (только Таймер 0)
- •6.2.2.Таймер 2
- •6.2.3.Таймер 3
- •6.3.Модули сравнения фиксации (программируемый массив счетчиков)
- •6.3.1.Таймер/счетчик модуля пмс
- •6.3.2.Модули захвата/сравнения
- •Режим захвата по фронту сигнала
- •Режим программного таймера (сравнения)
- •Режим высокоскоростного выхода
- •Режим выхода заданной частоты
- •Режим 8-разрядного широтно-импульсного модулятора
- •Режим 16-разрядного широтно-импульсного модулятора
- •6.3.3.Режим сторожевого таймера
- •Функционирование сторожевого таймера
- •Использование сторожевого таймера
- •6.4.Интерфейс spi
- •6.4.1.Описание сигналов
- •6.4.2.Функционирование spi0 в ведущем режиме
- •6.4.3.Функционирование spi0 в ведомом режиме
- •6.4.4.Источники прерываний модуля spi0
- •6.4.5.Тактирование
- •6.4.6.Регистры специального назначения модуля spi0
- •6.5.Интерфейс uart
- •6.5.1.Усовершенствованный режим генерации скорости передачи данных
- •6.5.2.Режимы работы uart0
- •6.6.Аналогово-цифровой преобразователь
- •6.6.1.Аналоговый мультиплексор
- •6.6.2.Режимы работы ацп0
- •Запуск преобразования
- •Режимы слежения
- •Время установления
- •6.6.3.Программируемый детектор диапазона ацп0
- •Детектор диапазона в однофазном режиме
- •Детектор диапазона в дифференциальном режиме
- •6.7.Цифро-аналоговый преобразователь
- •6.7.1.Обновление выходного сигнала цап0
- •Обновление выходного сигнала “по требованию”
- •Обновление выходного сигнала при переполнении таймера
- •Обновление выходного сигнала по фронту cnvstr
- •6.7.2.Форматирование входных данных цап
- •6.8.Генераторы
5.4.Работа №5 «Символьный экран и матричная клавиатура»
Для выполнения данной работы в отладочную материнскую плату вставляется дочерняя плата символьного экрана и матрич7ной клавиатуры, структура которой представлена на рис.5.11.
Рис. 5.20 Плата символьного экрана и матричной клавиатуры.
Клавиатура представляет собой матрицу из 16 клавиш, расположенных на пересечениях 4 строк и 4 столбцов, подключенных к портам микроконтроллера. Ее схема представлена на рис.5.12. В исходном состоянии на всех линиях столбцов поддерживается высокий логический уровень сигнала за счет подключенных к ним резисторов. При нажатии клавиши соответствующие строка и столбец замыкаются. Опрос клавиатуры осуществляется последовательным сканированием строк. Для этого на все линии строк кроме одной подаются сигналы высокого логического уровня, и только на одну, опрашиваемую в данный момент строку, подается сигнал нулевого уровня. Если ни одна из клавиш, подключенных к этой стоке, не нажата, то на всех линиях столбцов будет присутствовать высокий логический уровень сигналов. Если же какие-либо клавиши, подключенные к этой строке, нажаты, то на соответствующих линиях столбцов будут присутствовать сигналы низкого логического уровня. Зная номер текущей опрашиваемой строки и номер столбца с нулевым уровнем сигнала, можно однозначно идентифицировать нажатую клавишу. В следующем цикле опроса сигнал нулевого уровня подается на следующую линию строки, и таким образом опрашиваются клавиши, подключенные к этой строке. Для опроса всей клавиатуры в данном случае необходимо четыре цикла опроса строк.
Рис. 5.21 Схема матричной клавиатуры.
Кроме того, на плате данной лабораторной работы размещён знакосинтезирующий текстовый буквенно-цифровой ЖК-дисплеем. Экран имеет 2 строки по 16 символов в каждой. Размер шрифта 5*8 пикселей. Экран имеет встроенный контроллер управления и встроенное ОЗУ, в каждой ячейке которой хранится 8-битный код символа, выводимого на экран. Каждому знакоместу однозначно сопоставлена ячейка памяти. Все действия по выводу и регенерации изображения на экран выполняются внутренним микроконтроллером дисплея. Центральному управляющему микроконтроллеру для вывода информации на дисплей необходимо лишь записать коды выводимых символов во внутреннее ОЗУ дисплея и задать режим его работы с помощью соответствующих команд(см. Табл. 5 .3).
Встроенное ОЗУ экрана делится на две независимые области, с разным назначением. Первая область – DDRAM (Display Data RAM) – та часть памяти, в которой хранятся ASCII-коды выводимых на экран символов. В таблице символов, изображения которых записаны в ПЗУ встроенного в дисплей контроллера есть 8 кодов символов предназначенных для вывода пользовательских знаков, графические изображения которых в специальном виде (см рисунок 5.13) хранятся во второй области ОЗУ – CGRAM (Character Generator RAM). Размер CGRAM составляет 64 байта (коды от 0x00 до 0x3F)
Рис. 5.22 Формат хранения пользовательских знаков в CGRAM
Размер DDRAM составляет 127 байт (коды от 0x00 до 0x7F). Это сделано в целях унификации, т.к. существуют экраны с различным количеством строк и символов в строке, и во все типы экранов устанавливаются одинаковые типы контроллеров. Для данного экрана соответствие знакомест на дисплее кодам в DDRAM представлено ниже:
№ символа в строке |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
адрес в DDRAM |
00 |
01 |
02 |
03 |
04 |
05 |
06 |
07 |
08 |
09 |
0A |
0B |
0C |
0D |
0E |
0F |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
4A |
4B |
4C |
4D |
4E |
4F |
Обмен данными с дисплеем осуществляется по параллельной магистрали, в которую входят:
шина данных D0–D7 (сигналы подключены к выводам портов P2.0 – P2.7 микроконтроллера) - двунаправленная шина, по которой передаются данные в циклах обмена информацией с дисплеем;
сигнал RS (подключен к выводу порта P1.5 микроконтроллера) – единичный уровень его означает запись(чтение) кода символа, который будет выведен(или который уже выведен) на текущее знакоместо, а нулевой - запись команды управления в дисплей (включение отключение экрана, отображение курсора, установка адреса текущего знакоместа) или чтение текущего состояния экрана (бит готовности);
сигнал R/W (подключен к выводу порта P1.6 микроконтроллера) – его единичный уровень означает чтение из дисплея, а нулевой - запись в дисплей;
сигнал E(подключен к выводу порта P1.7 микроконтроллера) – строб чтения/записи – в этом сигнале формируется нулевой импульс при реализации чтения либо записи информации в или из дисплея.
Диаграмма цикла записи информации в дисплей представлена на Рис. 5 .23, а её временные параметры в Таблица 5 .1.
Рис. 5.23 Цикл записи информации в дисплей.
Таблица 5.1 Временные параметры диаграммы цикла записи.
Величина |
Обозначение |
Значение |
Ед. изм. |
|
Мин. |
Макс. |
|||
Строб E: |
|
|
|
|
время цикла |
tcycE |
400 |
- |
нс |
ширина импульса высокого уровня |
PWEH |
150 |
- |
нс |
время нарастания/спада |
tEr,tEf |
- |
25 |
нс |
Время установления стробов адреса (от RS, R/W к E) |
tAS |
30 |
- |
нс |
Время удержания стробов адреса |
tAH |
10 |
- |
нс |
Время установления сигналов на линиях данных |
tDSW |
40 |
- |
нс |
Время удержания сигналов на линиях данных |
tH |
10 |
- |
нс |
Диаграмма цикла чтения информации из дисплея представлена на Рис. 5 .24, а её временные параметры в Таблица 5 .1.
Рис. 5.24 Цикл чтения информации из дисплея.
Табл. 5.2 Временные параметры диаграммы цикла чтения.
Величина |
Обозначение |
Значение |
Ед. изм. |
|
Мин. |
Макс. |
|||
Строб E: |
|
|
|
|
время цикла |
tcycE |
400 |
- |
нс |
ширина импульса высокого уровня |
PWEH |
150 |
- |
нс |
время нарастания/спада |
tEr,tEf |
- |
25 |
нс |
Время установления стробов адреса (от RS, R/W к E) |
tAS |
30 |
- |
нс |
Время удержания стробов адреса |
tAH |
10 |
- |
нс |
Задержка перед установлением сигналов на линиях данных |
tDDR |
- |
100 |
нс |
Время удержания сигналов на линиях данных |
tDHR |
20 |
- |
нс |
Табл. 5.3 Управляющие команды дисплея.
Команда |
Код команды |
Описание |
Время выполнения |
|||||||||
RS |
R/W |
DB 7 |
DB 6 |
DB 5 |
DB 4 |
DB 3 |
DB 2 |
DB 1 |
DB 0 |
|||
Очистка экрана |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
Записывает во все ячейки знакомест значение 00h и устанавливает указатель адреса текущего знакоместа в 00h, те первый символ первой строки. |
1.53 мс |
Возврат курсора в начало |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
- |
Устанавливает указатель адреса текущего знакоместа в 00h, те первый символ первой строки. Содержимое памяти не меняется. |
1.53 мс |
Установка режима записи |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
I/D |
SH |
I/D: режим смещения указателя адреса текущего знакоместа после записи очередного символа. «1» - счетчик увеличивается (курсор сдвигается вправо), «0» - счетчик уменьшается (курсор сдвигается влево); S: режим сдвига всего содержимого экрана после записи очередного символа вместо сдвига курсора. «0» - нет сдвига изображения, «1» - изображение сдвигается в зависимости от I/D. |
39 мкс |
Выбор режима отображения |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
D |
C |
B |
D: изображения на экране «0» - выключено, «1» - включено; C: курсор в виде подчеркивания «0» - выключен, «1» - включен; B: курсор в виде мерцающего знакоместа «0» - выключен, «1» - включен. |
39 мкс |
Сдвиг курсора или экрана |
0 |
0 |
0 |
0 |
0 |
1 |
S/C |
R/L |
- |
- |
Команда, производящая операцию сдвига содержимого экрана (без изменений в DDRAM) или курсора в зависимости от значения флагов S/C: «0» - сдвиг курсора, «1» - сдвиг экрана; R/L: «0» - влево, «1» - вправо. |
39 мкс |
Установка параметров развертки и шины данных |
0 |
0 |
0 |
0 |
1 |
DL |
N |
F |
- |
- |
DL: ширина шины данных «0» - 4 разряда, «1» - 8 разрядов; N: режим развертки изображения «0» - одна строка, «1» - две строки; F: размер матрицы символов «0» - 5х8 точек, «1» - 5х10 точек. |
39 мкс |
Установка адреса CGRAM |
0 |
0 |
0 |
1 |
AC5 |
AC4 |
AC3 |
AC2 |
AC1 |
AC0 |
Присвоение счетчику АС адреса в области CGRAM. |
39 мкс |
Установка адреса DDRAM |
0 |
0 |
1 |
AC6 |
AC5 |
AC4 |
AC3 |
AC2 |
AC1 |
AC0 |
Присвоение счетчику АС адреса в области DDRAM. |
39 мкс |
Чтение флага занятости и указателя адреса |
0 |
1 |
BF |
AC6 |
AC5 |
AC4 |
AC3 |
AC2 |
AC1 |
AC0 |
Флаг занятости может быть опрошен в любой момент, даже во время выполнения команды. Так же эта команда возвращает текущее значение счетчика адреса AC. |
0 мкс |
Запись данных в ОЗУ |
1 |
0 |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
Запись данных в текущую ячейку ОЗУ (DDRAM/CGRAM) |
43 мкс |
Чтение данных из ОЗУ |
1 |
1 |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
Чтение данных из текущей ячейки ОЗУ (DDRAM/CGRAM) |
43 мкс |
После
подачи питания дисплей необходимо
инициализировать. Блок схема алгоритма
инициализации представлена на Рис. 5 .25.
Рис. 5.25 Блок-схема алгоритма инициализации
Символы, отображаемые дисплеем и соответствующие им кодов, записываемые в память дисплея, представлены в Табл. 5 .4 Таблица.
Табл. 5.4 Таблица символов, отображаемых дисплеем.
