精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

LCD12864顯示屏概述及控制程序

CHANBAEK ? 來源:CSDN-_會飛_的魚 ? 作者:CSDN-_會飛_的魚 ? 2023-03-07 15:12 ? 次閱讀

一. 概述

LCD12864顯示屏是所說的點陣液晶顯示模塊,就是由12864個液晶顯示點組成的一個128列 64行的陣列,所以也就叫成了12864。 每個顯示點都對應著有一位二進制數,0表示滅,1表示亮。 存儲這些點陣信息RAM被稱為顯示數據存儲器。 如果要顯示某個圖形或漢字就是將相應的點陣信息寫入到對應的存儲單元中。 圖形或漢字的點陣信息是由自己設計(如果模塊帶有字庫,則不需要自己設計漢字),這時候問題的關鍵是顯示點在液晶屏上的位置與其在存儲器中的地址之間的關系。

二. LCD12864基本參數

1.電氣參數

  • 電源電壓:VDD:+3.0--+5.5V
  • 顯示分辨率:128×64點
  • 內置漢字字庫,提供8192個16×16點陣漢字(簡繁體可選)
  • 內置128個16×8點陣字符
  • 2MHZ時鐘頻率
  • 顯示方式:STN、半透、正顯
  • 驅動方式:1/32DUTY,1/5BIAS
  • 視角方向:6點
  • 背光方式:側部高亮白色LED,功耗僅為普通LED的1/5—1/10
  • 通訊方式:串行、并口可選
  • 內置DC-DC轉換電路,無需外加負壓
  • 無需片選信號,簡化軟件設計
  • 工作溫度:0℃-+55℃,存儲溫度:-20℃-+60℃

2. 引腳說明

LCD12864的引腳總共有20個,如圖:

截圖20230301181839.png

截圖20230301181839.png

其中,引腳PSB為并/串行接口選擇引腳,高電平為并行控制; 低電平為串行控制。

3. 電路圖

微信圖片_20230223144318.jpg

其中可調電阻用于調整顯示器的對比度。 三極管是為增強電流的驅動能力,為背光LED提供足夠的驅動電流。

三. 控制程序

1.控制時序

LCD12864控制時序有兩種,一種為并行控制時序(本次是以并行為例),另一種是串行控制時序。

簡單來說,大部分情況下我們只對顯示屏做寫操作,讀操作很少用,所以讀操作就不做介紹。 LCD12864顯示屏控制程序簡化下來,也相對簡單,只需要實現忙檢查、寫數據、寫指令、初始化四個控制函數即可實現對LCD12864的控制。 寫時序如圖:

截圖20230301181839.png

2. 忙狀態檢查函數

/*******************************************************************************
* 函 數 名         : LCD12864_Busy
* 函數功能       : 檢測LCD是否忙
* 輸    入         : 無
* 輸    出         : 1或0(1表示不忙,0表示忙)
*******************************************************************************/
uchar LCD12864_Busy(void)
{
  uchar i = 0;
  LCD12864_RS = 0;     //選擇命令
  LCD12864_RW = 1;  //選擇讀取
  LCD12864_EN = 1;
  LCD12864_Delay1ms(1);
  while((LCD12864_DATAPORT & 0x80) == 0x80)  //檢測讀取到的值
  {
    i++;
    if(i > 100)
    {
      LCD12864_EN = 0;
      return 0;     //超過等待時間返回0表示失敗
    }
  }
  LCD12864_EN = 0;
  return 1;
}

3. 寫指令函數

/*******************************************************************************
* 函 數 名         : LCD12864_WriteCmd
* 函數功能       : 寫命令
* 輸    入         : cmd
* 輸    出         : 無
*******************************************************************************/
void LCD12864_WriteCmd(uchar cmd)
{
  uchar i;
  i = 0;
  while( LCD12864_Busy() == 0)
  {
    LCD12864_Delay1ms(1);
    i++;
    if( i>100)
    {
      return;     //超過等待退出
    }  
  }  
  LCD12864_RS = 0;     //選擇命令
  LCD12864_RW = 0;     //選擇寫入
  LCD12864_EN = 0;     //初始化使能端
  LCD12864_DATAPORT = cmd;   //放置數據
  LCD12864_EN = 1;       //寫時序
  LCD12864_Delay1ms(5);
  LCD12864_EN = 0;              
}

4. 寫數據函數

