ImageVerifierCode 换一换
格式:DOCX , 页数:31 ,大小:194.59KB ,
资源ID:26863687      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/26863687.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于DS18B20的温度控制系统设计1.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于DS18B20的温度控制系统设计1.docx

1、基于DS18B20的温度控制系统设计1 课程考核答 题 册课程名称 自动检测与转换技术 课程性质 院(部) 物电学院 专业 电子声像 学号 8 姓名 赵培琳 年级 2010级 班 一班 层次 本科 学年 2012-2013 学期 2 成 绩 评 定 表序 号评 语得 分总成绩 评卷人 基于DS18B20的数字温度计的设计摘 要本设计以AT89C51单片机为核心的温度控制系统的工作原理和设计方法。温度信号由温度芯片DS18B20采集,并以数字信号的方式传送给单片机,再由单片机将信号通过数码管显示出来,并有报警提示功能。报告中介绍了该控制系统的硬件部分,包括:温度检测模块、温度控制模块、显示模块和

2、报警模块。单片机通过对信号进行相应处理,从而实现温度控制的目的。报告中还重点介绍了软件设计部分,在这里采用模块化结构,主要模块有:数码管显示程序、键盘扫描及按键处理程序、温度信号处理程序。关键词:AT89C51单片机 DS18B20温度芯片 温度控制 串口通讯摘要基于DS18B20的数字温度计的设计1绪论1.1课题研究的背景和意义温度是工业生产过程中最普遍、最重要日常检测参数之一。任何物理变化和化学变化的过程都与温度密切相关。温度检测和控制都直接与安全生产、节约能源等技术经济指标相联系。温度测量在工业、民用、军事等领域占着重要的地位,航空、家电、科研等领域都需要温度测试设备,用于测试和确定电工

3、、电子及其它产品及材料进行高温、低温、交变温度或恒定试验的温度环境的变化,判断当检测目标的温度值达到警示条件时发出警告信号。常用的控制电路根据应用场合和所要求的性能指标有所不同,在工业企业中,如何提高温度控制对象的运行性能一直以来都是控制人员和现场技术人员努力解决的问题。这类控制对象惯性大,滞后现象严重,存在很多不确定的因素,难以建立精确的数学模型,从而导致控制系统性能不佳,甚至出现控制不稳定、失控现象。传统的继电器调温电路简单实用,但由于继电器动作频繁,可能会因触点不良而影响正常工作。控制领域还大量采用传统的PID控制方式,但PID控制对象的模型难以建立,并且当扰动因素不明确时,参数调整不便

4、仍是普遍存在的问题。而采用数字温度传感器DS18B20,因其内部集成了A/D转换器,使得电路结构更加简单,而且减少了温度测量转换时的精度损失,使得测量温度更加精确。数字温度传感器DS18B20只用一个引脚即可与单片机进行通信,大大减少了接线的麻烦,使得单片机更加具有拓展性。由于DS18B20芯片的小型化,更加可以通过单跳数据线就可以和主电路连接,故可以把数字温度传感器DS18B20做成探头,探入到狭小的地方,增加了实用性。更能串接多个数字温度传感器DS18B20进行范围的温度检测。1.2本设计的主要要求(1)测量温度范围:-50150;(2)精度:0.5;(3)线性度:0.3;(4)超限报警功

5、能;(5)具有温度和时间显示功能;(6)工作电压:总线供电。2系统总体设计方案2.1系统方案选择方案一:采用纯硬件的闭环控制系统。方案二:测温电路的设计,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来。方案三:考虑使用数字温度传感器,结合单片机电路设计,采用一只DS18B20温度传感器,直接读取被测温度值,之后进行转换,依次完成设计要求。方案比较:方案一优点在于速度较快,但可靠性比较差控制精度比较低、灵活性小、线路复杂、调试、安装都不方便,且要实现题目所有的要求难度较大。方

6、案二采用模拟温度传感器,数据处理麻烦,且容易产生信号失真。方案三可以只用一根线实现信号的双向传输,具有接口简单容易扩展等优点。DS18B20可以直接温度转换为串行数字信号,供单片机进行处理,具有低功耗、商性能、抗干扰能力强等优点。比较以上三种方案,很容易看出,采用方案三,电路比较简单,软件设计容易实现,故实际设计中拟采用方案三。2.2 整体电路设计温度传感器 DS18B20从设备环境中采集温度,单片机获取采集的温度值,经处理后得到当前环境中一个比较稳定的温度值,再根据当前设定的温度值,通过加热和冷却对当前温度进行调整。采集到的温度数据传输到单片机,由单片机处理后的数据送显示部分显示,当采集的温

