测温系统的设计论文Word文档格式.docx
《测温系统的设计论文Word文档格式.docx》由会员分享,可在线阅读,更多相关《测温系统的设计论文Word文档格式.docx(27页珍藏版)》请在冰豆网上搜索。
2.2系统总体框图……………………………………………………………………………5
3系统硬件设计…………………………………………………………………………………6
3.189C51单片机……………………………………………………………………………6
3.2DS18B20芯片……………………………………………………………………………8
3.3单片机外围电路………………………………………………………………………11
3.4LED数码管显示电路…………………………………………………………………12
4系统软件设计………………………………………………………………………………14
4.1Proteus软件环境介绍…………………………………………………………14
4.2KeiluVision3软件环境介绍………………………………………………………14
4.3Protel软件环境介绍…………………………………………………………………15
4.4系统软件分析……………………………………………………………………………16
4.5程序流程图……………………………………………………………………………17
5系统调试过程……………………………………………………………………………19
5.1Protel电路调试…………………………………………………………………19
5.2KeiluVision3程序调试…………………………………………………………20
5.3Proteus的设计、绘制和仿真…………………………………………………20
5.4PCB的生成与布线…………………………………………………………………20
总结…………………………………………………………………………………………22
致谢…………………………………………………………………………………………23
参考文献……………………………………………………………………………………24
附录…………………………………………………………………………………25
附录1电路原理图…………………………………………………………………25
附录2程序代码…………………………………………………………………26
摘要
随着单片机的普及科技的进步,功能更强、可靠性更高、价格更低的单片机越来越被广泛用在工业控制,智能仪器仪表、办公室自动化、家用电器等诸多领域上。
本设计是基于89C51单片机为控制核心的测温系统设计。
系统采用了达拉斯美国Dallas半导体公司的DS18B20测温芯片构成了测温电路,实现了温度的测量。
在系统显示部分,采用了共阴的LED数码管构成了显示模块,此模块用于温度的显示信息。
本设计说明书对该系统的硬件电路,工作原理、软件设计进行了详细的介绍,给出了软件设计的流程图和主要源代码,经过仿真调试,达到设计功能要求。
关键词:
测温系统;
51单片机;
DS18B20;
测温传感器
1引言
1.1问题的提出
随着人类科技文明的发展,人们对于测温装置的要求在不断地提高。
传统的测温装置已不能满足当今很多方面的要求。
多功能、小体积、低功耗、快速性,是现代测温装置发展的趋势。
在这种趋势下,以单片机为控制核心,温度传感器为重要部分测温装置是当今的重要发展方向。
传统的温度检测大多以热敏电阻为温度传感器,但热敏电阻的可靠习惯差,测量温度准确率低,而且必须经过专门的接口电路转换成数字信号才由单片机处理。
本次采用DS18B20温度传感器来实现基于51单片机的数字温度计的设计。
该数字温度计利用DS18B20温度传感器及其接口电路完成温度的测量并转换成电压信号,经由数模转换器转换成单片机能够处理的数字信号,送到单片机进行处理变换,最后经过三极管的放大显示在共阴极数码管上。
系统以51单片机为控制核心,加上测温电路,AD数模转换器,6位温度数据显示数码管以及外围电源电路组成。
1.2任务与分析
任务分配:
本次课程设计,我们以组为单位,共同合作完成作业。
我们组有吴智敏、王桃、舒树东、邱飞和赵秋云共五名同学。
整个设计过程中我们是这样分工的:
吴智敏负责使用Proteus和Keil3两个软件来仿真电路设计和程序编译工作;
王桃负责Protel原理图绘制;
舒树东负责PCB布线;
邱飞和吴智敏共同完成Proteus;
邱飞对LED数码管显示器的类型和连线进行分析;
赵秋云主要负责写说明书的编写。
在本次设计中,在DS18B20和热敏电阻的选取上听取了孙老师的意见和分析后,决定选择使用相对更为流行的智能化热敏传感器DS18B20,在程序设计方面也遇到了问题,大家一起讨论后及时改正并调试成功。
本次设计的系统的控制中心是AT89C51单片机。
首先,在Protel软件环境中进行硬件电路图的设计。
然后在Keil3软件环境中进行系统的软件编程,并进行程序源文件的修正和编译,生成hex文件。
此hex文件是硬件电路运行实现的源代码来源。
把hex文件加载到AT89C51单片机芯片,然后在Proteus软件环境中模拟仿真,测温装置的温度正常显示。
本设计的系统主要由:
AT89C51为中央处理芯片,用于数据处理,初值设定。
温度传感器DS18B20是本例的另一核心模块,由它作温度传感器,提供温度信息。
经单片机进行数据接受处理,再由通过对应IO口输出,最后LED数码管实时显示。
本系统可以分为以下5大模块:
(1)AT89C51模块:
用于数据处理,和外围的测温芯片通信,并控制信号传输过程,采集时间信息并予以处理。
(2)DS18B20模块:
用于测量温度,利用温度传感器及接口电路完成温度的测量并转换成模拟电压信号,经由数模转换器转换成单片机能够处理的数字信号。
利用DS18B20数字温度传感器可提高测量精度。
(3)RESPACK模块:
用于稳定电压,限制高电流。
(4)数码管显示模块:
显示模块采用普通的共阴6位LED数码管,此模块用于温度的实时信息显示。
(5)程序部分:
主要包括单片机控制测温芯片的接口程序(实现单片机和DS18B20芯片之间的数据传输过程)和数码管显示程序。
2系统方案设计
2.1系统设计方案
通过查阅相关资料,设计初期共有2个方案供我选择,分别是:
(1)采用89C51单片机,普通热敏电阻组成的测温系统;
(2)采用89C51单片机,DS18B20芯片组成的测温系统。
(1)采用89C51单片机组成的测温系统:
此系统的硬件部分主要是由89C51单片机,0809芯片,热敏电阻所组成。
经热敏电阻感应出模拟电压信号,进行A/D转换后,可以用单片机进行数据的处理,在显示电路上就可以将温度显示出来,而这需要比较多的外部的硬件的支持,硬件电路复杂(需要用到A/D转换电路,感温电路),软件调试相对复杂,制作成本也很高。
所以这个设计理论不符合这次我们对产品的要求,应继续来考虑另一可行方案。
(2)采用89C51单片,DS18B20芯片组成的测温系统:
此方案在硬件部分主要采用了89C51单片机,DS18B20芯片,LED显示器。
该系统的最大特点是采用了相对智能化的芯片即DS18B20。
在自身功能上进行了扩充,加上其单线制的使用,使得硬件连线显得较为简单。
同时在软件部分,程序显得层次分明。
我们综合讨论并请教孙老师分析后,确定设计采用第2方案。
2.2系统总体框图
图2-1系统总体框图
当程序启动后,程序进入初始化阶段。
温度传感器DS18B20把所感应处理测得的温度数据发送到AT89C51单片机上,经过51单片机进行数据处理,将温度在LED数码管上显示。
本系统显示器用6位共阴LED数码管以动态扫描法的方式实现。
检测范围-55摄氏度到+125摄氏度。
3系统硬件电路设计
硬件主要包含AT89C51单片机、DS18B20测温传感器、LED数码管显示器。
3.189C51单片机
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。
AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除100次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。
AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
图3-189C51单片机引脚图
89C51单片机与早期Intel的8051/8751/8031芯片的外部引脚和指令系统完全兼容,只不过用FlashROM替代了ROM/EPROM而已[3]。
89C51单片机内部结构如图所示。
图3-289C51单片机内部结构示意图
各引脚的功能如下:
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当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)这是由于上拉的缘故。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次
有效。
但在访问外部数据存储器时,这两次有效的
信号将不出现。
当
保持低电平时,则在此期间CPU只访问外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,
将内部锁定为RESET;
端保持高电平时,则执行内部程序存储器中的程序。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
3.2DS18B20芯片
DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。
(1)DS18B20的性能特点如下;
(2)独特的单线接口方式仅需要一个端口引脚进行通信;
(3)多个DS18B20可以并联在唯一的三线上,实现多点组网功能;
(4)无需外部器件;
(5)可通过数据线供电,电压范围:
3.0~5.5V;
(6)测温范围-55℃~+125℃,在-10~+85℃时精度为±
0.5℃;
(7)零待机功耗;
(8)温度以9或12位数字量读出;
(9)用户可定义的非易失性温度报警设置
(10)警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件
(11)负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作,本次所用DS18B20采用3脚PR-35封装,其内部结构框图如图所示:
图3-3DS18B20内部结构框图
主机操作ROM的命令有五种,如表1所列
表3-1主机操作ROM的命令
DS18B20温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的EERAM。
高速暂存RAM的结构为8字节的存储器,结构如图4所示。
图3-4DS18B20内部存储器和存储器的结构
前2个字节包含测得的温度信息,第3和第4字节TH和TL的拷贝,是易失的,每次上电复位时被刷新。
第5个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。
DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值。
当DS18B20接收到温度转换命令后,开始启动转换。
转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1,2字节。
单片机可通过单线接口读到该数据,读取时低位在前,高位在后,数据格式以0.0625℃/LSB形式表示。
温度
值格式如下:
图3-5温度值格式
这是12位转化后得到的12位数据,存储在18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;
如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。
图中,S表示位。
对应的温度计算:
当符号位S=0时,表示测得的温度植为正值,直接将二进制位转换为十进制;
当S=1时,表示测得的温度植为负值,先将补码变换为原码,再计算十进制值。
例如+125℃的数字输出为07D0H,+25.0625℃的数字输出为0191H,-25.0625℃的数字输出为FF6FH,-55℃的数字输出为FC90H。
DS18B20温度传感器主要用于对温度进行测量,数据可用16位符号扩展的二进制补码读数形式提供,并以0.0625℃/LSB形式表示。
表2是部分温度值对应的二进制温度表示数据。
表3-2温度值对应的二进制位
DS18B20完成温度转换后,就把测得的温度值与RAM中的TH、TL字节内容作比较,若T>
TH或T<
TL,则将该器件内的告警标志置位,并对主机发出的告警搜索命令作出响应。
因此,可用多只DS18B20同时测量温度并进行告警搜索。
在64位ROM的最高有效字节中存储有循环冗余校验码(CRC)。
主机根据ROM的前56位来计算CRC值,并和存入DS18B20中的CRC值做比较,以判断主机收到的ROM数据是否正确。
如下图,为仿真电路中的AT89C51。
图3-6仿真电路中的AT89C51
3.3单片机外围电路
利用芯片内部振荡电路,在XTAL1、XTAL2引脚上外接定时元件,内部振荡电路便产生自激振荡,用示波器可以观察到XTAL2输出脉冲信号。
最常用的内部时钟方式是采用外接晶体和电容组成的并联谐振回路,不论是HMOS还是CHMOS型单片机其并联谐振回路及参数相同。
振荡晶体选择12MHZ。
电容无严格要求,电容取值对振荡频率输出的稳定性、大小、振荡电路起振速度有少许影响,C1和C2可在20—100pF取值。
图3-7内部时钟电路
图3-8复位电路
3.4LED数码管显示电路
在单片机应用系统中使用LED显示块构成N位LED显示器。
N位LED显示器有N根位选线和8*N根段选线。
根据显示方式的不同,位选线和段选线的连接方法不同。
段选线控制字符选择,位选线控制显示位的暗、亮。
LED显示器有静态显示和动态显示两种方式。
(1)LED静态显示。
LED显示器工作在静态显示的方式下,共阴极或共阳极连接在一起接地或+5V;
每位段选线(a—dp)与一个8位并行口相连。
N为静态显示器要求有N*8根I/O接口线,占用I/O资源较多,所以在位选较多时往往采用动态显示方式。
(2)LED动态显示。
在多位LED显示时,为简化电路,降级成本,将所有位的选线并联在一起,由一个8位I/O口控制,而共阴极点或共阳极点分别有相应的I/O接口线控制。
8位LED动态显示电路只需要两个8位I/O接口。
其中一个控制段选码,另一个控制位选。
由于所有位的选码皆有一个I/O控制。
因此,在每个瞬间,8位LED只能显示相同的字符,要想每位显示不同的字符,必须采用扫描显示方式。
即在每一瞬间只使某一位显示相应字符。
在此瞬间,段选控制I/O在该显示位送入选通电平,以保证该位显示相应字符。
如此轮流,使每位显示该位相应字符,并保持延时一段时间,以造成视觉暂留效果。
(3)LED显示器接口。
从LED显示器的显示原理可知,为了显示字母数字,必须转换成相应的段选码。
这种转换可以通过硬件译码器或软件进行译码。
硬件译码显示器接口:
BCD—7段十六进制译码驱动显示接口。
单片机应用系统中,通常要求LED显示器能显示十六进制及十进制带小数点的数。
因此在选择译码器时,要能够完成BCD码至十六进制的锁存、译码,并且具有驱动功能,否则就不采用软件译码接口。
软件译码显示接口。
由于单片机本身有较强的逻辑控制能力,采用软件译码并不复杂,而且软件译码逻辑可随意编程设定,不受硬件译码逻辑限制,采用软件译码还能简化硬件电路结构。
因此,在单片机应用系统中,使用最广的软件译码的显示接口。
下图为六位数码管仿真电路。
图3-9添加驱动电路的数码管显示电路
4系统软件设计
4.1Proteus软件环境介绍
本系统的硬件设计首先是在Proteus软件环境中仿真实现的。
Proteus软件是来自英国Labcenterelectronics公司的EDA工具软件,Proteus软件有十多年的历史,在全球广泛使用,除了具有和其它EDA工具一样的原理布图、PCB自动或人工布线及电路仿真的功能外,其革命性的功能是,它的电路仿真是互动的。
针对微处理器的应用,还可以直接在基于原理图的虚拟原型上编程,并实现软件源码级的实时调试。
如果有显示及输出,配合系统配置的虚拟仪器如示波器、逻辑分析仪等,还能看到运行后输入输出的效果。
Proteus建立了完备的电子设计开发环境,尤其重要的是ProteusLite可以完全免费,也可以花微不足道的费用注册达到更好的效果。
Proteus是目前最好的模拟单片机外围器件的工具。
可以仿真51系列、AVR、PIC等常用的MCU及其外围电路(如LCD,RAM,ROM,键盘,马达,LED,AD/DA,部分SPI器件,部分IIC器件...)。
在没有硬件的情况下,Proteus能像pspice仿真模拟/数字电路那样仿真MCU及外围电路。
另外,即使有硬件,在程序编写早期用软件仿真一下也是很有必要的。
Proteus软件主要具有以下几个方面的特点:
(1)设计和仿真软件Proteus是一个很有用的工具,它可以帮助学生和专业人士提高他们的模拟和数字电路的设计能力。
(2)它允许对电路设计采用图形环境,在这种环境中,可以使用一个特定符号来代替元器件,并完成不会对真实电路造成任何损害的电路仿真操作。
(3)它可以仿真仪表以及可描述在仿真过程中所获得的信号的图表。
(4)它可以仿真目前流行的单片机,如PICS,ATMEL-AVR,MOTOROLA,8051等。
(5)在设计综合性方案中,还可以利用ARES开发印制电路板。
4.2KeiluVision3软件环境的介绍
KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。
运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。
如果你使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。
Keil公司是一家业界领先的微控制器(MCU)软件开发工具的独立供应商。
Keil公司由两家私人公司联合运营,分别是德国慕尼黑的KeilElektronikGmbH和美国德克萨斯的KeilSoftwareInc。
Keil公司制造和销售种类广泛的开发工具,包括ANSIC编译器、宏汇编程序、调试器、连接器、库管理器、固件和实时操作系统核心(real-timekernel)。
有超过10万名微控制器开发人员在使用这种得到业界认可的解决方案。
其KeilC51编译器自1988年引入市场以来成为事实上的行业标准,并支持超过500种8051变种。
Keil公司在2007年被ARM公司收购。
其两家公司分别更名为ARMGermanyGmbH和ARMInc和。
Keil公司首席执行官ReinhardKeil表示:
“作为ARMConnectedCommunity中的一员,Keil和ARM保持着长期的良好关系。
通过这次收购,我们将能更好地向高速发展的32位微控制器市场提供完整的解决方案,同时继续在uVision环境下支持我们的8051和C16x编译器。
”
C51工具包的整体结构,uVision与Ishell分别是C51forWindows和forDos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。
开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。
然后分别由C51及C51