《MCS-51单片机温度自动控制系统设计(共31页).doc》由会员分享,可在线阅读,更多相关《MCS-51单片机温度自动控制系统设计(共31页).doc(31页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上毕业设计说明书MCS-51 单片机温度控制系统 作 者:张兵林学 号:8学院(系):高职院电气系专 业:生产过程自动化技术指导教师: 赵明 刘海江 刘莉 日期:2011年12月28日5 参考文献.31MCS-51单片机温度控制系统摘 要单片机在检测和控制系统中得到了广泛的应用,温度是一个系统经常需要测量、控制和保持的量,而温度是一个模拟量,不能直接与单片机交换信息,采用适当的技术将模拟的温度量转化为数字量在原理上虽然不困难但成本较高,还会遇到其它方面的问题。因此对单片机温度控制系统的研究有重要目的和意义。 本文主要介绍了以MCS-51系列单片机8031、AD574、8
2、155、可控硅、LM311等芯片组成的温度检测电路,模/数转换电路,键盘/LED显示电路,报警电路,信号放大电路;在描述了外围硬件电路的同时,还做了大量的软件工作,包括数据处理软件,PID控制算法。本设计有效的提高了控制系统的实时性和控制精度大大改善了炉温控制的自动化程度,具有较高的实用价值。关键词:单片机,PID算法 ,温度采样,温度控制1 引言1.1 课题研究的目和意义在现代化的工业生产中,电流、电压、温度、压力、流量、流速和开关量都是常用的主要被控参数。例如:在冶金工业、化工生产、电力工程、造纸行业、机械制造和食品加工等诸多领域中,人们都需要对各类加热炉、热处理炉、反应炉和锅炉中的温度进
3、行检测和控制。采用MCS-51单片机来对温度进行控制,不仅具有控制方便、组态简单和灵活性大等优点,而且可以大幅度提高被控温度的技术指标,从而能够大大提高产品的质量和数量。单片机以其功能强、体积小、可靠性高、造价低和开发周期短等优点,为自动化和各个测控领域中广泛应用的器件,在工业生产中称为必不可少的器件,尤其是在日常生活中发挥的作用也越来越大。因此,单片机对温度的控制问题是一个工业生产中经常会遇到的问题。本论文以上述问题为出发点,设计实现了温度实时测量、显示、控制系统。本设计方案具有较高的测量精度,更加适合对温度精度要求较高的化工生产、电力工程等行业,并希望通过本设计得到举一反三和触类旁通的效果
4、。1.2 温度控制系统方案结合本设计的要求和技术指标,通过对系统大致程序量的估计和系统工作速度的估计以及I/O口需求量的估计,考虑价格因素。选定8031单片机作为系统的主要控制芯片,外围扩展并行接口8155,程序存储器EPROM2732,12位模数转换器AD574,采用镍铬/镍硅热电偶进行温度检测其测温范围为0-1000,外接指示灯作为报警电路,8031对温度的控制是通过双向可控硅实现的。双向可控硅管和加热丝串接在交流220V、50Hz市电回路。在给定周期T内,8031只要改变可控硅管的接通时间即可改变加热丝的功率,以达到调节温度的目的。2 单片机温度控制系统总体设计及原理2.1系统的主要功能
5、(1)对炉温的温度检测和升温、恒温控制。(2)显示检测温度值。(3)当超越上限或下限时自动报警。(4)设定和修改要保持的温度值。2.2系统的工作原理在温控系统中,需要将温度的变化转换为对应的电信号的变化,由于热电偶的结构简单制造容易,测量范围广,在高温测量中有较高的精度,所以选用镍铬/镍硅热电偶做热电传感器,测温范围0-1000,最高可测量1300。热电偶把测量的炉温温度信号转换成弱电压信号,经过信号放大电路,放大后的信号输人到A/D转换器(AD574 )转换成数字信号输人主机(单片机8031),并送往外接显示电路,主机对电炉温度和设定温度进行比较后如果越限,则软件触发用8031的P1口控制报
6、警系统输出控制脉冲,该控制脉冲与单稳态同步触发器输出的同步脉冲送人控制门(与非门),门电路信号输人光偶管转换成电流信号,经过三级放大电路输人可控硅的门极,可控硅导通由程序控制同步触发脉冲的来临时间,从而控制可控硅的通断时间,以达到对电炉加热丝温度的调节和功率的改变,实现对电炉的恒温和升温控制。2.3 系统的主要技术指标测温范围 :0-1000 温度分辨率:0.5VLED显示位数:62.4 系统的总体结构系统的硬件电路有温度检测、信号放大、A/D转换、键盘接口、LED显示、单稳态触发电路、可控硅控制电路等部分组成,系统结构图见图1.1炉温采样点温度传感器滤波信号放大AD转换单片机系统(8031)
7、双向可控硅光耦驱动过零脉冲提取计时电炉220VLED显示键盘图 2.1 系统框图3 温度控制系统的硬件设计3.1温度测量放大电路3.1.1 温度传感器的选择及基本工作原理测量温度的方法虽然很多,但从感受温度的途径来分,不外两大类:一类是接触式的,即通过测温元件与被测物体的接触而感知物体的温度;另一类是非接触的,即通过接收被测物体发出的辐射热来判断温度。由于本系统测量的温度值在:01000,所以最常用的最经济的方法是用热电偶来测量。 当两种不同的导体或半导体连接成闭合回路时,若两个接点温度不同,回路间就会出现热电动势,并产生电流。从物理上看,这一热电势主要是由接触电势组成的。当两种不同导体J、B
8、接触时,由于两边的自由电子密度的不同,在交界面上产生电子的相互扩散。若J中自由电子密度大扩散的多,使J失去较多的电子而带正电荷,相反,B带负电荷。致使在盘J、B接触处产生电场,以阻碍电子的进一步积累,最后达到平衡。在J、B两导体间的电位差称为接触热电势。电炉常用热电偶的材料要求:1耐高温-热电偶的测温范围主要取决于热电极的高温性能,也就是说,在高温介质中,热电极的物理化学性能越稳定,则由它组成的热电偶的测温范围就越宽。 2灵敏度高,线性好-要求电偶所产生的温差热电势足够大,并与温度呈线性关系; 3要求热电有为材料除能满足上述几点要求外,并希望它的电阻系数和电阻温度系数尽可能地小,且其价格便宜、
9、货源充足。热电偶型号比较多,不同的型号有不同的测温区,对于本系统镍铬镍硅热电偶其分度号为K,正极成分是910铬、0.4硅,其余为镍,负极成分为2.53硅,0.6铬,其余为镍。这类热电偶的优点是有较强的抗氧化性和抗腐蚀性,其化学稳定性好,热电势较大,热电势与温度间的线性关系好,其热电极材料的价格便宜,可在1000以下长期连续使用,短期测温可达1300。最高温度1300,所以镍铬-镍硅热电偶就可以了。 3.1.2 放大电路的设计0-1000的温度对应0mV41.3mV ,热电偶出来的mV电压,大概热端变化一度,热电耦有40微伏的电位差输出,无法直接进行A/D转换,必须进行放大处理。采用OOP07运
10、放组成低漂移高精度前置放大器,对几十微伏变化信号测量比较精确,其放大倍数与 /成正比,可根据需要设计。其中OP07的1、4、5端与构成调零电路。再接一级有运放741构成的续接放大器就可将毫伏级信号放大到需要的幅度,放大倍数可自己设定,741的1、4、5端与构成调零电路。741的输出送给后面的模数转换电路。具体接法如图3.1图3.1 放大电路因为传感器输出电压为0mV-42.30mV,而AD574段输入电压为0V10V,所以应该放大240倍, 取OP07放大10倍,741放大24倍,取=150, =200由运放原理知道: =20=3 =24=4.83.2主要的接口电路3.2.1 模数转换电路A/
11、D转换电路是测控仪表制作的另一个关键所在。A/D转换的位数,精度,速度,性能都直接影响着系统的相关性能。考虑到本系统要求精度比较高,选用美国AD公司研制的12位逐次逼近式AD574A,它适合高精度快速采集,所以本系统不用设计采样保持电路,节省了硬件。AD574的主要特性如下:A/D分辨率:12或8位。转换时间:25转换精度:0.05%。单极性模拟输入:0V10V,0V20V双极性模拟输入:5V,10V正电源供电:+12V+15V负电源供电:-12V-5V内部集成有转换时钟,参考电压源和三态输出锁存器,可直接与16位或8位机直接相连,而且无需外接时钟。其逻辑真值表如表3.1 表3.1 AD574
12、真值表该转换电路的具体接法如图3.2,因为片内有时钟,故无须外加,该电路采用单极性输入方式,可对0V10V模拟信号转换,其中图3.1中管脚8,10,12把AD574置成单极性10V输入,无论启动、转换,还是结果输出,都要保证CE端为高电平,故用8031的和端通过与非门74LS00与AD574的CE端相连。转换结果分高八位、低四位与P0口相连,分两次读入,所以接地。在读取转换结果时保持相应的电平,将来自单片机的控制信号经74LS373锁存后再从Q0接入,选通信号经译码器译码后选通,AD574有两个选口地址,由A0口区分,把译码器Q7Q6Q5Q4Q3Q2Q1=B端接到则AD574的两个选口地址为F
13、0和F1H,其中写F0H启动12位转换,写F1H启动8位转换,读F0H用于读取高八位数字量,读F1H用于读取低4位数字量, 图3.2 模数转换电路单片机可采用中断、查询、软件延时等方式读取转换结果。本设计时按查询法输入A/D转换后的数字量。3.2.2 键盘接口和数码显示在单片机应用系统中,同时需要使用键盘与显示器接口时,为了节省I/O口线常常把键盘和显示电路接在一起,构成实用键盘和显示电路,图3.3是典型实用的、采用8155并行扩展口构成的键盘、显示器电路,图中设置了16个键,如增加PC口可以增加到61个,单片机应用系统中除了复位按键有专门的复位电路,以及专一的复位功能外,其它的按键或键盘都是
14、以开关状态来设置控制功能或输入数据。键盘有编码和非编码两种。非编码键盘硬件电路极为简单故本系统采用。6个LED显示器采用共阴极方式,段选码由8155PB口提供,位信号有PA口提供。键盘的列扫描也由PA口提供,查询输入由PC0PC1提供,LED采用动态显示软件,键盘采用逐列扫描查询工作方式。键盘设定如下:键盘共有12个按键,用于方便设定温度。数字按键10个,输入数字09和小数点;确认键一个,设置的确认,修改设置温度时进行确认;清除键一个,设置的清除,修改设置温度时进行删除;F1键一个,显示及设置转换到预设温度点,按此按键后,显示预设置温度的数码管闪烁;此外,还有两个功能键。 图3.3 键盘接口/
15、LED显示3.2.3温度控制电路晶闸管又叫可控硅。自从20世纪50年代问世以来已经发展成了一个大的家族,它的主要成员有单向晶闸管、双向晶闸管、光控晶闸管、逆导晶闸管、可关断晶闸管、快速晶闸管,等等。今天大家使用的是单向晶闸管,也就是人们常说的普通晶闸管,它是由四层半导体材料组成的,有三个PN结,对外有三个电极:第一层P型半导体引出的电极叫阳极A,第三层P型半导体引出的电极叫控制极G,第四层N型半导体引出的电极叫阴极K,它和二极管一样是一种单方向导电器。晶闸管的特点:是“一触即发”。但是,如果阳极或控制极外加的是反向电压,晶闸管就不能导通。控制极的作用是通过外加正向触发脉冲使晶闸管导通,却不能使
16、它关断。那么,用什么方法才能使导通的晶闸管关断呢?使导通的晶闸管关断,可以断开阳极电源或使阳极电流小于维持导通的最小值(称为维持电流)。如果晶闸管阳极和阴极之间外加的是交流电压或脉动直流电压,那么,在电压过零时,晶闸管会自行关断。该控制部分的原理框图如图3.5:单稳态触发器比较器变压器220伏交流电单片机触发脉冲加热丝双向可控硅光耦及驱动同步 图 3.5 温度控制原理框图8031对温度的控制是通过可控硅调功电路实现的,双向可控硅观和加热丝串接在交流220V、50HZ交流市电回路中。在给定的周期T内,8031只要改变可控硅管的接通时间便可改变加热丝功率,以达到调解温度的目的。可控硅在给定周期T内
17、具有不同接通时间的情况。显然可控硅在给定周期T的100%时间内接通时的功率最大。可控硅接通时间可以通过可控硅控制极上的触发脉冲控制。该触发脉冲由8031用软件在P1.3引脚上产生,受过零脉冲同步后经光耦管和驱动器输出送到可控硅的控制级上。过零同步脉冲是一种50HZ交流电压过零时刻的脉冲,可使可控硅在交流电压正弦波过零时刻触发导通。过零同步脉冲由过零触发脉冲电路产生,图中电压比较器LM311用于把50HZ正弦交流电压变成方波。方波的正边沿和负边沿分别作为两个单稳态触发器的输入触发信号,单稳态触发器输出的两个窄脉冲经二极管或门混合后就可得到对应于交流200V市电的过零同步脉冲。此脉冲一方面作为可控
18、硅的触发同步脉冲加到温度控制电路,另一方面还作为计数器脉冲加到8031的T0,T1端。光电耦合器,是近几年发展起来的一种半导体光电器件,把电子信号转换成为光学信号,然后又回复电子信号的半导体器件。由于它具有体积小、寿命长、抗干扰能力强、工作温度宽及无触点输入与输出及在电气上完全隔离等特点,被广泛地应用在电子技术领域及工业自动控制领域中,它可以代替继电器、变压器、斩波器等,而用于隔离电路、开关电路、数模转换、逻辑电路、过流保护、长线传输、高压控制及电平匹配等。4 温度控制系统的软件设计4.1 主程序设计及中断服务程序设计4.1.1温度控制主程序流程简图温度控制程序的设计应考虑如下问题:1 炉温采
19、样,数字滤波程序2 键盘扫描,键码识别和温度显示程序3 温度标度转换程序4 PID计算程序(双字节加法程序DSUM,双字求补程序CPL1,双字节带符号乘法程序MULT1)为简化起见,本设计思想只给出有关8031本身的初始化,8155初始化,标志、暂存单元和显示缓冲单元区清零、T0初始化,断开CPU中断、温度显示和键盘扫描等程序,详细见附录源程序清单,程序框图如图4.1所示。 开 始8031系统初始化输入被控参数8155初始化键盘显示器监控程序运 行 吗?N开中断Y 图4.1 主程序流程简图 在主程序设计中,由于T0被设定为计数器方式2,初值为06H,故它的溢出中断时间为250个过零同步触发脉冲
20、。为了保证系统正常工作,T1中断服务程序的执行时间必须满足T0的这一时间要求,因为T1的中断是嵌套在T0中断之后的。4.1.2 中断服务程序设计因为本设计中T1的中断是嵌套在T0中断之后的,而T0中断是温度控制系统的主程序,用于启动A/D转换、读入采集数据、数字滤波、越限温度报警和越限处理、PID计算输出可控硅的同步触发脉冲等。P1.3引脚上输出的该同步触发脉冲宽度由T1计数器的溢出中断控制,8031 利用等待T1溢出中断的时间完成把本次采样值转换成显示值放入显示缓冲区和调用温度显示程序。8031从T1中断服务程序返回后便可恢复现场和返回主程序,以待下次T0中断。 在T0中断服务程序中,还需要
21、用到一系列程序,例如:采样温度子程序、数字滤波子程序、越限处理程序、PID计算程序、标度转换程序和温度显示程序。PID计算程序中,也需要用到双字节加法程序DSUM,双字求补程序CPL1,双字节带符号乘法程序MULT1。T1中断服务程序流程图如图4.2 ,T2中断程序流程图如图4.3. T1中断程序清标志位D5H停止输出返回图4.2 T1中断程序流程图保护现场采样炉温数字滤波上限? 上限处理清本次越限标志恢复现场返回上限? 清上次越限标志下限? 下限? 上次越限? T1中断完? YNY置本次越限标志计算PIDYY取最大PID值输出下限报警求 补求 补从P1.3输出T1初始化温度标度转换越限计数器
22、+1越限N次? 温度显示上限报警清越限标志恢复现场返回图4.3 T0中断服务程序流程图4.2 温度控制程序子程序4.2.1 键盘扫描和温度显示程序设计1 为了简化电路,降低成本,将所有的段选线并联在一起,由一个8位I/O口控制,而选通断采用分时选通,LED显示器工作于共阴极动态显示,逐位轮流点亮各个LED,每一位保持1ms,在10ms20ms内再一次点亮重复不止,这样利用人的视觉暂留,好像6位LED同时点亮了,显示子程序流程图如图4.4。DIS指向显示缓冲区末址7EH先点亮最右边的LED送位控制信号查表取字形码送出一位显示延时1ms指向下一格缓冲单元R0-1最左边一位显示吗?位控制信号左移一位
23、结束YNLP0 图4.4 显示程序流程2 本设计采用行列式矩阵键盘,单片机对它的控制采用程序扫描即中断查询方式,A口为选通口,B口为显示口,C口为查询输入口。键盘扫描子程序功能如下:(1)判断键盘上有无键按下,方法为:PA口输出全扫描字00H,读PC口状态,若PC0PC1口全为1,则键盘无键按下,若不全为1则有键按下。(2)去键的机械抖动影响:在判断有键按下后,软件延时一断时间(5ms10ms)后再判断键盘状态,如果仍为有键按下状态,则认为确实有键被按下;否则,按照键抖动处理。(3)判别闭合键的键号:对键盘的列线进行扫描,扫描口为PA0PA7,依次输出扫描字为FEH,FDH,FBH,F8H,E
24、FH,DFH,BFH,7FH,读出PC口的状态,若全为1则列线输出为0的 这一列上没有键闭合;否则,这一列有键闭合。闭合键的键号等于处于低电平的列号加上低电平的行的首键号,例如:PA口的输出为,读出PC1PC0为01,则1行1列的键闭合,(4)CPU对键的一次闭合仅作一次处理,采用的方法是等待键释放后再将键号送入累加器A中。键盘扫描子程序流程图如图4.5调用子程序延迟12ms开始有键闭合否?有键闭合否?闭合键释放?判断闭合键键号栈键入键号A返回YYYNNN 图4.5 键盘扫描子程序流程图 4.2.2 炉温采样、数字滤波程序设计采样子程序SAMP:流程图如图4.6采样值起始地址送R0采样次数送R
25、2选通IN0启动AD574延时A/D完成?所有采样结束返回YNN 图4.6 采样子程序流程图 图4.8 标度转换程序4.3 PID控制算法4.3.1 PID算法基本原理通常,电炉炉温的控制采用偏差控制算法。偏差控制的原理是先求出实测炉温对所需炉温的偏差值,然后对偏差处理,从而获得控制信号去调节电炉的加热功率,以实现对炉温的控制。在工业上,偏差控制又称为PID(Proportional Integral and Differential,比例积分与微分)。这是工业控制过程中应用广泛的一种控制形式,一般都能收到令人满意的效果。控制论告诉我们,PID控制的理想微分方程为:U(t)= (4.2)其中e
26、(t)=r(t)-y(t)称为偏差值,可作为温度调节器的输入信号,其中r(t)为给定值,y(t)为被测变量的值;为比例系数;为积分时间常数;为微分时间常数;u(t)为调节器的输出控制器输出控制信号。 4.3.2 PID算法及子程序PID控制算法要用到双字节加法程序DSUM,完成R4R5+R3R2R7R6。双字节求补程序CPL1对R3R2求补,双字节带符号乘法子程序MULT1,因加法和求补算法比较简单,仅对双字节带符号乘法作详细介绍。 入口条件:R7R6=被乘数 R5R4=乘数 出口条件:积为32位,按R0存入 标志位 :SIGN1 为地址5CH SIGN2 为地址5DH具体算法如图4.10 带
27、符号双字节乘法程序被乘符号送CYCY=1?对R7R6求补乘数符号送CYCY=1?调用无符号乘法程序两乘数符号皆负?两乘数符号皆正?对积高16位求补返 回N对R5R4求补NYYNN 图4.10 带符号双字节乘法程序流程图5 结论与展望MCS-51单片机,体积小,重量轻,抗干扰能力强,对环境要求不高,价格低廉,可靠性高,灵活性好,本文的温度控制系统,只是单片机广泛应用于各行各业中的一例。 本设计仅以炉温度为例进行恒温控制,稍加改动后,可以广泛应用于铸造、热处理等电热恒温及保温控制场合。设计实现了温度实时测量、显示、控制系统。本设计温度控制电路具有较高的抗干扰性,实时性;在使用键盘与显示器接口时,为
28、了节省I/O口线常常把键盘和显示电路接在一起,构成实用键盘和显示电路;控制算法采用传统的PID控制算法。方案具有较高的测量精度,温度控制实时性更高,更加适合对温度精度要求较高的化工生产、电力工程等行业,并希望通过本设计收到举一反三和触类旁通的效果。在设计过程中,首先在老师的指导下熟悉了系统的工艺,进行对象的分析,按照要求确定方案。然后进行硬件和软件的设计。通过设计使我掌握了微型机控制系统I/O接口的扩展方法,模拟量输入/输出通道的设计,常用控制程序的设计方法,数据处理及线性标度技术,PID算法的设计思想。在领到课题时,本人对单片机的基本知识了解甚少,而汇编语言也是刚接触,所以花了大量的时间去做
29、准备工作。在老师的指导和帮助下,克服了一系列困难终于完成了本设计,基于本人能力有限,该设计还有许多不足之处有待改进。针对本课题目前的研究进展,作以下几点展望:1、本课题所设计的硬件电路和软件程序,目前还处于理论设计阶段,所有的功能模块有待实验室调试通过。 2、本设计的所用到的PID控制算法有待优化。基于PID控制,神经网络控制,模糊控制的神经网络模糊PID控制算法对存在滞后性、非线性、时变性、不确定随机干扰的系统的控制将会收到良好的效果。3、为了能实现更精确的控制,可设置多个温度采样点。附录C:系统源程序ORG 0000H AJMP MAIN ORG 0100H AJMP CT0 ORG 00
30、BH AJMP CT1 ORG 001BMAIN:DISM0 DATA 78H DISM1 DATA 79H DISM2 DATA 7AH DISM3 DATA 7BH DISM4 DATA 7CH DISM5 DATA 7DH MOV SP, #50H ; 50H送SP CLR 5EH ; 清本次越限标志 CLR 5FH ; 清上次越限标志 CLR A ; 清累加器A MOV 2FH, A ; MOV 30H, A ; MOV 3BH, A ;清暂存单元 MOV 3CH, A ; MOV 3DH , A ; MOV 3EH, A ; MOV 44H, A ; MOV DISM0, A ; M
31、OV DISM1, A ;清显示缓冲单元 MOV DISM2, A ; MOV DISM3, A ; MOV DISM4, A ; MOV DISM5, A ; MOV DPTR,#7F00H MOV A, #07H , MOVX DPTR, A ; 8155初始化MOV TMOD, #056H ; MOV TL0, #06H ; T0赋初值 MOV TH0, #06H ; CLR PT0 ; 令T0为底中断优先级 SETB TR0 ; 启动T0工作 SETB ET0 ; 允许T0中断 SETB EA ; 开CPU中断 LOOP: ACALL DISPLY ; 调用显示程序 ACALL SCA
32、N ; 调用扫描程序 AJMP LOOP ; 等待中断CT0: PUSH ACC ; PUSH DPL; 保护现场 PUSH DPH; SETB D5H ; 置标志ACALL SAMP; 调用采样子程序 ACALL FILTER; 调用数字滤波程序(5EH)送5FHCJNE A, 42H,TPL; 若Ui(K)Umax则TPLWL: MOV C,5EH; MOV 5FH,C; CLR 5EH; 清5EH单元 ACALL UPL; 转上限处理程序(略) POP DPH; POP DPL; POP ACC; RETI; 中断返回TPL: JNC TPL1; 若Ui(K)Umax则TPL1 CLR
33、5FH; 清上次越限标志 CJNE A,43H,MTPL; 若Ui(K)UminHAT: SETB P1.1; 若温度不越限,则绿灯亮 ACALL PID; 调用计算PID子程序 MOV A,2FH; PID值送A 有交换机 CPL A; INC A;NM: SETB P1.3; 另P1.3输出高电平脉冲 MOV TL1,A; MOV TH1,#0FFH; SETB PT1; T1高优先级中断 SETB TR1; 启动T1 SETB ET1; 允许T1中断 ACALL TRAST; 调用标度转换程序LOOP: ACALL DISPLY; 显示温度 JB D5H,LOOP; 等待T1中断 POP
34、 DPH; POP DPL; POP ACC; RETI; 中断返回MTPL: JNC HAT; Ui(K)Umin 则HAT SETB P1.0; 否则,越下限声光报警 MOV A,45H; 取PID最大值输出 CPL A; INC A; AJMP NM; 转NM执行TPL1: SETB 5EH; 若Ui(K)Umax,则5EH单元置位 JNB 5FH,WL; 若上次未越限,则转WL INC 44H; 越限计数器加1 MOV A,44H; CLR C; SUBB A,#N; 越限N次吗? JNZ WL; 越限小于N次则WL SETB P1.2; 否则越上限报警 CLR 5EH; CLR 5F
35、H; 清越限标志 POP DPH; POP DPL; 恢复现场 POP ACC; RETI ; 中断返回T1中断服务程序:CT : CLR D5H; 清标志 CLR P ; 令P 变为低电平 ETI; 中断返回 采样子程序:SAMP: MOV R,#2CH; 采样值始址送R MOV R,#03H; 采样次数初值送R MOV DPTR,#03F8H;SAM1: MOVX DPTR,A; 启动ADC0809H工作 MOV R,#20H;DLY: DJNZ R,DLY; 延时HERE: JB P,HERE; 等待A/D完成 MOVX A,DPTR; 采样值送A MOV R,A; 存放采样值 INC
36、R; DJNZ R,SAM1; 若采样未完,则SAM1 RET; 若已采样完,则返回MOV R2 , 3EH;ACALL CPL1 ; 对E(K-1)求补ACALL DSUM ; 计算E(K)+E(K-2)-E(K-1) 存入R5R4MOV R5, R7 ; MOV R4, R6;MOV R3, 3BH ;MOV R2, 3CH ; E(K-1)送R3R2ACALL CPL1 ; 对E(K-1)求补ACALL DSUM ; 求E(K)-2E(K-1)+E(K-2) KD送R5R4MOV R5, 37H ;MOV R4, 38H ;MOV R0, #46H ; 积始址46H送R0送入R5R4ACALL MULT1 ; 求得PDMOV R5, 49H ;MOV R4, 48H ;P1+PD送入R52R3MO