7、度经处理后低于设定温度的下限或高于设定温度的上限时,单片机控制报警电路相应的发光二极管发光显示。本次设计的整体电路图见附录。图2.1温度计电路总体设计框图3硬件系统方案设计3.1DS18B20温度传感器DS18B20是DALLAS公司生产的一线式数字温度传感器,它具有微型化、低功耗、高性能抗干扰能力、强易配处理器等优点,特别适合用于构成多点温度测控系统,可直接将温度转化成串行数字信号给单片机处理,且在同一总线上可以挂接多个传感器芯片,它具有三引脚T0-92小体积封装形式,温度测量-55+125,可编程为912位A/D转换精度,测温分辨率可达0.0625,被测温度用符号扩展的16位数字量方式串行

8、输出,其工作电源既可在远端引入,也可以采用寄生电源方式产生,多个DS18B20可以并联到三根或者两根线上,CPU只需一根端口线就能与多个DS18B20通信,占用微处理器的端口较少,可省大量的引线和逻辑电路。从而可以看出DS18B20可以非常方便的被用于远距离多点温度检测系统。综上,在本系统中采用温度芯片DS18B20测量温度。该芯片的物理化学性很稳定,它能用做工业测温元件,且此元件线形较好。在0-100摄氏度时,最大线形偏差小于l摄氏度,该芯片直接向单片机传输数字信号,便于单片机处理及控制。 图3.1 温度芯片DS18B20 图3.2 DS18B20引脚图3.2DS18B20供电方式在硬件上,

9、DS18B20与单片机的连接有两种方法,一种是用寄生电源供电,此时VCC、GND接地,I/O接单片机I/O如图3.3所示;另一种是VCC接外部电源,GND接地,I/O与单片机的I/O线相连如图3.4所示。无论是内部寄生电源还是外部供电,I/O口线要接5K左右的上拉电阻。图3.3寄生电源方式 图3.4外接电源方式本设计中,采用第二种方法,这样简化硬件电路设计,降低了整个系统的复杂度。3.3DS18B20测温原理当DS18B20接收到温度转换命令后,开始启动转换。转换完成后的温度就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1、2字节。单片机可以通过单线接口读出该数据,读数据时低位在

10、先,高位在后,数据格式以0.0625 形式表示。温度值格式如图3.5所示。图3.5 温度值格式3.4复位电路模块复位电路有上电自动复位和按键手动复位两种方式。上电自动复位是通过外部复位电路的电容充电来实现的,只要电源VCC的上升时间不超过1ms,就可以实现自动上电复位,即接通电源就成了系统的复位初始化。按键手动复位有电平方式和脉冲方式两种。其中,按键电平复位是通过使复位端经电阻与VCC电源接通而实现的,而按键脉冲复位则是利用RC微分电路产生的正脉冲来实现的。本系统的复位电路采用上电复位方式。复位电路图如图3.6所示:图3.6 复位电路3.5显示电路模块本电路主要使用八段数码管HD7279和移位

11、寄存器芯片。单片机通过数据总线将要显示的数据信号传送到移位寄存器芯片,再由移位寄存器控制数码管的显示,从而实现移位寄存点亮数码管显示。由于单片机的时钟频率较高,移位寄存器的移位速度相当快,所以我们根本看不到数据是一位一位传输的。从人类视觉的角度上看,就仿佛是全部数码管同时显示的一样。图3.7显示电路3.6按键电路模块利用单片机的IO口实现按键的中断输入。另外需要一个与门实现与中断端口的连接。按键电路如图3.8所示。图3.8 按键电路4软件设计系统软件设计主要包括系统程序和控制流程图,根据整个系统要求的温度测量与控制写出系统的控制流程图,然后进行编程。键盘中断服务子程序:温度显示模块流程图:时间

12、显示模块流程图:5系统调试焊接完成之后,首先认真的按照电路图检查焊接的情况,发现两个管脚焊错了,然后因为这些管脚都是P2脚,没有太大影响,所以修改电路图。然后检查电源和接地,发现没有短路,可以上电了,上电之后,检查器件没有发热现象。显示调试:1)编写一段简短的测试程序,上电后,下载测试HD7279的程序,发现无法正常显示,进行如下调试:2)初步认定是单片机最小系统的焊接出现问题。断电,然后认真的用万用表测试震荡电路、复位电路、电源和接地的导通情况,电阻和电容的情况发现没有问题。3)检查HD7279和数码管的焊接情况,断电,测试P2.5,P2.4,P2.3和CS,DAT,SLK的连接情况,没有问

13、题;测试A,B,C,D,E,F,G,H,DP管脚和数码管的连接情况,发现电阻无穷大,是断开的,然后焊上;断电,测试HD7279的电源和接地情况,发现没问题检查各种跳线的塑料外包装,发现有些外皮被烫坏,有破损;跳线的裸露接头过长,容易短路;断电,测试时,电源和DIG0短路,发现因为导线外皮破损,换导线。4)再次上电,用测试程序测试,仍然无法显示。5)重新检查电路图,发现电路图设计有问题,EA接了低电平,改为高电平。然后修改电路图。6)再次上电,重新测试,仍然无法显示。7)测试HD7279管脚电压,正常,然后更换芯片,再次测试能显示了。温度显示调试:下载温度显示程序,发现无法正常显示温度。调试过程

