计算机控制技术实验指导书11版(修)

更新时间:2024-02-02 00:59:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

目 录

第一部分 I386EX 系统板介绍 ................................................................................... 1 第一章 I386EX 系统板概述 ...................................................................................... 1 第二章 I386EX 系统板的硬件操作环境 .................................................................. 2 第三章 联机软件说明................................................................................................ 3 第四章 I386EX 系统板的资源分配 ....................................................................... 12 第二部分 实验教程..................................................................................................... 14 实验一 系统认识及程序调试练习.......................................................................... 14 实验二 D/A转换实验 ............................................................................................ 18 实验三 A/D转换实验 ............................................................................................ 21 实验四 最小拍控制系统 ........................................................................................ 26 实验五 积分分离PID控制.................................................................................... 29 实验六 大林算法控制.............................................................................................. 33

第一部分 i386EX 系统板介绍

第一章 i386EX 系统板概述

1.1 系统简介

“TD-ACC+”教学实验系统,其基本配置就含有一个开放式的模拟实验平台和一组先进的虚拟仪器,可以高水平地支持自动控制原理的实验教学,若再选配“i386EX 系统板”,就还可以开展“80X86 的计算机控制技术”的实验教学。i386EX 系统板是一种基于

intel386EX嵌入式微处理器的控制机,它以嵌入式应用为中心,可以满足大多数技术领域的需要,是当今微机应用及嵌入式技术发展的主流。配置了“i386EX 系统板”的“TD-ACC+自动控制原理/计算机控制技术”教学实验系统其构成主要包括:i386EX 系统、开放式的模拟实验平台、一组先进的虚拟仪器以及新编的自动控制原理实验教程和80X86 计算机控制技术实验教程。整个实验系统的结构框图如下页所示。

1

1.2 i386EX 系统板的特点

1. 采用先进的嵌入式微处理器

采用INTEL公司新推出的32位嵌入式处理器i386EX,使该嵌入式控制计算机功能达到了最优化。它功耗小,将许多经常使用的外围接口如8259、8254、8250和8237等集成到芯片内部,内部为32位总线,外部为16位数据总线,保持与标准的32位80386CPU相同的指令系统,具有64MB的寻址能力。

2. 总线标准和工业PC104-ISA标准兼容

该控制计算机具有24MHz的工作频率,128KB的程序存储器和128KB的数据存储器,满足复杂计算机控制和嵌入式应用的要求。采用控制计算机加模拟实验平台的结构设计,将i386EX的总线和接口资源以PC104-ISA的总线标准引出。

3. 功能强大的源码级调试环境

控制计算机通过串口与PC微机相连,并配备了C语言及汇编语言的源码级调试开发环境,功能强大。具有单步、跳过、断点、连续、变量跟踪等调试功能,可多方位、动态地调试实验程序。

第二章 i386EX 系统板的硬件操作环境

系统的部分总线以排针的形式引出,与实验单元相连可完成相应的实验。系统引出信号线说明及相关的端口地址见表2.1-1。

表2.1-1 控制计算机系统信号线说明 信号线 说 明 相关的端口地址 D0~D7 系统的低八位数据线 A0~A3 系统地址线低四位(输出) /IOR、 /IOW I/O读、写信号(输出) P3CFG 扩展I/O 地址为:F824H INTCFG 扩展I/O 地址为:F832H IRQ5、IRQ6、内部主片8259 中断请求ICW1、IRR、ISR、OCW2 和OCW3 地址为:20H IRQ7 信号(输入) ICW2、ICW3、ICW4、OCW1 和POLL 地址均为:21H TMRCFG 扩展I/O 地址为:F834H 内部1#定时器输出信号 OUT1 TMR1 扩展I/O 地址为:F041H (输出) TMRCON 扩展I/O 地址为:F043H /IOY0 I/O 接口待扩展信号(输0600H~063FH /IOY1 /IOY2 DIN0~DIN3 出) 4 位数字量输入信号(输入) 4 位数字量输出信号(输出) 0640H~067FH 0680H~06BFH P1 口的低四位对应P1.0 ~ P1.3 P1CFG 扩展I/O 地址为:F820H P1DIR 扩展I/O 地址为:F864H P1PIN 扩展I/O 地址为:F860H P2 口的低四位对应P2.0~ P2.3 P2CFG 扩展I/O 地址为:F822H P2DIR 扩展I/O 地址为:F86CH P2LTC 扩展I/O 地址为:F86AH 2

DOUT0 ~ DOUT3

注:1.“/”号表示该信号低电平有效

2. 扩展I/O 地址使能操作:_asm{ MOV AX,8000H

OUT 23H,AL XCHG AL,AH OUT 22H,AL OUT 22H,AX }

扩展I/O 地址无效操作:_asm{ MOV AL,00H

OUT 23H,AL}

第三章 联机软件说明

3.1 联机软件系统概述

该联机软件集成了源码级调试软件和虚拟仪器软件。该软件具有汇编语言和C 语言源语言级调试跟踪界面,有别于传统的DEBUG 调试,操作更简单,视觉效果更直接。如果用户习惯于DEBUG 调试,点击输出区的调试标签亦可对源程序进行DEBUG 调试。用户可以选择是否监控堆栈,也可以通过“变量监控”对话框选择监控哪些全局变量;寄存器/变量/堆栈区能够对下位机的寄存器、变量和堆栈实现实时监视,使寄存器/变量/堆栈区的数据永远是下位机中数据的真实反映;在寄存器/变量/堆栈区改写寄存器和变量的值,即可改变下位机中寄存器和变量的值。软件集成了一组功能强大的数字化虚拟仪器界面,用于时域曲线的实时测量和分析、频率特性分析、X_Y 测量、阻容/电压值测量等。 联机软件具有特点如下:

(1) 支持汇编语言和C 语言两种编译环境 (2) 高度可视化的源语言级调试跟踪界面

(3) 实时监视寄存器,能够即时对寄存器中的值进行修改 (4) 可以选择要监视的全局变量,进行实时监视和即时修改 (5) 可以选择是否要实时监视堆栈寄存器

(6) 集成虚拟仪器:具有双踪超低频数字存贮示波器、频率特性分析仪、X_Y 测量和数字万用表。

3.2 软件使用说明 3.2.1 主界面窗口

3

主要分为三部分:程序编辑区、变量区和输出区。 1.程序编辑区

位于界面右上部,用户可在程序编辑区用“新建”命令打开一个新文档或用“打开”命令打开一个已存在的文档,在文档中用户可编辑程序。用户可在程序编辑区打开多个文档,点击文档标签可激活任一文档。编译、链接、加载以及调试命令只针对当前活动文档。用户调试程序时,程序运行的轨迹亦在当前活动文档中指示。

2.变量区

位于界面左上部,包括三个部分:寄存器区、变量区和堆栈区。寄存器区和变量区用于实时监视、修改寄存器和变量的值,堆栈区主要用于实时监视用户堆栈区。点击寄存器区标签可观察和修改寄存器,点击变量区标签可观察和修改变量,点击堆栈区标签可观察用户堆栈区。执行各种调试操作后,寄存器、变量和堆栈区的值会自动刷新,如果寄存器区刷新后的值和刷新前的值相同,则显示为蓝色,如果不同,则显示为红色。变量区和堆栈区刷新前和刷新后都为蓝色。想修改寄存器或变量,用鼠标左键单击某寄存器或变量,当寄存器或变量值的区域变为蓝色后输入修改后的值,然后回车。如果修改的是寄存器,输入值的长度应与寄存器的长度相同,回车后修改正确,如果输入值的长度和寄存器的长度不相同,寄存器的值不会被修改,保持原来的值且可以继续修改该寄存器的值。如果修改的是变量,输入值的长度与变量的长度相同,回车后修改正确,如果输入值的长度小于变量的长度,回车后输入值的前面自动添零,如果输入值的长度大于变量的长度,回车后输入值的后面的多余部分自动删除。堆栈区只用于监视,不能够被修改。

