基于DS18B20数字式温度计课程设计(17页).doc

上传人:1595****071 文档编号:37153024 上传时间:2022-08-30 格式:DOC 页数:17 大小:167.50KB
返回 下载 相关 举报
基于DS18B20数字式温度计课程设计(17页).doc_第1页
第1页 / 共17页
基于DS18B20数字式温度计课程设计(17页).doc_第2页
第2页 / 共17页
点击查看更多>>
资源描述

《基于DS18B20数字式温度计课程设计(17页).doc》由会员分享,可在线阅读,更多相关《基于DS18B20数字式温度计课程设计(17页).doc(17页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、-基于DS18B20数字式温度计课程设计-第 17 页西安文理学院物理与机械电子工程学院专业课程设计报告专业班级 2010级测控技术与仪器一班 课 程 电子技术课程设计 题 目 基于DS18B20数字式温度计设计 学 号 07103100114 学生姓名 李小鹏 指导教师 杨森林 成 绩 2013年6月20日西安文理学院物理与机械电子工程学院课程设计任务书学生姓名 专业班级 学 号 指导教师 职 称 教研室 课 程 电子技术课程设计 题目 基于DS18B20数字式温度计设计 任务与要求利用DS18B20温度模块,设计一个数字式温度计,并显示数码管温度值。 设计要求:(1)采用单片机完成,要求结

2、构简单、成本低;(2)采用DS18B20温度模块实现温度信号采集与数字转换;(3)完成系统的硬件电路设计与软件设计;(4)采用数码管显示,显示效果稳定;(5)完成原理图和PCB布板;(6)采用Proteus、KeilC等软件实现系统的仿真调试;(7)完成课程设计报告。摘 要本设计是一款简单实用的小型数字温度计,所采用的主要元件有传感器DS18B20,单片机AT89S52,四位共阳极数码管一个,电容电阻若干。DS18B20支持“一线总线”接口,测量温度范围-55C+128C。在-10+85C范围内,精度为0.5C。DS18B20的精度较差为 2C 。现场温度直接以“一线总线”的数字方式传输,大大

3、提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。本次数字温度计的设计共分为三部分,主控制器,LED显示部分,传感器部分,复位部分,时钟电路。主控制器即单片机部分,用于存储程序和控制电路;LED显示部分是指四位共阳极数码管,用来显示温度;传感器部分,即温度传感器,用来采集温度,进行温度转换,复位部分,即复位电路。测量的总过程是,传感器采集到外部环境的温度,并进行转换后传到单片机,经过单片机处理判断后将温度传递到数码管显示。本设计能完成的温度测量范围是-55C+128C,由于能力有限,不能实现报警功能。关键词:单片机,DS18B20,AD转换

4、, LED显示目录第1章基于DS18B20数字式温度计的设计课题介绍2第2章 总体方案设计32.1 DS18B20内部结构及功能32.2 方案选择讨论4第3章 硬件部分设计53.1硬件设计53.1.1主控制器53.1.2显示电路63.1.3温度传感器工作原理6第4章 软件电路设计74.1 软件设计思路94.2流程图94.2.194.2.2104.3 程序10第5章 测试与性能分析136.1测试结果136.2优点136.3不足及改良136.4 结论13心得体会14致谢15参考文献16第1章基于DS18B20数字温度计的设计课题介绍本设计是一款简单实用的小型数字温度计,所采用的主要元件有传感器DS

5、18B20,单片机AT89C51,四位共阳极数码管一个,电容电阻若干。DS18B20支持“一线总线”接口,测量温度范围-55C+128C。在-10+85C范围内,精度为0.5C。DS18B20的精度较差为 2C 。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。本次数字温度计的设计共分为五部分,主控制器,LED显示部分,传感器部分,复位部分,时钟电路。主控制器即单片机部分,用于存储程序和控制电路;LED显示部分是指四位共阳极数码管,用来显示温度;传感器部分,即温度传感器,用来采集温度,进行温度

6、转换,复位部分,即复位电路。测量的总过程是,传感器采集到外部环境的温度,并进行转换后传到单片机,经过单片机处理判断后将温度传递到数码管显示。本设计能完成的温度测量范围是-55C+128C,由于能力有限,不能实现报警功能。第2章总体方案2.1 DS18B20内部结构及功能DS18B20的内部结构如下图所示,主要包括:寄生电源,温度传感器,64位ROM和单总线接口,存放中间数据的高速暂存器RAM,用于存储用户设定温度上下限值的TH和TL触发器,存储与控制逻辑,8位循环冗余校验码(CRC)发生器等7部分。温度和数字量的关系:2.2方案选择讨论根据系统的设计要求,选择DS18B20作为本系统的温度传感

7、器,选择单片机AT89C51为测控系统的核心来完成数据采集、处理、显示等功能。选用数字温度传感器DS18B20,省却了采样/保持电路、运放、数/模转换电路以及进行长距离传输时的串/并转换电路,简化了电路,缩短了系统的工作时间,降低了系统的硬件成本。该系统的总体设计思路如下:温度传感器DS18B20把所测得的温度发送到AT89C51单片机上,经过51单片机处理,将把温度在显示电路上显示,本系统显示器用4位共阳LED数码管以动态扫描法实现。检测范围-55摄氏度到128摄氏度。按照系统设计功能的要求,确定系统由3个模块组成:主控制器、测温电路和显示电路。数字温度计总体电路结构框图如图1所示。图1 数

8、字温度计总体电路结构框图第3章 硬件部分设计3.1硬件设计温度计电路设计原理图如图2所示,控制器使用单片机AT89C51,温度传感器使用DS18B20,用4位共阳LED数码管实现温度显示。图2 温度计电路设计原理图3.1.1主控制器AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。3.1.2显示电路显示电

9、路采用4位共阳LED数码管。3.1.3温度传感器工作原理DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现912位的数字值读数方式。DS18B20 的性能特点如下:独特的单线接口方式仅需要一个端口引脚进行通信;多个DS18B20可以并联在唯一的三线上,实现多点组网功能;无需外部器件;可通过数据线供电,电压范围:3.05.5V;测温范围55125,在-10+85时精度为0.5零待机功耗温度以9或12位数字量读出;用户可定义的非易失性温度报警设置报警搜索命令识别并标志超过

10、程序限定温度(温度报警条件)的器件负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作第4章 软件电路设计4.1 软件设计思路 单片机应用系统的程序设计,可以采用汇编语言完成,也可以采用C语言实现。汇编语言对单片机内部资源的操作直接,简洁,代码紧凑。但是当系统规模较大时,设计人员更趋于采用C语言进行程序设计。这是由于C语言具有良好的可读性,可移植性和基本的硬件操作能力。 采用C51进行单片机应用程序设计,编译器能自动完成变量的存储单元的分配,编程者可以专注于应用程序的逻辑思想;对常用功能模块和算法编制相应的函数,可以方便地进行算法和应用程序的移植。因此,用C51进行程序设计可以大

11、大提高实际工程的开发效率。目前,C51的代码长度已经做到了汇编水平的1.21.5 倍。当代码长度超过4KB以上时,C51比汇编语言更具有明显优势。我们还可以借助仿真器,对应用程序的关键代码进行优化,以减少代码长度,提高运行速度。由于单片机生产工艺的改善,单片机的运行速度和内部存储器容量都有了较大的提高,这些都为C51语言的使用创造了有利的条件。综上所述,故软件语言使用C51语言。4.2流程图主要包括主程序、读出温度子程序、温度转换命令子程序、计算温度子程序和现实数据刷新子程序等。主程序 主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量温度值。温度测量每1S进行一次。主流程图

12、如下初始化调用显示程序N1s到?初次上电YY读出温度值温度计算处理显示数据刷新发温度转换开始命令4.3 程序:/使用AT89C2051单片机,12MHZ晶振,用共阳LED数码管/P1口输出段码,P3口扫描/#pragma src(d:aa.asm)#include reg51.h#include intrins.h /_nop_();延时函数用#define Disdata P1 /段码输出口#define discan P3 /扫描口#define uchar unsigned char#define uint unsigned intsbit DQ=P37; /温度输入口sbit DIN=

13、P17; /LED小数点控制uint h;/*温度小数部分用查表法*/uchar code ditab16=0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09;uchar code dis_712=0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x00,0x40;/* 共阳LED段码表 0 1 2 3 4 5 6 7 8 9 不亮 - */ uchar code scan_con4=0xfe,0xfd,0xfb,0xf7; / 列扫描

14、控制字uchar data temp_data2=0x00,0x00; / 读出温度暂放uchar data display5=0x00,0x00,0x00,0x00,0x00;/显示单元数据,共4个数据,一个运算暂存用/*11微秒延时函数*/void delay(uint t)for(;t0;t-);/*显示扫描函数*/scan()char k; for(k=0;k0; i-) /DQ=1;_nop_();_nop_(); DQ = 0;_nop_();_nop_();_nop_();_nop_();_nop_();/5usDQ = val&0x01; /最低位移出delay(6); /66

15、usval=val/2; /右移一位DQ = 1;delay(1); /*18B20读1个字节函数*/从总线上读取一个字节uchar read_byte(void)uchar i;uchar value = 0;for (i=8;i0;i-)DQ=1;_nop_();_nop_();value=1;DQ = 0; /_nop_();_nop_();_nop_();_nop_(); /4usDQ = 1;_nop_();_nop_();_nop_();_nop_(); /4us if(DQ)value|=0x80;delay(6); /66usDQ=1;return(value);/*读出温度函

16、数*/read_temp()ow_reset(); /总线复位write_byte(0xCC); / 发Skip ROM命令write_byte(0xBE); / 发读命令temp_data0=read_byte(); /温度低8位temp_data1=read_byte(); /温度高8位ow_reset();write_byte(0xCC); / Skip ROMwrite_byte(0x44); / 发转换命令/*温度数据处理函数*/work_temp()uchar n=0; /if(temp_data1127)if(temp_data0!=0x00) temp_data1=(255-t

17、emp_data1);temp_data0=(256-temp_data0);n=1;/负温度求补码else temp_data1=(256-temp_data1);n=1;/负温度求补码display4=temp_data0&0x0f;display0=ditabdisplay4;display4=(temp_data0&0xf0)4)|(temp_data1&0x0f)4);/display3=display4/100;display1=display4%100;display2=display1/10;display1=display1%10;if(!display3)display3=

