基于单片机的智能温度控制系统毕业设计_第1页
基于单片机的智能温度控制系统毕业设计_第2页
基于单片机的智能温度控制系统毕业设计_第3页
基于单片机的智能温度控制系统毕业设计_第4页
基于单片机的智能温度控制系统毕业设计_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

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

文档简介

参考资料参考资料.参考资料参考资料.基于单片机的智能温度控制系统毕业设计绪论在工业生产中,电流、电压、温度、压力、流量、流速和开关量都是常用的主要被控参数。其中,温度控制也越来越重要。在工业生产的很多领域中,人们都需要对各类加热炉、热处理炉、反应炉和锅炉中的温度进行检测和控制。采用单片机对温度进行控制不仅具有控制方便、简单和灵活性大等优点,而且可以大幅度提高被控温度的技术指标,从而能够大大的提高产品的质量和数量。因此,单片机对温度的控制问题是一个工业生产中经常会遇到的控制问题。温度控制器的发展状况温度是表征物体冷热程度的物理量,是工业生产和日常生活中经常测量的物理量,也是人类研究最早测量方法最多的物理量之一。因而温度检测仪应用领域之广,使用数量之多,一直高居各类测量仪之首。近百年来,温度传感器的发展大致经历了以下三个阶段:传统的分立式温度传感器(含敏感元件);模拟集成温度传感器/控制器;智能温度传感器(即数字温度传感器)。a)分立式温度传感器传统的热电偶、热电阻、热敏电阻及半导体温度传感器,均属于分立式温度传感器,传感器本身就是一个完整的、独立的感温元件。此类传感器通常要配温度变送器,以获得标准的模拟量(电压或电流)输出信号。b)模拟集成温度传感器集成传感器是采用硅半导体集成工艺而制成的,因此亦称硅传感器或单片集成传感器。可完成温度测量及模拟信号输出功能的专用IC,它属于一种简单的集成温度传感器,适合远距离测量、控温,不需要进行非线性校准,典型产品有AD590AD592等。c)模拟集成温度控制器模拟集成温度控制器主要包括温控开关、可编程温度控制器,典型产品有 LM56AD2210楙口MAX6509d)智能温度传感器智能温度传感器(亦称数字温度传感器)是在20世纪90年代中期问世的。智能温度传感器是微电子技术、计算机技术和自动测试技术的结晶,它也是集成温度传感器领域中最具活力和发展前途的一种新产品。目前,国际上许多著名的集成电路生产厂已经开发出上百种智能温度传感器产品。课题研究必要性随着电子技术和微型计算机的迅速发展,微机测量和控制技术得到了迅速的发展和广泛的应用。单片机具有处理能强、运行速度快、功耗低等优点,应用在温度测量与控制方面,控制简单方便,测量围广,精度较高。温度是工业生产中常见并且十分重要的参数之一,特别是在冶金、石油、食品、印染等工厂中。由于不同的工艺所需的温度变化曲线各不相同,而现有的温度控制仪大多只能进行恒温控制。因此许多生产过程中加热、保温、降温以及自然降温等操作都是由人工操作的,这就不可避免地产生各种误差,进而影响产品质量,个别采用的温度自动控制系统由于造价较高、操作复杂等原因又限制了在中小企业的应用,因此研究和开发一种实用的温度控制系统成为当务之急。在工业生产过程中需要实时测量控制温度,尤其是在高危生产行业,如花炮生产,煤矿行业等。但依靠人工检测控制既浪费时间,物力,人力,又有一定的危险性,且数据也不准确,因此研究自动的温度测量控制方法和装置具有重要的意义。现代控制系统相对传统控制系统的优势传统的控制系统主要由测量电路和控制电路组成,所具备的功能较少,也比较弱,而且结构很复杂。计算机技术的迅速发展,使得传统的控制系统发生了根本性的变革,即采用微机作为控制系统的核心,代替传统的控制系统的传统的电子线路,从而成为新一代的微机化控制系统。将微机技术引入控制系统中,不仅可以解决传统控制系统不能解决的问题,而且还能简化电路、增加或增强功能、提高控制精度和可靠性,显著增强测控系统的自动化、智能化程度,而且可以缩短系统研制周期、降低成本、易于升级和维护。因此,现代控制系统设计,特别是高精度、高性能的控制系统,目前已很少不采用计算机技术的了。计算机技术的引入,可以为控制系统带来以下一些新特点和新功能:a)自动调零功能在每次采样前对传感器的输出值自动清零,从而大大降低因控制系统漂移变化造成的误差。b)数字滤波功能利用已算机软件对测量数据进行处理,可以抑制各种干扰和脉冲信号。c)数据处理功能利用计算机技术可以实现传统仪器无法实现的各种复杂的处理和运算功能。d)复杂控制规律利用计算机技术不仅可以实现经典的 PID控制,还可以实现各种复杂的控制规律,例如,自适应控制、模糊控制等。e)自我诊断功能采用计算机技术后,可对控制系统进行监测,一旦发现故障则立即进行报警,并可显示故障部位或可能的故障原因,对排除故障的方法进行提示。微机化的控制系统是以微机为核心、测量控制一体化的系统,这种系统对被控对象的控制是依据对被控对象的测量结果决定的。课题设计特点和应用领域课题采用的是单总线数字温度传感器DS18B20可直接将温度转换值以16位数字码的方式用行输出:将温度转化为数字编码只需1秒左右。而且它具有独特单线接口方式,即与微处理器接口时仅需占用1个I/O口;支持多节点;测温时无需任何外部元件,可以通过数据线直接供电,具有超低功耗工作方式。测温围为一55c〜+125C,测温度精度可达到0.0625C。由于传送的是串行放大器和A/D转换器可以统统被省却,因而这种测温方式大大提高了各种温度测控系统的可靠性,降低了成本,缩小了体积。具测温系统结构简单,硬件少,成本低,测温精度高,转换速度快,实用性高,应用围广泛,市场前景好,经济效益可观。系统可以应用于温度要求在一55C〜+125.9C之间的任何领域。比如:铁路,粮库,水果,蔬菜存储仓库的温度控制,以及多路温度测控仪,各种养殖场的温度控制监测。由于本系统的测温精度可达0.0625C,因而对于温度要求特别严格的环境来说,本系统是一个较为理想的监控系统。智能温度控制器的课题主要容课题的任务是应用单片机及DS18B2W总线器件设计一套温度检测系统,实现对温度的测量及显示,并通过按键人为设定温度上下限!而且在温度超上限价或下限量有控制功能,系统以高性能/价格比的89S52为核心,完成对数据的分析、处理、显示、温度上下限设置、超限自动控制,采用单线数字温度传感器DS18B2度完成对温度的采样和转换。由于课题是完成对温度的实时监测,因而系统的核心部分就是如何实现温度采集。系统采用的是美国 DALLAS公司继DS1820之后推出的一种改进型智能温度传感器DS18B2球完成这一任务的。DS18B2山传统的热敏电阻相比,它能够直接读出被测温度并且可根据实际要去通过简单的编程实现 9-12位的数字值读数方式,可分别在93.75ms和750ms完成9位和12位的数字量,并且从DS18B201出的信息或写入DS18B20的信息仅从一根口线,温度变换功率来源于数据总线,总线本身可以为所接的DS180B20供电,而无需外电源。DS18B20R在严格的时序控制下才能进行正常操作。对DS18B20勺操作包括初始化操作、读/写时间片。总线上的所有操作均从初始化开始,初始化或对 RAMROMS作。主CPU!过“时间片”来写入或读出DS18B20H勺数据。1S括说,主CP必过单线接口访问DS18B20勺工作流程为:对DS18B20a行初始化一ROMS作命令一存储器(包括RAM和EERAM1作命令一数据处理。主CPUtROMM乍完毕,即发出控制操作命令,使DS18B20完成温度测量并将测量结果存入高速暂存器中,然后单片机可读出此温度转换值,并随之进行数据处理、送显示等操作。2智能温度控制系统基本构成及工作原理系统的硬件构成课题设计的硬件部分由89S52单片机、DS18B2074LS1474LS273锁存器以及若干电容、7个发光二极管、4只数码管、5个按键、11.0592MHZ晶振组成。(结构如图2.1)图2.1系统设计结构图以下对各组成部件功能进行简单介绍:89S52单片机用于温度的采集,数据处理,存储温度上下限和超温控制。DS18B201单总线数字温度传感器,输出方式为串行单线输出,主要作用是把温度值以数字形式输出和存储转换精度控制字。第三章将作出详细介绍,此处不做过多赘述。74LS02或非门,用于选择锁存器(与写信号或非)。74LS14施密特触发器,用于键盘消抖。74LS273锁存器。用锁存显示位、段码以及指示信号。按键用于输入和查看温度上下限,使单片机复位,每隔2小时发送0.5秒的启动电机的正脉冲。晶振是为单片机提供工作脉冲。数码管用于显示温度值。发光二极管用于上下限溢出报警,温度超限报警及控制,设置上 /下限指示,正常工作指示。各功能对应的指示灯设置如表2.1:表2.1指示灯设置功能 第几灯点亮显示温度第1灯0x02显示卜限温度1、20x03设下限温度标志位2、70x41设下限温贤十位2、60x21设下限温度个位2、50x11设下限温度十分位2、40x09显示上限温度1、30x06设上限温度标志位3、70x44设上限温贤十位3、60x24设上限温度个位3、50x14设上限温度十分位3、40x0C低疗卜限温度1、2、4、5、6、70x7B高于上限温度1、3、4、5、6、70x7E系统的软件构成课题原计划用汇编语言完成。后来决定使用C语音编写程序,系统的软件由温度数据采集、数据处理、温度显示及按键处理等部分组成。 89S52完成的功能主要是数据处理、数据分析、控制计算、进制转换、数据显示、按键处理以及电机控制等。温度采样和转换部分由DS18B20fB完成。系统的工作原理首先,由温度传感器DS18B20寸温度进行采样和转换,将测量结果送给单片机,单片机将输入的温度值进行数据处理,并将温度值与设定的温度值上下限进行比较。根据比较结果进行相应的处理。若温度超限则报警指示灯亮,以便进行及时处理。系统原理框图如图2.2所示:图2.2系统原理图3智能温度控制系统硬件设计本章是论文核心部分,主要介绍基于单片机的温度控制系统硬件总体设计,按照设计方案,整个温控系统硬件主要包括以下单元:按键输入,温度采集、处理,温度超限报警,定时发出脉冲等。温度控制的核心为温度的采集和处理,系统选用特别适用于编程及数据处理的MS-51单片机89S52,并通过89S52实现对其他各组成部分的编程控制下面是核心原件的介绍:数字温度传感器DS18B20羊述DS18B20简介DS18B2隽美国DALLA芥导体公司生产的可组网数字式温度传感器,在其部使用了在板(ON-B0ARD专利技术。全部传感元件及转换电路集成在形如一只三极管的集成电路。与其它温度传感器相比,DS18B2CM有以下特性:参考资料参考资料.a)独特的单线接口方式:DS18B20f微处理器连接时仅需要一条口线即可实现微处理器与DS18B20勺双向通讯。b)在使用中不需要任何外围元件。c)可用数据线供电,电压围:+3.0V〜+5.5V。d)测温围:-55C〜+125C。固有测温分辨率为0.1C。e)通过编程可实现9〜12位的数字读数方式。f)用户可自设定非易失性的报警上下限值。g)支持多点组网功能,多个DS18B2M以并联在惟一的三线上,实现多点测温3.1.2DS18B20的引脚名称及作用外形如图3.1所示。其体积只有DS1820的一半,引脚定义相同。DQ:数据输入输出引脚VDD可接电源,也可接地。因为每只DS18B20rB可以设置成两种供电方式。采用数据总线方式时VD呢地,可以节省一根传输线,但完成温度测量的时间较长;采用外部供电方式则接5V,多用一根导线,但测量速度较快。m3

二总

(CUSm3

二总

(CUS一I.=GND|DQIVgaIDALLAS£K=图3.1DS18B20外观DS18B20的部结构它主要由4部分组成:64位ROM温度传感器、非易失性的温度报警触发器TH和TL、高速暂存器。64位ROMS于存储DS18B26列号,其首字节固定为28H,表示产品类型码,后6个字节是每个器件的编码,最后1个字节是CRCK验码。温度报警触发器TH和TL存储用户通过软件写入的报警上下极限。高速暂存器由 9个字节组成,其中有2个字节RAMI元用来存放温度值,前1个字节为温度值的补码低8位,后1个字节为字符号位和温度值的补码高3位。具部结构框图如图3.2所示:高温触发器TH高温触发器TH图3.2DS18B20部结构框图DS18B20的测温原理DS18B2CW量温度采用了特有的温度测量技术,其温度测量电路如图 3.3所示图3.3DS18B20测温结构图图3.3中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入,图中还隐含着计数门,当计数门打开时, DS18B2®对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55C所对应的基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器被预置在-55C所对应的一个基数值。减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器 1的预置值减到0时温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数, 如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。图斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值,这就是DS18B20勺测温原理。另外,由于DS18B2M线通信功能是分时完成的,他有严格的时隙概念,因此读写时序很重要。系统对DS18B20的各种操作必须按协议进行。操作协议为:初始化DS18B20(发复位脉冲)一发ROMft能命令一发存储器操作命令一处理数据。DS18B20的转换精度控制字及分辨率设置设置转换精度控制字格式如表3.1所示表3.1转换精度控制字格式MSBLSB0R1 R0111 1 1分辨率设置如表3.2表3.2分辨率设置R1R0分辨率(位)最大转换时间(ms)00993.750110187.510113751112750由表可见,设定的分辨率越高,所需要的温度数据转换时间越长。因此,在实际应用中需要在分辨率与转换时间二者之间权衡考虑。在芯片出厂时R1和R0被配置为“1”,即工作在12位模式下。当DS18B208收到温度转换命令(44H)开启后,开始启动转换,转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在暂存RAM勺第0,1字节。在执行读暂存RAMT令后,可将这两个字节的温度值通过单线总线传给CPU高位字节中符号代表温度值为正还是负值。DS18B20的温度数字关系参考资料.参考资料参考资料.参考资料参考资料.用12位精度测出的温度值用16位二进制补码形式表示,如表3.3所示:表3.3DS18B20存储器映像图232221202-12-22-32-4MSB LSBSSSSS262524MSB LSB图中S为符号位,S=1,温度为负值;S=0,温度为正值。DS18B2M12位精度测出的数字量(用16位二进制补码形式表示)如表3.4所示:表3.4部分温度与对应的数字温度输出之间的对应关系+125000001111101000007D0+8500000101010100000550+25.062500000001100100010191+10.125000000001010001000A2+0.500000000000010000008000000000000000000000-0.51111111111111000FFF8-10.1251111111101011110FF5E-25.06251111111001101111FE6F-551111110010010000FC90DS18B20的存结构图DS18B20勺存储器包括SRAMff储器和非易失的EEPROM储器,EEPROM于存放触发报警上限值存储器(T口和触发报警下限存储器(TL)。当DS18B20在使用过程中并未使用报警功能时,TH和TL可作为普通用途的存储器单元使用。DS18B20勺存储组织结构如表3.5所示。表3.5DS18B20部存储器组织结构图便笺存储器(期间上电默认值) EEPRO脐储器0 温度数字量低位字节(50H)无温度数字量高位字节(05H)TH/用户寄存器字节1 TH/用户寄存器字节1TL/用户寄存器字节2 TL/用户寄存器字节2

4545678保留(FFH保留(0CH无保留(10H)CRCDS18B20的操作命令DS18B2Q1一种可编程的数字温度传感器,它的工作是靠计算机给它发控制命令进行的,DS18B20ft计算机在工作过程中的协议主要有:初始化、 ROMfr储器操作命令、RAM?储器操作命令。分别说明如下:a)初始化单总线上的所有处理均从初始化开始。初始化过程是主机通过向作为从机 DS18B20芯片发一个有时间宽度要求的初始化脉冲实现的。初始化完成后,才可进行读写操作。b)对ROM勺5种操作命令一旦主CPU佥测到从属器件的存在,就可以发出ROMS作命令。所有ROMS作命令均为8位(二进制)字长。主CPK以发出ROMH乍命令有以下五种:1)读ROMT令(READROM勺定代码33H)。该命令允许主CPUS取DS18B20H勺8位产品系列编码,48位序列号以及8位的CRC该命令适用于总线上接一片DS18B20的情况。当总线上挂有多片DS18B20寸禁止使用该命令,否则多片DS18B20W时发送数据,必然会导致互相冲突。2)符合ROMT令(MATCROM约定代码55H)。主CPUS发出“符合"ROMT令后,接着发出64位的ROMK据序列,从而使主CP区现对单线总^线上特定DS18B20勺寻址。只有与ROMf列严格相符的DS18B20才能对后续的存储器操作命令作出响应。所有与64位ROMf列不相符的DS18B20等等待复位脉冲。该命令对于总线上挂有单个、或多个器件的情况均适用。3)搜索ROMT令(SEARCHR。M勺定代码F0H)。搜索RO嘛令允许主CPUS用一种“消除法”(ELMINATION来识别总线上所有DS18B20勺64位RO端码,即完成整个系统的初始化工作。为以后对各个单线器件作好准备。该部分也是对DS18B2明片进行软件编程的重点和难点。4)跳过RO嘛令(SKIPROM约定彳t码为CCH。在单线总线系统中,该命令使主CPU^必提供64位ROM®码就能访问各片DS18B20该命令主要用于向所有的DS18B20同时发出温度转换命令,从而大大节省访问各个器件的时间。但有一点必须注意,主CPU如果在发出SKIPROM命令之后,又发出了读存储器命令,那么由于多片 DS18B20R]时向总线上提供数据且在漏极开路状态下产生“线与”的结果,此时读出的数据已经没有实际意义了。5)报警搜索命令(ALARAMSEARCH"约定代码ECH。该命令的流程与搜索ROM命令的流程相同。仅在最后一次温度测量出现报警的情况下。 DS18B20t对该命令做出响应。报警的条件定义为温度超过上限(T>TH,或者低于下限(T<TL)。上电时,DS18B20预置报警条件为设定状态,直到首次温度测量结果既不超过上限 TH,也不低于TL时,报警信号才被解除。c)存储器操作命令存储器操作命令共有6条,具体如下:1)温度转换命令(CONVERT)T{44H}0令DS18B203行温度转换。如果住CPUft该命令之后为读时序,如果DS18B20E忙于进行温度*$换,即读得“0”;当温度转换完成时,DS18B20M返回“1"。假如有寄生电源给DS18B2CB电,主CPUft发出该命令后立即将单线总线拉成高电平,并且保持500ms时间,以便在温度转换期间给DS18B2提供所需要的电源。2)读暂存存储器(READSCRATCHPA{BEH}。该命令为读暂存存储器9个字节的容。从字节0开始读,直至读到字节8。主CPUT以在读暂存存储器期间发出一个复位脉冲来终止读操作。3)写暂存存储器(WRITESCRATCHPAD4EH}。主CPU^&DS18B20勺2个字节数据就分别写入触发寄存器TH和触发寄存器TL中,顺序是先写TH,到写TLo主CPU&可以在写暂存存储器期间发出一个复位脉冲来终止写操作。4)复制暂存存储器{COPYSCRATCHPAD}{48H眩命令把触发寄存器中的THTL字节分别复制到EERAM勺THTL的字节上。若主CPU发出命令后又进行读操作,只要DS18B20正忙于复制,主CPUB读“0”;当复制工作完成后,DS18B2CR返回“1”。如果是寄生电源供电,主CPUS发出该命令后就把单线总线拉到高电平,并保持 10ms5)重新调出EERAMRECALLEERAM[B8H}。该命令是把存储器在E2RA始度触发器THTL的数据重新调入暂存器的THTL字节。每次DS18B2叶电时也自动进行这种操作,因此,只要器件接通电源,暂存存储器的 THTL中已经有效的数据供使用。若主CPUE发出该命令之后又进行读操作,只要DS18B20E忙于进行调出,主CPlM读得“0”(表示“忙碌”);完成调出操作后DS18B2C®返回“1”(表示“操作完毕”)。6)读电源(REAEPOWERUPPLY{B4H}。此项命令发送给DS18B2必后,对主CPU发出的每条读命令,DS18B2CB向主CPI®供电源方式信号“0”(表示由寄生电源供电)或者“1”(表示由外部电源供电)。DS18B20的工作时序主机使用时间隙来读写DS18B20勺数据位和写命令字的位。a)初始化主机总线T0时刻发送复位脉冲(最短为480us的低电平信号),接着在T1时刻释放总线并进入接受状态,DS18B2照检验到总线的上升沿之后,等待15us〜60us,接着在T2时刻发出存在脉冲(60us〜240us),如图3.4所示。b)写时间隙当主机总线在T0时刻从高拉至低电平时,就产生写时间隙,如图3-5(a,b),从T0时刻开始15us之应将所需写的位送到总线上,DS18B20ftT0后15us〜60us问对总线采样。若为低电平,则写入的是0,如图3.5(a);若为高电平,则写入的位是1,见图3.5(b)0连续写2位时间间隙应大于1us0>60us>1us15us15-45us参考资料15us15-45us参考资料参考资料参考资料.参考资料参考资料.>60us>1us图3.5 (b)写1时序C)读时间隙如图3.6,总线T0时刻从高拉至低电平时,总线只需保持低电平1uso之后在T1时刻将总线拉高,产生读时间隙,读时间隙在T1时刻和T2时刻前有效。T2距T0为15us,也就是说,T2时刻前主机必需完成读位,并在T0后的60us〜120us释放总线。图3.6图3.6读时序89S52P1.0+5V4.7K89S52P1.0+5V4.7KDS18B20与单片机的硬件接口因为DS18B201单线接口器件,因此它与单片机硬件接口十分简单,只需占用单片机的一个双向的I/O口,其接口电路见图3.7。在此采用外部电源供电,占用89S52的P1.0口。DS18B20

npt0-

GND VDD— oDQ外接+5V图3.7单片机接口电路DS18B20使用中注意事项DS18B23然具有测温系统简单、测温精度高、连接方便、占用口线少等优点,但在实际应用中也应注意以下几方面的问题:a)较小的硬件开销需要相对复杂的软件进行补偿,由于 DS1820与微处理器间采用串行数据传送,因此,在对DS1820进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。在使用PL/M、C等高级语言进行系统程序设计时,对DS1820操作部分最好采用汇编语言实现。b)在DS1820的有关资料中均未提及单总线上所挂DS1820数量问题,容易使人误认为可以挂任意多个DS1820在实际应用中并非如此。当单总线上所挂 DS1820g过8个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注意。c)连接DS1820的总线电缆是有长度限制的。试验中,当采用普通信号电缆传输长度超过50m时,读取的测温数据将发生错误。当将总线电缆改为双绞线带屏蔽电缆时,正常通讯距离可达150m当采用每米绞合次数更多的双绞线带屏蔽电缆时, 正常通讯距离进一步加长。这种情况主要是由总线分布电容使信号波形产生畸变造成的。因此,在用DS1820tt行长距离测温系统设计时要充分考虑总线分布电容和阻抗匹配问题。d)在DS1820测温程序设计中,向DS1820发出温度转换命令后,程序总要等待DS1820勺返回信号,一旦某个DS182哦触不好或断线,当程序读该DS1820寸,将没有返回信号,程序进入死循环。这一点在进行 DS1820硬件连接和软件设计时也要给予一定的重视。3.2MCS-51系列单片机简介MCS-51系列单片机MCS-51系列单片机研制于1980年,由Intel公司所开发,具结构是8048的延伸,改进了8048的缺点,其ROMRAM®可扩充至64KB也增添了如乘(MUL、除(DIV)、减(SUBB、比较(CJNE、栈入(PUSH、栈出(POP、16位数据指针、布尔代数运算等指令,以及串行通信能力和5个中断源。8052有6个中断源。MCS-51系列单片机特点如下:(1)专为控制应用所设计的八位CPU;(2)具有布尔代数的运算能力;(3)32条双项且可被独立寻址的I\O口;(4)芯片有128字节可供存储数据的RAM(8052:256字节);(5)部有两组16位定时器(8052有3个);(6)具有全多工传输信号UART(7)5参考资料.参考资料参考资料.参考资料参考资料.个中断源,且具有两级(高/低)优先权顺序的中断结构;(8)芯片有4KB(8KB/8052)的程序存储器(ROM;(9)芯片有时钟(CLOCK振荡器电路;(10)程序存储器可扩展至64KB(ROM;(11)数据存储器可扩展至64KB(RAMI。MCS-51系列单片机引脚介绍a)时钟电路引脚MCS-51单片机的时钟可以由部方式和外部方式产生, XTAL1(19脚)和XTAL2(18脚)即为单片机的两个时钟引脚。1)时钟引脚8051单片机片有振荡电路,只需在XTAL1和XTAL2间外接石英晶体和电容组成的并联振荡电路(晶振器),晶体可以在固有频率1.2〜12MHz的晶振器之间任选晶体,电容可以在20〜60pF的电容之间任选,通常选择30pF的瓷片电容。在单片机控制的数字显示温度计电路设计的这个部分,就是采用时钟引脚,其中晶振器为6MHz两个电容均为30pF。2)外时钟方式,XTAL1接地,XTAL2接外部振荡器。由于XTAL2端的电平不是TTL电平,故接一个上拉电阻。外部振荡器的频率应低于 12MHzb)制信号引脚,包括RST/VpdALE/PROG、PSENkEA^/Vppb下面分别对其进行介绍:RST/Vpd(9脚):复位信号/备用电源引脚 当输入的复位信号延续2个机器周期以上,高电平即为有效,用以完成单片机的复位操作。复位后影响片特殊功能寄存器的状态,但不影响片RA瞰态。同一引脚的Vpd是备用电源输入端(Vpd®+5V备用电源)。在Vcc断电时,为保证RAW的信息不丢失,可使此引脚完成掉电保护功能。ALE/PROG(30脚);地址锁存允许信号/编程脉冲输入端在系统扩展时,ALE用于控制把P0口输出的低8位地址送入锁存器锁存起来,以实现低位地址和数据的分时传送。此外由于ALE1以1/6晶振频率的固定频率输出的正脉冲,因此可作为外边时钟或外部定时脉冲使用。 对片带有4kbyteEPROMj8751编写固化程序时,PROG作为编程脉冲输入端。PSEWE(29弓唧):外边程序存储器读选通信号为低电平有效, 8051在访问片外程序存储器时,此引脚端输出负脉冲作为读片外程序存储器的选通信号,以实现外部ROM1元的读操彳要检查8051上电平后CP能否正常到程序存储器中读取指令码,可以用示波器观察引脚PSENE有无脉冲输出,若有说明正常。EA非/Vpp(31脚):部和外部程序存储器选择信号 当引脚接高电平时,CP6访问片4kbyte的EPROM/R。帅行部程序存储器中的指令,但在程序计数器计数超过OFFFH(即地址大于4kbyte时),将自动转向执行片外大于4kbyte程序存储器的程序。若E&E引脚接低电平时,CP炽访问外部程序存储器,而不管片是否有程序存储器。对于8031单片机(片无ROM需外扩EPROM故必须将E/ME弓唧接地。在对EPROM写固化程序时,需对此引脚施加21V勺编程电压。I/O(输入/输出)接口引脚1)并行I/O接口的特点MCS-51有4个8位并行I/O接口P0〜P3,他们都是双向端口,可以进行输入或者输出操作,每个口都有口锁存器和口驱动器两部分组成。止匕外,它还有一个全双工串行通信口。这4个端口为MCS-5右外围器件或外围设备进行信息(数据、地址、控制信号)交换提供了多功能的输入/输出通道,也为MCS-5扩展外部功能、构成应用系统提供了必要的条件。它们的特点如下: a、4个并行I/O接口都是双向的。P0口为漏极开路,P1、P2、P3口均具有部上拉电阻,它们有时被称为准双向口。 b、4个并行口的32条I/O接口线都可以独立地用于输入或输出操作。 c、当4个并行口的I/O接口线有作输入操作时,必须对该口的锁存器进行写1操作,以保证从I/O接口线输入数据的正确性,这也是4个并行接口有时被称为“准”双向的含义。I/O接口电路功能汇总MCS-51单片机部属单总线结构,因此使系统在结构上增加了灵活性。通过总线,用户可根据应用需要进行多功能的系统扩展,构成用户的实际应用系统。MCS-5保列中的8031单片机,因其部在结构上无程序存储器,所以它的应用系统必定为一个扩展的系统。因此, MCS-514M个并行I/O接口中的PRP1、P2、P3口基本上都具备有这两项功能:a、P0口:P0口是一个多功能口除可以作为通用的输入/输出口外,还具备用于系统扩展的第二功能。在MCS-5的进行系统扩展时,它作为地址/数据总线口。通过外接地址锁存器, MCS-5的部单总线可从P0口被扩展成8位的数据总线和16位地址总^线的低8位。在实际应用中,P0口先送出外部存储器16位地址中的低8位至地址锁存器锁存,然后再由P0口进行8位数据的输入或输出;b、P1口:P1口作为通用I/O接口,它的每一位都可以别编程为通用I/O接口线;c、P2口:P2口也是一个多功能口,与P0口相似,它除可被用作I/O接口外,在进行系统扩展时,还可以输16位地址总线中的高8位,和P0口共同构成16位的地址总线。当然,在P0口和P2口用作地址/数据总线时,它们都不能再作为通用I/O接口;d、P3口:P3口也是一个多功能口,除可以作为通用I/O接口外,还具有多种控制功能,为通用I/O接口时和MCS-5其他具有控制功能的输入/输出引线在一起,共同形成MCS-51勺控制总线。P3口在作为第二功能(控制功能)使用时,它的每一位功能定义如表3.8所示。表3.8P3口各引脚定义P3.0RXD串行数据接收P3.1TXD串行数据发送P3.2INT0外部数据0申请P3.3INT1外部数据1申请P3.4T0定时器/计数器0输入P3.5T1定时器/计数器1输入P3.6WR外部RAMW选通P3.7RD外部RAM卖选通一个信号引脚,既是第一功能又是第二功能,在使用时也不会引起混乱和造成错误,理由如下:a、对于各种型号的芯片,其功能的第一功能信号是相同的,所不同的只在引脚的的第二功能信号上;b、对于9、30和31各个引脚,由于第一功能信号与第二功能信号是单片机在不同工作方式下的信号,因此不会发生使用上的矛盾; c、P3口线的情况却有所不同,它的第二功能信号都是单片机的重要控制信号。因此在实际使用时,总是先按需要优先选用它的二功能,剩下不用的才作为口线使用。MCS-51单片机的复位方式和复位电路1)复位操作:复位是单片机的初始化操作,其主要功能是把PC0始化为0000H使单片机从0000Hl元开始执行程序。除了进入系统的正常初始化之外,当由于程序运行出错或者操作错误使系统处于死锁状态时,为摆脱困境,也需按复位键以重新启动。 a、复位操作还对单片机的个别引脚信号有影响,例如把AL手口PSENE信号变为无效状态,即ALE=0PSEN=1b、复位信号及其产生RST^I脚是复位信号的输入端,复位信号是高电平有效,其有效时间持续24个振荡脉冲周期(即2个机器周期)以上,若使用频率为6MHz勺晶振,则复位信号持续时间应超过4us才能完成复位操作。整个复位电路包括芯片外两部分。外部电路产生的复位信号(RST送施密特触发器,再由片复位电路在每个机器周期的S5寸刻对施密特触发器的输出进行采样。然后才得到部复位操作所需要的信号。3.3显示温度值的LED显示器接口简介LED显示器是单片机应用系统中常用的廉价输出设备。它是由若干个发光二极管组成的,当发光二极管导通时,相应一个笔画划发光,控制某段发光二极管导通,就能显示出某个数码或字符。在静态显示系统中,每位显示器都应有各自的锁存器、译码器(若采用软件译码,译码器可省去)与驱动器,用以锁存各自待显示数字的 BC则或字段码。因此,静态显示系统在每一次显示输出后能够保持显示不变,仅在待显示数字需要改变时,才更新具数字显示锁存器中的容。这种显示占用CPU勺时间少,显示稳定可靠。缺点是,当显示的位数较多时,占用的I/O口较多。在动态显示的系统中,CPU!定时地对每位LED显示器进行扫描,每位LED显示器分时轮流工作,每次只能使一位LED显示,但由于人的视觉暂留现象,仍感觉所有的LED显示器都在同时显示。这种显示的优点是使用硬件少,占用I/O口少。缺点是占用CPU时间长,只要不执行显示程序,就立刻停止显示。但随着大规模集成电路的发展,目前已有能自动对显示器进行扫描的专用显示芯片,使电路既简单又占用 CPU寸间。在我们所设计的温度计中数码管显示就是利用的动态显示。4智能温度控制系统软件设计课题的程序用KeilC51语言编写,由于使用了C语言,寄存器的分配、不同的存储器的寻址及数据类型等细节可由编译器管理,尤其是数学运算不必人工干预,大大缩短了变成与调试的时间,提高了效率,降低了编成难度,使编程更加简便。系统的控制软件可分为主程序,DS18B20!信程序,按键程序等模块。主程序可分为系统的初始化,自检子程序,温度显示子程序三部分。温度显示子程序完成温度采集,温度值的BCD专换,调显示子程序,超温报警和控制。DS18B20!信程序主要由DS18B20初始化程序,DS18B20文字节程序,DS18B2叫字节程序组成。按键程序主要完成温度上、下限的设置和显示,在单片机控制下每2小时发送0.5秒的启动电机的正脉冲。本系统有五个按键,依次是:复位键、K1键、K2键、K3键、K4键。按键程序主要包括INT1中断子程序、定时器T0中断子程序、INT1中断子程序、定时器T1中断子程序、定时器T2子程序。其中,复位键部分放入主程序中,作为主程序的一部分。 K4键功能:每2小时发送0.5秒的启动电机的正脉冲。下面是主程序和各个子程序的流程图。参考资料.参考资料参考资料.参考资料参考资料.4.1主程序流程图系统完成的是对周围温度进行检测,采用 DS18B20专感器。当温度超过设定温度围时,进行报引入单片机控制是实现系统智能化很重要的一个部分,采用单片机可以实现程序控制和监视的功能。系统采用89S52和DS18B20勺连接进行实时控制和数据处理。软件编程负责设置温度上、下限,然后让系统根据设置的程序完成控制功能。主程时,进行报序流程图如图4.1所示。图4.1图4.1主程序流程图2子程序流程图及程序容DS18B20初始化子程序流程图DS18B2在初始化序列期间,总线控制器拉低总线并保持480us以发出(TX)一个复位脉冲,然后释放总线,进入接收状态(RX。单总线由5Kh拉电阻拉到高电平。当DS18B20探测到I/O引脚上的上升沿后,等待15〜60us,然后发出一个由60〜240us低电平信号构成的存在脉冲。完成对DS18B2的初始化操作,在每次测温前必须对其进行初始化,否则系统无法正常运行。所以这个步骤很重要。 DS18B2初始化子程序流程如图4.2所示。图4.2DS18B20初始化子程序流程图voidRST18B20(void)/*DS18B20 初始化子程序*/{DQ=0;delay(15);DQ=1;delay(2);do{}while(DQ==1);}}参考资料参考资料.}}参考资料参考资料.do{}while(DQ==0);4.2.3DS18B204.2.3DS18B20读字节子程序参考资料参考资料.参考资料参考资料.DS18B20写字节子程序DS18B2%字节由两种写时序组成:写1时序和写0时序。总线控制器通过写1时序写逻辑1到DS18B20写0时序写逻辑0到DS18B20所有写时序必'须最少持续60us,包括两个写周期之间至少1us的恢复时间。当总线控制器把数据线从逻辑高电平拉到低电平的时候,写时序开始总线控制器要生产一个写时序,必须把数据线拉到低电平然后释放,在写时序开始后的15u邮放总线。当总线被释放的时候,5K勺上拉电阻将拉高总线。总控制器要生成一个写0时序,必须把数据线拉到低电平并持续保持(至少60us)。总线控制器初始化写时序后,DS18B2猊一个15us到60us的时间对I/O线采样。如果线上是高电平,就是写1。如果线上是低电平,就是写0。DS18B201字节程序流程图如图4.3所小。图4.3DS18B20写字节流程图voidwrite_zi(ucharwr)/* 向DS18B20W字节子程序*/{uchari;for(i=0;i<8;i++){DQ=0;_nop_();DQ=wr&0x01;delay(5);DQ=1;wr>>=1;}}总线控制器发起读时序时,DS18B2飒被用来传输数据给控制器。因此,总线控制器在发出读暂存器指令[BEh]或读电源模式指令[B4h]后必须立刻开始读时序,DS18B20T以提供请求信息。除此之外,总线控制器在发出发送温度转换指令 [44h]或召回EEPROM指令[B8h]之后读时序,所有读时序必须最少60us,包括两个读周期间至少1us的恢复时问。当总线控制器把数据线从高电平拉到低电平时,读时序开始,数据线必须至少保持1us,然后总线被释放。在总线控制器发出读时序后, DS18B2通过拉高或拉低总线上来传输1或0。当传输逻辑0结束后,总线将被释放,通过上拉电阻回到上升沿状态。从DS18B20J出的数据在读时序的下降沿出现后15us有效。因此,总线控制器在读时序开始后必须停止把I/O脚驱动为低电平15us,以读取I/O脚状态。DS18B2像字节子程序如图4.4所示。图4.4DS18B20读字节子程序/*从DS18B20/*从DS18B20卖出字节子程序*/{uchari,u=0;for(i=0;i<8;i++){DQ=0;u>>=1;DQ=1;if(DQ==1)u|=0x80;delay(4);}return(u);)4.2.4 温度显示子程序温度显示子程序主要完成温度的读出和显示的功能。当温度为零下是显示为“一”号;当温度为零上时消隐。当测定温度低于设定温度下限值时,第1、2、4、5、6、7个发光二极管点亮;当测定温度高于设定温度上限值时,第1、3、4、5、6、7个发光二极管亮。起到报警作用。温度显示子程序流程图如图4.5所示。图图4.5 温度显示子程序参考资料参考资料.图图4.5 温度显示子程序参考资料参考资料.floatWL=-10.0,WH=30.0;voidshowT(void){ucharidatatem[4];floatwd=0;intm;for(;;){/*WH/*/*wdwd=cewen();if(wd<0){wd=-wd;tem[0]=16;}elsetem[0]=17;tem[1]=wd/10;m=wd*10;tem[2]=m%100/10;tem[3]=m%10;display(tem+3);deng=0x02;if(wd<=WL)/*/*/*/*/*deng=0x7B;/*if(wd>=WH)deng=0x7E;、WL8于存储上、下限温度*/温度显示子程序*/为采集的温度值*/判断温度是否为正*/温度为负值,数码管第1位显示负号*/温度为正值,数码管第1位不显示*/将温度值各位分离出来*/显示温度,第1个发光二极管亮*/低于温度下限,第1、2、4、5、6、7个发光二极管亮*//*高于温度上限,第1、3、4、5、6、7个发光二极管亮*/4.2.54.2.5温度采集子程序流程图参考资料参考资料.4.2.54.2.5温度采集子程序流程图参考资料参考资料.温度采集子程序流程温度采集子程序流程程序在采集温度时,测量两次取平均值,已达到精确的目的。图如图4.6所示参考资料参考资料.参考资料参考资料.floatcewen(void){ucharam,bm;intwendz=0,i;floatduzhi=0;for(i=0;i<2;i++)/* 采集温度子程序*//*am,bm 分别是从DS18B80卖取的温度低8位和高8位值*//*wemdz 是单次温度采集值*//* 采集两次温度值*/RST18B20(); /*DS18B20 初始化*/write_zi(0xCC);write_zi(0x44);RST18B20();write_zi(0xCC);write_zi(0xBE);/* 跳过DS18B2Q>tROM*//* 进行温度转换*//*DS18B2Q 暂存器值*/am=read_zi();bm=read_zi();wendz=bm;wendz<<=8;wendz|=am;duzhi+=wendz;}duzhi/=2; /*duzhi*=Q.Q625;/*duzhi+=Q.Q5; /*return(duzhi);}取两次采集温度平均值*/将采集温度值转换为十进制数*/将采集温度值四舍五入,精确到Q.1*/显小子程序显示子程序是对数码管进行逐位扫描,显示先从显示缓冲区取出要显示的数据,再根据该数据从table表中取出相应的段码完成显示。显示子程序流程图如图 4.7所示图4.7显不'子程序voiddisplay0(ucha门data*p) /* 不显示数码管左起第4位*/{ucharsel,i;sel=0x01;for(i=0;i<4;i++){sel=~sel;duan=table[*p];参考资料.参考资料参考资料.参考资料参考资料.if(sel!=0xfe)wei=sel;delay(210);wei=0xff;P--;sel=~sel;sel=sel<<1;}}voiddisplay1(ucha门data*p) /* 不显示数码管左起第3位*/{ucharsel,i;sel=0x01;for(i=0;i<4;i++){sel=~sel;duan=table[*p];if(sel!=0xfd)wei=sel;delay(210);wei=0xff;p--;sel=~sel;sel=sel<<1;}}voiddisplay2(ucharidata*p) /* 不显示数码管左起第2位*/{ucharsel,i;sel=0x01;for(i=0;i<4;i++){sel=~sel;duan=table[*p];if(sel!=0xfb)wei=sel;delay(210);wei=0xff;

p--;sel=~sel;sel=sel<<1;}}voiddisplay3(ucha门data*p)/* 不显示数码管第1位*/{ucharsel,i;sel=0x01;for(i=0;i<4;i++){sel=~sel;duan=table[*p];if(sel!=0xf7)wei=sel;delay(210);wei=0xff;p--;sel=~sel;sel=sel<<1;}*/}*/voiddisplayQ(ucha门data*p)/* 数码管小数点全显示,用于自检子程序{ucharsel,i;sel=0x01;for(i=0;i<4;i++){sel=~sel;duan=table1[*p];wei=sel;delay(100);wei=0xff;p--;sel=~sel;sel=sel<<1;}}4.2.6 4.2.6 按键子程序流程图参考资料参考资料.4.2.6 4.2.6 按键子程序流程图参考资料参考资料.程序利用K1,K2K3三个按键设定温度上、下限值。按键子程序流程图如图4.8所示K1键第一次按下图4.8 K1键第一次按下图4.8 按键子程序流程图显示温度上限参考资料参考资料.参考资料参考资料.为K2为K2键的按键次数,k,d为温度下限、上限I标志位*/为下限、上限温度处理的中间变量*/用于存放上、下限温度分离后的各位数值和标志位*/开启定时器T0中断*/键第1次按下*/inta,b; /*a,b,wl.whTOC\o"1-5"\h\zfloatwl,wh;ucharidatadis_buf[4]; /*TR0=1; /*delay(500);if(INT1==0) /*K1对下限温度进行分离处理*/对下限温度进行分离处理*/显示下限温度,第1显示下限温度,第1、2个发光二极管亮*/键按下*/{if(dx==0){while(dx==0);wl=WL;if(wl<0.0){dis_buf[0]=16;wl=-wl;k=1;}else{dis_buf[0]=17;k=0;}a=wl*10;b=WH*10;dis_buf[1]=a/100;dis_buf[2]=(a%100)/10;dis_buf[3]=(a%100)%10;for(;;)/*K3键按下*//*K3键按下*/switch(n) /* 设置下限温度各位的数值*/{case 0:if(dis_buf[3]<9){dis_buf[3]++;break;} else{dis_buf[3]=0;break;}case 1:if(dis_buf[2]<9){dis_buf[2]++;break;} else{dis_buf[2]=0;break;}case 2:if(dis_buf[1]<5){dis_buf[1]++;break;} else{dis_buf[1]=0;break;}case 3:if(m==0) {dis_buf[0]=17;m++;k=0;break;} else{dis_buf[0]=16;m=0;k=1;break;}}}}if(TF0) /* 每隔100ms显示一次下限温度*/{j++;if(j==2){display(dis_buf+3);j=0;}TH0=-(50000/256);TL0=-(50000%256);TF0=0;}elseswitch(n){case0:display0(dis_buf+3);deng=0x09;break;/*K2键按第1次,第4位数码管不显示*/case1:display1(dis_buf+3);deng=0x11;break;/*K2 键按第2次,第3位数码管不显示*/case2:display2(dis_buf+3);deng=0x21;break;/*K2 键按第3次,第2位数码管不显示*/case3:display3(dis_buf+3);deng=0x41;break;/*K2 键按第4次,第1位数码管不显示*/}if(dx==0){if(dx==0){while(dx==0);if(n<4)n++;}}if(n==4) /*K2键按第5次,将设置的温度值存入上、下温度变量*/{if(k==0)a=dis_buf[3]+dis_buf[2]*10+dis_buf[1]*100;if(k==1)a=-(dis_buf[3]+dis_buf[2]*10+dis_buf[1]*100);n=0;if(b>(a+5)) /*如果设置的温度下限值低于上限值 0.5C以上,则存储设置的值*/{WL=a;WL/=10;WH=b;WH/=10;}break;}}}}if(INT1==0) /*K1for(;;){while(INT1==0);wh=WH; /*if(wh<0){dis_buf[0]=16;wh=-wh;}elsedis_buf[0]=17;b=wh*10;dis_buf[1]=b/100;dis_buf[2]=(b%100)/10;dis_buf[3]=(b%100)%10;display(dis_buf+3);/*键第2次按下*/对上限温度进行分离处理*/显示上限温度,第1、3个数码管亮*/deng=0x06;if(dx==0)/*K2键按下*/{if(dx==0){while(dx==0);wh=WH;if(wh<0){dis_buf[0]=16;wh=-wh;d=1;}else{dis_buf[0]=17;d=0;}a=WL*10;b=wh*10;dis_buf[1]=b/100;dis_buf[2]=(b%100)/10;dis_buf[3]=(b%100)%10;for(;;){if(ds==0){if(ds==0)

{while(ds==0);switch(n){case{dis_buf[3]=0;break;}case{dis_buf[2]=0;break;}case{dis_buf[1]=0;break;}/*K3 键按下*//* 设置上限温度各位数值*/0:if(dis_buf[3]<9){dis_buf[3]++;break;}1:if(dis_buf[2]<9){dis_buf[2]++;break;}2:if(dis_buf[1]<5){dis_buf[1]++;break;}elseelseelseelse每隔else每隔100ms显示一次上限温度*/case 3:if(m==0){dis_buf[0]=16;m=0;d=1;break;}}}}if(TF0) /*{j++;if(j==2){display(dis_buf+3);j=0;}TH0=-(50000/256);{dis_buf[0]=17;m++;d=0;break;}TL0=-(50000%256);TF0=0;}elseswitch(n){case0:display0(dis_buf+3);deng=0x0C;break;/*K2 键按第1次,第4位数码管不显示*/case1:display1(dis_buf+3);deng=0x14;break;/*K2 键按第2次,第3位数码管不显示*/case2:display2(dis_buf+3);deng=0x24;break;/*K2 键按第3次,第2位数码管不显示*/case3:display3(dis_buf+3);deng=0x44;break;/*K2 键按第4次,第1位数码管不显示*/}if(dx==0){if(dx==0){while(dx==0);if(n<4)n++;}}if(n==4) /*K2 键按第5次,存储设置的数值*/{if(d==0)b=dis_buf[3]+dis_buf[2]*10+dis_buf[1]*100;if(d==1)b=-(dis_buf[3]+dis_buf[2]*10+dis_buf[1]*100);n=0;if(b>(a+5)) /* 如果设置的温度上限值高于下限值 0.5C以上,则存储设置的值*/{WL=a;WL/=10;WH=b;WH/=10;}break;}}}}tiao=1;图4.9 图4.9 发送脉冲子程序流程图参考资料.图4.9 图4.9 发送脉冲子程序流程图参考资料.if(INT1==0){if(INT1==0)break;}}while(INT1==0);if(tiao==1)break;})发送脉冲子程序流程图发送脉冲程序设置在K4键按下后每两个小时开启电机0.5s,已达到加热的目的。发送脉冲子程序流程图如图参考资料参考资料.参考资料参考资料.#include<intrins.h>#include<absacc.h>#include<reg52.h>#definedengXBYTE[0x7FFF]intcoun=0,con=0;/*coun和con分别是定时器T2和T1的中断次数计数变量*/voidT1_zd(void)interrupt3using0/*{con++;if(con==10) /*{con=0;TR1=0; /*deng=0x01;}TH1=(65536-50000)/256;TL1=(65536-50000)%256;}voidT2_zd(void)interrupt5using0/*{coun++;TF2=0;if(coun==200000) /*{coun=0;deng=0x02;TR1=1; /*}}定时器T1中断子程序*/定时0.5秒到*/关闭定时器T1*/定时器T2中断子程序*/定时2小时到*/启动定时器T1*/voidint1_zd(void)interrupt2using0/*{TR2=1; /*ET2=1;ET1=1;}外部中断INT1*/启动定时器T2*/main(){T2CON=0x00;TH2=(65536-36000)/256;TL2=(65536-36000)%256;TMOD=0X10;TH1=(65536-50000)/256;TL1=(65536-50000)%256;IT1=1; /* 设INT1为跳变沿触发中断*/EX1=1;EA=1;deng=0x40;while(1){};5智能温度控制系统可靠性和精度分析传统的A/D转换器大多采用积分式或逐次比较式转换技术,其噪声容限低,抑制混叠噪声及量化噪声的能力比较差。课题采用了高性能的2—A式 A/D转换器,它能以很高的采样速率和很低的采样分辨力将模拟信号转换成数字信号,再利用过采样、噪声整形和数字滤波技术,来提高有效分辨力。2-A式 A/D转换器不仅能滤除量化噪声,而且对外围元件的精度要求低;由于采用了

温馨提示

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

评论

0/150

提交评论