基于单片机的水塔水位控制系统设计学士学位论文(编辑修改稿)内容摘要:
图 时钟电路 时钟芯片各引脚功能如下: Vcc1:主电源; Vcc2:备份电源。 当 Vcc2Vcc1+ 时,由 Vcc2 向 DS1302 供电,当 Vcc2 Vcc1 时,由 Vcc1 向 DS1302 供电。 SCLK:串行时钟,输入,控制数据的输入与输出; I/O:三线接口时的双向数据线; RST 为复位 引脚 ,在读、写数据期间,必须为高, X1 X2 为 32867Hz 晶振管脚,为芯片提供 时钟脉冲。 沈阳理工大学学士学位论文 7 显示模块电路及方案的选择 方案 1: 用数码管进行显示。 数码管由于显示速度快,使用简单,显示效果简洁明了而得到了广泛应用。 方案 2: 用 LCD 液晶进行显示。 LCD 由于其显示清晰,显示内容丰富、清晰,显示信息量大,使用方便,显示快速而得到了广泛的应用。 单对于此系统我们不需要显示丰富的内容,而且 LCD 液晶价格贵,因此我们放弃了此方案。 综上所述我们选择方案 1。 电源方案的选择 方案 1: 采用 5V 蓄电池为系统供电。 蓄电池具有较强的电流驱动能力以及稳定的电压输出性能。 但是蓄电池的体积过于庞大,在小型电动车上使用极为不方便。 因此我们放弃了此方案。 方案 2: 采用 3 节 V 干电池共 做电源,经过实验验证系统工作时,单片机、传感器的工作电压稳定能够满足系统的要求,但不环保。 方案 3: 采用 USB 接口给系统供电,不仅可以满足方案二的要求,并且用起来方便,环保。 综上所述采用方案 3。 水塔水位控制电路原理 基于单片机水塔水位控制原理如图 所示,虚线表示的水位变化的上限和下限位置。 在正常情况下,水位应在虚线范围内进行控制。 因此,在该塔的不同高度,安装固定金属棒 A、 B、 C 用以反映水位变化情况。 其中, A 棒在下限水位, B 棒在上、下限水位之间, C 棒在上限水位。 水塔由电机带动水泵供水,单片机控制电机转动,随着供水,沈阳理工大学学士学位论文 8 水位不断上升,当水位上升到上限水位时,由于水的导电作用,使 B、 C 棒均与 +5V 电源连通。 因此 b、 c 两端的电压都为 +5V,即为“ 1”状态。 此时应停止电机和水泵工作,不再向水塔注水;当水位处于上、下限之间时, B 棒 和 A 棒导通,而 C 棒不能与 A 棒导通, b 端为“ 1”状态, c 端为“ 0”状态。 此时电机带动水泵给水塔注水,使水位上升,还是电机不工作,水位不断下降,都应继续维持原有工作状态;当水位处于下限位置以下时, B、 C 棒均不能与 A 棒导通, b、 c 均为“ 0”状态,此时应启动电机转动,带动水泵给水塔注水。 图 水塔水位控制原理 系统功能电路 沈阳理工大学学士学位论文 9 最小工作系统原理 图 最小系统原理图 此图是单片机工作的最小系统原理图,在这个电路中又可以分为复位电路和晶振电路,如图 和图 所示: 沈阳理工大学学士学位论文 10 图 复位电路 复位电路可以分为上电复位和手动按键复位两种。 在系统上电的一瞬间单片机上电复位,原理是利用电容两端的电压不能突变,在一上电的瞬间电容好比短路,所以加在第九脚 RST 的电平是高电平,虽然时间很短,但是足以让单片机系统复位。 手动按键复位的原理是,在系统正常工作的过程中可以手动触动按键使单片机复位。 具体原理是,按下 S1 按键,因此 5V 电压经过一个 200 欧姆的电阻分压后加到系统的 RST 上,手动按键按下到抬起的过程足以使系统复位。 图 晶振电路 沈阳理工大学学士学位论文 11 对于单片机系统而言,晶振电路就好比是人的心脏一样,是一个跳动的动力来源, 18,19号引脚接的是 的晶振。 蜂鸣器报警电路原理 图 蜂鸣器报警功能电路 蜂鸣器报警功能电路使用的是三极管 8550 驱动,三极管 8550 是 PNP 三极管,射极接电源 +5V,基极通过一个电阻连接到 口,集电极接蜂鸣器,当 为高电平时,三极管截止,蜂鸣器没有不响,当 为低电平时,三极管导通,蜂鸣器发出响声。 电机驱动电路原理 图 电机驱动原理图 沈阳理工大学学士学位论文 12 电机驱动电路和蜂鸣器的电路基本相同,同样使用 8550 三极管驱动,三极管的基极接 ,当 为高电平时,电机不转动,当 为低电平时,电机转动。 按键功能电路原理 图 按键功能电路 按键功能电路里面有两种按键,一种按键是模仿水塔水位开关的功能按钮,一种是电机 PWM 输出的调整按钮。 原理是通过一个 10k 的电阻接到 +5v 电源线上,当按键没有按下时,按键没有导通,所以没有电流,但对于连到引脚上的那一端来讲是高电平。 当按键按下时,因为电路导通,有电流流过,和单片机引脚接触的那一端接地,所以是低电平。 因此能检测到信号的变化,交给程序处理后做出相关的动作。 沈阳理工大学学士学位论文 13 4 系统软件设计 系统主要软件设计原理 当水位处于低水位的时候,低水传感器检测到低水位时,会产生一个低电平,送入单片机的 , 单片机经过分析,在 P1口输出一组信号,驱动数码管显示当前水位, , 电平驱动红色 LED,指示当前水泵有在进行抽水工作, 当水位处于正常范围内时,水泵加水,红色 LED 亮 ; 当水位在高水位区时,高水位传感器检测到高水位时,会产生一个低电平,送入单片机的 ,单片机经过分析,在 P1口输出一组信号,驱动数码管显示当前水位, ,使三极管截止,从而使水泵停止工作, 口输出高平,红色 LED 灭。 当需要手动加水时,按下手动加水键,水泵启动进行加水,红色 LED 亮,当水位处于各水位状态时(高水位除外)数码管显示各水位,水泵抽水, LED 亮,当水位处于高水位时,高水低传感器检测到高水位时,经单片机分析,水泵停止抽水, LED 灭。 在手动抽水或自动抽水的过程中,如需要停止加水 时,按下停止加水键,水泵停止加水。 表 41 水位检测信号与输出控制操作关系 编程语言介绍 C 语言简介 早期的 C 语言主要是用于 UNIX 系统。 由于 C 语言的强大功能,并逐渐为人们知道P22 P23 P24 P25 P26 P27 P21 P20 输出控制动作 显示 0 1 1 1 1 1 1 1 水泵抽水 1 1 0 1 1 1 1 1 1 保持上一状态 2 1 1 0 1 1 1 1 1 保持上一状态 3 1 1 1 0 1 1 1 1 保持上一状态 4 1 1 1 1 0 1 1 1 保持上一状态 5 1 1 1 1 1 0 1 1 水泵停止抽水 6 * * * * * * 0 1 水泵抽水 显示当前水位 * * * * * * 1 0 水泵停止抽水 显示当前水位 沈阳理工大学学士学位论文 14 的优点,由八十年代, C 开始进入其它操作系统,并很快在各类大,中,小和微型计算机已广泛使用。 成为了目前最优秀的编程语言之一。 C 语言是一种结构化语言,易于组织程序的方式,而且很容易调试和维护。 C 语言的性能和处理能力很强,它不仅富含操作者和数据类型,很容易实现各种复杂的数据结构。 它也可以直接访问所述存储器的物理地址,进行位 (bit)一级的操作。 由于 C 语言实现了对硬件的编程操作, C 语言集高级语言和低级语言的功能于一身。 它可以在系统软件的开发中使用,并且它也适合于应用软件的开发。 另外,在 C 语言具有效率高,可携带等特点。 因此它是广泛移植到各类计算机,并且它形成多种 C 语言 C 语言对操作系统和系统使用程序以及需要对硬件进行操作的场合,用 C 语言明显优于其它高级语言,许多大型应用软件都是用 C 语言编写的。 C 语言具有绘图能力强,可移植性,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画它是数值计算的高级语言。 C 语言的特点 ( 1)简洁、灵活方便 :C 语言只有 32 个关键字 ,9 种控制语句,程序书写自由,主要表现为小写字母。 它结合了高级语言的基本结构和语句与低级语言的实用性。 C 语言可以和汇编语言一样 对位、字节和地址进行操作 , 而这三个是计算机最基本的工作单元。 ( 2)丰富的运算符 :C 语言的运算符包含的范围很广泛,共有种 34 个运算符。 C 语言把括号、赋值、强制类型转换等都作为运算符处理。 从而使 C 的运算类型丰富话和多样化,灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。 ( 3)数据结构极其丰富 :C 的数据类型有:整型、实型、字符型、数组类型、指针类型等。 能用来实现各种复杂的数据类型的运算。 并引入了指针的概念 ,使程序的效率大大提高。 另外 C 语言具有强大的图形处理功能 , 支持多种显示器和驱动器。 ( 4) C 是结构式语言 :结构式语言的显著特点是代码及数据的分隔化 ,即程序的各个部分除了必要的信息交流外彼此独立。 这种结构化方式可使程序层次清晰 , 便于使用、维护以及调试。 C 语言是以函数形式提供给用户的 ,这些函数可方便的调用 ,并具有多种循环、条件语句控制程序流向 ,从而使程序完全结构化。 ( 5) C 语法限制不太严格、程序设计自由度大 :一般的高级语言语法检查比较严,能够检查出几乎所有的语法错误。 而 C 语言允许程序编写者有较大的自由度。 ( 6) C 语言程序生成代码质量高,程序执行效率高 :一般只比汇编程序生成的目标 代码效率低 10 へ 20%。 沈阳理工大学学士学位论文 15 ( 7) C 语言适用范围大,可移植性好 :C 语言有一个突出的优点就是适合于多种操作系统。 C 语言源程序的结构特点 ( 1)一个 C 语言源程序可以由一个或多个源文件组成。 ( 2)每个源文件可由一个或多个函数组成。 ( 3)一个源程序不论由多少个文件组成,都有一个且只能有一个 main 函数,即主函数。 ( 4)源程序中可以有预处理命令 (include 命令仅为其中的一种 ),预处理命令通常应放在源文件或源程序的最前面。 ( 5)每一个说明,每一个语句都必须以分号结尾。 但预处理命令,函数头和 花括号“ }”之后不能加分号。 (6)标识符,关键字之间必须至少加一个空格以示间隔。 若已有明显的间隔符,也可不再加空格来间隔。 系统程序的设计 系统程序设计步骤 程序设计就是用计算机所能接受的语言把所需解决问题的步骤逐一描述出来,也就是编制计算机的程序,在设计应用系统时,软件的编制是重要环节。 软件的质量直接影响整个系统功能的实现。 应用程序的设计因系统而异,但程序设计总是有共同特点及其规律的。 在编写程序时,采取如下几个步骤: ( 1)清楚的分析问题和解决问题,将软件分成数个独立的部分。 根据函数的关系和时间顺序,设计合理的软件结构。 ( 2)制定合理的程序框图,这不仅仅是程序设计的一个重要组成部分,而且是决定成功与否的很关键部分。 ( 3)合理准确的分配系统资源,包括定时器,计数器,中断、堆栈等。 分配好单元之后,再将程序框图画成详细的操作流程图。 ( 4)由编写出的程序的流程图和指令系统编写程序。 ( 5)程序的调试。 通过编译软件编辑出源程序,然后用编译程序汇编后生成目标代码。 如果源程序有语法错误,需修改源文件后继续编译,直到无语法错误为止 ,然后利用目标代码通过仿真器进行程序调试,排除设计和编程中的错误直到成功。 ( 6)程序优化。 使各功能程序模块化,子程序化,缩短程序长度,加快运算速度,缩沈阳理工大学学士学位论文 16 短程序执行时间。 程序流程图 图 水塔水位控制系统流程图 程序源代码 程序源代码使用 C 语言编写,使用 C 语言编写程序效率高,调用方便。 详细源代码见附录 C。 沈阳理工大学学士学位论文 17 5 实验仿真及结果 根据所设计系统的软件流程图,编写相应的程序在 Proteus 软件环境下实际仿真,实验结果表明,该系统能成功实现了水位检测、电机故障检测、处理和报警等功能,具有良好的检测控制功能,可移植性和扩展性强。 通过制作 PCB 板子,该系统已成功运用于某实验水冷却系统。 Proteus 仿真软件介绍 Proteus 是目前最好的模拟单片机外围器件的工具。 可以仿真 51, 52 系列、 AVR, PIC等常用的 MCU 及其外围电路(如 LCD, RAM, ROM,键盘,马达, LED, AD/DA,部分 SPI 器件,部分 IIC 器件, ...)其实 proteus 与 multisim 比较类似,只不过它可以仿真 MCU。 当然,软件仿真精度有限,而且不可能所有的器件都找得到相应的仿真模型,用开发板和仿真器当然是最好选择,用 51,52 不管用汇编或是 C 编程必须要用 keil。 Proteus 与其他仿真软件的。基于单片机的水塔水位控制系统设计学士学位论文(编辑修改稿)
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。