找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4759|回復(fù): 12
打印 上一主題 下一主題
收起左側(cè)

12864程序中上半屏 下半屏的問題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
  for(j=0;j<16;j++)
         {
         write_dat(table[ i][j]);
         }   
16在這指16列, 可是上半屏才8列。如果這樣寫就一起把下半屏一起寫了。為什么還寫
for(i=0;i<32;i++)
        {
         write_cmd(0x80+i);
         write_cmd(0x88);
         for(j=0;j<16;j++)
         {
          write_dat(table[i+32][j]);
         }
        }


請教大神指教。!
請教大神指教!!
請教大神指教!。

感謝。!

  1. #include<reg52.h>
  2. #include<intrins.h>
  3. #define uint unsigned int
  4. #define uchar unsigned char
  5. #define LCD_data  P0            
  6. sbit LCD_RS=P2^6;        // 數(shù)據(jù)/命令選擇端   
  7. sbit LCD_RW=P2^5;        // 讀寫選擇端  
  8. sbit LCD_EN=P2^7;        // 使能信號  
  9. sbit LCD_PSB=P3^2;           // 并/串選擇
  10. uchar code table[64][16]={
  11.       0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0x00,0x00,0x00,
  12.       0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0x00,0x00,0x00,
  13.       0xFF,0xFE,0xDF,0x00,0x1C,0x0E,0x1D,0xFE,0xAF,0xFF,0xFF,0xFF,0xF8,0x00,0x00,0x00,
  14.       0xFF,0xFE,0xBF,0xF5,0xFD,0xEF,0xD0,0x21,0xB7,0xFF,0xFF,0xFF,0xF8,0x00,0x00,0x00,
  15.       0xFF,0xFD,0x81,0x80,0x3C,0x0E,0xD7,0xBD,0xBF,0xFF,0xFF,0xFF,0xF8,0x00,0x00,0x00,
  16.       0xFF,0xF9,0x7D,0xB5,0xBD,0xEE,0xD0,0x20,0x03,0xFF,0xFF,0xFF,0xF8,0x00,0x00,0x00,
  17.       0xFF,0xF4,0xEF,0x80,0x3C,0x0E,0xD7,0xFD,0xBF,0xFF,0xFF,0xFF,0xF8,0x00,0x00,0x00,
  18.       0xFF,0xFD,0xAB,0xF7,0xFF,0xFE,0x10,0x3D,0x37,0xFF,0xFF,0xFF,0xF8,0x00,0x00,0x00,
  19.       0xFF,0xFD,0xAB,0x00,0x00,0x03,0xD2,0xB8,0xAF,0xFF,0xFF,0xFF,0xF8,0x00,0x00,0x00,
  20.       0xFF,0xFD,0x6D,0xEE,0xFB,0x7F,0x90,0x25,0xDF,0xFF,0xFF,0xFF,0xF8,0x00,0x00,0x00,
  21.       0xFF,0xFC,0xED,0xC5,0xF9,0x06,0x4A,0xBD,0x9B,0xFF,0xFF,0xFF,0xF8,0x00,0x00,0x00,
  22.       0xFF,0xFD,0xEF,0xF8,0xF6,0x7F,0xDA,0xBC,0x6B,0x7B,0xEF,0xBD,0xF8,0x00,0x00,0x00,
  23.       0xFF,0xFD,0x8F,0x07,0x2F,0x03,0x1F,0x31,0xF3,0xFF,0xFF,0xFF,0xF8,0x00,0x00,0x00,
  24.       0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0x00,0x00,0x00,
  25.       0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0x00,0x00,0x00,
  26.       0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0x00,0x00,0x00,
  27.       0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0x00,0x00,0x00,
  28.       0xEA,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xE1,0xFF,0xFD,0xFF,0xF8,0x00,0x00,0x00,
  29.       0xF1,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xE0,0x3F,0xDC,0xFF,0xF8,0x00,0x00,0x00,
  30.       0xC0,0x2F,0xFF,0xFF,0xF3,0xFF,0xFF,0xFF,0xFF,0xBD,0x8C,0xFF,0xF8,0x00,0x00,0x00,
  31.       0xF1,0xFF,0xFF,0xFF,0xC7,0xEF,0xFF,0xFC,0xFF,0xB9,0x04,0xFF,0xF8,0x00,0x00,0x00,
  32.       0xE8,0xFF,0xFF,0xFF,0x07,0x1F,0x7F,0xFF,0x3F,0xF0,0x20,0xFF,0xF8,0x00,0x00,0x00,
  33.       0xDB,0x7F,0xFF,0xFC,0x0C,0x1C,0x7F,0x7F,0xCF,0xEE,0x71,0xFF,0xF8,0x00,0x00,0x00,
  34.       0xFB,0xF7,0xE3,0xF8,0x00,0x10,0xDF,0x8F,0xF3,0xFE,0x7D,0xFF,0xF8,0x00,0x00,0x00,
  35.       0xFF,0xFB,0xC1,0xF0,0x00,0x00,0x97,0xC1,0xF8,0xFE,0xFF,0xEF,0xF8,0x00,0x00,0x00,
  36.       0xFB,0xEB,0x98,0xE0,0x00,0x39,0x10,0xF0,0x3C,0x3F,0xFF,0xBF,0xF8,0x00,0x00,0x00,
  37.       0xFF,0xF1,0xA4,0xE0,0x00,0x04,0x10,0x1C,0x06,0x1F,0x8F,0x97,0xF8,0x00,0x00,0x00,
  38.       0xFF,0xD1,0x8A,0xC0,0x00,0x00,0x30,0x00,0x01,0x0F,0x07,0x8F,0xF8,0x00,0x00,0x00,
  39.       0xFF,0xE0,0x8A,0x00,0x00,0x00,0x30,0x38,0x00,0x06,0x33,0x1B,0xF8,0x00,0x00,0x00,
  40.       0xFF,0xA0,0x44,0x00,0x00,0x00,0x50,0x40,0x00,0x06,0x4B,0x17,0xF8,0x00,0x00,0x00,
  41.       0xFF,0xC0,0x60,0x00,0x0F,0xC0,0x48,0x00,0x00,0x02,0xA2,0x05,0xF8,0x00,0x00,0x00,
  42.       0xFF,0x40,0x70,0x00,0x3F,0xE0,0x88,0x00,0x00,0x00,0xA2,0x03,0xF8,0x00,0x00,0x00,
  43.       0xFF,0x80,0xF8,0x00,0x00,0xF1,0x04,0x07,0xE0,0x00,0x44,0x01,0xF8,0x00,0x00,0x00,
  44.       0xFE,0x81,0xE8,0x00,0x01,0xC2,0x04,0x4F,0xF8,0x00,0x0F,0x03,0xF8,0x00,0x00,0x00,
  45.       0xFF,0x00,0x08,0x00,0x01,0x84,0x02,0x3E,0x00,0x00,0x1F,0x82,0xF8,0x00,0x00,0x00,
  46.       0xFD,0x00,0x10,0x00,0x00,0x88,0x01,0x06,0x00,0x00,0x10,0x41,0xF8,0x00,0x00,0x00,
  47.       0xFE,0x01,0xE0,0x01,0x13,0x08,0x00,0x87,0x00,0x00,0x10,0x01,0xB8,0x00,0x00,0x00,
  48.       0xFF,0x06,0x20,0x00,0x88,0x10,0x00,0x43,0x00,0x00,0x10,0x01,0x18,0x00,0x00,0x00,
  49.       0xFD,0x0A,0x10,0x01,0x44,0x10,0x00,0x22,0x00,0x00,0x18,0x01,0xB8,0x00,0x00,0x00,
  50.       0xF8,0x11,0x10,0x00,0x80,0x10,0x00,0x21,0x91,0x00,0x14,0x01,0xF8,0x00,0x00,0x00,
  51.       0xFC,0x10,0x88,0x70,0x00,0x10,0x00,0x10,0x22,0x03,0xE0,0x00,0xB8,0x00,0x00,0x00,
  52.       0xFE,0x20,0x84,0x4C,0x00,0x20,0x00,0x10,0x45,0x05,0x31,0x00,0xF8,0x00,0x00,0x00,
  53.       0xF4,0x20,0x43,0x8B,0x80,0xC0,0x00,0x10,0x02,0x08,0x88,0x80,0xB8,0x00,0x00,0x00,
  54.       0xFC,0x20,0x40,0x08,0xFF,0x00,0x00,0x10,0x00,0x18,0x40,0x40,0x78,0x00,0x00,0x00,
  55.       0xF6,0x20,0x40,0x08,0x80,0x00,0x00,0x08,0x00,0x68,0x40,0x00,0xD8,0x00,0x00,0x00,
  56.       0xFC,0x20,0x40,0x08,0x80,0x00,0x00,0x06,0x03,0x90,0x20,0x20,0x68,0x00,0x00,0x00,
  57.       0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  58.       0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  59.       0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  60.       0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  61.       0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  62.       0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  63.       0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  64.       0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  65.       0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  66.       0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  67.       0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  68.       0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  69.       0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  70.       0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  71.       0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  72.       0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  73.       0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  74.       0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
  75. };
  76. void delay(uint z)                //        延時(shí)函數(shù)
  77. {
  78.         uint x,y;
  79.         for(x=0;x<z;x++)
  80.          for(y=0;y<110;y++);
  81. }
  82. //寫指令數(shù)據(jù)到LCD
  83. void write_cmd(uchar cmd)
  84. {
  85.         LCD_RS=0;
  86.         LCD_RW=0;
  87.         LCD_EN=0;
  88.         P0=cmd;
  89.         delay(5);
  90.         LCD_EN=1;
  91.         delay(5);
  92.         LCD_EN=0;
  93. }
  94. //寫顯示數(shù)據(jù)到LCD
  95. void write_dat(uchar dat)
  96. {
  97.         LCD_RS=1;
  98.         LCD_RW=0;
  99.         LCD_EN=0;
  100.         P0=dat;
  101.         delay(5);
  102.         LCD_EN=1;
  103.         delay(5);
  104.         LCD_EN=0;        
  105. }
  106. //12864初始化
  107. void lcd_init()//12964初始化
  108. {
  109.         LCD_PSB=1;                                //并口模式
  110.         write_cmd(0x34);                //基本指令操作
  111.         delay(5);
  112.         write_cmd(0x0c);                //顯示開,光標(biāo)關(guān)
  113.         delay(5);
  114.         write_cmd(0x01);                //消除所有顯示
  115.         delay(5);
  116. }
  117. //主函數(shù)
  118. main()
  119. {
  120.         uchar i,j;
  121.         delay(10);
  122.         lcd_init();                  //初始化
  123.         for(i=0;i<32;i++)
  124.         {

  125.          write_cmd(0x80+i);//垂直方向y軸
  126.          write_cmd(0x80);//水平方向x軸    水平方向地址自增
  127.          for(j=0;j<16;j++)
  128.          {
  129.          write_dat(table[i][j]);
  130.          }
  131.         }        
  132.         for(i=0;i<32;i++)
  133.         {
  134.          write_cmd(0x80+i);
  135.          write_cmd(0x88);
  136.          for(j=0;j<16;j++)
  137.          {
  138.           write_dat(table[i+32][j]);
  139.          }
  140.         }               
  141.         write_cmd(0x36);                         //打開繪圖模式
  142.         write_cmd(0x30);                         //基本操作模式
  143.         while(1);                                        //沒有的話 會一直閃爍 甚至不顯示
  144. }