3.输出区

位于界面下部,输出区包含三个部分:编译区、调试区和结果区。编译区显示编译和链接的结果,如果编译时有错误或警告,双击错误或警告信息,错误标识符会指示到相应的有错误或警告的行。调试区主要用于DEBUG 调试。结果区主要用于显示程序加载结果、程序运行输出结果和复位结果。结果区中有“加载中,请稍候....”的字样表示联机软件正在把可执行文件加载到下位机中,用户此时应等待直到加载完成,“加载成功”表示加载完成且成功,“加载失败”表示加载完成且失败,此时应重新加载。程序中用“INT 10H”输出的结果亦显示在此区。软复位或硬件复位成功后,结果区显示“复位成功!”。如果复位不成功则不显示此句。

3.2.2 菜单功能

1.文件菜单项(略) 2.编辑菜单项(略) 3.查看菜单项(略) 4.端口菜单项(略) 5.编译菜单项

该项提供了以下命令:

(1) 编译 (C):编译当前活动文档中的源程序,在源文件目录下生成目标文件。如果有错误或警告生成,则在输出区显示错误或警告信息,双击错误或警告信息,可定位到有错误或警告的行,修改有错误或警告的行后应重新“编译”。如果编译没有错误生成 (即使有警告生成) 使能“链接”菜单项和工具栏中的“链接”按钮,以便进行链接。编译时自动保存源文件中所做的修改。

(2) 链接 (L):链接编译生成的目标文件,在源文件目录下生成可执行文件。如果有错误或警告生成,则在输出区显示错误或警告信息,查看错误或警告信息修改源程序,修改后应重新“编译”和“链接”。如果链接没有错误生成 (即使有警告生成),使能“加载”菜单项和工具栏中的“加载”按钮,以便进行加载。

4

(3) 加载 (D):把链接生成的可执行文件加载到下位机。在加载过程中输出区有“加载中,请稍候...”的字样,用户此时应该等待直到加载完成。加载完成后,如果加载成功,输出区显示“加载成功!”,使能“调试”菜单中的菜单项和调试工具栏中的按钮,此时CS 和IP 指向程序的开始执行行并在此行设置执行标记。如果加载失败,输出区显示“加载失败!”,不使能“调试”菜单中的菜单项和调试工具栏中的按钮,此时应重新进行“加载”。

(4) 编译链接并加载 (T):依次执行编译、链接和加载。中间各环节“成功”或“失败”提示的信息及操作同上。

6.设置菜单项

(1) 语言:设置语言环境

汇编语言:设置编译环境为汇编语言环境。此时可编辑、编译和链接IBM-PC 汇编

语言源程序。

C 语言:设置编译环境为C 语言环境。此时可编辑、编译和链接TURBO C 语言源

程序。

(2) 变量监控:加载成功后才可用此按钮。点击此按钮,出现如下对话框:

选择要监视的全局变量,左边的列表框为程序中的全局变量,系统只能监视全局变量,右边的列表框为系统正在监视的全局变量。如果想监视左边列表框的某一变量A,用鼠标左键单击变量A,使之成为选择项,如上图所示,此时点击“加入监视”按钮,右边的列表框出现变量A,点击“结束”按钮后变量A 会出现在变量区。如果想从变量区去掉某一正在监视的变量B,点击“变量监控”按钮,出现如上图所示对话框,在右边的列表框中用鼠标左键单击变量B,使之成为选择项,如上图所示,此时点击“停止监视”按钮,此变量从右边的列表框消失,点击“结束”按钮后,变量B 从变量区消失。在汇编语言源文件中,数据段定义的变量并不是全局变量,因此数据段定义的变量并不出现在上图所示的对话框的左边列表,要想监视这些变量,必须使它们成为全局变量,使一个变量成为全局变量的方法是用关键字PUBLIC 在源程序的最前面声明之,格式是:PUBLIC symbol[,...],范例如下:

数据段DATA1 中的数据 mus_time,mus_freq 经过PUBLIC 声明后成为全局变量,编译、链接、加载完成后,点击“变量监控”按钮,此时对话框左边的列表框出现 mus_time 和

5

mus_freq变量,可对这两个变量进行监控。在C 语言源文件的调试中,系统也只能监视全局变量。要想监视某一变量,应该把他定义为全局变量。

(3) 堆栈监控:选择是否要监视用户堆栈区,点击此按钮出现如下对话框:

选择“不监控堆栈”单选按钮,确定后不监视堆栈区,选择“监控堆栈”单选按钮,确定后监视堆栈区。默认选项为“不监控堆栈”。

7.调试菜单项

(1) 设置断点/删除断点 (B)

设置或删除一个断点,当前光标所在的行为当前行,用鼠标左键单击程序可任意改变当前行。如果当前行无断点则在当前行设置断点,如果当前行有断点则删除当前行的断点。设置断点的行如上图所示。并不是源程序的所有行都可以设置断点,如伪操作行和空行不能设置断点。源程序设置的断点数不能超过8 个。

(2) 清除所有断点 (D):清除所有设置的断点,清除源程序中设置的所有断点,只有当设置的断点数大于零时,该菜单才使能。

(3) 设置起点 (T)

设置程序开始运行的起点,当前光标所在的行为当前行,用鼠标左键单击程序可任意改变当前行。此命令把当前行设置为程序的起点,即程序从此行开始运行,寄存器区的CS 和IP 的值刷新后指向此行,设置程序起点的行如上图所示。并不是源程序的所有行都可以设置起点,如伪操作行和空行不能设置起点。

(4) 单步 (T):执行一条语句,点击此命令使程序执行一条语句,如果是函数则进入函数内部,执行后刷新所有的变量和寄存器的值。如下图,“ADD WANG1,01H”为当前执行行。

6

点击“单步”指令后,执行界面如下图,此时“ADD WANG2,01H”变成当前执行行。

如果当前执行行的下一行有断点,如下图所示。

那么,单步后的当前执行行有断点,执行界面就如下图所示。

如果当前执行行为函数调用,如下图所示,

点击“单步”指令后,当前执行行进入函数内部,执行界面如下图所示,

并不是所有行的语句都适用单步,对于那些试图改变控制计算机和PC 微机通讯电路设置的语句,使用单步命令会导致下位机死机,从而不响应上位机的命令。出现单步死机情况后应先软件复位,如果软件复位成功,则不需要硬件复位,如果软件复位不成功,系统会提示您硬件复位,硬件复位成功后会使能调试工具栏的按钮。

(5) 跳过 (O):跳过一个函数。点击此命令使程序执行一个函数,执行后刷新所有变量和寄存器的值。只有当当前执行行为函数调用,如下图所示,才用此命令,此时当前执行行为“call WW31”,

点击“跳过”指令后,执行界面如下图所示,此时当前执行行为“mov al,05h”。

如果当前执行行为函数调用且下一行有断点,如下图所示,

点击“跳过”指令后的当前执行行有断点,执行界面就如下图所示。

7

如果函数内部有断点,点击“跳过”指令后,程序会停在函数内部有断点的行,如下图所示。

(6) 运行/运行到断点:从当前执行行开始向后运行,如果没有断点,则运行直到程序结束。如果有断点,则运行到断点后停止。

(7) 停止:停止运行,发送此命令使程序停止运行,程序停止后刷新所有寄存器和变量的值。

8.虚拟仪器菜单项(略)

具体各项说明详见“虚拟仪器”部分。 9.窗口菜单项

窗口菜单提供了以下命令,这些命令使您能在应用程序窗口中安排多个文档的多个视图:

(1) 新建窗口 (N):建立一个查看同样文档的新窗口,用此命令来打开一个具有与活动的窗口相同内容的新窗口。您可同时打开数个文档窗口以显示文档的不同部分或视图。如果您对一个窗口的内容做了改动,所有其它包含同一文档的窗口也会反映出这些改动。当您打开一个新的窗口,这个新窗口就成了活动的窗口并显示于所有其它打开窗口之上。

(2) 层叠 (C):按重叠方式安排窗口,用此命令按相互重叠形式来安排多个打开的窗口。 (3) 平铺 (T):按互不重叠平铺方式安排窗口,用此命令按互不重叠形式来安排多个打开的窗口。

(4) 排列图标 (A):安排已最小化窗口的图标,用此命令在主窗口的底部安排被最小化的窗口的图标。如果在主窗口的底部有一个打开的窗口,则有可能会看不见某些或全部图标,因为它们在这个文档窗口的下面。

(5) 窗口1,2,... 转到指定的窗口,TD-ACC 在窗口菜单的底部显示出当前打开的文档窗口的清单。有一个打勾记号出现在活动的窗口的文档名前。从该清单中挑选一个文档可使其窗口成为活动窗口。

10.帮助菜单项(略)

3.2.3 工具栏功能

是前述菜单功能的快捷图形方式,功能不再赘述。 1.标准工具栏

标准工具栏共有十二个按钮,其图如下: 2.编译工具栏

编译工具栏共有五个按钮,其图如下:

3.调试工具栏:调试工具栏共有八个按钮,其图如下:

3.2.4 虚拟仪器界面

1.时域测量

8

(1) 图形及参数显示说明

图形显示可同时显示两路波形或只显示一路波形,用鼠标拖动或键盘方向键移动游标可测量出对应的时间间隔、频率及各自的幅值,且各自幅值的参数与对应波形的颜色一致。

(2) 工具栏功能介绍

:启动时域波形数据采集并显示波形。

:停止时域波形数据采集,此时所显示的波形对应最后采集到的数据。 :将当前显示的波形保存为位图文件。 (3) 按钮功能介绍 a) 时间档位选择框

用来改变时间轴的范围,显示数据为当前时间轴每格表示的时间值。

点击按钮可弹出4ms、8 ms、20 ms、40 ms、100 ms、200 ms、500 ms、1s、2 s、20 s、50 s共11个时间挡,供用户选择。

按钮用来选择当前显示时间档的后一个档 (如1ms), 按钮用来选择当前显示时间档

的前一个档 (如200ms)。

b) 电压选择框

9

点击该组控件中CH1、CH2 旁边的选择框,打对勾表示该路波形显示,否则不显示。点击对应的颜色框,可弹出颜色选择对话框,供用户选择该路波形的显示颜色。

显示框显示的数据为该路波形当前的电压档,即纵向每格代表的电压值。点击按钮,数据显示框可弹出100mv、200mv、500mv、1v、2 v、5 v、10 v共7个电压挡,供用户选择。 数据显示框右边的 按钮用来选择当前显示电压档的后一个档 (如2v),选择当前显示电压档的前一个档 (如500mv)。

c) d) e)

按钮用来

:选中该选择框表示显示游标及对应的测量值,否则只显示波形。 :启动时域波形数据采集并显示波形。

:停止时域波形数据采集,此时显示的波形对应最后采集到的数据。

f) :将当前显示的波形保存为位图文件。 2.X_Y 测量(略) 3.频率特性测量(略)

3.2.5 Debug 调试命令

该软件输出区集成有Debug 调试,点击调试标签,进入Debug 状态,会出现命令提示符“>”,

主要命令叙述如下: A 进入小汇编

格式:A[段址:][偏移量]

A 段址:偏移量——从段址:偏移量构成的实际地址单元起填充汇编程序的目标代码; A 偏移量——从默认的段址与给定的偏移量构成的实际地址单元起填充汇编程序目标代码;

A ——从默认段址:默认偏移量构成的实际地址单元起填充汇编程序的目标代码;输入上述命令后,屏幕显示地址信息,即可输入源程序。若直接回车,则退出命令。汇编程序输入时,数据一律为十六进制数,且省略H 后缀。[m]类操作一定要在[ ]之前标注W(字)或B(字节)。如:MOV B[2010], AX,MOV W[2010], AX。

例:在“>”提示符下键入A2000 ,此时默认的段址CS 为0000,规定偏移量IP 为2000, 屏幕显示与操作为:

表3-2-1 小汇编操作示例 显示内容 键入内容 0000:2000 0000:2003 0000:2004 0000:2005 0000:2007 MOV AX, 1234INC AXDEC AXJMP 2000

B 断点设置

在系统提示符下,键入B ,系统提示[i]:,等待输入断点地址。输入断点地址后回车,系统继续提示[i+1]:。若直接键入回车,则结束该命令。系统允许设置最多10 个断点,断点的清除只能是通过系统复位或重新上电来实现。例:

10

表3-2-2 B命令示例 显示内容 > [0]: [1]: 键入内容 B 2009D 显示一段地址单元中的数据 格式:D[[段址:]起始地址,[尾地址]]

D 命令执行后屏幕上显示一段地址单元中的数据,在显示过程中,可用Ctrl+S 来暂停显示,用任意键继续;也可用Ctrl+C 终止数据显示,返回监控状态。

E 编辑指定地址单元中的数据 格式:E[[段址:]偏移量]

该命令执行后,则按字节显示或修改数据,可通过“空格”键进入下一高地址单元数据的修改,使用“-”键则进入下一低地址单元进行数据的修改,并可填入新的数据来修改地址单元的内容。若输入回车,则结束E 命令。例:

表3-2-3 E命令示例 显示内容 > E 0000:3500 00_ 0000:3501 01_ 0000:3502 02_ 0000:3501 01_ 键入内容 3500- 05 空格 G 运行程序 格式:G=[段址:]偏移量 G[=[段址:]偏移量]

其中G 格式表示无断点连续运行程序,GB 格式表示带断点连续运行程序,连续运行过程中,当遇到断点或按下Ctrl+C 键时,终止程序运行。

M 数据块搬移

格式:M 源地址,尾地址 目标地址 R 寄存器或片内RAM 区显示与修改 格式:R 或R 寄存器名

R 操作后,屏幕显示:CS=XXXX DS=XXXX IP=XXXX AX=XXXX F=XXXX 若需要显示并修改特定寄存器内容,则选择R 寄存器名操作。如RAX ,则显示:AX=XXXX,键入回车键,结束该命令。若输入四位十六进制数并回车,则将该数填入寄存器AX中,并结束该命令。

T 单步运行指定的程序 格式:T[=[段址:]偏移量]

每次按照指定的地址或IP/PC 指示的地址,单步执行一条指令后则显示运行后的寄存器情况。

U 反汇编

格式:U[[段址:]起始地址[,尾地址]]

11

第四章 I386EX 系统板的资源分配

4.1 系统内存分配

系统内存分配情况如图5.1-1 所示。系统内存分为程序存储器和数据存储器,程序存储器为一片128KB 的FLASH ROM,数据存储器为一片128KB 的SRAM。

图4.1-1 系统内存分配

4.2 系统编码

采用内存与IO 独立编址形式,内存地址空间和外设地址空间是相对独立的。内存地址是连续的1M 字节,从00000H~FFFFFH。外设的地址范围从0000H~FFFFH,总共64K 字节。存储器编址见表4.1-1

表4.1-1 存储器编址 系统程序存储器 系统数据存储器 信号线 编址空间 E0000H~FFFFFH 00000H~1FFFFH 4.3 BIOS 说明

