打印

真诚请教 t6963c 液晶屏绘点(240x128点),谢谢!

[复制链接]
1549|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
8xujun|  楼主 | 2007-7-9 11:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
****************************************************
读状态字
cd_flag = 1 读命令通到 = 0 读数据通到
w = 0 指令读写状态 返回1 准备好 返回0 忙
w = 1 数据读写状态 返回1 准备好 返回0 忙
w = 2 数据自动读状态 返回1 准备好 返回0 忙
w = 3 数据自动写状态 返回1 准备好 返回0 忙
w = 5 控制运行检测可能性返回1 准备好 返回0 忙
w = 6 屏读/栲贝出错状态 返回1 正确 返回0 出错
w = 7 闪烁状态检测 返回1 正常显示 返回0 关显示
******************************************************/
void r_st (uchar w)//判忙
{
uchar data i = 0;
uchar data c;
cd = 1; lcdbus = 0xff; ce = 0;
while (--i)
{
rd = 0; c = lcdbus; rd = 1; ce = 1;
if ((w == 1) && ((c & 3) == 3)) return;
if ((w == 3) && (c & 8)) return;
}
}
void wdata(bit cd_flag,uchar d) /*数据写操作*/
{
cd = cd_flag;
lcdbus = d;
ce = 0; wr = 0; wr = 1; ce = 1; cd = 0;
}
/*双参数指令*/
void dmod(uchar x0,uchar x1,uchar c)
{
r_st(1); wdata(0,x0);
r_st(1); wdata(0,x1);
r_st(1); wdata(1,c);
}
/*单参数指令*/
void smod(uchar x1,uchar c)
{
r_st(1); wdata(0,x1);
r_st(1); wdata(1,c);
}
/*无参数指令*/
void nmod(uchar c)
{
r_st(1); wdata(1,c);
}

绘点函数:
void wri_d(uchar o_y,uchar o_x)
{
uint c;
c = o_y * 0x1e;
dmod(c + (o_x / 8),(c + (o_x / 8) + 0x0800) >> 8,0x24);//双参数指令

nmod((~(o_x % 8)) | 0xf8);//无参数指令
}

请问:如上函数,“nmod((~(o_x % 8)) | 0xf8);//无参数指令”,这行应该是写指令,它是怎么实现绘点的?为什么要先按8取余,再取反,然后位或0xf8?
 
 

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

23

帖子

0

粉丝