《智能流量控制器设计与制作23.docx》由会员分享,可在线阅读,更多相关《智能流量控制器设计与制作23.docx(23页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、本科生课程设计(论文)摘 要本次课设设计了一款智能流量控制器,本产品主要是用AT89S51进行控制。流量传感器采用涡轮式传感器,其输出的脉冲信号经过滤波整形电路后进入单片机,再送入LED显示,通过两个独立按键分别控制瞬时流量显示和总流量显示。电磁阀的开度是通过PWM电路控制,用两个独立按键控制电磁阀的开关档位。关键词:单片机;智能流量;显示目 录第1章 绪论1第2章 课程设计的方案22.1 设计任务及要求22.2 系统的方案论证22.2.1 单片机芯片型号选择22.2.2 显示模块选择32.2.3 传感器的选择32.3 系统总框图32.4 按键示意图4第3章 硬件设计53.1 单片机的时钟电路
2、53.2单片机的复位电路53.3 LED显示系统电路63.4流量传感器的选择73.5 滤波整形电路73.6 PWM 驱动电路83.7 电磁阀的选型83.8系统原理图9第4章 软件设计104.1 系统总流程图104.2 系统程序114.3端口分配说明11第5章 课程设计总结12参考文献13附录14第1章 绪论城镇供水流量控制系统是极其重要系统, 确保其安全可靠地运行和正确有效地管理具有重大意义。在保证供水水质和水量安全可靠的前提下, 准确的检测供水流量和控制自来水流量的大小尤其重要。为了检测自来水流量系统的社会效益和经济效益,采用现代化的技术手段、先进的控制理论来提检测技术, 运用计算机技术对城
3、市用户供水流量检测系统进行管理、监控和优化调度势在必行。我国家用自来水流量自动化控制系统的发展过程可分为三个阶段:第一阶段是分散控制阶段,该时期自来水流量各部分分别进行自动控制,各独立系统互不相关;第二阶段是自来水流量综合自动化阶段,在该时期整个自来水流量控制作为一个综合自动化控制系统进行生产,同时各个独立子系统又可以独立工作,该系统共享整个水厂的信息,同时又有分散控制的可靠性。现阶段大部分流量控制处于此阶段;第三阶段是供水系统的综合自动化阶段,该阶段要求在一个区域的供水企业共享信息,实现整个城市或地区供水系统的自动控制。目前我国的中小型水厂大部分处于第一或第二阶段,只有很少大型水厂达到了第三
4、阶段。在国外,如加拿大、美国等发达国家基本实现了供水系统的全自动化,而且开始进行分质供水,同时对水厂内部的自控系统也在不断地进行改进和提高。第2章 课程设计的方案2.1 设计任务及要求通过流量传感器和单片机实现家用自来水流量的自动计量、显示和阀门的自动控制。按下显示按键,可显示用户的瞬时流量和天、周、月、年的累积流量,显示10秒后,自动消隐。按下流量控制键,用户通过输入流量等级(共分为10级,等级越高,阀门开度越大),控制自来水的流量。技术参数:1. 管道通径: DN1050 流速范围:0.115m/s 2. 流量检测误差1%3. 瞬时流量显示:4位有效数字,最大 累积流量显示:8位有效数字4
5、. 阀门:电磁阀,输入信号DC 420mA 2.2 系统的方案论证2.2.1 单片机芯片型号选择在多数电子设计当中,基于性价比的考虑,8位单片机仍是首选。目前,8位单片机在国内外仍占有重要地位。在8位单片机中又以MCS51系列单片机及其兼容机所占的份额最大。MCS51的硬件结构决定了其指令系统不会发生变化,设计人员可以很容易的对不同公司的单片机产品进行选型,他们只需将重点放在芯片内部资源的比较上。在以前的电子设计中,应用比较广泛的单片机是AT89C51单片机了,但是该单片机最致命的缺陷在于不支持ISP功能。Atmel公司目前已经停止了AT89C51生产,51单片机必须加上ISP功能才能更好延续
6、MCS-51 的传奇,AT89S51就是在这样的背景下诞生的,目前AT89S51已经成为了实际应用市场上的新宠儿。89S51在工艺上进行了改进,它采用0.35 mm新工艺,不但降低成本了,而且增加了功能,提升了单片机性能,提高了市场竞争力。AT89S51新增了许多功能,性能也有了较大的提升,但是价格仍旧与AT89C51的价格一致。新增的功能之中最具有影响力的就是ISP在线编程功能,这个功能的优势在于,改写单片机Flash存储器内的程序不需要把芯片从工作环境中剥离。是一个强大易用的功能。显然,AT89S51在性能上比AT89C51要优良得多,因为它不但在AT89C51的基础上增加了许多功能,而且
7、价格基本没有提高,所以在器件选择的时候首先排除AT89C51,对于市场上的另外一种比较流行的单片机C8051F,尽管它在性能、功能上都要比AT89S51优良很多,但是它的价格是S51的数倍,本系统使用S51已经完全能够实现所需要的功能,基于成本的考虑,放弃C8051F,选择AT89S51作为本系统的主控单元。2.2.2 显示模块选择本设计要求显示8位数字,可由以下方案完成。方案一: 采用LCD液晶显示屏,液晶显示屏的显示功能强大,可显示大量文字,图形,显示多样,清晰可见,但是价格昂贵,需要的接口线多,所以在此设计中不采用LCD液晶显示屏.方案二: 采用点阵式数码管显示,点阵式数码管是由八行八列
8、的发光二极管组成,对于显示文字比较适合,如采用在显示数字显得太浪费,且价格也相对较高,所以也不用此种作为显示.方案三:采用LED数码管动态扫描,LED数码管价格适中,对于显示数字最合适,而且采用动态扫描法与单片机连接时,占用的单片机口线少。所以采用了8位LED数码管作为显示。 2.2.3 传感器的选择本次课设选择的流量传感器是涡轮传感器,涡轮流量传感器是精密流量测量工具之一, 基本误差小, 量程比宽, 动态特性好, 时间常数小, 可测量脉动流量, 耐高压及压力损失小, 使用温度范围宽,可输出数字信号, 便于与微机或数字电路接口, 有较强的抗干扰能力,广泛应用于测量液体瞬时流量或总量。由于其他流
9、量传感器输出信号大多为电信号,还需经滤波放大进入AD转换,花费高,精度差,所以选择涡轮传感器来进行本次课设的流量检测。2.3 系统总框图该系统从涡轮传感器检测水的流量,其输出脉冲信号经过滤波整形电路进入单片机进行换算并累计。转换后的信号送入LED数码管上显示流量值。并通过控制PWM电路来控制电磁阀门的开度档位变换。用四个独立按键来控制瞬时流量、总流量、阀门开大和阀门开小四个功能。系统总框图如图3.1所示涡轮传感器滤波与整形电路AT89s518位数码显示电路PWM电路电磁阀按键图2.1 系统总框图2.4 按键示意图图2.2 按键示意图第3章 硬件设计3.1 单片机的时钟电路AT89S51单片机内
10、部的振荡电路是一个高增益反向放大器,引线XTAL1和XTAL2分别是放大器的输入端和输出端。单片机内部虽然有振荡电路,但要形成时钟,外部还需附加电路。AT89S51的时钟产生方式有两种:图3.1 片内振荡电路的时钟电路内部时钟电方式和外部时钟方式。由于外部时钟方式用于多片单片机组成的系统中,所以此处选用内部时钟方式。即利用其内部的振荡电路在XTAL1和XTAL2引线上外接定时元件,内部振荡电路产生自激振荡。最常用的是在 XTAL1和XTAL2之间接晶体振荡器与电路构成稳定的自激振荡器,如图3.电路所示为单片机最常用的时钟振荡电路的接法,其中晶振可选用振荡频率为12MHz的石英晶体,两个电容器一
11、般选择30PF左右。3.2单片机的复位电路图3.2 AT89C51的复位电路本设计中AT89S51是采用上电自动复位和按键复位两种方式。最简单的复位电路如图3.2所示。上电瞬间,RC电路充电,RST引线端出现正脉冲,只要RST端保持10ms以上的高电平,就能使单片机有效地复位。其中R1和R2分别选择200和1K的电阻,电容器一般选择22F。3.3 LED显示系统电路由于系统要显示的内容比较简单,显示量不多,所以选用数码管既方便又经济。一位显示器由8个发光二极管组成,其中7个发光二极管构成字型“8”的各个笔划(段)ag,另一个小数点为dp发光二极管。当在某段发光二极管施加一定的正向电压时,该段笔
12、划即亮;不加电压则暗。为了保护各段LED不被损坏,需外加限流电阻。各发光二极管是否点亮取决于a-dp各引脚上是否是高电平。图3.3 8位数码显示驱动LED的是74HC573锁存器,U1用来控制位选信号,U2用来控制段选信号。通过控制两个芯片的片选为来实现数码管的动态扫描显示方式。3.4流量传感器的选择LWGY系列涡轮流量传感器基于力矩平衡原理,属于速度式流量仪表。传感器为硬质合金轴承止推式,不仅精度高,复现性好、反应灵敏、耐磨性能高,而且具有结构简单、牢固以及安装维护使用方便等特点。广泛用于供水、造纸等行业,是流量计量和节能的理想仪表。在测量范围内,传感器输出的脉冲频率信号与流体的体积流量成正
13、比,这个比值即为仪表系数用K表示: K=f/Q式中:f脉冲频率 Q体积流量(m3/h或Lh) 每台传感器的仪表系数由制造厂填写在检定证书中,k值设入配套的显示仪表中,便可显示出瞬时流量和累积总量。主要技术参数:1 基本参数:见表3.12 介质温度:20120 3 环境温度:2050 4 传输距离:传感器至显示仪表的距离可达500m 5 防爆等级:ExibBT4 7 供电电源:直流:12V; 24V 6 精确度:0.5;1表3.1 基本参数产品型号公称通径(mm)流量范围(m3/h)最大工作压力(MPa)仪表系数K(1/L)(参考值)LWGY25251106.3210.03.5 滤波整形电路涡轮
14、流量仪的关键在于频率量的获取,频率信号电容C1滤波,再通过电阻R1引入电压比较器。电压比较器LM258的主要特点是,输入阻抗高输出阻抗低,其输出信号经74LS14整形送入单片机T0端口。电路原理图如图3.4所示.图3.4 滤波整形电路3.6 PWM 驱动电路图3.5 为H形双极式PWM驱动电路。它由四个大功率晶体管和四个续流二极管组成。从单片机中输出恒定占空比的脉冲来控制电动机匀速的正反转,从而控制电磁阀的开度增大或减小。图3.5 PWM驱动电路3.7 电磁阀的选型电磁阀我选择余姚市永创二位二通直动式电磁阀(编号:YCSM32)产品特性 : 直动式结构;开闭可靠,速度快;长寿命。使用介质 :
15、空气、水、蒸汽、热水、真空及其它气体等。工作压力 : 0.0 1.20MPa阀体材料 : 黄铜或不锈钢sus304(可提供sus316材质)连接尺寸 : 1/8、1/4、3/8G螺纹、NPT螺纹通径(mm): DN 16、25、30、25、30、35、40选用电压 : DC: 12V, 24V AC: 220V 110V 24V 50HZ线圈类型: S21B/H, 22VA(AC), 15W(DC), IP65,100%ED3.8 系统原理图系统原理图如图3.6所示 图3.6 系统原理图第4章 软件设计4.1 系统总流程图图4.1为系统总流程图涡轮传感器检测流量,输出脉冲滤波整形电路单片机执行
16、流量瞬时值与总值统计,并存入内存单元。8位LED数码显示PWM电路控制阀门开度显示按键是否按下控制阀门开度按键是否按下等待按键控制是是否否开始图4.1 系统总流程图4.2 系统程序由Q=f/K得到流量值,则瞬时流量QL0等于INT0口检测到的脉冲频率除以210。每段时间的总流QL1量等于瞬时流量相加。系统分为两部分显示,当按键1按下时显示的是瞬时流量值,4位有效数字,保留1位小数。当按键2按下时显示的总流量值,8位有效数字,保留2位小数。由单片机的P2.5口输出一频率恒定的脉冲,则所控制的电动机转速(正传或反转)一定,通过测试,当电动机在此频率下转10s时,电磁阀由全关到全开。所以根据课设要求
17、将阀门开度分为10档,电动机每转1s电磁阀开度相对变化一档。按键3按下时是使阀门开大一档,按键4按下时是使阀门关小一档。4.3 端口分配说明表4.1 端口分配说明单片机端口名称作用说明P1.0口瞬时流量显示按键P1.1口总流量显示按键P1.2口电磁阀开大按键P1.3口电磁阀开小按键P0口数码管显示P2.6口数码管段选信号P2.7口数码管位选信号P2.5口PWM输入信号P3.4口流量脉冲输入端口第5章 课程设计总结本次课设设计了一种基于单片机控制的低成本,高可靠性流量统计式智能流量控制器,通过使用涡轮流量传感器,将用户实际用水量转化为电脉冲,送入单片机,再送入显示单元,实现可观察,并通过单片机控
18、制电磁阀的开度来调节流量的大小。从而实现智能流量控制。该系统集成度高、可靠性强、功耗低、结构简单,可较长期工作而需检验,但安装复杂,计算繁琐。随着测量对象的日益增多,对流量的测量和控制也提出了更多更具体的要求,许多流量测量的疑难问题需要解决。参考文献1 刘勇.数字电路.北京:电子工业出版. M 20042 陈正振.电子电路设计与制作.广西交通职业技术学院信息工程系. M 20073 杨子文.单片机原理及应用.西安电子科技大学出版社. M 20064 王法能.单片机原理及应用.科学出版. M 20045 何立民.单片机高级教程.北京:北京航空航天大学出版社. M 20006 张齐,杜群贵.单片机
19、应用系统设计技术.北京:电子工业出版社.M 2004附录总程序如下所示:#include#include#define uchar unsigned char#define uint unsigned intuchar code table1=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;uchar count1,count2,count3,flag,aa,bb,cc,dd,ee,ff,gg,hh,aa1,bb1,cc1,dd1;float QL0,QL1;sbit zkb=P25;sbit duan=P26;sbit wei=P27;sb
20、it key1=P10;sbit key2=P11;sbit key3=P12;sbit key4=P13;void init() TMOD=0x11; TH0=0x3C; TL0=0xB0; TH1=(65536-50000)/256; TL1=(65536-50000)%256; EA=1; IE0=1; IT0=1; TR0=1; TR1=1;void delay(uint z) int x,y; for(x=100;x0;x-) for(y=z;y0;y-);void zkb() zkb=1; delay(80); zkb=0; delay(20);void zkb1() zkb=1;
21、 delay(20); zkb=0; delay(80);void display1(uchar aa1,uchar bb1,uchar cc1,uchar dd1) duan=1; P0=table1aa1; duan=0; wei=1; P0=0xfe; wei=0; delay(1); duan=1; P0=table1bb1; duan=0; wei=1; P0=0xfd; wei=0; delay(1); duan=1; P0=table1cc1; duan=0; wei=1; P0=0xfb; wei=0; delay(1); duan=1; P0=table1dd1; duan=
22、0; wei=1; P0=0xf7; wei=0; delay(1);void display(uchar aa,uchar bb,uchar cc,uchar dd,uchar ee,uchar ff,uchar gg,uchar hh) duan=1; P0=table1aa; duan=0; wei=1; P0=0xfe; wei=0; delay(1); duan=1; P0=table1bb; duan=0; wei=1; P0=0xfd; wei=0; delay(1); duan=1; P0=table1cc; duan=0; wei=1; P0=0xfb; wei=0; del
23、ay(1); duan=1; P0=table1dd; duan=0; wei=1; P0=0xf7; wei=0; delay(1); duan=1; P0=table1ee; duan=0; wei=1; P0=0xef; wei=0; delay(1); duan=1; P0=table1ff; duan=0; wei=1; P0=0xdf; wei=0; delay(1); duan=1; P0=table1gg; duan=0; wei=1; P0=0xbf; wei=0; delay(1); duan=1; P0=table1hh; duan=0; wei=1; P0=0x7f;
24、wei=0; delay(1);void main() init(); while(1) if(key1=0) delay(10); if(key1=0) display1(aa1,bb1,cc1,dd1); while(!key1); delay(10); while(!key1); if(key2=0) delay(10); if(key2=0) display(aa,bb,cc,dd,ee,ff,gg,hh); while(!key2); delay(10); while(!key2); if(key3=0) delay(10); if(key3=0) zkb(); delay(1000
25、); while(!key3); delay(10); while(!key3); if(key4=0) delay(10); if(key4=0) zkb1(); delay(1000); while(!key4); delay(10); while(!key4); void timer0() interrupt 1 TH0=0x3c; TL0=0xb0; count1+; if(count1=20) count1=0; flag=1; void int0() interrupt 0 count2+; if(flag=1) QL0=count2/210; aa1=QL0/100; bb1=QL0%100/10; cc1=QL0%10/1; dd1=QL0%1; QL1=QL1+QL0; aa=QL1/100000; bb=QL1%100000/10000; cc=QL1%10000/1000; dd=QL1%1000/100; ee=QL1%100/10; ff=QL1%10/1; gg=QL1%1/0.1 hh=QL1%0.1; count2=0; 21
限制150内