水位自动控制系统设计.doc
《水位自动控制系统设计.doc》由会员分享,可在线阅读,更多相关《水位自动控制系统设计.doc(27页珍藏版)》请在装配图网上搜索。
华南师范大学增城学院 课 程 论 文 题目:水位自动控制系统设计 课 程 名 称 《微型机控制技术》 考 查 学 期 2013/2014 学年 第 2学期 考 查 方 式 课程论文 姓 名 学 号 专 业 应用电子 成 绩 指 导 教 师 摘要 2 一、设计内容: 3 二、硬件电路设计 3 2.1 系统框图设计 3 2.2 单片机最小系统 4 2.4 水位传感器的电路 7 2.5 液晶1602显示设计 8 2.6 键盘功能设计 11 2.7 电机驱动电路 11 2.8 报警电路设计 12 三、软件程序设计 13 3.1 主程序流程图 13 3.2 键盘控制流程图 15 3.3 显示流程图 15 3.4 水位测量流程图 16 3.5 PWM 电机驱动程序 17 3.6 水位报警程序 18 四、调试过程 18 五、心得体会 19 六、参考文献 21 七、附录 22 摘要 水塔是在日常生活和工业应用中经常见到的蓄水装置,在我们的生活中起到了重要的作用,而水塔里面的水位控制是一个水塔发挥作用的关键。基于单片机的水塔水位控制系统使水塔水位自动保持在一定的位置,通过对其水位的控制对外供水,以满足需要。该系统使用水位传感器对水塔水位进行检测并将检测到的信号传给单片机来进行处理,通过调整定时器的定时时间来增大或者缩小占空比,并编写程序加以控制,从而实现电机的调速。最后,使用液晶屏显示当前水位状态以及电动机的转速。该系统通过了报警模块来实现了过低水位蜂鸣器鸣笛报警、过低警戒水位自动处理、正常水位蜂鸣器鸣笛报警以及正常水位处理。本系统适应在不同的用水场合下的用水速度需要,节省工作时间,提高了整体工作的效率,实现水塔水位的自动控制。 液位控制是工业控制中的一个重要问题,针对液位控制过程中存在大滞后、时变、非线性的特点,为适应复杂系统的控制要求,人们研制了种类繁多的先进的智能控制器,模糊PID控制器便是其中之一。模糊PID控制结合了PID控制算法和模糊控制方法的优点,可以在线实现PID参数的调整,使控制系统的响应速度快,过渡过程时间大大缩短,超调量减少,振荡次数少,具有较强的鲁棒性和稳定性,在模糊控制中扮演着十分重要的角色 关键词:水位控制;单片机;模糊PID控制 一、设计内容: 这设计课程是为了确保水位在水塔的允许的范围内浮动,采用了水位传感器测量水位变化,从而控制电动机,保证水位正常。因此,这里给出以STC89C52单片机为核心器件的水塔水位检测控制系统,该系统能实现水塔水位检测、LCD1602显示当前水位功能以及蜂鸣器鸣笛报警,手动按键调整PWM电机调速功能,实现过低和正常警戒水位报警、过低和正常警戒水位处理的系统要求。 按下电源按钮后,灯会闪烁几下,然后是常亮状态,蜂鸣器会响。电机不会转的,此时系统在待机状态,且为正常状态。要先选择好电机的抽水速度是哪个档位,共有4个档位。档位越高,速度越快。在电机转的时候,按下选择档位,电机立马会停止的,这个是一个软件安全冗余的设计理念。电机在水位模拟传感器端口(低水位)按下后,说明水位太低,电机转动,此时蜂鸣器会响一下,灯会闪烁几下,以此表示报警,并且液晶也会显示水位太低。当水位模拟传感器端口(正常水位)按下后,说明水位已经到正常状态,电机停转,此时蜂鸣器也会响一下,灯一样会闪烁,以此表示报警,且液晶屏也会显示水位正常。而PWM速度调整就是档位的选择,必须在电机停止的状态下去选择电机输出的速度。 二、硬件电路设计 2.1 系统框图设计 系统的总体框图主要由主控芯片基本电路、按键电路、电动机和蜂鸣器驱动电路、液晶显示电路组成。除主控芯片电路外,其他的都是外围功能性电路。蜂鸣器和电动机电路驱动原理基本相同,都为三极管驱动电路,按键电路为平常的独立按键电路,液晶电路参考设计手册既可。电路设计框图如图2.1所示: 图2.1 水塔水位控制系统总框图 2.2 单片机最小系统 STC89C52是一款完全兼容8051内核指令的芯片,是宏晶科技公司的新一代增强性的8051单片机[9]。采用最新的加密技术解决了全球89系列单片机都被解密的困惑。并且管脚完全兼容,性能更好,驱动力更强,功耗更低,价格也比传统的89系列低[10]。STC89C52的引脚说明图如图3-1 图3-2 STC89C52的引脚图说明 图3-4 最小系统原理图 此图是单片机工作的最小系统原理图,在这个电路中又可以分为复位电路和晶振电路,如图3-4和图3-5所示: 图3-5复位电路 复位电路可以分为上电复位和手动按键复位两种。在系统上电的一瞬间单片机上电复位,原理是利用电容两端的电压不能突变,在一上电的瞬间电容好比短路,所以加在第九脚RST的电平是高电平,虽然时间很短,但是足以让单片机系统复位。 手动按键复位的原理是,在系统正常工作的过程中可以手动触动按键使单片机复位。具体原理是,按下S1按键,因此5V电压经过一个200欧姆的电阻分压后加到系统的RST上,手动按键按下到抬起的过程足以使系统复位。 图3-6晶振电路 对于单片机系统而言,晶振电路就好比是人的心脏一样,是一个跳动的动力来源,18,19号引脚接的是11.0592M的晶振。 2.3蜂鸣器报警电路原理 图3-7蜂鸣器报警功能电路 蜂鸣器报警功能电路使用的是三极管8550驱动,三极管8550是PNP三极管,射极接电源+5V,基极通过一个电阻连接到P1.0口,集电极接蜂鸣器,当P1.0为高电平时,三极管截止,蜂鸣器没有不响,当P1.0为低电平时,三极管导通,蜂鸣器发出响声。 2.4 水位传感器的电路 按键是现阶段电子设计中最常用、最实用的输入设备。按键能够成为最普遍的输入设备,主要是其具备了以下几个优点:工作原理、硬件电路连接简单、操作实用性强、价格便宜,程序编写简单。缺点:机械抖动比较严重、外型不够美观。 按键部分实现的主要原理是单片机读取与按键相连接的I/O口状态,来判定按键是否按下,达到系统参数设置的目的。键盘在单片机应用系统中的作用是实现数据输入、命令输入,是人工干预的主要手段。 独立式按键就是按键相互独立,每个按键单独占用一根I/O口线,每根I/O口线的按键的工作状态,不会影响其他I/O口线上的工作状态。各按键开关均需要采用了上拉电阻,是为了保证在按键断开时,各I/O有确定的高电平。当输入口线内部已有上拉电阻,外电路的上拉电阻可省去。因此,通过检测输入线的电平状态就可以很容易判断是哪个按键被按下了。优点:电路配置灵活,软件结构简单。缺点:每个按键需占用一根I/O口线,在按键数量较多时,I/O口浪费大,电路结构显得复杂。因此,此键盘适用于按键较少或操作速度较高的场合。 矩阵式键盘适用于按键数量多的场合,它通常由行线和列线组成,按键位于行、列的交叉点上。单片机的键盘检测通常有三种方式:查询、中断、定时扫描。查询和中断方式同普通的 I/O 传送是一致的,定时扫描方式是利用单片机内部定时器产生定时中断,在中断服务程序中对键盘进行扫描获得键值。 在本设计中采用的是 4 行*4 列键盘,其电路图如图3.12所示,列线由 P2.4-P2.7口控制,行线由 P2.0-P2.3口控制。电路中共 16个按键,包括设置键、3 个温度参数和时间设置键、1个增加键、1个减小键。系统在程序初始化时控制键盘行线的 P2.0-P2.3口输出高电位,控制键盘列线的P2.4-P2.7口输出低电位,在判断电路是否有按键按下时,读 P2.0-P2.7端口值,若端口值不是11110000,则说明电路中有按键按下。然后根据程序进行去抖动处理和计算键值。 图2.4 矩阵式键盘电路图 2.5 液晶1602显示设计 液晶显示器以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,在袖珍式仪表和低功耗应用系统中得到越来越广泛的应用[12]。 字符型液晶模块是一种用57点阵图形来显示字符的液晶显示器,根据显示的容量可以分为1行16个字、2行16个字、2行20个字等等。 字符型液晶显示模块是一类专用于显示字母、数字、符号等的点阵型液晶显示模块。之所以称字符型液晶显示模块是因为其液晶显示器件的电极图形是由若干个58或511点阵块组成的字符块集。每一个字符块是一个字符位,每一位都可以显示一个字符,字符位之间空有一个点距的间隔起着字符间距和行距的作用,这是其一;其二是这类模块使用的是专用于字符显示控制与驱动的IC芯片[13]。这两种因素确定了这类模块的应用范围仅局限于字符而显示不了图形,所以称其为字符型液晶显示模块。 字符型液晶显示驱动控制器广泛应用于字符型液晶显示模块上。目前最常用的字符型液晶显示驱动控制器是HD44780U,也出现使用HD667O1或HD66702等字符型液晶显示驱动控制器单片控制的字符型液晶显示模块。液晶显示驱动器为HD44100及其替代品。 字符型液晶显示模块在世界上是比较通用的,而且接口格式也是比较统一的,其主要原因可能是各制造商所采用的模块控制器都是HD44780U及其兼容品,不管它的显示屏的尺寸如何,它的操作指令及其形成的模块接口信号定义都是兼容的。所以会使用一种字符型液晶显示模块,就会通晓所有的字符型液晶显示模块。 液晶1602有三条控制线,RS/数据命令端,RW/读写选择端、EN/使能端,一个8位的数据端口。常用指令说明如表3-1: 表3-1常用指令说明 指令名称 控制信号 控制代码 D/I R/W D7 D6 D5 D4 D3 D2 D1 D0 清屏 0 0 0 0 0 0 0 0 0 1 归home位 0 0 0 0 0 0 0 0 1 * 输入方式设置 0 0 0 0 0 0 0 1 I/D S 显示状态设置 0 0 0 0 0 0 1 D C B 光标画面滚动 0 0 0 0 0 1 S/C R/L * * 工作方式设置 0 0 0 0 1 DL N F * * CGRAM地址设置 0 0 0 1 A5 A4 A3 A2 A1 A0 DDRAM地址设置 0 0 1 A6 A5 A4 A3 A2 A1 A0 读BF和AC 0 1 BF AC6 AC5 AC4 AC3 AC2 AC1 AC0 写数据 1 0 数 据 读数据 1 1 数 据 图3-10液晶1602显示电路图 液晶1602从左到右依次有16根引脚,每个引脚定义不同。有三根控制引线和八根信号线,必须注意的一点是3号引脚是背光电源指示端。背光电阻选择的不同有不同的结果。我们这里选择2.7k电阻做为背光电阻。 2.6 键盘功能设计 图3-9按键功能电路 按键功能电路里面有两种按键,一种按键是模仿水塔水位开关的功能按钮,一种是电机PWM输出的调整按钮。原理是通过一个10k的电阻接到+5v电源线上,当按键没有按下时,按键没有导通,所以没有电流,但对于连到引脚上的那一端来讲是高电平。当按键按下时,因为电路导通,有电流流过,和单片机引脚接触的那一端接地,所以是低电平。因此能检测到信号的变化,交给程序处理后做出相关的动作。 2.7 电机驱动电路 图3-8电机驱动电路 电机驱动电路和蜂鸣器的电路基本相同,同样使用8550三极管驱动,三极管的基极接P1.1,当P1.1为高电平时,电机不转动,当P1.1为低电平时,电机转动。 2.8 报警电路设计 图3-7蜂鸣器报警功能电路 蜂鸣器报警功能电路使用的是三极管8550驱动,三极管8550是PNP三极管,射极接电源+5V,基极通过一个电阻连接到P1.0口,集电极接蜂鸣器,当P1.0为高电平时,三极管截止,蜂鸣器没有不响,当P1.0为低电平时,三极管导通,蜂鸣器发出响声。 三、软件程序设计 3.1 主程序流程图 当系统按下电源开关,且确定有电源存在时候,系统进入初始化状态,灯会闪烁、蜂鸣器响一声、液晶初始化,初始化完以后,进入PWM按键调速选择,如有按键按下,进入PWM按键调整子程序,若没有,进入主程序等待状态,检测水塔水位的液位状态,当模拟液位低水位按键按下后,电机以显示速度启动,模拟抽水过程,此时蜂鸣器报警,灯闪烁,且液晶会显示水位过低状态。当模拟水位正常按键正常按键按下后,电机停止转动,蜂鸣器报警、液晶显示当前正常状态,然后程序进入循环,继续检测模拟水位状态按键。具体流程图的如图4-2所示 图4-2程序总体流程图 3.2 键盘控制流程图 由于使用的按键较少,所以本文采用了独立式键盘,即每个按键单独占用一根口线。在程序查询方式下,通过I/O端口读入按键状态,当有按键按下时,相应的端口变为低电平,这样通过读入I/O口状态判断是否有按键按下。查询式键盘的程序流程图如下: 图4-1 键盘程序流程图 3.3 显示流程图 共阴极数码管是用高电平(“1”)点亮的,要求驱动功率较大。程序流程图如图3.4 所示。 图 3.4 显示子程序流程图 3.4 水位测量流程图 本设计采用单片机主控芯片控制继电器外围电路,用于驱动电机的启动与关停。其程序流程图如图4-3所示。 启动A/D转换 读取液位数据 开始 实际液位≥高警戒液位 且电机已启动 关闭电机 记录数据 实际液位≤低警戒液位 且电机关闭 返回 启动电机 记录数据 是 否 是 否 图4-2 液位检测流程图 3.5 PWM 电机驱动程序 在进入PWM按键子程序后,首先要做的事是先检测是否确定有按键按下,这个过程延时15ms,在确认有按键按下后,判断是哪一个按键按下,如果是速度加按键按下,电机不管在什么状态,都是首先停止,然后是调整PWM调制时间,液晶屏显示速度增加,按下减按键,也是先停止电机,调整PWM调制时间,液晶屏显示速度减少。具体流程图如图4-1所示。 PWM调速按键调整子程序 检测是否有按键按下 Y N 延时15ms,确定有按键按下 N 检测哪一个按键按下 先停止电机,PWM速度增加 液晶屏显示速度值增加 先停止电机,PWM速度减少 液晶屏显示速度值减少 减按键 加按键 图4-1 PWM按键调整子程序流程图 3.6 水位报警程序 报警子程序主要实现在温度超限的情况下,进行声光报警,并切断电源。程序流程图如下图3.6。 图3.6 报警子程序流程图 四、调试过程 本系统的调试主要分为硬件调试、软件调试等两大部分。经过初步的分析设计后,在制作硬件电路的同时,调试也在穿插进行。这样有利于问题的分析和解决,不会造成问题的积累,而且不会因为一个小问题而进行整体电路的检查,从而可以节约大量的调试时间。软件编程中,首先编写单元模块的程序,并且在硬件上调试成功问题,即可以做系统整体程序的调试。联机调试是最重要的一部分,同时也是本设计成功的关键。 上电后观察电路工作性能,如不能正常工作,按原理图分模块进行电路检测,是否有虚焊或漏焊现象;如焊接正常,在按信号传递的方向逐级检测,找出出问题的一级,并向该级的上级进行检测,直到将故障排除。对于虚焊和漏焊的情况最好的办法是先找到一个比较大的电路回路,如果用的是指针式万用表,打到欧姆档1X10欧姆档就可以测,如果是指针摆到最右端,说明我们的线路连接是正常的!如果用的是数字万用表,我们可以调整到短路档位,接上要测的点直接就可以测,如果有蜂鸣响说明线路连接正常。 在元件没有在万能板上进行焊接的时候我们是不能直接拿过来就进行使用的,必须经过检测,像LED灯可以用万用表测试一下看其是否会发光,测试三级管的好坏,器件的检测工作都要在焊接之前做好。 用万用表接到按键的信号输入端口,如果按键按下信号肯定会有变化,并且会在万用表上直接测试读出,这样直接通过硬件测量按键是否能打到预期的效果。 写一个功能小程序,来具体单个的功能硬件电路是否有问题,如果有问题再具体看是硬件的问题还是软件的问题,若没有问题,则可以进行下一个功能电路的测试。 五、心得体会 作为一名电气的大四学生,在即将毕业之际,通过做这次课程设计是很有意义的,而且也是必要的。在做这次课程设计的过程中,我感触最深的当属查阅大量的设计资料了。为了让自己的设计更加完善,查阅这方面的实际资料是十分必要的,也是必不可少的。 其次,在这次课程设计中,我们运用了以前学过的专业课知识,如:proteus仿真、汇编语言、模拟和数字电路知识等。虽然过去我从未独立应用过他们,但在学习的过程中带着问题去学我发现效率很高,这是我做这次课程设计的又一收获。 最后,要做好一个课程设计,就必须做到:在设计程序之前,对所用单片机的内部结构有一个系统的了解,知道该单片机有哪些资源;要有一个清晰的思路和一个完整的软件流程图;在设计程序时,不能妄想一次将整个程序设计好,反复修改、不断改进是程序设计的必经之路;要养成注释程序的好习惯,这样为资料的保留和交流提供了方便;在设计中遇到的问题要记录,以免下次遇到同样的问题。 在这次的课程设计中,我真正的意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,学习单片机更是如此,程序只有在经常写与读的过程中才能提高,这就是这次课程设计的最大收获。 六、参考文献 [1] 吕小红,周凤星,马亮.基于单片机的电阻炉温度控制系统设计[C].武汉:武汉科技大学,2008 [2] 马云峰,郭文川.微机原理与接口技术[M].北京:高等教育出版社,2001 [3] 张开生.MCS-51单片机温度控制系统的设计[J].微计算机信息,2005 [4] 胡寿松.自动控制原理(第五版)[M].北京:北京科学出版社,2007 [5] 张俊謨.单片机中级教程[M]。北京:北京航空航天大学出版社,2006; [6] 刘君华.智能传感器系统[M]。国防工业出版社,1998; [7] 侯国章.测试与传感技术[M].哈尔滨:哈尔滨工业大学出版社,2000 [8] 夏大勇,周晓辉,赵增,陈博峰,虎恩典.MCS- 52单片机温度控制系统[J]. 北京航空航天大学出版社,2007 七、附录 #include- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 水位 自动控制系统 设计
装配图网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
链接地址:https://www.zhuangpeitu.com/p-6695700.html