《计算机控制技术》实验指导书
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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)