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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2408|回復: 3
打印 上一主題 下一主題
收起左側

單片機+12864可以字庫顯示文字,但顯示不出圖像,求幫看一下程序。

[復制鏈接]
跳轉到指定樓層
樓主
ID:789174 發表于 2021-1-1 16:08 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
10黑幣
#include "reg51.h"         
#include "intrins.h"

#define LCD_DB  P0         //LCD12864顯示數據接口定義
typedef unsigned char u8;
typedef unsigned int u16;

sbit LCD_RS=P3^7;         //定義LCD12864使用的IO口
sbit LCD_RW=P3^6;
sbit LCD_EN=P3^5;
sbit DSdat=P3^4;

void display();
void clrgdram(void);
         
code char dis[]={
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X07,0XFF,0X00,0X00,0X1F,0XFC,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XE0,0X00,0XFF,0XFF,0X80,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0XFF,0XFF,0XF8,0X03,0XFF,0XFF,0XE0,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X03,0XFF,0XFF,0XFE,0X0F,0XFF,0XFF,0XF8,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X07,0XFF,0XFF,0XFF,0XBF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X0F,0XFF,0X8F,0XFF,0XFF,0XFE,0X3F,0XFE,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X0F,0XFC,0X03,0XFF,0XFF,0XF0,0X07,0XFE,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X0F,0XF8,0X00,0XFF,0XFF,0XE0,0X07,0XFE,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X0F,0XF8,0X00,0X3F,0XFF,0X80,0X03,0XFE,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X0F,0XFC,0X00,0X7F,0XFF,0XC0,0X07,0XFE,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X0F,0XFC,0X01,0XFF,0XFF,0XF0,0X0F,0XFE,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X07,0XFF,0X07,0XFF,0XFF,0XFC,0X1F,0XFE,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X07,0XFF,0XC7,0XFF,0XFF,0XF8,0X7F,0XFC,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X03,0XFF,0XE1,0XFF,0X1F,0XF1,0XFF,0XF8,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0XFF,0XF8,0X7C,0X0F,0XC3,0XFF,0XE0,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X7F,0XFE,0X10,0X03,0X0F,0XFF,0XC0,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X1F,0XFF,0X00,0X00,0X3F,0XFF,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X7E,0X00,0X00,0X07,0XFF,0XC0,0X00,0X7F,0XFC,0X00,0X00,0X0F,0X80,0X00,
0X00,0X07,0XFF,0XF0,0X00,0X63,0XFF,0XF0,0X01,0XFF,0XF0,0XC0,0X01,0XFF,0XFC,0X00,
0X00,0X3F,0XFF,0XFC,0X01,0XF8,0XFF,0XF8,0X07,0XFF,0XE3,0XF0,0X07,0XFF,0XFF,0X00,
0X00,0X7F,0XFF,0XFF,0X07,0XFC,0X3F,0XFE,0X0F,0XFF,0X87,0XFC,0X1F,0XFF,0XFF,0XC0,
0X01,0XFF,0XFF,0XFF,0XDF,0XFF,0X1F,0XFF,0XBF,0XFE,0X1F,0XFE,0X7F,0XFF,0XFF,0XE0,
0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0X07,0XFF,0XFF,0XFC,0X1F,0XFF,0XFF,0XFF,0XFF,0XF0,
0X03,0XFF,0X81,0XFF,0XFF,0XFC,0X01,0XFF,0XFF,0XF0,0X07,0XFF,0XFF,0XE0,0X3F,0XF8,
0X07,0XFF,0X00,0X7F,0XFF,0XF0,0X00,0XFF,0XFF,0XC0,0X01,0XFF,0XFF,0XC0,0X1F,0XF8,
0X07,0XFE,0X00,0X1F,0XFF,0XC0,0X00,0X3F,0XFF,0X80,0X00,0XFF,0XFF,0X00,0X0F,0XF8,
0X07,0XFE,0X00,0X1F,0XFF,0XC0,0X00,0X3F,0XFF,0X80,0X00,0XFF,0XFF,0X00,0X0F,0XF8,
0X03,0XFF,0X00,0X7F,0XFF,0XF0,0X00,0XFF,0XFF,0XE0,0X01,0XFF,0XFF,0XC0,0X1F,0XF8,
0X03,0XFF,0X81,0XFF,0XFF,0XFC,0X03,0XFF,0XFF,0XF8,0X07,0XFF,0XFF,0XF0,0X7F,0XF8,
0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0X07,0XFF,0XFF,0XFC,0X1F,0XFF,0XFF,0XFF,0XFF,0XF0,
0X00,0XFF,0XFF,0XFF,0X8F,0XFE,0X1F,0XFF,0X3F,0XFF,0X1F,0XFE,0X7F,0XFF,0XFF,0XE0,
0X00,0X7F,0XFF,0XFE,0X03,0XFC,0X7F,0XFE,0X0F,0XFF,0XC7,0XF8,0X1F,0XFF,0XFF,0XC0,
0X00,0X1F,0XFF,0XFC,0X01,0XF0,0XFF,0XF8,0X07,0XFF,0XE1,0XE0,0X07,0XFF,0XFF,0X00,
0X00,0X07,0XFF,0XE0,0X00,0X43,0XFF,0XE0,0X01,0XFF,0XF8,0XC0,0X00,0XFF,0XF8,0X00,
0X00,0X00,0X00,0X00,0X00,0X0F,0XFF,0XC0,0X00,0X7F,0XFC,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X1F,0XFF,0X00,0X00,0X3F,0XFF,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X7F,0XFC,0X30,0X03,0X0F,0XFF,0XC0,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X01,0XFF,0XF8,0XFC,0X0F,0XC3,0XFF,0XE0,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X03,0XFF,0XE1,0XFF,0X3F,0XF1,0XFF,0XF8,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X07,0XFF,0X87,0XFF,0XFF,0XF8,0X7F,0XFC,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X0F,0XFF,0X07,0XFF,0XFF,0XFC,0X1F,0XFC,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X0F,0XFC,0X01,0XFF,0XFF,0XF0,0X0F,0XFE,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X1F,0XF8,0X00,0X7F,0XFF,0XC0,0X07,0XFE,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X1F,0XF8,0X00,0X7F,0XFF,0X80,0X03,0XFE,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X0F,0XF8,0X00,0XFF,0XFF,0XE0,0X07,0XFE,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X0F,0XFC,0X03,0XFF,0XFF,0XF0,0X0F,0XFE,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X0F,0XFF,0X9F,0XFF,0XFF,0XFE,0X7F,0XFC,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X07,0XFF,0XFF,0XFF,0X3F,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X03,0XFF,0XFF,0XFC,0X0F,0XFF,0XFF,0XF0,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0XFF,0XFF,0XF8,0X03,0XFF,0XFF,0XE0,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XE0,0X00,0XFF,0XFF,0X80,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X07,0XFE,0X00,0X00,0X1F,0XFC,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,};

