小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

1602精簡的四線控制方法,值得一看

 xpxys99 2017-06-18

一般情況下,LCD1602與單片機(jī)連接的線路共有11條,其中有8條數(shù)據(jù)線,3條控制線(其余的5條為電源和地)。如果把它們都連接上,將占用較多的單片機(jī)的接口。那么如何減少接口呢?

LCD1602還有一種使用高4位數(shù)據(jù)線的接法,可以減少單片機(jī)的負(fù)擔(dān)。另外,RW的控制也并非是必用的,如果僅僅是用于讀取LCD1602“忙”的狀態(tài),就可以用稍事等待來代替。這樣一來,RW就可以直接接地,使LCD1602永遠(yuǎn)處于寫入的狀態(tài)。那么,LCD1602和單片機(jī)之間就僅僅需要6條線了,這算是一種比較簡潔的接法了。

下面的一個(gè)例子是使用P1口的高4位連接到LCD1602的高4位數(shù)據(jù)線。

1602精簡的四線控制方法,值得一看

功能說明:讓1602顯示“51Start:” “the best one!”

程序:

#include

#define uchar unsigned char

#define uint unsigned int

sbit lcdrs=P3^2; //數(shù)據(jù)/命令選擇端,低電平為指令,高電平為數(shù)據(jù)

sbit lcdrw=P3^3; //讀寫控制端,低電平為寫

sbit lcden=P3^4; //使能端

uchar code table1[]=' 51Start: ';

uchar code table2[]=' the best one! ';

void delay(uint x) //延時(shí) x 毫秒

{

uint i,j;

for(i=x;i>0;i--)

for(j=110;j>0;j--);

}

/*==========================================================

*函數(shù)名稱:Lcd_1602_write(uchar com,date)

*功 能:向1602寫數(shù)據(jù)/指令

*入口參數(shù):com(com=0 寫命令 com=1 寫數(shù)據(jù))

*出口參數(shù):

*說 明:四線用的是1602的高四位DB4-DB7,單片機(jī)的數(shù)據(jù)口為P1口的高四位P1.4-P1.7

*==========================================================*/

void Lcd_1602_write(uchar com,date)

{

uchar i;

lcdrw=0; //設(shè)置為寫

lcdrs=com; //將形參傳給lcdrs

for(i=0;i<2;i++)>

{

lcden=1;

P1=(P1&0x0f)|(date&0xf0); //將date的高四位送入P1,同時(shí)保持P1的低四位不變

//如果使用P1的低四位的話,則該處應(yīng)該改為:P1=(P1&0xf0)|((date>>4)&0x0f);

delay(3); //適當(dāng)延時(shí),數(shù)據(jù)穩(wěn)定

lcden=0; //送入數(shù)據(jù)

date<=4;>

}

}

/*==========================================================

*函數(shù)名稱:void Lcd_1602_init()

*功 能:對1602進(jìn)行初始化

*入口參數(shù):

*出口參數(shù):

*說 明:用四線時(shí),1602的初始化只需要高四位數(shù)據(jù)就可以完成,在初始化完成之后必須再傳入四位數(shù)據(jù),需注意。

* 執(zhí)行完write_1602(0,0x28);之后液晶已經(jīng)初始化,其實(shí)在執(zhí)行了一半的時(shí)候就已經(jīng)初始化完成,此時(shí)又傳入了

四位數(shù)據(jù)(一個(gè)寫語句會(huì)傳入8位數(shù)據(jù)),這時(shí)候如果直接寫數(shù)據(jù)的話,就會(huì)形成亂碼

*==========================================================*/

void Lcd_1602_init()

{

Lcd_1602_write(0,0x28);//0x28=0010 1000,將液晶設(shè)置為16*2顯示,5*7點(diǎn)陣,4位數(shù)據(jù)口

delay(5);//

lcden=1; //

lcden=0;

Lcd_1602_write(0,0x28); //顯示方式設(shè)置

Lcd_1602_write(0,0x0e); //設(shè)置開顯示,不顯示光標(biāo)

Lcd_1602_write(0,0x06); //默認(rèn)(0x06)寫入新數(shù)據(jù)后光標(biāo)右移 屏幕不移動(dòng)

Lcd_1602_write(0,0x01); //顯示清0,數(shù)據(jù)指針清0

}

//主函數(shù)

void main()

{

uchar num;

Lcd_1602_init();

Lcd_1602_write(0,0x80); //第一行

for(num=0;num<>

{

Lcd_1602_write(1,table1[num]);//寫數(shù)據(jù)

delay(3);

}

Lcd_1602_write(0,0xc0); //第二行

for(num=0;num<>

{

Lcd_1602_write(1,table2[num]);

delay(3);

}

while(1);

}

本文素材來自網(wǎng)絡(luò)。以上信息僅供參考,希望對大家有幫助。

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多