找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 48593|回復(fù): 25
收起左側(cè)

Nokia5110LCD詳細(xì)資料及單片機(jī)驅(qū)動(dòng)方法詳解

  [復(fù)制鏈接]
ID:100029 發(fā)表于 2015-12-22 20:26 | 顯示全部樓層 |閱讀模式
 

Nokia/諾基亞5110 LCD原理應(yīng)用資料:LPH7366 是NOKIA 公司生產(chǎn)的可用于其5110、6150,6100 等系列移動(dòng)電話的液晶顯示模塊,國(guó)內(nèi)廠家也生產(chǎn)有類似的兼容產(chǎn)品。該產(chǎn)品除應(yīng)用于移動(dòng)電話外,也可廣泛應(yīng)用于各類便攜式設(shè)備的顯示系統(tǒng)。與其它類型的產(chǎn)品相比,該模塊具有以下特點(diǎn):
●84x48 的點(diǎn)陣LCD,可以顯示4 行漢字,
●采用串行接口與主處理器進(jìn)行通信,接口信號(hào)線數(shù)量大幅度減少,包括電源和地在內(nèi)的信號(hào)線僅有9 條。支持多種串行通信協(xié)議(如AVR 單片機(jī)的SPI、MCS51 的串口模式0等),傳輸速率高達(dá)4Mbps,可全速寫入顯示數(shù)據(jù),無等待時(shí)間。
●可通過導(dǎo)電膠連接模塊與印制版,而不用連接電纜,用模塊上的金屬鉤可將模塊固定到印制板上,因而非常便于安裝和更換。
●LCD 控制器/驅(qū)動(dòng)器芯片已綁定到LCD 晶片上,模塊的體積很小。
●采用低電壓供電,正常顯示時(shí)的工作電流在200μA 以下,且具有掉電模式。
LPH7366 的這些特點(diǎn)非常適合于電池供電的便攜式通信設(shè)備和測(cè)試設(shè)備中

 

C8051F學(xué)習(xí)筆記:Nokia 5110驅(qū)動(dòng)

Nokia5110是一款經(jīng)典機(jī)型,可能由于經(jīng)典的緣故,舊機(jī)器很多,所以很多電子工程師就把舊機(jī)器的屏幕拆下來,自己驅(qū)動(dòng)Nokia5110,用于開發(fā)的設(shè)備顯示,取代LCD1602

使用Nokia5110液晶的四大理由

1)     性價(jià)比高,LCD1602可以顯示32個(gè)字符,而Nokia5110可以顯示15個(gè)漢字,30個(gè)字符。Nokia5110裸屏僅8.8元,LCD1602一般15元左右,LCD12864一般50~70元。

2)     接口簡(jiǎn)單,僅四根I/O線即可驅(qū)動(dòng),LCD160211I/O線,LCD1286412根。

3)     速度快,是LCD1286420倍,是LCD160240倍。

4)     Nokia5110工作電壓3.3V,正常顯示時(shí)工作電流200uA以下,具有掉電模式,適合電池供電的便攜式移動(dòng)設(shè)備。

 

可以在市場(chǎng)上買到Nokia5110的裸屏和帶PCBNokia5110屏幕,因?yàn)?/span>Nokia5110是不帶背光的,所以通常商家會(huì)在PCB上按了幾個(gè)背光LED,上電就能亮,建議大家還是買那種連上PCB5110。

 

Nokia5110原理圖:請(qǐng)到帖子底部下載附件

 

 

 

商家把該引出的管腳都引出了,下面就可以連接C8051F的相應(yīng)管腳,寫程序驅(qū)動(dòng)5110了。

 

Nokia5110Nokia3110是兼容的,用的都是同一款驅(qū)動(dòng)芯片PHILIPS PCD8544。

 

(1)   SPI接口時(shí)序?qū)憯?shù)據(jù)/命令

   Nokia5110(PCD8544)的通信協(xié)議是一個(gè)沒有MISO只有MOSISPI協(xié)議,如果單片機(jī)有富裕的SPI接口,也可以利用硬件SPI,但通常沒有必要,只需要軟件程序模擬即可。

 

 

 

/***********************************************************

函數(shù)名稱:LCD_write_byte

函數(shù)功能:模擬SPI接口時(shí)序?qū)憯?shù)據(jù)/命令LCD

入口參數(shù):data    :寫入的數(shù)據(jù);

          command :寫數(shù)據(jù)/命令選擇;

出口參數(shù):無

注:

***********************************************************/

