温度实测显示系统_第1页
温度实测显示系统_第2页
温度实测显示系统_第3页
温度实测显示系统_第4页
温度实测显示系统_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

湖南文理学院课程设计报告课程名称:《专业课程设计》课题名称:温度实测显示系统系部:电气与信息工程学院专业班级:学生姓名:指导教师:完成时间:报告成绩:评阅意见:评阅教师评阅意见:评阅教师日期目录摘要 IAbstract I第一章概述 11.1设计要求及原理 11.2设计作用与目的 11.3系统设计方案 11.4所用设备及软件 2第二章温度实测显示系统硬件设计 32.1单片机最小系统设计 32.2LED数码管显示部分 32.3DS18B20温度采集部分 42.4系统电源部分 5第三章温度实测显示系统软件设计 63.1温度实测系统主程序设计 63.2系统初始化程序 63.3温度读取子程序设计 63.3.1温度结果读取函数 73.3.2DS18B20初始化函数 83.3.3DS18B20配置程序 83.4数码管显示子程序 9第四章温度实测显示系统调试 104.1硬件仿真 104.2Proteus软件仿真 114.2.1电源软件仿真 114.2.2温度实测系统软件仿真 11总结 13参考文献 14致谢 15附录1温度实测显示系统硬件电路图 16附录2温度实测显示系统程序源代码 17PAGEI摘要温度是最基本的环境参数之一,温度在生物制药、食品加工、造纸等行业至关重要。以单片机80C51最小系统、数字温度传感器DS18B20、LED数码管显示电路、工作电源等构造了硬件电路的设计,其中微处理器基本单元实现数据的处理,数字温度传感器采集环境温度参数,三个LED数码管支持三位的温度数值显示。借助KeilC51编写了程序源代码,包含有主函数、温度读取函数,LED显示函数等。由于DS18B20数字温度传感器的温度测量范围从-55℃~+125℃,测量精度为±关键词:微处理器;数字式温度传感器;LED数码管;温度;AbstractThetemperatureisthemostbasiconeofenvironmentalparameters,temperatureinbiologicalmedicine,foodprocessing,paperandotherindustriesiscrucial.SCM80C51minimumsystem,digitaltemperaturesensorDS18B20,LEDdigitaltubedisplaycircuit,aworkingpowersupplystructuredesignofhardwarecircuit,whereinthemicroprocessorbasicunittoachievedataprocessing,digitaltemperaturesensortocollecttheenvironmentaltemperature,threeLEDdigitaltubesupportthreebitnumericaldisplaytemperature.WiththeaidoftheKeilC51programsourcecode,containsthemainfunction,thetemperaturereadingfunction,LEDdisplayfunction.AsofDS18B20digitaltemperaturesensormeasuringtemperaturerangefrom-55℃~+125℃,themeasuringaccuracyis±0.5℃,thetemperaturemeasuringdisplaysystemdesign,Keywords:microprocessor;digitaltemperaturesensor;LEDdigitaltube;temperature;温度实测显示系统PAGE10第一章概述温度实测显示系统在现实生活中有着广泛的应用,而且由于精度和工作环境等要求,采用的设计方案和使用的温度传感器也不一样。1.1设计要求及原理设计要求:1、能够掌握DS18B20温度传感器的使用。2、能够把实测的温度在LED上显示。3、能够完成对所在环境温度的实时显示。设计原理:此系统是对一个DS18B20与80C51的应用,通过对DS18B20的复位、送数、读数、补偿的相关操作,就可以得到达到精度要求的温度值。在该系统中由于要实时监控,因此,可采用定时器中断1来实现。1.2设计作用与目的温度是最基本的环境参数,人们生活与温湿度息息相关。在工农业生产、气象、环保、国防、科研等部门,经常需要对环境温度进行测量和控制。准确测量温度在生物制药、食品加工、造纸等行业更是至关重要的。因此研究温度的测量方法具有重要的意义。利用单片机80C51和温度传感器DS18B20设计的温度实测显示体统,能够测量-55~+125℃之间的温度值,利用LED数码管直接显示,误差在±0.5微处理器显示驱动显示模块温度采集电源模块微处理器显示驱动显示模块温度采集电源模块图1温度实测系统总体结构框图复位电路温度实测系统主要由电源模块、复位电路模块、微处理器模块、温度采集模块、显示驱动模块以及显示模块六个部分组成,如图1所示。其中电源模块主要给系统提供稳定的+5V电压,是整个系统的能量源。复位电路模块是当微处理器程序跑飞或者出现异常现象时使用的,每一次复位都意味着程序的重新开始。微处理器模块是这个系统的核心,肩负着非常重要的职责,包括温度传感器的读写控制、温度数据处理及显示模块控制等功能。如果说电源模块是人的食物,那么微处理器模块就是人的大脑。温度采集模块的主要功能是进行环境温度数据的采集,将非电信号转换为电信号,方便微处理器的读取。由于微处理器的驱动能力不足以驱动显示模块,所以需要显示驱动模块对显示模块进行驱动,显示驱动模块的主要作用是增大驱动电流。显示模块的主要功能是显示实时的环境温度数据,让人们能更加直观地观察到环境的温度。1.4所用设备及软件温度实测显示系统是通过硬件与软件组成的,如表1所示,硬件主要包括一些必须的电子元器件80C51单片机、DS18B20等等,单片微机的软件就是烧写进去的程序,程序的编写需要一定的开发环境,包括计算机系统、编译软件和烧写软件。表1.温度实测显示系统所用设备及软件所用设备名称数量80C51单片机1DS18B20温度传感器1共阴极LED数码管3显示驱动模块74HC573112M晶振15V稳压芯片78051整流二极管4变压器1按键、电容、电阻、导线若干所用软件系统软件:MicrosoftWindowsXP应用软件:KeiluVision3、Protel99SE、STC_ISP_V479、Proteus7.8

