新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 從零開始學(xué)單片機(jī)(七)液晶接口

從零開始學(xué)單片機(jī)(七)液晶接口

作者: 時(shí)間:2016-11-22 來(lái)源:網(wǎng)絡(luò) 收藏
這里我買的板子上帶有一個(gè)SMC1602A LCM。使用也很簡(jiǎn)單很方便,但是還是要看它的使用說明書才行。

先看看引腳說明,在開發(fā)板上,D0-D7接到P0口上,RS接到P3.5,使能信號(hào)E接到P3.6上,讀寫端RW接地(通常不需要讀),沒有結(jié)背光電源。

本文引用地址:http://butianyuan.cn/article/201611/319878.htm

RAM要比實(shí)際顯示的多很多(16字×2行),將來(lái)做平移就比較方便了。

時(shí)序圖還是要看的。

1602的指令碼(用于設(shè)置系統(tǒng)屬性的)

顯示模式設(shè)定:

38H(16×2顯示,5×7點(diǎn)陣,8位數(shù)據(jù)接口)

顯示開關(guān)及光標(biāo)設(shè)置:

08H+x(x=4:開顯示; x=2:顯示光標(biāo); x=1:光標(biāo)閃爍)

04H+x(x=2:讀寫一個(gè)字符后地址指針加1,光標(biāo)加1; x=1:當(dāng)寫一個(gè)字符,整屏左移)

數(shù)據(jù)指針設(shè)置:

80H+地址嗎(0H-27H,40H-67H)

其他:

01H:顯示清屏(數(shù)據(jù)指針清零,顯示清零)

02H:顯示回車(數(shù)據(jù)指針清零,

1602初始化過程

延時(shí)15ms

寫指令38H(不檢測(cè)忙信號(hào))

延時(shí)5ms

寫指令38H(不檢測(cè)忙信號(hào))

延時(shí)5ms

寫指令38H(不檢測(cè)忙信號(hào))

(以后,每次寫指令,讀寫操作都需要檢測(cè)忙信號(hào))

寫指令38H:顯示模式設(shè)置

寫指令08H:顯示關(guān)閉

寫指令01H:顯示清屏

寫指令06H:顯示光標(biāo)移動(dòng)設(shè)置

寫指令0CH:顯示開及光標(biāo)設(shè)置

#include

#define LCD_Data P0

sbit LCD_RS = P3^5;

sbit LCD_E = P3^4;

void delay(unsigned int ms);

void WriteCommand(unsigned char com);

void WriteData(unsigned char chr);

void ini_LCD();

void main(void)

{

ini_LCD();

WriteData(A);

WriteData(B);

WriteData(C);

WriteData(D);

WriteData(E);

while(1)

{

}

}

void delay(unsigned int ms)

{

unsigned int Temp;

while(ms--){Temp=82;while(Temp--);}

}

void ini_LCD()

{

delay(15);

WriteCommand(0x38);

delay(5);

WriteCommand(0x38);

delay(5);

WriteCommand(0x38);

delay(5);

WriteCommand(0x38);

WriteCommand(0x0f);

WriteCommand(0x06);

WriteCommand(0x01);

WriteCommand(0x80);

}

void WriteCommand(unsigned char com)

{

LCD_RS = 0;

LCD_Data = com;

delay(1);

LCD_E = 1;

delay(2);

LCD_E = 0;

LCD_RS = 1;

}

void WriteData(unsigned char chr)

{

LCD_RS = 1;

LCD_Data = chr;

delay(1);

LCD_E = 1;

delay(2);

LCD_E = 0;

LCD_RS = 0;

}



關(guān)鍵詞: 單片機(jī)液晶接

評(píng)論


技術(shù)專區(qū)

關(guān)閉