毕业设计(论文)基于单片机的水位控制系统_第1页
毕业设计(论文)基于单片机的水位控制系统_第2页
毕业设计(论文)基于单片机的水位控制系统_第3页
毕业设计(论文)基于单片机的水位控制系统_第4页
毕业设计(论文)基于单片机的水位控制系统_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

1、基于单片机的水位控制系统的设计摘 要: 本设计是利用stc89c52单片机设计一种水位控制系统。主要是基于单片机的硬件设计以及程序设计。该系统实现了水位监测,水位控制,水位显示,故障报警功能。在设计中主要采用了传感技术、单片机技术、弱电控制强电技术、c语言编程等技术。本文还讲述了水位控制系统工作的基本原理,介绍了电路接口原理图,给出了相应了设计流程图和c语言程序。本文主要是为了更多得了解单片机,掌握单片机的组成部分和控制原理,最终达到设计出“单片机水位控制系统的”的目的。实验证明,单片机控制的水位控制系统的硬件电路简单,软件功能完善,控制系统可靠,充分发挥了单片机的性能,可以大大的提高单片机的

2、开发效率。关键词:单片机,水位,控制, abstractthis design is stc89c52 scm design using a water level control system. mainly based on single chip microcomputer hardware design and programming. this system realizes the water level, water level control, monitoring the alarming function, according to water. in design mai

3、nly adopts sensing technology and single-chip microcomputer technology, low &high technology, control technology such as the c programming language. this paper also tells the water level control system, this paper introduces the basic principle of schematic interface circuit and presents the corresp

4、onding the design flow chart and c language program.this paper is mainly to more understanding of single chip microcontroller, grasps achieve finally designed one-chip computer water level control system purposes. experiments show that single chip microcomputer control water level control system har

5、dware circuit is simple, software function consummation, the control system is reliable, give full play to the performance of the single-chip microcontroller, can greatly improve the efficiency of the development.keywords: scm level control 1.绪论42. stc89c52单片机介绍52.1 stc89c52介绍53 硬件的设计113.1水位传感方式的选择1

6、13.1.1简单的控制方式113.1.2红外线发射接收装置113.2.1系统工作原理133.2.2稳压电路153.2.4电机控制电路173.2.5电机工作指示灯电路183.2.6振荡电路和复位电路193.2.6水位控制系统的整体电路仿真图203.2.7实物图214. 软件程序设计以及仿真224.1 程序流程图224.1.1加水时程序流程图:224.1.2水位降低时程序流程图:234.2水位对应的传感器信号244.3水位对应的亮灯情况244.4 c语言程序设计255.结论35参考文献36答谢371.绪论 当今社会,科技以迅雷不及掩耳之势的速度发展着,人民生活水平也在不断的提高。自动水位控制将给人

7、们生活带来巨大的方便。由于单片机有极高的可靠性,微型性和智能性,单片机已经广泛应用于我们生活和学习中,我们可以在许多领域见到单片机的身影,小到玩具家电行业,大到车载、舰船电子系统,遍及计量测试、工业过程控制、机械电子、办公自动化、工业机器人、军事和航空航天等领域都可以见到单片机的身影。单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器cpu随即存储器ram,只读存储器rom、多种i/o口和中断系统、定时器、计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、a/d转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。中央处理器cpu是单片

8、微型计算机指挥、执行中心,由它读程序并执行指令。cpu功能,是以不同方式来执行各种指令。有的指令涉及到各个寄存器之间的关系;有的指令涉及到单片机核心电路内部各功能部件的关系;有的则与外部器件发生关系。总的来说cpu是通过复杂的时序电路来完成不同的指令功能的。对于本设计单片机结构简单实用性强,功能齐全,技术先进,使实现这设计不难实现。同时,c语言是单片机的重要“组成”,如果能掌握好c语言编程,这将很大程度上提高了开发效率。在设计过程中我们采用了软硬件双结合的方式,软件设计的方法简化了硬件的要求,为设计创造了条件。单片机采用的stc89c52的单片机。2. stc89c52单片机介绍2.1 stc

9、89c52介绍stc89c52是51单片机,它采用的是dip40封装。主要特性有: 与mcs-51 兼容8k字节可编程闪烁存储器寿命:1000写/擦循环数据保留时间:10年全静态工作:0hz-24hz三级程序存储器锁定 512内部ram 32可编程i/o线 两个16位定时器/计数器 5个中断源 可编程串行通道 低功耗的闲置和掉电模式片内振荡器和时钟电路单片机管脚图说明图如下:图1.1单片机引脚图管脚说明:vcc:供电电压。 gnd:接地。 p0口:p0口为一个8位漏级开路双向i/o口,每脚可吸收8ttl门电流。当p1口的管脚第一次写1时,被定义为高阻输入。p0能够用于外部程序数据存储器,它可以

