基于单片机的流量控制系统设计

发布者:数字冲浪最新更新时间:2023-06-20 来源: elecfans关键字:单片机  流量控制系统  变换器 手机看文章 扫描二维码
随时随地手机看文章

工业生产中过程控制是流量测量与仪表应用的一大领域,流量与温度、压力和物位一起统称为过程控制中的四大参数,人们通过这些参数对生产过程进行监视与控制。对流体流量进行正确测量和调节是保证生产过程安全经济运行、提高产品质量、降低物质消耗、提高经济效益、实现科学管理的基础。流量的检测和控制在化工、能源电力、冶金、石油等领域应用广泛。


系统工作原理

系统的工作原理是流量传感器采集到流量信息,通过变换器,转化为电信号,AD转换器将模拟电信号转化为离散信号,传给单片机。单片机软件系统根据事先的设定值对采集的信息进行处理,输出离散的控制信号。DA转换器将离散的控制信号转化为模拟电量。通过模拟电量来控制阀门的动作,从而调节流量,实现流量的精确控制。


硬件构成

本系统主要由水泵、流量传感器、电动阀门和MCS-51单片机控制系统以及液体管线和控制线、监视线等组成。

系统结构框图如下所示:

基于单片机的流量控制系统设计

流量是指单位时间内通过管道某一截面的物料数量。本控制系统的任务是对通过某一管道截面的物料数量即降粘剂流量进行控制。本系统采用单片机控制,通过流量计采集流量信息,传给单片机。单片机通过预先设定值和系统软件进行分析,发出相应的控制信号,驱动调节阀动作,从而确定降粘剂的配比与耗量,实现生产过程自动化。

系统硬件结构图如图所示:

基于单片机的流量控制系统设计

其中,电磁流量计作为流量传感器,采集流量信息,经放大器放大后送到AD转换器。AD转换器将连续的模拟量转化为单片机能接受的离散的数字量。单片机收到流量信号后,在控制系统软件的作用下,发出相应的执行命令给执行机构——步进电机。步进电机带动阀门动作,对流体流量进行控制。软件设计


软件设计思路

该控制系统的软件设计可以分为三部分:

1.主程序部分:该部分完成存储器分区、数据定义和系统的初始化等,以及调用各个子程序,完成主要的控制功能。

2.流量控制程序:通过PID控制算法,编写出相应的流量控制子程序,实现对流量的控制,达到预期的控制要求;

3.各子程序:各个子程序完成具体的实现方法,主要包括:设定值输入、数码管显示、步进电机控制、AD转换中断、T0定时器中断、采样中断等。 软件流程图如下

基于单片机的流量控制系统设计

主程序设计

主程序部分,主要完成存储器分配、系统初始化和系统整体控制等,并通过调用各子程序段,实现软件的总体设计功能。

初始化:系统初始化程序的功能是对8155和89C51进行初始化,使D/A输出为0,步进电机处于停机状态,将RAM中的标志位和工作单元置为初始状态,提示符CPUREADY写入缓冲器。更新显示器子程序的功能是将显示缓冲器的内容,分别转化为段数据,输出到8155。显示器0~12的显示数据缓冲器分别为73H~7FH单元。当系统处于停机状态时,显示器0~4显示参数,显示器5~7显示参数地址,所以73H~77H作为数据缓冲器,78H~7AH作为地址缓冲器,在运行状态时,73H~77H作为瞬时流量缓冲器,78H~7FH作为累计流量缓冲器。 初始化程序的流程如图所示:

基于单片机的流量控制系统设计



流量控制子程序

在流量测试的基础上,把流量设定值和实际测试得到的瞬时流量进行比较计算出误差,采用数字PID调节算法,计算输出到AD0809的变量Uio增量式PID控制算法的计算公式为

基于单片机的流量控制系统设计

式中:ei为本次实际测得的流量和设定值之差;

基于单片机的流量控制系统设计

P为比例系数;I为积分系数;D为微分系数;输出控制变量表达式为:

基于单片机的流量控制系统设计

程序的入口参数:偏差ek、ek-1、ek-2、测量值y、给定值r。这5个参数均为3字节的浮点数,分别将它们存放在RAM单元中。低字节存放浮点数的阶数和符号,其中符号存放在最高位,阶数以补码的形式存放在另7位中。尾数以原码的形式存放在另2个字节中。

中断服务子程序

设定值输入程序

本程序将4位BCD码按千、百、十、个依次存放在89C51片内RAM的30H~33H单元中,每个地址单元的高4位为0,低4位为BCD码。 程序代码如下:

RDS:MOV R0,#30H;初始化,存放单元首址

MOV R2,#7FH;P1口高4位置控制字及低4位置输入方式

MOV R3,#04H;读入4个BCD码 MOV A,R2

LOOP:MOV P1,A;P1口送控制字及低4位置输入方式

MOV A,P1;读如BCD码 ANL A,

#0FH;屏蔽高4位

MOV @R0,A;送入存储单元

INC R0;指向下个存储单元

MOV A,R2;准备下一片拨盘的控制端置0

RR A;

MOV R2,A;

DJNZ R3,LOOP;未读完返回

RET;读完结束


A/D中断子程序

A/D中断子程序流程图如下所示:

基于单片机的流量控制系统设计

程序代码如下:

INT0:PUSH ACC ;保护现场

PUSH DPH

PUSH DPL

PUSH PSW

SETB PSW.3 ;选工作寄存器区1

MOV DPTR,#0DF01H;读取8155A口数据

MOVX A,@DPTR MOV R2, A

ANL A, #0F0H ;屏蔽低4位 JNZ ND5 ;

MOV A,R2

JNB 02H, D51 ;判断是否采样零信号

MOV C, ACC.0 ;

MOV 30H, C MOV C, ACC.7

MOV 37H,C AJMP D14

D51: MOV C,ACC.0 ;万位和标志位→荷重信号缓冲器

MOV 48H,C

MOV C,ACC.7

MOV 4FH,C

AJMP D14

ND5: MOV A,R2 ;判断是否读出千位

JNB ACC.7,ND4

JNB 02H,D41 ;判断是否采样零信号

ANL A, #0FH ;千位→零信号缓冲器

SWAP A

MOV 25H,A

AJMP D14

D41: ANL A,#0FH

SWAP A

MOV 28H, A

AJMP D14

ND4: JNB ACC.6, ND3 ;判断是否读出百位

JNB 02H,D31 ;判断是否采样零信号

MOV R1, #25H ;百位→零信号缓冲器

ANL A,#0FH

XCHP A,@R1

AJMP D14

D31: MOV R1, #28H

ANL A,#0FH

XCHD A,@R1

AJMP D14

ND3: JNB ACC.5, ND2 ;判断是否读出十位

JNB 02H, D21 ;判断是否采样信号

ANL A, #0FH ;十位→零信号缓冲器

SWAP A

MOV 24H, A

AJMP D14

D21: ANL A, #0FH

SWAP A MOV 24H,A

AJMP D14

ND2: JNB 02H,D11 ;判断是否采样零信号

ANL A,#0FH ;个位→零信号缓冲器

MOV R,#24H

XCHD A,@R1 CLR 02H

MOV DPTR,#0DFF3H ;启动A/D转换

MOV A, #30H

MOVX @DPTR,

A ADS1:SETB P1.6

NOP

NOP

CLR P1.6

AJMP D14

D11: ANL A,#0FH

MOV R1,#27H

XCHD A,@R1

MOV 2AH,24H ; 采样数据送处理缓冲器

MOV 2BH,25H

MOV 2CH,26H

MOV 2DH,27H

MOV 2EH,28H

MOV 2FH,29H

SETB 03H ;置一次A/D采样结束标志

D14: POP PSW ;恢复现场

POP DPL

POP DPH

POP ACC

RETI


定时器中断子程序

定时器T0中断程序流程图如下图所示。

基于单片机的流量控制系统设计

程序代码如下

PIT0: PUSH PSW ;保护现场

PUSH ACC

PUSH DPH

PUSH DPL

JNB 00H, T01 ;允许采样否?

DJNZ 10H, T02 ;采样周期计数器减1,不为1转T02

DJNZ 11H,T02

MOV 10H,#0A0H ;恢复采样周期计数器初值

MOV 11H, #0FH

SETB 0FH

CLR 0DH

CLR P3.4

MOV DPTR, #0DFF3H ; 对零点采样

MOV A, #00H

MOVX @DPTR, A

SETB 04H

SETB 04H

T02: JB 01H, T05

T01 SETB P1.7

NOP

CLR P1.7

T05:CLR P1.6

DJNZ 16H, T06 ;调试用脉冲周期计数器减1

CPL P1.4 ;使P1.4产生方波

MOV 16H,17H

T06: POP DPL ;恢复现场

POP DPH

POP ACC

POP PSW

ERTI


数码管显示子程序

程序流程图如下所示:

15

在单片机内部RAM的20H和21H单元中有四位十六进制数(20H中为高两位),以下是将其自左到右显示出来的程序。 程序代码如下:

