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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

基于DS18B20的水温控制系统.docx

1、基于DS18B20的水温控制系统一、设计任务及要求本设计以AT89C51单片机作为控制核心,智能温度传感器DS18B20作为控制对象。分别用3位数码管显示预设温度值和实测温度值。运用汇编语言实现系统各种功能。当水温低于预设温度值时系统开始加热,此时红色发光二极管点亮表示处于加热状态。当温度达到预设温度值时自动停止加热。数码管的显示范围为099。二、设计背景简介温度是一个和人们生活环境有着密切关系的物理量,也是一种在生产、科研、生活中需要测量和控制的重要物理量,是国际单位制七个基本量之一,同时他也是一种最基本的环境参数。人民的生活与环境度息息相关,物理、化学、冶金、机械制造、大型仓储室、实验室、

2、农场塑料大棚甚至人们的居室里经常需要对环境温度进行检测,并根据实际的要求对温度进行控制。比如,发电厂锅炉的温度必须控制在一定的范围之内;许多化学反应的工艺过程必须在适当的温度下才能正常进行。炼油过程中,原油必须在不同的温度和压力条件下进行分流才能得到汽油、柴油、煤油等产品;没有合适的温度环境。可见研究温度的测量具有重要的理论意义和推广价值。随着现代计算机和自动化技术的发展,作为各种信息的感知、采集、转换、传输相处理的功能器件,温度传感器的作用日益突出,成为自动检测、自动控制系统和计量测试中不可缺少的重要技术工具,其应用已遍及工农业生产和日常生活的各个领域。本设计就是为了满足人们在生活中对温度测

3、量系统方面的需求。三、电路设计该水温控制系统大体可分为三大模块,74HC245与7SEG-MPX4-CA-BLUE数码管构成显示模块、AT89C51单片机构成主控模块、DS18B20为主体的温度模块。单片机通过DS18B20传感器获得当前温度值并且发送给单片机,单片机接收到各个数据时,将数据按照一定的顺序发送给74HC245,74HC245通过移位到数码管,把实测温度值和预设温度值显示到对应数码管。1. 74HC245芯片相关知识(1)74HC245主要特性及应用领域。采用CMOS工艺;宽电压工作范围:3.0V5.0V;双向三态输出;八线双向收发器封装形式:SOP20、SOP20-2、TSSO

4、P20、DIP20;适用于显示屏以及其他数字电路的驱动。(2)74HC245的引脚及功能。 图1为其引脚图,图2是其逻辑框图。表1为引脚说明,表2为其功能真值表。 图1 74HC245的引脚图 图2 74HC245的逻辑框图 表1 74HC245的引脚说明 表2 74HC245功能真值表2. DS18B20芯片相关知识(1) DS18B20简介DS18B20是由美国DALLAS公司生产的单线数字温度传感器芯片。与传统的热敏电阻有所不同,DS18B20可直接将被测温度转化为串行数字信号,以供单片机处理,它还具有微型化、低功率、高性能、抗干扰能力强等优点。通过编程,DS18B20可以实现912位的

5、温度读数。信息经过单线接口送入DS18B20或从DS18B20送出,因此从微处理器到DS18B20仅需连接一条信号线和地线。读、写和执行温度变换所需的电源可以由数据线本身提供,而不需要外部电源。(2) DS18B20的引脚功能DS18B20的引脚(图3),其功能如表3所示。 图3 DS18B20的引脚 表 3 DS18B20的引脚说明(3) DS18B20的主要特点:采用单线技术,与单片机通信只需一个引脚;通过识别芯片各自唯一的产品序列号从而实现单线多挂接,简化了分布式温度检测的应用;实际应用中不需要外部任何器件即可实现测温;可通过数据线供电,电压的范围在35.5V;不需要备份电源;测量范围为

6、-55+125,在-10+85范围内误差为0.5;数字温度计的分辨率用户可以在9位到12位之间选择,可配置实现912位的温度读数;将12位的温度值转换为数字量所需时间不超过750ms;用户定义的,非易失性的温度告警设置,用用户可以自行设定告警的上下限温度。(4) DS18B20的ROM及控制指令DS18B20的64位ROM的结构如表4所示。开始8位是DS18B20的产品类型编号10H,接着是每一个器件的唯一的序号,共有48位,最后8位是前56位的CRC校验码,这也是多个DS18B20可以用一根线进行通信的原因。 表4 DS18B20的64位ROM结构表机操作ROM的命令有五种如表5所示。 表5