第二章温度实测显示系统硬件设计硬件是一个电子产品的躯干,硬件电路的设计对电子产品的性能起着极其重要的作用,如果要设计出一个好的电子产品,首先要选择符合产品要求的元器件,然后对这些元器件进行组合设计。包括微处理器基本单元、人机接口电路和温湿度检测单元等等。2.1单片机最小系统设计图2单片机最小系统原理图本次硬件设计的核心就是80C51,其它部件都是围绕它设计的。单片机的复位有两种:一种是上电复位,一种是按键复位。图中用的就是按键复位与上电复位相结合的复位电路,当按键按下时单片机的RST口从低电平变为高电平,从而进入复位状态。当按键松开后,VCC给电容C1充电,从而把RST口拉至高电平,单片机进入工作状态。只要把图中的RESET按键和电阻去掉就成了仅上电复位了。图2单片机最小系统原理图80C51中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端[1]。这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器构成自激振荡电路,对外接电容C2、C3虽然没有十分严格的要求,但电容容量的大小会轻微影响震荡频率的高低、振荡器工作的稳定性、起振的难易程度及温度稳定性,如果使用石英晶体,推荐电容使用30pF10pF,而如果使用陶瓷谐振器,建议选择40pF10pF,如图2所示,这里用到的是12M的石英晶体振荡器和两个30pF的电容。2.2LED数码管显示部分LED数码管也称半导体数码管,是目前数字电路中最常用的显示器件。它是以发光二极管作段并按共阴极方式或共阳极方式连接后封装而成的。LED数码管型号较多,规格尺寸也各有异,显示颜色有红、绿、橙等。LED数码管的主要特点如下:能在低电压、小电流条件下驱动发光,能与CMOS、TTL电路兼容。发光响应时间极短(小于0.1µs),高频特性好,单色性好,亮度高。体积小,重量轻,抗干扰性能好。寿命长,使用寿命在10万小时以上,甚至可达100万小时,成本低。图3LED数码管显示部分原理图因此它被广泛用作数字仪器仪表、数控装置、计算机的数显器件。图3LED数码管显示部分原理图数码管显示电路是温度实测系统非常重要的一部分,通常将其归类为人机接口电路。图3为LED数码管显示原理图,74HC573锁存器的作用通常是用于数据的锁存,以实现微机I/O口的分时复用。但由于此温度实测系统并不需要占用很多I/O口,反而由于微机I/O口的驱动电流并不足以直接驱动数码管发光,于是74HC573锁存器的作用相当于电流放大器,放大I/O口电流,增强I/O口的驱动能力。LED3是三个共阴极LED数码管,其中a、b、c、d、e、f、g、dp为段选端,高电平有效,1、2、3为位选端,低电平有效。电阻R4~R11为限流电阻,限制通过数码管的电流,防止因电流过大烧毁数码管。2.3DS18B20温度采集部分图4DS18B20温度采集部分原理图为了使DS18B20能完成准确的温度变换,当温度变换发生时,I/O线上必须提供足够大的功率。因为DS18B20的工作电流高达1mA。有两种方法确保DS18B20在其有效变换期内得到足够的电源电流。第一种方法是使用寄生电源,在发生温度变换时,在I/O线上提供一强的上拉。第二种方法是使用外部电源,本设计使用的是外部电源供电。如图4所示。图4DS18B20温度采集部分原理图温度实测系统中直接与温度相关的就是DS18B20温度采集部分,微处理器的P2.3引脚与数字式温度传感器DS18B20的数字输入输出引脚DQ相连接,微处理器就是通过这种方式与温度传感器进行通讯的。电阻R3是上拉电阻,由于DS18B20属于单总线器件,当总线空闲时,温度传感器DQ引脚被上拉为高电平。2.4系统电源部分数字温度传感器DS18B20的工作电压为5V,单片机80C51的工作电压一般选取5V,图55V直流稳压电源电路所以整个系统均采用5V电源供电。直流稳压电源的设计一般包括这么几个部分,变压、整流、滤波、稳压。图5所示电路为输出电压+5V、输出电流1.5A的稳压电源。它由电源变压器T1,桥式整流电路D1,滤波电容C4、C6,防止自激电容C5、C7和一只固定式三端稳压器(7805)极为方便地搭建而成。220V交流市电通过电源变压器变换成交流电压,再经过桥式整流电路D1和滤波电容C4的整流和滤波,在固定式三端稳压器LM7805的Vin和GND两端形成一个并不十分稳定的直流电压(该电压常常会因为市电电压的波动或负载的变化等原因而发生变化)。此直流电压通过LM7805的稳压和C6的滤波便在稳压电源的输出端产生了精度高、稳定度好的直流输出电压。本稳压电源可作为TTL电路或单片机电路的电源。三端稳压器是一种标准化、系列化的通用线性稳压电源集成电路、以其体积小、成本低、性能好、工作可靠性高、使用简捷方便等特点,成为目前稳压电源中应用最为广泛的一种单片机式集成稳压器件。图55V直流稳压电源电路至此,温度实测显示系统的硬件设计全部完成。

第三章温度实测显示系统软件设计软件是硬件的灵魂,有了好的硬件设计,也需配上好的软件设计,软件对于微处理器来说起着至关重要的作用。温度实测系统的软件部分主要包括:主程序、系统初始化程序、温度读取子程序、数码管显示子程序等等。3.1温度实测系统主程序设计温度实测系统主程序流程图如图6所示,主程序主要的功能为不停调用温度读取函数读取出实时的环境温度,然后调用显示函数将实时温度数据送往显示电路以数字的形式显示出来。所以主程序设计为一个死循环,不停读取温度,显示温度。开始温度读取温度显示开始温度读取温度显示图6温度实测系统主程序流程图系统初始化开始设定定时器1计数器初始值中断允许寄存器使能图7系统初始化程序流程图配置定时器方式控制寄存器定时器1运行启动返回3.2系统初始化程序系统初始化程序流程图如图7所示,首先配置定时/计数器控制寄存器,设定定时/计数器的工作方式、功能选择与门控[2]。然后需要设定定时/计数器1计数器初始值,TL1为其低字节,TH1为高字节,此处设定定时时间为10ms,达到定时时间时计数变量TIM加1,此功能在中断函数中实现。由于定时器1中断需要使能总中断允许位和定时/计数器1中断允许位才能实现其中断功能,所以要将中断允许寄存器使能。最后启动定时器1,定时器便开始定时,程序返回。3.3温度读取子程序设计温度读取函数相对来说比较简单,主要是判断是否TIM=100,即是否到达1s时,当TIM=100时,将TIM计数清零,调用温度结果读取函数,然后程序返回。当计数变量TIM不等于100时,程序直接返回。温度读取程序流程图如图8所示。开始开始TIM=100?返回NTIM清零图8温度读取程序流程图Y温度结果读取程序3.3.1温度结果读取函数温度结果读取程序流程图如图9所示,程序开始,先读取器件DS18B20的ID。然后对DS18B20进行配置,具体配置见DS18B20配置程序流程图。进行配置之后需要对DS18B20进行初始化,然后发送skipROM命令,在单点总线系统中,此命令通过允许总线主机不提供64位ROM编码而访问存储器操作来节省时间,使得主机可以直接发送温度转换命令。再度对DS18B20进行初始化,然后发送skipROM命令,直接发送读温度命令,获取到温度数据后,对温度数据进行CRC校验,程序返回。开始读器件ID配置DS18B20初始化DS18B20开始读器件ID配置DS18B20初始化DS18B20skiprom温度转换初始化DS18B20温度值获取CRC校验返回图9温度结果读取程序流程图开始DQ=1DQ=0延时530µs延时100µsDQ=1DQ==0?Flag=1Flag=0延时100µsDQ=1返回图10DS18B20初始化程序流程图NY3.3.2DS18B20初始化函数图10为DS18B20初始化程序流程图,DS18B20要求严格的协议来确保数据的完整性,协议由几种单线上信号类别型组成:复位脉冲,存在脉冲,写0,写1,读0和读1,所有这些信号,除了存在脉冲之外,均由总线主机产生[3]。开始与DS18B20的任何通讯所需的初始化系列如图11所示。后继以存在脉冲的复位脉冲表示DS18B20已经准备好发送或接收给正确的ROM命令和存贮器操作命令的数据。总线主机发送一复位脉冲(最短时间为480µs的低电平信号)。接着总线主机便释放此线并进入接收方式。单线总线经过10k的上拉电阻被拉至高电平状态。在检测到I/O引脚上的上升沿之后,DS18B20等待15~60µs并且接着发送存在脉冲(60~240µs的低电平信号)[3]。复位脉冲复位脉冲(发送)480~960µsDS18B20等待15~60µs存在脉冲60µs~240µs主机接收480µsVCCGND线段类型说明总线主机低电平有效DS18B20低电平有效主机与DS18B20均低电平有效上拉电阻上拉图11初始化过程“复位和存在脉冲”时序图3.3.3DS18B20配置程序在使用DS18B20之前,必须对DS18B20进行配置,图12是DS18B20配置程序流程图。配置DS18B20主要是对DS18B20的报警触发值上下限(TH、TL)以及温度采集分辨率进行配置。在DS18B20完成温度变换之后,温度值与贮存在TH和TL内的触发值相比较。如果温度测量的结果高于TH或低于TL,那么器件内告警标志将置位。每次温度测量更新此标志。只要告警标志置位,DS18B20将对告警搜索命令作出响应,这使得多个DS18B20可以进行同时测量。开始分位显示开始分位显示数据分离返回图13数码管显示程序流程图开始初始化DS18B20skiprom写高速暂存设定报警上限设定报警下限设置温度采集精度初始化DS18B20skiprom保存设定值初始化DS18B20skiprom回调设定值返回图12DS18B20配置程序流程图3.4数码管显示子程序数码管显示程序虽然相对较简单,数码管显示温度值是不可或缺的一部分,没有了数码管显示,温度实测系统便是毫无意义的。由于一个数码管一次只能显示一位数据,所以必须将温度值的个位、十位和百位分离出来。分离出的各位,分别送往显示各位的数码管,将实时温度在数码管上显示出来。数码管显示程序流程图如图13所示。除了上述的函数之外,还有延时函数、读写函数等,这些函数比较简单,将在源程序中体现。

