LCD nokia 3310

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Аватара пользователя
VenomXP
Грызет канифоль
Сообщения: 293
Зарегистрирован: Пн дек 24, 2007 07:09:09
Контактная информация:

Сообщение VenomXP »

Ога... Пасипа... Я вот как раз таки шью через CodeVisionAVR собрал себе AVR910 (програматор на USB)... Ваще атлична... И скорость наманая и удобная сама по себе штука... Как-раз для ноута...

А есть ссылочки на pdf версию данного пособия?
serjkruserj
Родился
Сообщения: 2
Зарегистрирован: Вс ноя 16, 2008 18:35:10

Сообщение serjkruserj »

Пишу для дисплея от нокии 3310. они у нас по 1.5$
вот для новичков и не только, сборка програм для граф.лсд
http://depositfiles.com/files/s87j2b1g7
В архиве несколько программ.
Вот ещё у себя нашол:http://depositfiles.com/files/jgmyzm7kf
Есть HexStreamConverter - она делает код из непонятного &h48,&h78,&h60, в более понятный 0x48,0x78,0x60

И ещё шрифт 5х7 с кирилицей и латиницей.
Удачи!
Вложения
font.rar
(1.96 КБ) 950 скачиваний
clawham
Поставщик валерьянки для Кота
Сообщения: 1957
Зарегистрирован: Пт окт 31, 2008 09:38:55
Откуда: Одесса
Контактная информация:

Сообщение clawham »

Ребятки у меня проблемка
3310 в протеусе всё пашет супер а вот в реале -

содержимое экрана
Изображение

платка
Изображение

Кто поборол это смещение вверх на 4 пикселя неплановое? неприкольно терять строку целую....

Слышал что это идиотизм китайских мониторов....тогда интересно почему этот гад снятый с рабочего телефона в котором всё ПОКАЗЫВАЛО ПРАВИЛЬНО у меня-то перестал работать и никогда не видел я чтоб он был по-другому
Предупреждение за дублирование сообщений! Паятель.
Аватара пользователя
Evgen88
Первый раз сказал Мяу!
Сообщения: 30
Зарегистрирован: Пн мар 09, 2009 02:14:34

Сообщение Evgen88 »

clawham писал(а):Ребятки у меня проблемка
3310 в протеусе всё пашет супер а вот в реале -


Смотри тут:
http://radiokot.ru/forum/viewtopic.php?p=189466#189466

Легкая корректировка программы решит твою проблему.
clawham
Поставщик валерьянки для Кота
Сообщения: 1957
Зарегистрирован: Пт окт 31, 2008 09:38:55
Откуда: Одесса
Контактная информация:

Сообщение clawham »

в том то и дело что уже раз 10 пробывал у меня эта зараза не работает вообще - пробывал с разными значениями, может нужно чтото до этого кидать?
Я инициализацию делаю так

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

void lcd_init(void)
{
SPCR=0x50;       
SPSR=0x01;           
writecomm(0x21);
writecomm(0xC8);
writecomm(0x06); 
writecomm(0x13);
writecomm(0x20);
writecomm(0x0C);
writecomm(0b011100); //Переводим СКРОЛЛИНГ вверх на мекс63 строки - тоесть по кругу на место ставим


а процедура writecomm у меня вот

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

void writecomm(char comm)
{
DC = 0;
spi(comm);
}


вот так вот - не вылечило оно смещение :(
clawham
Поставщик валерьянки для Кота
Сообщения: 1957
Зарегистрирован: Пт окт 31, 2008 09:38:55
Откуда: Одесса
Контактная информация:

Сообщение clawham »

но что характерно - при последней комманде 01111111 всё выглядело как и обычно а вот есть как в программе - как вродебы не хватает яркости....ели ели тлеет изображение на дисплейчике :)
Аватара пользователя
1995kenny
Вымогатель припоя
Сообщения: 524
Зарегистрирован: Ср авг 27, 2008 10:13:19
Откуда: Украина, Харьков
Контактная информация:

Сообщение 1995kenny »

Кому интересно, размеры дисплея на этой странице.
Ещё там прога для рисования картинок в формат HEX.
http://www.amontec.com/lcd_nokia_3310.shtml

Кстати сам заинтересовался этим дисплееем.
Как лучше подключить его: Контактами на плату и винтами, или шлейф?
Аватара пользователя
Evgen88
Первый раз сказал Мяу!
Сообщения: 30
Зарегистрирован: Пн мар 09, 2009 02:14:34

Сообщение Evgen88 »

clawham писал(а):в том то и дело что уже раз 10 пробывал у меня эта зараза не работает вообще - пробывал с разными значениями, может нужно чтото до этого кидать?
Я инициализацию делаю так


Попробуй взять кусок кода с топика по ссылке выше и запусти.
clawham
Поставщик валерьянки для Кота
Сообщения: 1957
Зарегистрирован: Пт окт 31, 2008 09:38:55
Откуда: Одесса
Контактная информация:

Сообщение clawham »

Извиняюсь всё работает супер, просто неправильный побитовый оператор напичатал когда расчитывал конечную цифру Спасибо!
Наконецто у меня есть многозонный термометр с РС232 портом и графическим дисплеем :) Следующий шаг - прикрутить тсоп и с пультика заставить этот контроллер дёргать ногами в зависимости от температуры(ну там вентилятор включить в теплице или печку запустить или кондиционер или полив врубить :)
Да и вообще эта связочка МК + LCD Nokia 3310 - очень занимательный комплектик для старта начинающему :)