void LCD_write_byte(unsigned char dat, unsigned char command)

  {

    unsigned char i;

    LCD_CE = 0;                              //5110片選有效,允許輸入數(shù)據(jù)

    if (command == 0)                        //寫命令

         LCD_DC = 0;                         

    else  LCD_DC = 1;                    //寫數(shù)據(jù)

      for(i=0;i<8;i++)                            //傳送8bit數(shù)據(jù)

            {

if(dat&0x80)

                        SDIN = 1;

                  else

                        SDIN = 0;

                  SCLK = 0;

                  dat = dat << 1;

                  SCLK = 1;

}

     LCD_CE = 1;                                //禁止5110

  }

 

管腳D/C(LCD_DC)用于選擇寫的是命令(D/C=0)還是數(shù)據(jù)(D/C=1)

 

(2)   Nokia5110的初始化

接通電源后,內(nèi)部寄存器和RAM的內(nèi)容是不確定的,這需要一個(gè)RES低電平脈沖復(fù)位一下。當(dāng)VDD變?yōu)楦唠娖剑_(dá)到VDDmin(或更高)之后,最多100msRST輸入低電平(電平幅度<0.3VDD)。

 

 

5110復(fù)位時(shí)序

 

/***********************************************************

函數(shù)名稱:LCD_init

函數(shù)功能:5110初始化

入口參數(shù):無

出口參數(shù):無

注:

***********************************************************/

void LCD_init(void)

  {

   LCD_RST = 0;     // 產(chǎn)生一個(gè)讓LCD復(fù)位的低電平脈沖

    delay_1us();

   LCD_RST = 1;

 

   LCD_CE = 0;     // 關(guān)閉LCD

    delay_1us();

   LCD_CE = 1;     // 使能LCD

    delay_1us();

 

    LCD_write_byte(0x21, 0);      // 使用擴(kuò)展命令設(shè)置LCD模式

    LCD_write_byte(0xc8, 0);      // 設(shè)置液晶偏置電壓

    LCD_write_byte(0x06, 0);      // 溫度校正

    LCD_write_byte(0x13, 0);      // 1:48

    LCD_write_byte(0x20, 0);      // 使用基本命令,V=0,水平尋址

    LCD_clear();                 // 清屏

    LCD_write_byte(0x0c, 0);      // 設(shè)定顯示模式,正常顯示

  

    LCD_CE = 0;      // 關(guān)閉LCD

  }

 

 

(3)設(shè)置Nokia5110液晶的坐標(biāo)

Nokia5110(PCD8544)的命令集:

 

 

 

命令字符解釋:

 

要注意的是“功能設(shè)置”命令的“H”和“V”。

H=0使用基本指令集命令,H=1使用擴(kuò)展指令集命令。

V=0水平尋址,V=1垂直尋址。

 

 

 

       48*84點(diǎn)陣的格式如上圖,數(shù)據(jù)以字節(jié)8bit為單位下載到PCD854448*84bit顯示數(shù)據(jù)RAM矩陣。列通過地址指針尋址,地址范圍為X  0~83(1010011),Y 0~5(101)。地址不允許超過這個(gè)范圍。

 

 

 

       在垂直尋址(V=1),Y地址在每個(gè)字節(jié)之后遞增,經(jīng)最后的Y地址(Y=5)之后,Y繞回0,X遞增到下一列的地址。

 

 

 

      在水平尋址模式(V=0),X地址在每個(gè)字節(jié)之后遞增,經(jīng)最后的X地址(X=83)之后,X繞回0,Y遞增到下一行的地址。

經(jīng)每一個(gè)最后地址之后(X=83,Y=5),地址指針繞回地址(X=0,Y=0)。

 

 

/***********************************************************

函數(shù)名稱:LCD_set_XY

函數(shù)功能:設(shè)置LCD坐標(biāo)函數(shù)

入口參數(shù):X       083

          Y       05

出口參數(shù):無

注:

***********************************************************/

void LCD_set_XY(unsigned char X, unsigned char Y)

  {

    LCD_write_byte(0x40 | Y, 0);              // column

    LCD_write_byte(0x80 | X, 0);        // row

  }

 

(4)顯示英文字符

英文字符占用6*8個(gè)點(diǎn)陣,通過建立一個(gè)ASCII的數(shù)組font6x8[][6]來尋址。而這個(gè)數(shù)字的行號(hào)對(duì)應(yīng)(字符ASCII-32)。ASCII碼表如下:

 

 

/***********************************************************/

函數(shù)名稱:LCD_write_char