第四章温度实测显示系统调试实践是检验真理的唯一标准,任何一个系统的设计都是为了在实践中得到应用。为了更好的确保温度实测显示系统的稳定性、实用性,故选择了硬件仿真和软件仿真两种仿真方式进行调试。4.1硬件仿真程序通过KeiluVision3编译成功后生成hex文件,将hex文件通过STC_ISP_V479烧写进80C51中,如图14所示,可见烧写成功。图14温度实测显示系统程序烧写图14温度实测显示系统程序烧写图烧写成功之后可见单片机开发板的数码管显示温度值,如图15所示,此时室内温度为13℃。图15单片机开发板仿真图图15单片机开发板仿真图4.2Proteus软件仿真4.2.1电源软件仿真在做电源软件仿真的时候需要设定一些参数,交流电压源设置为220V,50HZ(如图17所示),变压器的变比设为44:1(如图18所示)。图16所示为电源的软件仿真图,可见最后输出电压为+5.01V(如图19所示),符合设计要求。图16电源软件仿真图图16电源软件仿真图图17交流电源设置图图18变压器变比设置图图19电压表示数图图17交流电源设置图图18变压器变比设置图图19电压表示数图4.2.2温度实测系统软件仿真按电路原理图连接好线路之后,将生成的hex文件载入80C51单片机(如图21所示),点击开始仿真按钮即可进行仿真,图20是正在仿真的电路图,显示实时温度为18℃。图20温度实测显示系统软件仿真图图21图20温度实测显示系统软件仿真图图2180C51程序载入图在仿真过程中可以通过调节软件中的DS18B20的数值来模拟环境温度的变化,图21便是DS18B20分别设置为25℃和18℃时,数码管显示的数值,可见,数码管显示是跟随DS18B20的变化而改变的。图21不同温度值的对比显示图图21不同温度值的对比显示图通过硬件调试和软件调试之后,结果证明此温度实测显示体统是能稳定运行的,可以将其应用到实际生活生产中。

