水塔水位控制系统设计计算机课程设计文档格式.docx
《水塔水位控制系统设计计算机课程设计文档格式.docx》由会员分享,可在线阅读,更多相关《水塔水位控制系统设计计算机课程设计文档格式.docx(13页珍藏版)》请在冰豆网上搜索。
![水塔水位控制系统设计计算机课程设计文档格式.docx](https://file1.bdocx.com/fileroot1/2022-12/7/f44fb13c-3545-4704-8d70-dc5384e06d9e/f44fb13c-3545-4704-8d70-dc5384e06d9e1.gif)
课程设计属于练习性质,不强调设计结果直接用于生产。
有一些课题在实际控制中并不采用,但做为课程设计题目还是有一定意义的。
二、设计任务及要求
基本要求:
水位控制范围10cm至5cm
控制精度:
0.4cm
显示:
十进制数码
水塔模型:
三、方案设计
水塔水位自动控制电路是通过水位传感器将水位高度用直流电压表示,送入单片机进行处理来达到对水位进行自动控制的目的。
通过对电压和水位的转换关系,最终利用单片机进行精确的控制,实现对水位档位的显示、主/备电机和报警装置的控制。
水位自动控制器7个部分组成,即水位检测电路、水位显示电路、单片机、时钟电路、复位电路、电机控制、报警控制部分,其总框图如图1所示。
图1 总设计框图
四、系统硬件设计
水塔水位控制系统的单片机选用AT89C51芯片,在Proteus平台下进行硬件仿真。
硬件电路设计分为水位检测、水位显示、报警、电机控制、电机工作指示灯、振荡电路和复位电路几个部分。
4.1水位检测电路
水位检测部分是用单片机P2.2~P2.5连接的三个个按钮分别代表水位1、水位2、水位3、手动开关。
水位检测电路如图1所示。
图2水位检测电路
4.2水位显示电路
采用一片LED显示器进行显示,由单片机P0.0~P0.7口输出段码,进行水位显示数字1至3分别代表水位1、水位2、水位3时的水位标志。
水位显示电路如图2所示。
图3水位显示电路
4.3报警电路
结合水位检测部分,报警电路采用了单片机的P1.0和P1.1接口来实现水位的报警。
当水满或到达水位3时,即P1.1接通,则水满报警,红灯亮;
当到达水位2时,即P1.0接通,则水少报警,绿灯亮。
报警电路如图3所示。
图4报警电路
4.4电机控制电路
人工加水时,电机正常工作。
为确保水塔内不能没有水,所以在设计当中,当到达水位1的时候就开始供水,电机工作。
电机控制部分,采用了三极管放大和二极管正向导通的作用和继电器的吸合作用来控制电机的工作,由单片机P1.7口进行控制。
电机控制电路如图4所示。
图5电机控制电路
4.5时钟电路
时钟是单片机的心脏,单片机的各个功能部件的运行都是以时钟的频率为基准的,时钟频率直接影响单片机的运行速度,时钟电路的质量也直接影响单片机的系统的稳定性。
AT89C51单片机内部有一个用于构成振荡器的高增益反相放大器,该高增益反相放大器的输入端为芯片引脚XTAL1,输出端为引脚XTAL2,这两个引脚跨接石英晶体振荡器和微调电容,就构成了一个稳定的自激振荡器。
时钟电路有两种方式:
①内部时钟方式:
当使用片内振荡器时,XTAL1(19脚)连接外部石英晶体和微调电容,XTAL2(18脚)连接外部石英晶体和微调电容。
②外部时钟方式:
当采用外接时钟源时,XTAL1(19脚)接外部时钟振荡器的信号,XTAL2(18脚)悬空。
该电路采用的是内部时钟方式,该时钟电路如图5所示。
图6时钟电路
4.6复位电路
单片机在启动时都需要复位,以使CPU及系统各部件处于确定的初始状态,并从初态开始工作。
89系列单片机的复位信号是从RST引脚输入到芯片内的施密特触发器中的。
当系统处于正常工作状态时,且振荡器稳定后,如果RST引脚上有一个高电平并维持2个机器周期(24个振荡周期)以上,则CPU就可以响应并将系统复位。
如图6所示。
图7复位电路
4.7水塔水位控制系统整体电路
图9水塔水位控制系统整体电路
五、系统软件设计
采用Proteus和KeilC51仿软件对水塔水位控制系统进行仿真,可有效地模拟真实控制系统。
Proteus是组合了高级原理布图、混合模式SPICE仿真、PCB设计以及自动布线来实现一个完整的电子设计系统。
用户可以对基于微控制器的设计连同所有的周围电子器件一起仿真。
用户甚至可以实时采用诸如LED/LCD、键盘、RS232终端等动态外设模型来对设计进行交互仿真;
KeilC51uVision2集成开发环境是KeilSoftware,Inc/KeilElektronikGmbH开发的基于80C51内核的微处理器软件开发平台,内嵌多种符合当前工业标准的开发工具,可以完成从工程建立到管理、编译、链接、目标代码的生成、软件仿真、硬件仿真等,完整的开发流程是C编译工具在产生代码的准确性和效率方面到了较高水平,而且可以附加灵活的控制选项,在开发大型项目时非常理想。
以下为使用C语言的所编程序:
#include<
reg52.h>
intrins.h>
#defineucharunsignedchar
#defineuintunsignedint
#defineulongunsignedlong
//共阳极数码管段码
ucharcodeSEG7[]={/*0,1,2,3,4,5,6,7,8,9,*/
0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,};
//水位------------------
sbitk3=P2^2;
sbitk2=P2^3;
sbitk1=P2^4;
//手动
sbitkey1=P2^5;
sbitl1=P1^0;
sbitl2=P1^1;
ucharbz=0;
//延时函数ms
void_delay_ms(uintt)
{
uinti,j;
for(i=0;
i<
t;
i++)
for(j=0;
j<
120;
j++);
}
//正反转编码
ucharcodeFFZ1[]={0xf9,0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0xf1};
//
uintk;
//正反转标志
ucharin1;
//正反转数组加载变量
ucharsudu=5;
ucharsudux;
//步进电机驱动
voidmotor_ffw()
{
in1=(in1+1)%8;
if((k==1)){P3=FFZ1[in1];
//按键功能函数
voidkey()
//0
if((k2==1)&
&
(k2==1)&
(k3==1))
{
P0=0xbf;
l1=1;
l2=0;
if(key1==0)bz=3;
if(bz==3)k=1;
elsek=0;
//手动
}
//2
if((k2==0)&
(k1==1)&
(k3==0))
P0=SEG7[2];
l1=0;
l2=1;
if(key1==0)bz=2;
if(bz==2)k=1;
//1自动
(k1==0)&
P0=SEG7[1];
bz=1;
if(bz==1)k=1;
}
//3停止
if((k1==0)&
(k2==0)&
P0=SEG7[3];
bz=0;
if(bz==1)k=1;
voidmain()
_delay_ms(10);
//定时器0配置方式116
TMOD=0x01;
//使能定时器0
ET0=1;
//定时器的初值
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
//停止开启定时器0
TR0=1;
EA=1;
while
(1)
key();
//控制
}
//----T0计数
voidTime0()interrupt1
//重装初值10ms;
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;
sudux=sudux+1;
if(sudux>
=(10-sudu))
sudux=0;
motor_ffw();
六、系统仿真与结果分析
图10水位到达水位1时数码管显示状态图
图11水位到达水位2时数码管显示状态图
图12水位到达水位3时数码管显示状态图
图13报警时数码管显示状态图
结束语
在刚开始设计时,我对一些细节不加重视,当把自己想出来的程序运用到单片机中的时候,问题出现了,结果和要求的结果不相符合。
经过多次与同学交流,并改动程序才基本上实现了要求。
通过本次水塔水位控制系统控制程序设计,我进一步加深了单片机的基本编程方法,对单片机的工作原理和使用方法也有了更深刻的理解。
在对理论的运用中,提高了我的理论知识,工程应用能力、系统调试、分析问题与解决问题的能力。
在动手调试的过程中,增加了我们对这项技术的了解,使我们体会到了只有多查阅资料,多与人交流,才能解决问题。
我明白了对待科学研究要做到妥善处理,要多沟通,并要设身处地从不同角度换位思考,同时我也懂得理论是简单的,实践是复杂的,需要考虑各种环境因素和实际问题,只有理论服务于实践,才能创造出巨大的社会效益。
在本次课程设计中,培养了我们实际动手能力和解决问题的能力,这使我们更深层次的接触到了我们以后的工作方向,而且这次实习更接近于我们以后的工作内容,所以这些都为我们以后的学习和工作打下了坚实的基础。
参考文献
[1]夏路易.单片机技术基础教程与实践[M].北京:
电子工业出版社,2008
[2]朱清慧,张凤蕊,翟天嵩.Proteus教程-电子线路设计、制版和仿真[M].北京:
清华大学出版社,2007
[3]李移伦.单片机原理及应用[M].长沙:
中南大学出版社,2006
[4]蔡明文,冯先成.单片机课程设计[M].武汉:
华中科技大学出版社,2007
[5]庞前娟.基于AT89S51单片机的交通灯控制器的仿真及实现[J].咸宁学院学报,2010(12)
·
成绩评定·
指导教师评语:
金工实习成绩评定
班级0924121姓名童天驰学号092412136
综合成绩:
指导教师签字年月日