- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
直接看指令表:
由以上指令可以得到如下初始化液晶的程序:
void vLCDInitialize()
{
CS1=1; CS2=1;
vWriteCMD(0x38); vWriteCMD(0x0F); vWriteCMD(0x01); vWriteCMD(0x06);
//8 位形式,两行字符。
//开显示。
//清屏。
//画面不动,光标右移。
vWriteCMD(LCDSTARTROW); //设置起始行。
}
全屏初始化,不忙?写命令,这里注意,控制显示的指令和 ST7920 相同,这里没有详细列出。
不同的是,起始行,列,和页分别定义如下:
#define LCDSTARTROW 0xC0 //设置起始行指令。
#define LCDPAGE 0xB8 //设置页指令。#define LCDLINE 0x40
可以通过上面的指令表查表宏定义。
//在 8×128 的格子里显示自定义长度的一行
void vShowCustomRow(unsigned char ucPage,unsigned ucWidth,unsigned char *ucaRow)
{
char ucLine,unsigned char
unsigned char ucCount;
if(ucLine64) {
CS1=1;
CS2=0;
vWriteCMD(LCDPAGE+ucPage);
vWriteCMD(LCDLINE+ucLine); if((ucLine+ucWidth)64)
{
for(ucCount=0;ucCountucWidth;ucCount++) vWriteData(*(ucaRow+ucCount));
else
}
{
for(ucCount=0;ucCount64-ucLine;ucCount++) vWriteData(*(ucaRow+ucCount));
CS1=0;
CS2=1;
vWriteCMD(LCDPAGE+ucPage); vWriteCMD(LCDLINE);
for(ucCount=64-ucLine;ucCountucWidth;ucCount++) vWriteData(*(ucaRow+ucCount));
}
}
else
{
CS1=0;
CS2=1;
vWriteCMD(LCDPAGE+ucPage); vWriteCMD(LCDLINE+ucLine-64); for(ucCount=0;ucCountucWidth;ucCount++)
vWriteData(*(ucaRow+ucCount));
}
}
1 、 void vShowCustomRow(unsigned char ucPage,unsigned char ucLine,unsigned char ucWidth,unsigned char *ucaRow):四个参数:从那一页开始写,从哪一列开始写,写入多宽数据,写入的数据存放在哪里。
2、如果列小于 64,从第一屏开始写,然后指定页号,和列号。如果列号+宽度不超出 64, 则循环(宽度)次,指针指向数据存放单元,一次写入到液晶。否则:将没超出的部分写入, 超出的部分选中第二屏,从同一页的 0 列开始写入,将剩下没有写完的写完即可。如果列号本来就超出 64,则直接选中第二屏,写入页号和列号-64 后,连续写入即可。
以上程序弄明白以后,写入中文字则很简单了:
void vShowOneChin(unsigned char ucPage,unsigned char ucLine,unsigned char *ucaChinMap)
{
vShowCustomRow(ucPage,ucLine,16,ucaChinMap); vShowCustomRow(ucPage+1,ucLine,16,ucaChinMap+16);
}
三个参数:页号,列号,和存放的中文字数组。
在对应的页和列先输入 8 位高,16 位宽的上半段,然后页号+1,输入下半段。这里就明白了,页其实就是半行汉字。一次显示 4 行,则显示 8 页。
字符显示则可如下表示:
void vShowOneChar(unsigned char ucPage,unsigned char ucLine,unsigned char *ucaCharMap)
{
vShowCustomRow(ucPage,ucLine,8,ucaCharMap); vShowCustomRow(ucPage+1,ucLine,8,ucaCharMap+8);
}
同汉字显示,只是字符只有半汉字宽而已。
图片显示:
void vShowGraph(unsigned char ucPage,unsigned char ucLin
您可能关注的文档
- IPQC如何做好制程检验及制程稽核.docx
- IPv6安全专项有望12年9月发布 信息安全产业迎来拐点.docx
- IPv6技术素描分析和总结.docx
- IP还是IPQAM分析和总结.docx
- IP网络设置分析和总结.docx
- IQ & EQ分析和总结最新分析和总结.docx
- IQ诚可贵,EQ价更高—最初定稿.docx
- IQ和EQ哪个重要分析和总结.docx
- Is college worth it分析和总结最新分析和总结.docx
- Is EQ more important than IQ分析和总结最新分析和总结.docx
- KS值计算方法分析和总结.docx
- KT决策法分析和总结.docx
- KT设置分析和总结.docx
- k阶原点距和k阶中心距数字特征.docx
- L2CACHE总结分析和总结.docx
- L4 Project Integration Management分析和总结最新分析和总结.docx
- L5 Project Scope Management分析和总结最新分析和总结.docx
- L6 Project Time Management分析和总结最新分析和总结.docx
- L7 Project Cost Management分析和总结最新分析和总结.docx
- L8 Project Quality Management分析和总结最新分析和总结.docx
文档评论(0)