復(fù)制代碼
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:7485 發(fā)表于 2016-12-3 21:52 | 只看該作者
常見的12864,一個(gè)漢字,上半部16列8行,下半部16列8行,組合起來就是16*16點(diǎn)陣的漢字。

不知道你用的是12864是什么控制芯片的?
回復(fù)

使用道具 舉報(bào)

板凳
ID:138194 發(fā)表于 2016-12-4 11:33 | 只看該作者
ahshmj 發(fā)表于 2016-12-3 21:52
常見的12864,一個(gè)漢字,上半部16列8行,下半部16列8行,組合起來就是16*16點(diǎn)陣的漢字。

不知道你用的是 ...

ST7920

上屏只有8列。不是嗎?另外8列屬于下屏?
回復(fù)

使用道具 舉報(bào)

地板
ID:138194 發(fā)表于 2016-12-4 11:33 | 只看該作者
ahshmj 發(fā)表于 2016-12-3 21:52
常見的12864,一個(gè)漢字,上半部16列8行,下半部16列8行,組合起來就是16*16點(diǎn)陣的漢字。

不知道你用的是 ...

ST7920

上屏只有8列。不是嗎?另外8列屬于下屏?
回復(fù)

使用道具 舉報(bào)

5#
ID:7485 發(fā)表于 2016-12-4 16:59 | 只看該作者
龔紅 發(fā)表于 2016-12-4 11:33
ST7920

