a一级爱做片免费观看欧美,久久国产一区二区,日本一二三区免费,久草视频手机在线观看

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > 我的12864學習筆記_5---12864液晶串行讀寫操作函數

我的12864學習筆記_5---12864液晶串行讀寫操作函數

作者: 時間:2016-11-28 來源:網絡 收藏
在對12864進行控制的操作中,對液晶的讀寫操作是最基本、最底層的操作,是一切其他操作的基礎。

12864液晶串行連接只需要兩根線就可以實現對液晶的完全控制,可以大大節省IO口。

本文引用地址:http://www.j9360.com/article/201611/322843.htm

而對液晶的讀操作,又是對液晶單個像素點進行控制的基礎,也是用液晶繪制曲線的基礎。

下面是我實現的串行對液晶進行讀寫操作的函數,是針對msp430g2553單片機寫的,按照時序不難實現。

程序如下,注釋的也較詳細:

因為msp430g2553的IO管腳有限,所以我的12864是串行連接的。而并行連接的話,液晶的讀操作并不難實現。現在串行的,雖然比較復雜一些,但很類似于串行的讀操作,主要是看懂時序,然后嚴格按照時序就可以寫出。我已經可以實現了液晶的讀,寫操作。讀寫操作的函數如下,其中注釋的也比較詳細:

//12864串行連接寫數據,寫命令函數按照手冊上的時序進行編程

voidwr_lcd(uchardat_comm,ucharcontent)//

{//要寫的數據

uchara,i,j;

delay_us(50);

a=content;

LCD_SCLK0;//en=0;

LCD_SID1;//wr=1

for(i=0;i<5;i++)//數據時序*****************8前5個高電平的同步碼

{

LCD_SCLK1;

LCD_SCLK0;

}

LCD_SID0;//wr=0寫操作

LCD_SCLK1;//en=1來一個時鐘

LCD_SCLK0;//en=0

if(dat_comm)

LCD_SID1;//RS=1寫數據

else

LCD_SID0;//RS=0寫指令

LCD_SCLK1;//來一個時鐘

LCD_SCLK0;

LCD_SID0;//控制字的最后一位為0

LCD_SCLK1;//來一個時鐘

LCD_SCLK0;

for(j=0;j<2;j++)//

{

uchari,j;

uchara=0;//a存放讀取的數據

delay_us(50);

LCD_SCLK0;//en=0;

LCD_SID1;//wr=1

for(i=0;i<5;i++)//數據時序*****************8前5個高電平的同步碼

{

LCD_SCLK1;

LCD_SCLK0;

}

LCD_SID1;//wr=1讀操作

LCD_SCLK1;//en=1來一個時鐘

LCD_SCLK0;//en=0

LCD_SID1;//RS=1讀數據

LCD_SCLK1;//來一個時鐘

LCD_SCLK0;

LCD_SID0;//控制字的最后一位為0

LCD_SCLK1;//來一個時鐘

LCD_SCLK0;

for(j=0;j<2;j++)//************一共2*4次循環讀一個字節數據第一次循環讀高4位,第二次循環讀低4位

{

for(i=0;i<4;i++)

{

P2DIR&=~BIT5;//把LCD_SID設為輸入,讀數據

if(P2IN&BIT5)//如果為高的話

a|=0x01;

//else

//a|=0x00;

a=a<<1;//a向高位移一位

LCD_SCLK1;

LCD_SCLK0;

}

P2DIR|=BIT5;//把LCD_SID設為輸出

LCD_SID0;

for(i=0;i<4;i++)//時鐘下面來4個時鐘脈沖

{

LCD_SCLK1;

LCD_SCLK0;

}

}

returna;

}



評論


技術專區

關閉