济南大学泉城学院毕业设计
频率是由晶振和单片机内部的电路结合在一起产生出来的,所产生的时钟频率越高,单片机运行的速度越快。任何一个单片机系统里都有晶振,通常来说晶振电路都接在反相放大器的两端[13]。一般情况下,一个系统为了让各部分都保持一致,整个系统共用一个晶振。本次设计的晶振电路图如图3.11所示。 图3.11 晶振电路图 3.12 注水继电器控制电路
继电器是一种经常应用在通讯设备、控制设备、机电一体化设备和电力电子设备中的电控制器件,它的被控制系统和控制系统两者之间可以进行互动。继电器里大电流的工作主要是通过小电流来进行控制的,在电路中主要作用是保护、调节和转换电路,它是非常重要的控制元件[14]。本次设计采用了5V的继电器,用来控制水位,主要由继电器、三极管和发光二极管组成。当检测当前水位低于水位下限时,JDQ2输出高电平,三极管Q4导通,加水继电器吸合,指示灯亮,开始加热或加水。当水位达到水位上限时,JDQ2输出低电平,三极管截止,继电器断开,停止加水和关闭指示灯。注水继电器控制电路原理图如图3.12所示。 图3.12 注水继电器控制电路图 - 12 -
济南大学泉城学院毕业设计
4 软件系统设计
4.1 编程软件介绍
软件系统的设计对整个系统来说是不可或缺的,系统有了软件设计的程序,才能够执行指令,设计的硬件系统才能得到实现,完整的完成本次设计需要实现的功能,一个可靠安全的软件设计可以最大程度的发挥出硬件的作用。本次设计的软件系统中的所需程序主要是采用C语言来进行的,C语言具有以下优点。
(1)简洁紧凑、灵活方便。C语言一共只有32个关键字,9种控制语句,程序书写形式自由,区分大小写。
(2)可把高级语言的基本结构和语句与低级语言的实用性结合起来。C语言可以像汇编语言一样对位、字节和地址进行操作。
(3)运算符丰富。C语言的运算符包含的范围很广泛,共有34种运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C语言的运算类型极其丰富,表达式类型多样化。灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。
(4)数据类型丰富。C语言的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据结构的运算。并引入了指针概念,使程序效率更高。
(5)表达方式灵活实用。C语言提供多种运算符和表达式值的方法,对问题的表达可通过多种途径获得,其程序设计更主动、灵活。它语法限制不太严格,程序设计自由度大,如对整型量与字符型数据及逻辑型数据可以通用等[15]。
4.2 主程序设计
本次设计的软件系统主要由主程序、定时子程序、水位检测子程序、继电器控制子程序及其它的功能模块子程序共同组成。主程序的主要任务是通过控制系统的各个功能模块去控制整个系统。主程序运行时需要将整个系统先进行初始化,使系统的工作参数回到初始值,然后用户自己进行参数设置,设置好参数之后,系统主程序可开始下一步工作。
本次软件主程序设计主要的步骤如下:
(1)当系统开始运行之后,首先将系统内所有的参数初始化,显示当前温度和时间,设置温度上下限值,并可根据需要设置预约时间,温度上下限值和预约时间可利用按键或遥控器进行设置。若设置了预约时间,则判断预约时间是否完成,是,则开始加热,否,则继续等待,接着判断水温状态,当检测到系统当前水温低于设置的水温下限时,则开始加热,当检测到当前水温高于设置的水温上限时,加热继电器断开,停止加热。
- 13 -
济南大学泉城学院毕业设计
(2)判断热水器当前水位,当检测到当前水位低于系统水位下限时,加水继电器吸合,开始加水,当检测到当前水位高于水位上限时,加水继电器断开,停止加水,并且蜂鸣器响应,开始报警,直至人为按下取消报警键,报警停止。本次设计的软件主程序流程图如图4.1所示。
开始初始化显示温度和时间设置温度范围及预约时间预约时间是否结束Y开始加热N温度是否小于下限Y加热N温度是否大于上限Y停止加热NN水位是否小于下限Y加水N水位是否大于上限Y报警结束
图4.1 系统软件结构流程图
4.3 子程序设计
4.3.1定时中断子程序设计
当系统打开以后,先程序初始化,如果想预约加热时间,则允许中断,允许中断之后,输入需要设置的预约时间,输入完成后,开启定时器0,液晶会将输入的数值
- 14 -
济南大学泉城学院毕业设计
进行显示,当预约时间完成后,中断关闭,系统返回原来的状态,进行下一步工作。定时中断子程序流程图如图4.2所示。
开始程序初始化允许中断开启定时器0输入定时初值定时完成中断关闭返回 图4.2 定时子程序流程图
4.3.2 水位检测子程序设计
系统运行时,首先进行初始化,单片机会对当前水位进行检测,检测完成后会将检测到的实际水位与系统本身的水位上下限值进行比较,当检测到当前水位小于热水器水位下限时,加水继电器自动吸合,开始加水。当检测当前水位不小于热水器水位下限时,则判断当前水位是否大于热水器水位上限,若当前水位大于热水器水位上限,则加水继电器自动断开,停止加水,蜂鸣器响应,开始报警。若当前水位不大于水位上限时,则返回继续加水,本次设计的水位检测子程序流程图如图4.3所示。
- 15 -