一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

LCD12864顯示屏概述及控制程序

CHANBAEK ? 來源:CSDN-_會飛_的魚 ? 作者:CSDN-_會飛_的魚 ? 2023-03-07 15:12 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一. 概述

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

二. LCD12864基本參數(shù)

1.電氣參數(shù)

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

2. 引腳說明

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

截圖20230301181839.png

截圖20230301181839.png

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

3. 電路圖

微信圖片_20230223144318.jpg

其中可調(diào)電阻用于調(diào)整顯示器的對比度。 三極管是為增強(qiáng)電流的驅(qū)動能力,為背光LED提供足夠的驅(qū)動電流。

三. 控制程序

1.控制時序

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

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

截圖20230301181839.png

2. 忙狀態(tài)檢查函數(shù)

/*******************************************************************************
* 函 數(shù) 名         : LCD12864_Busy
* 函數(shù)功能       : 檢測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. 寫指令函數(shù)

/*******************************************************************************
* 函 數(shù) 名         : LCD12864_WriteCmd
* 函數(shù)功能       : 寫命令
* 輸    入         : 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;   //放置數(shù)據(jù)
  LCD12864_EN = 1;       //寫時序
  LCD12864_Delay1ms(5);
  LCD12864_EN = 0;              
}

4. 寫數(shù)據(jù)函數(shù)

/*******************************************************************************
* 函 數(shù) 名         : LCD12864_WriteData
* 函數(shù)功能       : 寫數(shù)據(jù)
* 輸    入         : 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;     //選擇數(shù)據(jù)
  LCD12864_RW = 0;     //選擇寫入
  LCD12864_EN = 0;     //初始化使能端
  LCD12864_DATAPORT = dat;   //放置數(shù)據(jù)
  LCD12864_EN = 1;       //寫時序
  LCD12864_Delay1ms(5);
  LCD12864_EN = 0;                    
}

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

5. 初始化函數(shù)

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


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

四. 顯示程序

在LCD12864上顯示特定的字符,實際上就是對LCD12864的DDRAM上寫入對應(yīng)的數(shù)據(jù),顯示屏便顯示你想要的字符。 其中,英文字符占用1個字節(jié),中文字符占用2個字節(jié)。

1. 顯示坐標(biāo)關(guān)系

截圖20230301181839.png

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

2. 顯示漢字

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

示函數(shù)只需要寫入起始坐標(biāo),然后顯示對應(yīng)的漢字。

/*******************************************************************************
* 函 數(shù) 名         : LCD12864_SetWindow
* 函數(shù)功能       : 設(shè)置在基本指令模式下設(shè)置顯示坐標(biāo),并顯示漢字。注意:x是設(shè)置行,y是設(shè)置列
* 輸    入         : 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)    //判斷是否在本行的顯示范圍內(nèi)
    {
      LCD12864_WriteData(word[i]);
      i++;
    } 
  }
}

3.主函數(shù)

最后,在主函數(shù)上實現(xiàn)漢字的顯示了。
#include
#include"lcd12864.h"


unsigned char code CharCode[]="電子應(yīng)用學(xué)習(xí)館";


void main()
{
  unsigned char i;


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

    關(guān)注

    38

    文章

    7643

    瀏覽量

    166840
  • 液晶
    +關(guān)注

    關(guān)注

    6

    文章

    617

    瀏覽量

    70298
  • 顯示屏
    +關(guān)注

    關(guān)注

    28

    文章

    4593

    瀏覽量

    76135
  • LCD12864
    +關(guān)注

    關(guān)注

    7

    文章

    233

    瀏覽量

    45668
  • 顯示模塊
    +關(guān)注

    關(guān)注

    1

    文章

    54

    瀏覽量

    23770
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

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

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

    LCD12864顯示屏怎么使用

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

    LCD12864直接寫驅(qū)動程序

    LCD12864直接寫驅(qū)動程序,12864LCD直接寫,省去顯示緩沖區(qū),-
    發(fā)表于 03-12 17:29 ?531次下載

    LCD12864 顯示漢字

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

    LCD12864液晶顯示的設(shè)計

    LCD12864液晶顯示的設(shè)計基于MSP430單片機(jī)片內(nèi)溫度12864顯示程序
    發(fā)表于 06-21 17:56 ?29次下載

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

    本文檔的主要內(nèi)容詳細(xì)介紹的是LCD12864并行和串行顯示程序和資料免費下載。
    發(fā)表于 09-03 08:00 ?69次下載

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

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

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

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

    LCD12864顯示程序免費下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是LCD12864顯示程序免費下載。
    發(fā)表于 05-09 08:00 ?66次下載
    <b class='flag-5'>LCD12864</b>的<b class='flag-5'>顯示</b><b class='flag-5'>程序</b>免費下載

    LCD12864串行顯示程序免費下載

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

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

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

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

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

    使用51單片機(jī)實現(xiàn)LCD12864顯示屏顯示的仿真文件免費下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用51單片機(jī)實現(xiàn)LCD12864顯示屏顯示的仿真文件免費下載。
    發(fā)表于 03-23 11:05 ?38次下載

    使用51單片機(jī)實現(xiàn)LCD12864顯示屏顯示的仿真文件免費下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用51單片機(jī)實現(xiàn)LCD12864顯示屏顯示的仿真文件免費下載。
    發(fā)表于 03-23 11:05 ?90次下載

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

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