毕业论文-二阶对象控制系统设计(PC机)_第1页
毕业论文-二阶对象控制系统设计(PC机)_第2页
毕业论文-二阶对象控制系统设计(PC机)_第3页
毕业论文-二阶对象控制系统设计(PC机)_第4页
毕业论文-二阶对象控制系统设计(PC机)_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGE37摘要:计算机控制系统就是利用计算机来实现生产过程自动控制的系统。通信与网络技术、微电子技术的高速发展,给计算机控制技术带来了巨大的变革。人们利用这种技术可以完成常规控制技术无法完成的任务,达到常规控制技术无法达到的性能指标。本次二阶对象控制系统就是采用通过用户在键盘上输入PID参数,从而选取合适的主要参数Kp,Ki,Kd和采用周期T,使整个系统具有满意的动态特征,并满足稳态误差要求。关键词:二阶对象、控制、PID参数、A/D、D/A目录1概述…………32课程设计任务及解决方案…………32.1课程设计任务……………………32.2系统设计解决方案………………43系统硬件的设计………43.1系统硬件设计方案………………43.2D/A转换电路………53.3A/D转换电路………4系统软件的设计…………74.1程序设计思想及流程……………74.2A/D转化子程序……………………4.3键盘读入子程序…………………104.4屏幕显示子程序…………………115任务分工及总结………125.1任务分工……………125.2总结…………………12参考文献………………………14附录………………15附录一系统硬件连接图………………15附录二程序清单………16二阶对象控制系统设计(采用PC机)1概述通信与网络技术、微电子技术的高速发展,给计算机控制技术带来了巨大的变革。人们利用这种技术可以完成常规控制技术无法完成的任务,达到常规控制技术无法达到的性能指标。自动控制技术在许多领域里获得了广泛的应用。所谓自动控制,就是在没有人直接参与的情况下,通过控制器使生产过程自动地按照预定的规律运行。近年来,计算机已成为自动控制技术不可分割的重要组成部分,并为自动控制技术的发展和应用开辟了广阔的新天地。本次课程设计是采用PC机设计二阶系统的控制器,通过用户在键盘上输入PID参数,从而将二阶系统的参数控制在一定范围之内。2课程设计任务及解决方案2.1课程设计任务1、采用运算放大器搭建如图2-1所示的二阶系统,观察并记录该二阶系统的阶跃响应曲线,判断二阶系统的稳定性。2、运用PC机设计控制器,使如图所示的二阶不稳定对象的稳态精度≤5%,调节时间≤60s,超调量≤20%。3、设计人机接口,能用键盘修改控制器参数,如P、I、D参数,并能通过LED或CRT显示器显示稳态值、稳态误差、超调量、调节时间。图2-1二阶对象控制系统2.2系统设计解决方案本设计采用的主要硬件有PC机,DAC0832,AD574和标准CRT显示器。其硬件电路的基本环节由PC机,键盘输入电路,A/D转换电路,D/A转换电路和CRT显示电路组成。硬件原理方框图如图2-2所示。图2-2硬件原理方框图3系统硬件的设计3.1系统硬件设计方案PC机PID控制器PC机PID控制器DAC0832G(s)干扰AD574图3-1系统方框图设定值与PC机连接的芯片有,输入:AD574输入键盘输出:DAC0832输出CRT显示器3.2D/A转换电路D/A转换器是一种将数字信号转换成模拟信号的器件,本设计采用的是DAC0832芯片,它是一种常用的电流输出型的8位数模转换器。在电路中使用了CMOS电流开关和控制逻辑,从而达到较低的功耗和较低的输出漏电流误差。采用特殊的电路结构可与TTL逻辑输入电平相兼容。1201202193184175DAC0832166157148139121011图3-2DAC0832引脚图SKIPIF1<0SKIPIF1<0AGNDD3D2D1D0SKIPIF1<0SKIPIF1<0DGNDSKIPIF1<0SKIPIF1<0SKIPIF1<0SKIPIF1<0D4D5D6D7SKIPIF1<0SKIPIF1<0分辨率:8位;电流建立时间:1SKIPIF1<0;线性度(在整个温度范围内):8位;单一电源:+5~15V(直流)DAC0832的引脚如图3-2所示,各引脚功能介绍如下:(1)SKIPIF1<0:片选信号(低电平有效)。(2)SKIPIF1<0;输入锁存允信号(高电平有效)。(3)SKIPIF1<0:写1(低电平有效)。当SKIPIF1<0为低电平时,用来将输入数据传送到输入锁存器;当SKIPIF1<0为高电平时,输入锁存器中的数字被锁存;当SKIPIF1<0为高电平,又必须是SKIPIF1<0和SKIPIF1<0同时为低时,才能将锁存器中的数据进行更新。以上三格外控制信号构成第一级输入锁存。(4)SKIPIF1<0:写2(低电平有效)。该信号与SKIPIF1<0配合,可使锁存器中的数据传送到DAC寄存器中进行转换。(5)SKIPIF1<0:传送控制信号(低电平有效)。SKIPIF1<0将与SKIPIF1<0配合使用,构成第二级锁存。(6)D7~D0:数字输入量。(7)SKIPIF1<0和SKIPIF1<0:DAC电流输出1和2。(8)SKIPIF1<0:参考电压输入,要求外部接一个精密的电源。(9)SKIPIF1<0:数字电路供电电压,一般为+5~+15V。(10)SKIPIF1<0:反馈电阻(11)AGND和DGND:模拟地和数字地。本设计利用DAC0832的扩展接口,DAC0832有3种工作方式,分别是直通方式、单缓冲方式和双缓冲方式,本设计采用的是双缓冲方式,PC机对DAC0832的寄存器进行控制,先把数据写入寄存器,再将寄存器内容写入DAC寄存器并启动转换。3.3A/D转换电路设计中采用的模数转换器是AD574A型芯片,A/D转换电路将输入的模拟电压(或电流)转换成数字量。AD574A是单片高速12位逐次比较型A/D转换器,内置双极性电路构成的混合集成转换显片,具有外接元件少,功耗低,精度高等特点,并且具有自动校零和自动极性转换功能,只需外接少量的阻容件即可构成一个完整的A/D转换器。AD574A的主要特点如下:图3-3AD574A引脚图图3-3AD574A引脚图非线性误差:小于±1/2LBS或±1LBS。转换速率:25SKIPIF1<0。模拟电压输入范围:0—10V和0—20V,0—±5V和0—±10V两档四种。电源电压:±15V和5V。数据输出格式:12位/8位。芯片工作模式:全速工作模式和单一工作模式。AD574A的引脚如图3-3所示,各引脚功能如下:(1)V+:数字逻辑部分电源+5V。(2)SKIPIF1<0:数据模式选择端,通过此引脚可选择数据纵线是12位或8位输出。(3)SKIPIF1<0:片选信号端,低电平有效。(4)A0:字节选择控制线。与SKIPIF1<0端用来控制启动转换的方式和数据输出格式。须注意的是,SKIPIF1<0端TTL电平不能直接与+5V或0V连接。(5)SKIPIF1<0:读数据转换控制信号。(6)CE:启动转换信号,高电平有效。可作为A/D转换启动或读数据的信号。(7)SKIPIF1<0和SKIPIF1<0:模拟部分供电的正电源和负电源,为±12V或±15V。(8)REFOUT:10V内部参考电压输出端。(9)REFIN:基准电源电压输入端。(10)BIPOFF:补偿调整。接至正负可调的分压网络,以调整ADC输出的零点。(11)DGND和AGND:数字地和模拟地。(12)DB0~DB11:数字量输出。(13)STS:工作状态指示信号端,当STS=1时,表示转换器正处于转换状态,当STS=0时,声明A/D转换结束,通过此信号可以判别A/D转换器的工作状态,作为单片机的中断或查询信号之用。(14)10SKIPIF1<0和20SKIPIF1<0:模拟量10V和20V量程的输入端。AD574和PC机系统的基本组成主要有PC机、A/D转换器和计算机接口。其中PC机是核心部分,主机通过接口启动PC机工作,以使CPU资源向其它请求开放。PC机发出控制信号以启动A/D转换器进行采样。4系统软件的设计4.1程序设计思想及流程在设计中,程序分为主程序,A/D转换模块,D/A转换模块,键盘输入模块和屏幕显示模块五个模块组成。主程序流程图如图4-1所示。下面分别将主程序,A/D转化子程序,键盘读入子程序,屏幕显示子程序的流程图做简单说明。图4-1主程序流程图先对程序进行初始化,输入R-SET值,在显示器上画出坐标和表头,对KID参数进行设置,运行程序,计算机将键盘输入值转化为二进制的形式,在进行计算,读20次AD转化结果,,然后对其滤波,再将采样值转化为电压形式,然后将其显示在显示器上,再调用PID记法程序,将结果输出.4.2A/D转化子程序A/D574是将模拟信号转化为数字信号的芯片,在启动前需选好通道,然后通过R/C管脚来控制A/D的工作状态,并且通过对STS的查询来判断转化是否完成.图4-24.3键盘读入子程序由键盘上读入的键值为ASCII值,在进行运算时需二进制的形式,并且在每次输入新的数值时,需要将前一次的输入值的二进制数乘上一个权,在把她与新的数值的二进制数求和.图4-3键盘读入程序流程图4.4屏幕显示子程序在屏幕上以描点的形式画出波形图,将每次采样值分成25mV一个小格,当采样值为-5.0时,Y轴坐标为465,当采样值增大时,采样值的Y坐标为465减去其格数,每采样一次X坐标值自动增1,直到达到C_P=640时,把C_P清零从头开始描点图4-4屏幕显示程序流程图5任务分工及总结5.1任务分工任务完成人员硬件焊接姚远,王宇主程序王颖A/D、D/A转换程序王攀,王颖键盘读入程序、PID算法王宇屏幕显示程序王攀报告书写王宇,姚远5.2总结王颖:通过这次课程设计,我学到了很多。我深刻的了解了计算机控制在现代工业控制中的作用,和优势。通过计算机我们可以对不稳定的系统进行控制。完成更复杂的控制,来满足现代工业需要。这次试验使我熟悉了AD574芯片的使用方法和性能。AD574是模数装换芯片,将模拟信号装换成数字信号,是实现数字控制的基础。它将系统输出模拟信号转换成数字信号,将数字信号送给计算机分析和处理。利用计算机的强大的计算功能,来势完成数字PID算法。对系统进行调解。计算机再将计算结果传给DAC0832数模转换芯片。再将数据字信号转换为模拟信号。送给二阶被控对象,对其进行调节。计算机要将读入的数据显示显示器上。计算机要讲读入的数据加以处理才能正确显示在显示器上。先将读入的数字信号进行滤波处理,然后再将它们转化为电压的形式。再将它们转化为ASCII送显示。计算机根据数据在显示器上进行描点画图。系统的给定值、KP、KI和KD的值由键盘输入。对他们要进行二进制转换,才能进行数据处理。正个控制构成主要是数据类型的转换。和PID控制算法的设计。数字PID还设计到采样周期设计。采样周期应以越小越好。数字PID的控制能力更强的,能够满足复杂工业控制。姚远:本次设计是基于二阶对象控制系统设计的要求,让我们在跨入工作前就提前去实践完成一些设计项目,很大程度上提高了我们的动手能力。此次课程设计使我明白了课程设计是一项高强度、多配合的团队工作。使我们懂得如何在工作学习中与人交流、配合,使工作效率较高,工作效果较好某个人的离群都可能导致整项工作的失败。课程设计中只有一个人知道原理是远远不够的,必须让每个人都知道,否则一个人的失误会导致整个设计的失败。同时使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论。总之,此次课程设计充分锻炼了我们分析问题和解决问题的能力,使我们的知识不仅仅停留在理论阶段,为我们的计算机控制相关知识的学习和动手能力的提升提供了很好的锻炼机会。这次设计我负责的是设计的报告书写部分,这一段相比整个任务来说相对比较简单,原以为任务会轻松完成,不过还是问题不断。其实这次课程设计,给我最大的启示就是要在这么短的时间里完成这个复杂的程序靠一个人的力量是很难完成的,这需要几个人的通力合作。而此次计控课程设计算得上大学四年最后一次真正意义上的需要团队合作才能完成的任务。王宇:课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。通过本次课程设计,使我对我们所学习的计算机硬件基础,计算机控制系统,汇编语言编程有了更深刻的认识和掌握。并把所学的理论知识运用到实际系统的设计和解决问题中。我们小组的题目是:二阶对象控制系统的设计(PC机实现)。我负责了硬件的焊接,报告的书写和键盘读入,PID算法部分程序。硬件的焊接和报告的书写虽然已经做过很多次但还是需要认认真真去完成才能保证不出差错。另外键盘读入上关于二进制和ASCII码的转换需要注意,而PID算法则是在熟悉了二阶对象后,应用所学控制知识来解决的。另外通过这次设计我再次体会到了团队合作的力量。把整项工作具体化,大家分工合作,极大的提高了工作效率。总之,此次课程设计充分锻炼了我们分析问题和解决问题的能力,使我们的知识不仅仅停留在理论阶段,让理论在实践中得到升华,为我们的计算机控制相关知识的学习和动手能力的提升提供了很好的锻炼机会。王攀:本次课程设计,我主要负责屏幕显示部分子程序的编写。当接到这个分工时,我确实有点为难,因为以前并没有系统学习屏幕显示这部分的程序,所以这次只有自己查阅相关程序,来从头开始学习。屏幕显示程序主要包括字符的显示和和图形曲线的显示,其显示的原理基本相同,在字符和图形显示方式下,屏幕都被分成一系列的点阵。当要显示字符时,每个字符的显示以点阵为单位,显示信息以ASCCⅡ的形式存放,通过以系列的硬件自动处理后给显示器显示;图形显示方式提供了多种分辨率,每一个小方格称为一个像素点,把不同的像素值写入到这些像素点,像素点就有了不同的颜色,则屏幕上可以显示相应的图形。通过为期一周的计算机控制课程设计,我在课外扩充了很多实践知识,主要有以下收获:通过这次课程设计使我对课本上学到的知识有了更深的认识,并在对理论知识的应用过程中,增强了自己的动手设计能力,补充和完善了知识结构,更激发了我对计算机控制学习并应用的兴趣;有了文献检索的能力,特别是如何利用Intel网及学校的数字图书馆资源检索需要的文献资料,知道了怎样能快速的找到自己需要的资料,并充分利用网络来扩充自己的知识;根据所得资料和课本所学知识,学会了如何分析问题,发现问题和解决问题的能力,将网络资源真正转化为自己的知识;在设计过程中也遇到了一些自己解决不了的问题,通过和小组其他组员的沟通与交流找到了解决方案,加强了与同学合作与交流的能力,同时也逐步树立了遇到困难战胜困难的信心。参考文献[1]黄勤等.计算机硬件技术基础实验教程.重庆大学出版社,2004年[2]李群芳等.单片微型计算机机与接口技术.电子工业出版社,2005年[3]王建华等.计算机控制技术.高等教育出版社,2002年[4]范立南等.单片微型计算机控制系统设计.人民邮电出版社,2003年[5]单片机实验指导书.西安唐都科技仪器公司.2006年附录附录1系统硬件连接图附录二程序清单.486DATASEGMENT'DATA'H_PORTEQU200H;读取数据高8位口地址L_PORTEQU201H ;读取数据低4位口地址CH_PORTEQU205H;通道选择端口地址IN_PORTEQU202H;输入寄存器地址DAC_PORTEQU204H;DAC寄存器地址X_PDW10R_SETDW1000K_SETDW28O_SETDW40960DATAADW8DUP(0)BUFFDW9,8,7,6,5,4,3,2,1,0,0,1,2,3,4,5,6,7,8,9MES1DB'"B"--BEGIN,"E"--EXIT,"S"--SET',0AH,0DH,'$'DISPDB'CH0R_SET:V',0AH,0DH,'$'DISP1DB'CH0000000V',0DH,'$'MES_KPDB'PLEASESETVALUEKp=','$'MES_KIDB'PLEASESETVALUEKI=','$'KONGDB'',0DH,'$'CHAODB'',0DH,'$'CBUFFDW4DUP(0)MESS0DB'+5.000V'MESS1DB'-5.000V'CH_NUMDB0OUTDADB0FLAG1DB0FLAG2DB0KEYBUFDB6COUNTDB?KEYNUMDB6DUP(?)MES2DB'R_SET(mV)=','$'EKDW0EK1DW1KPDW3KIDW1KPPDW0KIIDW0OUTDA1DB0M1DW1PMAXDW0PMAX1DW0DATAENDSSTCKSEGMENTPARASTACK'STACK'DB256DUP(0)STCKENDSCODESEGMENTMAINPROCFARASSUMECS:CODE,DS:DATA,SS:STCKSTART:PUSHDSMOVAX,0PUSHAXMOVAX,DATAMOVDS,AXLEADX,MES2;显示输入提示信息MOVAH,09HINT21HLEADX,KEYBUFMOVAH,0AHINT21H;从键盘输入系统设定值MOVBX,0;将从键盘接收的数据转换成二进制数MOVDI,0LLP:MOVAL,KEYNUM[DI]ANDAL,0FHMOVAH,0XCHGAX,BXMOVCX,10MULCXADDBX,AXINCDIMOVAX,DICMPAL,COUNTJZLLP0JMPLLPLLP0:MOVR_SET,BX;存放设定值MOVDATAA[4],BXMOVCH_NUM,2;设定值送显示缓存区CALLDISPH1MOVCH_NUM,0CALLTT;在屏幕上画坐标LEADX,MES1;送操作提示符屏幕上显示MOVAH,09HINT21HLEADX,dispMOVAH,09HINT21HAJ:MOVAH,01HINT16H;查询是否有键按下JZAJ;没有键按下,继续循环MOVAH,0INT16H;有键按下,读键值CMPAL,'B'JZPL;开始键按下,转置标志程序JMPAJ;无操作键按下,转循环程序PL:LEADX,CHAOMOVAH,09HINT21HLEADX,DISP1;送显示缓存区数据屏幕上显示MOVAH,09HINT21HLP:MOVDI,0MOVCX,20LP00:CALLSAMP0;读20次A/D转换结果LOOPLP00CALLSAMP1;20个数据由大到小排列CALLSAMP2;求中间16个数据平均值CALLBTOD;标尺变换,将采集样变换为电压毫伏值CMPFLAG2,0JZNEXTMOVFLAG2,0PUSHAXPUSHBXPUSHCXMOVBX,R_SETMOVCX,BXMOVAX,PMAXSUBAX,BX;PMAX减去预设值JSNNDIVCXMOVBH,4MOVBL,10LEADI,CBUFFWW:MOV[DI],AXINCDIINCDIMOVCX,R_SETMOVAX,DXMULBLDIVCXDECBHJZNNJMPWWNN:POPCXPOPBXPOPAXCALLBFB;转换超调量的百分比LEADX,CHAOMOVAH,09HINT21HNEXT:CALLSDATA;传送到内存CALLDISPH;送显示预处理,将电压值转换成ASCII码CALLDISPL;送屏幕显示;CMPFLAG1,0;JZLP03CALLCT;调控制算法程序CALLDAOUT;送数到D/A转换CMPFLAG1,0JZLP03CALLPOINT;将当前采集样在屏幕描点LP03:MOVECX,300000HLP02:LOOPDLP02MOVAH,01HINT16H;查询是否有键按下JZLP;没有键按下,继续循环MOVAH,0INT16H;有键按下,读键值CMPAL,'E'JZLPQ;退出键按下,转退出程序CMPAL,'B'JZLPB;开始键按下,转置标志程序CMPAL,'P'JZLPP;停止键按下,转清标志程序CMPAL,'S'JZLPS;设置键按下转设置子程序JMPLP;无操作键按下,转循环程序LPQ:MOVOUTDA,60HCALLDAOUTRETLPS:LEADX,MES_KPMOVAH,09HINT21HLEADX,KEYBUFMOVAH,0AHINT21HCALLZHUANGMOVKP,BXLEADX,KONGMOVAH,09HINT21HLEADX,MES_KIMOVAH,09HINT21HLEADX,KEYBUFMOVAH,0AHINT21HCALLZHUANGMOVKI,BXLEADX,KONGMOVAH,09HINT21HJMPSTARTLPB:MOVFLAG1,1;置系统控制开始标志JMPLPLPP:MOVFLAG1,0;置系统控制停止标志JMPLPMAINENDPBFBPROCNEAR;进行显示预处理LEADI,CHAOADDDI,29MOVAX,CBUFF[0]ADDAL,30HINCDIMOV[DI],ALMOVAX,CBUFF[2]ADDAL,30HINCDIMOV[DI],ALMOVAX,CBUFF[4]ADDAL,30HINCDIMOV[DI],ALMOVAL,'.'INCDIMOV[DI],ALMOVAX,CBUFF[6]ADDAL,30HINCDIMOV[DI],ALRETBFBENDPZHUANGPROCNEARMOVBX,0;将从键盘接收的数据转换成二进制数MOVDI,0ZLP:MOVAL,KEYNUM[DI]ANDAL,0FHMOVAH,0XCHGAX,BXMOVCX,10MULCXADDBX,AXINCDIMOVAX,DICMPAL,COUNTJNZZLPRETZHUANGENDPCTPROCNEARMOVAX,R_SETMOVDX,DATAASUBAX,DX;AX等于EKMOVEK,AxMULKPMOVOUTDA,AHRETCTENDPCT1PROCNEARMOVDX,DATAAMOVAX,R_SETCMPAX,DXJBCTFUSUBAX,DXMOVEK,AXMULKP;DX:AX中存积;MOVBX,EK1;MOVCX,EK;ADDBX,CX;标度变换MOVCX,100DIVCXCMPDX,6JBBTOD11INCAXBTOD11:MOVCX,255MULCXMOVCX,100DIVCXCMPDX,51JBBTOD10INCAXBTOD10:MOVBL,80HSUBBLJMPOUTDAOUTCTFU:SUBDX,AXMOVAX,DXMULKPMOVCX,255MULCXMOVCX,100DIVCXCMPDX,6JBBTOD111INCAXBTOD111:MOVCX,100DIVCXCMPDX,51JBBTOD110INCAXBTOD110:MOVBL,80HADDBL,ALOUTDAOUT:MOVOUTDA,BLRETCT1ENDPPOINTPROCNEARMOVAX,DATAAADDAX,5000CWDMOVCX,25DIVCXMOVDX,465SUBDX,AX;计算纵坐标值MOVCX,X_P;计算横坐标值INCX_PCMPX_P,640JNZPOINT0MOVX_P,10POINT0:MOVAH,0CH;在屏幕上描点MOVAL,14MOVBH,0INT10HRETPOINTENDPTTPROCNEAR;在屏幕上画坐标MOVAH,0;置屏幕显示模式MOVAL,12HINT10HMOVBH,0MOVBL,0INT10HMOVCX,10;画Y轴坐标MOVDX,470MOVAH,0CHYTT:MOVAL,02INT10HDECDXCMPDX,55JNZYTTMOVDX,265;画X轴坐标XTT:INT10HINCCXCMPCX,610JNZXTTMOVCX,607;画X轴坐标箭头MOVDX,262UPX:INT10HINCDXINCCXCMPCX,610JNZUPXDOWNX:INT10HDECCXINCDXCMPCX,606JNZDOWNXMOVCX,7;画Y轴坐标箭头MOVDX,58UPY:INT10HINCCXDECDXCMPCX,10JNZUPYDOWNY:INT10H;在Y轴上做标志INCCXINCDXCMPCX,14JNZDOWNYMOVDX,65MOVCX,11MARK:INT10H;在X轴上做标志ADDDX,40CMPDX,505JNZMARKMOVDX,264MOVCX,10MARK1:INT10HADDCX,40CMPCX,650JNZMARK1MOVBX,000FHMOVBP,SEGMESS0MOVES,BPMOVBP,OFFSETMESS0MOVDL,02MOVDH,4MOVBL,1FHMOVAL,0MOVAH,13HMOVCX,07HINT10HMOVBP,OFFSETMESS1MOVDL,02MOVDH,29MOVBL,1FHMOVAL,0MOVAH,13HMOVCX,07INT10HRETTTENDPSAMP0PROCNEAR;读A/D 转换结果PUSHCXMOVDX,CH_PORT;通道选择端口地址MOVAL,CH_NUMADDAL,40H;选择通道0OUTDXMOVCX,100HLP1:LOOPLP1;延时ANDAL,0FH;给AD574送启动信号脉冲(低电平)OUTDXMOVCX,10LP2:LOOPLP2ADDAL,40H;给AD574送启动信号脉冲(高电平)OUTDXMOVDX,L_PORTLP3:INAL,DXTESTAL,01H;测STS信号JNZLP3;未转换完,继续查询MOVDX,H_PORTINAL,DX;读高8位MOVAH,ALINCDXINAL,DX;读低4位SHRAX,4MOVBUFF[DI],AXINCDIINCDIPOPCXRETSAMP0ENDPSAMP1PROCNEAR;对A/D转换结果排序MOVBX,19MOVCX,BXSAMP10:MOVSI,38SAMP11:MOVAX,BUFF[SI]CMPAX,BUFF[SI-2]JAEUNCHEXCH:XCHGBUFF[SI-2],AXMOVBUFF[SI],AXUNCH:DECSIDECSILOOPSAMP11DECBXMOVCX,BXCMPBX,0JNESAMP10RETSAMP1ENDPSAMP2PROCNEAR;求平均值MOVCX,16MOVAX,0MOVSI,4SAMP20:MOVBX,BUFF[SI]ADDAX,BXINCSIINCSILOOPSAMP20RETSAMP2ENDPBTODPROCNEAR;标度变换MOVCL,4SHRAX,CLMOVCX,2442MULCXMOVCX,1000DIVCXCMPDX,501JBBTOD1INCAXBTOD1:SUBAX,5000pushaxCMPAX,PMAXJBUNPASSPMAXMOVFLAG2,1MOVPMAX,AXUNPASSPMAX:POPAXRETBTODENDPSDATAPROCNEAR;读数至内存MOVCL,CH_NUMADDCL,CLMOVCH,0MOVSI,CXMOVDATAA[SI],AXRETSDATAENDPDAOUTPROCNEAR;实现D/A转换MOVAL,OUTDAMOVDX,IN_PORTOUTDX,AL;传送输入寄存器MOVDX,DAC_PORTOUTDX,AL;传送DAC寄存器RETDAOUTENDPDISPHPROCNEAR;进行显示预处理MOVAX,0MOVDI,AXMOVDX,DATAA[DI]LEADI,DISP1MOVAH,0ADDDI,4ADDDX,0JNSLP4NEGDXMOVAL,'-'JMPLP5LP4:MOVAL,''LP5:MOV[DI],ALMOVAX,DXCWDMOVCX,1000DIVCXADDAL,30HINCDIMOV[DI],ALMOVAL,'.'INCDIMOV[DI],ALMOVAX,DXMOVCL,100DIVCLADDAL,30HINCDIMOV[DI],ALMOVAL,AHMOVAH,0MOVCL,10DIVCLADDAL,30HINCDIMOV[DI],ALMOVAL,AHADDAL,30HINCDIMOV[DI],ALRETDISPHENDPDISPH1PROCNEAR;进行显示预处理MOVAL,CH_NUMADDALMOVAH,0MOVDI,AXMOVDX,DATAA[DI]LEADI,DISPMOVAH,0ADDDI,11ADDDX,0JNSLP44NEGDXMOVAL,'-'JMPLP55LP44:MOVAL,''LP55:MOV[DI],ALMOVAX,DXCWDMOVCX,1000DIVCXADDAL,30HINCDIMOV[DI],ALMOVAL,'.'INCDIMOV[DI],ALMOVAX,DXMOVCL,100DIVCLADDAL,30HINCDIMOV[DI],ALMOVAL,AHMOVAH,0MOVCL,10DIVCLADDAL,30HINCDIMOV[DI],ALMOVAL,AHADDAL,30HINCDIMOV[DI],ALRETDISPH1ENDPDISPLPROCNEAR;送数据屏幕显示LEADX,DISP1MOVAH,09HINT21HRETDISPLENDPCODEENDSENDSTART基于C8051F单片机直流电动机反馈控制系统的设计与研究基于单片机的嵌入式Web服务器的研究MOTOROLA单片机MC68HC(8)05PV8/A内嵌EEPROM的工艺和制程方法及对良率的影响研究基于模糊控制的电阻钎焊单片机温度控制系统的研制基于MCS-51系列单片机的通用控制模块的研究基于单片机实现的供暖系统最佳启停自校正(STR)调节器单片机控制的二级倒立摆系统的研究基于增强型51系列单片机的TCP/IP协议栈的实现基于单片机的蓄电池自动监测系统基于32位嵌入式单片机系统的图像采集与处理技术的研究基于单片机的作物营养诊断专家系统的研究基于单片机的交流伺服电机运动控制系统研究与开发基于单片机的泵管内壁硬度测试仪的研制基于单片机的自动找平控制系统研究基于C8051F040单片机的嵌入式系统开发基于单片机的液压动力系统状态监测仪开发模糊Smith智能控制方法的研究及其单片机实现一种基于单片机的轴快流CO〈,2〉激光器的手持控制面板的研制基于双单片机冲床数控系统的研究基于CYGNAL单片机的在线间歇式浊度仪的研制基于单片机的喷油泵试验台控制器的研制基于单片机的软起动器的研究和设计基于单片机控制的高速快走丝电火花线切割机床短循环走丝方式研究基于单片机的机电产品控制系统开发基于PIC单片机的智能手机充电器基于单片机的实时内核设计及其应用研究基于单片机的远程抄表系统的设计与研究基于单片机的烟气二氧化硫浓度检测仪的研制基于微型光谱仪的单片机系统单片机系统软件构件开发的技术研究基于单片机的液体点滴速度自动检测仪的研制基于单片机系统的多功能温度测量仪的研制基于PIC单片机的电能采集终端的设计和应用基于单片机的光纤光栅解调仪的研制气压式线性摩擦焊机单片机控制系统的研制基于单片机的数字磁通门传感器基于单片机的旋转变压器-数字转换器的研究基于单片机的光纤Bragg光栅解调系统的研究单片机控制的便携式多功能乳腺治疗仪的研制基于C8051F020单片机的多生理信号检测仪基于单片机的电机运动控制系统设计Pico专用单片机核的可测性设计研究基于MCS-51单片机的热量计基于双单片机的智能遥测微型气象站MCS-51单片机构建机器人的实践研究基于单片机的轮轨力检测基于单片机的GPS定位仪的研究与实现基于单片机的电液伺服控制系统用于单片机系统的MMC卡文件系统研制基于单片机的时控和计数系统性能优化的研究基于单片机和CPLD的粗光栅位移测量系统研究单片机控制的后备式方波UPS提升高职学生单片机应用能力的探究基于单片机控制的自动低频减载装置研究基于单片机控制的水下焊接电源的研究基于单片机的多通道数据采集系统基于uPSD3234单片机的氚表面污染测量仪的研制基于单片机的红外测油仪的研究96系列单片机仿真器研究与设计基于单片机的单晶金刚石刀具刃磨设备的数控改造基于单片机的温度智能控制系统的设计与实现基于MSP430单片机的电梯门机控制器的研制基于单片机的气体测漏仪的研究基于三菱M16C/6N系列单片机的CAN/USB协议转换器基于单片机和DSP的变压器油色谱在线监测技术研究基于单片机的膛壁温度报警系统设计基于AVR单片机的低压无功补偿控制器的设计基于单片机船舶电力推进电机监测系统基于单片机网络的振动信号的采集系统基于单片机的大容量数据存储技术的应用研究基于单片机的叠图机研究与教学方法实践基于单片机嵌入式Web服务器技术的研究及实现基于AT89S52单片机的通用数据采集系统基于单片机的多道脉冲幅度分析仪研究机器人旋转电弧传感角焊缝跟踪单片机控制系统基于单片机的控制系统在PLC虚拟教学实验中的应用研究基于单片机系统的网络通信研究与应用基于PIC16F877单片机的莫尔斯码自动译码系统设计与研究基于单片机的模糊控制器在工业电阻炉上的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论