单片机张力检测控制系统本科 毕业设计.doc_第1页
单片机张力检测控制系统本科 毕业设计.doc_第2页
单片机张力检测控制系统本科 毕业设计.doc_第3页
单片机张力检测控制系统本科 毕业设计.doc_第4页
单片机张力检测控制系统本科 毕业设计.doc_第5页
免费预览已结束,剩余37页可下载查看

下载本文档

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

文档简介

毕业设计(论文)论文题目单片机张力检测控制系统 摘要随着科技的发展,单片机在一些自动控制的生产系统中得到充分的应用,本课题主要研究对象是车牌膜卷冲压的张力控制,通过我们苦苦的研究,终于找到一种比较好的解决方法:通过传感器检测膜卷带转动的角度转化为电流信号I(in),将420mA电流信号I(in)转换为A/D转换器能接收的电压信号U(in);A/D转换器将模拟电压信号U(in)转化为单片机处理器可以读写的数字信号D0-D7,将此数字信号与给定线速度电流数字信号送给单片机处理器,用预先汇编好PID算法程序进行处理,PID算法是能自我调节增量式的自动控制系统,以及用8155扩展输入输出口芯片进行扩展成一个输入口一个输出口,两个IO口都是用2501隔离芯片进行各种输出输入信号的光电隔离。然后将得出的增量式的数字信号传送给D/A转换器,通过转换得到需要的电流信号,将电流信号通过放大器等模拟芯片转换成电压信号,再将此电压信号用XR101转换成420mA 的电流信号。将此模拟电流信号驱动伺服电机控制器,再驱动伺服电机,使膜卷带保持恒定的线速度。关键词:单片机;PID控制ABSTRACT Owning to the tremendous advancement of technology, micro-chip has increasing use in automation factory. This thesis mainly discuss some solution to the complexity in the automation process. A perfect solution is founded out at last result from our hard work .With a transformation from angle of press machine sensor to ampere signal, this ampere signal range from 4 to 20mA is transform to voltage signal which is accepted by A/D converter. And this analog voltage signal U(in) will send into A/D converter in order to convert it to digital signal D0D7 that is been acceptable by computer. On the other hand ,we inject both an given digital ampere signal related to the thread velocity of the machine and preceding digital signal D0D7 into the computer processor 82S95 .Thus the increasingly PID previously made by assembly langue will process the two signal and make the system stable. And using 8155 to extend the interface for increasingly numbers of input and out put for control signal .Both the input and output interfaces are lightly and electrically separated by the chip 2501.After that ,the micro-processor will output a proper digital signal into D/A converter. Then the converter will transform the signal to analogy ampere signal. After two transformations, the needed 420mA are available to compensate the executor of pressed machine.Key words:micro-chip;PID control目录摘要IABSTRACTII目录III1 绪论11.1 单片机张力检测控制的发展趋势11.2 单片机张力检测控制系统的技术要求21.3单片机张力检测控制系统传感器22 单片机张力检测控制系统的硬件设计32.1 单片机张力检测控制系统主要部件32.2单片机张力检测控制系统的基本组成32.2.1 单片机处理器89S52的主要性能和功能32.2.2 ADC0809主要性能和功能42.2.3 DAC0832主要性能和功能52.2.4 XTR101主要性能和功能72.2.5 IO口扩展8155主要性能和功能82.2.6 光电隔离芯片2501主要性能和功能102.3单片机张力检测控制系统综合设计102.3.1 系统设计主要内容102.3.2 系统设计流程图112.3.3 系统资源分配表112.3.4 系统设计电路原理图(在附录)122.3.5 系统设计PCB图(在附录)122.4 单片机张力检测控制系统其它部件的设计122.4.1 电源设计122.4.2 采用D触发器分频122.4.3 电流/电压转换133 浮点数简单的运算143.1 浮点数的概念143.2 规格化子程序FSDT153.3浮点数取数子程序FMLD173.4 浮点数加、减法处理子程序 FABP173.5 浮点数加法子程序FADD203.6 浮点数减法子程序FSUB203.7 浮点数乘法法子程序FMUL213.8 浮点数除法子程序FDIV233.9 三字节浮点数转换为双字节整数子程序FINT253.10 浮点数存数子程序FSTR264 增量式 PID算法程序设计274.1 增量式 PID算法概念274.2 增量式 PID算法设计表达式274.3 PID流程图294.4 PID 总程序设计295 结束语325.1 全文总结325.2 进一步研究的工作32致谢33参考文献34附录35351 绪论 在现代化自动化生产当中,经常在车牌膜卷带的冲压过程中,由于膜卷带的张力大小会发生一些变化,从而在冲压中引起脱落等一系列不良的反应。而本课题就是在解决以上问题而设计的一款新型的单片机张力检测控制系统,在膜卷带冲压系统中检测并保持膜卷带的转动的线速度的恒定,以达到工艺要求。其主要研究范围:单片机处理器,A/D转换器,D/A转换器,8155等芯片的功能及其整个系统的连接,PID算法汇编语言实现。希望通过的研究设计,为我们自动化生产流程带来良好效果。1.1 单片机张力检测控制的发展趋势 现在可以说单片机是百花齐放,百家争鸣的时期,世界上各大芯片制造公司都推出了自己的单片机,从8位、16位到32位,数不胜数,应有尽有,有与主流C51系列兼容的,也有不兼容的,但它们各具特色,互成互补,为单片机的应用提供广阔的天地。纵观单片机的发展过程,可以预示单片机的发展趋势,大致有:(1)低功耗CMOS化MCS-51系列的8031推出时的功耗达630mW,而现在的单片机普遍都在100mW左右,随着对单片机功耗要求越来越低,现在的各个单片机制造商基本都采用了CMOS(互补金属氧化物半导体工艺)。象80C51就采用了HMOS(即高密度金属氧化物半导体工艺)和CHMOS(互补高密度金属氧化物半导体工艺)。CMOS虽然功耗较低,但由于其物理特征决定其工作速度不够高,而CHMOS则具备了高速和低功耗的特点,这些特征,更适合于在要求低功耗象电池供电的应用场合。所以这种工艺将是今后一段时期单片机发展的主要途径。(2)微型单片化 现在常规的单片机普遍都是将中央处理器(CPU)、随机存取数据存储(RAM)、只读程序存储器(ROM)、并行和串行通信接口,中断系统、定时电路、时钟电路集成在一块单一的芯片上,增强型的单片机集成了如A/D转换器、PMW(脉宽调制电路)、WDT(看门狗)、有些单片机将LCD(液晶)驱动电路都集成在单一的芯片上,这样单片机包含的单元电路就更多,功能就越强大。甚至单片机厂商还可以根据用户的要求量身定做,制造出具有自己特色的单片机芯片。 此外,现在的产品普遍要求体积小、重量轻,这就要求单片机除了功能强和功耗低外,还要求其体积要小。现在的许多单片机都具有多种封装形式,其中SMD(表面封装)越来越受欢迎,使得由单片机构成的系统正朝微型化方向发展。(3)主流与多品种共存 现在虽然单片机的品种繁多,各具特色,但仍以80C51为核心的单片机占主流,兼容其结构和指令系统的有PHILIPS公司的产品,ATMEL公司的产品和中国台湾的Winbond系列单片机。所以C8051为核心的单片机占据了半壁江山。而Microchip公司的PIC精简指令集(RISC)也有着强劲的发展势头,中国台湾的HOLTEK公司近年的单片机产量与日俱增,与其低价质优的优势,占据一定的市场分额。此外还有MOTOROLA公司的产品,日本几大公司的专用单片机。在一定的时期内,这种情形将得以延续,将不存在某个单片机一统天下的垄断局面,走的是依存互补,相辅相成、共同发展的道路。1.2 单片机张力检测控制系统的技术要求 本课题技术要求:使经过PID增量式算法处理后的电流输出启动D/A转换器输出的电流,推动执行机构转动一定角度,使印刷机的线速度偏离给定的线速度在一定的范围之内。所需用到的数据:采样电流R(k);给定电流:M;输出电流信号:I(x)1.3单片机张力检测控制系统传感器 传感器是测量系统中的一种前置部件,它将输入变量转换成可供测量的信号。信息处理技术取得的进展以及微处理器和计算机技术的高速发展,都需要在传感器的开发方面有相应的进展。微处理器现在已经在测量和控制系统中得到了广泛的应用。随着这些系统能力的增强,作为信息采集系统的前端单元,传感器的作用越来越重要。传感器已成为自动化系统和机器人技术中的关键部件,作为系统中的一个结构组成,其重要性变得越来越明显。在本课题的设计中,采用角度传感器,把所要检测的张力信号转换为我们可以测量的电流信号2 单片机张力检测控制系统的硬件设计 通过传感器检测膜卷带转动的角度转化为电流信号I,A/D转换器将电电流信号I 转化为计算机可以读写的数字信号,将此送给单片机进行预先汇编好PID算法程序进行处理,然后将得出的数字信号传送给D/A转换器,通过转换得到需要的电流信号驱动角度传感器转化为转度,使张力保持恒定的速度。2.1 单片机张力检测控制系统主要部件本系统由单片机处理器89S52 、ADC0809转换器、 DAC0832转换器、 XRT101转换器、扩展IO口8155、光电隔离芯片2501。 2.2单片机张力检测控制系统的基本组成2.2.1 单片机处理器89S52的主要性能和功能 89S52 芯片引脚功能说明 图21 89S52Vcc(40脚):正常运行和校验时为5vXTAL1(19脚):接外部晶振的一个引脚。在单片机内部,它是一个反相放大器的输入端,这个放大器构成了片内振荡器XTAL2(18脚):接外部晶振的另一个引脚。在片内接至振荡器的反相放器的输出和内部时钟发生器的输入端。RSTVpd9脚:该脚是复位信号的输入端。振荡器工作时,由该引脚输入脉宽两个以上机器周期的高电平时复位单片微机。Vpd为备用电源输入端,即当Vcc掉电时,由此引脚提供备用电源,以保持内部ram的信息。ALE允许地址锁存信号输出。当访问外部存储器时,ALE信号的负跳变将p0口上的低八位地址送入锁存器。当非访问外部存储器期间,ALE仍以六分之一振荡频率固定不变的速率输出,因而它能作为外部时钟或定时信号用。P0口(32-39脚):八位漏极开路双向并行IO口。当访问外部存储器时,它是低地址总线(低8位)和数据总线复用。P1口(1-8脚):八位准双向并行IO端口。在片内程序校验期间,作低八位地址用。P2口(21-28脚):八位准双向并行IO端口。当访问外部存储器时作高八位地址用;不作外部功能扩展时,则作准双向IO口用。P3.6wr:外部数据存储器写选通,低电平有效P3.7rd:外部数据存储器读选通,低电平有效2.2.2 ADC0809主要性能和功能图22 ADC0809(1)ADC0809引脚说明:D0-D7:8位二进制数字量输出端IN0-IN7:8位模拟量开关输入端口Vcc:5V工作电压源GND:接地端Vref(+|_):参考电压()、()连接端START:AD转换启动信号输入端口,高电平有效ALE:地址锁存允许信号输入端口,ALE的下降沿将地址打入锁存器EDC:AD转换信号输出端口,开始转换时为低电平,一旦转换结束时输出高电平OE:完成转换后数字量输出允许控制信号输入端口,高电平有效,用以打开三态数据锁存器的输出CLK:时钟信号输入端A、B、C:地址输入端口,用三位编码组成3:8译码输出,选通8路模拟电子开关,实现IN0-IN78路选1。(2)ADC0809主要功能计算机直接数字控制系统大多数是采样-数据控制系统。进入计算机的连续-时间信号,必须经过采样和整量化后,变成数字量,方能进入计算机的存贮器和寄存器。而这就需要有AD转换器。AD主要分为积分型、逐次逼近型、并行比较型/串并行型、-调制型、电容阵列逐次比较型及压频变换型。而我 到的AD0809是最常用的8位AD转换器,属逐次逼近型。ADC0809由单一+5V电源供电,片内带有锁存功能的8路模拟电子开关,可对0-5V8路的输入模拟电压信号分时进行转换,输出具有TTL三态锁存缓冲器,可以与MCS-51数据总线相接,通过适当的外接电路,还可对0-5V模拟信号进行AD转换。在本次课题的设计中,借用主机的ALE分频后作为ADC0809的CLK。主机的频率为12MHZ,经过两个D触发器分频后得到ADC0809所需的时钟信号。ADC0809的多路编码A,B,C直接与P0。0-P0。2相连,通过软件编程选取IN0为输入通道。用P2.6与WR RD组合作为0809的START ALE 和OE的信号,当其为低电平时有效,这样,在编程时0809的地址是0BFFH,每执行一条输出指令,选通IN0通道启动一次AD转换。采用查询方式,把EOC接P1.0,在启动转换后,查询P1.0口,一旦出现高电平,则表示转换结束。转换结束后执行下一条指令,读取转换结果,以完成一次AD转换。(3)采用查询方式工作的初始化程序 (设入口地址是P2.6=0)ADC: MOV DPTR,#0BFFFH ;ADC0809启动MOV A,#00H ;选00通道MOVX DPTR,A ;启动IN0输入ASK0: JB P1.0 ASK ;采用查询方式P1.0MOVX A,DPTRMOV #COEFUR,A2.2.3 DAC0832主要性能和功能 图23 DAC0832(1)DAC0832引脚说明:CS片选信号输入端,低电平有效。ILE允许转换数据输入锁存信号端,高电平有效WR1写信号1输入端,低电平有效,用于将转换数字量输入锁存到输入数据寄存器中。WR2写信号2输入端,低电平有效。XFERDAC寄存器选通控制信号,低电平有效D0-D78位数据输入端I01.I02DAC电流输出端Rfb放大器反馈电阻连接端。用于外接直流放大器接入分路反馈电阻。这是为 了保持输出电流的线性度。Vref标准电压输入端。通过该端口将外部标准电源和内部R-2R T型网络相连,为R-2R T型网络提供精度高的标注的电源。可工作在1010vVcc提供芯片的电源输入端。它可从215。最佳工作状态是采用15AGND模拟量接地端。DGND数字量接地端。AGND与DGND是两种不同性质的接地,必须单独处理,不能含混在一起,特别是AGND必须处理,否则将影响转换的稳定性和精度。最后以一点接地。 (2)DAC0832的主要功能: 在输出控制的时候,需要用模拟信号来驱动伺服电机,这就需要用DA转换器把数字信号转换为模拟信号。在本课题的设计中,选用DAC0832。DA转换器的内部电路构成无太大差异,一般按输出是电流还是电压、能否作乘法运算等进行分类。大多数DA转换器由电阻阵列和n个电流开关(或电压开关)构成。按数字输入值切换开关,产生比例于输入的电流(或电压)。DAC0832DA转换是由输入寄存器,DAC寄存器DA转换器等组成的CMOS集成器件,其主要特点是内部设有两个独立的8位寄存器,因而具有双缓冲功能,能将转换的数据寄存在DAC的寄存器中供DA转换器进行转换的同时,又可接收新的转换数据装入寄存器。DAC 0832本身是输出电流型的,在DAC0832的I0 I1输出端加接一个运算放大器,将电流信号转换为电压输出,在我的设计中需要的是4-20MA的电流输出,为方便控制,在设计时,在加上一个运算放大器的同时,再加上一个VI的芯片XRT101,把最后送出的模拟信号变成符合要求的电流控制信号。在接线中,WR 1 WR2并接于WR,CS和XFER并接于P2.7。这样,DAC0832的地址为7FFFH(只要P2.7=0,其他的选线地址线为1的地址均可)。每当主机对0832进行一次写操作,把一个8位二进制数数字量输出到DAC0832的输入数据寄存器,锁存于DAC寄存器。经DA转换,就输出一个对应的电流。(3)DAC0832 驱动程序(入口地址P2.7=0)OUTDA: MOV DPTR,#7FFFH ;DAC0832端口地址送DPTR MOV A ,BIABID ;BIABID 是输出口的伪地址 2.2.4 XTR101主要性能和功能D/A转换器中电流要先转换成电压信号,再将电压信号转换成电流信号去驱动伺服电机。在此选用XTR101芯片,XTR101型U/I转换器是美国BB公司的产品,该芯片将微弱的电压信号输入转变成标准的电流信号(420mA)输出。 图24 XTR101(1)XTR101的特性: 信号放大部分 偏移电压低,最大为30uV,电压漂移校,最大为0.75uV每摄氏度,非线性小于0.005,双绞线双线传输 电源和电信号线在一对双绞线上,电流型信号传送,抗干扰能力强;小型14脚DIP组件;输出标准电流;输入电压范围010V,05V;输入输出范围可选;具有10V,10mA精密参考电压输出但电源供电,范围广,达(13.540V)XTR101芯片管脚排列如图示:(2)XTR101连接图 图25 XTR1012.2.5 IO口扩展8155主要性能和功能(1)8155引脚功能说明:RESET:8155内部复位信号输入端。8155H被初始复位,复位后的IO口为输入方式AD0-AD7:三态地址数据线。此地址可以是RAM单元地址或IO口地址。AD0-AD7衫的地址由ALE的下降沿触发锁存到8155内部的地址锁存器中,由IOM端口的电平状态确定其是RAM还是IO口的地址 图26 8155CE:片选信号端,低电平有效。也由ALE的下降沿触发锁存到8155内部锁存器IOM:RAM或IO口操作选择端。RD:读选通信号端,低电平有效WR;写选通信号端,低电平有效ALE:PA0-7:地址锁存信号端。PA0-7:8位A口通用IO端口,由编程选择其输入或输出方式PB0-7:8位B口通用IO端口,由编程选择输入或输出方式PC0-5:6位C口控制IO端口。由编程选择用于PA和PB口的控制信号。(2)8155驱动程序表21接线地址分配空间8155(RAM)CE:P2.2, IO/M:P2.10F900H0F9FFH8155(I/O)CE:P2.2, IO/M:P2.10FB00H0FBFFHINITI: MOV DPTR,#0FBOOH ;命令寄存器地址 MOV A , #0C2H ;命令字 MOV DPTR ,AMOVX DPTR, #F9XXHMOVX DPTR,A ;写MOVX A, DPTR ;读2.2.6 光电隔离芯片2501主要性能和功能考虑到抗干扰问题。采取2501将输入输出电路进行光电隔离。2501引脚示意图: 图26 2501模拟电路如图2.3单片机张力检测控制系统综合设计2.3.1 系统设计主要内容通过传感器检测印刷带转动的角度转化为电流信号I(in),将420mA电流信号I(in)转换为A/D转换器能接收的电压信号U(in);A/D转换器将模拟电压信号U(in)转化为单片机处理器可以读写的数字信号D0D7,将此数字信号与给定印刷机线速度电流数字信号送给单片机处理器,用预先汇编好PID算法程序进行处理,PID算法是能自我调节增量式应用自动控制系统,以及用8155扩展输入输出口芯片进行扩展成一个输入口一个输出口,两个口都是用2501隔离芯片进行各种输出输入信号的光电隔离。然后将得出的增量式的数字信号传送给D/A转换器,通过转换得到需要的电流信号,将电流信号通过放大器等模拟芯片转换成电压信号,再将此电压信号用XR101转换成420mA 的电流信号。将此模拟电流信号驱动伺服电机控制器,再驱动伺服电机,通过传感器转换成角度,使印刷机保持恒定的线速度。2.3.2 系统设计流程图 给定角度 A/D转换器 CPU PID 算法 D/A 转换器传感器 伺服电机 传感器 角度 图27 PID流程图 2.3.3 系统资源分配表表22芯片分配线地址分配空间AD0809P2.60BFFHDA0832P2.79FFFH8155(RAM)CE:P2.2, IO/M:P2.10F900H0F9FFH8155(I/O)CE:P2.2, IO/M:P2.10FB00H0FBFFH 2.3.4 系统设计电路原理图(在附录)2.3.5 系统设计PCB图(在附录)2.4 单片机张力检测控制系统其它部件的设计2.4.1 电源设计在电源设计问题上考虑到电压抗干扰问题和交流电转换到直流电的稳定性问题,下面我们来探讨两个问题:(1)电压抗干扰问题的解决:采用两组变压器将220v电压变压成数字电和模拟电,分别供给芯片不同需要的电压。在这里我们采用工作电压和引脚1使用数字电压,参考电压使用模拟电压;同时也要分清数字地和模拟地。芯片引脚0采用数字地,芯片的模拟地和电路元件采用模拟地。 (2)电源稳压设计交流电转换成直流电采用2575稳压器及稳压桥来解决,使电压稳定地在我们工作电压5v范围内。以下是电源示意图: 图28 电源示意图2.4.2 采用D触发器分频由于89S25ALE 是六分频2M,但是ADC0809的时钟频率是512K,所以当两者进行连接时要作相应的变换。D触发器有2分频的功能,所以2M的ALE 到512K的ADC0809要进行四分频,需要两个D触发器,接线图如下: 表29 四分频电路图2.4.3 电流/电压转换由于ADC0809允许输入的是电压,但是现在提供的是420mA电流,所以要进行电流向电压的转换。接线图如下: 图210 I/U转换3 浮点数简单的运算浮点数运算精度比定点运算高,运算速度比定点数运算慢,一般情况下,当速度变化比较慢时,可采用浮点运算。本系统正是精度要求高,速度要求并不是太高的系统,所以采用这种浮点数式。至于增量式控制带来的有点:由于计算机输出增量,所以误动作影响小,必要时可用逻辑判断的方法去掉;增量式设计只与本次的偏差值有关,与阀门原来的位置无关,因而增量式算法易于实现手动/自动无扰动切换;不产生积分失控,所以易于获得较好的调节效果。 3.1 浮点数的概念 定点数有一个致命的缺点:数表示的范围太小,例如无符号双字节整数的范围是065535之间。所以计算机中常用一种小数点的位置可以按数值的大小自动变化的数据表示方法浮点数。浮点数是指尾数固定,小数点的位置随小数点的位置而浮动。浮点数的数学表达式是:M*C(e),其中M为尾数,一般均为纯小数,E是阶码,采用补码整数形式;C为底,对微机或单片机来说,C均为2。由此可见,浮点数的精度取决于尾数,尾数越长,精度越高。浮点数的大小,由阶数来决定。浮点数的符号有不同的表示方法:用尾数最高位作为符号位,其中又可分为原码或补码;用阶码的最高位作为符号位,用原码表示尾数。在微型机或单片机系统中,常用浮点数有三字节和四字节。在这里我们采用三字节,所以下面着重讨论三字节的浮点数。三字节的浮点数由三个字节组成,字节的浮点数的取值范围为6463,三字节浮点数的尾数用原码表示其中尾数为二个字节,如图所示: 表31D7D6D5D4D3D2D1D0Ri阶码(补码)Ri+1尾数高8位Ri+2尾数低8位 阶码 数码为了保证运算精度,必须尽量着增加尾数的有效值位数。这样我们应使浮点数的第一位数字不等于0,对于二进制的原码表示的尾数,规格化数的尾数的第一位数字应为1。在实际应用中,需要有一个程序来完成把一个非规格化数变成规格化数的操作。在进行规格化操作时,对原码表示的数,一般是先判断尾数的最高数值位是0还是1。如是0,则把尾数左移一位,阶码减1再循环判断;如果是1则操作结束。如果在规格化过程中阶码减1变成最小值,不能再进行规格化操作。浮点数的加减法运算比定点数困难得多,执行加减法前必须先对准小数点,然后才能按定点小数加减法运算那样进行尾数加减法操作,结果数的阶码等于对准小数点后的任一个操作数的阶码。由于结果数不一定为规格化数,因此必须结束后进行规格化操作。3.2 规格化子程序FSDT功能:入口 Cy0时,执行右规格化,右移输入位为39HF0=0时,对R6R2R3进行右移一位F0=1时,对R7R4R5进行右移一位Cy=1时,对R6R2R3进行左规格化,第一次左移输入位为F0(1)FSDT程序设计FSDT: JC FS2MOV C,39H ;右格式化JB PSW.5,FS1MOV A,R2RRC AMOV R2,AMOV A,R3RRC AMOV R3,A INC R6RET FS1: MOV A,R4 ;R7R4R5右移一位RRC AMOV R4,AMOV A,R5RRC AMOV R5,AINC R7RETFS2: MOV A,R2 ;左规格化JNZ FS4CJNE R3,#0,FS5MOV R6,#41H ;尾数等于0,41H送阶码FS3: RETFS4: JB ACC.7,FS3FS5: MOV C,PSW.5 ;左移输入为F0MOV A,R3RLC AMOV R3,AMOV A,R2RLC AMOV R2,ACLR PSW.5DEC R6SJMP FS2(2)FSDT流程图 图31 规格化FSDT流程图 3.3浮点数取数子程序FMLD功能:把(R0)指向的内部RAM中的三字节浮点数送到R6R2R3,把R1指向的内部RAM中的三字节浮点数送到R7R4R5,并保持R0.R1的内容不变。程序设计FMLD: MOV A,R0MOV R6,AINC R0MOV A,R0MOV R2,AINC R0MOV A,R0MOV R3,A DEC R0DEC R0MOV A,R1MOV R7,A INC R1MOV A ,R1MOV R4,A INC R1MOV A,R1MOV R5,A DEC R1DECR1RET3.4 浮点数加、减法处理子程序 FABP功能:把R6R2R3和R7R4R5的两个三字节浮点数进行相加或相减,结果存放到R4R2R3中。入口时,bit3AH=0时,为加;否则为减。(1)程序如下:FABP: MOV A,R6MOV C,ACC.7MOV 38H,C ;保存被加数符号XRL A,R7JNB ACC.7,FA1CPL 3AH ;两数异号,取反运算标志FA1: MOV A,R6MOV C,ACC.6 ;扩展阶码为双符号位MOV 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,#0,FA6CJNE R5,#0,FA6FA2: JB 3AH,FA8MOV A,R3 ;执行尾数加法ADD A,R5MOV R3,A MOV A,R2ADDC A,R4MOV R2,A JNC FA4SETB 39HCLR CFA3: CLR PSW.5LCALL FSDTFA4: CJNE R2,#0,FAACJNE R3,#0,FAAMOV R4,#41RETFAA: MOV A,R6 ;送结果符号MOV C,38HMOV ACC.7CXCH A,R4MOV R6,A RETFA5: CJNE R2,#0,FA7CJNE R3,#0,FA7MOV A,R7MOV R6,A SJMP FA2FA6: CPL PSW.5FA7: CLR C LCALL FSDTSJMP FA1FA8: MOV A,R3 ;执行尾数减法CLR C SUBB A,R5MOV R3, A MOV A,R2SUBB A,R4MOV R2,A JNC FA9CLR A ;不够减 ,把尾数取补CLR CSUBB A,R3MOV R3,A CLR A SUBB A,R2MOV R2, A CPL 38H ;把结果符号取反FA9: SETB CSJMP FA3(2)FABP流程图FABP 图32 FABP流程图3.5 浮点数加法子程序FADD功能:R0指向的三字节浮点数和R1指向的三字节浮点数相加,结果存放在R4R2R3中,并保持R0R1的内容不变。程序设计:FADD: CLR 3AH ;置加法标志LCAL FMLD ;取操作数LCALL FABP ;加法RET3.6 浮点数减法子程序FSUB功能:R0指向的三字节浮点数和R1指向的三字节浮点数相减,结果存放在R4R2R3中,并保持R0R1的内容不变。FSUB: SETB 3AH ;置减法标志位LCALL FMLD ;取操作数LCALL FABP ;加法RET3.7 浮点数乘法法子程序FMUL功能:R0指向的三字节浮点数和R1指向的三字节浮点数相乘,结果存放在R4R2R3中,并保持R0R1和RAM中的内容不变。(1)FMUL流程图 图33 FMUL流程图(2)FMUL程序设计 FMUL: LCALL FMLD MOV A,R6 XRL A,R7 MOV C,ACC.7 MOV 38H,C ;计算并暂存积的符号 LCALL DMUL ;调用定点无符号双字节乘法子程序 MOV A,R7 MOV C,ACC.7 MOV PWS.5,C ;F0位规格化时第一次左移输入值 MOV A,A0 ;计算阶码 ADD A,R1 MOV R6,A SETB C LCALL FSDT MOV A,R6 MOV C,38H ;回送积的符号 MOV ACC.7,C MOV R4,A RETDMUL: MOV A,R3 ;定点无符号双字节乘法子程序MOV B,R5MUL ABMOV R7,BMOV A,R3MOV B,R4MUL ABADD A,R7MOV R7,A CLR A ADDC A,BMOV R3,A MOV A,R2MOV B,R5MUL ABADD A,R7MOV R7,A MOV A,R3ADDC A,BMOV R3,AMOV PWS.5,C MOV A,R2MOV B,R4MUL ABADD A,R3MOV R3,A CLR A ADDC A,BMOV C,PWS.5ADDC A,#0MOV R2,ARET3.8 浮点数除法子程序FDIV功能:R0指向的三字节浮点数除以R1指向的三字节浮点数,商存放到R4R2R3中,并保持R0R1的内容不变。浮点除法计算商的符号被除尾数除数尾数?对被除数进行右规格化执行尾数定点小数除法阶码相减,存商符号返回 图34 FDIV流程图FDIV: LCALL FMLD MOV A,R6XRL A,R7MOV A,ACC.7MOV 38H,C ;保存商的符号CLR A MOV R6,A MOV R7,A CJNE R4,#0,FD1CJNE R5,#0,FD1SETB CRETFD1: MOV A,R3 ;比较被除数与除数的尾数大小 SUBB A,R5MOV A,A2SUBB A,R4JC FD2CLR PWS.5 ;被除数尾数太大,则右移一位CLR 39HLCALL FSDTMOV A,R7RRC A MOV R7,A CLR CSJMP FD1FD2: CLR A XCH A,R6 PUSH ACC ;保存被除数移位次数 LCALL DDIV ;调用定点双字节小数除法 POP ACC ;计算商的阶码 ADD A,R0CLR C SUBB A,R1MOV C,38H ;回送商的符号MOV ACC.7,C MOV R4,A CLR CRETDDIV: MOV A,R1 ;定点双字节小数除法 PUSH ACC ;保护R1 MOV B,#10H DV1: CLR C MOV A,R6 RLC A MOV R6,A MOV A,R7 RLC A MOV R7,A MOV A,R3 RLC A MOV R3,A XCH A,R2 RLC A XCH A,R2 MOV PWS.5,C CLR C SEBB A,R5 MOV R1,A MOV A,R2 SUBB A,R4 JB PWS.5,DV2 JC DV3DV2: MOV R2,A MOV A,R1MOV R3,A INC R6DV3: DJNZ B,DV1POP ACC MOV R1,A MOV A,R7MOV R2,AMOV A,R6MOV R3,A RET3.9 三字节浮点数转换为双字节整数子程序FINT 功能:将R0指向的内部RAM 中的三字节浮点数取整,16为的整数绝对值送R2R3,符号存于位单元3CH。(1)FINT程序设计FIN1: CJNE A,#17,$+3 JC FIN3 SETB PWS.5 ;溢出 MOV R2,#0FFH MOV R3,#0FFH RETFIN3: CJNE A,#16,FIN4 RETFIN4: CLR C ;阶码大于0,小于16 XCH A,R2 ;尾数右移一位 RRC A XCH A,R2 XCH A,R3 RRC A XCH A,R3 INC A ;阶码加1 SJMP FIN33.10 浮点数存数子程序FSTR功能:R0指向的三字节浮点数除以R1指向的三字节浮点数,商存放到R4R2R3中,并保持R0R1的内容不变。FSTR: MOV A,R4 ;存结果 MOV R1,A INC R1 MOV A,R2 MOV R1,A INC R1 MOV A,R3 MOV R1,A DEC R1 ;恢复R1值DEC R1 RET4 增量式 PID算法程序设计 4.1 增量式 PID算法概念传统的PID控制最主要的问题是参数整定问题,一旦整定计算好后,在整个控制过程中都是固定不变的,而在实际系统中,由于系统状态和参数等发生变化时,过程中会出现状态和参数的不确定性,系统很难达到最佳的控制效果。因此,在现代工业过程控制中,采用传统的PID控制器难以获得满意的控制效果。智能PID控制就是将智能控制(intelligent control)与传统的PID控制相结合,是自适应的,它的设计思想是利用专家系统(Expert System)、模糊控制(fuzzy control)和神经网络(neural network)技术,将人工智能以非线性控制方式引

温馨提示

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

评论

0/150

提交评论