《STC系列单片机项目实践》课件-03 项目三 数字温度计设计_第1页
《STC系列单片机项目实践》课件-03 项目三 数字温度计设计_第2页
《STC系列单片机项目实践》课件-03 项目三 数字温度计设计_第3页
《STC系列单片机项目实践》课件-03 项目三 数字温度计设计_第4页
《STC系列单片机项目实践》课件-03 项目三 数字温度计设计_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

项目3数字温度计设计3.1学习目标[知识目标]

了解LCD1602液晶屏的工作原理、主要技术参数及指令功能;

了解DS18B20温度传感器的引脚定义、温度数据格式及指令功能;

掌握LCD1602液晶的读写时序及DS18B20温度传感器的单总线协议;

掌握数字温度计的设计方法。[能力目标]

能够读懂数据手册,在LCD1602液晶屏上显示字符;

能够根据单总线协议获取到DS18B20感测到的温度值;

能够在一个工程中进行模块化编程;

能够编译、下载并调试程序。

3.2项目分析本项目阐述制作一个数字温度计的过程,该温度计可以感测当前环境的温度,并能将温度值在LCD1602液晶屏上显示出来。为达到项目功能要求,将采用自制实验平台CCITSTC实验板上的LCD1602液晶模块和DS18B20模块来实现相关功能,单片机通过读取DS18B20模块感测到的当前温度值,然后将该值写入LCD1602液晶屏中显示输出。

3.4支撑知识3.4.1LCD1602液晶屏驱动

2读写时序3编程方法3编程方法4LCD1602驱动设计分析初始化函数写命令函数读命令函数写数据函数指定位置显示字符串函数3.4.2DS18B20温度传感器驱动

DS18B20是由美国美信半导体公司生产的单线智能温度传感器,提供9~12位摄氏温度的测量,广泛应用于工业、民用和军事等领域的温度测量及控制仪器、测控系统和大型设备中。它具有体积小、低功耗、接口简单、传输距离远等特点。

DS18B20温度传感器有三种封装,如SO(DS18B20)、uSOP(DS18B20U)和TO-92封装,具体样式可参考数据手册。CCITSTC实验板上采用的是最常用的TO-92封装,外观像一个普通直插晶体管一样。温度数据格式

DS18B20内部有9个8位的寄存器,跟温度值相关的是起始两个寄存器(TMSB和TLSB),分别用来存放当前测到的温度值。为什么要用两个寄存器来存储温度值呢?

DS18B20通过编程可以实现最高12位的温度存储,那么一个8位寄存器显然放不下12位数据,所以必须要用两个寄存器。实际上,对于12位温度值,TMSB,中的高5位存放的是12位温度值的符号位(图中的S位),低3位存放的是12位温度值的高3位,TLSB则存放12位温度值的低8位。

单总线协议

数据手册中DS18B20的初始化时序图,如图所示,这幅图详细描述了初始化时DQ数据线上电平随时间的变化关系:

①由单片机(主机)发出复位脉冲,该脉冲最短时间为480μs。所谓复位脉冲,其实就是将DQ数据线电平拉低;

②单片机释放DQ数据线。这时候由于上拉电阻的作用,DQ数据线上的电平会被拉高。所谓释放DQ数据线,其实就是将DQ数据线电平拉高;

③经过单片机完成①之后的15~60μs等待,如果总线上存在DS18B20,则DS18B20将发出一个存在脉冲,该脉冲的时间为60~240μs。所谓存在脉冲,其实也是将DQ数据线拉低;

④DS18B20发送完存在脉冲后,DQ数据线恢复为空闲状态,也就是高电平。单总线协议

写‘0’时序

①由单片机(主机)将DQ数据线电平拉低,持续时间为60~120μs。

②单片机释放DQ数据线。这时候由于上拉电阻的作用,DQ数据线上的电平会被拉高。所谓释放DQ数据线,其实就是将DQ数据线拉高。

