2022 07月05日
作者: 显示行家
  • 浏览: 479
  • 收藏:0
  • 点赞:1
液晶显示(六)-----128x64图形点阵驱动IC-KS0107&KS0108应用

    KS0107是三星公司前期推出的64路COM驱动IC,配合KS0108(64路SEG驱动IC)可以实现128x32/128x64/192x128图形点阵显示。目前市面已有AIP31107/AIP31108/UCI0107/UCI0108可替代使用。

一、基本特性

    KS0107支持64路行(COM)输出,最大可扩展到128路,须与KS0108配合使用;

    KS0108支持64路列(SEG)输出,最大可级联方式扩展到512列,须与KS0107配合使用;

    IC工作电压5.0V;(替代型号可适用2.7-5.0V)

    VLCD电压可达17.0V,需要外部升压;

    8位并口通讯(8080/6800);(KS0108与MCU接口)

    指令简单;(7条指令即可完成显示设置,仅对KS0108设置)

    封装类型:QFP100  COB(裸片)

二、KS0107/KS0108应用方式

    2.1 128x32点阵:1xKS0107+2xKS0108,1/32duty,VLCD=7.0V;

    2.2 128x64点阵:1xKS0107+2xKS0108,1/64duty,VLCD=9.0V;

    2.3 128x128点阵:2xKS0107+4xKS0108,1/128duty,VLCD>=13.0V;

    2.4 128x480点阵:2xKS0107+16xKS0108,1/128duty ,VLCD>=13.0V;

    这里要注意,KS0107必须跟KS0108配对使用,也就是说,1颗KS0107最大能搭配8个KS0108(512列);使用到2个KS0108时,必须分成2组配对使用,LCD采用分屏方式设计COM和SEG走线。应用最多的是128x32和128x64点阵,这2种应用成熟,成本低廉。后面2种现在已经用其它方案替代了,以后会介绍。

三、KS0108指令表

    KS0108的指令很少(共7条指令),应用非常方便。

指令表.png

四、KS0108数据传送格式

    KS0108支持8位并口通讯,按照指令表MCU直接发送指令或显示数据即可。

五、KS0108显存对应关系(见图)

显存对应关系.png

    KS0108内置64x64bit显存区,刚好对应显示屏的4096个显示像素点;KS0108显存的行地址是按页存储的,分8页,每页8bit,所以使用KS0108在做图形取模时要注意取模方向从上向下,高位在前。

六、应用实例

    G12864这款模组较多应用于3D打印机、点钞机、保险箱(柜)及一些仪表设备。

七、原理图参考(以128x64应用)

    因图面较大,请下载压缩包(AD10及以上版本)。

八、实例程序

/*********************************************************************/
/*   TEST PROGRAMME KS0108&KS0107 OR EQUIVALENT FOR G12864 */
/*********************************************************************/
#include
#define  Pdata  P1
#define  TT   1
#define  ET   1

/*********************************************************************/
 //   INTERFACE DEFINE  6800
/*********************************************************************/
sbit    RS     =  P2^7;    /* RS=1 display RAM data;  RS=0 instruction data */
sbit    RW   =  P2^6;   /* RW=1; READ;  RW=0, WRITE  */
sbit    E       =  P2^5;
sbit    _RST =  P2^2;   /*RST=0,device been initialized;  -_RST=1;NORMAL*/
sbit    _CS1 =  P2^4;   /*CS1低有效*/
sbit    _CS2 =  P2^3;   /*CS2低有效*/
unsigned char code ba[8]={0x00,0x00,0x00,0x36,0x49,0x49,0x49,0x36};    //定义8字模
unsigned char code bmp[1024];   
 /****************delay****************************/
void delay(int i)
{  while(i--);}

void delay1s(void)
{  
   int i,j;
   for(i=0;i<200;i++)
   for(j=0;j<200;j++);
}
/****************busy check***********************/
unsigned char readdata(bit rs)
   {  
      unsigned char readdat;
      RS   =   rs;
      RW =   1;
      E     =   0;                   //使能信号,6800用
      Pdata  =   0xff;
      delay(TT);
      E  =   1;
     delay(TT);
     readdat=   Pdata;
     E  =   0;
     return(readdat);
   }

void checkbusy()                       //判忙,非必须
   {  
      unsigned char readdat;
      do 
      {      
         readdat=readdata(0);     //仅当第4,7位为0时才可操作 
         readdat=readdat&0x90;
   }
        while(!(readdat==0x00));   
 }

