单片机温度控制系统毕业设计..doc

上传人:laozhun 文档编号:3936409 上传时间:2023-03-28 格式:DOC 页数:33 大小:1.69MB
返回 下载 相关 举报
单片机温度控制系统毕业设计..doc_第1页
第1页 / 共33页
单片机温度控制系统毕业设计..doc_第2页
第2页 / 共33页
单片机温度控制系统毕业设计..doc_第3页
第3页 / 共33页
单片机温度控制系统毕业设计..doc_第4页
第4页 / 共33页
单片机温度控制系统毕业设计..doc_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《单片机温度控制系统毕业设计..doc》由会员分享,可在线阅读,更多相关《单片机温度控制系统毕业设计..doc(33页珍藏版)》请在三一办公上搜索。

1、目 录第1章 设计思路11.1 方案的论证11.1.1利用单片机实现恒温控制系统21.1.2利用PLC实现恒温控制系统21.1.3利用模拟PID调节的恒温控制系统31.2 设计方案3第2章 温度控制系统硬件设计42.1 AT89S52单片机简介52.1.1 AT89S52单片机资源简介52.1.2 AT89S52单片机信号引脚介绍62.1.3 AT89S52单片机时钟和复位电路62.2温度传感器72.3电源电路82.3.1 电源变压器92.3.2 整流滤波电路92.3.3 稳压电路92.4 键盘和显示电路92.5 加热控制电路102.6与上位机通讯11第3章 温度控制系统软件设计133.1 P

2、ID调节器控制原理133.2 位置式PID算法143.3 数字PID参数的整定143.3.1 采样周期选择的原则153.3.2 PID参数对系统性能的影响163.4 PID计算程序17第4章 系统仿真与检测274.1系统仿真方框图274.2稳定边界法整定PID参数28总结31参考文献32第1章 设计思路1.1 方案的论证无论是工农业生产中,还是日常生活中,对温度的检测和控制都是必不可少的,对于温度的检测通常是采用热敏电阻在通过A/D(模/数)转换得到数字信号,但由于信号的采集对整个系统的影响很大,如果采样精度不高,会使这个系统准确性下降。因此本次设计采用高精度的温度传感器:数字温度传感器DS1

3、8B20。这种数字温度传感器是DALLAS公司生产的单总线,。而对于温度控制的方法也有很多:如单片机控制、PLC控制、模拟PID调节器和数字PID调节器等等。综合各方面的意见,本设计采用单片机来实现温度的控制。1.1.1利用单片机实现恒温控制系统利用单片机系统实现温度恒定的控制,其总体结构图如图1.1所示。系统主要包括现场温度采集、实时温度显示、加热控制参数设置、加热电路控制输出、与报警装置和系统核心AT89S52单片机作为微处理器。图1.1 方案一的系统总体结构框图温度采集电路以数字量形式将现场温度传至单片机。单片机结合现场温度与用户设定的目标温度,按照已经编程固化的模糊控制算法计算出实时控

4、制量。以此控制量控制固态继电器开通和关断,决定加热电路的工作状态,使温度逐步稳定于用户设定的目标值。在温度到达设定的目标温度后,由于自然冷却而使其温度下降时,单片机通过采样回的温度与设置的目标温度比较,作出相应的控制,开启加热器。当用户需要比实时温度低的温度时,此电路可以利用风扇降温。系统运行过程中的各种状态参量均可由数码管实时显示。1.1.2利用PLC实现恒温控制系统利用PLC实现对温度恒定的控制,其控制系统的结构框图如图1.2所示:采用PLC控制实现电热丝加热全通、间断导通和全断加热的自动控制方式,来达到温度的恒定。智能型电偶温度表将置于被测对象中,热电偶的传感器信号与恒定温度的给定电压进

