《毕业设计论文应用单片机智能控制自整定PID调节器.doc》由会员分享,可在线阅读,更多相关《毕业设计论文应用单片机智能控制自整定PID调节器.doc(35页珍藏版)》请在三一办公上搜索。
1、目录第1章 引言2第2章 自整定PID调节器原理32.1PID调节器概述32.2常规PID调节器的离散模型32.3被控过程的数学模型32.4过程模型参数的自动辨识32.5自整定PID调节器参数的确定32.6应用实例3第3章 系统硬件电路33.1总体电路: 最小系统图33.2器件选择3第4章 软件设计34.1PID运算主程序设计34.2RAM单元分配3第5章 调试仿真35.1软件调试:KEIL35.2电路仿真: Proteus ISIS35.3仿真结论3第6章 结束语3致谢3参考文献3附录:程序清单3第1章 引言智能自整定调节器的研究意义随着微型计算机的功能愈来愈强及可靠性的不断提高。近年来,国
2、外先后提出了智能自整定调节器的多种方案,并在实际应用中取得了较好的控制效果。1983年的美国FOXBORO公司推出的自整定PID参数的EXACT控制器,使PID调节功能更有效。智能自整定调节器的发展历史、现状和研究方向文【2】分析了将专家系统方法应用到该智能控制仪表中的PID调节器参数自整定的原理和方法。日本东芝公司和富士通公司也先后推出了TOSDIC-211和FUJI MICREX自整定调节器。在过程工业界,从40年代开始,采用PlD控制规律的单输入单输出简单反馈控制回路已成为过程控制的核心系统。目前,PID控制仍广泛应用,即便是在大量采用DCS控制的最现代化的装置中这类回路仍占总回路数的8
3、0%-90%。这是因为PID控制算法是对人的简单而有效操作方式的总结与模仿,足以维护一般工业过程的平稳操作与运行,而且这类算法简单且应用历史悠久,工业界比较熟悉且容易接受。PID参数的自整定一般包括两部分内容:一是过程特性的提取,也称为韧热校正部分,即对过程进行辨识,得到过程的动态特性,求得过程的增益、时间常数、延妲时间,然后按过程的特征参数或者按部分模型的匹配法设定P1D参数。二是确定相应的最优控制器参数,也称为在线校正部分,是通过对控制响应的波形进行在线监视,求出性能控制指标,即超调量、振幅衰减比等,然后建立调整规则对PID参数进行更新。自Ziegler和Nichols提出PID参数整定方
4、法起,有许多技术已经被用于PID控制器的手动和自动整定。Ziegler-Nichols阶跃响应是确定PID参数的简单方法,根据纯滞后时间和时间常数来鉴定控制器的参数。但是该方法仅在纯滞后时间与时间常数之比处于0.1-1之间时才适用,对于大的纯滞后需采取专门补偿措施。另外设方法借助于作图来确定特征参数,得到的控制器是使用尚可的或次优的,并不能得到最优的控制器。其中应用广泛的有临界灵敏度法,需要测量临界增益和临界周期从而得到合适的PID参数。Z-N法需要使系统接近临界章台运行,这很易产生增幅振荡,并使系统毁坏。为克服二Z-N闭环方法的缺点,知名学者Astrom曾提出基于继电反馈的方法,该方法的基本
5、思路是在继电反馈下观测过程的极限环振荡,并由极限环的特征来确定过程的基本性质,然后算出PID调节器的参数。继电器自整定操作简单。不需要较多的有关被控对象的先验知识即可以整定控制嚣参数的优点,预先确定的参数少,仅仅是继电特性的输出高度和滞环宽度。而且它是在闭环条件下完成的,所以对扰动不灵敏,而且所产生的极限环振荡又是一种受控振荡,易于控制。Astrom在1988年美国控制会议(ACC上作的Toward Intelligent Control的大会报告概述了结合新一代工业控制器中的两种控制思想-自整定和自适应,为智能PID控制的发展奠定了基础。他认为自整定控制器和自适应控制器能视为一个有经验的仪表
6、工程师的整定经验的自动化,自整定调节器应具有推理能力。自适应PID的应用途径的不断扩大使得对其整定方法的应用研究变得日益重要。自适应技术中最主要的是自整定。根据发展阶段来分,PID参整定可分为常规PID参数整定方法及智能PID参数整定方法;按照被控对象个数来划分可分为单变量PID参数整定方法及多变量PlD参数整定方法,前者包括现有大多数整定方法,后者是最近研究的热点及难点。按控制量的组台形式来划分,可分为线性PID参数整定方法及非线性PID参数整定方法。前者用于经典PID调节嚣,后者用于非线性跟踪微分器和非线性组合方式生成的非线性PID控制器。按工作机理划分,自整定方法能分为两类:基于模型的自
7、整定方法和基于规则的自整定方法。目前来说,在众多的整定方法中主要有两种方法在实际工业过程中应用较好。一种是基于继电反馈的参数整定方法另一种是Foxboro公司推出的基于模式识别的参数整定方法。后者主要应用于Foxboro的单回路EXACT控制器及分散控制系统I/A Series的PIDE功能块,其原理是基于Bristol在模式识别方面的早期工作。前者的应用实例较多,这类控制器现在包括自整定、增益计划设定及反馈和前馈增益的连续自适应等功能,这些技术都极大简化了PID控制器的使用,显著改进了它的性能。设计任务本文提出的智能自整定PID调机器实际上是过程参数的自动辨识与PID调节参数的自动整定相结合
8、的一种自适应控制技术。原理框图如图1所示。基本部分是由参数可调的常规PID调节器和被控部分组成。当过程参数或特性发生变化时,通过在线辨识得到新的过程参数。根据预先给定的性能指标计算出PID调机器参数值,整定基本部分的PID调节器。使系统工作在最佳状态。 第2章 自整定PID调节器原理2.1 PID调节器概述PID调节器即比例-积分-微分调节器,由比例单元 P、积分单元 I 和微分单元D组成。通过Kp,Ki和Kd三个参数的设定。PID调节器主要适用于基本线性和动态特性不随时间变化的系统。PID调节器是一个在工业控制应用中常见的反馈回路部件。这个控制器把收集到的数据和一个参考值进行比较,然后把这个
9、差别用于计算新的输入值,这个新的输入值的目的是可以让系统的数据达到或者保持在参考值。和其他简单的控制运算不同,PID控制器可以根据历史数据和差别的出现率来调整输入值,这样可以使系统更加准确,更加稳定。可以通过数学的方法证明,在其他控制方法导致系统有稳定误差或过程反复的情况下,一个PID反馈回路却可以保持系统的稳定。2.2 常规PID调节器的离散模型连续PID调节器方程为 (1)其中e(t)为偏差输入,KP为比例增益,TI、TD分别为积分、微分时间常数,u(t)为PID调节器输出。方程(1)传递函数表达式为 (2)对方程(2)采用梯形积分来逼近积分,采用向后差分方程来逼近微分,然后进行离散Z变换
10、,得PID调节器离散模型3 (3)其中 (4) T为采样周期。采样周期的大小是离散控制系统设计运行首先必须考虑的一个重要问题。它对系统的稳定性、调节品质及PID调节器的算法都有影响,选择原则见文4。方程(4)有唯一解 (5)2.3 被控过程的数学模型通常被控过程是一个具有普遍意义的二阶惯性环节模型 (6)其中 K增益,、对象时间常数,且。 (7)其中 (8) d=1滞后步数二阶惯性加纯滞后环节也是一个典型的过程控制模型 (9) (10)其中滞后步数。 的值与式(8)中的值相同。2.4 过程模型参数的自动辨识目前过程模型参数自动辨识比较行之有效的方法是递推最小乘闭环在线辨识算法5。设被控过程用下
11、列线性差分方程描述 (11)其中u(t)为控制输入,即PID调节器的输出;y(t)为系统输出;为零均值白噪声序列;为滞后一步算子,即。(b0) (12) 被控过程参数辨识模型为 (13)其中 (14) (15) 递推最小二乘辨识算法可表示如下 (16) (17)其中称为遗忘因子,取0.9,R(k)为权因子,P(k)为模型协方差矩阵。2.5 自整定PID调节器参数的确定将方程(3)PID调节器离散模型改写成 (19)其中由式(19)可见,PID调节器对二阶对象模型具有最优调节器结构。对于控制对象为自身稳定的最小相位系统,可以使PID调节器脉冲传递函数的分子多项式正比于式(7)或式(10)表示的二
12、阶被控对象脉冲传递函数分母多项式,实现零点与消极对消。即 (20)由式(20)得根据式(20),可得自整定PID调节器闭环系统结构如图2所示。 图中r=在对象参数已知时,r为未知数。图2闭环系统特征方程为 (21) 显然,式(21)闭环系统极点分布与有关。由式(7)或式(10)可见,被控过程确定后即为定值。因此,只要根据一定的性能指标选择,即可确定PID调节器参数。 令,的选取要使闭环传递函数的范数等于1.即令 (22)选择x使超前相位角等于。即具有的稳定裕度的性能指标。 (23)由此得到下列的非线性方程 (24)因此,自整定PID调节器参数可归纳为下列三步:(1)采用迭代方法,根据已知的r,
13、解满足式(24)的x值。这里是x的第i次迭代值,i是迭代次数。具体迭代过程是:将初始值代入式(24),算出第二次迭代值,如此反复,直到满足需要的精度为止。当时,停止迭代。为预先给定的最小正数。(2)用公式(22)计算值。(3)由解得,因此可得,。式(19)PID调节参数即可确定。2.6 应用实例 一实际的工业过程控制对象传递函数为 (25) 根据文4选择采样周期T=1秒。根据方程(10),得 (26)用迭代方法计算满足式(24)的x值。已知r=0.970,预先给定,令初始值=0.5代入式(24),计算出第二次迭代值=0.1023,经过4次迭代,即满足精度要求。具体迭代过程如表1所示。表1i(迭
14、代次数)(x的第i次迭代值)10.50.102320.10230.179830.17980.164540.16450.1675|=|0.1675-0.1645|=0.0030.005.迭代停止,满足精度要求。根据方程(22),当x=0.1675时。得=0.0852, =0.3892, =-0.5597,=0.1985。自整定PID调节器参数为 (27)根据方程(5),得 (28)将模拟电路开环增益增大10倍,则, (29)第3章 系统硬件电路3.1 总体电路: 最小系统图本系统采用80S51单片微机、74LS373构成最小系统。并配有ADC0809及DAC0832转换电路。硬件电路如图3所示。
15、图3 80S51单片机最小系统及接口电路硬件组成图3.2 器件选择因为80S51总线端口分时地出现地址与数据,故用地址锁存允许信号ALE的下降沿把地址信息锁存在地址锁存器74LS373中。D/A转换电路由DAC0832完成,使用单缓冲方式,直接与80S51的P0口联接,因DAC0832输出端为电流信号,必须先通过运算放大器(OP07)构成电流电压变换,输出模拟电压为05V,为反馈信号输入端,反馈电阻在DAC0832内,运放输出模拟电压与输入的关系为 (30)其中为基准电压,通常。为实现双极性输出,必须将再经过(OP07)电平变换成+5-5V的输出,由图三显然可得 (31)当时,=5V;当=-5
16、V时,=-5V。这种利用电平变换电路(不仅增加一只运算放大器)使单极性输出D/A转换器变成双极性输出,比直接选用双极性输出的D/A成本要低廉很多,且线路非常简单,调整容易,值得推广应用。A/D转换采用ADC0809芯片,它是应用逐次逼近法的原理实现A/D转换,期其转换时间为100。转换后的数字量D可用下式表示 (32)其中为输入模拟电压,本装置中为05V,端接地。为参考电压(取5V,与8031单片微机电源电压相同)。因此,。由图3显然可得 (33)当=-5V时,=0V;当=+5V时,=+5V时。这样就将单极性ADC0809通过电平变换电路(增加一个运放)变成双极性输入输出,硬件电路十分简单。A
17、DC0809芯片的启动变换信号START由80S51的P2,7及的或非产生,下降沿启动A/D进行新的一次变换。执行指令MOVX DPTR,A后即可启动模拟通道的A/D变换。变换结束后,由EOC产生一个中断请求信号。CLK为时钟输入信号,OE为数字量输出允许信号。在图3硬件电路中,模拟地与数字地一定要分开连接,最后再将模拟地与数字地连在一起,这样可避免模拟量与数字量之间的相互影响,有利于抗干扰。第4章 软件设计4.1 PID运算主程序设计在智能自整定PID调节器的控制系统中,过程控制对象需要的是控制变量的绝对值而不是其增量,但PID算法仍可采用增量算法,而输出控制采用位置式输出形式。 (34)其
18、中:为本次设定值与实测值之差,成比例系数,积分系数,微分系数,。PID运算主程序框图如图4所示。4.2 RAM单元分配程序中用到的RAM单元,具体分配如图5所示。浮点数PID运算是采用三字节浮点数进行运算,每一数字量均占用三字节RAM单元,首字节放的是阶码,其中第7位放数符,第6位放阶符,剩下6位阶码值,后两字节为尾数,浮点数具体结构为: 数符阶符尾 数 高 字 节 尾 数 低 字 节 第5章 调试仿真5.1 软件调试:KEILKeil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统.。单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变
19、为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。Keil的使用起来很方便,下面介绍
20、一下Keil的具体使用步骤:1、 在桌面新建一个文件夹;2、 打开Keil,点击菜单栏中的“Project”,在下拉菜单中选择“New uVision Project”,新建工程;3、 此时会出现一个保存文件的对话框,在“保存在”这栏选择你刚才新建的那个文件夹;4、 此时会出现图6,点击“Atmel”左边的加号,会出现图7,然后点击“89C51”,再点击OK。 图6 图75、 按中的第一个图标,新建text1,在text1中写好程序,这时会出现对话框图8因为我的程序是汇编程序,因此保存的时候文件后缀为.asm,如果是c语言程序是应选择.c的后缀。6、 右键图9中的“Souce Group 1”
21、选择“Add Files to Source Group 1”这时会出现图10,图9图10文件类型选择“All files”,选择保存好的汇编程序,点击“Add”,确定增加之后选择“Close”关闭对话框。7、 按中间的“Buildi”图标,编译程序,此过程中可能会出现错误,找到错误原因,解决错误,一直到显示无错误,如图11所示图11Error不能出现,Warning可以出现。8、 这时候,要生成Hex文件供下一步仿真用。右键“Target1”,选择“Option for Target “Target 1”,再对话框里选择“Output”,如图图12图13在图13的对话框里,勾选“Creat
22、HEX File”,选择“OK”现在,再次运行“Build”,就会发现在新建的文件夹里已经生成了Hex文件。图145.2 电路仿真: Proteus ISISProtues软件是英国Labcenter electronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB
23、设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。在PROTUES绘制好原理图后,调入已编译好的目标代码文件:*.HEX,可以在PROTUES的原理图中看到模拟的实物运行状态和过程。下图是画好的电路图:图155.3 仿真结论本文利用XM-1型系统模拟实验仪器设置方程(25)的过程控制对象,利用X-Y函数记录仅对参考输入信号的输
24、出响应曲线如图16所示。图16由图16可见,输出响应实现了无超调控制,取得了较好的控制效果。本文介绍的这种智能自整定PID调节器算法对过程控制对象(6)与(9)通过调试发现均有较好的控制效果。当过程控制对象参数发生变化时,相应地改变PID调节器的参数,均获得较好的输出响应。显示了很强的鲁棒性。第6章 结束语本设计在金小华老师的悉心指导和严格要求下业已完成,从课题选择、方案论证到具体设计和调试,无不凝聚着金老师的心血和汗水,在三年的学习和生活期间,也始终感受着各个老师的精心指导和无私的关怀,我受益匪浅。在此向金小华老师表示深深的感谢和崇高的敬意。不积跬步何以至千里,本设计能够顺利的完成,也归功于
25、各位任课老师的认真负责, 使我能够很好的掌握和运用专业知识,并在设计中得以体现。 正是有了他们的悉心帮助和支持,才使我的毕业论文工作顺利完成,在此向苏州市职业大学,电子信息工程系的全体老师表示由衷的谢意。 感谢他们三年来的辛勤栽培。 忙碌了近半年,我的毕业设计课题也终将告一段落。点击运行,也基本达到预期的效果,虚荣的成就感在没人的时候也总会冒上心头。但由于能力和时间的关系,总是觉得有很多不尽人意的地方,譬如功能不全、没有具体实物、底层代码理解不够透彻可是,我又会有点自恋式地安慰自己:做一件事情,不必过于在乎最终的结果,可贵的是过程中的收获。以此语言来安抚我尚没平复的心。毕业设计,也许是我大学生
26、涯交上的最后一个作业了。想借这次机会感谢三年以来给我帮助的所有老师、同学,你们的友谊是我人生的财富,是我生命中不可或缺的一部分。我的毕业指导老师金老师,虽然我们是在开始毕设时才认识,他却能以一位长辈的风范来容谅我的无知和冲动,给我不厌其烦的指导。在此,特向他道声谢谢。 大学生活即将匆匆忙忙地过去,但我却能无悔地说:“我曾经来过。”大学三年,但它给我的影响却不能用时间来衡量,这三年以来,经历过的所有事,所有人,都将是我以后生活回味的一部分,是我为人处事的指南针。就要离开学校,走上工作的岗位了,这是我人生历程的又一个起点,在这里祝福大学里跟我风雨同舟的朋友们,一路走好,未来总会是绚烂缤纷。致谢在此
27、我要感谢我的指导老师金小华老师对我的细心地指导,感谢金老师给予我的帮助。同时感谢我的同学,在研究过程中,我通过查阅大量的相关资料,与同学交流使我学习起来更加快捷方便。还有那些传授我知识的维修工程师,他们丰富的经验和判断故障的能力让我刮目相看。有了你们的帮助我才能顺利地完成了我的毕业设计,是你们在我无助的时候给予我鼓励,是你们在我最困难的时候,一直给予我支持,给予宝贵的意见和经验,让我重拾回信心。这里我要再次感谢我的指导老师金小华老师,由于我很早就开始做毕业设计相关的东西,所以得到的指导也最多,他给予我的帮助很多,在我碰到困难的时候,一直在我身边鼓励我,并和我一起研究,一起解决碰到的困难。在后期
28、论文的完善过程中,更加不厌其烦地指导我怎样才能写好论文,怎样修改论文,再一次表示我来自内心的感谢。参考文献1 C.Banyasu et al,An adaptive PID regular dedicated for microprocessor lased Compact Controllers,The 7th IFAC Symposium on Identification and Systerm Parameter Estimation,1985,PP.12992 刘伯春:智能控制仪表中的PID调节器参数自整定自动化仪表,1990(7)PP.8-12。3 R.G.Jacquot,Mode
29、rn digital Control Systerm,1981.4 刘伯春:离散系统采样周期的选择化工自动化及仪表,1981(1)PP。5 涂时亮等:单片微机软件设计技术,科学技术文献出版社重庆分社,1988年。6 郭一新:基本最小二乘参数估计的程序设计信息与控制,1984(6),P.49-52。7 孙育才:MCS-51系列微型计算机及其应用,东南大学出版社,1987年。8 刘伯春:IMC与自动校正PID调节器自动化与仪器仪表,1990(1),PP.36-41。9 何立民编著:单片机应用系统设计,北京航空航天大学出版社,1990年。10 赵依军等编著:单片微型计算机接口技术,湖北省计算机学会,
30、1988年。附录:程序清单PIDJ2:MOV R0,#52HMOV R1,#49HLCALL FSUBMOV R1,#4CHLCALL FSTRMOV R0,#4CHMOV R1,#40HLCALL FSUBMOV R1,#4FHLCALL FSTRMOV 40H,4CHMOV 41H,4DHMOV 42H,4EHMOV R1,#4CHMOV R2,#09HLCALL LPDM2MOV R0,#40HMOV R1,#4CHLCALL FMULMOV R1,#4CHLCALL FSTRMOV R0,#4CHMOV R1,#4FHLCALL FADDMOV R1,4CHLCALL FSTRMOV
31、R0,#4FHMOV R1,#43HLCALL FSUBMOV R1,#49HLCALL FSTRMOV R1,#43HMOV R2,#0CHLCALL LPDM2MOV R1,#49HMOV R0,#43HLCALL FMULMOV R1,#49HLCALL FSTRMOV 43H,4FHMOV 44H,50HMOV 45H,51HMOV R1,#49HMOV R0,#4CHLCALL FADDMOV R1,#4FHLCALL FSTRMOV R1,#4CHMOV R2,#06HLCALL LPDM2MOV R0,#4CHMOV R1,#4FHLCALL FMULMOV R1,#4CHLCA
32、LL FSTRMOV R0,#46HMOV R1,#4CHLCALL FADDMOV R1,#4CHLCALL FSTRMOV 46H,4CHMOV 47H,4DHMOV 48H,4EHRETLPDM2:MOV R7,#03HLPDM20:MOV A,R2MOVC A,A+PCMOV R1,AINC R2INC R1DJNZ R7,LPDM20RETPM2:DB 00H,00H,00HDB 00H,00H,00HFADD:CLR 3AHLCALL FMLDLCALL FABPRETFSUB:SETB 3AHLCALL FMLDLCALL FABPRETFSTR:MOV A,R4MOV R1,A
33、INC R1MOV A,R2MOV R1,AINC R1MOV A,R3MOV R1,ADEC R1DEC R1RETFMUL:LCALL FMLDMOV A,R6XRL A,R7MOV C,ACC.7MOV 38H,CLCALL DMULMOV A,R7MOV C,ACC.7MOV PSW.5,CMOV A,R0ADD A,R1MOV R6,ASETB CLCALL FSDTMOV A,R6MOV C,38HMOV ACC.7,CMOV R4,ARETDMUL:MOV A,R3MOV B,R5MUL ABMOV R7,BMOV A,R3MOV B,R4MUL ABADD A,R7MOV R7
34、,ACLR AADDC A,BMOV R3,AMOV A,R2MOV B,R5MUL ABADD A,R7MOV R7,AMOV A,R3ADDC A,BMOV R3,AMOV PSW.5,CMOV A,R3MOV B,R4MUL ABADD A,R3MOV R3,ACLR AADDC A,BMOV C,PSW.5ADDC A,#00HMOV R2,ARETFMLD:MOV A,R0MOV R6,AINC R0MOV A,R0MOV R2,AINC R0MOV A,R0MOV R3,ADEC R0DEC R0MOV A,R1MOV R7,AINC R1MOV A,R1MOV R4,AINC R
35、1MOV A,R1MOV R5,ADEC R1DEC R1RETFABP:MOV A,R6MOV C,ACC.7MOV 38H,CXRL A,R7JNB ACC.7,FA1CPL 3AHFA1:MOV A,R6MOV C,ACC.6MOV ACC.7,CMOV R6,AMOV A,R7MOV C,ACC.6MOV ACC.7,CMOV R7,ACLR CMOV A,R6SUBB A,R7JZ FA2CLR PSW.5CLR 39HJB ACC.7,FA5CJNE R4,#00H,FA6CJNE R5,#00H,FA6FA2:JB 3AH,FA8MOV A,R3ADD A,R5MOV R3,AM
36、OV A,R2ADDC A,R4MOV R2,AJNC FA4SETB 39HCLR CFA3:CLR PSW.5LCALL FSDTFA4:CJNE R2,#00H,FAACJNE R3,#00H,FAAMOV R4,#41HRETFAA:MOV A,R6MOV C,38HMOV ACC.7,CXCH A,R4MOV R6,ARETFA5:CJNE R2,#00H,FA7CJNE R3,#00H,FA7MOV A,R7MOV R6,ASJMP FA2FA6:CPL PSW.5FA7:CLR CLCALL FSDTSJMP FA1FA8:MOV A,R3CLR CSUBB A,R5MOV R3
37、,AMOV A,R2SUBB A,R4MOV R2,AJNC FA9CLR ACLR CSUBB A,R3MOV R3,ACLR ASUBB A,R2MOV R2,ACPL 38HFA9:SETB CSJMP FA3FSDT:JC FS2MOV C,39HJB PSW.5,FS1MOV A,R2RRC AMOV R2,AMOV A,R3RRC AMOV R3,AINC R6RETFS1:MOV A,R4RRC AMOV R4,AMOV A,R5RRC AMOV R5,AINC R7RETFS2:MOV A,R2JNZ FS4CJNE R3,#00H,FS5MOV R6,#41HFS3:RETFS4:JB ACC.7,FS3FS5:MOV C,PSW.5MOV A,R3RLC AMOV R3,AMOV A,R2RLC AMOV R2,ACLR PSW.5DEC R6SJMP FS2END- 35 -