物聯網平台開發人才平日班

物聯網平台開發人才平日班
物聯網平台開發人才 平日密集訓練班 - 106年招生簡章下載(待業限定)

2015年2月6日 星期五

Raspberry Pi b+ 用 Python 控制 LCD 16x2 (HD44780) 簡介 Part 3 LCD 初始化動作

LCD 開機動作

跟據Datasheet所表示,我們正在用的四條資料線+RS+RW+EN的接線接法是叫做4bit模式,而嫌GPIO太多的八條資料線+RS+RW+EN的接線接法叫做8bit模式。

而在一開始的時候要怎麼樣才能告訴LCD模組我們打算用4bit模式還是8bit模式來操作LCD? 這裡的主題是4bit,所以就不管8bit模式怎麼開機。而且4bit搞定之後,通常也不會想用8bit模式了。
還是跟據Datasheet表示,LCD接上電VDD電壓升到4.4V之後要先等待15ms然後...

1. EN,RS,RW,D7~D4 都設為 low。
2. EN 設 high -> 等一下 -> EN 設 low
3. D7~D4分別設為 low, low, high, low (0b0010)。
4. EN 設 high -> 等一下 -> EN 設 low
5. 等待 5ms(>4.1ms) 
6. EN 設 high -> 等一下 -> EN 設 low
7. 等待 200us(>100us) 
8. EN 設 high -> 等一下 -> EN 設 low
9. 寫入指令 0x28 (0b0010 1000) --> 設定為4bit操作,兩行顯示模式
10.寫入指令 0x0c (0b0000 1100) --> 設定為每寫入一次資料,游標位置向右移一格
11.寫入指令 0x01 (0b0000 0001) --> 清除螢幕並游標歸回原點。

上面這些動作用老實說,只是看Datasheet的話想要實現也是會搞得手忙腳亂,因為一些比較詳細的動作都沒講清楚。所以要練習開機順序的話,建議先直接用下面寫好的程式碼,然後再進行修改和實驗:



LCD模組還有許多操作模式可以選擇,像是游標是否要隱藏?不隱藏的話是否要閃爍?使用5x8還是5x11的字型?熟悉這些動作之後就可以再去買4x20, 4x16的LCD模組回來練習。

下一章 "Raspberry Pi b+ 用 Python 控制 LCD 16x2 (HD44780) Part 2 -- 自行設計圖案" 會介紹怎麼可以"點"出自已設計的圖案再顯示出來。把程式碼整理一下,弄個傳說中的Hello World程式:




--part1: 硬體設定篇
--part2: 基本指令介紹
--part3: 初始化動作
--part4: 自訂字形

Python 控制 LCM模組的Code 可在 Github 下載。
https://github.com/itrobotics/python_LCM_control

沒有留言 :

張貼留言