找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

lcd12864中數(shù)組指針不會用 求大神解答

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
#
ID:162142 發(fā)表于 2017-1-17 13:28 | 只看該作者 |只看大圖 回帖獎勵 |正序瀏覽 |閱讀模式
5黑幣
本帖最后由 krystalky 于 2017-1-17 13:30 編輯

#include<reg52.h>
#include<stdio.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit lcd_rs=P2^6;
sbit lcd_rw=P2^5;
sbit lcd_e=P2^7;
sbit lcd_psb=P3^2;
uchar code dis[64][16]={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,0x01,0x00,0x00,
0x01,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,0x04,0x0D,0x06,0x01,0x01,0x0F,0x01,0x01,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,0x01,0x03,0x0F,
0x1F,0x1F,0x39,0x02,0x06,0x06,0x01,0x01,0x03,0x03,0x07,0x0F,0x1D,0x39,0x19,0x01,
0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x54,0x94,0xBF,0x14,0x10,
0xFF,0x11,0x52,0x30,0x10,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,0x01,0x08,0x98,0x69,0x38,0x48,0x88,0x88,0x49,0x38,0x08,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,
0x0E,0x0E,0x0E,0x0E,0x1E,0x1E,0x3C,0x38,0x3B,0x3B,0x3F,0x7E,0xFC,0xFC,0xFC,0xFC,
0xFC,0xFC,0xD4,0xF4,0xF0,0xD0,0xD8,0xD8,0xF8,0xFC,0xFE,0xDD,0xDC,0xFF,0x79,0x7F,
0x6F,0x7F,0x3F,0x3F,0x1A,0x19,0x08,0x0C,0x06,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x40,0x20,0xE0,0x00,0x40,
0x80,0x80,0x40,0x40,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,0x20,0xC2,0xD1,0x37,0x20,0x00,0x40,0x9C,0x54,0x54,0x5D,
0x40,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x20,0x30,0x38,0xF8,0xF8,0xF0,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xC3,0xBF,0xFF,0x7B,
0xFD,0xE7,0xFB,0xF7,0x73,0xBC,0xF0,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,0x01,0x01,0x01,0x00,0x00,
0x80,0xC0,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,0x01,
0x07,0x07,0x07,0x07,0x0F,0x1B,0x2F,0x3F,0x3F,0x7F,0xEA,0xFC,0xDC,0xB8,0xF8,0xC0,
0xA0,0xFC,0xF8,0x80,0x00,0x00,0x00,0x03,0x03,0x02,0x04,0x07,0x0C,0x07,0x07,0x07,
0x06,0x03,0x01,0x01,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,0x10,0x08,0x08,0xC8,0xFB,0xC8,0x08,0x08,
0x0C,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,0x7F,0x7E,0x7D,0xBD,0x75,
0xD5,0xA4,0xD9,0xC4,0xF0,0xF8,0xFC,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0xD0,0xF8,0xD8,0x7A,0x3F,0x07,0x0F,0x02,0x00,0x00,
0x80,0x80,0x80,0x30,0xF0,0xF8,0x3C,0x30,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,0x28,0x40,0x80,0x00,0x80,0x00,0x40,
0x30,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,0x40,0xC0,0xF8,0xB8,0x76,
0xBC,0xBF,0x5E,0x3F,0x3F,0x0D,0x05,0x0E,0x1D,0x1F,0x1E,0x19,0x18,0x18,0x13,0x11,
0x03,0x03,0x03,0x03,0x07,0x05,0x07,0x0A,0x1B,0x2E,0xBC,0xDF,0x6C,0xFC,0x0C,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,0x80,0x80,0xC0,0xC0,0x40,0x80,0x40,0xC0,0xA0,0xE0,0xE0,0xE0,0xE0,0xE0,
0xE0,0xC0,0xC0,0x80,0xC0,0xC0,0x80,0x80,0x80,0x80,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};
uchar *address;
void delay_1ms(uint x)  //1ms
{
   uint i,j;
        for(j=0;j<x;j++)
           for(i=0;i<112;i++);
}
void lcd_wcmd(char cmd) //寫指令數(shù)據(jù)到lcd
{
lcd_rs=0;
lcd_rw=0;
lcd_e=0;
P0=cmd;
delay_1ms(5);
lcd_e=1;
delay_1ms(5);
lcd_e=0;        
}
void lcd_wdat(char dat) //寫顯示數(shù)據(jù)到lcd
{
lcd_rs=1;
lcd_rw=0;
lcd_e=0;
P0=dat;
delay_1ms(5);
lcd_e=1;
delay_1ms(5);
lcd_e=0;        
}
void init_picture()
   {
    lcd_wcmd(0x36);
        lcd_wcmd(0x36);
        lcd_wcmd(0x3e);
        lcd_wcmd(0x01);
   }