函數(shù)功能:顯示英文字符

入口參數(shù):c      :  顯示的字符

出口參數(shù):無

注:

***********************************************************/

void LCD_write_char(unsigned char c)

{

    unsigned char line;

    c -= 32;                       //數(shù)組的行號(hào)

 

    for (line=0; line<6; line++)

        LCD_write_byte(font6x8[c][line], 1);

}

 

    如要在NOKIA5110輸出大寫“A”,對(duì)應(yīng)數(shù)組的行號(hào)為33,對(duì)應(yīng)的元素為

{ 0x00, 0x7C, 0x12, 0x11, 0x12, 0x7C },水平尋址(V=0)

 

 

     

NOKIA5110 一行可以顯示14個(gè)字符,可以顯示六行。

 

(5)顯示漢字

顯示漢字可以采用兩種點(diǎn)陣方式,一種是12*12點(diǎn)陣,一種是16*16點(diǎn)陣,網(wǎng)上也有一個(gè)自動(dòng)提取字模的小軟件“3310液晶顯示屏漢字提取程序”,這個(gè)小程序只適用于水平尋址(V=0)。

3310液晶顯示屏漢字提取程序 下載:請(qǐng)到帖子底部下載附件

 

采用12*12點(diǎn)陣漢字時(shí),由于不是8的整數(shù)倍數(shù),因此行與行之間只能隔開,這樣才能完整顯示一個(gè)漢字。

//

{0x0A,0x92,0x62,0x9E,0x02,0x18,0x87,0x74,0x84,0x14,0x0C,0x00,0x02,0x01,0x00,0x04,0x05,0x02,0x01,0x00,0x01,0x02,0x04,0x00},

 

 

12*12點(diǎn)陣

 

(6)顯示圖形

        顯示的圖形像素大小不能超過84*48。也有一個(gè)字模提取小軟件Zimo21可以幫助我們得到圖像的像素?cái)?shù)組。但要注意Zimo21軟件的設(shè)置,不然的話就顯示不了想要的圖片。

Zimo21設(shè)置

 

 

 

      要注意選中“縱向取!薄白止(jié)倒序”這樣才能在5110上顯示正確的圖像。

 

/***********************************************************

函數(shù)名稱:LCD_draw_bmp_pixel

函數(shù)功能:位圖繪制函數(shù)

入口參數(shù):XY    :位圖繪制的起始X、Y坐標(biāo);

          *map    :位圖點(diǎn)陣數(shù)據(jù);

          Pix_x   :位圖像素(長(zhǎng))

          Pix_y   :位圖像素(寬)

出口參數(shù):無

注:

***********************************************************/

void LCD_draw_bmp_pixel(unsigned char X,unsigned char Y,unsigned char *map, unsigned char Pix_x,unsigned char Pix_y)

{

    unsigned int i,n;

    unsigned char row;

                                            //計(jì)算位圖所占行數(shù)

      if (Pix_y%8==0)             //如果為位圖所占行數(shù)為整數(shù)

           row=Pix_y/8;     

      else

         row=Pix_y/8+1;            //如果為位圖所占行數(shù)不是整數(shù)

   

      LCD_set_XY(X,Y);

    for (n=0;n<row;n++)            //換行

      {     

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

          {     

                 LCD_set_XY(X+i,Y+n);

             LCD_write_byte(map[i+n*Pix_x], 1);

          }                        

      }     

}

 

 

要顯示的圖像

 

 

NOKIA5110顯示出來的效果

 


3310液晶顯示屏漢字提取程序.rar

167.03 KB, 下載次數(shù): 128, 下載積分: 黑幣 -5

NOKIA5110驅(qū)動(dòng)程序(C8051F320).rar

46.55 KB, 下載次數(shù): 244, 下載積分: 黑幣 -5

Nokia5110原理圖.rar

225.48 KB, 下載次數(shù): 139, 下載積分: 黑幣 -5

驅(qū)動(dòng)芯片PCD8544英文數(shù)據(jù)手冊(cè).rar

133.78 KB, 下載次數(shù): 38, 下載積分: 黑幣 -5

驅(qū)動(dòng)芯片PCD8544中文數(shù)據(jù)手冊(cè)..rar

577.22 KB, 下載次數(shù): 76, 下載積分: 黑幣 -5

回復(fù)

使用道具 舉報(bào)

ID:58884 發(fā)表于 2016-2-19 20:57 | 顯示全部樓層
能下載嗎。。。。。。
回復(fù)

使用道具 舉報(bào)