ORG 2000H

SDIAPLAY:MOV A,20H ;20H中数送A

ANL A,#0F0H ;截取高4位

MOV P1,A ;送1#MC14495

MOV A,20H ;20H中数送A

SWAP A ;低4位送高4位

ANL A,#0F0H ;去掉低4位

INC A ;A1A0指向2#MC14495

MOV P1,A ;送2#MC14495

MOV A,21H ;21H中数送A

ANL A,#0F0H ;截取高4位

ADD A,#02H ;A1A0指向3#MC14495

MOV P1,A ;送3#MC14495

MOV A,21H ;21H中数送A

SWAP A ;低4位送高4位

ANL A,#0F0H ;去掉低4位

ADD A,#03 ;A1A0指向4#MC14495

MOV P1,A ;送4#MC14495

RET


步进电机控制程序

程序代码如下: ORG 2100H

PUSH ACC ;保护现场

MOV R4,#N ;步进马达步进数送R4

CLR C ;Cy清零

ORL C,PSW.5 ;转向标志状态送Cy

JC ROTE ;若为反转,则转ROTE

MOV R0,#20H ;正转模型始址送R0

AJMP NEXT ; 转入NEXT

ROTE:MOV R0,#27H ;反转模型始址送R0

NEXT:MOV A,@R0 ;输出控制模型的值

MOV P1,A ;输出控制脉冲 ACALL DELA

Y ;延时(形成脉宽) INC R

0 ;准备下个模型指针 MOV A,#00

H ;判断送完一遍模型值

ORL A,@R0 JZ TP

L ;若模型结束,则TPL LOOP:DJNZ R4,NEXT ;若步进数未走完,则N

EXT

POP AC

C ;恢复现场

RE

T :返回

TPL:MOV A,R0 CLR C

SUBB A,#06H MOV R0,A ;恢复模型始址

AJMP LOOP ;判断步进马达步数走完?

DELAY:MOV R2,#M1 ;延时

DELAY1:MOV R2,#M2

DELAY2:DEC A JNZ

DELAY2 DJNZ R2,DELAY1

RET

END


上述控制程序是利用程序延时来控制电机的通电时间(即形成控制脉冲)以达到正转、反转、启动和停止的。这种控制的缺点是CPU因执行延时程序而降低了效率。为了提高CPU的使用效率,常常也可采用单片机内部定时/计数器编制上述程序。


关键字:单片机  流量控制系统  变换器 引用地址:基于单片机的流量控制系统设计

上一篇:利用单片机和FPGA实现系统中可延时调节模块的设计
下一篇:基于μC/OS-II操作系统实现在P89V51RD2微控制器上运行

推荐阅读最新更新时间:2024-11-20 09:52

微型电流模式升压DC/DC变换器
    Linear公司为便携和分布电源系统的升压变换推出4款微型开关稳压器IC- LTC3401/LTC3402/LTC1872/LT1619(见表1)。 表1 4款微型升压变换器 升压变换器 输入电压范围 最大输出电流 开关频率(Hz) 工作和关闭电流 封装 LTC3401 0.5V~5V 500mA 300k~3M 39A,1μA MS10 LTC3402 0.5V~5V 1A 300k~3M 38A,1μA MS10 LTC1872 2.5V~9.8V 2A** 550k 270A,
[电源管理]
基于PIC16单片机对24X24 点阵屏驱动设计
花了几天时间,弄出个小东西,虽然有很多种实现方式在网上流传了,但我却从没有试过,乘有时间,也弄出了四种方式的显示,各位帮忙看看,哪里还有不好的地方,希不吝指教。 一。原理及仿真图 此种为从右往左显示。 此中为从左往右显示 此种为从下往上显示 此种为从上往下显示 原理图说明: 1. 本实例采用微芯 PIC16F877A 单片机,此单片机适合初学者 2. 点阵采用 24X24 点,左边为行线,采用 U1-U3 三个 74LS373 地址所存芯片,复用单片机 RB 端口。 右边为列线,采用 U4-U6 三个 74LS373 地址所存芯片,复用单片机 RD 端口。 3
[单片机]
基于PIC16<font color='red'>单片机</font>对24X24 点阵屏驱动设计
基于单片机设计实现的总线转换电路
1 引言 随着电子设备的大量出现及针对各种控制系统的实际需求,各种通信网络相继产生。由于它们的总线结构,通信协议及传输特点各不相同,给不同设备之间的连接带来很多麻烦,因而急需各种总线之间的转换装置。目前较流行的现场通信网络有RS-232,RS422/485、HART、Profield、Dupline、CAN和LonWorks等,本文阐述了一种USB-CAN-RS232三总线转换装置,电路设计简单新颖,并并且携带方便,实用性很强。 2 各种总线的特点 2.1 CAN(Controller Area Netwrok) CAN是控制器局域网络,属于工业现场总线的范畴。与一般的通信总线相比,CAN总线的数据通信具有突出
[单片机]
基于<font color='red'>单片机</font>设计实现的总线转换电路
51单片机入门 - EEPROM(24C02的使用)
24C02:256 个字节的 EEPROM。一般情况下,EEPROM 拥有 30 万到 100 万次的寿命。基于 I2C 通信协议的器件。I2C 是一个通信协议,它拥有严密的通信时序逻辑要求,而EEPROM 是一个器件,只是这个器件采样了 I2C 协议的接口与单片机相连而已,二者并没有必然的联系,EEPROM 可以用其它接口, I2C 也可以用在其它很多器件上。 1、EEPROM写数据流程 第一步,首先是 I2C 的起始信号,接着跟上首字节,也就是我们前边讲的 I2C 的器件地 址,并且在读写方向上选择“写”操作。 第二步,发送数据的存储地址。24C02一共 256 个字节的存储空间,地址从 0x00~0xFF,我们想把数
[单片机]
STM32MCU电源的低功耗模式
先看一下数据手册上对低功耗 的介绍。 1、睡眠模式(sleep mode) 仅仅是内核停止,所有外设包括Cortex-M3核心的外设,如NVIC、系统时钟(SysTick)等仍在运行。 2、低功耗运行模式(Low-power run mode) 该模式通过低功率调节器提供的VCORE来实现,以最小化 调节器的工作电流。代码可以从SRAM或Flash执行, CPU频率限制在2MHz。具有独立时钟的外围设备时钟可以来自HSI16。 3、低功耗睡眠模式(Low-power sleep mode) 从低功耗运行模式进入该模式。只有CPU时钟停止。当有事件或中断触发唤醒时,系统将恢复到低功耗状态运行模式。 4、停止模式(STOP) 停止
[单片机]
STM32<font color='red'>MCU</font>电源的低功耗模式
STC单片机程序下载失败总结
STC为宏晶公司推出的国产51单片机,其优点在于价格低廉,功能强大,使用方便,尤其是其串口ISP下载程序的方式方便了大量用户,免去了购买昂贵的编程器,非常适合单片机入门学习使用。 但是初学者常会遇到程序无法下载的情况,很多人甚至因此放弃了学习,实在可惜,在此给大家总结了常见的出错原因、判断方法和解决方法。 STC单片机下载程序需要的硬件主要分三部分: 单片机最小系统、下载电路、计算机端。 下载失败一般就从这三个方面来解决问题。 如果你有或者能向别人借到一套可以正常下载程序的电脑、单片机下载线、开发板,通过控制变量的方法,很快就能找到问题出在哪个环节。 1、你可以将自己的开发板连接在能正常下载的电脑上进行下载,如果可
[单片机]
3、寄存器
单片机中各种针脚、串口、时钟、定时/计数器、看门狗等都需要通过软件来设置,这就要用到寄存器。 寄存器有很多要查阅的表格,根据具体的表格去理解各种设置。 如下表,与针脚设置有关的寄存器,Px是P0~P2。 由上表可知,SEL可以设置针脚为通用I/O还是外设I/O,具体参照下表。 例如,P1SEL &=~ 0x03,0000 0011位反运算后,P1_0、P1_1两个引脚为0,设置为通用I/O端口。以后具体的案例中会附上相应的寄存器列表。
[单片机]
3、寄存器
基于AVR单片机的LED显示屏的灰度设计与实现
  LED点阵块具有亮度高、发光均匀、可靠性好、拼装方便等优点,能构成各种尺寸的显示屏。目前,LED显示屏已被广泛应用于文字显示并取得了很好的效果,但是大部分仅能显示滚动的文字信息而不能显示图像,并且还存在系统复杂等缺点。本文提出了一种主从式单片机的LED显示屏解决方案,该设计方案利用AVR单片机自身的FLASH ROM和RAM,外部无需任何存储电路,电路结构简单。该系统实现了图像的16阶灰度显示,可广泛用于商场、车站等公共场合。    1 AVR单片机简介       AVR单片机是增强型内置FLASH的RISC(ReducedInstruction Set CPU)精简指令集高速8位单片机,硬件采用哈佛(Harward)结
[工业控制]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved