电子信息工程课程设计温度测量系统设计1.docx
《电子信息工程课程设计温度测量系统设计1.docx》由会员分享,可在线阅读,更多相关《电子信息工程课程设计温度测量系统设计1.docx(30页珍藏版)》请在冰豆网上搜索。
![电子信息工程课程设计温度测量系统设计1.docx](https://file1.bdocx.com/fileroot1/2023-1/8/da28f018-99ae-4f3c-9ed2-36282db950c0/da28f018-99ae-4f3c-9ed2-36282db950c01.gif)
电子信息工程课程设计温度测量系统设计1
电子信息工程《单片机课程设计》研究报告
多路温度测量系统设计
学生姓名
中国·大庆
2014年6月
课程设计任务书
一、课程设计课题:
多路温度测量系统设计
二、课程设计工作日自2014年6月17日至2014年7月1日
三、课程设计进行地点:
黑龙江八一农垦大学
四、程设计任务要求:
(详细内容见课程设计文档)
1.课题来源:
教师下发
2.目的意义:
1、培养理论联系实际的正确思想,训练综合应用已经学过的理论知识和生产实际知识去综合解决工程实际问题的能力。
2、学习较复杂电子系统设计的一般方法,了解和掌握模拟、数字电路等知识解决电子信息方面常见实际问题的能力,由有学生自行设计和调试。
3、进行基本技能和技术训练,如掌握设计资料、手册、标准和规范以及使用绘图软件和仿真软件等。
3.基本要求:
1、采用单片机80C51实现八路温度检测;2、要求温度范围0℃~100℃之间;3、精度达到±1%,分辨率≤0.1℃;4、在LED中显示温度;5、用绘图软件画出总体电路图;6、提交格式符合要求,内容完整的设计报告。
课程设计评审表
指导教师评语:
成绩:
签字:
日期:
1.设计任务要求
采用单片机80C51实现八路温度检测,要求测量温度范围0℃~100℃之间;并在LED中显示温度;温度传感器选用模拟和数字的都可以,要求精度达到±1%;分辨率≤0.1℃;直流稳压电源自行设计;辅助电路及元器件自选。
2.方案比较
2.1课题分析
对于多路温度测量,温度探头的低功耗是十分重要的,同时还要满足易于控制的条件,测温范围也必须达到或超过题目要求。
因此选择合适的温度传感器成为本次设计的重中之重
2.1.1温度传感器的选择
根据题目要求,设计一温度测量电路,能够通过温度传感器测量并显示被测量点的温度,常用的温度传感器可分为3大类:
方案一:
热电偶式
热电偶具有构造简单,适用温度范围广,使用方便,承受热机械冲击能力强以及响应速度快等特点,常用于高温区域,振动冲击大等恶劣环境以及适合于微小结构测温场合;但其信号输出灵敏度比较低,容易受到环境干扰和前置放大器温度漂移的影响,因此不适合测量微小的温度变化。
方案二:
电阻式
电阻式可用来测量-220~850℃范围内的温度,少数情况下,低温可测量至-272℃,高温可测量至1000℃,互换性差,非线性严重,在腐蚀介质中使用时,易氧化,因此,只能用于低温及无腐蚀性的介质中。
虽然测量温度范围广,但热稳定性差。
方案三:
数字式
DS18B20温度传感器。
DS18B20温度传感器为“一线式器件”,体积更小、适用电压更宽、更方便。
其测量温度范围为-55℃~+125℃,在-10℃~+85℃范围内,精度为±0.5℃,有十二位分辨率。
其内部有A/D、D/A转换装置,用户可以设置温度的上下限,并具可以直接与单片机进行通讯。
现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。
采用1-Wire公众域(PD)软件应用程序接口,采用循环程序结构实现查看任何一个检测点的编号、温度值等数据指示,实现了多个检测点数据的自动化监管。
考虑题目测温范围要求以及测量数据的准确性要求选择方案三。
2.1.2显示部分
方案一:
使用液晶显示屏显示转换结果。
液晶显示屏(LCD)具有轻薄短小,平面显示以及影像稳定不闪烁等优势,能显示汉字及各种符号,可以绘制曲线和简单的图像,分辨率高,抗干扰能力强和显示形式灵活等优点。
方案二:
使用传统的数码显示管。
数码管(LED)受外界环境影响小,显示明亮,编程简单,占用资源较少。
由于课程设计要求采用LED显示,所以只能采用方案二。
2.1.3主控芯片的选择
本系统主要有采集温度模块,显示模块,报警模块。
在综合考虑对芯片的熟悉程度及功能的实现程度上。
决定在主板上采用AT89S52芯片,AT89S52片内含4kbytes的可反复擦鞋的只读程序存储器(PEROM)和128bytes的随机存取数据存储器(RAM),32个I/O口线完全能够满足对数据的处理要求。
虽然市面上有着功能更为强大的单片机芯片,但都价格不菲。
而本设计本着简单实用,精简节约的原则,我们选择了AT89S52芯片。
3.单元电路设计
3.1.最小系统电路
在课程设计所研究的多路温度采集系统中的的MCU控制模块是由AT89S52单片机构成的最小系统,如图3-1。
该模块是硬件系统的核心部分,它负责对DS18B20所采集的温度信息进行处理并向LED发送实习数据显示采集到的温度信息,完成多路温度采集系统的要求。
图3-1:
AT89S52最小系统
3.1.1单片机及其管脚说明
AT89S52是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。
AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
下面指出了各个管脚的用途。
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8个TTL门电流。
当P1口的管脚第一次写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口管脚备选功如下:
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:
当访问外部存储器,地址锁存允许的输出电平用于锁存地址地位字节。
/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出
3.2.复位电路
复位电路的基本功能是:
系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。
为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分-合过程中引起的抖动而影响复位。
图3-2所示的RC复位电路可以实现上述基本功能。
图3-2:
RC复位电路
3.3.晶振电路
晶振是晶体振荡器的简称,在电气上它可以等效成一个电容和一个电阻并联再串联一个电容的二端网络,电工学上这个网络有两个谐振点,以频率的高低分其中较低的频率是串联谐振,较高的频率是并联谐振。
由于晶体自身的特性致使这两个频率的距离相当的接近,在这个极窄的频率范围内,晶振等效为一个电感,所以只要晶振的两端并联上合适的电容它就会组成并联谐振电路,如图3-3晶体震荡电路所示。
这个并联谐振电路加到一个负反馈电路中就可以构成正弦波振荡电路,由于晶振等效为电感的频率范围很窄,所以即使其他元件的参数变化很大,这个振荡器的频率也不会有很大的变化。
晶振有一个重要的参数,那就是负载电容值,选择与负载电容值相等的并联电容,就可以得到晶振标称的谐振频率。
一般的晶振振荡电路都是在一个反相放大器(注意是放大器不是反相器)的两端接入晶振,再有两个电容分别接到晶振的两端,每个电容的另一端再接到地,这两个电容串联的容量值就应该等于负载电容,请注意一般IC的引脚都有等效输入电容,这个不能忽略。
图3-3:
晶体电路
3.4.温度采集电路
本系统利用DS18B20完成温度采集及转换工作,而单片机89S52起实时控制及发送数据给LED显示作用.可以将多个DS18B20与单片机一位总线相连,形成多点测温,本设计研究八片DS18B20与单片机构成的测温系统。
DS18B20与单片机接口电路如图3-4八路温度采集电路所示.
图3-4八路温度采集电路
3.4.1DS18B20的读写程序和单总线协议的实现
DS18B20的读写程序和测温程序相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2s减为750ms。
DS18B20测温原理中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。
高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。
计数器1和温度寄存器被预置在-55℃所对应的一个基数值。
计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。
图3-5中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。
图3-5DS18B20测温原理框图
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为符号位。
这是12位转化后得到的12位数据,存储在18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。
例如+125℃的数字输出为07D0H,+25.0625℃的数字输出为0191H,-25.0625℃的数字输出为FF6FH,-55℃的数字输出为FC90H。
(3)DS18B20温度传感器的存储器
DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的EEPRAM,后者存放高温度和低温度触发器TH、TL和结构寄存器。
(4)配置寄存器
该字节各位的意义如下:
表3-1配置寄存器结构
TM
R1
R0
1
1
1
1
1
低五位一直都是"1",TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。
在DS18B20出厂时该位被设置为0,用户不要去改动。
R1和R0用来设置分辨率,如下表3-1所示:
(DS18B20出厂时被设置为12位)
表3-2温度分辨率设置表
R1
R0
分辨率
温度最大转换时间
0
0
9位
93.75ms
0
1
10位
187.5ms
1
0
11位
375ms
1
1
12位
750ms
本设计采用多个温度传感器DS18B20对温度进行采样,从而进行温度的检测与控制。
因为DS18B20是使用单总线协议的,所以具有单总线的优点,本设计通过对DS18B20的使用,使读者对单总线协议有了更深的认识。
下面就DS18B20芯片的特性进行一下介绍。
与DALLAS公司早期生产的DS1820相比,DS18B20具有如下特点:
(1)精度:
DS18B20在-10℃~+85℃范围内精度为+-0.5℃。
(2)分辨率:
DS18B20的分辨率由9~12位(包括1位符号位)数据在线编程决定。
(3)温度转换时间:
DS18B20的转换时间与设定的分辨率有关,当设定为9位时,最大转换时间为93.75ms;10位时,为187.5ms;11位时,为375ms;12位时,为750ms。
(4)电源电压范围:
在保证温度转换精度为+-0.5℃的情况下,电源电压可为+3.0V~+5.5。
(5)程序设置寄存器:
该寄存器主要用来设置分辨率位数的。
(6)64位ROM编码:
从高位算起,该ROM有一个字节的CRC校验码,6个字节的产品序号和一个字节的家族代码。
对于家族代码,DS18B20是28H。
(7)温度数据寄存器:
寄存器由两个字节组成,DS18B20对于12位的分辨率为2-4℃,如图3.6所示[4]。
23
22
21
20
2-1
2-2
2-3
低位字节
2-4
高位字节
Msb单位=℃Lsb
S
S
S
S
S
26
25
24
符号位
图3.6DS18B20的分辨率
(8)内部存储器分配:
DS18B20H高速暂存寄存器是DS18B20高速暂存寄存器的存储分配
温度值低位字节
E2ROM
温度值高位字节
TH/用户字节1(报警上限)
TL/用户字节2
(报警下限)
程序设置字节
保留
保留
保留
图3-7DS18B20高速暂存寄存器的存储分配
DS18B20采用TO—92封装或8脚SOIC封装。
其引脚排列及含义如下图3-6所示。
NC1
NC2
1GND2DQ3VDD
VDD3
NC1
8NC
7NC
6NC
5GND
GND:
地VDD:
电源
DQ:
数据输入/输出NC:
空脚
图3-8DS18B20的封装
DS18B20的供电方式有两种:
一种是寄生电源;另一种为外电源供电,因为多个器件挂在总线上,为了识别不同的器件,在程序设计中一般有四个步骤:
初始化命令;传送ROM命令;传送RAM命令;数据交换命令。
本设计在软件介绍部分会就DS18B20温度传感器件具体介绍其每一部分的时序。
3.5.电源电路
电源能否提供稳定的电压是一个系统能否稳定运行的前提,没有一个稳定的硬件系统作为基础,所有的软件控制都无从谈起,所以系统电源必须是稳定可靠的。
线性电源技术很成熟,制作成本较低,可以达到很高的稳定度,波纹也很小,而且没有开关电源具有的干扰与噪音,在这里选择用线性稳压芯片LM7805,其电路图如图3-8:
LM7805电源电路。
用lm78系列三端稳压IC来组成稳压电源所需的外围元件极少,电路内部还有过流、过热及调整管的保护电路,使用起来可靠、方便,而且价格便宜。
图3-8:
LM7805电源电路
3.6.按键输入电路
按键的设置可以将报警的温度上限进行修改。
当按键按下时,相应的I/O为低电平,单片机会自行判断程序的设置值,并且在LED上显示出来;设置按键与单片机的pin脚接口图如图3-9按键输入电路
图3-9按键输入电路
3.7.数目管显示电路
数码管在工业控制中有着很广泛的应用,例如用来显示温度、数量、重量、日期、时间,还可以用来显示比赛的比分等,具有显示醒目、直观的优点.无论是共阴极还是共阳极的数码管,都分段码和位码,要想让它亮必须驱动它!
以共阳极4位数码管为例,即首先要选中你想要电亮的数码管的位,要想让4个数码管全亮须4个位全选中,所谓选中的含义就是给高电平(共阳极)。
数码管分8个段,即段码,每个段的亮灭都对应着一个数字或字母,想让哪一段亮就给哪段送低电平。
其中扫描分静态扫描和动态扫描!
静态扫描比动态扫描简单些。
动态扫描他在没个时间只能点亮一位数码管,但是由于扫描频率的设置,单片机的速度是很快的,但几十MS内就能让4位数码管循环亮灭很多次,这些人的肉眼是分辨不出来的,数码管的亮度可以通过软件设置(扫描频率的设置)调整。
每个数码管都有a、b、c、d、e、f、g七个笔划和一个小数点DP,这八个联对应二极管阳极,阴极都联在一起(称共阴极)。
以四位数码管矩阵为例,四个数码管的a、b、c、d、e、f、g七个笔划和一个小数点DP电极分别并联在一起。
当c行高电平,3列低电平,其他行列都为高阻态时,第三个数码管的c笔划亮,通过扫描方式在1/20秒内四个数码管的笔划该亮的都亮一次,由于视觉暂留,就会看到结果。
本设计是通过三极管来驱动数码管显示,当基极电流很小时,无论基极电流如何变化,集电极电流都接近为0,集电极电流不随基极电流而变化,也就是管子不导通;当基极电流增大到一定值以后,集电极电流此后大于0,且集电极电流随着基极电流而变化,这是放大状态;当基极电流继续增大,达到一定值以后,集电极电流此后再也大不上去了,此后即便是基极电流再增加,集电极电流也不能增大,即饱和了。
对于单片机端口通过晶体管驱动负载的情况,无论负载是数码管还是继电器,晶体管都只能工作在截止状态或饱和状态,是不能工作在放大状态的。
本设计每个三极管负责一个位选,。
当置于低电平时才有效,每个数码管都会显示一个相同的数字,所以然后需把其他三个数码管置高电平。
通过这种方法就能把温度测出来。
数码管连接如下图3-10所示。
图3-10:
数码管与单片机接口电路
3.8.声光报警模块电路
当发生报警事件时,除了显示温度数值外,还要有声光报警功能。
用声音或是灯光报警时,连续的声响或常亮的灯光往往不易被人们的警觉,只有断续的声音或山所的灯光才能取得最佳的报警效果。
就利用时钟翻转 P15和P14来转换电平,产生短促的报警声音或闪烁灯光。
当浓度正常时,管脚P14为高电平和P15为低电平,此时D1灯灭,蜂鸣器不工作;当浓度达到报警温度上限或者下限时,管脚P16呈现低电平,从而使D1灯亮,同时管脚P14为高电平,使三极管的集电极与发射极导通,蜂鸣器发出报警声音。
电路的连接图3-11如下
图3-11声光报警模块
4.整体电路
整体电路如图4-1
图4-1整体电路
5.软件设计
5.1工作方案简介
程序处理是整个系统的关键,即简洁的硬件结构是靠复杂的软件来支持的。
本设计采用的是基于单总线协议的温度测控系统。
系统上电复位后先处于停止状态,等待输入初始报警温度。
显示器显示输入的温度;报警温度设定好后就可以按确定键启动系统工作了。
温度检测系统不断定时检测当前温度,并送往显示器显示,达到报警值时启动报警电路报警。
5.2主程序流程图
图5-1主程序流程图
5.3功能模块
根据上面对工作流程的分析,系统软件可以分为以下几个功能模块:
(1)温度检测及温度值变换:
由单总线温度传感器DS18B20完成
(2)键盘管理:
监测键盘输入,接收初始时间设置,接收报警温度设置,启动系统工作。
(3)报警:
当检测到的温度超越报警温度时,蜂鸣器发出报警信号,发光二极管闪烁。
5.4由DS18B20完成温度检测模块
运用单总线协议(一线协议)构建的单总线指令系统是单总线网络运行的软件基础,典型的单总线指令序列如下:
第一步:
初始化
第二步:
ROM命令(跟随需要交换的数据)
第三步:
功能命令(跟随需要交换的数据)
每次访问单总线器件,必须严格遵守这个命令序列,如果出现序列混乱,则单总线器件不会响应主机。
但是,这个准则对于搜索ROM命令和报警搜索命令例外,在执行两者中的任何一条命令之后,主机不能执行其后的功能命令,必须返回至第一步。
(1)初始化
基于单总线上的所有传输过程都是以初始化开始的,初始化过程由主机发出复位脉冲和从机响应的应答脉冲组成。
应答脉冲使主机知道,总线上有从机设备,且准备就绪。
(2)ROM命令
基于单总线上的所有传输过程都是以初始化开始的,初始化过程由主机发出复位脉冲和从机响应的应答脉冲组成。
应答脉冲使主机知道,总线上有从机设备,且准备就绪。
在主机检测到应答脉冲后,就可以发送ROM命令。
这些命令与各个从机设备的唯一的64位ROM有关。
这些命令还允许主机能检测到总线上有多少个从机设备以及其设备类型,或者有没有设备处于报警状态。
从机设备可能支持5种ROM命令(实际情况与具体型号有关),每种命令长度为8位。
主机在发出功能命令之前,必须送出合适的ROM命令。
具体的传送ROM命令格式如表5-1所示。
表5-1DS18B20的ROM命令表
指令
说明
读ROM命令(33H)
读总线上DS18B20命令
匹配ROM命令(55H)
对总线上DS18B20寻址
跳过ROM命令(CCH)
该命令执行后,将省去每次与ROM
有关的操作
搜索ROM命令(F0H)
控制机识别总线上多个器件的ROM
编码
报警搜索命令(ECH)
控制机搜索有报警的器件
(3)功能命令
表5-2DS18B20功能命令表
注释:
①在温度转换和复制暂存器数据至EEPROM期间,主机必须在单总线上允许强上拉,并且在此期间,总线上不能进行其它数据传输。
②通过发送复位脉冲,主机能够在任何时候中断数据传输。
③在复位脉冲发送以前,必须写入全部的三个字节。
命令
描述
命令代码
发送命令后,单总线上的响应信息
注释
温度转换命令
转换温度
启动温度转换
44H
无
①
存储器命令
读暂存器
读出全部暂存器的内容,包括CRC字节
BEH
DS18B20传输多达9字节至主机
②
写暂存器
写暂存器第2、3和4个字节的数据(即TH、TL和配置寄存器)
4EH
主机传送3个字节的数据至DS18B20
③
复制暂存器
将暂存器中的TH、TL和配置字复制到EEPROM中
48H
无
①
回读EEPROM
将TH、TL和配置字从EEPROM中回读至暂存器中
B8H
DS1