求12864-12 T6963C 控制芯片 例程
MPU是89C55液晶显示模块是DG12864-12主控芯片是T6963C求高手给个完整的初始化程序.要求可以显示中文字符号....
MPU是89C55
液晶显示模块是 DG12864-12 主控芯片是 T6963C
求 高手 给个 完整的初始化程序. 要求可以显示 中文字符号. 展开
液晶显示模块是 DG12864-12 主控芯片是 T6963C
求 高手 给个 完整的初始化程序. 要求可以显示 中文字符号. 展开
1个回答
展开全部
你可以参考下面这段代码,同样是T6963C,只是显示区域是240*128,操作之前先将LCD复位一次,你对着资料将初始化的寄存器改改就可以了,另外电路和你的不同,所以读状态寄存器和写寄存器的方法不同,你的需要操作P0,P1,P3口模拟读和写.其实T6963C可以直接和MCS51外部总线接口的,时序完全满足要求,下面的代码就是将/CE接P2.7,C/D接P2.0,直接用MOVX指令访问的.
#define dis_comand XBYTE[0x7fff] //液晶操作命令地址
#define dis_data XBYTE[0x7ffe] //液晶显示数据地址
#define discommand 1 //定义液晶操作的常量
#define disdata 0
/*****************************************
*液晶初始设置参数
*****************************************/
void dis_set()
{
dis_write_dandc(0xb2,discommand); //先关闭自动写模式
dis_write_dandc(20,disdata);
dis_write_dandc(8,disdata);
dis_write_dandc(0x21,discommand);
dis_write_dandc(0,disdata);
dis_write_dandc(0,disdata);
dis_write_dandc(0x42,discommand);
dis_write_dandc(30,disdata);
dis_write_dandc(0,disdata);
dis_write_dandc(0x43,discommand);
dis_write_dandc(0x3,disdata);
dis_write_dandc(0,disdata);
dis_write_dandc(0x22,discommand);
dis_write_dandc(0xa1,discommand);
dis_write_dandc(0x81,discommand);
dis_write_dandc(0x98,discommand); //液晶初始化完成
}
/******************************************
* 写数据到液晶包括命令
******************************************/
void dis_write_dandc(uchar x,bit y)
{
uchar i;
lab1:
i=dis_comand;
i=i&0x3;
if (i!=3) goto lab1; //检查状态
if (y==discommand) dis_comand=x; //命令
else dis_data=x; //数据
}
#define dis_comand XBYTE[0x7fff] //液晶操作命令地址
#define dis_data XBYTE[0x7ffe] //液晶显示数据地址
#define discommand 1 //定义液晶操作的常量
#define disdata 0
/*****************************************
*液晶初始设置参数
*****************************************/
void dis_set()
{
dis_write_dandc(0xb2,discommand); //先关闭自动写模式
dis_write_dandc(20,disdata);
dis_write_dandc(8,disdata);
dis_write_dandc(0x21,discommand);
dis_write_dandc(0,disdata);
dis_write_dandc(0,disdata);
dis_write_dandc(0x42,discommand);
dis_write_dandc(30,disdata);
dis_write_dandc(0,disdata);
dis_write_dandc(0x43,discommand);
dis_write_dandc(0x3,disdata);
dis_write_dandc(0,disdata);
dis_write_dandc(0x22,discommand);
dis_write_dandc(0xa1,discommand);
dis_write_dandc(0x81,discommand);
dis_write_dandc(0x98,discommand); //液晶初始化完成
}
/******************************************
* 写数据到液晶包括命令
******************************************/
void dis_write_dandc(uchar x,bit y)
{
uchar i;
lab1:
i=dis_comand;
i=i&0x3;
if (i!=3) goto lab1; //检查状态
if (y==discommand) dis_comand=x; //命令
else dis_data=x; //数据
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询