5、行比较,构成闭环系统,生成温差电压Vt,PLC自适应恒温控制电路,根据Vt的大小计算出全通、间接导通和全断的自适应恒温控制电路,并将占空比可调的控制电平经输出隔离电路去控制可控硅门极的通断,实现自适应的恒温控制。若温度升的过快,PLC也将输出关断电平信号转换为可控硅电路相匹配的输入信号。图1.2 方案二的系统结构框图1.1.3利用模拟PID调节的恒温控制系统基于模拟PID调节的恒温控制系统由数字电路部分和模拟电路两部分组成,其控制系统的机构框图如图1.3所示。由按键设定某一温度,单片机对设定温度值进行查表计算后转换为对应的电压数字值,通过16位的数模转换器得到与之精确对应的电压信号,此电压值于

6、热敏电阻实际测量的电压值进行比较产生一个误差信号,经过PID电路后,获得一个控制量给制冷元件构成实时闭环系统,同时实际测量的电压值并显示在液晶屏上。图1.3 方案三的系统结构框图1.2 设计方案 控制模块的选择,数字比较器与模拟控制器相比较,数字比较器具有以下几个优点: 1、模拟调节器调节能力有限,当控制规律较为复杂时,就难以甚至无法实现。而数字控制器能实现复杂控制规律的控制。 2、计算机具有分时控制能力,可实现多回路控制。 3、数字控制器具有灵活性。起控制规律可灵活多样,可用一台计算机对不同的回路实现不同的控制方式,并且修改控制参数或控制方式一般只可改变控制程序即可,使用起来简单方便,可改善

7、调节品质,提高产品的产量和质量。 4、采用计算机除实现PID数字控制外,还能实现监控、数据采集、数字显示等其他功能。综合考虑,本设计控制模块采用数字PID调节器。对于方案一,采用单片机实现恒温控制,虽然该方案成本低,可靠性高,抗干扰性强,但对于系统的动态性能与稳态性能要求较高的场合是不合适的;而对于方案二,采用PLC实现恒温控制,由于PLC成本高,且PLC是外围系统配置复杂,不利于我们的设计,由于数字PID调节,运算量大,只要选择合适的参数对于温度的控制精度往往能达到较好的效果。为了使设计的成本低、抗干扰强,系统动态性能与稳态性能好的前提下,设计方案的总体结构框图如图1.4所示:通过单片机对偏

8、差进行PID运算,输出控制D/A转换电路转换成08V电压信号来控制可控硅触发电路,从而控制可控硅通断率,通过调节加热功率即可达到控制温度恒定的目的。图1.4 设计总体结构框图第2章 温度控制系统硬件设计考虑到尽量降低成本和避免与复杂的电路,此系统所用到的元器件均为常用的电子器件。而主控器采用低功耗、高性能、片内含8k byte可反复檫写的Flash 、只读程序器CMOS8位单片机AT89S52;温度传感器采用DALLAS公司生产的单总线数字温度传感器DS18B20;采用控制端TTL电平,即可实现对继电器的开关,使用时完全可以用 NPN型三极管接成电压跟随器的形式驱动;单片机所需要的+5V工作电

9、源是通过220V交流电压通过变压、整流、稳压、滤波得到。实时控制的显示器、键盘通过单片机来完成键盘扫描与输出动态显示。考虑到系统对传输速度的要求不高,在PCA机上设定和实时显示温度,系统配有RS232串行通讯端口,下面对硬件电路作具体的设计。2.1 AT89S52单片机简介2.1.1 AT89S52单片机资源简介AT89S52的结构如图2.1所示。由于它的广泛使用使得市面价格较8155、8255、8279要低,所以说用它是很经济的。该芯片具有如下功能:有1个专用的键盘/显示接口;有1个全双工异步串行通信接口;有2个16位定时/计数器。这样,1个89S52,承担了3个专用接口芯片的工作;不仅使成

10、本大大下降,而且优化了硬件结构和软件设计,给用户带来许多方便。89S52有40个引脚,有32个输入端口(I/O),有2个读写口线,可以反复插除。所以可以降低成本。主要功能特性: (1)兼容MCS51指令系统(2)32个双向I/O口线(3)3个16位可编程定时/计数器中断(4)2个串行中断口 (5)2个外部中断源(6)2个读写中断口线(7)低功耗空闲和掉电模式(8)8k可反复擦写(1000次)Flash ROM(9)256x8 bit内部RAM(10)时钟频率0-24MHz(11)可编程UART串行通道(12)共6个中断源(13)3级加密位(14)软件设置睡眠和唤醒功能。2.1.2 AT89S5

