《温度传感器DS18B及LCD1602的使用》.docVIP

  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文档。上传文档
查看更多
PAGE PAGE 2 西南科技大学 实验报告 课程名称: 单片机原理及其应用A 实验名称:LCD1602及DS18B20的应用 姓 名: XX 学 号: XXXXXXXXXX 班 级: XXXX 指导教师: XXX 西南科技大学信息工程学院制 PAGE PAGE 15 实验题目 实验目的 学习和理解液晶显示的原理,并且能够读懂液晶显示的时序图,学会编写有关LCD1602的读、写等的程序。 学习和理解温度传感器的原理,并尝试着应用,能够根据DS18B20中存储的十六进制数来计算温度,理解原码和补码的转换。 在实验中,每次出现问题时,能够冷静地面对,通过改正实验中的错误,逐渐积累经验。 实验原理 1. 1602 液晶内部自带 80 个字节的DDRAM,用来存储待显示的字符代码,如下图所示: 图1 1602的DDRAM结构图 第一行的地址是 0x00到 0x27,第二行的地址从 0x40 到 0x67,其中第一行 0x00 到 0x0F是与液晶上第一行 16 个字符显示位置相对应的,第二行 0x40 到 0x4F 是与第二行 16 个字符显示位置相对应的。而每行都多出来一部分,是为了显示移动字幕设置的。 1602 字符液晶是显示字符的,因此它跟 ASCII 字符表是对应的。 2. 1602基本的读写时序有4个:(1) 读状态;(2) 读数据(较少使用);(3) 写命令;(4) 写数据。(1)读状态:1602液晶有一个状态字字节,通过读取这个状态字的内容,就可知道 1602 液晶的一些内部情况,如下表所示: 图2 1602读状态 (3) 写命令:时序要求:RS=L, R/W=L, D0~D7=指令码, E=高脉冲(E 使能引脚先从低拉高,再从高拉低,形成一个高脉冲)。(4) 写数据:时序要求:RS=H, R/W=L, D0~D7=数据, E=高脉冲 3. 1 -Wire 总线开始需要检测这条总线上是否存在 DS18B20这个器件。如果这条总线上存在 DS18B20,总线会根据时序要求返回一个低电平脉冲,如果不存在的话,也就不会返回脉冲,即总线保持为高电平,所以习惯上称之为检测存在脉冲。此外,获取存在脉冲不仅仅是检测是否存在DS18B20,还要通过这个脉冲过程通知 DS18B20准备好,单片机要对它进行操作了。 4. DS18B20芯片通过达拉斯公司的单总线协议依靠一个单线端口通讯,如何区分不同的器件呢?在每个 DS18B20 内部都有一个唯一的 64 位长的序列号,这个序列号值就存在 DS18B20内部的 ROM 中。开始的 8 位是产品类型编码( DS18B20 是 0x10),接着的 48 位是每个器件唯一的序号,最后的 8 位是 CRC 校验码。这里只讲一条总线上只接一个器件的指令和程序,可以跳过 ROM,不进行 ROM检测(0xCC)。 实验步骤 打开protues,新建一个文件,根据实验内容和实验要求,画出原理图并保存。 打开keil,新建工程和文件,根据protues中已经画好的原理图的连线方式和实验内容及其要求,编写程序并进行编译。 当在keil中的程序经编译没有语法错误时,生成hex文件,将它导入到protues的单片机中,进行仿真。根据实验内容和要求对实验结果进行检测,若实验结果正确,则进行下一个实验,若实验结果和实验要求不同,则分别查找可能存在于程序和原理图中的问题,改正并直到结果正确为止。 实验结果及分析 在protues中运行编写的第一个程序,结果如下图所示: 图3 1602显示字符 运行之后,屏幕上显示“Hello”和“Welcome to Swust”,其中“Hello”位于第一行,从第五位开始显示,此处的程序为unsigned char str[] = Hello;InitLcd1602(); LcdShowStr(5, 0, str);而“Welcome to Swust”显示在第二行,此处的程序为LcdShowStr(0, 1, Welcome to SWUST!)。 运行第二个程序,结果如下所示: 图4 DS18B20和1602的应用结果 实验时,通过手动调节温度传感器上面的值,进行升温或者降温,LCD1602将会显示对应的温度值,通过计算温度传感器的储存器内的值,可得到与液晶显示屏上相同的值。 图5 DS18B20寄存器内容 其中DS18B20主要寄存器数据格式如下所示: 图6 DS18B寄存器格式 由此可计算出温度

文档评论(0)

kanghao1 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档