学习芯片,应该以数据手册为主,书本为辅,学习ST7920驱动芯片手册地址
先把手册看一遍,不求快,只求弄懂
170514:
1.ST7920数据手册看了两遍,但是还是不太清楚具体操作
比如Data Display Ram,Character Generate Ram,Graph Display Ram
- Data Display Ram是最好操作的,只要初始化后,写个地址,再写编码ok,我现在实验的只有GB2312编码,不接收ASCII码,但是ST7920手册不是这样,先在实物上做同样的实验,看能否识别ASCII码,得到实验结果在说
- 用GDRAM,显示图片
按GDRAM命令写地址,先写垂直地址(x地址),再写水平地址(y地址),再写高字节数据,再写低字节数据。
这样就完成了一个横向的16位(2个字节)显示。这个GDRAM是16位一行一行的写数据。我看ST7920手册上说,写完16位一行,水平地址自动加一,可以接着写下6位一行不用重新写地址。实验表明这样不行,写完16位一行,再重新写地址写数据才有效。这个问题不知道是仿真LCD12864的问题,还是实际操作不能这样。接下我回把这个使用同样在实物上做,到时候记录实验结果。
其他的深挖
2.12864深度博客
要把这个例程看完
3.需要把所有的ST7920里的指令过一遍
proteus仿真st7920驱动12864遇到的问题
- 仿真运行就,就报错“internal exception access violation in module LCD12864.DLL”
解决思路:
- 试了下例程ok
- 判断是否连线接错了,接线ok
- 运行例程ok,但是运行自己写的程序就报错,判断报错为程序问题
- 从man函数一个一个注释编译运行,直到write_data
结论
- 这个LCD12864不能有非GB2312的编码范围,用ASCII要么报错,要么就不显示,具体原因待查