久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: LCD5110液晶屏的詳細介紹及程序 [打印本頁]

作者: heicad    時間: 2016-8-12 16:16
標題: LCD5110液晶屏的詳細介紹及程序

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

 

C8051F學習筆記:Nokia 5110驅動

Nokia5110是一款經典機型,可能由于經典的緣故,舊機器很多,所以很多電子工程師就把舊機器的屏幕拆下來,自己驅動Nokia5110,用于開發的設備顯示,取代LCD1602

使用Nokia5110液晶的四大理由

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

2)     接口簡單,僅四根I/O線即可驅動,LCD160211I/O線,LCD1286412根。

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

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

 

可以在市場上買到Nokia5110的裸屏和帶PCBNokia5110屏幕,因為Nokia5110是不帶背光的,所以通常商家會在PCB上按了幾個背光LED,上電就能亮,建議大家還是買那種連上PCB5110

 

Nokia5110原理圖:

 

 

 

商家把該引出的管腳都引出了,下面就可以連接C8051F的相應管腳,寫程序驅動5110了。

 

Nokia5110Nokia3110是兼容的,用的都是同一款驅動芯片PHILIPS PCD8544

 

(1)   SPI接口時序寫數據/命令

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

 

 

 

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

函數名稱:LCD_write_byte

函數功能:模擬SPI接口時序寫數據/命令LCD

入口參數:data    :寫入的數據;

          command :寫數據/命令選擇;

出口參數:無

注:

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

void LCD_write_byte(unsigned char dat, unsigned char command)

  {

    unsigned char i;

    LCD_CE = 0;                              //5110片選有效,允許輸入數據

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

         LCD_DC = 0;                         

    else  LCD_DC = 1;                    //寫數據

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

            {

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)還是數據(D/C=1)

 

(2)   Nokia5110的初始化

接通電源后,內部寄存器和RAM的內容是不確定的,這需要一個RES低電平脈沖復位一下。當VDD變為高電平,達到VDDmin(或更高)之后,最多100msRST輸入低電平(電平幅度<0.3VDD)

 

 

5110復位時序

 

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

函數名稱:LCD_init

函數功能:5110初始化

入口參數:無

出口參數:無

注:

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

void LCD_init(void)

  {

   LCD_RST = 0;     // 產生一個讓LCD復位的低電平脈沖

    delay_1us();

   LCD_RST = 1;

 

   LCD_CE = 0;     // 關閉LCD

    delay_1us();

   LCD_CE = 1;     // 使能LCD

    delay_1us();

 

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

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

    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);      // 設定顯示模式,正常顯示

  

    LCD_CE = 0;      // 關閉LCD

  }

 

 

(3)設置Nokia5110液晶的坐標

Nokia5110(PCD8544)的命令集:

 

 

 

命令字符解釋:

 

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

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

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

 

 

 

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

 

 

 

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

 

 

 

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

經每一個最后地址之后(X=83,Y=5),地址指針繞回地址(X=0,Y=0)

 

 

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

函數名稱:LCD_set_XY

函數功能:設置LCD坐標函數

入口參數:X       083

          Y       05

出口參數:無

注:

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

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個點陣,通過建立一個ASCII的數組font6x8[][6]來尋址。而這個數字的行號對應(字符ASCII-32)。ASCII碼表如下:

 

 

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

函數名稱:LCD_write_char

函數功能:顯示英文字符

入口參數:c      :  顯示的字符

出口參數:無

注:

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

void LCD_write_char(unsigned char c)

{

    unsigned char line;

    c -= 32;                       //數組的行號

 

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

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

}

 

    如要在NOKIA5110輸出大寫“A”,對應數組的行號為33,對應的元素為

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

 

 

     

NOKIA5110 一行可以顯示14個字符,可以顯示六行。

 

(5)顯示漢字

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

3310液晶顯示屏漢字提取程序 下載:

 

采用12*12點陣漢字時,由于不是8的整數倍數,因此行與行之間只能隔開,這樣才能完整顯示一個漢字。

//

{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點陣

 

(6)顯示圖形

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

Zimo21設置

 

 

 

      要注意選中“縱向取模”“字節倒序”這樣才能在5110上顯示正確的圖像。

 

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

函數名稱:LCD_draw_bmp_pixel

函數功能:位圖繪制函數

入口參數:XY    :位圖繪制的起始XY坐標;

          *map    :位圖點陣數據;

          Pix_x   :位圖像素(長)

          Pix_y   :位圖像素(寬)

出口參數:無

注:

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

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;

                                            //計算位圖所占行數

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

           row=Pix_y/8;     

      else

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

   

      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顯示出來的效果

 

 

作者: 騰飛的龍    時間: 2016-8-14 18:16
樓主辛苦,怎么沒有完整的程序啊
作者: weijinke    時間: 2018-12-7 00:00
不錯的教程!!!
作者: yoxi    時間: 2019-2-28 22:01
好樣的!頂起!
作者: shuisheng60    時間: 2019-3-1 03:35
哇塞!真的很棒!!!看看下面的效果

作者: etian    時間: 2019-7-14 14:03
字符運算
作者: 余金渠    時間: 2022-1-18 22:53
不錯學習到了最近在找低功耗屏幕這個諾基亞5110就不錯程序也簡單
作者: lgwd    時間: 2022-1-19 12:03
某一個寶上800×480分辨率的4寸屏價格不過60元!
作者: herohuang    時間: 2023-8-22 17:43
就是沒有例子可參考,樓主發下?
作者: 想后看開    時間: 2023-8-23 18:47
代碼可以參考51單片機驅動NOKIA7110
作者: xiexianxiao    時間: 2023-8-24 01:12
現在LCD1602也是幾塊錢了




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 欧美日韩精品一区二区天天拍 | 日韩免费看片 | 欧美精品二区 | 精品久久一区 | 日日夜夜草 | 亚洲精品一区在线观看 | 欧产日产国产精品99 | 午夜爽爽爽男女免费观看影院 | 日韩视频一区在线观看 | 人人做人人澡人人爽欧美 | 欧美日韩福利视频 | 午夜影院视频在线观看 | 欧美视频 亚洲视频 | 午夜精品在线观看 | 色综合久久久 | 欧美在线一区二区三区 | 三区在线观看 | 欧美久久天堂 | 精品av| 国产精品夜夜夜一区二区三区尤 | 亚洲三级免费看 | 97精品超碰一区二区三区 | 亚洲精品v | 日韩一区二区av | 欧美中文 | 亚洲午夜精品一区二区三区 | 欧美日韩不卡合集视频 | 天堂视频中文在线 | 国产一区影院 | 久久久久久国产精品免费 | 欧美极品少妇xxxxⅹ免费视频 | 精品国产一区二区国模嫣然 | 国产精品视频一区二区三区 | 欧美成年人视频在线观看 | 日本精品视频 | 久久亚洲欧美日韩精品专区 | 精品国产一区二区三区日日嗨 | 成人欧美一区二区三区在线播放 | 日韩at| 九七午夜剧场福利写真 | 夜夜爽99久久国产综合精品女不卡 |