/*******************************************************************************
* 函 數 名         : LCD12864_WriteData
* 函數功能       : 寫數據
* 輸    入         : dat
* 輸    出         : 無
*******************************************************************************/
void LCD12864_WriteData(uchar dat)
{
  uchar i;
  i = 0;
  while( LCD12864_Busy() == 0)
  {
    LCD12864_Delay1ms(1);
    i++;
    if( i>100)
    {
      return;     //超過等待退出
    }  
  }
  LCD12864_RS = 1;     //選擇數據
  LCD12864_RW = 0;     //選擇寫入
  LCD12864_EN = 0;     //初始化使能端
  LCD12864_DATAPORT = dat;   //放置數據
  LCD12864_EN = 1;       //寫時序
  LCD12864_Delay1ms(5);
  LCD12864_EN = 0;                    
}

與LCD1602一樣,LCD12864寫數據和寫指令的區別在于RS引腳的電平; RS為高電平時,寫數據; RS為低電平時,寫指令。

5. 初始化函數

/*******************************************************************************
* 函 數 名         : LCD12864_Init
* 函數功能       : 初始化LCD12864
* 輸    入         : 無
* 輸    出         : 無
*******************************************************************************/
void LCD12864_Init()
{
  LCD12864_PSB = 1;    //選擇并行輸入
  LCD12864_RST = 1;    //復位


  LCD12864_WriteCmd(0x30);  //選擇基本指令操作
  LCD12864_WriteCmd(0x0c);  //顯示開,關光標
  LCD12864_WriteCmd(0x01);  //清除LCD12864的顯示內容
}

四. 顯示程序

在LCD12864上顯示特定的字符,實際上就是對LCD12864的DDRAM上寫入對應的數據,顯示屏便顯示你想要的字符。 其中,英文字符占用1個字節,中文字符占用2個字節。

1. 顯示坐標關系

截圖20230301181839.png

如上圖所示,第一行顯示的地址為80H-87H,第二行為90H-97H,第三行為88H-8FH,第四行為98H-9FH。 所以要顯示屏上哪個位置顯示哪個漢字,只需要寫入對應位置的地址,再寫入對應漢字即可。

2. 顯示漢字

只要實現以上忙檢查 、 寫數據 、 寫指令 、初始化四個控制函數,就可以實現LCD12864顯示屏漢字的顯示控制。

示函數只需要寫入起始坐標,然后顯示對應的漢字。

/*******************************************************************************
* 函 數 名         : LCD12864_SetWindow
* 函數功能       : 設置在基本指令模式下設置顯示坐標,并顯示漢字。注意:x是設置行,y是設置列
* 輸    入         : x, y,word
* 輸    出         : 無
*******************************************************************************/
void LCD12864_SetWindow(uchar x, uchar y,uchar *word)
{
  uchar pos;
  uchar i=y;
  if(x == 0)     // 第一行的地址是80H
    x = 0x80;   
  else if(x == 1)  //第二行的地址是90H
    x = 0x90;  
  else if(x == 2)  //第三行的地址是88H
    x = 0x88; 
  else if(x == 3)  //第三行的地址是98H
    x = 0x98;

  pos = x + y;
  LCD12864_WriteCmd(pos);  
  while(word[i]!='\\0')
  {
    if(i<16)    //判斷是否在本行的顯示范圍內
    {
      LCD12864_WriteData(word[i]);
      i++;
    } 
  }
}

3.主函數

最后,在主函數上實現漢字的顯示了。
#include
#include"lcd12864.h"


unsigned char code CharCode[]="電子應用學習館";


void main()
{
  unsigned char i;


  LCD12864_Init();
  LCD12864_SetWindow(0, 0,CharCode);
  while(1);
}
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 存儲器
    +關注

    關注

    38

    文章

    7453

    瀏覽量

    163608
  • 液晶
    +關注

    關注

    6

    文章

    606

    瀏覽量

    69611
  • 顯示屏
    +關注

    關注

    28

    文章

    4457

    瀏覽量

    74132
  • LCD12864
    +關注

    關注

    7

    文章

    232

    瀏覽量

    44840
  • 顯示模塊
    +關注

    關注

    1

    文章

    48

    瀏覽量

    23559
