极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 106694|回复: 40

Arduino教程 12864绘图功能库的使用(并口通信,仅适用ST7920)

[复制链接]
发表于 2012-8-11 20:19:33 | 显示全部楼层 |阅读模式
12864液晶除了显示字符、汉字之外,还有绘图的功能,接下来将介绍一下如何使用12864的绘图功能库,进行绘图操作。

首先来看一下12864液晶的坐标关系:




通过坐标关系图,我们可以看到,12864液晶将屏幕分成了上下两块,所以显示的时候,是分两部分显示的。至于具体的地址位,功能库的作者已经转换成比较容易理解的方式,就是我们最常见的坐标(X,Y),X的取值范围是(0,127),Y的取值范围是(128,160)。

接着是连线,由于是并口通信,所以占用比较多的端口,找时间把它改成串口的,或者哪位大牛有空就顺便改了吧,上图:




我们来看看如何使用这个库,上代码:
  1. #include <LCD12864.h>
  2. #include <LCDSprite.h>    //这是一个图片

  3. void setup()
  4. {
  5.    LCDA.Initialise();   // 初始化12864液晶 delay(100);        
  6.    LCDA.Render();    // 打开绘图显示 delay(100);
  7. }
  8. void loop()
  9. {
  10.    LCDA.DumpScreenBuffer();      //清屏,这个函数包含一个16x32的二维数组,功能就是把数组内的数据全部置0  
  11. //LCDA.DumpScreenBuffer(0,0,1,32);     //(a0,b0,a1,b1)设置数组的地址位,也就是说,可以只对一部分进行置0
  12.    LCDA.DrawPixel(0,128);        //(0 <= x <=128 , 128 <= y <=160) 画点,在一个半屏内的取值范围
  13.    LCDA.DrawBrLine(0,148,20,148);           //(x0, y0, x1, y1) 画线,不仅可以画垂直、水平的线,也可以画斜线,用的是Bresenham算法,有兴趣的可以自己研究一下
  14.    LCDA.DrawCircle(40,144,15);           //(x, y, r) 画圆,设定起始位置,和半径,如果半径超过一个半屏的大小就不能正常显示了,可以自己体验
  15.    LCDA.DrawRectangle(60,128,20,31);        //(x, y, width, height) 画空心矩形 ,设置好起始位置,还有长宽大小   
  16.    LCDA.FillRectangle(100,128,20,32);         //(x, y, width, height) 画实心矩形,也可以认为是填充矩形,设置好起始位置,长宽大小
  17.    //LCDA.DrawSprite(2,1);        //这是一个例图,可以自己试试,需要配合sprite.H
  18.    LCDA.RenderScreenBuffer(1);          //显示,括号内的值为1,则在上半屏显示,值为2,则在下半屏显示(根据库文件的内容,只有值为2的时候,在下半屏显示,其他什么值都是显示的上半屏)
  19.   //LCDA.RenderScreenBuffer(0,0,1,32);        //这个是和DumpScreenBuffer(0,0,1,32)配合使用的,也就是说,开始设定了多大的范围,最后显示多大的范围
  20.    LCDA.Duplicate(true);           //复制,可以把上半屏的内容复制到下半屏,括号里的值是一个bool型,所以初始为false
  21.    LCDA.RenderScreenBuffer(2);      //在下半屏显示   
  22.    while(1);       //如果不加这个while(1)停止loop的循环,两个半屏同时显示的时候,上半屏会不停的刷新
  23. }
复制代码
需要用到的库文件:



祝大家玩得愉快,有什么问题相互交流哈。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2012-8-12 10:01:25 | 显示全部楼层
12864还不会绘图。。。。{:soso_e113:}到了工作室后测试测试
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-8-12 11:32:42 | 显示全部楼层
弘毅 发表于 2012-8-12 10:01
12864还不会绘图。。。。到了工作室后测试测试

想方设法要改成串口的....并口占位置好多,接一次线我就凌乱一次~
回复 支持 反对

使用道具 举报

发表于 2012-8-13 23:13:30 | 显示全部楼层
串口的绘图功能不是很好用,没有并口强大
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-8-14 02:10:40 | 显示全部楼层
beebingoo 发表于 2012-8-13 23:13
串口的绘图功能不是很好用,没有并口强大

这样,我还没有体验过串口的绘图呢。
回复 支持 反对

使用道具 举报

发表于 2012-8-14 09:25:30 | 显示全部楼层
cnkids 发表于 2012-8-12 11:32
想方设法要改成串口的....并口占位置好多,接一次线我就凌乱一次~

淘宝上不是有一种可以转串口的模块吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-8-14 16:00:02 | 显示全部楼层
Randy 发表于 2012-8-14 09:25
淘宝上不是有一种可以转串口的模块吗?

额。。是把库改成串口的...硬件直接改一个0欧电阻的位置就可以了
回复 支持 反对

使用道具 举报

发表于 2012-8-30 00:53:45 | 显示全部楼层
附件是不是坏了?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-8-31 09:22:52 | 显示全部楼层
davidce 发表于 2012-8-30 00:53
附件是不是坏了?

坏了???
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-8-31 09:23:22 | 显示全部楼层
Randy 发表于 2012-8-14 09:25
淘宝上不是有一种可以转串口的模块吗?

额...还有模块...
回复 支持 反对

使用道具 举报

发表于 2012-9-10 18:42:49 | 显示全部楼层
附件不能用啊
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-9-11 19:15:24 | 显示全部楼层
gyw_2012 发表于 2012-9-10 18:42
附件不能用啊

如何不能用?
回复 支持 反对

使用道具 举报

发表于 2012-10-16 02:36:11 | 显示全部楼层
哈喽,请教一下,如果想上下两个分屏显示不一样的东西,该怎么做?
回复 支持 反对

使用道具 举报

发表于 2012-10-16 04:31:07 | 显示全部楼层
问题已解决,但是不是很明白...可能是对库的语句理解不够好吧~~~楼主可以的话,还是指点一下哦
回复 支持 反对

使用道具 举报

发表于 2012-10-22 10:19:45 | 显示全部楼层
请问一下,第二张图片是用什么画出来的呢?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-3-29 05:56 , Processed in 0.046627 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表