《单片机恒温箱的设计.docx》由会员分享,可在线阅读,更多相关《单片机恒温箱的设计.docx(48页珍藏版)》请在课桌文档上搜索。
1、单片机恒温箱的设计目录弓I言1第1章蒯21.1 课题研究的背景21.2 课题研究的意义21.3 课题研究的内容2第2章智能恒温箱的系统概述42.1 系统的主要功能42.2 系统需求分析52.3 智能恒温箱的工作流程52.4 恒温箱的工作过程72.5 本章小结7第3章智能恒温箱的硬件设计83.1 硬件的电路设计概述83.2 总体硬件原理图83.3 时钟电路设计103.4 复位电路设计103.5 显示电路的设计113.5.1 显示电路概述113.5.2 七段LED数码管的原理113.5.3 显示电路整体设计133.6 开关键盘设计143.6.1 指拨开关143.6.2 按键开关143.7 指示灯电
2、路153.8 温度采集电路163.9 本章小结19第4章软件设计204.1 软件任务分析204.2 程序流程图204.3 本章小结25结论与展望26致谢27参考文献28附录APROTUES仿真图29硬件原理图30附录B一篇引用的外文文献及其译文3180C5133附录C主要参考文献题录及摘要37附录D主要源程序39插图清单图2-1系统主要功能模块方框图4图2-2恒温箱工作流程6图3-1总体硬件原理图9图3-2外部振荡电路10图3-3硬件复位电路11图3-4一位共阴极数码管引脚图12图3-5显示电路13图3-6开关电路14图3-7按键抖动电压波形15图3-9温度指示灯电路16图370温度采集电路1
3、6图4T主程序流程图21图4-2温度设定子程序流程图22图4-3温度采集计算子程序流程图23图4-4温度比较处理子程序流程图24图4-5温度显示子程序流程图24表格清单引言温度控制系统广泛应用于社会生活的各个领域,如家电、汽车、材料、电力电子等,常用的控制电路根据应用场合和所要求的性能指标有所不同,在工业企业中,如何提高温度控制对象的运行性能一直以来都是控制人员和现场技术人员努力解决的问题,开发出性能较好的温度控制系统对于测控技术的发展具有很大的意义。采用数字温度传感器DS18B20,因其内部集成了A/D转换器,使得电路结构更加简单,而且减少了温度测量转换时的精度损失,使得测量温度更加精确。数
4、字温度传感器DS18B20只用一个引脚即可与单片机进行通信,大大减少了接线的麻烦,使得单片机更加具有扩展性。由于DS18B20芯片的小型化,更加可以通过单跳数据线就可以和主电路连接,故可以把数字温度传感器DS18B20做成探头,探入到狭小的地方,增加了实用性。更能串接多个数字温度传感器DS18B20进行多范围的温度检测。由于单片机功能强大,可大大加快系统的开发与调试速度,并具有控制方便、简单、灵活等特点,因此本设计硬件电路以80C51单片机为核心来实现温度控制,具有实用性强、可靠性强等特点。第1章绪论1.1 课题研究的背景二十一世纪是科技高速发展的信息时代,电子技术、微型单片机技术的应用更是空
5、前广泛,是随着超大规模集成电路技术的发展而诞生的。由于它具有体积小、功能强、性价比高等特点,所以广泛应用于电子仪表、家用电器、节能装置、军事装置、机器人、工业控制等诸多领域,使产品小型化。智能化,既提高了产品的功能和质量,又降低了成本,简化了设计。它迅猛的发展到了各个领域,人们也越来越感到应用单片机技术的优越性,因而单片机也得到了广泛的应用。同时,它也不断地完善和发展。智能恒温箱的温度是医疗、工业生产和食品加工等领域的关键,因此对温度的测量及控制始终占据着重要的地位。市场上常见的温度传感器以电压输出为主要形式,不同的的传感器其非线性曲线也各不相同,缺乏一个产品应具备的通用性和互换性。温度传感器
6、应用范围很广、使用数量很大,但是在常规的环境参数中由于温度受其它因素影响较大,而且难以校准,因此,温度也是最难准确测量的一个参数。常规方法测量温度误差大、准确度低、测量滞后的时间长。今年来,国内传感器正向着集成化、智能化、网络化和单片机的方向发展,为开发新一代温度测量系统创造了有利条件。在智能恒温箱控制系统的设计中,用数字传感器将温度信号以数字信号的方式传送给单片机,经单片机处理后的温度数值,一方面送LED数码管显示;另一方面与给定值经行比较,判断温度高低,从而采取相应的措施:加热或者制冷。使温度达到设定值。智能恒温箱主要是用来控制温度,他为农业研究、生物技术、测试提供所需的各种环境模拟条件,
7、因此可广泛适用于药物、纺织、食品加工等无菌试验、稳定性检查以及工业产品的原料性能、产品包装、产品寿命等测试。随着单片机技术的飞速发展,通过单片机对被控制对象控制日益广泛,具有体积小、功能强、性价比高等特点,把单片机应用于温度控制系统中可以起到更好的控温作用,智能恒温箱是使用单片机进行温度控制的典型应用,采用单片机做主控单元可完成对温度的采集和控制等的要求。1.2 课题研究的意义智能恒温箱的性能在很大程度上取决于对温度的控制性能,本课题采用单片机为主控制器,通过数字传感器测得箱内温度,再将温度信号送入主控制器,来完成恒温箱的温度控制系统的硬件。箱内温度可保持在设定的温度范围内,当设置的温度低于实
8、时温度时,单片机送出加热信号;当设置的温度低于实时温度时,单片机送出制冷信号。1.3 课题研究的内容本次课题只设计温度采集,温度显示,和温度控制信号的送出部分,对于如何保温,如何加热和制冷不在此次设计的范围内。本系统采用模块化设计智能恒温箱,系统上电后默认设定的恒温温度为20C,使用时可以自行调节预期的恒温温度,调节范围为099。调节好后系统会将采集来的实时温度与设定的预期温度进行比较,如果实时温度比设定温度高就开启制冷设备,如果实时温度比预期温度低就开启加热设备。如果温度一样则不开启加热或制冷设备。在显示电路上通常显示的是实时的温度,即传感器采集来的温度,如果想要显示人们设定的预期温度可以按
9、显示切换键,这时显示器上就会显示预期温度,几秒钟后跳回,显示实时温度。显示实时温度时,表示显示的是实时温度的发光二极管点亮。而显示预期温度的时候,表示显示的是预期温度的发光二极管点亮。本论文章节的结构和内容如下:第一章:绪论。简要介绍了智能恒温箱的发展现状,说明了课题研究的内容。第二章:智能恒温箱的概述。说明了恒温箱的工作过程和主要功能,介绍了设计中需要用的单片机的基础知识,确定了本课题要达到的设计目标。第三章:智能恒温箱的硬件电路设计。详细描述了本课题各个组成电路单元的设计。第四章:智能恒温箱的软件设计。编写程序。第五章:总结。总结本次设计,指出设计中的一些问题,提出改善意见,并展望未来的设
10、计。第2章智能恒温箱的系统概述2.1 系统的主要功能本系统是借用单片机采用模块化设计的智能恒温箱,包括温度设定按钮,温度显示,温度调节,实时温度显示和预定温度显示转换按钮,温度采集等(根据需要也可另设或者多设相关功能)。显示系统除了显示实时的温度还能显示设定的温度,也就是人们想要保持的温度。系统的主要功能模块方框图如图2-1所示。2位七段数码管显示图2-1系统主要功能模块方框图本系统是采用模块化设计的智能恒温箱,在生活中有广泛的应用,系统上电后默认设定的恒温温度为20C,使用时可以自行调节预期的恒温温度,调节范围为099。调节好后系统会将采集来的实时温度与设定的预期温度进行比较,如果实时温度比
11、设定温度高就开启制冷设备,如果实时温度比预期温度低就开启加热设备。如果温度一样则不开启加热或制冷设备。在显示电路上通常显示的是实时的温度,即传感器采集来的温度,如果想要显示人们设定的预期温度可以按显示切换键,这是显示器上就会显示预期温度,几秒钟后跳回,显示实时温度。显示实时温度时,表示显示的是实时温度的发光二极管点亮。而显示预期温度的时候,表示显示的是预期温度的发光二极管点亮。单片机整个恒温箱的核心,内部电路设计用汇编语言编写。它完成了温度参数设定,温度采集计算,温度显示,温度比较,温度调节等功能。系统需求分析1.在使用中可以将采集来的温度数据计算转换为我们熟悉的摄氏温度。2 .在099C的范
12、围内,人们可以自由调节预期达到的温度o3 .可以将实时温度与预期温度进行比对,以正常调节温度。4 .将设定的预期温度和实时温度能显示出来。5 .通常显示实时温度,当按下显示切换键后能显示几秒钟的预期温度。2.3智能恒温箱的工作流程智能恒温箱的基本工作原理:在使用恒温箱时,系统会将从温度传感器采集来的温度转化为摄氏度的形式,与事先设定的预期温度进行比对,然后根据比对的结果采取相应的措施(加热,或制冷)来不断地接近以至于达到预期的温度。并且系统能够显示实时的温度和设定的预期温度。恒温箱的工作流程如图2-2所示:加载程序运行不进行温度设进入温度设定定温度加温度减温度采集与计算图2-2恒温箱工作流程2
13、.4恒温箱的工作过程1.设定预期温度。如果想调节预期的温度,先闭合“温度设定”开关,进入调节状态,此时会显示设定的温度值,如果想加一摄氏度就按下“加1C”键,如果想减一摄氏度就按一下“减键,温度LED显示器上会显示改变后的温度,调整范围为099。0时再减1会跳到99C,99C时再加会跳到OoCo要退出调节状态,断开“温度设定”开关即可。2 .温度采集和计算。单片机通过与温度传感器进行通信,获取实时温度信息,并将所获取的温度信息数据转化为摄氏温度的形式存储起来。3 .温度比较和温度调节。将存储的实时摄氏温度与设定的预期温度经行比较。如果实时温度高于设定温度,则开启制冷器;如果实时温度低于设定温度
14、,则开启加热器。4 .实时温度显示。将存储的实时温度显示在LED数码管上。5 .设定温度显示。若想查看设定的预期温度,则需按下“温度显示切换”按键,然后LED显示器就会显示设定预期的温度,显示时间为数秒,跳出预期温度的显示。若再想查看预期温度显示需再次按下“温度显示切换”按键。总而言之,本课题利用80C51单片机及外围接口实现的温度控制系统设计了恒温箱,该恒温箱提高了系统的可靠性,简化了电路结构,节约了成本,是一个实用的工程设计。2.5本章小结本章主要讲述了恒温箱的工作原理和本设计系统的工作流程。在说明工作原理的过程中,突出了电路的组成单元以及这些单元如何实现温度采集和温度控制等功能。在说明系
15、统流程时,结合本设计的内容,指出了参数设置的方法和意义。第3章智能恒温箱的硬件设计3.1硬件电路设计概述本设计分为硬件设计和软件设计,这两者相互结合,不可分离:从时间上看,硬件设计的绝大部分工作量是在最初阶段,到后期往往还要做一些修改。只要技术准备充分,硬件设计的大量返工是比较少的,软件设计的任务是贯彻始终的,到中后期基本上都是软件设计任务,随着集成电路计数器的飞速发展,各种功能很强的芯片不断出现,使硬件电路的集成度越来越高,硬件设计的工作量在整个项目中所占的比重逐渐下降,为使硬件电路设计尽可能合理,应注意以下几个方面:1.尽可能采用功能强的芯片,以简化电路。功能强的芯片可以代替若干个普通芯片
16、,随着生产工艺的提高,新型芯片的价格在不断下降,并不一定比若干个普通芯片价格总和高。2 .留有设计余地。在设计硬件电路时,要考虑到将来修改扩展的方便。因为3 .程序空间。选用片内程序空间足够大的单片机,本设计采用80C51单片机。4 .RAM空间,80C51单片机内部RAM不多,当要增强软件数据处理功能时,往往觉得不足。如果系统配置了外部RAM,则建议多留一些空间。如果选用8155作I/O接口,就可以增强256字节RAM。如果有大批数据需要处理,则应配置足够的RAM,如6264、62256等。随着软件设计水平提高,往往只要改变或者增加软件中的数据处理算法,就可以使系统功能提高很多,而系统的硬件
17、不必做任何更换就使系统升级换代。只要在硬件电路设计初期考虑到这一点,就应该为系统将来升级留有足够的RAM空间,哪怕多设计一个RAM插座,暂时不插芯片也好。I/O端口,在样机研制出来后进行现场试用时,往往会发现一些被忽视的问题,而这些问题不是靠单纯的软件措施来解决的。如果有些新的信号需要采集,就必须增加输入检测端:有些物理量需要控制,就必须增加输出端。如果在硬件电路设计就预留出一些I/O端口,虽然当时空着没用,那么要用的时候就能派上用场了。3.2 总体硬件原理图总体硬件原理图如图37所示,图中主要部分Ul芯片为80C51单片机,U2为温度传感器DS18B20o温度传感器接到单片机的PL2口。两个
18、发光二极管“HEAT”和“COOL”分别表示传送给加热器和制冷器的启动信号,分别接到单片机的PLO,PL1口。如果“HEAT”灯点亮表示加热器在工作;如果“COOL”灯点亮表示制冷器在工作。按键“温度显示切换”是用于切换显示预设的温度的按键,接单片机的P2.7口。还有两个发光二极管分别是“实时温度”和“设定温度”,表示当前数码管显示的是实时温度还是设定温度,若“实时温度”的发光二极管点亮表示数码管显示的实时温度,若“设定温度”的发光二极管点亮则5Exd HvGGl SkdEOONAfs taVse 8SE *058 CaMCeM -Q5 P0 6XAD6POnAD7P2UA8P21IA9R22
19、10P2M11 P244A12P25Mk13P26M14 P2 7A1SP30lR)P31R32*0 P3 3ifP34/T0图36开关电路本设计的温度设定允许和退出按键是选用如图3-6中a)所示的设计,低电平为进入温度设定,高电平为退出温度设定。3.6.2按键开关按键开关为机械弹性开关,当按下键帽时,按键内的复位弹簧片被压缩,动片触电与静片触电相连,键盘的两个引脚被接通;松手后,复位弹簧将动片弹开,使动片与静片脱离接触,键盘的两个引脚被断开。由于机械接触点的弹性作用,一个按键从开始接上至接触稳定要经过510ms的抖动时间,在此期间,有抖动发生。按键抖动波形如图3-7所示。按下释放理想按键电压
20、波形实际按键电压波形前沿料动稳定闭合后沿抖动图3-7按键抖动电压波形按键开关输入需要解决的两个主要问题是判断是否有按键按下和消除按键抖动的影响。按键的确认反映在电压上,就是和按键相连的引脚呈现出高电平还是低电平。消除按键的抖动通常有硬件、软件两种消除方法。一般在按键较多时,采用软件的方法消除抖动,即在第一次检测到有按键按下时,执行一段延时1215ms的子程序后,再确认该键电平是否任保持为闭合状态电平,如果保持为闭合状态电平就可以确认真有按键按下,从而消除抖动的影响。一般电子装置中都设计有按键输入,用以控制程序执行时数据的输入或是特殊功能的设置及操作。在控制电路中,如果按键数不多是可以使用一个按
21、键对应一条输入位线控制,即独立式按键。这种接法,一根输入线上的按键是否被按下,不会影响其他输入线上的工作状态。因此,通过检测输入线的电平状态就可以很容易判断哪个键按下了。独立式按键可以用单稳态锁存器消除抖动。如果监控程序中的读键操作安排在主程序(后台程序)或键盘中断(外部中断)子程序中,则该延时子程序便可直接插入读键过程中。如果读键过程安排在定时中断子程序中,就可省去专门的延时子程序,利用两次定时中断的时间间隔来完成抖动处理。3.7 指示灯电路在实时温度和设定温度切换时,为了明白LED数码管显示的是哪种温度,可以用两个发光二极管来指示,如果标有“实时温度”标记的发光二极管点亮,则表示数码管显示
22、的是实时温度,如果标有“设定温度”标记的发光二极管点亮,理表示数码管显示的是设定温度。这样就不至于混淆了。如图3-9所示为温度指不灯电路。rZZlHlUP2.311P2.412P2.5A13P2.6A14P2.715P3.0RXDP3.1XDP3.2MNTORS.a/NTTP3.4T0P3.5T1P3.6WRP3.7RD-21 .27-28图3-9温度指示灯电路图中两个发光二极管分别与单片机的P2.6,P2.5口相连,单片机把显示何种温度的信号送给这两个口,对应的发光二极管就会点亮,信号为低电平有效。3.8 温度采集电路温度采集电路如图3-10所示:图3T0温度采集电路图中U2为温度采集电路的
23、核心部件,温度传感器DS18B20,下面将详细介绍它的参数和用法。DS18B20内部的低温度系数振荡器是一个振荡频率随温度变化很小的振荡器,为计数器1提供一频率稳定的计数脉冲。高温度系数振荡器是一个振荡频率对温度很敏感的振荡器,为计数器2提供一个频率随温度变化的计数脉冲。初始时,温度寄存器被预置成-55,每当计数器1从预置数开始减计数到0时,温度寄存器中寄存的温度值就增加1,这个过程重复进行,直到计数器2计数到0时便停止。初始时,计数器1预置的是与-55相对应的一个预置值。以后计数器1每一个循环的预置数都由斜率累加器提供。为了补偿振荡器温度特性的非线性性,斜率累加器提供的预置数也随温度相应变化
24、。计数器1的预置数也就是在给定温度处使温度寄存器寄存值增加1计数器所需要的计数个数。DS18B20内部的比较器以四舍五入的量化方式确定温度寄存器的最低有效位。在计数器2停止计数后,比较器将计数器1中的计数剩余值转换为温度值后与0.25C进行比较,若低于0.25,温度寄存器的最低位就置0;若高于0.25,最低位就置1;若高于075C时,温度寄存器的最低位就进位然后置0。这样,经过比较后所得的温度寄存器的值就是最终读取的温度值了,其最后位代表0.5,四舍五入最大量化误差为土1/2LSB,即0.25o温度寄存器中的温度值以9位数据格式表示,最高位为符号位,其余8位以二进制补码形式表示温度值。测温结束
25、时,这9位数据转存到暂存存储器的前两个字节中,符号位占用第一字节,8位温度数据占据第二字节。DS18B20测量温度时使用特有的温度测量技术。DS18B20内部的低温度系数振荡器能产生稳定的频率信号;同样的,高温度系数振荡器则将被测温度转换成频率信号。当计数门打开时,DS18B20进行计数,计数门开通时间由高温度系数振荡器决定。芯片内部还有斜率累加器,可对频率的非线性度加以补偿。测量结果存入温度寄存器中。一般情况下的温度值应该为9位,但因符号位扩展成高8位,所以最后以16位补码形式读出。DS18B20工作过程一般遵循以下协议;初始化ROM操作命令存储器操作命令处理数据初始化单总线上的所有处理均从
26、初始化序列开始。初始化序列包括总线主机发出一复位脉冲,接着由从属器件送出存在脉冲。存在脉冲让总线控制器知道DS1820在总线上且已准备好操作。ROM操作命令一旦总线主机检测到从属器件的存在,它便可以发出器件Rc)M操作命令之一。所有RoM操作命令均为8位长。这些命令列表如下:ReadRoM(读ROM)33H此命令允许总线主机读DS18B20的8位产品系列编码,唯一的48位序列号,以及8位的CRC。此命令只能在总线上仅有一个DS18B20的情况下可以使用。如果总线上存在多于一个的从属器件,那么当所有从片企图同时发送时将发生数据冲突的现象(漏极开路会产生线与的结果)。MatchROM(符合RoM)
27、55H此命令后继以64位的RC)M数据序列,允许总线主机对多点总线上特定的DS18B20寻址。只有与64位ROM序列严格相符的DS18B20才能对后继的存贮器操作命令作出响应。所有与64位ROM序列不符的从片将等待复位脉冲。此命令在总线上有单个或多个器件的情况下均可使用。SkipRoM(跳过Re)M)CCH在单点总线系统中,此命令通过允许总线主机不提供64位ROM编码而访问存储器操作来节省时间。如果在总线上存在多于一个的从属器件而且在SkipRoM命令之后发出读命令,那么由于多个从片同时发送数据,会在总线上发生数据冲突(漏极开路下拉会产生线与的效果)。SearchRoM(搜索ROM)FOH当系
28、统开始工作时,总线主机可能不知道单线总线上的器件个数或者不知道其64位Rc)M编码。搜索ROM命令允许总线控制器用排除法识别总线上的所有从机的64位编码。AlarmSearch(告警搜索)ECH此命令的流程与搜索RoM命令相同。但是,仅在最近一次温度测量出现告警的情况下,DS18B20才对此命令作出响应。告警的条件定义为温度高于TH或低于TL。只要DS18B20一上电,告警条件就保持在设置状态,直到另一次温度测量显示出非告警值或者改变TH或TL的设置,使得测量值再一次位于允许的范围之内。贮存在EEPRoM内的触发器值用于告警。存储器操作命令WriteScratchpad(写暂存存储器)4EH这
29、个命令向DS18B20的暂存器中写入数据,开始位置在地址2。接下来写入的两个字节将被存到暂存器中的地址位置2和3。可以在任何时刻发出复位命令来中止写入。ReadScratchpad(读暂存存储器)BEH这个命令读取暂存器的内容。读取将从字节0开始,一直进行下去,直到第9(字节8,CRC)字节读完。如果不想读完所有字节,控制器可以在任何时间发出复位命令来中止读取。CopyScratchpad(复制暂存存储器)48H这条命令把暂存器的内容拷贝到DS18B20的E2存储器里,即把温度报警触发字节存入非易失性存储器里。如果总线控制器在这条命令之后跟着发出读时间隙,而DS18B20又正在忙于把暂存器拷贝
30、到E2存储器,DS18B20就会输出一个“0”,如果拷贝结束的话,DS18B20则输出“1”。如果使用寄生电源,总线控制器必须在这条命令发出后立即起动强上拉并最少保持Ioms。ConvertT(温度变换)44H这条命令启动一次温度转换而无需其他数据。温度转换命令被执行,而后DS18B20保持等待状态。如果总线控制器在这条命令之后跟着发出读时间隙,而DS18B20又忙于做时间转换的话,DS18B20将在总线上输出“0”,若温度转换完成,则输出“1”。如果使用寄生电源,总线控制器必须在发出这条命令后立即起动强上拉,并保持500ms。RecallE2(重新调整E2)B8H这条命令把贮存在E2中温度触
31、发器的值重新调至暂存存储器。这种重新调出的操作在对DS18B20上电时也自动发生,因此只要器件一上电,暂存存储器内就有了有效的数据。在这条命令发出之后,对于所发出的第一个读数据时间片,器件会输出温度转换忙的标识:“0”二忙,“1二准备就绪。ReadPowerSupply(读电源)B4H对于在此命令发送至DS18B20之后所发出的第一读数据的时间片,器件都会给出其电源方式的信号:“0”二寄生电源供电,“1”二外部电源供电。处理数据DS18B20的高速暂存存储器由9个字节组成,其分配如表3-2所示。当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第0和第1个字节。单片
32、机可通过单线接口读到该数据,读取时低位在前,高位在后。表3-2DS18B20暂存器字节分配温度/C二进制表示十六进制表示符号位(5位)数据位(11位)+125000001111101000007D0H+25.062500000001100100010191H+10.1250000000010100010002H+0.500000000000010000008H00000000000000000OOOOH-0.5Illll11111111000FFF8H-10.125Illll11101011110FF5EH-25.625Illll1100IOllllFE6FH-55Illll100100100
33、00FC90H上表是DS18B20温度采集转化后得到的12位数据,存储在DS18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于或等于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。温度转换计算方法举例:例如当DS18B20采集到+125C的实际温度后,输出为07DoH,贝J:实际温度=07DoHX0.0625=2000X0.0625=125.O0Co例如当DS18B20采集到-55C的实际温度后,输出为FC90H,则应先将11位数据位取反加1得370H(符号位不
34、变,也不作为计算),贝h实际温度二370HX0.0625=8800.0625=55.O0Co3.9 本章小结本章详细的讲述了以80C51为核心元件的恒温箱的硬件电路具体设计过程,分析了具体电路的工作原理。在设计过程中,实现温度控制的是通过编写程序的方法集成在80C51内部。接着将程序下载到硬件电路中,配合周边的温度采集电路,时钟电路,温度控制电路,显示电路等,制作出符合设计要求的恒温箱。第4章软件设计4.1 软件任务分析软件任务分析和硬件电路设计结合进行,哪些功能由硬件完成,哪些任务由软件完成,在硬件电路设计基本定型后,也就基本上决定下来了。软件任务分析环节是为软件设计做一个总体规划。从软件的
35、功能来看可分为两大类:一类是执行软件,它能完成各种实质性的功能,如测量,计算,显示,打印,输出控制和通信等;另一类是监控软件,它是专门用来协调各执行模块和操作者的关系,使在系统软件中充当组织调度角色的软件。这两类软件的设计方法各有特色,执行软件的设计偏重算法效率,与硬件关系密切,千变万化。软件任务分析时,应将各执行模块一一列出,并为每一个执行模块进行功能定义和接口定义(输入输出定义)。在对各执行模块进行定义时,将要牵扯到的数据结构和数据类型问题也一并规划好。各执行模块规划好后,就可以设计监控程序了。首先根据系统功能和键盘设置选择一种最适合的监控程序结构。相对来讲,执行模块任务明确单纯,比较容易
36、编程,而监控程序较易出问题。这如同当一名操作工人比较容易,而当一个厂长就比较难一样。软件任务分析的另一个内容是如何安排监控软件和执行模块。整个系统软件可分为后台程序(背景程序)和前台程序。后台程序指主程序及其调用的子程序,这类程序对实时性要求不是太高,延时几十毫秒甚至几百毫秒也没关系,故通常将监控程序(键盘解释程序),显示程序和打印程序等与操作者打交道的程序放在后台程序中执行;而前台程序安排一些实时性要求较高的内容,如定时系统和外部中断。也可以将全部程序均安排在前台,后台程序为“使系统进入睡眠状态”,以利于系统节电和抗干扰。4.2 程序流程图在本程序中包括了以下主要的程序,主程序,温度设定子程序,温度读取及转换子程序,显示温度子程序,比较温度子程序,显示切换子程序。图4-1主程序流程图开始初始化设定温度温度采集计算温度比较处理显示温度返回图4-2温度设定子程序流程图温度采集计算子程序如图4-3所