总结温度实测显示系统的设计主要包括这么几个方面:调研、硬件设计、软件设计、系统调试等。调研是为了对现阶段温度实测显示系统的设计水平有一个基本的了解,便于进行硬件设计、软件设计与系统调试。硬件设计又包括微处理器基本应用单元、数码管显示电路、温度检测电路与工作电源等四部分。微处理器基本应用单元是核心,担负着采集、处理、显示数据等工作。数码管显示电路提供了人与机器的一个交互接口,是人能直接了解温度参数的重要桥梁。温度检测单元的主要功能是对环境温度数据进行采集。工作电源为温度实测显示系统提供稳定的5V直流电源。软件部分借助KeilC51编写了程序源代码,包含有主函数、系统初始化函数、温度读取函数,LED显示函数等。主函数调用其它函数协调工作,系统初始化函数用于设置定时器中断的各项参数,温度读取函数读取温湿度数据,LED显示函数用于显示实测温度数据。系统调试是用Proteus完成的,在软件中找出相应的元器件按原理图连接好,然后下载源程序进行仿真,同时也在单片机开发板上进行了硬件调试。至此,此次温度实测显示系统设计基本完成。温度实测显示系统能实时通过LED实时显示出环境温湿度。此次设计虽然基本完成,但还有很多的不足。首先的设计中P0口没有上拉电阻,导致仿真的时候数码管没有显示,其原因是P0口的驱动能力不足,导致不能驱动数码管。其次由于是本次设计的要求明确,设计此系统的硬件已经给出,所以在设计中并没有出现多种方案的论证。同时在程序中的一个延时程序导致整个系统处于一直延时的状态,其原因是变量的设置问题,将char型变量改为int型变量之后,程序正常。本次设计也暴露出了自己在专业知识方面的欠缺,很多东西都是通过查询资料得到的,所以今后在专业知识方面也有待加强。总之,此次设计是有意义的,有收获的。

参考文献[1]曾屹.单片机原理与应用[M].长沙:中南大学出版社,2009.[2]张一斌,余建坤.单片机原理课程设计[M].长沙:中南大学出版社,2009.[3]DS18B20DateSheet.

