找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

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

普中16個(gè)管腳的12864使用

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:136609 發(fā)表于 2016-8-17 17:04 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
摸索了好幾天,終于把普中16個(gè)管腳的12864使用起來了。
不僅管腳排列與20腳的不一樣,而且命令也不一樣,關(guān)鍵是初始化命令
以下是我結(jié)合普中的例程寫的,請(qǐng)大家參考:
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar code dis1[]=
{
0x40,0x44,0x54,0x54,0x54,0x54,0x54,0x7F,0x54,0x54,0x54,0x54,0x54,0x44,0x40,0x00,//青
0x00,0x00,0x00,0xFF,0x15,0x15,0x15,0x15,0x15,0x55,0x95,0x7F,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0xFC,0x04,0x04,0x16,0x25,0x04,0x24,0x44,0x3C,0x00,0x00,0x00,0x00,//島
0x00,0x00,0x1C,0x11,0x11,0x11,0x1F,0x11,0x11,0x11,0x5D,0x81,0x41,0x3F,0x00,0x00,

0x20,0x20,0x20,0x20,0x20,0x20,0x20,0xFF,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,//大
0x80,0x80,0x40,0x20,0x10,0x0C,0x03,0x00,0x03,0x0C,0x10,0x20,0x40,0x80,0x80,0x00,

0x40,0x30,0x11,0x96,0x90,0x90,0x91,0x96,0x90,0x90,0x98,0x14,0x13,0x50,0x30,0x00,//學(xué)
0x04,0x04,0x04,0x04,0x04,0x44,0x84,0x7E,0x06,0x05,0x04,0x04,0x04,0x04,0x04,0x00,

0x00,0x00,0xF8,0x88,0x88,0x88,0x88,0xFF,0x88,0x88,0x88,0x88,0xF8,0x00,0x00,0x00,//電
0x00,0x00,0x1F,0x08,0x08,0x08,0x08,0x7F,0x88,0x88,0x88,0x88,0x9F,0x80,0xF0,0x00,

0x80,0x82,0x82,0x82,0x82,0x82,0x82,0xE2,0xA2,0x92,0x8A,0x86,0x82,0x80,0x80,0x00,//子
0x00,0x00,0x00,0x00,0x00,0x40,0x80,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x40,0x30,0x11,0x96,0x90,0x90,0x91,0x96,0x90,0x90,0x98,0x14,0x13,0x50,0x30,0x00,//學(xué)
0x04,0x04,0x04,0x04,0x04,0x44,0x84,0x7E,0x06,0x05,0x04,0x04,0x04,0x04,0x04,0x00,

0x00,0x00,0x22,0x32,0x2A,0xA6,0xA2,0x62,0x21,0x11,0x09,0x81,0x01,0x00,0x00,0x00,//系
0x00,0x42,0x22,0x13,0x0B,0x42,0x82,0x7E,0x02,0x02,0x0A,0x12,0x23,0x46,0x00,0x00,
};


sbit wr=P2^7;     //wr=1 從LCD讀出
sbit rs=P2^6;     //rs=0 命令,rs=1數(shù)據(jù)
sbit rd=P2^5;     //rd=1 往LCD寫入
sbit cs=P3^2;    //片選信號(hào),低電平有效
sbit reset=P3^3;
uchar a;

void delay(uchar z)
{
    uchar x,y;
    for(x=z;x>0;x--)
        for(y=110;y>0;y--);
}

void write_com(uchar com)
{
    cs=0;
    rd=1;   //讀禁用
    rs=0;    //選用命令
    wr=0;
    delay(1);
    P0=com;
    delay(1);
    wr=1;     //寫入命令
}

void write_date(uchar date)
{
    cs=0;
    rd=1;
    rs=1;  //選用數(shù)據(jù)
    wr=0;
    delay(1);
    P0=date;
    delay(1);
    wr=1;
}

void init()
{
    reset=0;
    delay(1);
    cs=0;
    reset=1;
    delay(10);
    write_com(0xe2);    //軟件初始化
    delay(10);
    write_com(0xa0);    //表格第8個(gè)命令,設(shè)置顯示方向(左右),A1為反向顯示,A0為正常顯示
    delay(10);
    write_com(0xc8);    //表格第15個(gè)命令,設(shè)置顯示方向(上下),C8為反向顯示,C0為正常顯示
    delay(10);
    write_com(0xa6);    //表格第9個(gè)命令,A6黑字白底,A7白字黑底
    delay(10);
    write_com(0xa4);    //表格第10個(gè)命令,A4正常顯示,A5像素全開
    delay(10);
    write_com(0xa2);    //第11個(gè)命令,a3偏壓為1/7,a2偏壓為1/9
    delay(10);
    write_com(0xf8);
    write_com(0xf1);    //第19個(gè)命令,雙字節(jié)命令,0xf800增壓為4x,f801為5x,效果差不多
    delay(10);
    write_com(0x81);
    write_com(0x23);    //第18個(gè)命令,設(shè)置背光對(duì)比度,范圍0x00到0x3f
    delay(10);
    write_com(0x25);    //第17個(gè)命令,選擇調(diào)節(jié)電阻率
    delay(10);
    write_com(0x2f);    //第16個(gè)命令,電源設(shè)置
    delay(10);
    write_com(0x40);    //第2個(gè)命令,設(shè)置顯示開始位置
    delay(10);
    write_com(0xaf);    //第一個(gè)命令,開啟顯示
}

void clearscreen()
{
    uchar i,j;
    for(i=0;i<8;i++)
    {
        write_com(0xb0+i);    //設(shè)置page,共8個(gè)page,每個(gè)page 8行
        write_com(0x10);    //設(shè)置x軸
        write_com(0x04);
        for(j=0;j<128;j++)
            write_date(0x00);    //向每個(gè)點(diǎn)中填入數(shù)據(jù)
    }
}

void writechar(uchar x, uchar y,uchar num)
{
    uchar j,x1,x2,y1,wordnum;
    for(wordnum=0;wordnum<=num;wordnum++)
    {
        y1=y+0xb0;
        write_com(y1);
        x1 = (x >> 4) & 0x0F;
        x2 = x & 0x0F;
        write_com(0x10+x1);
        write_com(0x40+x2);
        j=0;
        for(j=0;j<32;j++)
        {
            if(j==16)
            {
                write_com(y1+1);
                write_com(0x10+x1);
                write_com(0x40+x2);
            }
            write_date(dis1[j+32*wordnum]);
        }
        x=x+16;
    }
}

void main()
{
    init();
    delay(10);
        clearscreen();
    while(1)
    {
   
        writechar(0,2,7);
        delay(100);
    }
   
}


評(píng)分

參與人數(shù) 1黑幣 +10 收起 理由
YJGG + 10 贊一個(gè)!

查看全部評(píng)分

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

使用道具 舉報(bào)

沙發(fā)
ID:135253 發(fā)表于 2016-9-5 22:38 | 只看該作者
很好,下載下來,仿真一下看看
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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