下载

1下载券

加入VIP
  • 专属下载券
  • 上传内容扩展
  • 资料优先审核
  • 免费资料无限下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 【优秀WORD论文】基于单片机的智能水族箱控制系统_鱼缸

【优秀WORD论文】基于单片机的智能水族箱控制系统_鱼缸.doc

【优秀WORD论文】基于单片机的智能水族箱控制系统_鱼缸

淡忘那情那么不可厚非无敌
2017-09-29 0人阅读 举报 0 0 0 暂无简介

简介:本文档为《【优秀WORD论文】基于单片机的智能水族箱控制系统_鱼缸doc》,可适用于综合领域

【优秀WORD论文】基于单片机的智能水族箱控制系统鱼缸摘要随着人们物质生活的改善和欣赏能力的提高观赏鱼缸之类的工艺产品逐渐进入了家庭和宾馆、商场等公共场所。但是目前市场上的观赏鱼缸的水温检测、液位控制、水循环、喂食等操作都需要人为的手工进行这就给人们带来了很大的麻烦和不便。本文通过对目前大多数水族箱控制设备应用现状的分析和研究提出了一种多功能的观赏鱼缸智能控制系统的设计方案。该控制系统基于系列单片机的家庭水族箱控制系统。整套系统以STCC单片机为核心芯片结合传感器技术、继电器原理、C语言编程等技术集多种控制功能于一体包括恒温、自动照明、自动换水、自动喂食、自动水循环等并可根据需要增加控制参数通过选择不同元器件控制成本。本文从功能设计、元器件选择、硬件电路设计和软件设计等几个方面对该控制系统进行阐述。通过较长时间的运行测试表明该控制系统运行稳定可靠、操作简单方便、具有多种节电工作模式。同时该系统设计灵活、结构简单、成本低廉易于规模化生产可广泛用于家庭和宾馆等安装观赏鱼缸的场所。关键词自动控制单片机水族箱传感器技术AbstractWiththeimprovementofpeople'smateriallifeandappreciatingability,suchcraftsasaquariumgraduallyenterhousesandpublicplaceslikehotelsanddepartmentstoresButasfortheaquariumsfoundinthepresentmarkets,watertemperaturetesting,waterlevelcontrol,waterrecyclingandfoodfeedingareallmanuallyperformed,bringingaboutalotoftroublesandinconveniencesThisdissertationanalyzesandstudiesthecurrentapplicationsofmostaquariums'controldevicesandmakesoutadesignofmultifunctionalintelligentcontrolsysteminaquariumThecontrolsystembasedontheSeriesMCUfamilyaqu双面板提高系统的抗干扰能力增强传感器电路的机械强度延长元器件的使用寿命方便布线又方便送厂家加工。电路板实物图见附录。本章小结本章介绍了鱼缸控制器硬件系统的设计方案从器件选型、经济成本、原理图设计、结构分析、功能实现等多个方面阐述硬件各部分的结构原理包括微处理器单元、数字测温单元、实时时钟单元、输入输出控制单元等。至此本章完成了硬件部分的设计把这些接口电路组合起来就得到总得设计电路图。第章系统的软件设计软件设计是鱼缸智能控制系统设计的主要内容和重点应该根据系统功能要求以系统硬件电路为基础进行系统的软件设计。为了使设计出来的软件功能明确阅读、调试方便健壮性、可靠性好一般采用结构化的程序设计方法。结构化的程序设计包括三方面的工作:自顶向下的设计、模块化编程和结构化编程。除此之外有时还需要加强软件抗干扰设计以提高程序的可靠性。单片机系统程序采用单片机C编程语言进行开发的整个单片机系统的程序共分为六个模块即主程序模块、时钟模块、温度采集模块、屏幕显示模块、蜂鸣器与延时模块、EPROM模块每个模块都具有一定的功能其中有的模块还包含一些子模块即相互独立又相互联系低级模块可以被高级模块调用。软件设计方法在介绍具体软件实现之前先来介绍一下系统软件的设计方法:模块化设计。模块化设计就是把软件按照规定的原则划分为一个个较小的、相对独立但又相关的模块。分解、信息隐藏和模块独立性是实现模块化设计的重要指导思想。分解是人们处理复杂问题常用的方法对问题求解的大量实验表明将一个复杂的问题分解为几个较小的问题能够减小解题所需要的总工作量。但在一个软件系统的内部各组成模块之间是相互关联的。模块划分的数量越多各模块之间的联系也就越多。模块本身的复杂度和工作量虽然随模块的变小而减小模块的接口工作量却随着模块数的增加而增大。每个软件都存在一个最小成本区把模块数控制在这个范围内可以使总的开发工作量保持最小。模块独立性概括了把软件划分为模块时要遵守的准则也是判断模块构造是否合理的标准。坚持模块的独立性一般认为是获得良好设计的关键。独立性可以从两个方面来度量即模块本身的内聚和模块之间的耦合。前者指模块内部各个成分之间的联系所以也称块内联系或模块强度后者指一个模块与其它模块之间的联系所以又称为块间联系。模块的独立性愈高则块内联系越强块间联系越弱。在开发软件的同时还要注意软件开发中文档的建立。在软件开发过程中总是产生和使用大量的信息。软件文档在产品的开发过程中起着重要的作用。文档提高了软件开发过程的能见度。把开发过程中发生的事件以某种可阅读的形式记录在文档中还可提高开发效率。软件文档的编制使得开发人员对各个阶段的工作都进行周密思考、全盘权衡、减少返工可在开发早期发现错误和不一致性便于及时加以纠正并且便于协调以后的软件升级、使用和维护。本系统是以上述的软件设计思想为指导采用KeilC集成开发环境开发软件部分KeilC是美国KeilSoftware公司出品的系列兼容单片机C语言软件开发系统与汇编相比C语言在功能上、结构性、可读性、可维护性上有明显的优势。KeilC软件提供丰富的库函数和功能强大的集成开发调试工具全Windows界面。另外重要的一点只要看一下编译后生成的汇编代码就能体会到KeilC生成的目标代码效率非常之高多数语句生成的汇编代码很紧凑容易理解。主程序工作流程系统软件主程序是检测鱼缸内各种环境参数从而进行鱼缸智能控制的主监控程序按照软件模块化设计的原则将系统功能划分为多个子任务每个子任务由对应的子程序来实现再将这些子程序有机地整合在一起从而实现温度、水位、氧气等参数的采集功能。这样的设计一方面可以理清设计者的思路再者模块化的设计可以方便编写与调试程序。主程序工作流程图系统监控主程序的工作流程图见图所示监控主程序主要完成以下工作:主程序流程详解()对系统进行初始化在监控程序中首先对系统进行初始化编程。硬件方面包括系统的初始化、软件方面有一些标志位的赋值定义按钮、继电器与液位开关的IO口读取EPROM对与的初始化蜂鸣器拉高等。开始初始化设置检测水位开关屏幕显示时间检测温度显示标准温度监控温度上限监控设置按钮图系统主程序流程图()监控水位开关在程序中设置了两个开关对应两个液位开关设上面的开关为A下面的开关为B当A与B都导通的时候代表水位是正常的不需要贮水与放水可以通过时间或者按钮的设置对放水泵进行开启当液位低于A时继续放水如果液位低于B时停止向外放水此刻开始用另外一个水泵把干净的新水加入到鱼缸中这时水位不断抬高当A与B同时导通时代表水以加满此时换水的整个过程完毕。()时间显示将屏幕显示写成函数直接调用主程序每循环一遍清屏一次通过函数的嵌套调用再次调用读取时间读取回来的值统统显示在屏幕上。()检测温度通过调用DSB来读取温度将读回来的值同样利用函数的嵌套调用显示在屏幕上将设置好的标准温度存贮在EPROM里同样显示在屏幕上通过EPROM存储的标准温度与当前检测回来的温度做比较利用比较后的结果对加热器进行开关控制。()监控设置按钮主程序不断的监控设置按钮的开关可以通过监控按钮来设置时间、标准温度、换水时间与打氧时间。一旦有按键动作首先调用时间设置函数利用递归的方式分别对的时间与日期进行设置其次再调用设置标准温度函数调整观赏鱼需要的温度值后将值写入EPROM最后调用换水时间与打氧时间函数同样将设置好的时间写入EPROM当前的时间与EPROM存储的时间相等后执行工作。DSB工作流程图DSB工作流程图如下写DSB指令字节的流程图如图所示。时间和温度读取模块本系统最为关键的两个控制参数为时间和鱼缸温度在前一章中已经介绍了实时时钟电路DS芯片和DSB单线数字温度传感器的作用所以下面简单介绍系统实现对DS的时钟读取和对DSB的温度读取。读取DS的时钟从DS中读取时钟的过程是:依次从DS的相应存储位置读取年、星期、月、日、时、分、秒而且这些值以BCD码形式被读取在其他程序调用时必须进行转换。主要读取函数如下:(时钟芯片初始化(读取时间(修改写入时间读取DSB的温度从DSB中读取温度的过程是:首先获取DSB中的温度值该温度值为BCD码形式然后通过转换以十进制形式输出温度值且此时输出的温度值含有两位小数但输出时没有小数点输出的温度值是实际温度的一百倍。它的步骤如下:()初始化函数()读取温度传感器的温度()计算实际温度值开始进位标志位清零数据端清零延时(us)循环右移一次进位标志位值送数据端延时(us)数据端置高(拉高数据线)N指令字节写完,YDSB写返回图写DSB指令字节的流程图如果测得的温度大于只要将测到的数值乘以即可得到实际温度如果温度小于测到的数值需要取反加再乘以才能得到实际温度。键盘控制与显示处理模块该模块是整个鱼缸智能控制系统非常重要的人机交互接口主要实现整个控制系统的各种功能参数设置提供了一个良好的人机交互界面实现各种工作状态的改变和各种控制参数的设置。系统共有个LCD液晶显示器与个按键其中有个按键为上、下、左、右最后一个为确认键分别用于进入推出与调整参数设置以及参数值的增减。设置功能里面都设置了各参数数值的设置范围如表所示。表各参数值设置范围参数水泵气泵照明日期温度名称时分时分时分年月日时分值范~围其中设置时间的函数比较具有代表意义如下:***************调整函数***************Settime(unsignedintsel)根据选择调整的相应项目加并写入DS{while(){signedcharaddress,itemsignedcharmax,mini*******设置年月日小时分钟等的设置范围********if(sel==){address=READMINUTEmax=mini=}分钟if(sel==){address=READHOURmax=mini=}小时if(sel==){address=READDAYmax=mini=}日if(sel==){address=READMONTHmax=mini=}月if(sel==){address=READYEARmax=mini=}日item=Read(address)if(left==)左右方向键选择要调整的项目{delay()while(left==)selif(sel==)sel=Settime(sel)break}if(right==){delay()while(left==)selif(sel==)sel=Settime(sel)break}if(up==)上下方向调整调整项目的内容{while(left==)item数加}if(down==){while(left==)item数减}if(item>max)item=mini查看数值最大范围if(item<mini)item=max查看数值最小范围Write(xe,x)允许写操作转换成进制写入Write(address,(item)*item)Write(xe,x)写保护禁止写操作if(ok==)继续调用其他的函数如换水标准温度等{Beepkey()delay()while(ok==)writecom(x)Setpiptemp()break}shizhong()设置完之后显示当前设置好的时间不断刷新}}EPROM模块本系统中设置各个参数的值都离不开EPROM的因为本系统采用的是STCC型单片机自带KEPROM只需要在程序中对EPROM调用即可调用的步骤如下。(擦除指定的扇区(写一字节(读一字节其中的擦除扇区没有字节擦除只有扇区擦除。如果要改变扇区中的某个字节保留其它字节内容不变必须先把其它字节读出来保存然后擦除整个扇区再把改动的字节内容和保存的其它字节内容写入扇区。所以最好把数据放在不同的扇区中。扇区读写的时间短擦除的时间比较长要注意扇区擦除函数的调用位置比如最好不要放在定时中断中。本章小结综合本系统软件的设计有如下几个特点:(采用模块化的程序设计方法使整个程序结构清晰并具有开放性的特点易于移植、修改和扩展。(系统采用单片机C语言软件开发C语言在功能上、结构性、可读性上有明显的优势。而且使用KeilC软件开发环境该开发环境提供了丰富的库函数和功能强大的集成开发调试工具全Windows界面语句生成的汇编代码很紧凑容易理解。(重点介绍了采样值的处理、工作状态的处理以及如何实现按时间段循环控制实时任务的设计技术。第章总体设计的调试与展望本课题针对观景鱼缸在自动恒温控制、自动充氧、自动换水、自动照明等实际需求做出了有效的研究和探索详尽地分析鱼缸中各种环境参数对鱼类和水草的影响从鱼缸的日常养护要求和实际工作环境背景出发对鱼缸多功能控制系统的实现提出了详细的设计方案从实际运行结果可以看出此控制方案能够实现鱼缸水温按鱼类和水草的生长要求进行自动恒温控制自动进排水自动充氧控制和自动灯光照明控制这对鱼类和水草的生长是至关重要的。整个方案实现简单性能可靠能够代替目前的半自动化水温加热、换水和照明的过程实现控制系统的全自动化。这不仅减少了人力物力还能消除人为因素对鱼缸控制过程的影响保证所养殖的鱼类和水草的正常生长明显提高了效率。系统的调试将所有器件焊置PCB板上便可进入系统的调试其主要任务是排除系统的硬件故障并完善其硬件结构试运行所设计的程序排除程序错误优化程序结构使系统达到期望的功能进而固化软件使其产品化。系统硬件调试控制系统的硬件和软件调试是交叉进行的但通常是先排除系统的硬件故障尤其是电源故障才能安全地进行连接进行综合测试。(错线、开路、短路:由于设计错误和加工过程中的工艺性错误所造成的错线、开路、短路等故障。解决方法:在画原理图时仔细检查、校正即可解决。(元器件损坏:由于对元器件使用要求的不熟悉及制作调试过程中操作不当致使器件损坏。解决方法:在设计过程中要明确各元器件的工作条件严格按照制作要求进行操作损坏的元器件要及时更换以免损坏其他元件或影响电路功能的实现。(电源故障:设计中存在电源故障即上电后将造成元器件损坏、无法正常供电电路不能正常工作。电源的故障包括:电压值不符和设计要求电源引出线和插座不对应各档电源之间的短路变压器功率不足内阻大负载能力差等。解决方法:电源必须单独调试好以后才能加到系统的各个部件中本设计中就出现电源故将经过多次对电源的调换才使其正常工作。系统软件调试设计软件部分出现这种错误的现象:(当以断点或连续方式运行时目标系统没有按规定的功能进行操作或什么结果也没有这是由于程序转移到意外之处活在某处死循环所造成的。解决方法:这类错误的原因是程序中转移地址计算错误、堆栈溢出、工作寄存器冲突等。在采用实时多任务操作系统时错误可能在操作系统中没有完成正确的任务调度操作也可能在高优先级任务程序中该任务不释放处理器使CPU在该任务中死循环。通过对错误程序的修改使其实现预期的功能。(不响应中断错误的原因有:中断控制寄存器(IEIP)的初值设置不正确使CPU没有开放中断或不许某个中断源请求或者对片内的定时器、串行口等特殊功能寄存器和扩展的IO口编程有错误造成中断没有被激活或者某一中断服务程序不是以RETI指令作为返回主程序的指令CPU虽已返回到主程序但内部中断状态寄存器没有被清除从而不响应中断或由于外部中断源的硬件故障使外部中断请求无效。解决方法:修改中断控制寄存器(IEIP)的初值设置。创新点与应用范围设计总结(本系统综合利用传感器技术自动检测技术和微机控制技术开发了一套对水里的环境因子进行监控的设计简洁实用的自动控制系统。(系统软硬件设计合理其中单片机软件采用模块化的程序设计方法各模块相互独立提高了系统的可靠性和可扩展性整个系统具有较高的性价比。(系统软件采用C语言编程程序结构清晰键盘操作和LCD液晶显示界面非常友好操作者在使用该系统时轻松方便。(系统功能独立配置合理其中单片机部分可独立运行。(经模拟运行验证系统具有相应速度快操作简便工作可靠等特点。创新点本课题设计开发的多功能鱼缸智能控制器是适用于家庭、水族馆等观赏型水族类养殖场所的一种新型智能化控制器在国内水族箱控制器产品中技术新颖其创新点有:(微电脑智能控制的鱼缸(水族箱)(具有多种节电工作模式(恒温设计(灯光照明时间可以自由设定启动与停止时间(具有高低水位检测自动换水(具有多重水循环与水质过滤。应用范围和实施效果从前面的叙述中可以看出论文所涉及到的多功能鱼缸智能控制器是适用于家庭、水族馆、办公室等观赏型水族类养殖场所实现智能化管理的产品该产品能大大减少人为不确定因素对水族箱造成的不良结果而且开发成功的产品设计新颖技术先进功能强大操作方便。产品的应用范围:只要适用于家庭、水族馆、办公室等观赏型水族类养殖场所实现智能化管理不仅可以减少人为不确定因素对水族箱造成的不良结果而且系统内部预设多种节能工作模式方便使用者选择。产品的实施效果:采用智能控制水族箱替代普通水族箱可以节约人工管理的繁琐从被动的管理转化为宏观的控制同时可在人员不在的情况下根据预设的工作模式自动控制充氧泵、循环水泵和照明等设备的启动和停止达到节能效果。对于大型水族馆可以节约大量人力对于普通家庭可以提高普通家庭居家养鱼的科学性。产品的实际运行情况:通过长时间的实际测试运行表明本系统智能控制功能基本符合设计要求控制效果良好稳定可靠有较强的实用性。本套系统的研制对后续水族箱智能控制系统的研究在理论和实践上都有较高的参考价值。它还有一个突出的优点成本比较低廉、有较高的性价比适合我国国情因此也具有较高的生产使用价值。展望虽然本课题达到了最初的目的为鱼缸中鱼类和水草的生长环境调控提供了实用的控制系统但是由于时间短、学科上和本人水平的限制系统研制中还有很多考虑不周的地方。(由于观赏鱼类的生存环境各不相同应加入数据库的元素在里面通过查询数据库中鱼类的生存环境自动设置鱼缸中的各种参数。(由于鱼缸生态环境是一个非常复杂的多变量、非线性系统影响鱼类和水草生存环境因素很多又有关联的耦合现象而本系统的控制输出仅为简单的开关量信号这是显然不能满足高精度的控制要求应引入模糊算法专家系统等技术以进一步提高系统的智能决策水平。(本设计还预留了一些可扩展的功能希望以后还可以探索海水缸的领域探索PH值等一些传感器的应用。若要将本系统产品化还需要对系统进行进一步的改进和调试。相信经过不懈的努力在较短的时间内一定会使之成为一个非常适合与规模化生产的产品。本章小结通过这次设计本人学到很多宝贵的东西学会了课题研究的一般过程学会了如何解决实践中遇到的难题将所学的理论知识和实际相结合起来在一定程度上提高自己的动手能力和问题解决能力。在这次论文设计的过程中由于时间关系和本人水平的限制文中也难免存在着一些不妥和疏漏之处在此敬请各位专家批评指正。结论本设计围绕着水族箱控制系统在温度探测和控制、水温的加热、定时充氧、定时换水等需求提出了详细的设计方案从控制方案实际运行来看此设计可以实现对水族箱的智能化控制可以克服目前水族箱市场上各种设备独立工作和需要手动带来的不便并且成本低廉、性能可靠消除因饲主的忽视对控制过程的影响。整套控制系统的软件部分和硬件设计部分设计合理C语言编程的单片机软件程序是模块化的程序设计模块与模块之间相互独立有很高的可靠性硬件设计成本低廉。在制作过程中运用传感器技术、继电器控制技术、单片机原理系统软件部分采用C语言编程程序结构清晰按键的操作和液晶显示的界面很友好操作者在使用该系统时轻松方便。在系统设计中还充分考虑了系统的扩展问题为此单片机特意留下了扩展排针焊孔。如需要更准确的含氧量数据可以在扩展排针上接溶氧量传感器电路这些扩展排针接口还可以增加水中含氮量传感器电路使水中的环境参数控制更精确。这些都对以后系统功能的扩展留下空间。通过本控制系统的研究与开发本人学会了设计一个电子产品的一般过程包括原理图的设计、修改、网路报表的生成、元器件报告的输出、原理图导入PCB图、PCB图元件的布局、覆铜板的腐蚀等等。学会了在遇到不懂的时候懂得去自学将自学所得的理论知识运用到设计中去考验了本人动手能力和问题解决的能力。最重要的是体会到查找资料在研究与设计中的重要性。在研究与开发前看本研究的各种资料了解它的发展方向和历史是触发设计灵感的重要源泉也是在研究与开发中解决问题的重要依据。致谢值此论文完成之际谨向我的导师高洪志老师致以最诚挚的敬意和由衷的感谢。从课题的选定、资料的准备、研究直到论文的修改润色等各个环节都得到了高老师的细心指导。高老师渊博的学识、严谨认真的治学态度、实事求是的工作作风、朴实真诚的为人态度和孜孜以求的钻研精神使我受益匪浅。感谢毕津滔老师对我的指导在课题选择、方案制定给予了我无私的指导由于他对水族箱的了解给了我不少专业性的帮助。感谢我的家人和朋友正是由于他们默默无闻的奉献和一贯的支持和鼓励才使我有信心和毅力完成设计和论文的工作。最后再次向所有给予我支持、帮助和鼓励的老师、同学和朋友以及在百忙中评阅论文和参加答辩的专家和评审老师一并表示最诚挚的谢意祝他们健康、快乐。参考文献李开春(小小水族箱装着大世界(宠物世界:张海萍(小小水族箱装着大市场(市场报:朱欣(水族箱养殖热带观赏鱼常识(科学养鱼:毛谦敏(单片机原理及应用系统设计(国防工业出版社:孙育才(MCS系列单片微型计算机及其应用(南京:东南大学出版社:彭国平邓洪波梁振权(水族箱自动控制装置的设计(广东自动化与信息工程:张继辉(用单片机制作水族箱加氧泵自控开关(电子世界:毕复昭(多功能水族箱(实验教学与仪器(:何立民(MCS系列单片机应用系统设计系统配置与接口技术(北京:北京航空航天大学出版社:JackRSmith(SensorsandRealTimeClocks(DigitalTemperature:Atmelcorporationat(Cdatasheetoftechnicaldocuments:赵海兰朱剑赵祥伟(DS实时显示时间的原理与应用(电子技术:黄志勇(用实时时钟芯片DS启动数据采集系统(单片机与嵌入式系统应用:郑国钦夏哲雷(集成传感器应用入门(杭州:浙江科学技术出版社:百度百科(继电器(全国科学技术名词审定委员会:MauriceWilkes(ProgressinComputers(UniversityofCambridge,:附录文献译文DSB温度检测C程序DSB的主要特性、适应电压范围更宽电压范围:,V在寄生电源方式下可由数据线供电、独特的单线接口方式DSB在与微处理器连接时仅需要一条口线即可实现微处理器与DSB的双向通讯、DSB支持多点组网功能多个DSB可以并联在唯一的三线上实现组网多点测温、DSB在使用中不需要任何外围元件全部传感元件及转换电路集成在形如一只三极管的集成电路内、温范围,,在,时精度为、可编程的分辨率为,位对应的可分辨温度分别为、、和可实现高精度测温、在位分辨率时最多在ms内把温度转换为数字位分辨率时最多在ms内把温度值转换为数字速度更快、测量结果直接输出数字温度信号以"一线总线"串行传送给CPU同时可传送CRC校验码具有极强的抗干扰纠错能力、负压特性:电源极性接反时芯片不会因发热而烧毁但不能正常工作。、DSB的外形和内部结构图:DSB外观图DSB内部结构主要由四部分组成:位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DSB的外形及管脚排列如下()DQ为数字信号输入输出端()GND为电源地()VDD为外接供电电源输入端(在寄生电源接线方式时接地)。、DSB工作原理DSB的读写时序和测温原理与DS相同只是得到的温度值的位数因分辨率不同而不同且温度转换时的延时时间由s减为ms。DSB测温原理如图所示。图中低温度系数晶振的振荡频率受温度影响很小用于产生固定频率的脉冲信号送给计数器。高温度系数晶振随温度变化其振荡率明显改变所产生的信号作为计数器的脉冲输入。计数器和温度寄存器被预置在,所对应的一个基数值。计数器对低温度系数晶振产生的脉冲信号进行减法计数当计数器的预置值减到时温度寄存器的值将加计数器的预置将重新被装入计数器重新开始对低温度系数晶振产生的脉冲信号进行计数如此循环直到计数器计数到时停止温度寄存器值的累加此时温度寄存器中的数值即为所测温度。图中的斜率累加器用于补偿和修正测温过程中的非线性其输出用于修正计数器的预置值。DSB有个主要的数据部件:()光刻ROM中的位序列号是出厂前被光刻好的它可以看作是该DSB的地址序列码。位光刻ROM的排列是:开始位(H)是产品类型标号接着的位是该DSB自身的序列号最后位是前面位的循环冗余校验码(CRC=XXX)。光刻ROM的作用是使每一个DSB都各不相同这样就可以实现一根总线上挂接多个DSB的目的。()DSB中的温度传感器可完成对温度的测量以位转化为例:用位符号扩展的二进制补码读数形式提供以LSB形式表达其中S为符号位。表:DSB温度值格式表BitBitBitBitBitBitBitBitLSByteBitBitBitBitBitBitBitBitMSByteSSSSS这是位转化后得到的位数据存储在B的两个比特的RAM中二进制中的前面位是符号位如果测得的温度大于这位为只要将测到的数值乘于即可得到实际温度如果温度小于这位为测到的数值需要取反加再乘于即可得到实际温度。例如的数字输出为DH(xD)的数字输出为H的数字输出为FEFH的数字输出为FCH。表:DSB温度数据表TEMPERATUREDIGITALDIGITALOUTPUT(Binary)OUTPUT(Hex)CDhChChCAhChChCFFFhCFFEhCFEFhCFCh()DSB温度传感器的存储器DSB温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的EEPRAM后者存放高温度和低温度触发器TH、TL和结构寄存器。低五位一直都是""TM是测试模式位用于设置DSB在工作模式还是在测试模式。在DSB出厂时该位被设置为用户不要去改动。R和R用来设置分辨率(DSB出厂时被设置为位)。、高速暂存存储器高速暂存存储器由个字节组成其分配如表所示。当温度转换命令发布后经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第和第个字节。单片机可通过单线接口读到该数据读取时低位在前高位在后数据格式如表所示。对应的温度计算:当符号位S=时直接将二进制位转换为十进制当S=时先将补码变为原码再计算十进制值。表是对应的一部分温度值。第九个字节是冗余检验字节。根据DSB的通讯协议主机(单片机)控制DSB完成温度转换必须经过三个步骤:每一次读写之前都要对DSB进行复位操作复位成功后发送一条ROM指令最后发送RAM指令这样才能对DSB进行预定的操作。复位要求主CPU将数据线下拉微秒然后释放当DSB收到信号后等待,微秒左右后发出,微秒的存在低脉冲主CPU收到此信号表示复位成功。附录英文文献DSBtemperaturedetectionCprogramThemaincharacteristicsofDSBtomuchwiderrangeofthevoltage,voltagerange:~V,intheparasiticpowersupplymannerbythedatalinepowersupplytheuniquesingleinterfacemode,DSBisconnectedwiththemicroprocessoronlyneedsanexportlinecanrealizemicroprocessorwithDSBbidirectionalcommunicationDSBsupportmultipointnetworkfunction,multipleDSBcanbeconnectedinparallelintheonlythreeline,achievenetworkmultipointtemperaturemeasurementDSBdoesnotrequiretheuseofanyexternalcomponents,allthesensorsandconvertingcircuitintegratedintheshapedlikeathreetransistorintegratedcircuittemperaturerangeC~C,in~CwhentheprecisionofplusorminusDEGCprogrammableresolutionis~,correspondingtotheresolvabletemperatureweredegrees,degrees,degreesanddegreesC,canachievehighprecisiontemperaturemeasurementbitresolutionuptothetemperaturewithinthemsconversiontodigital,bitresolutionuptothetemperaturewithinthemsvaluesareconvertedtodigital,fastermeasurementresultofdigitaltemperatureoutputsignaldirectly,inorderto"bus"serialtransfertoCPU,atthesametimecantransmitCRCcheckcode,hasaverystrongantiinterferenceerrorcorrectingabilitynegativepressurecharacteristics:powerpolarityreverseconnection,chipwithoutfeverandburned,butcannotworknormallyDSBshapeandinternalstructureofFigure:DSBappearanceoffigureInternalstructureofDSBismainlycomposedoffourparts:lithographyROM,temperaturesensor,nonvolatiletemperaturealarmtriggerTHandTL,aconfigurationregisterTheappearanceofDSBandpinarrangementasFigure:DSBpindefinition:youyouyouyou()theDQfordigitalsignalinputoutput()theGNDforpowersupply()VDDisconnectedwiththepowersupplyinputend(intheparasiticpowersupplywiringground)In,theDSBworkingprincipleDSBreadandwritetimingandtemperaturemeasuringprincipleandDSisthesame,justgetthetemperaturevalueofthedigitinresolutionanddifferenttemperature,andtheconversionofthedelaytimeisreducedbySmsDSBthermometryprincipleasshowninfigureLowtemperaturecoefficientofcrystaloscillationfrequencytemperaturehaslittleinfluence,isusedtogenerateafixedfrequencypulsesignaltothecounterHightemperaturecoefficientofcrystalfollowingtemperaturechangerateofoscillationchangesignificantly,thesignalgeneratedbythepulseinputasacounterCounterandthetemperatureregisterispresetintheCcorrespondstoabasevalueCounterforlowtemperaturecoefficientofcrystalgeneratesapulsesignalsubtractioncount,whenthecounterpresetvaluelessthan,thetemperatureregistervalueplus,counterpresettobeloaded,counterstartonlowtemperaturecoefficientofcrystalproducedbycountingpulsesignals,sothecycleuntilthecountercountto,tostopthetemperatureregistervalueaccumulation,thenthetemperatureregistervaluesforthemeasuredtemperatureInFigure,theslopeoftheaccumulatorisusedtocompensatefortemperaturemeasurementandcorrectionofnonlinearity,theoutputfortheamendmentstocounterpresetvalueTheDSBhasmaincomponents:thedatayouyouyouyoulithographyROMbitsofthesequencenumberisthefactorybyaphotoresistisgood,itcanbeseenastheaddressoftheDSBsequencecodelithographyROMarrangementis:(H)isatypeofproductlabel,andtheistheDSB'sserialnumber,thelastinfrontofbitscyclicredundancycheckcode(CRC=XXX)LithographyROMroleistomakeeachDSBeacharenotidentical,soitcanachieveabusconnectingapluralityofDSBpurposetheDSBtemperaturesensorscanbecompletedonthetemperaturemeasurement,theintothecaseswithsymbols:ExtendedBinaryReadingform,withDEGCLSBexpressionform,whereSisthesignbitTable:DSBtemperaturevalueformattableBitBitBitBitBitBitBitBitLSByteBitBitBitBitBitBitBitBitMSByteSSSSSThisisthetransformedthebitdata,storedintheBtwobitRAM,binaryinthefrontisthesignbit,ifthemeasuredtemperatureisgreaterthan,theof,aslongasthemeasuredvaluebytoobtaintheactualtemperatureifthetemperaturelessthan,the,thenumbersneedtoinvertplusmorebytoobtaintheactualtemperatureSuchasCdigitaloutputforDH(xD),degreesCdigitaloutputforH,degreesCdigitaloutputforFEFH,degreesCdigitaloutputforFCHTable:DSBtemperaturedatatableTEMPERATUREDIGITALDIGITALOUTPUT(Binary)OUTPUT(Hex)CDhChChCAhChChCFFFhCFFEhCFEFhCFCh()thememoryofDSBtemperaturesensorDSBtemperaturesensorintheinternalmemoryincludesascratchpadRAMandanonvolatilecanbeelectricallyerasedEEPRAM,thelatterforhightemperatureandlowtemperaturetriggerTH,TLandstructureofregister()theconfigurationregisterthebytetothemeaningasfollows:Youyouyoulowfivebitsare"",TMisatestmode,usedtosettheDSBinaworkingmodeortestmodeInDSBfactorywhenthebitissetto,theusernottochangeRandRusedtosettheresolution,asshowninthefollowingtable:(DSBfactoryissetto),scratchpadmemoryScratchpadmemoryconsistsofbytes,thedistributionasshownintableWhenthetemperatureconversioncommandpost,byconvertingthetemperaturevaluetotwobytecomplementformstoredinthescratchpadmemoryzerothandfirstbytesChipprocessorcanreadthedatathroughasingleinterface,readinhighlowbefore,after,dataformat,asshownintableThecorrespondingtemperaturecalculation:whenthesignbitwhenS=,directlytothebinarytodecimalconversionwhenS=,thefirstcomplementistheoriginalcode,andthencalculatingthedecimalvalueTableisaportioncorrespondingtothetemperaturevalueNinthbytesisredundancycheckbyteAccordingtotheDSBcommunicationprotocol,thehost(SCM)controlDSBtemperatureconversionmustbecompletedthroughthreesteps:eachtimetoreadandwritebeforeDSBwasreset,resetafterthesuccessofsendingaROMinstruction,finallytosendRAMcommands,suchabilityonDSBcarriesoutapredeterminedoperationResetrequestthemainCPUdatalinedropmicroseconds,thenreleased,whentheDSBsignalisreceivedafterwaitingtomicrosecondsafterabouttomicrosecondsinthepresenceofalowpulse,themainCPUreceivesthissignalindicatessuccess附录系统仿真原理图附录PCB图附录PCB原理图附录程序(部分)#defineucharunsignedchar#defineuintunsignedint#include<STCCRCRDPLUSh>#include<dsc>#include<dsbc>#include<lcdc>#include<beepc>#include<eepromc>***********换水的开关与模拟的灯****sbitopen=P^sbitopen=P^sbitled=P^sbitled=P^sbitled=P^sbitled=P^*************制板上的按钮端口************sbitup=P^sbitright=P^sbitdown=P^sbitleft=P^sbitok=P^******定义需要EEPROM的变量*********ucharachartimeuchartypeuchartemp***************显示时间***************voidshizhong()主屏界面显示时间{print(x,"")print(x,Read(READYEAR)x)print(x,Read(READYEAR)x)print(x,Read(READMONTH)x)print(x,Read(READMONTH)x)print(x,Read(READDAY)x)print(x,Read(READDAY)x)print(x,xf)print(x,xf)print(xc,Read(READHOUR)X)print(xc,Read(READHOUR)X)print(xc,Read(READMINUTE)X)print(xc,Read(READMINUTE)X)print(xc,Read(READSECOND)X)print(xc,Read(READSECOND)X)print(xc,xa)print(xc,xa)}**************显示温度***************voidwendu(){uintyfloattemptemp=readtemperature()temp=tempy=(uint)tempprint(xca,yx)y=(uint)yprint(xcb,yx)y=(uint)yprint(xcd,yx)print(xcc,xe)print(xce,xdf)print(xcf,x)*if(temp>a){writecom(x)Beepkey()print(x,"tempOverTop!!!!")}if(temp<a){writecom(x)Beepkey()print(x,"tempTooLow!!!!")}*}**显示百位、正负号与小数点第二位由于测试的是鱼缸所以不需要****tmiao=(uint)yif(Tsign==)print(xc,xd)elseprint(xc,xb)if(tbai!=)print(xc,tbaix)elseprint(xc,x)********************************************************************设置放水时间***************Setwater(unsignedintsel)设置放水的时间{ucharmax={,}ucharmin=while(){if(up==){delay()timesel}if(down==){delay()timesel}if(timesel>maxsel)timesel=minif(timesel<min)timesel=maxselif(left==){Setwater()break}if(right==){Setwater()break}print(x,"Setwatertime:")print(xc,timex)print(xc,timex)print(xc,xa)print(xc,timex)print(xc,timex)if(ok==){Beepkey()delay()while(ok==)writecom(x)break}}}**************设置标准温度*************Setpiptemp(void)设置标准温度{print(x,"PipTemp:")while(){print(x,ax)print(x,ax)if(up==){delay()a}if(down==){delay()a}if(ok==){Beepkey()delay()while(ok==)writecom(x)cc(x)擦除第个扇区(h~FFh)xcx(x,a)对EEPROM区h写入aSetwater()break}}}***************调整函数***************Settime(unsignedintsel)根据选择调整的相应项目加并写入DS{while(){signedcharaddress,itemsignedcharmax,miniif(sel==){address=READMINUTEmax=mini=}分钟if(sel==){address=READHOURmax=mini=}小时if(sel==){address=READDAYmax=mini=}日if(sel==){address=READMONTHmax=mini=}月if(sel==){address=READYEARmax=mini=}年item=Read(address)if(left==){delay()while(left==)selif(sel==)sel=Settime(sel)break}if(right==){delay()while(left==)selif(sel==)sel=Settime(sel)break}if(up==){while(left==)item数加}if(down==){while(left==)item数减}if(item>max)item=mini查看数值有效范围if(item<mini)item=maxWrite(xe,x)允许写操作Write(address,(item)*item)转换成进制写入Write(xe,x)写保护禁止写操作if(ok==){Beepkey()delay()while(ok==)writecom(x)Setpiptemp()break}shizhong()}}**************换水函数**************voidwater(){if((Read(READHOUR)==timeRead(READMINUTE)==timeRead(READSECOND)==)||(left==right==))时间控制按钮控制{led=type=}if(open==type==)led=if(open==led==)type=if(open==open==){led=led=}if(open==open==type==){led=led=}}*******************初始化*************voidinit(){type=a=dcx(x)读取EEPROM的值标准温度time=dcx(x)time=dcx(x)initlcd()lcd初始化Initial()初始化led=led=led=led=beep=}***************主函数***************voidmain(){init()while(){water()shizhong()屏幕显示日期与时间wendu()屏幕显示温度print(xe,ax)屏幕显示标准温度print(xf,ax)if(open==){if(temp<a)led=elseled=}elseled=if(ok==)开始设置各项属性{delay()Beepkey()while(ok==)writecom(x)Settime()}cc(x)xcx(x,time)xcx(x,time)writecom(xc)所有设置完毕清屏显示}

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

评分:

/70

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利