水族箱温度控制系统_第1页
水族箱温度控制系统_第2页
免费预览已结束,剩余19页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、水族箱温度控制系统(一)系统的概述本系统以AT89C51单片机为控制核心的测控仪,主要是为了对水族箱内的温度控制而设计的。该测控仪具有检测精度高、使用简单、成本较低和工作稳定可靠等特点,所以具有一定的应用前景。(二)系统的要求本系统通过单片机AT89C51控制,用18B20数字温度计采集温度。通过LCD显示屏显示当前温度,当温度高于20°C,马达将带动风扇的转动,实现自动控制水族箱里的温度并且随着温度每升高2C,马达的转动速率提高一倍。当检测到的温度高于25C时,发出报警信号。本设计将实现水族箱温度的自动化控制。用protues软件绘制电路原理图,再根据电路原理图捍接电路板。捍接的电

2、路板实现温度的自动化控制。(三)系统的主要模块1本系统的主要组成部分本系统为一个全自动温度检测与控制系统,由以下几个部分组成:AT89C51单片机,温度检测,显示电路,马达,及报警装置等组成。组成图如图1-1。图1-1温度自动控制主要组成部分由图1-1所示,本系统的核心部分是AT89C51,此芯片是该电路的枢纽。由它先控制着温度的检测,用检测到的温度实现马达的自动控制,以及显示。若检测到的温度高于设定的值,则发出报警信号。2各部分的功能(1) AT89C51单片机:它是系统的中央处理器,担负着系统的控制和运算。(2) 温度检测装置:18B20数字温度计对水族箱内温度进行采集,将温度转换成数字。

3、(3) 显示设备:主要是用于显示检测到的水族箱温度。(4) 马达:主要用于带动风扇的转动。(5) 报警装置:产生报警信号。二、系统的硬件组成电路设计系统的硬件组成部分包括:主控制器AT89C51单片机、温度传感器DS18B20、显示电路LED、马达、报警装置等构成oAT89C51连接各模块的主控制端口,初步选定将要运用到的电子元器件,再用Protues绘制原理图,再根据原理图捍接电路板。(一) 系统总硬件设计首先对硬件系统18B20定义端口为P2.0,P2.1,P2.2和P0口控制LCD的显示,定义端口P1.5为马达控制端口,P1.7为发光二极管控制端口。首先对温度采集,将采集到的温度转换数字

4、,采集到的温度由LCD显示屏显示。再将采集到的温度所属软件设置的哪个范围,而控制P1.5的电平输出。电路原理图如2-1所示:C1CRYSTALll1nF+88.8Q1NPN29303112JE1""567LED-BLU8LCD1LM016L189XTAL1XTAL2RSTPSENALEEAU2SW74-46a孑no1U7QO6E5rtm0-892a40Sn32P1.0P1.1P1.2P1.3P1.4P1.5P1.6AT89C51P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.

5、1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WR13141516 77IR2f4.7k'HVCCDQGNDDS18B20RESPACK-82-1电路原理图电路原理图用Protues软件绘制而成。用Protues软件绘制电路原理图方便,快捷。Protues软件有丰富的元件库,智能的器件搜索,智能化的连线,可输出高质量的图纸。电路原理图清晰明了。(二)时钟电路AT89C51芯片内部有一个高增益反向放大器,用于构成震荡器。反向放

6、大器的输入端为XTAL1,输出端为XTAL2。在TXAL1和XTAL2两端跨接由石英晶体及两个电容构成的自激震荡器,如图2-2所示。电容器C1和C2取22pF,选用不同的电容量对震荡频率有微调作用。但石英晶体本身的标定频率才是单片机震荡频率的决定因素。21图2-2时钟电路时钟电路中,两个电容都选择22pF的电容,电容各一端接与晶振相连,各一端接地。选择的晶振是频率为12MHZ。此模块就是产生象时钟一样准确的振荡电路。(三)AT89C51的复位电路AT89C51单片机通常采用上电自动复位和开关手动复位两种方式。本系统采用上电复位电路,如图2-3所示,所谓上电复位,是指单片机只要一上电,便自动地进

7、入复位状态。在通电瞬间,电容C通过电阻R充电,RST端出现正脉冲,用以复位。22pF10kC3RST1nF30-PSENALEEA图2-3复位电路复位电路的基本功能是:系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分-合过程中引起的抖动而影响复位。RC复位电路可以实现上述基本功能,但解决不了电源毛刺和电源缓慢下降等问题,而其调整RC常数改变延时会令驱动能力变差。(四)单总线数字温度传感器DS18B20检测电路DQ为数据输入/输出引脚,连接P3.3。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电