18、0x0A;if(!display2)display2=0x0A;/最高位为0时都不显示if(n)display3=0x0B;/负温度时最高位显示-/*主函数*/main()Disdata=0xff; /初始化端口discan=0xff;for(h=0;h4;h+)displayh=8;/开机显示8888ow_reset(); / 开机先转换一次write_byte(0xCC); / Skip ROMwrite_byte(0x44); / 发转换命令for(h=0;h500;h+) scan(); /开机显示88882秒while(1) read_temp(); /读出18B20温度数据 wor

19、k_temp(); /处理温度数据 for(h=0;h500;h+) scan(); /显示温度值2秒第6章 测试与性能分析6.1测试结果系统的调试及性能分析:硬件调试比较简单,首先检查电路的连接是否正确,所选用原件是否合适,然后可仿真运行看各部分是否导通。软件调试可以先编写显示程序并进行硬件的正确性检验,然后分别进行主程序、读出温度子程序、温度转换命令子程序、计算温度子程序和现实数据刷新子程序等的编程及调试。由于DS18B20与单片机采用串行数据传送,因此,对DS18B20进行读/写编程时必须严格地保证读/写时序;否则将无法读取测量结果。本程序采用单片机汇编或C语言编写用Keil C51编译

20、器编程调试。软件调试到能显示温度值,并且在有温度变化时显示温度能改变,就基本完成。性能测试可用制作的温度计和已有的成品温度计同时进行测量比较。由于DS18B20的精度很高,所以误差指标可以限制在0.5以内。另外,-55+128的测温范围使得该温度计完全适合一般的应用场合,其低电压供电特性可做成用电池供电的手持温度计。6.2优点元器件较少,芯片管脚少,连线方便,容易纠错,成本低。心得体会通过本次数字电子的课程设计加强了我们动手,思考,解决问题的能力。此外培养了我们当代大学生所缺失的一种认真细致,思维严谨的科学精神。耐心,沉稳,细致,可谓是实验者必备的一种素质,缺一不可。在连接线路的过程中只要一不

