51系列单片机项目实践 作者 石长华 主编 课件汇总 第12章 单片机与液晶显示.pptVIP

51系列单片机项目实践 作者 石长华 主编 课件汇总 第12章 单片机与液晶显示.ppt

  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文档。上传文档
查看更多
第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); // 写入第七行的点

您可能关注的文档

文档评论(0)

开心农场 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档