7、 DS18B20控制指令指令说明读ROM(33H)读DS18B20的序列号匹配ROM(55H)继续读完64位序列号的命令,用于多个DS18B20时定位跳过ROM(CCH)此命令执行后的存储器操作将针对在线的所有DS18B20搜ROM(F0H)识别总线上各器件的编码,为操作各器件做好准备报警搜索(ECH)仅温度越限的器件对此命令做出响应DS18B20的高速暂存器由便笺式RAM和非易失性电擦写EERAM组成,后者用于存储TH、TL值。数据先写入便笺式RAM,经校验后再传给EERAM。便笺式RAM占9个字节,包括温度信息(0、1字节)、TH和TL值(2、3字节)、配置寄存器数据(4字节)、CRC(8

8、字节)等,5、6、7字节不用。暂存器的4字节是配置寄存器,可以通过相应的写命令进行配置,其内容如表6所示。 表6 暂存器配置方式0R1R011111其中,R0与R1是温度值分辨率位,配置方式如表7所示。 表7 DS18B20温度值分辨率位配置方式R1R0分辨率最大转换时间009位93.65ms(Tconv/8)0110位186.5ms(Tconv/4)1011位365ms(Tconv/2)1110位650ms(Tconv)DS18B20的核心功能部件是它的数字温度传感器,如上所述,它的分辨率可配置为9位、10位、11位或者12位,出厂默认设置是12位分辨率,它们对应的温度分辨率分别是0.5、0

9、.25、0.125、0.0625。温度信息的低位、高位字节内容中还包括了符号位S(是正温度还是负温度)和二进制小数部分,具体形式如表8所示。 表8温度信息的地位、高位字节内容形式低位字节:84211/21/41/81/16高位字节:SSSSS643216 MSB LSB这是12位分辨率的情况,如果配置为低的分辨率,则其中无意义位为0;实测温度和数字输出的对应关系如表9所示.表9 DS18B20实测温度和数字输出的对应关系DS18B20的存储控制命令如表10所示。 表10 DS18B20存储控制命令指 令 说 明温度转换(44H)启动在线DS18B20做温度A/D转换 读数据(BEH)从高速暂存

10、器读9位温度值和CRC值 写数据(4EH)将数据写入高速暂存器的第3和第4字节中 复制(48H)将高速暂存器的第3和第4字节复制到EERAM 读EERAM(88H)将EERAM内容写入高速暂存器第3和第4字节读电源供电方式(B4H) 了解DS18B20的供电方式四、系统硬件设计进入Proteus系统:拾取元件,元件清单如下:元件名称元件数量AT89C511CAP2CAP-ELEC1CRYSTAL1RES137SEG-MPX4-CA-BLUE2DS18B201BUTTON274HC2452OPTOCOUPLERS-NAND1LED-RED1NOT3画出硬件电路原理图,如图4所示:图4 硬件电路原

11、理图五、系统软件设计进入Keil C51软件的操作环境,编辑源程序并对源文件进行编译,源程序如下:TMPL EQU 29HTMPH EQU 28H FLAG1 EQU 38HDATAIN BIT P3.7ORG 00HLJMP MAIN1ORG 03HLJMP ZINT0ORG 13HLJMP ZINT1ORG 30HMAIN1: SETB IT0SETB EASETB EX0SETB IT1SETB EX1SETB P3.6SETB P3.2MOV 74H,#0MOV 75H,#0MOV 76H,#9MOV 77H,#0MAIN: LCALL GET_TEMPERLCALL CVTTMPLC

12、ALL DISP1AJMP MAININIT_1820:SETB DATAINNOP CLR DATAINMOV R1,#3TSR1: MOV R0,#107DJNZ R0,$DJNZ R1,TSR1SETB DATAINNOPNOPNOPMOV R0,#25HTSR2: JNB DATAIN,TSR3DJNZ R0,TSR2CLR FLAG1SJMP TSR7TSR3: SETB FLAG1CLR P1.7MOV R0,#117TSR6: DJNZ R0,$TSR7: SETB DATAINRETGET_TEMPER:SETB DATAINLCALL INIT_1820JB FLAG1,TS

