ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 23.11.2023
Просмотров: 89
Скачиваний: 2
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Таблица 8.2. Режимы работы Таймера 2
RCLK или TCLK | CAP2 | TR2 | Режим |
0 | 0 | 1 | 16-разрядный таймер-счетчик с перезагрузкой |
0 | 1 | 1 | 16-разрядный таймер-счетчик с захватом |
1 | Х | 1 | генератор частоты приемопередатчика |
Х | х | 0 | отключен |
8.2. Режимы работы Таймера 2 микроконтроллера
Схема работы T/C 2 в режиме автоперезагрузки приведена на рисунке 8.2.
Рисунок 8.2 – Схема работы T/C 2 в режиме автоперезагрузки
16-битное значение перезагрузки записывается в регистры RCAP2L (младшая часть) и RCAP2H (старшая часть). В регистры TL2 и TH2 перед началом работы записываются те же значения. После окончания счета устанавливается флаг прерывания TF2, который вызывает перезагрузку регистров TL2 и TH2 значениями из регистров RCAP2L и RCAP2H. Перезагрузка может быть вызвана также переходом 1 → 0 внешнего сигнала, поступающего на вывод T2EX микросхемы. При этом бит EXEN2 должен быть установлен.
Этот режим напоминает аналогичные режимы для таймеров 0 и 1 с той разницей, что там используется максимум 8 разрядов, что ограничивает диапазон 256 значениями, в то время как Таймер 2 использует 16-разрядные значения. Режим автоперезагрузки Таймера 2 часто применяется при использовании его в качестве генератора синхронизации при обмене через последовательный порт.
Схема работы Таймера 2 в режиме захвата приведена на рисунке 8.3.
Рисунок 8.3 – Схема работы T/C 2 в режиме захвата
Захват (capture) производится переходом 1 → 0 внешнего сигнала, поступающего на вывод T2EX микросхемы, если бит EXEN2 установлен. При этом значения регистров счетчика запоминаются в регистрах захвата RCAP2x. Одновременно в регистре T2CON устанавливается внешний флаг таймера EXF2, который может быть использован для генерирования прерывания так же, как и флаг переполнения TF2.
Режим захвата очень эффективен при измерениях временных параметров входных сигналов.
Таймер 2 используется
как генератор частоты приема/передачи в случае, если в регистре T2CON установлен хотя бы один из битов – RCLK или TCLK. В этом случае частота приема/передачи для режимов 0 и 2 рассчитываются по формуле
f = (f T/16)xf OV,
где fT – частота сигнала с делителя внутреннего тактового генератора микроконтроллера, f OV – частота переполнения таймера.
Для режимов 1 и 3 частота приема/передачи рассчитывается по формуле
f = f T/(16x(65536 – RCAP2)).
Здесь RCAP2 – 16-разрядное значение, записанное в регистрах RCAP2L и RCAP2H.
Благодаря тому, что Таймер 2 использует 16-битовые значения, с его помощью можно получить больший диапазон частот приема/передачи.
Логика работы Таймера 2 в режиме генератора частоты приведена на рисунке 8.4.
Рисунок 8.4 – Логика работы Таймера 2 в режиме генератора частоты
Тема 9. Жидкокристаллический индикатор
-
Общие сведения
Часто микропроцессорные системы в качестве устройства отображения информации используют жидкокристаллические индикаторы (ЖКИ) или дисплеи (Liquid Crystal Display, LCD). Они являются программируемыми устройствами с встроенной памятью и встроенными схемами управления. Длина строки индикатора обычно составляет 8, 16, 20 или 40 символов. Число строк может меняться от 1 до 4. В целом ЖКИ представляет собой печатную плату, на которой смонтирован сам дисплей, контроллер и необходимые дополнительные электронные компоненты. Подключаются к системе такие индикаторы, как правило, через стандартный 14-контактный разъем. Через этот разъем индикатор получает команды управления и коды отображаемых символов. Индикатор также может посылать информацию о своем состоянии и данные из своих внутренних блоков памяти. Обозначения выводов представлены на рисунке 9.1.
Рисунок 9.1 – Обозначение выводов ЖКИ
Выводы устройства имеют следующие функциональные назначения:
-
D0 – D7 – линии данных. По этим линиям в дисплей передаются коды команд и данных. -
EN (Enable) – линия управления, фиксирующая начало/окончание передачи команды/данных в дисплей или приема данных из устройства. Линия должна быть установлена в высокий уровень перед отправкой дисплею команды или данных, после чего она сбрасывается в низкий уровень. После установки EN в высокий уровень должны быть установлены соответствующим образом линии RW, RS и D0…D7. Установка линии EN в низкий уровень завершает выполнение команды или посылки/приема данных. -
RS (Register Select) устанавливается в «0», если данные на линиях D0…D7 должны интерпретироваться как команда. Если RS устанавливается в «1», то данные на линиях D0…D7 должны отображаться на экране. -
RW (Read/Write) – управляющая линия для задания направления передачи информации. Низкий уровень означает запись. Если RW=1, то данные читаются с LCD.
Таким образом, последовательность операций при посылке команды или данных на дисплей следующая:
-
установить сигнал на линии EN в «1», -
установить линию RS либо в «0» (если посылается команда), либо в «1» (данные), -
выставить на линиях D0…D7 код команды или данных, -
установить сигнал на линии EN в «0», -
дождаться сброса бита D7, который свидетельствует о готовности дисплея принимать следующую команду/данные.
9.2. Жидкокристаллический индикатор учебного стенда SDK-1.1
Рассмотрим структуру и организацию работы с ЖКИ WH1602B-YGK-CP, входящего в состав учебного стенда SDK-1.1.
ЖКИ работает в текстовом режиме (2 строки по 16 символов), имеет подсветку (цвет желто-зеленый). Структурная схема ЖКИ представлена на рисунке 9.2.
Рисунок 9.2 – Структурная схема ЖКИ
Жидкокристаллический дисплей представляет собой матрицу, состоящую из 32 знакомест (2 строки по 16 символов) размером 5 точек по горизонтали и 8 точек по вертикали. Матрица имеет 80 входов по горизонтали и 16 входов по вертикали. Контроллер формирует необходимые напряжения на входах матрицы.
В состав контроллера ЖКИ входят три вида памяти: CGROM, CGRAM, DDRAM. Когда микроконтроллер передает в контроллер ЖКИ коды символов (наиболее распространенным считается введенный в 1963 году в США американский стандартный код обмена информацией ASCII (American Standard Code for Information Interchange), то они записываются в DDRAM (Display data RAM – ОЗУ ASCII-кодов отображаемых символов), такую память называют видеопамятью или видеобуфером.
Матрицы начертания символов хранятся в памяти знакогенератора. Память знакогенератора включает в себя CGROM (Character generator ROM – ПЗУ знакогенератора), в которую на заводе-изготовителе загружены начертания символов таблицы ASCII. Содержимое CGROM изменить нельзя. Для того, чтобы пользователь смог самостоятельно задать начертание нужных ему символов, в знакогенераторе имеется специальное ОЗУ – CGRAM (Character generator RAM). Под ячейки CGRAM отведены первые (младшие) 16 адресов таблицы кодов.
Для соединения индикатора с микроконтроллером используется 11 линий — восемь для передачи данных/команд (DB0 - DB7) и три линии управления. Линия RS служит для сообщения контроллеру индикатора о том, что именно передается по шине: команда или данные (RS = 1 — данные, RS = 0 — команда). По линии Е передается строб-сигнал, сопровождающий запись или чтение данных: по переходу сигнала на линии E из 1 в 0 осуществляется запись данных во входной буфер микроконтроллера индикатора. Запись информации в ЖКИ происходит по спаду этого сигнала. Потенциал на управляющем выводе R/W (Read/Write) задает направление передачи информации
, при R/W = 0 осуществляется запись в память индикатора, при R/W = 1 – чтение из нее. Еще три линии предназначены для подачи питающего напряжения (VDD, GND) и напряжения смещения, которое управляет контрастностью дисплея.
Семибитный счетчик адреса назначает адреса в памяти данных DDRAM и в генераторе символов CGRAM.
Соответствие адресов DDRAM позициям экрана представлено на рисунке 9.3.
Рисунок 9.3 – Соответствие адресов DDRAM позициям экрана
Жидкокристаллический индикатор в стенде SDK-1.1 подключен к микроконтроллеру не напрямую, а через расширитель портов ввода-вывода, выполненный на базе программируемой логической интегральной схемы (ПЛИС). В ее составе имеется два регистра, отвечающие за связь с ЖКИ:
-
DATA_IND (адрес 0х080001) отвечает за выдачу информации на шину данных (через этот регистр можно передавать команды контроллеру и данные), -
C_IND (адрес 0х080006) отвечает за формирование сигналов E, R/W и RS, позволяющих регулировать обмен на шине между расширителем портов и контроллером ЖКИ.
На рисунке 9.4 регистры ПЛИС изображены слева, регистры контроллера ЖКИ – справа.
Рисунок 9.4 – Регистры, необходимые для работы с ЖКИ
Формат регистра управления C_IND и функции его отдельных битов приведены на рисунок 9.5.
Рисунок 9.5 – Формат и функции бит регистра управления C_IND
В состав контроллера ЖКИ входят регистр команд IR (Instruction Register) и регистр данных DR (Data Register). Регистр команд предназначен для записи в него таких операций, как очистка дисплея, перемещение курсора, включение⁄выключение дисплея, а также установка адреса памяти DDRAM и CGRAM для последующего их выполнения. Регистр данных временно хранит данные, предназначенные для записи или чтения из DDRAM или CGRAM (символы). Эти два регистра можно выбрать с помощью регистрового переключателя RS (Register Select).
Работа с индикатором сводится к выполнению следующих операций:
-
Записать команду или данные (коды выводимых символов) в регистр DATA_IND расширителя портов. При этом содержимое этого регистра появляется на шине данных контроллера ЖКИ (DB0…DB7). Контроллер на эти данные пока не реагирует, так как сигнал Е (Enable) еще не выставлен в активный уровень (логическая «1»). -
Разрешить работу с шиной с помощью сигнала Е (логическая «1»), выставить сигнал записи (логический «0» на линии W) и указать тип используемого в контроллере ЖКИ регистра на линии RS. При передаче данных на линию RS надо подать «1», при передаче команды – «0».