Например TDA7294

Форум РадиоКот • Просмотр темы - Работа с ЖКИ на контроллере HD44780 и его аналогах
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Вс авг 17, 2025 06:11:38

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 2431 ]     ... , , , 68, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
СообщениеДобавлено: Пн ноя 04, 2013 15:44:10 
Опытный кот
Аватар пользователя

Карма: 2
Рейтинг сообщений: -5
Зарегистрирован: Пн июн 15, 2009 06:01:38
Сообщений: 896
Откуда: USSR
Рейтинг сообщения: 0
Как с помощью функции lcd_putch(); (из библиотеки уважаемого Alex)вывести однозначное десятичное число?
Если пробую lcd_putch(5); выводится невесть что...

_________________
Кот гуляет сам по себе, но вблизи холодильника.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
СообщениеДобавлено: Пн ноя 04, 2013 15:48:07 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1430
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4568
Откуда: Планета Земля
Рейтинг сообщения: 1
Медали: 1
Получил миской по аватаре (1)
lcd_putch выводит символ с ASCII-кодом, который передаём в функцию.
Чтобы вывести число, нужно его преобразовать в строку (массив символов) и выводить по-символьно, либо с помощью lcd_puts (что тоже самое).

Если оно у Вас не больше 9-ти, то можно так:
Код:
unsigned char val=5;

lcd_putch(val + '0');


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
СообщениеДобавлено: Чт ноя 14, 2013 21:56:40 
Открыл глаза

Карма: -2
Рейтинг сообщений: -1
Зарегистрирован: Пт окт 25, 2013 17:13:03
Сообщений: 68
Рейтинг сообщения: 0
А кто-нибудь сталкивался с таким:
ЖКИ на базе GDM1601a (аналог HD44780) отображает только 8 символов на экране. Из 16. Дальше - пусто.
---
Сам себе отвечу.
Указал в коде
Config Lcd = 16 * 1
а надо было
Config Lcd = 16 * 1a
----
Нее.. все равно глюк вылезает. ((
Когда нужно писать на экране
Time:00:59 - минуты упорно не хотят отображаться


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
СообщениеДобавлено: Пт ноя 15, 2013 18:13:54 
Друг Кота
Аватар пользователя

Карма: 81
Рейтинг сообщений: 1377
Зарегистрирован: Пн май 11, 2009 14:15:00
Сообщений: 3059
Откуда: СПб
Рейтинг сообщения: 0
Медали: 1
Мявтор 3-й степени (1)
А Вы знаете, что дисплей в 16 символов и 1 строку - это 8*2, у которого строки друг за другом. Если просто так в него писать (как в одну строку), то символы после восьмого не отобразятся. Процедура записи состоит из двух частей. Сначала левую половину пишем, потом правую.

_________________
Этот пост оказался полезен? Не поленись, нажми Изображение слева!
:) :)) :)))
Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
СообщениеДобавлено: Пт ноя 15, 2013 20:06:02 
Открыл глаза

Карма: -2
Рейтинг сообщений: -1
Зарегистрирован: Пт окт 25, 2013 17:13:03
Сообщений: 68
Рейтинг сообщения: 0
Я понял в чем глюк был. Когда я просто пишу:
Lcd " Длинное слово ", то И протеус, и железка отображают его правильно.
А вот когда указывал место через:
Locate 1 , 6
Lcd Minut
То протеус отображал правильно, а железка обрезала все после 8 символа.
Команда Locate по разному понимается Протеусом и железкой.
Видимо, железка считает, что если есть 1 строка, то должна быть и 2.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
СообщениеДобавлено: Сб ноя 16, 2013 14:09:02 
Опытный кот

Карма: 4
Рейтинг сообщений: 79
Зарегистрирован: Вс фев 10, 2013 15:26:00
Сообщений: 758
Рейтинг сообщения: 0
Не "понял, в чём глюк", а пытаешься угадать правильную последовательность нажимания кнопок.

Набираем в интернете название дисплея, открываем первую попавшуюся сссылку, рассматриваем картинку с словами "Display character address code: Display position / DDRAM address".
Не помогло.

В том же самом интернете набираем "lcd.pdf 44780 ктц мк" (это не выводится из каких-либо рассуждений, просто магические символы), получаем документ с надписью "КТЦ-МК".
Там всё даже по-русски, но... многабукв ни о чём, а кнопки-то какие нажимать? Чтоб железка не считала строки через Locate? Глюк же! И протеус!

