基于单片机的水位水温控制系统.doc
《基于单片机的水位水温控制系统.doc》由会员分享,可在线阅读,更多相关《基于单片机的水位水温控制系统.doc(28页珍藏版)》请在冰点文库上搜索。
编号
研究类型
应用研究
分类号
学士学位论文(设计)
Bachelor’sThesis
论文题目
基于单片机的水位水温控制系统
作者姓名
学号
所在院系
学科专业名称
电子信息科学与技术
导师及职称
讲师
论文答辩时间
*******学士学位论文(设计)诚信承诺书
中文题目:
基于单片机的水位水温控制系统
外文题目:
WaterTemperature-LevelControlSystemBasedonSCM
学生姓名
学号
院系专业
电子信息科学与技术
班级
学生承诺
我承诺在毕业论文(设计)活动中遵守学校有关规定,恪守学术规范,本人毕业论文(设计)内容除特别注明和引用外,均为本人观点,不存在剽窃、抄袭他人学术成果,伪造、篡改实验数据的情况。
如有违规行为,我愿承担一切责任,接受学校的处理。
学生(签名):
2012年5月10日
指导教师承诺
我承诺在指导学生毕业论文(设计)活动中遵守学校有关规定,恪守学术规范,经过本人核查,该生毕业论文(设计)内容除特别注明和引用外,均为该生本人观点,不存在剽窃、抄袭他人学术成果,伪造、篡改实验数据的现象。
指导教师(签名):
2012年5月10日
目录
诚信承诺书 I
摘要 1
1.前言 2
1.1课题背景 2
1.2课题研究意义 2
2.系统设计方案讨论与选择 2
2.1系统总体方框图 2
2.2温度控制系统方案讨论 3
2.3水位控制系统方案讨论 4
2.4显示系统方案讨论 4
3.系统的工作原理 4
4.系统硬件电路设计 5
4.1单片机最小系统 5
4.2水位检测系统电路设计 8
4.3水温检测系统电路设计 11
4.4显示系统电路设计 13
4.5报警系统设计 15
4.6继电器驱动电路设计 15
5.系统软件设计 16
5.1系统硬件开机自检程序设计 16
5.2系统自动上水程序设计 16
5.3系统按键程序设计 17
5.4水温水位交替显示流程图设计 18
6.系统的实物电路设计 19
7.致谢 21
参考文献 22
湖北师范学院学士学位论文评审表
I
基于单片机的水位水温控制系统
摘要:
本文设计的控制系统由水位控制模块和水温控制模块组成。
水位控制部分主要由水位检测、按键调整、水位控制和显示等组成。
水温控制部分主要由温度检测、按键调整和显示等组成。
本文设计的控制系统测量水位水温方便、直观,成本较低,较好地解决了工程应用问题。
关键词:
单片机DS18B20光电传感器红外对管
中图分类号:
TP27
WaterLevelandTemperatureControlSystemBasedonMicrocontroller
Abstract:
Thecontrolsystemdesignedinthispaperconsistsofwaterlevel controlmoduleandwatertemperature controlmodule.Waterlevel controlmoduleismainlycomposedofwaterlevel detection, buttonand displaycircuits. Watertemperature controlismainlymadeupoftemperaturedetection, buttonand displaycircuits.Thecontrolsystemdesigned is convenient,intuitiveandlowcosttomeasurethewaterlevel andthewatertemperature, whichisabettersolutionto the problem of engineeringapplications.
Keywords:
singlechip;DS18B20;photoelectricsensors;Infraredtube
基于单片机的水位水温控制系统
1.前言
1.1课题背景
随着电子技术的发展,人们生活质量的提高,在现代社会中,水位和温度控制不仅应用在工厂生产方面,其作用也体现到了生活的各个方面。
酒店厂房及家庭生活中都会见到水位和温度控制的影子,水位和温度控制将更好的服务于社会目前,单片机控制器在从生活工具到工业应用的各个领域,例如生活工具的电梯、工业生产中的现场控制仪表、数控机床等。
尤其是用单片机控制器改造落后的设备具有性价比高、提高设备的使用寿命、提高设备的自动化程度的特点。
现代工业设计、工程建设及日常生活中常常需要用到水位和温度控制,早期水位和温度控制主要应用于工厂中,例如工厂中的大型锅炉[1],必须实时的掌握锅炉的水位和温度,确保系统的正常运行。
现行的水位和温度控制也已应用于生活当中,如人们日常烧水用的电热水器,当水位到一定限度或温度到达所需值时,它都会给出相应的提示以告诉人们。
1.2课题研究意义
早期温度和水位的参数控制【2】是通过模拟电路实现的,这种方式不仅电路复杂,成本高,而且误差大,系统的稳定性不好。
单片机及微型计算机技术【3】的发展和应用有效地解决了这些缺点,特别是传感器的发展,更好的提高了检测参数的精度。
选择基于单片机的水温水位控制系统,是因为它不仅在人们生活中具有显著的意义,更重要的是能系统地聚温度和水位参数于一身,对于更好的掌握和认识单片机的应用和传感器的应用,系统地深刻认识自动控制的实际应用,掌握复杂的多子系统地设计起到了很强的锻炼作用。
2.系统设计方案讨论与选择
2.1系统总体方框图
为实现系统的水位水温控制,根据系统的设计功能要求,构造总体方框图如图2-1所示。
图2-1系统总体方框图
2.2温度控制系统方案讨论
如果采用热电阻,电路需接A/D转换电路,由单片机换算出实际温度,电路结构复杂,而且也精度不高。
图2-2是DS18B20[4]的结构图,它只有三个引脚,一个数据引脚,另外两个引脚分别是接电源脚和地脚。
它的数据引脚可直接与单片机的1位I/O相接,电路结构简单,占用单片机的口线资源少,精度高,而且成本低,并且防水。
并且数据线自带的电源可以供电而不需要外部电源,而如图2-2所示的温度传感器外扩了很长的导线更方便测量水位。
所以DS18B20以其各方面优点作为温度传感器[5]进行温度采样应用于此水温水位控制系统中很合适。
图2-2 DS18B20温度传感器(防水)
2.3水位控制系统方案讨论
此系统要进行水温水位控制,在温度传感器采用DS18B20之后,对于水位的控制不假思索的想到要运用水位传感器,经过几天的资料搜集,发现有的水位传感器是通过压力传感器变换过来的,也有的是浮球式液位传感器,而且此传感器的适用温度范围和测试精度也适合该设计系统,但此方案的缺点是价格非常昂贵,后来通过指导老师指导,她建议我用光电传感器,经过查询资料我最终选择了用红外对管来测量水位,红外线传感器测量时不与被测物体直接接触,因而不存在摩擦,并且有灵敏度高,响应快等优点,非常适合用于液位检测[1]。
2.4显示系统方案讨论
为了能构造一个适合的人机界面,在诸多的显示器件中LCD1602的液晶字符性显示器非常适合运用于此控制系统当中的,它的功能特性也完全适用于此设计系统的功能要求,也不会造成资源的浪费,所以就确定LCD1602作为本此设计系统的显示器件。
3.系统的工作原理
单片机的控制电路接正五伏的直流电压源,当电源接好后,就可以按下系统的总电源开关,系统就开始运行。
首先系统进行硬件电路的开机自检,主要是检查DS18B20工作是否正常,显示器是否正常工作,报警系统是否正常,在此同时LCD1602显示器同步显示系统状态。
在此过程中用户可以预置水位和水温,接下来开始检测容器中的水位,是否低于下限水位,如果低于下限水位则开始自动上水至默认水位,然后进入水温水位显示的正常状态。
此时用户可通过三个独立式按键进行水位,水温的设置,按下K1键系统进入菜单式选择状态,显示器上光标闪烁引导用户进行选择操作,K2、K3键用来增减水位或温度设定值,设置完成后系统开始自动补偿水温或水位,完成任务后又进入水温水位交替显示的正常状态,系统这时会自动检测容器中的水温水位,同时比较水温水位的下限,进行及时的水温水位补偿,完成后自动进入水温水位的交替显示状态。
每一次系统的动作都配合听觉和视觉感受,使整个系统实现了人性化设计,方便实用,通俗易懂。
4.系统硬件电路设计
4.1单片机最小系统
本设计采用AT89C52单片机作为主控制芯片。
AT89C52是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,与标准MCS-51指令系统及8052产品引脚兼容,片内置通用8位中央处理器(CPU)和Flash[6]存储单元,功能强大的AT89C52单片机适用于许多较为复杂控制应用场合。
AT89C52单片机最小系统图如图4-1所示。
图4-1单片机最小系统(单片机,时钟电路,复位电路,电源)
4.1.1单片机
它由 CPU 、存储器(包括 RAM 和 ROM )、 I/O 接口、定时 / 计数器、中断控制功能等均集成在一块芯片上,片内各功能通过内部总线相互连接起来。
图4-2为AT89C52的引脚图[7]。
图4-2AT89C52的引脚图
输入 / 输出引脚 P0、P1、P2、P3的功能介绍:
1)P0 口(P0.0-P0.7):
P0 口是一个 8 位漏极开路型双向 I/O 端口。
在访问片外存储器时,它分时作低 8 位地址和 8 位双向数据总线用。
在EPROM 编程时,由 P0 输入指令字节,而在验证程序时,则输出指令字节。
验证程序时,要求外接上拉电阻。
P0 能以吸收电流的方式驱动8个LSTTL 负载。
在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。
2)P1口(P1.0-P1.7(1-8脚)):
P1口是一上带内部上拉电阻的 8 位双向 I/O 口。
在 EPROM 编程和验证程序时,由它输入低 8 位地址。
P1 能驱动 4 个 LSTTL 负载。
在AT89C52 中, P1. 0 还相当于专用功能端 T2 ,即定时器的计数触发输入端; P1. 1 还相当于专用功能端T2EX ,即定时器 T2 的外部控制端。
Flash编程和程序校验期间,P1接收低8位地址。
3)P2口(P2.0-P2.7(21-28脚)):
P2也是一上带内部上拉电阻的 8 位双向 I/O 口,P2口的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对端口写“1”,通过内部的上拉电阻把端口拉到高电平。
在访问外部存储器时,由它输出高 8 位地址。
在对 EPROM 编程和程序验证时,由它输入高 8 位地址。
P2驱动4个 LSTTL 负载。
在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX@DPTR指令)时,P2口送出高8位地址数据。
在访问8位地址的外部数据存储器(例如执行MOVX@RI指令)时,P2口线上的内容(也即特殊功能寄存器SFR区中R2寄存器的内容),在整个访问期间不改变。
Flash编程或校验时,P2亦接收高位地址和其它控制信号。
4)P3口(P3.0-P3.7(10-17脚)):
P3口是一组带有内部上拉电阻的8位双向I/O口。
P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。
此时,被外部拉低的P3口将用上拉电阻输出电流(IIL)。
P3口除了作为一般的I/O口线外,P3口还接收一些用于Flash闪速存储器和程序校验的控制信号,重要的用途是的第二功能,如表4-1。
表4-1AT89C52的P3口特殊功能
口管脚
备选功能
P3.0
RXD(串行输入口)
P3.1
TXD(串行输出口)
P3.2
/INT0(外部中断0)
P3.3
/INT1(外部中断1)
P3.4
T0(定时/计数器0外部输入)
P3.5
T1(定时/计数器1外部输入)
P3.6
/WR(外部数据存储器写选通)
P3.7
/RD(外部数据存储器读选通)
4.1.2时钟电路
时钟电路用于产生单片机工作所需要的时钟信号,单片机本身就是一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格地按时序进行工作。
在MCS-51芯片内部有一个高增益反相放大器,其输入端为芯片引脚,输出端为引脚,在芯片的外部跨接晶体振荡器和微调电容,形成反馈电路,就构成了一个稳定的自激振荡器。
此电路采用12MHz的石英晶体,时钟电路如图4-3所示。
图4-3时钟电路
4.1.3复位电路
复位是单片机的初始化操作。
除了进入系统的正常初始化之外,当由于程序运行出错或操作错误是系统处于死锁状态时,为摆脱困境,也需要按复位键以重新启动。
RST引脚是单片机复位信号的输入端,复位信号是高电平有效,其有效时间应持续24个振荡周期(即2个机器周期)以上,若使用频率为12MHz的晶振,则复位信号持续时间应超过4s才能完成复位操作。
复位操作有上电自动复位和按键手动复位两种方式。
上电自动复位是通过外部复位电路的电容充电来实现的。
按键电平复位是通过使复位端经电阻与Vcc电源接通而实现的。
在本设计中采用了上电自动复位方式,其复位电路如下图4-4所示。
图4-4复位电路
4.1.4电源
单片机工作时需要供5v的直流电压,考虑到下载程序到硬件电路上时可以通过接口供电,如是设计了如图4-5电源所示。
图4-5电源电路
4.2水位检测系统电路设计
4.2.1水位传感器红外对管介绍
人们习惯把红外线发射管和红外线接收管称为红外对管[5]。
其内部结构如图4-6所示,图中左边的四个白色的是红外发射管,管芯中央凹陷,类似聚光罩的形状,图中右边是红外接收管,管芯中央的平台上有红外感光电极。
红外对管的两引脚1长1短,长引脚是正极,和普通发光管相同。
图4-6红外对管
接收电路的红外接收管是一种光敏二极管,使用时要给红外接收二极管加反向偏压,它才能正常工作而获得高的灵敏度。
红外接收二极管一般有圆形和方形两种。
由于红外发光二极管的发射功率较小,红外接收二极管收到的信号较弱,所以接收端就要增加高增益放大电路。
4.2.2水位检测电路图
图4-7四对红外对管测量水位电路图
图4-7中的LM324为四运放集成电路[8],采用14脚双列直插塑料封装,内部有四个运算放大器,有相位补偿电路。
电路功耗很小,lm324工作电压范围宽,可用正电源3~30V,或正负双电源±1.5V~±15V工作。
在水位检测系统中我们有四对红外对管要和单片机相连,但由于红外对管的电阻会随着光强变化而产生变化,送给单片机高低电平信号就可能不受控制,于是我们在红外对管的输出端连接一个比较器,将其输出电压控制在一定范围内,然后由比较器将电平信号反馈给单片机,由单片机做出相应指示。
另外还有一点就是之所以将运放正向输入端分压加上滑动变阻器是因为接受管暗电阻会随着与发射管之间的距离变化而变化,所以加上滑动变阻器方便调整。
将某一对红外对管单独画出来,就能更好的说明,在此加入运放的作用和好处,如图4-8所示。
图4-8一对红外对管模拟测量参数
图4-8中运算放大器的正向输入端接分压电阻端,方向输入端连接接收管,当没有水的时候,接受管能接受到红外光所以电阻阻值很小,所以分压小,此时正向电压大于反向电压时,由于运放放大倍数无穷大,运放输出端此刻只能输出正向电压,即给单片低电平信号,那么没有水的时候送给单片机的是低电平,反之则是高电平。
水位检测部分模型如图4-9所示。
图4-9水位检测部分模型
图4-9中的四对红外对管分别安装在不同的位置,由下至上四输出端口分别接单片机的P2.0,P2.1,P2.2,P2.3口,当水位达到某一对红外对管的位置时,其运放的输出端口就向单片机输出高电平,因为有水淹没的时候红外接收管的暗电阻阻值几乎是无穷大,电路相当于断开,运放方向输出端电压接近于5V,此时运放给单片机一个高电平信号。
4.3水温检测系统电路设计
4.3.1单线数字温度计DSl8B20介绍
DSl8B20[4]数字温度计提供9位(二进制)温度读数,指示器件的温度。
信息经过单线接口送入DSl8B20或从DSl8B20送出,因此从主机CPU到DSl8B20仅需一条线(和地线)。
DSl8B20的电源可以由数据线本身提供而不需要外部电源,这允许在许多不同的地方放置温度敏感器件。
DSl8B20的测量范围从-55摄式度到+125摄式度,增量值为0.5摄式度,可在ls(典型值)内把温度变换成数字。
4.3.2温度计算
1)DS18B20用9位存贮温值度,最高位为符号位,如表4.1为DS18B20的温度存储方式,负温度S=1,正温度S=0。
如:
00AAH为+85摄式度,0032H为25摄式度,FF92H为55摄式度。
表4-218B20用9位的温度存储方式
LSByte
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
2)DS18B20用12位存贮温值度,最高位为符号位,如表3.2为DS18B20的温度存储方式,负温度S=1,正温度S=0。
如:
0550H为+85摄式度,0191H为25.0625摄式度,FC90H为-55摄式度。
表4-3DS18B20用12位的温度存储方式
LSByte
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
MSByte
Bit15
Bit14
Bit13
Bit12
Bit11
Bit10
Bit9
Bit8
S
S
S
S
S
4.3.3DSl8B20的时序
主机使用时间隙(timeslots)来读写DSl8B20的数据位和写命令字的位。
1)初始化
时序见图4-9。
主机总线to时刻发送一复位脉冲(最短为480us的低电平信号),接着在t1时刻释放总线并进入接收状态,DSl8B20在检测到总线的上升沿之后,等待15μs~60μs,接着DS18B20在t2时刻发出存在脉冲(低电平,持续60μs~240μs),如图中虚线所示。
图4-10初始化时序图
2)写时间隙
当主机总线t0时刻从高拉至低电平时,就产生写时间隙,见图4-11、图4-12,从t0时刻开始15μs之内应将所需写的位送到总线上,DSl8B20在t0后15μs~60μs间对总线采样。
若低电平,写入的位是0,见图4-11;若高电平,写入的位是1,见图4-12。
连续写2位间的间隙应大于1μs。
图4-11写0时序图4-12写1时序
3)读时间隙
见图4-13,主机总线to时刻从高拉至低电平时,总线只须保持低电平l7μs。
之后在t1时刻将总线拉高,产生读时间隙,读时间隙在t1时刻后t2时刻前有效。
t2距t0为15μs。
也就是说,t2时刻前主机必须完成读位,并在t0后的60μs~120μs内释放总线。
图4-13读时序
4.3.4DS18B20与电路相连
图4-14DS18B20与系统电路相连
图4-14中的温度传感器DS18B20是防水的因此可以用于测量水的温度,它只有三根连接线,1号引脚接地,3号引脚接电源,2号引脚通过与电阻相连分压后接单片机的P37口。
4.4显示系统电路设计
4.4.1LCD1602介绍
液晶显示器1602(LiquidCrytalDisplay)简称LCD1602,其主要原理是以电流刺激液晶分子产生点、线、面并配合背部灯光构成画面。
1602表示每行显示16个字符,共有2行。
LCD的引脚介绍如下图4-15。
图4-15LCD1602引脚排列
它有16个引脚可与外界相连。
其中:
1脚VSS:
接地;
2脚Vdd:
接+5V电源;
3脚VO:
对比度调整端,LCD驱动电压范围为Vdd~VO。
当VO接地时,对比度最强;
4脚RS:
寄存器选择端,RS为0时,选择命令寄存器IR;RS为1时,选择数据寄存器DR;
5脚R/W:
读写控制端,R/W为1时,选择读出;R/W为0时,则选择写入;
6脚E[Enable]:
使能控制端,E为1时,使能;E为0,禁止;
7脚~14脚D0~D7:
数据总线;
15脚LED+:
背景光源,接+5V;
16脚LED-:
背景光源,接地。
其指令系统:
LCD1602A内有2个寄存器:
一个是命令寄存器,另一个是数据寄存器。
所有对LCD1602A的操作必须先写命令字,再写数据。
指令系统如表4-4。
表4-4指令系统
控制信号
指令代码
功能
RS
R/W
D7
D6
D5
D4
D3
D2
D1
D0
0
0
0
0
0
0
0
0
0
1
清屏
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
*
*
系统方式设置
0
0
0
1
ACG
CGRAM地址设置
0
0
1
ADD
显示地址设置
0
1
BF
AC
忙状态检查
1
0
写数据
MCU—LCD
1
1
读数据
LCD—MCU
4.4.1LCD1602与单片机的连接图
图4-16LCD1602与单片机连接
LCD1602有16个引脚,其中8个数据引脚,一个使能控制端,一个读写操作控制端,一个寄存器选择端,这些引脚分别与单片机相关引脚相连。
另外的引脚分别与地相连,在2和3脚之间加入滑动变阻器是为了调节显示屏的亮度,15脚上加入电容是避免当电阻滑过头的时候烧坏显示器。
4.5报警系统设计
报警系统是由蜂鸣器和发光二极管构成,报警的时候蜂鸣器发出响声同时二极管发亮,其设计的硬件电路如图4-17所示。
图4-17报警系统电路
4.6继电器驱动电路设计
为了给容器中水补偿温度和水位,就须通过继电器启动220V交流电的电热丝和小型水泵,这样就须考虑设计一个继电器的驱动电路。
其硬件电路图如图4