上屏只有8列。不是嗎?另外8列屬于下屏?

你說的是半角字符?16*8的?

漢字(全角字符)是16*16的。
回復(fù)

使用道具 舉報(bào)

6#
ID:138194 發(fā)表于 2016-12-5 17:46 | 只看該作者
漢字的大小可以改嗎?
比如說是20*20;30*30的。是不是只能通過取模以圖片的形式顯示出來
顯示圖片的地址是怎么一回事???
謝謝。。。
回復(fù)

使用道具 舉報(bào)

7#
ID:138194 發(fā)表于 2016-12-5 17:48 | 只看該作者
ahshmj 發(fā)表于 2016-12-4 16:59
你說的是半角字符?16*8的?

漢字(全角字符)是16*16的。

漢字。
回復(fù)

使用道具 舉報(bào)

8#
ID:111634 發(fā)表于 2016-12-5 17:58 | 只看該作者
本帖最后由 zl2168 于 2016-12-5 18:02 編輯

LCD12864顯示屏顯示漢字
AMPIRE 12864LCD顯示屏簡介
引腳功能   
顯示屏數(shù)據(jù)結(jié)構(gòu)   
漢字編碼
漢字編碼概述   
漢字點(diǎn)陣顯示代碼   
漢字點(diǎn)陣取模軟件   
電路和應(yīng)用程序   
Keil調(diào)試   
Proteus仿真   
Proteus仿真一下,確認(rèn)有效。
實(shí)驗(yàn)25 LCD12864顯示屏顯示.rar (60.48 KB, 下載次數(shù): 18)
以上摘自張志良編著《單片機(jī)實(shí)驗(yàn)實(shí)訓(xùn)100例》 ISBN 978-7-5124-1603-1,北航社出版
《單片機(jī)原理與控制技術(shù)——雙解匯編和C51》第3ISBN 978-7-111-42393-5機(jī)械工業(yè)出版社
80C51單片機(jī)實(shí)用教程——基于Keil CProteus》高等教育出版社ISBN 978-7-04-044532-9
書中電路和程序設(shè)計(jì)有詳細(xì)說明,程序語句條條有注解。





