收藏 人收藏

    評論

    相關推薦

    神們,誰能幫我把這程序里邊的lcd12232的顯示屏程序改為能在lcd12864上面顯示并使用

    神們,誰能幫我把這程序里邊的lcd12232的顯示屏程序改為能在lcd12864上面顯示并使用,
    發表于 10-09 21:17

    LCD12864顯示屏怎么使用

    一.概述LCD12864顯示屏是所說的點陣液晶顯示模塊,就是由12864個液晶顯示點組成的一個1
    發表于 02-07 06:23

    LCD12864直接寫驅動程序

    LCD12864直接寫驅動程序12864LCD直接寫,省去顯示緩沖區,-
    發表于 03-12 17:29 ?530次下載

    LCD12864 顯示漢字

    無字庫LCD12864顯示漢字,有程序,有仿真圖。
    發表于 05-05 17:40 ?76次下載

    LCD12864液晶顯示的設計

    LCD12864液晶顯示的設計基于MSP430單片機片內溫度12864顯示程序
    發表于 06-21 17:56 ?27次下載

    LCD12864并行和串行顯示程序和資料免費下載

    本文檔的主要內容詳細介紹的是LCD12864并行和串行顯示程序和資料免費下載。
    發表于 09-03 08:00 ?66次下載

    如何使用LCD12864顯示屏顯示溫濕度的詳細程序和資料免費下載

    本文檔的主要內容詳細介紹的是如何使用LCD12864顯示屏顯示溫濕度的詳細程序和資料免費下載。
    發表于 10-11 08:00 ?68次下載
    如何使用<b class='flag-5'>LCD12864</b><b class='flag-5'>顯示屏</b><b class='flag-5'>顯示</b>溫濕度的詳細<b class='flag-5'>程序</b>和資料免費下載

    LCD12864顯示屏的基本原理與使用方法和取模軟件等資料免費下載

    本文檔的主要內容詳細介紹的是LCD12864顯示屏的基本原理與使用方法和取模軟件等資料免費下載還包括了:怎么將一個圖片轉化為,LCD12864圖片數據收集
    發表于 12-10 08:00 ?44次下載
    <b class='flag-5'>LCD12864</b><b class='flag-5'>顯示屏</b>的基本原理與使用方法和取模軟件等資料免費下載

    LCD12864顯示程序免費下載

    本文檔的主要內容詳細介紹的是LCD12864顯示程序免費下載。
    發表于 05-09 08:00 ?62次下載
    <b class='flag-5'>LCD12864</b>的<b class='flag-5'>顯示</b><b class='flag-5'>程序</b>免費下載

    LCD12864串行顯示程序免費下載

    本文檔的主要內容詳細介紹的是LCD12864串行顯示程序免費下載。
    發表于 07-15 08:00 ?28次下載
    <b class='flag-5'>LCD12864</b>串行<b class='flag-5'>顯示</b><b class='flag-5'>程序</b>免費下載

    LCD12864的液晶顯示程序免費下載

    本文檔的主要內容詳細介紹的是LCD12864的液晶顯示程序免費下載。
    發表于 06-24 08:00 ?29次下載
    <b class='flag-5'>LCD12864</b>的液晶<b class='flag-5'>顯示</b><b class='flag-5'>程序</b>免費下載

    使用LCD12864顯示圖片的仿真和程序資料免費下載

    本文檔的主要內容詳細介紹的是使用LCD12864顯示圖片的仿真和程序資料免費下載。
    發表于 08-20 16:48 ?52次下載
    使用<b class='flag-5'>LCD12864</b><b class='flag-5'>顯示</b>圖片的仿真和<b class='flag-5'>程序</b>資料免費下載

    使用51單片機實現LCD12864顯示屏顯示的仿真文件免費下載

    本文檔的主要內容詳細介紹的是使用51單片機實現LCD12864顯示屏顯示的仿真文件免費下載。
    發表于 03-23 11:05 ?34次下載

    使用51單片機實現LCD12864顯示屏顯示的仿真文件免費下載

    本文檔的主要內容詳細介紹的是使用51單片機實現LCD12864顯示屏顯示的仿真文件免費下載。
    發表于 03-23 11:05 ?90次下載

    詳解LCD12864顯示屏的使用(并行控制

    一.概述LCD12864顯示屏是所說的點陣液晶顯示模塊,就是由12864個液晶顯示點組成的一個1
    發表于 12-04 10:21 ?13次下載
    詳解<b class='flag-5'>LCD12864</b><b class='flag-5'>顯示屏</b>的使用(并行<b class='flag-5'>控制</b>)