Главная » Статьи » Как подключить

Работа с дисплеем от Nokia3310
 Когда телефоны были большими, а экранчики в них маленькие, протоколы общения между ними были очень просты. Учитывая цену на них сейчас, использовать такие дисплеи в своих проектах одно удовольствие. Например, у себя в городе приобрел дисплей от 3310 всего за 55 руб.
 Это монохромный дисплей разрешением 48х84 пикселя, с контроллером PCD8544 поддерживающий последовательный интерфейс связи. Для работы дисплея требуется напряжение питания 3,3В и конденсатор 4,7мкФ. Распиновка контактов:



 Дисплей идет в сборе с клавиатурой и динамиком, поэтому для универсальности отрезал все лишнее и собрал вот такой модуль:




 Библиотеку для работы с дисплеем в Bascom-AVR взял отсюда. Эта библиотека позволяет выводить цифровую, текстовую и графическую информацию. Для подготовки картинок нашел замечательную программу FastLCD, которая шла под компилятор FastAVR, но после небольшой доработки выходного файла изображения, можно использовать с этой библиотекой.
 Для примера подготовил картинку в формате BMP разрешением 48 на 84 пикселя, картинка должна быть монохромной:




 В программе создаем или загружаем уже подготовленный BMP-файл. Главное сначала создать новое изображение с нужным разрешением, так как по дефолту загружается поле 128х64 пикселей.



 После создания изображения, перегоняем его в массив данных для библиотеки, кнопкой BAS. Получаем следующий код:


 Который необходимо привести к такому виду (перед каждой строчкой ставим Data):


 Теперь копируем подготовленный массив в файл 3310bmp1.bas
 Компилируем и наблюдаем следующую картину:




 А вот как это выглядит вживую:


 
  Дисплей позволяет выводить информацию как в нормальном отображении:


Так и в инверсном:


  Исходники хорошо комментированы, поэтому проблем с выводом информации на дисплей возникнуть не должно.
 Файлы проекта можно скачать ниже:



Категория: Как подключить | Добавлено: 10.04.2011
Просмотров: 36141 | Комментарии: 83 | Теги: дисплей, SPI, atmega32, NOKIA3310 | Рейтинг: 4.4/18
Всего комментариев: 831 2 3 »
83 wle1036   (11.02.2014 01:44)
tank u 82 exersizze

how i can a var as byte and .... and show on display
for example:

dim rus as byte

rus = getadc(0)

how I show var rus ??

82 exersizze   (10.02.2014 21:33)
wle1036, use version 1.11.9.8

81 wle1036   (10.02.2014 19:40)
hi
for me have some error
please edit or what this error

http://wle.ir/up/do.php?imgf=139204670353481.jpg
http://wle.ir/up/do.php?imgf=139204670358922.jpg
http://wle.ir/up/do.php?imgf=139204670363453.jpg

+1   Спам
80 top   (01.09.2013 22:33)
marss70, скачатй с инета библиотеку COMDLG32.OCX и в папку с программой её.

79 marss70   (01.09.2013 20:55)
У меня Fastlcd не хочет запускаться. Может у кого есть рабочий вариант программы?

78 asd81   (18.08.2013 21:54)
я получил 5 строк смещенных относительно друг друга. без мусора. как быть дальше не пойму. только начал вникать. наверно , как я понял нужно прописывать для каждой строки отдельно установку первого пикселя. с кем можно в личке пообщаться? ткните носом где смотреть.спасибо

77 forter   (18.08.2013 20:35)
asd81!
Готовой прошивки нет, но все библиотеки для такого дисплея есть на этом сайте.
Смотрите, я имел удовольствие писать об этом.

76 asd81   (18.08.2013 19:02)
приветствую. есть у кого нибудь рабочая прошивка под китай3310 две дуги на мега8 "мега-термо"? поделитесь пожалуйта

75 top   (26.07.2013 22:41)
Выходит что на 8й меге не запустится? Вот сейчас пробую и не выходит, и похоже что это из-за размеров стека.

UDP: Все запустилось, проблема была в том, что при 3.3 В питания мега8 прошивалась некорректно. 5 В питания все исправили.