ID:58884 發(fā)表于 2016-2-19 20:58 | 顯示全部樓層
資料能直接下載下來嗎
回復(fù)

使用道具 舉報(bào)

ID:138447 發(fā)表于 2016-9-4 22:20 | 顯示全部樓層
?怎么下載
回復(fù)

使用道具 舉報(bào)

ID:138931 發(fā)表于 2016-9-9 11:54 | 顯示全部樓層
好東西,支持
回復(fù)

使用道具 舉報(bào)

ID:138608 發(fā)表于 2016-9-9 14:38 | 顯示全部樓層
壓成一個(gè)包不行嗎?
回復(fù)

使用道具 舉報(bào)

ID:185971 發(fā)表于 2017-5-16 10:01 | 顯示全部樓層
好多包,但非常感謝
回復(fù)

使用道具 舉報(bào)

ID:64765 發(fā)表于 2017-5-16 20:36 | 顯示全部樓層
下載學(xué)習(xí)了,謝謝分享。
回復(fù)

使用道具 舉報(bào)

ID:259400 發(fā)表于 2017-12-28 07:37 | 顯示全部樓層
可以下載你的的,謝謝樓主
回復(fù)

使用道具 舉報(bào)

ID:267741 發(fā)表于 2018-1-5 18:28 | 顯示全部樓層
很好的資料,學(xué)習(xí)了
回復(fù)

使用道具 舉報(bào)

ID:140353 發(fā)表于 2018-1-14 16:29 | 顯示全部樓層
好東西,謝謝
回復(fù)

使用道具 舉報(bào)

ID:272932 發(fā)表于 2018-1-14 21:58 | 顯示全部樓層
好包好包,就是太多
回復(fù)

使用道具 舉報(bào)

ID:274070 發(fā)表于 2018-1-15 09:39 | 顯示全部樓層
牛人,收我為徒吧
回復(fù)

使用道具 舉報(bào)

ID:117047 發(fā)表于 2018-3-12 15:35 | 顯示全部樓層
感謝分享!
回復(fù)

使用道具 舉報(bào)

ID:319736 發(fā)表于 2018-5-1 11:07 | 顯示全部樓層
不錯(cuò),怎么下載呢
回復(fù)

使用道具 舉報(bào)

ID:342790 發(fā)表于 2018-6-13 20:33 | 顯示全部樓層
下載后,程序一直顯示有錯(cuò)誤?

回復(fù)

使用道具 舉報(bào)

ID:162136 發(fā)表于 2018-6-15 19:18 | 顯示全部樓層
真是不錯(cuò)。
回復(fù)

使用道具 舉報(bào)

ID:121690 發(fā)表于 2018-7-10 10:35 | 顯示全部樓層
好東西,謝謝
回復(fù)

使用道具 舉報(bào)

ID:599401 發(fā)表于 2019-10-11 09:33 來自手機(jī) | 顯示全部樓層
謝謝樓主分享
回復(fù)

使用道具 舉報(bào)

ID:105149 發(fā)表于 2019-11-1 23:57 | 顯示全部樓層
看看,謝謝大佬。
回復(fù)

使用道具 舉報(bào)

ID:372776 發(fā)表于 2020-1-21 00:09 | 顯示全部樓層
請(qǐng)問買來沒有底板的裸屏能直接用嗎?外部電路是不是已經(jīng)集成好了?
回復(fù)

使用道具 舉報(bào)

ID:372776 發(fā)表于 2020-1-21 00:10 | 顯示全部樓層
請(qǐng)問買來5110的裸屏是不是直接就可以用了?外部電路已經(jīng)配置集成好了吧?
回復(fù)

使用道具 舉報(bào)

ID:59884 發(fā)表于 2020-11-24 12:49 | 顯示全部樓層
感謝分享!要想辦法用單片機(jī)弄出個(gè)中文字庫(kù)。使用起來更簡(jiǎn)單。
回復(fù)

使用道具 舉報(bào)

ID:1006582 發(fā)表于 2022-3-6 00:47 | 顯示全部樓層
感謝分享!要想辦法用單片機(jī)弄出個(gè)中文字庫(kù)。使用起來更簡(jiǎn)單
回復(fù)

使用道具 舉報(bào)

ID:969272 發(fā)表于 2022-3-6 21:51 | 顯示全部樓層
買的屏對(duì)比度較暗,怎么調(diào)啊?
回復(fù)

使用道具 舉報(bào)

ID:537530 發(fā)表于 2023-12-5 20:34 | 顯示全部樓層
mark。好像還有塊屏
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表