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

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