雖然LCD1602的顯示屏幕與顯示字符都較小,實用性并不強,但是在一般的教學實驗中,它仍不失為一個常用的輸出顯示設備。
LCD1602與單片機連接的線路共有11條,其中有8條數據線,3條控制線。如果把它們都連接上,將占用較多的單片機的接口。
LCD1602還有一種使用高4位數據線的接法,可以減少單片機的負擔。
另外,RW的控制也并非是必用的,如果僅僅是用于讀取LCD1602“忙”的狀態,就可以用稍事等待來代替。這樣一來,RW就可以直接接地,使LCD1602永遠處于寫入的狀態。
那么,LCD1602和單片機之間就僅僅需要6條線了,這就是LCD1602最簡潔的連接方法。
下面的一個例子是使用P0口的高4位連接到LCD1602的高4位數據線,P2.0連接到RS,P2.1連接到EN。
對LCD1602寫入輸出的子程序如下:
LCD_W_DATA: ;LCD1602數據線D7~D4接P0口高四位
CALL WAIT5MS ;稍等
PUSH ACC ;保存
SETB LCD_RS ;RS=1, 數據
ORL A, #0FH ;低4位置一
MOV P0, A ;寫高四位
CALL ENABLE ;在EN給出正脈沖
POP ACC ;恢復
SWAP A ;高低四位交換
ORL A, #0FH ;低4位置一
MOV P0, A ;寫低四位
CALL ENABLE ;在EN給出正脈沖
RET
程序中,先輸出高4位,再輸出低4位,這是按照LCD1602的4線接法的數據傳輸規范進行的。
輸出時,對P0口的低4位進行了置1,目的是使其處于輸入狀態,這樣,低4位可以用做按鍵的輸入接口。
此方案也得到了網友的認可,可見:http://zhidao.baidu.com/question/149007735.html?si=7
對LCD1602寫入命令的子程序,和上面的程序類似,只是要有RS=0。但是要注意,初始化為4位的時候,應該使用8位的形式。
利用LCD1602、DS18B20制作萬年歷溫度計的電路如下:

這個電路已經制作成實物,經過多日的實際測量,可以看出時間精度很高,并不亞于使用DS1302的方案。
溫度的顯示程序,可以顯示零下、以及超過100度的溫度。
可以使用4個按鍵進行控制,長按“設置”,方可進入設置狀態;之后再短按“設置”,即可依次改變當前設置的項目。
只有再長按“設置”,方可退出設置狀態。
在設置狀態,當前選定的項目,將以閃爍顯示,此時再按下“加”、“減”,即可進行修改。
程序中,具有自動計算平閏年、計算星期幾的功能,所以只需要設置年月日即可。
程序中,設計了一個鬧鐘功能,可以設置一個精確到秒的鬧時時刻。鬧時,也可以設置為鬧或不鬧。
實際上,多設計幾個鬧時也是可輕易辦到的,這樣就可以做為定時控制器了,比如用于校園打鈴。
|