多机温度检测系统河南理工大学.docx
- 文档编号:28091625
- 上传时间:2023-07-08
- 格式:DOCX
- 页数:52
- 大小:628.66KB
多机温度检测系统河南理工大学.docx
《多机温度检测系统河南理工大学.docx》由会员分享,可在线阅读,更多相关《多机温度检测系统河南理工大学.docx(52页珍藏版)》请在冰豆网上搜索。
多机温度检测系统河南理工大学
河南理工大学
《单片机应用与仿真训练》设计报告
题目:
多机温度检测系统
姓名:
学号:
专业班级:
电气11-02
指导老师:
王莉
所在学院:
电气工程与自动化学院
2014年1月8日
摘要
温度是一个和人们生活环境密切相关物理量,也是在其他研究、生产、科研、生活中需要测量和控制的物理量,同时也是最基本的环境参数。
人们的生活与坏境温度息息相关,物理、化学、生物等科学都离不开温度。
像太阳能热水器、电力、石油、农业大棚经常需要对环境温度进行检测,并根据实际的要求对温度进行控制。
例如,许多太阳能热水器中,需要通过温度检测来控制其水泵运作;在农业大棚中,通过温度检测来判断是否合适农作物种植与生长;许多电子设备都有额定温度单位,没有合适的温度会使电子产品造成故障等等。
传统的测量不仅费时费力。
现在由于单片机的加入,使得测温更加精确,并且方式更多。
对温度检测的方法也不同。
传统的检测温度方式不仅单一,而且达不到很多的精度要求,但是现在加入了单片机,可以通过单片机进行数据检测、保存、控制、运算等等。
本次采用多机温度检测,主机分时分段显示从机,并可以通过按键分别显示从机,温度通过数码管显示。
温度正常时,led正常闪烁,蜂鸣器正常发声。
当从机的温度值超限时,主机和从机同时报警,LED快速闪烁,蜂鸣器发声频率较高。
从机进行采集温度,使用DS18B20测量温度,将温度值通过串行通信传递给主机,使主机对温度值进行处理,判断。
关键字:
温度检测DS18B20数码管测温报警串行通信
目录
一、概述4
1.1课程设计的目的和意义4
1.2课程设计的任务和要求4
二、系统总体方案及硬件设计5
2.1DS18B20功能介绍5
2.1.1DS18B20简介5
2.1.2DS18B20的主要特性5
2.1.3DS18B20的内部结构6
2.1.4DS18B20的应用范围7
2.1.5DS18B20的引脚定义7
2.1.6DS18B20的供电8
2.1.7DS18B20的ROM9
2.1.8DS18B20的RAM10
2.1.9DS18B20温度存储12
2.1.10DS18B20初始化12
2.1.11DS18B20读写操作13
2.1.12DS18B20的写操作..................................................13
2.2总体方案14
2.2.1主机14
2.2.2从机15
2.3硬件设计15
2.3.1单片机最小模式引脚15
2.3.2时钟晶振电路16
2.3.3数码管显示电路17
2.3.4按键扫描电路17
2.3.5蜂鸣器驱动电路18
三、软件设计19
3.1系统分析19
3.1.1主机分析19
3.1.2从机分析19
3.2整体流程图19
3.3参数计算19
3.3.1波特率的计算19
3.3.2定时器初值计算19
3.4DS18B20相关程序设计流程图21
3.4.1初始化程序21
3.4.2读控制字程序22
3.4.3写控制字程序23
3.5主机有关程序流程图24
3.5.1初始化程序24
3.5.2读取寄存器中存储的温度数据程序24
3.5.3数码管显示程序24
3.6从机有关程序流程图25
3.6.1设置高低温报警预值25
3.6.2LED灯随温度闪烁26
4课程设计体会27
5参考文献27
附录28
附1:
源程序代码28
附2:
系统原理图48
一概述
1.1课程设计的目的和意义
而在我们的日常生活中,温度检测占据了重要的地位,电力、电讯设备之过热故障预知检测,空调系统的温度检测,各类运输工具之组件的过热检测,保全与监视系统之应用,医疗与健诊的温度测试,化工、机械等设备温度过热检测。
温度检测系统应用十分广阔。
这使我们准备设计一个可以检测温度的装置,既可以显示实时的温度,也可以在超出预设温度的时候报警。
我们在课堂上学习到的只是理论,而理论需要实践才可以更好的运用我们学到的知识,通过课程设计也可以提高我们的实际动手能力和独立思考的能力。
1.2课程设计的任务和要求
1.采用2个单片机系统,组成双机温度检测系统;
2.下位单片机采集温度,在数码管上显示实时温度,通过串行通信传送至上位单片机;
3.上位单片机用数码管显示实时温度,可以任意设定温度的上下限报警功能。
4.当温度超限时上下位机同时报警
5.除了用数码管显示显示实时温度外,用LED闪烁频率显示温度的高低,温度越高,闪烁频率越快
二、系统总体方案及硬件设计
2.1DS18B20功能介绍
2.1.1DS18B20简介
美国Dallas半导体公司的数字化温度传感器DS1820是世界上第一片支持"一线总线"接口的温度传感器,在其内部使用了在板(ON-B0ARD)专利技术。
全部传感元件及转换电路集成在形如一只三极管的集成电路内。
一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。
现在,新一代的DS18B20体积更小、更经济、更灵活。
使你可以充分发挥“一线总线”的优点。
在传统的模拟信号远距离温度测量系统中,需要很好的解决引线误差补偿问题、多点测量切换误差问题和放大电路零点漂移误差问题等技术问题,才能够达到较高的测量精度。
另外一般监控现场的电磁环境都非常恶劣,各种干扰信号较强,模拟温度信号容易受到干扰而产生测量误差,影响测量精度。
因此,在温度测量系统中,采用抗干扰能力强的新型数字温度传感器是解决这些问题的最有效方案,新型数字温度传感器DS18B20具有体积更小、精度更高、适用电压更宽、采用一线总线、可组网等优点,在实际应用中取得了良好的测温效果。
新的"一线器件"DS18B20体积更小、适用电压更宽、更经济。
DS18B20可以程序设定9~12位的分辨率,精度为±0.5°C。
可选更小的封装方式,更宽的电压适用范围。
分辨率设定,及用户设定的报警温度存储在EEPROM中,掉电后依然保存。
DS18B20的性能是新一代产品中最好的!
性能价格比也非常出色!
DS1822与DS18B20软件兼容,是DS18B20的简化版本。
省略了存储用户定义报警温度、分辨率参数的EEPROM,精度降低为±2°C,适用于对性能要求不高,成本控制严格的应用,是经济型产品。
继"一线总线"的早期产品后,DS1820开辟了温度传感器技术的新概念。
2.1.2DS18B20的主要特性
1.独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。
2.测温范围-55℃~+125℃,固有测温误差(注意,不是分辨率,这里之前是错误的)1℃。
3.支持多点组网功能,多个DS18B20可以并联在唯一的三线上,最多只能并联8个,实现多点测温,如果数量过多,会使供电电源电压过低,从而造成信号传输的不稳定。
4.工作电源:
3.0~5.5V/DC(可以数据线寄生电源)
5.在使用中不需要任何外围元件
6.测量结果以9~12位数字量方式串行传送
7.不锈钢保护管直径Φ6
8.适用于DN15~25,DN40~DN250各种介质工业管道和狭小空间设备测温
9.标准安装螺纹M10X1,M12X1.5,G1/2”任选
10.PVC电缆直接出线或德式球型接线盒出线,便于与其它电器设备连接。
2.1.3DS18B20的内部结构
DS18B20内部结构主要由四部分组成:
64位光刻ROM,温度传感器,温度报警触发器TH和TL,配置寄存器。
DS18B20内部结构图如图1所示。
图1
DS18B20有4个主要的数据部件:
1.64位激光ROM。
64位激光ROM从高位到低位依次为8位CRC、48位序列号和8位家族代码(28H)组成。
如图2所示。
图2
2.温度灵敏元件。
3.非易失性温度报警触发器TH和TL。
可通过软件写入用户报警上下限值。
4.配置寄存器。
配置寄存器为高速暂存存储器中的第五个字节。
DS18B20在0工作时按此寄存器中的分辨率将温度转换成相应精度的数值,其各位定义如图3所示。
TM
R1
R0
1
1
1
1
1
MSB
DS18B20配置寄存器结构图
LSB
图3
其中,TM:
测试模式标志位,出厂时被写入0,不能改变;R0、R1:
温度计分辨率设置位,其对应四种分辨率如下表所列,出厂时R0、R1置为缺省值:
R0=1,R1=1(即12位分辨率),用户可根据需要改写配置寄存器以获得合适的分辨率。
配置寄存器与分辨率关系表如表1所示
表1:
配置寄存器与分辨率关系表
R0
R1
温度计分辨率/bit
最大转换时间/us
0
0
9
93.75
0
1
10
187.5
1
0
11
375
1
1
12
750
2.1.4DS18B20的应用范围
1.该产品适用于冷冻库,粮仓,储罐,电讯机房,电力机房,电缆线槽等测温和控制领域
2.轴瓦,缸体,纺机,空调,等狭小空间工业设备测温和控制。
3.汽车空调、冰箱、冷柜、以及中低温干燥箱等。
4.供热/制冷管道热量计量,中央空调分户热能计量和工业领域测温和控制
2.1.5DS18B20的引脚定义
1.DQ为数字信号输入/输出端;
2.GND为电源地;
3.VDD为外接供电电源输入端(在寄生电源接线方式时接地)。
如图4所示。
图4
2.1.6DS18B20的供电
DS18B20寄生电源供电(如图所示)
在总线为高电平是来自总线的"盗窃"电流流过了DQ引脚。
该电流在总线为高的时候给DS18B20充电,部分电源将存储在寄生电源电容上(Cpp)并在总线为低的时候提供电源。
当DS18B20采用寄生电源供电模式时,VDD引脚必须接地。
在寄生电源模式中,只要满足特定的时序和电压的要求,单总线和Cpp能够给DS10B20提供有效的电流来满足绝大部分的操作。
参阅直流电气部分范围交流电气部分的数据)然而在DS18B20进行温度转换、从暂存寄存器向E2PROM复制数据时,电流高达1.5mA。
这个电流将会在较小的总线上拉电阻上产生较大的压降,超过部分的电流将有Cpp提供。
因此为了确保有足够的供电电流,无论在DS18B20进行温度转换、从暂存寄存器向E2PROM复制数据,有必要在单总线上提供一个大的上拉电阻。
正如图6给出的一样,这个可以通过使用一个MOSFET直接将总线拉至最大电流。
在发送一个温度转换指令[44H]和复制暂存寄存器数据指令[48H]后,总线上上拉电阻的最大转换时间为10µS,且总线必须在温度转换(Tconv)和数据传输(Twr=10ms)器件上拉至高电平。
当上拉电阻有效的时候,总线上不能够做其他的操作。
使用这种方法的好处是不需要MOSFET的上拉电阻,同时在温度转换期间,单总线可以传输其他的数据。
在测量温度高于100℃的时候不推荐使用寄生电源供电,因为在这样的温度下由于较高的漏电电流DS18B20不能够维持通信,这时强烈建议使用一个外部电源供电。
在有些情况下,总线主器件可能不清楚挂接在总线上的DS18B20是寄生电源供电还是外部电源供电,而主器件需要知道这一消息来决定是否在温度转换期间使用较大的上拉电阻。
为了得到这一信息,主器件在读时隙指令之后的读供电指令[B4h]以后发送一个扫描ROM[CCh]的指令,在读时隙期间,有寄生电源供电的DS18B20将把总线拉低,而由外部供电的DS18B20将维持总线为高电平。
如果总线为低电平,则主器件在温度转换期间将在总线上使用强上拉电阻。
2.1.7DS18B20的ROM
光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。
64位光刻ROM的排列是:
开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。
光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的
ROM指令表如表2所示
表2:
ROM指令表
指令
约定代码
功能
读ROM
33H
读DS1820温度传感器ROM中的编码(即64位地址)
符合ROM
55H
发出此命令之后,接着发出64位ROM编码,访问单总线上与该编码相对应的DS1820使之作出响应,为下一步对该DS1820的读写作准备。
搜索ROM
0FOH
用于确定挂接在同一总线上DS1820的个数和识别64位ROM地址。
为操作各器件作好准备。
跳过ROM
0CCH
忽略64位ROM地址,直接向DS1820发温度变换命令。
适用于单片工作。
告警搜索命令
0ECH
执行后只有温度超过设定值上限或下限的片子才做出响应。
2.1.8DS18B20的RAM
DS18B20的存储器包括高速暂存器RAM和可电擦除RAM,可电擦除RAM又包括温度触发器TH和TL,以及一个配置寄存器。
存储器能完整的确定一线端口的通讯,数字开始用写寄存器的命令写进寄存器,接着也可以用读寄存器的命令来确认这些数字。
当确认以后就可以用复制寄存器的命令来将这些数字转移到可电擦除RAM中。
当修改过寄存器中的数时,这个过程能确保数字的完整性。
高速暂存存储器高速暂存存储器由9个字节组成,其分配如表5所示。
当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第0和第1个字节。
单片机可通过单线接口读到该数据,读取时低位在前,高位在后,数据格式如表1所示。
对应的温度计算:
当符号位S=0时,直接将二进制位转换为十进制;当S=1时,先将补码变为原码,再计算十进制值。
表2是对应的一部分温度值。
第九个字节是冗余检验字节。
DS18B20暂存寄存器分布如表3所示
表3:
DS18B20暂存寄存器分布
寄存器内容
字节地址
温度值低位(LSByte)
0
温度值高位(MSByte)
1
高温限值(TH)
2
低温限值(TL)
3
配置寄存器
4
保留
5
保留
6
保留
7
CRC校验值
8
RAM指令表如表4所示
表4:
RAM指令表
指令
约定代码
功能
温度变换
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字节。
读供电方式
0B4H
读DS1820的供电模式。
寄生供电时DS1820发送“0”,外接电源供电DS1820发送“1”。
2.1.9DS18B20温度存储
图7
DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:
用16位符号扩展的二进制补码读数形式提供,以0.0625℃/LSB形式表达,其中S为符号位。
(如图7所示)
2.1.10DS18B20初始化
1.先将数据线置高电平“1”。
2.延时(该时间要求的不是很严格,但是尽可能的短一点)
3.数据线拉到低电平“0”。
4.延时750微秒(该时间的时间范围可以从480到960微秒)。
5.数据线拉到高电平“1”。
6.延时等待(如果初始化成功则在15到60微妙时间之内产生一个由DS18B20所返回的低电平“0”。
据该状态可以来确定它的存在,但是应注意不能无限的进行等待,不然会使程序进入死循环,所以要进行超时控制)。
7.若CPU读到了数据线上的低电平“0”后,还要做延时,其延时的时间从发出的高电平算起(第(5)步的时间算起)最少要480微秒。
8.将数据线再次拉高到高电平“1”后结束。
2.1.11DS18B20读写操作
DS18B20的读操作
1.将数据线拉高“1”。
2.延时2微秒。
3.将数据线拉低“0”。
4.延时3微秒。
5.将数据线拉高“1”。
6.延时5微秒。
7.读数据线的状态得到1个状态位,并进行数据处理。
8.延时60微秒。
2.1.12DS18B20的写操作
1.数据线先置低电平“0”。
2.延时确定的时间为15微秒。
3.按从低位到高位的顺序发送字节(一次只发送一位)。
4.延时时间为45微秒。
5.将数据线拉到高电平。
6.重复上
(1)到(6)的操作直到所有的字节全部发送完为止。
7.最后将数据线拉高。
2.2总体方案
主机的程序说明:
对于主机而言其作用是利用数字测温芯片DS18B20,来采集温度,并将采集的温度用数码管显示实时温度,其显示采用数码管的动态扫描技术。
对采集的温度,我们利用串行口通信技术,将采集的温度发送给从机,做到温度的实时采集。
2.3硬件设计
2.3.1单片机最小模式引脚
STC10F08采用宏晶最新第六代加密技术,超强抗干扰,超强抗静电,整机可轻松过2万伏静电测试。
速度快,1个时钟/机器周期,可用低频晶振,大幅降低EMI。
输入/输出口多,最多有40个I/O,复位脚如当I/O口使用,可省去外部复位电路。
超低功耗。
在系统可编程,无需编程器,无需仿真器,可远程升级。
内部集成高可靠复位电路,复位脚设置为I/O口使用时,复位脚可浮空高速:
1个时钟/机器周期,增强型8051内核,速度比普通8051快6~12倍。
宽电压:
5.5~3.8V/3.3V。
低功耗设计:
掉电模式(可由任意一个外部中断唤醒,可支持下降沿/低电平和远程唤醒,STC11xx系列还可通过内部掉电唤醒专用定时器唤醒)支持掉电唤醒的管脚:
INT0/P3.2,INT1/P3.3,T0/P3.4,T1/P3.5,RxD/P3.0(或RxD/P1.6)。
工作频率:
0~35MHz,相当于普通8051:
0~420MHz。
时钟:
外部晶体或内部RC振荡器可选,在ISP下载编程用户程序时设置。
8K字节片内Flash程序存储器,擦写次数10万次以上。
256字节片内RAM数据存储器。
ISP/IAP,在系统可编程/在应用可编程,无需编程器/仿真器。
2个16位定时器,兼容普通8051的定时器T0/T1。
1个独立波特率发生器(故无需T2做波特率发生器),缺省是T1做波特率发生器。
可编程时钟输出功能,T0在P3.4输出时钟,T1在P3.5输出时钟,BRT在P1.0输出时钟。
硬件看门狗(WDT)。
全双工异步串行口(UART),兼容普通8051,可当2个串口使用(串口可在P3与P1之间任意切换)先进的指令集结构,兼容普通8051指令集,有硬件乘法/除法指令通用I/O口(36/40个),复位后为:
准双向口/弱上拉(普通8051传统I/O口)。
可设置成四种模式:
准双向口/弱上拉,推挽/强上拉,仅为输入/高阻,开漏。
每个I/O口驱动能力均可达到20mA,44/40管脚的IC建议整个芯片不要超过120mA,20/18/16管脚的IC建议整个芯片不要超过70mA。
2.3.2时钟晶振电路(如图11所示)
图11
晶振是晶体振荡器的简称,在电气上它可以等效成一个电容和一个电阻并联再串联一个电容的二端网络,电工学上这个网络有两个谐振点,以频率的高低分其中较低的频率是串联谐振,较高的频率是并联谐振.由于晶体自身的特性致使这两个频率的间隔相当的接近,在这个极窄的频率范围内,晶振等效为一个电感,所以只要晶振的两端并联上合适的电容它就会组成并联谐振电路.这个并联谐振电路加到一个负反馈电路中就可以构成正弦波振荡电路,由于晶振等效为电感的频率范围很窄,所以即使其他元件的参数变化很大,这个振荡器的频率也不会有很大的变化.时钟晶振电路模块为单片机提供特定的时钟周期,以备单片机工作使用。
单片机内部有一个用于构成振荡器的高增益反相放大器的输入与输出端分别是引脚XTAL1和XTAL2,在两引脚上外接时钟源即可构成时钟电路。
此实验的晶振频率为11.0592MHz。
2.3.3数码管显示电路
图12
数码管由8个发光二极管(以下简称字段)构成,通过不同的组合可用来显示数字09、字符AF、H、L、P、R、U、Y、符号“”及小数点“”。
数码管的外形结构如下图所示。
数码管又分为共阴极和共阳极两种结构。
常用的LED显示器为8段(或7段,8段比7段多了一个小数点“dp”段)。
有共阳极和共阴极两种
1、数码管的结构
数码管由8个发光二极管(以下简称字段)构成,通过不同的组合可用来显示数字09、字符AF、H、L、P、R、U、Y、符号“”及小数点“”。
数码管的外形结构如下图所示。
数码管又分为共阴极和共阳极两种结构。
常用的LED显示器为8段(或7段,8段比7段多了一个小数点“dp”段)。
有共阳极和共阴极两种
2、数码管工作原理
共阳极数码管的8个发光二极管的阳极(二极管正端)连接在一起。
通常,公共阳极接高电平(一般接电源),其它管脚接段驱动电路输出端。
当某段驱动电路的输出端为低电平时,则该端所连接的字段导通并点亮。
根据发光字段的不同组合可显示出各种数字或字符。
此时,要求段驱动电路能吸收额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻。
共阴极数码管的8个发光二极管的阴极(二极管负端)连接在一起。
通常,公共阴极接低电平(一般接地),其它管脚接段驱动电路输出端。
当某段驱动电路的输出端为高电平时,则该端所连接的字段导通并点亮,根据发光字段的不同组合可显示出各种数字或字符。
此时,要求段驱动电路能提供额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻。
3.数码管字形编码
要使数码管显示出相应的数字或字符,必须使段数据口输出相应的字形编码。
字型码各位定义为:
数据线D0与a字段对应,D1与b字段对应……,依此类推。
如使用共阳极数码管,数据为0表示对应字段亮,数据为1表示对应字段暗;如使用共阴极数码管,数据为0表示对应字段暗,数据为1表示对应字段亮。
如要显示“0”,共阳极数码管的字型编码应为:
11000000B(即C0H);共阴极数码管的字型编码应为:
00111111B(即3FH)
2.3.4按键扫描电路
矩阵式键盘中,行、列线分别连接到按键开关的两端,行线通过上拉电阻接到+5V上。
当无键按下时,行线处于高电平状态;当有键按下时,行、列线将导通,此时,行线电平将由与此行线相连的列线电平决定。
这一点是识别矩阵按键是否被按下的关键。
然而,矩阵键盘中的行线、列线和多个键相连,各按键按下与否均影响该键所在行线和列线的电平,各按键间将相互影响,因此,必须将行线、列线信号配合起来作适当处理,才能确定闭合键的位置。
键盘扫描程序一般应包括以下内容:
1.判别有无键按下。
2.键盘扫描取得闭合键的行、列值。
3.用计算法或查表法得到键值。
4.判
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 多机温度检测系统 河南理工大学 温度 检测 系统 河南 理工大学
![提示](https://static.bdocx.com/images/bang_tan.gif)