单片机原理及应用_第四讲.ppt

  1. 1、本文档共92页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机原理及应用_第四讲

初始化 // 函数名称:LCD_Init() // 函数功能:初始化LCD // 入口参数:无 // 出口参数:无 /* ***************************************************** */ void LCD_Init(void) { WrComLCD(0x30); // 功能设定:8位数据接口、选择基本指令 delay(10); WrComLCD(0x01); // 显示清屏 delay(10); WrComLCD(0x0C); //显示设置:开显示、游标关、不反白 delay(10); } 【例1】12864液晶显示实例(基于ST7920) 实现在12864液晶(带字库)上显示汉字,要求如下: 第一行显示天生我才必有用, 第二行显示千金散尽还复来。 第三行显示 -- 李白 第四行显示单片机爱好者共勉 源程序 绘图RAM(GDRAM) 绘图显示RAM提供64×32个位元组的记忆空间,在更改绘图RAM时,先连续写入水平与垂直的坐标值,再写入两个8位元的资料到绘图RAM,而地址计数器(AC)会自动加一;在写入绘图RAM的期间,绘图显示必须关闭,整个写入绘图RAM的步骤如下: 1 关闭绘图显示功能。 2 先将水平的位元组坐标(X)写入绘图RAM地址; 3 再将垂直的坐标(Y)写入绘图RAM地址; 4 将D15——D8写入到RAM中; 5 将D7——D0写入到RAM中; 6 打开绘图显示功能。 按点阵显示汉字、图片 若LCM模块自带汉字字库,该字库中的字型码均为宋体的,无法按照其他字体显示。 若LCM模块不带汉字字库时要想显示汉字的话,需将汉字当成点阵图形来显示,可以得到汉字多种字体的点阵图,能按照不同字体显示汉字。 首先要去取汉字对应的点阵图形,将其写入GDRAM,按照绘图显示。这里需要用到取模软件,该软件既可以取汉字的点阵数据,也可以取图片的点阵数据。 ST7920是按行写的,应该选择横向取模 KS0108是按列写的,应该选择纵向取模 程序的编写与取模顺序有很大的关系,一定要注意,要搞清楚取模顺序 汉字取模 01。单击“模式”菜单设置为“字符模式” 02。单击“选项”菜单设置为“取模方式”为逐列方式,“C51格式” 03。在“生成字模”左边的文本框中输入汉字。 04。单击“生成字模” 05。单击“保存字模”将点阵数据保存到TXT文件 图片取模 01。单击“模式”菜单设置为“图形模式” 02。单击“选项”菜单设置为“取模方式”为逐列方式,“C51格式” 03。单击“文件”中的“打开”,选择图片(图片类型:单色BMP(因为128*64只能显示单色的图像),像素128*64(像素大了则一屏显示不完,要编程移屏,) 04。单击“生成字模” 05。单击“保存字模”将点阵数据保存到TXT文件 LCD绘制图片 void LcdDrawPicture(unsigned char *pPicture) { unsigned char i, j ; WrComLCD(0x34); //写数据时,选择扩充指令,关闭图形显示 /* ==== 先操作上半屏 ==== */ for(i = 0;i 32;i++) //i用来控制垂直地址Y(0~31) { WrComLCD(0x80 + i); //先写垂直坐标值 WrComLCD(0x80 + 0); //再写水平坐标值,上半屏水平地址X是(0-7) //每写入一帧数据(16位)后自动增加1 for(j = 0;j 16;j++) //一帧数据分两次写,共8帧 WrDatLCD(*pPicture++); //先高8位,后低8位 } /* ==== 后操作下半屏 ==== */ for(i = 0;i 32;i++) { WrComLCD(0x80 + i); WrComLCD(0x80 + 8); //下半屏水平地址X是(8-15) for(j = 0;j 16;j++) WrDatLCD(*pPicture++); } WrComLCD(0x36); //写完数据,开图形显示 } 源程序 【例

您可能关注的文档

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档