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

  • 格式:doc
  • 大小:859.00 KB
  • 文档页数:22

下载文档原格式

  / 22
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

工程技术学院电子与控制工程系实验指导书

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

制订人:胡东

2010年4月

目录

实验一 A/D与D/A转换实验 (3)

实验二数字PID控制算法的实验研究 (10)

实验三最少拍数字控制器的设计 (15)

实验一 A/D与D/A转换实验

一、实验目的与要求

1、了解几种类型AD转换的原理;掌握使用ADC0809进行模数转换

2、了解几种类型DA转换的原理;掌握使用DAC0832进行数模转换

2、认真预习实验内容,做好准备工作,完成实验报告。

二、实验设备

天煌系列实验仪一套、PC机一台、万用表一个。Proteus软件一套。

三、实验内容

1、ADC0809(F3区)

(1) 模数转换器,8位精度,8路转换通道,并行输出

(2) 转换时间100us,转换电压范围0~5V

2、编写程序:制作一个电压表,测量0~5V,结果显示于数码管上。

3、利用Proteus设计DAC仿真电路,编写仿真程序,进行DA实验仿真。利用DA转换

五、实验步骤

1、连线说明:

2、调节0~5V电位器(F2区)输出电压,显示在LED上,第4、5位显示16进制数据,第0、1、2位,显示十进制数据。用万用表验证AD转换的结果。

3、实验记录

旋转电位器,使电压从0V~5V变化。读取数码管显示数据,记录电压值与转换出来的数字量。填入下表:

3、数据分析

(1)计算数字理论值和误差,填入上表。

(2)绘制电压与转换出数字量曲线。

在坐标纸上以电压为横坐标,以数字量为坐标绘制。

4、利用Proteus构建仿真电路,进行编程仿真。

(1)打开Proteus V7.4 SP3软件。从元件库中找到下列元件:

①电容: CAP

②极性电容: CAP-POL

③晶振:CRYSTAL

④ DAC0832

⑤ AT89C51

⑥按钮: BUTTON

⑦ LM358N

⑧变阻器: POT-LOG

⑨电阻: RES

(2)按下图所示构建仿真电路

设置器件属性,直接双击相应器件的图标即可。

图1—2 DA转换实验原理图

(3)编写仿真程序

①汇编语言:

DAC0832 EQU 00H

ORG 0000H

LJMP MAIN ;设DAC0832地址

ORG 0030H

MAIN: MOV C,P2.7

JC TRIAN ;P2.7为1时,输出锯齿波,P2.7为0时,输出为正弦波 MOV R1,#63 ;单位周期内共64个采样输出

SIN: MOV DPTR,#TAB

MOV A,R1

MOVC A,@A+DPTR ;查找正弦代码

MOV DPTR,#DAC0832

MOVX @DPTR,A ;输出

NOP

DJNZ R1,SIN

LJMP MAIN

TRIAN: MOV R1,#0 ;锯齿波

LOOP: MOV A,R1

MOV DPTR,#DAC0832

MOVX @DPTR,A

MOV A,R1

ADD A,#4 ;步长为4

MOV R1,A

NOP

JNZ LOOP

LJMP MAIN

TAB: DB 80H,8CH,98H,0A5H,0B0H,0BCH,0C7H,0D1H ;正弦代码表 DB 0DAH,0E2H,0EAH,0F0H,0F6H,0FAH,0FDH,0FFH

DB 0FFH,0FFH,0FDH,0FAH,0F6H,0F0H,0EAH,0E3H

DB 0DAH,0D1H,0C7H,0BCH,0B1H,0A5H,99H,8CH

DB 80H,73H,67H,5BH,4FH,43H,39H,2EH

DB 25H,1DH,15H,0FH,09H,05H,02H,00H

DB 00H,00H,02H,05H,09H,0EH,15H,1CH

DB 25H,2EH,38H,43H,4EH,5AH,66H,73H

END

② C语言

#include

#define step 4

unsigned char pdata DAC0832;//设DAC0832地址

unsigned char sindot[64]=

{0x80,0x8c,0x98,0xa5,0xb0,0xbc,0xc7,0xd1,

0xda,0xe2,0xea,0xf0,0xf6,0xfa,0xfd,0xff,

0xff,0xff,0xfd,0xfa,0xf6,0xf0,0xea,0xe3,

0xda,0xd1,0xc7,0xbc,0xb1,0xa5,0x99,0x8c,

0x80,0x73,0x67,0x5b,0x4f,0x43,0x39,0x2e,

0x25,0x1d,0x15,0xf,0x9,0x5,0x2,0x0,0x0,

0x0,0x2,0x5,0x9,0xe,0x15,0x1c,0x25,0x2e,

0x38,0x43,0x4e,0x5a,0x66,0x73};//正弦代码表

sbit K1=P2^7;//控制开关,

void delay(unsigned char m)//延时

{ unsigned char i;

for(i=0;i

}

void main(void)