Например TDA7294

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

Текущее время: Пн авг 25, 2025 01:59:45

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


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



Начать новую тему Ответить на тему  [ Сообщений: 2431 ]     ... , , , 6, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вт дек 09, 2008 12:50:10 
Мучитель микросхем

Зарегистрирован: Вт июл 22, 2008 08:10:54
Сообщений: 492
Рейтинг сообщения: 0
Можно больше. Можно и меньше, но тогда есть вероятность неправильной настройки ЖК.


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пн дек 15, 2008 22:49:56 
Родился
Аватар пользователя

Зарегистрирован: Пт ноя 23, 2007 21:04:15
Сообщений: 14
Откуда: Липецк
Рейтинг сообщения: 0
Хотя это не самый смачный вариант, но я двигал 1602 на следующую строку таким образом:
писал на первой строке 16 символов, потом чтобы прыгнуть на вторую, вызывал подпрограмму:
Код:
;*********************************************
; сдвиг курсора на 24 места вперёд (переход на следующую строку)
sdvig_24:   cbi      portc,RS ; индикатор в режим комманд
            ldi      temp1,24 ; на такое количество знакомест сдвинется курсор
            ldi      temp,20; 20- это пустой знак, он пишется  в ячейки между 1 и 2 строками
sdvig:      rcall    cyk2 ; вызов подпрограммы записи одного знака
            dec      temp1
            brne     sdvig
            sbi      portc,RS ; индикатор в режим данных
            ret
;**************************************************
cyk2:             out      PORTA,temp; отдача данных в порт вывода
           sbi      portc,E       ; порт С - управляет ногами индикатора: E, RS, R\W
           rcall           Delay         ;
           cbi      portc,E
           rcall           Delay
           ret
;*********************************************


При работе с дисплеем 0802, вместо 24 надо вписать 32
Код:
 ldi      temp1,32 ; на такое количество знакомест сдвинется курсор


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вт дек 30, 2008 02:18:24 
Первый раз сказал Мяу!
Аватар пользователя

Карма: 1
Рейтинг сообщений: 1
Зарегистрирован: Сб окт 04, 2008 00:23:25
Сообщений: 34
Откуда: Санкт-Петербург
Рейтинг сообщения: 0
Тщетно пытался завести индикатор 0802 от LPT vs C++Builder... Оказалась просто задрана контрастность при помощи того переменника, хотя сам индикатор успешно реагировал... Долго мяукал перед закрытой дверью... Так что, госопода начинающие мучители индикаторов, не наступайте на мои грабли...


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Чт янв 08, 2009 02:33:50 
Родился
Аватар пользователя

Зарегистрирован: Чт янв 08, 2009 02:15:18
Сообщений: 2
Рейтинг сообщения: 0
Доброго всем времени суток!!! С праздничками все присутствующих и не присутствующих !! :)
У меня проблемка с WH1602A. подключен он к Меге 16. Как ни стараюсь его привести в чувство - он не отзывается вообще никак :( помогите, пожалуйста, разобраться, в чем дело!

Код:
#define F_CPU 4000000UL

void RS_on()
{
  PORTC |= 0b00100000;
}
void RS_off()
{
  PORTC &= 0b11011111;
}
void RW_on()
{
  PORTC |= 0b00010000;
}
void RW_off()
{
  PORTC &= 0b11101111;
}
void E_on()
{
  PORTC |= 0b00001000;
}
void E_off()
{
   PORTC &= 0b11110111;
}

void Init()
{
DDRA = 0xFF;
PORTA = ~0;
DDRB = 0xFF;
PORTB = 0;
DDRC = 0xFF;
PORTC = 0;
DDRD = 0xFF;
}


void cmdLCD(unsigned char data)
{
   RS_off();RW_off();
  asm volatile("nop");
  PORTB = data;
      E_on();
  asm volatile("nop");
   E_off();
  asm volatile("nop");
};

 void Init_LCD()
 {
  _delay_ms(100);
cmdLCD(0x0C);
 _delay_ms(10);
cmdLCD(0x0C);
 _delay_ms(10);
cmdLCD(0x0C);
_delay_ms(10);
//function set interface data length + symbol + lines
 cmdLCD(0x2C);
 _delay_ms(10);
 //display off
 cmdLCD(0x10);
_delay_ms(10);
//display clear
  cmdLCD(0x80);
_delay_ms(10);
  cmdLCD(0x20);   
  _delay_ms(10);
  cmdLCD(0xF0);
 }

int main()
{
Init();
Init_LCD();
 _delay_us(100);
cmdLCD(0x81);
_delay_us(100);
RS_on();
cmdLCD(0b00001100);
_delay_us(100);
return 0;
}



Заранее огромное спасибо!


Вложения:
Комментарий к файлу: Схема подключения
sch.JPG [47.58 KiB]
Скачиваний: 791
Вернуться наверх
 
В сети
 Заголовок сообщения:
СообщениеДобавлено: Чт янв 08, 2009 04:05:45 
Друг Кота

Карма: 64
Рейтинг сообщений: 1013
Зарегистрирован: Пт мар 07, 2008 06:54:43
Сообщений: 4344
Откуда: Ижевск
Рейтинг сообщения: 0
Здравствуйте. Вызывает сомнение правомочность вот этого
"...void cmdLCD(unsigned char data)
{
RS_off();RW_off();
asm volatile("nop");
PORTB = data;
E_on();
asm volatile("nop");
E_off();
asm volatile("nop");
}..."
Вы пытаетесь управлять тремя битами управления одновременно. Нужно побитно в соответствии с временной диаграммой. На предыдущей странице этой ветки есть примеры.


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Чт янв 08, 2009 13:02:14 
Родился
Аватар пользователя

Зарегистрирован: Чт янв 08, 2009 02:15:18
Сообщений: 2
Рейтинг сообщения: 0
Большое спасибо! я нашла ошибку :) все работает :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пн янв 12, 2009 21:57:12 
Прорезались зубы
Аватар пользователя

