打印

ST7920并行读数据,急~~~

[复制链接]
1407|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hyhlfq|  楼主 | 2008-8-12 12:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
ST7920并行读数据
unsigned char lcd_read(void) 

    unsigned char dt;
    delay(10);
    E=0;
    RS=1;
    RW=1;
    delay(10);
    E=1;
    delay(10);
    dt=P2;
    E=0;
    RW=0;
    E=1;
    return dt; 
}
设定好行和列后开始先空读了一次
再读,可是数据口P2的值还是没变
望高手解答~~谢谢
绘图功能都正确的~~

相关帖子

沙发
太阳之母| | 2008-8-12 13:29 | 只看该作者

嘿嘿

第一、P2是准双向的,LZ肯定也用它写LCM了,读之前要写一0xFF给P2。
第二、P2口最好加上拉电阻。
第三、LZ的代码倒数第三四五行太有趣了,你按LCM手册时序图写的吧?太教条了,呵呵,我看了好一会不知道为啥要这样呢!对照时序图明白了,嘿嘿

    E=0;
    RW=0;
    E=1;

你说的空读了一次,是不是也写了这三行啊?
如果是,那你就肯定读不对了!
为什么呢?当E=1并且RW=0时,那相当于做了什么操作啊???

使用特权

评论回复
板凳
hyhlfq|  楼主 | 2008-8-12 18:00 | 只看该作者

谢谢楼上的。。。

谢谢楼上的。。。
我现在用的是C8051F020做的
它是内带上拉电阻的(可以设置的)
之前的代码就这样的,不行
         RS=1;
    RW=1;
    delay(10);
    E=1;
    delay(10);
    dt=P2;
    delay(5);
    E=0;
         delay(5);
    E=1;
所以去参考别人的。。。。
上次发的代码就是参考别人的。。。
而且dt=P2这句放在E=0之后也试过了。。。。都不行~~~
谁能帮下啊。。。谢谢了

使用特权

评论回复
地板
太阳之母| | 2008-8-12 23:15 | 只看该作者

嘿嘿

说过了,一下三行去掉吧
//    E=0;
//    RW=0;
//    E=1;
    return dt; 

使用特权

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

本版积分规则

20

主题

40

帖子

0

粉丝