资源描述
。目 录第章绪论1 第2章设计方案2 2.1 方案举例2 2.2 方案比较3 2.3 方案确定3 第3章硬件设计4 3.1 控制系统4 3.1.1 AT89C51单片机4 3.1.2 AT89C51的信号引脚6 3.1.3 单片机最小系统7 3.2 感应系统8 3.3 指示系统9 3.4 液位控制系统10 3.5 电机与报警系统11 第4章软件设计13 4.1 延时子程序13 4.2 感应系统程序13 4.3 指示系统程序14 4.4 电机和警报系统程序14 4.5 液位预选系统程序15 4.6 系统主流程图17 第5章系统测试18 5.1 仿真测试过程195.2 仿真结果21 总结22致 谢23 参考文献22 附录1系统仿真电路25 附录2 源程序26 -可编辑修改-第章绪论21世纪,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。目前,单片机正朝着高性能和多品种方向发展,它作为自动控制中的一个核心器件在小型自动控制系统及信号采集方面已被广泛应用,技术也相对成熟,向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展趋势。单片机应用的重要意义还在于它从根本上改变了传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。在传统的液位控制系统中,存在着自动化程度低、调节精度差的缺点,已经不符合当今高效、低耗、低劳动强度的要求,同时会产生大量的污染。对于小型测控系统,一般可采用以单片机为核心、配以接口电路和外围设备,在编制应用程式的模式来实现。下面将介绍一个简单的液位控制系统,可用于容器内液体存储,例工、农用蓄水池,居民社区水箱等方面。此系统采用以单片机为控制中心的技术,不仅能使控制系统具有精度高、功能强、经济性好的特点,还节约能源、利于环保。第2章设计方案2.1 方案举例方案一:液体流入容量控制方式。对输入容器的液体的管道进行监控,根据流入体积推算出容器内液体液位高度。容量监控系统管道控制系统液流停止液位停止图2-1 液体流入容量控制系统结构框图容量监控系统:对进入容器的液体体积进行监控。管道控制系统:控制管道对液体的传输情况。在液体向容器内部输入时,通过对容量的监控知道容器内的液体体积,在液体进入容器内部的体积到达目标时,控制输送液体的管道,使液流停止,最终达到目标液位。方案二:简单的连通器控制方式。在目标容器内连接连通器,使多余的液体导入副容器,以致目标容器的液位达到目的液位。导入液体连通器液位达标多余液体溢出输送停止人工控制图2-2 连通器控制系统结构框图 在目标液位位置给目标容器连接连通器,在观察到多余溢出的液体流入连通器内后,停止液体输送。方案三:采用单片机技术来实现液位控制的功能。系统以AT89C51单片机为核心控制器件,它除具有灵活强大的控制功能,以便实时检测液位的传递信号、控制液位到达的高低实现自动控制。控制指令导入液体指示系统控制系统电机与警报系统感应系统图2-3 基于单片机实现的液位控制系统结构框图感应系统:将感应到的液位信号传递给单片机控制器。控制指令:将控制信息传递给单片机,使液位到达预定位置。显示系统:经过单片机辨别后,显示当前系统工作和液位位置指示灯。电机与报警控制系统:单片机经过信息处理后,决定是否启动电机和报警2.2 方案比较方案一结构简单,操作方便。但是自动化程度低,精度不高,控制响应时间慢,且只能单独控制。方案二结构简单,成本低廉。但精度不高,无法显示,浪费资源,自动化程度低。方案三不仅结构简单,成本低廉,而且准确度高,自动化高,节省人力资源,更重要的是利用单片机控制后,由于其拥有多个引脚,在为添加功能时更改电路方便快捷,而且内部程序可以进行反复输入和擦除,在以后更改控制方法时只要更改程序内容就可以达到相对应目的,省时省力,及其节约成本。2.3 方案确定综合考虑以上方案的优缺点以及题目的基本要求和发挥要求,在本设计中,我采用了第三种方案,即采用单片机来实现液位控制的功能为我此次设计的方案。主控制器AT89C51单片机与MCS51系列单片机产品兼容,内部自带有4KB的Flash存储器及256KB RAM单元,不需另外扩展EEPROM及静态RAM,可以在线下载程序,易于日后的升级。第3章硬件设计该系统硬件设计总体思想是以单片机为控制系统,接受感应信息并进行处理后,将控制指令传出,对各个系统进行对应操作。硬件设计总体框图如图3-1所示。控制系统复位、时钟系统指示系统液位预选系统电机与警报系统感应系统图3-1 硬件设计总体框图控制系统:根据输入信息进行处理,并将控制数据传出。感应系统:将感应到的液位信号传递给单片机控制器。指示系统:经过单片机辨别后,显示当前系统工作和液位位置指示灯。液位预选系统:将控制信息传递给单片机,使液位到达预定位置。电机与报警控制电路:单片机经过信息处理后,决定是否启动电机和报警3.1 控制系统该系统控制主要为单片机控制。单片机是单片微型计算机的简称,是指集成在一个芯片上的微型计算机,它的各种功能部件,包括CPU、存储器、基本输入/输出接口电路、定时/计数器和终端系统等,都制作在一块集成芯片上,构成一个完整的微型计算机。3.1.1 AT89C51单片机单片机实质上是一个芯片。它具有结构简单、控制功能强、可靠性高、体积小、价格低等优点,单片机技术作为计算机技术的一个重要分支,广泛的应用于工业控制、智能化仪器仪表、家用电器、电子玩具等各个领域。ATMEL公司生产的AT89C51单片机采用高性能的静态80C51设计,并采用先进工艺制造,还带有非易失性Flash程序存储器。它是一种高性能、低功耗的8位CMOS微处理芯片,市场应用最多。其主要特点如下:8KB Flash ROM,可以擦除1000次以上,数据保存10年。技术特点有:256字节内部RAM;电源控制模式;时钟可停止和恢复;空闲/掉电模式;6个中断源;4个中断优先级;4个8位I/O口;全双工增强型TUAR;3个16位定时/计数器:T0、T1(标准80C51)和增加的T2(捕获和比较);全静态工作方式:024MHZ;AT89C51单片机的基本结构请参见图3-2,各部分情况介绍如下:中央处理器(CPU):中央处理器是单片机的核心,完成运算和控制功能。AT89C51的CPU能处理8位二进制数或代码。内部数据存储器(内部RAM):AT89C51芯片中共有256个RAM单元,但其中后128单元被专用寄存器占用,能作为寄存器供用户使用的只是前128单元,用于存放可读写的数据。因此通常所说的内部数据存储器就是指前128单元,简称内部RAM。内部程序存储器(内部ROM):AT89C51共有8KB掩膜ROM,用于存放程序、原始数据或表格,因此称之为程序存储器,简称内部ROM。定时器/计数器:AT89C51共有2个16位的定时器/计数器,以实现定时或计数功能,并以其定时或计数结果对计算机进行控制。T0CPU时钟电路ROM定时/计数器RAM中断系统并行接口串行接口P3TxDx PRxDINT0INT1P2P1P0T1图3-2 AT89C51单片机结构框图并行I/O口:AT89C51共有四个8位的I/O口(P0、P1、P2、P3),以实现数据的并行输入输出。串行口:AT89C51单片机有一个全双工的串行口,以实现单片机和其它设备之间的串行数据传送。该串行口功能较强,既可作为全双工异步通信收发器使用,也可作为同步移位器使用。中断控制系统:AT89C51单片机的中断功能较强,以满足控制应用的需要。AT89C51共有5个中断源,即外中断2个,定时/计数中断2个,串行中断1个。全部中断分为高级和低级共二个优先级别。时钟电路:AT89C51芯片的内部有时钟电路,但石英晶体和微调电容需外接。时钟电路为单片机产生时钟脉冲序列。系统允许的晶振频率一般为6MHZ和12MHZ。从上述内容可以看出,AT89C51虽然是一个单片机芯片,但作为计算机应该具有的基本部件它都包括,因此实际上它已是一个简单的微型计算机系统了。3.1.2 AT89C51的信号引脚AT89C51是标准的40引脚双列直插式集成电路芯片,其引脚排列请参见图3-3。引脚功能见表3-1。引脚名称引脚功能P0.0P0.7P0口8位双向端口线P1.0P1.7P1口8位双向端口线P2.0P2.7P2口8位双向端口线P3.0P3.7P3口8位双向端口线ALE地址所存控制信号外部程序存储器读选通信号访问程序存储控制信号RST复位信号XTAL1和XTAL2外部晶体引线端Vcc+5V电源Vss地线P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78RST/VPD9RXD P3.010TXD P3.111INT0 P3.212INT1 P3.313T0 P3.414T1 P3.515WR P3.616RD P3.717XTAL218XTAL119VSS20P2.021P2.122P2.223P2.324P2.425P2.526P2.627P2.728PSEN29ALE/PROG30EA/VPP31P0.732P0.633P0.534P0.435P0.336P0.237P0.138P0.039VCC408051 表3-1 AT89C51引脚功能图3-3 MCS51引脚ALE:在系统扩展时,ALE用于控制把P0口输出的低8位地址锁存器锁存起来,以实现低位地址和数据的隔离。此外由于ALE是以晶振六分之一的固定频率输出的正脉冲,因此可作为外部时钟或外部定时脉冲使用。:外部程序存储器读选通信号。在读外部ROM时有效(低电平),以实现外部ROM单元的读操作。:访问程序存储控制信号。当信号为低电平时,对ROM的读操作限定在外部程序存储器;而当信号为高电平时,则对ROM的读操作是从内部程序存储器开始,并可延至外部程序存储器。RST:复位信号。当输入的复位信号延续2个机器周期以上高电平即为有效,用以完成单片机的复位初始化操作。XTAL1和XTAL2:外接晶体引线端。当使用芯片内部时钟时,此二引线端用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。VSS:地线。VCC:+5V电源。由于工艺及标准化等原因,芯片的引脚数目是有限制的。例如AT89C51系列把芯片引脚数目限定为40条,但单片机为实现其功能所需要的信号数目却远远超过此数,因此就需要给一些信号引脚赋以双重功能。如果把前述的信号定义为引脚第一功能的话,则根据需要再定义的信号就是它的第二功能。最常用的是P3口线的第二功能详见表3-2。表3-2 P3口各引脚与第二功能表第一功能第二功能第二功能信号名称P3.0RXD串行数据接收P3.1TXD串行数据发送P3.2外部中断0申请P3.3外部中断1申请P3.4T0定时器/计数器0的外部输入P3.5T1定时器/计数器1的外部输入P3.6外部RAM写选通P3.7外部RAM读选通3.1.3 单片机最小系统单片机最小系统以AT89C51单片机为核心,由单片机、时钟电路、复位电路等组成如图3-4所示。主要负责各个模块的初始化工作,读取并处理时间、按键响应、显示等。单片机的工作就是执行用户程序、指挥各部分硬件完成既定任务。单片机能够工作的最小电路还包括时钟和复位电路。时钟电路位单片机工作提供基本始终,复位电路用于将单片机内部各电路的状态恢复到初始值。单片机是一个负载的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格的按时序进行工作。时钟电路用于产生单片机工作所需要的时钟信号。时钟电路是由XTAL1和XTAL2之间跨接的晶体振荡器和微调电容构成。时钟电路中晶体振荡器的频率高则系统的时钟频率就高,所以该系统采用12MHz晶振,工作周期为1us。无论是在单片机刚开始接上电源时,还是断电后或者发生故障后都要复位。单片机复位是使CPU和系统中的其他功能部件都恢复到一个确定的初始状态,并从这个状态开始工作。本系统中采用的是12MHz晶振,时钟频率为12MHz,每个机器周期为1us,需要加上持续2us以上时间的高电平。复位电路有两种形式:手动按键复位和上电复位,在本系统中采用的是手动按键复位。如图3-4所示,R1、C3和KEY1组成系统手动按键复位电路。图3-4 单片机最小系统3.2 感应系统为了使单片机在液位情况不同时进行判定,从而决定工作情况,我们要给单片机传递液位的信息。感应系统目的就是将感应到的液位的信息传递给单片机,所以需要在容器中放置能够感应出液位情况的感应器件,此系统中我们选用浮球液位计。浮球液位计由浮球、插杆等组成。根据排开液体体积相等原理浮于液面,当容器的液位变化时浮球也随着上下移动,由于磁性作用,浮球液位计的弹簧受磁性吸合,把液面位置变化成电信号,通过磁耦合作用,使传感器内电阻成线性变化,由智能转换器将电阻变化转换成420mA标准电流信号,传供给控制系统可实现液位的自动检测、控制和记录。该仪器适用于石油、化工、电力、轻工及医药等行业污水处理及各类常压和承压容器内介质液位的测量,尤其对于地下贮槽、贮罐的液位测量最为理想。通过浮球液位计所传出的电流信号,传递给单片机。如图3-5所示,P1.0、P1.1、P1.2、P1.3为液位检测信号传递的接口。P1.0端口接a位,P1.1端口b位,P1.2端口接c位,P1.3端口接d位。图3-5 信号传递系统3.3 指示系统 为了得知控制系统运转时的情况,我们需要给整个系统添加装置来明示,表明系统的进程、液体的位置,此系统中,采用连接指示灯来提供我们液位控制的必要的信息。如图3-6所示,P0.0、P0.1、P0.2、P0.3、P0.4端口为单片机与液位位置和单片机工作指示灯的控制和通信的数据端口。在单片机工作期间,除了表明工作进行的工作指示D5会一直保持亮的状态,其它指示灯会为表明液位的情况相应变亮,如表3-3所示。 表3-3 指示灯情况明示表液位情况亮状态指示灯液体到达a位D1液体到达b位D1,D2液体到达c位D1,D2,D3液体到达d位D1,D2,D3,D4图3-6 指示系统3.4 液位控制系统在液位进入容器时,为了可以控制液体在容器内液位的高度,选择P2.0、P2.1、P2.2为预定液位的控制端口,在P2.0端口、P2.1端口、P2.2端口接入三个开关分别限定液体到达a位、b位和c位,如图3-7所示。开关闭合时单片机会进行判定,然后根据程序进行液位控制,使进入容器的液体停止在相应位置。如果在单片机起动后没有开关闭合,那么液体直到d位才会停止。图3-7 液位控制系统3.5 电机与报警系统单片机在接受和判断传输进来的信息后根据程序来控制电机的运转和警报的鸣响。如图3-7,P3.0、P3.1为电机和报警器的控制端口,P3.0端口连接电机控制电路,在端口发出高电平时,会启动光耦合器,使电路中得电磁继电器闭合,导通电机电路,使电机转动将液体送入容器。其工作状态如表3-4。图3-7 电机与报警系统图表3-4 电动机和报警器工作状态表液位情况液位控制开关情况电动机及报警状态未检测到液体无开关闭合D6亮,电动机转,警报不响液体到达a位a位开关闭合D6灭,电动机停,警报响无开关闭合D6亮,电动机转,警报不响液体到达b位b位开关闭合D6灭,电动机停,警报响无开关闭合D6亮,电动机转,警报不响液体到达c位c位开关闭合D6灭,电动机停,警报响无开关闭合D6亮,电动机转,警报响液体到达d位无开关闭合D6灭,电动机停,警报响第4章软件设计系统软件设计的程序编写内容,可以监控液位的不同位置,在液位处于不同状态传递着不同信号而由程序控制指示灯、电机及报警器的状态。系统设制了三个按键,是控制液位位置的。整个系统的软件设计均采用C语言开发,采用查询的方式进行液位和按键状态进行扫描,确保系统的实时性。系统框图如图4-1。控制系统复位、时钟系统指示系统液位预选系统电机与警报系统感应系统图4-1 控制系统框图4.1 延时子程序电路中我们用的12MHz的晶体振荡器,所以一个机器周期为1us,为了使电路中的报警器发出正常的鸣叫声,需要一个延时子程序。内容如下:void delay(unsigned int z) unsigned int x,y; for(y=110;y0;y-); for(x=z;x0;x-); 其中Z为自定义函数,在调用时插入语句“delay(z)”即可启动延时,而其中的延时时间为 Z110us。4.2 感应系统程序由硬件系统可知,单片机的P1端口接入的是液位的感应端,由于感应端的关系,在感应高位的端口时低端的感应器一定感应到了液位,所以端口会由于液位上涨依次接收到电信号,相对应得函数程序,流程及其相应程序为: 液位上升液位到a位液位到b位液位到c位液位到d位P1=0xf0 /液位无感应无信号。P1=0xf1 / a位有感应信号。P1=0xf3 /a位、b位有感应信号。P1=0xf7 /a位、b位、c位有感应信号。P1=0xff /四个液位档均有感应信号。图4-2 液位感应流程图4.3 指示系统程序液位和单片机工作指示灯的控制和通信的数据接入单片机的P0端口。当端口处于高电平时指示灯就会变亮,而控制端口的高低电平就是单片机和其内部的程序,当感应到液位信号后,作出对应指令。P0.4端口的工作指示灯在单片机工作时一直都要保持亮的状态,所以我们需要P0.4一直为高电平。P4端口的函数指令、流程及其相应程序如下:液位到达a位液位到达b位液位到达c位液位到达d位系统启动液位指示灯D1亮液位指示灯D2亮液位指示灯D3亮工作指示灯D5亮液位指示灯D4亮if(P1=0xf0) / 液位指感应无信号P0=0xf0; / 只有工作指示灯亮if(P1=0xf1) / a位有感应信号P0=0xf1; / a位指示灯亮if(P1=0xf3) / a位、b位有感应信号P0=0xf3; / a位、b位指示灯亮if(P1=0xf7) /a位、b位、c位有感应信号P0=0xf7; / a位、b位、c位指示灯亮if (P1=0xff) /四个液位档均有感应信号P0=0xff; /四个液位指示灯全亮图4-3 指示灯系统流程图4.4 电机和警报系统程序单片机的P3.0、P3.1为电机和报警器的控制端口,利用程序语言将这两个端口定义出来,更为方便简单的控制,例:sbit P30=P30;/电机端口,将P3.0接口定义为P30。sbit P31=P31;/报警器端口,将P3.1接口定义为P31。相应端口为高电平时会导致电机启动,报警器鸣叫,系统流程图如下:关闭电机启动电机电机转报警器不响电机指示灯D6亮电机停转报警器响电机指示灯D6灭P30=1;/电机指示灯D6亮,电机启动P31=0;/报警器不响P30=0;/电机指示灯D6灭,电机停P31=1;/报警器响图4-4 电机和警报系统流程图4.5 液位预选系统程序P2.0、P2.1、P2.2为液位预选控制的数据传送端口,不同的感应端口接收到信号后,通过单片机控制电机和报警器。流程图如下:NY电机转动是否有按键按下相应液位是否有液体感应YN电机停止图4-5 液位控制系统流程图a位控制:if(P1=0xf1) / a位有感应信号P0=0xf1; / a位指示灯亮if(P20=0) / a位预选开关按下 P30=0; / 电机停P31=1; / 报警b位控制:if(P1=0xf3) / a位、b位有感应信号 P0=0xf3; / a位、b位指示灯亮if(P21=0) / b位预选开关按下 P30=0; / 电机停P31=1; / 报警c位控制:if(P1=0xf7) / a位、b位、c位有感应信号P0=0xf7; / a位、b位、c位指示灯亮if(P22=0) / c位预选开关按下P30=0; / 电机停P31=1; / 报警液位达到d位时,点机会自动停止,报警器鸣叫,程序如下:if (P1=0xff) / a位、b位、c位、d位均有感应信号P0=0xff; / a位、b位、c位、d位水指示灯全亮 P30=0; /电机停 P31=1; /报警4.6 系统主流程图系统的软件主流程图如图4-6所示。读取液位信息指示灯显示初始化液位控制键位按下是否液位达标电机转电机停NY结束开始图4-6 主程序流程图系统程序详见附录2。第5章系统测试本设计的核心是采用AT89C51单片机,外部连接电子电路,构成了一个多位控制的液位控制系统。本系统的仿真采用PROTEUS软件,由于软件内没有浮球等液位感应器,所以连接简单电路代替。如图5-1所示,设有4个接地开关SW1-SW4,对液位进行仿真控制如果没有开关断开,就相当于液体低于a位,电机会自动运行。但要注意,在液位处于高液位时液位肯定浸没过低液位,所以在表示高液位开关断开时,低于此液位的开关也要处于断开状态,对应仿真情况如表5-1。图5-1 信号传递仿真系统表5-1 液位情况仿真表液位情况开关状态未检测到液体开关全部闭合液体到达a位SW1断开,其他开关全闭合液体到达b位SW1,SW2断开,其他开关闭合液体到达c位SW4闭合,其他开关全断开液体到达d位开关全部断开5.1 仿真测试过程进行系统仿真。运行系统,开始传感器无感应(如图5-1),P0.4端口保持高电平,D5会保持亮的状态说明系统正在运行(如图5-2所示),此时程序会使P3.0端口为高电平,P3.1端口为低电平,而当P3.1端口为高低电平,会使报警电路导通,才能使报警器会鸣叫。图5-2 系统运行工作指示灯D5亮当P3.0端口为高电平,D6会变亮,会启动光耦合器,电流同过电路三极管后会被放大到足够大,以启动电磁继电器使开关吸合,使电机电路导通,如图5-3所示。图5-3 电机转动当开关SW1断开时,P1.0端口为高电平(如图5-4),如果开关SW5于闭合状态下,会使P2.0端口为低电平,此时程序会使P3.0端口为低电平,P3.1端口为高电平,则电机会停止,报警器会鸣叫,如图5-5;开关SW5于断开闭合状态下,会使P2.0端口为高电平,此时程序会使P3.0端口为高电平,P3.1端口为低电平,则电机会转动,报警器不会鸣叫。图5-4 模拟液位到达a位,SW1断开图5-5 a位控制开关闭合当开关SW2断开时(SW1已处于断开),P1.1端口为高电平(P1.0端口已处于高电平)指示灯D1,D2会变亮,判断此时开关SW6状况,如果此时开关SW6处于闭合状态下,电机则会停止,报警器会鸣叫;否则电机继续转动。同理,在开关SW3断开时,指示灯D1,D2,D3会变亮,判断开关SW7的状况。而在开关SW4断开时,液位指示灯会全亮,电机会自动停止且报警器鸣叫。5.2 仿真结果系统通过仿真调试后,可以稳定运行,进行液位控置,且可以在系统进行时更改预设液位。但要注意在运用电磁继电器时,要使电路有足够的电压启动它;连接报警器时,要考虑单片机内部时钟始终频率。总结本设计以功能齐全适用于大众为指导思想,选取AT89C51单片机为控制核心。通过外围元件构成了一个具有容器内液位不同位置控制的液位控制系统。系统拥有指示灯显示液位,键位预选液位,到目的液位的报警功能,软件程序采用均采用C语言编写,便于移植与升级。整个系统是根据单片机对液位感应信号和液位控制端口的循环判断后,做出对电机的端口信号控制,控制液体的导入与否进而控制了容器内部的液位。系统经连接、调试后,可以稳定运行,同时可以对液体进入容器位置进行预先设置。系统具有线路简单、清晰、体积小、价格低等优点,但无法实时监控液位情况,添加或更换不同的液位传感器可以改进这一情况,之后可以根据容器参数计算出液体体积 。本设计系统主要的控制对象是电机,在不同的情况下来选择电机的启动和停止,没有对液体流入容器的整个系统进行多方面的控制,此系统可以在影响液位的其他方面的因素进行提升和改进,形成多方向控制液位系统。致 谢 在本次论文设计过程中,感谢我的学校,给了我学习的机会,在学习中,老师从选题指导、论文框架到细节修改,都给予了细致的指导,提出了很多宝贵的意见与建议,老师以其严谨求实的治学态度、高度的敬业精神、兢兢业业、孜孜以求的工作作风和大胆创新的进取精神对我产生重要影响。她渊博的知识、开阔的视野和敏锐的思维给了我深深的启迪。这篇论文是在老师的精心指导和大力支持下才完成的感谢所有授我以业的老师,没有这些年知识的积淀,我没有这么大的动力和信心完成这篇论文。感恩之余,诚恳地请各位老师对我的论文多加批评指正,使我及时完善论文的不足之处。谨以此致谢最后,我要向百忙之中抽时间对本文进行审阅的各位老师表示衷心的感谢。-可编辑修改-参考文献1 介华.电子技术课程设计指导.北京:高等教育出版社,20032 诗白.模拟电子技术基础(第三版).北京:高等教育出版社,20043 旭东.实用电子电路精选.北京:化学工业出版社,19994 王汉才.单片机原理及接口技术.北京:清华大学出版社,19965 李伟.单片机原理及应用.北京:机械工业出版社,20026 张平.单片机原理与接口技术.北京:电子工业出版社,20037 王新颖.单片机原理及应用.北京:北京大学出版社,20088 陈忠平.单片机基础与最小系统实践.北京:北京航空航天大学出版社,20069 沈庆阳.8051单片机实践与应用.北京:清华大学出版社,200310 何立民.单片机应用技术选编.北京:北京航空航天出版社,200611 杨振江.单片机实用子程序及应用实例.西安:西安电子科技大学出版社,2007附录1系统仿真电路附录2 源程序#includesbit P30=P30; /电机接口sbit P31=P31; /报警器接口sbit P20=P20; /a位控制sbit P21=P21; /b位控制sbit P22=P22; /c位控制*延时子程序* unsigned int x,y; /延时110*Z us for(y=110;y0;y-); for(x=z;x0;x-); *主程序*void main()*初始化*P30=1; / 电机转P31=0; / 工作指示灯亮P0=0x10; / 液位控制开关接通P2=0xff; *控制* while(1) *情况一 液位无感应信号*if(P1=0xf0) P0=0xf0; / 没有液位指示灯亮else*情况二 a位有感应信号*if(P1=0xf1)P0=0xf1; / a位指示灯亮if(P20=0) / a位开关按下 P30=0; / 电机停P31=P31; / 报警delay(200); / 延时 0.022selseP30=1; /电机转*情况三 a位、b位有感应信号* else if(P1=0xf3) / a位b位有感应信号P0=0xf3; / a位b位指示灯亮if(P21=0) / b位开关按下 P30=0; / 电机停P31=P31; / 报警delay(200);/ 延时 0.022selseP30=1; / 电机转*情况三 a位、b位、c位有感应信号*else if(P1=0xf7) / a位、b位、c位 有感应信号P0=0xf7; / a位、b位、c位 指示灯亮if(P22=0) / c位控制开关按下P30=0; / 电机停P31=P31; / 报警delay(200); / 延时 0.022s elseP30=1; / 电机转*情况四 四个液位都有感应信号*else if (P1=0xff) / 四个液位均有感应信号P0=0xff; / 四个液位指示灯都亮P30=0; /电机停P31=P31; /报警delay(200); / 延时 0.022sTHANKS !致力为企业和个人提供合同协议,策划案计划书,学习课件等等打造全网一站式需求欢迎您的下载,资料仅供参考THANKS !致力为企业和个人提供合同协议,策划案计划书,学习课件等等打造全网一站式需求欢迎您的下载,资料仅供参考
展开阅读全文