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

更新时间:2024-01-01 08:52:01 阅读量: 教育文库 文档下载

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

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

自 动 化 学 院

2011年

目 录

实验一 A/D转换实验........................................ 3 实验二 D/A 转换实验 ....................................... 6 实验三 步进电机实验 ........................................ 9 实验四 直流电机闭环调速实验 ............................... 11 实验五 大林算法实验 ....................................... 20

共28页 第2页

实验一 A/D转换实验

一.实验目的

1.学习掌握模/数信号转换的基本原理; 2.掌握ADC0809芯片的使用方法。 二.实验设备

PC机一台、TDN 86/51教学实验系统一台。 三. 实验内容及步骤

(一) ADC0809在8086计算机系统中的应用 1.ADC0809芯片介绍

ADC0809包括一个8位的逼近型的ADC部分,并提供一个8通道的模拟多路开关和联合寻址逻辑。用它可直接输入8个单端的模拟信号,分时进行A/D转换,再多点巡回监测、过程控制等领域中使用非常广泛。ADC0809的主要技术指标为:

·分辨率:8位 ·单电源:+5V

·总的不可调误差:±1LSB ·转换时间:取决于时钟频率 ·模拟输入范围:单极性0~5V ·时钟频率范围:10KHZ~1280KHZ ADC0809芯片的内部结构和引脚如图1-1所示,地址信号与选中通道的关系如表1-1所示。

图1-1 ADC0809的内部结构和引脚

共28页 第3页

表1-1地址信号与选中通道的关系

地 址 C 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 A 0 1 0 1 0 1 0 1 INT0 INT1 INT2 INT3 INT4 INT5 INT6 INT7 选中通道

2.接口实验单元中的ADC0809芯片线路

图1-2 系统中的ADC0809线路

3.实验接线和实验要求

(1).实验按图1-3实验线路连线

(2).编写程序要求当调节W电位时,在屏上显示转换结果 (3).输入程序并检查无误,运行程序;

(4).用万用表测出W输入电压,并记录显示屏上的响应数据。列成表格并作出转换图;

共28页 第4页

图1-3 ADC0809应用实验线路

(二)掌握ADC0809在51系列单片机中的使用方法

1.系统内部ADC0809的线路同图1-2。实验线路如图1-4所示,图中采用部分译码法,地址为7FF8H~7FFFH,分别对应着8个模拟输入通道。

2.实验接线和实验要求

(1).实验按图1-4实验线路连线

图1-4 51单片机实验ADC0809应用实验线路

(2).编写程序要求当调节W电位时,能得到转换结果并存如指定的存储单元; (3).输入编写好的程序并检查无误,经汇编连接后装入系统,然后运行程序; (4).改变W点电位,暂停程序运行检查转换结果,分析转换结果是否正确,并取几个点记录转换结果。

共28页 第5页

实验二 D/A 转换实验

一.实验目的

1.学习掌握数/模转换的基本原理; 2.掌握DAC0832芯片的使用方法。 二.实验设备

PC机一台、TDN 86/51教学实验系统一台。 三. 实验内容及步骤

(一)DAC0832在8086计算机系统中的应用 1. DAC0832芯片介绍

DAC0832是8位芯片,采用CMOS工艺和R-2RT形电阻解码网络,转换结果为一对差动电流I01和I02输出,其主要性能参数为:

·分辨率:8位 ·单电压:+5V~+15V ·参考电压:+10V~-10V ·转换时间:1μs

·满刻度误差:±1LSB ·数据输入电平与TTL电平兼容 DAC0832的引脚和内部结构如图2-1所示。

图2-1 DAC0832内部结构及引脚

共28页 第6页

2.系统接口实验单元中的DAC0832芯片线路

图2-2 实验单元中的DAC0832芯片线路 3.实验接线和实验要求

(1)实验按图2-3实验线路连线,实验线路图中(1)为DAC0832实验接线图,(2)为测量单元接线图。根据该接线图,可通过PC示波器功能观察DAC0832输出的波形。操作方法:输入编好的程序并检查无误,经汇编、连接后装入系统,而后在调试菜单中打开示波器窗,再按动窗口中最右边菜单按钮启动PC示波器.

