计算机测控技术实验指导书.doc

上传人:小小飞 文档编号:5027261 上传时间:2020-01-29 格式:DOC 页数:30 大小:1.41MB
返回 下载 相关 举报
计算机测控技术实验指导书.doc_第1页
第1页 / 共30页
计算机测控技术实验指导书.doc_第2页
第2页 / 共30页
计算机测控技术实验指导书.doc_第3页
第3页 / 共30页
计算机测控技术实验指导书.doc_第4页
第4页 / 共30页
计算机测控技术实验指导书.doc_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《计算机测控技术实验指导书.doc》由会员分享,可在线阅读,更多相关《计算机测控技术实验指导书.doc(30页珍藏版)》请在三一文库上搜索。

1、实验一 A/D、D/A转换应用实验一、实验目的1. 掌握A/D、D/A转换的实现方法;2. 熟悉计算机测控系统中数据输入/输出通道的硬件设计原理;3. 熟悉计算机测控系统中数据输入/输出通道A/D、D/A转换的软件实现原理。二、实验设备Dofly 系列Mini80E型单片机开发板一套 PC机一台三、实验内容1. 硬件实现(1)基本原理本实验需要用到Dofly 系列Mini80E型单片机开发板A/D、D/A模块,其实物硬件连接如图1-1所示。从图中可看到,该模块由四个电位器W1、W2、W3、W4,四组-二引脚跳线J21,二引脚跳线J23、PCF8591芯片以及一个发光二极管LED12组成。图1-

2、1 A/D、D/A转换实验硬件连接图其硬件原理图如图1-2所示。图1-2 A/D、D/A转换实验硬件原理图 由图1-2可知,该模块数据输入通道A/D转换由电位器W1、W2、W3、W4,跳线J21以及PCF8591芯片实现。电位器W1、W2、W3、W4分别构成了A/D转化的四个模拟量输入通道,它们一端接有电源电压VCC,通过调整各电位器的阻值便可改变各通道电压模拟量的大小。这四个电压模拟量通过J21四组-二引脚跳线连接到PCF8591芯片的AIN0-AIN3端口,该芯片将四组模拟量A/D转化后,利用SCL和SDA两条信号线将转化好的数据量传输给单片机,并用8位LED数码管分4组进行显示。当然,J

3、21可以通过4个跳冒连接4路AD,则模拟量输入由电位器电压给定(如上述分析);如果需要使用外部电压源输入,可以拔掉跳冒,然后电压源接至J21的2、4、6、8引脚。数据输出通道D/A转换由PCF8591芯片、跳线J23以及发光二极管LED12实现。首先单片机通过SCL和SDA两条信号线将待转化的数字量传输给芯片PCF8591,D/A转换完成后则经过跳线J23将模拟电压值加到发光二极管上,而二极管的亮度则反映了D/A转化模拟量的大小。J23上若连有跳冒则DA输出直接到LED12,若拔掉跳冒则LED不起作用,这时可以在J23的第1脚和地之间测量电压或者波形。(2)PCF8591芯片通过上述分析可知,

4、PCF8591芯片是实现该A/D、D/A转换的核心芯片,同时它还要完成与单片机的数据通信工作。PCF8591 是具有I2C 总线接口的8 位A/D 及D/A 转换器。有4 路A/D 转换输入,1 路D/A 模拟输出。这就是说,它既可以作A/D 转换也可以作D/A 转换。A/D 转换为逐次比较型。引脚图如图1-3所示。结构图如图1-4 所示。电源电压典型值为5V。图1-3 PCF8591引脚图AIN0AIN3:模拟信号输入端。A0A3:引脚地址端。VDD、VSS:电源端。(2.56V)SDA、SCL:I2C 总线的数据线、时钟线。OSC:外部时钟输入端,内部时钟输出端。EXT:内部、外部时钟选择

5、线,使用内部时钟时EXT 接地。AGND:模拟信号地。AOUT:D/A 转换输出端。VREF:基准电源端。图1-4 PCF8591结构图 I2C 总线是Philips 公司推出的串行总线,整个系统仅靠数据线(SDA)和时钟线(SCL)实现完善的全双工数据传输,即CPU 与各个外围器件仅靠这两条线实现信息交换。I2C 总线系统与传统的并行总线系统相比具有结构简单、可维护性好、易实现系统扩展、易实现模块化标准化设计、可靠性高等优点。PCF8591 是一种具有I2C 总线接口的A/D 转换芯片。在与CPU 的信息传输过程中仅靠时钟线SCL 和数据线SDA 就可以实现。 器件总地址PCF8591 采用

