请教一个12864的打点问题
时间:10-02
整理:3721RD
点击:
查看我用的是stc89c52驱动的12864,但是在打点程序上一直没有成功,焦急万分。不知道是什么原因错了,希望有高手给与指导。我万分感谢。
这是我那程序。网上参考的,在我这上面怎么就不行呢?
void drawpoint(uchar x,uchar y)//define uchar unsigned char,define uint unsigned int;
{
uchar xbyte,xbit;
uchar ybyte,ybit;
uchar temph,templ;
x&=0x7f;
y&=0x3f;
xbyte=x/16;
xbit=x&0x0f;
ybyte=y/32;//确定上半屏,下半屏
ybit=y&0x3f;
write_12864com(0x34);//扩充指令
write_12864com(0x34);//绘图显示关闭
write_12864com(0x80+ybit);//垂直地址
write_12864com(0x80+xbyte+8*ybyte);
read_12864data();//预读
temph=read_12864data();//读高一次
templ=read_12864data();//读低一次
delay(1);
write_12864com(0x80+ybit);
write_12864com(0x80+xbyte+8*ybyte);
delay(1);
if(xbit<8)
{
write_12864data(temph|(0x01<<(7-xbit)));
write_12864data(templ);//原数据送回
}
else
{
write_12864data(temph);
write_12864data(templ|(0x01<<(15-xbit)));
}
write_12864com(0x36);
write_12864com(0x30);
return ;
}
PS:我真心希望可以找到能在电子方面可以请教,可以相互学习的朋友,以此交友,我的QQ421573245
看看网易聊天室
酒色网
午夜聊天室
色情聊天
裸聊网
happy88聊天室
酒色
路过
你这个帖子,看得很纠结啊
这是什么东西啊
要想打点的话不能直接写进去,因为你写进去的是八个点的控制,会影响周围的点,很容易出现乱码。比如,你写进去的是0x80,x想的是只点亮左边一个点,其他的都不要影响,但是右边的7个0也是会显示的,如果在要显示0的地方原来显示的是1的话,你现在写进去的0就把1覆盖了,这样就容易产生乱码。所以我建议,你先把液晶的数据读出来,再用data &=(~(0x01<<(7-bit)))(bit是你点亮哪一位,data是读出来的数据)置0,置1也是类似的,最后再把data重新写进去就行了。详情关注我的百度空间http://hi.baidu.com/hujiandong
回帖很难啊!体力活!
小编你带我一起学可以不,我刚开始学51单片机,,,愿意就加我。
QQ:1310194251
小编你好这个问题虽然已经过的好多年了,不过我是最近才遇到这个问题,而且参考网上的程序已经解决纵向点的对应问题