基于单片机的水箱水位控制系统_第1页
基于单片机的水箱水位控制系统_第2页
基于单片机的水箱水位控制系统_第3页
基于单片机的水箱水位控制系统_第4页
基于单片机的水箱水位控制系统_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

基于单片机的水箱水位控制系统摘要大型水箱是很多公司生产过程中必不可少的部件,它的性能和工作质量的优良不仅仅对生产有着巨大的影响,而且也关系着生产的平安。在过去,大量的对水箱操作是由相应的人员进行操作的,这样的人工方式带来了很大的弊端,比方水位的控制,时刻监控水箱的环境,夜间的监控等等,操作员稍有疏忽,或者简易的监那么器件损坏,将带来无法弥补的损失,更严重的会危机到生产人员的人身平安等。所以,对水箱控制,如果能够使用精密的而且完全会严格按照生产规定运行的自动化系统,可以最大限度的防止事故的几率,同时也能节省资源并能有效提高生产的效率。本单片机系统设计的目的是应用单片机控制技术,以8051单片机为核心控制水箱的水位,并实现了报警和手动、自动切换功能。该系统操作方便、性能良好,比拟符合电厂生产用水系统控制的需要。关键词:单片机水位控制报警BasedonthesinglechipmicrocomputercontrolsystemofthewatertankAbstractLargewatertanksarealotofcompaniesessentialtotheproductionprocessofparts,itsperformanceandthequalityofworknotonlyonproductionofthefinehasenormousinfluence,butalsothesafetyofproduction.Inthepast,manyofthetanksareoperatedbythestafftooperate,sothatartificialmeansalotofdrawbacks,suchasthewaterlevelcontrol,watertanksatalltimestomonitortheenvironment,andsoonthenightofmonitoring,theoperatorslightlynegligence,ordamagetotheSummaryofthemonitoringdevicewillbringirreparabledamagewillbeevenmoreseriouscrisisinproduction,suchasthepersonalsafetyofstaff.Therefore,controlofwatertanks,iftheuseofsophisticatedandcantotallyberuninstrictaccordancewiththeprovisionsoftheautomatedproductionsystemthatcanmaximizethechancesofavoidingaccidents,butalsosaveresourcesandcaneffectivelyimprovetheefficiencyofproduction.Thepurposeofsingle-chipsystemdesignistheapplicationofsingle-chipcontroltechnology,to8051asthecoretocontrolthewaterlevelinwatertanks,andimplementationofthealarmandmanual,automaticswitchingfunction.Thesystemiseasytooperate,goodperformance,moreinlinewiththepowertocontroltheproductionofthenecessarywatersystem.Keywords:Single-chiplevelControlAlarm目录1绪论11.1水箱控制系统研究背景及意义11.1.1水箱控制系统研究背景11.1.2水箱控制系统研究意义11.2水箱控制系统国内外研究现状21.3水箱水位控制系统研究开展方向32单片机水箱控制系统原理42.180C51单片机控制系统原理42.1.180C51单片机水箱控制系统工作原理42.1.280C51单片机控制局部结构说明52.1.380C51引脚电路及其功能103系统硬件设计133.180C51单片机水箱控制系统硬件简介133.1.1数据采集及处理模块133.1.2时序163.1.3光电隔离173.1.4给水泵电机主控回路介绍203.1.5二级管显示电路设计213.280C51水箱控制系统主控硬件部署方案213.2.180C51单片机实现系统功能说明223.2.2相关器件223.2.3相关电路224系统软件设计274.1程序概要设计274.2系统程序原理27系统主要程序及流程框图274.2.2自动模式子程序原理及流程框图284.2.2手动模式子程序原理及流程框图305调试仿真356总结与展望40参考文献41致谢431绪论1.1水箱水位控制系统研究背景及意义水箱水位控制系统研究背景在工农业生产中,常常需要控制液体水位。随着国家工业的迅速开展,水位控制技术被广泛应用到石油、化工、医药、食品等各行各业中。低温液体〔液氧、液氮、液氩、液化天然气及液体二氧化碳等〕得到广泛的应用,作为贮存低温液体的容器要保证能承受其载荷;在发电厂、炼钢厂中,保持正常的锅炉汽包水位、除氧器水位、汽轮机凝气器水位、高、低压加热器水位等,是设备平安运行的保证;在教学与科学研究中,也经常碰到需要进行水位控制的实验装置。水箱水位控制系统研究意义大型水箱是很多公司生产过程中必不可少的部件,它的性能和工作质量的优良不仅仅对生产有着巨大的影响,而且也关系着生产的平安。在过去,大量的对水箱操作是由相应的人员进行操作的,这样的人工方式带来了很大的弊端,比方水位的控制,时刻监控水箱的环境,夜间的监控等等,操作员稍有疏忽,或者简易的监那么器件损坏,将带来无法弥补的损失,更严重的会危机到生产人员的人身平安等。所以,对水箱控制,如果能够使用精密的而且完全会严格按照生产规定运行的自动化系统,可以最大限度的防止事故的几率,同时也能节省资源并能有效提高生产效率。从水资源节约方面考虑,以往的人工控制在很多情况下,造成资源不必要的浪费,大局部原因是水箱内部水位没有及时的反应信息到操作员,从而使控制上有一定的延迟,从而造成了水量过多或者没能及时补水而导致资源的浪费或生产出现异常。而对水箱水位的监控以及自动化的引入可以很好的改善补水过多和及时补水的情况,可以很好的节约资源有效的降低本钱。单片机,一小块芯片上集成了一个微型计算机的各个组成局部,它的诞生使众多自动化控制系统得以实现。80C51以它功能强大,设计简单,制造廉价,支持指令集较多。所以应用到众多嵌入式系统开发中。因此,基于80C51单片机的水箱水位控制系统研究有着重要的意义。水位控制一般指对某一水位进行控制调节,使其到达所要求的控制精度。液体的水位自动控制,是近年来新开发的一项新技术,它是微型计算机软件、硬件、自动控制等几项技术紧密结合的产物,工程作业采用的是微机控制和原有的仪表控制,危机控制有以下明显优势:1〕直观而集中的显示运行参数,能显示水位状态。2〕在运行中可以随时方便的修改各种各样的运行参数的控制值,并修改系统的控制参数,可以方便的改变水位的上限、下限。3〕具有水体控制过程的自动化处理以及监控软件良好的人机界面,操作人员在监控计算机上能根据控制效果及时修改运行参数,这样能有效地减少工人的疲劳和失误,提高生产过程的实时性、平安性。综合以上的种种优点可以预见采用计算机控制系统是行业的大势所趋。单片机在一块芯片上集成了一片微型计算机所需的CPU、存储器、输入、输出等部件。单片机自问世以来,性能不断提高和完善,体积小、速度快、功耗低的特点使它的应用领域日益广泛。一般工业控制系统的工作环境差,干扰强,利用单片机控制就能克服这些缺点,因此单片机在控制领域得到广泛的应用,使用单片机控制水箱水位是很好的选择。1.2水箱水位控制系统国内外研究现状目前,水箱控制系统已不仅仅局限于大型的电厂、煤炭、钢铁等大型企业领域,它以自身的自动化控制系统的平安优势,已经慢慢深入到一些民用水箱产品。但是目前阶段,它的本钱还很高。比方把一台纯手工家用水箱设计成自动化控制的水箱,从硬件的设计和铺设,对于民用化产品实施的性价比拟高。因此大规模的使用仍受到经济上的限制。但是,从长远来看,随着自动化技术的改良和硬件本钱的降低,以及人们对资源浪费的重视。水箱控制系统仍然有大规模推广的前景。我国仍然处于生产型开展中国家,所有几乎在能源相关的所有领域中,水箱是比不可少的部件,即使是兴旺国家也不例外。它性能的优良与否关系直接关系到企业的生产平安和效益。随着我国嵌入式技术的开展,我国控制系统技术已经到达国际水平,但是在中小型企业以及民用产品,大量的水箱控制任然通过专职的人员进行控制。随着我国单片机开发技术的逐渐成熟,以及单片机生产本钱的下降,基于单片机的水箱控制系统应用到中小型以及民用产品有着交大的开展空间[1]。而且越来越多的水箱生产厂商开始聘用单片机开发人员和电路设计人员,将控制系统成为水箱设计的一局部,以提高自身产品的平安性能和科技含量来提高产品在市场中的竞争力。一些兴旺国家在单片机新型系统研究、制造和应用上,已经积累了很多的经验,奠定了根底,进入了国际市场。我国在新型测控装置与系统研究、制造、应用和经验上,与其他兴旺国家相比还存在差距,但是我国研究人员已经克服很多困难,并在不断摸索中前进,有望在相关领域赶上甚至超越兴旺国家的技术水平,这是开展趋势。1.3水箱水位控制系统研究开展方向纵观我们现在生活的各个领域,从导弹的导航装置,到飞机上各种仪表的控制,从计算机的网络通讯与数据传输,到工业自动化过程的实时控制和数据处理,以及我们生活中广泛使用的各种智能IC卡、电子宠物等,这些都离不开单片机。以前没有单片机时,这些东西也能做,但是只能使用复杂的模拟电路,然而这样做出来的产品不仅体积大,而且本钱高,并且由于长期使用,元器件不断老化,控制的精度自然也会达不到标准。在单片机产生后,我们就将控制这些东西变为智能化了,我们只需要在单片机外围接一点简单的接口电路,核心局部只是由人为的写入程序来完成。这样产品的体积变小了,本钱也降低了,长期使用也不会担忧精度达不到了。所以,它的魔力不仅是在现在,在将来将会有更多的人来接受它、使用它。据统计,我国的单片机年容量已达3亿片,且每年以大约20%的速度增长,但相对于世界市场我国的占有率还不到1%[2]。特别是沿海地区的玩具厂等生产产品多数用到单片机,并不断地辐射向内地。所以,学习单片机在我国是有着广阔前景的。2单片机水箱控制系统原理2.180C51单片机控制系统原理本论文主要研究水箱水位控制器系统。实现了水位报警和手动、自动切换功能。操作方便、性能良好。水箱给水设备系统由两台给水泵机组、水箱和三只浮球开关组成,其系统结构如图2.1:图2.1水箱给水系统结构其中M1、M2为给水泵机组,LG、LD、LDD分别为水位高、水位低、水位低低浮球开关,当水位高〔大于90%〕时,LG闭合,当水位低〔小于75%〕时,LD闭合,当水位低低〔小于50%〕时,LDD闭合。2.1.180C51单片机水箱控制系统工作原理当水箱水位低时,起动M1、M2给水,水位上升到90%,停M1;当水箱水位低低〔小于50%〕时,同时起动M1、M2;当水位上升到50%以上75%以下时,停M2,M1继续运行到水位上升到90%以上才停止工作。经过数据统计,得到以下数据:水位从50%--75%,两台泵运行需要约10分钟;水位从75%--90%,一台泵运行需要约15分钟。水箱的水位一般保持在75%--90%。报警控制如下:当水位高于90%的时候,由传感器经变送器发送信号,LG闭合,系统水位高报警。当水位低于75%的时候,由传感器经变送器发送信号,LD闭合,系统水位低报警。当水位低于50%的时候,由传感器经变送器发送信号,LDD闭合,系统水位低低报警。手动/自动模式转换控制如下:全自动模式下,系统自动判断水位的状况,选择不同的工作状态。手动的模式下,两台给水泵的运行控制可由人工自己操作。其局部原理图如图2.2所示图2.2水位控制电路原理图开关K1,K2,K3,K4,K5,K6分别与单片机引脚P3.0,P3.1,P3.2,P3.3,P3.4,P3.5相连,他们的功能分别是:K1:DD自动正转加水M1M2;K2:手动反转抽水M1M2;K3:GG自动停止M1M2;K4:手动正转加水M1M2;K5:手动停止;K6:D自动正转加水M1.2.1.280C51单片机控制局部结构说明MCS-51是Intel公司生产的一个单片机系列的名称。该公司继1976年推出MCS-48系列8位单片机之后,又于1980年推出了MCS-51系列高档8位单片机。属于这一系列的单片机芯片有个单片机系统有以下几局部组成:〔1〕一个8位的微处理器(CPU)。〔2〕片内数据存储器RAM(128B/256B),用以存放可以读/写的数据,如运算的中间结果,最终结果以及欲显示的数据等。〔3〕片内程序存储器ROM/EPROM(4KB/8KB),用以存放程序,一些原始数据和表格。但也有一些单片机内部不带ROM/EPROM,如8031,8032等。〔4〕四个8位并行I/O接口P0~P3,每个口既可以用作输入,也可以用作输出。〔5〕两个定时器/计数器,每个定时器/计数器都可以设置成计数方式,用以对外部件进行计数,也可以设置成定时方式,并可以根据计数或定时的结果实现计算机的控制。〔6〕五个中断源的中断控制系统。〔7〕一个全双工UART〔通用异步接收发送器〕的串行I/O口,用于实现单片机之间或单片机与微机之间的串行通信。〔8〕片内振荡器和时钟产生电路,但石英晶体和微调电容需要外接。最高允许振荡频率为12MHZ。以上各局部是通过内部数据总线相连接的。其中,CPU是单片机的核心,是计算机的控制和指挥中心,有运算器和控制器等部件组成。运算器包括一个可进行8位算术运算和逻辑运算的单元ALU,8位的暂存器1,暂存器2,8位的累加器ACC,存放器B和程序状态存放器PSW等.累加器ACC经常作为一个运算数经暂存器2进入的输入端,与另一个来自暂存器1的运算数进行运算,运算结果又回送ACC。除此之外,ACC在8051内部经常作为数据传送的中转站。同一般微处理器一样,它是最繁忙的一个存放器了。在指令中助记符A来表示。控制器包括程序计数器,指令存放,指令译码,振荡器及定时电路等。程序计数器有两个8位的计数器组成,共16位。它实际上是程序的字节地址计数器,PC中内容是将要执行的下一条指令地址。改变它的内容就可改变程序执行的方向。在8051单片机内有振荡电路,只需外接石英晶体和频率微调电容,其频率范围是1.2MHZ~12MHZ.该脉冲信号就作为8051工作的根本节拍,即时间的最小单位。8051片内有ROM〔程序存储器,只能读〕和RAM〔数据存储器,可读可写〕两类,它们有各自独立的存储地址空间,与一般微机的存储器配置方式不相同。程序存储器8051及8751的片内程序存储器容量为4KB,地址从0000H开始,用于存放程序和表格常数。数据存储器8051及8751、8031片内数据存储器均为128B,地址伪007FH,用于存放运算的中间结果,数据暂存以及数据缓冲等。在这128B的RAM中,有32个字节单元可指定为工作存放器,这同一般微处理器不同,8051的片内RAM和工作存放器排在一个队列里同一编址。另外MCS-51系列单片机与一般微机的存储器配置方式很不相同。一般微机通常只有一个地址空间,ROM和RAM可以随意安排在这一地址范围内不同空间,即ROM和RAM的地址同在一个队列里分配不同的地址空间。访问存储器时,一个地址对应唯一的存储器单元,可以是ROM,也可以是RAM,并用同类访问指令。此种存储器结构称为普林斯顿结构。8051的存储器在物理结构上分为程序存储器空间和数据存储器空间,共有四个存储空间:片内程序存储和片外程序存储空间以及片内数据存储器和片外数据存储器空间,这种程序器和数据存储器和数据存储器分开的结构形式,称为哈佛结构。但从用户使用角度,8051存储器地址空间分为三类[3]:〔1)片内,片外统一编址0000H~FFFFH〔用16位地址〕。〔2)64KB片外数据存储器地址空间,地址也从0000H~FFFFH〔用16位地址〕编址。〔3)256B数据存储器地址空间〔用8位地址〕。前述的三个存储器空间地址是重叠的,为了区分起见在8051的指令系统设计了不同数据传送指令符号:CPU访问片内,片外ROM指令用MOVC,访问片外RAM指令用MOVX,访问片内RAM指令用MOV。8051单片机有四个8位并行I/O端口,称P0,P1,P2和P3。每个端口都是8位准双向口,共占32只引脚。每一条I/O线都能独立地用作输入和输出。每个端口都包括一个锁存器〔即特殊功能存放器〕,一个输出驱动器和一输入缓冲器。作输出时数据可以锁存,作输入时数据可以缓冲,但这四个通道的功能不完全相同。在无片外扩展存储器的系统中,这四个端口都可以作为准双向通用I/O口使用。在具有片外扩展存储器的系统中,P2口送出高8位地址;P0口为双向总线,分时送出低8位地址和数据的输入/输出。8051单片机四个I/O端口的电路设计非常巧妙。熟悉I/O端口逻辑电路,不但有利于正确合理地使用端口,而且会对设计单片机外围逻辑电路有所启发。端口的负载能力和接口都有一定要求,由于P0口的输出级与P1~P3口的输出级在结构上是不同的,因此,它门的负载能力和接口要求也各不相同。P0口与其他口不同,它的输出级无上拉电阻。当把它用作通用口使用时,输出级是开漏电路,故用其输出去驱动NMOS输入时需外接上拉电阻。用作输入时,应先向口锁存器写“1〞。P0口的每一位输出可驱动8个LS型TTL负载.P1口也是一个准双向口,用作通用I/O。其电路的输出局部与P0口不同,内部有上拉负载电阻与电源相连。实质上,电阻是两个场效应管FET并在一起:一个FET为负载管,其电阻固定。另一个可工作在导止或截止两种状态,使其总电阻值变化近似0或阻值很大两种情况。当电阻近似为0时,可将引脚快速上拉至高电平;当电阻值很大时,P1口为高阻输入状态。当P1口输出高电平时,能向外提供拉电流负载,所以不必再接上拉电阻。在端口用作输入时,也必须先向对应的锁存器写入1,使FET截止。由于片内负载电阻较大约20千欧姆~40千欧姆,所以不会对输入的数据产生影响。P2口某位的结构与P0口类似,有MUX开关。驱动局部与口类似,但比P1口多了一个转换控制局部。P3口是一个多功能端口,它比P1口多了“与非〞门3和缓冲器4。正是这两局部,使得它除了具有P1口的准双向功能之外,还可以使用各引脚所具有的第二功能。“与非〞门3的作用实际上是一个开关,决定是输出锁存器上的数据还是输出第二功能的信号。当W=1时,输出Q端信号;当Q=1时,可输出W线信号。编程时,可不必软件设置P3口为第一功能还是第二功能。当CPU对P3口进行SFR寻址〔位或字节〕访问时,有内部硬件自动将第二功能输出/输入线时,有内部硬件锁存器Q=1。P3口的工作原理与P1口类似。P1~P3口的输出级接有内部上拉负载电阻,它们的每一位输出可驱动4个LS型TTL负载。作为输入口时,任何TTL或NMOS电路都能以正常的方式驱动8051单片机的P1~P3口。由于它们的输出级具有上拉电阻,也可以被集电极开路或漏极开路所驱动,而无需外接上拉电阻。I/O口也都是准双向口。作为输入时,必须先对相应端口锁存器写1。对于80C51单片机,端口只能提供几毫安的输出电流,故当作输出口去驱动一个普通晶体管的基极时,应在端口与晶体管基极间串联一个电阻,以限制高电平输出时的电流。复位是单片机的初始化操作。其主要功能是把PC初始化为0000H,使单片机从0000H单元开始执行程序。除了进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,也需按复位键重新启动。在8051中RST引脚是复位信号的输入端。复位信号是高电平有效,其有效时间应持续24个振荡周期〔即二个机器周期〕以上。假设使用频率6兆赫兹的晶振,那么复位信号持续时间应超过4微妙才能完成复位操作。图2.3产生复位信号的电路逻辑图整个复位电路包括芯片内、外两局部。外部电路产生的复位信号(RST)送至施密特触发器,再有片内复位电路在每个机器周期的S5P2时刻对施密特触发器的输出进行采样,然后才得到内部复位操作所需的信号。一般复位电路中的电阻,电容参数适用于6晶振,能保证复位信号高电平持续时间大于2个机器周期。复位电路虽然简单,但其作用非常重要。一个单片机系统能否正常运行,首先要检查是否能复位成功。初步检查可用示波器探头监视引脚,按下复位键,观察是否有足够幅度的波形输出〔瞬时的〕,还可以通过改变复位电路阻容值进行实验。本系统采用8051单片机,引脚具体控制如下:P1口和P3口为输入输出检那么信号和控制信号。P1.0:水位低低输入信号。〔低0,高1〕