11、2单片机信号引脚介绍输入输出口线 口8位双向口线 口8位双向口线 口8位双向口线 口8位双向口线ALE 地址锁存控制信号在系统扩展时,ALE用于控制把口输出的低8位地址送入锁存器锁存起来,以实现低位地址和数据的分时传送。此外由于ALE是以六分之一晶振频率的固定频率输出正脉冲,因此可作为外部定时脉冲使用。 外部程序存储器读选通信号在读外部ROM时, 有效(低电平),以实现外部ROM单元的读操作。 访问程序存储趋控制信号但信号为低电平时,对ROM的读操作限定在外部程序存储器;而当信号为高电平时,则对ROM的读操作是从内部程序存储器开始,并可延续至外部程序存储器。RST 复位信号当输入的复位信号延续

12、2个机器周期以上高电平时即为有效,用以完成单片机的复位操作。和 外接晶体引线端当使用芯片内部时钟时,此二引线端用语外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。 地线 +5V电源2.1.3 AT89S52单片机时钟和复位电路时钟电路单片机内部有一个高增益反向放大器,输入端为芯片引脚,输出端为引脚。而在芯片外部和 之间跨接晶体振荡器和微调电容,从而构成一个稳定的自激振荡器。晶体震荡频率高,则系统的时钟频率也高,单片机运行速度也就快,但反过来运行速度快对存储器的速度要求就高,对印制电路板的工艺要求也高,所以,这里使用震荡频率为6MHz的石英晶体。震荡电路产生的震荡脉冲并不直接是

13、使用,而是经分频后再为系统所用,震荡脉冲经过二分频后才作为系统的时钟信号。在设计电路板时,振荡器和电容应尽量靠近单片机,以避免干扰。需要注意的是:电路板时,振荡器和电容应尽量安装得与单片机靠近,以减小寄生电容的存在更好的保障振荡器稳定、可靠的工作电路图如图2.2所示复位电路单片机的复位电路分上电复位和按键复位两种方式。(a)上电复位: 在加电之后通过外部复位电路的电容充电来实现的。当的上升时间不超过1ms,就可以实现自动上电复位,即接通电源就完成了系统的初始化电路原理图。RST上的电压必须保证在斯密特触发器的阀值电压以上足够长时间,满足复位操作的要求。 (b) 按键复位:程序运行出错或操作错误

14、使系统处于死锁状态时,为了摆脱困境,也需按复位键以重新启动。RST引脚是复位信号的输入端,复位信号是高电平有效。按键复位又分按键脉冲复位(图2.3)和按键电平复位。电平复位将复位端通过电阻与相连,按键脉冲复位是利用RC分电路产生正脉冲来达到复位的。(c) 注意:因为按键脉冲复位是利用RC微分电路产生正脉冲来达到复位的。所以电平复位要将复位端通过电阻与相连.如复位电路中R、C的值选择不当,使复位时间过长,单片机将处于循环复位状态。故本设计采用按键复位。2.2 温度传感器温度测量转换部分是整个系统的数据来源,直接影响系统的可靠性。传统的温度测量方法是:温度传感器例如AD590,将测量的温度转换成模

15、拟电信号,再经过A/D转换器把模拟信号转换成数字信号,单片机再对采集的数字信号进行处理3。这种模拟数字混合电路实现起来比较复杂,滤波消噪难度大系统稳定性不高,鉴于这些考虑,本设计采用数字式温度传感器DS18B20。DS18B20支持“一线总线”接口,测量温度的范围为-55C+125C,现场温度直接以“一线总线”的数字式传输,大大的提高了系统的抗干扰性。DS18B20为3引脚, DQ为数字信号输入/输出端;GND为电源地;VDD为外接供电电源输入端。温度采集电路模块如图2.4所示。DSB8B20的3脚接系统中单片机的P1.4口线,用于将采集到的温度送入单片机中处理,2脚和3脚之间接一个4.7K上