void writedata(bit rs,unsigned char data1)         //写指令/数据,RS=0指令 RS=1 数据
   { 
      RS   =  rs;
      RW =  0;
      E =  0; 
     Pdata =  data1;
     delay(TT);
     E   =   1; 
     delay(TT);
     E   =   0;
}
/**************write instruction ic1*****************/
void writelcm(bit rs,unsigned char data1,unsigned char nu)        //nu表示选择哪个KS0108
  {
     switch(nu)
{
    case 1: _CS1 = (ET); break;
    case 2: _CS2 = (ET); break;
    default:                      return;
    }
    checkbusy();
    writedata(rs,data1);

switch(nu)
{
    case 1: _CS1  =  !(ET); break;
    case 2: _CS2  =  !(ET); break;
    default:                      return;
}     
  }
/****************initiallization*******/
init()
 { 
      _RST =  0;
     delay(100);
     _RST =  1;
     _CS1 =  !(ET);                  /*CS1=0,选择KS0108
     _CS2 =  !(ET);                  /*CS2=0,   选择KS0108

     writelcm(0,0x40,1);          /* set IC display address 0,Y direction*/      
     writelcm(0,0x40,2);

     writelcm(0,0xb8,1);          /* set IC page=0 */    
     writelcm(0,0xb8,2);

     writelcm(0,0xc0,1);          /* set IC start line */ 
     writelcm(0,0xc0,2);

     writelcm(0,0x3f,1);          /* set IC display on */
     writelcm(0,0x3f,2);
  }
/***********************************************************************************/
void display1(unsigned char data1,unsigned char data2,unsigned char cs)
  {  
     unsigned char i,j;
     for (i=0;i<8;i++)
    { 
     writelcm(0,i+0xb8,cs);
     writelcm(0,0x40,cs); 
     for(j=0;j<32;j++)
     {writelcm(1,data1,cs);
      writelcm(1,data2,cs);}                               //写显示数据
    } 
  }
/*************************************************************************************/
void display8(unsigned char *p)
  {  unsigned char i,j,k;
     unsigned char *q;

     for (i=0;i<8;i++)
    { writelcm(0,i+0xb8,1);
      writelcm(0,0x40,1); 
      for(j=0;j<8;j++)                          //8页
      {q=p;
       for(k=0;k<8;k++)                     //每页写8个字
       writelcm(1,*q++,1);
      delay(1000);
       }
    }
 
    for (i=0;i<8;i++)
   { 
      writelcm(0,i+0xb8,2);
      writelcm(0,0x40,2); 
      for(j=0;j<8;j++)
      {
       q=p;
       for(k=0;k<8;k++)
       writelcm(1,*q++,2);
       delay(1000);
      }
    }  
  }
/****************************************************************************************/
void displaybmp12864(unsigned char *p)                                      //显示图片
  {  unsigned char i,j;
     for (i=0;i<8;i++)
{ writelcm(0,i+0xb8,1);
   writelcm(0,0x40,1); 
   for(j=0;j<64;j++)
   writelcm(1,*p++,1);

   writelcm(0,i+0xb8,2);
   writelcm(0,0x40,2); 
   for(j=0;j<64;j++)
   writelcm(1,*p++,2);
} 
  }
    
/*****************main***********************/
main()
{while(1)
  {
  init();
  displaybmp12864(bmp);
  delay1s();
  delay1s();
  display1(0xff,0xff,1);
  display1(0xff,0xff,2);
  delay1s();
  delay1s();
  display1(0x55,0xaa,1);                                       //行列测试
  display1(0x55,0xaa,2);
  delay1s();
  delay1s();
  display1(0xaa,0x55,1);
  display1(0xaa,0x55,2);
  display1(0xaa,0x55,3);
  delay1s();
  delay1s();
  display1(0x55,0x55,1);
  display1(0x55,0x55,2);
  delay1s();
  delay1s();
  display1(0xaa,0xaa,1);
  display1(0xaa,0xaa,2);
  delay1s();
  delay1s();
  display1(0xff,0x00,1);
  display1(0xff,0x00,2);
  delay1s();
  delay1s();
  display1(0x00,0xff,1);
  display1(0x00,0xff,2);
  delay1s();
  delay1s();
  display1(0x00,0x00,1);
  display1(0x00,0x00,2);
  delay1s();
  display8(ba); 
  delay(20000);    
   }

 }
