最近繼續學習操作不同的 LCD 熒幕,因此購買這種將 KS0108 操作簡單的 LCD 熒幕
之前使用的 KS0108 是 ERM19264-1 ,今次使用 ERM19264-4 配合 UC1609 控制
有點類似 使用 PCF8574 控制 HD44780 ,減省控制引腳使用量
有點類似 使用 PCF8574 控制 HD44780 ,減省控制引腳使用量
ERM19264 LCD 熒幕
ERM19264-4 LCD 熒幕模組的正面
ERM19264-4 LCD 熒幕模組配合 UC1609 的引腳
ERM19264-4 LCD 熒幕模組的背面
ERM19264-4 操作訊號
CD | RW | Data | DEC | HEX | 說明 | |||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |||||
1 | 0 | # | # | # | # | # | # | # | # | # | # | 寫入資料 0x01 為第1像素, 0x80 為 第8像素 |
0 | 0 | 0 | 0 | 0 | 0 | # | # | # | # | 0 | 0x00 | 設定欄位地址,範圍為 0 ~ 255 (實際為熒幕像素長度) 第1組 為 D3~D0 ,第2組 為 D7~D4 (2位元組) |
0 | 0 | 0 | 0 | 0 | 1 | # | # | # | # | 16 | 0x10 | |
0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | # | # | 36 | 0x24 | 設定溫度補償
|
0 | 0 | 0 | 0 | 1 | 0 | 1 | V | A | A | 40 | 0x28 | 設定電源控制 (需要最少5毫秒啟動;必須為第1個控制操作)
|
0 | 0 | 0 | 1 | # | # | # | # | # | # | 64 | 0x40 | 設定向上捲動行數,範圍為 0 ~ 63 |
0 | 0 | 1 | 0 | 1 | 1 | 0 | # | # | # | 176 | 0xB0 | 設定頁面地址,範圍為 0 ~ 7 |
0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 129 | 0x81 | 設定對比度,範圍為 0 ~ 63 (2位元組) |
0 | 0 | 1 | # | # | # | # | # | # | 1 | 129 | 0x81 | |
0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | # | # | 160 | 0xA0 | 設定畫格速度
|
0 | 0 | 1 | 0 | 1 | 0 | 0 | 1 | 0 | # | 164 | 0xA4 | 設定顯示所有像素,不過影響 DDRAM |
0 | 0 | 1 | 0 | 1 | 0 | 0 | 1 | 1 | # | 166 | 0xA6 | 設定反向顯示 |
0 | 0 | 1 | 1 | 0 | 0 | 0 | Y | X | 0 | 192 | 0xC0 | 設定 LCD 映射控制
|
還有其他控制項目,但以上列舉為常用控制項目
UC1609 引腳功能
編號 | 名稱 | 方向 | 功能 |
---|---|---|---|
1 | K | LED 背光 接地 (ERM19264 引腳) |
|
2 | A | LED 背光 電源,接受 5V (ERM19264 引腳) |
|
3 | GND | LCD 熒幕 接地 (ERM19264 引腳) |
|
4 | VDD | LCD 熒幕 電源,接受 5V (ERM19264 引腳) |
|
5 | SCK | 輸入 | 序列時脈,資料由高至低取值 每8位元資料為1週期 |
6 | SDA | 輸入 | 序列資料 |
7 | RST | 輸入 | 低電壓時,重置所有控制模式的設定值 若果不需要重置,保持高電壓 (ERM19264 引腳) |
8 | CD | 輸入 | 低電壓時,為控制模式 高電壓時,為資料模式 (ERM19264 引腳) |
9 | CS | 輸入 | 低電壓時,為啟動狀態 高電壓時,為閒置狀態 |
UC1609 是使用 最高有效位 (Most Significant Bit (MSB)) 次序發送訊號
引腳 | 初始化 | 開始 | 1位元組 控制 週期 | 結束 | |
---|---|---|---|---|---|
延遲 | 1微秒 | ||||
RST | 高 | ||||
CS | 高 | 低 | 高 | ||
CD | 高/低 | ||||
SCK | 高 | 低 | |||
SDA | 高/低 |
訊號波紋時序圖
UC1609 都是使用 序列周邊介面 (Serial Peripheral Interface (SPI)) ,使用 1組 8位元資料
線路接駁
如果使用 Arduino SPI引腳 及 SPI.h 函式庫,可以使用這種接駁方式
Arduino引腳 | UC1609引腳 |
---|---|
GND | K |
5V | A |
GND | GND |
5V | VDD |
13 (SCK) | SCK |
11 (MOSI) | SDA |
9 | RST |
8 | CD |
10 (SS) | CS |
既然需要自行編寫驅動程式,在下便用懶惰的方法接駁線路,就不需要接線
使用 數碼引腳 接駁 A引腳 及 VDD引腳 當作 電源引腳; K引腳 及 GND引腳 當作 接地引腳
但正式使用時盡量不使浪費 數碼引腳 當作 電源 及 接地 使用
但正式使用時盡量不使浪費 數碼引腳 當作 電源 及 接地 使用
每次啟動都會有雜訊,建議每次啟動後都先清空內容
對比度
在下認為 0x10 至 0x20 的對比度適合顯示
映射控制
映射控制可以當作控制游標的開始位置
Y = 0, X = 0 時,在 左下開始
Y = 1, X = 0 時,在 左上開始
Y = 0, X = 1 時,在 右下開始
Y = 1, X = 1 時,在 右上開始
設定映射控制有限制
控制垂直,可以即時互動操作;但控制水平前,必須先清空內容,否則無效
控制垂直,可以即時互動操作;但控制水平前,必須先清空內容,否則無效
繪圖
繪圖的操作與 KS0108 完全相同,ERM19264-4 還增加相反顏色的操作
沒有啟動相反顏色時,將資料的位置亮著
啟動相反顏色時,將資料的位置暗淡
字庫
ERM19264-4 沒有字庫,因此要在 LCD 上顯示文字同樣需要自製字庫
在下使用 自由、開源、免費 的 GNU Unifont 及 7x5 (HD44780 Font) 為基礎,製作方便顯示文字的字載檔案
即是字庫在 LCD 熒幕 上實際只是一堆有系列的圖案
在下使用 自由、開源、免費 的 GNU Unifont 及 7x5 (HD44780 Font) 為基礎,製作方便顯示文字的字載檔案
即是字庫在 LCD 熒幕 上實際只是一堆有系列的圖案
總結
雖然與 KS0108 相似,但使用 UC1609 控制 ERM19264-4 簡單
操作亦與 電子紙 非常相似,都是透過另一塊晶片控制,操作亦比 電子紙 簡單
由於在下使用 Arduino 提供的 ERM19264_UC1609.h 函式庫 無法運作,因此唯有自行編寫驅動程式
操作亦與 電子紙 非常相似,都是透過另一塊晶片控制,操作亦比 電子紙 簡單
由於在下使用 Arduino 提供的 ERM19264_UC1609.h 函式庫 無法運作,因此唯有自行編寫驅動程式
如果閣下有興趣,可以到
https://create.arduino.cc/editor/hkgoldenmra/72a7e394-ca36-4968-92b4-95e4271a8979/preview
及 https://bitbucket.org/hkgoldenmra/erm19264uc1609module
瀏覽及下載
另外亦可以使用 git 下載原始碼
估計與 指令 129 (B10000001) 將 參數 128 (B10000000) 抵消了,因此與 0 相同
再考慮 129 是 128 + 1 ,即是 1 同樣抵消了,因此實際只有 第6位元 至 第1位元 可以設定
https://create.arduino.cc/editor/hkgoldenmra/72a7e394-ca36-4968-92b4-95e4271a8979/preview
及 https://bitbucket.org/hkgoldenmra/erm19264uc1609module
瀏覽及下載
另外亦可以使用 git 下載原始碼
git clone "https://bitbucket.org/hkgoldenmra/erm19264uc1609module.git" --depth=1另外在下發現設定 對比度 時,雖然 資料表 顯示設定範圍為 0 至 255,但當指定數值為 128 (B10000000) 時,對比度 與 0 相同
估計與 指令 129 (B10000001) 將 參數 128 (B10000000) 抵消了,因此與 0 相同
再考慮 129 是 128 + 1 ,即是 1 同樣抵消了,因此實際只有 第6位元 至 第1位元 可以設定
沒有留言 :
張貼留言