表4.1-2 BIOS 说明 中断号 00 01 02 03

绝对地址 00H 04H 08H 0CH 中断内容 除数为0,溢出 单步(Trap) NMI 程序断点 12

备注 系统发出 中断请求 04 05~07 08 09、0A、0B 0C 0D、0E、0F 10 11~13 14 15~1A 1B 1C~1F 20 21~27 28 29 2A-36 37~FF 10H 18~1FH 20H 24H、28H、2CH 30H 34H、38H、3CH 40H 44~4FH 50H 54H~6BH 6CH 70~7FH 80H 84~9FH A0H A4H A8~DBH DC~3FFH 算术溢出 保留 8259 实时钟中断 用户自定义 串行口中断 用户自定义 显示器I/O 保留 查询方式串行通讯 保留 Ctrl+C 保留 程序终止 保留 Ctrl+S处理 Ctrl+P 处理 用户扩展敏感 触发键处理 用于系统扩展 8259 硬中断矢量区 终止程序运行 暂停运行 连接打印机 特殊键处理 4.4 INT 10 功能说明

INT 10 功能使用说明如表4.1-3 所示。

表4.1-3 INT 10 功能使用说明 入口:AH=00H,AL=01H 功能:清屏 入口:AH=01H,AL=数据 功能:写AL 中的数据到显示屏上 入口:AH=06H,DS:BX=字串首地址,且字串尾用00H 填充 功能:显示一字串,直到遇到00H 为止

13

第二部分 实验教程

实验一 系统认识及程序调试练习

实验目的

1.掌握TD-ACC+实验教学系统联机软件中的各菜单功能,熟练掌握其中的程序编辑、编译、链接、加载及调试方法。

2.了解TD-ACC+实验教学系统的系统资源及硬件操作环境。

实验设备

PC 机一台,TD-ACC+实验系统一套

实验内容

1.阅读“第一部分 i386EX 系统板介绍”,了解TD-ACC+实验教学系统的构成; 2.读懂实验程序,对实验程序进行编辑、编译、链接、加载及调试练习。

实验原理

调试下列程序:在显示器上显示一行26个英文字母,换行后重复进行。 第一种实现方法:显示两行字母之间的延时时间采用软件延时方式。 实验程序1(采用软件延时方式) CODE SEGMENT

ASSUME CS:CODE

START: MOV CX,001AH ;显示字符个数(26)→CX MOV AH, 01 MOV AL, 13

INT 10H ;显示换行

CALL DELAY ;调用延时子程序

MOV AL,41H ;送字符‘A’的ASCⅡ码 AGAIN: MOV AH,01 ;显示一个字符 INT 10H

INC AL ;下一显示字符的ASCⅡ码 LOOP AGAIN ;连续显示26个字母 JMP START ;重复进行 DELAY: PUSH CX ;延时子程序

MOV CX,0FFFFH DEL1: PUSH AX POP AX LOOP DEL1 POP CX i386EX CPU RET OUT1 TMROUT1 CODE ENDS

IRQ7 END START INT3 1M 第二种实现方法:显示两行字母之间的间隔时TMRCLK1 分间用内部定时器8254进行控制,时间到由定时器的频OUT端发出脉冲信号到中断控制器8259的中断信24MHz CLK2 号输入端,向CPU请求中断,在中断程序中完成显示一行字母的功能。

图1-1 14

硬件接线如图1-1,用排线将i386内部1#定时器输出OUT1连接到8259的一个中断请求端IRQ7。

8254与8253类似,它们的编程方式是兼容的,其控制字格式如下: D7 D6 D5 D4 D3 D2 D1 D0 SC SC 0 RW1 RW0 M2 M1 M0 BCD 1

SC1 SC0——所选计数器 M2 M1M0——工作方式选择 0 0 计数器0 0 0 0 方式0 0 1 计数器1 0 0 1 方式1 1 0 计数器2 X 1 0 方式2 1 1 无意义 X 1 1 方式3 RW1 RW0——读/写格式 1 0 0 方式4 0 0 锁定当前计数值(供CPU读取) 1 0 1 方式5 0 1 只读/写低8位 BCD——计数格式 1 0 只读/写高8位 0 计数器按二进制格式计数 1 1 先读/写低8位,后读/写高8位 1 计数器按BCD码格式计数

实验程序2(采用定时中断方式) CODE SEGMENT

ASSUME CS:CODE

START: MOV AX,OFFSET IRQ7;填写8259的7号中断矢量入口地址的偏移量 MOV SI,003CH ;填写8259中断7的中段矢量 MOV [SI],AX ;填偏移量矢量 MOV AX,CS ;填写8259中断矢量入口地址的段地址 MOV SI,003EH ;填写7号中断段地址矢量 MOV [SI],AX

CLI ;关系统总中断 CALL SYSINTI ;调用系统初始化子程序 MOV DX,0F043H MOV AL,076H ;初始化1#定时器 OUT DX,AL

MOV DX,0F041H

MOV AL,10H ;定时10ms时间常数低8位 OUT DX,AL ;写1#定时器定时常数的低字节 MOV X,0F041H MOV AL,27H ;定时10ms时间常数高8位

OUT DX,AL ;写1#定时器定时常数的高字节 MOV BX,64H

MOV AH, 01 MOV AL, 13

INT 10H ;显示换行 AGAIN: STI ;打开系统总中断 HLT ;停机等待直到有中断产生 JMP AGAIN ;继续

15

IRQ7: DEC BX JNZ FINISH MOV BX,64H MOV CX,001AH MOV AL,41H AGAIN1: MOV AH,01 INT 10H

INC AL LOOP AGAIN1

MOV AH, 01 FINISH: SYSINTI: MOV AL, 13 INT 10H MOV AL,20H OUT 20H,AL IRET

MOV AX,8000H OUT 23H,AL XCHG AL,AH OUT 22H,AL OUT 22H,AX MOV DX,0F822H MOV AL,70H OUT DX,AL MOV DX,0F824H MOV AL,0B2H OUT DX,AL MOV DX,0F832H MOV AL,0AH OUT DX,AL MOV DX,0F834H MOV AL,15H OUT DX,AL MOV AL,11H OUT 20H,AL MOV AL,08H OUT 21H,AL MOV AL,04H OUT 21H,AL MOV AL,01H OUT 21H,AL

MOV AL,6FH OUT 21H,AL MOV AL,11H OUT 0A0H,AL MOV AL,30H OUT 0A1H,AL MOV AL,02H

;中断结束 ;中断返回 ;系统初始化子程序(已保存在机器中) ;扩展IO使能 ;初始化管脚配置P2CFG,配置CS0# ;初始化管脚配置P3CFG,配置主片IRQ7 ;初始化管脚配置INTCFG ;初始化管脚配置TMRCFG ;将GATE1接VCC ;初始化主片8259 ;写主片8259的中断屏蔽字,允许主片的IRQ7(用 户程序使用)和IRQ4(系统通讯用) ;初始化从片8259 16

OUT 0A1H,AL MOV AL,01H OUT 0A1H,AL MOV AL,0FFH OUT 0A1H,AL RET CODE ENDS

END START

实验步骤

1.打开微机及实验系统电源。

2.如提示联机有问题,检查USB及串口通讯线是否正常连接,并按复位按钮(置于实验面板上的i386EX 系统小板上)。

3.编辑程序1。然后编译链接并加载,如中间出现错误,则按提示进行修改,直至加载成功。

4.按工具栏上的“RUN”按钮执行程序。

5.观察输出窗口的显示内容并记录。如结果不正确,使用单步、跳过、断点方式运行调试程序。

6.试用单步、跳过、断点方式运行调试程序,记录运行中间寄存器变化及显示结果。 7.编辑程序2。其中系统初始化子程序已保存在机器上,文件名:c:\\shiyan\\csh.asm。打开该文件,将该文件复制粘贴到编辑程序2中。