16、拉电阻,即可完成温度采集部分硬件电路。DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。图2.4 温度采样电路DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码读数形式提供,以0.0625/LSB形式表达,其中S为符号位。数据转换如下表2.1。表2.1 DS18B20温度数据转换表LS ByteBit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0232221202-12-22-32-4MS ByteBit15Bit14Bit13Bit12Bit11Bit10Bit9Bit8

17、SSSSS262524这是12位转化后得到的12位数据,存储在18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。2.3电源电路电源电路可分为三大块:变压部分、整流滤波部分、稳压部分1。电源电路如图2.5所示。图2.5 电源电路2.3.1 电源变压器变压部分其实就是一个变压器,变压器作用是将220V的交流电压变换成我们所需的电压9V。然后再送去整流和滤波。2.3.2 整流滤波电路整流电路将交流电压变成单向脉动的直流电

18、压;滤波电路用来滤除整流后单向脉动电压中的交流成份,合之成为平滑的直流电压。滤波电路常见的有电容滤波电路、电感滤波电路。一般的整流有全波整流、单相半流整流、桥式整流、及变压整流。2.3.3 稳压电路在这的稳压电路中我使用的是“三端固定输出集成稳压器”,稳压电路的作用是当输入交流电源电压波动、负载和温度变化时,维持输出直流电压的稳定。集成稳压器、使用方便、性能稳定、更重要的是考虑到它的价格低廉,因而我在此使用。 2.4 键盘和显示电路模块电路如下图2.6。键盘采用行列式和外部中断相结合的方法,各按键的功能定义如下表2.2。其中设置键与单片机的脚相连,、YES、NO用四行三列接单片机P0口,RES

19、T键为硬件复位键,与R、C构成复位电路。表2.2 按键功能按键键名功能REST复位键使系统复位SET设置键使系统产生中断,进入设置状态数字键设置用户需要的温度YES确认键用户设定目标温度后进行确认NO清除键用户设定温度错误或误按了YES键后使用图2.6 键盘接口电路显示采用3位共阳LED动态显示方式,显示内容有温度值的十位、个位及小数点后一位。用P2口作为段控码输出,并用74HC244作驱动。P1.0P1.2作为位控码输出,用PNP型三极管做驱动4。模块电路如下图2.7所示: 图2.7 显示接口电路2.5 加热控制电路控制电路图如下图2.8。用于在闭环控制系统中对被控对象实施控制,被控对象为电

20、热杯,采用对加在电热杯两端的电压进行通断的方法进行控制,以实现对水加热功率的调整,从而达到对水温控制的目的。对电炉丝通断的控制采用SSR-40DA固态继电器。它的使用非常简单,只要在控制端TTL电平,即可实现对继电器的开关,使用时完全可以用 NPN型三极管接成电压跟随器的形式驱动。当单片机的P1.3为高点平时,三极管驱动固态继电器工作接通加热器工作,当单片机的P1.3为低电平时固态继电器关断,加热器不工作。图2.8 加热控制电路2.6与上位机通讯 由于系统采用计算机对系统进行数据监控和显示。所以要进行通信电路的设计。PC机内装有异步通信适配器板,其主要的器件为8250UART芯片,它使PC机有

21、能力与其他具有标准RS-232串行口通信接口的计算机或仪器设备通信,而MCS-51单片机本身具有全双工的串行口。因此只需要配一些驱动、隔离电路就可以构成了洋分布式系统,其连接图如图2.9所示,由于MCS-51单片机串行口是标准的TTL电平,为使其与RS-232电平接口,在MCS-51单片机串行口联有1488和1489,以实现电平匹配。由于1448的输出端不能相互并联,故加上一个二极管进行隔离 2。图2.9 PC机与单片机的接口电路 在主机通信软件中,首先根据拥护的要求和通信协议规定,对8250进行初始化。设置的8250的初始化数据是:波特率为9000b/s;8位数据位;1位奇偶校正位;1位停止

