與單片機(jī)寄存器的用法類似,1602 液晶在使用的時(shí)候,我們首先要進(jìn)行初始的功能配置,1602 液晶有以下幾個(gè)指令需要了解。
1) 顯示模式設(shè)置
寫指令 0x38,設(shè)置 16x2 顯示,5x7 點(diǎn)陣,8 位數(shù)據(jù)接口。這條指令對(duì)我們這個(gè)液晶來(lái)說(shuō)是固定的,必須寫 0x38,大家仔細(xì)看會(huì)發(fā)現(xiàn)我們的液晶實(shí)際上內(nèi)部點(diǎn)陣是 5x8 的,還有一些1602 液晶還兼容串行通信,用 2 個(gè) IO 口即可,但是速度慢,我們這個(gè)液晶就是固定的 0x38模式。
2) 顯示開/關(guān)以及光標(biāo)設(shè)置指令
這里有 2 條指令,第一條指令,一個(gè)字節(jié)中 8 位,其中高 5 位是固定的 0b00001,低 3位我們分別用 DCB 從高到低表示,D=1 表示開顯示,D=0 表示關(guān)顯示;C=1 表示顯示光標(biāo),C=0 表示不顯示光標(biāo);B=1 表示光標(biāo)閃爍,B=0 表示光標(biāo)不閃爍。
第二條指令,高 6 位是固定的 0b000001,低 2 位我們分別用 NS 從高到低表示,其中N=1 表示讀或者寫一個(gè)字符后,指針自動(dòng)加 1,光標(biāo)自動(dòng)加 1,N=0 表示讀或者寫一個(gè)字符后指針自動(dòng)減 1,光標(biāo)自動(dòng)減 1;S=1 表示寫一個(gè)字符后,整屏顯示左移(N=1)或右移(N=0),以達(dá)到光標(biāo)不移動(dòng)而屏幕移動(dòng)的效果,如同我們的計(jì)算器輸入一樣的效果,而 S=0 表示寫一個(gè)字符后,整屏顯示不移動(dòng)。
3) 清屏指令
固定的,寫入 0x01 表示顯示清屏,其中包含了數(shù)據(jù)指針清零,所有的顯示清零。寫入0x02 則僅僅是數(shù)據(jù)指針清零,顯示不清零。
4) RAM 地址設(shè)置指令
該指令碼的最高位為 1,低 7 位為 RAM 的地址,RAM 地址與液晶上字符的關(guān)系如上圖12-2 所示。通常,我們?cè)谧x寫數(shù)據(jù)之前都要先設(shè)置好地址,然后再進(jìn)行數(shù)據(jù)的讀寫操作。