P1.1:水位低输入信号。〔低0,高1〕P1.2:水位高输入信号。〔高1,低0〕P1.3:手动与自动转换输入信号。〔手动1,自动0〕P1.4:M1起动KM1控制输出信号。〔手动1,自动0〕P1.5:M2起动KM1控制输出信号。〔手动1,自动0〕P1.6:M1开关状态输入信号。〔开0,关1〕P1.7:M2开关状态输入信号。〔开0,关1〕P3.0:水位低低报警输出信号。P3.1:水位低报警输出信号。P3.2:水位高报警输出信号。P3.4:手动起动M1输入信号,低电频有效动作。P3.5:手动起动M2输入信号,低电频有效动作。P3.6:手动停M1输入信号,低电频有效动作。P3.7:手动停M2输入信号,低电频有效动作。2.1.380C51引脚电路及其功能MCS—51系列单片机的40个引脚中有2个专用于主电源引脚,2个外接晶振的引脚,4个控制或与其它电源复用的引脚,以及32条输入输出I/O引脚[4]。下面按引脚功能分为4个局部表达个引脚的功能。①电源引脚Vcc和VssVcc〔40脚〕:接+5V电源正端;Vss〔20脚〕:接+5V电源正端。②外接晶振引脚XTAL1和XTAL2XTAL1〔19脚〕:接外部石英晶体的一端。在单片机内部,它是一个反相放大器的输入端,这个放大器构成采用外部时钟时,对于HMOS单片机,该引脚接地;对于CHOMS单片机,该引脚作为外部振荡信号的输入端。XTAL2〔18脚〕:接外部晶体的另一端。在单片机内部,接至片内振荡器的反相放大器的输出端。当采用外部时钟时,对于HMOS单片机,该引脚作为外部振荡信号的输入端。对于CHMOS芯片,该引脚悬空不接。③控制信号或与其它电源复用引脚控制信号或与其它电源复用引脚有RST/VPD、ALE/P、PSEN和EA/VPP等4种形式。〔A〕.RST/VPD〔9脚〕:RST即为RESET,VPD为备用电源,所以该引脚为单片机的上电复位或掉电保护端。当单片机振荡器工作时,该引脚上出现持续两个机器周期的高电平,就可实现复位操作,使单片机复位到初始状态。当VCC发生故障,降低到低电平规定值或掉电时,该引脚可接上备用电源VPD〔+5V〕为内部RAM供电,以保证RAM中的数据不丧失。〔B〕.ALE/P〔30脚〕:当访问外部存储器时,ALE〔允许地址锁存信号〕以每机器周期两次的信号输出,用于锁存出现在P0口的低〔C〕.PSEN(29脚):片外程序存储器读选通输出端,低电平有效。当从外部程序存储器读取指令或常数期间,每个机器周期PESN两次有效,以通过数据总线口读回指令或常数。当访问外部数据存储器期间,PESN信号将不出现。〔D〕.EA/Vpp〔31脚〕:EA为访问外部程序储器控制信号,低电平有效。当EA端保持高电平时,单片机访问片内程序存储器4KB〔MS—52子系列为8KB〕。假设超出该范围时,自动转去执行外部程序存储器的程序。当EA端保持低电平时,无论片内有无程序存储器,均只访问外部程序存储器。对于片内含有EPROM的单片机,在EPROM编程期间,该引脚用于接21V的编程电源Vpp。④输入/输出〔I/O〕引脚P0口、P1口、P2口及P3口(A).P0口〔39脚~22脚〕:P0.0~P0.7统称为P0口。当不接外部存储器与不扩展I/O接口时,它可作为准双向8位输入/输出接口。当接有外部程序存储器或扩展I/O口时,P0口为地址/数据分时复用口。它分时提供8位双向数据总线。对于片内含有EPROM的单片机,当EPROM编程时,从P0口输入指令字节,而当检验程序时,那么输出指令字节。(B).P1口〔1脚~8脚〕:P1.0~P1.7统称为P1口,可作为准双向I/O接口使用。对于MCS—52子系列单片机,P1.0和P1.1还有第2功能:P1.0口用作定时器/计数器2的计数脉冲输入端T2;P1.1用作定时器/计数器2的外部控制端T2EX。对于EPROM编程和进行程序校验时,P0口接收输入的低8位地址。(C).P2口〔21脚~28脚〕:P2.0~P2.7统称为P2口,一般可作为准双向I/O接口。当接有外部程序存储器或扩展I/O接口且寻址范围超过256个字节时,P2口用于高8位地址总线送出高8位地址。对于EPROM编程和进行程序校验时,P2口接收输入的8位地址。(D).P3口〔10脚~17脚〕:P3.0~P3.7统称为P3口。它为双功能口,可以作为一般的准双向I/O接口,也可以将每1位用于第2功能,而且P3口的每一条引脚均可独立定义为第1功能的输入输出或第2功能。P3口的第2功能见表2.1。表2.1单片机P3.0管脚含义综上所述,MCS—51系列单片机的引脚作用可归纳为以下两点[4]:

