电加热炉温度控制系统设计(共31页).docx
精选优质文档-倾情为你奉上武汉华夏理工学院信息工程课程设计报告书课 程 名 称计算机控制技术课程设计课程设计总评成绩 学生姓名、学 号 学 生 专 业 班级 自动化1142 指 导 教 师 姓名 李文彦 课程设计起止日期 2017. 06.12-2016-6.23 课程设计基本要求课程设计是工科学生十分重要的实践教学环节,通过课程设计,培养学生综合运用先修课程的理论知识和专业技能,解决工程领域某一方面实际问题的能力。课程设计报告是科学论文写作的基础,不仅可以培养和训练学生的逻辑归纳能力、综合分析能力和文字表达能力,也是规范课程设计教学要求、反映课程设计教学水平的重要依据。为了加强课程设计教学管理,提高课程设计教学质量,特拟定如下基本要求。1. 课程设计教学一般可分为设计项目的选题、项目设计方案论证、项目设计结果分析、答辩等4个环节,每个环节都应有一定的考核要求和考核成绩。2. 课程设计项目的选题要符合本课程设计教学大纲的要求,该项目应能突出学生实践能力、设计能力和创新能力的培养;该项目有一定的实用性,且学生通过努力在规定的时间内是可以完成的。课程设计项目名称、目的及技术要求记录于课程设计报告书一、二项中,课程设计项目的选题考核成绩占10%左右。3. 项目设计方案论证主要包括可行性设计方案论证、从可行性方案中确定最佳方案,实施最佳方案的软件程序、硬件电路原理图和PCB图。项目设计方案论证内容记录于课程设计报告书第三项中,项目设计方案论证主要考核设计方案的正确性、可行性和创新性,考核成绩占30%左右。4. 项目设计结果分析主要包括项目设计与制作结果的工艺水平,项目测试性能指标的正确性和完整性,项目测试中出现故障或错误原因的分析和处理方法。项目设计结果分析记录于课程设计报告书第四项中,考核成绩占25%左右。5. 学生在课程设计过程中应认真阅读与本课程设计项目相关的文献,培养自己的阅读兴趣和习惯,借以启发自己的思维,提高综合分和理解能力。文献阅读摘要记录于课程设计报告书第五项中,考核成绩占10%左右。6. 答辩是课程设计中十分重要的环节,由课程设计指导教师向答辩学生提出23个问题,通过答辩可进一步了解学生对课程设计中理论知识和实际技能掌握的程度,以及对问题的理解、分析和判断能力。答辩考核成绩占25%左右。7.学生应在课程设计周内认真参加项目设计的各个环节,按时完成课程设计报告书交给课程设计指导教师评阅。课程设计指导教师应认真指导学生课程设计全过程,认真评阅学生的每一份课程设计报告,给出课程设计综合评阅意见和每一个环节的评分成绩(百分制),最后将百分制评分成绩转换为五级分制(优秀、良好、中等、及格、不及格)总评成绩。8. 课程设计报告书是实践教学水平评估的重要资料,应按课程、班级集成存档交实验室统一管理。课程设计任务书(八)学生姓名: 专业班级: 自动化1142 指导教师: 李文彦 工作单位: 信息工程系 题 目: 电加热炉温度控制系统设计(一)初始条件:1、设计一个单片机电阻炉温度控制系统,控制对象为电阻加热炉功率为8KW,220V交流电源供电,利用大功率可控硅控制器控制热阻丝两端所加的电压大小,来改变流经热阻丝的电流,从而改变电炉炉内的温度。温度范围50-350,控制精度为±1,通过LED 显示温度,其对象温控数学模型为: 其中Td350秒, Kd50,=10秒。要求完成的主要任务: 1、硬件设计:设计系统总体电路,设计输入通道及输出通道,分析的工作原理;2、软件设计:设计系统的总体程序程图,编写PID算法程序,从键盘接受Kp、Ti、Td、T;编写显示程序; 3、采用PID算法,通过数据分析Kp改变时对系统超调量的影响;在MATLAB/SIMULINK上对控制算法进行仿真;4、仿真并调试设计的部分硬件电路和软件程序; 5、完成符合要求的课程设计说明书;6、课程设计说明书要求:引言、设计要求、系统结构设计、原理分析、各个模块的设计与仿真、软件设计、调试过程、收获、体会及总结、参考文献、电路图和源程序。说明书使用A4打印纸计算机打印或手写,用Protel等绘图软件绘制电子线路图纸。时间安排:第12天 下达课程设计任务书和日程安排,根据任务书查找资料;第3-4天 完成方案论证比较,设计系统的总体结构; 第45天 详细设计系统的各部分的硬件电路; 第67天 详细总体软件及各部分的程序流程,完成程序的编写第78天 仿真并调试设计的部分硬件电路和软件程序;第910天 结果分析整理、撰写课程设计报告,验收和答辩。指导教师签名: 年 月 日一、课程设计项目名称电加热炉温度控制系统设计(一)二、项目设计目的及技术要求1、硬件设计:用51单片机设计系统总体电路,设计输入通道及输出通道,分析的工作原理;2、软件设计:设计系统的总体程序程图,编写积分分离PID算法程序,从键盘接受Kp、Ti、Td、T及的值;编写显示程序; 3、采用PID算法,通过数据分析Kp改变时对系统超调量的影响;在MATLAB/SIMULINK上对控制算法进行仿真;4、仿真并调试设计的部分硬件电路和软件程序; 5、完成符合要求的课程设计说明书;6、课程设计说明书要求:引言、设计要求、系统结构设计、原理分析、各个模块的设计与仿真、软件设计、调试过程、收获、体会及总结、参考文献、电路图和源程序。说明书使用A4打印纸计算机打印或手写,用Protues等绘图软件绘制电子线路图纸。三、项目设计方案论证3.1方案论证比较3.1.1.硬件选择微型计算机是指由微处理器加上采用大规模集成电路制成的程序存储器和数据存储器,以及输入输出设备相连接的I/O接口电路,微型计算机简称MC。如果将微处理器、存储器和输入/输出接口电路集成在一块集成电路芯版上,称为单片微型计算机,简称单片机。本次设计选用的是AT89C51,是MCS-51单片机系列的一种。其结构体系完整、指令系统功能完善、内部寄存器规范、性能优越、技术成熟、具有高可靠性和高性价比。它提供以下标准功能:4k 字节Flash 闪速存储器,128字节内部RAM,32 个I/O 口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。3.1.2.算法选择由于计算机控制是一种采样控制,它只能根据采样时刻的偏差值来计算控制量。因此,在计算机控制系统中,必须首先对式(3-1)进行离散化处理,用数字形式的差分方程代替连续系统的微分方程,此时积分项和微分项可用求和及增量式表达。对温度的控制算法,采用技术成熟的PID算法,对于时间常数比较大的系统来说,其近似于连续变化,因此用数字PID完全可以得到比较好的控制效果。简单的比例调节器能够反应很快,但不能完全消除静差,控制不精确,为了消除比例调节器中残存的静差,在比例调节器的基础上加入积分调节器,积分器的输出值大小取决于对误差的累积结果,在误差不变的情况下,积分器还在输出直到误差为零,因此加入积分调节器相当于能自动调节控制常量,消除静差,使系统趋于稳定。积分器虽然能消除静差,但使系统响应速度变慢。进一步改进调节器的方法是通过检测信号的变化率来预报误差,并对误差的变化作出响应,于是在PI调节器的基础上再加上微分调节器,组成比例、积分、微分(PID)调节器,微分调节器的加入将有助于减小超调,克服振荡,使系统趋于稳定,同时加快了系统的稳定速度,缩短调整时间,从而改善了系统的动态性能,其控制规律为:(3-2)单片机是一种采样控制,它只能根据采样时刻的误差值计算控制变量,不能直接计算公式中的积分项和微分项,采用数值计算法逼近后,PID的调节规律可以通过数值公式(3-3)计算,如果采样取得足够小,这种逼近可相当准确,被控过程与连续过程十分接近。我们变换上式(3-3)得:(3-4)把ei = ei - ei-1,2 ei=ei -ei-1带人上式(3-4)得:(3-5)式中ei=WYi,W为设定值,Yi为第i次实际输出值,Kp为比例系数,积分系数I=T/Ti,微分系数D=Td/T,T为采样周期,以(3-5)式来编程比较方便。用PID控制算法实现温度控制是这样一个反馈过程:比较实际温度和设定炉温得到偏差,通过对偏差的处理获得控制信号,再去调节电加热炉的加热功率,从而实现对炉温的控制,由于电阻炉一般都是下一阶段对象和带纯滞后的一阶对象,所以式中Kp、Kd和Ki的选择取决于电阻炉的响应特性和实际经验。本程序先将用户设定温度和锅炉实际温度T比较,计算出偏差ei,然后分两种情况进行计算控制变量:1ei大于等于设定的偏差e时,由于积分控制器使系统响应速度变慢,不采用积分控制器调节,直接使用PD调节,获得比较快的动态响应,计算Pd和Pp,最终得到控制量获得比较快的动态响应。2ei小于设定的设定的偏差e时,正常的分别计算Pi、Pd和Pp,然后根据算法公式计算出控制变量。3.2总体方案设计与原理分析由于温度控制系统的控制对象具有惯性大,连续性的特点。因而可以归于具有纯滞后的一阶大惯性环节。一般来说,热过程大多具有较大的滞后,它对任何信号的响应都会推迟一段时间,使输出与输入之间产生相移。对于这样一些存在大的滞后特性的过渡过程控制,一般来说可以采用以下几种控制方案:3.2.1输出开关量控制对于惯性较大的过程可以简单地采用输出开关量控制的方法。这种方法通过比较给定值与被控参数的偏差来控制输出的状态:开关或者通断,因此控制过程十分简单,也容易实现。但由于输出控制量只有两种状态,使被控参数在两个方向上变化的速率均为最大,因此容易引起反馈回路产生振荡,对自动控制系统会产生十分不利的影响,甚至会因为输出开关的频繁动作而不能满足系统对控制精度的要求。因此,这种控制方案一般在大惯性系统对控制精度和动态特性要求不高的情况下采用。3.2.2比例控制(P控制)比例控制的特点是控制器的输出与偏差成比例,输出量的大小与偏差之间有对应关系。当负荷变化时,抗干扰能力强,过渡时间短,但过程始终存在余差。因此它适用于控制通道滞后较小、负荷变化不大、允许被控量在一定范围内变化的系统。使用时还应注意经过一段时间后需将累积误差消除。3.2.3比例积分控制(PI控制)由于比例积分控制的特点是控制器的输出与偏差的积分成比例,积分的作用使得过渡过程结束时无余差,但系统的稳定性降低。虽然加大比例度可以使稳定性提高,但又使过渡时间加长。因此,PI控制适用于滞后较小、负荷变化不大、被控量不允许有余差的控制系统,它是工程上使用最多、应用最广的一种控制方法。3.2.4比例积分加微分控制(PID控制)比例积分加微分控制的特点是微分的作用使控制器的输出与偏差变化的速度成正比例,它对克服对象的容量滞后有显著的效果。在比例基础上加上微分作用,使稳定性提高,再加上积分作用,可以消除余差。因此,PID控制适用于负荷变化大、容量滞后较大、控制品质要求又很高的控制系统。结合本例题设计任务与要求,由于温度系统的传递函数事先难以精确获得,因而很难判断哪一种控制方法能够满足系统对控制品质的要求。但从以上对控制方法的分析来看,PID控制方法最适合本例采用。另一方面,由于可以采用单片机实现控制过程,无论采用上述哪一种控制方法都不会增加系统硬件成本,而只需对软件作相应改变即可实现不同的控制方案。因此本系统可以采用PID的控制方式,以最大限度地满足系统对诸如控制精度、调节时间和超调量等控制品质的要求。3.3 硬件电路设计与分析3.3.1.系统概况本系统是采用以AT89C51单片机为核心的温度控制系统,通过温度传感器采样实时温度,并通过变送器将温度最终转换为电压信号通过A/D转换器0808将其转换为数字信号,送入单片机与给定值进行比较,通过运用PID算法得出控制结果,送显示并进行控制。总体设计方案见如图4-1所示。测量变送看门狗图3-1 系统设计方案图3.3.2.功能模块1、单片机控制模块A/T89C51是整个系统的控制核心,将采集来的数据与设定值进行比较,利用PID算法得出结果并送输出。整个控制系统的程序就下载到单片机中去。A/T89C51仿真图如图3-2所示。图3-2 单片机仿真2、数据转换与采集模块A/D0808AD0808是CMOS的8位模/数转换器,采用逐次逼近原理进行A/D转换,芯片内有模拟多路转换开关和A/D转换两大部分,可对8路05V的输入模拟电压信号分时进行转换。模拟多路开关由8路模拟开关和3位地址锁存译码器组成,可选通8路模拟输入中的任何一路,地址锁存信号ALE将3位地址信号ADDA、ADDB、ADDC进行锁存,然后由译码电路选通其中的一路,被选中的通道进行A/D转换。A/D转换部分包括比较器、逐次逼近寄存器(SAR)、256R电阻网络、树状电子开关、控制与时序电路等。另外ADC0809输出具有TTL三态锁存缓冲器,可直接连到CPU数据总线上。实时温度经过传感器的检测并通过变送器将其转换成模拟的电压信号,而A/D0808则用来采集电压信号并将其转换为数字信号存储在单片机中,以便后续对数据的处理。其硬件仿真图如图3-3所示。图3-3 A/D0808仿真图3、按键选择模块系统采用了两个按键用来进行温度的设定,一个进行温度加,一个进行温度减。每按下一次,温度就相应的加一或减一。按照设计要求,温度的设定范围为50-150度,其仿真如图3-4所示。图3-4 按键示意图4、显示模块显示模块采用两个7段共阴极数码管,一个用来显示实时温度,一个用来显示设定温度。并用74LS04来驱动数码管。其仿真图如图3-5所示。图3-5 显示示意图5、报警模块当实时温度高于或低于设定温度5度以上时,系统就会报警,报警指示灯红灯亮。如图3-6所示。图3-6 报警示意图6 、输出模块经过数据的运算,单片机通过P3.4口的高低电平来控制加热系统的通断,通过导通时间的长短来控制加热的强度,以达到精确控制的效果。当温度在设定温度的正负5度之内时,系统进行PID运算控制;当高于设定温度5度时,停止加热;当低于设定温度5度时,全功率加热。由于仿真软件自身条件的原因,使用绿色的LED灯代替,当绿灯亮时,表示正在加热,不亮时,停止加热。仿真图如3-7所示。图3-7 加热示意图3.3.3.系统的整体设计系统的整体设计图如图3-8所示。图3-8 系统设计方案图其中:1单片机采用的是MCS-51系列的89C51,其集成了中央处理器CPU、随机存储器RAM、程序存储器ROM或EPROM、定时器/计数器、中断控制器及串型和并行I/O接口等部件。单片机主要应用于工业控制领域,用来实现对信号的检测、数据的采集以及对应用对象的控制。它具有体积小、重量轻、价格低、可靠性高、耗电少和灵活机动等许多优点。单片机是微型计算机的一个重要分支,特别适合用于智能控制系统。2实时的温度测量由于条件的限制直接用模拟电压来代替传感器及变送器,用0808来采样和转换温度。3.3.4.元器件清单系统所需的元器件清单如表4-1所示。表3-1系统配置清单表序号部件名称所属类数量1AT89C51Microprocessor ICs12A/D0808Data Converters137SEG-MPX4-CCOptoelectronics24BUTTONSwitches&Relays35LED-GREENOptoelectronics16LED-REDOptoelectronics1774LS373TTL 74LS series18RESPACK-8Resistors1974LS04TTL 74LS series810NOTSimulator Primitives111NORSimulator Primitives212POT-HGResistors113电容Capacitors214CLOCKSimulator Primitives215CRYSTALMiscellaneous116电阻Resistors117INPUT终端418GROUND终端719VSOURCESimulator Primitives13.3.5.小结系统硬件是设计的基础,在设计软件程序之前,要对系统的结构有个深入的了解,本章详细介绍了整个系统的硬件结构和各模块的选型,介绍了系统的概况,使读者对总体的设计有个大致了解。3.4 软件设计3.4.1.Protues7软件概况PROTUES是一种基于标准仿真殷勤SOICE3F5的混合电路仿真工具,既可以仿真模拟电路,又可以仿真数字电路以及数字、模拟混合电路,其最大特色在于能够仿真基于控制器的系统。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、8086和MSP430等,2010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、和MPLAB等多种编译。其程序界面如图3-9所示。图3-9 Protues7工作界面PROTUES软件的功能特点介绍如下:1原理布图 2PCB自动或人工布线 3SPICE电路仿真 革命性的特点: 1互动的电路仿真。用户甚至可以实时采用诸如RAM,ROM,键盘,马达,LED,LCD,AD/DA,部分SPI器件,部分IIC器件。 2仿真处理器及其外围电路。可以仿真51系列、AVR、PIC、ARM、等常用主流单片机。还可以直接在基于原理图的虚拟原型上编程,再配合显示及输出,能看到运行后输入输出的效果。配合系统配置的虚拟逻辑分析仪、示波器等,Protues建立了完备的电子设计开发环境。同时它还具有4大功能模块:智能原理图设计(ISIS),完善的电路仿真功能(Prospice),独特的单片机协同仿真功能(VSM),实用的PCB设计平台。Protues提供了丰富的资源:1Protues可提供的仿真元器件资源:仿真数字和模拟、交流和直流等数千种元器件,有30多个元件库。 2Protues可提供的仿真仪表资源 :示波器、逻辑分析仪、虚拟终端、SPI调试器、I2C调试器、信号发生器、模式发生器、交直流电压表、交直流电流表。理论上同一种仪器可以在一个电路中随意的调用。3除了现实存在的仪器外,Protues还提供了一个图形显示功能,可以将线路上变化的信号,以图形的方式实时地显示出来,其作用与示波器相似,但功能更多。这些虚拟仪器仪表具有理想的参数指标,例如极高的输入阻抗、极低的输出阻抗。这些都尽可能减少了仪器对测量结果的影响。4Protues可提供的调试手段 Protues提供了比较丰富的测试信用于电路的测试。这些测试信号包括模拟信号和数字信号。3.4.2.软件流程图温度控制系统的软件流程图,系统开始工作时会检测炉温,一般情况下此时炉温比给定值低,于是电炉开始全速加热。于此同时,系统会按照预定的采样周期进行采样,当检测炉温在上限温度和下限温度之间,那么开始进行PID控制,并继续按照预定的采样周期进行采样,直至温度稳定为给定值。四、 项目设计结果分析五、 4.1调试记录及结果分析4.1.1. 仿真程序及图形在打开Matlab中的Simulink之后,开始绘制系统仿真图形,如图4.1所示,该图中对积分和微分先进行处理,使得的到当为等幅震荡时的kc值,然后通过Z-N法则的第二法,加入为微分和积分之后,采用PID控制。改变Kp的值,既可以的得到不同的结果,从而可以分析出Kp的改变对系统超调量造成的影响。图4.1系统仿真图4.1.2仿真结果及分析由图可以得到Kc=1.13,Tc=40,TI=0,TD=0,时出现的等幅震荡曲线图Kp=0.678 Ki=0.05 Kd=5当Kp=0.7时,曲线图如下所示:当Kp=0.8时曲线如上图所示当Kp=1时,曲线如上图所示当Kp=1.1时如上图所示从上述结果图中可以看出,但当Kp增大到一定程度时,将会导致系统的超调量增加,稳定性变差,并且使得系统产生震荡。从上面曲线图中可以明显看出当Kp为1时,系统开始出现震荡,在Kp大于1时,出现剧烈震荡,系统稳定性变差。4.2.结论本实验通过PID算法调节,设计并比较实际温度与设定温度,最终达到实际温度与设定温度的误差稳定在一定范围。在这次课设的实验过程中我遇到了诸多问题,算的上是困难重重,也让我在实验过程中了解了自己的不足之处,让我了解了自己对以前所学过的知识理解得不够深刻,掌握得不够牢固。通过这次实验,我不仅巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。这次课程设计使我了解了微型计算机控制技术课程设计的真正用意是培养我们的自学能力,养成编写程序的好习惯,懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为实际所用,从而提高自己的实际动手能力和独立思考的能力。五、参考文摘1于海生微型计算机控制技术M.清华大学出版社,2007概述、线性离散系统的数学描述和分析方法、的多种控制算法、过程输入输出通道、网络控制技术、控制软件设计、控制系统的计算机仿真以及计算机控制系统的设计与工程实现等内容。本书注重了先进性、系统性和实用性。增加了内模控制、模型预测控制等先进控制内容;加强了网络控制的内容;每章附有大量的实例,并增加大量MATLAB仿真等实践内容,以利于学生实践能力、创新能力的培养和锻炼。2于海生单片微机原理与接口技术.冶金工业出版社,2003主要内容包括嵌入式开发技术。单片机的内部指令、指令系统、内部功能部件的工作原理、应用编程及外部扩展技术。介绍mcs-51系列及增强型单片机的硬件编程结构、软件设计、中断系统、存储器配置,以及mcs-96系列单片机硬件、软件、pts、epa和人-机联系设备,新产品80c196kc的应用结构。3郑荣焕Proteus电子电路设计及仿真.电子工业出版社,2014Protues VSM组合了混合模式SPICE电路仿真、处理器模型、动态元器件库、虚拟仪器、处理器软仿真器、第三方编译器和调试器等组件,第一次使得在物理原型构建出来之前,在计算器上完成从原理图设计、电子测试仿真、处理器代码调试联系电路实时仿真设计、功能验证、出版成品成为可能。使用Pouteus能够帮助电子电路开发人员涉及更多知识,缩短开发周期,降低开发成本。4邹伯敏自动控制理论.机械工业出版社,2007超前、滞后、和滞后-超前3种对系统的校正方法,这些方法是基于校正装置的输出与其输入信号间相位的超前、滞后来区分的,并利用这些特性对不同的系统进行动态校正。这些校正装置所起的作用等价于时域中的比例-微分(PD)、比例-积分(PI)或它们的组合(PID)。PID控制器有着使用灵活,参数调节方便,性能稳定等优点,且已有定型的工业产品温室,因此它在控制工程中被广泛应用。5吴勤勤控制仪表及装置.化学工业出版社,2012本书以电子技术、微机原理、控制工程和计算机网络技术为基础,系统的阐述仪表与装置的结构、特点、功能和应用。本书全分为两篇:第一篇为模拟式控制仪表及装置,主要介绍模拟式控制器、变送器和转换器、运算器和执行器;第二篇为数字式控制仪器及装置,主要介绍可编程调节器、可编程控制器、智能变送器和阀门定位器、集散控制器系统和现场总线控制系统。六 附录6.1软件程序ORG 0000HAJMP MAINORG 001BHAJMP CT1ORG 0200HA1 EQU 50HMAIN: CLR A MOV 2AH,A MOV 2CH,AMOV 2DH,A MOV 2EH,A MOV A1,#50LOOP: ACALL SAMP ACALL FILTER ACALL TRASTACALL TESTKEY ACALL DISPLAY MOV A,50HADD A,#5MOV 52H,A SUBB A,#10 MOV 53H,A MOV A,51H CJNE A,52H,TPL CLR P3.4 CLR P3.2 AJMP LOOPTPL: JNC TPL1 CJNE A,53H,MTPL SETB P3.4 CLR P3.2 AJMP LOOPMTPL: JNC HAT SETB P3.2 SETB P3.4 AJMP LOOPTPL1: SETB P3.2 CLR P3.4 AJMP LOOPHAT: CLR P3.2ACALL PID MOV A,2FH CPL A INC A SETB F0 MOV TMOD,#50H SETB P3.4 MOV TL1,A MOV TH1,#0FFH CLR PT1 SETB EA SETB TR1 SETB ET1LOOP1: ACALL TESTKEYACALL DISPLAY JB F0,LOOP1 AJMP LOOPCT1: CLR TR1CLR F0 CLR P3.4 RETI;采样子程序;SAMP: MOV R1,#02CH MOV R0,#03MOV DPTR,#0FEFFHREAD: MOVX DPTR,AHERE: JB P3.3,HERE MOVX A,DPTRRLC A MOV 20H.0,CRLC AMOV 20H.1,CRLC A MOV 20H.2,C RLC A MOV 20H.3,CRLC A MOV 20H.4,CRLC A MOV 20H.5,CRLC AMOV 20H.6,CRLC AMOV 20H.7,CMOV A,20H MOV R1,A MOV P0,A INC R1DJNZ R0,READ RET;滤波子程序;FILTER: MOV A,2CH CJNE A,2DH,CMP1 AJMP CMP2CMP1: JNC CMP2XCH A,2DHXCH A,2CHCMP2: MOV A,2DHCJNE A,2EH,CMP3MOV 2AH,A RETCMP3: JC CMP4 MOV 2AH,ARETCMP4: MOV A,2EH CJNE A,2CH,CMP5 MOV 2AH,A RETCMP5: JC CMP6 XCH A,2CHCMP6: MOV 2AH,A RETTRAST: MOV A,2AH MOV B,#02H DIV AB ADD A,#25MOV 51H,A RETTRAST1: SUBB A,#25 MOV B,#02H MUL AB RET;按键选择子程序;TESTKEY: JBP3.0,MAIN2_2ACALLDELAY10JBP3.0,MAIN2_2JNBP3.0,$ MOVA,#1 ADDA,A1 CLRC CJNEA,#150,MAIN2_1_1 MOVA,#150 AJMPMAIN2_1_3MAIN2_1_1:JCMAIN2_1_3MAIN2_1_2:CLRCMOVA,#150MAIN2_1_3:MOVA1,A; ;上面这一段是+1度按键,按下+1度;MAIN2_2:JBP3.1,MAIN2_3ACALLDELAY10JBP3.1,MAIN2_3JNBP3.1,$MOVA,A1CJNEA,#50,MAIN2_2_1AJMP MAIN2_2_3MAIN2_2_1:JCMAIN2_2_2CLR CMOVB,#1SUBB A,BAJMP MAIN2_2_3MAIN2_2_2:MOVA,#50MAIN2_2_3:MOV A1,A;MAIN2_3: ACALL TRAST1MOV 32H,AMOV 31H,B RET;显示子程序;DISPLAY: MOV A,A1;将待显示的数存在70H到75H中 MOVB,#100 DIV AB ;显示子程序 MOV 73H,A ;百位在A MOVA,B;MOV B,#10 DIV AB MOV 72H,A ;十位在B MOV 71H,B ;个位在C MOV A,51H ;将的十六进制数转换成十进制 MOVB,#100 DIV AB ;显示子程序 MOV 76H,A ;百位在A MOVA,B MOV B,#10 DIV AB MOV 75H,A ;十位在B MOV 74H,B ;个位在CDISP1: MOV R1,#70H ;指向显示数据首址 MOV R5,#0FEH ;扫描控制字初值PLAY: MOV P1,#0FFH MOV A,R5 ;扫描字放入A MOV P2,A ;从P2口输出 MOV A,R1 ;取显示数据到A MOV DPTR,#TAB ;取段码表地址 MOVC A,A+DPTR ;查显示数据对应段码 MOV P1,A ;段码放入P1口 MOV A,R5 LCALL D1MS ;显示1MS INC R1 ;指向下一地址 MOV A,R5 ;扫描控制字放入A JNB ACC.6,ENDOUT ;ACC.5=0时一次显示结束 RL A ;A中数据循环左移