欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    基于18b20的温度采集系统.docx

    • 资源ID:15867634       资源大小:392.37KB        全文页数:45页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于18b20的温度采集系统.docx

    1、基于18b20的温度采集系统目录摘要 3一、设计任务和要求 3二、系统方案 3三、方案设计与论证 4四、程序流程图 8五:元器件清单19六、结果分析 19七、总结 20八、设计体会与今后的改进意见 20附录:.摘要本文介绍了基于DS18B20的温度实时采集与显示系统的设计与实现。设计中选取单片机STC89C52作为系统控制中心,数字温度传感器DS18B20作为单片机外部信号源,精度较好的数码管来显示温度。利用单片机程序来完成对STC18B20与AT89C52的控制,最终实现温度的实时采集与显示。 关键词:DS18B20 STC89C52 温度采集 数码管Abstract: This paper

    2、 introduces the temperature based on STC18B20 real-time data acquisition and display system design and implementation. Design of STC89C52 as system selection single-chip microcomputer control center, and digital temperature sensor DS18B20 as external sources, microcontroller accuracy than good digit

    3、al tube to display temperature. Using microcontroller program to accomplish DS18B20 and AT89C52 single control temperature, and finally achieve the real-time data acquisition and display. Keywords: DS18B20 AT89C52 single temperature gathering digital tube.一、设计任务和要求1、利用DS18B20实现温度采集,并用数码管显示。能实现温度上下限的

    4、设置,并能够超限报警2、 硬件设计部分,根据设计的任务选定合适的单片机,根据控制对象设计接口电路。设计的单元电路必须有工作原理,器件的作用,分析和计算过程;3、软件设计部分,根据电路工作过程,画出软件流程图,根据流程图编写相应的程序,进行调试并打印程序清单;4、原理图设计部分,根据所确定的设计电路,利用Protel工具软件绘制电路原理图,提供元器件清单。5、编写报告。进行成果验收。 二、系统方案方案一:由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这

    5、种设计需要用到A/D转换电路,感温电路比较麻烦。方案二:进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。从以上两种方案,很容易看出,采用方案二,电路比较简单,软件设计也比较简单,故采用了方案二。三:方案设计与论证1温度采集模块方案一:采用瑞士Sensirion公司研制的SHT11型智能化湿度/温度传感器,它采用CMOSens专利技术(CMOS和传感器技术的融合),外形尺寸小。它具有I2C总线接口,接口电路简单,并具有数字式输出、免调试、免标定、

    6、一致性好的特点。其电路原理图如图1所示。因其价格较贵,所以不采用此方案。图1 SHT11电路原理图方案二:采用DALLAS公司推出的一线式数字温度传感器DS18B20,该芯片的管脚简单,无需外围硬件设备即可进行温度测量,与单片机交换信息仅需一根I/O口线,多个DS18B20可以并联到3根或2根线上,实现多点测温。CPU只需1根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可以节省大量的引线和逻辑电路。温度测量范围为-55125,固有测温分辨率为0.5,符合本设计的要求,可编程为912位A/D转换精度,用户可自设定非易失性的报警上下限值,支持多点组网功能。具有负压特性,电源极性接反

    7、时,温度计不会因发热而烧毁,只是不能正常工作而已。被测量温度用符号扩展的16位数字量方式输出,而且其体积较小,方便焊接,因此采用此方案。其电路图如图2图2 温度采集电路图2显示电路模块单片机扫描键盘得到功率预置值,通过P0的8位IO口控制选定数码管,P2的8位IO口控制数码管显示,将该值送到LED显示器中显示。其硬件原理如图3所示。但此方案设备体积大,功耗大,因此不建议在实际应用中选用此方案。 图3:显示模块3报警模块此模块原理简单,使用单片机的一个IO口控制蜂鸣器的响灭。如图5三极管主要是做驱动用的。因为单片机的IO口驱动能力不够让蜂鸣器发出声音,所以我们通过三极管放大驱动电流,从而可以让蜂

    8、鸣器发出声音,当IO口输出低电平,三极管导通,集电极电流通过蜂鸣器让蜂鸣器发出声音,当输出低电平时,三极管截止,没有电流流过蜂鸣器,所以就不会发出声音。 图4:报警模块4按键模块按键模块主要是为了达到如下两个个功能:(1) 乙机任意控制甲机就行温度的转换;(2) 在不需要查询温度时乙机可以控制甲机断电,到需要时在对其供电,以达到节约电能的目的。(3) 控制乙机自身的开关以及复位作用。(4) 原理图如下:其中,S控制乙机自身的开关。S1.S2与K1控制甲机的开关。(5) S3.S4控制甲机是否就行温度转换。图5:按键模块 5最小系统模块其工作电路图6所示图6 51最小系统模块电路图电路设计文档甲

    9、机原理图 乙机原理图四:程序流程图甲机主程序甲机主程序的主要功能是等待接收乙机是否发送启动温度转换的命令,是,则开始就行温度转换,并发送给乙机。其程序流程见图8所示。 源程序如下:void main() TMOD=0X21; TH1=0Xfd; TL1=0xfd; TH0=0x3c; TL0=0XB0; TR0=0; TR1=1; SCON=0x50; EA=1; ET0=1; while(1) while(!RI) i=SBUF; RI=0; if(i=1) TR0=1; else if(i=2) TR0=0; 温度采集子程序此程序就是启动温度转换,并返回温度值。返回温度值数据读取处理温度转

    10、换18B20初始化源程序如下:uchar ReadTemperaure() uchar TH,TL,zong; init_18b20(); xie(0xcc); xie(0x44); delay(125); init_18b20(); xie(0xcc); xie(0xbe); TL=du(); TH=du(); zong=(TH4); return zong;写入子程序此程序目的是将命令或数据写入18B20内,写入endY数据右移if i=0得到显示数据低位i=8写入初始化N 源程序如下:void xie(uchar dat) uchar i; DQ=1; delay(1); for(i=8

    11、;i0;i-) DQ=0; DQ=dat&0x01; delay(5); DQ=1; dat=1; delay(4);读取子程序结束返回右移1位If (i0)读出DQ只赋给变量高位功能是从18B20内读出自己所要得数据读出初始化YN源程序如下:uchar du() uchar temp=0,i; for(i=8;i0;i-) / DQ=1; / delay(1); DQ=0; temp=1; DQ=1; delay(1); if(DQ) temp|=0x80; delay(5); return temp; 中断函数此函数比较重要,温度的读取与传输都在此函数中。源程序如下:void zhongd

    12、() interrupt 1 TH0=0x3c; TL0=0XB0; t+; if(t=20) t=0; i=ReadTemperaure(); SBUF=i; while(!TI); TI=0; TI=0; 乙机:主函数:源程序如下:void main() uchar a=0,b=0; TMOD=0X20; TH1=0Xfd; TL1=0xfd;/ TL0=0XF0;/ TH0=0xF0; SCON=0x50; TR1=1;/ TR0=0;/ ET0=1; EA=0; ES=1; jdq=0; while(1) if(!s1) SBUF=0X01;while(TI=0);TI=0;EA=1;

    13、b=1; if(!s2) EA=0;SBUF=0X02;while(TI=0);TI=0; wei=1;P0=0xff;wei=0;b=0; if(!s3) delayms(10);while(!s3);a=!a;jdq=!jdq; if(b) disp(i);if(i=30) fmq=0; else fmq=1; 显示函数:将收到的温度用数码管显示。源程序如下:void disp(unsigned char temperature) static unsigned char num=0; num+; num=num%3; wei=1; P0=tablewnum; wei=0; P0=0x00

    14、; duan=1; switch(num) case 2:P0=tabledtemperature%10; break; case 1:P0=tabledtemperature/10%10; break; case 0:P0=tabledtemperature/100; break; default: ; duan=0;P0=0XFF; delayms(5);中断函数:传输作用就是为了接收甲机传送的温度。源程序如下:void zhongd2() interrupt 4 RI=0; i=SBUF; P1=i; 甲机源程序:#include#define uchar unsigned char #

    15、define uint unsigned intvoid disp(unsigned char temperature);sbit DQ=P22;unsigned char i=20;uchar t;void delay(uchar time) uchar n=0; while(n0;i-) DQ=0; / delay(1); DQ=dat&0x01; delay(5);/10 DQ=1; dat=1; delay(4);uchar du() uchar temp=0,i; for(i=8;i0;i-) / DQ=1; / delay(1); DQ=0; temp=1; DQ=1; delay

    16、(1); if(DQ) temp|=0x80; delay(5); return temp; uchar ReadTemperaure() uchar TH,TL,zong; init_18b20(); xie(0xcc); xie(0x44); delay(125); init_18b20(); xie(0xcc); xie(0xbe); TL=du(); TH=du(); zong=(TH4); return zong;void main() TMOD=0X21; TH1=0Xfd; TL1=0xfd; TH0=0x3c; TL0=0XB0; TR0=1; TR1=1; SCON=0x50

    17、; EA=0; ET0=1; while(1) while(!RI) i=SBUF; RI=0; if(i=1) EA=1; else if(i=2) EA=0; / disp(i); void zhongd() interrupt 1 TH0=0x3c; TL0=0XB0; t+; if(t=20) t=0; i=ReadTemperaure(); SBUF=i; while(!TI); TI=0; TI=0; 乙机源程序:#include#define uchar unsigned char #define uint unsigned int code uchar tabled=0x3f,

    18、0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71; code uchar tablew=0xfe,0xfd,0xfb,0xf7,0xef,0xdf;sbit duan=P26; sbit wei=P27;sbit s1=P34;sbit s2=P35;sbit s3=P36;sbit fmq=P23;sbit jdq=P24;uchar i=0;void delayms(unsigned char z) unsigned char i; while(z-) for(i=112;i0;i-);

    19、void disp(unsigned char temperature) static unsigned char num=0; num+; num=num%3; wei=1; P0=tablewnum; wei=0; P0=0x00; duan=1; switch(num) case 2:P0=tabledtemperature%10; break; case 1:P0=tabledtemperature/10%10; break; case 0:P0=tabledtemperature/100; break; default: ; duan=0;P0=0XFF; delayms(5);vo

    20、id main() uchar a=0,b=0; TMOD=0X20; TH1=0Xfd; TL1=0xfd;/ TL0=0XF0;/ TH0=0xF0; SCON=0x50; TR1=1;/ TR0=0;/ ET0=1; EA=0; ES=1; jdq=0; while(1) if(!s1) SBUF=0X01;while(TI=0);TI=0;EA=1;b=1; if(!s2) EA=0;SBUF=0X02;while(TI=0);TI=0; wei=1;P0=0xff;wei=0;b=0; if(!s3) delayms(10);while(!s3); jdq=!jdq; if(b) d

    21、isp(i);if(i=30) fmq=0; else fmq=1; void zhongd2() interrupt 4 RI=0; i=SBUF; 五:元器件清单远程温度采集系统元器件清单元器件名称数量晶振11.0592M2陶瓷电容33PF4电解电容22uf1电阻4.7K13单片机89S522传感器DS18B201弹性按键4蜂鸣器1自锁开关1继电器SRD-05VDC-SL-C1三极管PNP6数码管HS-5101BS24PCB板2块导线若干六、项目测试报告时间:2011.11.26 11:20:68 地点:实训楼404教室条件:室温。测试结果:1:各按键部分能达到预期效果。按键模块合格2:能

    22、正常显示室温,用手捏住18B20时,温度能上升。温度与钟表上一致,温度采集与显示模块合格。3:当人为使温度超过四十度时,蜂鸣器能发出警报声。报警模块合格。七、总结经过三个星期的学校,过程曲折可谓一语难尽。在此期间我们也失落过,也曾一度热情高涨。从开始时满富盛激情到最后汗水背后的复杂心情,点点滴滴无不令我回味无长。生活就是这样,汗水预示着结果也见证着收获。劳动是人类生存生活永恒不变的话题。通过实习,我才真正领略到“艰苦奋斗”这一词的真正含义,我才意识到老一辈电子设计为我们的社会付出。我想说,设计确实有些辛苦,但苦中也有乐,在如今单一的理论学习中,很少有机会能有实践的机会,但我们可以,而且设计也是

    23、一个团队的任务,一起的工作可以让我们有说有笑,相互帮助,配合默契,多少人间欢乐在这里洒下,大学里一年的相处还赶不上这十来天的合作,我感觉我和同学们之间的距离更加近了;我想说,确实很累,但当我们看到自己所做的成果时,心中也不免产生兴奋; 正所谓“三百六十行,行行出状元”。我们同样可以为社会作出我们应该做的一切,这有什么不好?我们不断的反问自己。也许有人不喜欢这类的工作,也许有人认为设计的工作有些枯燥,但我们认为无论干什么,只要人生活的有意义就可。社会需要我们,我们也可以为社会而工作。既然如此,那还有什么必要失落呢?于是我们决定沿着自己的路,执着的走下去。同时我认为我们的工作是一个团队的工作,团队

    24、需要个人,个人也离不开团队,必须发扬团结协作的精神。某个人的离群都可能导致导致整项工作的失败。实习中只有一个人知道原理是远远不够的,必须让每个人都知道,否则一个人的错误,就有可能导致整个工作失败。团结协作是我们实习成功的一项非常重要的保证。而这次实习也正好锻炼我们这一点,这也是非常宝贵的。对我们而言,知识上的收获重要,精神上的丰收更加可喜。挫折是一份财富,经历是一份拥有。这次学习必将成为我人生旅途上一个非常美好的回忆!通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手

    25、能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。这次课程设计终于顺利完成了,在设计中遇到了很多专业知识问题,最后在老师的辛勤指导下,终于游逆而解。同时,在老师的身上我们学也到很多实用的知识,在次我们表示感谢!同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!八、设计体会与今后的改进意见本系统采用采用单片机和数字温度转换器DS18B20 来实现,具有主机接口简单,结构灵活,调试方便等特点,实验结果表明这种测温系统转换速度快、精度高。

    26、 回顾起此次课程设计,我们感慨颇多,从选题到定稿,从理论到实践,在整整两星期的日子里,可以说得是苦多于甜,但是可以学到很多东西。这次实习不仅巩固了以前所学过的知识,而且学到了很多在书本上没有的知识。通过这次课程设计,我们得到了一些工程项目知识,懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正提高自己的实际动手能力和独立思考的能力。在设计的过程中,我们经常遇到问题,可以说是困难重重,这毕竟第一次做,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,通过这次课程设计之后,一定把以前所学过的知识重新温故。虽然两个周的课程设计过去了,但此次课程设计暴露了我不少问题,虽然在课堂上我学了不少东西,但当付诸于实际时却摸不着头脑,所以我们不但要学习知识,还要在实践中运用知识,做到游刃有余。不管是在以后的工作或学习中,我都会全力以赴,积极思考,勇于探索,不断创新。在设计中遇到了很多编程方面的调试问题还没有解决,例如温度没有正负、温度上下限的限制。我想在以后我会继续查找各方面资料、请教老师、与同学共同探讨,一起来解决这些问题。同时在以后的日子里我会慢慢改正在这次课程设计中所犯的错误、把学过的知识掌握的更加牢固。参考文献: 单片机应用技术 王静霞


    注意事项

    本文(基于18b20的温度采集系统.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开