22、位。由于从机MCS-51的格式固定为四种方式,本设计采用方式3。因此这里的奇偶校正位用做发送地址/数据特征位(1表示地址),而数据通讯的校正采用累加和校验法。数据的发送和接收采用查询方式,其程序框图如图2.10所示,在发送时,先用输入指令检查发送器的保持寄存器是否为空。若为空,则输出指令将一个数据输出给8250,8250会自动将数据一位一位地发送到串行口通信线上。在接收时,8250把串行口数据转换成并行数据,并送入到接收数据寄存器中,同时把“接收数据就绪”信号置于状态寄存器中,CPU读到这个信号后,就用输入指令从接收器中读入一个数据。图2.10 PC机通信软件框图第3章 温度控制系统软件设计3

23、.1 PID调节器控制原理在控制系统中,控制器最常用的控制规律是PID控制。PID控制系统原理框图如图3.1所示。系统由PID控制器和被控对象组成。图3.1 PID控制系统原理框图PID控制器是一种线性控制器,一种它根据给定值rin(t)与实际输出值yout(t)构成控制偏差:Error(t)=rin(t)-yout(t)PID控制就是对偏差信号进行比例、积分、微分运算后,形成一种控制规律。即,控制器的输出为: 或写成传递函数的形式: 左中, kp比例系数;Ti积分时间常数;T d微分时间常数。简单说来,PID控制器各校正环节的作用如下5:(1) 比例环节:成比例地反映控制系统的偏差信号err

24、or(t),偏差一旦产生,控制器立即产生控制作用,以减小偏差。比例控制: Gc(s)= Kp (2) 积分环节:主要用于消除静差,提高系统的无差度。积分作用的强尽弱取决于积分时间常数Ti,Ti越大,积分作用越弱,反之则越强。积分控制: Gc(s) = Kp/T is(3) 微分环节:反偏差信号的变化趋势(变化速率),并能在偏差信号变得太大之前,在系统中引入一个有效的早期修正信号,从而加快系统的动作速度,减少调节时间。微分控制: Gc(s) =KpT ds3.2 位置式PID算法 基本PID控制器的理想算式为 式中u(t)控制器(也称调节器)的输出;e(t)控制器的输入(常常是设定值与被控量之差

25、,即e(t)=r(t)-c(t));Kp控制器的比例放大系数;Ti 控制器的积分时间;Td控制器的微分时间。设u(k)为第k次采样时刻控制器的输出值,可得离散的PID算式 式中 , 。由于计算机的输出u(k)直接控制执行机构(如阀门),u(k)的值与执行机构的位置(如阀门开度)一一对应,所以通常称式(2)为位置式PID控制算法。位置式PID控制算法的缺点:当前采样时刻的输出与过去的各个状态有关,计算时要对e(k)进行累加,运算量大;而且控制器的输出u(k)对应的是执行机构的实际位置,如果计算机出现故障,u(k)的大幅度变化会引起执行机构位置的大幅度变化。3.3 数字PID参数的整定 PID控制

26、器的参数整定是控制系统设计的核心内容。它是根据被控过程的特性确定PID控制器的比例系数、积分时间和微分时间的大小。PID控制器参数整定的方法很多,概括起来有两大类:一是理论计算整定法。它主要是依据系统的数学模型,经过理论计算确定控制器参数。这种方法所得到的计算数据未必可以直接用,还必须通过工程实际进行调整和修改。二是工程整定方法,它主要依赖工程经验,直接在控制系统的试验中进行,且方法简单、易于掌握,在工程实际中被广泛采用。本设计采用PID归一整定法把对控制台三个参数(Kc、Ti、Td,)转换为一个参数, 从而使问题明显简化。以达到控制器的特性与被控过程的特性相匹配,满足某种反映控制系统质量的性

27、能指标。3.3.1 采样周期选择的原则(1)根据香农采样定理,系统采样频率的下限为fs=2fmax,此时系统可真实地恢复到原来的连续信号。 (2)从执行机构的特性要求来看,有时需要输出信号保持一定的宽度。采样周期必须大于这一时间。(3)从控制系统的随动和抗干扰的性能来看,要求采样周期短些。 (4)从微机的工作量和每个调节回路的计算来看,一般要求采样周期大些。 (5)从计算机的精度看,过短的采样周期是不合适的。 (6)当系统滞后占主导地位时,应使滞后时间为采样周期的整数倍下表3.1列出了几种常见的被测参数的采样周期T的经验选择数据。可供设计时参考。实际上生产过程千差万别,经验数据不一定就合适,可

