Не..., пора аватар Ди вешать в рамочку и молиться, молиться ... Заодно и бубном постучать...HHIMERA писал(а): Не нужно сгущать краски...
Работа с ЖКИ на контроллере HD44780 и его аналогах
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
- Реклама
- tantrum
- Мучитель микросхем
- Сообщения: 447
- Зарегистрирован: Сб фев 09, 2013 11:39:13
- Откуда: Украина, Марганец
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Всем привет. Приобрел LCD 16x2 с данным контроллером. Перерыл весь интернет - не нашел кода на Atmel Studio, который просто выводит текст/переменную на экран.
Помогите, пожалуста. Максимально простую
Помогите, пожалуста. Максимально простую
- Gudd-Head
- Друг Кота
- Сообщения: 20092
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Однакоtantrum писал(а):не нашел кода на Atmel Studio
Обычно пишут или на АСМе, или на Сях.
А вы скурили что-то злое и пишите на Студии?
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
-
Alexeyslav
- Друг Кота
- Сообщения: 4550
- Зарегистрирован: Чт май 05, 2011 21:26:34
- Откуда: Украина, Славутич
- Контактная информация:
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Максимально простое это надо Arduino смотреть.
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
самый простой код, который выводит текст на экран:tantrum писал(а):Приобрел LCD 16x2 с данным контроллером. Перерыл весь интернет - не нашел кода на Atmel Studio, который просто выводит текст/переменную на экран.
Помогите, пожалуста. Максимально простую
Код: Выделить всё
#include <avr/io.h>
#include "lcd_io.h"
int main(void){
printf("HELLO, WORLD\nI like WinAVR!");
return 0;
}вряд ли у ардуино будет прощеAlexeyslav писал(а):Максимально простое это надо Arduino смотреть.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Реклама
- tantrum
- Мучитель микросхем
- Сообщения: 447
- Зарегистрирован: Сб фев 09, 2013 11:39:13
- Откуда: Украина, Марганец
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
ARV
Спасибо большое! А синтаксис у WinAVR и Atmel Studio одинаковый?
Gudd-Head
Меня Atmel Studio устраивает.
Спасибо большое! А синтаксис у WinAVR и Atmel Studio одинаковый?
Gudd-Head
Меня Atmel Studio устраивает.
- Gudd-Head
- Друг Кота
- Сообщения: 20092
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Подозреваю что вы всё-таки пишете на СИ.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
- tantrum
- Мучитель микросхем
- Сообщения: 447
- Зарегистрирован: Сб фев 09, 2013 11:39:13
- Откуда: Украина, Марганец
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Gudd-Head
Естественно.
Естественно.
- Gudd-Head
- Друг Кота
- Сообщения: 20092
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Так и надо было говорить, потому что в Студии можно писать и на АСМе.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
6-я студия использует более свежую версию AVR-GCC, чем WinAVR. так как обычно свежее поддерживает все предыдущее, проблем быть не должно.tantrum писал(а):А синтаксис у WinAVR и Atmel Studio одинаковый?
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- tantrum
- Мучитель микросхем
- Сообщения: 447
- Зарегистрирован: Сб фев 09, 2013 11:39:13
- Откуда: Украина, Марганец
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
А не подскажете, как можно выводить русские буквы на дисплей?
Дисплей такой:
http://1.bp.blogspot.com/-JfBo6DWlSvM/U ... CD16x2.JPG
Дисплей такой:
http://1.bp.blogspot.com/-JfBo6DWlSvM/U ... CD16x2.JPG
- Gudd-Head
- Друг Кота
- Сообщения: 20092
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
А он вообще русифицирован (шрифты есть)?
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
- tantrum
- Мучитель микросхем
- Сообщения: 447
- Зарегистрирован: Сб фев 09, 2013 11:39:13
- Откуда: Украина, Марганец
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Я не знаю, честно говоря, впервые имею дело с LCD.
P.S. Я же не зря показал, какой у меня LCD
P.S. Я же не зря показал, какой у меня LCD
- WiseLord
- Друг Кота
- Сообщения: 4905
- Зарегистрирован: Чт апр 11, 2013 11:19:59
- Откуда: Минск
- Контактная информация:
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Если в дисплей прошита таблица русских символов - просто код нужного символа выводить. Учитывая, что для более плотной упаковки символов в таблице обычно есть только те русские символы, у которых нет латинских аналогов с таким же начертанием. Т.е. вместо русской "А" нужно печатать латинскую "A" и т.д. Впрочем, некоторые индикаторы российского производства имеют более привычные таблицы символов, типа той же cp1251.
Если же символов нужных нет - можно сгенерировать до 8-ми пользовательских.
P.S. В цикле от 0 до 255 тупым перебором выведите все символы, узнаете - русифицирован или нет. Я похожие видел, использовал (видео) - там кириллицы не было, генерировал нужное "на лету".
Если же символов нужных нет - можно сгенерировать до 8-ми пользовательских.
P.S. В цикле от 0 до 255 тупым перебором выведите все символы, узнаете - русифицирован или нет. Я похожие видел, использовал (видео) - там кириллицы не было, генерировал нужное "на лету".
- tantrum
- Мучитель микросхем
- Сообщения: 447
- Зарегистрирован: Сб фев 09, 2013 11:39:13
- Откуда: Украина, Марганец
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Как это узнать?WiseLord писал(а):Если в дисплей прошита таблица русских символов
Можно поподробнее, пожалуйста?WiseLord писал(а):Если же символов нужных нет - можно сгенерировать до 8-ми пользовательских.
- WiseLord
- Друг Кота
- Сообщения: 4905
- Зарегистрирован: Чт апр 11, 2013 11:19:59
- Откуда: Минск
- Контактная информация:
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
В даташите на hd44780/ks0066 всё расписано.
Если в двух словах - объяснять, то как-то так:
- В дисплей можно послать байт команды (rs=0) или байт данных (rs=1). Соответственно, посылая в цикле данные от 0 до 255 можно перебрать всю таблицу символов. Естественно, каждый раз позиционируя курсор в нужное место (например, в точку 0, 0) чтобы не "печатать" мимо экрана.
- Вся память в дисплее делится на 2 области - область памяти DDRAM (ОЗУ для хранения текста) и область CGRAM (ОЗУ для пользовательских символов):
Записать в CGRAM = послать команду 0b01xxxxxx, где xxxxxx - адрес (от 0 до 63, т.е. всего 64 бита = 8 байт)
Записать в DDRAM = послать команду 0b1xxxxxxx, где xxxxxxx - адрес (от 0 до 127).
Таким образом, чтобы записать в дисплей нужно:
1. Установить курсор в нужную строку и столбец (т.е. задать некий адрес в DDRAM). Т.е. дать команду (rs = 0) 0b1xxxxxxx.
2. Записать нужный байт данных по таблице символов (т.е. некое число в диапазоне 0..255, при rs = 1).
При этом первые 8 таких чисел (0..7) берутся не из таблицы символов, зашитой на производстве методом масочного ПЗУ, а из области CGRAM.
Каждому этому числу соответствует 8 байт CGRAM, в которых, если смотреть на двоичное представление чисел, и нарисован символ.
Вот, например, как я формирую массив с русскими буквами:
Дальше в коде я записываю этот массив (64 байта) в область CGRAM, и могу, например, русские слова выводить как последовательный вывод байтов:
УЛИЦА => 0x00, 0x01, 0x02, 0x03, 'A'
БАТАРЕЯ => 0x04, 'A', 'T', 'A', 'P', 'E', 0x05
САЛОН => 'C', 'A', 0x01, 'O', 'H'
Для понятности, разберём русскую букву "Я":
0x0F, 0x11, 0x11, 0x0F, 0x05, 0x09, 0x11, 0x00
В двоичном виде это:
0b01111
0b10001
0b10001
0b01111
0b00101
0b01001
0b10001
0b00000
Буква вполне просматривается.
Если в двух словах - объяснять, то как-то так:
- В дисплей можно послать байт команды (rs=0) или байт данных (rs=1). Соответственно, посылая в цикле данные от 0 до 255 можно перебрать всю таблицу символов. Естественно, каждый раз позиционируя курсор в нужное место (например, в точку 0, 0) чтобы не "печатать" мимо экрана.
- Вся память в дисплее делится на 2 области - область памяти DDRAM (ОЗУ для хранения текста) и область CGRAM (ОЗУ для пользовательских символов):
Записать в CGRAM = послать команду 0b01xxxxxx, где xxxxxx - адрес (от 0 до 63, т.е. всего 64 бита = 8 байт)
Записать в DDRAM = послать команду 0b1xxxxxxx, где xxxxxxx - адрес (от 0 до 127).
Таким образом, чтобы записать в дисплей нужно:
1. Установить курсор в нужную строку и столбец (т.е. задать некий адрес в DDRAM). Т.е. дать команду (rs = 0) 0b1xxxxxxx.
2. Записать нужный байт данных по таблице символов (т.е. некое число в диапазоне 0..255, при rs = 1).
При этом первые 8 таких чисел (0..7) берутся не из таблицы символов, зашитой на производстве методом масочного ПЗУ, а из области CGRAM.
Каждому этому числу соответствует 8 байт CGRAM, в которых, если смотреть на двоичное представление чисел, и нарисован символ.
Вот, например, как я формирую массив с русскими буквами:
Дальше в коде я записываю этот массив (64 байта) в область CGRAM, и могу, например, русские слова выводить как последовательный вывод байтов:
УЛИЦА => 0x00, 0x01, 0x02, 0x03, 'A'
БАТАРЕЯ => 0x04, 'A', 'T', 'A', 'P', 'E', 0x05
САЛОН => 'C', 'A', 0x01, 'O', 'H'
Для понятности, разберём русскую букву "Я":
0x0F, 0x11, 0x11, 0x0F, 0x05, 0x09, 0x11, 0x00
В двоичном виде это:
0b01111
0b10001
0b10001
0b01111
0b00101
0b01001
0b10001
0b00000
Буква вполне просматривается.
- tantrum
- Мучитель микросхем
- Сообщения: 447
- Зарегистрирован: Сб фев 09, 2013 11:39:13
- Откуда: Украина, Марганец
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Спасибо, но, честно говоря, не все понял.
Можно в виде кода (просто вывести хотябы одно русское слово на дисплей)?
P.S.
Можно в виде кода (просто вывести хотябы одно русское слово на дисплей)?
P.S.
Ухты, точноWiseLord писал(а):Буква вполне просматривается.
- WiseLord
- Друг Кота
- Сообщения: 4905
- Зарегистрирован: Чт апр 11, 2013 11:19:59
- Откуда: Минск
- Контактная информация:
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Вот пример с моей библиотекой и примером генерации русских символов. Там же и файл для Proteus.
- Вложения
-
- testcg.zip
- (33.3 КБ) 197 скачиваний
- tantrum
- Мучитель микросхем
- Сообщения: 447
- Зарегистрирован: Сб фев 09, 2013 11:39:13
- Откуда: Украина, Марганец
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Ой-ой-ой как все запутано. Еще и протеус отказывается "воспроизводить" схему.
- tantrum
- Мучитель микросхем
- Сообщения: 447
- Зарегистрирован: Сб фев 09, 2013 11:39:13
- Откуда: Украина, Марганец
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
А еще: не подскажете, как выводить переменную на символьный lcd?
Типа как на графический
Lcd_printf (0,0,FONT_1X,((readADC(0)*2.56*(15/2.56))/1023),2);
Типа как на графический
Lcd_printf (0,0,FONT_1X,((readADC(0)*2.56*(15/2.56))/1023),2);


