Работа с ЖКИ на контроллере HD44780 и его аналогах
- levaclaus
- Потрогал лапой паяльник
- Сообщения: 302
- Зарегистрирован: Пн янв 07, 2008 16:56:28
- Откуда: Минск
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
жк русифицировал, спасибо. Теперь вопрос вот какой, как двигать часть строки. Строка 40 символов, 14 заняты статичной информацией. На оставшиеся 26 может вывалиться из буфера 120 символов. Обрезать - не красиво. В принципе, известно количество принятых символов в этом буфере. Например их 50?
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Ну и в чем вопрос состоит? В 26 знакомест втиснуть 50 или 120 символов? Отобрать из них нужные, остальные в ... ? И чем в этой неразрешихе форумчане могут помочь ?
Можно организовать бегущую строку.
Можно организовать бегущую строку.
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
СКАЗОЧНИК писал(а):Итак... Благодарю всех, кто помог. Выкладываю крайний результат работы, больше переделывать его не буду, ибо считаю достаточным.
Огромное спасибо!
Отличный код, именно то, что нужно - ассемблер, 4 линии, разные порты, заработал сразу. Сэкономил кучу времени

[color=#006699]In der großen Familie nicht kluven klatz-klatz![/color]
- СКАЗОЧНИК
- Идёт направо - песнь заводит, Налево - сказку говорит.
- Сообщения: 5000
- Зарегистрирован: Чт апр 21, 2011 17:55:50
- Откуда: Иркутск
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Благодарю за отзыв.
Однако, я бы потестировал его какое-то время на наличие каких-нибудь косяков. И еще допилил бы чуток, там стоит добавить кусочек, который бы проверял ответ от ЖКИ (флаг занятости) и если он долго не приходит, по таймауту делал бы переинициализацию.
Несколько страниц выше кто-то про это говорил.
З.Ы. Я же пытался сделать его максимально компактным по занимаемой памяти.
Однако, я бы потестировал его какое-то время на наличие каких-нибудь косяков. И еще допилил бы чуток, там стоит добавить кусочек, который бы проверял ответ от ЖКИ (флаг занятости) и если он долго не приходит, по таймауту делал бы переинициализацию.
З.Ы. Я же пытался сделать его максимально компактным по занимаемой памяти.
Станислав
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Покажите пожалуйста пример на CV AVR (мега 8-16 или 8515-8535)
где выводится значение перменной на экран
фуета типа этой
"void lcd_puts(unsigned char *str)"
"cd_putchar(char[song[t]]);"
не интересует совсем
где выводится значение перменной на экран
фуета типа этой
"void lcd_puts(unsigned char *str)"
"cd_putchar(char[song[t]]);"
не интересует совсем
ух ты.... показывает
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
В таком случае, скажите нам, что интересует.12val12 писал(а): фуета типа этой
"void lcd_puts(unsigned char *str)"
"cd_putchar(char[song[t]]);"
не интересует совсем
Я, например, кроме вывода через строку, вариантов не вижу.
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
значения двух перменных
буквы и прочее кавно типа "хелло ворлд" не интересуетт
весь интернет в этом овне вывода перемнных нет.!
вот процедура для графич экрана
void print_longint_short (unsigned long int s)
{
unsigned char c9,c8,c7,c6,c5,c4,c3,c2,c1,c0;
c9=0; c8=0;c7=0;c6=0;c5=0;c4=0; // c3=0;c2=0;c1=0;
while (s>=1000000000){s-=1000000000;c9++;}
while (s>=100000000){s-=100000000;c8++;}
while (s>=10000000){s-=10000000;c7++;}
while (s>=1000000){s-=1000000;c6++;}
while (s>=100000){s-=100000;c5++;}
while (s>=10000){s-=10000;c4++;}
while (s>=1000){s-=1000;c3++;}
while (s>=100){s-=100;c2++;}
while (s>=10){s-=10;c1++;}
c0=s;
if (c9>0) { print_char(c9); }
if (c9>0 | c8>0 ) { print_char(c8); }
if (c9>0 | c8>0 | c7>0 ) { print_char(c7); }
if (c9>0 | c8>0 | c7>0 | c6>0 ) { print_char(c6); }
print_char(c5);
print_char(c4);
print_char(c3);
}
все понятно
не видел программ с таким же для HD44780 , а ведь для него еще проще чем для графич LCD -там символы в ПЗУ
буквы и прочее кавно типа "хелло ворлд" не интересуетт
весь интернет в этом овне вывода перемнных нет.!
вот процедура для графич экрана
void print_longint_short (unsigned long int s)
{
unsigned char c9,c8,c7,c6,c5,c4,c3,c2,c1,c0;
c9=0; c8=0;c7=0;c6=0;c5=0;c4=0; // c3=0;c2=0;c1=0;
while (s>=1000000000){s-=1000000000;c9++;}
while (s>=100000000){s-=100000000;c8++;}
while (s>=10000000){s-=10000000;c7++;}
while (s>=1000000){s-=1000000;c6++;}
while (s>=100000){s-=100000;c5++;}
while (s>=10000){s-=10000;c4++;}
while (s>=1000){s-=1000;c3++;}
while (s>=100){s-=100;c2++;}
while (s>=10){s-=10;c1++;}
c0=s;
if (c9>0) { print_char(c9); }
if (c9>0 | c8>0 ) { print_char(c8); }
if (c9>0 | c8>0 | c7>0 ) { print_char(c7); }
if (c9>0 | c8>0 | c7>0 | c6>0 ) { print_char(c6); }
print_char(c5);
print_char(c4);
print_char(c3);
}
все понятно
не видел программ с таким же для HD44780 , а ведь для него еще проще чем для графич LCD -там символы в ПЗУ
ух ты.... показывает
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Тогда совсем не понятно, учитывая, что @уета типа print_char - не интересует.12val12 писал(а):вот процедура для графич экрана
..........
..........
if (c9>0) { print_char(c9); }
if (c9>0 | c8>0 ) { print_char(c8); }
if (c9>0 | c8>0 | c7>0 ) { print_char(c7); }
if (c9>0 | c8>0 | c7>0 | c6>0 ) { print_char(c6); }
print_char(c5);
print_char(c4);
print_char(c3);
.......
......
Вы уж определитесь, что вам нужно и что интересует.
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
ВЫВЕСТИ 2 ПЕЕРМЕННЫХ ЛОНГ
1 ШТ В ВЕРХНЮЮ СТРОКУ
1 ШТ В НИЖНЮЮ СТРОКУ
ХОЧУ ГОТОВЫЙ ПРИМЕР С ПЕРЕМЕННЫМИ
1 ШТ В ВЕРХНЮЮ СТРОКУ
1 ШТ В НИЖНЮЮ СТРОКУ
ХОЧУ ГОТОВЫЙ ПРИМЕР С ПЕРЕМЕННЫМИ
Последний раз редактировалось 12val12 Пт мар 04, 2016 18:12:19, всего редактировалось 1 раз.
ух ты.... показывает
- WiseLord
- Друг Кота
- Сообщения: 4905
- Зарегистрирован: Чт апр 11, 2013 11:19:59
- Откуда: Минск
- Контактная информация:
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Не понимаю проблемы. Нужно вывести цифру i - выводим её код (0x30 + i) из таблицы символов. Нужно вывести число - разбиваем на цифры и выводим.
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
WiseLord писал(а):Не понимаю проблемы. Нужно вывести цифру i - выводим её код (0x30 + i) из таблицы символов. Нужно вывести число - разбиваем на цифры и выводим.
да именно это ! но хочется готовый пример нигде нет
ух ты.... показывает
- WiseLord
- Друг Кота
- Сообщения: 4905
- Зарегистрирован: Чт апр 11, 2013 11:19:59
- Откуда: Минск
- Контактная информация:
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
А чем тот же код выше не устраивает? Вполне себе должен работать, разве что там в print_char добавлять 0x30 (код '0') надо будет.
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
А чё орать то так ?12val12 писал(а):ВЫВЕСТИ 2 ПЕЕРМЕННЫХ ЛОНГ
1 ШТ В ВЕРХНЮЮ СТРОКУ
1 ШТ В НИЖНЮЮ СТРОКУ
ХОЧУ ГОТОВЫЙ ПРИМЕР С ПЕРЕМЕННЫМИ
Вы сами говорите, что фуета типа вывода char вас не интересует. Как тогда вывести, скажите ?
А то "Помогите вывести символы", но вывод символов не интересует. Как Вас понять ?
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
спасибо прийдется писать самому
выложу
выложу
ух ты.... показывает
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Открою Вам секрет. Все, кто пишет программы, пишут их сами12val12 писал(а):прийдется писать самому
- WiseLord
- Друг Кота
- Сообщения: 4905
- Зарегистрирован: Чт апр 11, 2013 11:19:59
- Откуда: Минск
- Контактная информация:
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Вряд ли полученный код будет лучше чем любой другой подобный, так что смысла особого выкладывать нет. Это то, что делается походя и не представляет никакого алгоритмического интереса.12val12 писал(а):прийдется писать самому
выложу
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
написал . можно улучшить?
Код: Выделить всё
/*******************************************************
This program was created by the
CodeWizardAVR V3.12 Advanced
Automatic Program Generator
© Copyright 1998-2014 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
Project :1602 display
Version : 1
Date : 28.12.2014
Author : Serg
Company : Good-chip.in.ua + 12va12
Comments:
Chip type : ATmega8
Program type : Application
AVR Core Clock frequency: 1,000000 MHz
Memory model : Small
External RAM size : 0
Data Stack size : 256
*******************************************************/
#include <mega8.h>
#include <delay.h> //Библиотека задержки
#include <alcd.h> // Alphanumeric LCD functions
unsigned long k;
void print_longint (unsigned char Nstr, unsigned long int s)
{
unsigned char C9,C8,C7,C6,C5,C4,C3,C2,C1,C0;
C9=0;C8=0;C7=0;C6=0;C5=0;C4=0;C3=0;C2=0;C1=0;C0=0;
while (s>=1000000000){s-=1000000000;C9++;}
while (s>=100000000){s-=100000000;C8++;}
while (s>=10000000){s-=10000000;C7++;}
while (s>=1000000){s-=1000000;C6++;}
while (s>=100000){s-=100000;C5++;}
while (s>=10000){s-=10000;C4++;}
while (s>=1000){s-=1000;C3++;}
while (s>=100){s-=100;C2++;}
while (s>=10){s-=10;C1++;}
C0=s;
lcd_gotoxy(3,Nstr) ;lcd_putchar(0x30 + C9);
lcd_gotoxy(4,Nstr) ;lcd_putchar(0x30 + C8);
lcd_gotoxy(5,Nstr) ;lcd_putchar(0x30 + C7);
lcd_gotoxy(6,Nstr) ;lcd_putchar(0x30 + C6);
lcd_gotoxy(7,Nstr) ;lcd_putchar(0x30 + C5);
lcd_gotoxy(8,Nstr) ;lcd_putchar(0x30 + C4);
lcd_gotoxy(9,Nstr) ;lcd_putchar(0x30 + C3);
lcd_gotoxy(10,Nstr) ;lcd_putchar(0x27);
lcd_gotoxy(11,Nstr) ;lcd_putchar(0x30 + C2);
lcd_gotoxy(12,Nstr) ;lcd_putchar(0x30 + C1);
lcd_gotoxy(13,Nstr) ;lcd_putchar(0x30 + C0);
}
void main(void)
{
// Alphanumeric LCD Инициализация
// Connections are specified in the
// Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:
// RS - PORTD Bit 0
// RD - PORTD Bit 1
// EN - PORTD Bit 2
// D4 - PORTD Bit 4
// D5 - PORTD Bit 5
// D6 - PORTD Bit 6
// D7 - PORTD Bit 7
// количество символов: 16
lcd_init(16);
while (1)
{
lcd_puts("good-chip.in.ua");// вывести надпись good-chip.in.ua
delay_ms(300); //подождать 300 милисекунд
lcd_clear(); //очистить дисплей
lcd_puts("Radio electronics as a hobby"); //вывести надпись Radio electronics as a hobby
delay_ms(300); //подождать 300 милисекунд
lcd_clear(); //очистить дисплей
for (k=0;k<4000000000;k++)
{
print_longint(0,4000000000-k);
print_longint(1,k);
}
delay_ms(1000); //подождать 1000 милисекунд
lcd_clear(); //очистить дисплей
}
}
ух ты.... показывает
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Можно. Главное - зачем ? Если работает, то пусть себе работает. "Лучшее - враг хорошего" (с)12val12 писал(а):можно улучшить?
Кстати, а работает ? Что показывает ?
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Чисто по-хохляцки 
