本帖最后由 xuexiwen33 于 2010-6-8 16:24 编辑
本人最近在用51开发一款液晶显示器,控制器用的是T6963C,在网上有很多的T6963C的开发程序,但是我有一些疑惑之处,请高手指教。
控制器上有C/D,1为命令,0为数据,接的是P2.0,CE接P2.1,WR、RD接单片机WR、RD 还有一个状态字用来查询液晶操作是否准备好,闲话少说,上程序:
第一种:
//--------------------------------------------
// 写数据函数
//--------------------------------------------
void write_data(uchar dat)
{
CD=0; //数据
CE=0; //LCD使能
WRIT=0; //写
DATA_PORT=dat; //把数据送到P口
delay(1); //当晶振较高时加延时
WRIT=1; //关写
CE=1; //关使能
}
//--------------------------------------------
// 写命令函数
//--------------------------------------------
void write_com(uchar com)
{
CD=1; //命令
CE=0;
WRIT=0;
DATA_PORT=com;
delay(1); //当晶振较高时加延时
WRIT=1;
CE=1;
}
第二种//fnST01()函数用来判断状态位的
#define LCDDW XDATA[0XFC00];
#define LCDCW XDATA[0XFD00];
uchar fnPR1(uchar uCmd,uchar uPar1,uchar uPar2)// 写双参数的指令
{
if(fnST01() == 0)
return 1;
LCMDW = uPar1;
if(fnST01() == 0)
return 2;
LCMDW = uPar2;
if(fnST01() == 0)
return 3;
LCMCW = uCmd;
return 0;// 返回 0 成功
}
这两种到底哪一个更合理一些?这两种方法相同吗?请高手指教! |