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

Работа с дисплеем от 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
Просмотров: 54133 | Комментарии: 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
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]






авторизация