Программа Сервисный Центр
0

Библиотека AVR GCC для управления ЖК индикатором - использование различных выводов микроконтроллера. Часть 2


Примечание. Выборки исходного кода, размещенные в тексте описания, использовать в своих проектах не рекомендуется. В конце описания имеется ссылка на архив с полным исходным кодом к проекту. В первой части мы рассмотрели конфигурирование библиотеки AVR-GCC для работы с символьными ЖК индикаторами в 4-битном режиме при подключении к выводам различных портов микроконтроллера. Чтобы убедиться, что библиотека функционирует правильно, рассмотрим пример с подключением индикатора по 8-битной шине. Подключение индикатора осуществим согласно схемы.
Библиотека AVR GCC для управления ЖК индикатором - использование различных выводов микроконтроллера. Часть 2
Итак, в программе микроконтроллера сперва, как вы помните, нужно установить режим работы: //используется 4-битный режмим работы ЖК индикатора (при стандартном подключении индикатора к МК) //#define LCD_4BIT //используется 8-битный режмим работы ЖК индикатора (при стандартном подключении индикатора к МК) //#define LCD_8BIT //используется 4-битный режмим работы ЖК индикатора (при использовании разных выводов МК) //#define LCD_4BIT_M //используется 8-битный режмим работы ЖК индикатора (при использовании разных выводов МК) #define LCD_8BIT_M Далее, нам необходимо связать выводы индикатора с линиями ввода/вывода микроконтроллера: #define LCD_RS 5 //вывод порта МК 5 подключен к LCD RS #define LCD_RW 1 //вывод порта МК 1 подключен к LCD R/W #define LCD_E 2 //вывод порта МК 2 подключен к LCD E #define LCD_D0 0 //вывод порта МК 0 подключен к LCD D0 #define LCD_D1 7 //вывод порта МК 7 подключен к LCD D1 #define LCD_D2 1 //вывод порта МК 1 подключен к LCD D2 #define LCD_D3 2 //вывод порта МК 2 подключен к LCD D3 #define LCD_D4 4 //вывод порта МК 4 подключен к LCD D4 #define LCD_D5 2 //вывод порта МК 2 подключен к LCD D5 #define LCD_D6 6 //вывод порта МК 6 подключен к LCD D6 #define LCD_D7 0 //вывод порта МК 0 подключен к LCD D7 И теперь мы должны определить порт и регистр направления данных для каждого вывода микроконтроллера. Так как выводы индикатора могут быть подключены к разным портам, нам нужно работать с индивидуальными выводами. Редактируем следующую часть: #ifdef LCD_4BIT_M || LCD_8BIT_M //8-битный или 4-битный режим работы (при использовании разных выводов МК) #define LDPRS PORTB //назначаем порт для линии RS и регистр направления данных #define LDDRS DDRB #define LDPRW PORTD //назначаем порт для линии RW и регистр направления данных #define LDDRW DDRD #define LDPE PORTD //назначаем порт для линии E и регистр направления данных #define LDDE DDRD #define LDPD0 PORTС //назначаем порт для линии D0 и регистр направления данных #define LDDD0 DDRС #define LDPD1 PORTD //назначаем порт для линии D1 и регистр направления данных #define LDDD1 DDRD #define LDPD2 PORTС //назначаем порт для линии D2 и регистр направления данных #define LDDD2 DDRС #define LDPD3 PORTB //назначаем порт для линии D3 и регистр направления данных #define LDDD3 DDRB #define LDPD4 PORTD //назначаем порт для линии D4 и регистр направления данных #define LDDD4 DDRD #define LDPD5 PORTC //назначаем порт для линии D5 и регистр направления данных #define LDDD5 DDRC #define LDPD6 PORTD //назначаем порт для линии D6 и регистр направления данных #define LDDD6 DDRD #define LDPD7 PORTB //назначаем порт для линии D7 и регистр направления данных #define LDDD7 DDRB #endif Конфигурирование библиотеки AVR-GCC для 4-битного режима при стандартном подключении индикатора В случае стандартного включения ЖК индикатора по 4-битной шине (байт-синхронизированное включение) конфигурирование осуществляется как и в прошлой версии библиотеки. Нужно будет только указать, что мы используем данный режим. //используется 4-битный режмим работы ЖК индикатора (при стандартном подключении индикатора к МК) #define LCD_4BIT Далее необходимо указать номера выводов микроконтроллера для сигналов управления и данных индикатора. #define LCD_RS 0 //вывод порта МК 5 подключен к LCD RS #define LCD_RW 1 //вывод порта МК 5 подключен к LCD R/W #define LCD_E 2 //вывод порта МК 5 подключен к LCD E #define LCD_D0 0 //вывод порта МК 5 подключен к LCD D0 #define LCD_D1 1 //вывод порта МК 5 подключен к LCDD1 #define LCD_D2 2 //вывод порта МК 5 подключен к LCD D2 #define LCD_D3 3 //вывод порта МК 5 подключен к LCD D3 #define LCD_D4 4 //вывод порта МК 5 подключен к LCDD4 #define LCD_D5 5 //вывод порта МК 5 подключен к LCD D5 #define LCD_D6 6 //вывод порта МК 5 подключен к LCD D6 #define LCD_D7 7 //вывод порта МК 5 подключен к LCD D7 Затем определяем порты и регистры управления, как указано ниже. #if defined (LCD_4BIT)||defined (LCD_8BIT) #define LDP PORTD //определяем порт микроконтроллера, подключенного к шине данных LCD #define LCP PORTD //определяем порт микроконтроллера, подключенного к шине управления LCD #define LDDR DDRD //определяем регистр управления портом микроконтроллера, подключенного к шине данных LCD #define LCDR DDRD //определяем регистр управления портом микроконтроллера, подключенного к шине управления LCD #endif Эти же операции необходимо выполнить при стандартном подключении индикатора по 8-битной шине. Следует заметить, что при байт-синхронизированном подключении индикатора обновление индикатора происходит быстрее, т .к. в 4-битном или 8-битном режиме данные принимаются быстрее – операции с целыми байтами или полубайтами. В смешанном режиме состояние каждого отдельного вывода микроконтроллера устанавливается отдельно. Это увеличивает число команд, используемых для передачи одного байта. Например, для передачи одного байта с помощью данной библиотеки, при подключении индикатора к различным выводам микроконтроллера, можно использовать данную функцию: static void LCDMix_8Bit(uint8_t data) { if((data)&(0b10000000)) LDPD7 |=1
Библиотека AVR GCC для управления ЖК индикатором - использование различных выводов микроконтроллера. Часть 2
Библиотека AVR GCC для управления ЖК индикатором - использование различных выводов микроконтроллера. Часть 2
LCD_D7; else LDPD7 &=~(1
Библиотека AVR GCC для управления ЖК индикатором - использование различных выводов микроконтроллера. Часть 2
Библиотека AVR GCC для управления ЖК индикатором - использование различных выводов микроконтроллера. Часть 2
LCD_D7); if((data)&(0b01000000)) LDPD6 |=1
Библиотека AVR GCC для управления ЖК индикатором - использование различных выводов микроконтроллера. Часть 2
Библиотека AVR GCC для управления ЖК индикатором - использование различных выводов микроконтроллера. Часть 2
LCD_D6; else LDPD6 &=~(1
Библиотека AVR GCC для управления ЖК индикатором - использование различных выводов микроконтроллера. Часть 2
Библиотека AVR GCC для управления ЖК индикатором - использование различных выводов микроконтроллера. Часть 2
LCD_D6); if((data)&(0b00100000)) LDPD5 |=1
Библиотека AVR GCC для управления ЖК индикатором - использование различных выводов микроконтроллера. Часть 2
Библиотека AVR GCC для управления ЖК индикатором - использование различных выводов микроконтроллера. Часть 2
LCD_D5; else LDPD5&=~(1
Библиотека AVR GCC для управления ЖК индикатором - использование различных выводов микроконтроллера. Часть 2
Библиотека AVR GCC для управления ЖК индикатором - использование различных выводов микроконтроллера. Часть 2
LCD_D5); if((data)&(0b00010000)) LDPD4 |=1
Библиотека AVR GCC для управления ЖК индикатором - использование различных выводов микроконтроллера. Часть 2
Библиотека AVR GCC для управления ЖК индикатором - использование различных выводов микроконтроллера. Часть 2
LCD_D4; else LDPD4 &=~(1
Библиотека AVR GCC для управления ЖК индикатором - использование различных выводов микроконтроллера. Часть 2
Библиотека AVR GCC для управления ЖК индикатором - использование различных выводов микроконтроллера. Часть 2
LCD_D4); if((data)&(0b00001000)) LDPD3 |=1
Библиотека AVR GCC для управления ЖК индикатором - использование различных выводов микроконтроллера. Часть 2
Библиотека AVR GCC для управления ЖК индикатором - использование различных выводов микроконтроллера. Часть 2
LCD_D3; else LDPD3 &=~(1
Библиотека AVR GCC для управления ЖК индикатором - использование различных выводов микроконтроллера. Часть 2
Библиотека AVR GCC для управления ЖК индикатором - использование различных выводов микроконтроллера. Часть 2
LCD_D3); if((data)&(0b00000100)) LDPD2 |=1
Библиотека AVR GCC для управления ЖК индикатором - использование различных выводов микроконтроллера. Часть 2
Библиотека AVR GCC для управления ЖК индикатором - использование различных выводов микроконтроллера. Часть 2
LCD_D2; else LDPD2 &=~(1
Библиотека AVR GCC для управления ЖК индикатором - использование различных выводов микроконтроллера. Часть 2
Библиотека AVR GCC для управления ЖК индикатором - использование различных выводов микроконтроллера. Часть 2
LCD_D2); if((data)&(0b00000010)) LDPD1 |=1
Библиотека AVR GCC для управления ЖК индикатором - использование различных выводов микроконтроллера. Часть 2
Библиотека AVR GCC для управления ЖК индикатором - использование различных выводов микроконтроллера. Часть 2
LCD_D1; else LDPD1&=~(1
Библиотека AVR GCC для управления ЖК индикатором - использование различных выводов микроконтроллера. Часть 2
Библиотека AVR GCC для управления ЖК индикатором - использование различных выводов микроконтроллера. Часть 2
LCD_D1); if((data)&(0b00000001)) LDPD0 |=1
Библиотека AVR GCC для управления ЖК индикатором - использование различных выводов микроконтроллера. Часть 2
Библиотека AVR GCC для управления ЖК индикатором - использование различных выводов микроконтроллера. Часть 2
LCD_D0; else LDPD0 &=~(1
Библиотека AVR GCC для управления ЖК индикатором - использование различных выводов микроконтроллера. Часть 2
Библиотека AVR GCC для управления ЖК индикатором - использование различных выводов микроконтроллера. Часть 2
LCD_D0); } В функции проверяется каждый бит байта и устанавливается или сбрасывается соответствующий вывод порта. Другими словами, если ваше приложение отображает на индикаторе медленно меняющиеся данные, то подойдет любой режим работы. Но если вы используете ЖК индикатор/дисплей для динамического отображения данных или анимации, лучше всего выбирать стандартный способ подключения индикатора в 8- или 4-битном режиме. Загрузки Библиотека AVR-GCC с поддержкой смешанного подключения ЖК индикатора – скачать
Пример программы для управления индикатором (смешанное подключение, 4-битный режим) – скачать
Пример программы для управления индикатором (смешанное подключение, 8-битный режим) – скачатьНа английском языке: AVR-GCC LCD library - mixed pin support. Part 2

По материалам сайта www.rlocman.ru

Также рекомендуем:

 
 
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии в данной новости.
 
Обратная связь

Наши партнеры

 

Опросы

Есть ли справедливость в жизни?
Конечно есть, уверен!
Вроде как должна быть, но...
Затрудняюсь ответить...
Какая справедливость? О чем Вы?
Эх.., нет правды на свете!

 

Облако тегов

Требуется для просмотраFlash Player 9 или выше.

Показать все теги
 

Календарь публикаций

«    Декабрь 2016    »
ПнВтСрЧтПтСбВс
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 
 

Архив новостей

Декабрь 2016 (1)
Ноябрь 2016 (42)
Октябрь 2016 (34)
Сентябрь 2016 (38)
Август 2016 (34)
Июль 2016 (36)
 
Наверх Сервисные мануалы Даташиты Ремонт LCD, ЖК телевизоров LG Samsung Скрипт программы "Сервисный центр"