Дисплей идет в сборе с клавиатурой и динамиком, поэтому для универсальности отрезал все лишнее и собрал вот такой модуль:
Библиотеку для работы с дисплеем в 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
Последние статьи
- Лучшая практика проектирования при размещении компонентов печатной платы
- Android 6.0 на lancer X
- Простой усилитель мощности класса АВ своими руками.
- Двухтактный ультралинейный ламповый УНЧ на EL84 (6П14П).
- Люксметр на ATmega8 и цифровом датчике BH1750
- Контроллер для светодиодной ленты с ИК управлением
- Самодельный LED светильник на основе ИК датчика HC-SR501
- Простой усилитель низкой частоты на TDA7377 и NE5532
- Простейший звонок с двумя мелодиями
- LED Cube 8x8x8 на Arduino с RTC