ULTER, предупреждаю, для личных просьб и т.п. пользуйся личкой! Уважай Форум!
ULTER, предупреждаю, для личных просьб и т.п. пользуйся личкой! Уважай Форум!
Что то ты напутал это запись в облать дополнительной памяти CGRAM, нужно если свой символ надо нарисоватьNegor писал(а):Дело такое. Есть у меня жки от Winstar(WH1602B). Подключаю я его к ATTiny2313 по 4-х битной шине. Всё это для получения практических навыков по работе с данными девайсами и МК. После прошивки Tiny2313 кодом, сгенерированным CodeVision я убедился что всё работает и если что не так, то значит ошибки в коде. Далее я взялся за написание прошивки на ассемблере. Инициализация проходит успешно. НЕ удачи начали постигать при выводе информации на индикатор. Теперь вопросы:
-по даташиту(pdf не прилагается из-за большого размера):
Для вывода на индикатор надо пользоватся командами Set CGRAM adress и Set DDRAM adress. Первая должна выводить символ, а вторая устанавливает курсор. Так? Если так, то как можно выводить символы, если их адреса 8 бит а команда CGRAM может содержать только 6? Тоже самое и с Set DDRAM.
И если можно, напишите мне алгоритмы операций. Что нужно для перемещения курсора, для вывода символа и для составления своих
символов?
Даташит
Ты все правильно понял, ели очень надо могу скинуть мою библиотеку для это дистплея, подключать так же как и ты написал в своей статье, но можно там в define указать просто номера выводов и порты мк для подключения LCD, а потом просто юзать функции отправки строк на дисплей. Даже парится не придется...Grover писал(а):Люди, которые уже разобрались с этим вопросом, скажите, я все правильно понял и описал?
Код: Выделить всё
PORTС
PС0 – E – импульс.
PC1 – RS – команда или данные.
PC2 – R/W – чтение или запись.
PORTD
PD0 – DB0 – данные байт 0
PD1 – DB1 – данные байт 1
PD2 – DB2 – данные байт 2
PD3 – DB3 – данные байт 3
PD4 – DB4 – данные байт 4
PD5 – DB5 – данные байт 5
PD6 – DB6 – данные байт 6
PD7 – DB7 – данные байт 7
Ответы и рекомендации такие:Freeman писал(а):Не могу никак вывести русский текст на LCD 16*2 (HY-1602H)
в конторе где его брал написано "руссифицированный", вообщем вот:
http://www.rcscomponents.kiev.ua/module ... 64&cid=224
Похожего типа дисплей уже использовался в статье и отображал русские символы!
Пишу в Код вижн АВР, использую обычный чаровый массив
unsigned char b[8] = "Проверка"; На экран выводит каракули...
Подскажите пожалуйста, где собака зарыта? Или может он в действительности не руссифицированый?
Зарание спасибо!
lexmulya писал(а):Если есть мелт то там в прошивке две кодовых страницы, нужно переключиться на вторую и будет счастье без всяких своих перекодировок.
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("я Кот Матроскин!");
Radio_Master писал(а):Я печатал на руссифицированой hd-ке по русски так:
#pragma rl+ //перевод экрана на русскоязычное отображение
lcd_gotoxy(4,0); //местоположение курсора
lcd_putsf("Здраствуйте"); //вывод текста
#pragma rl- //Перевод экрана на английское отображение
Использовал CVAvr,библиотеку LCD.h, мастер начального кода. Проверял в CVAVR 1.25.8 - компилится без ошибок.
Еще попробуйте вот эту софтинку, поможет.Gray64 писал(а):В общем разобрался я с индикатором, оказался русифицированным. Но такая фича: попытка вывести более 16 имволов по одному приводит к сбою счётчика адреса, тоесть начинает выводить с пробела(хз). Кодировка руских букв не совпадает с ASCII, пришлось по быстому набросать софтину - переводчик. Лежит она тут. Но это всё проверялось на asm'e. А по причине что в С я абсолютный ноль, то не имею ни малейшего понятия как эти коды себя поведут ТАМ. Но опять же, прога испытывалась на том же индикаторе о котором я говорил выше. Кому надо, юзайте на здоровье)))