1.单片机功能多,引脚数少,因而许多引脚具有第2功能;

2.单片机对外呈3总线形式,由P2、P0口组成16位地址总线;由P0口分时复用作为数据总线。附:89C51的引脚如图图2.451单片机引脚分布3系统硬件设计3.180C51单片机水箱控制系统硬件简介3.1.1数据采集及处理模块数据采集是一切测试测量过程的第1步,在整个系统中占有重要的地位。此模块主要是对采集设备的采样参数〔包括通道的选择、信号输入范围、采样模式、采样频率以及每通道采样数等〕进行设置。并对采集卡的驱动程序自动携带可以嵌入Lab-VIEW的DAQ程序模块库。因此在设计数据采集程序时可以直接使用此模块库进行编辑。采样频率是信号采集过程中非常重要的一个关键问题。采样频率过低或过高都会对信号采集产生一定的负面影响。采样率过低可能导致采集的信号频率发生畸变,从而产生混频现象。根据奈奎斯特定律,为了防止发生混频,最低采样频率必须是信号频率的2倍[5]。而采样率过高又可能导致没有足够的内存或者硬盘存储数据,不利一般设置位输出信号最高频率的7-10倍,就可以正确地复原波形。传统测试系统的工作流程是数据的采集、分析显示3个任务在同一线程上按照顺序一次执行。即当1个任务运行的同时其他2个任务就不能运行。处于等待状态中,这样是比会造成疏忽采集的不完整性。为了解决这一传统的弊端,在编制程序时采用多线程技术。当运行多线程程序时。才做系统为每个独立线程安排CPU时间,单处理器系统以轮转方式按线程的优先级别提供时间片,每个线程在使用完时间片后交出控制权,系统再将CPU时间片分配给下一个线程,多处理器系统在多个处理器上都能够通知运行多个独立的线程,减少了线程切换所带来的时间消耗,从而极大地提高系统的执行速度,进行运算。在本系统中把数据采集,数据分析以及结果显示放在3个独立的线程中。这样3个While循环式并行运行的,可以保证数据采集不受其他2个程序的影响,从而可以采集到完整的数据,而程序当中的“获取通知器引用VI〞、“发送通知器VI〞、“取消通知VI〞和“释放统治区引用VI〞主要是用来实现个线程之间的数据传递。这类似于全局变量或局部变量,不同的是,对于通知器,在没有通知消息产生时。程序框图处于等待状态。这就防止了无休止的循环检测和检测周期过快或过慢导致的数据重复或丧失,减少了计算机资源的浪费为了实现高速地联系采集并保存数据,在这以缓解采用了循环缓存技术和高速数据流技术。使用循环缓存时,每次数据只存放在缓存区的一局部。当到达缓存区的底部时。它就转向缓存区顶部再次填充同一个缓存区与此同时,缓存区中的数据一跨可以快被读出来。这就形成了乱序采集过程。在这个过程中包保证程序冲缓存区的摸个位置,这样才能有可供读取的数据,尚未读取的数据页不会被更新的数据覆盖掉。这样就允许软件将数据处理于数据采集并行展开。要使数据能够被连续地采集必须保证程序重缓冲区读取数据的速度不能比数据放进缓存区的熟读快,当然也不能不能太慢。要解决这个问题就需要合理地这只缓存区的大小,扫描率和一次读取扫描数3个参数。经过大量实验证明,缓冲区的大小至少应该是扫描率的2倍,最好是10倍。二扫描率即每通道采样率一般来说应为输入信号最高频率的7-10倍。单片机是测量系统数据交换的中心,该系统采用的是80C51单片机,全静态工作时振荡器频率为0~12MHz[6]。目前,8051单片机在工业检测控制领域中得到了广泛的应用,因此我们可以在许多单片机应用领域中,配接各种外部设备,完成工业自动化的实现。89C51是Intel公司生产的一种单片机,在一小块芯片上集成了一个微型计算机的各个组成局部。每一个单片机包括:一个8位的微型处理器CPU;一个256K的片内数据存储器RAM;片内程序存储器ROM;四个8位并行的I/O接口P0-P3;两个定时器/记数器;五个中断源的中断控制系统;一个全双工UART的串行I/O口;片内振荡器和时钟产生电路,但石英晶体和微调电容需要外接。最高允许振荡频率是12MHZ。以上各个局部通过内部总线相连接。下面简单介绍下其各个局部的功能。中央处理器CPU是单片微型计算机的指挥、执行中心,由它读入用户程序,并逐条执行指令,它是由8位算术/逻辑运算部件(简称ALU)、定时/控制部件,假设干存放器A、B、SP以及16位程序计数器(PC)和数据指针存放器(DM)等主要部件组成。算术逻辑单元的硬件结构与典型微型机相似。它具有对8位信息进行+、-、x、/四那么运算和逻辑与、或、异或、取反、清“0〞等运算,并具有判跳、转移、数据传送等功能,此外还提供存放中间结果及常用数据存放器。控制器部件是由指令存放器、程序计数器PC、定时与控制电路等组成的。指令存放器中存放指令代码。当执行指令时,从程序存储器中取来经译码器译码后,根据不同指令由定时与控制电路发出相应的控制信号,送到存储器、运算器或I/O接口电路,完成指令功能。程序计数器PC程序计数器PC用来存放下一条将要执行的指令,共16位.可对以K字节的程序存储器直接寻址C指令执行结束后,PC计数器自动增加,指向下一条要执行的指令地址。数据存储器,RAM,片内为128B,片外最多可外扩64KB。数据存储器来存储单片机运行期间的工作变量、运算的中间结果、数据暂存和缓冲、标志位等。片内的128B的RAM,以高速RAM的形式集成在单片机内,可以加快单片机运行的速度,而且这种结构的RAM还可以降低功耗[7]。图3.1单片机8051的内部结构程序存储器,ROM,用来存储程序,80C51为4KBROM。如果片内只读存储器的容量不够,那么需要用扩展片只读存储器,片外最多可以扩展到64KB。定时器/计数器,片内有2个16位的定时器/计数器,具有4种工作方式。在单片机的应用中,往往需要精确的定时,或对外部事件进行计数,因而需在单片机内部设置定时器/计数器部件。串行口,1个全双工的串行口,具有4中工作方式。可用来进行串行通信,扩展并行I/O口,甚至与多个单片机相连构成多机系统,从而使单片机的功能更强且应用更广。特殊功能存放器,SFR,共有21个,用于CPU对片内各功能部件进行管理、控制、监视。CPU功能,总的来说是以不同的方式,执行各种指令。不同的指令其功自略异。有的指令涉及到枷各存放器之间的关系;有的指令涉及到单片机核心电路内部各功能部件的关系;有的那么与外部器件如外部程序存储器发生联系。事实上,cRJ是通过复杂的时序电路完成不同的指令功能。所谓cRJ的时序是指控制器控照指今功能发出一系列在时间上有一定次序的信号,控制和启动一局部逻辑电路,完成某种操作。3.1.2时序①时钟电路MCS—51片内设有一个由反向放大器所构成的振荡电路,XTALI和XTAL2分别为振荡电路的输入端和输出端。时钟可以由内部方式产生或外部方式产生。采用内部方式时,在C1和C2引脚上接石英晶体和微调电容可以构成振荡器,振荡频率的选择范围为1.2—12MHZ在使用外部时钟时,XTAL2用来输入外部时钟信号,而XTALI接地。②时序MCS—5l单片机的一个执器周期由6个状态(s1—s6)组成,每个状态又持续2个接荡周期,分为P1和P2两个节拍。这样,一个机器周期由12个振荡周期组成。假设采用12MHz的晶体振荡器,那么每个机器周期为1us,每个状态周期为1/6us;在一数情况下,算术和逻辑操作发生在N期间,而内部存放器到存放器的传输发生在P2期间。对于单周期指令,当指令操作码读人指令存放器时,使从S1P2开始执行指令。如果是双字节指令,那么在同一机器周期的s4读人第二字节。假设为单字节指令,那么在51期间仍进行读,但所读入的字节操作码被忽略,且程序计数据也不加1。在加结束时完成指令操作。多数Mcs—51指令周期为1—2个机器周期,只有乘法和除法指令需要两个以上机器周期的指令,它们需4个机器周期。对于双字节单机器指令,通常是在一个机器周期内从程序存储器中读人两个字节,但Movx指令例外,Movx指令是访问外部数据存储器的单字节双机器周期指令,在执行Movx指令期间,外部数据存储器被访问且被选通时跳过两次取指操作。下面是51单片机的振荡电路图:图3.251单片机振荡电路图3.1.3光电隔离光电隔离器,亦称光电耦合器、光耦合器,简称光耦。光耦合器以光为媒介传输电信号。它对输入、输出电信号有良好的隔离作用,所以,它在各种电路中得到广泛的应用。光耦合器一般由三局部组成:光的发射、光的接收及信号放大。输入的电信号驱动发光二极管〔LED〕,使之发出一定波长的光,被光探测器接收而产生光电流,再经过进一步放大后输出。这就完成了电—光—电的转换,从而起到输入、输出、隔离的作用。由于光耦合器输入输出间互相隔离,电信号传输具有单向性等特点,因而具有良好的电绝缘能力和抗干扰能力。又由于光耦合器的输入端属于电流型工作的低阻元件,因而具有很强的共模抑制能力。所以,它在长线传输信息中作为终端隔离元件可以大大提高信噪比[8]。在计算机数字通信及实时控制中作为信号隔离的接口器件,可以大大增加计算机工作的可靠性。光耦合器的主要优点是:信号单向传输,输入端与输出端完全实现了电气隔离,输出信号对输入端无影响,抗干扰能力强,工作稳定,无触点,使用寿命长,传输效率高。光耦合器是70年代开展起来产新型器件,现已广泛用于电气绝缘、电平转换、级间耦合、驱动电路、开关电路、斩波器、多谐振荡器、信号隔离、级间隔离、脉冲放大电路、数字仪表、远距离信号传输、脉冲放大、固态继电器(SSR)、仪器仪表、通信设备及微机接口中。在单片开关电源中,利用线性光耦合器可构成光耦反应电路,通过调节控制端电流来改变占空比,到达精密稳压目的。根本工作特性〔以光敏三极管为例〕1、共模抑制比很高在光电耦合器内部,由于发光管和受光器之间的耦合电容很小〔2pF以内〕所以共模输入电压通过极间耦合电容对输出电流的影响很小,因而共模抑制比很高。2、输出特性光电耦合器的输出特性是指在一定的发光电流IF下,光敏管所加偏置电压VCE与输出电流IC之间的关系,当IF=0时,发光二极管不发光,此时的光敏晶体管集电极输出电流称为暗电流,一般很小。当IF>0时,在一定的IF作用下,所对应的IC根本上与VCE无关。IC与IF之间的变化成线性关系,用半导体管特性图示仪测出的光电耦合器的输出特性与普通晶体三极管输出特性相似。3、光电耦合器可作为线性耦合器使用。在发光二极管上提供一个偏置电流,再把信号电压通过电阻耦合到发光二极管上,这样光电晶体管接收到的是在偏置电流上增、减变化的光信号,其输出电流将随输入的信号电压作线性变化。光电耦合器也可工作于开关状态,传输脉冲信号。在传输脉冲信号时,输入信号和输出信号之间存在一定的延迟时间,不同结构的光电耦合器输入、输出延迟时间相差很大。光电耦合器的测试1、用万用表判断好坏,断开输入端电源,用R×1k档测1、2脚电阻,正向电阻为几百欧,反向电阻几十千欧,3、4脚间电阻应为无限大。1、2脚与3、4脚间任意一组,阻值为无限大,输入端接通电源后,3、4脚的电阻很小。调节RP,3、4间脚电阻发生变化,说明该器件是好的。注:不能用R×10k档,否那么导致发射管击穿。2、简易测试电路,当接通电源后,LED不发光,按下SB,LED会发光,调节RP、LED的发光强度会发生变化,说明被测光电耦合器是好的。光电耦合器具体应用1.组成开关电路电路中,当输入信号ui为低电平时,晶体管V1处于截止状态,光电耦合器B1中发光二极管的电流近似为零,输出端Q11、Q12间的电阻很大,相当于开关“断开〞;当ui为高电平时,v1导通,B1中发光二极管发光,Q11、Q12间的电阻变小,相当于开关“接通〞.该电路因Ui为低电平时,开关不通,故为高电平导通状态.同理,因无信号(Ui为低电平)时,开关导通,故为低电平导通状态。2.组成逻辑电路电路为“与门〞逻辑电路。其逻辑表达式为P=A.B.图中两只光敏管串联,只有当输入逻辑电平A=1、B=1时,输出P=1.同理,还可以组成“或门〞、“与非门〞、“或非门〞等逻辑电路。3.组成隔离耦合电路这是一个典型的交流耦合放大电路.适中选取发光回路限流电阻Rl,使B4的电流传输比为一常数,即可保证该电路的线性放大作用。4.组成高压稳压电路驱动管需采用耐压较高的晶体管(图中驱动管为3DG27)。当输出电压增大时,V55的偏压增加,B5中发光二极管的正向电流增大,使光敏管极间电压减小,调整管be结偏压降低而内阻增大,使输出电压降低,而保持输出电压的稳定。5.组成门厅照明灯自动控制电路。A是四组模拟电子开关〔S1~S4〕:S1,S2,S3并联〔可增加驱动功率及抗干扰能力〕用于延时电路,当其接通电源后经R4,B6驱动双向可控硅VT,VT直接控制门厅照明灯H;S4与外接光敏电阻Rl等构成环境光线检测电路。当门关闭时,安装在门框上的常闭型干簧管KD受到门上磁铁作用,其触点断开,S1,S2,S3处于数据开状态。晚间主人回家翻开门,磁铁远离KD,KD触点闭合。此时9V电源整流后经R1向C1充电,C1两端电压很快上升到9V,整流电压经S1,S2,S3和R4使B6内发光管发光从而触发双向可控硅导通,VT亦导通,H点亮,实现自动照明控制作用。房门关闭后,磁铁控制KD,触点断开,9V电源停止对C1充电,电路进入延时状态。C1开始对R3放电,经一段时间延迟后,C1两端电压逐渐下降到S1,S2,S3的开启电压〔1.5v)以下,S1,S2,S3恢复断开状态,导致B6截止,VT亦截止,H熄来,实现延时关灯功能。水箱的控制器由8051系统构成。为防止电机的起停和电源波动时对电路的影响,输入输出均采用光电隔离。光电隔离是半导体管敏感器件和发光二极管组成的一种新器件,它主要功能是实现电信号的传送。输入与输出绝缘隔离,信号单向传输,无反应影响。抗干扰性强,响应速度快。工作时,把输入信号加到输入端,使发光管发光,光敏器件在磁光辐射下输出光电流,从而实现电光点的两次转换。输出通过继电器,控制水泵机组的起停和报警,其电路图如图3.4:图3.4系统控制电路原理图3.1.4给水泵电机主控回路介绍给水泵电机主控回路图3.5如下:图3.5给水泵电机控制电路原理图图中水泵电机主控回路由两个水泵电机以及二直流电机驱动电路构成,主控回路的控制信号由单片机的P1.0,P1.1,P1.2,P1.3发出,他们的引脚功能如下:P1.0:M1起动KM1控制输出信号。〔手动1,自动0〕;P1.1:M1起动KM1控制输出信号。〔手动1,自动0〕;P1.2:M2开关状态输入信号。〔开0,关1〕;P1.3:M2开关状态输入信号。〔开0,关1〕。3.1.5二级管显示电路设计二级管显示电路如图3.6所示图3.6报警电路该电路主要由三个发光二极管构成,它们分别与单片机的P0.0,P0.1,P0.2端口相连,其中D1是电机加水提示灯,D2是电机抽水提示灯,D3是电机停止提示灯。3.280C51水箱控制系统主控硬件部署方案本系统电路分别由单片机80C51,泵电机M1,M2控制电路,水位反应与报警控制电路三局部组成,通过该电路实现对水箱废水排放和进水手动、自动切换以及报警功能。其原理图如下列图3.8:图3.7基于80C51单片机的水箱控制系统原理图3.2.180C51单片机实现系统功能说明80C51为数据采集及处理模块核心,它主要完成系统对水位上下信号是否满足指标的信息采集[9],对采集到的水位信号通过系统程序进行对信号的判断等处理,根据采集信号的不同,驱动相应信号对应功能的引脚来实现对水箱水位的控制。3.2.2相关器件单片机AT89C51电动机MOTOR差动放大器(TIP32,BC182)LED灯开关模拟水箱3.2.3相关电路图3.8差分放大器电路图差分放大器也叫差动放大器是一种将两个输入端电压的差以一固定增益放大的电子放大器,有时简称为“差放〞。差分放大器通常被用作功率放大器〔简称“功放〞〕和发射极耦合逻辑电路(ECL,EmitterCoupledLogic)的输入级。如果Q1Q2的特性很相似,那么Va,Vb将同样变化。例如,Va变化+1V,Vb也变化+1V,因为输出电压VOUT=Va-Vb=0V,即Va的变化与Vb的变化相互抵消。这就是差动放大器可以作直流信号放大的原因。假设差放的两个输入为,那么它的输出Vout为:〔3.1〕其中Ad是差模增益(differential-modegain),Ac是共模增益(common-modegain)。因此为了提高信/噪比,应提高差动放大倍数,降低共模放大倍数。二者之比称做共模仰制比〔CMRR,common-moderejectionratio〕。共模放大倍数AC可用下式求出:Ac=2Rl/2Re通常以差模增益和共模增益的比值共模抑制比(CMRR,common-moderejectionratio)衡量差分放大器消除共模信号的能力:〔3.2〕由上式可知,当共模增益Ac→0时,CMRR→∞。Re越大,Ac就越低,因此共模抑制比也就越大。因此对于完全对称的差分放大器来说,其Ac=0,故输出电压可以表示为:〔3.3〕所谓共模放大倍数,就是Va,Vb输入相同信号时的放大倍数。如果共模放大倍数为0,那么输入噪声对输出没有影响。要减小共模放大倍数,加大RE就行通常使用内阻大的恒流电路来带替RE[10]。差分放大器是普通的单端输入放大器的一种推广,只要将差放的一个输入端接地,即可得到单端输入的放大器。很多系统在差分放大器的一个输入端输入反应信号,另一个输入端输入反应信号,从而实现负反应。常用于电机或者伺服电机控制,稳压电源,测量仪器以及信号放大。在离散电子学中,实现差分放大器的一个常用手段是差动放大,见于多数运算放大器集成电路中的差分电路。图3.9单端输出的差动放大电路(不平衡输出)当Vo被在Q1或Q2的集极C对地取出时,称为单端Singleended或不平衡输出UnbalanceOutput。单端较差动输出之幅度小一倍,使用单端输出时,共模讯号不能被抑制,因Vi1与Vi2同时增加,VC1与VC2那么减少,而且VC1=VC2,但Vo=VC2,并非于零(产生零点漂移)。但是加大RE阻值可以增大负回输而抑制输出,并且抑制共模讯号,因Vi1=Vi2时,Ii1及Ii2也同时增加,IE亦上升而令VE升高,这对Q1和Q2产生负回输,令Q1和Q2之增益减少,即Vo减少。当差动讯号输入时,Vi1=-Vi2,IC1增加而IC2减少,总电流IE=IC1+IC2便不变,因此VE也不变,加大RE电阻值之电路会将差动讯号放大,不会对Q1及Q2产生负回输及抑制。图3.10使用恒流源的差动放大器实际上,RE不能加得太大,因会使静态之IC1和IC2减少,使Q1和Q2得不到适当之偏压或需要很高之电源电压。上图Q3及Q4为电流镜像恒流源代替电阻RE,使用恒流源可以得到高阻抗及固定电流,B极因R1和R2得到一个固定的偏压。共模输入时,Vi1=Vi2,因IE为不变,IC1和IC2也不能改变,故Vo为零,而共模信号被抑制。差动输入时,Vi1=-Vi2,虽然IE为不变,但IC1和IC2也可改变,因IC1上升而IC2下降,故此Vo不等于零,而将差动信号放大。图3.11使用电流镜像作为差动放大器之有源负载主动式负载ActiveLoad(有源负载)作用:a)提高增益:。b)减低功率消耗(相对纯电阻来说)。c)提高差动放大之输出电压。d)提高共模抑制比CMRR。工作原理:设Vi1增加,那么Vi2减少(但数量相等,Vi1=Vi2)即差动输入,那么IC1升而IC2下降(并且,ΔIC1=ΔIC2)因电流镜像原理,IC4=IC1,故此,Io=IC4IC2=IC1IC2(ΔIo=2ΔIC1或2ΔIC2)这说明了输出电流是IC1和IC2的相差,即将输出变为具有双端差动输出性能的单端输出(故对共模讯号之抑制有改善因双端差动输出才能产生消除共模讯号作用)。IC2减少使Q2之VCE增加,使Vo上升而IC4增加,使Q4之VCE减少,这也是使Vo增加,故此,Vo上升之幅度是使用电阻为负载之单端输出电压大一倍。4系统软件设计4.1程序概要设计本系统程序开发,使用的语言给汇编语言。程序实现当水位处于LG(高)、LD(低)或LDD(低低)时,报警信号输出,判断泵水方式(自动或手动)。当水位到达规定容量时,停止泵水。在次程序中,低电平为有效(即0为有效),高电平为无效(即1为无效)。4.2系统程序原理4.2.1系统主要程序及流程框图主程序要实现的是,对数据的初始化,并且判断用户是使用自动模式还是手动模式,根据用户的具体需求:假设用户选择自动模式,那么程序调用自动化子程序;假设用户选择手动模式,那么程序调用手动子程序。ORG0000HAJMPMAINORG0060HMAIN:MOVP1,#FFH;P1P3口初始化置1MOVP3,#FFHJNBP1.3,AUT;假设手动在自动位置,跳到自动模式子程序AJMPMEN;否那么转到手动模式子程序END主程序框架图如下:图4.1主程序流程图4.2.2自动模式子程序原理及流程框图自动模式子程序运行的前置条件是,系统开始运行,并且用户选择使用自动化控制模式。自动模式子程序首先判断水位是否高LG,假设水位高于指标,那么运行“水位高报警〞程序,并返回主程序。假设水位不高,那么判断水位是否低LD,假设水位低,那么试运行“水位低报警〞程序。然后判断水位是否低低LDD:假设水位没有到达LDD的指标,那么试判断“M1是否开启〞,假设没有开启,那么开启M1;假设“M1开启〞那么判断“M2是否开启〞,假设“M2开启〞,那么程序运行“停止M2〞程序;假设“M2没有开启〞,那么试程序运行“延迟1分钟〞,一分钟后程序“返回主程序〞。假设水位到达水位LDD的指标,那么运行“水位低低报警〞,然后程序判断“M1是否开启〞,假设“M1未开启〞那么运行“M1开启〞程序;假设“M1开启〞那么程序判断“M2是否开启〞,假设“M2未开启〞那么运行“M2开启〞程序,假设“M2开启〞,那么运行“延迟一分钟〞,一分钟后程序“返回主程序〞。其程序控制如下所示:ORG0000HAJMPMAINORG0060HMAIN:MOVP1,#FFH;P1P3口初始化置1MOVP3,#FFHJNBP1.3,AUT;假设手动在自动位置,跳到自动模式子程序AJMPMEN;否那么转到手动模式子程序ENDAUT:NOP;空命令JNBP1.2,LG;水位高-LGJBP1.1,LD;水位没低-LDCLRP3.1;水位低报警JBP1.0,LDD;水位未低低-LDDCLRP3.0;水位低低报警JNBP1.6,Y1;M1已启动-Y1CLRP1.4;否那么启动M1Y1:JNBP1.7,Y2;M2已启动-Y2CLRP1.5;否那么启动M2Y2:ACALLDELAY;延时1分钟AJMPAUT;返回自动模式LDD:JNBP1.6,Y3;单独运行M1〔LDD〈水位〈LD〕CLRP1.4Y3:JBP1.7,Y2SETBP1.5AJMPY2LG:CLRP3.2;水位高报警LD:AJMPMAIN;返回主程序自动模式子程序原理框图如图4.2:图4.2自动模式子程序原理框图4.2.2手动模式子程序原理及流程框图手动模式子程序运行的前置条件是,系统开始运行,并且用户选择使用自手动控制模式。手动模式子程序中判断语句的条件是依据用户的具体操作。手动模式子程序首先判断“水位是否LG〞,假设水位LG到达指标,那么程序返回主程序;假设水位LG未到达指标,那么程序运行“判断有无键合〞:假设“判断没有键合〞那么子程序进行循环;假设“判断键合〞,那么程序判断“M1是否键合〞。假设用户操作“M1键合〞,那么程序运行“判断M1是否开启〞:假设“M1开启〞那么子程序进行循环;假设“判断M1未开启〞,那么程序运行“开启M1〞。假设用户操作“M1不键合〞,那么程序判断“M2是否键合〞:假设用户操作“M2键合〞,那么程序运行“判断M2是否开启〞;假设“M2开启〞那么子程序进行循环;假设“判断M2未开启〞,那么程序运行“开启M2〞。假设程序判断用户均未进行“M1、M2键合〞,那么程序要判断“是否停止M1键合〞:假设用户操作“M1停止键合〞,那么程序判断“M1是否停止〞;假设“M1停止〞,那么子程序循环;假设“M1没有停止〞,那么程序运行“停止M1〞。假设用户不操作“M1停止键合〞,那么程序判断“是否停止M2键合〞:假设用户操作“M2停止键合〞,那么程序判断“M2是否停止〞,假设“M2停止〞,那么子程序循环;假设“M2没有停止〞,那么程序运行“停止M2〞。手动模式子程序原理框图如图4.3:图4.3手动模式子程序流图手动控制子程序MEN:NOPJNBP1.1,MAINACALLKEYCJNEA,#F0H,NNAJMPMENNN:JNBACC.4,HM1JNBACC.5,HM2JNBACC.6,DM1JNBACC.7,DM2AJMPMENHM1:JNBP1.6,MENCLRP1.4AJMPMENHM2:JNBP1.7,MENCLRP1.5AJMPMENDM1:JBP1.6,MENSETBP1.4AJMPMENDM2:JBP1.7,MENSETBP1.5AJMPMENRET延时30S主程序T1M1:MOVR1,#F0HL4:MOVR2,#08HL1:MOVR3,#FAHL2:MOVR4,#FAHL1:DJNZR4,L1DJNZR3,L2DJNZR2,L3DJNZR1,L4RET延时6ms子程序T1M3:MOVR4,#12MM:MOVR5,#248DJNZR5,$DJNZR4,D3RET有无键合子程序:KEY:ACALLKS1;有无闭合JNZLK1ACALLTIM3AJMPKEY;无键闭合返回LK1:ACALLTIM1ACALLTIM1ACALLKS1JNZLK2ACALLTIM3AJMPKEYLK2:RETKS1:MOVA,P3;扫描ANLA,#F0H;屏蔽低4位RET5调试仿真在Proteus的ISIS7.1sp2软件环境下画出电路原理图,接下来就是将设计的程序在KeilC51μVision2开发集成环境上编译成机器语言,进入Proteus的ISIS,鼠标左键点击菜单“Debug〞,选中“useromotedebugermonitor〞,便可实现KeilC与Proteus连接调试[11]。首先在Proteus中双击单片机80C51,将KeilC下编程生成的.HEX文件导入到8051中,可在Proteus中单击全速仿真运行按钮,进行现象的查看,能清楚地观察到芯片上每一个引脚的电平变化,红色代表高电平,蓝色代表低电平;如果现象不正确,那么在KeilC中单步调试程序,并在Proteus观察现象,那一步不正确那么对该段的程序进行修改,调试直到仿真完全成功为止。如图5.1所示,该仿真验证的过程为,首先按开始按,然后按下按键开关K1,这时发光二极管D1亮了,代表DD自动正转加水M1M2。图5.1M1M2自动正转加水仿真图按键按键开关K2,这时放光二极管D2亮了,代表手动反转抽水M1M2,仿真结果如图5.2所示。图5.2M1M2手动反转抽水仿真图按下按键开关K3,这时发光二极管D3亮了,代表GG自动停止M1M2,真现象如图5.3所示。图5.3M1M2自动停止仿真图按下按键开关K4,这时放光二极管D1亮了,代表手动正转加水M1M2,仿真结果如图5.4所示。图5.4M1M2手动正转加水仿真图按下按键开关K5,这时发光二极管D3亮了,代表手动停止M1M2.仿真结果如图5.5所示。图5.5M1M2手动停止仿真图按下按键开关K6,这时发光二极管D1亮了,代表D自动正转加水M1,仿真结果如图5.6所示。图5.6M1自动正转加水仿真图6总结与展望纵观我们现在生活的各个领域,从导弹的导航装置,到飞机上各种仪表的控制,从计算机的网络通讯与数据传输,到工业自动化过程的实时控制和数据处理,以及我们生活中广泛使用的各种智能IC卡、电子宠物等,这些都离不开单片机。以前没有单片机时,这些东西也能做,但是只能使用复杂的模拟电路,然而这样做出来的产品不仅体积大,而且本钱高,并且由于长期使用,元器件不断老化,控制的精度自然也会达不到标准。在单片机产生后,我们就将控制这些东西变为智能化了,我们只需要在单片机外围接一点简单的接口电路,核心局部只是由人为的写入程序来完成。这样

温馨提示

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

评论

0/150

提交评论