文字型LCD 4bit模式

又是無聊的東西…請自行跳過。


文字型LCD的4bit模式,主要是為了節省資料線的使用。
也就是
8bit模式: 控制3pin+資料8pin=11pin
4bit模式: 控制3pin+資料4pin=7pin
運作原理很簡單,就是把原本8bit的資料拆成4bit+4bit分兩次傳輸而已。
不過用起來也就比較麻煩點,速度也會比較慢(因為傳輸次數多一倍),程式碼也比較多一些。

比較需要注意的地方是:
.跟8bit相比,初始化的時候要多下一個0b00100000的指令,告訴LCD要使用4bit模式,才可開始使用。因為只有4條線,所以用8bit模式送一次前4個bit就好。(反正後面都是0)
.硬體接線方式:D0~D3接地(保持為0),資料線只接D4~D7。
.讀取/寫入時一定要完整作存取兩次4byte的動作。尤其是讀/寫混合使用的情況,例如:讀取LCD busy狀態/寫入LCD顯示資料,如果讀取的時候只讀了前面4bit,會造成後面寫入時出問題。
.Procyon avrlib在4bit LCD方面有不少bug:
1. 4bit和8bit用相同方式來傳送LCD初使化指令,一開始還沒切換到4bit時會多送一組4bit資料,使後面資料順序全部混亂。
2. lcdBusyWait()等待BUSY pin訊號的迴圈寫很差,完全無法區分4bit的前後兩組半字節,造成4bit模式完全無法使用。
3. LCD_DELAY定義的等待時間也有點太短,4bit下很容易出問題。

在 “文字型LCD 4bit模式” 有 4 則留言

  1. 不是現在才開始進入 LED 的世界啦.

    唉, 說到這個, 幾年前突然發現 LED 的時代來了, 想去買這些公司的股票, 發現已經晚了一步.

    也許現在是個好時機也說不定.. 🙂

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *