Differences

This shows you the differences between two versions of the page.

Link to this comparison view

ru:examples:display:lcd_alphanumeric [2010/11/09 09:25] – создано eduardtlmkru:examples:display:lcd_alphanumeric [Unknown date] (current) – removed - external edit (Unknown date) 127.0.0.1
Line 1: Line 1:
-====== Буквенно-цифровой LCD====== 
  
-//Необходимые знания: [HW] [[et:hardware:homelab:lcd]], [LIB] [[et:software:homelab:library:module:lcd_alphanumeric]], [LIB] [[et:software:homelab:library:delay]], \\ [PRT] [[et:examples:timer:periodic_interrupt]]// 
- 
-===== Теория ===== 
- 
-Буквенно-цифровой LCD это жидкокристаллический экран (на английском языке //liquid crystal display//), который предназначен для отображения букв и цифр. На английском языке он называется //alphanumeric// LCD. В простейших жидкокристаллических экранах используются жидкие кристаллы, установленные между просвечивающимися электродами, что меняет поляризацию света, проходящего через электрическое поле. Электроды покрыты так же поляризационными фильтрами, которые гарантируют, что только в одну сторону поляризированный свет может пройти через весь экран. Если жидкий кристалл меняет поляризацию под воздействием электрического поля, тогда свет не может пройти через экран или его часть (сегмент) и он выглядит темным. 
- 
-Основная характеризующая буквенно-цифрового LCD это расположение его сегментов. Экран разделен на множество индикаторов. У каждого индикатора имеется достаточно много сегментов для отображения букв и цифр или он образуется из матрицы, состоящей из маленьких сегментов (пикселей) квадратной формы. К примеру, 5×7 пиксельной матрицы достаточно для отображения всех цифр, латинского алфавита и умляутов. Обычно существует 1-4 ряда и 8-32 столбика индикаторов. У каждого индикатора есть маленький промежуток, точно также как и у букв в тексте. 
- 
-[{{  :examples:display:lcd_alphanumeric:lcd_alphanumeric_abc.png?200|Текст, составленный из пиксельной матрицы буквенно-цифрового LCD}}] 
- 
-Экран буквенно-цифрового LCD состоит помимо самого экрана еще из контроллера, который управляет сегментами экрана с помощью приказов, приходящих из сетевого интерфейса. В контроллере заранее запрограммирована карта букв, где у каждой буквы, цифры или знака свой порядковый номер или индекс. Отображение текста на экране происходит в основном при передаче индексов букв на LCD контроллер. В действительности, перед тем как что-либо будет отображаться, следует послать множество управляющих приказов LCD контроллеру. Перед использованием каждого конкретного LCD экрана следует ознакомиться с его спецификацией, так как LCD экраны очень разные и управление ими происходит по разному. 
- 
-Буквенно-цифровые LCD экраны обычно с пассивной матрицей, где обновление сегментов электрического поля происходит поочередно. Из этого следует, что экраны с пассивной матрицей медленнее и обладают худшей контрастностью, чем экраны с активной матрицей, где загрузкой каждого сегмента управляет отдельный транзистор. LCD экраны существуют как с зеркальной задней поверхностью, так и с задней подсветкой, иногда даже состоящей из нескольких цветов. Цветов сегментов у буквенно-цифровых LCD экранов в большинстве случаев один – как правило черный, но есть так же экраны с белыми и разноцветными надписями. 
- 
-===== Практика ===== 
- 
-Дигитальный модуль Домашней Лаборатории соединяется с 2×16 знаковым буквенно-цифровом LCD WC1602A. Для управления экраном имеется 4-битная шина данных и 3 управляющих вывода, но его протокол общения слишком объемный, чтобы его здесь объяснять. Для упрощения использования экрана в библиотеке Домашней Лаборатории имеются соответствующие функции, исходный код которых находится на интернет-странице Домашней Лаборатории. 
- 
-Перед использованием экрана первым делом следует восстановить его исходные параметры. Для данной цели существует функция //lcd_alpha_init//, с помощью которой можно добавить на экран мигающий курсор. На экране, не зависимо от того видно это или нет, одна позиция курсора постоянно активна - туда вводится следующая буква. Следовательно, перед вводом текста, требуется навести курсор в нужное место. Для изменения местоположения курсора существует функция //lcd_alpha_goto_xy// и для отображения текста функция //lcd_alpha_write_string//. Все функции буквенно-цифрового LCD объяснены в данной библиотеке.  
- 
-Следующий программный код демонстрирует использование буквенно-цифрового LCD в качестве часов. Время начинается с „00:00:00“ и увеличивается, примерно, с каждой секундой. Так как счет времени происходит с помощью функции задержки, то это происходит не совсем точно. Неточность объясняет упражнение переодического прерывания. Программа считает секунды и переводит их с помощью вычисления в минуты и секунды. Для отображения текста часов используется стандартная функция на языке Си - //sprintf//. 
- 
-<code c> 
-// 
-// Пример использования буквенно-цифрового LCD Домашней Лаборатории. 
-// На LCD отображается время начиная с начала программы. 
-// 
-#include <stdio.h> 
-#include <homelab/module/lcd_alpha.h> 
-#include <homelab/delay.h> 
- 
-// 
-// Основная программа 
-// 
-int main(void) 
-{ 
- int seconds = 0; 
- char text[16]; 
- 
- // Настройка LCD экрана 
- lcd_alpha_init(LCD_ALPHA_DISP_ON); 
- 
- // Очистка LCD экрана 
- lcd_alpha_clear(); 
- 
- // Название программы 
- lcd_alpha_write_string("Счетчик времени"); 
- 
- // Бесконечный цикл  
- while (true) 
- { 
- // Перевод секунд в форму часов 
- // чч:мм:сс 
- sprintf(text, "%02d:%02d:%02d", 
- (seconds / 3600) % 24, 
- (seconds / 60) % 60, 
- seconds % 60); 
- 
- // Отображение текста часов в началe второго ряда LCD 
- lcd_alpha_goto_xy(0, 1); 
- lcd_alpha_write_string(text); 
-  
- // Увеличение секунд на 1 
- seconds++; 
-  
- // Аппаратная пауза в 1000 миллисекунд 
- hw_delay_ms(1000); 
- } 
-} 
-</code> 
ru/examples/display/lcd_alphanumeric.1289287522.txt.gz · Last modified: (external edit)
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0