8、源,GND为地信号;VCC为电源信号。图2-4为DS18B20检测电路。P2.3/A11P2.4/A12P2.5/A13-25AFP2.6/A14P2.7/A1527-281R2P3.0/RXDP3.17TXDP3.2/INT0P33/INT1J4.7kU2123VCCDQGND132P3.4/T0P3.5/I1141115P3.6/WR16DS18B20图2-4DS18B20检测电路(五)LCD显示模块用AT89C51的P0口作为数据线,用P2.0、P2.1、P2.2分别作为LCD的4、5、6。其中4是下降沿触发的片选信号,连接P2.0,5是读写信号,连接P2.1,6是寄存器选择信号,连接P

9、2.2。图2-5为LCD的硬件连接。SEN|6E4.7kPO.O/ADOP0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9LCD1LM016L1P2.3/A1139d038d137d236d335d434d533d632d721RS22RW24RP119d7RESPACK-8图2-5LCD的硬件连接(六)驱动电路系统使用的是直流马达,包含周围磁场、电刷、整流子等元件,电刷和整流子將外部所供应的直流电源,持续地供应给转子的线圈,並适时地改变电流的方向,使转子能以同一方向持续旋转。直流马达的优点有速度调整容易

10、,启动转矩较大等,但是电刷与整流子保养维修不易。图2-6为硬件连接图。AT89C51+88.8图2-6驱动电路图中三极管采用的是2N3903,用于放大电流。基极接P1.5口,用于控制输出信号。集电极按电源正极,发射极接马达正极。三极管2N3903三极管最基本的作用是放大作用,它可以把微弱的电信号变成一定强度的信号,当然这种转换仍然遵循能量守恒,它只是把电源的能量转换成信号的能量罢了。三极管有一个重要参数就是电流放大系数0。当三极管的基极上加一个微小的电流时,在集电极上可以得到一个是注入电流0倍的电流,即集电极电流。集电极电流随基极电流的变化而变化,并且基极电流很小的变化可以引起集电极电流很大的

11、变化,这就是三极管在此处的作用。用于P1.5口输出的微弱信号经过放大,输出到马达中,这样就可以很好的控制马达了。(七)报警电路系统采用的报警器件是二极管,用引脚P1.7控制。如图2-7所示LED-BLUE丨7pig®LPAT89C51图2-7报警电路二极管和普通扬声器相比,最重要一个特点是只要按照极性要求加上合适的直流电压,就可以发出固有频率的声音,因此使用起来比扬声器简单。三、系统软件的设计一个应用系统要完成各项功能,首先必须有较完善的硬件做保证。同时还必须得到相应设计合理的软件的支持,尤其是微机应用高速发展的今天,许多由硬件完成的工作,都可通过软件编程而代替。甚至有些必须采用很复

12、杂的硬件电路才能完成的工作,用软件编和有时会变得很简单。因此充分利用其内部丰富的硬件资源和软件资源。程序设计语言有三种:机器语言、汇编语言、高级语言。本系统运用的是高级语言所编写,也就是C语言。从软件的功能不同可分为四大类:一是检测软件,它是用来检测温度。二是显示部分,用来显示所检测到的温度。三是调控部分,用来控制马达的转速。四是当温度大于25°C,二极管发出报警信号。每一个执行软件也就是一个小的功能执行模块。这里将各执行模块一一列出,并为每一个执行模块进行功能定义。下图为软件设计流程图(程序见附录)。四、总结通过这次对水族箱温度自动控制的设计与制作,让我自主完成了一个完整的设计,虽

13、然这次的设计做的温度显示以及马达的控制都相对比较简单,但是也给将来进入硬件开发有了一个起点的基础。在这次设计的过程,刚开始的时候,真的有点不知所措,因为学习完单片机已有数日,以及微机原理课程,一些知识已忘记。画电路原理图,一开始就觉得有点烦,因为protues软件安装的版本较低,做起来非常的费时又费力,一些芯片,还不可以仿真。画电路图,自己学习捍接板,开始第一个板,没有捍成功,研究数日,后来才发现是一些线路捍接不良导致电路连接出现错误。后来重新开始动工,才捍成功。常常有解决不了的问题,就上网查询,或者阅览资料书。虽此项工作枯燥无味,但可缎练其意志,耐性,坚韧。因为常会碰到很难解决的问题。所以要

14、坚持不懈。这个程序的软件程序都是使用C语言编写的,毕竟使用汇编对于我们来说难度都是比较大啊。这次设计是一个学习新知识、巩固加深所学课本理论知识的过程,它培养了我们综合运用知识的能力,独立思考和解决问题的能力。它不仅加深了我对单片机技术课程的理解,还让我感受到了电子设计的乐趣。对我来说,这次毕业设计是非常有意义的。本系统使用的温度控制器结构简单、测温准确,具有一定的实际应用价值。该智能温度控制器只是DS18B20在温度控制领域的一个简单实例,还是许多需要完善的地方,例如可以将测得的温度通过单片机与通讯模块相连接,以手机短消息的方式发送给用户,使用户能够随时对温度进行监控。还可以增加对湿度的自主控

15、制。此外,还能广泛地应用于其他一些工业生产领域。测温控温系统得到快速的发展,国外的测量控制系统已经成熟,产品也较多。近两年,国内也出现了许多高精度的温度控制产品,但相对于用户来说,价格还是偏高。而由于竞争越来越激烈,现在企业发展的趋势是如何最有效的提高生产效率,降低生产成本。寻求性能可靠、价格低廉,应用广泛的元器件是生产过程的首先要考虑的问题。参考文献1 谢自美,尹仕,肖看,赵云娣,罗杰电子线路综合设计M.武汉:华中科技大学出版社,2007.2 杨旭方.单片机控制与应用实训教程M.北京:电子工业出版社,2010.5.夏继强.单片机应用设计培训教程M.北京:北京航空航天大学出版社,2008.4

16、高峰.单片机微型计算机与接口技术M.北京:科学出版社.20035 李广弟,朱月秀,王秀山.单片机基础M.北京:北京航空航天大学出版社,2001.7.6 胡汉才.单片机原理及其接口技术M.北京:清华大学出版社,20047求是科技.单片机典型模块设计实例导航M.北京:人民邮电出版社,2004王化详,张淑英.传感器原理M天津:天津大学出版社,2002.59王港元.电工电子实践指导M江西:江西科学技术出版社,2005.610杨素行著.模拟电子技术基础(第二版)M.北京:高等教育出版社,2006.11陈静.单片机应用系统中的编程语言J.淮北职业技术学院学报.2009.8(1):43-44.12仝庆华.基

17、于Proteus单片机虚拟实验室J.山西大同大学学报(自然科学版).2009.25(2):23-25.13包敬海,侯昭武,吴国辉.基于AT89C51单片机设计智能锅炉控制系统J.北京中国科技信息.200914周红丽,张天开等.基于单片机的九路温度监控系统J.青岛:微计算机信息.2008.15刘华东,张亚华.单片机原理与应用(第二版)M.北京:电子工业出版社.2006:1-5.致谢毕业设计完成了,在这个过程中我学到了很多东西。首先我要感谢我的导师何子轩老师,他在我完成论文的过程中,给予了我很大的帮助。从毕业设计选题到设计完成,何老师给予了我耐心的指导与细心关怀。此外,此系统能顺利完成,也得到了寝

18、室的朋友的帮忙。有些我不了解的知识,在她们悉心指导下,得已解决。在此,我深表感谢。最后要感谢的是我的父母,他们让培养了我在遇到困难前,不倒下。让我在漫长的人生旅途是使心灵有虔敬的归依。在未来的日子里,我会更加努力工作和做一名优秀的人。不辜负父母对我的期望。我一定会好好的孝敬和报答他们!附录A:*名称:基本单片机AT89C51的水族箱温度自控系统*/#includevat89c51.h>#include"stdio.h"#include<math.h>#includevintrins.h>#include"lcd1602.h"#de

19、fineucharunsignedchar#defineuintunsignedint;/*定义端口*/#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*/sbitDQ=PM3;dsl8b20端口sbitFan=P1A5;/风扇端口sbitTru=P1A

20、7;喇叭的端口sfrdataled=0x80;显示数据端口/#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*/*全局变量*/#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#

21、J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*/uinttemp,i,TempH;ucharflag_get,count,num,minute,second,x;longstr6;/#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J

22、*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*/*函数声明*/#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*

