本帖最后由 一叶倾城wwq 于 2018-6-11 22:50 编辑
使用反白指令后,(我写了反白指令后写地址也是不行)只能同时反白一三行和二四行,说明书说的任意一行呢?我使用的是12864B,而且反白行还会闪烁,本来闪烁很快的,我加了延时才闪的慢一点,如何让它固定反白一行且不闪烁呢?情况如下图请各位前辈指点迷津
程序如下:/*********************************************
FunctionName: writeWord
FunctionInfo: 练习写汉字函数
Input: no
Output: no
注:
**********************************************/
void writeWord(void)
{
uchar tab[2] ={"出"}; //注意一个汉字占两个字节
uchar tab1[44]={"下雨天,想看蓝天白云;对了,出门记得带伞^_^ "}; //最后这个占4字节
uchar i;
wr_cmd(0x30);
wr_cmd(0x30); //基本指令集
wr_cmd(0x0C); //整体显示
wr_cmd(0x80); //行
//wr_dat(tab[0]);
//wr_dat(tab[1]);
for(i=0;i<4;i++)
{
wr_dat(tab1[i*2]);
wr_dat(tab1[i*2+1]); //一个汉字两个字节需一次写入
}
wr_cmd(0x90);
for(i=4;i<11;i++)
{
wr_dat(tab1[i*2]);
wr_dat(tab1[i*2+1]);
}
wr_cmd(0x88);
for(i=11;i<14;i++)
{
wr_dat(tab1[i*2]);
wr_dat(tab1[i*2+1]);
}
wr_cmd(0x98);
for(i=14;i<22;i++)
{
wr_dat(tab1[i*2]);
wr_dat(tab1[i*2+1]);
}
reverseWhite(1); //反白显示 在写完数据后写指令
delay_ms(1000);
}
/*********************************************
FunctionName: reverseWhite
FunctionInfo: 反白显示函数
Input: row
Output: no
注:
**********************************************/
void reverseWhite(uchar row)
{
uchar x,y;
wr_cmd(0x34);
wr_cmd(0x34); //扩充指令集
switch(row)
{
case 1:
{
wr_cmd(0x04); //反白显示第一行
//wr_cmd(0x80); //测试能不能写地址->不能
break;
}
case 2: wr_cmd(0x05);break;//wr_cmd(0x90);
case 3: wr_cmd(0x06);break;
case 4: wr_cmd(0x07);break;
default : break;
}
}
D:\用户目录\我的图片\反白一行1.jpg
D:\用户目录\我的图片\反白一行.jpg
|