单片机控制的水位与降雨量检测系统方案_第1页
单片机控制的水位与降雨量检测系统方案_第2页
单片机控制的水位与降雨量检测系统方案_第3页
单片机控制的水位与降雨量检测系统方案_第4页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

1、word 专业整理引言本实验模拟的是现实生活中的水箱进出水系统。为了避免水箱的“无水”“满溢”,使得水箱水位控制在一定范围内,从而保证生活正常供水而进行的模拟设计。本系统在实现自动管理的同时,还避免了水资源的浪费。通过检测电压测量水位变化,从而控制电机,保证水位正常。本实验通过AT89C51芯片,该芯片集成了微型计算机的各个组成部分,联系显示系统和电机相连实现自动进排水管理,并用软件Proteus来进行仿真。AT89C51的出现使得众多的现代化自动管理可以实现,并且衍生出众多利于社会进步的相关产物。1. 功能要求该水位控制系统通过AT89C51单片机,红黄绿三个发光二极管各一个,一个电机驱动芯

2、片 L297,一个电机, 8 个按键开关,一个蜂鸣器来实现整个系统的构成。实验中每个按键代表不同高度的水位,当水位在前两个时,表示水位低于用户设定值,显示为红灯,系统开始报警,并电机开始转动,模拟进水过程。当水位在第三到底第五个时,报警器不发声,显示为正常水位,绿灯亮。当水位在底六到第八个时, 超过了用户设定值,报警器警报,电机翻转出水。2. 方案论证在实验之前首先进行了水位系统的方案比较,常见的水位控制系统主要有下面三种。( 1)简单的机械控制浮标式,电极式是常见的形式,这种控制的优点是结构简单,成本低廉。但是存在不利条件是测量不精确,不能实现直观的数值显示。只能实现简单的测量单独控制,并且

3、容易引起误动作,与计算机的交互性较差。( 2)复杂控制器控制方式这种控制方式是通过在水泵的出口管道上安装压力传感器,把压力变成标准工业电信号的模拟信号,经过前置放大,多路切换,A/D 变成数字信号传送到单片机,经过单片机运算和给定量的比较,进行PID 运算,得出调节参量;经由D/A 变换给调压 / 变频调速装置输出给定短,来调节电机转速,以达到控制水箱水位的目的。( 3)通过水位变化上下限的控制方式学习资料整理分享word 专业整理这种控制通过在水箱不同高度的地方分别设置固定不动的8 根金属棒,以感知水位的变化情况。其中存在下限水位30 和上限水位 50。然后通过单片机控制输出显示和电机的运转

4、操作来实现对水箱水位的控制。通过对以上三种方案的比较,结合实际,为了达到性能要求。我选择了第三种控制方式。3. 系统硬件电路设计水箱水位设计系统主要由AT89C51,水位检测接口电路, 报警接口电路,复位电路,时钟震荡电路,电机驱动等电路组成。设计中用的到主要原件有AT89C51,L298,蜂鸣器等。3.1单片机系统设计及显示电路(1)AT89C51是一种带 4K字节 AT89C51是一种带 4K字节闪存可编程可擦除只读存储器的低电压、 高性能 CMOS 8 位微处理器, 俗称单片机。 AT89C2051是一种带 2K 字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦

5、除 1000 次。该器件采用 ATMEL高密度非易失存储器制造技术制造,与工业标准的 MCS-51指令集和输出管脚相兼容。图:AT89c51 芯片内部引脚图引脚功能VCC:供电电压。GND:接地。学习资料整理分享word 专业整理P0 口:P0 口为一个 8 位漏级开路双向I/O 口,每脚可吸收8TTL门电流。当 P0口的管脚第一次写1 时,被定义为 高阻输入。 P0 能够用于外部程序数据 存储器,它可以被定义为数据 / 地址的低八位。在 FIASH编程时, P0 口作为原码输入口,当FIASH进行校验时, P0 输出原码,此时P0外部必须接上拉电阻。P1 口:P1 口是一个内部提供上拉电阻的

6、8 位双向 I/O 口, P1 口缓冲器能接收输出 4TTL 门电流。 P1 口管脚写入 1 后,被内部上拉为高,可用作输入, P1 口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在 FLASH编程和校验时, P1 口作为低八位地址接收。P2 口:P2 口为一个内部上拉电阻的 8 位双向 I/O 口, P2 口缓冲器可接收,输出4 个 TTL门电流,当 P2 口被写“ 1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时, P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。 P2 口当用于外部 程序存储器 或 16 位地址外部数据 存储器进行存取时, P2口输

7、出地址的高八位。在给出地址“ 1”时,它利用内部上拉优势,当对外部八位地址数据 存储器进行读写时, P2 口输出其 特殊功能寄存器 的内容。 P2 口在 FLASH编程和校验时接收高八位地址信号和 控制信号 。P3 口:P3 口管脚是 8 个带内部上拉电阻的双向 I/O 口,可接收输出 4 个 TTL门电流。当 P3口写入“ 1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平, P3 口将输出电流( ILL )这是由于上拉的缘故。P3 口也可作为 AT89C51的一些特殊功能口,如下表所示:口管脚备选功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.

8、2 /INT0 (外部中断 0)P3.3 /INT1 (外部中断 1)P3.4 T0 (计时器 0 外部输入)P3.5 T1 (计时器 1 外部输入)P3.6 /WR(外部数据存储器 写选通)P3.7 /RD (外部数据存储器读选通)P3 口同时为闪烁编程和编程校验接收一些控制信号 。学习资料整理分享word 专业整理RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期 的高电平时间。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。3.2 水位检测电路L298N是 SGS公司的产品,内部包含4 通道逻辑驱动电路。是一种二相和四相电机的专用

9、驱动器,即内含二个H桥的高电压大电流双全桥式驱动器,接收标准TTL逻辑电平信号,可驱动 46V、2A 以下的电机。 1 脚和 15 脚可单独引出连接电流采样电阻器,形成电流传号。 OUTl、OUT2和 OUT3、 OUT4之间 , 分别接 2 个电动机。 5、7、 10、12 脚接输入控制电平,控制电机的正反转,ENA,ENB接控制使能端,控制电机的停转。图: L298 电机驱动芯片内部引脚图3.3 仿真电路图用软件 proteus 仿真的基于单片机的水位和降雨量检测系统仿真电路图如下。学习资料整理分享word 专业整理图:水位检测系统仿真电路图4. 软件系统设计4.1 主流程图本实验中使用的

10、是程序编写软件keil ,仿真软件 Proteus 。晶振电路LED 输出装置复位电路AT89C51报警装置开关电路电机驱动装置图:水位检测系统设计流程图4.2 水位和降雨量检测程序设计本次实验采用的 C 语言编写,Keil软件编译。其中程序主要包括一个蜂鸣器子程序,一个延时子程序。其中主程序是由9 个 if语句组成,分别表示按键按下模拟不同的水位。其中红灯表示水位过低达到下限,黄灯,表示水位达到上限。源程序见附录。学习资料整理分享word 专业整理图程序设计流程图5. 调试及性能分析5.1 调试将程序在 keil软件调试编译好之后,加载到Proteus 中的原理图芯片之中。然后开始仿真模拟,

11、在这过程中出现在的是文件不能加载早芯片之中打开。解决办法是将文件所在的所有路径均改成英文路径就可以顺畅的加载到上面了。仿真过程中,就在没有显示出现错误了,但是仿真结果并非原本预期的那样。第一次出现的情况是所有的按键按下,同时可以发现发光二极管在闪烁。所以推测估计是程序中的延时函数延时时间太短。所以返回keil软件中修改了延时函数的值,重新编译之后进行仿真。至此,确定了整个实验的正确性,接下来就是实验原件实物部分了。5.2 性能指标最终实现了当最后三个按键按下时,电机不转,黄色发光二极管亮,蜂鸣器以另一种频率报警。学习资料整理分享word 专业整理图模拟溢出水位图按下前两个按键时电机转动,蜂鸣器

12、警报,红色发光二极管亮;中间三个按键按下时,电机保持不变,绿色发光二极管亮,蜂鸣器不报警。图模拟正常水位图学习资料整理分享word 专业整理6. 收获与体会体会此次课程设计是基于单片机嵌入式系统而设计的, 充分利用单片机强大功能和方便通信接口,该检测控制系统在实验室某实验水冷却系统得到实践成功,实现水位检测,电机故障检测,处理和警报等功能。进一步优化系统软硬件设计,可为实时实现远端控制。因此,此系统在农村水塔,城市水源检测控制等领域有着广阔应用前景。本次实验中,我首先是在三种备选方案当中,选出第三种方案作为此次课程设计的确定方案。大概心里有了思路之后开始进行实验思路的构思,以及在网上查阅了相关

13、资料。可以看出在这方面的研究当中, 已经有很多良好的可取之处。 比较前人的相关经验,确定出适合自己而且切实可用的实验方案。在此次课程设计中因为实验中有需要蜂鸣器,电机,数码管等器具。所以同我们以前做课程设计所用到的Multisim和 AD等比较,最终决定用模拟仿真性能更好而且可以写入程序的Proteus 软件来完成这次的电路图设计。但是因为以前从未接触过次软件,所以说这次的课程设计不仅是一次从零开始,也是一次新的开始。完成这次原理图的过程中,不仅对整个课程设计有了系统而直观的感受,而且对自己的学习能力也有很大的提高。就像是老师给我们强调的那样,这次的课程设计不仅仅是一次对我们上学期所学单片机原

14、理的总结,实践和应用;也是对我们以后动手能力的一次运用和实践。在一边学习,一边修改过程中,最终完成了本次课程设计的原理图。接下来就是在原理图中写入程序,完成模拟仿真。程序编写运用C 语言使用 keil软件进行编写,因为之前已经有过对此软件的编写,所以这次运用起来还算熟悉。首先对试验中用到的各个端口进行赋值和选位,然后编写了备着以后调用的延时子程序,显示子程序等子程序,最后是主程序的编写。结合实验原理,使用if语句来实现最终的此次课程设计输入端口的设置。在实验器件准备好之后,焊接开始。但是焊接实物的时候,发现实物的焊接不像原理图那样清晰,因为芯片的引脚分布并不像图中那样明确。结合实际引脚的分布和

15、合理的规划之后开始进行焊接。焊好之后调试实物的时候出现了状况。发现发光二极管可以在各个按键控制下进行程序设定的闪亮,但是报警系统蜂鸣器是没有任何反应的。所以通过网上查阅相关资料和向同学请教讨论之后发现了问题的的本源。 因为在仿真过程中我使用的是用扬声器代替了蜂鸣器,虽然在仿真过程中是出现了预期的效果。但在实际的焊接过程中,蜂鸣器是不能像这样简单被替代的。而现实当中,我开始使用的是无缘学习资料整理分享word 专业整理蜂鸣器,因为它本身是没有震荡电路的。直接在芯片电路上接出来是不能发声的。所以为了解决这样状况,我在原本电路当中用一个三极管搭建了震荡电路,来放大电流。仿真成功后,在实物上修改了此电

16、路,最终获得了成功。在一次次的排查之后,最终完成了此次课程设计的实物。至此课程设计的设计部分最终完成。此次课程设计最深切的体会就是, 纸上得来终觉浅。我们只有不断的在实践中进步,在错误中总结,在创新中学习。才可以不断地书上的有限的知识中不断的得到源源不断的新的知识养分。将所学知识灵活应用,才算是真的有所学习,学有所得。而这将是我们每个敢于进取和挑战的大学生所要终身学习的东西。学习资料整理分享word 专业整理7. 参考文献1 李广弟 . 朱月秀 . 冷祖祁编著单片机基础(第三版)北京航空航天大学出版社2 李朝青编著单片机及接口技术(第三版)北京航空航天大学出版社3 李萍编著 AT89C51单片

17、机原理开发与实践应用 中国电力出版社4 张凯编著单片机的 c 语言应用程序设计 北京航空航天大学 2003 马忠梅 .5 黄智伟全国大学生电子设计竞赛技能训练 M 北京:北京航空航天大学出版社, 20078. 附录 1:源程序清单学习资料整理分享word 专业整理#include<reg52.h>/030水位过低 ,4050 水位合适 ,6080 水位过高#define ui unsigned int#define uc unsigned charuc flag;/水位是否到达蜂鸣器报警标志位uc dang;/水位高度档次uc shuiwei;uc code table=0x3f,

18、0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f, 0x77,0x7c,0x39,0x5e,0x79,0x71;sbit red=P20;sbit green=P21;sbit yellow=P22;sbit motor1=P25;sbit motor2=P26;sbit bee=P27;void delay(ui a) ui i,j; for(i=a;i>0;i-) for(j=110;j>0;j-);void fengmingqi()/蜂鸣器报警子程序if(flag=1) bee=bee; delay(1);if(flag=2) be

19、e=bee;学习资料整理分享word 专业整理delay(2);void main()/主程序 while(1) /0xff,0x7f,0x3f,0x1f,0x0f,0x07,0x03;0x01,0x00if(P1=0xff) /最低水位 dang=0;green=1;yellow=1;red=0; /红灯表示水位过低motor1=1; motor2=0; /电机正转,进水flag=1;while(P1=0xff)fengmingqi();if(P1=0x7f)/1 dang=1;green=1;yellow=1;red=0; /红灯亮,水位过低motor1=1; motor2=0; /电机正转,进水flag=1;while(P1=0x7f)fengmingqi();if(P1=0xbf)/2 dang=2;green=1;yellow=1;red=0; /红灯亮,水位低motor1=1; motor2=0; /电机正转,进水flag=1;while(P1=0xbf)fengmingqi();if(P1=0xdf)/3dang=3;学习资料整理分享word 专业整理green=0;yellow=1;red=1; /绿灯表示水位正常motor1=0; motor2=0; /电机保持,停转flag=0;while(P1=0xdf)fengmingqi();if(P

温馨提示

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

评论

0/150

提交评论