搜索
bottom↓
回复: 4

用12864绘图。。

[复制链接]

出0入0汤圆

发表于 2013-4-25 22:01:42 | 显示全部楼层 |阅读模式
绘图时X,Y坐标的确定。
从网上一篇文档上截取的一段,前面说在确定坐标值时要连续写入两字节的数据,但是这里它说错一点——12864在绘图时,要先输入垂直坐标即Y轴坐标,再输入水平X坐标,这是12864本身规定的。下面还要明确一点就是12864屏幕显示与坐标地址的对应关系。。。
    0x80        0x8f
X






         Y
上半屏和下半屏的地址就是这样子,其中水平X以16位即两个字节为一个地址,垂直Y轴以一位(bit)为一个地址。
上面左半边的就是和12864显示屏上半屏对应的,右半边是和12864显示屏下半屏对应的,这样我们在确定XY坐标的时候就清楚多了。看一段程序:

在进行上下半屏地址转换的时候,垂直Y坐标都是从0x80开始加,而水平X坐标在上半屏是从0x80加,在下半屏从0x88开始加。我的图像显示处理程序:
//------------在任意位置开始显示图画------------------
void LCD12864_set_tu(uchar X,uchar Y,uchar *tu,uchar wide,uchar high)
{         //Y确定开始行,X确定列(0-7),tu是点阵字模数据
         uint hang,lie;
         write_12864cmd(extra_cmd);//打开扩展指令集
         write_12864cmd(tu_off);//绘图显示关
         if(wide%8==0) wide=wide/8;
         else wide=wide/8+1;
       for(hang=0;hang<high;hang++)
        {
                   if(Y+hang>31)                          //上下屏地址转换
                  {
                           write_12864cmd(0x80+Y+hang-32);//先写Y轴坐标
                         write_12864cmd(0x88+X);//再写X轴坐标  ,(0x88-0x8f)
                  }                                                        //这里X只需写(0-7)
                  else
                  {
                           write_12864cmd(0x80+Y+hang);//先写Y轴坐标
                         write_12864cmd(0x80+X);//再写X轴坐标  ,(0x80-0x87)
                  }
                  for(lie=0;lie<wide;lie++)                           //根据列宽逐行写入数据
                  {                                                                           //宽占几字节,就写几字节
                            write_12864dat(tu[hang*wide+lie]);//每行写入wide个字节数据
                  }                  
          
       }
         write_12864cmd(tu_on);//绘图显示开
         write_12864cmd(com_cmd);//回到基本指令集
}
上面的XY是自己设置图画显示的起始行和起始列,由于一个水平地址是占两个字节,所以X只能是0到7,所以要根据自己的图画宽度合理设置。
这些明白之后,大家就可以自己试着写程序,显示一些图画了。下面我再讲一下,液晶的取模软件

这个软件我一直是用在给点阵取模的,后来才知道它也可以取图片字模,供液晶显示。只需要点击“打开图像图标”,就可以选择bmp格式的图片打开。但是怎么获得bmp格式的图片呢,我在网上下了这个软件:
  装上这个软件之后,打开界面如下

在旁边设置成单色,像素设成128X64,输出格式设成bmp就行了,然后就可以随便把一张jpg图片保存成bmp格式的了。
等把绘图掌握了,大家也可以继续深究一下,写一些画曲线,直方图,椭圆等的绘图函数。      



本帖子中包含更多资源

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

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入20汤圆

发表于 2013-4-25 22:27:41 | 显示全部楼层
好好看看。

出0入0汤圆

发表于 2013-4-26 08:31:57 | 显示全部楼层
佩服,以后好好看看。。

出0入0汤圆

 楼主| 发表于 2013-4-26 10:34:57 | 显示全部楼层
Lboyve 发表于 2013-4-26 08:31
佩服,以后好好看看。。

出0入0汤圆

发表于 2013-10-31 22:05:32 | 显示全部楼层
佩服。楼主人不错。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-26 05:13

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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