/***************************************************************************************/
/*****************图片大小=128x64/8=1024KB**********************************************/
/***************************************************************************************/
/***  调入了一幅图像:H:\E小白\文章\光电显示\KS0107\PIC.bmp  --*************************/
/***  宽度x高度=128x64  纵向取模,字节倒序**********************************************/
 unsigned char code bmp[1024]=
{
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0xFE,0xFE,0x0E,0x0E,0x0E,0x0E,0x0E,
0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,
0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,
0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,
0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,
0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,
0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,
0x0E,0x0E,0x0E,0x0E,0x0E,0xFE,0xFE,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x40,0x60,0xE0,0x00,0x00,0x00,0x00,0x40,0x20,
0x20,0x20,0x60,0xC0,0x00,0x00,0xC0,0x60,0x20,0x20,0x60,0xC0,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0x20,0x20,0x20,0x20,0x00,0x00,0x00,0x00,0x80,
0x60,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x20,0x20,0x20,0x20,0x40,0x40,
0x80,0x00,0x00,0x80,0xC0,0x60,0x20,0x20,0x20,0x20,0xC0,0x80,0x00,0x20,0x20,0x20,
0xE0,0x20,0x20,0x20,0x00,0xC0,0x60,0x20,0x20,0x20,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x40,0x40,0x7F,0x40,0x40,0x00,0x00,0x60,0x70,
0x58,0x4C,0x46,0x41,0x00,0x00,0x39,0x45,0x42,0x42,0x45,0x39,0x00,0x40,0x63,0x36,
0x08,0x34,0x63,0x41,0x00,0x1F,0x64,0x42,0x42,0x42,0x3C,0x00,0x08,0x0E,0x09,0x08,
0x08,0x7F,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x40,0x40,0x40,0x40,0x20,0x30,
0x1F,0x00,0x00,0x1F,0x20,0x40,0x40,0x40,0x40,0x60,0x30,0x1F,0x00,0x00,0x00,0x00,
0x7F,0x00,0x00,0x00,0x00,0x21,0x42,0x46,0x44,0x4C,0x38,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x80,
0x80,0x40,0x40,0x40,0x00,0x00,0x00,0xC0,0x40,0x40,0x40,0x80,0x00,0x00,0x00,0x00,
0xC0,0xC0,0x00,0x00,0x00,0x00,0xC0,0x40,0x40,0x40,0x80,0x00,0x00,0xC0,0x00,0x00,
0x00,0x00,0x00,0xC0,0x00,0x40,0xC0,0x40,0x00,0x80,0x80,0x40,0x40,0x40,0x00,0x00,
0x00,0x00,0x00,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0xC0,0xC0,0x00,0x00,0x80,0x80,
0x40,0x40,0x40,0xC0,0x80,0x00,0x00,0xC0,0x40,0x40,0x40,0x80,0x80,0x00,0x00,0xC0,
0x00,0x00,0x00,0x00,0xC0,0x00,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0xC0,0x40,0x40,
0x40,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x1F,
0x30,0x20,0x24,0x24,0x3C,0x00,0x00,0x3F,0x04,0x04,0x08,0x33,0x20,0x20,0x18,0x0F,
0x08,0x08,0x0E,0x18,0x20,0x00,0x3F,0x04,0x04,0x04,0x03,0x00,0x00,0x3F,0x02,0x02,
0x02,0x02,0x02,0x3F,0x00,0x20,0x3F,0x20,0x00,0x1F,0x30,0x20,0x20,0x20,0x00,0x00,
0x00,0x00,0x00,0x3F,0x00,0x03,0x0C,0x38,0x0C,0x03,0x00,0x3F,0x00,0x00,0x1F,0x30,
0x20,0x20,0x20,0x10,0x1F,0x00,0x00,0x3F,0x20,0x20,0x20,0x10,0x1D,0x00,0x00,0x1F,
0x30,0x20,0x20,0x20,0x1F,0x00,0x00,0x3F,0x20,0x20,0x20,0x20,0x00,0x3F,0x22,0x22,
0x22,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x7F,0x7F,0x70,0x70,0x70,0x70,0x70,
0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,
0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,
0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,
0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,
0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,
0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,
0x70,0x70,0x70,0x70,0x70,0x7F,0x7F,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

};                                                                                   //此处受字符限制,图片数据省略

九、显示效果(显示图片与例程略有不同)

12864046-1.jpg

十、原理图文件

G1286401BWW.rar



  

发表评论

评论列表


没有评论

筛选

文章分类

热门文章

企业招聘网址

2023-12-07  浏览:2951次

BC1.2协议介绍

2023-06-14  浏览:2849次

USB2.0速度识别

2023-10-23  浏览:1295次