74 amv2000   (07.05.2012 14:21)
Да синим маркером поперек, видимо на складе для себя пометку делают...
С отображением текста и цифр удалось,а вот при выводе своей картинки всё так же рассыпается: Инициализация: вводим строки не с 0 до 5, а с 1 до 6
В подпрограмме очистки ввел 'For D3310pixelloop = 0 To 711 вместо For D3310pixelloop = 0 To 503
Sub D3310reset
D3310re = 0
Waitus 250
D3310re = 1
End Sub

Sub D3310init
D3310ce = 0 'Display data input enable
D3310dc = 0 'Command mode
D3310commandout &H21 'Перевод LCD в режим внешних команд.Расширенный режим команды, горизонтальное расположение
D3310commandout &H45 ' Для китайского
D3310commandout &HC8 'Middle contrast
D3310commandout &H06 'Temperature setting
D3310commandout &H14 'Bias 1:48 //как ни странно это контрастность по умолчанию 13
D3310commandout &H20 'Normal command mode, horizontal addressing
D3310commandout &H0C 'Uninverted Screen
D3310ce = 1 'Display data input disable
End Sub

Не могу понять почему картинки выводит криво, в каком месте библиотеки копаться может кто знает?

73 tenevikus   (07.05.2012 01:13)
значит и у тебя синий маркер?
любопытно.

72 amv2000   (06.05.2012 22:30)
Синим маркером пречеркнут в самую точку, в С дисплей китайский вроде победили я думаю и в Bascome можно...осталась пока полоса вверху в пиксел, читаю дальше по форумам.
Пока инициализация имеет вот такой вот вид:

Sub D3310init
D3310ce = 0 'Display data input enable
D3310dc = 0 'Command mode
D3310commandout &H21 'Extended command mode, horizontal addressing
'D3310commandout &HC8 'Middle contrast
D3310commandout &HE1

D3310commandout &H06 'Temperature setting
D3310commandout &H13 'Bias 1:48

D3310commandout &H7F ' Для китайского
D3310commandout &H20 'Normal command mode, horizontal addressing
D3310commandout &H0C 'Uninverted Screen
D3310ce = 1 'Display data input disable
End Sub

71 tenevikus   (06.05.2012 22:13)
я вот сейчас раскрутил старый оригинальный nokia 3310 и вытащил экран из него. на железке слева вверху выдавлено nokia. вот этот дисплей сразу заработал как надо.
жаль, что это последний оригинальный экран.

(а на купленных мной китайцах на всех 5ти экранах еще и маркером синяя полоска, и рыжая квадратная наклеечка прямо на экран)

70 amv2000   (06.05.2012 21:57)
Контраст стал лучше, а число очисток 711 не совсем исправило ситуацию вверху в один пиксел осталась помеха.

69 tenevikus   (06.05.2012 21:48)
да... картинку никак не выводит... из примера сдвигает по рядам...где что можно подправить?

68 tenevikus   (06.05.2012 21:17)
amv,
инициализирую пока как в примере... заменил пока число очисток на 711 и прибавил контраст до 225... буду картинку выводить скоро

67 amv2000   (06.05.2012 20:38)
У Вас китаец заработал? как инициализировали?

66 tenevikus   (06.05.2012 20:08)
хотя нет ...711 вылечило проблемму... спасибо...

65 tenevikus   (06.05.2012 20:06)
а вот мой китаец никак не хочет затирать нижнюю строку... текст выводится.. картинка съезжает.... изменение в исходнике 503 на 711 не помогло... чудеса

64 amv2000   (06.05.2012 16:11)
Верхняя строка съедается, в общем картинка как бы сдвинута вверх.
Пробовал вставлять D3310commandout &H7F ' первая строка на пиксель ниже
Но тогда не помещается шрифт Х4,съедается нижняя строка...

Sub D3310init
D3310ce = 0 'Display data input enable
D3310dc = 0 'Command mode
D3310commandout &H21 'Extended command mode, horizontal addressing
D3310commandout &HC8 'Middle contrast
D3310commandout &H06 'Temperature setting
D3310commandout &H13 'Bias 1:48
D3310commandout &H7F ' Для китайского
D3310commandout &H20 'Normal command mode, horizontal addressing
D3310commandout &H0C 'Uninverted Screen
D3310ce = 1 'Display data input disable
End Sub