8.用排线连接控制计算机上的IRQ7与OUT1信号。 9.同步骤5。

10.改变编辑程序2中软件计数器BX的值,调整两行字母之间的显示时间间隔,重复以上步骤。

预习报告要求

1.写明实验目的、内容、步骤等。 2.根据实验程序画出程序框图。 3.回答思考问题。

思考题

1.集成到i386EX芯片内部的主要外围接口电路有哪些?

2.扩展I/O 接口地址信号/IOY0、/IOY1,以及内部1#定时器控制寄存器TMRCON、数据寄存器TMR1的地址分别为多少?

3.程序中用“INT 10H”输出的结果显示在主界面窗口的哪个区?

4.生成可执行文件需要经过哪些步骤?要使可执行文件能够运行还需要经过哪个步骤?

5.阅读程序2,写出计数器时间常数的计算过程。按照该程序显示两行字母之间的时间间隔是多少?

6.如何判断程序的段地址,从而得到程序加载的物理地址?是否可由Debug显示程序的机器码?写出操作步骤。

实验报告要求

1.整理实验结果,包括使用单步、跳过、断点方式运行调试程序时,记录的中间寄存器变化及运行结果。

2.对实验中使用的命令进行小结。

17

3.实验过程中遇到的问题进行分析、总结。

实验二 D/A转换实验

实验目的

1.学习掌握D/A转换的基本原理及TLC7528 芯片的性能。 2.学习利用DAC产生连续波形的编程方法。

实验设备

PC 机一台,TD-ACC+实验系统一套

实验内容

编写实验程序,实现D/A转换产生周期性同步的锯齿波和方波(如图2-1),并用虚拟示波器观察波形。

图2-1

实验原理

本实验采用TLC7528 芯片,它是8 位、并行、两路、电压型输出数模转换器。其主要参数如下:转换时间100ns,满量程误差1/2 LSB,参考电压-10V ~ +10V,供电电压+5V~+15V,输入逻辑电平与TTL 兼容。

方法一:软件延时

控制计算机按一定规律连续输出数据到DAC转换器,转换后产生相应的连续波形。实验中的锯齿波由数据00H~FFH连续循环输出产生,上升幅度为01个数据量,即每输出一次后数据加一,数据输出的时间间隔由软件延时控制;方波由两个数据00H和FFH交替输出产生,每当锯齿波数据由FFH变到00H(用加一指令即可)时方波变换为另一个数据(00H变为FFH或FFH变为00H),从而实现两波形的同步效果。

实验平台中的TLC7528 的八位数据线、写信号线和通道选择控制线已接至控制计算机的总线上。片选线预留出待实验中连接到相应的I/O 片选上,具体如图2-2。

18

图2-2

以上电路是TLC7528 双极性输出电路,输出范围-5V ~ +5V。“W101”和“W102”分别为A路和B路的调零电位器,实验前先调零,用DEBUG命令直接往TLC7528 的A口和B口中送入数字量80H,分别调节“W101”和“W102”电位器,用万用表分别测“OUT1”和“OUT2”的输出电压,应在0mV 左右。

控制计算机-IOW → 数模转换器-WR: IOW为D/A的写信号;

控制计算机-IOY1→数模转换器-CS: IOY1为D/A转换器片选信号,其地址可选为0640H~0641H;

控制计算机-XD0~XD7→数模转换器- D0~D7:控制计算机的八位数据线接至D/A转换器的八位数据输入端;

控制计算机-A0→数模转换器- A0:A0为0选中通道A,为1选中通道B。 参考流程: 开始 变量1 、2=0 变量2送D/A通道 B 变量1送D/A通道A 调用延时子程序 变量1加一 N 变量1是否为0? Y 变量 2取反

19

图2-3

方法二:利用定时器控制输出间隔时间。同实验一,对控制计算机内的1#计数器编程,定时时间1ms,时间到由定时器OUT1产生的信号接到控制计算机的中断请求IRQ7申请中断,在中断程序中进行D/A数据输出。

自行设计接线图及程序流程图。

实验步骤

1.按图接线,画“о”的线需自行连接,不带“о”的线电路板上已连好无须连接。连接好后,请仔细检查,无误后方可接通电源。

2.D/A转换器调零。在输出窗口区/调试窗口下的“>”提示符后键入O 0640 80↙,用虚拟万用表测量数模转换单元OUT1端,调电位W101使该端输出电压为0.00V,同样键入O 0641 80↙,用虚拟万用表测量数模转换单元OUT2端,调电位W102使该端输出电压为0.00V。

3.编辑程序1,延时子程序文件名:c:\\shiyan\\yanshi.asm可以打开并粘贴到程序中。然后编译链接并加载,如中间出现错误,则按提示进行修改,直至加载成功。

4.按工具栏上的“RUN”按钮执行程序。

5.点击虚拟示波器菜单,进入虚拟示波器界面,按“运行”按钮观察并记录OUT1、OUT2输出波形。

6.如示波器显示不正确,运用调试命令调试程序,找出程序中的问题,使之实现预期的结果。

7.完成方法二的接线,编辑程序2,重复步骤3~6。

8.改变计数器的定时时间,以改变锯齿波的周期,重复以上步骤,用示波器观察输出波形并记录。

预习报告要求

1.写出实验目的、内容、原理、步骤等,画出实验电路图。 2.完成方法二的电路原理图,画出程序流程。

3.根据流程图编写实验程序,正确选取8254、8259的控制字和工作方式,计算8254计数初值,确定中断向量。

4.回答思考问题。

思考题

如实验中的8253计数器定时时间为1ms,则锯齿波的周期为多少?

实验报告要求

1.整理实验数据,画出实验结果波形。 2.附上调试通过的程序清单。

3.实验过程中遇到的问题进行分析、总结。

20

实验三 A/D转换实验

实验目的

1.学习掌握A/D转换的基本原理及ADC0809器件的性能。 2.掌握实验教学系统中A/D转换单元的电路原理。 3.了解模数转换器的采样作用及学习选择采样周期。

实验设备

PC 机一台,TD-ACC+实验系统一套

实验内容

1.当输入电压为–5.00V到+5.00V之间变化时,由显示器上读取A/D转换数值。 2.当A/D输入为连续信号时,由A/D输入并由D/A直接输出,用示波器观察D/A端输出的相应信号。改变采样周期观察波形何时失真,观察D/A器件的零阶保持器的作用。

实验原理

1.ADC0809 芯片主要包括多路模拟开关和A/D转换器两部分,其主要特点为:单电源供电、工作时钟CLOCK 最高可达到1200KHz、8 位分辨率,8个单端模拟输入端,TTL 电平兼容等,可以很方便地和微处理器接口。TD-ACC+教学系统中的ADC0809 芯片,其输出八位数据线以及CLOCK 线已连到控制计算机的数据线及系统应用时钟1MCLK(1MHz)上。其它控制线根据实验要求可另外连接 (A、B、C、STR、/OE、EOC、IN0~IN7)。

其中IN0~IN5的模拟量输入允许范围:0V~4.98V,对应数字量00H~FFH,2.5V对应80H。IN6和IN7两路由于接了上拉电阻,所以模拟量输入允许范围:-5V~+4.96V,对应数字量00H~FFH。0V对应80H。模数转换单元原理图如图3-2。

根据实验内容一,可以设计出如图3-1所示的实验线路图。–5.00V到+5.00V的输入电压由单次阶跃单元电路的电位器进行调节获得,考虑模拟量输入允许范围(-5V~+4.96V)选取IN7为模拟量输入端,因而地址线A、B、C应接高电平(+5V),ADC0809转换器的启动信号START(STR)由内部1#定时器输出信号OUT1控制,转换结束后数据锁存在三态

