单片机应用技术10 移动字幕的制作.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
6.在指定的位置上显示一个字符串 void LCD_write_string(uchar X,uchar Y,uchar *s) { LCD_set_xy( X, Y ); //设置显示的起始地址 while (*s) // 判断字符串是否结束 { LCD_en_dat(*s); //LCD锁存当前字符 s ++; //下一个字符 } } * 二、 字符移动程序 字符移动的效果可以采用将字符串内部的字符存放的位置依次变化,每次位置调整后都进行显示,最终的显示效果相当于字符的位置在不断的移动。下面的程序段实现将数组string中的字符向前面移动一个位置,从前面移出的字符数据放到字符串数据的后面。 需要说明的是,字符的移动方式不只是这里所讲的这一种方式,实现移动的方法(如针对LCD1602使用命令05H实现右移或07H实现左移) * #define string_long 20 //说明字符串的长度 unsigned char string[string_long]={…}; //声明字符串 unsigned char i,k; k=string[0]; for(i=0;istring_long-1;i++) { string[i]=string[i+1]; } string[i]=k; * 任务三 点阵LCD的使用 任务目标 在点阵液晶模块RT19264实现汉字的显示和移动,效果如图10-9所示。 图10-9 点阵液晶显示汉字和字符 * 任务分析 点阵液晶模块,可以实现在液晶上以点为单位进行显示。点所构成的形状,就是各种图像,特殊的,汉字也是一种块状图像,因而,点阵液晶模块既可以显示普通图片,也可以显示汉字或字符。 RT19264-6是一种图形点阵液晶显示器,它主要由行驱动器/列驱动器及192×64全点阵液晶显示器组成。可完成图形显示,也可以显示12×4个(16×16点阵)汉字。 * 用单片机驱动RT19264-6的电路有总线方式和模拟方式,本任务中采用模拟方式控制RT19264-4,具体的电路原理图见图10-10所示。 图10-10 AT89S51模拟方式驱动RT19264-6的电路原理图 * 程序设计分析 根据任务分析,需要实现汉字的显示和移动。在编写控制程序时,首先要编写能够驱动液晶显示指定的数据的程序段,然后才能显示汉字、图像等内容。而汉字或图像的移动,实际上相当于将汉字或图像在不同的位置上的多次显示。 作为演示程序,具体的显示内容并不重要,但要代表出常见的内容,本任务中的演示程序中,显示的内容有汉字、数字和英文字符。 * 一、 RT19264的常用函数 下面的函数是针对RT19264-6所开发的,如果使用其他的液晶,可以参照这些函数并做适当的修改就可以使用了。 1.查看液晶是否忙 void busy(void) { RS = 0; //指令 RW = 1; //读 LCDIO = 0xFF; //输出0xff以便读取正确 E = 1; while(LCDIO 0x80); //最高位为1表示器件忙,等待器件操作完成 E = 0; delay10us(); } * 2.选择显示区间 由于19264内部是由三块芯片驱动的,在控制时需要对其内部芯片进行选择,对应的选择函数如下所示: void SelectL() //选择左面的芯片 { CSA= 0; CSB= 0; } void SelectM() //选择中间的芯片 { CSA= 0; CSB= 1; } void SelectR() //选择右面的芯片 { CSA= 1; CSB= 0; } * 3.写入命令 写入命令分为向一个芯片写入命令,还是向三个芯片写入命令。WriteCom函数只能向一个芯片写入命令,在调用之前必须确定选择的芯片。WriteCommand是向三个芯片写入同一个命令,结束之后默认选择第三个芯片。 void WriteCom(unsigned char CommandByte) { busy(); // 检测LCM忙 LCDIO = CommandByte; // 将命令字送到数据端口 RS = 0; // 表示操作的是指令 RW = 0; //

文档评论(0)

132****9295 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档