void show_pic(uchar *address)
   {
    uchar i,j;
         for(i=0;i<32;i++)
            {
                 lcd_wcmd(0x80+i);
                 lcd_wcmd(0x80);
                 for(j=0;j<16;j++)
                    {
                         lcd_wdat(*address);
                         address++;
                        }
                }
                for(i=0;i<32;i++)
                   {
                    lcd_wcmd(0x80+i);
            lcd_wcmd(0x88);
                        for(j=0;j<16;j++)
                           {
                            lcd_wdat(*address);
                                address++;
                           }
                   }
   }         

void main()
    {
         init_picture();
         show_pic(dis[64][16]);
         while(1)
         {}
        }

最佳答案

查看完整內(nèi)容

show_pic(dis[64][16]);改為show_pic(dis);
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

5#
ID:162142 發(fā)表于 2017-1-21 10:25 | 只看該作者
zl2168 發(fā)表于 2017-1-17 21:50
為什么一定要用數(shù)組指針?不用就不行或程序臃腫嗎?給你一個不用數(shù)組指針的12864顯示案例參考。
LCD12864 ...

恩我去掉了 不用也可以運行 最近我試著弄垂直滾屏 我的12864帶字庫用不帶字庫的程序燒錄進(jìn)去不顯示 是不是在中間加開啟繪圖命令用GD寫才行? 一直困惑不帶字庫和帶字庫的12864 寫垂直滾動程序有什么不同的地方求賜教 困擾我好幾天了
回復(fù)

使用道具 舉報

地板
ID:111634 發(fā)表于 2017-1-17 21:50 | 只看該作者
本帖最后由 zl2168 于 2017-1-17 21:54 編輯

為什么一定要用數(shù)組指針?不用就不行或程序臃腫嗎?給你一個不用數(shù)組指針的12864顯示案例參考。
LCD12864顯示屏顯示漢字



Proteus仿真一下,確認(rèn)有效。
實驗25 LCD12864顯示屏顯示.rar (60.48 KB, 下載次數(shù): 20)
以上摘自張志良編著《80C51單片機實用教程——基于Keil CProteus》高等教育出版社ISBN 978-7-04-044532-9



回復(fù)

使用道具 舉報

板凳
ID:116683 發(fā)表于 2017-1-17 14:08 | 只看該作者
uchar *address;這個聲明去掉呢?
回復(fù)

使用道具 舉報

沙發(fā)
ID:162142 發(fā)表于 2017-1-17 13:45 | 只看該作者
g753388438 發(fā)表于 2017-1-17 13:42
show_pic(dis[64][16]);改為show_pic(dis);

void show_pic(uchar *address)
   {
    uchar i,j;
         for(i=0;i<32;i++)
            {
                 lcd_wcmd(0x80+i);
                 lcd_wcmd(0x80);
                 for(j=0;j<16;j++)
                    {
                         lcd_wdat(*address);
                         address++;
                        }
                }
                for(i=0;i<32;i++)
                   {
                    lcd_wcmd(0x80+i);
            lcd_wcmd(0x88);
                        for(j=0;j<16;j++)
                           {
                            lcd_wdat(*address);
                                address++;
                           }
                   }
   }         這個函數(shù)對不對 還有對address的定義 總覺得不對

評分

參與人數(shù) 1黑幣 +5 收起 理由
yhw123456 + 5 贊一個!

查看全部評分

回復(fù)

使用道具 舉報

樓主
ID:61002 發(fā)表于 2017-1-17 13:28 | 只看該作者
show_pic(dis[64][16]);改為show_pic(dis);
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

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