21

输出锁存器中,当计算机读取数据时,IN语句中的地址信号IOY0有效,使得ADC0809输出允许信号OE有效,转换好的数据出现在ADC0809数据端口上供计算机读取。

图3-1

模数转换单元-A,B,C→+5V:选择A/D输入通道为INT7,地址码为“111”;

单次阶跃单元-X→+5V,U14-Z→-5V:使U14单元的Y端输出 –5 V~ +5V连续可调电压;

控制计算机-分频器→模数转换单元-CLOCK:提供给A/D器件的时钟信号,频率为1MHz;同时该信号提供给内部计数器作时钟。

控制计算机-OUT1→模数转换单元-STR:控制计算机的1#计数器输出定时信号,启动A/D转换器。

控制计算机-/IOY0→模数转换单元-/OE:控制计算机的端口有效地址/IOY0使模数转换ADC0809的输出允许控制OE有效,ADC0809三态输出锁存缓冲器中的数据可供计算机读取。

控制计算机- XD0~XD7→模数转换单元- D0~D7:控制计算机的数据线接A/D转换器的八位数据线。

XD0-XD7

图3-2

参考流程:

开始 22 调用初始化子程序

图3-3

控制计算机内部定时器定时1ms,每1ms在OUT1端产生一个负脉冲,经反相后变为正脉冲(如图3—2)启动A/D转换器,定时器的工作方式选择方式4(软件触发的选通信号发生器),时间到产生一个负脉冲后便一直维持高电平,除非写入新的计数初值。经过软件短延时(等待A/D转换结束)后,将A/D 转换完后的数据量读入到控制计算机中,程序中通过调用内部中断INT 10H,将数据最后显示在输出区窗口。程序中使用的延时及显示子程序已保存在机器中。

显示子程序:

DISPLAY: PUSH AX

MOV AX,0001 INT 10 POP AX MOV CL,04 MOV DL,AL SHR AL,CL CMP AL,09 JNA DLAY1 ADD AL,07 NOP

DLAY1: ADD AL,30

MOV

INT AND CMP JNA ADD

DLAY2: ADD

MOV MOV INT RET

AH,01 10

DL,0F DL,09 DLAY2 DL,07 DL,30 AL,DL AH,01 10

延时子程序:

LOOP DEL DELAY: PUSH CX

POP CX MOV CX,1000H

RET DEL: PUSH AX

POP AX

2.对连续信号进行采样,然后再还原输出为模拟信号。由正弦波单元的“OUT”端

23

输出周期性的正弦波信号,通过模数转换单元的“IN7”端输入, 系统用定时器作为基准时钟(初始化为10ms),定时采集“IN7”端的信号,A/D转换结束信号EOC接中断控制器8259的IRQ7请求中断,响应中断后,在中断服务程序中读入转换好的数字量,再输出给数模转换单元,在数模转换单元的“OUT1”端输出相应的模拟信号。实验线路图如图3-4 所示。

图3-4

采样周期T= TK×10ms,TK 的范围为01~ FFH,程序中将其定义在某个数据单元(如2600H),相当于软件计数器,通过修改TK 就可以灵活地改变采样周期。

定时器的工作方式可选择方式2——分频器或方式3——方波发生器(参考实验一程序),计数初值为10ms。

参考流程: 中断开始

开始

N 采样周期到否? 初始化8259 (TK=0?) Y 关中断

读取采样值

调用系统初始化子程序 初始化8254 还原采样周期变量初值 赋采样周期变量初值TK 采样周期变量TK-1 开中断 等待中断 图3-5

24

送D/A输出 写中断结束字 中断返回

实验步骤

内容一:

1.按图3-1接线。用“短路块”分别将信号源单元中的ST插针与+5V插针短接;单次阶跃单元中的X与+5V,Z与—5V用短路块短接。其他画“о”的线需自行连接。连接好后,请仔细检查,无误后方可接通电源。

2.编辑程序1,可以打开显示子程序(文件名:c:\\shiyan\\xianshi.asm)和延时子程序(文件名:c:\\shiyan\\yanshi.asm)并粘贴到实验程序中。然后编译链接并加载,如中间出现错误,则按提示进行修改,直至加载成功。

3.运行程序。观察显示器输出区结果窗口中有无数据显示,如没有数据或显示不正确,则检查接线和程序,并使用调试命令调试程序,直至得到正确结果。

4.调节单次阶跃单元的电位器,使Y端电压由–5.00V到+5.00V变化,用虚拟仪器中的万用表测量A/D的输入电压,记下结果窗口中显示的数值,填入如下形式的表格。表格中的模拟输入电压应填写实测值,并读出万用表中显示的小数。

表3-1 模拟输入电压(V) 显示器数码(H) 内容二:

…… …… 1.调节正弦波单元输出波形,用虚拟示波器观察,使得正弦波信号幅值不超出±5V,信号周期约为4s。

2.按图3-4接线,只连接线上带“о”的线。

3.编辑程序2,可以打开初始化子程序(文件名:c:\\shiyan\\chushihua.asm)并粘贴到实验程序中。然后编译链接并加载,如中间出现错误,则按提示进行修改,直至加载成功。。

4.选择Tk=04H,运行程序,用虚拟示波器同时观察正弦波单元输出端(即A/D输入端INT7)和D/A输出端OUT1波形并记录。

5.选择若干Tk值,重复3,观察不同采样周期T时的输出波形并记录。

预习报告要求

1.写明实验目的、内容、步骤等。

2.画出内容1参考子程序流程图,写出该子程序的入口条件。 3.根据实验内容编写实验程序,正确选取8254、8259的工作方式和控制字,计算8254计数初值。

4.画出填写实验数据的表格。 5.回答思考问题。

思考题

1.程序流程中第一个短延时子程序与第二个长延时子程序的作用分别是什么? 2.ADC0809芯片的OE是什么信号?程序中的什么语句使其有效?

3.ADC0809转换结束信号是什么?画出它与启动信号START对应的时序波形。 4.采样周期T取得越小是否对信号恢复越有利? 5.数模转换器为什么具有零阶保持器的作用?

25

实验报告要求

1.整理实验数据,画出A/D转换特性图(横坐标为模入电压V(mv)、纵坐标为对应的数字量D(H)),分析其线性度。

2.附上调试通过的程序清单。

3.实验过程中遇到的问题进行分析、总结。

实验四 最小拍控制系统

实验目的

掌握最少拍有纹波系统和最少拍无纹波系统的计算机控制脉冲传函数D(Z)的设计方法。

实验设备

PC 机一台,TD-ACC+实验系统一套

实验内容

1.对给出的模拟对象,针对阶跃输入进行最小拍有纹波系统计算机控制算法D(Z)设计,观测系统输出及控制器输出波形。

2.对给出的模拟对象,对针对斜坡输入进行最小拍无纹波系统计算机控制算法D(Z)设计,观测系统输出及控制器输出波形。

实验原理

1.D(Z)算法:

图4—1中R为输入,C为输出,计算机对误差E定时采样按D(Z)计算输出控制量U。图中K=5。

R + 1?e?TSC K D(Z) S S(S?1) -

26

图4-1

采样周期T=1S,E(Z)为计算机输入,U(Z)为输出,有:

U(Z)K0?K1Z?1?K2Z?2?K3Z?3? D(Z)? (4-1) E(Z)1?P1Z?1?P2Z?2?P3Z?3式中Ki与Pi取值范围:–0.9999~+0.9999,计算机分别用相邻三个字节存储其BCD

码。最低字节存符号,00H为正,01H为负。中间字节存前2位小数,最高字节存末2位小数。例有系数K0??0.1234,则程序中数据段定义语句为:K0 DB 01H,12H,34H。

