传感器课程设计1
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计(大作业)报告课程名称:传感器原理及应用
设计题目:利用DS18B20采集温度
摘要
利用DS18B20采集温度,本次传感器原理及应用课程设计,就是用KL25芯片实现温度控制,传统的温度检测大多以热敏电阻为温度传感器,但热敏电阻的可靠性差,测量温度准确率低,而且必须经过专门的接口电路转换成数字信号才能由单片机进行处理。本次采用DS18B20数字温度传感器来实现温度计的设计。显示传感器DS18B20开发测温系统的过程,重点对传感器在单片机下的硬件连接,软件编程以及各模块系统流程进行了详尽分析,特别是温度传感DS18B20
的数据采集过程。
本文主要是运用DS18B20来完成实验,KL25微秒级延时,编写程序代码并进行修改,程序代码主要0是低电平,1是高电平,每次读要复位,读设置为输
入,写设置为输出。
关键词:DS18B20传感器、KL25微妙延时、数据采集。
目录
课程设计(大作业)报告 (1)
一、题目分析 (1)
二、基本理论 (1)
三、总体设计及分析 (1)
1、总体内容 (1)
2、仿真图及原理图 (2)
3、工作原理 (3)
4、串口测试结果 (4)
四、实验器材 (5)
1、器件 (5)
2、DS18B20的特点 (5)
五、程序代码及分析 (5)
六、总结 (9)
七、参考文献 (10)
课程设计(大作业)报告
一、题目分析
利用DS18B20采集温度,本次传感器原理及应用课程设计,就是用KL25芯片实现温度控制,传统的温度检测大多以热敏电阻为温度传感器,但热敏电阻的可靠性差,测量温度准确率低,而且必须经过专门的接口电路转换成数字信号才能由单片机进行处理。本次采用DS18B20数字温度传感器来实现温度计的设计。利用DS18B20采集温度,显示传感器DS18B20开发测温系统的过程,重点对传感器在单片机下的硬件连接,软件编程以及各模块系统流程进行了详尽分析,特别是温度传感器DS18B20的数据采集过程。
温度传感器DS18B20的数据采集,把程序代码烧到KL25芯片,连接面包板上的电路,与芯片相连接,通过串口采集,显示十进制,把环境温度采集到串口上显示出来。KL25芯片自身就有温度传感器,可以通过引脚配置,采集传感器监测到的温度,但是此时监测到的温度并不能用摄氏度进行显示,得到的数据只是原始数据,无法与真实的温度联系在一起,因此我们需要采用回归的方法,将采集到的数据转换为我们所广泛认知的摄氏温度,从而显示在PC界面中。
二、基本理论
对于DS18B20的读时隙是从主机把单总线拉低之后,在15秒之内就得释放单总线,以让DS18B20把数据传输到单总线上。DS18B20在完成一个读时序过程,至少需要60us才能完成,每完成一次都需要复位。
DS18B20的写时序,对于DS18B20的写时序仍然分为写0时序和写1时序两个过程,对于DS18B20写0时序和写1时序的要求不同,当要写0时序时,单总线要被拉低至少60us,保证DS18B20能够在15us到45us之间能够正确地采样IO总线上的“0”电平,当要写1时序时,单总线被拉低之后,在15us之内就得释放单线。
初始化端口A的1号引脚,定义为输出一个高电平,设置A端口的1号引脚
状态为低,进行复位,发送读数据。
三、总体设计及分析
1、总体内容
DS18B20有三只引脚:DQ数字信号输入/输出端,和VDD电源输入端,GND 接地。
提及到温度的检测,我们首先会考虑传统的测温元件有热电偶和热电阻,而热电偶和热电阻测出的一般都是电压,再转换成对应的温度,需要比较多的外部硬件支持,硬件电路复杂,软件调试也复杂,制作成本高。
因此,本数字温度计设计采用智能温度传感器DS18B20作为检测元件,测温范围为-55°C至+125°C,最大分辨率可达0.0625°C。DS18B20可以直接读出被测量的温度值,而采用三线制与单片机相连,减少了外部的硬件电路,具有低成本和易使用的特点。
通过KL25芯片,面包板,温度传感器DS18B20,导线等将电路连接起来,温度传感器DS18B20采集到的温度通过PC机界面显示出来。
2、仿真图及原理图
图1 DS18B20仿真图
DS18B20有三只引脚:DQ数字信号输入/输出端,和VDD电源输入端,GND接地。
图2 DS18B20的读写时序图
(1)DS18B20写逻辑的步骤:写逻辑0,单片机拉低电平大约10-15us,单片机持续拉低电平大约20-45us的时间,释放总线;写逻辑1,单片机拉低电平大约10-15us,单片机拉高电平大约20-45us的时间,释放总线。
(2)DS18B20读逻辑的步骤:读逻辑0,在读取的时候单片机拉低电平大约1us,单片机释放总线,然后读取总线电平,这时候DS18B20会拉低电平,读取电平过后,延迟大约40-45微妙;读逻辑1,在读取的时候单片机拉低电平大约1us,单片机释放总线,然后读取总线电平,这时候DS18B20会拉高电平,读取电平过后,
延迟大约40-45微妙。
DS18B20的写时序,对于DS18B20的写时序仍然分为写0时序和写1时序两个过程,对于DS18B20写0时序和写1时序的要求不同,当要写0时序时,单总线要被拉低至少60us,保证DS18B20能够在15us到45us之间能够正确地采样IO总线上的“0”电平,当要写1时序时,单总线被拉低之后,在15us之内就得释放单线。
3、工作原理
我们使用单点,单线总线上仅有一个DS18B20存在,不需要刻意读取ROM里面的序列号来,然后在匹配DS18B20而是更直接的跳过ROM指令,然后直接执行DS18B20功能指令。DS18B20复位,在,某种意义上就是一次访问DS18B20的开始,也就是开始信号。ROM指令,就是访问,搜索匹配,DS18B20的64位序列号的动作。使能Systick定时器(即向控制及状态寄存器的第0位写1),开始延时。监控控制及状态寄存器的16位,如该位为1,失能Systick定时器(即向控制及状态寄存器的第0位写0),完成延时。
DS18B20的写时序,对于DS18B20的写时序仍然分为写0时序和写1时序两个过程,对于DS18B20写0时序和写1时序的要求不同,当要写0时序时,单总线要被拉低至少60us,保证DS18B20能够在15us到45us之间能够正确地采样IO总线上的“0”电平,当要写1时序时,单总线被拉低之后,在15us之内就得释放单线。初始化端口A的1号引脚,定义为输出一个高电平,设置A端口的1号引脚状态为低,进行复位,发送读数据。
4、串口测试结果
图3 串口测试图
PC机界面显示:
步骤一、将芯片串口引脚与电脑连接,给芯片通电,然后选择串口,波特率后按打开串口按钮。
步骤二、按下采集温度按钮之后开始采集芯片温度。