访问手机版页面
你的位置:老古开发网 > 其他 > 正文  
调液晶模块T6963驱动范例
内容导读:
对比度可以调节说明LCD的驱动电压是好的.


给个实践OK的驱动范例给你, For the sake of "A month " :(


/* ============================================================================

    测试软件 FOR  T6963    
                                            
     Long: 240 dots ,  Width: 128 dots       RAM : 32k

                                             Auther: MicroLCD   12 , May  2003

   =============================================================================  */

#include   "reg52M.h"
#include   "MapDat.h"

#include <ABSACC.H>



//------------------------------------------- 使用直接总线方式控制T6963

#define  RESET    P3_5
#define  CE       P3_4

//------ P0 口接 DB0 ~ DB7 , P0口需要上拉10K的电阻到+5V.

//------ RS接P2_7, /RD接3_7, /WR接P3_6




//------------------------ RAM 地址选择寄存器
sfr  AUXR = 0x8E;  



#define PDATA      XBYTE[0x0000]     
#define PCOM       XBYTE[0x8000]



#define T1 1
#define LT 40000    
#define ST 50

/*--------------------- 延时 ------------------- */

void delay(uint times)
{
  while(times)times--;
}

/*------------------- 状态 测试 ------------ */

/* 0 --> 测试STA0,STA1 状态 */
/* 1 --> 测试STA2,STA3 状态 */

void   CheckBF()
{

CE=0;

while((PCOM&0x23)!=0x23);

CE=1;

}


/*-------------- 写 指令  寄存器------ */

void  Wcode(uchar order)
{
CE=0;
PCOM=order;
//delay(ST);
CE=1;
}


/*-------------- 写数据   寄存器------ */

void  Wdata(uchar order)
{

CE=0;
PDATA=order;
//delay(ST);
CE=1;

}



/* ------------------------ 初始化子程序---------------------------------*/

void Init()
{    


//RD=1;
//WR=1;
  


CheckBF();   /* 格式:数据通道(参数1,参数2) + 命令代码  */
Wdata(0x0);

CheckBF();
Wdata(0x0);
CheckBF();
              Wcode(0x40); /* 设置文本  显示区域首地址:0000H */

CheckBF();
Wdata(0x1e);
CheckBF();
Wdata(0x0);
CheckBF();
             Wcode(0x41); /* 设置文本宽度 30个字符,既一行显示所占字节数 */


CheckBF();
Wdata(0x0);
CheckBF();
Wdata(0x08);
CheckBF();
             Wcode(0x42); /* 设置图形 显示区域首地址:800H  */

CheckBF();
Wdata(0x1e);  /*  240 Byte */
CheckBF();
Wdata(0x0);
CheckBF();
             Wcode(0x43); /* 设置图形宽度 240 个字节,既一行显示所占字节数 *



CheckBF(0);
             Wcode(0xa0); /* 定义光标大小, 1 格显示 */

CheckBF();
             Wcode(0x80); /* 设置显示方式 ,选定内部 CGROM,“或逻辑” */

CheckBF();
             Wcode(0x98); /* 仅打(图形) 显示*/
            


}


/* ----------------- 地址定位 ------------- */

void GPS(uint L_addr)

{

uchar KL;

KL=L_addr%256;     /* 测定地位 */
Wdata(KL);
  
   KL=L_addr/256;  /* 测定高位 */   
   Wdata(KL);    
                
                Wcode(0x24);    /* 设置显示指针 800H */

}




/* ##############################  Main   Programma  ##################################*/

         void  main()
{


uint n;
//uchar k;

AUXR=0x03;  //EXTRAM=0 --> 选择内部附加的RAM; EXTRAM=1 --> 选择外部数据RAM空间.

RESET=0;    /*  低 电 平 复 位 */
delay(LT);
RESET=1;
                                                

  

Init();  /* ---------------------------------------------------------------- 初始化 LCM  */



//---------------- clear



/* ---------------------------------------++++++++ 以下是 T6963C  的图形测试区 ( 显示一幅图片)  +++++++++++*/


GPS(0x800);  /* 显示 1 */

CheckBF();      
Wcode(0xb0);         /* 自动写模式 */

  for(n=0;n<3840;n++) Wdata(MAP1[n]);

  CheckBF();
  Wcode(0xb2);



while(1);

}
标签:
来源: 作者: 时间:2006/9/25 16:50:53
相关阅读
推荐阅读
阅读排行
最近更新
商品推荐