sxwangjin1 发表于 2014-10-7 18:11:12

各类12864的驱动

本帖最后由 sxwangjin1 于 2014-10-10 19:13 编辑

    7月份换了一份LCD代理的工作,小公司但老板待人不错,公司虽小效率很高。以前的做过3年瀚彩大陆的FAE,做过一年群创PE,不能说见过多大场面,但是也经历过不少事情,但这个公司确实让我佩服。虽然之前有过多年的LCD工作经验,但是到了这个公司和我完全想象的不一样了,更多的还是做黑白,做点阵,做定制,做段码。凭借着老板带着一对业务愣是拯救了两个濒临倒闭的LCD厂商,一年有近亿元的业务量,确实不简单。有点跑题哈哈。。。介绍下我们公司的配置10个业务2个技术,另一个技术还是主要负责数码管的,LCD我只能一个人硬着头皮扛下来,从9月初选定arduino平台经过近一个月的摸索终于有了一点进展,与大家分享共同进步。
以下程序均参考 弘毅 及论坛其他兄弟的程序,我仅为归纳整理http://www.geek-workshop.com/thread-91-1-1.html
目录:
一、ST7920 12864的驱动
二、KS010812864的驱动
三、NT753412864的驱动

第一、ST7920 12864的驱动,这个芯片弘毅使用的是库文件,做为程序开发库文件好用,但是作为学习研究修改就不那么方便了,我在这里把库文件提出来直接放到程序里供大家学习研究,arduino画器件连线的软件没有,连线图我就不画了大家到程序里找把,我使用的编译软件是1.0.5版本
1>串口