图2-3 DAC0832应用实验线路

(2)编写程序实现数模转换,产生锯齿波并在PC示波器上显示出来; (3)编写程序实现数模转换,产生脉冲波并在PC示波器上显示出来; (4)编写程序实现数模转换,产生三角波并在PC示波器上显示出来;

共28页 第7页

(二)掌握DAC0832在51系列单片机中的使用方法

1.系统内部DAC0832的线路同图2-2。实验线路如图2-4所示,图中当WR和P2.7有效时选中该片,因此可取7FFFH为片选地址。

2.实验接线和实验要求 (1)实验按图2-4实验线路连线

图2-4 DAC0832实验线路

(2)编写程序实现数模转换,产生周期为2ms的锯齿波并在示波器上显示出来; (3)编写程序实现数模转换,产生周期为4ms的三角波并在示波器上显示出来; (4)编写程序实现数模转换,产生周期为30ms的阶梯波并在示波器上显示出来;

共28页 第8页

实验三 步进电机实验

一.实验目的

1.学习掌握步进电机的控制基本原理; 2.掌握步进电机的控制方法。 二.实验设备

PC机一台、TDN 86/51教学实验系统一台。 三. 实验内容及步骤

本实验采用的步进电机为35YJ46型四相八拍电机,电压为DC12V,其励磁线圈及其励磁顺序如图3-1及表3-1所示。

图3-1步进电机的励磁线圈

表3-1步进电机的励磁顺序

1. 控制步进电机连续转动,按图3-2接线;

共28页 第9页

图3-2 步进电机实验线路

2. 按表3-2提供的步序编写程序

表3-2 8255 端口各路电平步序

3. 输入编写好的程序并检查无误,经汇编、连接后装入系统。 4. 运行程序观察运行结果,按复位键终止程序运行。 5. 编程练习,修改程序控制步进电机以四相四拍工作。 四. 实验报告要求 1.汇编程序清单。

2.电机四相四拍工作时的励磁顺序,以及对应的8255端口各路电平步序表。 3.给出步进电机在四相四拍和四相八拍工作时的步距角。

共28页 第10页

实验四 直流电机闭环调速实验

一.实验目的

1.学习掌握直流电机脉宽调速的基本原理和方法。 2.学习掌握PID控制方法。 二.实验设备

PC机一台、TDN 86/51教学实验系统一台。 三. 实验内容及步骤

TDN-AC/ACS系统的8255 PB10 脉冲信号为控制量,经驱动电路驱动电机运转。霍尔测速元件输出的脉冲信号记录电机转速构成反馈量,在参数给定情况下,经PID运算,电机可在控制量作用下,按给定转速闭环运行。

实验原理与实验接线如图4-1、4-2所示。

图4-1 实验原理图

图4-2 实验接线图

共28页 第11页

其中,OPCLK为1.1625MHz时钟信号,经8253的2号通道分频输出1ms的方波,接入8259产生IRQ6中断,作为系统采样时钟;PB10产生PWM脉冲计时及转速累加,8259的IRQ7中断用于测量电机转速。

实验程序清单

#include #include #include

void interrupt irq6h (void); void interrupt irq7h (void);

void init(void); void sys(void); void pid(void);

void put_com(void); void m_main(void); void delay(int time);

int mmul(int x,int y); /*16位乘法,溢出赋极值*/ int change32_16(int z,int t); /*将32位数转化成16位*/ char change16_8(int wd); /*将16位数转化成8位*/

int madd(int x,int y); /*16位加法,溢出赋极值*/

int TK=0x10,X=0x80;

int SPEC=0x30,IBAND=0X60,KP=1,TI=155,TD=125;

int CH1,CH2,UK,ZV,ZVV,TC,FPWM,UK_1,AAA1,VAA,BBB,VBB,MARK; int YK,VADD,EK_1,AEK,BEK,EK; int TIME;

void main() {

sys(); init(); _asm STI

for(;;) m_main(); }

