




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
《工业控制计算机原理及应用》课程实验报告试验一:模拟量输入/输出程序设计【实验目的】掌握模拟量数据采集过程和模拟量数据处理的原理设计模拟量采集的原理电路图。了解模拟量数据处理的原理。【实验设备】PC总线工业控制计算机。计算机网络模拟量采集板。【实验原理】模拟量输入通道设计:器件:12位AD574A,采样保持器LF398,多路开关CD4051,并行接口芯片8255A。技术指标:8通道模拟量输入;12位A/D转换(转换时间25us),量程0~10V;查询应答方式。电路逻辑:CD4051通道多路选择->PC0-PC2,通道禁止->PC3ADC574的STS高电平正在转换,低电平转换结束;LF398采样保持控制引脚8:高电平采样,低电平保持;LF398采样和保持->ADC547的STS+反相器AD574A的R/C,CS,CE->PC4-PC6转换状态检测STS->PA7数据输入:高4位->PA0-PA3,低8位->B口8通道模拟量输入电路原理图:图1-1【实验内容】设计用12位A/D转换器AD574通过8255A与PC总线工业控制机接口,实现8路模拟量采集。。设计并画出接口电路原理图。参考如下程序用MATLAB或C、C++设计出A/D转换程序。8通道模拟量数据采集程序流程图。图1-21.程序:AD574A PROCNEAR CLD LEADI,BUF;将缓冲区地址送入寄存器DI MOVBL,00000000B;令CE,CS,R/C,INH=0,初始化 MOVCX,8ADC: MOVDX,2C2H;C口地址 MOVAL,BL OUTDX,AL;选择多路开关,STS=0,LF398采样 NOP NOP ORAL,01000000B;令CE=1,启动转换A/D OUTDX,AL; ANDAL,10111111B;令CE=0,形成启动脉冲 OUTDX,AL MOVDX,2C0H;A口地址PULLING:INAL,DX;测试STS,看转换是否结束 TESTAL,80H JNZPULLING;转换期间STS=1,LF3980保持 MOVAL,BL ORAL,00010000B;转换结束,令R/C=1,准备读 MOVDX,2C2H; OUTDX,AL ORAL,01000000B;令CE,R/C=1,开始读 MOVDX,2C0H;读A口高4位 INAL,DX ANDAL,0FH MOVAH,AL;高4位存在AH INCDX;读B口低8位 INAL,DX;低8位存在AL STOSW;数据存储入BUF缓冲区 INCBL ;更换通道 LOOPADC MOVAL,00111000B;CE=0,CS,R/C,INH=1,芯片复位 MOVDX,2C2H OUTDX,AL RETAD574A ENDP附【程序分析】:AX、BX、CX、DX分别为累加、基址、计数、数据寄存器。AH、BH、CH、DH分别为上述寄存器的高四位。AL、BL、CL、DL分别为上述寄存器的低八位。LEADI,BUF将缓冲区的地址送入寄存器DI,MOVBL,00000000B;令CE,CS,R/C,INH=0,将00000000B存入BL中,所以BX寄存器的低八位就是00000000.MOVCX,8因为有8路模拟通道,将8存入CX计数寄存器中,就是说要循环8次。MOVDX,2C2H;选通C口地址存入DX数据计数器MOVAL,BL将BL中的00000000送给AL,即AL为00000000OUTDX,AL;将AL的00000000给DX输出,即C口为00000000,因为PC2、PC1、PC0与多路开关CD4051的C、B、A端相连,即选通V0通道的模拟量NOP;为延时语句,等待ORAL,01000000B01000000B与AL的00000000B作或运算,并将结果送到AL中,此时AL为01000000B,因为PC6口与AD574A的CE端相连,使CE为1,即高电平,CS、RS为低电平,则AD574A启动转换A/DOUTDX,AL;将AL的01000000B送入DX中输出ANDAL,10111111B;将AL的01000000B与10111111B作与运算,并将结果送入AL中,即此时AL为00000000B,所以PC6为0,低电平,则形成启动脉冲OUTDX,AL;将AL的00000000B送入DX中输出MOVDX,2C0H;选通A口地址存入DX数据计数器INAL,DX;将A口地址的数据存入AX寄存器的低八位TESTAL,80H将10000000B与AL中的数据作与运算JNZPULLING对AL进行判断,如果PA7不等于0则循环,如果等于0则进行下一步MOVAL,BL将BL的00000000送给AL,即AL为00000000ORAL,00010000B;将AL的00000000与00010000B作或运算,将结果存入ALMOVDX,2C2H;选通C口地址存入DX寄存器OUTDX,AL;将AL的00010000给DX输出,即C口为00010000,此时PC4为1,即为高电平,准备读操作ORAL,01000000B;将01000000与AL的00010000作或运算,结果存入AL中MOVDX,2C0H;选通A口地址存入DX寄存器中INAL,DX将DX的数据存入AL中ANDAL,0FH将00001111与AL作与运算,即将AL中的高四位清零MOVAH,AL;将AL的高4位存在AH中INCDX;读B口低8位INAL,DX;低8位存在ALSTOSW;数据存储入BUF缓冲区INCBL ;更换通道LOOPADCCX不为0时循环,为0时进入下一指令MOVAL,00111000B;CE=0,CS,R/C,INH=1,芯片复位MOVDX,2C2H选通C口地址存入DX中OUTDX,AL将AL的的数据给PC口从DX中输出RET重复AD574A ENDP结束2.8通道模拟量A/D数据采集程序设计:#define PA XBYTE[0X02C0]//PA口地址#define PB XBYTE[0X02C1]//PB口地址#define PC XBYTE[0X02C2]//PC口地址voiddelay(); //延时函数声明voidmain(){ intdata[8]; //存储八个通道的转换数据 charnum1,num2; //存储AD574的高四位数据、低八位数据 for(intselenum=0;selenum<8;selenum++)//8次循环,selenum表示通道号 { PC=selenum; //初始化,选择欲转换通道 delay(); //延时 PC=selenum|40H;//令CE=1,启动转换 PC=selenum;//令CE=0,形成启动脉冲 chartemp;//定义临时变量,用来测试STS信号 do { temp=PA;//从PA口最高位读出STS信号状态 }while(temp>=80H);//若STS为高,则temp不小于80H PC=selenum|10H;//令R/C=1,准备读 PC=selenum|50H;//令CE,R/C=1,准备读 num1=PA;//从PA口读出转换数据的高四位 num2=PB; //从PB口读出转换数据的低八位 num1=num1&0FH;//num1中的高四位清零 data[selenum]=num2+(num1<<8);//将高四位左移八位后与低八位求和,结果放入data数组中 } PC=38H;//令CE=0,CS,R/C,INH=1,芯片复位}Voiddelay()//延时函数的定义{ chari=5; while(i--);}3.实验模拟仿真(部分):图1-3【附】:器件及原理说明:1.8255A有PA,PB,PC口(PA、PB、PC是输入输出口,与外设相连。功能是将采集到的数据传送至CPU,和将CPU的控制信号传给外设)与外设相连,可将采集到得数据传送至CPU,或将CPU的数据D0~D7是I/O口传送数据的接口,与ISA总线的D0~D7相连D0-D7是I/O端口传送数据的接口,与ISA总线的D0-D7相连。信号数据的输入通道),传送数据,8255A是连通CPU和外设的I/O端口,8255A与外设的接线图课程实验书有,这里只画出8255A和ISA总线之间的接线图。2.WD、WR是控制读、写的控制线,与ISA总线的IOR、IOW相连。决定是读操作还是写操作。3.RESET是复位控制线,与ISA总线的复位控制线REST相连,起复位作用。4.A0、A1是地址线,与ISA总线的地址线A0、A1相连。传给外设。AD574与ISA总线前62根信号线的接口设计可由上两张图得到。8255A是具有24条输入/输出引脚、可编程的通用并行输入/输出接口电路,它能连通CPU和外设。6.CS是片选引脚,控制芯片是否工作。7.多路模拟信号首先通过译码电路选通一路,进入A/D转换器(AD574A)将模拟信号转换为数字信号,再输入I/O端口(8255A)寄存,等ISA有时间的时候再通过D0-D7口读取处理。选通控制由ISA总线信号A0、A1接入8.ISA总线是具有19位的地址总线,地址从00000H---7FFFFH。NOPNOPORAL,01000000B;将40H和累加寄存器单元的内容进行或得操作,AL原来的内容是00H,或操作之后AL的内容变为01000000BOUTDX,AL;将40H通过数据线传递给PC口;对应真值表可知该指令是启动12位模数转换MOVDX,00000H;将PA口地址给数据存储器,这之后数据的读写将对PA口操作PULLING:INAL,DX将数据线上的内容(即PA口内容)写入累加器ATESTAL,10000000B;AL和10000000B作与运算。JNZPULLING如果AL内容不为0,则转移到PULLING;如果AL内容不为0,则不转移,进入下一指令MOVAL,01010000B;将10H赋给累加器A,准备读MOVDX,00010H;将PC口地址送给数据寄存器,对PC口进行操作OUTDX,AL;将01010000B经过数据总线送给PC口,使得R/C、CE为1,其余为零,根据真值表可知AD574A为12位并行输出MOVDX,00000H;将PA口地址交给数据寄存器,之后就对PA口进行操作INAL,DX;将PA口的8位数据交给累加寄存器ANDAL,00001111B;对AL中采集到的PA口的低四位取出MOVAH,AL;将PA口的低四位存入累加寄存器的高四位MOVDX,00001H;将PB口地址交给数据存储器,之后就对PB口进行操作INAL,DX;将PB口采集到的数据存入寄存器ASTOSW;数据存入BUF缓冲区INCBL;基址寄存器加1,更换通道DECCX;计数器寄存器减1LOOPADC;CX不为0时循环,为0时进入下一指令MOVAL,00111000B;MOVDX,00010H;将PC口地址送数据寄存器,对PC口操作OUTDX,AL;将00111000B交给PC口赋值,使得CE为0,CS、R/C、INH为1,芯片复位RETAD574A试验二:数字程序控制程序设计【实验目的】了解数字程序控制原理和数字程序控制方式;了解插补原理及计算的程序实现、步进驱动控制技术原理及计算的程序实现、伺服驱动控制技术原理及计算的程序实现。【实验设备】工业控制计算机。计算机网络【实验原理】程序流程图:偏差判别↓坐标进给↓偏差计算↓坐标计算↓终点判断【实验内容】1.四象限圆弧插补计算程序设计2.作出走步轨迹图。【实验步骤】【注意事项】【实验报告】1.四象限圆弧插补计算过程表;2.用MATLAB或C、C++编写四象限圆弧插补计算程序;3.作出四象限圆弧插补走步轨迹图.实验程序:X0=input('请输入起点横轴坐标x:');Y0=input('请输入起点纵轴坐标y:');NXY=input('请输入差补步数:');pace=input('请输入差补步长:');RNSS=input('请选择差补走向(1代表顺时针/2代表逆时针):');XM=X0;YM=Y0;%画基准圆R=sqrt(X0*X0+Y0*Y0);alpha=0:pi/20:2*pi;xx=R*cos(alpha);yy=R*sin(alpha);plot(xx,yy,'g:');holdon;axisequal;%针对跨象限运行时对ZF初始化(由于在跨象限运行时不改变ZF值所以必须对其初始化)ZF=(RNSS==1)*(((Y0==0)*((X0>0)*4+(X0<0)*3))+((X0==0)*((Y0>0)*1+(Y0<0)*2)))+...(RNSS~=1)*(((Y0==0)*((X0>0)*3+(X0<0)*4))+((X0==0)*((Y0>0)*2+(Y0<0)*1)));%建立NXY次循环来实现差补计算与绘图fornum=1:NXY%FM值判断FM=XM*XM+YM*YM-X0*X0-Y0*Y0;%象限判断(RNS为1,2,3,4分别代表1,2,3,4象限)RNS=(XM>0)*((YM>0)*1+(YM<0)*4)+(XM<0)*((YM>0)*2+(YM<0)*3);%走步计算(RNS百位为1表示逆时针画圆,十位为1表示FM<0,个位数字表示所在象限,ZF代表走步方向)switchRNS+((FM<0)*10)+(RNSS~=1)*100case001ZF=4;case002ZF=1;case003ZF=3;case004ZF=2;case011ZF=1;case012ZF=3;case013ZF=2;case014ZF=4;case101ZF=2;case102ZF=4;case103ZF=1;case104ZF=3;case111ZF=3;case112ZF=2;case113ZF=4;case114ZF=1;end%步进电机走步(由ZF控制走步方向由pace控制步长)switchZFcase1x1=[XM,XM+pace];y1=[YM,YM];case2x1=[XM,XM-pace];y1=[YM,YM];case3
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 人物角色形象使用合同样本
- 产品 技术协议合同标准文本
- 企业制造外包合同标准文本
- 七年级信息技术《2.3.1计算机安全与防护》教学设计 苏教版
- 12我的环保小搭档 第二课时 教学设计-2023-2024学年道德与法治二年级下册统编版
- 买卖钢卷合同样本
- 工业污水处理厂项目可行性分析与未来展望
- 翻转课堂在中小学教育中的创新应用与实践路径
- 2017秋苏科版八年级生物上册第七单元第20章同步教学设计:7.20.2动物的发育
- 传统戏剧的保护与传承路径探索
- 初中作文指导-景物描写(课件)
- 秋 轻合金 铝合金相图及合金相课件
- 6.3.1 平面向量基本定理 课件(共15张PPT)
- 安全安全检查表分析(SCL)记录表(设备、设施)
- 城市湿地公园设计导则2017
- 小学巡课记录表
- 消防管道隐蔽工程验收报审表(表格记录)
- 地质灾害群测群防讲义
- 高频变压器标准工时对照表
- 建筑工程质量检测收费项目及标准表67262
- 232425黄昆固体物理教案
评论
0/150
提交评论