回復(fù)

使用道具 舉報(bào)

9#
ID:138194 發(fā)表于 2016-12-5 19:14 | 只看該作者
謝謝。!
回復(fù)

使用道具 舉報(bào)

10#
ID:7485 發(fā)表于 2016-12-6 08:18 | 只看該作者
龔紅 發(fā)表于 2016-12-5 17:46
漢字的大小可以改嗎?
比如說是20*20;30*30的。是不是只能通過取模以圖片的形式顯示出來
顯示圖片的地址 ...

凡是LCD自帶的漢子庫,基本上都是16*16點(diǎn)陣的漢字。如果用繪圖模式可以改其他的。但是每列8個(gè)點(diǎn)(一個(gè)字節(jié))是不容易改的。當(dāng)然,多余的閑置是可以的。
回復(fù)

使用道具 舉報(bào)

11#
ID:7485 發(fā)表于 2016-12-6 08:22 | 只看該作者
zl2168 發(fā)表于 2016-12-5 17:58
LCD12864顯示屏顯示漢字
⒈ AMPIRE 12864型LCD顯示屏簡介
⑴ 引腳功能    …

你的這個(gè)是不帶漢字庫的。KS0108主控芯片的。從有S1、S2引腳可以看出來。
回復(fù)

使用道具 舉報(bào)

12#
ID:111634 發(fā)表于 2016-12-6 08:31 | 只看該作者
ahshmj 發(fā)表于 2016-12-6 08:22
你的這個(gè)是不帶漢字庫的。KS0108主控芯片的。從有S1、S2引腳可以看出來。

我推薦的所有案例都是帶proteus仿真的,而proteus元件庫中沒有帶漢字的12864芯片,沒法提供不帶漢字庫的proteus仿真案例。但電路、程序和編程思路是可參考的。
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

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