Arduino nokia 5110 lcd: Ардуино: графический ЖК дисплей Nokia 5110

Содержание

Lcd nokia 5110 в категории «Техника и электроника»

Графічний дисплей LCD Nokia 5110

Доставка по Украине

154 грн

Купить

Модуль дисплей Nokia 5110 LCD Синяя подсветка

Доставка из г. Одесса

308 — 330 грн

от 2 продавцов

330 грн

Купить

Модуль дисплей Nokia 5110 LCD Синяя подсветка

Доставка из г. Одесса

271.6 — 291 грн

от 2 продавцов

291 грн

Купить

Модуль LCD Nokia 5110

Доставка по Украине

328 грн

Купить

Модуль LCD Nokia 5110 (красный)

Доставка по Украине

191.18 грн

Купить

Модуль LCD Nokia 5110 (синий)

Доставка из г. Днепр

150.93 грн

Купить

Графический LCD экран Nokia 5110 для Arduino

Доставка по Украине

214.43 грн

Купить

Arduino ЖК LCD PCB модуль дисплей Nokia 5110

Доставка из г. Полтава

149.99 грн

Купить

Arduino ЖК LCD PCB модуль дисплей Nokia 5110

Доставка из г. Полтава

149.99 грн

Купить

Arduino ЖК LCD PCB модуль дисплей Nokia 5110 — синий

Доставка из г. Полтава

149.99 грн

Купить

ЖК LCD Nokia 5110 модуль дисплей

Доставка из г. Полтава

149.99 грн

Купить

Дисплей LCD Nokia 5110 84×48

На складе в г. Умань

Доставка по Украине

106 грн

Купить

Модуль 2,4-дюймовый LCD-экран ILI9341+стилус

Доставка по Украине

359.60 грн

Купить

LCD дисплей Nokia 5110 84×48 8 Bit

На складе в г. Сумы

Доставка по Украине

231 грн

Купить

Дисплей графический 84*48 Nokia 5110 LCD Arduino Графический LCD дисплей 84×48 Nokia 5110 для Arduino и не тол

Недоступен

135 грн

Смотреть

Смотрите также

Модуль LCD Nokia 5110

Недоступен

255.27 грн

Смотреть

Arduino ЖК LCD дисплей Nokia 5110

Недоступен

100 грн

Смотреть

Дисплей LCD Nokia 5110 для Arduino

Недоступен

79 грн

Смотреть

Arduino ЖК LCD PCB модуль дисплей Nokia 5110

Недоступен

120. 30 грн

Смотреть

Дисплей LCD Nokia 5110, синяя подсветка

Недоступен

90 грн

Смотреть

