Работа с ЖКИ на контроллере HD44780 и его аналогах

Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
uk8amk
Поставщик валерьянки для Кота
Сообщения: 2222
Зарегистрирован: Вт ноя 27, 2007 11:32:06
Откуда: Tashkent

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение uk8amk »

pokk писал(а):делаю так но он что-то нечего не выводит (при целых числах работает )

CVAVR?
В настройках проекта вкладка C Compiler список (s)printf Features выбрать float.
ЗЫ. К самому экранчику эта ф-ция не имеет никакого отношения.
pokk
Вымогатель припоя
Сообщения: 574
Зарегистрирован: Вт ноя 02, 2010 17:46:37

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение pokk »

В настройках проекта вкладка C Compiler список (s)printf Features выбрать float.

Благодарю всё заработало. А что это означает ? изначально CodeVisionAVR не знает такой тип данных ?
Вложения
LCD C++.rar
(67.73 КБ) 232 скачивания
ut1wpr
Вымогатель припоя
Сообщения: 581
Зарегистрирован: Ср янв 05, 2011 10:03:18

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение ut1wpr »

pokk писал(а):
В настройках проекта вкладка C Compiler список (s)printf Features выбрать float.

Благодарю всё заработало. А что это означает ? изначально CodeVisionAVR не знает такой тип данных ?
Все он знает. Просто функция (s)printf очень "могучая" и в полном виде потянет из библиотеки большой размер кода. В разных версиях компилятора есть несколько опций для описания возможностей этой функции. Подумайте, зачем вам возможности форматирования и вывода float, если вы в программе работаете только с целыми числами. Или если у вас нет строк, зачем опции их вывода и форматирования? Чем больше вариантов выбора конфигурации printf, тем более совершенен и гибок компилятор.
Для полного понимания сравните два размера кода одной и той же программы с включенной опцией плавучки и без нее. Будете неприятно удивлены... :)
С уважением,
Виктор.
Аватара пользователя
Coldheart
Прорезались зубы
Сообщения: 244
Зарегистрирован: Пт сен 10, 2010 20:39:32
Откуда: Украина Луганская обл.

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение Coldheart »

После 3-х дневной борьбы с дисплеем.
Он все таки сдался и начал показывать то что я в него засылаю ) :))) :))) :))) :))) :))) :))) :))) :)))
Ошибка оказалось в том, что я забыл проинитить стек. :facepalm: :facepalm:
Удивительно но ни Студия ни Протеус даже и не заикнулись.
Всем огромнейшое спасибо! Удачи ВАМ! И всего самого хорошего!

Изображение
Последний раз редактировалось Coldheart Вс авг 26, 2012 17:05:05, всего редактировалось 1 раз.
Аватара пользователя
Jack_A
Друг Кота
Сообщения: 6307
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение Jack_A »

Еще одна копейка в копилку Си-шников :) - компайлер делает это автоматически. А для АСМ-щиков - нужно пользоваться шаблоном инициализации. У меня таким шаблоном является копия одной из уже ранее отработанных программ на том же камне - подпиливаю ее под нужные операции.
Аватара пользователя
vitalik_1984
Поставщик валерьянки для Кота
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень
Контактная информация:

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение vitalik_1984 »

Копия это да, но подпиливать это, конечно, чревато.Лучше на раз обязательные строки записать в такой файл и потом начинать работу с открытия его и сохранения под другим именем.Вроде бы как таковых шаблонов нет в студии. может кто встречал?
В поисках истины человек развивается.
Аватара пользователя
Sergey78
Открыл глаза
Сообщения: 69
Зарегистрирован: Пт июл 08, 2011 09:03:07

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение Sergey78 »

WH1602C-YGH-CTK многослойная или там всего два слоя проводников ? Через лулу не могу разглядеть наличие внутренних слоев.
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение Gudd-Head »

Так принципиально?
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Аватара пользователя
Sergey78
Открыл глаза
Сообщения: 69
Зарегистрирован: Пт июл 08, 2011 09:03:07

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение Sergey78 »

Ага, дабы исключить вариант что я при заворачивании хвостика крепежной рамки (со стороны где их 6 ) замкнул слои.
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение Gudd-Head »

Скорее всего двухсторонняя.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Аватара пользователя
Sergey78
Открыл глаза
Сообщения: 69
Зарегистрирован: Пт июл 08, 2011 09:03:07

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение Sergey78 »

Как можно протестировать этот дисплей на работоспособность без подключения его к внешнему контроллеру ? Есть у него возможность при замыкании некоторых его входов отображать символы теста на дисплее ? Ауу, люди. :)))
Аватара пользователя
vitalik_1984
Поставщик валерьянки для Кота
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень
Контактная информация:

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение vitalik_1984 »