И вообще дисплей супер, он и от 2.5 вольт работает только биас нужно побольше дать :)

А по поводу "лучше прикрепить" я просто напаял на контактики шлейфика кусочек от IDE 133-го какраз шаг попадает, а потом всё молекулярным клеем залил а шлейфика оторвал на всю длину - с резюками по шинам данных в 33 килоома работает абсолютно железобетонно, но вот стабилизатор питания с кондером пришлось лепить прям к контакту - стоит его прилепить на тот конец на платку - как начинаются приколы со сбиванием адресов в строчке в общем не страшно со старой мамки выпаял стаб типа кренки только на 2.5 вольт в корпусе как транзисторы на антенном усилителе - ну просто мельче некуда :)
Единственное что - хочется сделать не насилование защитных диодов на входе экрана а какой-то буффер впихнуть - и потребление меньше будет :) - думаю что HC244 -тая мне будет работать с птанием в 2.5 вольт как шинний формирователь :)
Аватара пользователя
Evgen88
Первый раз сказал Мяу!
Сообщения: 30
Зарегистрирован: Пн мар 09, 2009 02:14:34

Сообщение Evgen88 »

clawham писал(а):Единственное что - хочется сделать не насилование защитных диодов на входе экрана а какой-то буффер впихнуть - и потребление меньше будет :) - думаю что HC244 -тая мне будет работать с птанием в 2.5 вольт как шинний формирователь :)

Незаморачивайся!
Питай напрямую от 5 вольт (ток потребления у экрана мизерный, а стабилизатором питания ты его увеличиваеш в несколько раз), выкинь резики и защитные диоды - нафиг не нужны. Работает отлично - проверено!
Аватара пользователя
1995kenny
Вымогатель припоя
Сообщения: 524
Зарегистрирован: Ср авг 27, 2008 10:13:19
Откуда: Украина, Харьков
Контактная информация:

Сообщение 1995kenny »

Хочу сделать мини-часы на экране 3310. Делал с готовых исходников nokia.c Для работы часов настроил таймеры, ввел переменные:

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

char sek; // секунд
char min; // минут
char hour; // часов

Для вывода времени цикл:

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

while (1) //цикл вывода времени    {
lcd_clear(); //очистка скрина
lcd_gotoxy(15,3); //где-то посередине экрана
delost = 5 % 2;    //прога для вывода ":" - т.е. показывать ":" только при нечетном кол-ве секунд
putstr(hour); //вывод переменной часов
//вывод ":"
putstr(min); //вывод минут
//вывод ":"
putstr(sek); //секунд
delay_ms(10);      };

CVAVR жалуется "parametr #1 of type 'unsigned char' incompatible with 'unsigned char*' specified in function 'putstr' declaration" строках putstr( *** ); . Что изменить? Вот кусок программы:

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

void putchar(char character)
{   int tablept, count, char_column;
   if ((character<0x20>0x7f)) {return;}           
   tablept = ((5*character) - 160);               
   for (count=5;count>0;count--)                     
   {      char_column = table[tablept];
      writedata(char_column);
      tablept++;   }
   writedata(0x00);   }
void putstr(const char *s)
{   while(*s) {putchar(*s++);}   }

lex[ws] писал(а):правда есть здесь проблема не все буквы получается вывести м компилятор ругается вот так что я вылажу за пределы 8 бит
-у меня также :(
Вложения
3310.c
Моя прога)
(8.97 КБ) 867 скачиваний
clawham
Поставщик валерьянки для Кота
Сообщения: 1957
Зарегистрирован: Пт окт 31, 2008 09:38:55
Откуда: Одесса
Контактная информация:

Сообщение clawham »

вообщето Putstr это функция вывода в консольку - тоесть в Ком порт!
я всегда пользуюсь другой технологией - вот моя функция вывода строки

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


void lcd_putchar(char character)
{
    int tablept, count, char_column;
    if ((character<0x20>0x7f)) {return;}             
    tablept = ((6*character) - 192);                   

    for (count=5;count>0;count--)                           
    {
        char_column = table[tablept];
        writedata(char_column);
        tablept++;
    }
    writedata(0x00);                                       
}

void lcd_putstr(const char *s)
{
    while(*s) {lcd_putchar(*s++);}                               
}



Массив table это табличка шрифтов

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

flash char table[546] = {                                                      
     0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000 ,   // sp
     0b00000000, 0b00000000, 0b01011111, 0b00000000, 0b00000000, 0b00000000 ,   // !
     0x00, 0x07, 0x00, 0x07, 0x00 ,0x00 ,   // "
     0x14, 0x7f, 0x14, 0x7f, 0x14 ,0x00 ,   // #
     0x24, 0x2a, 0x7f, 0x2a, 0x12 ,0x00 ,   // $
     0xc4, 0xc8, 0x10, 0x26, 0x46 ,0x00 ,   // %
     0x36, 0x49, 0x55, 0x22, 0x50 ,0x00 ,   // &
     0x00, 0x05, 0x03, 0x00, 0x00 ,0x00 ,   // '
     0x00, 0x1c, 0x22, 0x41, 0x00 ,0x00 ,   // (
     0x00, 0x41, 0x22, 0x1c, 0x00 ,0x00 ,   // )
     0x14, 0x08, 0x3E, 0x08, 0x14 ,0x00 ,   // *
     0x08, 0x08, 0x3E, 0x08, 0x08 ,0x00 ,   // +
     0x00, 0x00, 0x50, 0x30, 0x00 ,0x00 ,   // ,
     0x10, 0x10, 0x10, 0x10, 0x10 ,0x00 ,   // -
     0x00, 0x60, 0x60, 0x00, 0x00 ,0x00 ,   // .
     0x20, 0x10, 0x08, 0x04, 0x02 ,0x00 ,   // /
     0b00110110, 0b01000001, 0b01000001, 0b01000001, 0b00110110, 0b00000000 ,   // 0
     0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00110110, 0b00000000 ,   // 1
     0b00110000, 0b01001001, 0b01001001, 0b01001001, 0b00000110, 0b00000000 ,   // 2
     0b00000000, 0b01001001, 0b01001001, 0b01001001, 0b00110110, 0b00000000 ,   // 3
     0b00000110, 0b00001000, 0b00001000, 0b00001000, 0b00110110, 0b00000000 ,   // 4
     0b00000110, 0b01001001, 0b01001001, 0b01001001, 0b00110000, 0b00000000 ,   // 5
     0b00110110, 0b01001001, 0b01001001, 0b01001001, 0b00110000, 0b00000000 ,   // 6
     0b00000000, 0b00000001, 0b00000001, 0b00000001, 0b00110110, 0b00000000 ,   // 7
     0b00110110, 0b01001001, 0b01001001, 0b01001001, 0b00110110, 0b00000000 ,   // 8
     0b00000110, 0b01001001, 0b01001001, 0b01001001, 0b00110110, 0b00000000 ,   // 9
     0x00, 0x36, 0x36, 0x00, 0x00 ,0x00 ,   // :
     0x00, 0x56, 0x36, 0x00, 0x00 ,0x00 ,   // ;
     0x08, 0x14, 0x22, 0x41, 0x00 ,0x00 ,   // <0x14>
     0x02, 0x01, 0x51, 0x09, 0x06 ,0x00 ,   // ?
     0x32, 0x49, 0x59, 0x51, 0x3E ,0x00 ,   // @
     0x7E, 0x11, 0x11, 0x11, 0x7E ,0x00 ,   // A
     0x7F, 0x49, 0x49, 0x49, 0x36 ,0x00 ,   // B
     0x3E, 0x41, 0x41, 0x41, 0x22 ,0x00 ,   // C
     0x7F, 0x41, 0x41, 0x22, 0x1C ,0x00 ,   // D
     0x7F, 0x49, 0x49, 0x49, 0x41 ,0x00 ,   // E
     0x7F, 0x09, 0x09, 0x09, 0x01 ,0x00 ,   // F
     0x3E, 0x41, 0x49, 0x49, 0x7A ,0x00 ,   // G
     0x7F, 0x08, 0x08, 0x08, 0x7F ,0x00 ,   // H
     0x00, 0x41, 0x7F, 0x41, 0x00 ,0x00 ,   // I
     0x20, 0x40, 0x41, 0x3F, 0x01 ,0x00 ,   // J
     0x7F, 0x08, 0x14, 0x22, 0x41 ,0x00 ,   // K
     0x7F, 0x40, 0x40, 0x40, 0x40 ,0x00 ,   // L
     0x7F, 0x02, 0x0C, 0x02, 0x7F ,0x00 ,   // M
     0x7F, 0x04, 0x08, 0x10, 0x7F ,0x00 ,   // N
     0x3E, 0x41, 0x41, 0x41, 0x3E ,0x00 ,   // O
     0x7F, 0x09, 0x09, 0x09, 0x06 ,0x00 ,   // P
     0x3E, 0x41, 0x51, 0x21, 0x5E ,0x00 ,   // Q
     0x7F, 0x09, 0x19, 0x29, 0x46 ,0x00 ,   // R
     0x46, 0x49, 0x49, 0x49, 0x31 ,0x00 ,   // S
     0x01, 0x01, 0x7F, 0x01, 0x01 ,0x00 ,   // T
     0x3F, 0x40, 0x40, 0x40, 0x3F ,0x00 ,   // U
     0x1F, 0x20, 0x40, 0x20, 0x1F ,0x00 ,   // V
     0x3F, 0x40, 0x38, 0x40, 0x3F ,0x00 ,   // W
     0x63, 0x14, 0x08, 0x14, 0x63 ,0x00 ,   // X
     0x07, 0x08, 0x70, 0x08, 0x07 ,0x00 ,   // Y
     0x61, 0x51, 0x49, 0x45, 0x43 ,0x00 ,   // Z
     0x00, 0x7F, 0x41, 0x41, 0x00 ,0x00 ,   // [
     0x55, 0x2A, 0x55, 0x2A, 0x55 ,0x00 ,   // 55
     0x00, 0x41, 0x41, 0x7F, 0x00 ,0x00 ,   // ]
     0x04, 0x02, 0x01, 0x02, 0x04 ,0x00 ,   // ^
     0x40, 0x40, 0x40, 0x40, 0x40 ,0x00 ,   // _
     0x00, 0x01, 0x02, 0x04, 0x00 ,0x00 ,   // '
     0x20, 0x54, 0x54, 0x54, 0x78 ,0x00 ,   // a
     0x7F, 0x48, 0x44, 0x44, 0x38 ,0x00 ,   // b
     0x38, 0x44, 0x44, 0x44, 0x20 ,0x00 ,   // c
     0x38, 0x44, 0x44, 0x48, 0x7F ,0x00 ,   // d
     0x38, 0x54, 0x54, 0x54, 0x18 ,0x00 ,   // e
     0x08, 0x7E, 0x09, 0x01, 0x02 ,0x00 ,   // f
     0x0C, 0x52, 0x52, 0x52, 0x3E ,0x00 ,   // g
     0x7F, 0x08, 0x04, 0x04, 0x78 ,0x00 ,   // h
     0x00, 0x44, 0x7D, 0x40, 0x00 ,0x00 ,   // i
     0x20, 0x40, 0x44, 0x3D, 0x00 ,0x00 ,   // j
     0x7F, 0x10, 0x28, 0x44, 0x00 ,0x00 ,   // k
     0x00, 0x41, 0x7F, 0x40, 0x00 ,0x00 ,   // l
     0x7C, 0x04, 0x18, 0x04, 0x78 ,0x00 ,   // m
     0x7C, 0x08, 0x04, 0x04, 0x78 ,0x00 ,   // n
     0x38, 0x44, 0x44, 0x44, 0x38 ,0x00 ,   // o
     0x7C, 0x14, 0x14, 0x14, 0x08 ,0x00 ,   // p
     0x08, 0x14, 0x14, 0x18, 0x7C ,0x00 ,   // q
     0x7C, 0x08, 0x04, 0x04, 0x08 ,0x00 ,   // r
     0x48, 0x54, 0x54, 0x54, 0x20 ,0x00 ,   // s
     0x04, 0x3F, 0x44, 0x40, 0x20 ,0x00 ,   // t
     0x3C, 0x40, 0x40, 0x20, 0x7C ,0x00 ,   // u
     0x1C, 0x20, 0x40, 0x20, 0x1C ,0x00 ,   // v
     0x3C, 0x40, 0x30, 0x40, 0x3C ,0x00 ,   // w
     0x44, 0x28, 0x10, 0x28, 0x44 ,0x00 ,   // x
     0x0C, 0x50, 0x50, 0x50, 0x3C ,0x00 ,   // y
     0x44, 0x64, 0x54, 0x4C, 0x44 ,0x00 ,   // z     
     };