致谢转眼大三就要过完了,我的课程设计也接近了尾声。首先我要感谢我的父母,感谢他们给予我生命,把我养大成人,教我说话,教我走路,教我为人处世的道理。父母总是把最好的东西留给自己的子女,把最苦最累的活自己扛着。他们为我操碎了心,好不容易把我养大成人,我衷心地感谢他们给我提供的一切。其次我要感谢学校,湖南文理学院是一所全日制本科高等院校、历史悠久、文化底蕴浓厚,是求学的理想之地。厚德载物,正是在这么一所有着如此大的魅力的学校里我学到了知识,我认识了很多好朋友。陶冶了我的情操,文化气息熏染着我,教育气息鞭策着我,让我不断努力,不断进步,在学海中遨游,在书山上漫步。博学宏文,明理求真!正是在这么一个地方,才让我对自己的人生有了更多的自信。再次是电气与信息工程学院,我要感谢我的学院,学院管理有序,关心学生生活,学工办老师经常身入一线,到寝室与同学们交流。学院的读书活动更是开展的轰轰烈烈,不仅在学校取得了较大的轰动,在市里面也有着很大的影响,正是这种以兴趣为导向的读书活动,从兴趣出发,充分地发掘学生内在的潜质,使得学生学有所成。我也是深深感受到了这一股学习的热潮,才对学习充满了兴趣。我还要感谢我的指导老师梅英老师,梅英老师是一名优秀的大学教师,有着过硬的专业知识,是学生眼中的好榜样,做人做事就应该像梅英老师一样细腻、踏实、负责。此次课程设计中,梅英老师给了我很大的帮助,首先是文档的结构方面,经过了梅英老师的悉心指导,设计思路也因为梅英老师变得清晰明朗。所以我要再次感谢梅英老师的付出,梅英老师辛苦了!最后我还要感谢我的同学,同时他们也是我的好伙伴,也感谢他们在此次课程设计中精神上对我的支持,谢谢!附录1温度实测显示系统硬件电路图附录2温度实测显示系统程序源代码#include<reg51.h>sbitW1=P2^7; //数码管第一位位选端sbitW2=P2^6; //数码管第二位位选端sbitW3=P2^5; //数码管第三位位选端sbitL=P2^4; //锁存器控制端sbitDQ=P2^3; //DS18B20通讯引脚inttemp;bitflag;unsignedintidataTemperature;unsignedcharidatatemp_buff[9];//存储读取的字节,readscratchpad为9字节,readromID为8字节unsignedcharidataid_buff[8];unsignedcharidata*p,TIM;unsignedcharidatacrc_data;unsignedcharcodeDisp_Tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};unsignedlongLedOut[5],LedNumVal;#defineNOP()_nop_()/*定义空指令*/#define_NOP()_nop_()/*定义空指令*//*CRC校验表*/unsignedcharcodeCrcTable[256]={0,94,188,226,97,63,221,131,194,156,126,32,163,253,31,65,157,195,33,127,252,162,64,30,95,1,227,189,62,96,130,220,35,125,159,193,66,28,254,160,225,191,93,3,128,222,60,98,190,224,2,92,223,129,99,61,124,34,192,158,29,67,161,255,70,24,250,164,39,121,155,197,132,218,56,102,229,187,89,7,219,133,103,57,186,228,6,88,25,71,165,251,120,38,196,154,101,59,217,135,4,90,184,230,167,249,27,69,198,152,122,36,248,166,68,26,153,199,37,123,58,100,134,216,91,5,231,185,140,210,48,110,237,179,81,15,78,16,242,172,47,113,147,205,17,79,173,243,112,46,204,146,211,141,111,49,178,236,14,80,175,241,19,77,206,144,114,44,109,51,209,143,12,82,176,238,50,108,142,208,83,13,239,177,240,174,76,18,145,207,45,115,202,148,118,40,171,245,23,73,8,86,180,234,105,55,213,139,87,9,235,181,54,104,138,212,149,203,41,119,244,170,72,22,233,183,85,11,136,214,52,106,43,117,151,201,74,20,246,168,116,42,200,150,21,75,169,247,182,232,10,84,215,137,107,53};voidGettemp();voidTemperatuerResult();voidReadID();voidConfig18b20();voidWriteByte(unsignedcharidatawr);unsignedcharReadByte();voidread_bytes(unsignedcharidataj);unsignedcharCRC(unsignedcharj);voidTempDelay(unsignedcharidataus);voidGemTemp(void);voidInit18b20();voidDisplay();voiddelay(unsignedint);voidsystem_Ini();voidmain(){system_Ini(); while(1) { Gettemp(); //获取温度 Display();//显示温度 }}/*系统初始化函数*/voidsystem_Ini(){TMOD|=0x11;TH1=0xD8;//10TL1=0xF0; IE=0x8A; TR1=1;}/*温度读取函数*/voidGettemp(){if(TIM==100)//每隔1000ms读取温度{ TIM=0; TemperatuerResult();}}/*温度结果读取函数*/voidTemperatuerResult(){ p=id_buff; ReadID(); Config18b20(); Init18b20(); WriteByte(0xcc);//skiprom WriteByte(0x44);//温度转换 Init18b20(); WriteByte(0xcc);//skiprom WriteByte(0xbe);//读温度 p=temp_buff; GemTemp();}/*读器件ID*/voidReadID()//读取器件ID{ Init18b20(); WriteByte(0x33);//读rom read_bytes(8);}/*DS18B20配置函数*/voidConfig18b20()//重新配置报警限定值和分辨率{Init18b20();WriteByte(0xcc);//skipromWriteByte(0x4e);//写高速暂存WriteByte(0x19);//上限WriteByte(0x1a);//下限WriteByte(0x7f);//设置为11位精度(0.125)Init18b20();WriteByte(0xcc);//skipromWriteByte(0x48);//保存设定值Init18b20();WriteByte(0xcc);//skipromWriteByte(0xb8);//回调设定值}/*DS18B20初始化函数*/voidInit18b20(){ DQ=1;_nop_(); DQ=0; TempDelay(80);//延时530uS//80 _nop_(); DQ=1; TempDelay(14);//延时100uS//14 _nop_(); _nop_(); _nop_(); if(DQ==0) flag=1;//连接1820成功! else flag=0;//连接182

温馨提示

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

评论

0/150

提交评论