c51单片机水位控制系统设计
- 格式:doc
- 大小:213.36 KB
- 文档页数:13
毕业论文(设计) 题目:基于单片机的水位控制系统设计系部名称:专业班级:学生姓名:学号:指导教师:教师职称:20年月日摘要传统的水位控制在生产中一直占有主导地位,但随着生产线的更新,不仅要求有更直观、准确、稳定的水位控制系统,同时还要求在降低生产设备的成本方面要求更新自动化程度和性价比高的水位控制系统。
单片机控制系统以其控制精度高、性能稳定可靠、设置操作方便、造价低等特点被应用到水位系统的控制中。
本系统采用单片机AT89C51为控制核心来实现水位的基本控制功能。
系统由键盘、数码显示、A/D转换、传感器、电源和控制部分组成。
本文以单片机端口的输出电平控制继电器的动作,实现电机的启动或者停止,从而达到自动控制水位的目的。
另外,系统可根据需要设定水位控制的高度,同时具备超限报警和故障报警功能,并辅以发光二极管显示相应水位的状态。
关键字:AT89C51,A/D转换,水位控制,数码显示,传感器,故障报警Level control system based on microcomtrollerAbstractThe traditional water level control in production has been a dominant position,but with production line, not only the update demanding more direct, precise and stable water level control system, at the same time also requires the cost in reducing production equipment requirements update automation degree and cost-effective of water level control system. Single—chip microcomputer control system with its high control accuracy,reliable performance,convenient operation, low cost set to be applied to the liquid level system characteristics of the control.This system uses the microcontroller AT89C51 as the water level control core to realize the basic control functions。
摘要本温度设计采用现常见的89C51单片机,配以DS18B20数字温度传感器,该温度传感器可自行设置温度上下限。
单片机将检测到的温度信号与输入的温度上、下限进行比较,由此作出判断是否启动继电器以开启设备。
系统包括单片机模块、温度检测模块、水位检测模块和驱动电路设计四个部分。
文中对每个部分功能、实现过程作了详细介绍。
关键词: DS18B20数字温度传感器 89C51 水温水位目录一.概述 (3)1.1课题研究的目的及意义 (3)1.2技术指标 (3)二.总体设计方案 (3)三.详细设计方案 (3)1.1温度检测系统 (3)1.2水位检测系统 (5)四.元件说明 (6)1.1 工作原理 (6)1.2单片机的选择 (6)1.3温度传感器 (8)1.4水位传感器 (11)1.5 显示元件 (11)五.硬件模块设计 (12)1.1单片机模块设计 (12)1.2温度检测模块 (13)1.3水位检测模块 (14)1.4 控制模块 (15)1.5 驱动电路设计 (15)六.软件设计 (16)1.2 温度检测系统 (17)1.3 水位检测系统 (18)1.4 DS18B20主程序............................................... 错误!未定义书签。
七.结论 (18)八.参考文献 (18)附录 (18)单片机与显示器件连接图 (18)系统软件源代码 (18)一.概述1.1课题研究的目的及意义目前市场上太阳能热水器的控制系统大多存在功能单一、操作复杂、控制不方便登问题,很多控制器只具有温度和水位显示功能,不具有温度控制功能。
即使热水器具有辅助加热功能,也可能由于加热时间不能控制而产生过烧,从而浪费电能。
鉴于此,我以89C51单片机为检测控制核心,采用数码管显示温度,设计了一种太阳能热水器微控制器,实现了温度和水位参数的实时显示,具有温度设定、水位控制功能。
1.2技术指标设计并制作一个基于单片机的温度控制系统,能够对炉温进行控制。
***********************51液位控制程序******************************* ********带声光报警,锁存器控制LED显示器,通过控制脉冲数来*********** ****控制步进电机的步数来控制阀门的开度,通过采集的数据来决定脉冲数**** #include<reg51.h>unsigned char code table[]={0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6,0xee,}; //0-9七段共阴数码管编码表sbit START=P3^0;sbit EOC=P3^1;sbit OE=P3^2;sbit pwm=P3^3; //控制放气门开度sbit ONOFF=P3^4; //控制泄水门开或关sbit ALARM=P3^5; //报警喇叭sbit xiaodeng=P3^6; //报警光显示sbit LED1=P3^7;sbit LED2=P3^8; //两个锁存器的锁存使能端sbit zheng=P1^0; //控制步进电机正转的端子sbit fan=P1^1; //控制步进电机反转的端子unsigned int number=0; //开始时加水阀门开度为0unsigned int count1=0;unsigned int count2=0;unsigned int count3=0;unsigned int P;unsigned int diyici=1; //标志,刚开始加水是低于下限值不报警标志//////////C毫秒延时子程序//////////////////delay(uint c){uchar a,b;for( ;c>0;c--)for(b=500;b>0;b--)for(a=2;a>0;a--);}///////////////////定时器初始化///////////////void timer0(void){TMOD=0X01;TH0=FF;TL0=FF; //1us进一次中断TH1=15;TL1=A0; //0.06 ms进一次中断ET0=1; //T0开中断EA=1; //开总中断TR0=1; //启动定时器T0TR1=0; //初始关闭定时器T1}////// AD采集、数字处理//////void shuzi(uint k){ k=k*1.0/255*999; //假设压力是0-999Paif(k<设定值){Dk=设定值-k;zheng=1;//电机正转number=比例*Dk} //PWM0-100间变化if(k>设定值){Dk=k-设定值;fan=1;//电机反转number=比例*Dk;}bai=k/100;shi=k%100/10;ge=k%10;}////////数码管显示程序(锁存器控制,P2口输出)////// void xianshi(uchar bai,uchar shi,uchar ge){P2=0XFE;//选位LE2=1;//位码使能LE2=0;P2=table[ge];LE1=1;//段码使能LE1=0;delay(1);P2=0xfd;LE2=1;//位码使能LE2=0;P2=table[shi];LE1=1;//段码使能LE1=0;delay(1);P2=0XFb;//选位LE2=1;//位码使能LE2=0;P2=table[bai];LE1=1;//段码使能LE1=0;delay(1);}///////////AD转换及数据处理子程序///////////// Unsigned int fun1();{ START=1;START=0;OE=1; //转换结束输出使能P=P0; //AD转换结果赋给POE=0; //停止输出START=1; //启动下一次转换START=0;}//////////////主程序///////////////void main() //主程序{ timer0();START=0; //初始时不进行AD转换ALARM=0;xiaodeng=0; //初始时不报警OE=0;pwm=100; //全开状态加水ONOFF=0; //开始泄水门关闭,有利于空箱加水while(1) //死循环{fun1(); //调用一次转换子程序shuzi(P); //AD采集、数字处理xianshi(uchar bai,uchar shi,uchar ge); //显示if(P>上限值||P<下限值) //判断压力是否超限{if(P>上限值) //压力任超出上限则进行报警{ALARM=1;TR1=1;While(P>上限值){fun1(); //调用一次转换子程序shuzi(P); //AD采集、数字处理xianshi(uchar bai,uchar shi,uchar ge); //显示if(count3>=30)//如果报警超过30秒则关进水阀number=0;}}if(P<下限时) //压力任超出下限则进行报警{ if(diyici=1){ALARM=0;TR1=0;}else{ ALARM=1;TR1=1;while(P<下限值){fun1(); //调用一次转换子程序shuzi(P); //AD采集、数字处理xianshi(uchar bai,uchar shi,uchar ge); //显示}}diyici=0;}if(下限值<PP<176上限值) //压力正常后则不进行报警{ALARM=0;TR1=0;Count3=0;//清空计数值if(diyici=0)ONOFF=1;//当空箱加水高于下限值时泄水阀打开diyici=2;}}}void TO interrupt 1{ TH0=FF;TL0=FF;pwm=!pwm; //1us进一次,进一百次是0.0001s即是10khz if(++count1==number){TR0=0 //脉冲数达到后关定时器使其不输出脉冲count=0;}}void T1 interrupt 3 //0.06ms进一次{ count2++;TH1=15;TL1=A0;If(count2==1600) //约1s闪一次{xiaodeng= !xiaodeng;count2=0;count3++;}}。
基于单片机的水位控制系统设计.课程设计任务书题目水位控制器设计专业、班级学号姓名主要内容、基本要求、主要参考资料等:一、主要内容:①熟悉单片机应用系统的设计方法和规范,达到综合的目的。
②学习文件检索和查找数据手册的能力。
③学习protel软件的使用。
④学会整理和总结设计文档报告。
二、基本要求:①以MCS-51系列单片机为核心,组成一个水位自动控制系统。
②六区间式水位显示。
③全自动位式进水。
④满水、低水水位报警。
⑤水位传感器故障自检及报警提示。
⑥能延时恢复的报警消音。
三、主要参考资料:①张毅坤等单片微型计算机原理及应用西安西安电子科技大学出版社②李建忠编著单片机原理及应用西安西安电子科技大学出版社完成期限:指导教师签名:课程负责人签名:目录摘要 (I)1、概述 (1)1.1、系统原理 (1)1.2、系统结构图 (1)1.3、控制方案说明 (2)1.4、系统组成及原理 (2)2、硬件设计 (4)2.1、单片机最小系统电路设计 (4)2.2、水位检测传感器的选用 (5)2.3、稳压电路的设计 (6)2.4、光报警电路的设计 (7)2.5、水泵的介绍 (9)2.6、继电器控制水泵加水电路 (12)2.7、电源电路 (13)2.8、看门狗技术 (14)3、软件设计 (17)3.1、系统总原理图 (17)3.2、系统程序清单 (18)总结 (20)参考文献 (21)附录 (22)摘要设计一种基于单片机水塔水位检测控制系统。
该系统能实现水位检测、电机故障检测、处理和报警等功能,实现超高、低警戒水位报警,超高警戒水位处理。
调查的过程当中发现,目前大多数的住宅小区都是采用人工加水的办法,即当水用完的时候,就人工开启水泵进行加水,十分不便。
引起了老百姓的抱怨----水用完之前,不知道水已经很少,待用完后才知晓,如果是急需水的情况下,那就十分麻烦要等加水后才有水用;加水的过程当中,还需要人时刻检查水位情况,以防止水量超过最高水位线;所有这一切问题的存在,都在呼唤一种简单经济的水位控制系统的诞生。
基于AT89C51单片机的水位控制系统课程设计报告设计课程设计课程名称嵌入式系统课程设计学科名称(加粗,3号)专业课5月31日,XXXX项目权重分值具体要求分值文献阅读和调查论证0分。
XXXX年月日分工合作描述学科名称学生姓名学生编号工作完成DS18B20数字温度计设计最终总结调试。
所有团队成员将共同完成项目总结1 1简介3 2设计方法和原则4 (1)水塔水位控制原则4 (2)总体设计4 3硬件设计5 (1)硬件设计5 (2)主芯片AT89C51 5 (3)光学报警和显示电路6 (4)键盘连接电路6 (5)复位电路7 (6)晶体振荡器电路8 4软件设计9 (4)) 程序流程图及其分析9 5系统仿真和实际调试10 (1)组件列表10 (2)系统调试和仿真10 6共结13致谢13附录1源代码15word模型抽象水箱液位控制系统研究背景:在工农业生产中,经常需要控制液位。
随着国家工业的快速发展,水位控制技术已经广泛应用于石油、化工、医药、食品等行业。
低温液体(液氧、液氮、液态氩、液化天然气和液态二氧化碳等。
)被广泛使用。
作为储存低温液体的容器,它们必须能够承受载荷。
在电厂和钢厂,维持正常的锅炉汽包水位、除氧器水位、汽轮机凝汽器水位、高低压加热器水位等。
是设备安全运行的保证。
在教学和科研中,经常会遇到需要控制水位的实验装置。
水箱液位控制系统的研究意义:大型水箱是许多公司生产过程中必不可少的一部分。
其优异的性能和工作质量不仅对生产有很大的影响,而且影响安全生产。
过去,大量的水箱操作是由相应的人员进行的。
这种人工方法带来了很大的缺点,例如水位控制、水箱环境的持续监控、夜间监控等。
操作人员稍有疏忽,或者简单的监控设备损坏,都会给生产人员的人身安全带来不可挽回的损失和更严重的风险。
因此,要控制水箱,如果我们能使用精确的自动系统,严格按照生产规定操作,就能最大限度地避免事故的发生,节约资源,有效地提高生产效率。
从节约水资源的角度考虑,以往的人工控制在很多情况下造成了不必要的资源浪费。
(1)判断液位高度(2)用力控软件绘出工程平面图以及用keil编辑程序(3)设置相应的实时控制和报警(4)确定I/O端口功能#include<at89x51.h>#define uint unsigned intvoid delay(uint a);void display1(uint a);void key_control();void pour_liquid();void emit_liquid();// void alarm1();int alarm();void give_out();void control();uint ADC() ;sbit ALE=P2^0;sbit EOC=P2^1;sbit OE=P2^2;sbit clk=P2^3;//sbit p17=p1^7;sbit P14=P1^4;sbit P15=P1^5;sbit P16=P1^6;sbit P24=P2^4;sbit P25=P2^5;sbit P26=P2^6;sbit P27=P2^7;/*模数转换器工作的前提条件是(由于在本题中不需要地址锁存,所以ALE不管,eoc为数模转换完毕由低电平变成了高电平,oe为打开三态门数据接收,start为数模开始转换负跳变为开始工作)clk为数模转换器提供时钟*///显示uint TAB[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09} ;//提供时钟脉冲void timer0_int(void) interrupt 1 //时钟中断定时器/计数器0{clk=~clk; //计数器提供工作时钟}void timer1_int(void) interrupt 3 //报警定时器/计数器1 {uint recieve;recieve=ADC(); //接收转换后的数据TH1=0xB1;TL0=0XDF; //给定时器重新装初值//缓冲区半场鸣......}void main(){uint data1;TMOD=0X12; //使定时器0 工作在方式2 定时器1 工作方式2 TR0=1; //开计数器/定时器0TR1=1; //开计数器/定时器1IE=0X8A; //开中断,能响应计数器溢出中断TH0=240; TH1=0xB1;TL0=0; TL0=0XDF; //中断时间定时器0 :15us 定时器1 :20ms IP=0x02; //优先级的设置:定时器0的优先级高于定时器1的优先级while(1){data1=ADC();//模数转换display1(data1);alarm();control();}}//数模转换uint ADC() //返回数据为液体的高度{uint data1;ALE=0;ALE=1;ALE=0;//给start端开始信号即使数模转换器开始工作delay(100);while(EOC==0);OE=1; //接收转换后的数据data1=P0;OE=0;data1=(uint)50.0*data1/255.0;return data1;}//报警int alarm(){ uint a ;int recieve;a=ADC();if(a>35&&a<=40) //缓冲区{P24=0 ;// P25=1;recieve=1;}else if(a>40) //报警;液体过多;需放掉一部分{P24=0;P25=1;recieve=2;}else if(a<=35&&a>=15) //在合适区{P24=0;P25=0;recieve=3;}else if(a<15) //液体过少,需加液体{P24=1;P25=0;recieve=4;}return recieve;}//选通数码管void display1(uint a){ uint temp1,temp2,temp3,temp4;temp1=a/1000; temp2=a%1000/100;temp3=a%100/10;temp4=a%10;if(temp1){P1=TAB[temp1];delay(100);P1=TAB[temp2]|0x10;delay(100);P1=TAB[temp3]|0x20;delay(100);P1=TAB[temp4]|0x30;delay(100);}else if(temp1==0){P16=1;if(temp2){P1=TAB[temp2]|0x10; delay(100);P1=TAB[temp3]|0x20; delay(100);P1=TAB[temp4]|0x30; delay(100);}else if(temp2==0) {P16=1;if(temp3){P1=TAB[temp3]|0x20; delay(100);P1=TAB[temp4]|0x30; delay(100);}else if(temp3==0) {P16=1;P1=TAB[temp4]|0x30; delay(100);}}}}//延时程序段void delay(uint a) {uint i;for(i=a;i>0;i--);}//开关控制void key_control() {uint a;a=ADC();if(a>=15&&a<35) {P27=0;P3=0X63;P27=1;}else if(a>35&&a<40){P27=0;P3=0X63;P27=1;P25=1;P24=0;}else if(a<15||a>=40){P27=0;P3=(uint)a*5.5;}}//注如液体时void pour_liquid(){P27=0;P3=0X46; //开注入液体开关P27=1; //锁存地址,直到注入液体大于35米时//if(a>35);// P27=0; //如果在35米到40米之间断开注入液体开关那么不进行报警了//return 1;//else return 0;}//需要清洗容器时,将液体清放完全/*void emit_liquid(){alarm();P27=0;P3=0XBC;P27=1;} *///清放液体时,如果液体高度在35米到40米之间关闭清放液体开关那么也不进行报警了/*void give_out(){ uint a;a=ADC();alarm();P27=0;P3=0XBC; //开输出液体开关P27=1; //锁存地址,直到输出液体小雨40米时if(a>35&&a<40);// P27=0; //如果在35米到40米之间断开注入液体开关那么不进行报警了return 3;else return 2;} *///控制液体的流量void control(){ uint a;int recieve1;a=ADC();recieve1=alarm();if(recieve1!=1)P26=1;if(recieve1==1){ if(P26==0)//关闭两开关{ P26=0;P25=0;display1(a);// recieve1=alarm1();P27=0;P3=0X63;P27=1;}else if(P26==1){ display1(a);//alarm();key_control();P25=1;}}if(recieve1==2) //大于40米{key_control();// recieve1=alarm();display1(a);}if(recieve1==3) //合适区{key_control();//recieve1=alarm();display1(a);}if(recieve1==4) //小于15米*/while(a<35){a=ADC();//pour_liquid();display1(a);if(a<15)P24=1;elseP24=0;P27=0;P3=0X46; //开注入液体开关P27=1; //锁存地址,直到注入液体大于35米时//key_control();。
课程设计课程名称嵌入式系统课程设计题目名称(黑体,三号)专业班级2013级电子信息科学与技术(3)班学生姓名张磊、徐贤进、曹谦、王浩学号51202011026、5120201101251202011021、51202011033指导教师吕俊龙二○一五年五月三十一日蚌埠学院计算机科学与技术系本科课程设计成绩评定表项目权重分值具体要求得分文献阅读与调查论证0.20 100能独立查阅文献和从事其它调研活动;有收集、加工各种信息的能力设计质量0.30 100 设计合理、功能齐备,程序运行正常,实验数据准确可靠;有较强的实际动手能力论文撰写质量0.20 100设计说明书完全符合规范化要求,用A4复印纸打印成文学习态度0.20 100 学习态度认真,科学作风严谨,严格按要求开展各项工作,按期完成任务学术水平与创新0.10 100 设计有创意,有一定的学术水平或实用价值总分评语:存在问题:等级:指导教师:年月日蚌埠学院计算机科学与技术系课程设计任务书课程嵌入式系统课程设计班级2013电子信息科学与技术<3>班指导教师吕俊龙题目 DSB18B20数字温度计的设计完成时间2015年 5月28日至2015年6月21日主要内容功能要求:数字是温度计测温范围在-55~125℃,误差在±0.5℃以内,采用LED 数码管直接显示。
主控芯片:AT89C2051或ARM9传感器:DS18B20显示电路:4位LED数码管设计报告要求1.封面:(格式附后)2.课程设计任务书3.课程设计报告:⑴系统总体方案⑵设计思路和主要步骤⑶各功能模块和流程图⑷设计代码⑸心得体会和参考资料说明:学生完成课程设计后,提交课程设计报告及软件,要求文字通畅、字迹工整(也可用以打印),文字不少于5000 字,并装订成册。
上机时间安排星期周次一二三四五六日第14周-第17周12电子信息科学本1,1-2节12电子信息科学本1,7-8节12电子信息科学本1,1-2节12电子信息科学本1,5 -6节指导时间地点上机时间,多媒体技术实验室重行楼411版面要求1.题目用黑体三号,段后距18磅(或1行),居中对齐;2.标题用黑体四号,段前、段后距6磅(或0.3行);3.正文用小四号宋体,行距为固定值,22磅;4.标题按“一”、“㈠”、“1”、“⑴”顺序编号。
课程设计(论文)任务书引言 (6)1、几种方案的比较 (6)1.1 简单的机械式控制方式 (6)1.2 复杂控制器控制方案 (6)1.3通过水位变化上下限的控制方式 (6)2、水塔水位控制原理 (6)3、电路设计3.1 水位检测接口电路 (8)3.2报警接口电路 (8)4.1 流程图 (9)4.2程序 (10)5、结语 (11)引言水塔供水的主要问题是塔内水位应始终保持在一定范围,避免“空塔”、“溢塔”现象发生。
目前,控制水塔水位方法较多,其中较为常用的是由单片机控制实现自动运行,使水塔内水位保持恒定,以保证连续正常地供水。
实际供水过程中要确保水位在允许的范围内浮动,应采用电压控制水位。
首先通过实时检测电压,测量水位变化,从而控制电动机,保证水位正常。
因此,这里给出以Atmel公司的AT89C5l 单片机为核心器件的水塔水位检测控制系统仿真设计,实现水位的检测控制、电机故障检测、处理和报警等功能,并在Proteus软件环境下实际仿真。
实验结果表明,该系统具有良好的检测控制功能,可移植性和扩展性强。
1设计方案比较说明系对于水位进行控制的设计方式有很多,而应用较多的主要有3种,三种方式的实现如下:1.1简单的机械式控制方式。
其常用形式有浮标式、电极式等,这种控制形式的优点是结构简单,成本低廉。
存在问题是精度不高,不能进行数值显示,另外很容易引起误动作,且只能单独控制,与计算机进行通信较难实现。
1.2复杂控制器控制方式。
这种控制方式是通过安装在水泵出口管道上的压力传感器,把出口压力变成标准工业电信号的模拟信号,经过前置放大、多路切换、A/D变换成数字信号传送到单片机,经单片机运算和给定参量的比较,进行PID运算,得出调节参量;经由D/A变换给调压/变频调速装置输入给定端,控制其输出电压变化,来调节电机转速,以达到控制水塔水位的目的。
1.3通过水位变化上下限的控制方式。
这种控制方式通过在水塔的不同高度固定不动的3根金属棒ABC,以感知水位的变化情况。
摘要:随着时代的发展,数字电子技术已经普及到我们生活,工作,科研,各个领域,本文将介绍一种数控直流稳压电源,它具有过载保护、成本低、抗干扰能力好,使用寿命长,性能稳定,操作方便等优点。
本电源由模拟电源、显示电路、单片机控制电路、数模转换电路、放大电路四部分组成.准确说就是模拟电源提供各个芯片电源、LCD、放大器所需电压;显示电路用于显示电源输出电压的大小。
同时分析了数字技术和模拟技术相互转换的概念。
与传统的稳压电源相比具有操作方便,电源稳定性高以及其输出电压大小采用LCD显示的特点。
关键词:单片机AT89C52,数模转换AD7543,运算放大器OP-07Abstract: Advantage.Along with the development in ages, the numerical electronics technique has already make widely available our life, work, research, each realm, this text will introduce a kind of number to control direct current steady press power supply, this text will introduce a number to control power supply, it once had to carry protection, the cost be low, anti- interference ability good, credibility good, service life long, function stability, operation convenience etc. This power supply from imitate power supply, show electric circuit, control electric circuit, few molds conversion electric circuit and enlarge electric circuit four-part cent constitute.Accurate say be imitate power supply to provide the electric voltage that each chip power supply, the figures tube, enlarger need;Show the electric circuit useds for the size which shows that the power supply outputs electric voltage. With traditional steady press power supply to compare to have an operation convenience, Gao and its exportation adoption figures of the electric voltage size of the power supply stability show of characteristics.Keyword:Single slice the machine AT89 C52, the few molds conversion AD7543, operate the enlarger OP-07附录前言 (4)一、硬件部分 (7)(一)供电电源设计 (7)1、方案选择 (7)2 、稳压电路结构组成 (7)3 、电源设计 (8)(二)数控部分 (10)(三)信号处理电路 (10)1 、AD7543与单片机串行通讯接口的连接 (11)2 、AD7543与单片机普通I/O的连接 (12)(四)键盘与显示部分 (12)1 、显示部分 (12)2 、键盘部分 (13)(五)输出电路 (14)(六)电路扩展 (15)1 、功率调整电路 (15)2、过载或短路保护电路 (15)3 、声光报警电路 (16)4 、波形电路 (16)(七)原理图 (16)(八)元件清单 (18)元件清单在附录 (18)(九) PCB电路板制作 (18)(十)硬件实物图 (18)二、软件部分 (20)(一)中断服务子程序 (22)(二) LCD显示子程序 (22)(三)顺序转换输出子程序 (23)(四)键盘子程序 (24)三系统测试及结果分析 (25)(一)系统功能测试 (25)(二)系统指标测试 (27)(三)系统误差分析 (29)总结与自我评价 (30)致谢 (31)参考文献 (32)附录 (33)前言电源技术尤其是数控电源技术是一门实践性很强的工程技术,服务于各行各业。
摘要本单片机系统设计的目的是应用单片机控制技术,以AT89C51单片机为核心控制的水箱的水位,并实现了手动废水排放和手动进水、自动切换功能。
该系统操作方便、性能良好,比较符合电厂生产用水系统控制的需要。
本文还详细的给出了相关的硬件框图和软件流程图,并编制了该C语言程序。
关键词:单片机水位控制目录一.目的意义 (3)二.系统分析设计 (3)1.系统总体设计 (3)2.相关器件 (3)3.相关电路 (4)4.总体电路 (9)5.部分电路仿真 (9)三.软件设计 (12)(一)程序流程图 (12)(二)源程序 (15)四.调试仿真 (17)五.课程设计心得体会 (19)六.期望成绩 (19)一.目的意义800立方米由两台给水泵机组、水箱和三只浮球开关组成,其系统结构如图:其中M1、M2为给水泵机组,LG、LD、分别为水位高、水位低、浮球开关,当水位低低(小于50开度)时LDD闭合,当水位低(小于75开度)时LD闭合,当水位高(大于90开度)时LG闭合。
二.系统分析设计1.系统总体设计本系统分两部分控制水位的高低,手动不分用于排出废水和需要时快速降低水位,此时两个电动机一起将水抽出。
自动部分当水位低于50%时,开关K3开启两个电动机一起工作加水,当水达到70%时K4一个电动机加水时水位稳定升高,当水过90%接近100%时K5开启水位稳定降低。
水位高低以及开关的控制通过传感器开端开关。
由于传感器模块不能模拟所以本系统仿真时用模拟水箱代替。
本系统用模拟水箱模拟。
经过调试系统,测得以下数据:水位从50%--70%,两台泵运行需要约10分钟;水位从70%--90%,一台泵运行需要约15分钟。
水箱的水位一般保持在70%--90%。
2.相关器件单片机AT89C51电动机MOTOR差动放大器(TIP32,BC182)LED灯开关模拟水箱3.相关电路差分放大器也叫差动放大器是一种将两个输入端电压的差以一固定增益放大的电子放大器,有时简称为“差放”。
单片机水位控制设计目录1概述 (2)2设计的基本任务和要求 (3)2.1 基本功能 (3)2.2塔水位控制原理 (3)2.3 系统硬件总体方案 (4)3控制系统方案设计 (4)3.1系统硬件方案 (4)3.2 核心芯片AT89C51单片机 (5)3.3系统软件总体方案 (5)4.Proteus设计与仿真 (7)4.1元器件清单 (7)4.2基于单片机水位控制原理图5 (7)4.3基于单片机的水位控制PCB图6 (8)4.4水位检测的主程序 (8)4.5 实验仿真结果 (11)4.6 结语 (11)5 设计体会 (12)参考文献 (12)1概述液位控制系统是以液位为被控参数的控制系统,它在工业生产的各个领域都有广泛的应用。
在工业生产过程中,有很多地方需要对容器内的介质进行液位控制,使之高精度地保持在给定的数值,如在建材行业中,玻璃窑炉液位的稳定对窑炉的使用寿命和产品的质量起着至关重要的作用。
液位控制一般指对某一液位进行控制调节,使其达到所要求的控制精度。
液体的液位的自动控制,是近年来新开发的一项新技术,它是微型计算机软件、硬件、自动控制等几项技术紧密结合的产物,工程作业采用的是微机控制和原有的仪表控制,微机控制有以下明显优势:1)直观而集中的显示各运行参数,能显示液位状态。
2)在运行中可以随时方便的修改各种各样的运行参数的控制值,并修改系统的控制参数,可以方便的改变液位的上限、下限。
3) 具有水体控制过程的自动化处理以及监控软件良好的人机界面,操作人员在监控计算机上能根据控制效果及时修运行参数,这样能有效地减少工人的疲劳和失误,提高生产过程的实时性、安全性综合以上的种种优点可以预见采用计算机控制系统是行业的大势所趋。
单片机是在一块芯片上集成了一片微型计算机所需的CPU、存储器、输入、输出等部件。
单片机自问世以来,性能不断提高和完善,体积小、速度快、功耗低的特点使它的应用领域日益广泛。
一般,工业控制系统的工作环境差,干扰强,利用单片机控制就能克服这些缺点,因此单片机在控制领域得到广泛的应用,使用单片机控制液体液位是很好的选择。
目前我国在单片机测控装置研究、生产、应用中,取得了很大的成绩,总结了很多经验,但是各行业仍处于发展期,经调查,更多科研究所在这方面开展的工作更看重的是理论和算法,数年来这方面的研究的论文较多,着重生产实际的很少。
在上海,新型的单片机测控装置与系统研究的生产基础较雄厚,在生产过程中需要新型的测控装置与系统,因此在不断的努力研究与开发。
上海的工程技术研究人员更着重的是生产实际研究,对理论、算法和成果的论文较少;深圳在研制新型的测控装置与系统领域也比较有成就,尽管与其他国家比较尚有差距,但是,深圳的高校、研究院所的最大的特点就是实际,与生产实际应用项目无关的问题基本不去考虑,主要考虑选取什么材料,测控什么物理量,优点是什么,与机器设备的通讯接口等等。
2设计的基本任务和要求2.1 基本功能本设计是采用AT89C51单片机为核心芯片,及其相关硬件来实现的水体液位控制系统,在用液位传感器测液位的同时, CPU循环检测传感器输出状态,并用3位七段LED显示示液位高度,检测液位数据,实施报警安全提示,当水体液位低于用户设定的值时,系统自动打开泵上水,当水位到达设定值时,系统自动关闭水泵或打开排水泵。
2.2塔水位控制原理单片机水塔水位控制原理如图l所示,图中的虚线表示允许水位变化的上、下限位置。
在正常情况下.水位应控制在虚线范围之内。
为此,在水塔内的不同高度处,安装固定不变的3根金属棒A、B、C。
用以反映水位变化的情况。
其中,A棒在下限水位.B棒在上、下限水位之间,C棒在上限水位(底端靠近水池底部.不能过低,要保证有足够大的流水量)。
水塔由电机带动水泵供水。
单片机控制电机转动,随着供水,水位不断上升.当水位上升到上限水位时,由于水的导电作用。
使B、C棒均与+5 V连通。
因此b、C两端的电压都为+5 V即为。
l”状态,此时应停止电机和水泵工作,不再向水塔注水;当水位处于上、下限之间时。
B棒和A棒导通.而C棒不能与A棒导通,b端为“r状态。
C端为“O”状态。
此时电机带动水泵给水塔注水,使水位上升,还是电机不工作,水位不断下降,都应继续维持原有工作状态;当水位处于下限位置以下时,B、C棒均不能与A棒导通,b、c均为“0”状态。
此时应启动电机转动,带动水泵给水塔注水。
2.3 系统硬件总体方案系统的原理是采用8个按钮进行水位检测,在现场的3个不同的位置,由下至上测量水体的液位值,。
并把这四个液位状态通过模数转换器传到单片机中,在通过3位七段LED显示器显示出液位的三种状态及报警安全提示。
用LED显示是因为它具有显示清晰、亮度高、使用电压低、光电转换效能高、寿命长等特点,根据当前的液位值和用户设定的水位决定是否进行开、关水泵,需要是否开启和关闭驱动阀门的电动机。
3控制系统方案设计3.1系统硬件方案系统方案设计液位控制是利用把液位的状态转换成模拟信号,再通过模数转换器AT89C51把输出状态直接接到单片机的I/O接口,单片机经过运算控制,输出数字信号,输出接口接LED进行显示,实现液位的报警和键盘的显示与控制;图2即是液位控制系统:图2液位控制系统由上图可观察到传感器通过对液面进行测量,输出模拟信号,再通过模数转换器把输入的模拟信号转换成数字信号,通过AT89C51单片机的运算控制,在通过LED进行显示,通过报警装置进行报警,报警显示之后再通过对阀门的开启实现对水体的液位进行调节控制,阀门的驱动设备是电动机。
3.2 核心芯片AT89C51单片机AT89C51是一种带4K字节FLASH存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。
AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除1000次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。
AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
外形及引脚排列如图3所以。
图3 AT89C5引脚图3.3系统软件总体方案水位检测是通过8个按钮进行水位检测的,当水位到检测位置其输出端口就向单片机输出低电平。
由上至下的第一个位置为水位上限报警线,即当水位高于此位置时,开水阀控制系统就会自动报警,提醒工作人员注意,加水电磁阀有可能出故障;第二个位置是自动停止加水线,即当水位高于此位置时,控制系统会自动关闭加水电磁阀,停止加水;第三个位置是自动加水线,即当水位低于此位置时,控制系统会自动接通加水电磁阀,开始加水;第四个位置是水位下限报警线,即当水位低于此位置时,控制系统就会自动报警,提醒工作人员注意,加水电磁阀可能出故障如图4。
图4 水位控制流程图4.Proteus设计与仿真4.1元器件清单7SEG-COM-CAT-GRN LED数码管AT89C1 单片机BUTTON 按钮CAP 电容CAP-ELEC 陶瓷电容CRYSTAL 12兆晶振LED-RED 发光二极管MOTOR-DC 电机RES 电阻RESPACK-8 排阻4.2基于单片机水位控制原理图5图5水位控制原理图4.3基于单片机的水位控制PCB图6图6水位控制PCB图4.4水位检测的主程序本控制系统采用的是控制,由于模糊控制量的求取是采用查表法,因此软件程序较简单,整个软件部分较多,现取最重要的水位检测主程序。
#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit MOR=P2^7;sbit MOT=P2^6;sbit LED=P2^0;code uchar tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};void delay (uint n) {while(n--);}void LED_SHOW() {if(P1==0xfe){P0=tab[8];LED=0;MOR=0;MOT=1;}if(P1==0xfd){P0=tab[7];LED=0;MOR=0;MOT=1;}if(P1==0xfb){P0=tab[6];LED=1;MOR=1;MOT=1;}if(P1==0xf7){P0=tab[5];LED=1; MOR=1; MOT=1;}if(P1==0xfd) {P0=tab[4]; LED=1; MOR=1; MOT=1;}if(P1==0xef) {LED=1; MOR=1; MOT=1;}if(P1==0xdf) {P0=tab[2]; LED=0; MOR=1; MOT=0;}if(P1==0xbf) {P0=tab[1]; LED=0; MOR=1; MOT=0;}if(P1==0x7f){P0=tab[0];LED=0;MOR=1;MOT=0;}}void main(){while(1){LED_SHOW();}}4.5 实验仿真结果根据所设计系统的软件流程图,编写相应的程序在Pro-teus软件环境下实际仿真,实验结果表明,该系统能成功实现了水位检测、电机故障检测、处理和报警等功能,具有良好的检测控制功能,可移植性和扩展性强。
通过制作PCB板子,该系统已成功运用于某实验水冷却系统。
4.6 结语该系统设计是基于在单片机嵌入式系统而设计的,充分利用单片机强大控制功能和方便通信接口,该检测控制系统在实验室某实验水冷却系统得到成功实践,实现水位检测、电机故障检测、处理和报警等功能,提高了实验的自动控制能力。
进一步优化系统软硬件设计,可为实时实现远端控制,因此,该系统在农村水塔,城市水源检测控制等领域有着广阔的应用前景。
5 设计体会设计过程中我遇到了很多的困难,因为知识是不连贯的,所以需要准备很多方面的知识去融合,去联系。
由于在学习的时候更注重的是书面上的东西,而本次课程设计更多的是锻炼了我的动手动脑能力,让我有机会把课上学习的知识转化为可以在实际生产生活中应用的技术。
本次课程设计的系统主要介绍了水体的液位检测控制,介绍了AT89C51单片机和其它一些单片机在液位控制系统中的应用,介绍了它们的引脚和在系统中的电路图,利用LED来进行信号的输出显示,我设计的硬件系统的结构简化,系统精度高,具有良好的人机交互功能,并设有液位报警,有问题立即就能发现。