void sys(void) { int i;

outp(0x43,0x76);

共28页 第12页

outp(0x41,0x0c); outp(0x41,0x00);

for(i=1;i<=3;i++) { outp(0xc1,0x00); delay(0x3000); }

for(i=0;i<=2;i++) { outp(0xc0,0x00); delay(0x3000); }

outp(0xc1,0x40); delay(0x3000); outp(0xc1,0x7e); delay(0x3000); outp(0xc1,0x34); delay(0x3000);

outp(0x21,(inp(0x21)|0x01));

return; }

void delay(int time) {

int i;

for(i=0;i<=time;i++) { }

return; }

void init(void) { int m_ip;

if(_CS==0) m_ip=0x2000; else m_ip=0x0000;

_asm { push ds xor ax,ax mov ds,ax

mov ax,offset irq6h add ax,m_ip mov si,0038h

共28页 第13页

mov [si],ax mov ax,cs mov si,003ah mov [si],ax

mov ax,offset irq7h add ax,m_ip mov si,003ch mov [si],ax mov ax,cs mov si,003eh mov [si],ax cli

in al,21h and al,3fh out 21h,al pop ds }

VADD=YK=EK=EK_1=AEK=BEK=ZV=ZVV=UK=UK_1=BBB=VBB=MARK=TC=0x00;

FPWM=0x01;

AAA1=VAA=0x00;//7f;

outp(0x63,0x90); outp(0x61,0x00); outp(0x43,0xB6); outp(0x42,0x8f); outp(0x42,0x04);

return; }

void m_main(void) {

for(;;) if (TK <= TC) break; if(TIME>200) SPEC=0X20; if(TIME>400) SPEC=0x35; TIME++;

TC=0X00; YK=ZVV; pid();

if( UK <= 0X80) AAA1=0x10;

共28页 第14页

else AAA1=UK-0x80; BBB=0x7f-AAA1; CH1=SPEC; CH2=YK; put_com(); return; }

void put_com(void) {

outp(0xc1,0x31); outp(0xc0,CH1);

for(;;) if ((inp(0xc1)&0x01)!=0) outp(0xc0,CH2);

for(;;) if ((inp(0xc1)&0x01)!=0) outp(0xc1,0x34); return; }

