基于DS18B20的温度监控系统.doc_第1页
基于DS18B20的温度监控系统.doc_第2页
基于DS18B20的温度监控系统.doc_第3页
基于DS18B20的温度监控系统.doc_第4页
基于DS18B20的温度监控系统.doc_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

温度控制器 实 训 报 告 院系:机电工程学院班级:(08)应电一班姓名:王曼学号:2008061683指导老师:杨志帮 目 录第1章 总体设计方案31.1 方案一31.2 方案二31.3 方案比较3第2章 硬件系统方案设计42.1 DS18B20温度传感器简介42.2单片机接口电路设计42.2.1晶振电路52.2.2串口引脚52.2.3 其它引脚52.3键盘控制设计62.4温度测试电路62.5温度控制器件电路72.6七段数码管显示电路 7 27串行口通信电路 8第3章 软件系统分析与设计93.1程序结构分析93.2系统程序流图10第4章 调试 14第5章 分析155.1测试环境155.2测试方法155.3测试结果155.4测试分析15结 论16参考文献16附 录17附录一:完整程序17附录二:电路原理图16第1章 总体设计方案1.1 方案一测温电路的设计,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来。1.2 方案二考虑使用数字温度传感器,结合单片机电路设计,采用一只DS18B20温度传感器,直接读取被测温度值,之后进行转换,依次完成设计要求。1.3 方案比较方案一采用模拟温度传感器,数据处理麻烦,且容易产生信号失真,方案二可以只用一根线实现信号的双向传输,具有接口简单、容易扩展等优点,并且可以挂接多个从机,适用于单片机、多从机构成的系统。DS18B20可以直接温度转换为串行数字信号,供单片机进行处理,具有低功耗、高性能、抗干扰能力强等优点。比较以上两种方案,很容易看出,采用方案二,电路比较简单,软件设计容易实现,故实际设计中拟采用方案二。在本系统的电路设计方框图如图1.1所示。Stc12c5116s2CPUDSP18B20温度芯片键盘电路LED显示报警电路继电器PC机电源图1.1 温度计电路总体设计方案第2章 硬件系统方案设计2.1 DS18B20温度传感器简介DS18B20是DALLAS公司生产的一线式数字温度传感器,它具有微型化、低功耗、高性能抗干扰能力、强易配处理器等优点,特别适合用于构成多点温度测控系统,可直接将温度转化成串行数字信号(按9位二进制数字)给单片机处理,且在同一总线上可以挂接多个传感器芯片,它具有三引脚TO-92小体积封装形式,温度测量范围55125,可编程为912位A/D转换精度,测温分辨率可达0.0625,被测温度用符号扩展的16位数字量方式串行输出,其工作电源既可在远端引入,业可采用寄生电源方式产生,多个DS18B20可以并联到三根或者两根线上,CPU只需一根端口线就能与多个DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。从而可以看出DS18B20可以非常方便的被用于远距离多点温度检测系统。图2.1温度芯片DS18B202.2单片机接口电路设计DS18B20可以采用两种方式供电,一种是采用电源供电方式,此时DS18B20的1脚接地,2脚作为信号线,3脚接电源。另一种是寄生电源供电方式,如图3.1所示单片机端口接单线总线,为保证在有效的DS18B20时钟周期内提供足够的电流,可用一个三极管来完成对总线的上拉。本设计采用电源供电方式, P2.2口接单线总线为保证在有效的DS18B20时钟周期内提供足够的电流,可用一个上拉电阻和stc12c5a16s2的P2.2来完成对总线的上拉。当DS18B20处于写存储器操作和温度A/D变换操作时,总线上必须有强的上拉,上拉开启时间最大为10 s。采用寄生电源供电方式是VDD和GND端均接地。由于单线制只有一根线,因此发送接收口必须是三状态的。主机控制DS18B20完成温度转换必须经过3个步骤:l 初始化。l ROM操作指令。l 存储器操作指令。2.2.1晶振电路单片机XIAL1和XIAL2分别接30PF的电容,中间再并个12MHZ的晶振,形成单片机的晶振电路。图2.2.12.2.2串口引脚 P0口接9个2.2K的排阻然后接到显示电路上。P2.2温度传感器DS18B20如图2.2.2所示。 图2.2.2 DS18B20与单片机的接口电路P3.6引脚接继电器电路的4.7K的限流电阻上;P1口中P1.4、P1.5、P1.6、P1.7分别接到显示电路的三极管上,P3.2接蜂鸣器电路,P1.3接到发光二极管上;P2口接到按键电路。2.2.3 其它引脚 ALE引脚悬空,复位引脚接到复位电路、VCC接电源、VSS接地、EA接电2.3键盘控制设计单片机应用系统中除了复位按键有专门的复位电路,以及专一的复位功能外,其它的按键或键盘都是以开关状态来设置控制功能或输入数据。 键开关状态的可靠输入 :为了去抖动我采用软件方法,它是在检测到有键按下时,执行一个10ms的延时程序后,再确认该键电平是否仍保持闭合状态电平,如保持闭合状态电平则确认为真正键按下状态,从而消除了抖动影响在这种行列式矩阵键盘非编码键盘的单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按下的程序段。当确认有按键按下后,下一步就要识别哪一个按键按下。对键的识别通常有两种方法:一种是常用的逐行扫描查询法;另一种是速度较快的线反转法。对照图示的3*4键盘,说明线反转法工作原理。首先辨别键盘中有无键按下,有单片机I/O口向键盘送全扫描字,然后读入行线状态来判断。方法是:给P2口的一个口致0,其它致1,判断P2口值是否有变化,在判断是哪个按键按下。图2.32.4温度测试电路采用温度芯片DS18B20。可以直接将被测温度转换为串行数字信号,工单片机进行处理,具有低功耗、高功能、抗扰能力强等优点。图2.4温度传感器电路引脚图2.5温度控制器件电路单片机通过三极管控制继电器的通断,最后达到控制外围器件电路的目的。当温度未达到要求时,单片机发送高电平信号使三极管饱和导通,继电器使电源与外围器件接通。当温度上升到预定温度时,单片机发送低电平信号三极管进入截止状态,继电器的弹片打到另一侧,使电热器与电源断开,外围器件截止。继电器电路中有一个PNP三极管的保护电路,即将一个二极管反向接到三机管的两端。连接方法如图2.5所示。图2.5其原理是:当继电器突然断电时,继电器产生很大的反向电流。二极管的作用是将反向电流分流,使流过三级管8050的电流比较小,达到保护三极管8050的作用2.6七段数码管显示电路 具体见实际连线图如图3.5,当位选打开时,送入相应的段码,则相应的数码管打开,关掉位选,打开另一个位选,送入相应的段码,则数码管打开,而每次打开关掉相应的位选时,时间间隔低于20ms,从人类视觉的角度上看,就仿佛是全部数码管同时显示的一样。图2.62.7串口通信电路 串口是计算机上一种非常通用设备通信的协议(不要与通用串行总线Universal Serial Bus或者USB混淆)。大多数计算机包含两个基于RS232的串口。串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS-232口。同时,串口通信协议也可以用于获取远程采集设备的数据。串口通信的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。比如IEEE488定义并行通行状态时,规定设备线总常不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长度可达1200米。RS-232(ANSI/EIA-232标准)是IBM-PC及其兼容机上的串行连接标准。可用于许多用途,比如连接鼠标、打印机或者Modem,同时也可以接工业仪器仪表。用于驱动和连线的改进,实际应用中RS-232的传输长度或者速度常常超过标准的值。RS-232只限于PC串口和设备间点对点的通信。RS-232串口通信最远距离是50英尺。DB-9针连接头 1 2 3 4 5 / 6 7 8 9 / 从计算机连出的线的截面。RS-232针脚的功能:数据: TXD(pin 3):串口数据输出RXD(pin 2):串口数据输入握手:RTS(pin 7):发送数据请求CTS(pin 8):清除发送DSR(pin 6):数据发送就绪DCD(pin 1):数据载波检测DTR(pin 4):数据终端就绪地线:GND(pin 5):地线其他RI(pin 9):铃声指示 第3章 软件系统分析与设计3.1程序结构分析主程序调用了5个子程序,分别是数码管显示程序、键盘扫描及按键处理程序、温度信号处理程序、继电器控制程序、单片机与PC机串口通讯程序。键盘扫描电路及按键处理程序:实现键盘的输入按键的识别及进入相应的程序。温度信号处理程序:对温度芯片送过来的数据进行处理,进行判断和显示。数码管显示程序:向数码的显示送数,控制系统的显示部分。继电器控制程序:控制继电器动作串口通讯程序:实现PC机与单片机通讯,将温度数据传送给PC机。3.2系统程序流图系统程序主要包括主程序,读出温度子程序,写入子程序等,按键子程序,串口通信程序,显示子程序,声光报警子程序。1)主程序主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量的当前温度值,温度测量每1s进行一次。这样可以在一秒之内测量一次被测温度,其程序流程见图4.2所示。通过调用读温度子程序把存入内存储中的整数部分与小数部分分开存放在不同的两个单元中,然后通过调用显示子程序显示出来 3.2.2 按键子程序流程图 3.2.3 18B20温度流程图3.2.3 串口通信子程序流程图第4章 调试主程序的功能是:启动DS18B20测量温度,将测量值与所设定的温度上下限值进行比较,若测得温度小于设定下限值,则进入声光报警子程序,这期间声光报警不间断的响起,直到温度在设定范围内,才终止声光报警程序,若测得温度大于所设定的温度上限值,亦进入声光报警子程序,此时声光报警不间断的响起,直到所测的温度在设定的安全范围内。第一次上电调试,设置温度上限为35摄氏度,温度下限为28摄氏度。但温度却不显示出来,后经检查发现原来是DS18B20初始化时间设置不对,导致没法读到DS18B20的温度值,延时时间重设后才显示出温度值来。再经实际接电调试,一切运行正常。 按键调试时,刚开始由于没有设置按键松手检测程序,按键一直失灵,后将按键松手检测程序(while(P2=0Xxx)后,按键运转正常。串口调试时,刚开始是发送一个数据便显示一个数据便打开一次中断,这样导致数据更换太慢,没法同时显示几个数据,后将所有要显示的数据一个一个储存起来后再打开中断,一起送出去,这样问题解决了,发送和接收都没有错误了。第5章 分析5.1测试环境环境温度28摄氏度,室内面积20平方米测试仪器:数字万用表,温度计0-100摄氏度5.2测试方法使系统运行,采用温度计同时测量室内度变化情况,得出系统测量的温度。5.3测试结果设定温度由25摄氏度到40摄氏度标定温差=1摄氏度 静态误差=0.5摄氏度 5.4测试分析对于实际室内的温度控制,可以再提出以下方法 :检验所做温度测量是否准确,可以用电吹风机作为加热设备,降温设备可采用空气压缩机等制冷设备,并将所采集到的温度与实际标准的温度计进行比较。 通过实验测试和分析,发现虽然传感器的温度采集精度最高可得到 0.06 ,但测试得到的数据最小间隔为 0.03 。通过分析,当对浮点数求平均处理时,遇到同一时刻两个传感头采集的温度相差不大,使 0.06 时求出平均温度变为 0.03 为了解该数据是否真实,可采用一个高精度的数字温度计测试,发现读出的值与其基本一致,由此推断如果在同一时间增加采集温度的个数,则可以进一步提高温度的精度。 结 论温度检测和控制都直接与安全生产、节约能源等技术经济指标相联系。温度测量在工业、民用、军事等领域占着重要的地位。航空、家电、科研等领域都需要温度测试设备,用于测试和确定电工、电子及其它产品及材料进行高温、低温、交变温度或恒定试验的温度环境的变化,判断当检测目标的温度值达到警示条件时发出警告信号。在工业生产和日常生活中,对温度控制系统的要求,主要是保证温度在一定温度范围内变化,稳定性好,不振荡,对系统的快速性要求不高。在本设计中简单分析了单片机温度控制系统设计过程及实现方法。本系统的测温范围为-10125,温度检测系统根据用户设定的温度范围完成一定范围的温度控制。本设计使用的温度控制器结构简单、测温准确,具有一定的实际应用价值。但是还有许多需要完善的地方。此外,还能广泛地应用于其他一些工业生产领域,如建筑,仓储等行业。本温度控制系统可以应用于多种场合,像的温度、育婴房的温度、水温的控制。用户可灵活选择本设计的用途,有很强的实用价值。参考文献1曹巧媛主编. 单片机原理及应用(第二版). 北京:电子工业出版社,20022全国大学生电子设计竞赛组委会编.第五届全国大学生电子设计竞赛获奖作品选编(2001), 北京:北京理工大学出版社,20033何力民编. 单片机高级教程. 北京:北京航空大学出版社,20004金发庆等编. 传感器技术与应用.北京机械工业出版社,20025刘坤、宋戈、赵洪波、张宪栋编51单片机C语言应用开发技术大全,北京:人民邮电出版社,20086谭浩强著C程序设计北京:清华大学出版社,2007;7王忠飞,胥芳MCS-51 单片机原理及嵌入式系统应用M西安:西安电子科技大学出版社,2007P268-2738 Peter Van Der Linden著,徐波译.C专家编程,人民邮电出版社,2003附 录附录一:完整程序DQ BIT P2.2FS BIT P3.3 ;发送键F BIT P3.2 ;蜂鸣器低有效J BIT P3.6 ;继电器低有效L BIT P3.5SHANGXIAN EQU 61HXIAXIAN EQU 62HDQWD EQU 63H ;存放当前温度A1 EQU 64H ;功能键标志字节A2 EQU 65H ;键盘扫描辅助标志字节RECI EQU 66HORG 0000HLJMP MAINORG 0023HORG 0030HMAIN:MOV SHANGXIAN,#34 ;赋温度上下限初始值 MOV XIAXIAN,#28 L1:LCALL READ_TEMP ;读取当前温度 LCALL TEM_DATA_PRO LCALL DISPLAY ;温度显示 LCALL BAOJING LCALL KEY LJMP L1;*读18B20两个字节温度数据*; REWORD:SETB DQ ;拉高DQ为读取温度做准备 MOV R3,#8 ;读8位 MOV R4,#2 ;2个字节 MOV R0,#30H ;30H存放温度值首地址 CLR C LOOP:CLR DQ ;拉低DQ MOV R7,#16 ;延时2us3us左右 DJNZ R7,$ SETB DQ ;拉高DQ MOV R7,#16 ;延时2us3us左右 DJNZ R7,$ MOV C,DQ RRC A ;右移 MOV R7,#240 ;延时60us以上 DJNZ R7,$ MOV R7,#240 DJNZ R7,$ SETB DQ ;拉高DQ MOV R7,#12 DJNZ R7,$ MOV R0,A DJNZ R3,LOOP MOV R3,#8 ;循环8次,读完一个字节 INC R0 ;地址指针加一 DJNZ R4,LOOP ;读完两个字节返回 RET;*/;*给18b20写一个字节数据*/ WRWORD:SETB DQ ;拉高DQ为写数据准备 MOV R3,#8 ;控制循环8次 CLR C LOOP1:CLR DQ ;拉低DQ,开始写一位 MOV R7,#24 ;延时4us DJNZ R7,$ RRC A MOV DQ,C MOV R7,#240 ;延时60us以上,120us以下 DJNZ R7,$ MOV R7,#240 DJNZ R7,$ SETB DQ ;写完一位 MOV R7,#12 ;延时1us以上 DJNZ R7,$ DJNZ R3,LOOP1 ;写完8次返回 RET;*/;*DS18B20复位*/ REST:SETB DQ ;拉高DQ位复位做准备 MOV R7,#10 ;延时一下下 DJNZ R7,$ CLR DQ ;开始复位,拉低DQ600us MOV R7,#20D1:MOV R6,#180 DJNZ R6,$ DJNZ R7,D1 SETB DQ ;拉高DQ MOV R7,#180 ;延时30us读存在信号 DJNZ R7,$ JB DQ,REST ;未检测到存在信号,继续复位 MOV R6,#4 ;检测到存在信号,延时120us D2:MOV R7,#180 DJNZ R7,$ DJNZ R6,D2 SETB DQ ;拉高DQ MOV R6,#10 ;延时300us后返回 D3:MOV R7,#180 DJNZ R7,$ DJNZ R6,D3 RET;*/;*显示函数*/DISPLAY:MOV R0,#32H ;显示缓存区首地址32hMOV DPTR,#TABF ;送反码表头MOV A,R0 ;读小数MOVC A,A+DPTR ;查段码MOV P0,A ;送小数显示CLR P1.4 ;开位选CLR P0.7 ;开小数点MOV R7,#20 ;延时600usLCALL DELAYSETB P1.4 ;关位选SETB P0.7 ;关小数点INC R0 ;地址指针加一MOV A,R0 ;读个位数MOVC A,A+DPTR ;查段码MOV P0,A ;送个位显示CLR P1.5 ;开位选MOV R7,#20 ;延时600usLCALL DELAY;SETB P1.5 ;关位选INC R0MOV DPTR,#TAB ;正码表头MOV A,R0MOVC A,A+DPTRMOV P0,A ;送十位CLR P1.6MOV R7,#20LCALL DELAY ;延时600usSETB P1.6INC R0MOV A,R0MOVC A,A+DPTRMOV P0,A ;送百位CLR P1.7MOV R7,#20LCALL DELAY ;延时600usSETB P1.7 RET;*/;* 延时函数*/DELAY: D4:MOV R6,#180 DJNZ R6,$ DJNZ R7,D4 RET;*/;*数据处理函数*/TEM_DATA_PRO:MOV A,30H ;取低字节温度 ANL A,#0FH ;取小数部分 MOV DPTR,#TAB1 MOVC A,A+DPTR MOV 32H,A ;将小数存放在32H中 MOV A,30H ANL A,#0F0H MOV 60H,A ;将高四位暂存于60H MOV A,31H ANL A,#0FH ADD A,60H ;与低字节高四位相加 SWAP A ;交换和的高低四位,得温度的整数部分 MOV DQWD,A MOV B,#100 ;分离出百,十,个位,分别存放在35H34H33H中 DIV AB MOV 35H,A MOV A,B MOV B,#10 DIV AB MOV 34H,A MOV 33H,B RET;*/;*读取温度函数*/READ_TEMP:ACALL REST MOV A,#0CCH ;发送skip指令 ACALL WRWORD MOV A,#044H ;启动温度转换指令 ACALL WRWORD ACALL REST MOV A,#0CCH ;发送skip指令 ACALL WRWORD MOV A,#0BEH ;发送读指令 ACALL WRWORD ACALL REWORD RET;*/;*键盘扫描函数*/ KEY:CLR P2.6MOV A,P2CJNE A,#0BFH,T21LJMP RETNB T21:MOV R7,#200 ;延时6ms消抖LCALL DELAYMOV A,P2CJNE A,#0BFH,AMLJMP RETNBAM: MOV R7,A ;判断按键SS:MOV A,P2CJNE A,#0BFH,SS ;松手检测MOV A,R7CJNE A,#0BBH,T22 ;功能键INC A1 MOV A,A1CJNE A,#3,KEYMOV A1,#1MOV A2,#1SJMP KEY T22:CJNE A,#0BEH,T23 ;加键 MOV A,A1 ;当A1为1时上限加一CJNE A,#1,T

温馨提示

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

评论

0/150

提交评论