3.1 流量部分硬件构成与工作原理
本系统主要由水泵、流量传感器、电动阀门和MCS-51单片机控制系统以及液体管线和控制线、监视线等组成。
系统结构框图如下所示:
图3.1 系统结构框图
流量是指单位时间内通过管道某一截面的物料数量。本控制系统的任务是对通过某一管道截
面的物料数量即降粘剂流量进行控制。本系统采用单片机控制,通过流量计采集流量信息,传给单片机。单片机通过预先设定值和系统软件进行分析,发出相应的控制信号,驱动调节阀动作,从而确定降粘剂的配比与耗量,实现生产过程自动化。
系统的工作原理是流量传感器采集到流量信息,通过变换器,转化为电信号,AD转换器将模拟电信号转化为离散信号,传给单片机。单片机软件系统根据事先的设定值对采集的信息进行处理,输出离散的控制信号。DA转换器将离散的控制信号转化为模拟电量。通过模拟电量来控制阀门的动作,从而调节流量,实现流量的精确控制。
系统硬件结构图如下图所示:
图3.2 硬件框图
3.2 软件总体结构设计
该控制系统的程序主要分为三部分:主程序、流量控制程序和各种中断子程序。主程序完成系统的地址分配、系统初始化和各子程序的调用。流量控制程序通过PID控制算法,实现系统的数字化控制。各子程序完成相应的各功能。
软件设计是本控制系统设计的核心,在完成了系统硬件的搭接之后,剩下来的主要任务接是系统软件的设计。该控制系统的软件设计可以分为三部分:一、主程序部分。该部分完成存储器分区、数据定义和系统的初始化等,以及调用各个子程序,完成主要的控制功能;二、流量控制程序。通过PID控制算法,编写出相应的流量控制子程序,实现对流量的控制,达到预期的控制要求;三、各子程序。各个子程序完成具体的实现方法,主要包括:设定值输入、数码管显示、步进电机控制、AD转换中断、T0定时器中断、采样中断等。由此我们可以得出系统的总体设计框图,如下图所示。
软件流程图如下:
图3.3 主程序流程图
(1)内部结构
8155共由七部分电路组成,它们主要是双向数据总线缓冲器、地址锁存器、地址译码器和读写控制器、RAM存储器、I/O寄存器、命令寄存器和状态寄存器以及定时器/计数器等。现对各部分电路分述如下:
①双向数据总线缓冲器:该缓冲器是8位的,用于传送CPU对RAM存储器的读写数据。
②地址锁存器:共有8位,用于锁存CPU送来的RAM单元地址和端口地址。
③地址译码器和读写控制器:地址译码器的三位地址由地址锁存器输出端送来,译码后可以选中命令/状态寄存器、定时器/计数器和A、B、C三个I/O寄存器中某个工作。读写控制器接收和线上信息,实现对CPU和8155间所传信息的控制。
④RAM存储器:容量为256字节,主要用于存放实时数据。存储器存储单元地址由地址锁存器输出端送来。
⑤I/O寄存器:分为A、B和C三个端口。A口和B口的I/O寄存器为8位,即可以存放外设的输出数据又可以存放外设的输入数据;C口的I/O寄存器只有6位,用于存放I/O数据或命令/状态信息。8155在某一瞬间只能选中某个I/O寄存器工作,这由CPU送给8155的命令字决定。
⑥命令寄存器和状态寄存器:皆为8位寄存器。命令寄存器存放CPU送来的命令字,状态寄存器存放8155的状态字。
⑦定时器/计数器;这是一个二位制14位的减1计数器,计数器初值由CPU通过程序送来。定时器/计数器由T/IN输入线上脉冲减1,每当计满溢出时可在线上输出一个脉冲。
(2)引脚功能
8155共有40条引脚,采用双列直插式封装。
①AD7—AD0:AD7—AD0为地址/数据总线,常可和 MCS-51的P0口相接,用于分时地传送地址/数据信息。
②I/O总线(22条):PA7—PA0为通用I/O线,用于传送A口上的外设数据,数据传送方向由8155命令字决定(见图7-21)。PB7—PB0为通用I/O线,用于传送B口上的外设数据,数据传送方向也由8155命令字决定。PC5—PC0为I/O数据/控制线,共有6条,在通用I/O方式下,用作传送I/O数据;在选通I/O方式下,用作传送命令/状态信息。
③控制总线(8条):RESET;8155总清输入线,在RESET线上输入一个大于600ns宽的正脉冲时,8155立即处于总清状态,A、B、C三口也定义为输入方式。
和IO/:为8155片选输入线,若=0,则CPU选中本8155工作;否则,本8155不工作。IO/为I/O端口或RAM存储器的选通信号线:若IO/=0,则CPU选中8155的RAM存储器工作;若IO/=1,则CPU选中8155片内某一寄存器工作。
和流程图转换为ns图:是8155的读/写命令输入线,为写命令线,当=0和=1时,8155处于读出数据状态;当=1和=0时,8155处于写入数据状态。
ALE:为允许地址输入线 ,高电平有效。若ALE=1,则8155允许AD7—AD0上地址锁存到“地址锁存器”;否则,8155的地址锁存器处于封锁状态。8155的ALE常和MCS-51的同名端相连。
T/IN和:T/IN是计数器输入线,其上脉冲用于对8155片内14位计数器减1。为计数器输出线,当14位计数器从计满回零时就可以在该线上输出脉冲波形,输出脉冲的形状和计数器工作方式有关。
④电源线(2条):Vcc为+5V电源输入线,Vss为接地线。
2.CPU对8155I/O口的控制
8155A、B、C三口的数据传送是由命令字和状态字控制的。
(1)8155端口地址
8155内部有7个寄存器,需要三位地址来加以区分。表4列出了端口地址分配。
表4 8155端口地址分配
IO/ | A7 | A6 | A5 | A4 | A3 | A2 | A1 | A0 | 所选端口 | |
0 | 1 | × | × | × | × | × | × | × | × | 命令/状态寄存器 |
0 | 1 | × | × | × | × | × | × | × | × | A口 |
0 | 1 | × | × | × | × | × | × | × | × | B口 |
0 | 1 | × | × | × | × | × | × | × | × | C口 |
0 | 1 | × | × | × | × | × | × | × | × | 计数器低8位 |
0 | 1 | × | × | × | × | × | × | × | × | 计数器高8位 |
0 | × | × | × | × | × | × | × | × | × | RAM单元 |
注:×表示0或1。
(2)8155命令字
8155命令字共有8位,用于设定8155的工作方式以及实现对中断和定时器/计数器的控制。各位定义如图7-21所示。图中,D7和D6是计数器方式控制位,D5和D4A口和B口的中断控制位,D3和D2是C口的四种方式控制位,D1和D0分别是A口和B口的输入/输出方式控制位。例如:若D0=0,则PA7—PA0被定义为输入方式;若D0=1,则PA7—PA0定义为输出方式。
D6:为定时器中断标志位。若定时器正在计数或开始计数前,则D6=0;若定时器已计满,则D6=1,并在硬件复位或对它读出后又恢复为0。
D5和D2:分别为B口和A口的中断允许标志位,用于控制8155B口或A口的中断请求。例如:只有D5=1状态时,B口的中断才被允许。
D4和D1:分别为B口和A口的缓冲器状态标志位,用于表示8155B口和A口缓冲器的工作状态。例如:若D4=0,则B口缓冲器空;若D4=1,则B口缓冲器满。
D3和D0:分别为B口和A口的中断请求标志位,用于表示8155B口和A口是否有了中断请求。例如:若D3=0,则表示B口无中断请求;若D3=1,则表示B口有中断请求。
状态字存放在8155状态寄存器中,状态寄存器的端口地址为A2A1A0=000B(见表7-3),CPU通过一条MOVX A,@Ri或MOVX A,@DPTR指令便可读取8155状态字,用于判断8155所处工作状态。但应注意:8155命令寄存器和状态寄存器是共用一个端口地址的,这由对该端口进行读还是写来区分。
(4)8155定时器长度字
定时器长度字有16位,分高字节和低字节。定时器长度字用于设定定时器的工作方式和定时器的定时初始值。
3. 8155工作方式
(1)存储器方式
8155的存储器方式用于对片内256字节RAM单元进行读写,若IO/=0和=0,则8155立即处于本工作方式。此时,CPU可以通过AD7—AD0上地址选择RAM存储器中任一单元读写。
(2)I/O方式
8155的I/O方式又可分为通用I/O和选通I/O两种工作方式,如表4所列。在I/O方式下,8155可选择对片内任一寄存器读写,端口地址由A2A1A0三位决定(见表1)。
表4 C口在四种I/O工作方式下各位定义
C口 | 通用I/O方式 | 选通I/O方式 | ||
ALT1 | ALT2 | ALT3 | ALT4 | |
PC0 | 输入 | 输出 | A INTR(A口中断) | A INTR(A口中断) |
PC1 | 输入 | 输出 | A BF(A口缓冲器满) | A BF(A口缓冲器满) |
PC2 | 输入 | 输出 | (A口选通) | (A口选通) |
PC3 | 输入 | 输出 | 输出 | B INTR(B口中断) |
PC4 | 输入 | 输出 | 输出 | B BF(B口缓冲器满) |
PC5 | 输入 | 输出 | 输出 | (B口选通) |
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论