_________________
Кэшбек (возврат обратно покупателю части суммы, уплаченной за покупку): Aliexpress 1%, Ebay 1%, другие магазины по-разному, плюс $5 подарок за регистрацию.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
СообщениеДобавлено: Чт дек 05, 2013 21:37:37 
Первый раз сказал Мяу!

Зарегистрирован: Вт апр 09, 2013 20:43:04
Сообщений: 20
Рейтинг сообщения: 0
А как на индикатор данные расчетов вывести (из регистра)?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
СообщениеДобавлено: Пт дек 06, 2013 11:29:21 
Друг Кота
Аватар пользователя

Карма: 67
Рейтинг сообщений: 1060
Зарегистрирован: Чт сен 18, 2008 12:27:21
Сообщений: 19766
Откуда: Столица Мира Санкт-Петербург
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Преобразовать число из регистра в цифры, например в двоично-десятичном формате.
Далее смотрим таблицу символов 44780 — откуда начинаются цифры (30h) и к цифре прибавляем этот адрес. Всё, печатаем очередную цифру.

_________________
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Измерить нннада?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
СообщениеДобавлено: Чт дек 12, 2013 23:07:24 
Встал на лапы
Аватар пользователя

Зарегистрирован: Вт янв 17, 2012 00:13:14
Сообщений: 109
Откуда: Кременчуг
Рейтинг сообщения: 0
Добрый вечер уважаемые коты.
Помогите советом, подарили символьный ЖКИ 4*20 подключил его к LTP а он не хочет нормально работать,
третья строка практически не показывает а четвертая не показывает первые три символа.
Подскажите что с пациентом

Изображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
СообщениеДобавлено: Чт дек 12, 2013 23:48:03 
Поставщик валерьянки для Кота
Аватар пользователя

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
СообщениеДобавлено: Пт дек 13, 2013 00:29:42 
Встал на лапы
Аватар пользователя

Зарегистрирован: Вт янв 17, 2012 00:13:14
Сообщений: 109
Откуда: Кременчуг
Рейтинг сообщения: 0
vitalik_1984 писал(а):
Пациент скорее мертв, чем жив. Очень похоже на ситуацию, когда резиновые шлейфы не прилегают как положено...

А такое кто нибудь пробовал лечить? А то жалко как то...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
СообщениеДобавлено: Пт дек 13, 2013 00:46:20 
Опытный кот

Карма: 4
Рейтинг сообщений: 79
Зарегистрирован: Вс фев 10, 2013 15:26:00
Сообщений: 758
Рейтинг сообщения: 0
Разбираешь, собираешь. Без гарантии. Дела на полчаса с перекурами, конструкция на уровне табуретки по сложности. Разрешение нужно? Я разрешаю.
Или пользуешься как есть. Нижние две строки можно закрыть картонкой, чтоб не смущали. Для отладочных целей вообще без разницы.

У меня "чиненный" уже года три как живёт.

_________________
Кэшбек (возврат обратно покупателю части суммы, уплаченной за покупку): Aliexpress 1%, Ebay 1%, другие магазины по-разному, плюс $5 подарок за регистрацию.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
СообщениеДобавлено: Пт дек 13, 2013 18:28:08 
Опытный кот
Аватар пользователя

Карма: 2
Рейтинг сообщений: -5
Зарегистрирован: Пн июн 15, 2009 06:01:38
Сообщений: 896
Откуда: USSR
Рейтинг сообщения: 0
Полтергейст какой-то: выводятся только первые 2 символа. Если убрать команды на их вывод, выводятся символы на 3 и 4 месте. А чтобы все сразу?
Спойлер// MK pic16f72
// работа с LCD
#include <pic.h>
#include "lcd.h"
//----------
__CONFIG (XT & WDTDIS & PWRTDIS & BOREN & UNPROTECT); // биты конфигурации программатора
//----------

volatile unsigned char cnt_pause = 0;

//----------
void interrupt isr(void) // обработчик прерываний
{
if (T0IF && T0IE) // ветка опроса флага прерывания по переполнению TMR0
{
T0IF = 0; // сброс флага прерывания по переполнению TMR0
TMR0+= 6; // предзагрузка TMR0
T0IE = 1; // 1/0 разрешение/запрет прерывания по переполнению TMR0

if(cnt_pause==1) cnt_pause--;

} // конец ППОП TMR0
}
//----------
void podgot (void) // настройки
{
ADCON1 = 0b111; // отключение АЦП
TRISA = 0b111111; // (0/1 - выход/вход, нумерация битов в регистре справо-налево)
TRISB = 0b00000000; // (0/1 - выход/вход, нумерация битов в регистре справо-налево)
TRISC = 0b00000000; // (0/1 - выход/вход, нумерация битов в регистре справо-налево)
RBPU = 0; // подтягивающие R порта В (0-вкл, 1-выкл) бит регистра OPTION
// Начало настройки TMR0 ----------
T0CS = 0; // bit 5 TMR0 Выбор источника сигнала 0 - Fosc/4 (внутренний); 1 - подача на T0CKI
T0SE = 0; // bit 4 TMR0 Выбор фронта приращения TMR0 при внешнем тактовом сигнале (0-передний фронт)
PSA = 0; // bit 3 Выбор включения предделителя: 0 - перед TMR0, 1 - перед WDT
PS2 = 0; // bit 2 Настройка предделителя
PS1 = 0; // bit 1 Настройка предделителя
PS0 = 1; // bit 0 Настройка предделителя
T0IE = 1; // 1/0 разрешение/запрет прерывания по переполнению TMR0
T0IF = 0;
// Конец настройки TMR0 ----------
GIE = 1; // разрешены все немаскированные прерывания
}
void pause100 (void)
{
while(cnt_pause) continue; // если cnt_pause не равен 0, продолжение цикла.
cnt_pause=100;
}
// конец объявления функций, используемые в файле----------------------------------------------------------------------------------
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void main ()
{
unsigned char cnt_ch=0;
unsigned char val=0;
podgot(); //настройки
lcd_init(); // инициализация дисплея
lcd_clear(); // очистка дисплея
//
for(;;)
{
lcd_gotoxy(0,0);
val=0;
lcd_putch(val + '0');
pause100(); //----------
lcd_gotoxy(0,1);
val=4;
lcd_putch(val + '0');
pause100(); //----------
lcd_gotoxy(0,2);
val=8;
lcd_putch(val + '0');
pause100(); //----------
lcd_gotoxy(0,3);
val=0;
lcd_putch(val + '0');
pause100(); //----------
}
}// end main

_________________
Кот гуляет сам по себе, но вблизи холодильника.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
СообщениеДобавлено: Пт дек 13, 2013 18:35:31 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1430
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4568
Откуда: Планета Земля
Рейтинг сообщения: 1
Медали: 1
Получил миской по аватаре (1)
Попробуйте lcd_gotoxy поставить только один раз (на координаты 0,0). Незачем его тыкать перед каждым выводом символа - курсор сам передвинится на следующее знакоместо.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
СообщениеДобавлено: Пт дек 13, 2013 19:14:14 
Опытный кот
Аватар пользователя

Карма: 2
Рейтинг сообщений: -5
Зарегистрирован: Пн июн 15, 2009 06:01:38
Сообщений: 896
Откуда: USSR
Рейтинг сообщения: 0
Увы, не помогает: выводятся только первых 2 знака.
Убрал функцию pause100() - без изменений.
P.S. Мне этих символов выводить и выводить. Вот эскиз интерфейса терморегулятора


Вложения:
Untitled-1.jpg [231.52 KiB]
Скачиваний: 470

_________________
Кот гуляет сам по себе, но вблизи холодильника.
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
СообщениеДобавлено: Сб дек 14, 2013 01:44:59 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 12
Рейтинг сообщений: 67
Зарегистрирован: Пт авг 27, 2010 05:57:06
Сообщений: 2482
Откуда: Тюмень
Рейтинг сообщения: 0
как то так можно упростить этот код :roll:
Код:
{ char val[]={0,8,4,0};
char i;
lcd_gotoxy(0,0);
for (i=0;i<4;i++) {
    lcd_putch(val[i]+'0');
    pause100();
    };
}
 


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
СообщениеДобавлено: Сб дек 14, 2013 07:35:26 
Опытный кот
Аватар пользователя

Карма: 2
Рейтинг сообщений: -5
Зарегистрирован: Пн июн 15, 2009 06:01:38
Сообщений: 896
Откуда: USSR
Рейтинг сообщения: 0
vitalik_1984
Спасибо за идею, но числа-то будут получаться с АЦП. Т.е. одно за одним, от младших разрядов к старшим. Громоздко получается...

