12864画点教程(保留).docx
《12864画点教程(保留).docx》由会员分享,可在线阅读,更多相关《12864画点教程(保留).docx(7页珍藏版)》请在第一文库网上搜索。
1、基于ST7920控制的12864液晶用于字符显示很方便的,但网友说用它显示图形并不合适,原因就是它绘图时先要关闭显示,绘完后又要打开,速度会较慢。我没有用过别的液晶,手中只有这一款,摆弄了儿天,掌握了一点东西,写出来共享。首先,我们知道,图形都是由像素点组成的,绘图的基础其实就是画点。只要我们能点亮液晶的任意一个像素点,那么绘图就不是什么难事了。万丈高楼平地起嘛,先要做的,当然是要打好基础。5T7920提供了用于绘图的GDRAM(graphdisp1ayRAM)。共64X32个字节的空间(由扩充指令设定绘图RAM地址),最多可以控制256X64点阵的二维绘图缓冲空间。在它的DataSheet给
2、出了GDRAM的坐标地址对照表:GDRAM水(X)(原文件名:图片1Png)引用图片用坐标表示,就是这样:256像素(1616i)2:像*M64位)(原文件名:图片2.png)引用图片它的横坐标每一个地址都是16位的。共16个地址,256位。很明显,它能控制256*64像素的液晶屏,而我们的只是128*64像素液晶屏,显然只用到它的一部分。我刚开始以为它对应屏幕的绘图RAM是这样分布的(如红色部分):x128像素(原文件名:图片3.png)引用图片结果栽了大根头,后来终于弄明白,原来它对应屏幕的GDRAM是这样分布的:汗,发了一半不小心提交了,继续256(原文件名:图片4.png)引用图片只要
3、我们清楚了它的GDRAM和屏幕上像素点的映射(对应)关系,点亮对应的像素点就容易多了。要点亮某一个像素点,就是将这个像素点在GDRAM中对应的位置1,这个相信没人会不知道吧?我们先讨论一下思路,再一步步写代码。我觉得,思路要比代码重要的多,只要你的思路通了,正确了,那么写出代码肯定会很容易。首先,给你X,y的坐标,要你点亮一个点,要怎么做呢?从上面的图我们知道,它是分为两个半屏的,首先,我们要确定这个点是在上半屏还是下半屏,然后确定它是在那一行(纵坐标Y),再确定它是在哪一个字节的哪一个位(也就是确定它在那一列,即横坐标X)o这些都确定后我们就定位到某一个具体的位上了,只就将这个位置1,就OK
4、了。下面我们边写代码边讨论。因为这里仅仅是讨论如何在12864上打点的,而不是给12864写一个驱动,所以对于基本的数据读写函数,我们不做讨论,这里假设已经有了如下基本函数:void1cd_write_cmd(UnSignedchar);/1ed命令写void1edWTitedata(unsignedchar);/1ed数据写UnSigendchar1edreaddata(void):/1ed数据读好了,就这些了。为了方便,我们定义如下宏:SdefineBASIJSET0x30基本指令集,后面的数字查数据手册,下同。0x30SdefineEXTEND_SET0x34扩展指令集0x34Sdefi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 12864 教程 保留
