基于DS18B20的水温控制系统课程设计.docx
- 文档编号:24165905
- 上传时间:2023-05-24
- 格式:DOCX
- 页数:20
- 大小:728.45KB
基于DS18B20的水温控制系统课程设计.docx
《基于DS18B20的水温控制系统课程设计.docx》由会员分享,可在线阅读,更多相关《基于DS18B20的水温控制系统课程设计.docx(20页珍藏版)》请在冰豆网上搜索。
基于DS18B20的水温控制系统课程设计
郑州华信学院
课程设计任务书
题目:
基于DS18B20的水温控制系统设计
专业:
姓名:
学号:
班级:
完成期限:
2013年1月5日
指导教师签名:
课程负责人签名:
2012年11月20日
【任务目的】了解DS18B20智能温度传感器的基本工作原理,掌握系统的软.硬件设计方法,熟悉PROTEUS仿真软件的使用。
【任务描述】用DS18B20智能传感器作为检测元件;用LED数码管显示温度;用PROTEUS实现电路设计和程序设计,并进行实时交互仿真。
1、功能要求与方案论证
1.1功能要求:
测温范围:
-50~+110度,误差在0.5度以内。
1.2方案论证:
按照系统设计功能的要求,确定系统有三个模块组成;主控器,测温点路及显示电路。
数字温度计总体电路结构框图如图
图1硬件总框图
2、硬件设计
2.1主控制器:
单片机AT89C2051具有低电压供电和小体积等特点,两个端口刚好满足电路系统的设计需要,很适合便携手持式产品的设计使用,系统可以用两节电池供电。
2.2显示电路:
显示电路采用4位共阳极LED数码管,从P1口输出段码,列扫描用P3.O~P3.3口来实现,列驱动用PN4249三极管。
2.3DS18B20工作原理
DALLAS半导体公司的数字化温度传感器是支持“一线总线”接口的温度传感器。
一线总线独特且经济的特点,使用户可轻松的组建传感器网络,为测量温度范围为-55~+125度,在-10~+85度范围内,精度为0.5度。
现场温度直接以“一线总线”的数字方式传输,明显提高了系统的抗干扰
性,适合于恶劣环境的现场温度测量,如环境控制等。
DS18B20的测温原理图如下:
DS18B20测温原理图
图中低温度系数晶振的振荡频率受到温度而影响很小,用于产生固定频率的脉冲信号送给减法计数器1:
高温度系数晶振随温度变化其振荡频率明显变化,所产生的信号作为减法计数器2的脉冲输入。
当计数门打开时,DS18B20就对低温系数晶振产生的脉冲信号进行计数,进而完成温度测量。
计数门的开启,时间由高温度系数晶振来决定,每次测量前,首先将-55度所对应的一个基数分别置入减法计数器上,温度寄存器中。
减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时,温度寄存器的值将加1,减法计数器1的预置值将重新装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行减法计数,如此循环看,直到减法计数器2计数到0时,停止温度寄存器值得累加,此时温度寄存器中的数值就是所测温度值。
图中的斜率累加器用于补偿和修正测温过程中的非线形性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程。
直到温度寄存器达到被测温度值。
另外,由于DS18B20单线通信功能是分时完成,她有严格的时隙概念,因此读写时序很重要,系统对于DS18B29的各种操作必按协议进行。
操作协议为:
初始化DS18B20(发复位脉冲)→发ROM功能命令→发存储器操作命令→处理数据。
3、系统程序设计
系统程序主要包括主程序、读出温度子程序、温度转换命令子程序、温度转换命令子程序、计算温度子程序和显示数据刷新子程序等。
3.1主程序
主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量温度值,温度测量每1s进行一次。
其程序流程图如图所示。
3.2读出子程序
读出温度子程序的主要功能是读出RAM中的9字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。
其程序流程图如图所示。
3.3温度转换命令子程序
温度转换命令子程序主要是发温度转换开始命令,当采用12位分辨率,时转换时间约为750ms。
在本程序设计中采用1s显示程序延时法等待转换的完成。
3.4计算温度子程序
计算温度子程序将RAM中读取值进行BCD码的转换运算,并进行温度值的正负判定,其程序流程图如图。
3.5显示数据刷新子程序
显示数据刷新子程序主要是对显示缓冲器中的显示数据进行刷新操作,当最高显示位为0,将符号显示移入下一位。
程序流程图如下图所示。
3.6源程序清单
TIMELEQU0E0H
TIMEHEQU0B1H
TEMPHEADEQU36H
BITSTDATA20H
TIME1SOKBITBITST.1
TEMPONEOKBITBITST.2
TEMPLDATA26H
TEMPHDATA27H
TEMPHCDATA28H
TEMPLCDATA29H
TEMPDINBITP3.7
ORG0000H
LJMPSTART
ORG000BH
LJMPT0IT
ORG100H
START:
MOVSP,#60H
CLSMEM:
MOVR0,#20H
MOVR1,#60H
CLSMEM1:
MOV@R0,#00H
INCR0
DJNZR1,CLSMEM1
MOVTMOD,#00100001B
MOVTH0,#TIMEL
MOVTL0,#TIMEH
SJMPINIT
ERROR:
NOP
LJMPSTART
NOP
INIT:
NOP
SETBET0
SETBTR0
SETBEA
MOVPSW,#00H
CLRTEMPONEOK
LJMPMAIN
T0IT:
PUSHPSW
MOVPSW,#10H
MOVTH0,#TIMEH
MOVTL0,#TIMEL
INCR7
CJNER7,#32H,T0IT1
MOVR7,#00H
SETBTIME1SOK
T0IT1:
POPPSW
RETI
MAIN:
LCALLDISP1
JNBTIME1SOK,MAIN
CLRTIME1SOK
JNBTEMPONEOK,MAIN2
LCALLREADTEMP1
LCALLCONVTEMP
LCALLDISPBCD
LCALLDISP1
MAIN2:
LCALLREADTEMP
SETBTEMPONEOK
LJMPMAIN
INITDS1820:
SETBTEMPDIN
NOP
NOP
CLRTEMPDIN
MOVR6,#0A0H
DJNZR6,$
MOVR6,#0A0H
DJNZR6,$
SETBTEMPDIN
MOVR6,#32H
DJNZR6,$
MOVR6,#3CH
LOOP1820:
MOVC,TEMPDIN
JCINITOUT
DJNZR6,LOOP1820
MOVR6,#64H
DJNZR6,$
SJMPINITDS1820
RET
INITOUT:
SETBTEMPDIN
RET
READDS1820:
MOVR7,#08H
SETBTEMPDIN
NOP
NOP
READLOOP:
CLRTEMPDIN
NOP
NOP
NOP
SETBTEMPDIN
MOVR6,#07H
DJNZR6,$
MOVC,TEMPDIN
MOVR6,#3CH
DJNZR6,$
RRCA
SETBTEMPDIN
DJNZR7,READLOOP
MOVR6,#3CH
DJNZR6,$
RET
WRITEDS1820:
MOVR7,#08H
SETBTEMPDIN
NOP
NOP
WRITELOOP:
CLRTEMPDIN
MOVR6,#07H
DJNZR6,$
RRCA
MOVTEMPDIN,C
MOVR6,#34H
DJNZR6,$
SETBTEMPDIN
DJNZR7,WRITELOOP
RET
READTEMP:
LCALLINITDS1820
MOVA,#0CCH
LCALLWRITEDS1820
MOVR6,#34H
DJNZR6,$
MOVA,#44H
LCALLWRITEDS1820
MOVR6,#34H
DJNZR6,$
RET
READTEMP1:
LCALLINITDS1820
MOVA,#0CCH
LCALLWRITEDS1820
MOVR6,#34H
DJNZR6,$
MOVA,#0BEH
LCALLWRITEDS1820
MOVR6,#34H
DJNZR6,$
MOVR5,#09H
MOVR0,#TEMPHEAD
MOVB,#00H
READTEMP2:
LCALLREADDS1820
MOV@R0,A
INCR0
READTEMP21:
LCALLCRC8CAL
DJNZR5,READTEMP2
MOVA,B
JNZREADTEMPOUT
MOVA,TEMPHEAD+0
MOVTEMPL,A
MOVA,TEMPHEAD+1
MOVTEMPH,A
READTEMPOUT:
RET
CONVTEMP:
MOVA,TEMPH
ANLA,#80H
JZTEMPC1
CLRC
MOVA,TEMPL
CPLA
ADDA,#01H
MOVTEMPL,A
MOVA,TEMPH
CPLA
ADDCA,#00H
MOVTEMPH,A
MOVTEMPHC,#0BH
SJMPTEMPC11
TEMPC1:
MOVTEMPHC,#0AH
TEMPC11:
MOVA,TEMPHC
SWAPA
MOVTEMPHC,A
MOVA,TEMPL
ANLA,#0FH
MOVDPTR,#TEMPDOTTAB
MOVCA,@A+DPTR
MOVTEMPLC,A
MOVA,TEMPL
ANLA,#0F0H
SWAPA
MOVTEMPL,A
MOVA,TEMPH
ANLA,#0FH
SWAPA
ORLA,TEMPL
LCALLHEX2BCD1
MOVTEMPL,A
ANLA,#0F0H
SWAPA
ORLA,TEMPHC
MOVTEMPHC,A
MOVA,TEMPL
ANLA,#0FH
SWAPA
ORLA,TEMPLC
MOVTEMPLC,A
MOVA,R7
JZTEMPC12
ANLA,#0FH
SWAPA
MOVR7,A
MOVA,TEMPHC
ANLA,#0FH
ORLA,R7
MOVTEMPHC,A
TEMPC12:
RET
TEMPDOTTAB:
DB00H,01H,01H,02H,03H
DB03H,04H,04H,05H,06H
DB06H,07H,08H,09H,09H
DISPBCD:
MOVA,TEMPLC
ANLA,#0FH
MOV70H,A
MOVA,TEMPLC
SWAPA
ANLA,#0FH
MOV71H,A
MOVA,TEMPHC
ANLA,#0FH
MOV72H,A
MOVA,TEMPHC
SWAPA
ANLA,#0FH
MOV73H,A
MOVA,TEMPHC
ANLA,#0F0H
CJNEA,#010H,DISPBCD0
SJMPDISPBCD2
DISPBCD0:
MOVA,TEMPHC
ANLA,#0FH
JNZDISPBCD2
MOVA,TEMPHC
SWAPA
ANLA,#0FH
MOV73H,#0AH
MOV72H,A
DISPBCD2:
RET
DISP1:
MOVR1,#70H
MOVR5,#0FEH
PLAY:
MOVP1,#0FFH
MOVA,R5
MOVP3,A
MOVA,@R1
MOVDPTR,#TAB
MOVCA,@A+DPTR
MOVP1,A
MOVA,R5
JBACC.1,LOOP5
CLRP1.7
LOOP5:
LCALLDL1MS
INCR1
MOVA,R5
JNBACC.3,ENDOUT
RLA
MOVR5,A
AJMPPLAY
ENDOUT:
MOVP1,#0FFH
MOVP3,#0FFH
RET
TAB:
DB0C0H,0F9H,0A4H,0B0H
DB99H,92H,82H,0F8H
DB80H,90H,0FFH,0BFH
DL1MS:
MOVR6,#14H
DL1:
MOVR7,#19H
DL2:
DJNZR7,DL2
DJNZR6,DL1
RET
HEX2BCD1:
MOVB,#64H
DIVAB
MOVR7,A
MOVA,#0AH
XCHA,B
DIVAB
SWAPA
ORLA,B
RET
CRC8CAL:
PUSHACC
MOVR7,#08H
CRC8LOOP1:
XRLA,B
RRCA
MOVA,B
JNCCRC8LOOP2
XRLA,#18H
CRC8LOOP2:
RRCA
MOVB,A
POPACC
RRA
PUSHACC
DJNZR7,CRC8LOOP1
POPACC
RET
END
4、系统仿真
按电路图在ISIS编辑区中进行设计。
首先从PROTEUS库中选取元器件和工具(AT89C2051:
单片机;7SEG.MPX4.CA:
LED数码管;74HC245:
三同相三态缓冲器;DS18B20:
数字温度传感器);其次放置元器件、放置电源和地;要特别注意正确连线和正确设置网络标号;最后完成元器件属性设置和电气检测。
4.1执行菜单Source→Add/RemoveSourceFile,新建源程序文件WDJ.ASM。
4.2执行菜单Source→WDJ.ASM,打开PROTEUS提供的文本编辑器SRCEDIT,在其中编辑源程序,并保存。
4.3执行菜单Source→BuildAll,编译源程序,生成目标代码文件WDJ.HEX。
若编译失败,修改调试直至编译成功。
4.4打开单片机的元器件属性窗口,在ProgramFile栏中添加上面编译好的目标代码文件WDJ.HEX;在ClockFrequency栏中输入晶振频率12MHz。
4.5启动传真后,LED数码管显示DS18B20的初始温度,可以分别单击DS18B20调试器中的左按钮和右按钮来实现输出温度值的升降,LED数码管的显示温度也随之变化。
5、主要参考资料:
[1]李全利,单片机原理及接口技术[M],高等教育出版社
[2]王文杰,单片机应用技术[M],冶金工业出版社
[3]朱清慧,PROTEUS教程——电子线路设计、制版与仿真[M],清华大学出版社
[4]单片机实验指导书,天煌教仪
[5]彭伟,单片机C语言程序设计实训100例[M],电子工业出版社
6、附录
6.1DS18B20测温系统元件清单
元件名称
数量
单片机STC89C52RC
1
12M晶振
1
瓷片电容30pF
2
电解电容10uF
1
电阻10k
1
电阻4.7k
1
电阻2k
4
DS18B20
1
PNP三极管S8550
4
四位共阳数码管LG5641BH
1
排针
1排
排孔
1排
导线
2米
焊锡丝
1米
6.2电路图
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 DS18B20 水温 控制系统 课程设计