基于单片机的流量控制系统副本Word格式.docx
- 文档编号:22519400
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:17
- 大小:152.89KB
基于单片机的流量控制系统副本Word格式.docx
《基于单片机的流量控制系统副本Word格式.docx》由会员分享,可在线阅读,更多相关《基于单片机的流量控制系统副本Word格式.docx(17页珍藏版)》请在冰豆网上搜索。
所谓流量是指单位时间内通过某一截面的物料数量,即瞬时流量。
用于测量流量的仪表称为流量计,流量计是过程自动化仪表与装置中的大类仪表之一。
流量计也成为流量传感器,是一种指示被测流量和(或)在选定的时间间隔内流体总量的流速监测装置。
主要功能是当流速未达到设定的流速阀值时发出检测信号,经计算机控制,进行报警或启动连锁保护系统,保护关键设备,能够以及时制止在生产中的突发事故,对生产安全和经济效益,有不可估量的实际作用。
第二章工作原理及系统硬件设计
2.1系统工作原理
系统的工作原理是流量传感器采集到流量信息,通过变换器,转化为电信号,AD转换器将模拟电信号转化为离散信号,传给单片机。
单片机软件系统根据事先的设定值对采集的信息进行处理,输出离散的控制信号。
DA转换器将离散的控制信号转化为模拟电量。
通过模拟电量来控制阀门的动作,从而调节流量,实现流量的精确控制。
2.2硬件构成
本系统主要由水泵、流量传感器、电动阀门和MCS-51单片机控制系统以及液体管线和控制线、监视线等组成。
系统结构框图如下所示:
流量是指单位时间内通过管道某一截面的物料数量。
本控制系统的任务是对通过某一管道截面的物料数量即降粘剂流量进行控制。
本系统采用单片机控制,通过流量计采集流量信息,传给单片机。
单片机通过预先设定值和系统软件进行分析,发出相应的控制信号,驱动调节阀动作,从而确定降粘剂的配比与耗量,实现生产过程自动化。
系统硬件结构图如图所示:
其中,电磁流量计作为流量传感器,采集流量信息,经放大器放大后送到AD转换器。
AD转换器将连续的模拟量转化为单片机能接受的离散的数字量。
单片机收到流量信号后,在控制系统软件的作用下,发出相应的执行命令给执行机构——步进电机。
步进电机带动阀门动作,对流体流量进行控制。
第三章软件设计
3.1软件设计思路
该控制系统的软件设计可以分为三部分:
1.主程序部分:
该部分完成存储器分区、数据定义和系统的初始化等,以及调用各个子程序,完成主要的控制功能。
2.流量控制程序:
通过PID控制算法,编写出相应的流量控制子程序,实现对流量的控制,达到预期的控制要求;
3.各子程序:
各个子程序完成具体的实现方法,主要包括:
设定值输入、数码管显示、步进电机控制、AD转换中断、T0定时器中断、采样中断等。
软件流程图如下:
3.2主程序设计
◆主程序部分,主要完成存储器分配、系统初始化和系统整体控制等,并通过调用各子程序段,实现软件的总体设计功能。
主程序流程图
◆初始化:
系统初始化程序的功能是对8155和89C51进行初始化,使D/A输出为0,步进电机处于停机状态,将RAM中的标志位和工作单元置为初始状态,提示符CPUREADY写入缓冲器。
更新显示器子程序的功能是将显示缓冲器的内容,分别转化为段数据,输出到8155。
显示器0~12的显示数据缓冲器分别为73H~7FH单元。
当系统处于停机状态时,显示器0~4显示参数,显示器5~7显示参数地址,所以73H~77H作为数据缓冲器,78H~7AH作为地址缓冲器,在运行状态时,73H~77H作为瞬时流量缓冲器,78H~7FH作为累计流量缓冲器。
初始化程序的流程如图所示:
3.3流量控制子程序
在流量测试的基础上,把流量设定值和实际测试得到的瞬时流量进行比较计算出误差,采用数字PID调节算法,计算输出到AD0809的变量Uio增量式PID控制算法的计算公式为
式中:
ei为本次实际测得的流量和设定值之差;
P为比例系数;
I为积分系数;
D为微分系数;
输出控制变量表达式为:
程序的入口参数:
偏差ek、ek-1、ek-2、测量值y、给定值r。
这5个参数均为3字节的浮点数,分别将它们存放在RAM单元中。
低字节存放浮点数的阶数和符号,其中符号存放在最高位,阶数以补码的形式存放在另7位中。
尾数以原码的形式存放在另2个字节中。
第四章中断服务子程序
4.1设定值输入程序
本程序将4位BCD码按千、百、十、个依次存放在89C51片内RAM的30H~33H单元中,每个地址单元的高4位为0,低4位为BCD码。
程序代码如下:
RDS:
MOVR0,#30H;
初始化,存放单元首址
MOVR2,#7FH;
P1口高4位置控制字及低4位置输入方式
MOVR3,#04H;
读入4个BCD码
MOVA,R2
LOOP:
MOVP1,A;
P1口送控制字及低4位置输入方式
MOVA,P1;
读如BCD码
ANLA,#0FH;
屏蔽高4位
MOV@R0,A;
送入存储单元
INCR0;
指向下个存储单元
MOVA,R2;
准备下一片拨盘的控制端置0
RRA;
MOVR2,A;
DJNZR3,LOOP;
未读完返回
RET;
读完结束
4.2A/D中断子程序
A/D中断子程序流程图如下所示:
程序代码如下:
INT0:
PUSHACC;
保护现场
PUSHDPH
PUSHDPL
PUSHPSW
SETBPSW.3;
选工作寄存器区1
MOVDPTR,#0DF01H;
读取8155A口数据
MOVXA,@DPTR
MOVR2,A
ANLA,#0F0H;
屏蔽低4位
JNZND5;
MOVA,R2
JNB02H,D51;
判断是否采样零信号
MOVC,ACC.0;
MOV30H,C
MOVC,ACC.7
MOV37H,C
AJMPD14
D51:
MOVC,ACC.0;
万位和标志位→荷重信号缓冲器
MOV48H,C
MOVC,ACC.7
MOV4FH,C
ND5:
MOVA,R2;
判断是否读出千位
JNBACC.7,ND4
JNB02H,D41;
ANLA,#0FH;
千位→零信号缓冲器
SWAPA
MOV25H,A
D41:
ANLA,#0FH
MOV28H,A
ND4:
JNBACC.6,ND3;
判断是否读出百位
JNB02H,D31;
MOVR1,#25H;
百位→零信号缓冲器
ANLA,#0FH
XCHPA,@R1
D31:
MOVR1,#28H
XCHDA,@R1
ND3:
JNBACC.5,ND2;
判断是否读出十位
JNB02H,D21;
判断是否采样信号
十位→零信号缓冲器
MOV24H,A
D21:
ANLA,#0FH
MOV24H,A
ND2:
JNB02H,D11;
ANLA,#0FH;
个位→零信号缓冲器
MOVR,#24H
CLR02H
MOVDPTR,#0DFF3H;
启动A/D转换
MOVA,#30H
MOVX@DPTR,A
ADS1:
SETBP1.6
NOP
NOP
CLRP1.6
AJMPD14
D11:
MOVR1,#27H
MOV2AH,24H;
采样数据送处理缓冲器
MOV2BH,25H
MOV2CH,26H
MOV2DH,27H
MOV2EH,28H
MOV2FH,29H
SETB03H;
置一次A/D采样结束标志
D14:
POPPSW;
恢复现场
POPDPL
POPDPH
POPACC
RETI
4.3定时器中断子程序
定时器T0中断程序流程图如下图所示。
PIT0:
PUSHPSW;
PUSHACC
PUSHDPH
JNB00H,T01;
允许采样否?
DJNZ10H,T02;
采样周期计数器减1,不为1转T02
DJNZ11H,T02
MOV10H,#0A0H;
恢复采样周期计数器初值
MOV11H,#0FH
SETB0FH
CLR0DH
CLRP3.4
MOVDPTR,#0DFF3H;
对零点采样
MOVA,#00H
SETB04H
T02:
JB01H,T05
T01SETBP1.7
NOP
CLRP1.7
T05:
CLRP1.6
DJNZ16H,T06;
调试用脉冲周期计数器减1
CPLP1.4;
使P1.4产生方波
MOV16H,17H
T06:
POPDPL;
POPDPH
POPACC
POPPSW
ERTI
4.4数码管显示子程序
程序流程图如下所示:
在单片机内部RAM的20H和21H单元中有四位十六进制数(20H中为高两位),以下是将其自左到右显示出来的程序。
ORG2000H
SDIAPLAY:
MOVA,20H;
20H中数送A
ANLA,#0F0H;
截取高4位
MOVP1,A;
送1#MC14495
MOVA,20H;
SWAPA;
低4位送高4位
ANLA,#0F0H;
去掉低4位
INCA;
A1A0指向2#MC14495
送2#MC14495
MOVA,21H;
21H中数送A
ADDA,#02H;
A1A0指向3#MC14495
送3#MC14495
21H中数送A
低4位送高4位
ADDA,#03;
A1A0指向4#MC14495
送4#MC14495
RET
4.5步进电机控制程序
ORG2100H
PUSHACC;
MOVR4,#N;
步进马达步进数送R4
CLRC;
Cy清零
ORLC,PSW.5;
转向标志状态送Cy
JCROTE;
若为反转,则转ROTE
MOVR0,#20H;
正转模型始址送R0
AJMPNEXT;
转入NEXT
ROTE:
MOVR0,#27H;
反转模型始址送R0
NEXT:
MOVA,@R0;
输出控制模型的值
MOVP1,A;
输出控制脉冲
ACALLDELAY;
延时(形成脉宽)
INCR0;
准备下个模型指针
MOVA,#00H;
判断送完一遍模型值
ORLA,@R0
JZTPL;
若模型结束,则TPL
LOOP:
DJNZR4,NEXT;
若步进数未走完,则NEXT
POPACC;
RET:
返回
TPL:
MOVA,R0
CLRC
SUBBA,#06H
MOVR0,A;
恢复模型始址
AJMPLOOP;
判断步进马达步数走完?
DELAY:
MOVR2,#M1;
延时
DELAY1:
MOVR2,#M2
DELAY2:
DECA
JNZDELAY2
DJNZR2,DELAY1
RET
END
上述控制程序是利用程序延时来控制电机的通电时间(即形成控制脉冲)以达到正转、反转、启动和停止的。
这种控制的缺点是CPU因执行延时程序而降低了效率。
为了提高CPU的使用效率,常常也可采用单片机内部定时/计数器编制上述程序。
总结
在设计的这段日子里,我学到了很多东西,突然觉得自己做什么事情都特别的认真了起来,也许是以前从未认真做过一件事吧。
每天守着一大堆资料,随时还要上网查询,有时为了查一个数据就要耗去近一个小时的时间,证实了却又感到莫名地兴奋与愉悦。
整个设计过程都是那么的紧张、严紧。
偶然间就回到了过去的学习深处,也就是在那里留下了我些许的遗憾和欣慰。
遗憾里有后悔,有痛恨,曾经是那么的无知。
欣慰的是事过境迁,深刻地认识了自己,一切改过还来的及。
顺利如期的完成本次设计给了我很大的信心,让我了解专业知识的同时也对本专业的发展前景充满信心,无论给水系统还是排水系统,我都采用了一些新的技术和设备他们有着很多的优越性但也存在一定的不足这些不足在一定程度上限制了我们的创造力,这些不足正是我们去更好的研究更好的创造的最大动力,只有发现问题面对问题才有可能解决问题,不足和遗憾不会给我打击只会更好的鞭策我前行的道路。
参考文献
【1】李英顺.单片机原理及应用.北京:
中国水利水电出版社,2010
【2】张家生.电机原理与拖动基础[M].北京:
北京邮电大学出版社,2006
【3】马斌等.单片机原理及应用---C语言程序设计与实现[M].北京:
人民邮电出版社,2009
【4】王宜怀等.嵌入式系统[M].北京:
北京航空航天大学出版社,2008
【5】顾德英,张健,马淑华.计算机控制技术[M].北京:
北京邮电大学出版社,2006
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于单片机的流量控制系统 副本 基于 单片机 流量 控制系统