63 exersizze   (06.05.2012 13:51)
а верхняя строка нормально отображается, на своем месте? Может адрсация не првильная-не хватает на последнюю строку
в файле библиотеки 3310end есть строка
Code
D3310byte = D3310y + &H40  'Send vertical address

попробуй поиграть значением &H40

62 amv2000   (06.05.2012 13:14)
А мне все же попался дисплей китайский при выводе картинки кракозябры, при выводе текста нижняя строка не отображается...никак его не победить, не подскажите?
фото http://files.mail.ru/JUTJM4?t=1

61 Valera18   (05.04.2012 15:18)
Спасибо.
Разобрался, всё работает

+1   Спам
60 exersizze   (04.04.2012 21:55)
есть пунктик в меню


59 Valera18   (04.04.2012 20:52)
Я прошиваю через Bascom-AVR (фьюзы выставляются автоматом).
А как можно отключить J-tag через Bascom-AVR?

58 exersizze   (04.04.2012 20:28)
правильно стоят фьюзы? еще возможно J-tag включен и занимает используемые выводы, попробуй отключить и его.

57 Valera18   (04.04.2012 20:19)
Я пробовал подключать LCD 3310 к ATmega8L - всё работает.
Пробовал подключить к ATmega64L (код изменил под микруху и запрограммировал), но на экран ничего не показывает.
Не могу понять что ни так, подключал к ногам (PA0-PA4), после не удачи подключал к (PB0-PB4), но тоже не помогло.
Может нужно каким-то другим ногам подключать или в чём-то другом проблема (всё компоненты рабочие и прошивка изменена правильно в PROTEUS работает)?

56 top   (15.01.2012 14:58)
Установил 1.11.9.8 все заработало) Спасибо)

55 exersizze   (15.01.2012 14:30)
Попробуй 1.11.9.8, с ней все нормально. Часто слышу что новые версии отказываются компилировать, может это тот случай.

54 top   (15.01.2012 13:52)
Версия 2.0.7.1

1-30 31-60 61-83
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]






   EasyEDA:  бесплатный редактор схем

   ✓ Создание схем
   ✓ Возможность симуляции
   ✓ Быстрое создание печатных плат
   ✓ Интуитивно понятный интерфейс

   Нарисуй свою схему прямо сейчас!
   Изготовление печатных плат   https://easyeda.com/order
авторизация
Логин:
Пароль:
Комментарии
Когда не хватает ног. Часть 2. Сдвиговый регистр 74HC595
01.12.2016 - yorx:
Доброго времени суток, exersizze попробовал Ваш код все равно не работает как на...
Помни об усадке!
30.11.2016 - pchela5:
Автомобильные никакие не лезут?
Помни об усадке!
29.11.2016 - AlekS:
Виктор, спасибо.
С заменой транса в зиму, перестройка не комельфо) Валяет...
Управляем микроконтроллером с ПК по UART
29.11.2016 - exersizze:
Михаил, для работы с инфракрасными датчиками и диодами есть команды RC5SE...
Управляем микроконтроллером с ПК по UART
29.11.2016 - Михаил:
Всем привет.
Подскажите как переменную S передать по инфракрасному каналу...
Помни об усадке!
29.11.2016 - pchela5:
> Если ленту светодиодную порезать и соединить последовательно
Только ...
Когда не хватает ног. Часть 2. Сдвиговый регистр 74HC595
29.11.2016 - exersizze:
yorx, вывод Q7 ' первой микросхемы соединен с DS второй микросхемы? С...
Помни об усадке!
29.11.2016 - exersizze:
Можно даже без резистора их включать, если на ленте уже стоят. Но если опасаешьс...
Помни об усадке!
28.11.2016 - AlekS:
Да,пла, из абс как-то грубовато идет. (((
Самое главное, наверное и для т...


Лучшие цены на 3D принтеры
успей сделать себе подарок к Новому Году! ;)


Prusa i3

Prusa i3 от 12500 р.



Rostoсk

Rostock от 15000 р.