21、留神就会接错管脚,导致整个实验的失败,花费过多的时间来寻找错误不如当初就多细心找一个比较完美的方案。这是所谓的欲速则不达,事半功倍。以往所学完全通过本次实验有了很好的融会贯通,取长补短,实用性的结合。使我们加强了记忆,深刻了体会,使真正的理论转换为实践,这使得在以后的各种实际操作中都不会畏惧。凡事都怕认真二字,这是我的观念。这一课程设计使我们将课堂上的理论知识有了进一步的了解,并增强了对控制电机和单片机以及微机原理这三门专业课程的兴趣。了解了更多电子元件的工作原理,如AT89C51单片机,ULN2003达林顿晶体管阵列,74LS164数码管驱动芯片,步进电机等;但同时更多地暴露出我在知识上掌握

22、不足,实际操作过于生疏等缺点;其次在此次设计过程中由于我们频繁地使用星研软件操作环境和STAR ES598PCI实验箱,因此使我熟悉了软件的使用,也加强巩固了我的C语言编程知识;熟悉实验箱上每个区域的功能作用和连线方法,也懂得如何读取输出;同时在电脑的电子设计和绘图操作上有了进一步提高;加上在设计过程中遇到了一些问题,使得我不得不查找相关资料,增长知识的同时加强了解决问题和动手的能力,锻炼了我做事细心、用心、耐心的能力。本次课程设计,使我向更高的精神和知识层次迈向一大步。所以在以后的学习生活中,我会努力学习,培养自己独立思考的能力,积极参加各种设计活动,培养自己全方位能力,从而使得自己成为一个

