温度检测系统_第1页
温度检测系统_第2页
温度检测系统_第3页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

机电专业课程设计温度检测系统中国矿业大学2011机电专本孙长青2012年 6 月学生姓名李晓晓学院年级专业指导教师完成日期-可编辑修改 -前言温度是表征物体冷热程度的物理量,是工业生产和自动控制中最常见的工艺参数之一, 生产过程中常常需要对温度进行检测和监控。在传统的温度测控系统设计中,往往采用模拟技术进行设计,这样就不可避免地遇到诸如传感器外围电路复杂及抗干扰能力差等问题;而其中任何一环节处理不当,就会造成整个系统 性能的下降。采用数字温度传感器与单片机组成的温度检测系统进行温度检测、 数值显示和数据存储,体积减小,精度提高,抗干扰能力强,并可组网进行多点 协测,还可以实现实时控制等技术,在现代工业生产中应用越来越广泛。本设计就采用以 51 单片机为核心,和单总线数字式温度传感器 ds18b20 模拟出一温度控制系统, 当温度没有超过预设温度时数码管显示当前温度, 此本系统就是一个温度计。当温度超过预设温度时电路中的发光二极管就会闪烁报警,当温度降下时就停止闪烁, 此时本系统就是一个温度监控器。 以 ds18b20为代表的新型单总线数字式温度传感器集温度测量和a/d 转换于一体 ,直接输出数字量,与单片机接口电路结构简单,广泛使用于距离远、节点分布多的场合,具 有较强的推广应用价值。-可编辑修改 -目录前言.11总体设计方案 .31.1 设计的目的及意义.31.2 总体设计思路.31.3 总体设计方案设计.32系统的硬件结构设计.42.1器件的选择.42.2 电路设计及功能 .82.3单片机的内部资源 .92.4芯片 ds18b20器件介绍 .103系统的软件设计.133.1 设计的流程图.133.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-1 stc98c16rd+引脚图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 p3.1 p3.2 p3.3 p3.4 p3.5 p3.6p3.7兼用功能串行通讯输入( rxd ) 串行通讯输出( txd ) 外部中断0(int0 ) 外部中断1( int1 ) 定时器 0 输入(t0)定时器 1 输入(t1)外部数据存储器写选通wr外部数据存储器写选通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开中断,即应执行以下指令:clr it0, setb ea, seb ex0 .在中断服务程序结尾增加以下指令:k0:jnbp3.2,k0;p3.2 变高前原地等待k1: jbretip3.2,k1;p3.2 变低前原地等待;中断返回若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 组成定时 /计16数器的高 8位, tlx溢出后向 thx进位,最大计数值位265536 。2.4 芯片ds18b20 器件介绍dsl820 数字温度计提供 9位温度读数,指示器件的温度。信息经过单线接口送入dsl820 或从dsl820 送出,因此从中央处理器到dsl820 仅需连接一条线(和地)。读、写和完成温度变换所需的电源可以由数据线本身提供,而不需要外部电源。因为每一个dsl820 有唯一的系列号(siliconserialnumber ),因此多个dsl820 可以存在于同一条单线总线上。这允许在许多不同的地方放置温度灵敏器件。此特性的应用范围包括hvac 环境控制,建筑物、设备或机械内的温度检测,以及过程监视和控制中的温度检测。管脚图如下:-可编辑修改 -图2-7 ds18b20 管脚图2.4.1 ds18b20 的主要性能特点(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.2 ds18b20 的结构ds18b20 的引脚排列采用 3脚pr-35 封装或 8 脚 soic 封装。i/o 为数据输入/输出端(即单线总线 ),属于漏极开路输出, 外接上拉电阻后常态下呈高电平。udd 是可供选用的外部 +5v 电源端,不用时需接地。 gnd 为地, nc 为空脚。ds18b20 的内部结构框图:-可编辑修改 -图2-8 ds18b20 内部结构图2.4.3 ds18b20 的工作时序(1) ds18b20 的复位时序图2-9 ds18b20 复位时序图(2) ds18b20 的读时序对于ds18b20的读时序分为读0时序和读1时序两个过程。对于ds18b20的读时序是从主机把单总线拉低之后,在15s之内就得释放单总线,以让ds18b20把数据传输到单总线上。 ds18b20在完成一个读时序过程, 至少需要60 s才能完成。图2-10 ds18b20 读时序图(3) )ds18b20 的写时序对于ds18b20的写时序仍然分为写0 时序和写1时序两个过程。对于ds18b20写0 时序和写1 时序的要求不同,当要写0时序时,单总线要被拉低至少60 s,保证ds18b20能够在15 s 45s 之间能够正确地采样io总线上的“0 ”电平,当要写 1 时序时,单总线被拉低之后,在15s 之内就得释放单总线。图2-11 ds18b20 写时序图3系统的软件结构设计3.1 设计的流程图3.2 系统部分程序设计及分析3.2.1 复位子程序(1) 主机将信号线置为低电平,时间为480-960us 。(2) 主机将信号线置为高电平,时间为15-60us 。(3) ds18b20发出 60-240us的低电平作为应答信号,主机收到此信号才操作。复位子程序如下所示:char fuwei(void)unsigned char i; s=0;for(i=255;i0;i-);s=1;for(i=200;i0;i-);3.2.2 读子程序(1) 主机将信号线从高电平拉至低电平1us 以上,再升为高电平,产生读起始信号。(2) 从主机将信号线从高电平拉至低电平15-60us 的时间内,ds18b20将数据放到信号线上 ,完成 1 个读周期。(3) 在开始另一个读周期前,必须有1us 以上的高电平恢复期。读子程序如下所示:unsigned char duchu(void)unsigned char i,j,t=0,w=1; for(i=0;i1; s=0;_nop_();_nop_(); s=1;-可编辑修改 -for(j=10;j0;j-); if(s=1)t=t|0x80; elset=t|0x00; for(j=100;j0;j-);return(t);3.2.3 写子程序(1) 主机将信号线从高电平拉至低电平,产生写起始信号。(2) 从信号线的下降沿开始, 在 15-60us 的时间内,ds18b20对信号线检测, 如高则写 1,低则写 0,完成 1 个写周期。(3) 在开始另一个写周期前,必须有1us 以上的高电平恢复期。写子程序如下所示:unsigned char xieru(unsigned char o)char i,j; for(i=0;i0;j-); s=1;elses=0;for(j=2;j0;j-); s=1;-可编辑修改 -for(j=33;j0;j-);o=o1;3.2.4 其他程序本设计中除了上述三个子程序外,还涉及到显示程序, 数据处理程序, 中断程序和延时程序等,由于篇幅原因不作具体介绍,详见附录。结论通过这次毕业设计, 提升了我的自学能力, 通过不断的查阅资料,通过老师的不断讲解,来解决其中遇到的困难,比如如何解决ds18b20 控制问题,如何解决报警问题等。本文所讨论的设计采用了宏晶科技的stc89c516rd+单片机作为系统的中央控制单元, ds18b20作为温度采集器,并结合软件编程,实现温度传感电路与单片机的结合。该系统具有更高速、更灵敏、更简捷地获取被分析、检测、控制对象的温度信息的能力,同时具有良好的抗干扰及环境适应能力(测温范围-55+125)。因其体积小,使用方便,封装形式多样,适用于各种狭小空间设 备数字测温和控制领域,且系统结构较为简单,可大规模的采用,成本低廉。-可编辑修改 -附录#includereg51.h程序设计#includeintrins.h/ 汇编语句的c 语言调用接口unsigned char g=0,a=0,b=0,c=0,d=0,e=0,t;unsigned char m=0xfa,0x82,0xd9,0xcb,0xa3,0x6b,0x7b,0xc2,0xfb,0xeb;sbit s=p11;/ds18b20的与单片机连接的i/o 口sbit z=p16;/发光二极管char fuwei(void)/复位程序unsigned char i; s=0;for(i=255;i0;i-);s=1;for(i=200;i0;i-);unsigned char xieru(unsigned char o)/写入 18b20 子程序char i,j; for(i=0;i0;j-); s=1;else-可编辑修改 -s=0;for(j=2;j0;j-); s=1;for(j=33;j0;j-);o=o1;unsigned char duchu(void)/读出 18b20 子程序unsigned char i,j,t=0,w=1; for(i=0;i1; s=0;_nop_();_nop_(); s=1;for(j=10;j0;j-); if(s=1) t=t|0x80; elset=t|0x00; for(j=100;j0;j-);return(t);void display(void)/显示程序unsigned char i, j; for(i=0;i10;i+)p2=0x00;p0=0x04;-可编辑修改 -p2=ma;for(j=0;j160;j+); p2=0x00;p0=0x02;p2=mb|0x04;for(j=0;j160;j+); p2=0x00;p0=0x01; p2=mc;for(j=0;j160;j+);p2=0x00;p0=0x08; p2=md;for(j=0;j=2)z=z; elsez=1;void smzh(void)/数值转换子程序unsigned int k,w; unsigned int n=0,0; fuwei();xieru(0xcc); xieru(0xbe); n0=duchu();n1=duchu(); k=n04; t=n14;t=t&0x70;t=t|k; a=t%100/10; b=t%10;-可编辑修改 -w=n0&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();void t0(void)interrupt 1/中断程序th0=(65535-4000)/256; tl0=(65535-4000)%256;smzh();display(); fuwei();

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论