Справочник по среднему семейству микроконтроллеров PICmicro
.pdfООО"Микро-Чип" - поставка комплектующих Microchip тел.: (095) 737-7545
25.5Управление пикселями ЖКИ
25.5.1 Регистры данных LCDD
Регистры данных ЖКИ содержат биты, которые определяют состояния каждого пикселя ЖКИ (каждый бит влияет на один пиксель). В таблице 25-4 показано влияние каждого бита в регистрах LCDD на соответствующий сигнал сегмента и общего вывода. Регистры данных ЖКИ, не влияющие на работу ЖКИ, могут использоваться как регистры общего назначения.
Таблица 25-4 Регистры LCDD
Имя |
Бит 7 |
Бит 6 |
Бит 5 |
Бит 4 |
Бит 3 |
Бит 2 |
Бит 1 |
Бит 0 |
Сброс |
Другие |
|
POR, BOR |
сбросы |
||||||||||
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
LCDD00 |
SEG07 |
SEG06 |
SEG05 |
SEG04 |
SEG03 |
SEG02 |
SEG01 |
SEG00 |
xxxx xxxx |
xxxx xxxx |
|
COM0 |
COM0 |
COM0 |
COM0 |
COM0 |
COM0 |
COM0 |
COM0 |
||||
|
|
|
|||||||||
LCDD01 |
SEG15 |
SEG14 |
SEG13 |
SEG12 |
SEG11 |
SEG10 |
SEG09 |
SEG08 |
xxxx xxxx |
xxxx xxxx |
|
COM0 |
COM0 |
COM0 |
COM0 |
COM0 |
COM0 |
COM0 |
COM0 |
||||
|
|
|
|||||||||
LCDD02 |
SEG23 |
SEG22 |
SEG21 |
SEG20 |
SEG19 |
SEG18 |
SEG17 |
SEG16 |
xxxx xxxx |
xxxx xxxx |
|
COM0 |
COM0 |
COM0 |
COM0 |
COM0 |
COM0 |
COM0 |
COM0 |
||||
|
|
|
|||||||||
LCDD03 |
SEG31 |
SEG30 |
SEG29 |
SEG28 |
SEG27 |
SEG26 |
SEG25 |
SEG24 |
xxxx xxxx |
xxxx xxxx |
|
COM0 |
COM0 |
COM0 |
COM0 |
COM0 |
COM0 |
COM0 |
COM0 |
||||
|
|
|
|||||||||
LCDD04 |
SEG07 |
SEG06 |
SEG05 |
SEG04 |
SEG03 |
SEG02 |
SEG01 |
SEG00 |
xxxx xxxx |
xxxx xxxx |
|
COM1 |
COM1 |
COM1 |
COM1 |
COM1 |
COM1 |
COM1 |
COM1 |
||||
|
|
|
|||||||||
LCDD05 |
SEG15 |
SEG14 |
SEG13 |
SEG12 |
SEG11 |
SEG10 |
SEG09 |
SEG08 |
xxxx xxxx |
xxxx xxxx |
|
COM1 |
COM1 |
COM1 |
COM1 |
COM1 |
COM1 |
COM1 |
COM1 |
||||
|
|
|
|||||||||
LCDD06 |
SEG23 |
SEG22 |
SEG21 |
SEG20 |
SEG19 |
SEG18 |
SEG17 |
SEG16 |
xxxx xxxx |
xxxx xxxx |
|
COM1 |
COM1 |
COM1 |
COM1 |
COM1 |
COM1 |
COM1 |
COM1 |
||||
|
|
|
|||||||||
LCDD07 |
SEG31 |
SEG30 |
SEG29 |
SEG28 |
SEG27 |
SEG26 |
SEG25 |
SEG24 |
xxxx xxxx |
xxxx xxxx |
|
COM1(1) |
COM1 |
COM1 |
COM1 |
COM1 |
COM1 |
COM1 |
COM1 |
||||
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
LCDD08 |
SEG07 |
SEG06 |
SEG05 |
SEG04 |
SEG03 |
SEG02 |
SEG01 |
SEG00 |
xxxx xxxx |
xxxx xxxx |
|
COM2 |
COM2 |
COM2 |
COM2 |
COM2 |
COM2 |
COM2 |
COM2 |
||||
|
|
|
|||||||||
LCDD09 |
SEG15 |
SEG14 |
SEG13 |
SEG12 |
SEG11 |
SEG10 |
SEG09 |
SEG08 |
xxxx xxxx |
xxxx xxxx |
|
COM2 |
COM2 |
COM2 |
COM2 |
COM2 |
COM2 |
COM2 |
COM2 |
||||
|
|
|
|||||||||
LCDD10 |
SEG23 |
SEG22 |
SEG21 |
SEG20 |
SEG19 |
SEG18 |
SEG17 |
SEG16 |
xxxx xxxx |
xxxx xxxx |
|
COM2 |
COM2 |
COM2 |
COM2 |
COM2 |
COM2 |
COM2 |
COM2 |
||||
|
|
|
|||||||||
LCDD11 |
SEG31 |
SEG30 |
SEG29 |
SEG28 |
SEG27 |
SEG26 |
SEG25 |
SEG24 |
xxxx xxxx |
xxxx xxxx |
|
COM2(1) |
COM2(1) |
COM2 |
COM2 |
COM2 |
COM2 |
COM2 |
COM2 |
||||
|
|
||||||||||
LCDD12 |
SEG07 |
SEG06 |
SEG05 |
SEG04 |
SEG03 |
SEG02 |
SEG01 |
SEG00 |
xxxx xxxx |
xxxx xxxx |
|
COM3 |
COM3 |
COM3 |
COM3 |
COM3 |
COM3 |
COM3 |
COM3 |
||||
|
|
|
|||||||||
LCDD13 |
SEG15 |
SEG14 |
SEG13 |
SEG12 |
SEG11 |
SEG10 |
SEG09 |
SEG08 |
xxxx xxxx |
xxxx xxxx |
|
COM3 |
COM3 |
COM3 |
COM3 |
COM3 |
COM3 |
COM3 |
COM3 |
||||
|
|
|
|||||||||
LCDD14 |
SEG23 |
SEG22 |
SEG21 |
SEG20 |
SEG19 |
SEG18 |
SEG17 |
SEG16 |
xxxx xxxx |
xxxx xxxx |
|
COM3 |
COM3 |
COM3 |
COM3 |
COM3 |
COM3 |
COM3 |
COM3 |
||||
|
|
|
|||||||||
LCDD15 |
SEG31 |
SEG30 |
SEG29 |
SEG28 |
SEG27 |
SEG26 |
SEG25 |
SEG24 |
xxxx xxxx |
xxxx xxxx |
|
COM3(1) |
COM3(1) |
COM3(1) |
COM3 |
COM3 |
COM3 |
COM3 |
COM3 |
||||
|
|
Примечание 1. Эти пиксели не отображаются, биты могут использоваться как биты общего назначения.
25
WWW.MICROCHIP.RU – поставки и техподдержка на русском языке |
25-13 |
Раздел 25. Модуль LCD |
DS33023A |
|
|
25.5.2 Включение сегментов
Регистр LCDSE предназначен для выбора режима работы группы выводов микроконтроллера. Каждая группа выводов может быть настроена для работы в качестве драйверов LCD модуля или цифровых входов/выходов. Для настройки группы выводов как цифровые входы/выходы соответствующий бит в регистре LCDSE должен быть сброшен в '0'.
Если вывод работает как цифровой вход/выход, то соответствующий бит TRIS управляет направлением данных. Установка любого бита в регистре LCDSE отменяет действие соответствующих битов TRIS.
Примечание 1. При сбросе по включению питания (POR) все выводы, мультиплицированные с модулем LCD, работают как драйверы LCD.
Примечание 2. Состояние битов LMUX1:LMUX0 (настройка драйвера общего выхода) имеет более высокий приоритет, чем SE29 (настройка выводов RD7, RD6 и RD5).
Пример 25-1 Статический MUX, 32 сегмента |
; Выбрать банк 2 |
|
BCF |
STATUS,RP0 |
|
BSF |
STATUS,RP1 |
; |
BCF |
LCDCON,LMUX1 |
; Выбрать статический MUX |
BCF |
LCDCON,LMUX0 |
; |
MOVLW |
0xFF |
; Выводы портов PORTD, E,F,G |
MOVWF |
LCDSE |
; используются модулем LCD |
Пример 25-2 1/3 MUX, 13 сегментов |
; Выбрать банк 2 |
|
BCF |
STATUS,RP0 |
|
BSF |
STATUS,RP1 |
; |
BSF |
LCDCON,LMUX1 |
; Выбрать 1/3 MUX |
BCF |
LCDCON,LMUX0 |
; |
MOVLW |
0x87 |
; Выводы портов PORTD<7:0> и PORTE<6:0> |
MOVWF |
LCDSE |
; используются модулем LCD |
25-14 |
WWW.MICROCHIP.RU – поставки и техподдержка на русском языке |
ООО "Микро-Чип" - поставка комплектующих Microchip тел.: (095) 737-7545
25.6 Генератор напряжений
Существует два метода формирования напряжений для модуля LCD: внутренний генератор напряжения, внешняя резистивная цепочка.
25.6.1 Внутренний генератор напряжений
Структурная схема внутреннего генератор напряжения модуля LCD показана на рисунке 25-8. Генератор напряжения формирует стабилизированное напряжение от 1.0В до 2.3В независимо от напряжения питания. Настройка генератора напряжений осуществляется внешним резистором, подключенным к выводу VLCDADJ. С помощью этого резистора можно изменять контрастность ЖКИ (изменение основного напряжения на выводе VLCD1). На основе напряжения VLCD1 формируется два других напряжения: VLCD2 = 2 VLCD1, VLCD3 = 3 VLCD1. Когда внутренний генератор напряжений выключен, вывод VLCD3 внутренне подключен к VDD. Смотрите в разделе "Электрические характеристики" параметры конденсаторов и потенциометра.
25.6.2 Внешняя резистивная цепочка
Модуль LCD может использовать внешнюю резистивную цепочку для формирования необходимых напряжений. На рисунке 25-8 показана схема подключения резисторов для статического и 1/3 MUX режима. Для использования внешней резистивной цепочки бит VGEN (LCDCON<4>) должен быть сброшен в '0'.
Рис. 25-8 Структурная схема внутреннего генератора напряжений и схема подключения внешней резистивной цепочки
25
Примечания:
1. Точка включения необязательного фильтрующего конденсатора.
2.Оценочные значения.
WWW.MICROCHIP.RU – поставки и техподдержка на русском языке |
25-15 |
Раздел 25. Модуль LCD |
DS33023A |
|
|
25.7 Работа модуля LCD в SLEEP режиме микроконтроллера
Модуль LCD может продолжать работать в SLEEP режиме микроконтроллера, выбор осуществляется битом SPLEN (LCDCON<6>). Если SLPEN = 0, то модуль LCD продолжает работать в SLEEP режиме микроконтроллера.
Если SLPEN = 1, то после выполнения команды SLEEP модуль LCD перейдет в режим пониженного энергопотребления, прекратив формировать управляющие сигналы. На рисунке 25-9 показана временная диаграмма перехода в SLEEP режим модуля LCD. Для гарантированного завершения формирования фрейма команда SLEEP должна быть выполнена немедленно, после обнаружения границы фрейма (прерывания от модуля LCD могут использоваться для обнаружения границы фрейма). Смотрите раздел 25.4 "Прерывания от модуля LCD".
Если разрешена работа модуля LCD в SLEEP режиме микроконтроллера, то содержимое регистров LCDD будет отображаться на ЖКИ, при этом данные не могут быть изменены. В этом случае необходимо использовать внутренний RC генератор или генератор TMR1 для формирования тактового сигнала модуля LCD. Модуль LCD не будет потреблять меньше тока, однако полное потребление системы будет уменьшено за счет выключения ядра микроконтроллера и других периферийных модулей.
Примечание. При работе модуля LCD в SLEEP режиме микроконтроллера должен использоваться внутренний RC генератор или генератор TMR1.
Рис. 25-9 Временная диаграмма перехода модуля LCD в SLEEP режим (SLPEN=1 или CS1:CS0 = 00)
25-16 |
WWW.MICROCHIP.RU – поставки и техподдержка на русском языке |
ООО "Микро-Чип" - поставка комплектующих Microchip тел.: (095) 737-7545
25.8 Эффект сброса
После сброса микроконтроллера модуль LCD выключен, но выводы, мультиплицированные с модулем LCD, настраиваются как драйверы LCD. Это гарантирует защиту ЖКИ стекла от повреждения возможным постоянным напряжением.
25.9 Настройка модуля LCD
Для настройки модуля LCD рекомендуется следующая последовательность действий: 1. Выбрать параметры синхронизации фреймов, биты LP3:LP0 (LCDPS<3:0>).
2.Настроить необходимые выводы микроконтроллера для работы в качестве драйвера ЖКИ (регистр
LCDSE).
3.Настроить модуль LCD с помощью регистра LCDCON:
-Режим работы мультиплексора (биты LMUX1:LMUX0);
-Выбрать источник тактового сигнала (биты CS1:CS0);
-Выбрать режим работы генератора напряжения для модуля LCD (бит VGEN);
-Выбрать режим работы модуля LCD в SLEEP режиме микроконтроллера (бит SLPEN).
4.Записать начальные данные в регистры LCDD00 - LCDD15.
5.Сбросить флаг прерывания от модуля LCD (бит LCDIF), и если необходимо, разрешить прерывания установкой бита LCDIE в '1'.
6.Включить модуль LCD установив в '1' бит LCDEN (LCDCON<7>).
25.10Коэффициент дискриминации
Спомощью коэффициента дискриминации можно вычислить максимальную контрастность ЖКИ. В первом примере представлен расчет для статического режима (см. рисунок 25-3). Напряжения V1 и V0 будут иметь значения 1 и 0. Следующий шаг - создание уравнения для отдельного фрейма, чтобы оценить отображение индивидуального пикселя в включенном и выключенном состоянии при различных режимах синхронизации. В остальной части вычисляется коэффициент дискриминации.
Пример 25-3 Вычисление коэффициента дискриминации (статический MUX)
См. рисунок 25-3. |
25 |
|
WWW.MICROCHIP.RU – поставки и техподдержка на русском языке |
25-17 |
Раздел 25. Модуль LCD |
DS33023A |
|
|
Вследующем примере вычисляется коэффициент дискриминации для режима 1/4 MUX, 1/3 BIAS (см. рис. 25-6).
Вэтом примере значения 3, 2, 1 и 0 для напряжений V3, V2, V1 и V0. Уравнения для статического и RSM напряжения, вычисление коэффициента дискриминации показаны в примере 25-4.
Пример 25-4 Вычисление коэффициента дискриминации (1/4 MUX)
См. рисунок 25-6.
Как можно судить по представленным примерам - ЖКИ со статической синхронизацией имеют лучшую контрастность. Большее значение мультиплицированния - меньший коэффициент дискриминации, меньшая контрастность ЖКИ.
В таблице 25-5 показано соотношение напряжений VOFF, VON при различных режимах синхронизации. Для увеличения контрастности ЖКИ можно увеличить разницу напряжений между уровнями.
Таблица 25-5 Коэффициент дискриминации
|
|
1/3 BIAS |
|
|
VOFF |
VON |
D |
|
|
|
|
Статический |
0 |
1 |
∞ |
1/2 MUX |
0.333 |
0.745 |
2.236 |
1/3 MUX |
0.333 |
0.638 |
1.915 |
1/4 MUX |
0.333 |
0.577 |
1.732 |
25-18 |
WWW.MICROCHIP.RU – поставки и техподдержка на русском языке |
ООО"Микро-Чип" - поставка комплектующих Microchip тел.: (095) 737-7545
25.11Формирование напряжения для модуля LCD
Из всех возможных способов формирования напряжения для LCD модуля выделяется два основных:
•Резистивная цепочка;
•Внутренний генератор.
Метод резистивной цепочки, показанный на рисунке 25-10, наиболее часто используется при высоком напряжении питания VDD. Этот метод формирования напряжений нескольких уровней для модуля LCD считается наиболее простым и дешевым. Независимо от числа включенных пикселей ток остается неизменным. Напряжение V3 обычно подключается к напряжению питания (внутренними цепями микроконтроллера или внешней схемой).
Выбор сопротивления резисторов определяется двумя факторами: качество отображения информации и потребляемая мощность. Качество отображения информации зависит от параметров синхронизации ЖКИ. Необходимо учитывать, что ЖКИ является емкостной нагрузкой из-за чего возникает искажение управляющих сигналов (токи заряда/разряда). Влияние емкостной нагрузки можно снизить уменьшив сопротивление резистивной цепочки. Однако, это приводит к большему энергопотреблению (за счет большего тока через резистивную цепочку). Для ЖКИ большего размера следует использовать резисторы с меньшим сопротивлением, чтобы получить качественное отображение информации.
Допускается параллельно резисторам включать конденсаторы, которые снижают искажения управляющих сигналов обеспечивая требуемые токи заряда/разряда. Ориентировочные значения резисторов: R - от 1кОм до 50 кОм; потенциометр - от 5кОм до 200кОм.
Рис. 25-10 Схема включения резистивной цепочки
Рис.25-11 Схема включения резистивной цепочки с конденсаторами
25
WWW.MICROCHIP.RU – поставки и техподдержка на русском языке |
25-19 |
Раздел 25. Модуль LCD |
DS33023A |
|
|
Внутренний генератор напряжений целесообразно использовать при низком напряжении питания VDD, т.к. оно может быть увеличено до требуемого уровня. Генератор напряжений требует подключение внешнего заряжающего и фильтрующих конденсаторов для каждого напряжения ЖКИ (см. рисунок 25-12). Применяемые конденсаторы должны иметь низкий ток утечки. Другой особенность использования внутреннего генератора напряжений является то, что потребляемый ток зависит от числа включенных пикселей, что особенно важно в устройствах с питанием от батареек.
Рис. 25-12 Схема подключения конденсаторов в режиме внутреннего генератора напряжений
25-20 |
WWW.MICROCHIP.RU – поставки и техподдержка на русском языке |
ООО "Микро-Чип" - поставка комплектующих Microchip тел.: (095) 737-7545
25.12 Контрастность
Контрастность отображения информации сильно зависит от типа ЖКИ, режима синхронизации, уровня напряжений. Как было отмечено ранее, потенциометр используется для управления контрастностью ЖКИ, устанавливая разность между каждым из напряжений модуля LCD. Чем больше разность напряжений, тем выше контрастность.
25.13 ЖКИ стекло
Характеристика ЖКИ стекла зависит от применяемых материалов. В приложении B дан список некоторых производителей ЖКИ. Обратитесь к производителю для уточнения параметров выпускаемых ЖКИ.
25
WWW.MICROCHIP.RU – поставки и техподдержка на русском языке |
25-21 |
Раздел 25. Модуль LCD |
DS33023A |
|
|
25.14Инициализация
Впримере 25-5 показана инициализация модуля LCD, все сегменты очищены.
Пример 25-5 Инициализация модуля LCD
BCF |
PIR1,LCDIF |
; Сбросить флаг прерываний от модуля LCD |
BCF |
STATUS,RP0 |
; Выбрать банк 2 |
BSF |
STATUS,RP1 |
; Установить частоту фрейма ~37Гц |
MOVLW |
0x06 |
|
MOVWF |
LCDPS |
; Все выводы работают как драйверы LCD |
MOVLW |
0xff |
|
MOVWF |
LCDSE |
; Работа в SLEEP режиме, |
MOVLW |
0x17 |
|
|
|
; внутренний генератор напряжений включен |
MOVWF |
LCDCON |
; Тактовый сигнал от генератора TMR1, 1/4 MUX |
CLRF |
LCDD00 |
; Очистить все регистры данных, |
CLRF |
LCDD01 |
; все пиксели выключены |
CLRF |
LCDD02 |
|
CLRF |
LCDD03 |
|
CLRF |
LCDD04 |
|
CLRF |
LCDD05 |
|
CLRF |
LCDD06 |
|
CLRF |
LCDD07 |
|
CLRF |
LCDD08 |
|
CLRF |
LCDD09 |
|
CLRF |
LCDD10 |
|
CLRF |
LCDD11 |
|
CLRF |
LCDD12 |
|
CLRF |
LCDD13 |
|
CLRF |
LCDD14 |
|
CLRF |
LCDD15 |
; Разрешить прерывания от модуля LCD |
BSF |
PIE1,LCDIE |
|
BSF |
LCDCON,LCDEN |
; Включить модуль LCD |
BCF |
STATUS,RP1 |
; Выбрать банк 0 |
25-22 |
WWW.MICROCHIP.RU – поставки и техподдержка на русском языке |