DS18B20数字温度计的设计.docx
- 文档编号:8385552
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:15
- 大小:115.73KB
DS18B20数字温度计的设计.docx
《DS18B20数字温度计的设计.docx》由会员分享,可在线阅读,更多相关《DS18B20数字温度计的设计.docx(15页珍藏版)》请在冰豆网上搜索。
DS18B20数字温度计的设计
单片机原理与接口技术课程设计(论文)
第1章DS18B20数字温度计的设计概述
本课程的课程设计实际是测控技术及仪器专业学生学习完《单片机与接口技术》课程后,进行的一次全面的综合训练,其目的在于加深对单片机、单片机最小系统和单片机接口技术的认识、理解和应用,掌握单片机的应用技术。
随着时代的进步和发展,单片机技术已经普及到我们生活,工作,科研,各个领域,已经成为一种比较成熟的技术,本文将介绍一种基于单片机控制的数字温度计,本温度计属于多功能温度计,可以设置上下报警温度,当温度不在设置范围内时,可以报警。
随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展。
本设计所介绍的数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,主要用于对测温比较准确的场所,或科研实验室使用,该设计控制器使用单片机AT89S51,测温传感器使用DS18B20,用4位共阳极LED数码管以串口传送数据,实现温度显示,能准确达到以上要求。
通过DS18B20集成数字温度传感器检测室内温度,将温度值送交LED数码管显示。
它包括温度检测、显示等功能。
数字温度计除了能显示环境温度之外,经扩展加热,制冷控制电路,还可以扩展成为温度报警器或温度控制器。
应用前景广阔。
第2章课程设计方案论证
2.1系统设计方案论证
考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以可以采用一只温度传感器DS18B20,该传感器可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。
2.2系统组成总体结构
为完成上述系统功能,控制器采用单片机AT89S51,温度传感器采用DS18B20,用4位LED数码管以串口传送数据实现温度显示。
LED显示
主控制器
温度传感器
图2.1系统总体框图
2.2.1主控制器
单片机AT89S51具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用系统可用二节电池供电。
2.2.2显示电路
LED数码管价格便宜,使用方便,是应用最广泛的显示器。
本系统采用4位共阳LED数码管,从并口输出段码。
2.2.3温度传感器
温度传感器种类很多,接口电路差异很大。
如热敏电阻,需要A/D转换。
本课设采用DALLAS半导体公司生产的DS18B20智能温度传感器,它接口简单,使用方便。
第3章硬件设计
3.1单片机最小系统设计
1.单片机
由于AT89S51片内含有4KB的flashROM不需要外扩展存储器,且可以擦写1000次以上,给开发带来极大方便,资源丰富,故选用AT89S51为该系统制器。
图3.1单片机引脚图
2.显示电路LED数码管价格便宜,使用方便,是应用最广泛的显示器。
本系统采用4位共阳LED数码管,从并口输出段码。
图3.2管脚图图3.3共阳极LED原理图
3.温度传感器
DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。
图3.4DS18B20内部结构
4.时钟电路
图3.5时钟电路
机器周期T=12*1/12us=1us
5.复位电路
下图按键复位电路是手动复位电路,使用比较方便,在程序“跑飞”时,可以手动复位,不用重启单片机电源,就可以实现复位
图3.6复位电路
3.2功能电路
1,显示电路
显示采用4位一体共阳LED显示方式,分别位环境温度值及设定报警温度值的十位和个位,用P0口输出显示数据代码,而字位由P2.0~P2.3控制。
图3.7显示电路
2,温度采集电路
图3.8温度采集电路
3.3系统硬件电路原理图
图3.9硬件电路原理图
第4章软件设计
4.1软件流程图
4.1.1DS18B20温度计主程序流程图
主程序的主要功能是负责温度的实时显示,读出并处理DS18B20的当前温度值,与设定的报警温度比较,其程序流程图如下:
图4.1主程序流程图
4.1.2.DS18B20初始化程序流程图
在DS18B20工作之前需要进行初始化,流程图如下:
图4.2初始化程序流程图
4.1.3.读温度子程序流程图
读温度子程序的主要功能是从DS18B20中读出温度数据,移入温度暂存器保存。
其程序流程图如下:
图4.3温度子程序流程图
4.2程序清单
4.2.1.主程序
程序如下:
ORG0000H
LJMPMAIN
ORG0100H
DATBITP1.0;DS18B20数据线接P1.0
TEMPER_LEQU40H;转换前的低温度值放在40H
TEMPER_HEQU41H;转换前的高温度值放在41H
A_BITEQU60H;转换后的温度“十位”放在60H
B_BITEOU61H;转换后的温度“个位”放在61H
MAIN:
LCALLINIT_1820;DS18B20初始化
LCALLGET_TEMPER;获取温度值
LCALLCONVER;计算温度值,转换成BCD码
LCALLCOMPARE;与设定值比较报警
LCALLDISPLAY;显示
LJMPMAIN;返回主程序,继续执行
4.2.2.DS18B20初始化程序.
DS18B20初始化程序:
INIT_1820:
NOP
L0:
CLRDAT
MOVR2,#200
L1:
NOP
DJNZR2,L1;主机发复位脉冲持续3us*200=600us
SETBDAT;主机释放总线,口线改为输入
MOVR2,#20
L2:
DJNZR2,L2;DS18B20等待2us*20=40us
CLRC
ORLC,DAT;判断DS18B20数据线状态
JCL0;DS18B20未准备好,重新初始化
MOVR6,#80
L3:
ORLC,DAT
JCL4;数据线变高,初始化成功
DJNZR6,L3;判断数据线低电平可持续240us
SJMPL0;失败,重来
L4:
MOVR2,#120
L5:
DJNZR2,L5;DS18B20应答时间
RET
4.2.3.读温度子程序
读温度子程序:
GET_TEMPER:
LCALLINIT_1820
MOVA,#0CCH;发跳过ROM命令
LCALLWRITE
MOVA,#44H;发启动转换命令
LCALLWRITE
LCALLDELAY
LCALLINIT_1820
MOVA,#0CCH;发跳过ROM命令
LCALLWRITE
MOVA,#0BEH;发读存储器命令
LCALLWRITE
LCALLREAD
MOVTEMPER_L,A;温度值低位送40H
LCALLREAD
MOVTEMPER_H,A;温度值高位送41H
RET
向DS18B20写一个字节程序:
WRITE:
CLREA
MOVR3,#8;写一个字节
WR1:
SETBDAT
MOVR4,#8
RRCA;最低位移入C
CLRDAT
WR2:
DJNZR4,WR2;等待16us
MOVDAT,C;输出一位到数据线
MOVR4,#30
WR3:
DJNZR4,WR3;保证写过程延时60us
DJNZR3,WR1
SETBDAT;DAT=1结束写操作
RET
从DS18B20读出一个字节的数据程序:
READ:
CLREA
MOVR6,#8;读一个字节
RD1:
CLRDAT
MOVR4,#8
NOP;低电平持续2us
SETBDAT;口线设为输入
RD2:
DJNZR4,RD2;等待8us
MOVC,DAT;主机按位从DS18B20读出数据
RRCA;读取的数据移入A
MOVR5,#30
RD3:
DJNZR5,RD3;保证读过程持续60us
DJNZR6,RD1;读完一个数据存入A中
SETBDAT
RET
4.2.4.计算温度子程序
计算温度子程序将RAM占用温度数据进行BCD码转换运算,DS18B20内部温度以16位二进制补码形式存放。
参见数据分辨率。
转换时,将MSB的低四位和LSB的高四位合成一个字节,作为整数部分处理,并保存在32H单元。
将转换后的BCD码的百位保存在30H,十位和个位保存在31H。
程序如下:
CONVER:
MOVA,#0FH
ANLA,TEMPER_H;整数部分转换,屏蔽高字节高四位
SWAPA
MOVB,A
MOVA,#0F0H
ANLA,TEMPER_L;LSM中低四位小数部分屏蔽
SWAPA
ADDA,B
MOV32H,A;温度整数部分保存到32H单元
BCD:
MOVB,#100;下面把二进制转换成BCD码
DIVAB
MOV30H,A;百位放在30H
MOVA,#10
XCHA,B
DIVAB
MOVA_BIT,A;A中是十位
MOVB_BIT,B;B中是个位
SWAPA
ADDA,B
MOV31H,A;转换后的BCD码放在31H
RET
4.2.5.显示温度子程序
程序如下:
DISPLAY:
MOV5FH,#00H;自定义的温度值个位
MOV5EH,#03H;自定义的温度值十位
MOVDPTR,#TAB
S3:
MOVR1,#20
S2:
MOVR2,#0FEH
MOVR0,#61H;实际温度个位
MOVR4,#04H;四个LED数码管显示
S1:
MOVP2,R2;控制显示位
MOVA,@R0
MOVCA,@A+DPTR
MOVP0,A
LCALLDELAY
MOVA,R2
RLCA
MOVR2,A
DECR0
DJNZR4,S1
DJNZR1,S2
RET
TAB:
DB0C0H,OF9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
延时子程序:
延时时间位50ms
DELAY:
MOVR7,#125
DELAY1:
MOVR6,#200
DELAY2:
DJNZR6,DELAY2
DJNZR7,DELAY1
RET
第5章课程设计总结
经过这一段时间的设计与思考,最终完成了数字温度计的设计。
其间遇到许多问题,但最后都一一得到解决。
现将心得体会总结如下:
设计初期要考虑周到,否则后期改进很困难。
应该在初期就多思考几个方案,进行比较论证,选择最合适的方案动手设计。
总体设计在整个设计过程中非常重要,应该花较多的时间在上面。
方案确定后,才开始设计。
设计时,多使用已学的方法,在整体设计都正确后,再寻求简化的方法。
在设计某些模块的时候无法把握住整体,这时可以先进行小部分功能的实现,在此基础上进行改进,虽然可能会多花一些时间,但这比空想要有效的多。
尽可能是电路连线有序,模块之间关系清楚,既利于自己修改,也利于与别人交流。
如果电路乱的连自己都看不懂,那还如何改进和扩展。
很多难点的突破都来自于与同学的交流,交流使自己获得更多信息,开拓了思路,因此要重视与别人的交流。
应该有较好的理论基础,整个实验都是在理论的指导下完成了,设计过程中使用了许多理论课上学的内容。
本次设计把理论应用到了实践中,同时通过设计,也加深了自己对理论知识的理解。
参考文献
[1]梅丽凤,单片机原理及接口技术,北京:
清华大学出版社,2004:
19-48,81-93
[2]何立民,单片机应用系统设计,北京:
航空航天大学出版社,1990:
45-56
[3]张毅刚.单片机原理及应用,北京:
高等教育出版社,2003:
126-135
[4]顾兴源.计算机控制系统,北京:
冶金工业出版社,1981:
25-40
[5]李建忠.单片机原理及应用,西安:
西安电子科技大学出版社,2004:
32-54
[6]赵高生.单片机应用技术大全,南京:
西南文通大学出版社,1996:
24-43
[7]赖麒文.8051单片机C语言软件设计的艺术,科学出版社,2002:
54-68
[8]曾文华.严义,俞岳军.微型计算机,计算机应用研究.1998:
4-6
[9]王强.C8051F单片机在远端测控装置中的应用,电子设计应用.2006:
11-12
[10]贾好来.MCS-51单片机原理及应用,北京:
机械工业出版社,2006:
13-34
[11]甘本鑫.科技信息,2008年32(3),2-6
[12]陈晓.微计算机信息,2009年11(6),10-17
[13]闵祥娜.现代电子技术,2009年19(4),5-14
[14]孙艳菱.科技广场,2008年10(12),16-18
[15]宋凤娟.制造业自动化,2007年2(6),13-19
[16]刘小燕.微计算机信息,2008年25(3),1-9
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DS18B20 数字 温度计 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)