10、被定义为数据/地址的第八位。在fiash编程时,p0 口作为原码输入口,当fiash进行校验时,p0输出原码,此时p0外部必须被拉高。p1口:p1口是一个内部提供上拉电阻的8位双向i/o口,p1口缓冲器能接收输出4ttl门电流。p1口管脚写入1后,被内部上拉为高,可用作输入,p1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在flash编程和校验时,p1口作为第八位地址接收。 p2口:p2口为一个内部上拉电阻的8位双向i/o口,p2口缓冲器可接收,输出4个ttl门电流,当p2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,p2口的管脚被外部拉低,将输出电流

11、。这是由于内部上拉的缘故。p2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,p2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,p2口输出其特殊功能寄存器的内容。p2口在flash编程和校验时接收高八位地址信号和控制信号。 4个ttl门电流。当p3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,p3口将输出电流(ill)这是由于上拉的缘故。 p3口也可作为单片机的一些特殊功能口,如下表所示: 口管脚 备选功能 p3.0 rxd(串行输入口) p3.1 txd(串行输出口) p3.2 /int0(

12、外部中断0) p3.3 /int1(外部中断1) p3.4 t0(记时器0外部输入)p3.5 t1(记时器1外部输入) p3.6 /wr(外部数据存储器写选通) p3.7 /rd(外部数据存储器读选通)p3口同时为闪烁编程和编程校验接收一些控制信号。 rst:复位输入。当振荡器复位器件时,要保持rst脚两个机器周期的高电平时间。 ale/prog:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在flash编程期间,此引脚用于输入编程脉冲。在平时,ale端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每

13、当用作外部数据存储器时,将跳过一个ale脉冲。如想禁止ale的输出可在sfr8eh地址上置0。此时, ale只有在执行movx,movc指令是ale才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ale禁止,置位无效。 /psen:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/psen有效。但在访问外部数据存储器时,这两次有效的/psen信号将不出现。 /ea/vpp:当/ea保持低电平时,则在此期间外部程序存储器(0000h-ffffh),不管是否有内部程序存储器。注意加密方式1时,/ea将内部锁定为reset;当/ea端保持高电平时,此间内部程序存储器

14、。在flash编程期间,此引脚也用于施加12v编程电源(vpp)。 xtal1:反向振荡放大器的输入及内部时钟工作电路的输入。xtal2:来自反向振荡器的输出。 振荡器特性: xtal1和xtal2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,xtal2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。stc89c52是一种8k字节闪烁可编程可擦除只读存储器的低电压,高性能comos8的单片机。该器件采用atmel搞密度非易失存储器制造技术制造,与

15、工业标准的mcs-51指令集和输出管脚相兼容。它的工作电压3v/5v,操作频率 033mhz。4个8位i/o口,含3个高电流p1口,可直接驱动led;3个16位定时器/计数器;可编程看门狗定时器(wdt);低emi方式;兼容ttl和coms逻辑电平;掉电检测和低功率模式等。stc89c52内部有一个用于构成振荡器的高增益反相放大器,引脚rxd和txd分别是此放大器的输入端和输出端。时钟可以由内部方式产生或外部方式产生。内部方式的时钟电路如图1.1所示,在rxd和txd引脚上外接定时元件,内部振荡器就产生自激振荡。外部方式的时钟电路如图1.2所示,rxd接地,txd接外部振荡器。对外部振荡信号无

16、特殊要求,只要保证脉冲宽度。xtal2xtal1图2.1内部方式时钟电路外部振荡器xtal2xtal1图2.2外部方式时钟电路stc89c52单片机包含中央处理器、程序存储器(rom)、数据存储器(ram)、定时/计数器、并行接口、串行接口和中断系统等极大单元数据总线、地址总线和控制总线等三大总线。stc89系列单片机是mcs-51系列单片机的派生产品。他们的指令系统、硬件结构和片内资源上与标准8051单片机完全兼容,而且价格更实惠。其优点是可以在线下载,下载器也比较容易购买到,方便携带应用。stc89c52可以用于控制水位,在功能和性能上要比at系列单片机突出,因此,选择stc89c系列单片

17、机,作为水位控制器核心。3 硬件的设计3.1水位传感方式的选择 3.1.1简单的控制方式简单的控制方式有浮标式、电极式等,这些控制方式的优点是结构简单,成本低廉。但有很多问题存在,比如是精度不高,不能进行数值显示,另外很容易引起误查,且只能单独控制,与计算机进行通信连接比较难实现,很难快速准确传输信号,所以不利于水位信号的传送。3.1.2红外线发射接收装置因为光在水中的传播与空气中的光的传播是由不同的差异的,即光在不同的介质中其强弱度不同。可以根据此原理采集水中是否有水。脉冲调制式红外发射接收器工作原理:接收管与发射管放在水塔对立的两侧并且在一条直线上,在空气中接收管完全接收到发光管发送过来的

18、信号,当发射接收两管之间有水时,水对于光有反射和折射特性减弱了光信号,使接收管在有水位时接受的信号时弱信号。由此可以判断出是否有水。但是,问题在于电路调试比较困难,难以实现,而且准确度不够。3.1.3水阻传感方式任何物质在电学里都有一定的阻值,实验证明,纯净水几乎不导电的,但人们日常使用的水都会含有一定的mg+、ca+等离子,他们的存在使水可以具有导电的性能,水的阻值大约为10k左右。本控制装置就是利用水的导电性完成的。传感器结构图3.1:图3.1传感器结构图 高电平通过电压输入探针输入,水位在不同的水位的时候接通相应的水位探针将高电平穿送给稳压电路,通过稳压电路转置为低电平再输送给单片机,促

19、使单片机控制电机电路和水位显示电路工作、停止。此水位探测传感方法比脉冲调制式红外发射接收器结构简单,方便。此电路的灵敏度可以达到本设计的要求,能够准确地分辨出水位信号。有此可知,这种设计方案方便实用,元件选用方便,费用低。此方案解决了第一种方案中调试繁琐,信号干扰的问题,信号传输的准确率高达95%以上。本设计选择第三种方案,作为水位传感器。3.2系统的组成水位控制系统由电源电路、水位探测传感电路、稳压电路、继电器控制电机加水电路、水位显示电路、单片机stc89c52组成。系统组成的方框图如下:水位显示电路电源电路单片机stc89c52电机控制电路稳压电路水位探测传感电路图3.2系统组成方框图3

20、.2.1系统工作原理当水箱里的水位在蓄水位以下的时候电机开始工作。当水箱里水在蓄水位的时候,蓄水位、低水位、中水位、高水位四个传感器都没有和+5v电源导通。传感器传给稳压电路一个低电平,低电平通过稳压电路里的npn三极管、电容、电阻转换成高电平。单片机收到高电平,表示水箱里没有水了需要系统开始运作,给水箱加水,这时单片机通知水泵开始加水,红灯亮。当达到低水位的时候,蓄水位传感器传送给单片机一个低电平,水泵继续工作,亮一黄灯。水位继续上升,当达到中水位时,蓄水位、低水位传感器传送给单片机低电平,水泵继续工作,亮一个绿灯亮。水位继续上升达到高水位时,蓄水位、低水位、中水位、高水位传感器同时传送给单

21、片机一个低电平,两个绿灯亮。同理,水位从高水位开始下降,水位离开高水位线时,高水位传感器探头与电源断开,传感器输出高电平给单片机,绿灯熄灭一个,表示水位下降到中水位了。当水位下降到低水时,一黄灯亮,表示水位下降到低水位了。当水位下降到蓄水位时,红灯亮、黄灯熄灭,电机开始工作。3.2.2稳压电路 图3.3稳压电路图本电路的主要作用是使从传感器输入的电平能够稳定的输入到单片机中,是由三极管9013、两个电阻、和一个无极性电容组成。如果我们不使用此稳压电路也能实现我们的设计目的,但有时会产生水位误判和不稳定现象,所以我认为此电路是不可缺少的。3.2.3水位显示电路图3.4水位显示电路图本电路采用不不

22、同颜色的led作为显示装置,有单片机p2.0、p2.1、p2.3、p2.4、p2.7口控制进行水位显示。亮红灯代表水位在蓄水位以下。亮两黄灯代表水位在低水位以下,蓄水位以上。亮一黄灯表示在中水位以下,低水位以上。亮绿灯表示在高水位以下,中水位以上。亮两绿灯表示在高水位以上。此电路采用的是共阳极的,所以只有单片机给发光二极管为低电平的时候才能是发光二极管点亮。r2,r3,r4,r10,r11为上拉电阻起限压控流作用。led(light emitting diode),发光二极管,是一种固态的半导体器件,它可以直接把电转化为光。led的心脏是一个半导体的晶片,晶片的一端附着led灯株在一个支架上,

23、一端是负极,另一端连接电源的正极,使整个晶片被环氧树脂封装起来。半导体晶片由两部分组成,一部分是p型半导体,在它里面空穴占主导地位,另一端是n型半导体,在这边主要是电子。但这两种半导体连接起来的时候,它们之间就形成一个“p-n结”。当电流通过导线作用于这个晶片的时候,电子就会被推向p区,在p区里电子跟空穴复合,然后就会以光子的形式发出能量,这就是led发光的原理。而光的波长决定光的颜色,是由形成p-n结材料决定的。 3.2.4电机控制电路图3.5电机控制电路图电机控制电路,由于实际电机额定电压比较高,而单片机的输出电压又比较低,不能直接驱动电机工作,所以采用了三级管放大和二极管正向导电的作用和

24、电磁式继电器的吸合作用来控制电机(弱电控制强电)。由单片机的p1.6口来控制的。电磁式继电器一般由铁芯、线圈、衔铁、触点簧片等组成的。只要在线圈两端加上一定的电压,线圈中就会流过一定的电流,从而产生电磁效应,衔铁就会在电磁力吸引的作用下克服返回弹簧的拉力吸向铁芯,从而带动衔铁的动触点与静触点(常开触点)吸合。当线圈断电后,电磁的吸力也随之消失,衔铁就会在弹簧的反作用力返回原来的位置,使动触点与原来的静触点(常闭触点)释放。这样吸合、释放,从而达到了在电路中的导通、切断的目的。 3.2.5电机工作指示灯电路 图3.6电机工作指示灯图本电路采用红色led灯作为电机工作指示灯接在单片机p3.7口上,

25、当电机开始工作的时候,指示灯就亮直到电机停止工作。3.2.6振荡电路和复位电路图3.7振荡电路和复位电路图振荡电路和复位电路是单片机不可缺少的部分,是单片机的重要组成,它们集成在单片机里,对于单片机稳定工作有至关重要的作用。并且可以延长它的使用寿命。3.2.6水位控制系统的整体电路仿真图图3.8水位控制系统仿真图3.2.7实物图 图3.9实物图4. 软件程序设计以及仿真4.1 程序流程图4.1.1加水时程序流程图:开始 红灯亮电机工作电机指示灯亮蓄水位以下红灯亮电机工作电机指示灯亮判断水位是否是蓄水位 是 否判断水位是否是低水位黄灯亮,红灯灭电机工作电机指示灯亮 是 否亮一绿灯电机工作电机指示

26、灯亮判断水位是否是中水位 是 否 两绿灯亮电机停止工作电机指示灯灭判断水位是否是高水位以上 是 否 4.1.2水位降低时程序流程图:开始 两绿灯亮电机停止工作判断水位是否是高水位 是 否亮一绿灯电机停止工作判断水位是否是中水位 是 否亮一黄灯电机停止工作判断水位是否是低水位 是 否 红灯亮电机开始工作判断水位是否是蓄水位以下 是 否 4.2水位对应的传感器信号表1蓄水位传感器低水位传感器中水位传感器高水位传感器电机水位状况1111工作蓄水位以下0111工作蓄水位0011工作低水位0001工作中水位0000停止高水位4.3水位对应的亮灯情况表2led水位绿灯1绿灯2黄灯红灯电机指示红灯蓄水位不亮

27、不亮不亮亮亮低水位不亮不亮亮不亮亮中水位亮不亮不亮不亮亮高水位亮亮不亮不亮不亮4.4 c语言程序设计 c语言程序如下:#include #define uchar unsigned char#define uintunsiged intsbit xsw=p10;sbit dsw=p11;sbit zsw=p12;sbit gsw=p13;sbit led_g1=p20;sbit led_g2=p21;sbit led_y=p23;sbit led_r1=p27;sbit led_r2=p37;sbit dj=p16;void main(void) char i=0; p1=0xf1; dj=0

28、; while(1) while(dj=0) if(xsw=0&dsw=1&zsw=1&gsw=1) led_r1=0; led_r2=0; dj=0; if(xsw=0&dsw=0&zsw=1&gsw=1) led_r1=1; led_y=0; led_r2=0; dj=0; if(xsw=0&dsw=0&zsw=0&gsw=1) led_y=1; led_g1=0; led_r2=0; dj=0; if(xsw=0&dsw=0&zsw=0&gsw=0) led_r2=1; led_g1=0; led_g2=0; dj=1; break; while(dj=1) if(xsw=1&dsw=1

29、&zsw=1&gsw=1) led_r1=1; led_r2=0; dj=0; break; if(xsw=0&dsw=1&zsw=1&gsw=1) led_r1=0; led_r2=0; dj=0; led_y=1; if(xsw=0&dsw=0&zsw=1&gsw=1) led_g1=1; led_r2=1; led_r1=1; led_y=0; if(xsw=0&dsw=0&zsw=0&gsw=1) led_g2=1; led_r2=1; led_y=1; led_g1=0; if(xsw=0&dsw=0&zsw=0&gsw=0) led_r2=1; led_g1=0; led_g2=0; 4.5 各种水位情况下的仿真图加水水到达在蓄水位时: 电机运转,电机指示灯红灯亮,低水位警示灯红灯亮。仿真图如下所示:图4.1蓄水位仿真图加水水到达低水位时:电机运转,电机指示灯红灯亮,中水位警示灯黄灯亮。仿真图如下所

温馨提示

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

评论

0/150

提交评论