28、用试探法逐步调试确定。表3.1 采样周期的经验数据表被测参数采用周期T(s)备注流量15s优先选用1s压力310s优先选用5s液位68s温度1520s或纯滞后时间成分1520s3.3.2 PID参数对系统性能的影响表3.2 PID参数对系统性能的影响参数图作用缺点P加快调节,减少稳态误差稳定性下降,甚至造成系统的不稳定I因为有误差,积分调节就进行,直至无差.消除稳态误差,提高无差度。加入积分调节可使系统稳定性下降,动态响应变慢。积分作用常与另两种调节规律结合,组成PI调节器或PID调节器。D反映系统偏差信号变化率,具有预见性,能预见偏差变化的趋势,因此能产生超前的控制作用。可以减少超调,减少调

29、节时间。微分作用对噪声干扰有放大作用,因此过强的加微分调节,对系统抗干扰不利。微分作用不能单独使用,需要与另外两种调节规蓄料目结合,组成PD或PID控制. 综上所述,(Kp、Ti、Td,)对系统的性能影响如表3.3所示:表3.3 Kp、Ti和Td对系统的影响影响KpTiTd稳态性能可以减少静差,但不能消除消除静差,但不能太大配合比例控制,可以减少静差动态性能加快系统速度,但会引起震荡太小会不稳定,太大会影响性能太大和太小都会引起超调量大,过渡时间长。3.4 PID计算程序 PID调节规律的基本输入输出关系可用微分方程表示为: 式中为调节器的输入误差信号,且 、其中:为给定值,为被控变量; 为调

30、节器的输出控制信号; 为比例系数;为积分时间常数;微分时间常数。计算机只能处理数字信号,若采样周期为T第n次采样的输入误差为,且,输出为,PID算法用的微分由差分代替,积分由代替,于是得到 、写成递推形式为= = = = = 其中: 显然,PID计算只需要保留现时刻以及以前的两个偏差量和。初始化程序初值通过采样并根据参数、以及、和计算。 根据输出控制增量,可求出本次控制输出为 += 由于电阻炉一般是属于一阶对象和滞后的一阶对象,所以式中、的选择取决于电阻炉的阶跃响应曲线和实际经验,工程上已经积累了不少行之的参数整定方法。本设计采用Ziegler-Nichols提出的 PID归一调整法,调整参数

31、,主要是为了减少在线整定参数的数目,常常人为假定约束条件,以减少独立变量的个数,令: 式中称为临界周期。在单纯比例作用下(比例增益由小到大),是系统产生等幅振荡的比例增益,这时的工作周期为临界周期,则可以得到 = = 式中=0.2,=1.258 从而可以调节的参数只有一个。可设计一个调整子程序,通过键盘输入改变值,改变运行参数,使系统满足要求。下面对PID运算加以说明:1、 所有的数都变成定点纯小数进行处理。2、 算式中的各项有正有负,以最高位作为符号位,最高位为0表示为正数,为1表示负数。正负数都是补码表示,最后的计算以原码输出。3、 双精度运算,为了保证运算精度,把单字节8位输入采样值和给

32、定值都变成双字节16位进行计算,最后将运算结果取成高8位有效值输出。4、 输出控制量的限幅处理。为了便于实现对晶闸管的通断处理,PID的输出现在在0250之间。大于250或小于0的控制量都是没有意义的,因在算法上对进行限幅,即 = PID的计算公式采用位置式算法,计算公式为+ = PID计算的程序流程图图3.2所指示;而参数内存分配表如表3.4所列。表3.4 参数内存分配表存储单元符号说明存储单元符号说明3FH高8位38H低8位30H低8位39H高8位31H给定值高8位3AH低8位32H给定值低8位3BH高8位33H高8位3CH低8位34H低8位3DH高8位35H高8位32EH低8位36H低8

