温度检测系统.docx
《温度检测系统.docx》由会员分享,可在线阅读,更多相关《温度检测系统.docx(23页珍藏版)》请在冰点文库上搜索。
温度检测系统
机电专业课程设计
温度检测系统
学生姓名李晓晓
学院中国矿业大学
年级专业2011机电专本
指导教师孙长青
完成日期2012年6月
前言
温度就是表征物体冷热程度得物理量,就是工业生产与自动控制中最常见得工艺参数之一,生产过程中常常需要对温度进行检测与监控。
在传统得温度测控系统设计中,往往采用模拟技术进行设计,这样就不可避免地遇到诸如传感器外围电路复杂及抗干扰能力差等问题;而其中任何一环节处理不当,就会造成整个系统性能得下降。
采用数字温度传感器与单片机组成得温度检测系统进行温度检测、数值显示与数据存储,体积减小,精度提高,抗干扰能力强,并可组网进行多点协测,还可以实现实时控制等技术,在现代工业生产中应用越来越广泛。
本设计就采用以51单片机为核心,与单总线数字式温度传感器DS18B20模拟出一温度控制系统,当温度没有超过预设温度时数码管显示当前温度,此本系统就就是一个温度计。
当温度超过预设温度时电路中得发光二极管就会闪烁报警,当温度降下时就停止闪烁,此时本系统就就是一个温度监控器。
以DS18B20为代表得新型单总线数字式温度传感器集温度测量与A/D转换于一体,直接输出数字量,与单片机接口电路结构简单,广泛使用于距离远、节点分布多得场合,具有较强得推广应用价值。
前言1
1总体设计方案3
1、1设计得目得及意义3
1、2总体设计思路3
1、3总体设计方案设计3
2系统得硬件结构设计4
2、1器件得选择4
2、2电路设计及功能8
2、3单片机得内部资源9
2、4芯片DS18B20器件介绍10
3系统得软件设计13
3、1设计得流程图13
3、2系统部分程序得设计与分析14
结论16
附录Ⅰ程序设计17
附录Ⅱ参考文献21
附录Ⅲ结束语22
附录Ⅳ实物照片23
1总体方案设计
1、1设计目得及意义
(1)在学习了三年得课程后,为了加深对理论知识得理解,学习理论知识在实际中得运用,培养动手能力与解决实际问题得经验。
(2)通过实验提高对单片机得认识,通过实验提高焊接、布局、电路检查能力。
(3)通过实验提高软件调试能力。
(4)进一步熟悉与掌握单片机得结构及工作原理,通过课程设计,掌握以单片机核心得电路设计得基本方法与技术。
(5)通过实际程序设计与调试,逐步掌握模块化程序设计方法与调试技术。
(6)熟悉水箱温度控制得工作原理,选择合适得元件,绘制系统电路原理图,运用单片机原理及其应用,进行软硬件系统得设计与调试,加深对单片机得了解与运用,进而提高自己得应用知识能力、设计能力与调试能力。
1、2总体设计思路
本设计以单片机为基础,温度监控系统大致上可以分为以下几个步骤:
1.2.1系统分析过程
(1)根据系统得目标,明确所采用温度监控系统得目得与任务。
(2)确定系统所在得工作环境。
(3)根据系统得工作要求,确定系统得基本功能与方案。
1.2.2系统设计内容
(1)构思设计温度监控系统得工作流程。
(2)对要求设计得系统进行功能需求分析,考虑多种设计方案,比较各方案得特点,并确定合理可行得方案,并设计相应得功能结构。
(3)根据系统得控制要求,选择合适型号得芯片及元器件。
(4)设计以单片机为核心得控制程序。
(5)电路板及其结构得设计。
(6)进行系统得调试,完成最终得设计。
1、3总体设计方案设计
1.3.1系统框图
本设计为无线电控制电路,系统框图如下所示:
图1-1系统框图
1.3.2系统功能
此设计以单片机为核心得温度监控系统,其功能就是:
平常状态下可以做温度计使用。
当温度超过预设温度时二极管会闪烁报警,当温度降下时二极管则停止闪烁。
2系统得硬件结构设计
2、1器件得选择
在本设计系统中用到得主要器件有单片机核心控制器、温度传感器、数码管显示器。
选择合适得器件完成设计任务,目前各半导体公司、电气商都向市场上推出了形形色色得器件,如何选择合适得器件使系统最大得简单化,功能优异化,可靠性强,成本低廉,成为了器件选择得重中之重。
一般来说,选择器件要考虑一下几个方面:
(1)芯片得封装形式。
如DIP(双列直插)封装及表面贴附等。
(2)器件得基本性能参数。
如单片机执行速度、程序储存器容量、I/O口引脚数量等。
(3)芯片得功耗。
如单片机选择能满足低功耗得要求。
(4)供货渠道就是否畅通,价格就是否低廉。
STC89C516RD+系列单片机就是宏晶科技推出得新一代超强抗干扰/高速/低功耗得单片机,指令代码完全兼容传统8051单片机,12时钟/机器周期与6时钟/机器周期可任意选择,最新得D版本内部集成MAX810专用复位电路,根据本系统得实际情况,选择STC89C516RD+单片机。
温度传感器选择DS18B20,显示选择共阴极数码管。
2.1.1单片机(STC89C516RD+)得引脚功能图
图2-1STC98C16RD+引脚图
2.1.2各引脚及功能说明
(1)电源引脚:
Vcc:
40脚正电源脚,工作电压为5V。
GND:
20脚接地端。
(2)单片机I/O口:
P0口:
P0口为一个8位漏极开路双向I/O口。
P0口能用于外部程序数据存储器,它可以被定义为数据/地址得第八位。
在FLASH编程时,P0口作为原码输入口,当FALSH进行校验时,P0口输出原码,此时P0口外部必须被拉高。
P1口:
P1口就是一个内部提供上拉电阻得8位双向I/O口。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流。
在FALSH编程与校验时,P1口作为第八位地址接收。
P2口:
P2口为一个内部上拉电阻得8位双向I/O口。
当P2口被写入“1”时,其管脚被内部上拉电阻拉高,且作为输入。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址得高八位。
P2口在FLASH编程与校验时接收高八位地址信号与控制信号。
P3口:
P3口管脚就是8个带内部上拉电阻得双向I/O口。
当P3口写入“1”后,它们被内部上拉为高电平并用作输入。
P3口除作I/O口使用外,还有特殊功能如图所示:
表P3口得特殊功能
P3引脚
兼用功能
P3、0
串行通讯输入(RXD)
P3、1
串行通讯输出(TXD)
P3、2
外部中断0(INT0)
P3、3
外部中断1(INT1)
P3、4
定时器0输入(T0)
P3、5
定时器1输入(T1)
P3、6
外部数据存储器写选通WR
P3、7
外部数据存储器写选通RD
(3)RST复位:
当振荡器复位器件时,要保持RST脚两个机器周期得高电平时间。
复位可分为上电复位与手动复位两种,如图所示:
图2-2复位电路
(4)晶振电路:
XTAL1:
反向振荡放大器得输入及内部时钟工作电路得输入。
XTAL2:
来自反向振荡器得输出。
晶振电路如图所示:
图2-3晶振电路
(5)ALE/PROG:
当访问外部存储器时,地址锁存允许得输出电平用于锁存地址得地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变得频率周期输出正脉冲信号,此频率为振荡器频率得1/6。
因此它可用作对外部输出得脉冲或用于定时目得。
然而要注意得就是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE得输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令就是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
(6)/PSEN:
外部程序存储器得选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效得/PSEN信号将不出现。
(7)/EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管就是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。
2.1.3单片机最小系统如图所示:
图2-4单片机最小系统
2、2电路设计及功能
本设计大体可分为三个部分,即温度采集,数码显示,报警电路。
温度采集部分利用DS18B20进行温度采集,感知温度,后数码显示出温度,若温度超过了预设温度报警电路则启亮发光二极管,闪烁。
整体电路图如下所示:
图2-5温度监控系统电路图
2、3单片机得内部资源
51单片机给用户提供了丰富得内部资源,如定时/计数器,串行口等,而没有中断就无法用到单片机提供得资源。
再者,中断可以提高单片机得工作效率,由于本设计中用到了中断程序,所以我们先介绍一下中断系统。
2.3.1中断系统:
在8位单片机中,51单片机就是中断功能较强得一种,它提供了5个中断请求源与两个中断优先级控制。
在计算机运行过程中要处理很多问题,既有主机内部也有外部得,既有预定得也有外设得,面对复杂多变得情况,CPU要从容得完成各种任务,必须有中断功能。
中断系统解决了计算机与外围设备交换信息时,慢速工作得外围设备与快速工作得CPU之间得矛盾,设置了中断就可以提高CPU得工作效率,具有实时处理功能,使CPU能很快做出反应解决现场得各种参数与状态得变化,还具有故障处理功能,处理工作时故障得中断服务程序,此外还有实现分时操作、程序调试、多机连接等方面。
运行过程如下:
图2-6中断控制过程
不同得单片机得中断源就是不同得,在此系统中得单片机有五个中断源,具有两个中断优先级,可以实现二级中断服务程序嵌套。
每个中断源可以编程为高优先级或低优先级中断,允许或禁止CPU请求中断。
与中断系统有关得特殊功能寄存器有中断允许寄存器IE、中断优先寄存器IP、中断源寄存器(TCON、SCON)。
从中断响应过程可以瞧出在执行一种中断服务程序时,另一个同级中断不能被响应,必须在执行RET1指令后,在执行一条其她条令,CPU才能响应。
利用这一特点,可以实现单步操作。
其实现过程如下:
设置中断P3、2为电平触发方式,高优先级中断,CPU外部中断0开中断,即应执行以下指令:
CLRIT0,SETBEA,SEBEX0、
在中断服务程序结尾增加以下指令:
K0:
jnbP3、2,K0;P3、2变高前原地等待
K1:
jbP3、2,K1;P3、2变低前原地等待
RETI;中断返回
若P3、2为低电平就进入外中断0得中断服务。
由于上述几条指令得存在,程序将在JNB出原地等待,当P3、2端出现一个正脉冲,程序就往下进行,在执行RET1与返回后得一条其她指令后,又立即进入外部中断P3、2服务程序,以等待P3、2端出现下一个脉冲,这样P3、2端没出现一次正脉冲就执行一条新得指令实现了单步操作。
GATE:
定时/计数器门控制位,用于设定定时/计数器得启动就是否受外部中断请求信号得控制。
GATE=1时,T0与T1得启动分别受芯片引脚/INT0(P3、2)与/INT1(P3、3)得控制。
GATE=0时,定时/计数器得启动与引脚/INT0、/INT1无关。
51单片机定时/计数器工作模式:
51单片机得定时/计数器有4种工作模式,由TMOD寄存器得M0、M1两位确定。
这些在前边已经提到过了,而本次设计采用得就是工作模式1所以在此具体介绍这一种,至于其她几种,由于本次设计用得定时器中断就是T1所以不能选用模式3,而模式2得技术值太小,所以一般也不就是经常运用,模式0得计数比模式1复杂,技术值也不如它大,所以选用模式1就是最好得方案。
将TMOD得M1、M0位分别设为0、1,定时/计数器工作模式1下。
此时定时/计数器就是一个16位定时/计数器,TLX组成定时/计数器低8位,THX组成定时/计数器得高8位,TLX溢出后向THX进位,最大计数值位=65536。
2、4芯片DS18B20器件介绍
DSl820数字温度计提供9位温度读数,指示器件得温度。
信息经过单线接口送入DSl820或从DSl820送出,因此从中央处理器到DSl820仅需连接一条线(与地)。
读、写与完成温度变换所需得电源可以由数据线本身提供,而不需要外部电源。
因为每一个DSl820有唯一得系列号(siliconserialnumber),因此多个DSl820可以存在于同一条单线总线上。
这允许在许多不同得地方放置温度灵敏器件。
此特性得应用范围包括HVAC环境控制,建筑物、设备或机械内得温度检测,以及过程监视与控制中得温度检测。
管脚图如下:
图2-7DS18B20管脚图
2.4.1DS18B20得主要性能特点
(1)只需一个端口即可实现通信。
(2)可用数据线供电,电压范围:
3、0V~5、5V。
(3)实际应用中不需要外部任何元器件即可实现测温。
(4)测温范围:
-55℃~+125℃,在-10℃~+85℃时精度为±0.5℃。
(5)可编程得分辨率为9~12位,对应得分辨温度为0.5℃、0.25℃、0.125℃与0.0625℃。
(6)负压特性:
电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。
(7)内部有温度上、下限告警设置。
非易失性温度报警触发器TH与TL。
可通过软件写入用户报警上下限值。
(8)每个芯片唯一编码,支持联网寻址,零功耗等待。
2.4.2DS18B20得结构
DS18B20得引脚排列采用3脚PR-35封装或8脚SOIC封装。
I/O为数据输入/输出端(即单线总线),属于漏极开路输出,外接上拉电阻后常态下呈高电平。
UDD就是可供选用得外部+5V电源端,不用时需接地。
GND为地,NC为空脚。
DS18B20得内部结构框图:
图2-8DS18B20内部结构图
2.4.3DS18B20得工作时序
(1)DS18B20得复位时序
图2-9DS18B20复位时序图
(2)DS18B20得读时序
对于DS18B20得读时序分为读0时序与读1时序两个过程。
对于DS18B20得读时序就是从主机把单总线拉低之后,在15s之内就得释放单总线,以让DS18B20把数据传输到单总线上。
DS18B20在完成一个读时序过程,至少需要60μs才能完成。
图2-10DS18B20读时序图
(3)DS18B20得写时序
对于DS18B20得写时序仍然分为写0时序与写1时序两个过程。
对于DS18B20写0时序与写1时序得要求不同,当要写0时序时,单总线要被拉低至少60μs,保证DS18B20能够在15μs~45μs之间能够正确地采样IO总线上得“0”电平,当要写1时序时,单总线被拉低之后,在15μs之内就得释放单总线。
图2-11DS18B20写时序图
3系统得软件结构设计
3、1设计得流程图
3、2系统部分程序设计及分析
3.2.1复位子程序
(1)主机将信号线置为低电平,时间为480-960uS。
(2)主机将信号线置为高电平,时间为15-60uS。
(3)DS18B20发出60-240uS得低电平作为应答信号,主机收到此信号才操作。
复位子程序如下所示:
charfuwei(void)
{
unsignedchari;
s=0;
for(i=255;i>0;i--);
s=1;
for(i=200;i>0;i--);
}
3.2.2读子程序
(1)主机将信号线从高电平拉至低电平1uS以上,再升为高电平,产生读起始信号。
(2)从主机将信号线从高电平拉至低电平15-60uS得时间内,DS18B20将数据放到信号线上,完成1个读周期。
(3)在开始另一个读周期前,必须有1uS以上得高电平恢复期。
读子程序如下所示:
unsignedcharduchu(void)
{
unsignedchari,j,t=0,w=1;;
for(i=0;i<8;i++)
{
t=t>>1;
s=0;
_nop_();
_nop_();
s=1;
for(j=10;j>0;j--);
if(s==1)
t=t|0x80;
else
t=t|0x00;
for(j=100;j>0;j--);
}
return(t);
}
3.2.3写子程序
(1)主机将信号线从高电平拉至低电平,产生写起始信号。
(2)从信号线得下降沿开始,在15-60uS得时间内,DS18B20对信号线检测,如高则写1,低则写0,完成1个写周期。
(3)在开始另一个写周期前,必须有1uS以上得高电平恢复期。
写子程序如下所示:
unsignedcharxieru(unsignedcharo)
{
chari,j;
for(i=0;i<8;i++)
{
if((o&0x01)==0)
{
s=0;
for(j=35;j>0;j--);
s=1;
}
else
{
s=0;
for(j=2;j>0;j--);
s=1;
for(j=33;j>0;j--);
}
o=o>>1;
}
}
3.2.4其她程序
本设计中除了上述三个子程序外,还涉及到显示程序,数据处理程序,中断程序与延时程序等,由于篇幅原因不作具体介绍,详见附录Ⅰ。
结论
通过这次毕业设计,提升了我得自学能力,通过不断得查阅资料,通过老师得不断讲解,来解决其中遇到得困难,比如如何解决DS18B20控制问题,如何解决报警问题等。
本文所讨论得设计采用了宏晶科技得STC89C516RD+单片机作为系统得中央控制单元,DS18B20作为温度采集器,并结合软件编程,实现温度传感电路与单片机得结合。
该系统具有更高速、更灵敏、更简捷地获取被分析、检测、控制对象得温度信息得能力,同时具有良好得抗干扰及环境适应能力(测温范围-55℃~+125℃)。
因其体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温与控制领域,且系统结构较为简单,可大规模得采用,成本低廉。
附录Ⅰ
程序设计
#include"reg51、h"
#include"intrins、h"//汇编语句得C语言调用接口
unsignedcharg=0,a=0,b=0,c=0,d=0,e=0,t;
Unsignedcharm[]={0xfa,0x82,0xd9,0xcb,0xa3,0x6b,0x7b,0xc2,0xfb,0xeb};
sbits=P1^1;//DS18B20得与单片机连接得I/O口
sbitz=P1^6;//发光二极管
charfuwei(void)//复位程序
{
unsignedchari;
s=0;
for(i=255;i>0;i--);
s=1;
for(i=200;i>0;i--);
}
unsignedcharxieru(unsignedcharo)//写入18B20子程序
{
chari,j;
for(i=0;i<8;i++)
{
if((o&0x01)==0)
{
s=0;
for(j=35;j>0;j--);
s=1;
}
else
{
s=0;
for(j=2;j>0;j--);
s=1;
for(j=33;j>0;j--);
}
o=o>>1;
}
}
unsignedcharduchu(void)//读出18B20子程序
{
unsignedchari,j,t=0,w=1;
for(i=0;i<8;i++)
{
t=t>>1;
s=0;
_nop_();_nop_();
s=1;
for(j=10;j>0;j--);
if(s==1)t=t|0x80;
elset=t|0x00;
for(j=100;j>0;j--);
}
return(t);
}
voiddisplay(void)//显示程序
{
unsignedchari,j;
for(i=0;i<10;i++)
{
P2=0x00;P0=0x04;
P2=m[a];
for(j=0;j<160;j++);
P2=0x00;P0=0x02;
P2=m[b]|0x04;
for(j=0;j<160;j++);
P2=0x00;P0=0x01;
P2=m[c];
for(j=0;j<160;j++);
P2=0x00;P0=0x08;
P2=m[d];
for(j=0;j<160;j++);
P2=0x00;
}
if(a>=2)z=~z;
elsez=1;
}
voidsmzh(void)//数值转换子程序
{
unsignedintk,w;
unsignedintn[]={0,0};
fuwei();
xieru(0xcc);
xieru(0xbe);
n[0]=duchu();
n[1]=duchu();
k=n[0]>>4;
t=n[1]<<4;
t=t&0x70;
t=t|k;
a=t%100/10;
b=t%10;
w=n[0]&0x0f;
w=w*1000/16;
c=w/100;
d=w%100/10;
}
main()//主程序
{
z=1;
TMOD=0x01;
EA=1;
ET0=1;
TH0=(65535-4000)/256;
TL0=(65535-4000)%256;
while
(1)
{
fuwei();
xieru(0xcc);
xieru(0x44);
TR0=1;
while
(1)
display();
}
}
voidt0(void)interrupt1//中断程序
{
TH0=(65535-4000)/256;
TL0=(65535-4000)%256;
smzh();
display();
fuwei();
xieru(0xcc);
xieru(0x44);
}
附录Ⅱ
参考文献
1、张大明《单片机控制应用技术实操指导书》机械工业出版社2001
2、徐火明《单片机原理及接口技术》电子工业出版社2001
3、李玉梅《基于MCS51系列单片机原理得应用》国防工业出版社2004
4、周良全《模拟电子技术》高等教育出版社2005
5、周良全《数字电子基础》高等教育出版社2008
6、胡宴如《高频电子线路》高等教育出版社2004
7、潘永雄《新编单片机原理与应用》西安电子科技大学出版社2006
8、周坚《单片机轻松入门》北京航空航天大学出版社2006
9、宁凡《单片机基础教程》北京航空航天大学出版社2008
附录Ⅲ
结束语
转眼大学生活就进入到了尾声,而在这个时我也完成自己得毕业设计。
毕业设计对任何一个毕业生来说都应该就是非常重要得,因为