13、S2NOPRETTSS2:MOV A,#0CCHLCALL WRITE_1820MOV A,#44HLCALL WRITE_1820ACALL DISP1LCALL INIT_1820MOV A,#0CCHLCALL WRITE_1820MOV A,#0BEHLCALL WRITE_1820LCALL READ_1820RETWRITE_1820:MOV R2,#8CLR CWR1:CLR DATAINMOV R3,#6DJNZ R3,$RRC AMOV DATAIN,CMOV R3,#23DJNZ R3,$SETB DATAINNOPDJNZ R2,WR1SETB DATAINRETREAD

14、_1820: MOV R4,#2MOV R1,#29HRE00: MOV R2,#8RE01: CLR CSETB DATAINNOPNOPCLR DATAINNOPNOPSETB DATAINMOV R3,#9RE10: DJNZ R3,RE10MOV C,DATAINMOV R3,#23RE20: DJNZ R3,RE20RRC ADJNZ R2,RE01MOV R1,ADEC R1DJNZ R4,RE00RETCVTTMP:MOV A,TMPHANL A,#80HJZ TMPC1CLR CMOV A,TMPLCPL AADD A,#1MOV TMPL,AMOV A,TMPHCPL AAD

15、DC A,#0MOV TMPH,AMOV 73H,#0BHSJMP TMPC11TMPC1: MOV 73H,#0AHTMPC11:MOV A,TMPLANL A,#0FHMOV DPTR,#TMPTABMOVC A,A+DPTRMOV 70H,AMOV A,TMPLANL A,#0F0HSWAP AMOV TMPL,AMOV A,TMPHANL A,#0FHSWAP AORL A,TMPLH2BCD: MOV B,#100DIV ABJZ B2BCD1MOV 73H,AB2BCD1:MOV A,#10XCH A,BDIV ABMOV 72H,AMOV 71H,BTMPC12:NOPDISBC

16、D: MOV A,73HANL A,#0FHCJNE A,#1,DISBCD0SJMP DISBCD1DISBCD0:MOV A,72HANL A,#0FHJNZ DISBCD1MOV A,73HMOV 72H,AMOV 73H,#0AHDISBCD1:RETTMPTAB: DB 0,1,1,2,3,3,4,4,5,6,6,7,8,8,9,9DISP1:MOV R1,#70HMOV R0,#74HMOV R5,#0FEHPLAY:MOV P1,#0FFHMOV A,R5MOV P2,AMOV A,R1MOV DPTR,#TABMOVC A,A+DPTRMOV P1,AMOV A,R0MOVC

17、A,A+DPTRMOV P0,AMOV A,R5JB ACC.1,LOOP1CLR P1.7CLR P0.7LOOP1:LCALL DL1MSINC R1INC R0MOV A,R5JNB ACC.3,ENDOUTRL AMOV R5,AMOV A,73HCJNE A,#1,DD2SJMP LEDHDD2: MOV A,72HCJNE A,#0AH,DD3MOV 72H,#0DD3: MOV A,76HCJNE A,72H,DDHSJMP DDLDDH: JNC PLAY1SJMP LEDHDDL: MOV A,75HCJNE A,71H,DDL1SJMP LEDHDDL1: JNC PLAY

18、1LEDH: CLR P3.6SJMP PLAYPLAY1: SETB P3.6SJMP PLAYENDOUT:MOV P1,#0FFHMOV P2,#0FFHRETTAB: DB 0C0H,0F9H,0A4H,0B0H,99HDB 92H,82H,0F8H,80H,90H,0FFH,0BFHDL1MS: MOV R6,#50DL1: MOV R7,#100DJNZ R7,$DJNZ R6,DL1RETZINT0: PUSH ACCINC 75HMOV A,75HCJNE A,#10,ZINT01MOV 75H,#0ZINT01:POP ACCRETIZINT1: PUSH ACCINC 76

19、HMOV A,76HCJNE A,#10,ZINT11MOV 76H,#0ZINT11:POP ACCRETIZZZ1: MOV DPTR,#TABMOVC A,A+DPTRMOV P0,ARETIEND六、系统仿真加载目标代码文件,双击AT89C51原件,在弹出窗口中选择Program File加入由Keil 51产生的“温控器.hex”文件。运行电路,进行调试。 在Proteus ISIS 界面中,分别调节十位设置按键和个位设置按键来预设水温,当DS18B20的温度低于预设温度值时,红色发光二极管点亮表示进入热状态,如图5所示; 调节DS18B20元件上的按钮可人工模拟实际水温的升高和下降。可以看到,当实测温度达到预设温度后,红色发光二极管便自动熄灭,表示停止加热,如图6所示。 图5 加热状态电路图 图 6 加热达到预定温度时停止加热图

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2