1、基于DS18B20的水温控制系统 课程设计 成绩: 分 电气信息学院 课程大作业说明书课程设计名称: 实用型工程软件的应用 题 目: 基于DS18B20 的水温控制系统 学生姓名: 专 业: 测控技术与仪器 班 级: 2010级 学 号: 教 师: 日期:2013 年 6 月 3日 一、 设计任务及要求1. 设计题目基于DS18B20的水温控制系统。2. 设计要求与目的利用单片机AT89C51控制DS18B20温度传感器对谁问的控制;通过水温控制系统的设计要掌握好对Proteus仿真设计的熟练运用;通过水温控制系统的设计要熟练掌握单片机的各个功能,并且能对单片机有一总体的的把握,再设计的过程中
2、能够凭借对单片机各功能的了解,达到理想的设计效果;本例使用了温度传感器DS18B20和74HC245,通过对单片机的学习能够对它们触类旁通。3. 设计任务设计系统硬件设计系统软件编写设计说明书二、 设计背景简介在生活中,无论是冬天还是夏天我们都离不开热水。把水烧开很容易,但是要把水温控制在一定的温度而且进行自动控制就不是那么随便。所以为了更高效和方便人们的需求。本设计就专门利用单片机和DS18B20温度传感器来实现了一个水温自动控制系统,希望通过本设计能够对未来的趋势有所把握,从而适应社会需要。三、 电路设计 本设计以AT89C51单片机为核心的温度控制系统的工作原理和设计方法。温度信号由温度
3、芯片DS18B20采集,并以数字信号的方式传送给单片机,再由单片机将信号通过数码管显示出来。当水温低于预设温度值时系统开始加热(点亮红色发光二极管表示加热状态),当温度达到预设温度值时自动停止加热。预设温度值和实测温度值分别由两个三位数码管显示,范围为099。1.74HC245芯片相关知识(1)原理说明 总线收发器(bus transceiver),典型的CMOS型三态缓冲门电路。由于单片机或CPU的数据/地址/控制总线端口都有一定的负载能力,如果负载超过其负载能力,一般应加驱动器。另外,也可以使用74HC244等其他缓冲门电路。74HC244是单向,74HC245是双向。(2)引脚定义 74
4、HC245的引脚功能如图3-1所示。图3-1 74HC245的引脚图第1脚DIR,为输入输出端口转换用,DIR=“1”高电平时信号由“A”端输入“B”端输出,DIR=“0”低电平时信号由“B”端输入“A”端输出。第29脚“A”信号输入输出端,A0=B0,A7=B7,A0与B0是一组,如果DIR=“1”OE=“0”则A1输入B1输出,其它类同。如果DIR=“0”OE=“0”则B1输入A1输出,其它类同。第1118脚“B”信号输入输出端,功能与“A”端一样,不再描述。第19脚OE,使能端,若该脚为“1”A/B端的信号将不导通,只有为“0”时A/B端才被启用,该脚也就是起到开关的作用。第10脚GND
5、,电源地。第20脚VCC,电源正极。 表3-1 TRUTH TABLE真值表Control Inputs控制输入Operation 运行GDIRLLB 数据到A 总线LHA 数据到B 总线HX隔开H=高电平 L=低电平 =不定 2.DS18B20芯片相关知识(1)DS18B20简介 DS18B20是由美国DALLAS公司生产的单线数字温度传感器芯片。与传统的热敏电阻有所不同,DS18B20可直接将被测温度转化为串行数字信号,以供单片机处理,它还具有微型化、低功率、高性能、抗干扰能力强等优点。通过编程,DS18B20可以实现912位的温度读数。信息经过单线接口送入DS18B20或从DS18B20
6、送出,因此从微处理器到DS18B20仅需连接一条信号线和地线。读、写和执行温度变换所需的电源可以由数据线本身提供,而不需要外部电源。(2)DS18B20的引脚功能 DS18B20的引脚(图3-2),其功能如表3-2所示。图3-2 DS18B20的引脚表3-2 DS18B20的引脚说明(3)DS18B20的主要特点采用单线技术,与单片机通信只需一个引脚;通过识别芯片各自唯一的产品序列号从而实现单线多挂接,简化了分布式温度检测的应用;实际应用中不需要外部任何器件即可实现测温;可通过数据线供电,电压的范围在35.5V;不需要备份电源;测量范围为-55+125,在-10+85范围内误差为0.5;数字温
7、度计的分辨率用户可以在9位到12位之间选择,可配置实现912位的温度读数;将12位的温度值转换为数字量所需时间不超过750ms;用户定义的,非易失性的温度告警设置,用用户可以自行设定告警的上下限温度。(4)DS18B20的ROM及控制指令 DS18B20的64位ROM的结构如表3-3所示。开始8位是DS18B20的产品类型编号10H,接着是每一个器件的唯一的序号,共有48位,最后8位是前56位的CRC校验码,也是多个DS18B20可以用一根线进行通信的原因。表3-3 DS18B20的64位ROM结构表主机操作ROM的命令有五种如表3-4所示。表3-4 DS18B20控制指令DS18B20的高速
8、暂存器由便笺式RAM和非易失性电擦写EERAM组成,后者用于存储TH、TL值。数据先写入便笺式RAM,经校验后再传给EERAM。便笺式RAM占9个字节,包括温度信息(0、1字节)、TH和TL值(2、3字节)、配置寄存器数据(4字节)、CRC(8字节)等,5、6、7字节不用。暂存器的4字节是配置寄存器,可以通过相应的写命令进行配置,其内容如表3-5所示。表3-5 暂存器的配置方式MSB LSB其中,R0与R1是温度值分辨率位,配置方式如表3-6所示。 表3-6 DS18B20温度值分辨率位配置方式 DS18B20的核心功能部件是它的数字温度传感器,如上所述,它的分辨率可配置为9位、10位、11位
9、或者12位,出厂默认设置是12位分辨率,它们对应的温度分辨率分别是0.5、0.25、0.125、0.0625。温度信息的低位、高位字节内容中还包括了符号位S(是正温度还是负温度)和二进制小数部分,具体形式如表3-7所示。表3-7 温度信息的低位、高位字节内容形式这是12位分辨率的情况,如果配置为低的分辨率,则其中无意义位为0;实测温度和数字输出的对应关系如表3-8所示。表3-8 DS18B20实测温度和数字输出的对应关系 DS18B20的存储控制命令如表3-9所示。表3-9 DS18B20存储控制命令四、 系统硬件设计1. DS18B20温度测量电路根据DS18B20的引脚功能说明,我们可以很
10、快地把VCC接一个5V的电源,而GND接地。由于DS18B20采用了单总线技术,我们只要把DQ与单片机的一个I/O口相连接就可以了,如图3-3所示。图3-3 DS18B20温度测量电路2. 显示电路结果显示是由两个三位数码管来显示099范围的温度值,一个是实测水温值;一个是预设水温值,它们都由74HC245来驱动利用单片机的串口发送或者模拟串口发送把数据发送给74HC164来驱动数码管显示数据。五、 系统软件设计TMPL EQU 29HTMPH EQU 28HFLAG1 EQU 38HDATAIN BIT P3.7 ORG 00H LJMP MAIN1 ORG 03H LJMP ZINT0 O
11、RG 13H LJMP ZINT1 ORG 30HMAIN1: SETB IT0 SETB EA SETB EX0 SETB IT1 SETB EX1 SETB P3.6 SETB P3.2 MOV 74H,#0 MOV 75H,#0 MOV 76H,#9 MOV 77H,#0MAIN: LCALL GET_TEMPER LCALL CVTTMP LCALL DISP1 AJMP MAININIT_1820: SETB DATAIN NOP CLR DATAIN MOV R1,#3TSR1: MOV R0,#107 DJNZ R0,$ DJNZ R1,TSR1 SETB DATAIN NOP
12、NOP NOP MOV R0,#25HTSR2: JNB DATAIN,TSR3 DJNZ R0,TSR2 CLR FLAG1 SJMP TSR7TSR3: SETB FLAG1 CLR P1.7 MOV R0,#117TSR6: DJNZ R0,$TSR7: SETB DATAIN RET GET_TEMPER: SETB DATAIN LCALL INIT_1820 JB FLAG1,TSS2 NOP RETTSS2: MOV A,#0CCH LCALL WRITE_1820 MOV A,#44H LCALL WRITE_1820 ACALL DISP1 LCALL INIT_1820 M
13、OV A,#0CCH LCALL WRITE_1820 MOV A,#0BEH LCALL WRITE_1820 LCALL READ_1820 RETWRITE_1820: MOV R2,#8 CLR CWR1: CLR DATAIN MOV R3,#6 DJNZ R3,$ RRC A MOV DATAIN,C MOV R3,#23 DJNZ R3,$ SETB DATAIN NOP DJNZ R2,WR1 SETB DATAIN RETREAD_1820: MOV R4,#2 MOV R1,#29HRE00: MOV R2,#8RE01: CLR C SETB DATAIN NOP NOP
14、 CLR DATAIN NOP NOP NOP SETB DATAIN MOV R3,#9RE10: DJNZ R3,RE10 MOV C,DATAIN MOV R3,#23RE20: DJNZ R3,RE20 RRC A DJNZ R2,RE01 MOV R1,A DEC R1 DJNZ R4,RE00 RETCVTTMP: MOV A,TMPH ANL A,#80H JZ TMPC1 CLR C MOV A,TMPL CPL A ADD A,#1 MOV TMPL,A MOV A,TMPH CPL A ADDC A,#0 MOV TMPH,A MOV 73H,#0BH SJMP TMPC1
15、1TMPC1: MOV 73H,#0AHTMPC11: MOV A,TMPL ANL A,#0FH MOV DPTR,#TMPTAB MOVC A,A+DPTR MOV 70H,A MOV A,TMPL ANL A,#0F0H SWAP A MOV TMPL,A MOV A,TMPH ANL A,#0FH SWAP A ORL A,TMPLH2BCD: MOV B,#100 DIV AB JZ B2BCD1 MOV 73H,AB2BCD1: MOV A,#10 XCH A,B DIV AB MOV 72H,A MOV 71H,BTMPC12: NOPDISBCD: MOV A,73H ANL
16、A,#0FH CJNE A,#1,DISBCD0 SJMP DISBCD1DISBCD0: MOV A,72H ANL A,#0FH JNZ DISBCD1 MOV A,73H MOV 72H,A MOV 73H,#0AHDISBCD1: RETTMPTAB: DB 0,1,1,2,3,3,4,4,5,6,6,7,8,8,9,9DISP1: MOV R1,#70H MOV R0,#74H MOV R5,#0FEHPLAY: MOV P1,#0FFH MOV A,R5 MOV P2,A MOV A,R1 MOV DPTR,#TAB MOVC A,A+DPTR MOV P1,A MOV A,R0
17、MOVC A,A+DPTR MOV P0,A MOV A,R5 JB ACC.1,LOOP1 CLR P1.7 CLR P0.7LOOP1: LCALL DL1MS INC R1 INC R0 MOV A,R5 JNB ACC.3,ENDOUT RL A MOV R5,A MOV A,73H CJNE A,#1,DD2 SJMP LEDHDD2: MOV A,72H CJNE A,#0AH,DD3 MOV 72H,#0DD3: MOV A,76H CJNE A,72H,DDH SJMP DDLDDH: JNC PLAY1 SJMP LEDHDDL: MOV A,75H CJNE A,71H,D
18、DL1 SJMP LEDHDDL1: JNC PLAY1LEDH: CLR P3.6 SJMP PLAYPLAY1: SETB P3.6 SJMP PLAYENDOUT: MOV P1,#0FFH MOV P2,#0FFH RETTAB: DB 0C0H,0F9H,0A4H,0B0H,99H DB 92H,82H,0F8H,80H,90H,0FFH,0BFH DL1MS: MOV R6,#50DL1: MOV R7,#100 DJNZ R7,$ DJNZ R6,DL1 RETZINT0: PUSH ACC INC 75H MOV A,75H CJNE A,#10,ZINT01 MOV 75H,
19、#0ZINT01: POP ACC RETIZINT1: PUSH ACC INC 76H MOV A,76H CJNE A,#10,ZINT11 MOV 76H,#0ZINT11: POP ACC RETIZZZ1: MOV DPTR,#TAB MOVC A,A+DPTR MOV P0,A RETI END 六、 系统仿真参照5.3.3节建立程序文件,加载目标代码文件,进入调试环境,执行程序,在Proteus ISIS界面中,分别调节十位设置按键和个位设置按键来预设水温,当DS18B20的温度低于预设温度值时,红色发光二极管点亮表示进入热状态(如图6-1所示);调节DS18B20元件上的按钮可人工模拟实际水温的升高和下降。可以看到,当实测温度达到预设温度后,红色发光二极管便自动熄灭,表示停止加热。如图6-2所示。图6-1 加热状态时的仿真图图6-2 加热到预期温度时的仿真图
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1