Отключаемые счетчики электроэнергии на пульте. Все с документами пломбами, гарантией и без посредников!

Работа с дисплеем от Nokia3310

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

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

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

 Для примера подготовил картинку в формате BMP разрешением 48 на 84 пикселя, картинка должна быть монохромной:

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

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

&h00,&h00,&h00,&h00,&h00,&h00,&h00,&h00,&h00,&h00,&h00,&h00,&h00,&h00,&h00,&h80,

&hE0,&hF8,&hF8,&hF8,&hF0,&hC0,&h00,&h00,&h08,&h08,&h18,&h38,&hF8,&hF8,&hF8,&hF8,

&hF8,&h08,&h08,&h00,&h00,&h00,&h00,&h00,&h00,&h08,&h08,&hF8,&hF8,&h78,&h18,&h08,

&h08,&h00,&h08,&h08,&hD8,&hF8,&hF8,&hF8,&hF8,&h78,&h08,&h08,&h08,&h08,&h18,&hF8,

&hF8,&hF0,&hF0,&hE0,&h00,&h00,&h00,&h00,&h88,&h88,&h88,&h88,&h88,&h88,&h88,&h88,

&hF8,&h00,&h00,&h00,&h00,&h00,&h00,&h00,&h00,&h00,&h00,&h00,&h00,&h00,&h00,&h00,

&hC0,&hF0,&h3E,&h0F,&h01,&h03,&h0F,&h3F,&hFF,&hFF,&hFE,&hF8,&hE0,&h00,&h00,&h00,

&h01,&h07,&h1F,&hFF,&hFF,&hFF,&hFC,&hF0,&h80,&h00,&h00,&h00,&hC0,&hF8,&h1F,&h07,

&h01,&h00,&h00,&h00,&h00,&h00,&h80,&hF8,&hFF,&hFF,&hFF,&h7F,&h27,&h60,&hE0,&hE0,

&hF0,&hF8,&hDC,&h1F,&h0F,&h0F,&h07,&h01,&h00,&h00,&h00,&h00,&h78,&h44,&h44,&h44,

&h44,&h78,&h50,&h48,&h44,&h00,&h00,&h00,&h00,&h00,&h00,&h00,&h00,&h00,&h80,&h80,

&hC0,&hE0,&hF8,&hFE,&hC7,&h81,&h81,&h01,&h01,&h01,&h01,&h01,&h81,&h87,&hFF,&hFF,

&hFF,&hFF,&hFC,&hE0,&hC0,&h80,&h80,&h00,&h03,&h1F,&h7F,&hFF,&hFF,&hFE,&h7C,&h0F,

&h03,&h00,&h00,&h00,&h00,&h80,&h80,&h80,&hC0,&hF8,&hFF,&hFF,&hFF,&hFF,&hCF,&h80,

&h80,&h00,&h01,&h07,&h1F,&h7F,&hFF,&hFF,&hFC,&hF0,&hC0,&h80,&h80,&h00,&h00,&h00,

&h7C,&h04,&h08,&h08,&h10,&h20,&h20,&h40,&h7D,&h00,&h00,&h00,&h00,&h00,&h00,&h00,

&h00,&h00,&h00,&h00,&h00,&h00,&h00,&h00,&h08,&h08,&hF8,&hF8,&hF8,&h08,&h00,&h00,

&h00,&h00,&h00,&h00,&h00,&h00,&h00,&h00,&h00,&h00,&h00,&h00,&h00,&h00,&h00,&h00,

&h00,&h00,&h00,&h18,&h18,&h18,&h00,&h00,&h00,&h00,&h00,&h00,&h00,&h00,&h00,&h00,

&h00,&h00,&h00,&h00,&h00,&h00,&h00,&h00,&h00,&h00,&h00,&h00,&h00,&h00,&h00,&h00,

&h00,&h00,&h00,&h00,&h3E,&h22,&h22,&h22,&h22,&h22,&h22,&h22,&h3E,&h00,&h00,&h00,

