微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 请教一个12864的打点问题

请教一个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

小编你好这个问题虽然已经过的好多年了,不过我是最近才遇到这个问题,而且参考网上的程序已经解决纵向点的对应问题

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top