14、如下:1)上电,检查DS18B20的管脚电平,不正常。2)断电,检查DS18020的管脚连通情况。3)发现DS18B20插反了,所以有可能烧坏,更换器件。4)上电,正确显示温度。然后进行如下调试:主程序的功能是:启动DS18B20测量温度,将测量值与所设定的温度上下限值进行比较,若测得温度小于设定下限值,则进入报警子程序,这期间报警不问断的响起,直到温度在设定范围内,才终止报警程序,若测得温度大于所设定的温度上限值,亦进入报警子程序,此时报警不间断的响起,直到所测的温度在设定的安全范围内。显示时间调试:下载显示时间程序,能正确显示分秒。键盘调试,因为本实验的键盘功能设定简单,没有复杂的过程按键

15、调试时,刚开始由于没有设置按键松手检测程序,按键一直失灵,后将按键松子检测程序(while( P2=OXxx)后,按键运转正常。串口调试时,刚开始是发送一个数据便显示一个数据,打开一次中断,这样导致数据更换太慢,没发同时显示几个数据,后将所有要显示的数据一个一个储存起来后再打开中断,一起送出去,这样问题解决了,发送和接收都没有错误了。6分析对于实际室内的温度控制,可以提出以下方法:检验所做温度测量是否准确,可以用电吹风机作为加热设备,降温设备可采用空气压缩机等制冷设备,并将所采集到的温度与实际标准的温度计进行比较。通过实验测试和分析,发现虽然传感器的温度采集精度最高可得到0.06,但测试得到的

16、数据最小间隔为0.03。通过分析,当对浮点数求平均处理时,遇到同一时刻两个传感头采集的温度相差不大,使0.06时求出下均温度变为0.03为了解该数据是否真实,可采用一个高精度的数字温度计测试,如果读出的值与其基本一致,则可推断如果在同一时间增加采集温度的个数,可以进一步提高温度的精度。7结论温度检测和控制都直接与安全生产、节约能源等技术经济指标相联系。温度测量在工业、民用、军事等领域占着重要的地位。航空、家电、科研等领域都需要温度测试设备,用于测试和确定电工、电子及其它产品及材料进行高温、低温、交变温度或恒定试验的温度环境的变化,判断当检测目标的温度值达到警示条件时发出警告信号。在工业生产和日

17、常生活中,对温度控制系统的要求,主要是保证温度在一定温度范围内变化,稳定性好,不振荡,对系统的快速性要求不高。在本设计中简单分析了单片机温度控制系统设计过程及实现方法。本系统的测温范围为-50150,温度检测系统根据用户设定的温度范围完成一定范围的温度控制。本设计使用的温度控制器结构简单、测温准确,具有一定的实际应用价值。该智能温度控制器只是DS18B20在温度控制领域的一个简单实例,还有许多需要完善的地方。此外,还能广泛地应用于其他一些工业生产领域,如建筑,仓储等行业。本温度控制系统可以应用于多种场合。用户可灵活选择本设计的用途,有很强的实用价值。参考文献:【1】传感器原理及工程应用 郁有文

18、,西安电子科技大学出版社,2008.7【2】MCS-51系列单片机原理与应用 赵伟,东北林业大学出版社,2007.1【3】模拟电子技术基础 童诗白 ,高等教育出版社,2001.1附录A附录B程序代码: BIT_COUNT DATA 07FH TIMER DATA 07EH TEN DATA 07CH TIMER1 DATA 07DH DATA_IN DATA 020H DATA_OUT DATA 021H KEY_18B20 BIT 23H KEY_1302 BIT 22H;* DAT BIT P2.5 ;KEY BIT P2.6 CS BIT P2.3 CLK BIT P2.4;* FLAG

19、1 BIT F0 ;DS18B20存在标志位 DQ BIT p2.0 TEMPER_L EQU 29H ;TEMPER_H EQU 28H ;A_BIT EQU 35H ;B_BIT EQU 36H ;* KEY1 BIT P1.4 ;键盘和显示定义CH451 KEY2 BIT P1.5 KEY3 BIT P1.6 KEY4 BIT P1.7 MYDAT DATA 33H DATA_F DATA 34H DATA_KEY DATA 35H ;TIMER DATA 30H ;TIMER1 DATA 31H TIMER2 DATA 32H TIMER3 DATA 33H ;* ;* SCLK BI

20、T P1.0 ; ;系统时钟芯片ds1302 IODATA BIT P1.1 ; RST BIT P1.2 ; FLAG BIT 02H ;读写标志位 ORG 000H JMP START ORG 13H LJMP CH451_INT1 ORG 100HSTART: MOV SP,#6FH MOV P2,#B ;MOV TIMER,#50 MOV TIMER,#5START_DELAY: ;MOV TIMER1,#255 MOV TIMER1,#25START_DELAY1: DJNZ TIMER1,START_DELAY1 DJNZ TIMER,START_DELAY MOV DATA_OU

21、T,#B;复位,下降沿,CS低电平有效 CALL SEND SETB CS ACALL DELAY_1S CLR IT1 ;置外部中断信号为低电平触发 SETB EX1 ;允许键盘中断 SETB EA ;开总中断;* ;CS无效MAIN: MOV 20H,#0 MOV DATA_KEY,#0 ;MOV DATA_OUT,#B ; CALL SEND MOV A,28H MOV B,29H MOV TEN,A MOV DATA_OUT,#B CALL SEND MOV DATA_OUT,#B CALL SEND MOV DATA_OUT,#B ;下载,译码指令 CALL SEND MOV DAT

22、A_OUT,TEN ;十位数字 CALL SEND MOV DATA_OUT,#B ;下载和译码 CALL SEND MOV DATA_OUT,B ;发个位 CALL SEND SETB CS;*键盘判断*WAIT: JNB 00H,WAIT CLR 00H MOV A,DATA_KEYUKEY1: JNB KEY_18B20,UKEY2 CALL RECEIVE ;MOV DATA_IN,#15 SETB CS ;MOV B,#10 ;MOV A,DATA_IN ;DIV AB JMP MAINUKEY2: CJNE A,#2,UKEY3 CALL DS1302_Measurement AJ

23、MP MAINUKEY3: AJMP MAIN;*SEND: MOV BIT_COUNT,#8 CLR CS CALL LONG_DELAYSEND_LOOP: MOV 21H,#26H MOV C,DATA_OUT.7 ;1 MOV DAT,C SETB CLK ;CLK MOV A,DATA_OUT ; RL A MOV DATA_OUT,A CALL SHORT_DELAY ; CLR CLK ;CLK CALL SHORT_DELAY ; DJNZ BIT_COUNT,SEND_LOOP ;8 CLR DAT ; RET;* ;7279接受数据;*RECEIVE: MOV BIT_CO

24、UNT,#8 LCALL INIT_18B20 LCALL GET_TEMPER;*DS18B20复位程序*INIT_18B20: SETB DQ NOP CLR DQ MOV R0,#0FBHTSR1: DJNZ R0, TSR1 ;延时 SETB DQ MOV R0, #25HTSR2: JNB DQ , TSR3 DJNZ R0, TSR2TSR3: SETB FLAG1 ;置标志位,表明DS18B20存在 ;CLR P2.0 ;二极管指示 AJMP TSR5TSR4: CLR FLAG1 LJMP TSR7TSR5: MOV R0,#06BHTSR6: DJNZ R0,TSR6TSR7

25、: SETB DQ ;表明不存在 RET;*读转换后的温度值*GET_TEMPER: SETB DQ LCALL INIT_18B20 JB FLAG1,TSS2 RET ;若不存在则返回TSS2: MOV A,#0CCH ;跳过ROM LCALL WRITE_18B20 MOV A,#44H ;发出温度转换命令 LCALL WRITE_18B20 ;LCALL DISPLAY ;延时 ;LCALL INIT_18B20 MOV A,#0CCH ;跳过ROM LCALL WRITE_18B20 MOV A,#0BEH ;发出读温度换命令 LCALL WRITE_18B20 LCALL READ

26、2_18B20 ;读两个字节的温度 RET ;*写ds18b20汇编程序* WRITE_18B20: MOV R2,#8 CLR CWR1: CLR DQ MOV R3,#6 DJNZ R3,$ RRC A MOV DQ,C MOV R3,#23 DJNZ R3,$ SETB DQ NOP DJNZ R2,WR1 SETB DQ RET ;*读18B20程序,读出两个字节的温度* READ2_18B20: MOV R4,#2 ;低位存在29 H,高位存在28H MOV R1,#29H RE00: MOV R2,#8 RE01: CLR C SETB C NOP NOP CLR DQ NOP NOP NOP SETB DQ MOV R3,#7 DJNZ R3,$ MOV C,DQ MOV R3,#23 DJNZ R3,$ RRC A DJNZ R2,RE01 MOV R1,A DEC R1 DJNZ R4,RE00 RET ;*读出的温度进行数据转换*;CHANGE: MOV A,29H; MOV C,28H.0 ;将28H中的最低位移入C ; RRC A ; MOV C,28H.1 ; RRC A ; MOV C,28H.2 ; RRC

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1