标题: MCU+LCD12864读不出数据,预先把12864RAM清空了,读出来的值是0xff [打印本页]

作者: afhyf    时间: 2021-4-7 11:59
标题: MCU+LCD12864读不出数据,预先把12864RAM清空了,读出来的值是0xff
我想从12864读出当前地址的数据,按照网上说的,先把数据端口置高,然后读12864RAM的值。我预先把12864RAM清空了,但是读出来的值是0xff。我又试了一下不预先置高数据端,都是它读的数据都是我上一次写入的命令,麻烦大佬解答一下。



作者: 人人学会单片机    时间: 2021-4-7 16:51
为何要读出来呢?有这种必要性吗?
作者: man1234567    时间: 2021-4-7 17:03
研究是可以的但不实用,还有就是并口的可以读出其他的要看说明书。
显示器主要用于写,比如1602为省一个I/O就直接将某脚接地。
显示的数据是你自己发送的,如果真的需要可以自建数据缓冲区速度上要快。
以上是建议,不是解决问题的回答,供参考。
作者: afhyf    时间: 2021-4-7 17:29
man1234567 发表于 2021-4-7 17:03
研究是可以的但不实用,还有就是并口的可以读出其他的要看说明书。
显示器主要用于写,比如1602为省一个I/ ...

谢谢你的回复。我要实现的是在lcd上面打点画成一条曲线,如果不读出前一状态的RAM值,因为12864一次要写入16位,下一个点则会覆盖掉上一个点,我只能想到将之前的值读出,然后再重新写入。如果有更好的方案请不吝赐教。
作者: liuzx66    时间: 2021-4-7 20:34
人家都说了可以建立缓存区
作者: afhyf    时间: 2021-4-7 23:36
liuzx66 发表于 2021-4-7 20:34
人家都说了可以建立缓存区

还是不太明白,我再研究一下。
作者: afhyf    时间: 2021-4-7 23:38
人人学会单片机 发表于 2021-4-7 16:51
为何要读出来呢?有这种必要性吗?

因为12864一次写入两个字节,在同一行后面的点会覆盖掉前面的点,所以把上一次状态读出,我根据网上的程序理解的,不知道对不对。
作者: 3485910187    时间: 2023-4-28 11:52
楼主解决了这个问题吗,我遇到了相同的问题;无法读取当前地址的数据
作者: zhuls    时间: 2023-4-28 14:03
3485910187 发表于 2023-4-28 11:52
楼主解决了这个问题吗,我遇到了相同的问题;无法读取当前地址的数据

12864单色屏,只需要1K(128*64/8=1024)的显示缓存,然后你就可以在缓存操作,随便折腾,搞完了,再刷新显示了。
作者: 人中狼    时间: 2023-4-28 15:46
记得好像是可以的,读取数据再写回去,对于只需要更改少量的显示点是比较方便的
作者: zhazhengfeng    时间: 2023-4-28 22:01
这个意义真不大,显示就可以了
作者: wufa1986    时间: 2023-4-29 07:56
在程序中开辟一块RAM,映射到屏幕,这样就只需要处理内存数据,速度快还操作方便
作者: !@uwgqdu    时间: 2024-4-24 11:20
楼主,请问你这个问题最后是怎么解决的
作者: Graves    时间: 2024-4-24 13:37
afhyf 发表于 2021-4-7 23:36
还是不太明白,我再研究一下。

你要读上一次的值其实就是你上一次写的值,既然这样就没必要读了。建立1024字节的数组,写入时写数组进去,数组里的值就是你要读的值




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1