③实际上,在单片机拉低DQ数据线15μs之后,DS18B20会在15μs~60μs之间来对DQ数据线进行采样,采样的典型值是在30μs的时刻读取,最迟也会在60μs时刻才读取;

写‘1’时序

①由单片机(主机)将DQ数据线电平拉低,持续时间为大于1μs。

②单片机立即释放DQ数据线。这时候由于上拉电阻的作用,DQ数据线上的电平会被拉高。需要注意的是,释放总线的时间需要保持至少60μs。

③与写‘0’类似,DS18B20会在DS18B20会在15~60μs之间来对DQ数据线进行采

样,来读取这个‘1’单总线协议

DS18B20的读时序图的左半部分是读‘0’时序,右半部分是读‘1’时序。当单片机去写DS18B20时,单片机将所要传送的数据送到DQ数据线,然后DS18B20来采样DQ上的数据。反过来,当单片机来读DS18B20时,DS18B20需要将所要传送的数据送到DQ,然后由单片机来采样DQ上的数据。

单总线协议

写‘0’时序

①由单片机(主机)将DQ数据线电平拉低,持续时间为60~120μs。

②单片机释放DQ数据线。这时候由于上拉电阻的作用,DQ数据线上的电平会被拉高。所谓释放DQ数据线,其实就是将DQ数据线拉高。

③实际上,在单片机拉低DQ数据线15μs之后,DS18B20会在15μs~60μs之间来对DQ数据线进行采样,采样的典型值是在30μs的时刻读取,最迟也会在60μs时刻才读取;

写‘1’时序

①由单片机(主机)将DQ数据线电平拉低,持续时间为大于1μs。

②单片机立即释放DQ数据线。这时候由于上拉电阻的作用,DQ数据线上的电平会被拉高。需要注意的是,释放总线的时间需要保持至少60μs。

③与写‘0’类似,DS18B20会在DS18B20会在15~60μs之间来对DQ数据线进行采

样,来读取这个‘1’。温度传感器驱动设计分析

温度传感器驱动设计分析

3.5项目实施该项目整个程序的逻辑流程并不复杂,主要包含如下步骤:①单片机从DS18B20读出温度值;②单片机将该温度值写入LCD1602液晶屏;③返回①继续执行。该项目主要是由单片机和LCD1602和DS18B20两个复杂的器件通信,各个模块的难度有所增加,但通过以上模块化划分和通用函数设计,在对LCD1602液晶屏和DS18B20分别进行读写操作也就显得相对容易。因此,在项目编程过程中,不能将不同元件的驱动函数和main函数一起杂糅在一个c文件中,这样编程难度和调试难度都不可预知。本项目将LCD1602液晶屏的驱动程序和DS18B20的驱动程序分别放在独立的c文件中,然后main函数也放入一个独立main.c文件,从而构件成数字温度计项目工程文件。

在工程中建立main.c文件,该文件主要实现了读取DS18B20的温度值,并将结果显示在LCD1602液晶屏上。由于DS18B20所表示的温度值中,含有小数和整数两个部分,所以将小数和整数分离出来,在合适的位置放入小数点显示即可。3.7项目小结通过数字温度计项目,实现了一个单片机和多个外设的通信,项目开发过程应用了很多知识和技能,为后面进行复杂应用开发打下了非常重要的基础。首先,通过该项目开发,了解了查阅器件数据手册的重要性。任何一个元器件都会有相应的数据手册,它用来告诉开发者如何使用该器件。因此,如果将来要从事单片机项目的开发,良好的数据手册阅读能力是一项必备的基本功。然后,通过了解器件的主要技术参数和功能引脚定义,就能开始进行硬件电路设计。例如LCD1602液晶屏的供电电压为5V,这样可以直接从单片机供电电源取电;DS18B20同单片机是单总线通信,因此将DQ数据线连接到单片机的某一引脚,且需添加上拉电

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论