&h00,&h00,&h00,&h00,&h00,&h00,&hF8,&hFC,&hFE,&h07,&h01,&h81,&hF1,&hFF,&hFF,&h1F,

&h00,&h00,&h78,&hFC,&hFE,&h93,&h11,&h19,&h0F,&h8F,&h46,&h80,&h8E,&h9E,&h1F,&h39,

&hF9,&hF3,&hE3,&h03,&h01,&hE1,&hFF,&hFF,&h1F,&h00,&h00,&h00,&hF8,&hFC,&hFE,&h07,

&h03,&h01,&hE1,&hFE,&hFF,&h1F,&h01,&h01,&h81,&hFF,&hFF,&h7F,&h06,&h02,&hF1,&hFF,

&hFF,&h1E,&h00,&h00,&h00,&h00,&h00,&h00,&h9F,&h90,&h90,&h90,&h90,&h90,&h90,&h90,

&h9F,&h00,&h00,&h00,&h00,&h00,&h00,&h00,&h00,&h00,&h00,&h01,&h01,&h01,&h01,&h00,

&h00,&h01,&h01,&h01,&h01,&h00,&h00,&h00,&h01,&h01,&h01,&h01,&h01,&h00,&h00,&h00,

&h01,&h01,&h01,&h01,&h01,&h00,&h00,&h00,&h00,&h00,&h01,&h01,&h01,&h01,&h00,&h00,

&h0C,&h1D,&h19,&h11,&h19,&h1F,&h0F,&h07,&h01,&h00,&h00,&h00,&h01,&h01,&h01,&h00,

&h00,&h00,&h00,&h01,&h01,&h01,&h01,&h00,&h00,&h00,&h00,&h00,&h10,&h10,&h10,&h10,

&h10,&h10,&h10,&h10,&h1F,&h00,&h00,&h00

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

data &h00,&h00,&h00,&h00,&h00,&h00,&h00,&h00

data &h00,&h00,&h00,&h00,&h00,&h00,&h00,&h80

data &hE0,&hF8,&hF8,&hF8,&hF0,&hC0,&h00,&h00

data &h08,&h08,&h18,&h38,&hF8,&hF8,&hF8,&hF8

data &hF8,&h08,&h08,&h00,&h00,&h00,&h00,&h00

data &h00,&h08,&h08,&hF8,&hF8,&h78,&h18,&h08

data &h08,&h00,&h08,&h08,&hD8,&hF8,&hF8,&hF8

data &hF8,&h78,&h08,&h08,&h08,&h08,&h18,&hF8

data &hF8,&hF0,&hF0,&hE0,&h00,&h00,&h00,&h00

data &h88,&h88,&h88,&h88,&h88,&h88,&h88,&h88

data &hF8,&h00,&h00,&h00

data &h00,&h00,&h00,&h00,&h00,&h00,&h00,&h00

data &h00,&h00,&h00,&h00,&hC0,&hF0,&h3E,&h0F

data &h01,&h03,&h0F,&h3F,&hFF,&hFF,&hFE,&hF8

data &hE0,&h00,&h00,&h00,&h01,&h07,&h1F,&hFF

data &hFF,&hFF,&hFC,&hF0,&h80,&h00,&h00,&h00

data &hC0,&hF8,&h1F,&h07,&h01,&h00,&h00,&h00

data &h00,&h00,&h80,&hF8,&hFF,&hFF,&hFF,&h7F

data &h27,&h60,&hE0,&hE0,&hF0,&hF8,&hDC,&h1F

data &h0F,&h0F,&h07,&h01,&h00,&h00,&h00,&h00

data &h78,&h44,&h44,&h44,&h44,&h78,&h50,&h48

data &h44,&h00,&h00,&h00

data &h00,&h00,&h00,&h00,&h00,&h00,&h80,&h80

data &hC0,&hE0,&hF8,&hFE,&hC7,&h81,&h81,&h01