程序运行时转换为二进制模2定点小数。注意,D(Z)中缺项相当于系数为零,应在相应内存三字节全存入00H。

将D(Z)式写成差分方程,则有:

UK?K0EK?K1EE?1?K2EK?2?K3EK?3?P1UK?1?P2UK?2?P3UK?3 式中EK ~ EK-3,误差输入;UK ~ UK-3 ,计算机输出。

计算机运算还设有溢出处理,当计算机控制输出超过00H~FFH时(对应于模拟量-5V~+5V),则计算机输出相应的极值00H或FFH,同时在相应的内存单元也存入极值。

每次计算完控制量,计算机立即输出,并且将各次采入的误差与各次计算输出作延时运算,最后再作一部分下次的输出控制量计算。这样当采入下次误差信号时,可减少运算次数,从而缩短计算机的纯延时时间。

2.模拟连续系统的参数整定

被控对象由模拟电路模拟,因为电路中所接电阻、电容参数有一定误差,所以应加以整定,可先整定一阶惯性环节,再整定积分器,应使二者串联时尽量接近给定的开环传递函数学模型。

3.接线(如图4—2所示)

控制计算机的“OUT1”表示i386EX 内部1#定时器的输出端,定时器输出的方波周期=定时器时常,“IRQ7”表示386EX 内部中断控制器主片8259 的7 号中断请求输入端,接采样中断源,“DIN0”表示386EX 的I/O 管脚P1.0,在这里作为输入管脚用来检测信号是否同步。系统误差信号E 通过模数转换单元“IN7”端输入,控制计算机的定时器作为基准时钟(初始化为10ms),定时采集“IN7”端的信号,通过采样中断读入信号E 的数字量,并将采样值进行D(Z)计算,得到相应的控制量,再把控制量送到数模转换单元,在“OUT1”端输出相应的模拟信号,来控制对象系统。

27

图4-2

4.采样周期T

8088微机的8253产生定时信号,定时10ms,采样周期T为:

T=TK×10ms

对应的范围:10ms~2550ms。例如当T=1S,有:

T(S)1??100?64H TK?0.01(S)0.01实验步骤

最小拍有纹波

1.按图4—2接线,模拟电路部分与计算机部分分开连接,待模拟部分参数整定好后再连接。先整定一阶惯性环节参数,再整定积分整定完二者串接使传函为:

G(S)?5

S(S?1)整定完模拟电路参数再按图4—2连好。

2.打开最小拍程序C:\\shiyan\\zsp.asm。

3.按要求计算D(Z)各系数,对程序开头的数据赋值语句进行修改。 4.编译、链接、加载程序。

5.信号源置阶跃信号,信号长度为6S,幅值为2V。用示波器观察输入R波形,在输入R为零时启动最小拍程序,对照阶跃输出R观察输出C,再对照观察输出C和控制器输出OUT1。记录波形。

最小拍无纹波

1.信号源置单位斜坡信号(即每秒钟信号上升幅度为1V),信号长度为6S。

28

2.实验程序同上,修改程序开头的数据赋值语句,控制器D(Z)各系数按针对斜坡输入的无纹波设计。

3.编译、链接、加载程序。

5.用示波器观察输入R波形,在输入R为零时启动最小拍程序,对照阶跃输出R观察输出C,再对照观察输出C和控制器输出OUT1。记录波形。

预习报告要求

1. 对实验所给控制对象进行阶跃输入最小拍有纹波系统的D(Z)的设计,按式4—1计算各系数Ki、Pi。并求出控制器输出u(0)、u(1)、u(2)、u(3)、u(4)的值,以及系统输出c(0)、c (1)、c (2)、c (3)、c (4)的值。

2. 对实验所给控制对象进行斜坡输入最小拍无纹波系统的D(Z)的设计,按式4—1计算各系数Ki、Pi。并求出控制器输出u(0)、u(1)、u(2)、u(3)、u(4)的值,以及系统输出c(0)、c (1)、c (2)、c (3)、c (4)的值。 3. 写出预习报告。

思考题

最少拍系统受什么限制而使调整节拍增加?

实验报告要求

1.整理实验波形,对实验调试过程加以总结。 2.结果进行分析,是否与理论计算相一致。 3.对实验提出改进。

实验五 积分分离PID控制

实验目的

1. 学会PID三个系数的选取。

2.了解积分分离值的模拟实验选取。

实验设备

29

PC 机一台,TD-ACC+实验系统一套

实验内容

用临界比例带法整定PID控制器参数及积分分离值的模拟实验选取。

实验原理

1.原理

如图5—1,R为输入,C为输出,计算机不断采入误差E,进行积分判别与PID运算,然后判结果是否溢出(若溢出则取最大或最小值),最后将控制量输送给系统。

P R + E + + I + – D ?TSC 501?e (0.2S?1)(0.25S?1)S 图5—1

de(t)]。

0dte(t)为控制器输入;U(t)为控制器输出。用矩阵法算积分,用向后差分代替微分,采样周期为T,算法为:

PID控制规律为:

1U(t)?KP[e(t)?TI? te(t)?TU(t)?KP{E(K)?TI?E(i)?i?1KKTD[E(K)?E(K?1)]}TK?T?KP?E(K)?PTIKKP?TDE(i)?[E(K)?E(K?1)]?Ti?1i

简记为:UK?P?EK?I?Ei?1?D?(EK?EK?1)

P、I、D范围为:-0.9999~+0.9999,计算机分别用相邻三个字节存储其BCD码。

最低字节存符号,00H为正,01H为负。中间字节存前2位小数,最高字节存末2位小数。例有系数P为0.1234,I为0.04秒,D为0。

计算机存有初始化程序,把十进制小数转换成二进制小数,每个小数用两个字节表示。在控制计算程序中按定点小数进行补码运算,对运算结果有溢出处理。当运算结果超出00H或FFH时则用极值00H或FFH作为计算机控制输出,在相应的内存中也存入相应的极值00H或FFH。

积分运算也设有溢出处理,当积分运算溢出时控制量输出极值,相应内存中也存入极值。计算机还用2F00H内存单元所存的数值作为积分运算判定值EI,误差E的绝对值小于EI时积分,大时不积分。EI的取值范围:00H~7FH。

控制量UK输出至D/A,范围:00H~FFH,对应–5V~+4.96V ,误差E模入范围与此

30

相同。

2.定调节参数与系统开环增益

可用临界比例带法整定参数。设采样周期为50ms,先去掉微分与积分作用,只保留比例控制,增大KP,直至系统等幅振荡,记下振荡周期TU和振荡时所用比例值KPU,按以下公式整定参数。

T取TU 比例KP?0.27KPU(即P?0.27KPU)

积分时间TI?0.4TU(即 I?16KP?T?0.11KPU) TI微分时间TD?0.22TU(即D?KP?TD?0.36KPU) TPID系数不可过小,因为这会使计算机控制输出也较小,从而使系统量化误差变大,甚至有时控制器根本无输出而形成死区。这时可将模拟电路开环增益适当减小,而使PID系数变大。例:PID三个系数都小于0.2,模拟电路开环增益可变为K/5,PID系数则都相应增大5倍。另一方面PID系数不可等于1,所以整个系统功率增益补偿是由模拟电路实现。例如若想取P=5.3,可取0.5300送入,模拟电路开环增益亦相应增大10倍。

3.接线与线路原理

图5—2

4.采样周期T

计算机8253产生定时信号,定时10ms,采样周期T为:T=TK×10ms

TK事先送入2F60H单元,范围是01H~FFH,则采样周期T的范围为10ms~2550ms。按TU计算出的T如果不是10ms的整数倍,可以取相近的TK。

实验步骤

1.按图5—2接线,模拟电路部分与计算机部分分开连接,待模拟部分参数整定好后

31

再连接。先整定第一个惯性环节,使得时间常数、放大倍数符合数学模型要求,第二个惯性环节,同样使得参数达到要求。

2.打开最小拍程序C:\\shiyan\\jffl.asm。 3.编译、链接、加载程序。

4.信号源置阶跃信号,信号长度为5S、幅值为2.5V。

5.程序开头的数据赋值语句修改KP,开始时可任取,如取KP=0.6。 6.运行程序,用虚拟示波器观察输出。

7.选不同的KP,重复5、6,直至等幅振荡,记下TU与KPU,TU填入表5—1上部。(如KP取0.99仍不振荡则应增大采样周期或增大模拟电路增益,增大增益可调整图5—2中500K电阻)。

8.根据临界比例带法计算PID三参数,对程序开头的数据赋值语句进行修改,积分分离值EI取7FH,在输入R为零时启动程序,对照输入R观察输出C,用示波器测出MP、ts。

9.改变积分分离值EI,对程序开头的数据赋值语句进行修改,在输入为零时重新启动程序,对照输入R观察输出C,看Mp、ts有无改善,并记录Mp、ts参数。

10.根据PID三个系数的不同控制作用,适当加以调整,同时可配合改变EI值,在输入为零时启动程序,对照输入R观察输出C。记录Mp、ts参数值。

11.按上述方法重复做几次,直到使M p < 20% ,ts < 1S,在表5—1Ⅲ栏中填入此时所用各参数与结果。

12.用表5—1Ⅲ栏PID参数,但积分分离值改为7FH,在输入R为零时启动程序,将参数与结果填入表5—1Ⅳ栏内。

T= 05H K pu= T u=

表5—1

参 数 项 目 Ⅰ用临界比例法整定参数 Ⅲ较佳的PID控制参数 EI 7F P I D Mp ts Ⅱ用Ⅰ栏PID参数,但EI修改 30 Ⅳ用Ⅲ栏PID参数,EI为7FH 7F

预习报告要求

1.熟悉积分分离PID算法及用临界比例带法整定参数的理论方法。 2.写出预习报告,并在预习报告中回答思考题。

思考题

1. 当积分判定值取最大值时,还是积分分离式控制吗?若取最小呢? 2. 试分析比例控制、微分控制、积分控制在系统中的控制作用。

实验报告要求

1.整理实验数据,总结程序调试过程。

2.对实验结果进行分析,是否与理论计算相一致。

32

3.对实验提出改进。

实验六 大林算法控制

实验目的

1.掌握大林算法的D(Z)设计。

33

2.了解振铃的产生并掌握大林算法消除振铃的方法。

实验设备

PC 机一台,TD-ACC+实验系统一套

实验内容

1. 对给出的带纯滞后的模拟对象,针对阶跃输入进行大林算法的D(Z)设计,观测系统输出及控制器输出波形。

2. 观察控制器输出振铃现象并修改D(Z)直至消除。

实验原理

对于一些工业中大量存在有纯滞后特性的系统,用PID控制效果不好,采用大林算法效果较好。实验模拟了含有纯滞后一个采样周期T的系统,D(Z)算法是同用形式,对于可能出现的控制输出振铃现象,可以修改D(Z)去消除。

1. 实验对象

如图6—1,滞后一拍由采样保持器延时一拍输入模拟量实现。

?TS R + 1?e?TSC 10eD(Z) SS?1 -

图6—1

采样周期T=0.2S,大林算法的设计目标是使整个闭环系统所期望的传递函数Φ(s) ,

e?TS相当于一个纯滞后环节和一个惯性环节相串联,即:?(S)?。式中?=0.1秒。

?S?12. D(Z)算法

E(Z)为计算机输入,U(Z)为输出,有:

U(Z)K0?K1Z?1?K2Z?2?K3Z?3? D(Z)? (6-1) E(Z)1?P1Z?1?P2Z?2?P3Z?3式中Ki与Pi取值范围:–0.9999~+0.9999,计算机分别用相邻三个字节存储其BCD码。

最低字节存符号,00H为正,01H为负。中间字节存前2位小数,最高字节存末2位小数。例有系数K0??0.1234,则程序中数据段定义语句为:K0 DB 01H,12H,34H。

程序运行时转换为二进制模2定点小数。注意,D(Z)中缺项相当于系数为零,应在相应内存三字节全存入00H。

将D(Z)式写成差分方程,则有:

UK?K0EK?K1EE?1?K2EK?2?K3EK?3?P1UK?1?P2UK?2?P3UK?3 式中EK ~ EK-3,误差输入;UK ~ UK-3 ,计算机输出。

计算机运算还设有溢出处理,当计算机控制输出超过00H~FFH时(对应于模拟量-5V~+5V),则计算机输出相应的极值00H或FFH,同时在相应的内存单元也存入极值。

3. 采样周期T

8088微机的8253产生定时信号,定时10ms,采样周期T为: T=TK×10ms

对应范围:10ms~2550ms。实验取T=0.2S=20×10ms,TK=20=14H。 4. 接线(如图6—2所示)

34

图6—2

上图中,控制计算机的“OUT1”表示386EX 内部1#定时器的输出端,定时器输出的方波周期=定时器时常,“IRQ7”表示386EX 内部主片8259 的7 号中断,用作采样中断,“DIN0”表示386EX 的I/O 管脚P1.0,在这里作为输入管脚用来检测信号是否同步。

这里,系统误差信号E 通过模数转换单元“IN7”端输入,控制计算机的定时器作为基准时钟 (初始化为10ms),定时采集“IN7”端的信号,通过采样中断读入信号E 的数字量,并将采样值进行D(Z)计算,得到相应的控制量,再把控制量送到数模转换单元,在“OUT1”端输出相应的模拟信号,控制对象系统。

值得说明的是,在本实验中,纯滞后环节是通过程序控制采样保持器 (PU1) 的输出滞后D/A 输出一拍来模拟实现的。

实验步骤

大林算法控制

1.按图6—2接线,信号源波形选择为阶跃档,信号长度为6S,幅值为2V。 2.打开大林算法程序C:\\shiyan\\dlsf.asm。

3.按要求计算D(Z)各系数,对程序开头的数据赋值语句进行修改。 4.编译、链接、加载程序。

5.在输入R为零时启动最小拍程序,对照阶跃输出R观察输出C,再对照观察输出C和控制器输出OUT1,并记录系统的性能指标。

振铃的消除

1.在上述实验基础上,用示波器观察数模转换单元的“OUT1”端,看是否有振铃现

35

象。若无振铃,可能是对象整定有误差,此时只要将图6—2 中的25K 电阻对应的电位器微调一下即可。

2.当出现振铃现象时,将消除振铃因子后的D(Z)算式参数写入程序,运行程序,观察振铃现象是否消除。观察输出C,将实验结果填入下表

表6—1 修改前 不消除振铃 修改后 抵消振铃 K0 K1 K2 K3 P0 P1 P2 Mp ts 预习报告要求

1. 对实验所给控制对象进行大林算法的D(Z)的设计,按式6—1计算各系数Ki、Pi。

2. 找出引起振铃的因子,修改D(Z)系数。 3. 写出预习报告。

思考题

1. 大林算法与PID算法有什么本质区别?

2. 为什么要消除振铃?消除振铃前后系统输出有什么不同?

实验报告要求

1.整理实验波形,对实验调试过程加以总结。 2.结果进行分析,是否与理论计算相一致。 3.对实验提出改进。

36

计 算 机 控 制 技 术 实验指导书

李敏编

信息工程学院 二零一一年九月

37

本文来源:https://www.bwwdw.com/article/xwfw.html

Top