本科毕业论文-基于单片机的种苗催芽室环境参数监控系统设计与实现_第1页
本科毕业论文-基于单片机的种苗催芽室环境参数监控系统设计与实现_第2页
本科毕业论文-基于单片机的种苗催芽室环境参数监控系统设计与实现_第3页
本科毕业论文-基于单片机的种苗催芽室环境参数监控系统设计与实现_第4页
本科毕业论文-基于单片机的种苗催芽室环境参数监控系统设计与实现_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

江苏畜牧兽医职业技术学院毕业设计(论文)题目基于单片机的种苗催芽室环境参数监控系统设计与实现姓名学号200906033116二级院系部机电工程系班级高专电子09专业应用电子技术指导教师任玲、翟旭军职称讲师、副教授二一二年六月养殖场用单片机温度控制器的设计与实现【摘要】养殖过程中,养殖大棚的环境控制对于动植物的健康生长、最大程度地发挥其生长性能有着及其重要的意义。养殖大棚的环境控制主要是针对温度、湿度等环境因子进行监视和控制。本次设计是根据养殖场的环境温度控制要求,研究并建立基于单片机的温度控制系统。本系统是以AT89C52单片机为核心,并与数字温度传感器DS18B20、四位一体的数码管、继电器、按键、小型电风扇、LED灯等器件结合起来,共同构成温度控制器。以养殖场的温度为设定参数,根据参数偏离设定值(理想的养殖温度)的程度由单片机自动启动相应的加热和降温设备,来升温或降温,实现对设定参数的闭环调节。该系统能够及时采集养殖场温度,并能自动升温和降温,从而将养殖场温度保持在恒温,该系统具有较高的测量精度和控制精度。本文首先对养殖场温度控制过程进行分析,提出了多种控制方案,对各方案比较后确定了本设计的总体方案。然后进行原理图的设计,采用分步焊接、软件设计与调试,最后进行联调。通过对控制器进行实验和分析,表明系统运行情况正常,各功能模块功能的实现可行,采集的温度数据精确性较高,能满足控制的要求。除此之外,该系统电路简单、成本低,稍做修改还可以应用于其他温度控制的过程中,这大大地扩大了该系统的应用范围,在养殖中具有一定的实际意义。【关键词】AT89C52;DS18B20;温度控制;继电器控制ABSTRACTINTHEPROCESSOFBREEDING,ITISIMPORTANTFORTHEANIMALANDPLANTHEALTHGROWTH,MAXIMIZINGITSGROWTHPERFORMANCEBREEDINGENVIRONMENTALCONTROLISMAINLYTHETEMPERATURE,HUMIDITYANDOTHERENVIRONMENTALFACTORSTHEDESIGNISBASEDONFARMSINTHEENVIRONMENTTEMPERATURECONTROLREQUIREMENTS,ANDRESEARCHTHEESTABLISHMENTOFTHETEMPERATURECONTROLSYSTEMBASEDONMCUTHISSYSTEMISBASEDONAT89C52ASTHECORE,WITHDIGITALTEMPERATURESENSORDS18B20,ONEOFFOURDIGITALTUBE,RELAYS,BUTTONS,SMALLELECTRICFAN,LEDLAMPSANDOTHERDEVICESTOGETHER,CONSTITUTEATEMPERATURECONTROLLERINORDERTOFARMSTEMPERATURETOSETPARAMETERS,ACCORDINGTOTHEPARAMETERSFROMASETVALUETHEIDEALBREEDINGTEMPERATUREBYTHEMICROCONTROLLERAUTOMATICALLYSTARTTHECORRESPONDINGHEATINGANDCOOLINGEQUIPMENT,TOWARMUPORCOOLDOWN,TOREALIZETHECLOSEDLOOPADJUSTINGPARAMETERSTHESYSTEMCANTIMELYCOLLECTIONOFFARMSTEMPERATURE,ANDCANAUTOMATICALLYHEATUPANDCOOLDOWN,THEREBYTHEFARMTEMPERATUREMAINTAINEDATCONSTANTTEMPERATURE,THESYSTEMHASHIGHMEASUREMENTANDCONTROLPRECISIONFIRST,THEAUTHORANALYSESBREEDINGFIELDTEMPERATURECONTROLPROCESS,PUTSFORWARDSEVERALCONTROLSCHEMES,THESCHEMECOMPARISONTODETERMINETHEDESIGNOFTHEOVERALLPROGRAMTHENTHESCHEMATICDESIGN,STEPBYSTEPWELDING,SOFTWAREDESIGNANDDEBUGGING,FINALLYDEBUGGINGTHROUGHTHECONTROLLERTOCONDUCTEXPERIMENTSANDANALYSIS,SHOWSTHATTHISSYSTEMRUNSNORMALLY,EACHFUNCTIONMODULEIMPLEMENTFEASIBLE,THECOLLECTEDTEMPERATUREDATAISMOREACCURATE,ANDCANMEETTHECONTROLREQUIREMENTSINADDITION,THESYSTEMHASTHEADVANTAGESOFSIMPLECIRCUIT,LOWCOST,ALITTLEMODIFICATIONCANALSOBEAPPLIEDTOOTHERTEMPERATURECONTROLPROCESS,WHICHGREATLYEXPANDEDTHEAPPLICATIONRANGEOFTHESYSTEM,THEBREEDHASCERTAINPRACTICALSIGNIFICANCEKEYWORDSAT89C52DS18B20TEMPERATURECONTROLRELAYCONTROL目录【摘要】I【关键词】IABSTRACTIIKEYWORDSII绪论11系统方案选择和论证211题目要求2111基本要求2112发挥部分2113功能说明212系统基本方案3121各模块电路的方案选择及论证3122系统各模块的最终方案513本章小结62硬件设计与实现721系统硬件模块关系722主要单元电路的设计7221温度采集部分设计7222加热和降温控制部分9223键盘、显示、控制器部分1023系统总原理图1124本章小结113系统软件设计1231读取DS18B20温度模块子程序1232数据处理子程序1233键盘扫描子程序1334主程序流程图1335源程序1536本章小结154系统制作与调试1641数码管的调试1642按键的调试1643温度传感器的调试1744继电器控制部分的调试1745联调1846本章小结21设计总结及展望22参考文献23附录24附录1产品使用说明24附录2元件清单24附录3系统硬件原理图25附录4软件程序清单(含注释)26致谢37绪论动植物的生长都是在一定的环境中进行的,在生长过程中受到环境中各种因素的影响,其中对其影响最大的就是温度。若昼夜的温度变化很大,其对动植物生长极为不利,因此必须对温度进行监测和控制,使其适合动植物的生长,以提高其产量和质量。本设计就是对养殖场内温度控制要求进行分析,综合考虑系统的精度、效率以及经济性要求多方面因素之后,设计一种基于单片机的养殖温度自动控制系统。该系统能够实现自动监控,使其温度控制在设定值的某个范围内,同时可以通过按键输入设定温度等控制指令,完成监控系统的工作。基于此,本课题的主要研究内容有以下几个部分1温度控制系统的总体方案设计部分该部分主要研究养殖场温度控制的实现原理,确定温度控制系统的具体实现过程,进行系统的总体设计,给出硬件系统结构框图,完成硬件各部分元器件的选择等。2系统硬件设计部分该部分主要完成单片机基本电路时钟、复位电路等、数据采集电路、显示输出接口、按键输入接口、继电器控制等模块电路的设计,最后给出总原理图的设计。3系统程序设计部分此部分主要完成主服务程序、温度采集与处理、按键输入温度设定、温度显示、继电器控制等程序模块的设计。4系统实现该部分主要是从硬件与软件两个方面探讨系统的实现过程,采用分步焊接与调试,并对系统进行了相应的试验分析,以验证系统所具有的功能。本系统实现的温度控制目标功能如下1系统能对环境温度进行采集和显示现场观温,软件记录。2能通过按键设定动植物生长期适宜温度并显示。3当环境温度参数超过设定的上下限值时控制相应的设备启动。4可实时显示当前温度信息,并加以控制。5)能分辨出的最小温度TH或TROM操作命令存储器操作命令处理数据初始化单总线上的所有处理均从初始化开始。1ROM操作命令总线主机检测到DSL8B20的存在便可以发出ROM操作命令之一这2些命令如表22所示。表22ROM操作命令表指令代码READROM读ROM33HMATCHROM匹配ROM55HSKIPROM跳过ROMCCHSEARCHROM搜索ROMF0HALARMSEARCH告警搜索ECH存储器操作命令如表23所示。3表23存储器操作命令表指令代码WRITESCRATCHPAD写暂存存储器4EHREADSCRATCHPAD读暂存存储器BEHCOPYSCRATCHPAD复制暂存存储器48HCONVERTTEMPERATURE温度变换44HRECALLEPROM重新调出B8HREADPOWERSUPPLY读电源B4H222加热和降温控制部分由于本系统要控制电热丝加热,功率较大,因此要借助功率电路。在器件选择上留足余量,增加安全性。加热部分采用继电器控制,电路简单可靠。电路如图23所示。图23加热器控制图当实测温度低于设定值时,由单片机输出高电平信号,三极管9014导通,继电器开始工作对加热。为了防止继电器频繁动作,在软件中对水温测量精确到01,而在温度设定时只取整数,可以有1的余量。二极管起到保护三极管的作用,防止三极管击穿。说明这个电路可以根据实际加热器的要求跟换继电器及电源的大小,这里只是假设一个小型功率的加热器,实际达不到很快升温的目的。当设定温度低于实测温度时为了加快系统动态响应速度,设置一个小功率电扇,加速温度的降低。使系统整体性能得以提高。原理图如图24所示。图24电风扇控制图223键盘、显示、控制器部分本设计中采用动态显示方式驱动4个八段数码管,分别显示温度的十位、个位和小数点后两位。动态显示组合式数码管只需要较少的引脚个数,以4位组合式数码管为例,需要8412个引脚。而如果每个数码管都要单独引脚,至少需要4936个引脚。引脚数减少使得印刷线路板布置变得更为简单,因此,在需要使用多位数码管时,一般都用组合式的。数码管采用共阳极,单片机P0口作为段控制,P27P24通过4个PNP型三极管接第14位数码管的COM端。键盘采用按键开关经上拉电阻分别接P11、P12、P13口上,起到控制、上调和下调作用。每按上调和下调键,设定温度值增1减1。单片机XTAL2、XTAL1接12MHZ晶振,提供系统时钟基值。另RESET接复位电路。原理图如图25所示。图25键盘、显示、控制器部分原理图23系统总原理图在分模块设计的基础上,进行综合电路原理图的设计,系统的总原理图见附录3。24本章小结首先对温度控制器硬件的关系进行描述,然后分模块对温度采集、加热模块、降温控制、键盘、显示及控制器部分进行硬件电路的设计,最后给出总原理图的设计,为第三章软件的设计做好准备。3系统软件设计系统的软件设计采用汇编语言,对单片机进行编程实现各功能。主程序对模块进行初始化,而后调用读温度、处理温度、显示、键盘和继电器控制各模块。采用的是循环查询方式,来显示和控制温度。31读取DS18B20温度模块子程序每次对DS18B20操作时都要按照DS18B20工作过程中的协议进行。初始化ROM操作命令存储器操作命令处理数据,程序流程图如图31所示。图31读取DS18B20温度子程序流程图DS18B20存在32数据处理子程序由于DS18B20转换后的代码并不是实际的温度值,所以要进行计算转换。温度高字节(MSBYTE)高5位是用来保存温度的正负(标志为S的BIT11BIT15),高字节(MSBYTE)低3位和低字节来保存温度值(BIT0BIT10)。其中低字节(LSBYTE)的低4位来保存温度的小数位(BIT0BIT3)。由于本程序采用的是00625的精度,小数部分的值,可以用后四位代表的实际数值乘以00625,得到真正的数值,数值可能带几个小数位,所以采取小数舍入,保留两位小数即可,即本系统的温度精确到了001度。算法核心首先程序判断温度是否是零下,如果是,则DS18B20保存的是温度的补码值,需要对其低8位(LSBYTE)取反加一变成原码。处理过后把DS18B20的温度COPY到单片机的RAM中,里面已经是温度值的HEX码了,然后转换HEX码到BCD码,分别把小数位,个位,十位的BCD码存入RAM中。数据处理子程序流程图如图32所示。数据传递温度是否为负求补运算NYBCD码转换返回图32数据处理子程序流程图33键盘扫描子程序按键功能1ENTERP11S1控制键2UPP12S2加1键3DOWNP13S3减1键键盘子程序流程图如图33所示。34主程序流程图总模块流程图如图34所示。本软件设计采用循环查询来处理各个模块,温度是缓慢变化量所以可以满足性能要求。开始控制键是否按下ENTER_FLAG1是否有ENTER是否有上调键按一次是否有下调键按一次DISPLAY显示返回主程序NYYYNENTER子程序FLAG1YNNUP子程序YDOWN子程序图33键盘子程序流程图开始初始化调用A/D转换子程序DS18B20存在数据处理子程序显示子程序键盘扫描子程序继电器控制子程序Y错误处理显示N图34主程序流程图35源程序源程序的设计采用的是汇编语言,由于源程序代码较长,故将其放在附录中,具体参见附录4。36本章小结系统软件的设计同样也采用分模块的设计思路,然后利用主程序去调用各模块,主要设计了读取DS18B20温度模块子程序、数据处理子程序、显示子程序、键盘扫描子程序、继电器控制子程序。4系统制作与调试在具体的产品制作过程中,我们采用的是分模块焊接与调试,目的是为了防止全部焊接调试困难,若一次不成功,查找错误麻烦。41数码管的调试首先用万用表对数码管进行共阴还是共阳的识别以及各引脚功能的识别,然后把单片机工作最小系统电路焊接好,采用合适的方法连接数码管与单片机。最后编写数码管驱动程序,用烧写器将程序编入到AT89S52单片机中。具体调试体会如下在这里最关键的就是数码管动态显示原理的理解与编程,刚开始编了一个简单的程序显示1234,但第一次显示的数不对,乱码,结果发现A和E段接线不小心搭在一起了,线分开后,显示就正常了。然后又修改程序让其显示小数,如2494,如图41所示。为了进一步理解动态显示程序的原理,将显示程序中的延时变长发现显示的数有闪烁现象,变得更长4个都不能同时显示。由此可见,动态显示的关键是要选择一个合适的延时时间,在这里采用的延时约为2MS。图41数码管显示效果图42按键的调试数码管调试正常后,按原理图将按键与单片机连接,焊接很简单,关键是程序的编写。刚开始编好程序后发现按下上调或下调键,温度上升或下降的速度非常快,人眼无法分辨出温度的值,因此没办法设定温度。解决办法发现是按键处理子程序中延时时间太短了。修改延时时间后,按下上调或下调键温度上升或下降速度明显没刚开始快了,但是还是比较快。又进行二次延时时间的修改,这次温度每变化一度人眼都可分辨出。在此基础上,我们对按键的功能进行修改,每按一次上调或下降按钮,温度变1度,这样可以避免长时间按着上调或下降按钮温度在不停的变。我们对按键处理子程序进行了修改,加了几条判断按键是否按了一次这么一个过程。最终按键实现的功能如下如果想设定温度,首先要按控制键(ENTER),然后再按上调或下调温度按钮才可调整温度(每按一次调整1度),调好以后再按控制键(ENTER),单片机才能感受到,并启动相应的加热或降温装置。每按一次上调按键效果如图42所示,每按一次下调按键效果图如图43所示。图42上调按键效果图图43下调按键效果图43温度传感器的调试按键与显示部分调试好后,进行DS18B20温度传感器与单片机的连接,它采用独特的单线接口方式,仅需一个端口引脚,但必须先建立ROM操作协议,才能进行存储器和控制操作。DS18B20的数据读写是通过时间隙处理位和命令字来完成信息交换的,需要严格的时序协议以确保数据的完整性。第一次编好DS18B20温度程序后,显示的温度不正常,然后就仔细阅读程序,发现是时序出了问题,修改时序后温度就正常了。由此可见,DS18B20传感器的工作关键靠程序,程序中的时序又是最重要的。44继电器控制部分的调试继电器控制电风扇和加热器,由于元器件的限制,没有加热器,故在此用LED灯来模拟加热器,灯亮代表加热器加热。故在此先做继电器控制电风扇这部分电路,其与继电器控制加热器原理一样。先将继电器控制风扇这部分电路与单片机连接好,然后编写程序。温度传感器测得当前温度值并正常显示后,按键设定温度,若设定温度比当前温度低时,电风扇应自动启动降温,但是刚开始电风扇却不动,查找程序怎么也找不到原因。程序没问题就寻找电路的原因,查阅了大量的资料,然后问了有经验的老师,修改了好几次电路但是由于元器件型号等问题,前面几次都没成功,有时要这个地方大约耗了一个月的时间。在此期间电风扇转到的效果电风扇需要启动时有时转有时不转,需要停下来时却停不下来,与想要的效果完全不一样。最后在指导老师任玲的帮助下,发现三极管导体了但是继电器就是不闭合,风扇不转。原来没有考虑好三极管的导通电流问题,最后在三极管的B极接了一个15K上拉电阻,然后接到5V电源上,问题终于得到了解决。总结继电器控制电风扇主要是电路设计上的缺陷,经过电路的改进,目前问题已解决。电风扇与单片机连接效果如图44所示。图44电风扇与单片机的连接实物图45联调分步调试后,最后进行联调,由于条件限制,在本设计中采用室内温度进行测试,若设定温度高于当前温度值,加热器模拟灯会亮,但是室内温度不会变化那么快,我们采用体温来实现温度的快速升高,达到设定值,加热器灯灭。具体调试过程如下(1)DS18B20温度传感器测得当前温度值为2838,显示如图45所示。图45温度传感器实测温度实物图(2)设定温度值为3250,比当前实际温度高4。设定温度效果图如图46所示。图46温度设定效果图(3)按下确认键后,因设定温度比当前实际温度高,因此加热器模拟灯亮,代表加热器开始加热。效果如图47所示,只要不超过3250,加热器都应该在加热。图47模拟加热器灯亮(4)在此采用体温加热,当温度超过了3250,加热器就应该停止工作,效果如图48,电风扇启动,效果如图49所示,直到3250左右加热和风扇停止工作。图48加热器停止加热图49电风扇转动(5)实物总体效果图如图410所示。图410系统总体效果图46本章小结本章对温度控制器的制作与调试过程给出了详细地介绍,通过本次毕业设计,我懂得了理论与学习是密不可分的,一开始头脑中的思路是很清晰但实践起来时就开始有点手忙脚乱了,所以说实践是很重要的。设计总结及展望本毕业设计是将电路、电工、模电、数电、单片机、汇编语言等书本知识与理论结合的一次大实践。在参考和总结前人研究成果的基础上,查阅大量的资料,针对目前我国养殖场温度控制的要求而设计出来的控制器。该温度控制器能及时检测室内温度,并用数码管显示当前温度,根据当前温度与理想环境温度(设定温度)之间的差别,加热器或者风扇将自动启动,直至达到设定温度停止工作。该系统的特点(1)能够及时采集养殖场、温室大棚和水的温度,误差小于01;(2)能够设定温度,可以设定为农作物生长的理想温度;(3)若实际温度比设定温度高时,电风扇自动启动降温,直到达到设定温度,自动停止;(4)若实际温度比设定温度低时,加热器自动启动加温,直到达到设定温度,自动停止;(5)该系统的控制精度高。虽然本毕业设计实现了对环境温度的实时采集与控制,也获得了比较理想的实验效果,但是由于元器件和经费的限制,仍然存在着诸多不足。该作品可以进行以下的改进1用实际加热器代替加热器模拟灯;2电路焊接不够光滑,用PCB板和贴片焊接代替该焊接电路;3将数码管和按键安装在工作室,从而改善工作人员的工作环境。4如果需要快速达到理想温度,即降温或升温,那么就需要接多个电风扇和加热器,这可以根据需要而设置。经改进后,该系统可以广泛地应用在养殖大棚等场所的温度控制,保证农作物理想的生长温度,提高产量参考文献1边春元单片机应用开发实用子程序M北京人民邮电出版社,20052李建兰基于STC12C系统单片机的DS18B20编程M北京人名邮电出版社,20053高吉祥全国大学生电子设计大赛培训系列教程M主编电子工业出版社,20074周坚单片项目教程M北京航空航天大学出版社,2011,15徐爱钧彭秀华KEILCX51V70单片机高级语言编程M北京电子工业出版社2007,26潘永雄沙河刘向阳电子线路CAD实用教程M西安电子科技大学出版社,2008,27李斌张晶MCS51单片机应用技术项目教程M北京航空航天大学出版社,2011,88肖红兵跟我学用单片机M北京航空航天大学出版社,20069乌海荣浅谈单片机在温控系统J华章,2011,2410钟晓伟宋蛰存基于单片机的实验室温湿度控制系统设计J林业机械与木工设备,2010,38(1)11易顺明,赵海兰,袁然基于单片机的大棚温湿度控制系统设计J现代电子技术,2011,34(7)附录附录1产品使用说明本水温控制系统能在099范围内设定任意温度值,超出此范围将有出错显示8888,之后返回到99或0。通过按ENTER(P11)键确认开始温度设定;P12的UP键为加1键,每按一次使设定温度值加1,P13的DOWN键为减1键,每按下一次设定温度值减1。设置完温度要再按ERTER键确认温度设定完成,之后显示实测温度值。当温度传感器没有接入时也将有出错提示显示8888。附录2元件清单元件数量元件数量AT89S52单片机1个小电风扇1个DS18B20温度传感器1个PCB白板1块110592MHZ晶振1个10UF电解电容1个四位一体数码管1个30PF瓷片电容4个按键3个稳压电源1个开关1个电阻若干继电器1个导线若干9012三极管4个LED灯1个9014三极管2个7805稳压器1个二极管2个附录3系统硬件原理图附录4软件程序清单(含注释)主程序TEMPERATURE_LDATA31HDS18B20低8位BUFFERTEMPERATURE_HDATA30HDS18B20高8位BUFFERTEMPERATURE_HCDATA32H计算后十位的BCD码存放BUFFERTEMPERATURE_LCDATA33H计算后的个位和小数位的BCD码存放BUFFERTEMPERATURE_ZHDATA34H计算后十位和个位HEX码的存放BUFFERP_DS18B20EQUP15读取DS18B20的输入端口DIS_BUF_YDATA35H数码管小数点后第二位DIS_BUF_XDATA36H小数点后第一位DIS_BUF_GDATA37H数码管个位DIS_BUF_SDATA38H数码管十位P_SWITCHEQUP31加热器控制接口,1加热,0断开P_FANEQUP16电风扇控制接口,1降温,0断开KEY_BUF_GDATA39H键盘输入后的个位值KEY_BUF_SDATA49H键盘输入后的十位值K_ENTEREQUP11输入数据确认按钮K_UPEQUP12上调按钮K_DOWNEQUP13下调按钮FLAGEQU20H0标志位,确定是否存在DS18B20,1存在,0不存在ENTER_FLAGEQU20H1键盘输入的标志位,为0说明键盘正在输入,为1说明键盘输入退出ORG0000HLJMPMORG0400HMMOVSP,40H初始化MOVKEY_BUF_G,0由于KEY_BUF是由用户输入的,所以先赋值初始化MOVKEY_BUF_S,0CLRP_SWITCHCLRP_FANM1LCALLREAD_TEMP调用读温度子程序JBFLAG,NORMAL判断是否有DS18B20的存在LCALLERR不存在时显示错误信息SJMPM1NORMALLCALLDATA_DEAL处理从DS18B20得到的数据LCALLSET_DIS_BUF赋值给DIS_BUF_Y,X,G,SLCALLDISPLAY调用数码管显示子程序LCALLSCAN_KEY扫描键盘LCALLSWITCH处理继电器SJMPM1程序名称SCAN_KEY功能扫描键盘入口参数DIS_BUF_G,DIS_BUF_S,出口参数KEY_BUF_G,KEY_BUF_S,SCAN_KEYJBK_ENTER,QUIT如果有ENTER键入,则开始键盘输入LCALLK_DELAYJBK_ENTER,QUITCLRENTER_FLAG每次进来都赋值输入标志,设置为0JNBK_ENTER,MOVKEY_BUF_G,DIS_BUF_G将当前的温度赋值给KEY_BUF,也就是说是以当前温度为基准,进行加减的MOVKEY_BUF_S,DIS_BUF_SK_LOOPJBENTER_FLAG,QUIT如果输入完成,ENTER_FLAG则为1,退出键盘程序JBK_ENTER,KUPLCALLPRO_ENTERKUPJBK_UP,KDOWNLCALLPRO_UPKDOWNJBK_DOWN,LOOPALCALLPRO_DOWNLOOPALCALLDISPLAYSJMPK_LOOPQUITRET程序名称PRO_ENTER功能确认键盘输入和退出键盘输入入口参数ENTER_FLAG出口参数ENTER_FLAGPRO_ENTERLCALLK_DELAYJBK_ENTER,K_LOOP按键抖动处理JNBK_ENTER,SETBENTER_FLAGLCALLK_DELAYRET程序名称PRO_UP功能数值上调处理入口参数KEY_BUF_G,KEY_BUF_S,出口参数DIS_BUF_G,DIS_BUF_S,PRO_UPLCALLK_DELAYJBK_UP,K_LOOP按键抖动处理JNBK_UP,INCKEY_BUF_G个位增一MOVA,KEY_BUF_GCJNEA,0AH,UPNEXT个位增加到10,回0MOVKEY_BUF_G,00HINCKEY_BUF_S十位加一MOVA,KEY_BUF_SCJNEA,0AH,UPNEXT十位超过99,溢出了MOVR0,200ERROR1LCALLERR出错,显示888DJNZR0,ERROR1DECKEY_BUF_S退回99MOVKEY_BUF_G,09HUPNEXTMOVDIS_BUF_G,KEY_BUF_GMOVDIS_BUF_S,KEY_BUF_SLCALLK_DELAYRET程序名称PRO_DOWN功能数值下调处理入口参数KEY_BUF_G,KEY_BUF_S,出口参数DIS_BUF_G,DIS_BUF_S,PRO_DOWNLCALLK_DELAYJBK_DOWN,K_LOOP按键抖动处理JNBK_DOWN,DECKEY_BUF_G个位减一MOVA,KEY_BUF_GCJNEA,0FFH,DOWNNEXT个位减到0,回到9MOVKEY_BUF_G,09HDECKEY_BUF_S十位减一MOVA,KEY_BUF_SCJNEA,0FFH,DOWNNEXT十位低于0,溢出了MOVR0,200ERROR2LCALLERR出错,显示888DJNZR0,ERROR2INCKEY_BUF_S退回00MOVKEY_BUF_G,00HDOWNNEXTMOVDIS_BUF_G,KEY_BUF_G增加完成后,赋值退出,然后DISPLAY显示MOVDIS_BUF_S,KEY_BUF_SLCALLK_DELAYRETK_DELAY键盘抖动延时子程序MOVR6,100L2MOVR7,25L3DJNZR7,L3DJNZR6,L2RET程序名称DISPLAY功能显示数据到数码管入口参数DIS_BUF_G,DIS_BUF_S,DIS_BUF_X,DIS_BUF_Y出口参数无DISPLAYMOVDPTR,DISTABMOVR3,7FHMOVR1,DIS_BUF_SDPLOPMOVA,R1MOVCA,ADPTRMOVP2,R3MOVP0,ACJNER3,0BFH,DPNEXTCLRP07DPNEXTMOVA,R3RRAMOVR3,ADECR1LCALLDS1MCJNER3,0F7H,DPLOPMOVP0,0FFH一次显示结束,P0口复位MOVP2,0FFHP2口复位RETDS1MMOVR7,10JOOP0MOVR6,64HJOOPDJNZR6,JOOPDJNZR7,JOOP0RET数码管TABDISTABDB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH程序名称ERR功能程序出错处理,显示四个8,即8888入口参数无出口参数DIS_BUF_Y,DIS_BUF_X,DIS_BUF_G,DIS_BUF_SERRMOVDIS_BUF_X,08H如果没有找到DS18B20,那么就显示错误,错误显示为8888MOVDIS_BUF_G,08HMOVDIS_BUF_S,08HMOVDIS_BUF_Y,08HLCALLDISPLAYRET程序名称DATA_DEAL功能处理采集后的的数据入口参数TEMPERATURE_L出口参数DIS_BUF_G,DIS_BUF_S,DIS_BUF_X,DIS_BUF_YDATA_DEALMOVA,TEMPERATURE_H判温度是否零下ANLA,80HJZTEMPC1A为0,说明是正数,跳往TEMPC1,如果是负数,则对低8为进行补码处理CLRCMOVA,TEMPERATURE_L二进制数求补(双字节)CPLA取反加1ADDA,01HMOVTEMPERATURE_L,A取补码后存回TEMPERATURE_L,此时TEMPERATURE_L里面的值就可以表示温度了,不过还要继续处理一下MOVA,TEMPERATURE_HCPLAADDCA,00H高位TEMPERATURE_H取反,加上从低位TEMPERATURE_L进来的位MOVTEMPERATURE_H,A写回TEMPERATURE_HMOVTEMPERATURE_HC,0BHSJMPTEMPC11TEMPC1MOVTEMPERATURE_HC,0AHTEMPC11MOVA,TEMPERATURE_HCSWAPAMOVTEMPERATURE_HC,AMOVA,TEMPERATURE_LANLA,0FH取A低4位小数位,单位是00625,得出来的数要乘以00625,通过查表来算出值MOVB,AMOVDPTR,TEMPDOTTABMOVCA,ADPTR查表MOVTEMPERATURE_LC,ATEMPERATURE_LCLOW小数部分BCDMOVDIS_BUF_X,A小数位的BCD码送入显示BUFFER中MOVA,BMOVDPTR,BAIFENWEITABMOVCA,ADPTRMOVDIS_BUF_Y,AMOVA,TEMPERATURE_L整数部分ANLA,0F0H得到个位单个数值SWAPASWAP后就得到个位真正的个位MOVTEMPERATURE_L,AMOVA,TEMPERATURE_HANLA,0FHSWAPAORLA,TEMPERATURE_LMOVTEMPERATURE_ZH,A组合后的值存入TEMPERATURE_ZHLCALLHTOB转换HEX值成为BCD码MOVTEMPERATURE_L,ATEMPERATURE_L目前存入的是十位和个位的BCD编码ANLA,0F0HSWAPAORLA,TEMPERATURE_HCTEMPERATURE_HCLOW位十位数BCDMOVTEMPERATURE_HC,AMOVA,TEMPERATURE_LANLA,0FHSWAPATEMPERATURE_LCHI位个位数BCDORLA,TEMPERATURE_LCMOVTEMPERATURE_LC,ARET小数部分码表BAIFENWEITABDB00H,06H,03H,09H,05H,01H,08H,04H,00HDB06H,03H,09H,05H,01H,08H,04HTEMPDOTTABDB00H,00H,01H,01H,02H,03H,03H,04H,05H,05H,06H,06H,07H,08H,08H,09H0062500H006252012501H0062530187502H00625402503H0062550312503H以此类推程序名称HTOB功能十六进制转BCD入口参数A出口参数R7HTOBMOVB,064H100DIVABA/100MOVR7,AMOVA,0AHXCHA,BDIVABSWAPAORLA,BRET程序名称INIT_TEMP功能初始化DS18B20,确定DS18B20是否是存在的入口参数无出口参数FLAGINIT_TEMPSETBP_DS18B20NOPCLRP_DS18B20主机发出延时537微秒的复位低脉冲MOVR0,06BHTSR1MOVR1,04HDJNZR1,DJNZR0,TSR1SETBP_DS18B20然后拉高数据线,释放总线进入接收状态MOVR0,14H延时TSR2DJNZR0,TSR2JNBP_DS18B20,TSR3等待DS18B20回应PLJMPTSR4TSR3SETBFLAG置标志位,表示DS18B20存在LJMPTSR5TSR4CLRFLAG清标志位,表示DS18B20不存在LJMPTSR7TSR5MOVR0,06BHTSR6DJNZR0,TSR6时序要求延时TSR7SETBP_DS18B20RET程序名称READ_TEMP功能读取DS18B20的数据入口参数TEMPERATURE_L,TEMPERATURE_HREAD_TEMPSETBP_DS18B20L5LCALLINIT_TEMP先复位DS18B20JBFLAG,TSS2LJMPL5判断DS18B20是否存在若DS18B20不存在则返回TSS2MOVA,0CCH跳过ROM匹配LCALLWRITE_18B20MOVA,044H发出温度转换命令LCALLWRITE_18B20LCALLDISPLAY等待AD转换结束,12位的话750微秒LCALLINIT_TEMP准备读温度前先复位MOVA,0CCH跳过ROM匹配LCALLWRITE_18B20MOVA,0BEH发出读温度命令LCALLWRITE_18B20LCALLREAD_18B20将读出的温度数据保存到35H/36HRET具体的步骤初始化完后当拉低电平开始产生写时隙15微秒之内送入一位数据1560微秒采样读取DS18B20程序名称WRITE_18B20功能将A保存的数值写入DS18B20中,有具体的时序要求入口参数A寄存器出口参数无WRITE_18B20MOVR2,08H一共8位数据,串行通讯CLRCWR1CLRP_DS18B20MOVR3,07HDJNZR3,RRCA循环右移MOVP_DS18B20,CMOVR3,14HDJNZR3,SETBP_DS18B20DJNZR2,WR1A里面一共是8位,所以要送8次SETBP_DS18B20释放总线RET程序名称READ_18B20功能读取DS18B20中的数据,由于是串行通讯,每次读取一个,循环8次读取入口参数TEMPERATURE_L出口参数无READ_18B20MOVR4,02H将温度高位和低位从DS18B20中读出MOVR1,TEMPERATURE_LRE00MOVR2,08H数据一共有8位RE01CLRCSETBP_DS18B20NOPNOPCLRP_DS18B20NOPNOPSETBP_DS18B20MOVR3,06HRE10DJNZR3,RE10MOVC,P_DS18B20MOVR3,0CHRE20DJNZR3,RE20RRCADJNZR2,RE01MOVR1,ADECR1DJNZR4,RE00RET程序名称SET_DIS_BUF功能赋值给DIS_BUF_G,DIS_BUF_S入口参数TEMPERATURE_LC,TEMPERATURE_HC出口参数DIS_BUF_G,DIS_BUF_S,DIS_BUF_X,DIS_BUF_YSET_DIS_BUFMOVA,TEMPERATURE_LCANLA,0FHMOVDIS_BUF_X,A小数位MOVA,TEMPERATURE_LCSWAPAANLA,0FHMOVDIS_BUF_G,A个位MOVA,TEMPERATURE_HCANLA,0FHMOVDIS_BUF_S,A十位RET程序名称SWITCH功能继电器控制入口参数KEY_BUF_G,KEY_BUF_S出口参数P_SWITCH,P_FANSWITCHMOVA,KEY_BUF_G三个BUFFER都是0的话,说明还没有输入数值,直接退出JNZSNEXTMOVA,KEY_BUF_SJNZSNEXTJZSQUITSNEXTCALLSET_DIS_BUFMOVA,KEY_BUF_SSUBBA,DIS_BUF_SJCCOOLJNZHOT十位如果相等,那么继续比较个位MOVA,KEY_BUF_GSUBBA,DIS_BUF_GJCCOOLHOTSETBP_SWITCHP_SWITCH为0说明当前温度小于设定温度,要升温,所以接继电器控制电热丝加热CLRP_FANSJMPSQUITCOOLSETBP_FANCLRP_SWITCHP_SWITCH为1说明当前温度大于设定温度,要降温,所以接风扇SQUITRETEND致谢历时将近半年的毕业设计终于结束了,在单片机温控器的设计制作和论文写作过程中遇到了很多障碍,都在同学和老师的帮助下度过了。尤其要感谢我的毕业设计指导老师任玲,她对我进行了无私的指导和帮助,不厌其烦地解决设计制作过程中出现的问题,并帮助我进行论文的修改。另外,在校图书馆查找资料的时候,图书馆的老师也给我提供了很多方面的支持与帮助。在此向帮助和指导过我的各位老师表示最忠心的感谢感谢这篇论文所涉及到的各位学者。本文引用了数位学者的研究文献,如果没有各位学者的研究成果的帮助和启发,我将很难完成本次设计由于我的学术水平有限,所写论文难免有不足之处,恳请各位老师和学友批评和指正。请您删除一下内容,O_O谢谢MANYPEOPLEHAVETHESAMEMIXEDFEELINGSWHENPLANNINGATRIPDURINGGOLDENWEEKWITHHEAPSOFTIME,THESEVENDAYCHINESE请您删除一下内容,O_O谢谢NATIONALDAYHOLIDAYCOULDBETHEBESTOCCASIONTOENJOYADESTINATIONHOWEVER,ITCANALSOBETHEEASIESTWAYTORUINHOWYOUFEELABOUTAPLACEANDYOUMAYBECOMEMOREFATIGUEDAFTERTHEHOLIDAY,DUETOBATTLINGTHELARGECROWDSDURINGPEAKSEASON,ADREAMABOUTAPLACECANTURNTONIGHTMAREWITHOUTCAREFULPLANNING,ESPECIALLYIFYOUTRAVELWITHCHILDRENANDOLDERPEOPLEASMOSTCHINESEPEOPLEWILLTAKETHEHOLIDAYTOVISITDOMESTICTOURISTDESTINATIONS,CROWDSANDBUSYTRAFFICAREINEVITABLEATMOSTPLACESALSOTOBEEXPECTEDAREINCREASINGTRANSPORTANDACCOMMODATIONPRICES,WITHTHEPOSSIBILITYTHATTHEREWILLBENOROOMSAVAILABLEITISALSOCOMMONTHATYOULLWAITINTHELINEFORONEHOURTOGETATICKET,ANDANOTHERTWOHOURSATTHESITE,TOONLYSEEATINYBITOFTHEPLACEDUETOTHECROWDSLASTYEAR,428MILLIONTOURISTSTRAVELEDINCHINAOVERTHEWEEKLONGHOLIDAYINOCTOBERTRAVELINGDURINGTHISPERIODISAMATTERTHATNEEDSTHOROUGHPREPARATIONIFYOUARESHORTONTIMETOPLANTHEUPCOMING“GOLDENWEEK“ITMAYNOTBEABADIDEATOAVOIDSOMEOFTHEMOSTCROWDEDPLACESFORNOWTHEREISALWAYSAPLACESOFASCINATINGTHATEVERYONEYEARNSFORARXANISAPLACELIKETHISTHEBEAUTYOFARXANISEVERLASTINGREGARDLESSOFTHECHANGINGOFFOURSEASONSBESTOWEDBYNATURE,ITSSPECTACULARSEASONALLANDSCAPEANDMOUNTAINSAREJUSTBEYONDWORDARXANISACRUCIALDESTINATIONFORTHERECOMMENDEDTRAVELLINGROUTE,“CHINAINNERMONGOLIAARXANHAILARMANZHOULI“ITISALSOTHEJOINTOFTHEFOURPRAIRIESACROSSTHESINOMONGOLIANBORDER,WHEREPEOPLEGRAVITATETOWARDSTHEEXOTICATMOSPHEREMIXEDWITHCHINESE,RUSSIAN,ANDMONGOLIAELEMENTSASAHISTORICSITEFORTHEYITIANBATTLE,ARXANSTILLEMBODIESTHESPIRITOFGENGHISKHANWALKINGINTOARXAN,YOUWILLBEAMAZEDBYAKALEIDOSCOPEOFGORGEOUSCOLORSALLTHEYEARROUNDTHESPRINGAZALEASBLOOMINGREDINTHESNOW,THESUMMERSEAWAVERINGBLUEINTHEBREEZE,THEAUTUMNLEAVESPAINTEDINYELLOWCOVERINGVOLCANICTRACES,ANDTHEWINTERWOODSSHININGWHITEONTHEVASTALPINESNOWSCAPEHINGGANLEAGUEARXANCITYISSITUATEDINTHEFAREASTERNAREAOFINNERMONGOLIAAUTONOMOUSREGIONITSFULLNAME“HARENARXAN“MEANS“HOTHOLYWATER“INTHEMONGOLIANLANGUAGEARXANISATOURISMCITYINTHENORTHERNFRONTIERWITHABLENDOFLARGEFOREST,GRANDPRAIRIES,VASTSNOWFIELD,HEAVENLAKECLUSTER,THERMIUM,ASWELLASVOLCANICCLUSTERITISARAREAND

温馨提示

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

最新文档

评论

0/150

提交评论