void delay_12864(u16 del)                //LCD12864延時函數
{
u16 i;
for(i = 0; i < del; i++);
}
/***********************************************************************/
/**********12864初始化********************************************/
/***********************************************************************/
u8 busy()                           //忙判斷函數
{
   u8 s;
   LCD_RS=0;                                
   LCD_RW=1;
   LCD_EN=1;
   delay_12864(50);
   s=P0;
   delay_12864(50);
   LCD_EN=0;
   return s;
}

void LCD_write_command(u8 command)          //LCD12864寫指令函數
{
while((busy()&&0x80)==0x80);
LCD_EN=0;
LCD_RS=0;         //寫指令
LCD_RW=0;         //寫入
LCD_DB=command;//賦值給D0-D7對應的IO引腳
delay_12864(50);
LCD_EN=1;          //允許
delay_12864(50);  
LCD_EN=0;
}

void LCD_write_data(u8 dat)                        //LCD12864寫數據函數
{
while((busy()&&0x80)==0x80);
LCD_EN=0;
LCD_RS=1;          //寫數據
LCD_RW=0;          //寫入
LCD_DB=dat;//賦值給D0-D7對應的IO引腳
delay_12864(50);
LCD_EN=1;           //允許
delay_12864(50);
LCD_EN=0;
}

void LCD_init(void)                                //初始化LCD12864顯示設置函數
{
DSdat=1;
delay_12864(10000);
LCD_write_command(0x30);//功能設置
delay_12864(20);
LCD_write_command(0x30);//功能設置
delay_12864(20);
LCD_write_command(0x0c);//顯示開關控制
delay_12864(20);
LCD_write_command(0x01);//顯示清除
delay_12864(120);
LCD_write_command(0x06);//顯示清除
delay_12864(50);
}


void clrgdram(void)                // 清整個GDRAM空間
{
    char i,j;
    LCD_write_command(0x34);
    LCD_write_command(0x34);
   for(j=0;j<32;j++)
   {
   LCD_write_command(0x80+j);
   LCD_write_command(0x80);
    for(i=0;i<16;i++)
   {
        LCD_write_data(0x00);
          }
          }  
   for(j=0;j<32;j++)
   {
   LCD_write_command(0x80+j);
   LCD_write_command(0x88);
         for(i=0;i<16;i++)
   {
        LCD_write_data(0x00);
          }
          }                                 
         LCD_write_command(0x36);
         LCD_write_command(0x30);
         }
/*************************************************************************/


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


void LCD_SHOW1(char*p)                  //圖形顯示函數
{

   char i,j;
   clrgdram();
    LCD_write_command(0x34);
    LCD_write_command(0x34);
   for(j=0;j<32;j++)
   {
   LCD_write_command(0x80+j);
   LCD_write_command(0x80);
    for(i=0;i<16;i++)
   {
        LCD_write_data(*p);
            p++;
          }
          }  
   for(j=0;j<32;j++)
   {
   LCD_write_command(0x80+j);
   LCD_write_command(0x88);
         for(i=0;i<16;i++)
   {
        LCD_write_data(*p);
            p++;
          delay_12864(10);
          }
          }                                 
         LCD_write_command(0x36);
         LCD_write_command(0x30);
         }