Зарегистрирован: Вт май 27, 2008 23:23:24
Сообщений: 238
Рейтинг сообщения: 0
У меня ML-16S2D и я не как не могу понять как на него выводить русские буквы.
Язык С++
Подскажите пожалуйста!


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пн янв 12, 2009 23:14:24 
Модератор
Аватар пользователя

Карма: 27
Рейтинг сообщений: 58
Зарегистрирован: Пн апр 03, 2006 11:43:25
Сообщений: 4517
Откуда: Санкт - Петербург
Рейтинг сообщения: 0
Медали: 3
Получил миской по аватаре (1) Мявтор 2-й степени (1) Мявтор 3-й степени (1)
См. страницу 4 данной темы.

_________________
Оптимизм х (Опыт + Знания) = const


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вт янв 13, 2009 23:20:05 
Прорезались зубы
Аватар пользователя

Зарегистрирован: Вт май 27, 2008 23:23:24
Сообщений: 238
Рейтинг сообщения: 0
Чего то не как не заработает, пробовал:
#pragma rl+ и #pragma used+ всё равно не хочет по русски писать =(


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Ср янв 14, 2009 21:59:33 
Модератор
Аватар пользователя

Карма: 27
Рейтинг сообщений: 58
Зарегистрирован: Пн апр 03, 2006 11:43:25
Сообщений: 4517
Откуда: Санкт - Петербург
Рейтинг сообщения: 0
Медали: 3
Получил миской по аватаре (1) Мявтор 2-й степени (1) Мявтор 3-й степени (1)
Там же еще способа 3-4 изложено, не помогает?

_________________
Оптимизм х (Опыт + Знания) = const


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Чт янв 15, 2009 00:22:47 
Прорезались зубы
Аватар пользователя

Зарегистрирован: Вт май 27, 2008 23:23:24
Сообщений: 238
Рейтинг сообщения: 0
Меня интересует только один способ, это способ переключения языка.
Но что-то я не как не могу понять как он переключается.


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Чт янв 15, 2009 23:04:21 
Модератор
Аватар пользователя

Карма: 27
Рейтинг сообщений: 58
Зарегистрирован: Пн апр 03, 2006 11:43:25
Сообщений: 4517
Откуда: Санкт - Петербург
Рейтинг сообщения: 0
Медали: 3
Получил миской по аватаре (1) Мявтор 2-й степени (1) Мявтор 3-й степени (1)
Давайте все таки определимся с задачей: "выводить русские буквы", как в первом посте, или как во втором - "переключать язык"? :)

_________________
Оптимизм х (Опыт + Знания) = const


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пт янв 23, 2009 21:28:03 
Первый раз сказал Мяу!

Зарегистрирован: Ср дек 17, 2008 20:04:36
Сообщений: 23
Рейтинг сообщения: 0
Пробовал этот вариант


GrigaN писал(а):
лови.. я сделал так, как советовал народ.. чуточку доработал.. все работает

char *str; // буферная строковая перменная для вывода

//массив во флэш-памяти для русских символов
flash char Decode2Rus[255-192+1]= {
0x41,0xA0,0x42,0xA1,0xE0,0x45,0xA3,0xA4,
0xA5,0xA6,0x4B,0xA7,0x4D,0x48,0x4F,0xA8,
0x50,0x43,0x54,0xA9,0xAA,0x58,0xE1,0xAB,
0xAC,0xE2,0xAD,0xAE,0xAD,0xAF,0xB0,0xB1,
0x61,0xB2,0xB3,0xB4,0xE3,0x65,0xB6,0xB7,
0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0x6F,0xBE,
0x70,0x63,0xBF,0x79,0xE4,0x78,0xE5,0xC0,
0xC1,0xE6,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7 };

//функция вывода на LCD русско-символьной строки
void putsf(flash unsigned char *string)
{
char c; //символ из строки
while (c=*string++){
if(c>=192) lcd_putchar(Decode2Rus[c-192]);
else lcd_putchar(c);
}
}