void pid(void) { int K,P,I,D; char z,t;

K=P=I=D=0; EK=SPEC-YK;

BEK=EK-EK_1-AEK; /*△2EK*/

break; break;

AEK=EK-EK_1; /*△EK*/

//if ( abs(EK)>abs(IBAND)) I=0; //else I=(EK*TK)/TI; I=(EK*TK)/TI;

P=AEK;

D=((TD/TK)*BEK)/10000;

/*△UK=KP*△EK + KI*Ek + KD*(△EK-△EK-1) UK=△UK+UK-1*/ K=madd(I,P); K=madd(D,K); K=mmul(K,KP); UK=K+UK_1;

/*将UK值转化成8位数据,取K的低8位值并取符号*/

共28页 第15页

应内存三字节全存入00H。 系数存储安排如下表

2F00H?2F03H?2F06H?2F09H?????2F01H?K0 2F04H?K1 2F07H?K2 2F0AH?K3

2F08H?2F0BH?2F02H?2F05H?????2F0CH?2F0FH?2F12H????2F0DH? P1 2F10H? P 2 2F13H? P3

2F11H?2F0EH?2F14H????将D(Z)式写成差分方程,则有:

UK?K0EK?K1EK?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

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

T?TK?10ms

TK需事先送入 2F60H 单元。范围:01H~FFH,对应T的范围:10ms~2550ms,实验取T?0.2S?20?10,TK?20?14H。

(4)接线:见图 U2SH: 采样保持单元。

U10、OUT?U2、IN2:D/A 输出接至第二路采样保持器输入。 8088 微机PB14?U2的PU2: 计算机给采样保持器的控制信号,使采样保持器的输出滞后一拍。

共28页 第21页

图5-2实验线路接线图

程序流程图

(1)根据设计要求,确定计算机的D(Z)各个系数。

0.48?0.3936Z?1D(Z)?

1?0.1350Z?1?0.8650Z?2共28页 第22页

K0?0.4800,K1??0.3936,K2?0,K3?0,P,P2??0.8650,P3?0 1??0.1350 S12置下档,调W11使U1单元的OUT端的输出波形为2.5V方波,S11置阶跃档,调W12为6S。

装入程序,用U2000察看数据段段地址为0243,由于程序中前256个数据为存数缓冲,修改数据时应从0243:0100地址开始,在此地址下依次存入TK值(14H)和K0~K3、P1~P3运行程序 G?0000:2000,对照输入R观察输出C的波形。

S12置斜坡档,调W12使U1单元的OUT端不高于5V,运行程序观察输入C,了解大林算法对斜坡输入的响应特性。从示波器上观察到系统输出不能完全跟踪输入,产生了稳态误差。

因此实验中D(Z)设计是针对阶跃输入信号的,当改变输入信号为斜坡,而D(Z)的设计方法仍按阶跃设计,那么系统将不能完全跟踪输入,以致产生稳态误差。也就是说,针对一种典型输入函数设计的闭环脉冲函数,用于次数较低的输入函数时,系统将会出现较大的超调,响应时间也会增加,用于次数较高的输入函数时,系统将不能完全跟踪输入,以至产生稳态误差。

实验程序清单

STACK SEGMENT STACK DW 256 DUP(?) STACK ENDS DATA SEGMENT

SAVEBUFF DB 256 DUP(00H) TK DB 14H

K0 DB 00H,48H,00H K1 DB 01H,39H,36H K2 DB 00H,00H,00H K3 DB 00H,00H,00H P1 DB 01H,13H,50H P2 DB 01H,86H,50H P3 DB 00H,00H,00H SAVEMARK DB 00H SAVEADDR DB 0FFH CONTROLMARK DB 00H EKB DB 00H K0_16 DB 00H,00H,00H K1_16 DB 00H,00H,00H K2_16 DB 00H,00H,00H K3_16 DB 00H,00H,00H

共28页 第23页

P1_16 DB 00H,00H,00H P2_16 DB 00H,00H,00H P3_16 DB 00H,00H,00H EK DW 0000H EKK DW 0000H EK_1 DW 0000H EK_2 DW 0000H UK DW 0000H UKK DW 0000H UK_1 DW 0000H UK_2 DW 0000H OUTPUT DW 0000H

ALLK_ALLP DW 0000H DATA ENDS CODE SEGMENT

ASSUME CS: CODE,DS:DATA START: MOV AX,DATA MOV DS,AX PUSH DS XOR AX,AX MOV DS,AX

MOV AX,2000H+OFFSET IRQ7 MOV SI,003CH MOV [SI],AX

MOV AX,2000H+OFFSET IRQ6 MOV SI,0038H MOV [SI],AX MOV AX,0000H MOV SI,003EH MOV [SI],AX MOV SI,003AH MOV [SI],AX CLI

POP DS

MOV AL,90H OUT 63H,AL MOV AL,0A4H OUT 43H,AL MOV AL,2EH OUT 42H,AL IN AL,21H AND AL,3FH OUT 21H,AL

MOV SI,OFFSET P3+2 MOV BH,07H

MOV DI,OFFSET P3_16+2

共28页 第24页

CALL CHANGE CALL CLEAR_E MOV AL,80H OUT 00H,AL MOV BL,01H

MOV SAVEMARK,00H MOV SAVEADDR,0FFH AGAIN: STI

HLT

JMP AGAIN

IRQ6: MOV AL,80H OUT 00H,AL MOV AL,10H OUT 61H,AL

MOV CONTROLMARK,AL MOV SAVEMARK,AL CALL CLEAR_E MOV BL,01H MOV AL,20H OUT 20H,AL IRET

IRQ7: MOV AL,01H

MOV CONTROLMARK,AL DEC BL JNZ FINISH CALL CY

MOV AL,10H OUT 61H,AL MOV AL,00H OUT 61H,AL MOV EK,DX MOV AX,DX

MOV DI,OFFSET K0_16 INC DI

MOV DX,[DI] CALL ML

MOV AX,ALLK_ALLP ADD DX,AX CALL OUT_PUT MOV DX,OUTPUT MOV UK,DX

MOV SI,OFFSET UK_1 MOV DI,OFFSET UK_2 MOV BL,07H

L1: MOV AX,[SI] MOV [DI],AX

共28页 第25页

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

Top