找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2167|回复: 2
打印 上一主题 下一主题
收起左侧

LCD12864如何写个显存数组来定位点阵屏中的数据?

[复制链接]
跳转到指定楼层
楼主
ID:165792 发表于 2020-3-20 20:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如题
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:351097 发表于 2020-3-20 22:08 | 只看该作者
可以使用一个1024字节的大数组来作为显存,每个字节可以操控8个像素点,总共可以操控1024×8=8192个像素点,刚好对应的128×64的分辨率。为了方便定位和操作像素点,使用坐标轴的思想,引入x轴和y轴,其中x轴的范围为0-127(128个像素点),y轴的范围为0-63(64个像素点)。定位哪个坐标是原点,这跟你先写哪一页哪一列有关。一般从第0页和第0列开始写,到最后第七页和第127列结束。这样,显存数组第一个字节的第一个位就是坐标原点(0,0),第一个字节的第八位就是(7,0),依次类推。显存数组第1023个字节的第八位就是坐标(63,127),即最后一个点。详细函数实现,可以参考我的帖子:http://www.51hei.com/bbs/dpj-180611-1.html
回复

使用道具 举报

板凳
ID:452950 发表于 2020-3-20 23:00 | 只看该作者
带字库12864的数据手册有中文字符的定位坐标,通过4×8的坐标来定位显示数据的位置
/*******************************************************************
              常量声明区
********************************************************************/            
unsigned char code AC_TABLE[]={                                           //坐标编码
0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,
0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,
0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,
0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,
};
写好12864底层驱动后,就可以很方便的输出字符串,如下输出第1行第2列,初始(0,0)
        PutStr(1,2,"欢迎使用 ");
或者输出数据                  
WriteCommand(0x89+j);                //指定第三行显示位置坐标(2,1)
               WriteData(0x0f);               //显示*号
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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