6、典型的I2C 总线接口器件寻址方法,即总线地址由器件地址、引脚地址和方向位组成。飞利蒲公司规定A/D 器件地址为1001。引脚地址为A2A1A0,其值由用户选择,因此I2C 系统中最多可接23=8 个具有I2C 总线接口的A/D 器件。地址的最后一位为方向位R/w ,当主控器对A/D 器件进行读操作时为1,进行写操作时为0。总线操作时,由器件地址、引脚地址和方向位组成的从地址为主控器发送的第一字节。 控制字节控制字节用于实现器件的各种功能,如模拟信号由哪几个通道输入等。控制字节存放在控制寄存器中。总线操作时为主控器发送的第二字节。其格式如下所示:其中:D1、D0 两位是A/D 通道编号:00

7、通道0,01 通道1,10 通道2,11 通道3D2 自动增益选择(有效位为1)D5、D4 模拟量输入选择:00 为四路单数入、01 为三路差分输入、10 为单端与差分配合输入、11 为模拟输出允许有效D6 模拟量输出允许标志位当系统为 A/D 转换时,模拟输出允许为0。模拟量输入选择位取值由输入方式决定:四路单端输入时取00,三路差分输入时取01,单端与差分输入时取10,二路差分输入时取11。最低两位时通道编号位,当对0 通道的模拟信号进行A/D 转换时取00,当对1 通道的模拟信号进行A/D 转换时取01,当对2 通道的模拟信号进行A/D 转换时取10,当对3 通道的模拟信号进行A/D 转

8、换时取11。I2C总线在传送数据过程中共有三种类型信号, 它们分别是:开始信号、结束信号和应答信号。开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。结束信号:SCL为低电平时,SDA由低电平向高电平跳变,结束传送数据。 应答信号: 接收数据的IC在接收到8bit数据后,向发送数据的IC发出特定的低电平脉冲,表示已收到数据。CPU向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU接收到应答信号后,根据实际情况作出是否继续传递信号的判断。若未收到应答信号,由判断为受控单元出现故障。在进行数据操作时,首先是主控器发出起始信号,然后发出读寻址字节,被控器做出应答后,主

9、控器从被控器读出第一个数据字节,主控器发出应答,主控器从被控器读出第二个数据字节,主控器发出应答一直到主控器从被控器中读出第n 个数据字节,主控器发出非应答信号,最后主控器发出停止信号。2. 软件实现 该模块软件编程主要实现I2C协议下 PCF8591A/D、D/A转换的控制。即通过IIC协议对PCF8591芯片进行D/A、A/D操作,读取电位器的电压,并输出模拟量,用LED亮度渐变指示。其主程序流程图如图1-5所示,完整源程序见附录1图1-5 PCF8591ADDA转换主程序流程图#include /包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义 #include /包含NO

10、P空指令函数_nop_(); #define AddWr 0x90 /写数据地址 #define AddRd 0x91 /读数据地址 sbit Sda=P12; /定义总线连接端口 sbit Scl=P11; bit ADFlag; /定义AD采样标志位unsigned char code Datatab=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/7段数共阴码管段码表data unsigned char Display8;/定义临时存放数码管数值/*- 主程序-*/void main() unsigned char num; /DA数

