- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第12章 单片机与液晶显示器 12.1 项目内容:液晶显示器显示 12.2 程序设计 12.3 相关知识 12.1 项目内容:液晶显示器显示 12.1.1 硬件电路设计 本项目电路图如下: 12.1.2 基本功能 LCM1602在AT89C51的控制下第一行静止显示“”,第二行以闪烁方式显示“”。 12.2 程序设计 12.2.1 程序代码设计 采用C语言编写了液晶显示程序。程序由LCM1602.c和l602drv8i.c这两个文件组成,LCM1602是本项目的主程序;1602drv8i.c是液晶显示模块LCM1602的驱动程序 。在此,仅介绍本项目的驱动程序,其代码如下: /************************************************* LCM1602驱动程序 8线间接控制方式 晶体频率12MHz ***************************************************/ /*1602接口定义*/ #define LCM P0 #define RS P2^5 // 0,command;1,data #define RW P2^6 // 0,write;1,read #define E P2^7 // 下降沿有效 /*常数定义*/ #define CMD 0 // RS=0,命令 #define DAT 1 // RS=1,数据 // 模块忙闲判断 void RdBusy(void){ char flag=0xff; do{ LCM=0xff; RS=CMD; RW=1; E=1; _nop_(); _nop_(); _nop_(); // 这三句很重要 flag=LCM; E=0; flag=0x80;} while(flag); } // 写命令 void WrCommand(char command) { LCM=command; RS=CMD; RW=0; E=1; E=0; RW=1; RdBusy(); } // 等待LCM完成本次操作 // 写数据 void WrData(char wrdata) { LCM=wrdata; RS=DAT; RW=0; E=1; E=0; RW=1; RdBusy(); } // 等待LCM完成本次操作 12.2.2 仿真结果 下图是PROTEUS中仿真结果的截图,第一行显示内容始 终保持不变,第二行显示内容每隔0.5秒变化一次。 12.3 相关知识 12.3.1 LCM1602外观及功能 LCM1602是最常见的点阵字符型液晶显示模块,由 液晶板、控制器HD44780、驱动器HD44100及若干电 阻电容组成。其液晶板上分2行,每行排列着16个 5×7的点阵,专门用于显示字母、数字以及符号。 下图是带背光的LCM1602的实物图: 12.3.2 LCM1602与单片机连接 下图是8位直接控制方式电路: 4位间接控制方式电路: 4位直接控制方式电路: 12.3.3 LCM1602的读写操作 要正确操作LCM1602,就必须满足它的时序要求,内 嵌HD44780控制器的液晶显示模块的读、写操作时序 如下图所示 : 12.3.4 LCM1602的指令 LCM1602的指令集 如下表所示: 12.3.5 LCM1602字符显示位的控制 LCM1602的显示位与DDRAM地址的对应关系如下表所示。 //模块初始化 void LcmInit(void) { LCM=0; delayx5ms(40); // 延迟200ms WrCommand(0x38);// 8bit接口,两行显示,5×7点阵 delayx5ms(2); // 延迟10ms WrCommand(0x38); // 同上,该指令要写两次 delayx5ms(1); // 延迟5ms WrCommand(0x06); // 地址加一,字符不移动 WrCommand(0x0c);// 开显示,光标不显示,光标不闪烁 WrCommand(0x01); // 清屏 } 12.3.7 LCM1602的自定义字符 定义字符“€”的程序如下: void SetCG(void) { WrCommand(0x40);// 指向CGRAM地址0x00故字符代码是0 WrData(0x06); // 写入第一行的点阵数据 WrData(0x09); WrData(0x1e); WrData(0x08); WrData(0x1e); WrData(0x09); WrData(0x06); // 写入第七行的点
您可能关注的文档
- 电子信息技术专业英语 作者 丁宁 Unit 16Optical Fiber Communication.ppt
- 电子信息技术专业英语 作者 丁宁 unit 17Satellite Communication Systems.ppt
- 电子信息技术专业英语 作者 丁宁 Unit 18Cellular Mobile Telephone System.ppt
- 电子信息技术专业英语 作者 丁宁 Unit1Charge Current and Voltage.ppt
- 电子信息技术专业英语 作者 丁宁 Unit2Semiconductor.ppt
- 电子信息技术专业英语 作者 丁宁 UNIT6Oscilloscope.ppt
- 电子信息技术专业英语 作者 丁宁 unit7Computer Basics.ppt
- 电子信息技术专业英语 作者 丁宁 Unit14 Pulse Code Modulation.ppt
- 电子信息技术专业英语 作者 丁宁 Unit15ATM.ppt
- 电子信息技术专业英语 作者 丁宁_ Unit 4 Operational Amplifier.ppt
- 51系列单片机项目实践 作者 石长华 主编 课件汇总 第13章 测温元件DS18B20应用.ppt
- 80*86汇编语言程序设计 第2版 作者 马力妮 第1章 基础知识.ppt
- 80*86汇编语言程序设计 第2版 作者 马力妮 第2章 80x86计算机组织结构.ppt
- 80*86汇编语言程序设计 第2版 作者 马力妮 第3章 80x86 指令系统和寻址方式.ppt
- 80*86汇编语言程序设计 第2版 作者 马力妮 第6章 子程序设计.ppt
- 80*86汇编语言程序设计 第2版 作者 马力妮 第8章 输入输出与中断.ppt
- 80*86汇编语言程序设计 第2版 作者 马力妮 第9章 磁盘文件存取方法.ppt
- 80*86汇编语言程序设计 第2版 作者 马力妮 第10章 C、C++与汇编语言的混合编程方法.ppt
- Acccess数据库原理与应用(第二版) 作者 林青 第八章 数据访问页.ppt
- Acccess数据库原理与应用(第二版) 作者 林青 第六章 窗体.ppt
原创力文档


文档评论(0)