//    case 0:N|=0x80;break;每行首地址
//    case 1:N|=0x90;break;
//    case 2:N|=0x88;break;
//case 3:N|=0x98;break;
//基于ST7920芯片的128*64显示程序 2014/9/23
//待处理bug 位图显示时,最下边3-5行数据如不删除程序卡死不能运行,删除后下部有乱点
//此bug在使用ATMEGA8L时出现,使用328及性能更好芯片为发现乱点及卡死现象。2014/10/7
////////////////////////////////////////////////////////////////////////////////////////
//引脚定义
//////////////////////////////////////////////////
//RS(DI)/latch->8,R/Wdatapin->9,E/clock->3
int latchPin = 8;
int dataPin = 9;
int clockPin = 3;
unsigned char show[]={
0xC4, 0xCF,
0xBE, 0xA9,
0xD6, 0xDB,
0xD0, 0xBE,
0xB5, 0xE7,
0xD7, 0xD3};//nanjingzhouxin
unsigned char show1[]="TEL:025-66085988";
unsigned char logo[]={                                       
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xFF,0xFF,0xF0,0x1F,0xCF,0xFE,0xFF,0x03,0xFF,0xFF,0xC3,0xFF,0xFF,0xFE,0x00,
      0x03,0xFF,0xFF,0xF8,0x1F,0xCF,0xFE,0xFF,0x07,0xFF,0xFF,0xC7,0xFF,0xFF,0xFE,0x00,0x03,0xFF,0xFF,0xFC,0x0F,0xCF,0xFF,0xFE,0x0F,0xFF,0xFF,0xC7,0xFF,0xFF,0xFE,0x00,
      0x03,0xFF,0xFF,0xFE,0x0F,0xEF,0xFF,0xFE,0x1F,0xFF,0xFF,0xC7,0xFF,0xFF,0xFE,0x00,0x03,0xFF,0xFF,0xFF,0x0F,0xEF,0xFF,0xFC,0x3F,0xFF,0xFF,0xC7,0xFF,0xFF,0xFE,0x00,
      0x03,0xFF,0xFF,0xFF,0x8F,0xE7,0xFD,0xF8,0x3F,0xFF,0xFF,0xC7,0xFF,0xFF,0xFE,0x00,0x03,0xFF,0xFF,0xFF,0x87,0xF7,0xF9,0xF8,0x7F,0xFF,0xFF,0xC7,0xFF,0xFF,0xFE,0x00,
      0x00,0x00,0x00,0x7F,0x87,0xF7,0xFB,0xF8,0x7F,0x80,0x00,0x00,0x01,0xFC,0x00,0x00,0x00,0x00,0x00,0x3F,0x87,0xF7,0xF3,0xF0,0x7F,0x00,0x00,0x00,0x01,0xFC,0x00,0x00,
      0x00,0x00,0x00,0x7F,0x87,0xF7,0xF7,0xF0,0x7F,0x00,0x00,0x00,0x01,0xFC,0x00,0x00,0x00,0x00,0x00,0xFF,0x07,0xFF,0xE7,0xF0,0x7F,0x00,0x00,0x00,0x01,0xF8,0x00,0x00,
      0x00,0x00,0x03,0xFE,0x07,0xFF,0xEF,0xF0,0x7F,0x00,0x00,0x00,0x01,0xF8,0x00,0x00,0x00,0x00,0x07,0xFC,0x03,0xFF,0xFF,0xF0,0x7F,0x00,0x00,0x00,0x03,0xF8,0x00,0x00,
      0x00,0x00,0x0F,0xF8,0x03,0xFB,0xDF,0xE0,0x7F,0x00,0x00,0x00,0x03,0xF8,0x00,0x00,0x00,0x00,0x1F,0xF0,0x03,0xF9,0x9F,0xE0,0x7F,0xFF,0xFF,0x80,0x03,0xF8,0x00,0x00,
      0x00,0x00,0x7F,0xE0,0x03,0xFC,0x3F,0xC0,0x7F,0xFF,0xFF,0x80,0x03,0xF8,0x00,0x00,0x00,0x00,0xFF,0xC0,0x01,0xFF,0xFF,0xC0,0x7F,0xFF,0xFF,0x80,0x03,0xF8,0x00,0x00,
      0x00,0x01,0xFF,0x00,0x03,0xFF,0xFF,0xC0,0x7F,0xFF,0xFF,0x80,0x03,0xF8,0x00,0x00,0x00,0x07,0xFE,0x00,0x03,0xFF,0xFF,0xC0,0x7F,0xFF,0xFF,0x80,0x03,0xF8,0x00,0x00,
      0x00,0x0F,0xFC,0x00,0x07,0xFF,0xFF,0xE0,0x7F,0xFF,0xFF,0x80,0x03,0xF8,0x00,0x00,0x00,0x3F,0xF0,0x00,0x07,0xF8,0x3F,0xE0,0x7E,0x00,0x00,0x00,0x07,0xF8,0x00,0x00,
      0x00,0x7F,0xE0,0x00,0x07,0xF8,0x1F,0xE0,0x7E,0x00,0x00,0x00,0x07,0xF0,0x00,0x00,0x01,0xFF,0x80,0x00,0x0F,0xF0,0x0F,0xE0,0x7E,0x00,0x00,0x00,0x07,0xF0,0x00,0x00,
      0x03,0xFF,0x00,0x00,0x0F,0xE0,0x0F,0xF0,0x7E,0x00,0x00,0x00,0x07,0xF0,0x00,0x00,0x03,0xFE,0x00,0x00,0x0F,0xE0,0x0F,0xF0,0x7E,0x00,0x00,0x00,0x07,0xF0,0x00,0x00,
      0x07,0xFC,0x00,0x00,0x1F,0xE0,0x0F,0xF0,0x7E,0x00,0x00,0x00,0x07,0xF0,0x00,0x00,0x07,0xF8,0x00,0x00,0x1F,0xC0,0x07,0xF0,0x7E,0x00,0x00,0x00,0x07,0xF0,0x00,0x00,
      0x07,0xF0,0x00,0x00,0x1F,0xC0,0x07,0xF0,0x7E,0x00,0x00,0x00,0x07,0xF0,0x00,0x00,0x07,0xF0,0x00,0x00,0x1F,0xC0,0x07,0xF8,0x7E,0x00,0x00,0x00,0x07,0xF0,0x00,0x00,
      0x07,0xFF,0xFF,0xFC,0x3F,0x80,0x07,0xF8,0x7F,0xFF,0xFF,0x00,0x0F,0xF0,0x00,0x00,0x07,0xFF,0xFF,0xFC,0x3F,0x80,0x03,0xF8,0x7F,0xFF,0xFF,0x00,0x0F,0xF0,0x00,0x00,
      0x07,0xFF,0xFF,0xFC,0x7F,0x80,0x03,0xF8,0x7F,0xFF,0xFF,0x00,0x0F,0xE0,0x00,0x00,0x03,0xFF,0xFF,0xFC,0x7F,0x00,0x03,0xFC,0x7F,0xFF,0xFF,0x00,0x0F,0xE0,0x00,0x00,
      0x03,0xFF,0xFF,0xFC,0x7F,0x00,0x03,0xFC,0x7F,0xFF,0xFF,0x00,0x0F,0xE0,0x00,0x00,0x01,0xFF,0xFF,0xFC,0xFE,0x00,0x01,0xFE,0x1F,0xFF,0xFF,0x00,0x0F,0xE0,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,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 setup() {
//设置引脚为输出
pinMode(latchPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(dataPin, OUTPUT);
}
////////////////////////////////////////////////////////////////
//写SPI时序,具体参考shiftout 命令使用
/////////////////////////////////////////////////////////
void WriteByte(int dat)
{
    digitalWrite(latchPin, HIGH);
   
    shiftOut(dataPin, clockPin, MSBFIRST, dat);
    digitalWrite(latchPin, LOW);
}
//////////////////////////////////////////////////////////
//写命令
////////////////////////////////////////////////////////
void LcdCommandWrite(int value) {
int H_data,L_data;
   H_data = value;
   H_data &= 0xf0;         //屏蔽低4位的数据
   L_data = value;             //xxxx0000格式
   L_data &= 0x0f;         //屏蔽高4位的数据
   L_data <<= 4;             //xxxx0000格式
   WriteByte(0xf8);          //RS=0,写入的是指令;
   WriteByte(H_data);
   WriteByte(L_data);
}
//////////////////////////////////////////////////////
//写数据
///////////////////////////////////////////////////////////
void LcdDataWrite(int value) {
int H_data,L_data;
   H_data = value;
   H_data &= 0xf0;         //屏蔽低4位的数据
   L_data = value;             //xxxx0000格式
   L_data &= 0x0f;         //屏蔽高4位的数据
   L_data <<= 4;             //xxxx0000格式
   WriteByte(0xfa);          //RS=1,写入的是数据
   WriteByte(H_data);
   WriteByte(L_data);
}
////////////////////////////////////////////////
//主程序
///////////////////////////////////////////////
void loop (void) {
LcdCommandWrite(0x30);//设定为基本指令         
delay(60);   
LcdCommandWrite(0x01);// 清屏
delay(50);
   LcdCommandWrite(0x02);// 清屏
delay(50);
LcdCommandWrite(0x90+1);
delay(10);                     

int i = 0;//显示南京舟芯电子

for (i=0; i <= 11; i++)
{
   LcdDataWrite(show);
}
LcdCommandWrite(0x88);//显示电话

for (i=0; i <= 15; i++)
{
   LcdDataWrite(show1);
}

delay(3000);
   LcdCommandWrite(0x01);// 清屏
delay(50);
   int ygroup,x,y;
      int temp;
      int tmp;
            
      for(ygroup=0;ygroup<64;ygroup++)         //写入液晶上半图象部分
      {                           //写入坐标
         if(ygroup<32)
            {
             x=0x80;
             y=ygroup+0x80;
            }
         else
            {
            x=0x88;
            y=ygroup-32+0x80;   
            }         
         LcdCommandWrite(0x34);      //写入扩充指令命令
         LcdCommandWrite(y);         //写入y轴坐标
         LcdCommandWrite(x);         //写入x轴坐标
         LcdCommandWrite(0x30);      //写入基本指令命令
         tmp=ygroup*16;
         for(i=0;i<16;i++)
               {
                  LcdDataWrite(logo);
         tmp++;
               }
          }
      LcdCommandWrite(0x34);      //写入扩充指令命令

      LcdCommandWrite(0x36);      //显示图象
      
delay(3000);

}


2>并口
//基于ST7920芯片的128*64显示程序 2014/9/23
//待处理bug 位图显示时,最下边3-5行数据如不删除程序卡死不能运行,删除后下部有乱点
int DI = 12;
int RW = 11;
int DB[] = {3, 4, 5, 6, 7, 8, 9, 10};//使用数组来定义总线需要的管脚
int Enable = 2;
unsigned char show[]={
0xC4, 0xCF,
0xBE, 0xA9,
0xD6, 0xDB,
0xD0, 0xBE,
0xB5, 0xE7,
0xD7, 0xD3};//nanjingzhouxin
unsigned char show1[]="TEL:025-66085988";
unsigned char logo[]={                                       
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      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,0xFF,0x80,0x3F,0x9F,0xFD,0xFE,
      0x0F,0xFF,0xFF,0x87,0xFF,0xFF,0xFC,0x00,
      0x07,0xFF,0xFF,0xF8,0x3F,0x9F,0xFD,0xFE,
      0x0F,0xFF,0xFF,0x8F,0xFF,0xFF,0xFC,0x00,
      0x07,0xFF,0xFF,0xF8,0x1F,0x9F,0xFF,0xFC,
      0x1F,0xFF,0xFF,0x8F,0xFF,0xFF,0xFC,0x00,
      0x07,0xFF,0xFF,0xFC,0x1F,0xDF,0xFF,0xFC,
      0x3F,0xFF,0xFF,0x8F,0xFF,0xFF,0xFC,0x00,
      0x07,0xFF,0xFF,0xFE,0x1F,0xDF,0xFF,0xF8,
      0x7F,0xFF,0xFF,0x8F,0xFF,0xFF,0xFC,0x00,
      0x07,0xFF,0xFF,0xFF,0x1F,0xCF,0xFB,0xF0,
      0x7F,0xFF,0xFF,0x8F,0xFF,0xFF,0xFC,0x00,
      0x07,0xFF,0xFF,0xFF,0x1F,0xEF,0xF3,0xF0,
      0x7F,0xFF,0xFF,0x8F,0xFF,0xFF,0xFC,0x00,
      0x00,0x00,0x00,0xFF,0x1F,0xEF,0xF7,0xF0,
      0x7F,0x00,0x00,0x00,0x07,0xF8,0x00,0x00,
      0x00,0x00,0x00,0x7F,0x1F,0xEF,0xE7,0xE0,
      0x7E,0x00,0x00,0x00,0x03,0xF0,0x00,0x00,
      0x00,0x00,0x00,0xFF,0x0F,0xEF,0xEF,0xE0,
      0x7E,0x00,0x00,0x00,0x03,0xF0,0x00,0x00,
      0x00,0x00,0x01,0xFE,0x0F,0xFF,0xCF,0xE0,
      0x7E,0x00,0x00,0x00,0x03,0xF0,0x00,0x00,
      0x00,0x00,0x07,0xFC,0x0F,0xFF,0xDF,0xE0,
      0xFE,0x00,0x00,0x00,0x03,0xF0,0x00,0x00,
      0x00,0x00,0x0F,0xF8,0x07,0xFF,0xFF,0xE0,
      0xFE,0x00,0x00,0x00,0x07,0xF0,0x00,0x00,
      0x00,0x00,0x1F,0xF8,0x07,0xF7,0xBF,0xC0,
      0xFE,0x00,0x00,0x00,0x07,0xF0,0x00,0x00,
      0x00,0x00,0x3F,0xE0,0x07,0xF3,0x3F,0xC0,
      0xFF,0xFF,0xFF,0x00,0x07,0xF0,0x00,0x00,
      0x00,0x00,0x7F,0xC0,0x07,0xF8,0x7F,0x80,
      0xFF,0xFF,0xFF,0x00,0x07,0xF0,0x00,0x00,
      0x00,0x01,0xFF,0x80,0x03,0xFF,0xFF,0x80,
      0xFF,0xFF,0xFF,0x00,0x07,0xF0,0x00,0x00,
      0x00,0x03,0xFE,0x00,0x07,0xFF,0xFF,0x80,
      0xFF,0xFF,0xFF,0x00,0x07,0xF0,0x00,0x00,
      0x00,0x0F,0xFC,0x00,0x07,0xFF,0xFF,0x80,
      0xFF,0xFF,0xFF,0x00,0x07,0xF0,0x00,0x00,
      0x00,0x3F,0xE0,0x00,0x0F,0xFF,0xFF,0xC0,
      0xFF,0xFF,0xFF,0x00,0x07,0xF0,0x00,0x00,
      0x00,0x7F,0xC0,0x00,0x0F,0xF0,0x7F,0xC0,
      0xFC,0x00,0x00,0x00,0x0F,0xF0,0x00,0x00,
      0x00,0xFF,0x80,0x00,0x1F,0xF0,0x3F,0xC0,
      0xFC,0x00,0x00,0x00,0x0F,0xE0,0x00,0x00,
      0x07,0xFE,0x00,0x00,0x1F,0xE0,0x1F,0xE0,
      0xFC,0x00,0x00,0x00,0x0F,0xE0,0x00,0x00,
      0x07,0xFC,0x00,0x00,0x1F,0xC0,0x1F,0xE0,
      0xFC,0x00,0x00,0x00,0x0F,0xE0,0x00,0x00,
      0x07,0xFC,0x00,0x00,0x1F,0xC0,0x1F,0xE0,
      0xFC,0x00,0x00,0x00,0x0F,0xE0,0x00,0x00,
      0x07,0xF8,0x00,0x00,0x3F,0xC0,0x1F,0xE0,
      0xFC,0x00,0x00,0x00,0x0F,0xE0,0x00,0x00,
      0x0F,0xE0,0x00,0x00,0x3F,0x80,0x0F,0xE0,
      0xFC,0x00,0x00,0x00,0x0F,0xE0,0x00,0x00,
      0x0F,0xC0,0x00,0x00,0x3F,0x80,0x0F,0xE0,
      0xFC,0x00,0x00,0x00,0x0F,0xE0,0x00,0x00,
      0x0F,0xC0,0x00,0x00,0x3F,0x80,0x0F,0xE0,
      0xFC,0x00,0x00,0x00,0x0F,0xE0,0x00,0x00,
      0x0F,0xFF,0xFF,0xF8,0x7F,0x00,0x0F,0xE0,
      0xFF,0xFF,0xFE,0x00,0x1F,0xE0,0x00,0x00,
      0x0F,0xFF,0xFF,0xF8,0x7F,0x00,0x07,0xE0,
      0xFF,0xFF,0xFE,0x00,0x1F,0xE0,0x00,0x00,
      0x0F,0xFF,0xFF,0xF8,0xFF,0x00,0x07,0xE0,
      0xFF,0xFF,0xFE,0x00,0x1F,0xC0,0x00,0x00,
      0x07,0xFF,0xFF,0xF8,0xFE,0x00,0x07,0xE0,
      0xFF,0xFF,0xFE,0x00,0x1F,0xC0,0x00,0x00,
      0x07,0xFF,0xFF,0xF8,0xFE,0x00,0x07,0xE0,
      0xFF,0xFF,0xFE,0x00,0x1F,0xC0,0x00,0x00,
      0x03,0xFF,0xFF,0xF9,0xFC,0x00,0x03,0xF0,
      0x1F,0xFF,0xFE,0x00,0x1F,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,




};

void LcdCommandWrite(int value) {
// 定义所有引脚
digitalWrite(DI, 0);
digitalWrite(RW, 0);
int i = 0;
for (i=3; i <= 10; i++) //总线赋值

{
digitalWrite(i,value & 01);//value与0001相与赋予i

value >>= 1;//value右移一位
}
//digitalWrite(Enable,HIGH);
digitalWrite(Enable,1);
delayMicroseconds(1);
digitalWrite(Enable,LOW);
delayMicroseconds(1);
digitalWrite(Enable,HIGH);
delayMicroseconds(1);// 延时1ms
digitalWrite(Enable,LOW);
delayMicroseconds(1);// 延时1ms
}

void LcdDataWrite(int value) {
// 定义所有引脚
int i = 0;
digitalWrite(DI, 1);
digitalWrite(RW, 0);
//digitalWrite(DI, HIGH);
//digitalWrite(RW, LOW);
for (i=DB; i <= DB; i++) {
   digitalWrite(i,value & 01);
   value >>= 1;
}

digitalWrite(Enable,LOW);
delayMicroseconds(1);
digitalWrite(Enable,HIGH);
delayMicroseconds(1);
digitalWrite(Enable,LOW);
delayMicroseconds(1);// 延时1ms
}

void setup (void) {
int i = 0;
for (i=Enable; i <= DI; i++) {
   pinMode(i,OUTPUT);
}
delay(100);
// 短暂的停顿后初始化LCD
// 用于LCD控制需要
LcdCommandWrite(0x30);//设定为基本指令         
delay(60);                     
LcdCommandWrite(0x01);//清屏指令                  
delay(50);                     
LcdCommandWrite(0x0c);//   整体显示                  
delay(20);                     
LcdCommandWrite(0x06);//
delay(20);                     
}


void loop (void) {
LcdCommandWrite(0x30);//设定为基本指令         
delay(60);   
LcdCommandWrite(0x01);// 清屏
delay(50);
   LcdCommandWrite(0x02);// 清屏
delay(50);
LcdCommandWrite(0x90+1);
delay(10);                     

int i = 0;//显示南京舟芯电子

for (i=0; i <= 11; i++)
{
   LcdDataWrite(show);
}
LcdCommandWrite(0x88);//显示电话

for (i=0; i <= 15; i++)
{
   LcdDataWrite(show1);
}

delay(3000);
   LcdCommandWrite(0x01);// 清屏
delay(50);
   int ygroup,x,y;
      int temp;
      int tmp;
            
      for(ygroup=0;ygroup<62;ygroup++)         //写入液晶上半图象部分
      {                           //写入坐标
         if(ygroup<32)
            {
             x=0x80;
             y=ygroup+0x80;
            }
         else
            {
            x=0x88;
            y=ygroup-32+0x80;   
            }         
         LcdCommandWrite(0x34);      //写入扩充指令命令
         LcdCommandWrite(y);         //写入y轴坐标
         LcdCommandWrite(x);         //写入x轴坐标
         LcdCommandWrite(0x30);      //写入基本指令命令
         tmp=ygroup*16;
         for(i=0;i<16;i++)
               {
                  LcdDataWrite(logo);
         tmp++;
               }
          }
      LcdCommandWrite(0x34);      //写入扩充指令命令
      LcdCommandWrite(0x36);      //显示图象
      
delay(3000);

}



二、KS0108芯片,这个芯片和ST7920的区别在与写RAM的方式的不同,7920是写上下片,KS0108是写左右片。KS0108无字库,只支持并口驱动。另外我这块板子必须要外接可变电阻才能点亮,这个说明书里会注明:


/////////////////////////////////////////////////////////////////////////////////
//基于arduino 平台的KS0180芯片128*64并口显示LCD测试程序by 王瑾2014/9/27
//程序较大使用小RAM芯片可能无法运行,如无法运行可将调用logo部分删除,会大幅减小RAM使用
//因为uno 坏了只在mega 2560测试成功
//和ST7920芯片主要是RAM地址的分布不同注意分析RAM地址写程序
//程序没有采用库文件,显示程序也没有另写子程序,主要是为了个人修改方便
//////////////////////////////////////////////////////////////////////////////
//
int CS1=A0;//左半屏,高电平有效
int CS2=A1;//右半屏,高电平有效
int RS = 12;
int RW = 11;
int DB[] = {3, 4, 5, 6, 7, 8, 9, 10};//使用数组来定义总线需要的管脚DB 0-7
int Enable = 2;

/////////////////////////////////////////////////////////////////////////
// Bitmap点阵数据表                                                    //
// 内容为:南京舟芯电子,TEL025-66085988   //
// 图片尺寸: 128 * 64                                                //
/////////////////////////////////////////////////////////////////////////
unsigned char logo1[] =      
{
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x80,0x80,0x00,0x00,0x00,0x00,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,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,0x02,0xF2,0xF2,0x12,0xB2,0xF2,0xD2,
      0x9F,0x9F,0xD2,0xF2,0xB2,0x12,0xF2,0xF2,0x02,0x00,0x02,0x02,0x02,0xF2,0xF2,0x12,
      0x12,0x13,0x13,0x12,0x12,0xF2,0xF2,0x02,0x02,0x02,0x00,0x40,0x40,0x40,0xFE,0xFE,
      0x43,0x4B,0x7A,0x72,0x42,0x42,0xFE,0xFE,0x40,0x40,0x40,0x00,0x02,0x02,0x02,0x02,
      0x0F,0x8F,0x92,0x32,0x62,0x42,0x0F,0x0F,0x82,0x82,0x02,0x02,0x00,0x00,0x00,0xFC,
      0xFC,0x44,0x44,0x44,0xFF,0xFF,0x44,0x44,0x44,0xFC,0xFC,0x00,0x00,0x00,0x40,0x41,
      0x41,0x41,0x41,0x41,0x41,0xF1,0xF1,0x59,0x4D,0x47,0x43,0x41,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,0x7F,0x7F,0x04,0x04,0x04,0x04,
      0x3F,0x3F,0x04,0x04,0x24,0x64,0x7F,0x3F,0x00,0x00,0x00,0x20,0x30,0x1D,0x0D,0x21,
      0x61,0x7F,0x3F,0x01,0x01,0x05,0x0D,0x38,0x30,0x00,0x00,0x40,0x60,0x38,0x1F,0x07,
      0x00,0x01,0x07,0x06,0x20,0x60,0x7F,0x3F,0x00,0x00,0x00,0x00,0x08,0x0C,0x07,0x03,
      0x00,0x1F,0x3F,0x20,0x20,0x20,0x20,0x38,0x38,0x01,0x07,0x06,0x00,0x00,0x00,0x0F,
      0x0F,0x04,0x04,0x04,0x3F,0x7F,0x44,0x44,0x44,0x4F,0x4F,0x78,0x78,0x00,0x00,0x00,
      0x00,0x00,0x00,0x20,0x60,0x7F,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x60,0x60,0xE0,0xE0,0x60,0x60,0x00,0x20,0xE0,0xE0,0x20,0x60,0x60,0x00,0x20,0xE0,
      0xE0,0x20,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0xE0,0xF0,0x10,0xF0,0xE0,0x00,0x00,0x60,0x70,0x10,0xF0,0xE0,0x00,0x00,
      0xF0,0xF0,0x90,0x90,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xF0,
      0x90,0xB0,0x20,0x00,0x00,0xE0,0xF0,0x90,0xB0,0x20,0x00,0x00,0xE0,0xF0,0x10,0xF0,
      0xE0,0x00,0x00,0x60,0xF0,0x90,0xF0,0x60,0x00,0x00,0xF0,0xF0,0x90,0x90,0x10,0x00,
      0x00,0xE0,0xF0,0x10,0xF0,0xE0,0x00,0x00,0x60,0xF0,0x90,0xF0,0x60,0x00,0x00,0x60,
      0xF0,0x90,0xF0,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x08,0x0F,0x0F,0x08,0x00,0x00,0x08,0x0F,0x0F,0x09,0x0D,0x0C,0x00,0x08,0x0F,
      0x0F,0x08,0x0C,0x0C,0x00,0x00,0x0D,0x0D,0x0D,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x07,0x0F,0x08,0x0F,0x07,0x00,0x00,0x0C,0x0E,0x0B,0x09,0x08,0x00,0x00,
      0x04,0x0C,0x08,0x0F,0x07,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x07,0x0F,
      0x08,0x0F,0x07,0x00,0x00,0x07,0x0F,0x08,0x0F,0x07,0x00,0x00,0x07,0x0F,0x08,0x0F,
      0x07,0x00,0x00,0x07,0x0F,0x08,0x0F,0x07,0x00,0x00,0x04,0x0C,0x08,0x0F,0x07,0x00,
      0x00,0x04,0x0D,0x09,0x0F,0x07,0x00,0x00,0x07,0x0F,0x08,0x0F,0x07,0x00,0x00,0x07,
      0x0F,0x08,0x0F,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,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 LcdCommandWrite(int value) {
digitalWrite(RS, 0);
digitalWrite(RW, 0);
int i = 0;
for (i=3; i <= 10; i++) //总线赋值
{
digitalWrite(i,value & 01);//value与0001相与赋予i
value >>= 1;//value右移一位
}
digitalWrite(Enable,1);
delayMicroseconds(1);
digitalWrite(Enable,LOW);
delayMicroseconds(1);
}
//////////////////////////////////////////////////////
//写数据子程序
/////////////////////////////////////////////////////
void LcdDataWrite(int value) {
// 定义所有引脚
int i = 0;
digitalWrite(RS, 1);
digitalWrite(RW, 0);
//digitalWrite(DI, HIGH);
//digitalWrite(RW, LOW);
for (i=DB; i <= DB; i++) {
   digitalWrite(i,value & 01);
   value >>= 1;
}
digitalWrite(Enable,HIGH);
delayMicroseconds(1);
digitalWrite(Enable,LOW);
delayMicroseconds(1);// 延时百万分之一秒
}
///////////////////////////////////////////////////
//输出引脚声明
//////////////////////////////////////////////////
void setup (void) {
int i = 0;
for (i=Enable; i <= 12; i++) {
   pinMode(i,OUTPUT);
}   
   pinMode(A0,OUTPUT);
   pinMode(A1,OUTPUT);
}
////////////////////////////////////////////
//循环主程序
/////////////////////////////////////////////////
void loop (void) {
///////////////////////////////////////////////////////////////////////////////////////////
//初始化,因为KS0108芯片无初始化命令需要对整个屏幕赋值0x00,不然的话会有杂点
//没有查到KS0108芯片的始化命令,位图调用一直有杂点,采用REST复位也不能解决,所以采用此方法
//////////////////////////////////////////////////////////////////////////////////////////
digitalWrite(CS1,1);
digitalWrite(CS2,1);
LcdCommandWrite(0x3e);//显示关   
   int i = 0;
   int yg,x,y;
      int temp;
      int tmp;
      for(yg=0;yg<8;yg++)
       {
         x=yg+0xb8;                  //0xb8为首页地址
         y=0x40;                     //0x40为首列地址注意分析规格书RAM地址分布图
         LcdCommandWrite(x);         //写入y轴坐标
         LcdCommandWrite(y);         //写入x轴坐标
         tmp=yg*64;
         for(i=0;i<64;i++)
               {
                  LcdDataWrite(0x00);
         tmp++;
               }      
       }      
LcdCommandWrite(0x3f);      //显示图象   
delay(1);
//////////////////////////////////////////////////////////
//显示ZXET logo
///////////////////////////////////////////////////////////
   digitalWrite(CS1,1);//先显示左半屏
   digitalWrite(CS2,0);
      for(yg=0;yg<8;yg++)
       {
         x=yg+0xb8;
         y=0x40;
         LcdCommandWrite(x);         //写入y轴坐标
         LcdCommandWrite(y);         //写入x轴坐标
         tmp=2*yg*64;
         for(i=0;i<64;i++)
               {
                  LcdDataWrite(logo);
         tmp++;   
               }         
       }
LcdCommandWrite(0x3f);//此处无需延迟直接接右半屏显示程序   
////////////////////////
       digitalWrite(CS1,0); //显示右半屏
       digitalWrite(CS2,1);
      for(yg=0;yg<8;yg++)
       {
         x=yg+0xb8;
         y=0x40;
         LcdCommandWrite(x);         //写入y轴坐标
         LcdCommandWrite(y);         //写入x轴坐标
         tmp=(2*yg+1)*64;
         for(i=0;i<64;i++)
               {
                  LcdDataWrite(logo);
         tmp++;   
               }         
       }
LcdCommandWrite(0x3f);      
delay(3000);
///////////////////////////////////////////////////////////////
//显示 文字,依然采用位图数据调用,KS0108无字库只能采用这种办法
///////////////////////////////////////////////////////////////
   digitalWrite(CS1,1);
   digitalWrite(CS2,0);
      for(yg=0;yg<8;yg++)
       {
         x=yg+0xb8;
         y=0x40;
         LcdCommandWrite(x);         //写入y轴坐标
         LcdCommandWrite(y);         //写入x轴坐标
         tmp=2*yg*64;
         for(i=0;i<64;i++)
               {
                  LcdDataWrite(logo1);
         tmp++;   
               }         
       }
LcdCommandWrite(0x3f);   
//////////////////////////////////////
       digitalWrite(CS1,0);
       digitalWrite(CS2,1);
      for(yg=0;yg<8;yg++)
       {
         x=yg+0xb8;
         y=0x40;
         LcdCommandWrite(x);         //写入y轴坐标
         LcdCommandWrite(y);         //写入x轴坐标
         tmp=(2*yg+1)*64;
         for(i=0;i<64;i++)
               {
                  LcdDataWrite(logo1);
         tmp++;   
               }         
       }
LcdCommandWrite(0x3f);      
delay(3000);
///////////////////////////////////////////////////////
//测试画面 :全黑
////////////////////////////////////////////////////////
       digitalWrite(CS1,1);
       digitalWrite(CS2,1);
      for(yg=0;yg<8;yg++)
       {
         x=yg+0xb8;
         y=0x40;
         LcdCommandWrite(x);         //写入y轴坐标
         LcdCommandWrite(y);         //写入x轴坐标
         for(i=0;i<64;i++)
               {
                  LcdDataWrite(0xFF);
               }         
       }
LcdCommandWrite(0x3f);   
delay(3000);
///////////////////////////////////////////////////////
//测试画面 :全白
////////////////////////////////////////////////////////
      digitalWrite(CS1,1);
       digitalWrite(CS2,1);
      for(yg=0;yg<8;yg++)
       {
         x=yg+0xb8;
         y=0x40;
         LcdCommandWrite(x);         //写入y轴坐标
         LcdCommandWrite(y);         //写入x轴坐标
         for(i=0;i<64;i++)
               {
                  LcdDataWrite(0x00);
               }         
       }
LcdCommandWrite(0x3f);   
delay(3000);
///////////////////////////////////////////////////////
//测试画面 :数条纹
////////////////////////////////////////////////////////
       digitalWrite(CS1,1);
       digitalWrite(CS2,1);
      for(yg=0;yg<8;yg++)
       {   
         x=yg+0xb8;
         for(i=0;i<32;i++)
         {
         y=0x40+2*i;
         LcdCommandWrite(x);         //写入y轴坐标
         LcdCommandWrite(y);         //写入x轴坐标
         LcdDataWrite(0xFF);

             }
       }
LcdCommandWrite(0x3f);   

delay(3000);

}


三、NT7534这块芯片是COG芯片即chip on glass 芯片是bonding在玻璃上的,前两块是COB芯片是bongding在PCB板上的,这块芯片功能更多,可设置的更多,可以通过命令设置偏压,VLCD电压,对比度,等等具体参考附件里的规格书资料,这里还有一点因为我要做一个使用ATMEGA8L的测试板,但是程序基本超过2.2K8L就运行不起来了,不知道是我程序的问题还是芯片的问题还是arduino的问题,我只能精简程序,位图上下0x00的部分后删除,int 都改为unsigned char 总算是可以运行了
我这里使用的是并口驱动,这块芯片也是可以串口的,和ST7920的3线SPI不同它是 4线SPI程序,程序后续后放出
////////////////////////////////////////////////////////
//基于arduino平台的NT7534128*64液晶并口驱动程序by 王瑾2014/10/4
// 从新设定变量,精简bitmap 使其在uno上运行 2014/10/5
////////////////////////////////////////////////////////
/////
////引脚定义
unsigned char a0 = 3;
unsigned char RW = 2;//对应WR
unsigned char RES=4;
unsigned char CS1=5;
unsigned char DB[] = {6, 7, 8, 9, 10,11,12,13};//使用数组来定义总线需要的管脚
unsigned char E= A0;// 对应RD
/////////////////////////////////////////////////////////////////////////
// Bitmap点阵数据表                                                    //
// 内容为:南京舟芯电子,TEL025-66085988   //
// 图片尺寸: 128 * 64                                                //
/////////////////////////////////////////////////////////////////////////
unsigned char logo1[] =      
{
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0xF2,0xF2,0x12,0xB2,0xF2,0xD2,
      0x9F,0x9F,0xD2,0xF2,0xB2,0x12,0xF2,0xF2,0x02,0x00,0x02,0x02,0x02,0xF2,0xF2,0x12,
      0x12,0x13,0x13,0x12,0x12,0xF2,0xF2,0x02,0x02,0x02,0x00,0x40,0x40,0x40,0xFE,0xFE,
      0x43,0x4B,0x7A,0x72,0x42,0x42,0xFE,0xFE,0x40,0x40,0x40,0x00,0x02,0x02,0x02,0x02,
      0x0F,0x8F,0x92,0x32,0x62,0x42,0x0F,0x0F,0x82,0x82,0x02,0x02,0x00,0x00,0x00,0xFC,
      0xFC,0x44,0x44,0x44,0xFF,0xFF,0x44,0x44,0x44,0xFC,0xFC,0x00,0x00,0x00,0x40,0x41,
      0x41,0x41,0x41,0x41,0x41,0xF1,0xF1,0x59,0x4D,0x47,0x43,0x41,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,0x7F,0x7F,0x04,0x04,0x04,0x04,
      0x3F,0x3F,0x04,0x04,0x24,0x64,0x7F,0x3F,0x00,0x00,0x00,0x20,0x30,0x1D,0x0D,0x21,
      0x61,0x7F,0x3F,0x01,0x01,0x05,0x0D,0x38,0x30,0x00,0x00,0x40,0x60,0x38,0x1F,0x07,
      0x00,0x01,0x07,0x06,0x20,0x60,0x7F,0x3F,0x00,0x00,0x00,0x00,0x08,0x0C,0x07,0x03,
      0x00,0x1F,0x3F,0x20,0x20,0x20,0x20,0x38,0x38,0x01,0x07,0x06,0x00,0x00,0x00,0x0F,
      0x0F,0x04,0x04,0x04,0x3F,0x7F,0x44,0x44,0x44,0x4F,0x4F,0x78,0x78,0x00,0x00,0x00,
      0x00,0x00,0x00,0x20,0x60,0x7F,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x60,0x60,0xE0,0xE0,0x60,0x60,0x00,0x20,0xE0,0xE0,0x20,0x60,0x60,0x00,0x20,0xE0,
      0xE0,0x20,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0xE0,0xF0,0x10,0xF0,0xE0,0x00,0x00,0x60,0x70,0x10,0xF0,0xE0,0x00,0x00,
      0xF0,0xF0,0x90,0x90,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xF0,
      0x90,0xB0,0x20,0x00,0x00,0xE0,0xF0,0x90,0xB0,0x20,0x00,0x00,0xE0,0xF0,0x10,0xF0,
      0xE0,0x00,0x00,0x60,0xF0,0x90,0xF0,0x60,0x00,0x00,0xF0,0xF0,0x90,0x90,0x10,0x00,
      0x00,0xE0,0xF0,0x10,0xF0,0xE0,0x00,0x00,0x60,0xF0,0x90,0xF0,0x60,0x00,0x00,0x60,
      0xF0,0x90,0xF0,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x08,0x0F,0x0F,0x08,0x00,0x00,0x08,0x0F,0x0F,0x09,0x0D,0x0C,0x00,0x08,0x0F,
      0x0F,0x08,0x0C,0x0C,0x00,0x00,0x0D,0x0D,0x0D,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x07,0x0F,0x08,0x0F,0x07,0x00,0x00,0x0C,0x0E,0x0B,0x09,0x08,0x00,0x00,
      0x04,0x0C,0x08,0x0F,0x07,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x07,0x0F,
      0x08,0x0F,0x07,0x00,0x00,0x07,0x0F,0x08,0x0F,0x07,0x00,0x00,0x07,0x0F,0x08,0x0F,
      0x07,0x00,0x00,0x07,0x0F,0x08,0x0F,0x07,0x00,0x00,0x04,0x0C,0x08,0x0F,0x07,0x00,
      0x00,0x04,0x0D,0x09,0x0F,0x07,0x00,0x00,0x07,0x0F,0x08,0x0F,0x07,0x00,0x00,0x07,
      0x0F,0x08,0x0F,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,   
};

//////////////////////////////////////////////////////////////
//写命令子程序
///////////////////////////////////////////////////////////
void WriteCommand(unsigned char value) {
digitalWrite(a0, 0);
digitalWrite(RW, 0);
digitalWrite(CS1, 0);
digitalWrite(E, 1);
unsigned char i;
for (i=6; i <= 13; i++) //总线赋值
{
digitalWrite(i,value & 01);//value与0001相与赋予i

value >>= 1;//value右移一位
}
digitalWrite(CS1,1);
digitalWrite(RW, 1);
digitalWrite(E, 0);
}
////////////////////////////////////////////////////////////
//写数据子程序
//////////////////////////////////////////////////////////
void WriteData(unsigned char value) {
digitalWrite(a0, 1);
digitalWrite(RW, 0);
digitalWrite(CS1, 0);
digitalWrite(E, 1);
unsigned char i;
for (i=6; i <= 13; i++) //总线赋值

{
digitalWrite(i,value & 01);//value与0001相与赋予i

value >>= 1;//value右移一位
}
digitalWrite(CS1,1);
digitalWrite(RW, 1);
digitalWrite(E, 0);
}
//////////////////////////////////////////////////////
//清屏子程序
/////////////////////////////////////////////////////////
void cl()         //清屏,其实就是把所有的地址全部填成0
{         
unsigned char x,y;
for(y=0;y<8;y++)
{   
    WriteCommand(0xb0+y);
    WriteCommand(0x10);               
    WriteCommand(0x00);
    for(x=0;x<128;x++)WriteData(0);
}
}
///////////////////////////////////////////////////////
//全显示子程序
//////////////////////////////////////////////////////
void qx()         //把所有的地址全部填成1
{         
unsigned char x,y;
for(y=0;y<8;y++)
{   
    WriteCommand(0xb0+y);
    WriteCommand(0x10);               
    WriteCommand(0x00);
    for(x=0;x<128;x++)WriteData(0xff);
}
}
/////////////////////////////////////////////////
//初始化设定
////////////////////////////////////////////
void setup (void) {
unsigned char i;
for (i=2; i <= 13; i++) {
   pinMode(i,OUTPUT);
}
pinMode(22,OUTPUT);
delay(100);

digitalWrite(RES,HIGH);
delay(1000);   
WriteCommand(0x24);//对比度
WriteCommand(0xa2);//BR=1/9
WriteCommand(0xa0);//set seg direction
WriteCommand(0xc8);//set com direction
WriteCommand(0x2f);//set power control
WriteCommand(0x40);//set scroll line
WriteCommand(0x81);//SET ELECTRONIC VOLUME
WriteCommand(0x20);//set pm: 通过改变这里的数值来改变电压
//WriteCommand(0xa6);//set inverse display         a6 off, a7 on
//WriteCommand(0xa4);//set all pixel on
WriteCommand(0xaf);//开显示   

}
////////////////////////////////////////////////////
//主循环程序
/////////////////////////////////////////////////////
void loop (void) {
cl();
unsigned char x,y;
for(y=0;y<4;y++)
{   
    WriteCommand(0xb2+y);
    WriteCommand(0x10);               
    WriteCommand(0x00);
    int tmp=128*y;
    for(x=0;x<128;x++)
   {
   WriteData(logo1) ;
   tmp++ ;
   }
}
delay(2000);
qx() ;//set all pixel on
delay(2000);
cl();
delay(2000);

}











kaizhiyu 发表于 2014-10-7 21:15:19

12864最好的防范就是串行节省资源

xixi2006 发表于 2014-10-7 22:24:46

不错,帮顶。

sxwangjin1 发表于 2014-10-8 00:13:22

kaizhiyu 发表于 2014-10-7 21:15 static/image/common/back.gif
12864最好的防范就是串行节省资源

但是在我接触到的客户绝大多数都使用的是并口,实际的应用中更看重的是稳定

ranqingfa 发表于 2014-10-8 12:01:53

很漂亮,专业玩屏的这是

轻舞飞扬8917 发表于 2014-10-8 23:29:15

附件的压缩文件没法下载啊

太行摄狼 发表于 2015-1-11 22:48:18

手头有一个WSM-6833A的大屏,是串口的,不知道如何驱动,楼主能帮忙吗

suoma 发表于 2015-1-12 21:18:03

谢谢分享学习一下

scdyzjcq 发表于 2015-1-13 18:31:12

我有一个信利TR-804 94V-0 MPG967-c1-2的显示屏,没找到资料,楼主能帮忙驱动吗?驱动芯片是RA8835P3N。

scdyzjcq 发表于 2015-1-13 18:32:15


老胖熊 发表于 2015-1-20 18:29:42

附件都不能下载了.                  

colinbrack 发表于 2015-1-29 13:45:51

请问有没有st7565p的库文件呢?谢谢

dedecn 发表于 2020-4-28 10:55:54

感谢楼主的分享,通过楼主的程序终于把手头的NT7538驱动起来了
页: [1]
查看完整版本: 各类12864的驱动