а когда я хочу чтото вывести на экран я делаю так

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

unsigned char a2[30]; //Временная строка для вывода на экран

lcd_gotoxy(1,5);
sprintf(a2, "%i DEV(S)DET.1",devices);
lcd_putstr(a2);

Здесь a2 временная переменная а devices - переменная которую нужно вывести как число

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

ds_temp=ds18b20_temperature(&rom_codes[i][0]);
ds_temp = ds_temp/8;
sprintf(a2, "t%-u=%-i.%-u\xf8C",i+1, ds_temp/10, ds_temp%10);
lcd_clear_row(2+i);
lcd_gotoxy(1,2+i);
lcd_putstr(a2);

Это функция выводит температуру с десятичной точностью через точку используя только ИНТ переменную(экономия 5 байт перед флоатом)
Аватара пользователя
1995kenny
Вымогатель припоя
Сообщения: 524
Зарегистрирован: Ср авг 27, 2008 10:13:19
Откуда: Украина, Харьков
Контактная информация:

Сообщение 1995kenny »

Я скачал модель LCD 3310 для Proteus, а она не работает :( :(
Говорит "failed to autorise..."
Вложения
LCD 3310.rar
для протеуса
(47.64 КБ) 776 скачиваний
Аватара пользователя
Pahan
Мучитель микросхем
Сообщения: 487
Зарегистрирован: Чт ноя 23, 2006 22:47:35
Контактная информация:

Сообщение Pahan »

1995kenny Архив 100% рабочий. У мя работает. А ты правильно раскидал файлы в папки LIBRARY и MODELS?
clawham
Поставщик валерьянки для Кота
Сообщения: 1957
Зарегистрирован: Пт окт 31, 2008 09:38:55
Откуда: Одесса
Контактная информация:

Сообщение clawham »

Если чесно то наверное это изза неправильной версии...я когда ещё только начинал то с авр123 скачал протеус дома поставил и библиотечки потом внёс - начал разбираться с моником в протеусе а потом как-то захотелось одну вещ попробывать на работе, так я там скачав какую-то некрякнутую версию протеуса так и не добился работы, потом перебил из инсталлятора домашнего (это сам протеус, к нему крэк и сервиспак) и вуаля - заработало даж не подавилось!
Аватара пользователя
1995kenny
Вымогатель припоя
Сообщения: 524
Зарегистрирован: Ср авг 27, 2008 10:13:19
Откуда: Украина, Харьков
Контактная информация:

Сообщение 1995kenny »

Pahan а какая у вас версия протеуса ?
Аватара пользователя
Pahan
Мучитель микросхем
Сообщения: 487
Зарегистрирован: Чт ноя 23, 2006 22:47:35
Контактная информация:

Сообщение Pahan »

1995kenny 6.9 SP3. Довольно старая, но я за новьём не гоняюсь. Придерживаюсь принципа если вещь меня устраивает и работает, то лучше не трогать.
clawham
Поставщик валерьянки для Кота
Сообщения: 1957
Зарегистрирован: Пт окт 31, 2008 09:38:55
Откуда: Одесса
Контактная информация:

Сообщение clawham »

Что и требовалось доказать!
у меня на работе тож была 6-ка и с ней оно не работало а дома - 7.2 сп2 + адвансед симулятинг - следовательно - доверяй но проверяй, я тоже висту и вин 6 не уважаю но они у меня на винте стоят и я ими иногда пользуюсь ;) А ВДРУГ в чём-то оно окажется лучше?
Аватара пользователя
Rimsky
Грызет канифоль
Сообщения: 299
Зарегистрирован: Вт июн 15, 2010 07:16:42
Откуда: Иркутск
Контактная информация:

Re: LCD nokia 3310

Сообщение Rimsky »

Изображение
Вложения
lcd_nokia_3310.rar
если кому интересно, здесь архивчик с проектом..
(21.88 КБ) 1016 скачиваний
Аватара пользователя
Rimsky
Грызет канифоль
Сообщения: 299
Зарегистрирован: Вт июн 15, 2010 07:16:42
Откуда: Иркутск
Контактная информация:

Re: LCD nokia 3310

Сообщение Rimsky »

Шрифты 5х8 для графических дисплеев заточеные под проекты на AVRASM
Вложения
font.rar
(1.47 КБ) 573 скачивания
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»