资源描述
。机 电 专 业 课程设计温度检测系统学生姓名李晓晓学院 中国矿业大学年级专业 2011 机电专本指导教师孙长青完成日期 2012 年 6 月。- 1 -。前言温度是表征物体冷热程度的物理量, 是工业生产和自动控制中最常见的工艺参数之一,生产过程中常常需要对温度进行检测和监控。 在传统的温度测控系统设计中,往往采用模拟技术进行设计, 这样就不可避免地遇到诸如传感器外围电路复杂及抗干扰能力差等问题 ; 而其中任何一环节处理不当,就会造成整个系统性能的下降。采用数字温度传感器与单片机组成的温度检测系统进行温度检测、数值显示和数据存储,体积减小,精度提高,抗干扰能力强,并可组网进行多点协测,还可以实现实时控制等技术,在现代工业生产中应用越来越广泛。本设计就采用以 51 单片机为核心, 和单总线数字式温度传感器 DS18B20模拟出一温度控制系统, 当温度没有超过预设温度时数码管显示当前温度, 此本系统就是一个温度计。当温度超过预设温度时电路中的发光二极管就会闪烁报警,当温度降下时就停止闪烁,此时本系统就是一个温度监控器。以 DS18B20 为代表的新型单总线数字式温度传感器集温度测量和 A/D 转换于一体 , 直接输出数字量,与单片机接口电路结构简单,广泛使用于距离远、节点分布多的场合,具有较强的推广应用价值。- 2 -。目录前言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。- 3 -。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系统框图。- 4 -。本设计为无线电控制电路,系统框图如下所示:图 1-1 系统框图1.3.2系统功能此设计以单片机为核心的温度监控系统,其功能是:平常状态下可以做温度计使用。当温度超过预设温度时二极管会闪烁报警,当温度降下时二极管则停止闪烁。2 系统的硬件结构设计2.1器件的选择在本设计系统中用到的主要器件有单片机核心控制器、 温度传感器、 数码管显示器。选择合适的器件完成设计任务, 目前各半导体公司、 电气商都向市场上推出了形形色色的器件, 如何选择合适的器件使系统最大的简单化, 功能优异化,可靠性强,成本低廉,成为了器件选择的重中之重。一般来说,选择器件要考虑一下几个方面:(1)芯片的封装形式。如DIP(双列直插)封装及表面贴附等。(2)器件的基本性能参数。如单片机执行速度、程序储存器容量、 I/O 口引脚数量等。- 5 -。(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口作为第八位地址接收。- 6 -。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外部数据存储器写选通 WRP3.7外部数据存储器写选通 RD(3) RST复位:当振荡器复位器件时, 要保持 RST脚两个机器周期的高电平时间。 复位可分为上电复位和手动复位两种,如图所示:图2-2复位电路。- 7 -。(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端保持高电平时,此间内部程序存储器。- 8 -。2.1.3单片机最小系统如图所示:图 2-4 单片机最小系统2.2电路设计及功能本设计大体可分为三个部分,即温度采集,数码显示,报警电路。温度采集部分利用 DS18B20进行温度采集,感知温度,后数码显示出温度,若温度超过了预设温度报警电路则启亮发光二极管,闪烁。整体电路图如下所示:图 2-5 温度监控系统电路图。- 9 -。2.3单片机的内部资源51 单片机给用户提供了丰富的内部资源, 如定时 / 计数器,串行口等,而没有中断就无法用到单片机提供的资源。再者,中断可以提高单片机的工作效率,由于本设计中用到了中断程序,所以我们先介绍一下中断系统。2.3.1中断系统 :在8位单片机中, 51 单片机是中断功能较强的一种,它提供了5个中断请求源和两个中断优先级控制。在计算机运行过程中要处理很多问题, 既有主机内部也有外部的, 既有预定的也有外设的,面对复杂多变的情况, CPU要从容的完成各种任务,必须有中断功能。中断系统解决了计算机与外围设备交换信息时, 慢速工作的外围设备与快速工作的 CPU之间的矛盾,设置了中断就可以提高 CPU的工作效率,具有实时处理功能,使 CPU能很快做出反应解决现场的各种参数和状态的变化,还具有故障处理功能,处理工作时故障的中断服务程序,此外还有实现分时操作、程序调试、多机连接等方面。运行过程如下:现行程序中断中断断点服务程序继续执行图2-6 中断控制过程不同的单片机的中断源是不同的,在此系统中的单片机有五个中断源,具有两个中断优先级, 可以实现二级中断服务程序嵌套。每个中断源可以编程为高优先级或低优先级中断,允许或禁止CPU请求中断。与中断系统有关的特殊功能寄存器有中断允许寄存器 IE 、中断优先寄存器 IP 、中断源寄存器( TCON、SCON)。从中断响应过程可以看出在执行一种中断服务程序时, 另一个同级中断不能。- 10 -。被响应,必须在执行 RET1指令后,在执行一条其他条令,CPU才能响应。利用这一特点,可以实现单步操作。其实现过程如下:设置中断P3.2 为电平触发方式,高优先级中断, CPU外部中断 0开中断,即应执行以下指令:CLR IT0, SETB EA, SEB EX0 .在中断服务程序结尾增加以下指令:K0:jnb P3.2,K0;P3.2 变高前原地等待K1:jb P3.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)的控制。 GATE0时,定时 / 计数器的启动与引脚 /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进位,最大计数值位2 65536。2.4芯片 DS18B20器件介绍DSl820数字温度计提供 9位温度读数,指示器件的温度。 信息经过单线接口送入 DSl820或从 DSl820送出,因此从中央处理器到 DSl820仅需连接一条线 (和地)。读、写和完成温度变换所需的电源可以由数据线本身提供,而不需要外部电源。因为每一个 DSl820有唯一的系列号( silicon serial number),因此多个 DSl820。- 11 -。可以存在于同一条单线总线上。 这允许在许多不同的地方放置温度灵敏器件。 此特性的应用范围包括 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 为空脚。- 12 -。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读时序图。- 13 -。( 3) DS18B20的写时序对于 DS18B20 的写时序仍然分为写0时序和写 1时序两个过程。对于DS18B20 写 0 时序和写 1 时序的要求不同,当要写 0 时序时,单总线要被拉低至少 60 s,保证 DS18B20能够在 15 s45s 之间能够正确地采样 IO 总线上的“ 0”电平,当要写 1 时序时,单总线被拉低之后,在 15 s 之内就得释放单总线。图 2-11 DS18B20写时序图3 系统的软件结构设计3.1设计的流程图。- 14 -。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;。- 15 -。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;。- 16 -。for(j=33;j0;j-);o=o1;3.2.4其他程序本设计中除了上述三个子程序外,还涉及到显示程序, 数据处理程序, 中断程序和延时程序等,由于篇幅原因不作具体介绍,详见附录。结论通过这次毕业设计, 提升了我的自学能力, 通过不断的查阅资料, 通过老师的不断讲解,来解决其中遇到的困难,比如如何解决 DS18B20控制问题,如何解决报警问题等。本文所讨论的设计采用了宏晶科技的STC89C516RD+单片机作为系统的中央控制单元, DS18B20作为温度采集器,并结合软件编程,实现温度传感电路与单片机的结合。该系统具有更高速、更灵敏、更简捷地获取被分析、检测、控制对象的温度信息的能力,同时具有良好的抗干扰及环境适应能力(测温范围-55 +125 )。因其体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域,且系统结构较为简单,可大规模的采用,成本低廉。- 17 -。附录程序设计#includereg51.h#includeintrins.h/汇编语句的 C 语言调用接口unsigned char g=0,a=0,b=0,c=0,d=0,e=0,t;Unsigned charm=0xfa,0x82,0xd9,0xcb,0xa3,0x6b,0x7b,0xc2,0xfb,0xeb;sbits=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;elses=0;。- 18 -。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+);。- 19 -。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;。- 20 -。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();xieru(0xcc);xieru(0x44);。- 21 -。附录参考文献1、张大明单片机控制应用技术实操指导书机械工业出版社20012、徐火明单片机原理及接口技术电子工业出版社20013、李玉梅基于 MCS51系列单片机原理的应用国防工业出版社20044、周良全模拟电子技术高等教育出版社20055、周良全数字电子基础高等教育出版社20086、胡宴如高频电子线路高等教育出版社20047、潘永雄新编单片机原理与应用西安电子科技大学出版社20068、周坚单片机轻松入门北京航空航天大学出版社20069、宁凡单片机基础教程北京航空航天大学出版社2008。- 22 -。附录结束语转眼大学生活就进入到了尾声,而在这个时我也完成自己的毕业设计。毕业设计对任何一个毕业生来说都应该是非常重要的,因为这需要通过自己所学到的知识来解决实际的问题, 是对自己综合能力的一个考验。毕业设计的水平在很大程度上代表了毕业生的水平, 只有合格完成了毕业设计的人才能算做一个合格的毕业生。这次我设计的是基于单总线温度传感器的温度监控系统设计。在设计过程中,我通过各种途径查阅了大量的关于温度传感器和单片机的资料。考虑到AT89C2051, 80C31 和 PIC 单片机的特点,最后决定选用AT89C516RD+。并利用Proteus 来制作原理图。至此,所有关于毕业设计的内容就介绍完了。 虽然我花费了很多时间来尽力把毕设做好, 但是由于个人能力的原因, 整个系统还是不够完善的, 还有许多地方值得改进。今后有机会再将其完善。本次设计是在刘钦东老师的悉心指导下完成的。 在整个过程中, 老师给予了大量指导,并提供了很多与该研究相关的重要信息, 培养了我们对科学研究的严谨态度和创新精神, 对我影响深远。 不仅使我掌握了基本的科学研究方法, 还使我明白了许多待人接物与为人处世的道理,这将非常有利于我今后的学习和工作。老师们常说毕业设计重在过程,事实也确是如此。在整个毕设的过程,我学到了许多过去没有接触过的新的知识, 也将过去所学的知识又做了一次温习。 这些收获给我带来的帮助远不止作好毕业设计那么简单, 我相信在踏上工作岗位之后它们也将成为我向上的坚实基础。- 23 -。附录实物照片。- 24 -。欢迎您的下载,资料仅供参考!致力为企业和个人提供合同协议,策划案计划书,学习资料等等打造全网一站式需求。- 25 -
展开阅读全文