can总线温度控制_第1页
can总线温度控制_第2页
can总线温度控制_第3页
can总线温度控制_第4页
can总线温度控制_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

摘要PAGEI祝你成功本系统以AT89S52单片机为核心部件,外加温度采集电路、及显示电路和越限报警等电路。采用单总线型数字式的温度传感器DS18B20,使系统具有测温误差小、分辨率高、抗干扰能力强,动态显示的方式等特点。本设计既可以对当前温度进行检测又可以对温度进行数码显示,两位整数两位小数的显示方式具有更高的显示精度,若超越极限温度则触发蜂鸣器报警。利用功能强大的Keil和具有互动电路仿真的Proteus进行程序的编写和仿真。关键词:仿真温度检测报警DS18B20目录PAGEII目录第一章选题依据 11.1课题背景 11.2研究设计内容 2第二章温度检测系统的硬件设计 32.1电路总体原理框图 32.1.1AT89S52介绍 42.2DS18B20的特性 62.2.1DS18B20的外形和内部结构 62.2.2DS18B20的使用方法 72.3测温电路 82.4单片机复位电路 92.5LED显示电路 102.6报警电路 11第三章温度检测系统软件设计 123.1总流程图 123.2延时设计 133.3复位设计 143.4显示设计 14第四章系统仿真调试 164.1Proteus7.1 164.2Keiluvision2 174.3仿真结果分析 194.4硬件焊接及系统调试问题 204.5结论 22致谢 23参考文献 24附录 25第一章选题依据PAGE1第一章选题依据在科学技术突飞猛进的今天,温度检测、控制起不可忽视的作用。温度控制无论在医疗电子领域还是工业控制领域应用都非常广泛,如在冶金工业、化工生产、电力工程、造纸行业、机械制造和食品加工等诸多领域中,人们都需要对各类加热炉、热处理炉、反应炉和锅炉中的温度进行检测和控制,医疗电子领域的生化分析仪等,内部都涉及到温度控制。本课题它完成了从温度的采集、转换、显示以及报警的一系列任务。本文介绍了以AT89S52单片机为核心的温度控制系统的工作原理和设计方法。温度信号由温度芯片DS18B20采集,并以数字信号的方式传送给单片机,单片机进行温度的判断是否超越所设置的温度极限,若低于或高于所设温度,单片机将发出信号使蜂鸣器自动报警。文中对每个部分功能、实现过程作了详细介绍。整个系统的核心是进行温度监控报警,完成了课题所有要求。1.1课题背景自动控制系统在各个领域尤其是工业领域中有着及其广泛的应用,温度控制是控制系统中最为常见的控制类型之一。随着单片机技术的飞速发展,通过单片机对被控对象进行控制日益成为今后自动控制领域的一个重要发展方向。采用单片机AT89S52来对温度进行控制,不仅具有控制方便、组态简单和灵活性大等优点,而且可以大幅度提高被控温度的技术指标,从而能够大大提高产品的质量和数量。PAGE31.2研究设计内容本系统采用的新型智能化温度传感器DS18B20,能以数字形式直接输出被测点温度值,具有测温误差小、分辨率高、抗干扰能力强、成本低,是研制和开发具有高性价比的新一代温度检测系统的核心器件。本系统设计了一个由数字化测温元件构成的温度检测报警系统,本系统包括了温度检测、温度显示、温度越限报警等部分。本系统主要运用了单片机AT89S52,高性能CMOS8位单片机,片内含8Kbytes的可反复擦写的。兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元等强大功能。也采用了新型传感器DS18B20,利用它的体积小,高精度、强大的读写功能等特点进行温度的采集。用PNP型三极管做驱动,采用4位共阴LED动态显示方式。主要采用了手动复位操作。第二章温度检测系统的硬件设计第二章温度检测系统的硬件设计2.1电路总体原理框图温度测量及显示、报警系统控制的总体结构如图2-1所示。系统主要包括现场温度采集、温度显示、电路控制输出、与报警装置和系统核心AT89S52单片机作为微处理器。图2-1电路总体原理框图温度采集电路以数字量形式将现场温度传至单片机。单片机结合现场温度与用户设定的目标温度,进行判断是否超越极限以此控制蜂鸣器自动报警。PAGE222.1.1AT89S52介绍1、AT89S52性质AT89S52单片机是美国ATMEL公司生产的AT89S52是一个低功耗,高性能CMOS8位单片机,片内含8kBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,功能强大的微型计算机的AT89S52可为许多嵌入式控制应用系统提供高性价比的解决方案。AT89S52具有如下特点:40个引脚,8kBytesFlash片内程序存储器256bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。AT89S52芯片有40条引脚,双列直插式封装引脚图如2-2图所示:2-2AT89S52引脚图Vss(20):接地。Vcc(40):电源+5V。PSEN(29):片外程序存储器选通信号,低电平有效。RST/VPD(9):复位信号输入端。AT89S52接能电源后,在时钟电路作用下,该脚上出现两个机器周期以上的高电平,使内部复位。第二功能是VPD,即备用电源输入端。ALE/PROG(30):地址锁存信号输出端。P0口(39—32):双向I/O口,既可作地址/数据总线口用,也可作普通I/O口用。P1口(1—8):准双向通用I/O口。P2口(21—28):准双向口,既可作地址总线口输出地址高8位,也可作普通I/O口用P3口(10—17):多用途口,既可做普通I/O口,也可按每位定义的第二功能操作。ALE/PROG(30):地址锁存信号输出端。主要功能特性:兼容MCS-51指令系统8k可反复擦写(>1000次)FlashROM32个双向I/O口4.5-5.5V工作电压时钟频率0-33MHz全双工UART串行中断口线256x8bit内部RAM2个外部中断源低功耗空闲和省电模式中断唤醒省电模式3级加密位看门狗(WDT)电路软件设置空闲和省电功能灵活的ISP字节和分页编程双数据寄存器指针2个16位可编程定时/计数器AT89S52共有4个(P0、P1、P2、P3口)8位并行I/O端口,共32个引脚。P0口双向I/O口,用于分时传送低8位地址和8位数据信号;P1、P2、P3口均为准双向I/O口;其中P2口还用于传送高8位地址信号;P3口每一引脚还具有特殊功能,用于特殊信号的输入输出和控制信号。AT89S52内部有一个可编程的、全双工的串行接口。它串行收发存储在特殊功能寄存器SFR的串行数据缓冲器SBUF中的数据。2.2DS18B20的特性适应电压范围更宽,电压范围:3.0~5.5V,在寄生电源方式下由数据线供电。独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温。DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内。温范围-55℃~+125℃,在-10~+85℃时精度为可编程的分辨率为9~12位,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在你750ms内把温度值转换为数字,速度更快。测量结果直接输出数字温度信号,以"一线总线"串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力。负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。2.2.1DS18B20的外形和内部结构DS18B20的外形结构及引脚排列图2-3DS18B20外形结构图DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。2.2.2DS18B20的使用方法DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。1、DS18B20的读时序DS18B20的读时序分为读0时序和读1时序两个过程。DS18B20的读时隙是从主机把单总线拉低之后,在15秒之内就得释放单总线,以让DS18B20把数据传输到单总线上。DS18B20在完成一个读时序过程,至少需要60us才能完成。图2-4DS18B20的读时序2、DS18B20的写时序DS18B20的写时序仍然分为写0时序和写1时序两个过程。DS18B20写0时序和写1时序的要求不同,当要写0时序时,单总线要被拉低至少60us,保证DS18B20能够在15us到45us之间能够正确地采样IO总线上的“0”电平,当要写1时序时,单总线被拉低之后,在15us之内就得释放单总线。图2-5DS18B20的写时序2.3测温电路DS18B20测温原理如图2-6所示。图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在-55℃所对应的一个基数值。计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0图2-6DS18B20测温原理框图DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码读数形式提供,以0.0625℃/LSB形式表达,其中S图2-7DS18B20温度值格式表这是12位转化后得到的12位数据,存储在18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。如+125℃的数字输出07D0H,+25.0625℃字输出为0191H,-25.0625℃的数字输出为FF6FH,-55℃的数字输出为FC90H。2.4单片机复位电路当单片机AT89S52的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,单片机就执行复位操作。如果RST持续为高电平,单片机就处于循环复位状态。根据应用的要求,复位操作通常有两种基本形式:上电复位和上电或开关复位。上电复位要求接通电源后,自动实现复位操作。常用的上电复位图如3-5中A图所示。图中电容C1和R1对电源+5V来说构成微分电路。上电后使RST持续一段时间的高电平。由于单片机内的等效电阻作用,不用图中电阻R1,也能达到上电复位的功能,如3-5图B所示。图2-8(A)上电复位图图2-8(B)上电复位电路上电或开关复位要求电源接通后,单片机自动复位,并且在单片机运行期间,用开关操作也能使单片机复位。常用的上电或开关复位电路如上图(B)所示。上电后,由于电容C3的充电和反相门的作用,使RST持续一段时间的高电平。当单片机已在运行当中时,按下复位键K后松开,也能使RST为一段时间的高电平,从而实现上电或开关复位的操作。根据实际操作的经验,下面给出这两种复位电路的电容、电阻参考值。上图(A)中:Cl=10-30uF,R1=1kO上图(B)中:C:=1uF,Rl=lkO,R2=10kO单片机复位后的状态:单片机的复位操作使单片机进入初始化状态,其中包括使程序计数器PC=0000H,这表明程序从0000H地址单元开始执行。单片机冷启动后,片内RAM为随机值,运行中的复位操作不改变片内RAM区中的内容,21个特殊功能寄存器复位后的状态为确定值,见下表。说明:表中符号*为随机状态;A=00H,表明累加器已被清零。表2-1PSW=00H,表明选寄存器0组为工作寄存器组;SP=07H,表明堆栈指针指向片内RAM07H字节单元,根据堆栈操作的先加后压法则,第一个被压入的内容写入到08H单元中。Po-P3=FFH,表明已向各端口线写入1,此时,各端口既可用于输入又可用于输出;IP=×××00000B,表明各个中断源处于低优先级;IE=0××00000B,表明各个中断均被关断;系统复位是任何微机系统执行的第一步,使整个控制芯片回到默认的硬件状态下。51单片机的复位是由RESET引脚来控制的,此引脚与高电平相接超过24个振荡周期后,51单片机即进入芯片内部复位状态,而且一直在此状态下等待,直到RESET引脚转为低电平后,才检查EA引脚是高电平或低电平,若为高电平则执行芯片内部的程序代码,若为低电平便会执行外部程序。2.5LED显示电路单片机I/O的应用最典型的是通过I/O口与LED数码管构成显示电路,我不采用LCD液晶显示器的主要原因是液晶显示,省电,常用于精密仪器仪表,而且编程复杂,而数码管显示,亮度高,成本低,编程简易,易操作。显示采用4位共阴LED动态显示方式,显示内容有温度值的十位、个位及小数点后两位。用P2口作为段控码输出,P1.0—P1.2作为位控码输出,用PNP型三极管做驱动。模块电路如下图图2-9显示接口电路工作原理:利用DS18B2O所测量到的温度经过转换,再将转换出来的温度输入LED使内部的二极2管发光,使我们能看到清晰的温度值。2.6报警电路此设计选择了蜂鸣器,因为是做设计,且比扬声器使用起来简单,只要按照极性要求加上合适的直流电压,就可以发出固有频率的声音,从经济性、电路结构、系统性等各方面考虑。当用户设定的目标温度达到时需用声音的形式提醒用户,此时蜂鸣器为断续的滴答滴答的叫声。在本系统中我们为用户设计了越限报警,当温度低于用户设置的目标温度20度或高于30度时蜂鸣器为连续不断的滴答滴答叫声。当单片机P1.7输出高电平时,三极管导通,蜂鸣器工作发出报警声。报警及指示灯电路如下图2-10示图2-10报警及指示灯电路图当温度在正常范围内显示绿灯,当温度低于设限温度时,显示红灯2亮,同时,蜂鸣器报警。当温度高于设限温度时,显示红灯3亮,同时,蜂鸣器报警。第三章温度检测系统软件设计第三章温度检测系统软件设计温度值处理是否超出上下限单片机发出温度转换命令DS18B20温度转换开始显示温度单片机读取温度正常指示灯亮“嘀嘀”报警是否达到报警温度“嘀嘀”报警NNYY3.1总流程图温度值处理是否超出上下限单片机发出温度转换命令DS18B20温度转换开始显示温度单片机读取温度正常指示灯亮“嘀嘀”报警是否达到报警温度“嘀嘀”报警NNYY图3-1总流程图主程序:voidmain(){ uchari; uchartemp; floatbackbit; ucharcounter; counter=5; sp=1; for(i=0;i<4;i++) dispbuf[i]=0; while(1) { //温度测量频率没有必要太高,太高反而影响数码显示 //所以用计数器加以控制 if(counter--==0) { readtemp(); counter=2; }//readtemp();//读18B20backbit=temper[0];//换成浮点数backbit=backbit*6.25;//乘以0.0625*100temp=backbit; //取低2位整数部分dispbuf[3]=temp%10;temp=temp/10;dispbuf[2]=temp%10;temp=temper[1]; //取整数部分dispbuf[1]=temp%10;temp=temp/10;dispbuf[0]=temp%10; saomiao(); }}3.2延时设计本系统选用的AT89S52单片机的工作频率为12MHZ。可以知道具体每条指令的周期数,这样就可以通过指令的执行条数来确定时间。具体的延时程序:voiddelay(uintz){ uintx,y; for(x=z;x>0;x--) for(y=110;y>0;y--);}本系统不仅对主函数进行了延时,还对DS18B20的操作进行了延时,以便我们能更容易看清楚所测温度的变化。对DS18B20的延时程序如下:voiddelay1(uintz){while(z--); }3.3复位设计本系统主要采用的是手动进行复位,在上电后使RST持续一段时间的高电平。就能使系统复位。其程序如下:voidreset(void){ucharx=0;DQ=1;delay1(8);//稍做延时DQ=0;delay1(80);//精确延时大于480usDQ=1;//拉高总线delay(14);x=DQ;delay1(20);}3.4显示设计本设计主要是采用了四位一体LED数码管,都对起进行了上拉,以增加数码管的亮度。其程序:voidsaomiao(){ P0=table[dispbuf[0]];//十位 P1=0xfe; delay(2); P1=0xff; P0=table1[dispbuf[1]];//个位 P1=0xfd; delay(2); P1=0xff; P0=table[dispbuf[2]];//十分位 P1=0xfb; delay(2); P1=0xff; P0=table[dispbuf[3]];//百分位 P1=0xf7; delay(2); P1=0xff;第四章系统仿真调试第四章系统仿真调试4.1Proteus7.1Proteus软件是来自英国Labcenterelectronics公司的EDA工具软件,Proteus软件有十多年的历史,在全球广泛使用,除了其具有和其它EDA工具一样的原理布图、PCB自动或人工布线及电路仿真的功能外,其革命性的功能是,他的电路仿真是互动的,针对微处理器的应用,还可以直接在基于原理图的虚拟原型上编程,并实现软件源码级的实时调试。Proteus与其它单片机仿真软件不同的是,它不仅能仿真单片机CPU

的工作情况,也能仿真单片机外围电路或没有单片机参与的其它电路的工作情况。因此在仿真和程序调试时,关心的不再是某些语句执行时单片机寄存器和存储器内容的改变,而是从工程的角度直接看程序运行和电路工作的过程和结果。Proteus的工作过程运行proteus的ISIS程序后,进入该仿真软件的主界面。Proteus

软件所提供的仪表资源,对于一个仿真软件或实验室,测试的仪器仪表的数量、类型和质量,是衡量实验室是否合格的一个关键因素。Proteus

软件所提供的调试手段,Proteus提供了比较丰富的测试信号用于电路的测试。图4-1Proteus的的主界面4.2Keiluvision2KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。在打开Keil主界面后,新建工程进入界面如下图:图4-2Keil主界面程序编译成功后,点击Optionsfortarget后再点击Output进入以下界面再点击GreateHEXFi:生成HEX文件。图4-3生成HEX文件界面4.3仿真结果分析图4-4系统温度正常情况图4-5系统温度低于20℃图4-6系统温度高于30℃说明:图4-1系统温度正常情况下的仿真图,此时,左边第一个发光二极管亮,蜂鸣器不报警,同时,LED数码管显示当前温度。图4-2系统温度低于20℃情况下的仿真图,此时,中间发光二极管亮,峰鸣器发出声音报警,LED数码管显示当前温度图4-3系统温度高于30℃情况下的仿真图,此时,右边第一个发光二极管亮,蜂鸣器发出声音报警,LED数码管显示当前4.4硬件焊接及系统调试问题在本次设计中,从设计的开始到结束这段历程中,也遇到了无数的困难,也让我对自己一次次的失去信心,碰到的问题有些看起来很简单,但做起来却特别难。比如在焊接一不小心把元件的方向接反或者是把元件的引脚接错,由于板子太小,这对我们的焊接技术也是一个很大的考验,在焊接的时候我也常常把几个引脚焊接在了一起,导致线路的短路,烧坏元件。在焊接时也常常忘记焊接一些非常重要的零件,在本次设计中电路刚开始工作,4位LED就冒烟,随着一声响就报废,原来没有对系统加限流电阻。在本次设计的焊接中也出现了一些非常简单而难以解决的问题,比如虚焊,本次设计在焊接AT89S52时,其接Vcc那个引脚的线时,没有接好,就导致整个系统不能工作,最初还以为是芯片坏了,就换了块,但还是不行,结果才发现引脚的线没有焊接好。在软件方面,经过无数次的更改,无数次的重新烧写程序,最终才完成一组完整的程序,在经历了千辛万苦才完成了本次设计。本次设计加强了我对C语言及Keil软件等的学习。让我对单片机的兴趣也更加浓厚,对我的学习生涯奠定了坚实基础。4.5结论现在无论是工业、医疗等许多行业对温度检测系统运用广泛,本设计主要是依靠新型DS18B20温度传感器对温度的采集以及AT89S52单片机、LED数码管、蜂鸣器完成了一个简单的温度控制自动报警系统。本设计充分采用了DS18B20的高精度、体积小、一线总线等特点和AT89S52单片机的强大功能以及使用蜂鸣器而不用扬声器,既节约了时间、经济成本,也减小了设计电路的复杂性。但本设计也有许多不足的地方,在做硬件时焊接技术还不够成熟,布线也不是很理想等。通过这次温度控制系统的设计,我也收获了许多,这以后使我对单片机更加感兴趣,也加强了我对C语言等的学习,使我的学习往前迈了一大步。致谢PAGE30致谢时光匆匆如流水,转眼便是大学毕业时节,春梦秋云,聚散真容易,在这美丽的季节,我在电脑上敲出了最后一个字,心中涌现的不是想象已久的欢欣,却是难以言喻的失落。是的,随着论文的终结,意味着我生命中最纯美的学生时代即将结束,尽管百般不舍,这一天终究会在熙熙攘攘的喧嚣中决绝的来临。三年寒窗,所收获的不仅仅是愈加丰厚的知识,更重要的是在阅读、实践中所培养的思维方式、表达能力和广阔视野。很庆幸这些年来我遇到了许多恩师益友,无论在学习上、生活上还是工作上都给予了我无私的帮助和热心的照顾,让我在诸多方面都有所成长。感恩之情难以用语言量度,谨以最朴实的话语致以最崇高的敬意。感谢我的恩师樊明哲老师。三年来,樊老师对我的学习和研究都非常严格,并给予了悉心的指导,使我受益菲浅。从恩师身上我体味到了丰富的学养、严谨的作风、求实的态度,勤奋的精神,这都成为了我不断前行的动力和标杆。感谢我的指导老师龙舰涵老师。龙老师常常在百忙之中抽空与我们聊天,指导我们的论文和工作。龙老师作为一个优秀传媒人的品质和热情深深的打动了我,其谆谆教诲也铭记于我心,对此我深深感激。同时还感谢三年来帮助和教育过我的张艳红老师、余道文老师、吴侃老师、唐玉彬老师、尹小田老师、朱斌老师、李涛老师、卓先德老师……一路走来,从你们的身上我收获无数,却无以回报,谨此一并表达我的谢意。还要感谢我的父母,给予我生命并竭尽全力给予了我接受教育的机会,养育之恩没齿难忘;感谢陪着我一起在走过大学生活的同学们,是你们让我学到了知识和友谊,无论在精神还是在物质上都给予我莫大的支持;感谢我的同窗好友,在我最困难的时候总能给予我安慰和鼓励,让我重拾信心。还有许多人,也许他们只是我生命中匆匆的过客,但他们对我的支持和帮助依然在我记忆中留底了深刻的印象。在此无法一一罗列,但对他们,我始终心怀感激。再次感谢我的老师、同学以及关心支持我的朋友们!最后,我以一句话结束我的论文,并以此作为未来乘风破浪的心灵脚注:使我们视而不见的光亮,对于我们就是黑暗。但我们清醒时,曙光才会破晓。来日方长,太阳只是颗启明星。参考文献参考文献[1]乐建波《温度控制系统》北京化学工业出版社。[2]张毅刚《新编MCS-51单片机应用设计》哈尔滨工业大学出版社2003版[3]李东升等《Protel99SE电路设计技术入门与应用》电子工业出版社[4]龚永彬采用单片机设计温湿度控制仪,今日电子,2002[5]KeilSoftwareCompany.Cx51CompilerUser’sGuide.2001[6]王为青、邱文勋.51单片机应用开发案例精选.人民邮电出版社,2007[7]李朝青.单片机原理与接口技术.北京航空航天大学出版社,200[8]邹逢兴.微型计算机原理与接口技术[M].长沙:国防科技大学出版社,[9]穆兰.单片微型计算机原理及接口技术[M].北京:机械工业出版社,[10]沈德金,陈粤初.接口电路与应用程序例[M].机械工业出版社,2003[11]刘祖润,胡俊达.[M].北京:航天航空大学出版社,1995[12]宋明刚.智能PID方法在高精度控温中的应用研究[J].水利电力机械,2001[13]罗鑫.微机在电阻炉自动控温中的应用[J].威谱机械,1994[14]沈协和.用单片微机构成的温控制器[J].仪表仪器,1998[15]吴期,俞亚珍.微机自动程序温度控制系统[J].水利电力机械,2003附录附录源程序代码//毕业设计温度检测系统//指导老师龙舰涵//姓名宗波#include<reg52.h>//===================宏定义==========================#defineucharunsignedchar#defineuintunsignedint//==================位定义===========================sbitDQ=P2^0;//18B20数据线引脚sbitsp=P2^1;//蜂鸣器端口sbitled1=P2^2;//指示灯端口sbitled2=P2^3;sbitled3=P2^4;//================全局变量定义=======================uchardispbuf[4];//显示缓冲区uchartemper[2];//存放温度的数组//==============定义数组============================ucharcodetable[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,};ucharcodetable1[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};//================延时函数===========================voiddelay(uintz){ uintx,y; for(x=z;x>0;x--) for(y=110;y>0;y--);}//==============小延时,用于对DS18B20的操作=============voiddelay1(uintz){while(z--); }//复位操作voidreset(void){ucharx=0;DQ=1;delay1(8);//稍做延时DQ=0;delay1(80);//精确延时大于480usDQ=1;//拉高总线delay(14);x=DQ;delay1(20);}/**********************从DS18B20读一字节***************/ucharreadbyte(void)//读1字节{uchari=0;uchardat=0;for(i=8;i>0;i--){DQ=0;dat>>=1;DQ=1;if(DQ)dat|=0x80;delay1(4);}return(dat);}/***********************向DS18B20写一字节***********************/voidwritebyte(unsignedchardat)//写1字节{uchari=0;for(i=8;i>0;i--){DQ=0;DQ=dat&0x01;delay1(5);DQ=1;dat>>=1;}delay1(4);}/***********************CPU读取温度值***************

温馨提示

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

评论

0/150

提交评论