11、模输出变量 unsigned char ADtemp; /定义中间变量 Init_Timer1(); while(1) DAC(num); /DA输出,可以用LED模拟电压变化 num+; /累加,到256后溢出变为0,往复循环。显示在LED上亮度逐渐变化 mDelay(20); /延时用于清晰看出变化 if(ADFlag) /定时采集输入模拟量 ADFlag=0; ADtemp=ReadADC(0);Display0=Datatab(ReadADC(0)/50|0x80;/处理0通道电压显示 Display1=Datatab(ReadADC(0)%50)/10; ADtemp=ReadADC

12、(1);Display2=Datatab(ReadADC(1)/50)|0x80;/处理1通道电压显示 此通道暂时屏蔽,可以自行添加 Display3=Datatab(ReadADC(1)%50)/10; ADtemp=ReadADC(2);Display4=Datatab(ReadADC(2)/50)|0x80;/处理2通道电压显示 此通道暂时屏蔽,可以自行添加 Display5=Datatab(ReadADC(2)%50)/10; ADtemp=ReadADC(3);Display6=Datatab(ReadADC(3)/50)|0x80;/处理3通道电压显示 此通道暂时屏蔽,可以自行添加

13、 Display7=Datatab(ReadADC(3)%50)/10; 四、实验步骤1. 完成硬件连接,将跳线J21、J23引脚全部按要求用跳冒连接,用串口下载线和USB电源线将PC机与单片机连接。2. 打开单片机编译环境Keil C,编写并编译程序,用程序烧写软件将其.hex文件下载到单片机,观察现象。3. 分别调节电位器W1、W2、W3、W4的大小,观察LED数码管的显示数值有何变化,同时观察发光二极管LED12的亮度有何变化。4. 将跳线J21上了四个跳冒拔掉,分别在J21的2、4、6、8引脚上接电压源,观察LED数码管显示值是否正确。5. 将跳线J23上的跳冒拔掉,在J23的第1脚和

14、地之间接上示波器,观察D/A变换输出的波形图。五、实验结果分析1. 完成步骤2和步骤3,观察并记录所得实验现象。2. 记录步骤4与步骤5中的数据与波形,并分析所测得数据与波形图是否正确。3. 为什么在程序初始化中将写数据地址设置为0x90,读数据地址设置为0x91?4. PCF8591芯片通过哪些信号线与单片机连接?实验二 步进电机控制实验一、实验目的1. 掌握步进电机的工作原理;2. 掌握单片机实现步进电机控制的基本方法,其中包括硬件和软件实现两部分; 3. 熟悉计算机测控系统中,步进电机作为控制对象的系统设计方法。二、实验设备Dofly 系列Mini80E型单片机开发板一套 PC机一台28

15、BYJ-48型步进电机一个杜邦线若干三、实验内容1. 硬件实现(1)基本原理本实验需要用到Dofly 系列Mini80E型单片机开发板步进电机控制模块,其实物硬件连接如图2-1所示。在实验过程中,应将步进电机的红色对准图中的VCC,其他对准ABCD插在J20上,然后用杜邦线从J18的ABCD于p1.0p1.1p1.2p1.3短接,即可完成实验硬件连线部分。图2-1 步进电机控制部分硬件连接图 该实验单片机与步进电机连接的接口电路原理图如图2-2所示。从原理图中可知,由于单片输出信号的电压太小,无法驱动步进电机转动,因此在接口电路的设计中需要有ULN2003芯片进行电平转换,提高信号的电压值来驱

16、动步进电机转动。图2-2 步进电机控制接口电路原理图(2)ULN2003ULN2003是高压大电流达林顿晶体管阵列系列产品,具有电流增益高、工作电压高、温度范围宽、带负载能力强等特点,适应于各类要求高速大功率驱动的系统。其引脚如图2-3所示,相应功能框图如图2-4所示。 图2-3 ULN2003引脚图 图2-4 ULN2003功能框图由图2-4可知,LN2003也是一个7路反向器电路,即当输入端为高电平时ULN2003输出端为低电平,当输入端为低电平时ULN2003输出端为高电平。具有如下特点: 每片封装了 7 个达林顿管 每个驱动管的输出电流可达 500mA(峰值 600mA) 输出电压 5

17、0V 为感性负载集成了抑流二极管 (Suppression Diode) 对于较大的电流,可以将输出并接使用 输入 TTL/CMOS/PMOS/DTL 与兼容(3)步进电机工作原理步进电机是纯粹的数字控制电动机。它将电脉冲信号转变成角位移,即给一个脉冲信号,步进电机就转动一个角度,因此非常适合于单片机控制。步进电机只能通过脉冲电源供电才能运行,它不能直接使用交流电源和直流电源;此外步进电机的角位移与输入脉冲严格成正比,因此,当它转一转后,没有累计误差,具有良好的跟随性。步进电机由定子和转子两部分组成。以四相步进电机为例,定子上有四组相对的磁极,每对磁极缠有同一绕组,形成一相。定子和转子上分布着

18、大小、间距相同的多个小齿。当步进电机某一相通电形成磁场后,在电磁力的作用下,转子被强行推动到最大磁导率(或最小磁阻)的位置。本实验中使用的四相步进电机在八拍工作方式时,走动5.625角度需64步;一圈分为64个刻度,因而走动一圈需6464步,即4096步。另外必须按照一定的次序给每个相通电,才能正常完成四步一个齿距的动作。相电压为12V,其它参数按电机型号,查阅相关资料,本模块使用电机型号为:28BYJ48型,如下图所示。图2-5 28BYJ48步进电机实物图步进电机28BYJ48型四相八拍电机,电压为DC5VDC12V。当对步进电机施加一系列连续不断的控制脉冲时,它可以连续不断地转动。每一个

19、脉冲信号对应步进电机的某一相或两相绕组的通电状态改变一次,也就对应转子转过一定的角度(一个步距角)。当通电状态的改变完成一个循环时,转子转过一个齿距。四相步进电机可以在不同的通电方式下运行,常见的通电方式有单(单相绕组通电)四拍(A-B-C-D-A。),双(双相绕组通电)四拍(AB-BC-CD-DA-AB-。),八拍(A-AB-B-BC-C-CD-D-DA-A。)。图2-6 步进电机原理图四相四拍的通电顺序如表2-1所示:表2-1引线颜色引脚号1234红色1橙色2黄色3粉色4蓝色5红线接电源5V,橙色电线接P1.0口,黄色电线接P1.1口,粉色电线接P1.2口,蓝色接P1.3口。由于单片机接口

20、信号不够大需要通过ULN2003放大再连接到相应的电机接口,如上所述。按照上述电机连线方式,即橙色线接P1口最低位,蓝色线接P1口高位,则A、B、C、D端分别通电对应P1口赋值情况如下:蓝粉黄橙十六制(P1口)00010x0100100x0201000x0410000x08根据以上分析可得,定义旋转相序:unsigned char code F_Rotation4=0x01,0x02,0x04,0x08; /正转表格unsigned char code B_Rotation4=0x08,0x04,0x02,0x01; /反转表格同理,四相八拍的通电顺序如表2-2所示:表2-2引线颜色引脚号12

21、345678红色1橙色2黄色3粉色4蓝色5按照上述电机连线方式,即橙色线接P1口最低位,蓝色线接P1口高位,则A、B、C、D端分别通电对应P1口赋值情况如下:蓝粉黄橙十六制(P1口)00010x0100110x0300100x0201100x0601000x0411000x0c10000x0810010x09所以可以定义旋转相序:unsigned char code F_Rotation8=0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09; /正转相序表unsigned char code B_Rotation8=0x09,0x08,0x0c,0x04,0x06,

22、0x02,0x03,0x01; /反转相序表该步进电机主要技术参数如下:注意事项:相序不能接错,否则不能正常转动速度不能过高,否则不足以驱动电机转动。2. 软件实现根据硬件原理,程序按照下面方式就可以使电机运转: AB-BC-CD-DA-AB 或者 A-B-C-D-A前者力矩大。即表示A相通电,其他都断电,然后B相通电,其他都断电,以此类推。A切换到B的时间可以调整,即调整转速。反转如下 D-C-B-A-D或者AD-DC-CB-BA-AD。并且通过按键S4即可控制电机正转、反转或者停止,其源程序如下:/*- 名称:步进电机 内容:1、本程序用于测试4相步进电机常规驱动 2、需要用跳帽或者杜邦线

23、把信号输出端和对应的步进电机信号输入端连接起来 3、速度不可以调节的过快,不然就没有力矩转动了4、按s4(设置成独立按键模式)可以控制正反转 -*/#include unsigned char Flag;/定义正反转和停止标志位sbit KEY = P33;unsigned char code F_Rotation4=0x01,0x02,0x04,0x08; /正转表格unsigned char code B_Rotation4=0x08,0x04,0x02,0x01; /反转表格/*/* 延时函数 */*/void Delay(unsigned int i)/延时 while(-i);/*/

24、* 主函数 */*/main() unsigned char i; EX1=1; /外部中断0开 IT1=1; /边沿触发 EA=1; /全局中断开 while(Flag=0) P0=0x71;/显示 F 标示正转 for(i=0;i4;i+) /4相 P1=F_Rotationi; /输出对应的相 可以自行换成反转表格 Delay(500); /改变这个参数可以调整电机转速 ,数字越小,转速越大 while(Flag=1) P0=0x7C;/显示 b 标示反转 for(i=0;i 3/100*5*dt) rin2(k)=rin2(k-1); endif rin2(k)wendu%如果当前温度

25、值大于设定的温度值时,打开风扇 YLTD(do,1,1,1);else%如果当前温度值大于设定的温度值时,关闭风扇 YLTD(do,1,1,0); end rin(k)=wendu; %PID 控制器 u_3=rin(k)-rin2(k); u_1=u_2; u_2=u_3; u(k)=kd*u_1+ki*u_2+kp*u_3; yout(k)=u(k)+rin2(k); if yout(k)5 yout(k)=5; end if yout(k); ylabel(Temprature); axis(-inf, inf, 0, 100); pause(0.000000001); endendYL

26、TD(close)3. PID参数设定方法 数字PID控制器控制参数的选择,可按连续-时间PID参数整定方法进行。在选择数字PID参数之前,首先应该确定控制器结构。对允许有静差(或稳态误差)的系统,可以适当选择P或PD控制器,使稳态误差在允许的范围内。对必须消除稳态误差的系统,应选择包含积分控制的PI或PID控制器。一般来说,PI、PID和P控制器应用较多。对于有滞后的对象,往往都加入微分控制。 控制器结构确定后,即可开始选择参数。参数的选择,要根据受控对象的具体特性和对控制系统的性能要求进行。工程上,一般要求整个闭环系统是稳定的,对给定量的变化能迅速响应并平滑跟踪,超调量小;在不同干扰作用下

27、,能保证被控量在给定值;当环境参数发生变化时,整个系统能保持稳定,等等。这些要求,对控制系统自身性能来说,有些是矛盾的。我们必须满足主要的方面的要求,兼顾其他方面,适当地折衷处理。 PID控制器的参数整定,可以不依赖于受控对象的数学模型。工程上,PID控制器的参数常常是通过实验来确定,通过试凑,或者通过实验经验公式来确定。 实验凑试法 实验凑试法是通过闭环运行或模拟,观察系统的响应曲线,然后根据各参数对系统的影响,反复凑试参数,直至出现满意的响应,从而确定PID控制参数。 整定步骤 实验凑试法的整定步骤为先比例,再积分,最后微分。 (1)整定比例控制将比例控制作用由小变到大,观察各次响应,直至

28、得到反应快、超调小的响应曲线。 (2)整定积分环节 若在比例控制下稳态误差不能满足要求,需加入积分控制。先将步骤(1)中选择的比例系数减小为原来的5080,再将积分时间置一个较大值,观测响应曲线。然后减小积分时间,加大积分作用,并相应调整比例系数,反复试凑至得到较满意的响应,确定比例和积分的参数。 (3)整定微分环节 若经过步骤(2),PI控制只能消除稳态误差,而动态过程不能令人满意,则应加入微分控制,构成PID控制。先置微分时间TD=0,逐渐加大TD,同时相应地改变比例系数和积分时间,反复试凑至获得满意的控制效果和PID控制参数。针对该实验对象YL系列温度测量控制仪,其P、I、D控制参数可分

29、别设为5、1、1,仅供参考。四、实验步骤1安装应用软件,并对软件功能进行调试。 (1)将串口线连接在PC机与RS485多通道数据采集控制器模块上。 (2)安装YL3.0setup.EXE程序。可根据提示进行安装,也可自己更改安装目录(最好和YLTECHsetup.EXE的安装目录不同)。(3)安装完成后,进入程序。首先弹出用户登陆界面,输入用户名system,密码yltech,即进入系统管理员界面。在用户管理下面添加用户及完成用户密码的设定。(4)初始化测试。在实验前用串口调试工具完成一次通讯测试,点击初始化测试菜单,则弹出如下界面:首先选择串口并打开,然后通讯协议一项勾去“从机地址”选项,在发送命令部分添加指令“B00”,然后点击“发送”按钮,看能否收到反馈数据,若反馈数据中含有“B01“字符,说明通讯正常。(5)重新登陆系统,根据刚刚设定的用户名和密码进行登陆,选择菜单“网络地址”中“修改地址”一项则弹出如下界面,选择“YL5010485多功能数据采集卡”,点击“读地址”按钮,则可以弹出当前设备的网络地址号。同时点击“修改”按钮可以对地址进行修改,修改完成后关闭窗口。(6)点击“网络地址”菜单下的“设备选择”子菜单,选择最新修改后的地址,然后在程序主界面下点击

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 研究报告 > 商业贸易


经营许可证编号:宁ICP备18001539号-1