33、位3FH高8位37H高8位40H低8位图3.2 PID计算程序的流程图参照流程图3.2编写程序,程序如下:MOVR5,31H MOVR4, 32HMOVR3, 2AH MOVR2, #00HLACALLCPL1 LCALLDSUM MOV39H, R7 MOV3AH, R6MOVR5, 35H MOVR4, 36HMOVR0, #4AHLCALLMULT1 MOVR5,39H MOVR4,3AHMOVR3,3BHMOVR2,3CHLCALLDSUMMOVR5,33HMOVR4,34HMOVR0, #46HLCALLMULT1MOVR5,49HMOVR4,48HMOVR3,4DHMOVR2,4C

34、HLCALLDSUMMOV4AH,R7MOV4BHR6MOVR5,39HMOVR4,3AHMOVR3,3DHMOVR2,3EHLCALLDSUMMOVA,R7MOVR5,AMOVA,R6MOVR4,AMOVR3,3BHMOVR2,3CHLCALLDSUMMOVA,R7MOVR5,AMOVA,R6MOVR4,AMOVR3,3BHMOVR2,3CHLCALLDSUMMOVR5,37HMOVR4,38HMOVR0, #46HLCALLMULT1MOVR5,49HMOVR4,48HMOVR3,4AHMOVR2,4BHLCALLDSUMMOVA,R7MOVR3,AMOVA,R6MOVR2,AMOVR5,

35、2FHMOVR4,30HLCALLDSUMMOV2FH,R7MOV30H,R6MOV3DH,3BHMOV3EH,3CHMOV3BH,39HMOV3CH,3AHMOVA,2FHJNBACC.7CONt1MOV45H,#00HRETCONt1:MOVA,30HRLCAMOVA,2FHRLCAMOVR2,ASUBBA,#OFAHJNCCONt2MOV45H,R2RETCONt2:MOV45H,#0FAHRET负数双字节-(R3R2)求补,结果仍存放于R3R2中,其子程序如下:CPL1: MOVA,R2CPLAADDA,#01HMOVR2,AMOVA,R3CPLAADDCA,#00HMOVR3,ARE

36、T双字节加法(R5R4)+(R3R2)(R7R6)。其子程序如下:DSUM:MOVA,R4ADDA,R2MOVR6,AMOVA,R5ADDCA,R3MOVR7, ARET双字节无符号乘法子程序:入口(R7R6)=被乘数;(R5R4)=乘数。出口(R0)=乘积的4字节地址指针。工作寄存器 R3,R2。竖式乘法过程表示为: R7 R6 ) R5 R4 H64 L64R6R4 H74 L74R7R4H74 L74R5R6 +) H75 L75 (R0+3) (R0+2) (R0+1) RO乘积存储单元MULT:MOVA,R6MOVB,R4MULABMOVRO,AMOVR3,BMOVA,R4MOVB,

37、R7 MULAB ADDA,R3 MOVR3,AMOVA,BADDCA,#00HMOVR2,AMOVA,R6MOVB,R5MULABADD A,R3INCR0MOVRO,ACLRF0MOV A,R2ADDC A,BMOV R2,AJNC LASTSETB F0LAST: MOV A,R7 MOV B, R5 MUL AB ADD A,R2 INC RO MOV RO, A MOV A, B ADDC A, #00H INC R0 MOV R0, A RET双字节带符号数乘法子程序:带符号数用补码表示,最高位1表示负数,为0表示正数.入口(R7R6)=被乘数;(R5R4)=乘数;SIGN1标号位

38、地址5CH;SIGN2标号位地址5DH。出口(R0)=乘积的4字节地址指针。双节带符号程序流程图如图3.3所示图3.3 双字节带符号程序流程图MULT1:MOVA,R7RLCAMOVSIGN1,CJNCPOS1 MOVA, R6CPLA ADD A, #01H MOVR6,A MOVA,R7 CPLA ADDC A,#00HMOVR7,APOS1: MOVA,R5RLCAMOVSIGN1,CJNCPOS2MOVA, R4 CPLAADD A, #01HMOVR4,A MOVA,R5 CPLAADDC A,#00H MOVR5,APOS1: MOV2BH, R0LACALL MULTMOVC,SIGN1ANLC,SIGN2JCTPLMOVC

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

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号