Вроде как без инициализации должна гореть верхняя строка.Все заполненные прямоугольники.
А вообще вы можете сами своими руками выставить нужные состояния ног и он будет показывать то, что нужно.Нужно всего лишь 7 переключателей и голову.
В поисках истины человек развивается.
Аватара пользователя
Sergey78
Открыл глаза
Сообщения: 69
Зарегистрирован: Пт июл 08, 2011 09:03:07

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение Sergey78 »

Вроде как без инициализации должна гореть верхняя строка.Все заполненные прямоугольники.

Тоесть при простом включении индикатора без подачи с внешнего контроллера сигналов данных, он должен показывать квадраты на верхней строке ?
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение Gudd-Head »

Sergey78 писал(а):Тоесть при простом включении индикатора без подачи с внешнего контроллера сигналов данных, он должен показывать квадраты на верхней строке ?

Надо ещё контрастность отрегулировать.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
medved10
Родился
Сообщения: 4
Зарегистрирован: Вт июл 24, 2012 18:07:38

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение medved10 »

Скиньте библу для работы с кайл мвижн плз
а то с аврстудио не хочу связываться
Biggy
Открыл глаза
Сообщения: 71
Зарегистрирован: Вт дек 09, 2008 20:54:30
Откуда: Златоуст
Контактная информация:

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение Biggy »

Люди, помогите. Как на обычный 16х2 HD44780 вывести значение переменной на ассемблере!!!
Изображение
Аватара пользователя
Jack_A
Друг Кота
Сообщения: 6307
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение Jack_A »

Помогаю. Тут 2 слабо связанные меж собой задачи.
1. Вывести хоть какую строку на ЖКИ - так об этом все 20 страниц этой ветки.
2. Преобразовать значение переменной в текстовый формат. Опять же - какой вид переменной - целая, беззнаковая, float ? И ассемблеры тоже разные для разных МК.
Я так понимаю - прикалываемся ?
Biggy
Открыл глаза
Сообщения: 71
Зарегистрирован: Вт дек 09, 2008 20:54:30
Откуда: Златоуст
Контактная информация:

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение Biggy »

Скорее не от желания прикалываться, а от безграмотности.

Контроллеры AVR. Ассемблер их стандартный, "студийный".
Я конечно плохо понимаю, но вроде ассемблер может работать только с целочисленной арифметикой. Хотя если есть простые способы вывести дробные беззнаковые это было бы чудесно. Но пока вопрос лишь вывести значение РОН на экран.
Да, именно преобразовать используя Bin2Bcd. И как это скормить экрану.
Изображение
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение Gudd-Head »

Biggy писал(а):вывести значение РОН на экран

Допустим, в РОН число от 0 до 9. Тогда смотрим таблицу символов экрана, находим там "адрес" нуля, в программе прибавляем к значению, хранящемуся в РОН адрес нуля и выводим на экран символ с адресом, хранящимся в РОН — это будет цифра от 0 до 9.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Аватара пользователя
Jack_A
Друг Кота
Сообщения: 6307
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение Jack_A »

Ассемблеру, грубо говоря, глубоко по фиг, с какой арифметикой работать, хоть с тринадцатиричной, бо ассемблер - всего лишь мнемоническая запись машинных команд, и любую операцию, которую можно разбить на последовательность машинных команд, можно опис`ать на ассемблере. Формат представления данных определяет программист, конечно, лучше, если он совпадает с каким-либо стандартным представлением, но если и нет - не беда. У меня на одном проекте была напряженка с быстродействием и памятью, и я смастерил простую трехбайтовую плавучку : один байт - знак и порядок, два байта - мантисса. Кто брезгливо оттопырив губу скажет, что точность и диапазон некузявые, спорить с ним не стану, но для наших задач хватало с запасом, а работало раза в 3 быстрее плавучки, выдранной из Сишных библиотек.
Поэтому процесс ведем, как я сказал, в два этапа.
1. В соответствии с заданным представлением преобразовываем значение в строку символов, для которой в памяти отводим буфер нужной длины. Например, 1-байтовое беззнаковое целое, лежит в r24.

Спойлер

Код: Выделить всё

cv_is:   push   r16
   push   r17
   push   r24
   ldi   r17,100
   rcall   Sub100
   ldi   r17,10
   rcall   Sub100
   ori   r24,0x30
   st   y+,r16
              ldi           r16,0
              st            y+,r16
   pop   r24
   pop   r17
   pop   r16
   ret
   ;
Sub100:   ldi   r16,0x30
_20:   sub   r24,r17
   brcs   _40
   inc   r16
   rjmp   _20
_40:   st   y+,r16
   add   r24,r17
   ret


В результате символьное представление числа ( 3 байта ) попадет в буфер, указанный регистровой парой YL,YH. Вывод не очень красивый, т.к. не подавлены впереди стоящие нули. Красоту предлагаю навести самому :) .

Теперь указатель на выведенную строку передаем подпрограмме вывода на дисплей, которая в соответствии с рекомендациями предыдущих 20 страниц ее и выведет, в конце выскочив по нулевому байту = ограничитель строки.

----------
Знание -- силой !
Ответить

Вернуться в «Периферия»