void main()                        //主函數
{                        
  LCD_init();
while(1)               
{            
             LCD_SHOW1(dis);

}  
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:235200 發表于 2021-1-3 11:16 | 只看該作者
是仿真運行還是加載程序到實物運行?液晶屏是哪一類?根據液晶屏的參數、命令和時序調整程序就可以了
回復

使用道具 舉報

板凳
ID:390416 發表于 2021-1-3 11:51 | 只看該作者
看我發達貼子,里面有最好的資料:http://www.zg4o1577.cn/bbs/dpj-200462-1.html
回復

使用道具 舉報

地板
ID:517466 發表于 2021-1-3 12:03 | 只看該作者
看你的代碼,估計設置圖形模式沒有生效的結果。我這里的代碼是經過實機測試過的。注意函數setGraphMode

/********************************************************************
* 名稱 : TransferData()
* 功能 : 傳送數據或者命令
* 輸入 : data1 - 傳送的數據或者指令
*        DI    - 當DI=0是,傳送命令,當DI=1,傳送數據.
* 輸出 : 無
***********************************************************************/
void TransferData(char data1,bit DI) {
        WRD=0;
        RS=DI;
        delay(1);
        P2=data1;
        E=1;
        delay(1);
        E=0;
}

/********************************************************************
* 名稱 : setGraphMode()
* 功能 : 設置LCD顯示圖片模式
* 輸入 : 無
* 輸出 : 無
***********************************************************************/
void setGraphMode(void) {
        delay(40);             //大于40MS的延時程序
        PSB=1;                 //設置為8BIT并口工作模式
        delay(1);              //延時
        RES=0;                 //復位
        delay(1);              //延時
        RES=1;                 //復位置高
        delay(10);
       
        TransferData(0x36,0);  //Extended Function Set RE=1: extended instruction
        delay(100);            //大于100uS的延時程序
        TransferData(0x36,0);  //Extended Function Set:RE=1: extended instruction set
        delay(37);             ////大于37uS的延時程序
        TransferData(0x3E,0);  //EXFUNCTION(DL=8BITS,RE=1,G=1)
        delay(100);            //大于100uS的延時程序
        TransferData(0x01,0);  //CLEAR SCREEN
        delay(100);            //大于100uS的延時程序
}

/********************************************************************
* 名稱 : DisplayGraphic()
* 功能 : 顯示圖形數據
* 輸入 : adder - 圖形數據首地址
* 輸出 : 無
***********************************************************************/
void DisplayGraphic(unsigned char code *adder)
{

   int i,j;
   // 顯示上半屏內容設置
   for(i=0;i<32;i++) {
      TransferData((0x80 + i),0); // 設置垂直開始地址
      TransferData(0x80,0);       // 設置水平開始地址
      for(j=0;j<16;j++) {
         TransferData(*adder,1);
         adder++;
       }
    }          
   
   // 顯示下半屏內容設置
   for(i=0;i<32;i++) {
      TransferData((0x80 + i),0); // 設置垂直開始地址
      TransferData(0x88,0);       // 設置水平開始地址
      for(j=0;j<16;j++) {
         TransferData(*adder,1);
         adder++;
       }
    }
}

// 圖片數據,16*64個字節的數據,對應于128*64個像素點
unsigned char code pic2[]= {
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
......
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x01,0x2E,
};
實際顯示圖片時,執行以下代碼
setGraphMode();            //調用LCD顯示圖片(擴展)初始化程序
DisplayGraphic(pic2);  //顯示圖片2

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 成人不卡视频 | 亚洲久久在线 | 97精品视频在线观看 | 夜夜嗨av一区二区三区网页 | 日韩毛片视频 | 天天干在线观看 | 亚洲天堂网在线观看 | 天天干天天操 | 四虎在线免费视频 | 五月婷婷影院 | 在线观看黄色小说 | 国产成人亚洲精品自产在线 | a级片免费观看 | 一区二区三区视频在线 | 亚洲精品福利视频 | 久久黄色 | 日韩中文字幕一区二区 | 四虎入口 | 亚洲不卡在线观看 | 色婷婷影院 | 中文字幕免费 | 99这里只有精品 | 一区二区三区四区视频在线观看 | 日韩黄色一级视频 | 国产精品一区二 | www.久草.com| 成人a视频 | 日韩精品国产精品 | 日韩在线免费观看视频 | 国产一区二区视频在线播放 | 国产第三页 | 五月天婷婷社区 | 国产成人午夜精品 | 电家庭影院午夜 | 亚洲 欧美 另类 综合 偷拍 | 日韩av综合网 | www.成人在线 | 久久福利网 | www一级片 | 国产福利在线视频 | 中国久久久 |