基于ds18b20数字式温度计-课程设计论文正文--大学毕业论文设计.doc
《基于ds18b20数字式温度计-课程设计论文正文--大学毕业论文设计.doc》由会员分享,可在线阅读,更多相关《基于ds18b20数字式温度计-课程设计论文正文--大学毕业论文设计.doc(21页珍藏版)》请在咨信网上搜索。
西安文理学院物理与机械电子工程学院 专业课程设计报告 专业班级 2010级测控技术与仪器一班 课 程 电子技术课程设计 题 目 基于DS18B20数字式温度计设计 学 号 07103100114 学生姓名 李小鹏 指导教师 杨森林 成 绩 2013年6月20日 西安文理学院物理与机械电子工程学院 课程设计任务书 学生姓名 专业班级 学 号 指导教师 职 称 教研室 课 程 电子技术课程设计 题目 基于DS18B20数字式温度计设计 任务与要求 利用DS18B20温度模块,设计一个数字式温度计,并显示数码管温度值。 设计要求: (1)采用单片机完成,要求结构简单、成本低; (2)采用DS18B20温度模块实现温度信号采集与数字转换; (3)完成系统的硬件电路设计与软件设计; (4)采用数码管显示,显示效果稳定; (5)完成原理图和PCB布板; (6)采用Proteus、KeilC等软件实现系统的仿真调试; (7)完成课程设计报告。 摘 要 本设计是一款简单实用的小型数字温度计,所采用的主要元件有传感器DS18B20,单片机AT89S52,,四位共阳极数码管一个,电容电阻若干。DS18B20支持“一线总线”接口,测量温度范围-55°C~+128°C。在-10~+85°C范围内,精度为±0.5°C。DS18B20的精度较差为± 2°C 。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。 本次数字温度计的设计共分为三部分,主控制器,LED显示部分,传感器部分,复位部分,时钟电路。主控制器即单片机部分,用于存储程序和控制电路;LED显示部分是指四位共阳极数码管,用来显示温度;传感器部分,即温度传感器,用来采集温度,进行温度转换,复位部分,即复位电路。测量的总过程是,传感器采集到外部环境的温度,并进行转换后传到单片机,经过单片机处理判断后将温度传递到数码管显示。本设计能完成的温度测量范围是-55°C~+128°C,由于能力有限,不能实现报警功能。 关键词:单片机,DS18B20,AD转换, LED显示 目录 第1章 基于DS18B20数字式温度计的设计课题介绍 2 第2章 总体方案设计 3 2.1 DS18B20内部结构及功能 3 2.2 方案选择讨论 4 第3章 硬件部分设计 5 3.1硬件设计 5 3.1.1主控制器 5 3.1.2显示电路 6 3.1.3温度传感器工作原理 6 第4章 软件电路设计 7 4.1 软件设计思路 9 4.2流程图 9 4.2.1 9 4.2.2 10 4.3 程序 10 第5章 测试与性能分析 13 6.1测试结果 13 6.2优点 13 6.3不足及改良 13 6.4 结论 13 心得体会 14 致谢 15 参考文献 16 第1章基于DS18B20数字温度计的设计课题介绍 本设计是一款简单实用的小型数字温度计,所采用的主要元件有传感器DS18B20,单片机AT89C51,,四位共阳极数码管一个,电容电阻若干。DS18B20支持“一线总线”接口,测量温度范围-55°C~+128°C。在-10~+85°C范围内,精度为±0.5°C。DS18B20的精度较差为± 2°C 。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。 本次数字温度计的设计共分为五部分,主控制器,LED显示部分,传感器部分,复位部分,时钟电路。主控制器即单片机部分,用于存储程序和控制电路;LED显示部分是指四位共阳极数码管,用来显示温度;传感器部分,即温度传感器,用来采集温度,进行温度转换,复位部分,即复位电路。测量的总过程是,传感器采集到外部环境的温度,并进行转换后传到单片机,经过单片机处理判断后将温度传递到数码管显示。本设计能完成的温度测量范围是-55°C~+128°C,由于能力有限,不能实现报警功能。 第2章总体方案 2.1 DS18B20内部结构及功能 DS18B20的内部结构如下图所示,主要包括:寄生电源,温度传感器,64位ROM和单总线接口,存放中间数据的高速暂存器RAM,用于存储用户设定温度上下限值的TH和TL触发器,存储与控制逻辑,8位循环冗余校验码(CRC)发生器等7部分。 温度和数字量的关系: 2.2方案选择讨论 根据系统的设计要求,选择DS18B20作为本系统的温度传感器,选择单片机AT89C51为测控系统的核心来完成数据采集、处理、显示等功能。选用数字温度传感器DS18B20,省却了采样/保持电路、运放、数/模转换电路以及进行长距离传输时的串/并转换电路,简化了电路,缩短了系统的工作时间,降低了系统的硬件成本。 该系统的总体设计思路如下:温度传感器DS18B20把所测得的温度发送到AT89C51单片机上,经过51单片机处理,将把温度在显示电路上显示,本系统显示器用4位共阳LED数码管以动态扫描法实现。检测范围-55摄氏度到128摄氏度。 按照系统设计功能的要求,确定系统由3个模块组成:主控制器、测温电路和显示电路。数字温度计总体电路结构框图如图1所示。 图1 数字温度计总体电路结构框图 第 21 页 第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显示电路 显示电路采用4位共阳LED数码管。 3.1.3温度传感器工作原理 DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。 DS18B20 的性能特点如下: ●独特的单线接口方式仅需要一个端口引脚进行通信; ●多个DS18B20可以并联在唯一的三线上,实现多点组网功能; ●无需外部器件; ●可通过数据线供电,电压范围:3.0~5.5V; ●测温范围-55℃~+125℃,在-10~+85℃时精度为±0.5℃ ●零待机功耗 ●温度以9或12位数字量读出; ●用户可定义的非易失性温度报警设置 ●报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件 ●负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作 第4章 软件电路设计 4.1 软件设计思路 单片机应用系统的程序设计,可以采用汇编语言完成,也可以采用C语言实现。汇编语言对单片机内部资源的操作直接,简洁,代码紧凑。但是当系统规模较大时,设计人员更趋于采用C语言进行程序设计。这是由于C语言具有良好的可读性,可移植性和基本的硬件操作能力。 采用C51进行单片机应用程序设计,编译器能自动完成变量的存储单元的分配,编程者可以专注于应用程序的逻辑思想;对常用功能模块和算法编制相应的函数,可以方便地进行算法和应用程序的移植。因此,用C51进行程序设计可以大大提高实际工程的开发效率。 目前,C51的代码长度已经做到了汇编水平的1.2~1.5 倍。当代码长度超过4KB以上时,C51比汇编语言更具有明显优势。我们还可以借助仿真器,对应用程序的关键代码进行优化,以减少代码长度,提高运行速度。由于单片机生产工艺的改善,单片机的运行速度和内部存储器容量都有了较大的提高,这些都为C51语言的使用创造了有利的条件。 综上所述,故软件语言使用C51语言。 4.2流程图 主要包括主程序、读出温度子程序、温度转换命令子程序、计算温度子程序和现实数据刷新子程序等。 主程序 主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量温度值。温度测量每1S进行一次。主流程图如下 初始化 调用显示程序 N 1s到? 初次上电 Y Y 读出温度值温度计算处理显示数据刷新 发温度转换开始命令 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 int sbit DQ=P3^7; //温度输入口 sbit DIN=P1^7; //LED小数点控制 uint h; //*******温度小数部分用查表法**********// uchar code ditab[16]={0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09}; uchar code dis_7[12]={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_con[4]={0xfe,0xfd,0xfb,0xf7}; // 列扫描控制字 uchar data temp_data[2]={0x00,0x00}; // 读出温度暂放 uchar data display[5]={0x00,0x00,0x00,0x00,0x00};//显示单元数据,共4个数据,一个运算暂存用 /***********11微秒延时函数**********/ void delay(uint t) { for(;t>0;t--); } /***********显示扫描函数**********/ scan() { char k; for(k=0;k<4;k++) //四位LED扫描控制 { Disdata=dis_7[display[k]]; if(k==1){DIN=0;} discan=scan_con[k];delay(90);discan=0xff; } } /***********18B20复位函数**********/ ow_reset(void) { char presence=1; while(presence) { while(presence) { DQ=1;_nop_();_nop_(); DQ=0; // delay(50); // 550us DQ=1; // delay(6); // 66us presence=DQ; // presence=0继续下一步 } delay(45); //延时500us presence = ~DQ; } DQ=1; } /**********18B20写命令函数*********/ //向 1-WIRE 总线上写一个字节 void write_byte(uchar val) { uchar i; for (i=8; i>0; i--) // { DQ=1;_nop_();_nop_(); DQ = 0;_nop_();_nop_();_nop_();_nop_();_nop_();//5us DQ = val&0x01; //最低位移出 delay(6); //66us val=val/2; //右移一位 } DQ = 1; delay(1); } /*********18B20读1个字节函数********/ //从总线上读取一个字节 uchar read_byte(void) { uchar i; uchar value = 0; for (i=8;i>0;i--) { DQ=1;_nop_();_nop_(); value>>=1; DQ = 0; // _nop_();_nop_();_nop_();_nop_(); //4us DQ = 1;_nop_();_nop_();_nop_();_nop_(); //4us if(DQ)value|=0x80; delay(6); //66us } DQ=1; return(value); } /***********读出温度函数**********/ read_temp() { ow_reset(); //总线复位 write_byte(0xCC); // 发Skip ROM命令 write_byte(0xBE); // 发读命令 temp_data[0]=read_byte(); //温度低8位 temp_data[1]=read_byte(); //温度高8位 ow_reset(); write_byte(0xCC); // Skip ROM write_byte(0x44); // 发转换命令 } /***********温度数据处理函数**********/ work_temp() { uchar n=0; // if(temp_data[1]>127) { if(temp_data[0]!=0x00) {temp_data[1]=(255-temp_data[1]);temp_data[0]=(256-temp_data[0]);n=1;}//负温度求补码 else {temp_data[1]=(256-temp_data[1]);n=1;}//负温度求补码 } display[4]=temp_data[0]&0x0f;display[0]=ditab[display[4]]; display[4]=((temp_data[0]&0xf0)>>4)|((temp_data[1]&0x0f)<<4);// display[3]=display[4]/100; display[1]=display[4]%100; display[2]=display[1]/10; display[1]=display[1]%10; if(!display[3]){display[3]=0x0A;if(!display[2]){display[2]=0x0A;}}//最高位为0时都不显示 if(n){display[3]=0x0B;}//负温度时最高位显示"-" } /**************主函数****************/ main() { Disdata=0xff; //初始化端口 discan=0xff; for(h=0;h<4;h++){display[h]=8;}//开机显示8888 ow_reset(); // 开机先转换一次 write_byte(0xCC); // Skip ROM write_byte(0x44); // 发转换命令 for(h=0;h<500;h++) {scan();} //开机显示"8888"2秒 while(1) { read_temp(); //读出18B20温度数据 work_temp(); //处理温度数据 for(h=0;h<500;h++) {scan();} //显示温度值2秒 } } 第6章 测试与性能分析 6.1测试结果 系统的调试及性能分析: 硬件调试比较简单,首先检查电路的连接是否正确,所选用原件是否合适,然后可仿真运行看各部分是否导通。 软件调试可以先编写显示程序并进行硬件的正确性检验,然后分别进行主程序、读出温度子程序、温度转换命令子程序、计算温度子程序和现实数据刷新子程序等的编程及调试。 由于DS18B20与单片机采用串行数据传送,因此,对DS18B20进行读/写编程时必须严格地保证读/写时序;否则将无法读取测量结果。本程序采用单片机汇编或C语言编写用Keil C51编译器编程调试。 软件调试到能显示温度值,并且在有温度变化时显示温度能改变,就基本完成。 性能测试可用制作的温度计和已有的成品温度计同时进行测量比较。由于DS18B20的精度很高,所以误差指标可以限制在0.5℃以内。另外,-55~+128℃的测温范围使得该温度计完全适合一般的应用场合,其低电压供电特性可做成用电池供电的手持温度计。 6.2优点 元器件较少,芯片管脚少,连线方便,容易纠错,成本低。 心得体会 通过本次数字电子的课程设计加强了我们动手,思考,解决问题的能力。此外培养了我们当代大学生所缺失的一种认真细致,思维严谨的科学精神。耐心,沉稳,细致,可谓是实验者必备的一种素质,缺一不可。在连接线路的过程中只要一不留神就会接错管脚,导致整个实验的失败,花费过多的时间来寻找错误不如当初就多细心找一个比较完美的方案。这是所谓的欲速则不达,事半功倍。 以往所学完全通过本次实验有了很好的融会贯通,取长补短,实用性的结合。使我们加强了记忆,深刻了体会,使真正的理论转换为实践,这使得在以后的各种实际操作中都不会畏惧。凡事都怕认真二字,这是我的观念。 这一课程设计使我们将课堂上的理论知识有了进一步的了解,并增强了对控制电机和单片机以及微机原理这三门专业课程的兴趣。了解了更多电子元件的工作原理,如AT89C51单片机,ULN2003达林顿晶体管阵列,74LS164数码管驱动芯片,步进电机等;但同时更多地暴露出我在知识上掌握不足,实际操作过于生疏等缺点;其次在此次设计过程中由于我们频繁地使用星研软件操作环境和STAR ES598PCI实验箱,因此使我熟悉了软件的使用,也加强巩固了我的C语言编程知识;熟悉实验箱上每个区域的功能作用和连线方法,也懂得如何读取输出;同时在电脑的电子设计和绘图操作上有了进一步提高;加上在设计过程中遇到了一些问题,使得我不得不查找相关资料,增长知识的同时加强了解决问题和动手的能力,锻炼了我做事细心、用心、耐心的能力。 本次课程设计,使我向更高的精神和知识层次迈向一大步。所以在以后的学习生活中,我会努力学习,培养自己独立思考的能力,积极参加各种设计活动,培养自己全方位能力,从而使得自己成为一个有综合能力的人才而更加适应社会。同时让我了解了设计电路的方式,让我对各种芯片的使用及功能有了进一步的理解,加强和培养了我对电子电路的设计能力,要设计一个电路首先是根据实验题目要求整合实验器材构想结构框图,刚开始可以先尝试电脑仿真,仿真成功后再进行实际接线,但最后的成品与仿真常有些差别,仿真是一种比较理想化的状态,在实际接线中常会存在各种制约条件,需要寻找问题解决问题完善问题将误差率降到最低。在仿真中可以正常工作的电路,在实际接线中不一定可以正常工作,往往要调整电路,通过多次调试方能成功,在实验的过程中我们组通过组长的带领和指导老师的耐心解答,组员们的团结和相互讨论,使得我们的实验得以顺利完成,体会到了合作的力量,众人拾柴火焰高在本次试验中得到了很充分的诠释。 致谢 经过两个多星期的努力,我们顺利把实验要求做出来了。虽然整个过程很艰苦,从刚开始的半知不懂,一步不懂解决一步,总结不足得出改善;但最终我得到的是满满的收获。有时候理论明明已经完全应用实际就是会出问题,但是我没有放弃。因为老师说过理论与实践相差非常大,实际要考虑的问题远远比理论的多的多。所以我不断地查资料、不断地调试;最后终于成功了。这让我深刻体会到有付出才有回报过程是有些许曲折。感谢这次电子课程设计,让我所学的理论知识不再只是纸上谈兵。我相信只要不放弃,不抛弃,勇于思考,迎难而上,拥有发现问题独立解决问题的能力,在以后任何一件事上都能单挡独挑。 着重感谢老师的细心指导,耐心指教,及时排忧解难;也同样感谢本组其他每个成员的大力支持和帮助,团结的力量使得难题变得容易攻破,因为众多的智慧组成的合力是不可估量的超能量,每个组员都是解决问题的强者;让我深刻认识到团结合作的重要性,以后也会一直把它当做宝贵财富。 参考文献 [1] 李全利.单片机原理及接口技术.第二版.北京:高等教育出版社,2011.11 [2] 王耕,王晓雷.控制电机及其应用.修订版.北京:电子工业出版社,2012.8 [3] 王晓明,胡晓柏.电动机的单片机控制.第一版.北京:北京航天航空大学出版社,2002..5 [4] 孙进平,张大鹏,丁金斌.51单片机系列单片机原理开发与应用实例.北京:中国电力出版社.2009 [5]蔡志健,丁爱萍.小功率步进电机控制器的设计.2005,17:235- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 ds18b20 数字式 温度计 课程设计 论文 正文 大学毕业 设计
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【可****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【可****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【可****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【可****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文