23、有综合能力的人才而更加适应社会。同时让我了解了设计电路的方式,让我对各种芯片的使用及功能有了进一步的理解,加强和培养了我对电子电路的设计能力,要设计一个电路首先是根据实验题目要求整合实验器材构想结构框图,刚开始可以先尝试电脑仿真,仿真成功后再进行实际接线,但最后的成品与仿真常有些差别,仿真是一种比较理想化的状态,在实际接线中常会存在各种制约条件,需要寻找问题解决问题完善问题将误差率降到最低。在仿真中可以正常工作的电路,在实际接线中不一定可以正常工作,往往要调整电路,通过多次调试方能成功,在实验的过程中我们组通过组长的带领和指导老师的耐心解答,组员们的团结和相互讨论,使得我们的实验得以顺利完成,

24、体会到了合作的力量,众人拾柴火焰高在本次试验中得到了很充分的诠释。致谢经过两个多星期的努力,我们顺利把实验要求做出来了。虽然整个过程很艰苦,从刚开始的半知不懂,一步不懂解决一步,总结不足得出改善;但最终我得到的是满满的收获。有时候理论明明已经完全应用实际就是会出问题,但是我没有放弃。因为老师说过理论与实践相差非常大,实际要考虑的问题远远比理论的多的多。所以我不断地查资料、不断地调试;最后终于成功了。这让我深刻体会到有付出才有回报过程是有些许曲折。感谢这次电子课程设计,让我所学的理论知识不再只是纸上谈兵。我相信只要不放弃,不抛弃,勇于思考,迎难而上,拥有发现问题独立解决问题的能力,在以后任何一件

25、事上都能单挡独挑。着重感谢老师的细心指导,耐心指教,及时排忧解难;也同样感谢本组其他每个成员的大力支持和帮助,团结的力量使得难题变得容易攻破,因为众多的智慧组成的合力是不可估量的超能量,每个组员都是解决问题的强者;让我深刻认识到团结合作的重要性,以后也会一直把它当做宝贵财富。参考文献1 李全利.单片机原理及接口技术.第二版.北京:高等教育出版社,2011.112 王耕,王晓雷.控制电机及其应用.修订版.北京:电子工业出版社,2012.83 王晓明,胡晓柏.电动机的单片机控制.第一版.北京:北京航天航空大学出版社,2002.54 孙进平,张大鹏,丁金斌.51单片机系列单片机原理开发与应用实例.北京:中国电力出版社.20095蔡志健,丁爱萍.小功率步进电机控制器的设计.2005,17:235

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