_________________
Кот гуляет сам по себе, но вблизи холодильника.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
СообщениеДобавлено: Сб дек 14, 2013 21:07:34 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 12
Рейтинг сообщений: 67
Зарегистрирован: Пт авг 27, 2010 05:57:06
Сообщений: 2482
Откуда: Тюмень
Рейтинг сообщения: 0
Так можно вообще то в обратную сторону листать for(i=4;i<0;i– – ) ;) либо воспользоваться стандартными функциями вывода sprintf () например...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
СообщениеДобавлено: Чт дек 19, 2013 21:49:18 
Опытный кот
Аватар пользователя

Карма: 2
Рейтинг сообщений: -5
Зарегистрирован: Пн июн 15, 2009 06:01:38
Сообщений: 896
Откуда: USSR
Рейтинг сообщения: 0
Решил полностью изменить алоритм вывода: попробовал вывести содержимое массива. И опять выводятся только 2 первых символа!
Спойлер// MK pic16f72
// работа с LCD
#include <pic.h>
#include "lcd.h"
//----------
__CONFIG (XT & WDTDIS & PWRTDIS & BOREN & UNPROTECT); // биты конфигурации программатора
//----------
const char hello_str[]="Hello !!!";
volatile unsigned char cnt_pause=0;
//----------
void interrupt isr(void) // обработчик прерываний
{
if (T0IF && T0IE) // ветка опроса флага прерывания по переполнению TMR0
{
T0IF = 0; // сброс флага прерывания по переполнению TMR0
TMR0+= 6; // предзагрузка TMR0
T0IE = 1; // 1/0 разрешение/запрет прерывания по переполнению TMR0

if(cnt_pause==1) cnt_pause--;

} // конец ППОП TMR0
}
//----------
void podgot (void) // настройки
{
ADCON1 = 0b111; // отключение АЦП
TRISA = 0b111111; // (0/1 - выход/вход, нумерация битов в регистре справо-налево)
TRISB = 0b00000000; // (0/1 - выход/вход, нумерация битов в регистре справо-налево)
TRISC = 0b00000000; // (0/1 - выход/вход, нумерация битов в регистре справо-налево)
RBPU = 0; // подтягивающие R порта В (0-вкл, 1-выкл) бит регистра OPTION
// Начало настройки TMR0 ----------
T0CS = 0; // bit 5 TMR0 Выбор источника сигнала 0 - Fosc/4 (внутренний); 1 - подача на T0CKI
T0SE = 0; // bit 4 TMR0 Выбор фронта приращения TMR0 при внешнем тактовом сигнале (0-передний фронт)
PSA = 0; // bit 3 Выбор включения предделителя: 0 - перед TMR0, 1 - перед WDT
PS2 = 0; // bit 2 Настройка предделителя
PS1 = 0; // bit 1 Настройка предделителя
PS0 = 1; // bit 0 Настройка предделителя
T0IE = 1; // 1/0 разрешение/запрет прерывания по переполнению TMR0
T0IF = 0;
// Конец настройки TMR0 ----------
GIE = 1; // разрешены все немаскированные прерывания
}
void pause100 (void)
{
while(cnt_pause) continue; // если cnt_pause не равен 0, продолжение цикла.
cnt_pause=100;
}
// конец объявления функций, используемые в файле----------------------------------------------------------------------------------
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void main ()
{
unsigned char cnt_ch=0;
podgot(); //настройки
lcd_init(); // инициализация дисплея
lcd_clear(); // очистка дисплея
lcd_gotoxy(0,0);
//
for(;;)
{
while(hello_str[cnt_ch])
{
lcd_putch(hello_str[cnt_ch++]);
while(cnt_pause) continue;
cnt_pause=100;
}
}
}// end main

передвинул курсор на другую позицию - без изменений.

_________________
Кот гуляет сам по себе, но вблизи холодильника.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
СообщениеДобавлено: Чт дек 19, 2013 22:18:38 
Друг Кота

Карма: 28
Рейтинг сообщений: 568
Зарегистрирован: Чт май 05, 2011 21:26:34
Сообщений: 4550
Откуда: Украина, Славутич
Рейтинг сообщения: 0
Отладчик что показывает?


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 2431 ]     ... , , , 68, , , ...  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y