data &h01,&h01,&h01,&h01,&h81,&h87,&hFF,&hFF

data &hFF,&hFF,&hFC,&hE0,&hC0,&h80,&h80,&h00

data &h03,&h1F,&h7F,&hFF,&hFF,&hFE,&h7C,&h0F

data &h03,&h00,&h00,&h00,&h00,&h80,&h80,&h80

data &hC0,&hF8,&hFF,&hFF,&hFF,&hFF,&hCF,&h80

data &h80,&h00,&h01,&h07,&h1F,&h7F,&hFF,&hFF

data &hFC,&hF0,&hC0,&h80,&h80,&h00,&h00,&h00

data &h7C,&h04,&h08,&h08,&h10,&h20,&h20,&h40

data &h7D,&h00,&h00,&h00

data &h00,&h00,&h00,&h00,&h00,&h00,&h00,&h00

data &h00,&h00,&h00,&h00,&h08,&h08,&hF8,&hF8

data &hF8,&h08,&h00,&h00,&h00,&h00,&h00,&h00

data &h00,&h00,&h00,&h00,&h00,&h00,&h00,&h00

data &h00,&h00,&h00,&h00,&h00,&h00,&h00,&h18

data &h18,&h18,&h00,&h00,&h00,&h00,&h00,&h00

data &h00,&h00,&h00,&h00,&h00,&h00,&h00,&h00

data &h00,&h00,&h00,&h00,&h00,&h00,&h00,&h00

data &h00,&h00,&h00,&h00,&h00,&h00,&h00,&h00

data &h3E,&h22,&h22,&h22,&h22,&h22,&h22,&h22

data &h3E,&h00,&h00,&h00

data &h00,&h00,&h00,&h00,&h00,&h00,&hF8,&hFC

data &hFE,&h07,&h01,&h81,&hF1,&hFF,&hFF,&h1F

data &h00,&h00,&h78,&hFC,&hFE,&h93,&h11,&h19

data &h0F,&h8F,&h46,&h80,&h8E,&h9E,&h1F,&h39

data &hF9,&hF3,&hE3,&h03,&h01,&hE1,&hFF,&hFF

data &h1F,&h00,&h00,&h00,&hF8,&hFC,&hFE,&h07

data &h03,&h01,&hE1,&hFE,&hFF,&h1F,&h01,&h01

data &h81,&hFF,&hFF,&h7F,&h06,&h02,&hF1,&hFF

data &hFF,&h1E,&h00,&h00,&h00,&h00,&h00,&h00

data &h9F,&h90,&h90,&h90,&h90,&h90,&h90,&h90

data &h9F,&h00,&h00,&h00

data &h00,&h00,&h00,&h00,&h00,&h00,&h00,&h01

data &h01,&h01,&h01,&h00,&h00,&h01,&h01,&h01

data &h01,&h00,&h00,&h00,&h01,&h01,&h01,&h01

data &h01,&h00,&h00,&h00,&h01,&h01,&h01,&h01

data &h01,&h00,&h00,&h00,&h00,&h00,&h01,&h01

data &h01,&h01,&h00,&h00,&h0C,&h1D,&h19,&h11

data &h19,&h1F,&h0F,&h07,&h01,&h00,&h00,&h00

data &h01,&h01,&h01,&h00,&h00,&h00,&h00,&h01

data &h01,&h01,&h01,&h00,&h00,&h00,&h00,&h00

data &h10,&h10,&h10,&h10,&h10,&h10,&h10,&h10

data &h1F,&h00,&h00,&h00

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

 Компилируем и наблюдаем следующую картину:

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

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

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

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

 Файлы проекта можно скачать ниже:

Печатная плата под дисплей Модель дисплея Nokia 3310 для Proteus

Проект в ProteusИсходники библиотеки и файл прошивки

Программа подготовки изображения FastLCD


Взято с: avrproject.ru


Категория: AVR
Метки:

Написать коментарий

*
= 5 + 0

Добавить изображение

Последние статьи