天天看點

LCD1602 液晶

它是一種專門用來顯示字母、數字、符号的點陣型液晶子產品

它是由若幹個5x7或者5x10的點陣字元位組成

引腳

LCD1602 液晶

時序

LCD1602 液晶

操作步驟

初始化

寫指令(RS=L)設定顯示坐标

寫資料(RS=H)

指令

清屏:

LCD1602 液晶
指令碼:0x01

進入模式設定:

LCD1602 液晶

I/D:0,寫入新資料後光标左移;1,寫入新資料後光标右移

S:0,寫入新資料後顯示屏不移動;1,寫入新資料後顯示屏整體右移 1 個字元

常用指令:0x06

顯示開關控制:

LCD1602 液晶

D:0,顯示功能關;1,顯示功能開

C:0,無光标;1,有光标

B:0,光标閃爍;1,光标不閃爍

常用指令:0x0c

功能設定:

LCD1602 液晶

D:0,資料總線為 4 位;1,資料總線為 8 位

N:0,顯示 1 行;1,顯示 2 行

F:0,5×7 點陣/每字元;1,5×10 點陣/每字元

常用指令:0x38

DDRAM

LCD1602 液晶

寫入顯示位址時要求最高位 D7 恒定為高電平 1

實際位址:addr + 80H

常用指令:0x80 (設定起點)

應用電路

LCD1602 液晶

舉例

sbit LCD1602_E = P2 ^ ;
sbit LCD1602_RW = P2 ^ ;
sbit LCD1602_RS = P2 ^ ;

void LcdWriteCom(uchar com)   //寫入指令
{
    LCD1602_E = ;     //使能
    LCD1602_RS = ;    //選擇發送指令
    LCD1602_RW = ;    //選擇寫入

    LCD1602_DATAPINS = com;     //放入指令
    Lcd1602_Delay1ms();        //等待資料穩定

    LCD1602_E = ;            //寫入時序
    Lcd1602_Delay1ms();      //保持時間
    LCD1602_E = ;
}

void LcdWriteData(uchar dat)            //寫入資料
{
    LCD1602_E = ;  //使能清零
    LCD1602_RS = ; //選擇輸入資料
    LCD1602_RW = ;

    LCD1602_DATAPINS = dat; //寫入資料
    Lcd1602_Delay1ms();

    LCD1602_E = ;
    Lcd1602_Delay1ms();
    LCD1602_E = ;
}

void LcdInit()
{
    LcdWriteCom();  //開顯示
    LcdWriteCom();  //開顯示不顯示光标
    LcdWriteCom();  //寫一個指針加1
    LcdWriteCom();  //清屏
    LcdWriteCom();  //設定資料指針起點
}