找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5440|回复: 6
收起左侧

单片机水位自动控制课程设计报告下载

[复制链接]
ID:359235 发表于 2018-6-26 12:31 | 显示全部楼层 |阅读模式
电子课程设计报告
设计题目:水位自动控制
专业:     电机与电器   
班级:101 班      
学号:
姓名:
指导教师:
微控制器技术课程设计任务书
设计题目            水位自动控制    7  
设计任务
在Proteus中画出原理图或使用实物,编制程序,实现以下功能:
1、使用LED数码管显示当前水位;
2、使用按键模拟水位开关;
3、可以设定水位上、下限,到达或超过温度上限时,电机停止转动;到达或超过温度下限时,电机开始转动。
背景资料:1、单片机原理与应用
          2、检测技术
3、计算机原理与接口技术
进度安排:
1、第一天,领取题目,熟悉设计内容,分解设计步骤和任务;
2、第2-3天,规划设计软硬件,编制程序流程、绘制硬件电路。
3、第4-6天,动手制作硬件电路,或编写软件,并调试。
4、第7天,中期检查。
5、第9-10天,完善为完成内容,书写设计报告。
6、第11天,提交设计报告,整理设计实物,等待答辩。
7、第12天,设计答辩。
题目:水位自动控制

一、设计目的

1、掌握51单片机的基本硬件结构及工作原理。
2、熟悉关于51单片机系列的程序编写,并学会基本程序的设计。
3、了解51系列单片机的有关控制系统的相关知识。
4、学会将理论赋予实践,逐步掌握运用理论知识解决实际问题的方法。

二、设计要求

在Proteus中画出原理图或使用实物,编制程序,实现以下功能:
1、使用LED数码管显示当前水位;
2、使用按键模拟水位开关;
3、可以设定水位上、下限,到达或超过水位上限时,电机停止转动;到达或超过水位下限时,电机开始转动。
4、设置声光报警系统,当水位过低或满水位时,相应报警指示灯闪烁,并发出报警声。

三、方案设计与论证

水位检测电路可以通过两个 51 单片机的管脚来感知水位的变化,产生不同的逻辑组合来控制是否进水或是停止进水。输出端可由一个端口来控制电机的运行状态,进而控制水泵的工作。
方案一:设计采用 ADC0808 芯片。用 LED 灯来显示水位的高低。ADC0808 有 8 路模拟量的输入端口,本次设计只要用其中一个。通过 A/D 转换为数字量作用于单片机,进而控制电机的运转。采用可调电阻器来控制模拟电信号的输入。通过对电阻器的调节来模拟输入量的变化。通过对比数字量来进行进行判断水位的高低。进而通过输出口对电机进行开关控制。
方案二:本方案采用555电路进行控制,即当水位探测传感器探测到低水位时送一个低于1/3VCC的低电平给NE555芯片,555的输出即为高电平驱动水泵加水;当在正常的水位时候,送给NE555为1/3VCC----2/3VCC的电平,即保持前一个水泵不加水的状态;当水位居于高水位时,给NE555电路一个高电平,这时NE555输出电平翻转为低电平,不能驱动水泵,水泵停止加水。
方案三:本方案采用单片机AT89C51作为我们的控制芯片,主要工作过程是当高塔中的水在低水位时,水位探测传感器送给单片机一个高电平,然后单片机驱动水泵加水和显示系统使红灯闪烁;当水位在正常范围内时,水泵加水;当水位在高水位时,单片机不能驱动水泵加水,黄灯闪烁。
本课程设计采用方案三,这个方案中使用了单片机处理,单片机技术是信息时代用于精密测量的一种新技术。此系统使用过程中采用稳压电路能够准确地把输入的电平送给单片机不会产生误判的情况,由于AT89C51单片机有四端口,20引脚能够非常方便地设计显示系统。

四、设计原理和电路图如下

1、系统原理
当水位处于低水位的时候,传感器的低水位探测器没被+5V的电源导通进入稳压电路,经过处理在稳压电路的输出端有一个高电平,送入单片机的P1.7口,输出的高电平进入单片机的P1口单片机经过分析,在P3.2口输出一低电平,驱动红灯闪烁,同时在P3.1口输出一低电平,驱动蜂鸣器报警;P3.0出来一个信号使三极管导通,使水泵加水;当水位处于正常范围内时,水泵加水,在P3.2引脚出来一个低电平,使红灯灭;当水位在高水位区时,传感器的低水位探测线被导通,经过处理在稳压电路的输出端有一个高电平,送入单片机的P1.0口,单片机经过分析,在P3.3引脚出来一个低电平,使黄灯亮,在P3.1口输出一低电平,驱动蜂鸣器报警;P3.0输出一个信号使三极管导通,使水泵停止加水。