выводить на лсд будешь вот так:
putsf("я Кот Матроскин!");





Все скомпилилось,только в протеусе выводит каракули.Прилагаю картинку.Помогите разобраться.


Вложения:
Безымянный111111.JPG [12.94 KiB]
Скачиваний: 1141
Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пт янв 23, 2009 23:42:08 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 3
Рейтинг сообщений: 9
Зарегистрирован: Пн июл 14, 2008 18:12:37
Сообщений: 2296
Рейтинг сообщения: 0
а протеус нормально переваривает кирилицу ?
и почему нельзя проверить на реальном устройстве ? по-моему намного эффективнее . лично я не особо доверяю симуляторам , т.к. в реальности может получиться совсем наоборот . лучше пощупать самому , чем посмотреть на экран моника :)

_________________
есть вопросы ? чего-то не знаешь ? прежде всего смотри это


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пт янв 23, 2009 23:56:22 
Встал на лапы
Аватар пользователя

Зарегистрирован: Пн дек 17, 2007 13:15:43
Сообщений: 136
Рейтинг сообщения: 0
Atmel.ru писал(а):
Перекодировщик Win-текста сообщений для ЖКИ-контроллера HD44780
Позволяет решить трудности с несоответствием кодов русских букв, зашитых в контроллер HD44780 с ANSI-кодировкой Windows и одновременно избавиться от программного перекодирования "на лету", мгновенно создав Си-код на основе набранного текста.

Возможности:
1. Создание гибкого Си-кода сообщений на основе набранного текста
2. Автоматическое присваивание уникального имени каждой строке сообщения
3. Позиционирование набранного текста на эмуляторе дисплея 4х16 строк

В комплекте поставки:
1. Работающий пример программы создания меню для установки параметров на двухстрочном индикаторе
2. В комплет также входит удобная утилита для перевода между форматами Bin,Hex,Dec

Перед стартом программы HD44780.exe для дальнейшего удобства ее использования сопоставьте тип файлов *.lcd с самой программой
Размер: 920 KB.

http://www.atmel.ru/Binary/HD-44780.exe

_________________
Боишся - не делай. Делаешь - не бойся.


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Сб янв 24, 2009 09:48:16 
Мучитель микросхем
Аватар пользователя

Зарегистрирован: Вт сен 25, 2007 19:40:26
Сообщений: 438
Откуда: Челябинск
Рейтинг сообщения: 0
С помощью этого файла Proteus у меня лично начинал отображать русский шрифт. Гарантировано работал с ним до версии 7.2, 7.4 не пробовал.


Вложения:
Комментарий к файлу: Добавить эту DLL'ку в папку Proteus\Models. Не забудьте сделать бэкап старого файла на всякий случай.
lcdalpha.rar [35.27 KiB]
Скачиваний: 889
Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Сб янв 24, 2009 12:19:01 
Встал на лапы

Зарегистрирован: Чт ноя 29, 2007 13:23:32
Сообщений: 82
Рейтинг сообщения: 0
Я только что попробовал,заменил на предложенный файл.
Стал отображать русский шрифт.Proteus_v7.2_SP2.

mr.Kirill Спасибо


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Сб янв 24, 2009 19:45:41 
Первый раз сказал Мяу!

Зарегистрирован: Ср дек 17, 2008 20:04:36
Сообщений: 23
Рейтинг сообщения: 0
Спаибо за файлик - заработало!!!!


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вс янв 25, 2009 00:17:35 
Родился

Зарегистрирован: Вт ноя 04, 2008 17:16:12
Сообщений: 19
Откуда: Пенза
Рейтинг сообщения: 0
Индикаторы в Протеус кажется не поддерживают кириллицу(русские буквы)

_________________
ICQ-476243579


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пт фев 13, 2009 16:44:10 
Потрогал лапой паяльник
Аватар пользователя

Зарегистрирован: Ср янв 21, 2009 00:45:33
Сообщений: 361
Рейтинг сообщения: 0
Алекс. писал(а):
Добрый день!

Я делаю первое устройство на Atmega16 с индикацией на ЖКИ PC-1601A.
Использую CVAVR 2.03.4.
Для проверки сделал простой код: кнопка включает выход, при этом на индикаторе должен быть знак.
Вторая кнопка выключает выход, при этом на индикаторе должен быть другой знак.

Пробовал в Proteus, - все хорошо.

При включении питания на индикаторе видны заполненные прямоугольники первых 8 разрядов.
При нажатии на кнопки выход работает правильно, индикатор не работает.

1. Существует ли способ проверки работоспособности индикатора?
2. Существует ли способ проверки выхода контроллера на индикатор?
3.Существует ли предпочтительный тип ЖКИ для Atmega?

Большое спасибо.


Скорее всего неправильно инициализируете. Проверьте достаточен ли интервал ожидания вначале, перед вводом управляющих комманд...


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

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


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

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


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

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


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