23、#J*#J*/voiddelay1(ucharMS);unsignedintReadTemperature(void);voidInit_DS18B20(void);unsignedcharReadOneChar(void);voidWriteOneChar(unsignedchardat);voiddelay(unsignedinti);/#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J

24、*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*/*/*延时函数声明/#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*/voidmDelay(unsignedc

25、harj)unsignedinti;for(;j>O;j-)for(i=0;iv125;i+);/#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*/*主函数*/#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#

26、J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*/main()unsignedcharTempH,TempL;TMODI=0x01;定时器设置THO=Oxef;TLO=OxfO;IE=0x82;TRO=1;P2=0x00;count=0;InitLcd();mDelay(20);while(1)Fan=1;mDelay(10);Tru=

27、1;mDelay(10);if(TempH>20)&&(TempHv=25)Fan=0;mDelay(10);if(TempH>25)产生报警信号Tru=0;mDelay(10);Fan=0;mDelay(150);for(i=1;iv5;i+)Temi=stri;disp();strO=TempH/1OO;/十位温度str1=(TempH%1OO)/1O;十位温度str2=(TempH%100)%10;/个位温度,带小数点str3=TempL;if(flag_get=1)定时读取当前温度temp=ReadTemperature();if(temp&0x80

28、00)一str0=0x40;负号标志temp=temp;/取反加1temp+=1;elsestrO=O;TempH=temp>>4;TempL=temp&0xOF;TempL=TempL*6/10;小、数近似处理flag_get=0;/#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#

29、J*#J*#J*#J*#J*#J*#J*#J*#J*/*定时器中断*/voidtim(void)interrupt1using1/中断,用于温度检测间隔TH0=0xef;定时器重装值TL0=0xf0;num+;if(num=50)num=0;flag_get=1;/标志位有效second+;if(second>=60)second=0;/*延时函数*/#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*

30、#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*/voiddelay(unsignedinti)延时函数while(i_);/#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*

31、#J*#J*#J*#J*#J*/*初始化*/#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*/voidInit_DS18B20(void)unsignedcharx=0;DQ=1;DQ复位delay(8);稍做延时DQ=0;单片机将DQ拉低delay(

32、80);/精确延时大于480usDQ=1;拉高总线delay(lO);x=DQ;稍做延时后如果x=0则初始化成功x=1则初始化失败delay(5);/*读一个字节*/#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*/unsignedcharReadOn

33、eChar(void)unsignedchari=0;unsignedchardat=0;for(i=8;i>0;i_)DQ=0;/给脉冲信号dat>>=1;DQ=1;/给脉冲信号if(DQ)datl=0x80;delay(5);return(dat);/#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#

34、J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*/*写一个字节*/#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*/voidWriteOneChar(unsignedchardat)unsignedchari=0;for(i=8;

35、i>0;i-)DQ=0;DQ=dat&0x01;delay(5);DQ=1;dat>>=1;delay(5);/#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*/*读取温度*/#J*#J*#J*#J*#J*#J*#J*#J*#

36、J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*/unsignedintReadTemperature(void)unsignedchara=0;unsignedintb=0;unsignedintt=0;Init_DS18B20();WriteOneChar(OxCC);/跳过读序号列号的操作Wri

37、teOneChar(Ox44);/启动温度转换delay(200);Init_DS18B20();WriteOneChar(OxCC);跳过读序号列号的操作WriteOneChar(OxBE);读取温度寄存器等(共可读9个寄存器)前两个就是温度a=ReadOneChar();低位b=ReadOneChar();高位b<<=8;t=a+b;return(t);附录B#includevat89c51.h>#includevstdio.h>#includevintrins.h>sbitRS=P2A0;/Pin4sbitRW=P2A1;/Pin5sbitE=P2A2;/P

38、in6#defineDataP0数据端口unsignedcharTem5;unsignedcharSecondLine="unsignedcharFirstLine="unsignedchartime="/#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J

39、*#J*#J*#J*#J*#J*/*函数声明*/#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*#J*/voidDelayUs(unsignedcharus)/delayusunsignedcharuscnt;uscnt=us>>l;/*Crystalfrequencyin12MHz*/while(-uscnt);voidDelayMs(unsignedcharms)/delayMswhile(-ms)DelayUs(250);DelayUs(250);DelayUs(250);DelayUs(250);voidWriteCommand(unsignedcharc

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论