2、系统结构图

图1 系统结构图

采用单片机AT89C51作为我们的控制芯片,主要工作过程是当高塔中的水在低水位时,水位探测传感器送给单片机一个高电平,然后单片机驱动水泵加水和显示系统使红灯闪烁,同时报警;当水位在正常范围内时,水泵加水 ,当水位在高水位时,单片机不能驱动水泵加水,黄灯闪烁,同时报警。

3、水塔水位控制系统的硬件电路设计

水塔水位控制系统的单片机选用AT89C51芯片,在Proteus 平台下进行硬件仿真。硬件电路设计分为水位检测、水位显示、声光报警、电机控制、振荡电路和复位电路几个部分。
3.1 水位检测电路
本检测电路采用DIPSW-8组开关来做水位监测触发。水位检测部分是用单片机P1.0~P1.7 连接的8个按钮分别代表低水位,水位1、水位2、水位3、水位4、水位5 ,水位6,和满水位。水位检测电路如图1 所示
图2 水位检测电路
3.2 水位显示电路
采用一片LED数码管进行显示,由单片机P0.0~P0.7和P2.0口输出段码,进行水位显示数字0 ~7分别代表低水位、水位1、水位2、水位3、水位4,水位5和水满时的水位标志。水位显示电路如图2 所示

图3 水位显示电路
3.3电机控制电路
加水时,电机正常工作。为确保水塔内不能没有水,所以在设计当中,当到达水位0 的时候就开始供水,电机工作。
电机控制部分,采用了三极管放大来控制电机的工作,由单片机P3.0 口进行控制。电机控制电路如图4 所示。

图4 电机控制电路
3.4振荡电路和复位电路(见图6)
图 5  振荡电路和复位电路
3.5声光报警电路
本电路采用不同颜色的发光二极管来表示不同的水位情况。即红灯D1亮表示是低水位状态,蜂鸣器报警;黄灯D2发亮,水泵停止加水,蜂鸣器报警。原理图如下图4-4:
图6  声光报警电路

4 软件程序设计

4.1 系统主程序流程图
系统主程序的功能主要是完成对单片机的初始化,设置警戒液位的上下限,实时显示液位值以及按键扫描等工作。主程序流程图如图4-1所示。

图7  系统主程序流程图

4.2编写C程序

根据系统主程序流程图,在keil C51中编写相应程序,并检索、编译。查找编写程序中的错误,并改正,最终得到正确的程序。并生成HEX文件。在仿真调试时使用。编写的C程序见附录2.

五、元件清单

表1  元件清单
元件序号
型号
主要参数
元件序号
型号
主要参数
R1
金属膜,0.25w
10K
Q1
NPN
PN2222
C1
CAP
20pF
LS1
SPEAKER
1V
C2
CAP
20pF
D1
LED-RED
2V
C3
CAP-ELEC
10uF
D2
LED-YELLOW
2V
X1
CRYSTAL


M
MOTOR
12V
显示器
7SEG-MPX2


DSW1
DIPSW-8


六、硬件制作与调试

  根据系统结构图与原件清单,设计电路图,在proteus软件里绘制电路图,并进行仿真调试检测程序及电路图中的错误,最终得到正确的电路图。
调试成功后电路运行情况:单击仿真运行开始按钮,我们能清楚地观察到每一个引脚的电频变化,红色代表高电频,蓝色代表低电频。按下低水位按钮时,在LED 显示器上显示“0”, 低水位报警,低水位报警指示灯红灯亮,蜂鸣器响,电机工作给水塔加水;按下水位1 按钮时,,显示水位为“1 ”, 低水位报警指示灯红灯灭,电机工作给水塔加水;按下水位2 按钮时,显示水位为“2 ”;按下水位3 按钮时,显示水位为“3 ”;按下水位4 按钮时,显示水位为“4”,水塔控制工作正常运行;按下水位7 按钮时,显示水位为“7”,高水位报警,黄灯亮,蜂鸣器响,电机停止工作。总体电路图见附录一。

七、设计总结

该自动系统才用自带存储空间的8051单片机芯片,造型袖珍,线路简单,运行效率高。与外部的联系小,减少了外部干扰对系统的运行影响,具有很好的稳定性。在内部干扰中,由于所有运算都有单片机芯片内部自己完成,减少了数据传输损耗的可能性,对数据的运算传输可靠性高。
作为一名电器的大二学生,在即将就业之际,通过做这次课程设计是很有意义的。在做这次课程设计的过程中,为了让自己的设计更加完善,我感触最深的当属查阅大量的设计资料。
其次,在这次课程设计中,我们运用了以前学过的专业课知识,如:proteus仿真、C语言、模拟和数字电路知识等。虽然过去我从未独立应用过他们,但在学习的过程中带着问题去学我发现效率很高,这是我做这次课程设计的又一收获。
最后,要做好一个课程设计,就必须做到:在设计程序之前,对所用单片机的内部结构有一个系统的了解,知道该单片机有哪些资源;要有一个清晰的思路和一个完整的软件流程图;在设计程序时,不能妄想一次将整个程序设计好,反复修改、不断改进是程序设计的必经之路;要养成注释程序的好习惯,这样为资料的保留和交流提供了方便;在设计中遇到的问题要记录,以免下次遇到同样的问题。
在这次的课程设计中,我真正的意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,学习单片机更是如此,程序只有在经常写与读的过程中才能提高,这就是这次课程设计的最大收获。

八、参考文献

[1]陈海宴. 51单片机原理及其应用. 北京:北京航空航天大学出版社, 2010.3
[2]何希才. 传感器及其应用实例. 北京:机械工业出版社, 2004.9
[3]李广弟. 单片机基础. 北京:北京航空航天大学出版社, 2007.6
[4]周澜景. 基于proteus电路及单片机系统设计与仿真. 北京:北京航空航天大学出版
社 2006.5
[5]童诗白. 数字电子技术. 北京:高等教育出版社,2001.6





附录1 总体电路



  1. #include<reg51.h>
  2. #define uint unsigned int
  3. #define uchar unsigned char
  4. uchar code  shuzu[]=
  5. {0xc0,0xf9,0xa4,0xb0,
  6. 0x99,0x92,0x82,0xf8,0x80};
  7. uint n,m;
  8. //*******延时程序************
  9. void delay()
  10. {
  11.               uint i,j;
  12.               for(i=0;i<12;i++)
  13.               for(j=0;j<120;j++);
  14. }
  15. sbit k7=P1^7;
  16. sbit k6=P1^6;
  17. sbit k5=P1^5;
  18. sbit k4=P1^4;
  19. sbit k3=P1^3;
  20. sbit k2=P1^2;
  21. sbit k1=P1^1;
  22. sbit k0=P1^0;
  23. sbit dj=P3^0;
  24. sbit fmq=P3^1;
  25. sbit led1=P3^2;
  26. sbit led2=P3^3;
  27. //**********主程序***********
  28. void  main()
  29. {
  30. led1=0;
  31. led2=0;
  32. while(1)
  33.   {
  34.               if(k6==1)
  35.               dj=1;
  36.               if(k7==0)
  37.               n=0;
  38.               if(k6==0)
  39.               n=1;
  40.               if(k5==0)
  41.               n=2;
  42.               if(k4==0)
  43.               n=3;
  44.               if(k3==0)
  45.               n=4;
  46.               if(k2==0)
  47.               n=5;
  48.               if(k1==0)
  49.               n=6;
  50.               if(k0==0)
  51.               {
  52.               n=7;dj=0;
  53.               }
  54.               P0=shuzu[n];
  55.               if(k7==1)
  56.                             for(m=0;m<10;m++)
  57.                             {
  58.                               delay();
  59.                               fmq=~fmq;
  60.                               led1=~led1;
  61.                             }
  62. if(k0==0)
  63.                             for(m=0;m<10;m++)
  64.                             {
  65.                                delay();
  66.                                fmq=~fmq;
  67.                       led2=~led2;
  68.                        }
  69.   }
  70. }
复制代码

完整的Word格式文档51黑下载地址:

单片机课程设计--水位自动控制.doc (339.5 KB, 下载次数: 66)

回复

使用道具 举报

ID:544636 发表于 2019-5-23 15:51 | 显示全部楼层
有没有仿真和程序附件
回复

使用道具 举报

ID:648985 发表于 2019-11-29 01:57 来自手机 | 显示全部楼层
感谢感谢,还没试程序,但是可以照着给的电路自己会画。
回复

使用道具 举报

ID:777940 发表于 2020-6-13 10:29 | 显示全部楼层
弄完了,十分感谢
回复

使用道具 举报

ID:778292 发表于 2020-6-14 20:14 | 显示全部楼层
可以运行吗?
回复

使用道具 举报

ID:778097 发表于 2020-6-15 12:28 | 显示全部楼层
我想问下,你这个51单片机封装的时候还是用的常见的那种封装吗,封装和原理图脚位不对的话,PCB连线的时候咋感觉会复杂点。  总而言之,就是封装是画成和原理图一样了吗
回复

使用道具 举报

ID:778097 发表于 2020-6-16 08:20 | 显示全部楼层
。。123 发表于 2019-11-29 01:57
感谢感谢,还没试程序,但是可以照着给的电路自己会画。

他这个LED数码管怎么画
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表