数字温度传感器测温显示系统说明书.docx
《数字温度传感器测温显示系统说明书.docx》由会员分享,可在线阅读,更多相关《数字温度传感器测温显示系统说明书.docx(33页珍藏版)》请在冰豆网上搜索。
![数字温度传感器测温显示系统说明书.docx](https://file1.bdocx.com/fileroot1/2023-6/13/4d5df85f-4ec1-49b3-a622-52cacea7d9cc/4d5df85f-4ec1-49b3-a622-52cacea7d9cc1.gif)
数字温度传感器测温显示系统说明书
数字温度传感器测温显示系统说明书
学院:
机械与电子控制工程学院
班级:
0907班
组长:
段晗晗
组员:
兰天宝、侯晨、李楠楠、王珂、赵亮
时间:
2011-7-1
任务书------------------------------------------------------------------------------3
摘要---------------------------------------------------------------------------------4
正文---------------------------------------------------------------------------------4
总体设计方案
第1章主控制器
1.1AT89C51特点及特性--------------------------------------------------------4
1.2管脚功能说明-----------------------------------------------------------------5
1.3振荡器特性--------------------------------------------------------------------7
1.4芯片擦除-----------------------------------------------------------------------7
第2章温度采集部分设计
2.1.DS18B20技术性能描述----------------------------------------------------7
2.2.DS18B20管脚排列及内部结构-------------------------------------------8
2.3.DS18B20工作原理----------------------------------------------------------8
2.4.DS18B20控制原理----------------------------------------------------------11
2.5.DS18B20与单片机地接口电路-------------------------------------------12
第3章硬件电路与系统软件的设计及分析
3.1.主板电路-----------------------------------------------------------------------13
3.2.软件程序分析(流程图)--------------------------------------------------14
第4章总结与体会----------------------------------------------------------19
参考文献--------------------------------------------------------------------------20
附录---------------------------------------------------------------------------------21
任务书
扩展数字温度传感器DS18B20进行温度检测,显示器采用六位共阴极数码管显示,设计按键4个。
控制系统能够实现:
1、系统实时检测室内温度并在数码管上显示;
2、采用按键对温度控制的上下限进行设定(用4个按键分别对最低限、最高限温度值进行增一减一操作);
3、当超过温度上限时,蜂鸣器报警(或绿色发光二极管亮);低于下限时,红色发光二极管亮。
任务分配:
工作分配表
段晗晗
软硬件设计及仿真,协调工作
兰天宝
焊接电路板,上机调试
李楠楠
课程设计论文的编写
王珂
赵亮
PPT制作
侯晨
在设计过程中随时需要查找资料
摘要
随着现代社会的发展,单片机在我们的日常生活中扮演了越来越重要的角色。
它已逐渐深入到我们生活,工作等各个领域。
其中,数字温度传感器就是一个很好的例子。
与传统温度计相比,数字温度传感器具有读数方便,测量范围广,测量准确等特点。
本次课程设计就为大家详细介绍基于单片机控制的数字温度传感器控制系统。
它可以设置温度控制的上下限,当温度高于上限时,蜂鸣器报警,当低于下限时,发光二极管发光。
本文介绍了数字温度传感器DS18B20的结构特征及控制方法,并对以此传感器和89C51单片机为控制器构成的温度控制系统的工作原理及程序设计进行了相关介绍。
正文
关键词:
蜂鸣器、发光二极管、数字温度传感器DS18B20、AT89C51单片机
第1章主控制器
1.1.AT89C51特点及特性
4K字节FLASH存储器的低电压、高性能CMOS8位微处理器。
它是带2K字节闪存可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除1000次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。
AT89C单片机为很多统嵌入式控制系统提供了一种灵活性高且价廉的方案。
引脚排列如图所示:
主要特性:
·与MCS-51兼容
·4K字节可编程FLASH存储器
·寿命:
1000写/擦循环
·数据保留时间:
10年
·全静态工作:
0Hz-24MHz
·三级程序存储器锁定
·128×8位内部RAM
·32可编程I/O线
·两个16位定时器/计数器
·5个中断源
·可编程串行通道
·低功耗的闲置和掉电模式
·片内振荡器和时钟电路
1.2.管脚功能说明
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏极开路双向I/O口,每脚可吸收8TTL门电流。
当P0口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下表所示:
口管脚备选功能
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2/INT0(外部中断0)
P3.3/INT1(外部中断1)
P3.4T0(记时器0外部输入)
P3.5T1(记时器1外部输入)
P3.6/WR(外部数据存储器写选通)
P3.7/RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
1.3.振荡器特性:
XTAL1和XTAL2分别为反向放大器的输入和输出。
该反向放大器可以配置为片内振荡器。
石晶振荡和陶瓷振荡均可采用。
如采用外部时钟源驱动器件,XTAL2应不接。
有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
1.4.芯片擦除:
整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。
在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。
此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。
在闲置模式下,CPU停止工作。
但RAM,定时器,计数器,串口和中断系统仍在工作。
在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。
第2章温度采集部分设计
2.1.DS18B20技术性能描述
独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。
测温范围为-55℃~+125℃,固有测温分辨率0.5℃。
支持多点组网功能,多个DS18B20可以并联在唯一的三线上,最多只能并联8个,实现多点测温,如果数量过多,会使供电电源电压过低,从而造成信号传输的不稳定。
工作电源:
3~5V/DC。
在使用中不需要任何外围元件;测量结果以9~12位数字量方式串行传送;不锈钢保护管直径Φ6。
适用于DN15~25,DN40~DN250各种介质工业管道和狭小空间设备测温。
PVC电缆直接出线或德式球型接线盒出线,便于与其它电器设备连接。
负压特性:
电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。
独特的一线接口,只需要一条口线通信多点能力,简化了分布式温度传感应用无需外部元件可用数据总线供电,电压范围为3.0V至5.5V无需备用电源测量温度范围为-55°C至+125℃。
华氏相当于是-67°F到257华氏度-10°C至+85°C范围内精度为±0.5°C。
DS18B20可以程序设定9~12位的分辨率,精度为±0.5°C,温度转换为12位数字格式最大值为750毫秒。
可选更小的封装方式,更宽的电压适用范围。
分辨率设定,及用户设定的报警温度存储在EEPROM中,掉电后依然保存。
2.2.DS18B20管脚排列及内部结构
DS18B20引脚定义:
(1)DQ为数字信号输入/输出端;
(2)GND为电源地;
(3)VDD为外接供电电源输入端(在寄生电源接线方式时接地)。
DS18B20内部结构主要由四部分组成:
64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。
该装置信号线高的时候,内部电容器储存能量通由1线通信线路给片子供电,而且在低电平期间为片子供电直至下一个高电平的到来重新充电。
DS18B20的电源也可以从外部3V-5.5V的电压得到。
2.3.DS18B20工作原理
DS18B20的读写时序和测温原理与DS1820相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2s减为750ms。
DS18B20测温原理如图3所示。
DS18B20内部结构图
图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。
高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。
计数器1和温度寄存器被预置在-55℃所对应的一个基数值。
计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。
图3中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。
DS18B20测温原理框图
DS18B20有4个主要的数据部件:
(1)光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。
64位光刻ROM的排列是:
开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。
光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。
(2)DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:
用16位符号扩展的二进制补码读数形式提供,以0.0625℃/LSB形式表达,其中S为符号位。
DS18B20温度值格式表
这是12位转化后得到的12位数据,存储在18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。
例如+125℃的数字输出为07D0H,+25.0625℃的数字输出为0191H,-25.0625℃的数字输出为FE6FH,-55℃的数字输出为FC90H。
(3)DS18B20温度传感器的存储器DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的EEPRAM,后者存放高温度和低温度触发器TH、TL和结构寄存器。
(4)配置寄存器该字节各位的意义如下:
R1
R0
分辨率
温度最大转换时间
0
0
9位
93.75ms
0
1
10位
187.5ms
1
0
11位
375ms
1
1
12位
750ms
温度分辨率设置表
寄存器内容
字节地址
温度值低位(LSByte)
0
温度值高位(MSByte)
1
高温限值(TH)
2
低温限值(TL)
3
配置寄存器
4
保留
5
保留
6
保留
7
CRC校验值
8
DS18B20暂存寄存器分布
2.4.DS18B20控制原理
根据DS18B20的通讯协议,主机(单片机)控制DS18B20完成温度转换必须经过三个步骤:
每一次读写之前都要对DS18B20进行复位操作,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。
复位要求主CPU将数据线下拉500微秒,然后释放,当DS18B20收到信号后等待16~60微秒左右,后发出60~240微秒的存在低脉冲,主CPU收到此信号表示复位成功。
指令
约定代码
功能
读ROM
33H
读DS1820温度传感器ROM中的编码(即64位地址)
符合ROM
55H
发出此命令之后,接着发出64位ROM编码,访问单总线上与该编码相对应的DS1820使之作出响应,为下一步对该DS1820的读写作准备。
搜索ROM
0FOH
用于确定挂接在同一总线上DS1820的个数和识别64位ROM地址。
为操作各器件作好准备。
跳过ROM
0CCH
忽略64位ROM地址,直接向DS1820发温度变换命令。
适用于单片工作。
告警搜索命令
0ECH
执行后只有温度超过设定值上限或下限的片子才做出响应。
ROM指令表
指令
约定代码
功能
温度变换
44H
启动DS1820进行温度转换,12位转换时最长为750ms(9位为93.75ms)。
结果存入内部9字节RAM中。
读暂存器
0BEH
读内部RAM中9字节的内容
写暂存器
4EH
发出向内部RAM的3、4字节写上、下限温度数据命令,紧跟该命令之后,是传送两字节的数据。
复制暂存器
48H
将RAM中第3、4字节的内容复制到EEPROM中。
重调EEPROM
0B8H
将EEPROM中内容恢复到RAM中的第3、4字节。
读供电方式
0B4
读DS1820的供电模式。
寄生供电时DS1820发送“0”,外接电源供电DS1820发送“1”。
RAM指令表
2.5.DS18B20与单片机的接口电路
DS18B20可以采用两种方式供电,一种是采用电源供电方式,此时DS18B20的1脚接地,2脚作为信号线,3脚接电源。
另一种是寄生电源供电方式,如所示单片机端口接单线总线,为保证在有效的DS18B20时钟周期内提供足够的电流,可用一个MOSFET管来完成对总线的上拉。
当DS18B20处于写存储器操作和温度A/D转换操作时,总线上必须有强的上拉,上拉开启时间最大为10us。
采用寄生电源供电方式时VDD端接地。
由于单线制只有一根线,因此发送接口必须是三态的。
由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。
DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。
该协议定义了几种信号的时序:
初始化时序、读时序、写时序。
所有时序都是将主机作为主设备,单总线器件作为从设备。
而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。
数据和命令的传输都是低位在先。
DS18B20与单片机的接口电路
DS18B20操作时序
第3章硬件电路与系统软件的设计及分析
硬件设计思路:
1.P1.0与DS18B20的输入/输出口DQ连接;
2.P1.2、P1.3、P1.4、P1.5分别连接KEY1、KEY2、KEY3、KEY4,分别控制最低限温度和最高限温度值的增一和减一操作;
3.P1.6用来控制蜂鸣器的开闭,P1.7用来控制红色发光二极管的亮暗。
软件的设计思想:
1.当对最低限赋得初值大于或等于最高限初值时,系统打开时会显示错误“EROOR”,通过直接更改可以消除错误;
2.在更改温度限值的时候,会控制最高限温度值大于最低限温度值,最低限温度值小于最高限温度值;
应用89C51(52)单片机设计并制作一个单片机最小系统,达到如下基本要求:
1、具有上电复位和手动复位功能。
2、使用单片机片内程序存储器。
3、具有基本的人机交互接口。
按键输入、LED显示功能。
4、具有一定的可扩展性,单片机I/O口可方便地与其他电路板连接。
软件设计的设计思路是:
主程序进行键盘扫描,判断采用何种方式进行显示,初始化状态为逐字显示,判断后进入相应额方式显示子程序。
设置相应的程序入口,反复调用显示子程序,并在显示过程中反复调用键盘扫描子程序进行延迟,并通过判断是否退出相应的方式显示子程序,进入主程序。
设计程序过程中能很好地提高按键响应速度。
3.1.主板电路
3.2.软件程序分析(流程图)
程序主要包括主程序、显示子程序、键扫描程序、检测程序等。
主程序流程图
显示子程序流程图
键扫描程序流程图
检测程序流程图
第4章总结与体会
我们小组经过近两周的努力,终于完成了数字温度传感器课程设计的任务。
在设计过程中我们遇到许多问题,以前只是单纯的编写一些程序或者说学习一些书本上的知识,但这次我们要将理论付诸于实践,许多意想不到的问题便会接踵而至。
通过反复的调试与小组成员之间的讨论,我们终于将完成了课设中亮灯,蜂鸣,按键等内容的任务,还对89C51单片机和DS18B20温度传感器有了更加深入的了解。
通过这次单片机课程设计,我们有了不少的收获,总结了以下几点:
1、培养了我们查阅手册和文献资料的良好习惯
2、培养了我们独立分析和解决实际问题的能力。
理论必须联系实际才能发挥它真正的作用。
学习知识不能只是纸上谈兵,我们应该以运用为目的。
3、增强与同组的组员的团结合作的精神团。
队合作很重要。
在一个小组中,每个人都有自己擅长的模块,如果合理的分配任务,那么整个工作就会事半功倍。
4、更进一步地熟悉了芯片的结构及掌握了各芯片的工作原理和其具体的使用方法.
总之,我们通过这次课设收获颇多,对于今后这方面的学习我们也会更加的努力!
参考文献:
[1]赵嘉蔚.《单片机原理与接口技术》.北京:
清华大学出版社,2010.2
[2]徐爱钧.《单片机原理实用教程:
基于proteus虚拟仿真》(第2版).北京:
电子工业出版社,2011
[3]刘君华.《传感器技术及应用实例》.北京:
电子工业出版社,2008
[4]侯国章.《测试与传感技术》[M].哈尔滨:
哈尔滨工业大学出版社.2000:
122-124
[5]贾振国.《DS1820及高精度测量的实现》[J].电子技术应用.2000.
[6]谢维成.《单片机原理与应用》[D].北京:
清华大学.2003
[7]黄贤,郑筱霞,曲波等.《传感器实际应用电路设计》[M].成都:
电子科技大学出版社.1997
附录
源程序
KEY1BITP1.2
KEY2BITP1.3
KEY3BITP1.4
KEY4BITP1.5
MINHDATA6CH
MINLDATA6DH
MAXHDATA6EH
MAXLDATA6FH
DQBITP1.0
ORG0000H
AJMPMAIN
ORG0030H
MAIN:
MOVSP,#60H;
MOVDPTR,#0100H;赋命令/状态寄存器地址
MOVA,#00001110B;设置A、B口为基本输入输出口,并B口为输出口,C口为输出口
MOVX@DPTR,A
MOV6CH,#09H;给最低温度限赋初值
MOV