LCD Nokia 5110 для Arduino (дисплей 84×48) [#2-7]

Недоступен

78 грн

Смотреть

Arduino ЖК LCD PCB модуль дисплей Nokia 5110 — синий

Недоступен

120.30 грн

Смотреть

Дисплей LCD Nokia 5110, белая подсветка

Недоступен

90 грн

Смотреть

ЖК LCD Nokia 5110 модуль дисплей

Недоступен

120.30 грн

Смотреть

Arduino ЖК LCD PCB модуль дисплей Nokia 5110

Недоступен

120 грн

Смотреть

Arduino ЖК LCD PCB модуль дисплей Nokia 5110

Недоступен

120.30 грн

Смотреть

Nokia 5110 LCD модуль синій

Недоступен

85 грн

Смотреть

ЖК LCD Nokia 5110 модуль дисплей — синий

Недоступен

120.30 грн

Смотреть

Arduino ЖК LCD PCB модуль дисплей Nokia 5110 — синий

Недоступен

120.30 грн

Смотреть

Дисплей Nokia 5110 – подключение к микроконтроллеру | RadioLaba.

ru

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

 

              #include <P16F628A.INC>

              LIST        p=16F628A    

              __CONFIG    H’3F18′           ;Конфигурация микроконтроллера

                                              

              errorlevel  -302              ;не выводить сообщения с ошибкой 302 в листинге

 

Sec           equ         0020h             ;вспомогательные регистры счета

Sec1          equ         0021h             ;

Sec2          equ         0022h             ;

nomer         equ         0023h             ;регистр хранения кода ascii символа

scetbit       equ         0024h             ;регистр счета кол-ва бит  

perem         equ         0025h             ;вспомогательный регистр передачи байта по spi              

temp          equ         0026h             ;вспомогательный регистр счета

tmp_tab       equ         0027h             ;регистр хранения номера таблицы

              

#DEFINE       res_lcd     PORTB,0           ;присвоение названий линиям ввода-вывода

#DEFINE       cs          PORTB,1           ;для работы с LCD дисплеем Nоkiа 5110

#DEFINE       dat_com     PORTB,2           ;

#DEFINE       sdata       PORTB,3           ;

#DEFINE       sclk        PORTB,4           ;

 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

 

              org         0000h             ;начать выполнение программы с адреса 0000h

              goto        Start             ;переход на метку Start

          

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;Основная программа

                                            

Start         movlw       b’00010011′       ;установка значений выходных защелок порта B    

              movwf       PORTB             ;

              

              movlw       b’00000111′       ;выключение компараторов

              movwf       CMCON             ;

 

              bsf         STATUS,RP0        ;выбрать 1-й банк    

              movlw       b’11100000′       ;настройка линий ввода\вывода порта B      

              movwf       TRISB             ;RB0,RB1 — на вход, остальные на выход                  

              bcf         STATUS,RP0        ;выбрать 0-й банк

                          

              call        init_lcd          ;вызов подпрограммы инициализации дисплея

              call        clear_lcd         ;вызов подпрограммы очистки дисплея

 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

 

              movlw       ‘»‘               ;вывод текста («RadioLaba. ru»)

              call        viv_symb          ;

              movlw       ‘R’               ;

              call        viv_symb          ;

              movlw       ‘a’               ;

              call        viv_symb          ;

              movlw       ‘d’               ;

              call        viv_symb          ;

              movlw       ‘i’               ;

              call        viv_symb          ;

              movlw       ‘o’               ;

              call        viv_symb          ;

              movlw       ‘L’               ;

              call        viv_symb          ;

              movlw       ‘a’               ;

              call        viv_symb          ;

              movlw       ‘b’               ;

              call        viv_symb          ;

              movlw       ‘a’               ;

              call        viv_symb          ;

              movlw       ‘. ‘               ;

              call        viv_symb          ;

              movlw       ‘r’               ;

              call        viv_symb          ;

              movlw       ‘u’               ;

              call        viv_symb          ;

              movlw       ‘»‘               ;

              call        viv_symb          ;

              call        paus1s            ;пауза 1 сек

 

              call        ust_cur_2         ;установка курсора на начало 2-ой строки

              movlw       ‘ ‘               ;вывод текста ( Тестовый код)

              call        viv_symb          ;

              movlw       ‘Т’               ;

              call        viv_symb          ;

              movlw       ‘е’               ;

              call        viv_symb          ;

              movlw       ‘с’               ;

              call        viv_symb          ;

              movlw       ‘т’               ;

              call        viv_symb          ;

              movlw       ‘о’               ;

              call        viv_symb          ;

              movlw       ‘в’               ;

              call        viv_symb          ;

              movlw       ‘ы’               ;

              call        viv_symb          ;

              movlw       ‘й’               ;

              call        viv_symb          ;

              movlw       ‘ ‘               ;

              call        viv_symb          ;

              movlw       ‘К’               ;

              call        viv_symb          ;

              movlw       ‘о’               ;

              call        viv_symb          ;

              movlw       ‘д’               ;

              call        viv_symb          ;

              call        paus1s            ;пауза 1 сек

 

              call        ust_cur_3         ;установка курсора на начало 3-й строки

              movlw       ‘ ‘               ;вывод текста (  *Дисплей*)

              call        viv_symb          ;

              movlw       ‘ ‘               ;

              call        viv_symb          ;

              movlw       ‘*’               ;

              call        viv_symb          ;

              movlw       ‘Д’               ;

              call        viv_symb          ;

              movlw       ‘и’               ;

              call        viv_symb          ;

              movlw       ‘с’               ;

              call        viv_symb          ;

              movlw       ‘п’               ;

              call        viv_symb          ;

              movlw       ‘л’               ;

              call        viv_symb          ;

              movlw       ‘е’               ;

              call        viv_symb          ;

              movlw       ‘й’               ;

              call        viv_symb          ;

              movlw       ‘*’               ;

              call        viv_symb          ;

              call        paus1s            ;пауза 1 сек

 

              call        ust_cur_4         ;установка курсора на начало 4-й строки

              movlw       ‘ ‘               ;вывод текста (  Nоkiа 5110)

              call        viv_symb          ;

              movlw       ‘ ‘               ;

              call        viv_symb          ;

              movlw       ‘N’               ;

              call        viv_symb          ;

              movlw       ‘o’               ;

              call        viv_symb          ;

              movlw       ‘k’               ;

              call        viv_symb          ;

              movlw       ‘i’               ;

              call        viv_symb          ;

              movlw       ‘a’               ;

              call        viv_symb          ;

              movlw       ‘ ‘               ;

              call        viv_symb          ;

              movlw       ‘5’               ;

              call        viv_symb          ;

              movlw       ‘1’               ;

              call        viv_symb          ;

              movlw       ‘1’               ;

              call        viv_symb          ;

              movlw       ‘0’               ;

              call        viv_symb          ;

              call        paus1s            ;пауза 1 сек

 

              call        ust_cur_5         ;установка курсора на начало 5-й строки

              movlw       ‘ ‘               ;вывод текста (  Контроллер)

              call        viv_symb          ;

              movlw       ‘ ‘               ;

              call        viv_symb          ;

              movlw       ‘К’               ;

              call        viv_symb          ;

              movlw       ‘о’               ;

              call        viv_symb          ;

              movlw       ‘н’               ;

              call        viv_symb          ;

              movlw       ‘т’               ;

              call        viv_symb          ;

              movlw       ‘р’               ;

              call        viv_symb          ;

              movlw       ‘о’               ;

              call        viv_symb          ;

              movlw       ‘л’               ;

              call        viv_symb          ;

              movlw       ‘л’               ;

              call        viv_symb          ;

              movlw       ‘е’               ;

              call        viv_symb          ;

              movlw       ‘р’               ;

              call        viv_symb          ;

              call        paus1s            ;пауза 1 сек

 

              call        ust_cur_6         ;установка курсора на начало 6-й строки

              movlw       ‘ ‘               ;вывод текста (  РIС16F628А)

              call        viv_symb          ;

              movlw       ‘ ‘               ;

              call        viv_symb          ;

              movlw       ‘P’               ;

              call        viv_symb          ;

              movlw       ‘I’               ;

              call        viv_symb          ;

              movlw       ‘C’               ;

              call        viv_symb          ;

              movlw       ‘1’               ;

              call        viv_symb          ;

              movlw       ‘6’               ;

              call        viv_symb          ;

              movlw       ‘F’               ;

              call        viv_symb          ;

              movlw       ‘6’               ;

              call        viv_symb          ;

              movlw       ‘2’               ;

              call        viv_symb          ;

              movlw       ‘8’               ;

              call        viv_symb          ;

              movlw       ‘A’               ;

              call        viv_symb          ;

met_1         nop                           ;зацикливание программы

              goto        met_1             ;

                  

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

 

init_lcd      bcf        res_lcd            ;подпрограмма инициализации дисплея        

              movlw      . 200               ;выдача лог.0 на линию RST: сброс дисплея

              movwf      scetbit            ;пауза 0,6 мс

in_1          decfsz     scetbit,F          ;

              goto       in_1               ;

              bsf        res_lcd            ;          

                          

              movlw      0x21               ;включить контроллер дисплея, горизонт.адресация, расширенный набор команд

              call       sendispcom         ;

              movlw      0x13               ;установка смещения напряжения Bias 1:48

              call       sendispcom         ;

              movlw      0x04               ;установка температурного коэффициента 0

              call       sendispcom         ;

              movlw      0xC1               ;установка контрастности (значение 0x65)

              call       sendispcom         ;

              movlw      0x20               ;стандартный набор команд

              call       sendispcom         ;

              movlw      0x0C               ;установка — нормальный режим работы

              call       sendispcom         ;

              return                        ;выход

 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

 

ust_cur_1     movlw       0x40              ;установка курсор в позицию Y0

              call        sendispcom

              goto        ust

ust_cur_2     movlw       0x41              ;установка курсор в позицию Y1

              call        sendispcom

              goto        ust

ust_cur_3     movlw       0x42              ;установка курсор в позицию Y2

              call        sendispcom

              goto        ust

ust_cur_4     movlw       0x43              ;установка курсор в позицию Y3

              call        sendispcom

              goto        ust

ust_cur_5     movlw       0x44              ;установка курсор в позицию Y4

              call        sendispcom

              goto        ust

ust_cur_6     movlw       0x45              ;установка курсор в позицию Y5

              call        sendispcom

ust           movlw       0x80              ;установка курсор в позицию X0

              call        sendispcom

              return

 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

 

clear_lcd     movlw      0x40               ;подпрограмма очистки дисплея

              call       sendispcom         ;установка курсор в позицию Y0

              movlw      0x80              

              call       sendispcom         ;установка курсор в позицию X0

              movlw      . 6                 ;запись счетчика, значение 504

              movwf      Sec1

povt4         movlw      .84

              movwf      Sec

povt3         movlw      .0

              call       sendispdat         ;отправка значения 0x00 на дисплея

              decfsz     Sec,F              ;значение отправляется 504 раза

              goto       povt3              ;для очистки дисплея

              decfsz     Sec1,F            

              goto       povt4

              return

 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

 

sendispcom    movwf      perem              ;подпрограмма отправки команды/данных на дисплей

              bcf        dat_com

              goto       povt1

sendispdat    movwf      perem

              bsf        dat_com

povt1         movlw      .8

              movwf      scetbit

              bcf        cs

povt2         bcf        sclk

              btfsc      perem,7

              bsf        sdata

              btfss      perem,7

              bcf        sdata

              bsf        sclk                                  

              rlf        perem,F

              decfsz     scetbit,F            

              goto       povt2

              bsf        cs

              return

 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

 

viv_symb      movwf       nomer             ;подпрограмма вывода символа на дисплей

              movlw       . 32               ;

              subwf       nomer,W           ;

              btfss       STATUS,C          ;

              return                        ;значение символа менее 32: выход из подпрограммы

 

              movf        nomer,W

              sublw       .82

              btfss       STATUS,C

              goto        viv_symb_1        ;значение символа более 82: переход на метку viv_symb_1

              movlw       .32               ;значение символа более 31 и менее 83: символ в таблице tab_symb_1

              subwf       nomer,F           ;вычитание числа 32 из ASCII кода символа, получаем

              movlw       .1                ;преобразованное значение символа

              movwf       tmp_tab           ;запись номера таблицы (1) в регистр tmp_tab

              goto        symb_lcd

 

viv_symb_1    movf        nomer,W

              sublw       .126

              btfss       STATUS,C

              goto        viv_symb_2        ;значение символа более 126: переход на метку viv_symb_2

              movlw       . 83               ;значение символа более 82 и менее 128: символ в таблице tab_symb_2

              subwf       nomer,F           ;вычитание числа 83 из ASCII кода символа, получаем

              movlw       .2                ;преобразованное значение символа

              movwf       tmp_tab           ;запись номера таблицы (2) в регистр tmp_tab

              goto        symb_lcd

 

viv_symb_2    movf        nomer,W

              sublw       .191

              btfss       STATUS,C

              goto        viv_symb_3        ;значение символа более 191: переход на метку viv_symb_3

 

              movlw       .176              ;проверка регистра nomer на совпадение с числом 176

              xorwf       nomer,W           ;176 — ascii код символа размерности температры, угла

              btfss       STATUS,Z

              return                        ;значение не совпадает: выход из подпрограммы

              movlw       . 13               ;значение символа равно 176, символ размерности температуры, угла

              movwf       nomer             ;устанавливаем вручную преобраз. значение символа

              movlw       .4

              movwf       tmp_tab           ;запись номера таблицы (4) в регистр tmp_tab

              goto        symb_lcd

 

viv_symb_3    movf        nomer,W

              sublw       .242

              btfss       STATUS,C

              goto        viv_symb_4        ;значение символа более 242: переход на метку viv_symb_4

              movlw       .192              ;значение символа более 191 и менее 243: символ в таблице tab_symb_3

              subwf       nomer,F           ;вычитание числа 192 из ASCII кода символа, получаем

              movlw       .3                ;преобразованное значение символа

              movwf       tmp_tab           ;запись номера таблицы (3) в регистр tmp_tab

              goto        symb_lcd

 

viv_symb_4    movlw       . 243              ;значение символа более 242: символ в таблице tab_symb_4

              subwf       nomer,F

              movlw       .4

              movwf       tmp_tab           ;запись номера таблицы (4) в регистр tmp_tab

              

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

 

symb_lcd      movf        nomer,W           ;умножение преобразованного значения символа на 5

              addwf       nomer,F

              addwf       nomer,F

              addwf       nomer,F

              addwf       nomer,F

              movlw       .5

              movwf       temp              ;запись счетчика для вывода 5 байт символа

 

symb_1        movlw       .1                ;определение ранее записанного номера талицы

              xorwf       tmp_tab,W         ;для вызова соответствующей таблицы

              btfss       STATUS,Z

              goto        symb_m1

              call        tab_symb_1

              goto        symb_2

symb_m1       movlw       . 2

              xorwf       tmp_tab,W

              btfss       STATUS,Z

              goto        symb_m2

              call        tab_symb_2

              goto        symb_2  

symb_m2       movlw       .3

              xorwf       tmp_tab,W

              btfss       STATUS,Z

              goto        symb_m3

              call        tab_symb_3

              goto        symb_2  

symb_m3       call        tab_symb_4

              

symb_2        call        sendispdat        ;вывод байта символа на дисплей

              incf        nomer,F

              decfsz      temp,F

              goto        symb_1

              movlw       .0                

              call        sendispdat        ;вывод пустого столбца (0x00) разделителя символов

              return

 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

 

tab_symb_1    movlw       high tab1         ;таблица данных содержащая байты символов

              movwf       PCLATH            ;спецзнаки, цифры 0-9, латинские символы A-R

              movf        nomer,W           ;

              addlw       low tab1          ;

              btfsc       STATUS,C          ;

              incf        PCLATH,F          ;

              movf        nomer,W           ;

              addwf       PCL,F  

                                                  

tab1          dt 0x00, 0x00, 0x00, 0x00, 0x00; (пробел) значение ASCII кода 32

              dt 0x00, 0x00, 0x5F, 0x00, 0x00; !

              dt 0x00, 0x07, 0x00, 0x07, 0x00; «

              dt 0x14, 0x7F, 0x14, 0x7F, 0x14; #

              dt 0x24, 0x2A, 0x7F, 0x2A, 0x12; $

              dt 0x23, 0x13, 0x08, 0x64, 0x62; %

              dt 0x36, 0x49, 0x55, 0x22, 0x50; &

              dt 0x00, 0x05, 0x03, 0x00, 0x00; ‘

              dt 0x00, 0x1C, 0x22, 0x41, 0x00; (

              dt 0x00, 0x41, 0x22, 0x1C, 0x00; )

              dt 0x08, 0x2A, 0x1C, 0x2A, 0x08; *

              dt 0x08, 0x08, 0x3E, 0x08, 0x08; +

              dt 0x00, 0x50, 0x30, 0x00, 0x00; ,

              dt 0x08, 0x08, 0x08, 0x08, 0x08; —

              dt 0x00, 0x60, 0x60, 0x00, 0x00; .

              dt 0x20, 0x10, 0x08, 0x04, 0x02; /

              dt 0x3E, 0x51, 0x49, 0x45, 0x3E; 0

              dt 0x00, 0x42, 0x7F, 0x40, 0x00; 1

              dt 0x42, 0x61, 0x51, 0x49, 0x46; 2

                 ……………………..

                 ……………………..

                 ……………………..

 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Взаимодействие ЖК-дисплея Nokia 5110 с Arduino | Руководство по подключению

В этом проекте я покажу вам, как подключить ЖК-дисплей Nokia 5110 к Arduino UNO. Во-первых, мы немного узнаем о знаменитом ЖК-модуле Nokia 5110 и его ЖК-контроллере PCD8544 от Phillips. Затем мы увидим шаги для взаимодействия ЖК-дисплея Nokia 5110 с платой Arduino UNO и отобразим некоторый основной текст.

Схема

Введение

В предыдущих проектах Arduino я подключал ЖК-модуль 16×2 с Arduino (и другими микроконтроллерами). Это простой модуль отображения символов, который достаточно хорош для отображения простых буквенно-цифровых символов.

Но если вы хотите отобразить некоторые пользовательские символы или изменить размер шрифта символов или даже отобразить некоторые небольшие графические изображения, вам нужно искать в другом месте (точнее, на графическом ЖК-дисплее).

ЖК-модуль Nokia 5110 — это один из таких графических ЖК-экранов, который в настоящее время получает широкое распространение среди любителей электроники и разработчиков проектов «сделай сам». ЖК-дисплей Nokia 5110 изначально был разработан для использования, ну, как вы могли догадаться, в сотовых телефонах Nokia (изначально использовался в мобильном телефоне Nokia 5110. Отсюда и название).

Фактически, культовый мобильный телефон Nokia 3310 состоит из того же ЖК-экрана. В результате ЖК-экран известен как ЖК-дисплей Nokia 3310 или ЖК-дисплей Nokia 5110.

Краткая информация о ЖК-дисплее Nokia 5110

ЖК-модуль Nokia 5110

ЖК-дисплей Nokia 5110 представляет собой монохромный графический ЖК-дисплей с разрешением 84 x 48 пикселей, т. е. он содержит 48 строк и 84 столбца. Вы можете управлять отдельными пикселями на экране, поэтому этот ЖК-модуль подходит для отображения текста, графики и растровых изображений.

Что касается передачи данных, то для связи с ЖК-модулем используется последовательный интерфейс, аналогичный интерфейсу SPI. В следующей таблице показаны контакты ЖК-модуля Nokia 5110 вместе с описанием контактов.

Номер контакта Имя контакта Описание контакта
1 РСТ Вход внешнего сброса
2 СЕ Включение чипа
3 DC Данные/команда
4 ДИН Последовательный ввод данных
5 КЛК Последовательный ввод часов
6 ВКЦ Напряжение питания
7 БЛ Источник подсветки
8 Земля Земля

Подсветка

ЖК-дисплей моего Nokia 5110 имеет синюю подсветку. Но модуль также имеет некоторые другие цвета подсветки, такие как красный, белый и зеленый. Для обеспечения подсветки ЖК-модуль имеет четыре светодиода по вертикальным краям (по два светодиода на каждом краю). Есть специальный контакт включения/выключения подсветки.

Всегда безопаснее питать светодиоды подсветки через токоограничивающий резистор 220 Ом от источника питания 3,3 В.

ЖК-контроллер PCD8544

За прекрасным ЖК-дисплеем Nokia 5110 скрывается ЖК-контроллер PCD8544 от Phillips. Это одночиповое решение для управления дисплеем с 48 строками и 84 столбцами.

Контроллер PCD8544 внутри состоит из SRAM размером 504 байта для хранения отображаемых данных. SRAM разделена на 6 банков (банк 0 — банк 5), и каждый банк может хранить 84 байта данных.

Для получения дополнительной информации о ЖК-контроллере PCD8544 я предлагаю вам обратиться к техническому описанию.

Важный момент, который следует помнить из таблицы данных, связан с блоком питания. Максимальное напряжение питания логики составляет 3,3 В. Таким образом, необходимо соблюдать осторожность при взаимодействии с логическим уровнем 5V Arduino.

Взаимодействие ЖК-дисплея Nokia 5110 с Arduino

Теперь, когда мы узнали немного о ЖК-модуле Nokia 5110 и контроллере PCD8544, давайте продолжим взаимодействие с Arduino. Первое, что нужно учитывать, это то, что ЖК-модуль имеет логический уровень 3,3 В, а Arduino — 5 В.

Чтобы уберечь ЖК-дисплей от повреждений, существует несколько способов подключения Arduino к ЖК-дисплею Nokia 5110.

Использование последовательных токоограничивающих резисторов

Первый и самый простой способ — подключить несколько токоограничивающих резисторов между Arduino и Nokia 5110. Нам понадобится несколько резисторов на 10 кОм, резистор на 1 кОм и резистор на 220 Ом (для подсветки).

Сначала резисторы 10 кОм подключаются последовательно к контактам RST, DC, DIN и CLK, а резистор 1 кОм последовательно подключается к выводу CE.

Я покажу точные соединения между Arduino и ЖК-дисплеем Nokia 5110 с последовательными резисторами в следующем разделе.

Использование преобразователя логического уровня

Следующий вариант — использование модулей преобразователя логического уровня 3,3 В в 5 В. Можно использовать простые двунаправленные преобразователи логических уровней на основе транзисторов. Таких плат нужно две, так как каждая плата состоит всего из четырех каналов преобразования уровней, а нам нужно пять подключений (RST, CE, DC, DIN и CLK).

Принципиальная схема

На следующем рисунке показана принципиальная схема подключения ЖК-дисплея Nokia 5110 к Arduino UNO с использованием резисторов.

Если у вас нет преобразователей логических уровней, то вы можете использовать приведенную выше реализацию. Но я настоятельно рекомендую вам приобрести пару модулей преобразователя логического уровня. На следующем изображении показана принципиальная схема взаимодействия ЖК-дисплея Nokia 5110 с Arduino UNO с использованием преобразователя логических уровней.

Необходимые компоненты

  • Ардуино УНО
  • ЖК-дисплей Nokia 5110
  • Модуль преобразователя уровня x 2
  • Резистор 220 Ом
  • 10 кОм x 4 (если преобразователь уровня не используется)
  • 1 кОм (если преобразователь уровней не используется)
  • Макет
  • Блок питания макетной платы
  • Соединительные провода

Аппаратные соединения

Интерфейс между Arduino и ЖК-модулем Nokia 5110 может быть реализован через аппаратный SPI Arduino или программный SPI. В этом проекте я использовал программный интерфейс SPI.

 

В следующей таблице показано подключение между Arduino UNO и ЖК-модулем Nokia 5110.

ЖК-дисплей Nokia 5110 Ардуино УНО
РСТ 3
СЕ 4
DC 5
DIN 6
ЦЛК 7
ВКЦ 3,3 В
БЛ 3,3 В (через резистор 220 Ом)
Земля Земля

Код

Прежде чем писать код, необходимо загрузить несколько библиотек, чтобы успешно связать ЖК-модуль Nokia 5110 с Arduino. В среде разработки Arduino перейдите в меню «Инструменты» -> «Управление библиотеками…». Найдите «PCD8544 Nokia».

Выберите «Библиотека Adafruit PCD8544 Nokia 5110 LCD Library» и нажмите «Установить». После успешной установки найдите «Adafruit GFX» и установите «Adafruit GFX Library». Это дополнительная библиотека, которая помогает отображать графику на ЖК-дисплее.

Ниже приведен простой код для отображения текста на ЖК-дисплее Nokia 5110.

Работа

Работа проекта очень проста. Мы должны включить PCD8544, а также заголовочный файл GFX в наш код. Во-первых, объявите объект LCD и инициализируйте его контактами, связанными с программным SPI.

Затем вы можете отображать текст, растровые изображения или специальные символы, используя различные API, предоставляемые библиотекой.

Заключение

Здесь реализован простой проект по сопряжению Nokia 5110 LCD с Arduino. Поскольку это всего лишь ознакомительный проект, я отобразил на ЖК-дисплее простой текст. Но вы можете легко расширить эту базовую функциональность для отображения растровых изображений, интерфейса меню и т. д.

На самом деле, в следующем проекте я покажу вам, как создать простой экран меню на ЖК-дисплее Nokia 5110 с помощью кнопок.

Графический ЖК-дисплей 84×48 — Nokia 5110 — LCD-10168

4 из 5

На основании 18 оценок:

Сейчас просматриваются все отзывы покупателей.

Показаны результаты со звездным рейтингом.

4 из 4 нашел это полезным:

Очень хороший дисплей, я использовал несколько


от RobotCamera
проверенный покупатель

Здесь нужно знать несколько вещей.

Грязные соединения: я обнаружил, что один из моих блоков случайным образом переставал работать или мерцал, или попеременно становился слишком тусклым или слишком темным, и это явно была физическая проблема (нажатие на плату приводило к изменению проблемы). Проблема, как я выяснил, заключалась в грязных контактах на плате и самом экране. Отсоединил плату и обнаружил пылинки на контактах. Прочистил оба комплекта контактов ватными тампонами и спиртом, и проблема решилась.

Настройка контрастности: я думаю, что большинство трудностей, с которыми люди сталкиваются здесь, связаны с попытками случайных жестко заданных настроек контрастности. Правильный способ сделать это — позволить конечному пользователю регулировать настройки контрастности. Допустимый диапазон находится между 0x80 (со значением контрастности 0) и 0xFF (со значением контрастности 127). Идеальная настройка контрастности будет меняться в зависимости от температуры окружающей среды. Вот почему я предлагаю изменить настройку контрастности на лету с помощью программного обеспечения вашего микроконтроллера. То ли триммером, то ли пуговицами, то ли чем угодно. Для типичной комнатной температуры хорошим значением будет около 0xBF. Вот где моя. Если слишком темно, уменьшайте с шагом 1, пока не найдете идеальное значение, если слишком светло, увеличивайте с шагом 1. У меня на устройстве есть кнопки, которые делают это, и я сохраняю выбранную пользователем настройку контрастности в EEPROM. Код для изменения контраста на лету прост. Установите вывод SCE в низкий уровень, чтобы включить последовательный интерфейс. Установите вывод D/C в низкий уровень (который сообщает ЖК-дисплею, что вы отправляете команды, а не данные пикселей), затем отправьте байт 0x21, который включает расширенный набор инструкций, затем отправьте байт контраста, затем отправьте байт 0x20, который возвращает к базовой инструкции. установлен. Вам не нужно сбрасывать панель или что-то в этом роде.

Аппаратный SPI: используйте его. Это делает дисплей намного более отзывчивым. Для этого соедините линию MOSI с выводом MOSI микроконтроллера, а линию SCK с выводом SCK микроконтроллера. Затем избегайте использования линий MISO и SS микроконтроллера, если вы не знаете, что делаете. На чипе ATMega328, как и в Arduino UNO, Pro и Pro mini, линии MOSI и SCK представляют собой цифровые контакты 11 и 13 соответственно. Затем вы хотите, чтобы ваша библиотека взаимодействовала с ЖК-дисплеем с помощью SPI. Легко сделать. Скорость ЖК-дисплея составляет 4 МГц, данные отправляются первым старшим битом (MSBFIRST), тактовая частота данных простаивает при низком уровне (Clock Polarity/CPOL = 0), а выборки берутся по нарастающему/положительному фронту тактовых импульсов (Clock Phase/ КПНА = 0). Итак, для Arduino SPI это означает использование SPI_MODE0. Отсюда все идет вниз, и вы можете подключить несколько устройств к SPI. Это замечательно.

У меня есть рабочая библиотека для этого ЖК-дисплея, использующая аппаратный SPI, которой я очень доволен, и планирую выпустить ее под лицензией MIT на github рано или поздно. Если есть спрос, я могу ускорить этот процесс.

Обязательно запустите этот ЖК-дисплей на 3,3 В. Даже не думайте о 5В. Даже не немного. Тем не менее, вы должны иметь возможность установить резистор, снижающий напряжение, на вывод Vin, если у вас нет регулируемого выхода 3,3 В.

1 из 1 нашел это полезным:

TtgttГрафические ЖК-дисплеи


от участника #615843
проверенный покупатель

Я могу заставить работать подсветку, но на самом дисплее ничего не появляется. Я не знаю, установлена ​​ли у меня правильная библиотека. Я проверил свою проводку несколько раз, и она появляется
быть правильно подключенным. Не знаю, что может быть не так, любые предложения будут полезны, заранее спасибо. Грейг

1 из 1 нашел это полезным:

Самый простой в использовании небольшой графический ЖК-дисплей


по Хилу
проверенный покупатель

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

2 из 2 нашел это полезным:

Будьте осторожны с 5В


от участника #670968
проверенный покупатель

Мы включили его при напряжении 5 В, и я думаю, что он мог взорвать наш ЖК-дисплей. У нас были проблемы с отображением чего-либо, и когда это наконец удалось, изображение было очень тусклым. Затем, в конце концов, он вообще ничего не отображал.

Попробовал другой ЖК-дисплей (той же модели), на этот раз с частотой 3,3, и он отлично работал!

Так что будьте осторожны при 5 В.

Также прислушайтесь к другим участникам, которые рекомендовали изменить настройку контрастности при инициализации. Возможно, вам придется поиграть с этим, но в конце концов вы доберетесь до этого.

1 из 1 нашел это полезным:

Излишек


Гамарал
проверенный покупатель

Мне, к сожалению, не так повезло, как другим рецензентам. Первый экран, который я получил, был пригодным для использования, но с дефектом (плохая строка). Замечательные люди из SparkFun присылают мне замену без лишних вопросов.

К сожалению второй экран даже не включался;
Команда SparkFun хотела помочь мне решить проблему, но я отказался от этого, так как было совершенно очевидно, что экран не работает, и я не хотел тратить время на возню с ним. Тот, у кого плохой ряд, пока подойдет.

1 из 14 нашел это полезным:

Еще не используется


от пользователя #667086
проверенный покупатель

Погода здесь такая хорошая, что я трачу время на работу в саду, а не на работу с электроникой.

Простой в использовании дисплей


от пользователя #807912
проверенный покупатель

Использование с аппаратным SPI и 3,3 В. Пришлось поиграться с некоторыми настройками, чтобы получить хорошее изображение. Можно придумать множество крутых проектов, связанных с этим маленьким дисплеем.

0 из 1 нашел это полезным:

Отличный ЖК-дисплей, чтобы научиться использовать SPI.


от участника #1450112
проверенный покупатель

Купил этот дисплей, чтобы научиться использовать шину SPI на моем Raspberry Pi 3b+. Дисплей работал как заявлено. Без вопросов. Учебник Sparkfun для Nokia 5110 был очень полезным.

Я хотел поставить 5 звезд (а не 1)… Я не могу изменить рейтинг 🙁

Мне может понадобиться еще несколько таких


от участника #828939
проверенный покупатель

Симпатичный экранчик. Сначала я не мог заставить его что-либо отображать, но после того, как я перечитал инструкцию и изменил контрастность на 60, все стало видно. Этот экран также работает с Adafruit и несколькими другими библиотеками ЖК-дисплеев PCD8544, вам просто нужно изменить контакты в конструкторе (библиотеки, отличной от Sparkfun), чтобы они соответствовали контактам на схеме подключения ЖК-дисплея, предоставленной Sparkfun.

P.S.
Некоторые библиотеки не используют подсветку. Просто создайте int для пина 9, установите pinMode на вывод и аналогово напишите 0-255 на пин для управления яркостью подсветки


от участника № 1373963
проверенный покупатель

Работает как заявлено. спасибо

Очень хороший


от пользователя #644764
проверенный покупатель

Работает как положено!

LCD_Functions.

h


от пользователя № 1728825
проверенный покупатель

Указанный выше заголовочный файл не найден. Как только я смогу найти этот файл, чтобы запустить пример программы, я сообщу вам, как все идет.
Спасибо,
Льюис

Хороший


от участника #18857
проверенный покупатель

Это SPI (2 провода без SDO от LCD). Хорошо работает с микрочипом PIC16F1454.

Просто, дешево и эффективно.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *