还剩48页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
温度控制单元的模型设计摘要在现代社会中,温度控制不仅应用在工厂生产方面,其作用也体现到了各个方面,随着人们生活质量的提高,酒店厂房及家庭生活中都会见到温度控制的影子,温度控制将更好的服务于社会本案例是一个典型的智能电子系统设计以DS18B20为采集器、89C51为处理器、相应驱动电路为执行器来完成设计任务提出的温度控制要求系统能够通过键盘进行温度设定、能够将测量的温度通过两位数码管动态显示(附加低温指示灯),根据设定值对外界温度进行调控以使外界达到用户需要的温度,并使其恒定在这一温度范围人性化的键盘设计使设置温度简单快速,通过对系统软件和硬件设计的合理规划,发挥单片机自身集成众多系统级功能单元的优势,在不减少功能的前提下有效降低了硬件成本,系统操控简便关键词单片机DS18B20温度传感器温度检测温度控制ModelDesignofTemperatureControlUnitABSTRACTInmodernsocietythetemperaturecontrolisnotonlyusedinfactoryproductionitsroleisalsoreflectedtothevariousaspects.Aspeopleimprovethequalityoflifethehotel、plantandfamilylifecouldseetheeffectsoftemperaturecontroltemperaturecontrolwillbebetterservicesinthecommunity.Thiscaseisatypicalintelligentelectronicsystemdesign.ToDS18B20forthecollector89C51fortheprocessorthecorrespondingdrivercircuitfortheactuatortocompletethedesigntasksofthetemperaturecontrolrequirements.Thetemperaturevalueofthesystemcanbesettedthroughthekeyboard.ThemeasuredvalueofthetemperaturedisplaysbytwoNixietubeadditionallowtemperaturemarklight.AccordingtosettingvalueSystemregulatetheexternaltemperaturetoreachtheuserneedsandmakeitconstantinthistemperaturerange.Humanizedkeyboarddesignmakesthesettingthetemperatureeasilyandquicklythroughthesystemsoftwareandhardwaredesignofrationalplanningtoachievesinglechip’smanyadvantagesofintegratedsystem-levelfunctionalunitsnotthepremiseofreducingfunctioneffectivelyandreducesthecostofhardware.systemcontrolissimple.Keywords:SinglechipDS18B20temperaturepickupTemperaturedetectionTemperaturecontrol目录中文摘要Ⅰ外文摘要Ι第一章绪论
11.1课题研究的背景和意义
1.2温度控制系统的发展前景第二章系统概述3第三章总体方案设计
43.1结构介绍
3.2硬件设计硬件各单元方案设计与选择
3.
2.2单元电路设计
3.
2.3特殊器件介绍
3.3软件设计
3.
3.1软件总体设计
3.
3.2编程说明
3.
3.3程序清单
3.4系统仿真及调试
3.
4.1仿真
3.
4.2系统调试13结论31参考文献32附录33后记42第一章.绪论
1.1课题研究的背景和意义在人类的生活环境中,温度扮演着极其重要的角色温度是工业生产中常见的工艺参数之一,任何物理变化和化学反应过程都与温度密切相关,因此温度控制是生产自动化的重要任务对于不同生产情况和工艺要求下的温度控制,所采用的加热方式,燃料,控制方案也有所不同无论你生活在哪里,从事什么工作,无时无刻不在与温度打着交道自18世纪工业革命以来,工业发展对是否能掌握温度有着绝对的联系在冶金、钢铁、石化、水泥、玻璃、医药等等行业,可以说几乎80%的工业部门都不得不考虑着温度的因素典型如在化学工业、生物工程、医疗工程好、机械制造等多个领域的生产过程中经常需要非常严格的温度条件来进行某些特定的生产和实验,因此需要在这些过程中进行可靠的温度控制温度控制系统在国内各行各业的应用虽然已经十分广泛,但从生产的温度控制器来讲,总体发展水平仍然不高,同日本、美国、德国等先进国家相比有着较大差距目前,我国在这方面总体技术水平处于2O世纪8O年代中后期水平,成熟产品主要以“点位”控制及常规的PID控制器为主它只能适应一般温度系统控制,难于控制滞后、复杂、时变温度系统控制而适应于较高控制场合的智能化、自适应控制仪表,国内技术还不十分成熟,形成商品化并在仪表控制参数的自整定方面,国外已有较多的成熟产品但由于国外技术保密及我国开发工作的滞后,还没有开发出性能可靠的自整定软件控制参数大多靠人工经验及现场调试确定国外温度控制系统发展迅速,并在智能化、自适应、参数自整定等方面取得成果日本、美国、德国、瑞典等技术领先,都生产出了一批商品化的、性能优异的温度控制器及仪器仪表,并在各行业广泛应用它们主要具有如下的特点一是适应于大惯性、大滞后等复杂温度控制系统的控制;二是能够适应于受控系统数学模型难以建立的温度控制系统的控制;三是能够适应于受控系统过程复杂、参数时变的温度控制系统的控制;四是温度控制系统普遍采用自适应控制、自校正控制、模糊控制、人工智能等理论及计算机技术,运用先进的算法,适应的范围广泛;五是温控器普遍具有参数自整定功能借助计算机软件技术,温控器具有对控制对象控制参数及特性进行自动整定的功能有的还具有自学习功能,能够根据历史经验及控制对象的变化情况,自动调整相关控制参数,以保证控制效果的最优化;六是具有控制精度高、抗干扰力强、鲁棒性好的特点目前,国外温度控制系统及仪表正朝着高精度、智能化、小型化等方面快速发展随着科学技术的迅速发展和进步,对实验条件或者工作环境的要求越来越高,伴随着高精度、高稳定性控制要求的出现,温度控制系统的研究与发展也越来越重要
1.2温度控制系统的发展前景传统的温度控制多采用温控仪表来实现,由于采用模拟控制,所以其控制精度有限,设计功能也不多近年来的发展状况是向数字化和智能化方向发展,在温度控制系统中也越来越多地采用计算机技术进行控制,由于计算机运行速度快、计算能力高、控制精度好等多种优点的存在,一些大型的自动控制系统往往采用计算机直接进行控制,对于一些小型系统多采用单片机来实现,采用单片机对温度进行控制,不仅具有控制方便、组太简单和灵活性大等优点,而且可以大幅度提高被控温度的技术指标,从而能够大大提高产品的质量和数量因此,用单片机对温度进行控制在工业生产和生活应用中被广泛的采用目前社会上温度控制大多采用智能调节器,国产调节器分辨率和精度较低,温度控制效果不是很理想,但价格便宜,国外调节器分辨率和精度较高,价格较贵从市场角度看,如果我国的大中型企业将温度控制系统引入生产,可以降低消耗,控制成本,从而提高生产效率嵌入式温度控制系统符合国家提出的“节能减排”的要求,符合国家经济发展政策,具有十分广阔的市场前景现今,应用比较成熟的如电力脱硫设备中,主控制器在主蒸汽温度控制系统中的应用,已经达到了世界前进水平电力部门1980年产生废气是现今的八倍,节约了两倍的初级能源,相当于少开采了三个中型煤矿如今,在微电子行业中,温度控制系统也越来越重要,如单晶炉、神经网络系统的控制因此,温度控制系统经济前景非常广泛,我国的高新精尖行业研究其应用的意义更是更加重大第二章.系统概述本文所要研究的课题是基于单片机的温度控制系统的设计,用单片机技术及相应的仿真平台进行开发,通过数据采集系统将温度信号传输给单片机,以加热灯(用来表示加热状态)和风扇为执行器件,通过单片机系统及相应外围电路的设计和软件编程来实现对温度的实时控制,从而达到所设定的温度要求,并使其恒定在这一温度,实现了对周围环境温度的显示、控制及报警所控温度为封闭系统的小范围环境的温度,温度控制部分,提出了用DS18B
20、89C51单片机及LED的硬件电路完成对周围环境温度的实时检测及显示,利用DS18S20与单片机连接由软件与硬件电路配合来实现对加热降温器件的实时控制及超出设定的上下限温度的报警系统......它具有微型化、低功耗、高性能、抗干拢能力强、易配微处理器等优点,特别适合于构成多点温度测控系统,可直接将温度转化成串行数字信号供微机处理,而且每片DS18S20都有唯一的产品号并可存入其ROM中,以便在构成大型温度测控系统时在单线上挂接任意多个DS18S20芯片从DS18S20读出或写入DS18S20信息仅需要一根口线,其读写及温度变换功率来源于数据总线,该总线本身也可以向所挂接的DS18S20供电,而无需额外电源设计的主要要求如下
1、温度设定范围为-10℃~99℃,最小区分温度为1℃,标定温差≤1℃
2、用二位十进制数码显示当前温度
3、能根据设定的温度实现自动加热或降温处理
4、设计出控制系统电路单元第三章.总体方案设计
3.1结构介绍本设计的温度测量及加热降温控制系统以AT89C51单片机为核心部件,外加温度采集电路、键盘及显示电路、加热控制电路和越限报警等电路采用单总线型数字式的温度传感器DS18B20,及行列式键盘和动态显示的方式,以容易控制的固态继电器作加热控制的开关器件通过温度传感器对空气进行温度采集,将采集到的温度信号传输给单片机,再由单片机控制显示器,并比较采集温度与设定温度是否一致,然后驱动加热管或风扇对加热或降温循环对空气进行处理从而模拟实现温度控制单元的工作情况总体方案结构如下图所示89C51温度传感器输入部分空气器件控制(加热)显示部分器件控制(降温)温度控制单元结构图实现方案的技术路线为用按钮输入设定温度值,用LED实时现实环境空气温度,用驱动电路控制加热和降温环节根据设定温度值计算并输出触发信号来控制驱动电路工作用仿真软件对设计进行仿真和调试,用汇编语言完成软件编程如下图所示
3.2硬件设计硬件设计部分先寻找单元电路最合适的设计方案,再进行单元电路设计最后介绍所用到的几个特殊器件
3.
2.1硬件各单元方案设计与选择硬件电路设计应该遵循从模块到整体的设计方法,在各个模块具体功能设计完成后再将整个系统电路进行合成,合成时应该注意各个模块之间连接的正确与可靠该系统的核心是单片机最小系统的设计,单片机一旦将系统的各个功能模块通过硬件电路连接到一起,而且系统软件设计的重点也在于单片机如何有效地对各个功能模块进行控制,以实现整个系统的的功能单片机最小系统设计本设计中单片机时钟采用内时钟方式,通过在XTAL1和XTAL2引脚上外接电容和石英晶体使单片机内部振荡器产生自激振荡,晶体选用12MHz,电容选择30pF复位电路设计应该能够实现上电复位和开关复位,通过一个RC串联电路实现复位当上电时,电容充电,电路中产生电流,给复位引脚一个高电平,是单片机复位,充电完毕后电位变低,系统进入正常工作另外复位引脚还通过一个开关连接到系统电源,当需要进行复位时,只需按一下开关即可实现系统复位这样同时实现了对系统的上电复位和开关复位功能如图所示
1.温度传感部分要求对温度与温度有关的参量进行检测,应该考虑用热敏电阻传感器按照热电阻的性质可以分为半导体热电阻和金属热电阻两大类,前者通常称为热敏电阻,后者称为热电阻方案1采用热敏电阻,这种电阻时利用对温度敏感的半导体材料制成,其阻值随温度的变化负温度系数热敏电阻通常是由锰、钴的氧化物烧制成半导体陶瓷制成其特点是,在工作温度范围内,电阻阻止随温度的升高而降低可满足40℃~90℃测量范围,但热敏电阻精度、重复性、可靠性较差,不适用与检测小于1℃的信号;而且线性度很差,不能直接用于A/D转换,应该用硬件或软件对其进行线性化补偿方案2采用温度传感器铂电阻Pt1000铂热电阻的物理化学性能在高温和氧化性介质中很稳定,它能用于工业测温元件,且此元件线性较好在0℃~100℃时,最大非线性偏差小于
0.5℃铂热电阻与温度的关系是,Rt=R01+At+Bt*t;其中Rt是温度为t摄氏度时的电阻;R0是温度为0℃时的电阻;t为任意温度值,A、B为温度系数但是其成本太贵,不适合做普通设计方案3采用温度集成传感器,如常用的AD590和DS18B20AD590是电流型温度传感器这种器件以电流作为输出量指示温度,其典型的电流温度灵敏度是1μΑ/K.他是二端器件,使用非常方便,作为一种高阻电流源,它不需要严格考虑传输线上的电压信号损失和噪声干扰问题,因此特别适合作为远距离测量或控制用另外AD590也特别适用于多点温度测量系统,而不必考虑选择开关或者CMOS多路转换开关所引起的附加电阻造成的误差由于采用了一种独特的电路结构,并利用最新的薄膜电阻激光微调技术校准,使得AD950具有很高的精度,并且应用电路简单,便于设计DS18B20也具有大致的特点,比起AD590其更为明显的一点是它可以直接输出数字信号,从而不用在电路系统中另设A/D转换单元,方案选择选择方案3中的DS18B20理由电路简单稳定可靠、无需调试,节省了硬件成本和编写程序的工作量
2、数字显示部分通常的LED显示器有7段或8段和“米”字段之分这种显示器有共阳极和共阴极两种共阴极LED显示器的发光二极管的共阴极连接在一起,通常此共阴极接地当某个发光二极管的阳极为高电平时,发光二极管点亮,相应的段被现实同样,共阳极LED显示器的工作原理也一样方案1采用静态显示方式在这种方式下,各位LED显示器的共阳极(或共阴极)连接在一起并接地(或电源正),每位的段选线分别与一个8位的锁存器输出相连,各个LED的显示字符一经确定,相应锁存器的输出将维持不变,直到显示另一个字符为止,正因为如此,静态显示器的亮度都较高若用I/O接口,这需要占用N×8位I/O口(LED显示器的个数N)这样的话,如果显示器的个数较多,那使用的I/O接口就更多,因此在显示位数较多的情况下,一般都不用静态显示方案2采用动态显示当多位LED显示时,通常将所有位的段选线相应的并联在一起,有一个8位I/O口控制,形成段选线的多路复用而各位的共阳极或共阴极分别有相应的I/O口线制,实现各位的分时选通其中段选线占用一个8位I/O口,而位选线占用N个I/O口(N为LED显示器的个数)由于各位的段选线并联,段码的输出对各位来说都是相同的,因此,同一时刻,如果各位选线都处于选通状态的话,那LED显示器将显示相同的字符若要各位LED能显示出与本位相应的字符,就必须采用扫描显示方式,即在某一时刻,只让某一位的位选线处于选通状态,而其他各位的位选线处于关闭状态,同时,段选线上输出相应位要显示字符的段码这种显示方式占用的I/O口个数为8+N(N为LED显示器的个数),相对静态显示少了很多,但需要占用大量的CPU资源,当CPU处理别的事情时,显示可能出现闪烁或者不显示的情况方案3采用移位寄存器扩展I/O口,只需要占用3个I/O口,即数据(DATA)、时钟(CLOCK)、输出使能(OUTPUT ENABLE),从理论上讲就可以无限制的扩展I/O口,而且显示数据为静态显示,几乎不占用CPU资源采用扩展口后,又能采用静态显示,这样,即解决了静态显示占用I/O口多的问题,也解决了动态显示不稳定、容易闪烁,占用CPU资源过多的问题方案选择选择方案3理由非常节约I/O口,又有静态显示的特点,亮度高,节约CPU的使用率加热降温控制电路采用开关量控制,如继电器、双向可控硅、光耦等,但是双向可控硅驱动电路比较麻烦,调试也麻烦,光电耦合器和固态继电器是不错的选择方案1采用单项晶闸管,这是一种大功率半导体器件,它既有单向导电的整流作用,又有可以控制开关的作用利用它可以用较小的功率控制较大功率在交、直流电动机调速系统、调控系统、随动系统和无触点开关等方面均获得广泛的应用这种晶闸管与二极管不同的是,当其两端加上正向电压而控制极不加电压时,晶闸管并不导通,其正向电流很小,处于正想阻断状态;当加上正向电压、且控制极(与阴极间)也加上一正向电压时,晶闸管便进入到通状态,这时管压降很小(1V左右)这时即使控制电压消失,仍然保持导通状态,所以控制电压没有必要一直存在,通常采用脉冲形式,以降低触发功耗它不具有自关断能力,要切断负载电流,只有使阳极电流减小到维持电流一下,或加上反向电压实现关断若在交流回路中应用,当电流过零或进入负半周时,自动关断,为了使其再次导通,必须重加控制信号方案2采用光耦合双向可控硅驱动电路,这种器件是一种单片机输出与双向可控硅之间较理想的借口器件,它有输入与输出两部分组成,输入部分是一个砷化镓发光二极管该二极管在5mA~15mA正向电流作用下发出足够强度的红外光,触发输出部分输出部分是一个硅双敏双向可控硅,在红外线的作用下可双向导通光电耦合器也常用于较远距离的信号隔离传送一方面光耦合器可以起到隔离两个系统地线的作用,使两个系统的电源相互独立,消除地电位不同所产生的影响另一方面,光耦合器的发光二极管是电流驱动器件,可以形成电流环路的传送形式由于电流环电路是低阻抗电路,对噪音的敏感度极低,因此提高通讯系统的抗干扰能力常用于有噪音干扰的环境里传输信号方案3若用现成的固态继电器,它的控制确实是极为方便,但是在较复杂的执行电路中,若用继电器是要注意其电感的反向电动势,和开关触点对电源的影响,以及开关脉冲对整个电路的影响等,应该加入必要的防止干扰的措施方案选择选择方案3理由鉴于这个设计中继电器只是用于风扇控制,且电源是外界恒定电源,选用继电器的其优势更为明显,开关量容易控制,驱动简单,通讯系统的抗干扰能力强4.键盘输入部分常用的键盘接口为独立式按键接口和矩阵式键盘接口方案1采用4×4矩阵键盘输入,这种接口方式适用于案件数量较多的场合,它有行线和列线组成,按键位于行列的交叉点上矩阵键盘的工作原理是按键设置在行列线交点上行列线分别连接到按键开关的两端行线通过上拉电阻接到+5V上平时无按键按下时,行线处于高电平状态,而当有按键按下时,行线电平状态将由与此电平相连的列线电平决定列线电平如果为低,则行线电平为低;列线电平为高,则行线电平也为高这是识别矩阵键盘是否被按下的关键所在由于矩阵键盘中行列线为多键共用,各按键均影响按键所在行和列的电平,因此,各按键彼此将相互发生影响,所以必须将行列线信号配合起来并作适当处理,才能决定闭合键位置对于矩阵式键盘,按键的位置有行号和列号唯一决定,所以分别对行号和列号进行二进制编码,然后将两值合成一个字节,高4位是行号,低4位是列号但这种编码对于不同行的键,离散性大,并且编码的复杂度与键盘的个数成正比,因此不适合用在输入量小的设计中方案2采用独立式按键接口,这种方式是各种按键相互独立,每个按键各接一根输入线,一根输入线上的按键工作状态不会影响到其他输入线上的工作状态因此,通过检测输入线上的电平状态可以很容易判断那个按键被按下了独立式按键电路配置灵活,软件简单但每个按键需要占用一根输入口线,在按键数量较多时,需要较多的输入口线且电路结构复杂,故此种键盘使用与按键较少或操作速度较高的场合,独立式按键电路按键直接与单片机的I/O口相接,通过读I/O口,判定各I/O口线的电平状态,即可识别出按下的键盘方案选择选择方案2理由减少单片机的I/O口使用,设计简单配置灵活,软件简单虽然每个按键需占用一根输入口线,但是该设计所用按键较少
3.
2.2单元电路设计温度测控系统包含电源部分、显示部分、声光报警部分、温度采集部分、电机控制部分(风扇部分)、主控制器部分各个部分的通用电路如下1.温度采集部分温度采集电路主要由数字温度传感器DSB18B20来组成,如图
(3)所示数字温度传感器具有较高精度和重复性(重复性优于
0.1℃,其良好的非线性可以保证优于
0.1℃的测量精度,利用其重复性较好的特点,通过非线性补偿,可以达到
0.1℃的测量精度)集成温度传感器的输出形式为电压输出和电流输出两种电压输出行的灵敏度一般为100mV/K温度0℃时输出为0,温度25℃输出为
2.985V,电流输出型的灵敏度一般为1μΑ/K图
(3)DS18B20的特性DS18B20可以程序设定9~12位的分辨率,精度为±
0.5°C可选更小的封装方式,更宽的电压适用范围分辨率设定,及用户设定的报警温度存储在EEPROM中,掉电后依然保存DS18B20的性能是新一代产品中最好的!性能价格比也非常出色!DS1822与DS18B20软件兼容,是DS18B20的简化版本省略了存储用户定义报警温度、分辨率参数的EEPROM,精度降低为±2°C,适用于对性能要求不高,成本控制严格的应用,是经济型产品继一线总线的早期产品后,DS1820开辟了温度传感器技术的新概念DS18B20和DS1822使电压、特性及封装有更多的选择,让我们可以构建适合自己的经济的测温系统
一、DS18B20的主要特性
(1)适应电压范围更宽,电压范围
3.0~
5.5V,在寄生电源方式下可由数据线供电
(2)独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯
(3)DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温
(4)DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内
(5)温范围-55℃~+125℃,在-10~+85℃时精度为±
0.5℃
(6)可编程的分辨率为9~12位,对应的可分辨温度分别为
0.5℃、
0.25℃、
0.125℃和
0.0625℃,可实现高精度测温
(7)在9位分辨率时最多在
93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快
(8)测量结果直接输出数字温度信号,以一线总线串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力
(9)负压特性电源极性接反时,芯片不会因发热而烧毁,但不能正常工作
2.显示部分采用74LS164与单片机连接,如图所示数码管使用条件a、段及小数点上加限流电阻b、使用电压段根据发光颜色决定; 小数点根据发光颜色决定c、使用电流静态总电流80mA(每段10mA);动态平均电流4-5mA 峰值电流100mA上面这个只是七段数码管引脚图,其中共阳极数码管引脚图和共阴极的是一样的,4位数码管引脚图请在本站搜索我也提供了数码管使用注意事项说明(1)数码管表面不要用手触摸,不要用手去弄引角;(2)焊接温度260度;焊接时间5S(3)表面有保护膜的产品可以在使用前撕下来数码管测试方法与数字显示译码表本设计进行了I/O口的扩充,并通过74LS164与LED连接达到现实的目的74LS164是8位串入并出移位寄存器,当单片机串行口工作在方式0的发送状态时,串行数据由P
3.0(RXD)送出,移位时钟由P
3.1(TXD)送出在移位时钟的作用下,串行口发送缓冲器的数据一位一位的移入74LS164中需要指出的是,由于74LS164无并行输出控制端,因而在串行输入过程中,其输出端的状态会不断的变化,故在某些应用场合,在74LS164的输出端应加接输出三态控制其传输方式采用串行口方式0的数据传送,可采用中断方式,也可采用查询方式,无论哪种方式,都要借助于TI或RI标志串行发送时,可以靠TI置位(发完一帧数据后)引起中断申请,在中断服务程序发送下一帧数据,或者通过查询TI的状态,只要TI为0就继续查询,TI为1就结束查询,发送下一帧数据在串行接收时,则由RI引起中断或对RI查询来确定何时接受下一帧数据无论采用什么方式,在开始通讯之前,都要先对控制寄存器SCON进行初始化在方式0中,将00H送SCON就可以了3.声光报警部分通过蜂鸣器、两个发光二极管,直接连单片机引脚组成4.电机控制部分(风扇部分)通关三极管的开关作用,控制几点起得闭合,从而达到控制电机的转动的效果5.主控制器部分89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机单片机的可擦除只读存储器可以反复擦除100次该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的89C51是一种高效微控制器,89C2051是它的一种精简版本.结构特点 8位CPU;片内振荡器和时钟电路;32根I/O线;外部存贮器寻址范围ROM、RAM64K;2个16位的定时器/计数器;5个中断源,两个中断优先级;全双工串行口;布尔处理器;6.按键设计部分采用独立式按键设计,如图所示每个按键各接一根输入线,一根输入线上的按键工作状态不会影响其他输入线上的工作状态,软件设计采用查询方式和外部中断相结合的方法来设计,低电平有效按键直接与单片机的I/O口相连接,通过读I/O口,判定各I/O口的电平状态,即可识别按下的按键五个按键分别接到P
0.
0、P
0.
1、P
0.
2、P
0.
3、P
0.4对于这种键各程序可以采用中断查询的方法功能就是检测是否有键闭合,如有键闭合,则去除键抖动,判断键号并转入相应的键处理,其功能很简单,4个键定义如下P
0.0下限,进入温度下限状态P
0.1上限,进入温度上限设定状态P
0.2加一,进设定状态之后,按此键则温度设定加1℃P
0.3减一,进设定状态之后,按此键则温度设定加1℃P
0.4确定,确定设定状态7.电源电路系统电源主要提供系统中各个芯片供电系统内部各个芯片包括键盘和显示部分均只需要单一5V直流供电,因此系统电源设计比较简单,整个系统内部采用单一电源电路可由USB接口直接提供直流+5V电压
3.
2.3特殊器件介绍1.单片机89C5189C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机与工业标准的MCS-51指令集和输出管脚相兼容由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的89C51是一种高效微控制器,89C2051是它的一种精简版本89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案采用高性能的静态80C51设计由先进CMOS工艺制造并带有非易失性Flash程序存储器全部支持12时钟和6时钟操作P89C51X2和P89C52X2/54X2/58X2分别包含128字节和256字节RAM32条I/O口线3个16位定时/计数器6输入4优先级嵌套中断结构1个串行I/O口可用于多机通信I/O扩展或全双工UART以及片内振荡器和时钟电路此外由于器件采用了静态设计可提供很宽的操作频率范围频率可降至0可实现两个由软件选择的节电模式空闲模式和掉电模式空闲模式冻结CPU但RAM定时器串口和中断系统仍然工作掉电模式保存RAM的内容但是冻结振荡器导致所有其其它的片内功能停止工作由于设计是静态的时钟可停止而不会丢失用户数据运行可从时钟停止处恢复1.主要特性·与MCS-51兼容·4K字节可编程闪烁存储器寿命1000写/擦循环数据保留时间10年·全静态工作0Hz-24Hz·三级程序存储器锁定·128*8位内部RAM·32可编程I/O线·两个16位定时器/计数器·5个中断源·可编程串行通道·低功耗的闲置和掉电模式·片内振荡器和时钟电路2.管脚说明VCC供电电压GND接地P0口P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流当P1口的管脚第一次写1时,被定义为高阻输入P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高P1口P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故在FLASH编程和校验时,P1口作为第八位地址接收P2口P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入并因此作为输入时,P2口的管脚被外部拉低,将输出电流这是由于内部上拉的缘故P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容P2口在FLASH编程和校验时接收高八位地址信号和控制信号P3口P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流当P3口写入“1”后,它们被内部上拉为高电平,并用作输入作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故P3口也可作为AT89C51的一些特殊功能口,如下表所示口管脚备选功能P
3.0RXD(串行输入口)P
3.1TXD(串行输出口)P
3.2/INT0(外部中断0)P
3.3/INT1(外部中断1)P
3.4T0(记时器0外部输入)P
3.5T1(记时器1外部输入)P
3.6/WR(外部数据存储器写选通)P
3.7/RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号RST复位输入当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间ALE/PROG当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节在FLASH编程期间,此引脚用于输入编程脉冲在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6因此它可用作对外部输出的脉冲或用于定时目的然而要注意的是每当用作外部数据存储器时,将跳过一个ALE脉冲如想禁止ALE的输出可在SFR8EH地址上置0此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用另外,该引脚被略微拉高如果微处理器在外部执行状态ALE禁止,置位无效/PSEN外部程序存储器的选通信号在由外部程序存储器取指期间,每个机器周期两次/PSEN有效但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现/EA/VPP当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)XTAL1反向振荡放大器的输入及内部时钟工作电路的输入XTAL2来自反向振荡器的输出3.振荡器特性XTAL1和XTAL2分别为反向放大器的输入和输出该反向放大器可以配置为片内振荡器石晶振荡和陶瓷振荡均可采用如采用外部时钟源驱动器件,XTAL2应不接有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度4.芯片擦除整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式在闲置模式下,CPU停止工作但RAM,定时器,计数器,串口和中断系统仍在工作在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止
5.结构特点8位CPU;片内振荡器和时钟电路;32根I/O线;外部存贮器寻址范围ROM、RAM64K;2个16位的定时器/计数器;5个中断源,两个中断优先级;全双工串行口;布尔处理器;2.DS18b20数字式温度传感器DS18b20“一线总线”数字化温度传感器是DALLAS最新单线数字温度传感器,支持“一线总线”接口,测量温度范围为-55°C~+125°C,在-10~+85°C范围内精度为±
0.5°C现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性适合于恶劣环境的现场温度测量,与前一代产品不同,新的产品支持3V~
5.5V的电压范围,使系统设计更灵活、方便而且新一代产品更便宜,体积更小DS18B20可以程序设定9~12位的分辨率,精度为±
0.5°C可选更小的封装方式,更宽的电压适用范围分辨率设定,及用户设定的报警温度存储在EEPROM中,掉电后依然保存DS18B20的性能是新一代产品中最好的!性能价格比也非常出色!省略了存储用户定义报警温度、分辨率参数的EEPROM,精度降低为±2°C,适用于对性能要求不高,成本控制严格的应用,是经济型产品继“一线总线”的早期产品后,DS1820开辟了温度传感器技术的新概念DS18B20和DS1822使电压、特性及封装有更多的选择,让我们可以构建适合自己的经济的测温系统DS18B20的内部结构DS18B20内部结构主要由四部分组成64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器DS18B20的管脚排列如下:DQ为数字信号输入/输出端;GND为电源地;VDD为外接供电电源输入端(在寄生电源接线方式时接地)光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码64位光刻ROM的排列是开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码读数形式提供,以
0.0625℃/LSB形式表达,其中S为符号位这是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℃的数字输出为FC90HDS18B20温度传感器的存储器DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的E2RAM后者存放高温度和低温度触发器TH、TL和结构寄存器暂存存储器包含了8个连续字节,前两个字节是测得的温度信息,第一个字节的内容是温度的低八位,第二个字节是温度的高八位第三个和第四个字节是TH、TL的易失性拷贝,第五个字节是结构寄存器的易失性拷贝,这三个字节的内容在每一次上电复位时被刷新第
六、
七、八个字节用于内部计算第九个字节是冗余检验字节该字节各位的意义如下TMR1R011111低五位一直都是1,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式在DS18B20出厂时该位被设置为0,用户不要去改动R1和R0用来设置分辨率,如下表所示(DS18B20出厂时被设置为12位)分辨率设置表:R1R0分辨率温度最大转换时间009位
93.75ms0110位
187.5ms1011位375ms1112位750ms根据DS18B20的通讯协议,主机控制DS18B20完成温度转换必须经过三个步骤每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作复位要求主CPU将数据线下拉500微秒,然后释放,DS18B20收到信号后等待16~60微秒左右,后发出60~240微秒的存在低脉冲,主CPU收到此信号表示复位成功DS1820使用中注意事项DS1820虽然具有测温系统简单、测温精度高、连接方便、占用口线少等优点,但在实际应用中也应注意以下几方面的问题1较小的硬件开销需要相对复杂的软件进行补偿,由于DS1820与微处理器间采用串行数据传送,因此,在对DS1820进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果在使用PL/M、C等高级语言进行系统程序设计时,对DS1820操作部分最好采用汇编语言实现2在DS1820的有关资料中均未提及单总线上所挂DS1820数量问题,容易使人误认为可以挂任意多个DS1820,在实际应用中并非如此当单总线上所挂DS1820超过8个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注意3连接DS1820的总线电缆是有长度限制的试验中,当采用普通信号电缆传输长度超过50m时,读取的测温数据将发生错误当将总线电缆改为双绞线带屏蔽电缆时,正常通讯距离可达150m,当采用每米绞合次数更多的双绞线带屏蔽电缆时,正常通讯距离进一步加长这种情况主要是由总线分布电容使信号波形产生畸变造成的因此,在用DS1820进行长距离测温系统设计时要充分考虑总线分布电容和阻抗匹配问题4在DS1820测温程序设计中,向DS1820发出温度转换命令后,程序总要等待DS1820的返回信号,一旦某个DS1820接触不好或断线,当程序读该DS1820时,将没有返回信号,程序进入死循环这一点在进行DS1820硬件连接和软件设计时也要给予一定的重视;
3.3软件设计系统软件设计就是在硬件电路设计的基础上对单片机进行编程,以实现单片机队外围电路的控制并根据一定的数据进行相应的运算得到相应的输出,从而实现整个系统的功能
3.
3.1软件总体设计应用程序结构采用中断方式,主程序首先对各个口线及所用到的寄存器以及定时器进行初始化,然后就进行循环键盘检测和键值处理根据程序的功能,可以将以下几个功能程序作为模块程序设计温度设定输入键值处理温度检测温度显示脉冲输出控制对于模块程序的设计都是用函数实现,完成软件模块设计后,就要通过主程序将各个模块程序组织在一起,使其按照一定的时序逻辑,通过模块函数之间的相互调用来实现各个模块之间的配合,从而使软件整体能够按照设计的要求和流程有条不紊的进行,从而实现预期的控制目标键盘中断程序的优先级最高,每当有键按下时立即进入中断通过一些模块程序来实现特定的功能,每个模块都完成整个系统的一部分功能,通过主程序将它们有机的结合,从而能够按照设计的顺序和流程来实现整个系统的设计功能
3.
3.2编程说明软件设计从主程序流程图设计开始,依次编制出各子程序主程序流程图编写程序的前提说明数据脚P
2.2晶振12MHZ温度传感器18B20汇编程序采用器件默认的12位转化最大转化时间750微秒可以将检测到的温度直接显示到两个数码管上单片机内存分配申明TEMPER_LEQU29H;用于保存读出温度的低8位TEMPER_HEQU28H;用于保存读出温度的高8位FLAG1EQU38H;是否检测到DS18B20标志位a_bitequ20h;数码管个位数存放内存位置b_bitequ21h;数码管十位数存放内存位置
3.
3.3程序清单SHEDING1EQUP
0.0;;;;下限设定SHEDING2EQUP
0.1;;;;上限设定JIAEQUP
0.2;;;;加一JIANEQUP
0.3;;;;减一QUEDINGEQUP
0.4BAOJEQUP
3.4DQEQUP
3.7JIDIANQIEQUP
3.3ISP_DATAEQU0E2HISP_ADDRHEQU0E3HISP_ADDRLEQU0E4HISP_CMDEQU0E5HISP_TRIGEQU0E6HISP_CONTREQU0E7HISP_IAP_BYTE_READEQU1ISP_IAP_BYTE_PROGRAMEQU2ISP_IAP_SECTOR_ERASEEQU3WAIT_TIMEEQU0ORG00HAJMPMAINORG30HMAIN:MOVSP#60HCLREASETB20H.0SETB21H.0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;读EEPROM4个字节MOVR3#00MOVR0#50HJIXU:MOVISP_ADDRH#20HMOVISP_ADDRLR3MOVISP_CONTR#WAIT_TIMEORLISP_CONTR#10000000BMOVISP_CMD#ISP_IAP_BYTE_READMOVISP_TRIG#46HMOVISP_TRIG#0B9HNOPMOVAISP_DATAMOV@R0AINCR0INCR3CJNER3#4JIXU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;START:MOV30H#0MOV31H#0LCALLDISPLAYLCALLDEL100MSSHEDING:JNBSHEDING1ZHONGZHUAN;;;;;;;;;;;下限设定JNBSHEDING2SHANGXIAN1JNBQUEDINGREATT1SETBP
3.6AJMPSHEDINGSHANGXIAN1:LJMPSHANGXIANZHONGZHUAN:LJMPXIAXIANREATT1:LCALLDEL200MS;;;;;;;;;;;;;;;;;;;;;;;;;擦除EEPROM第一扇区MOVISP_ADDRH#20HMOVISP_ADDRL#00HMOVISP_CONTR#WAIT_TIMEORLISP_CONTR#10000000BMOVISP_CMD#ISP_IAP_SECTOR_ERASEMOVISP_TRIG#46HMOVISP_TRIG#0B9HNOP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;写入EEPROM4个字节MOVR0#50HMOVR3#00HZAILAI:MOVISP_DATA@R0MOVISP_ADDRH#20HMOVISP_ADDRLR3MOVISP_CONTR#WAIT_TIMEORLISP_CONTR#10000000BMOVISP_CMD#ISP_IAP_BYTE_PROGRAMMOVISP_TRIG#46HMOVISP_TRIG#0B9HNOPINCR0INCR3CJNER3#4ZAILAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;REATT:JNBQUEDINGSTARTLCALLREST;18b20复位程序MOVA#0CCHLCALLWRITEMOVA#44H;写入温度转化命令LCALLWRITELCALLDEL700MSJNBQUEDINGSTARTLCALLRESTMOVA#0CCHLCALLWRITEMOVA#0BEH;写入读取数据命令LCALLWRITELCALLREAD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MOV40HA;低8位LCALLREADMOV41HA;高8位MOVA41HJBACC.7FUWENDU1;检测温度正负,负温度的话小灯点亮;;;;;;;;;;;;;;;;;;;;;;;************将温度值放入43H中精确度为
0.5度*********AJMPBIJIAO;;;;;;;;;;;不需要????FUWENDU1:CLR20H.0LJMPFUWENDUBIJIAO:LCALLDIVE;;;上限在50H和51H中下限在52h和53h中LCALLDISPLAYMOVA53HMOVB#10MULABADDA52HCJNEA68HXIA1XIA1:JNCDIWEN;;;;;;;;;;;;低温报警MOVA51HMOVB#10MULABADDA50HCJNEA68HXIAXIA:JCCHAOWEN;;;;;;;;;;超温报警SETBP
3.4SETBP
3.5SETBJIDIANQILJMPREATTCHAOWEN:CLRP
3.4CLRJIDIANQILCALLDEL700MSJNBSHEDINGBACKSETBP
3.4AJMPREATTBACK:LJMPSTARTDIWEN:CLRP
3.5CLRP
3.4LCALLDEL500MSSETBP
3.5SETBP
3.4LCALLDEL300MSLJMPREATTSHANGXIAN:LCALLDEL100MS;;;;;完整,设定速度稍慢SHANGXIANIN:JNBJIAJIAYI;;;;;;;上限设定JNBJIANJIANYIJNBSHEDING2HERE2MOV30H50HMOV31H51HLCALLDISPLAYAJMPSHANGXIANINJIAYI:MOV30H50HMOV31H51HLCALLDISPLAYLCALLDEL100MS;;;;;;上限温度存放于50H51HINC50HMOVR150HCJNER1#10HEREMOV50H#0INC51HHERE:AJMPSHANGXIANINJIANYI:MOV30H50HMOV31H51HLCALLDISPLAYLCALLDEL100MSDEC50HMOVR150HCJNER1#0ffHHERE11MOV50H#9DEC51HHERE11:AJMPSHANGXIANINHERE2:;MOV30H#0;MOV31H#0LCALLDEL100MSLJMPSHEDINGXIAXIAN:LCALLDEL20MSXIAXIANIN:JNBJIAJIAYI1;;;;;;;;;;;;;下限设定JNBJIANJIANYI1JNBSHEDING1HEREGUN1MOV30H52HMOV31H53HLCALLDISPLAYAJMPXIAXIANHEREGUN1:LJMPHEREGUNJIAYI1:MOV30H52HMOV31H53HLCALLDISPLAYLCALLDEL100MSJNB21H.0FANZHEAJMPJIBAFANZHE:DEC52H;;;下限温度存放于52H53H中MOVA52HCJNEA#0MADEMOVA53HCJNEA#0RILESETB21H.0SETBP
3.6MADE:AJMPFANHUI1RILE:MOV52H#9MOV53H#0AJMPFANHUI1JIBA:INC52HMOVR152HCJNER1#10FANHUI1MOV52H#0INC53HFANHUI1:AJMPXIAXIANINJIANYI1:LCALLDEL100MSJNB21H.0FUZHIMOV30H52HMOV31H53HLCALLDISPLAYMOVA52HCJNEA#0XIAMIANMOVA53HCJNEA#0XIAMIANCLR21H.0CLRP
3.6FUZHI:INC52HMOVA52HCJNEA#10FAN1MOV52H#0MOV53H#1LJMPFAN1XIAMIAN:SETBP
3.6LCALLDEL100MSDEC52HMOVR152HCJNER1#0FFHFAN1;;;;;;;;;;;;;;;;;;;;;;MOV52H#9DEC53HFAN1:AJMPXIAXIANINHEREGUN:;MOV30H52H;MOV31H53HLCALLDEL100MSLJMPSHEDING;;;;;;;;;;;;;;;;;;;;;;完整,设定速度慢;;;;;;;;;;;;;;;负温度处理;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;完整FUWENDU:CLRP
3.6;;;;;;;;;负温度报警小灯亮MOVA40H;;;;;;;;;;;;;;40H低八位CPLA;;;;;;;;;;;;;;低八位取补码ADDA#1;;;;;;;;;;;;;;加一MOV40HAMOVA41H;;;;;;;;;;;;高八位相同的操作CPLAMOV41HALCALLDIVE;计算程序LCALLDISPLAY;显示程序MOVA53HMOVB#10MULABADDA52HJNB21H.0DASHALCALLDIWENDASHA:CJNEA68HHEIHEIHEIHEI:JCDIWEN11AJMPREATTDIWEN11:LJMPDIWEN;********************18b20初始化*****************;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;完整INT1820:LCALLRESTMOVA#0CCHLCALLWRITEMOVA#4EH;报警上下限LCALLWRITEMOVA#100LCALLWRITEMOVA#0LCALLWRITEMOVA#7FH;选择分辨率12位LCALLWRITERET;*****************18b20复位程序**********;;;;;;;;;;;;;;;;;;;;;;;;;;;完整REST:SETBDQMOVR2#170;;;;480US的低电平复位LB:CLRDQDJNZR2LBSETBDQ;;;;;;;;;;;;;;;;;;;;;;MOVR2#30LC:DJNZR2LC;;;;;;;;;;;;;;;;;;;;;;CLRCORLCDQJCLB;;;;;;;接受存在脉冲信号MOVR6#80;;;;;;R6LD:ORLCDQJCLPDJNZR6LDAJMPRESTLP:MOVR2#200LF:DJNZR2LF;;;;;等待400usRET;;;;;返回;**************写入程序***************************************WRITE:MOVR7#08HSETBDQNOPNOPWRLOOP:CLRDQMOVR6#07HDJNZR6$RRCAMOVDQCMOVR6#34H;;;;;;写入等待60USDJNZR6$SETBDQ;;;;;;;;DJNZR7WRLOOPRET;*****************读取程序*****************************************READ:MOVR7#08HSETBDQNOPNOPREADLOP:CLRDQNOPNOPNOPSETBDQMOVR6#07HDJNZR6$MOVCDQMOVR6#3CHDJNZR6$RRCASETBDQDJNZR7READLOPMOVR6#3CHDJNZR6$RET;************计算程序********40H为低,41H为高;;;;;;;30H为低,33H为高*************可以处理正温度和经取补码处理后的负温度DIVE:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;完整MOVA40HANLA#0F0HSWAPAMOV40HAMOVA41HANLA#0FHSWAPAMOV41HAADDA40HMOV68HAMOVA68H;将处理好的温度数据放入68H中以便比较使用MOVB#10DIVABMOV30HBMOVB#10DIVABMOV31HBRET;**************显示程序************两位数码管显示30H低位31H高位;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;完整DISPLAY:MOVR0#30HMOVA@R0MOVDPTR#TABMOVCA@A+DPTRMOVP1AINCR0MOVA@R0MOVDPTR#TABMOVCA@A+DPTRMOVP2ARET;;;;R1为低位DEL700MS:MOVR5#0FEHDL700MS0:MOVR6#0FAHDL700MS1:MOVR7#04HDJNZR7$JNBSHEDINGHUIQUDJNZR6DL700MS1DJNZR5DL700MS0HUIQU:RET;;;;R2为高位DEL20MS:MOVR5#0F1HDL20MS0:MOVR6#028HDJNZR6$DJNZR5DL20MS0RET;******延时10MS*******;^^^误差:超出5微秒^^^DEL10MS:MOVR5#0F4HDL10MS0:MOVR6#013HDJNZR6$DJNZR5DL10MS0RETDEL50MS:MOVR5#0ADHDL50MS0:MOVR6#08FHDJNZR6$DJNZR5DL50MS0RETDEL100MS:MOVR5#0FEHDL100MS0:MOVR6#04EHDL100MS1:MOVR7#01HDJNZR7$DJNZR6DL100MS1DJNZR5DL100MS0RETDEL300MS:MOVR5#0FFHDL300MS0:MOVR6#0EBHDL300MS1:MOVR7#01HDJNZR7$DJNZR6DL300MS1DJNZR5DL300MS0RETDEL500MS:MOVR5#0FEHDL500MS0:MOVR6#0DAHDL500MS1:MOVR7#03HDJNZR7$DJNZR6DL500MS1DJNZR5DL500MS0RETDELAY:MOVR5#50DELAY1:MOVR6#50DELAY2:DJNZR6DELAY2DJNZR5DELAY1RETDEL:MOVR5#200DEL1:MOVR6#250DJNZR6$DJNZR5DEL1RETDEL200MS:MOVR5#0FEHDL200MS0:MOVR6#09DHDL200MS1:MOVR7#01HDJNZR7$DJNZR6DL200MS1DJNZR5DL200MS0RETTAB:DB3FH30H6DH79H72H5BH5FH31H7FH7BHEND
3.4系统仿真及调试
3.
4.1仿真通过ISIS软件,进行仿真,其仿真过程如下设定了温控装置的温度上限值为12度,下限值为5度而此时的外界温度为3度,低于下限值,所以此时仿真之中是蜂鸣器鸣叫,加热灯开始闪亮工作仿真图如下通过18b20数字式温度传感器将外界温度在仿真中提高到13度,超过了上限值,蜂鸣器报警,风扇开始工作仿真图如下因为是截图不能展现动态的转动,可以观察风扇的角度已经因为转动而改变软件测试程序采用汇编语言,直接在单片机开发系统上模拟运行
3.
4.2系统调试
1.静态调试不通电源,补查期间,用万用表×100Ω档按图纸的接线点,看两点间的连线是否接通不好,如果有电阻存在或者不通,要究其原因,需将测试笔分别与两器件的插脚孔相接处,万用表指针应回零其中一测试笔不动,另一测试笔再与最近的两插脚孔接触一下,其阻值应无穷大,证明此线安装不误再依次测量其他各连线最后再测量电源正负极入口处电阻,应有一定阻值,说明电路安装有短路现象,绝不能在此情况下通电
2.通电测量仍不插器件,用万用表×10V档,黑表笔在公共地端保持不动,红表笔分别测量各器件插座的插脚孔段,只有与电源端相连或有关分压端的引脚才有电压,其他引脚都不应该有电压此检查至关重要电位器上的分压电源看是否可调,初步调整到所规定的电压数值
3.动态测试把所有器件插好通电,观察几秒,看电阻是否有发黑或冒烟现象,用手触摸一下集成器件,看是否有过热发烫,如果没有异常现象,立刻断电,重新再查原因用标准温度计进行实测,观察其误差
4.联机统调将程序写入单片机的ROM,通电测试第四章.结论现代电子系统的基本核心是嵌入式计算机系统简称嵌入式系统,而单片机是最典型、最广泛、最普及的嵌入式系统目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件本设计既是采用单片机实现了一个温度控制系统,完成了系统软硬件设计,以及样机的制作和调试,样机能够完成温度设定和控制输出以及温度检测和实时显示由于单片机的程序语言是汇编语言,其在智能系统的设计之中有着一定的方法规律,设计一个单片机典型应用方面的温度控制单元能够对我们掌握单片机技术起到明显的帮助作用所以在毕业设计过程中认真学习了汇编语言的编程与硬件电路的搭设并参考了大量相关文档与资料,为设计工作打下了坚实的检出 该温度控制系统采用自底向上的设计方法,从现成元件、线路中选出最合适的,设计成部件再组合成系统来实现温控功能模型基本实现设计功能,在设计过程中出现了不少问题使得方案加以不断改正由于设计的是模型,考虑到执行器件耗电量大与电源电路可以采用成熟电路,估在后期改用低压的USB直流电源而模型并非在封闭空间,难以获得温控范围的具体参数,电源功率也不够大,是以难以确定加热管的型号而改用加热灯来指示同时为了节省资源,负温度值的的显示不再采用数码管,而是利用低温指示灯来表示由此在满足性能指标和可靠性的基础上尽可能的节省了成本,缩减了功耗和体积 此次独立完成毕业设计和毕业论文,锻炼了自己数据信息搜集能力,逻辑分析能力,思考解决问题能力以及书面写作能力相信为日后的工作能够提供一定的经验致谢衷心感谢指导老师冯德军在毕设过程中给与的细心指导冯德军老师启发式的指导,让我在毕业设计过程中有明确的思路,使我真正理解了毕业设计的规范及应用,并在毕业设计过程中指出了不少缺点,提出了更好的建议冯德军老师严谨的治学态度也深深打动了我,使我更为深刻的感受到关于大学本科阶段的学习积累与实际应用创新之间的关联注释A/D部分简介模/数转换是一种将连续的模拟量转化成离散的数字量的一种电路或器件模拟信号转换为数字信号一般需要经过采样保持和量化编码两个过程针对不同的采样对象,有不同的A/D转换器(ADC)其中有通用的也有专用的在选择ADC器件时需要考虑多种因素,出了关键参数、分辨率和转换速度以外,还应考虑其他因素,如静态与动态精度、数据接口类型、控制接口与定时、采样保持性能、基本要求、校准能力、通道数量、功耗、使用环境要求、封装形式以及与软件有关的问题、在其实际应用中,除了要设计适当的采样/保持电路、基准电路和多路模拟开关等电路外,还应根据实际选择的具体芯片进行输入模拟信号极性转换等设计,极为繁琐,所以省去附录电路原理图主要参考文献数据采集与处理技术单片机技术与原理http://www.zlgmcu.com/周立功单片机。