基于单片机的加热炉温度控制系统设计毕业论文.doc
本科毕业论文(设计)题 目: 基于单片机的加热炉温度控制系统设计学 院: 现代科技学院 专业班级: 电子信息工程0601 学 号: 2006614250308 学生姓名: 指导教师姓名: 指导教师职称: 二零一零 年 六 月 一 日22目录绪 论11 单片机对加热炉温度控制的总体设计22 单片机内部结构及引脚的选择32.1单片机内部模块32.1.1 MCS-51单片机内部结构32.1.2 主电源引脚42.1.3 外接晶体引脚42.1.4 MCS-51 输入/输出引脚42.1.5 MCS-51控制线42.2 单片机外总线结构52.3 MCS-51单片机系统扩展53 硬件系统设计63.1 总体设计63.2 程序存储器的扩展73.3温控模块的设计83.4 8155接口电路83.4.1 8155简介83.4.2 8155的RAM和I/O口地址编码93.5 A/D转换电路103.5.1引脚结构103.6 可控硅控制电路114 软件系统设计134.1 主程序134.2 T0中断服务程序144.3 采样子程序164.4 数字滤波程序165 总结18参考文献19附录20程序清单20绪 论温度控制系统在国内各行各业的应用虽然已经十分广泛,但从国内生产的温度控制器来讲,总体发展水平仍然不高,同日本、美国、德国等先进国家相比,仍然有着较大的差距。成熟的温控产品主要以“点位”控制及常规的PID控制器为主,它们只能适应一般温度系统控制,而用于较高控制场合的智能化、自适应控制仪表,国内技术还不十分成熟,形成商品化并广泛应用的控制仪表较少。随着我国经济的发展及加入WTO,我国政府及企业对此都非常重视,对相关企业资源进行了重组,相继建立了一些国家、企业的研发中心,开展创新性研究,使我国仪表工业得到了迅速的发展。随着新技术的不断开发与应用,近年来单片机发展十分迅速,一个以微机应用为主的新技术革命浪潮正在蓬勃兴起,单片机的应用已经渗透到电力、冶金、化工、建材、机械、食品、石油等各个行业。传统的温度采集方法不仅费时费力,而且精度差,单片机的出现使得温度的采集和数据处理问题能够得到很好的解决。温度是工业对象中的一个重要的被控参数。然而所采用的测温元件和测量方法也不相同;产品的工艺不同,控制温度的精度也不相同。因此对数据采集的精度和采用的控制方法也不相同。传统的控制方式以不能满足高精度,高速度的控制要求,如温度控制表温度接触器,其主要缺点是温度波动范围大,由于它主要通过控制接触器的通断时间比例来达到改变加热功率的目的,受仪表本身误差和交流接触器的寿命限制,通断频率很低。近几年来快速发展了多种先进的温度控制方式,如:PID控制,模糊控制,神经网络及遗传算法控制等。这些控制技术大大的提高了控制精度,不但使控制变得简便,而且使产品的质量更好,降低了产品的成本,提高了生产效率。本系统所使用的加热器件是电炉丝,功率为三千瓦,要求温度在4001000。静态控制精度为2.43。本设计使用单片机作为核心进行控制。单片机具有集成度高,通用性好,功能强,特别是体积小,重量轻,耗能低,可靠性高,抗干扰能力强和使用方便等独特优点,在数字、智能化方面有广泛的用途。本系统使用8031单片机,使温度控制大为简便。1 单片机对加热炉温度控制的总体设计加热炉是将物料或工件加热的设备。按热源划分有燃料加热炉、电阻加热炉、感应加热炉、微波加热炉等。应用遍及石油、化工、冶金、机械、热处理、表面处理、建材、电子、材料、轻工、日化、制药等诸多行业领域。加热炉按炉温分布,炉膛沿长度方向可分为预热段、加热段和均热段。单片机的温度控制是数字控制系统的一个应用。本系统所使用的加热炉为电加热炉,炉丝功率为3kw,系统要求炉膛恒温,误差为士2,超调量可能小,温度上升较快且有良好的稳定性。单片机温度控制系统是以MS-5l单片机为控制核心,辅以采样反馈电路,驱动电路,晶闸管主电路对电炉炉温进行控制的微机控制系统。系统的原理框图如图1.1所示,其基本控制原理为: :用键盘将温度的设定值送入单片机,启动运行后,通过信号采集电路将温度信号采集到后,送到A/D 转换电路将信号转换成数字量送入单片机系统进行PID 控制运算,将控制量输出,控制电阻炉的加热。给定值采样电路输出温度被控对象晶闸管主电路驱动电路8031控制电路图1.1 原理框图2 单片机内部结构及引脚的选择单片微型计算机(Single Chip Microcomputer)简称单片机,是指在一块芯片上集成了中央处理器CPU、随机存储器RAM、程序存储器ROM或EPROM、定时器/计数器、中断控制器及串型和并行I/O接口等部件。单片机主要应用于工业控制领域,用来实现对信号的检测、数据的采集以及对应用对象的控制。它具有体积小、重量轻、价格低、可靠性高、耗电少和灵活机动等许多优点。单片机是微型计算机的一个重要分支,特别适合用于智能控制系统。基于经济上的的考虑,以及本次设计的加热炉的精度要求,选用8031单片机作为中央处理器。8031是MCS51系列单片机的一种型号,在MCS51系列单片机中还有8051、8032、80C31等。2.1单片机内部模块2.1.1 MCS-51单片机内部结构MCS-51系列单片机组成结构中包含运算器、控制器、片内存储器、4个I/O口、串行图2.1单片机的内部结构框图口、定时器/计数器、中断系统、振荡器等功能部件。图2.1中SP是堆栈指针寄存器,PC是程序计数器,PSW是程序状态字寄存器,DPTR是数据指针寄存器。 2.1.2 主电源引脚Vcc(40脚):接+5V电源正端。Vss(20脚):接+5V电源地端。2.1.3 外接晶体引脚XTAL1(19脚)和XTAL2(18脚):接外部晶振的两个引脚。2.1.4 MCS-51 输入/输出引脚MCS-51单片机有4个I/O端口,共32根I/O线,4个端口都是准双向口。每个口都包含一个锁存器,即专用寄存器P0-P3,一个输出驱动器和输入缓冲器。为方便起见,我们把4个端口和其中的锁存器都统称P0-P3。 在访问片外扩展存储器时,低8位地址和数据由P0口分时传送,高8位地址由P2口传送。在无片外扩展存储器的系统中,这4个口的每一位均可作为双向的I/O口使用。P0口:可作为一般的I/O口用,但应用系统采用外部总线结构时,它分时作低8位地址和8位双向数据总线用。P1口:每一位均可独立作为I/O口。P2口:可作为一般I/O口用,但应用系统采用外部系统采用总线结构时,它分时作为高8位地址线。 P3口:双功能口。作为第一功能使用时同P1口,每一位均可独立作为I/O口。另外,每一位均具有第二功能,每一位的两个功能不能同时使用。2.1.5 MCS-51控制线RST/Vpd(9脚):RST即为RESET,Vpd为备用电源。该引脚为单片机的上电复位或掉电保护端。当单片机震荡工作时,该引脚上将出现持续两个机器周期的高电平,这时可实现复位操作,使单片机回复到初始状态。当Vcc发生故障,降低到低电平规定值或掉电时,该引脚上可接备用电源Vpd(+5V)为内部RAM供电,以保证RAM中的数据不丢失。ALE/PROG(30脚):地址锁存有效信号输出端。ALE在每个机器周期内输出两个脉冲。在访问片外程序存储器期间,下降沿用于控制锁存P0输出端的低八位地址;在不访问片外程序存储器期间,可作为对外输出的时钟脉冲或用于定时目的。 PSEN(29脚):片外程序存储器选通信号输出端,低电平有效。在从外部程序存储器读取指令或常数期间,每个机器周期内该信号有效两次,并通过数据总线P0口读回指令或常数。在访问片外数据存储器期间,该信号将不出现。 EA/VPP(31脚): EA为片外程序存储器选通断。该引脚有效(低电平)时,只选用片外程序存储器,否则单片机上电或复位后选用片内程序存储器。对于片内还有EPROM的机型,在编程期间,此引脚用作12V编程电源Vpp的输入端。2.2 单片机外总线结构微型计算机大多数CPU外部都有单独的地址总线、数据总线和控制总线,而MCS51单片机由于受到芯片管脚的限制,数据线和地址线(低8位)是复用的,而且是I/O口兼用。为了将它们分离开来,以便同单片机之外的芯片正确地相连,常常在单片机外部加地址锁存器来构成与一般CPU相类似的三总线,如图2.2所示。图2.2 单片机外总线结构2.3 MCS-51单片机系统扩展通常情况下,采用MCS-51系列单片机的最小系统只能用于一些很简单的应用场合,在此情况下直接使用单片机内部存储器、数据存储器、定时功能、中断功能、I/O端口等,组成的应用系统的成本较低。单片机系统扩展的方法有并行扩展法和串行扩展法两种。并行扩展法是利用单片机的三种线(AB、DB、CB)进行的系统扩展;串行扩展法是利用SPI三线总线或I2C双总线的串行系统扩展。但是,一般串行接口器件速度慢,在需要高速应用的场合,还是并行扩展法占主导地位。3 硬件系统设计3.1 总体设计系统控制主电路是由8031及其外围芯片,及一些辅助的部分构成的。如图3.1所示。803174Ls3732764过零信号发生器8155ADC0809传感检测电路温控电路电炉键盘与显示图3.1 总体设计原理图3.2 程序存储器的扩展8031片内不带ROM,采用8031芯片时,须扩展程序存储器。用作程序存储器的芯片主要有EPROM和EEPROM。由于EPROM价格低廉、性能可靠,所以设计用EPROM.EPROM是紫外线可擦除电可编程的半导体只读存储器,掉电后信息不会丢失。EPROM中程序一般通过专门编程器可写入。常用的EPROM芯片主要有:2716、2732、2764、27128、27256等。扩展程序存储器时,一般扩展容量大于256字节,因此,除了由P0口提供低8位地址线外,还需由P2口提供若干地址线,最大的扩展范围位64K字节,即需16位地址线。具体方法是CPU应向EPROM提供三种信号线。即A:数据总线:P0口接EPROM的O0-O7。B:地址总线:P0口经锁存器向EPROM提供地址低8位,P2口提供高8位地址以及片选线。C:控制总线:PSEN片外程序存储器取指令控制信号,接EPROM的OE,ALE接锁存器的G。EA接地。结合本次设计,选择扩展的型号为2764。8031与2764的连接图如图3.2所示。图3.2 2764与8031连接图3.3温控模块的设计温度检测元件和变送器的选择和被控温度及精度等级有关。设计采用镍铬/镍铝热电偶,此电偶用于01000的温度测量范围。系统功能和系统的工作工程为:反映炉温的热电偶, 用于采集炉内的温度信号,将采集到的信号经冷端补偿后送运算放大器放大, 由变送器将热电偶信号(温度信号)变为电流输出,再由高精密电流/电压变换器将电流信号变为标准电压信号,将放大的电压送入采样保持器和转换电路后得到与炉温相应的数字量。 具体设计为,将温度传感器输出的电流信号Iin,输入到电流/ 电压转换电路,在采样电阻R1 上获得对应的电压分量VR=R1*Iin,并将该值经过由R2,C1构成的带有一定延时(时间与温度传感器的响应时间相对应) 作用的低通滤波电路后,输入到放大器A1 的正相端。因为传感器输出4mA 时,在取样电阻上的电压不等于零,直接经模拟/数字转换电路转换后的数字量也不等于零,所以单片机不能直接利用,这样利用稳压管产生一个精确基准电压Vref 与R3。RW1构成的可调分压电路,通过调节RW1 可以获得精确的Vx=(Rx/RW1)Vref,该值可用于抵消4mA电流在取样电阻上产生的压降,所以当温度传感器为最小值4mA 时,A1的2 脚与3 脚之间的电压差基本为0V。与A1 相连的C2、R3、R4、R5 构成带有积分校正的放大电路,积分校正会增加系统的惯性,对变化较快的信号起阻尼作用。通过适当调整电阻就可以获得理想的比例增益,再将经过处理的温度传感器感测到的电信号VT 放大后,送入下一级的差值放大电路的负相端。系统的炉温工艺曲线经分段换算后转换为对应的电压数据,再经过进制转换后存入E2PROM中。当系统投入运行后,为了实现误差测量,单片机依据时钟定时器,按一定的时间间隔将数据通过总线传至DAC0832 的数据寄存器,经D/A 转换后的模拟电压VTS,从运放A2 送入由A3、R6、R7、R8 和R9 构成的差值检测放大电路的正相端,与经过转换的采样电压值VT 作差,得到的差值VT放大后送入A/D转换器0809。另外,变送器由毫伏变送器和电流/电压变送器组成:毫伏变送器用于把热电偶输出的0-41.32mV变换成0-10mA范围内的电流;电流/电压变送器用于把毫伏变送器输出的0-10MA电流变换成0-5V范围的电压。为了提高精度,变送器可以进行零点迁移。例如:若温度测量范围为4001000,则热电偶输出为16.4mV-41.32mV,毫伏变送器零点迁移后输出0-10mV范围电流。这样,采用8位A/D转换器就可以使量化误差达到正负2.34度以内。3.4 8155接口电路3.4.1 8155简介8155是Intel公司研制的通用I/O接口芯片。MCS-51和8155相连不仅可为外部设备提供两个8位I/O端口(A口和B口)和一个6位(C口),而且也可为CPU提供一个256字节RAM存储器和一个14位的定时器/计数器,所以8155广泛用于MCS-51系统中。MCS-51单片机可以和8155直接连接而不需要任何外加逻辑器件,就可为系统增加256个字节片外RAM、22位I/O口线以及一个14位定时器。P0口输出的低8位地址不必再另加锁存器,可直接与8155的AD0-AD7相连,既可作低8位地址总线,又可作数据总线。从P0口传送过来的地址信息在ALE的作用下在8155内部被锁存。高8位地址由及IO/的地址控制线决定,因此在图中的连接状态下,可以确定各个端口的地址:RAM的地址范围:FC00HFCFFH命令/状态口: FD00H; PA口: FD01H;PB口: FD02H; PC口: FD03H;定时器低8位: FD04H; 定时器高8位:FD05H3.4.2 8155的RAM和I/O口地址编码8155在单片机应用系统中是16位地址数据,其高8位由片选线提供,而低8位地址为片内地址。当IOM/=0时,单片机对8155内RAM读/写,RAM低8位编址为00FFH;当IO/M=1时,单片机对8155中的I/O口进行读/写。8031与8155的连接如图和键盘显示连接图如图3.3所示 图3.3 单片机与8155的连接以及键盘显示电路3.5 A/D转换电路ADC0809是一个典型的A/D转换芯片,为逐次逼近式8位CMOS型A/D转换器,片内有8路模拟选通开关、三态输出锁存器以及相应的通道地址锁存与译码电路。ADC0809 可处理8 路模拟量输入, 且有三态输出能力, 既可与各种微处理器相连,也可单独工作。输入输出与TTL 兼容。8 路8 位AD 转换器, 即分辨率8 位。具有转换起停控制端。转换时间为100s, 单个5V 电源供电, 模拟输入电压范围05V, 不需零点和满刻度校准。首先输入3 位地址, 并使ALE1, 将地址存入地址锁存器中。此地址经译码选通8 路模拟输入之一到比较器。START 上升沿将逐次逼近寄存器复位。下降沿启动AD转换, 之后EOC 输出信号变低, 指示转换正在进行。直到AD 转换完成, EOC 变为高电平, 指示AD 转换结束,结果数据已存入锁存器, 这个信号可用作中断申请。当OE 输入高电平时, 输出三态门打开, 转换结果的数字量输出到数据总线上。A/D转换是把从热电偶接收到的温度模拟量转换成温度数字量输送到单片机里,以便可以用单片机进行控制。3.5.1引脚结构 (1)IN7IN0:8条模拟量输入通道 (2)地址输入和控制线:4条 (3)数字量输出及控制线:11条 (4)电源线及其他:5条 输入为8个可选通的模拟量IN0-IN7。至于ADC转换器接收哪一路输入信号由地址A、B、C控制的8路模拟开关实现。 同一时刻,ADC0809只接收一路模拟量输入,不同时刻对8路模拟量进行模数转换。3.5.2 0809与8031的连接图3.4 0809与8031的连接3.6 可控硅控制电路8031对温度的控制是通过可控硅调控器实现的。可控硅功输出与通断时间关系草图如图3.5所示。双向可控硅管和加热丝串联接在交流220V,50Hz交流试点回路。在给定的周期T内,8031只要改变可控硅管的接通时间便可改变加热丝功率,以达到调节温度的目的。图3.5示出了可控硅管在给定周期T内具有不同接通时间的情况。显然,可控硅在给定周期T的100%时间内接通的功率最大。可控硅接通时间可以通过可控硅控制板上控制脉冲控制。该触发脉冲由8031用软件在P1.3引脚上产生,受过零同步脉冲后经光偶管和驱动器输送到可控硅的控制极上。偏差控制的原理是先求出史册炉温对所需炉温的偏差值,然后对偏差值处理而获得控制信号去调节电阻炉的功率,以实现对电阻炉的炉温控制。 在工业上,偏差控制又称为PID控制,这是工业控制中常用的控制形式,一般能收到令人满意的效果。控制论告诉人们, PID控制的理想方程是: (3.1)式中e 测量值与给定值之间的偏差;TD 微分时间:T - 积分时间; (3.2)KP 调节器的放大系数.将上式离散化得到数字PID位置式算法式中在位置式算法的基础之上得到数字PID增量式算法: (3.3)4 软件系统设计软件设计主要运用Keil Vison3软件,这个软件是德国Keil Software公司推出的51系列兼容单片机软件开发系统。Vison3是集成的可视化Windows操作界面,其提供了丰富的库函数和各种编译工具,能够对51系列单片机以及和51系列兼容的绝大部分类型的单片机进行设计。Keil Vison系列可以支持单片机C51程序设计语言,也可以直接进行汇编语言的设计与编译。Keil Vison系列的集成开发环境最高版本是Vison3,版本号为V8.08。Keil Vison系列是一个非常优秀的编译器,受到广大单片机设计者的广泛使用。其主要特点如下:支持汇编语言、C51语言等多种单片机设计语言;可视化的文件管理,界面友好;支持丰富的产品线,除了51及其兼容内核的单片机外,还新增加了对ARM内核产品的支持;具有完善的编译连接工具;具备丰富的仿真调试功能,可以仿真串口、并口、A/D、D/A、定时器/计数器以及中断等资源,同时也可以和外部仿真器联合进行在线调试;内嵌RTX-51实时多任务操作系统;支持在一个工作空间中进行多项目的程序设计。支持多级代码优化。4.1 主程序 主程序主要完成加热控制系统各部件的初始化和实现各功能子程序的调用,以及实际测量中各个功能模块的协调在无外部中断申请时,单片机通过循环对外部温度进行实时显示。应当注意:由于T0被设定为计数器方式2,初值为06H,故它的溢出中断时间为250个过零同步脉冲。为了系统正常工作,T1中断服务程序的执行时间必须满足T0的制一时间要求,因为T1的中断是嵌套在T0中断之中的。主程序框图如图4.1图4.1 主程序流程图4.2 T0中断服务程序T0中断服务程序是温度控制系统的主程序,用于启动A/D转换器,读如数据采样,数字滤波,越权温度报警和处理,PID计算和输出可控硅的同步触发脉冲等。P1.3引脚上输出的该同步脉冲宽度由T1计数器的溢出中断控制,8031利用等待T1溢出中断空隙时间完成把本次采样数值转换成显示值而放入显示缓冲区和调用温度显示程序,8031从T1中断服务程序返回后便可以恢复现场和返回主程序,以等待下次T0中断。T0中断服务程序框图如图4.2所示图4.2 T0中断服务程序流程图4.3 采样子程序流程图如图4.3采样值始址送R0采样次数送R2所有采样结束?A/D完成?延时选同IN0启动ADC返 回NYNY4.3采样子程序框图4.4 数字滤波程序数字滤波程序FILTER:用于滤去来自控制现场对采样值的干扰。本设计采用中值滤波数字滤波程序框图如图4.4YNNYYYYNYYN(2CH)送A (2CH)(2DH)?(2CH)>(2DH)?(2CH)(2DH)(2DH)(2EH)?(2DH)>(2EH)?(2CH)(2EH)?(2EH)>(2CH)?(2CH) 送2AH返回(2EH)送2AH(2EH)送2AH(2DH) 送2AH(2DH) 送2AH N图4.4数字滤波程序框图5 总结设计使用无ROM的8031作为主控芯片进行控制,单片机具有集成度高,通用性好,功能强,特别是体积小,重量轻,耗能低,可靠性高,抗干扰能力强和使用方便等独特优点,在数字、智能化方面有广泛的用途。其中的温控系统采用镍铬/镍铝热电偶,此电偶用于01000的温度测量范围,相应的输出电压为0mV-41.32mV.温度是工业对象中的一个重要的被控参数,在本系统中,采用单片机控制,这些控制技术会大大提高控制精度,不但使控制简捷,降低了产品的成本,提高了生产效率.参考文献1 蔡振江.单片机原理与应用. 北京:电子工业出版社,20082 赖寿宏.微型计算机控制技术. 北京:机械工业出版社.20033 王毓银主编.数字电路逻辑设计.北京:高等教育出版社,19994 清源计算机工作室编著.Protel 99原理图与PCB及仿真. 北京:机械工业出版社,20085 索雪松等.传感器与信号处理电路.北京:中国水利水电出版社,2008 6 李华等.单片机实用接口技术. 北京:北京航空航天大学出版社,20027 陆子明.单片机设计与应用基础教程.北京:北京国防工业出版社,20058 孙炳达.自动控制原理.北京:机械工业出版社,20089 沙占友.王晓君.数字化测量.北京:机械工业出版社,200910 李广弟.单片机基础.北京:北京航空航天大学出版社,200111 Yuan N ,Yeo T S ,Nie X C ,Li L W,et al . Analysis of Sca -ttering f rom Composite Conducting and Dielect ric Target susing the Precorrected - FFT AlgorithmJ . Elect romagn.Wave and Appl. ,2003 ,17 (3) :499 - 515.12 St reet M Q1 The microelect ronics and computer systems laboratory J 1Microelect ronics Journal , 1993 , 24 (5) : 5805841.附录程序清单1.主程序: ORG 0100HDISM0 DATA 78HDISM1 DATA 79HDISM2 DATA 7AHDISM3 DATA 7BHDISM4 DATA 7CHDISM5 DATA 7DHMOV SP, #50H; 50H送SPCLR 5EH ; 清本次越限标志CLR 5FH ; 清上次越限标志CLR A ; 清累加器AMOV 2FH, AMOV 30H, AMOV 3BH, AMOV 3CH, A清暂存单元MOV 3DH, AMOV 3EH, AMOV 44H, AMOV DISM0, AMOV DISM1, AMOV DISM2, AMOV DISM3, A清显示缓冲区MOV DISM4, AMOV DISM5, AMOV TMOD, #56HMOV TL0, #06HMOV TH0, #06HCLR PT0SETB TR0SETB ET0SETB EALOOP ACALL DISPLY ;调用显示程序ACALL SCAN ;调用扫描程序AJMP LOOP ;等待中断T0中断服务程序:ORG 000BH AJMP CT0 CT0: PUSH ACC ;PUSH DPL ;保护现场PUSH DPH ;SETB D5H ; 置标志ACALL SAMPACALL FILTERCJNE A,42H,TPLWL: MOV C,5EHMOV 5FH,CCLR 5EHACALL UPLPOP DPHPOP DPLPOP ACCRETI ;中断返回TPL: JNC TPL1CLR 5FH ;清上次越限标志CJNE A,43H,MTPLHAT: SETB P1.1 ;若温度不越限,则绿灯亮ACALL PIDMOV A,2FHCPL A ;INC A ;对PID值求补,作为TL1值NM: SETB P1.3MOV TL1,AMOV TH1,#0FFHSETB PT1SETB TR1 ;启动T1SETB ET1 ;允许T1中断ACALL TRASTLOOP: ACALL DISPLY ;显示温度JB D5H,LOOP ;等待T1中断POP DPHPOP DPLPOP ACCRETIMTPL: JNC HATSETB P1.0 ;否则,下限声光报警MOV A,45HCPL AINC AAJMP NMTPL1: SETB 5EHJNB 5FH,WLINC 44H ;越限计数器加1MOV A,44HCLR CSUBB A,#N ;越限N次吗?JNZ WLSETB P1.2CLR 5EHCLR 5FHPOP DPHPOP DPLPOP ACCRETI2.采样子程序:SAMP: MOV R0,#2CH ;采样值始址送R0MOV R2,#03HMOV DPTR,#03F8HSAM1: MOVX DPTR,A ;启动ADC0809工作 MOV R3,#20HDLY: DJNZ R3,DLY ;延时HERE: JB P3.3,HEREMOVX A,DPTRMOV R0,A ;存放采样值INC R0DJNC R2,SAM1RET3.数字滤波程序FILTER: MOV A,2CH CJNE A,2DH,CAMP1AJMP CMP2CMP1: JNC CMP2 XCH A,2DH XCH A,2CHCMP2 MOV A,2DH CJNE A,2EH,CMP3 MOV 2AH,A RETCMP3: JC CMP4 MOV 2QH,A RETCMP4: MOV A,2EH CJNE A,2CH,CMP5 MOV 2AH,A RETCMP5: JC CMP6 XCH A,2CHCMP6: MOV 2AH,A RET