基于单片机温度控制系统设计的电源设计部分_课程设计任务书(26页).docx
-基于单片机温度控制系统设计的电源设计部分_课程设计任务书-第 23 页课程设计任务书学 院专 业学生姓名班级学号课程设计题目基于单片机温度控制系统设计-电源设计实践教学要求与任务:1) 构成单片机温度控制系统2) 电源硬件设计3) 仿真分析4) 线路版设计5) 实验调试6) THFCS-1现场总线控制系统实验7) 撰写实验报告工作计划与进度安排:1) 第12天,查阅文献,构成单片机温度控制系统2) 第3天,电源硬件设计3) 第4天,仿真分析4) 第5天,线路版设计5) 第6天,实验调试6) 第79天,THFCS-1现场总线控制系统实验7) 第10天,撰写实验报告指导教师: 201 年 月 日专业负责人:201 年 月 日学院教学副院长:201 年 月 日摘 要温度控制系统广泛应用于工业控制领域,如钢铁厂、化工厂、火电厂等锅炉的温度控制系统,电焊机的温度控制系统等。温度控制系统在国内各行各业的应用虽然己经十分广泛,但从国内生产的温度控制器来讲,总体发展水平仍然不高,同日本、美国、德国等先进国家相比,仍然有着较大的差距。成熟的温控产品主要以“点位”控制及常规的PID控制器为主,它们只能适应一般温度系统控制,而用于较高控制场合的智能化、自适应控制仪表,国内技术还不十分成熟,形成商品化并广泛应用的控制仪表较少.随着我国经济的发展及加入WTO,我国政府及企业对此都非常重视,对相关企业资源进行了重组,相继建立了一些国家,企业的研发中心,开展创新性研究,使我国仪表工业得到了迅速的发展。音频放大电路主要以单相桥式整流及三端集成稳压器为主。完成将输入220v,50Hz的市电,输出为稳定的±5V的直流电。通过软件Proteus完成基本的电路原理图并进行防真和调试,使其满足基本设计要求。在构建好电路的每一个环节后要对±5V简易直流稳压电源进行仿真分析。目前,温度控制器产品从模拟、集成温度控制器发展到智能数码温度控制器。智能温控器(数字温控器)是微电子技术、计算机技术和自动测试技术的结合,特点是能输出温度数据及相关的温度控制量,适配各种控制器,并且它是在硬件的基础上通过软件来实现控制功能的,其智能化程度也取决于软件的开发水平,现阶段正朝着高精度高质量的方向发展,相信以我国的实力,温控技术在不久的将来一定会为于世界前列。关键词:温度控制系统, Proteus, PID, 直流稳压电源目录1引言32 5V电源电路设计 42.1变压器部分设计 42.2单项桥式整流电路设计 42.3滤波电路设计 52.4三端稳压器MC7805设计 62.4.1 7805概述 62.4.2 基本特征 62.4.3基本参数 72.5 电源5V总体设计 73对稳压电源的要求及稳压电源的技术指标 83.1 稳压直流源设计 83.2 控制要求 93.2.1稳定性好 93.2.2 输出电阻小 93.2.3输出电压纹波小 93.2.4电压温度系数小 103.3 5V稳压电源的proteus仿真图 104温度控制的总体设计和思路 114.1温度控制方框图 114.2 AT89S52单片机的结构114.3温度传感器的选择 124.4 温度采集电路 134.5 数码管温度显示电路 144.6温度控制电路 144.7 数码管动态显示 154.8 DS18B20初始化 164.9系统流程图 175调试 186 结束语 197参考文献 20附录 211引言二十一世纪是科技高速发展的信息时代,电子技术、微型单片机技术的应用更是空前广泛,伴随着科学技术和生产的不断发展,需要对各种参数进行温度测量。因此温度一词在生产生活之中出现的频率日益增多,与之相对应的,温度控制和测量也成为了生活生产中频繁使用的词语,同时它们在各行各业中也发挥着重要的作用。如在日趋发达的工业之中,利用测量与控制温度来保证生产的正常运行。在农业中,用于保证蔬菜大棚的恒温保产等。温度是表征物体冷热程度的物理量,温度测量测试工农业生产过程中一个很重要而普遍的参数。温度的测量及控制对保证产品质量、提高生产效率、节约能源、生产安全、促进国民经济的发展起到非常重要的作用。由于温度测量的普遍性,温度传感器的数量在各种传感器中居首位。而且随着科学技术和生产的不断发展,温度传感器的种类还是在不断增加丰富来满足生产生活中的需要。在单片机温度测量系统中的关键是测量温度、控制温度和保持温度,温度测量是工业对象中主要的被控参数之一。因此,单片机温度测量则是对温度进行有效的测量,并且能够在工业生产中得到了广泛的应用,尤其在电力工程、化工生产、机械制造、冶金工业等工业领域中,担负着重要的测量任务。在日常生活中,也可广泛适用于地热、空调器、电加热器等各种家庭温室测量及工业设备温度测量场合。但温度是一个模拟量,如果采用适当的技术和元件,将模拟的温度量转化为数字量虽不困难,但电路较复杂,成本较高。2 5V电源电路设计现代社会要求制造业对产品温度需求的高精度反应,生产出高精度、安全、低成本和高质量的产品。本设计是要设计一个+5V直流电源供电,这里没有直接的+5V电压,而直流电源的输入电压为220V的电网电压,在正常情况下,这一电网电压是远远的高于本设计所需的电压值,因而需要先使用变压器,将220V的电网电压降低后,再进行下一阶段的处理。2.1变压器部分设计变压器是这一部分电源电路起始部分,将220V的电网电压转变为本设计所需的较低的电压,就可以进行下一阶段的整流部分。一般规定V1为变压器的高压侧,V2为变压器的低压侧,V1侧的线圈要比V2侧的线圈要多,这样就可以将220V的电网电压降低,如图1所示: 图1.变压器2.2单项桥式整流电路设计单相桥式整流电路,就是将交流电网电压转换为所需电压,整流电路由四只整流二极管组成。下面简单介绍一下单相桥式整流电路的工作原理,为简便起见,这里所选的二极管都是理想的二极管,二极管正向导通时电阻为零,反向导通时电阻大无穷。在v2的正半周,电流从变压器副边线圈的上端流出,经过二极管D1,再由二极管D4流回变压器,所以D1、D4正向导通,D2、D3反向截止,产生一个极性为上正下负的输出电压。在v2的负半周,其极性正好相反,电流从变压器副边线圈的下端流出,经过二极管D2,再由二极管D3流回变压器,所以D1、D4反向截止,D2、D3正向导通。桥式整流电路利用了二极管的单向导电性,利用四个二极管,是它们交替导通,从而负载上始终可以得到一个单方向的脉动电压。单相桥式整流电路如图2所示:图2.单项桥式整流电路2.3滤波电路设计本设计的滤波电路采用的是电解电容和二极管并联方式滤波,简单的讲就是电容两端电压升高时,电容充电,电压降低时,电容放电,让电压降低时的坡度变得平缓,从而起到滤波的作用。这里选用电解电容是因为电解电容单位体积的电容量非常大,价格比其他种类相比具有相当大的优势,因为其组成材料都是普通的工业材料,比如铝等等。电解电容并联二极管,有效防止了电压反相。滤波电路如图3所示:图3. 滤波电路整流电路中的电容越大越好,可以减小电路中的脉动。但并不是电容越大电流就越大,要是需要大电流的话,可以在稳压电路的基础上加扩流电路2.4三端稳压器MC7805设计三端稳压器MC78M05CT将输出电压稳定在+5V上,三端稳压器如图4所示:图4.三端稳压器2.4.1 7805概述7805是我们最常用到的稳压芯片了,它的使用方便,用很简单的电路即可以输入一个直流稳压电源,它的输出电压为5v。它有很多的系列如ka7805,ads7805,cw7805等,性能有微小的差别,最常用是lm7805,下图为其结构见图: 图5.7805引脚图其中1接整流器输出的+电压,2为公共地(也就是负极),3就是我们需要的正5V输出电压了。2.4.2 基本特征:输出电流可达1.5A ,不需外接补偿元件 内含限流保护电流,防止负载短路烧毁元件 内含结温过热保护电路,防止结温过热烧毁器件 内含功耗限制电路,防止烧毁输出驱动器晶体管2.4.3基本参数:输出电压:4.75-5.25V; 纹波抑制比:78dB; 静态电流:4.2-8mA; 输出电阻:17m;输出噪音电压:40uV; 输出电压温度系数-1.1mV/°C;2.5 电源5V总体设计电源模块为系统板上其它模块提供5V电源,电源输入有两种方式,一种为交直流电源从电源插座输入,输入的电压要求,直流输入应大于7.5V,交流输入应大于5V,通过7805三端稳压器得到5V的直流电源供给系统其它模块工作,另一种为从USB接口获取5V电源,只要用相应配套的USB线从电脑主机获取5V直流电源,在电源模块中加有保护电路,即电路中有短路,不会对7805三端稳压器及电脑主机电源有损害。其电路原理图如图6所示图 6 电源设计图3对稳压电源的要求及稳压电源的技术指标3.1 稳压直流源设计稳定直流源设计的一般思路是让输入电压先通过电压变压器,再通过整流网络,然后经过滤波网络最后经过稳压网络。方案1.我们可以采用以桥式整理电路实现整流的目的,以大电容作为滤波电路,然后接负载。但是这样做有以下不足之处,如负载的影响很大,电压不可调以及没有保护电路等一下列问题。我们采用某些芯片,可以解决以上的问题。方案2.以全波整流电路作为整流网络,以极性电容作为滤波网络,采用固定式三端集成稳压电路7805和7905设计制作连续可调的双极型直流稳压电源。如下图所示,220V(幅值311V)50Hz市电经变压器220:25输出两组独立的25V交流,经桥堆整流、大电容滤波后分别经过集成稳压块LM7805C与LM7905C作用得到±5V的直流输出。稳压电源一般由变压器、整流器和稳压器三大部分组成,如图7所示。图7直流电源系统方框图电源变压器:将电网提供的220V交流电压转换为各种电路设备所需的交流电压。整流电路:利用单向导电器件将交流电转换成脉动直流电路。滤波电路:利用储能元件(电感或电容)把脉动直流电转换成比较平坦的直流电。稳压电路:利用电路的调整作用使输出电压稳定的过程称为稳压。3.2 控制要求 3.2.1稳定性好当输入电压Usr(整流、滤波的输出电压)在规定范围内变动时,输出电压Usc的变化应该很小一般要求 。由于输入电压变化而引起输出电压变化的程度,称为稳定度指标,常用稳压系数S 来表示:S的大小,反映一个稳压电源克服输入电压变化的能力。在同样的输入电压变化条件下,S越小,输出电压的变化越小,电源的稳定度越高。通常S约为。3.2.2 输出电阻小负载变化时(从空载到满载),输出电压Usc,应基本保持不变。稳压电源这方面的性能可用输出电阻表征。输出电阻(又叫等效内阻)用rn 表示,它等于输出电压变化量和负载电流变化量之比。rn 反映负载变动时,输出电压维持恒定的能力,rn 越小,则Ifz 变化时输出电压的变化也越小。性能优良的稳压电源,输出电阻可小到1欧,甚至001欧。3.2.3输出电压纹波小所谓纹波电压,是指输出电压中50赫或100赫的交流分量,通常用有效值或峰值表示。经过稳压作用,降低的倍数反比于稳压系数S 。3.2.4电压温度系数小当环境温度变化时,会引起输出电压的漂移。良好的稳压电源,应在环境温度变化时,有效地抑制输出电压的漂移,保持输出电压稳定,输出电压的漂移用温度系数KT来表示: 3.3 5V稳压电源的proteus仿真图图8 稳压电源仿真图输入电容C1、C2用于抑制纹波电压,输出电容C3、C4用于消振,缓冲冲击性负载,保证电路工作稳定。同时由于输出电容C3、C4的存在,容易发生电容放电而损坏稳压器,RV1和RV2是滑动变阻器,可以调节输出的电压。R1和R2是限流电阻,防止线路电流太大。4温度控制的总体设计和思路4.1温度控制方框图单片机温度控制系统采用的装置有单片机、温度传感器和温度调节设备组成起结构硬件结构图所示。数据显示温度采集AT89S52单片机温度控制键盘图9温度控制系统硬件结构图4.2 AT89S52单片机的结构AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 AT89S52具有以下标准功能: 8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。 AT89S52的结构如图3.1所示。由于它的广泛使用使得市面价格较8155、8255、8279要低,所以说用它是很经济的.该芯片具有如下功能:有1个专用的键盘/显示接口;有1个全双工异步串行通信接口;有2个16位定时/计数器。这样,1个89S52,承担了3个专用接口芯片的工作;不仅使成本大大下降,而且优化了硬件结构和软件设计,给用户带来许多方便。89S52有40个引脚,有32个输入端口(I/O),有2个读写口线,可以反复插除。所以可以降低成本。 4.3温度传感器的选择DS18B20原理与特性本系统采用了DS18B20单总线可编程温度传感器,来实现对温度的采集和转换,大大简化了电路的复杂度,以及算法的要求。首先先来介绍一下DS18B20这块传感器的特性及其功能: DSl8B20的管脚及特点 DS18B20可编程温度传感器有3个管脚。内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。图10 DS18B20的外形及管脚图GND为接地线,DQ为数据输入输出接口,通过一个较弱的上拉电阻与单片机相连。VDD为电源接口,既可由数据线提供电源,又可由外部提供电源,范围3O55 V。本文使用外部电源供电。主要特点有: 1. 用户可自设定报警上下限温度值。 2. 不需要外部组件,能测量55+125 范围内的温度。 3. 10 +85 范围内的测温准确度为±05 。 4. 通过编程可实现9l2位的数字读数方式,可在至多750 ms内将温度转换成12 位的数字,测温分辨率可达00625 。 5. 独特的单总线接口方式,与微处理器连接时仅需要一条线即可实现与微处理器双向通讯。6. 测量结果直接输出数字温度信号,以"一线总线"串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力。7. 负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。8. DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温。4.4 温度采集电路数据采集电路如图5.1所示, 由温度传感器DS18B20采集被控对象的实时温度,提供给AT89S52的P3.1口作为数据输入。在本次设计中我们所控的对象为所处室温。当然作为改进我们可以把传感器与电路板分离,由数据线相连进行通讯,便于测量多种对象。图11单片机2051与温度传感器DS18B20的连接图4.5 数码管温度显示电路数码管是一种半导体发光器件,其基本单元是发光二极管。数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。4.6温度控制电路温度控制分为高、低温控制。设计所要达到的效果就是,我们给单片机设置一个固定的温度范围,当温度传感器测量的温度高于我们设置的最高数值时,这时单片机指令控制P3.2口产生一个高电平信号送给固态继电器,是继电器的产开开关闭合,使开关打开通电。控制一个降温装置的开启(本设计中考虑到成本和技术问题,采用电风扇进行降温控制)。相反,当温度传感器测量的温度低于设置的最低数值的时候,这时单片机又控制P3.3口产生一个高电平送给继电器,使开关打开从而控制升问装置进行加热(本系统采用电热丝进行加热)。通过一个升温和一个降温装置,就能实现温度的调节。只要通过程序,将我们所要达到的温度控制在一个恒温状态下。控制电路的原理图如5.7所示,继电器的正极接电源电压,负极接三极管的集电极,之所以采用三极管,就是继电器一般是需要驱动电压的。而单片机的管脚不能提供最后高的电压,这样就会导致即使单片机送出了高电平也无法将继电器开关打开。当接上三极管后就能将输入信号的发送到继电器当中,驱动开关使温度调节器改变温度。图12温度控制电路4.7 数码管动态显示单片机AT89S52输出8个高低电平信号每个数码管的8个段分别连接P0.0-P0.7口上当某个数码管的公共端为“0”时,那么这个数码管被选中,这时此数码管的哪段为”1“则哪段就被点亮初学者可以利用本实验板自带的仿真器功能来单步执行,来观察数码管的工作原理,由于I/O资源有限,一个51单片机只有32个I/O所以只能将8个数码管以动态扫描的方式来显示,何为动态扫描呢? 动态扫描的连接方式是将8个数码管的8个段用相同的I/O来控制,即第一个数码管的”a“段由P0.0控制第二个数码管的”a“段也是由P0.0来控制的而8个数码管的公共端则是由不同的I/O来控制,即第一个数码管的公共端由P2.4控制而第二个数码管的公共端有P2.5控制 动态扫描的控制原理是:将第一个数码管要显示的内容显示出来,然后立刻将第二个数码管的内容显示出来,一次把第8个数码管的内容显示出来由于单片机的工作速度非常快,所以当显示第8个数码管的时候第一个数码管的内容还没有完全消失,这时立刻重复上面的过程,就实现了数码管的。数码关分共阳极数码管,还有就是共阴极数码管,我们就采用共阴来使用。单片机各个口的电压输出的都为高电平。共阴就通过控制阳极,即可控制LED显示。4.8 DS18B20初始化DS18B20的一线工作协议流程是:初始化ROM操作指令存储器操作指令数据传输。其工作时序包括初始化时序、写时序和读时序。故主机控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500微秒,然后释放,DS18B20收到信号后等待1660微秒左右,后发出60240微秒的存在低脉冲,主CPU收到此信号表示复位成功。DS18B20的单线协议和命令DS18B20有严格的通信协议来保证各位数据的传输的正确性和完整性主机操作单线器件DS18B20必须遵循下面的顺序.1.初始化单线总线上的所有操作均从初始化开始。初始化过程如下:主机通过拉低单线480us以上,产生复位脉冲,然后释放该线,进入Rx接收模式主机释放总线时,会产生一个上升沿。单线期间DS18B20检测到改上升沿后,延时15-60us,通过拉低总线60-240us来产生应答脉冲。主机棘手到从机的应答脉冲后,说明有单线器件在线。2.ROM操作命令一旦总线主机检测到应答脉冲,便可以发起ROM操作命令。工有5位ROM操作命令。3.内存操作命令在成功执行了ROM操作命令之后,才可以使用内存操作命令。主机可以提供6种内存操作命令。4.数据处理DS18B20要有严格的时序来保证数据的完整性。在单线DQ上,存在复位脉冲、应答脉冲、写“0”、写“1”、读“0”和读“1”几种信号类型。其中,出来映带脉冲之外,均由主机产生。数据位的读和写则是通过使用读、写时隙实现的。4.9系统流程图系统流程图如图所示:开始初始化启动18B20P3.3高电平升温P3.2高电平降温读温度计算温度显示温度?下限?上限结束图13系统流程图5调试本电路简单高效,失真小,输出稳定,达到了设计目的和要求,但在电路的整个设计过程中存在很多问题,在使用电容时更要小心因为电容的串联与并联正好与电阻的相反。如果不多加小心也许会走很多弯路。检查稳压电源的设计电路,确定其准确无误,输入220V电源,检测输出电源大小是否接近5V电源。将电路联接好,在运算放大器同相输入端加入一010v的直流电压,观察输出稳压值的变化情况。将上述各部分电路调节器试好后,将整个系统连接起来进行通调。检查整体电路有无错误,检查无误后接通电源,运行正常停止运行,关闭计算机关闭电源,结束。6 结束语通过本次课程设计,使我加深了对Proteus、单片机AT89C51、稳压直流电源设计的理解,还有经过在网上查找资料以及到图书馆学习,也使我更好的理解和认识了关于电源设计原理和实际中的应用过程。在课程设计过程中我们互相讨论,请教老师,在不断的调试各自的程序中,发现了很多各自的问题并进行研究解决。我们试着用不同的设计方法来实现我们的课题,这样不仅可以拓宽我们的思路,还可以使我们的设计成果更加严谨。本次课程设计可以为我以后工作打下一定的基础,感谢本次课程设计,感谢我的指导老师!通过各方面的努力,最终设计出了自己较为满意的系统。虽然这两周过得很辛苦,但是自己付出的努力得到了回报,那种成就感是任何事物都无法代替的。还有在设计过程中,我们积累的经验,对我们以后的学习和工作会有莫大的帮助。7参考文献1 集成电路音响放大器 徐治邦 编著 新时代出版社 1984.12 模拟电子技术基础 主编:童诗白 华成英 高等教育出版社 2000.33 基于PROTEUS的电路及单片机系统设计与仿真 周润景 张丽娜 编著 北京航空航天大学出版社 2006.05.014 实用电路300例 武义伟 汪河 编著 电子工业出版社 1983.95 实用电路手册 杨宝清 编著 机械工业出版社 1985.66 高稳定度电源 倪本来 编著 人民邮电出版社 1982.127 模拟集成电路设计 David A.Johns Ken Martin著 机械工业出版社2005.118 新编线性直流稳压电源 王增福 李昶 魏永明 编著 电子工业出版社 2004.11附录#include<reg52.h>typedef unsigned char uchar;typedef unsigned int uint;sbit DQ=P30;sbit DLE=P31; /段选sbit WLE=P32; /位选uchar code tablewei8=0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80; /*数码管07*/uchar code tableduan=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;/*数字09*/uchar temp; uint bai,shi,ge,t;/*数码管延时函数*/void delay(uint z)uint x,y;for(x=z;x>0;x-)for(y=110;y>0;y-);/*DS18B20延时函数*/void delayDS18B20(uint i)while(i-);/*DS18b20初始化函数*/void Init_DS18B20() unsigned char x=0; DQ = 1; /DQ复位 delayDS18B20(8); /稍做延时 DQ = 0; /单片机将DQ拉低 delayDS18B20(80); /精确延时 大于 480us DQ = 1; /拉高总线 delayDS18B20(14); x=DQ; /稍做延时后 如果x=0则初始化成功 x=1则初始化失败 delayDS18B20(20);/*DS18b20读一个字节*/ uchar ReadByteDS18B20()uint i=0;uchar date=0;for(i=0;i<8;i+) DQ=0; / 给脉冲信号 date>>=1; DQ=1; / 给脉冲信号 if(DQ) date|=0x80; delayDS18B20(4); return(date);/*ds18b20写一个字节*/ void WriteByteDS18B20(uchar date) uint i=0; for (i=0;i<8;i+) DQ=0; DQ=date&0x01; delayDS18B20(5); DQ=1; date>>=1;/*读取ds18b20当前温度*/void Get_Temperature() uchar a,b;Init_DS18B20();WriteByteDS18B20(0xcc); / 跳过读序号列号的操作WriteByteDS18B20(0x44); / 启动温度转换 delayDS18B20(100); /这个延时非常重要,也是一个非常坑爹的延时Init_DS18B20();WriteByteDS18B20(0xcc); /跳过读序号列号的操作WriteByteDS18B20(0xbe); /读取温度寄存器等(共可读9个寄存器) 前两个就是温度delayDS18B20(100);a=ReadByteDS18B20(); /读取温度值低位b=ReadByteDS18B20(); /读取温度值高位if(!(b&0xf8) /*二进制中的前面五位是符号位,如果测得温度大于0,这五位是0*/temp=(a>>4)|(b<<4); /正数的算法t=0;elsetemp=(a>>4)|(b<<4)+1; /负数的算法,测到的数值取反后加1t=1;void main()while(1)Get_Temperature();bai=temp/100;shi=temp%100/10;ge=temp%10;if(t=0) /如果是正数WLE=0;P1=tablewei4;WLE=1;DLE=0;P2=tableduanbai;DLE=1;delay(5);WLE=0;P1=tablewei5;WLE=1;DLE=0;P2=tableduanshi;DLE=1;delay(5);WLE=0;P1=tablewei6;WLE=1;DLE=0;P2=tableduange-0x80; /加小数点DLE=1;delay(5);WLE=0;P1=tablewei7;WLE=1;DLE=0;P2=0xc0;DLE=1;delay(5);if(t=1)/如果是负数WLE=0;P1=tablewei3;WLE=1;DLE=0;P2=0xbf;DLE=1;delay(5);WLE=0;P1=tablewei4;WLE=1;DLE=0;P2=tableduanbai;DLE=1;delay(5);WLE=0;P1=tablewei5;WLE=1;DLE=0;P2=tableduanshi;DLE=1;delay(5);WLE=0;P1=tablewei6;WLE=1;DLE=0;P2=tableduange-0x80;/加小数点DLE=1;delay(5);WLE=0;P1=tablewei7;WLE=1;DLE=0;P2=0xc0;DLE=1;delay(5);