课程设计】烤箱温度控制系统进行设计_第1页
课程设计】烤箱温度控制系统进行设计_第2页
课程设计】烤箱温度控制系统进行设计_第3页
课程设计】烤箱温度控制系统进行设计_第4页
课程设计】烤箱温度控制系统进行设计_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

1、目 录摘要、序言11.组员详细分工21.1参数和设计要求2实现方法22.组员详细分工224.设计总体思路3设计步骤3原理分析45.实验结果56.源程序清单57.设计感想67.1李杰峰感想67.2韩明昆感想67.3陆明感想77.4吴婧楠感想8附录摘要 本文是对烤箱温度控制系统进行设计,在烤箱温度控制系统中,利用计算机对烤箱的继电器发出不同的信号,来控制继电器的开断,从而能够实现控制烤箱加热与否的控制。本系统采用了PID控制,是经典控制理论在实际中成功应用的典型实例。本次采用的计时芯片是8254,而信号输出芯片那么是8255,同时,利用8259芯片对计时、加热等过程进行中断的控制。而温度采集那么是

2、用了PT100感温电阻,将电信号送至A/D574中,利用A/D574的模数转换功能,将采集的温度模拟信号转换成计算机可以识别的电信号,进而在计算机内对这些电信号进行处理,经过PID控制算法来输出控制烤箱的电信号。关键词:PID控制算法,A/D574模数转换,计算机控制序言温度控制技术广泛应用于社会生活的各个领域,如家电、汽车、材料、电力电子等,传统的温度控制技术中最常见的是继电器调温,但由于继电器动作频繁,温度控制范围小,精度不高,可能会因触点不良而影响正常工作。最近几年快速开展的有PID 温控、模糊控制、神经网络 以及遗传算法在温度控制中的应用。烤箱是热处理生产中应用最广的加热设备,它电流通

3、过电热元件产生热量,借助辐射和对流的传递方式,将热量传递给所要加热的物品,使其加热到所要求的温度。本文设计的烤箱温度控制系统,是利用计算机对其温度进行控制,采用PID控制算法,以实现对烤箱温度控制,到达控制性能要求的指标。 1. 主要设计内容1.某烤箱的温度控制要求为:控制烤箱温度从室温上升到目标温度并一直保持在该目标温度,要求控制的精度达±3%,调节时间20秒。2.目标温度应可以通过键盘任意修改。3.完成温度检测、温度变松,温度显示LED和CRT曲线、温度控制、通过键盘设定上、下限温度报警值,温度超限报警声、光等功能。采用80X86计算机、JK实验系统装置实现限4人选做2. 组员详

4、细分工姓名职务负责的局部李杰峰组长控制算法编写,软件数据转换 韩明昆组员硬件电路焊接,调试,报告编写陆明组员发声程序、显示程序编写吴婧楠组员程序界面、提示语等编写 3. 详细操作说明1.进入程序后显示如下:Please set room temperature:输入当前室温,2位数字,以回车结束Please set desired temperature:期望到达的温度,3位数字内,以回车结束Please set time:输入期望保持预设温度的时间,分钟为单位,2位数字2.设置完之后屏幕上会显示如下文字:Please set room temperature:xxPlease set des

5、ired temperature:xxxPlease set time:xxPress R to RESET number. Press Q to EXIT to DOSCurrent Temperature:XXX C3. 此时屏幕上的温度值会不断刷新。到达预设温度后会发出3声短响,在预设温度范围内保持指定时间之后会发出4声长响并返回设定参数局部。系统控制框图如下图控制器烤箱温度采集我们采用的是传统的PID控制策略,其具体过程如下:一开始,给定一个输入信号,即期望温度,此时,PID控制器还没有起作用,此信号通过变送器送至继电器,继电器导通,使烤箱处于工作状态。这时,温度传感器就把烤箱内的温度

6、转变成电信号送至计算机中。计算机那么将此电信号与输入的期望温度进行比拟,通过控制器,根据不同的差值,选择不同的控制策略。由于计算机内的电信号都是脉冲信号,因此,可以调节脉冲信号的占空比来调节继电器的断开与导通的时间。期望值与测量值的差距大,就增大占空比,使一个周期内的加热时间增长,反之,那么减小占空比。采用上述的控制策略,即可以实现PID调节,不同的占空比,相当于PID调节中的比例系数改变,因此,利用计算机调节的烤箱温度控制系统是一个变比例系数的调节过程。因此,只要比例系数选定的适宜,都会到达控制指标的要求。4.1设计步骤首先确定主程序所要实现的目标,即:显示提示信息,输入设定温度值,输入温度

7、保持时间,实时刷新当前温度,比拟实时温度与设定温度差值并进行PID运算,重置参数和结束。然后,确定了主程序所要实现的功能以后,在相应的编写各个子程序模块。同时,要考虑在整个系统实现的过程中,所要运用到的芯片,好进行芯片的初始化。如8255,8259等温度/时间设定子程序,即,从键盘上输入一串数字,将其存放在指定的空间区域内,然后将键盘的ASCII码转换成BCD8421码,方便后续计算。即AD574的使用过程。首先,先将AD574初始化,给R/送负脉冲,启动转换。然后检测STS是否为1,不为1那么说名转换结束。读取高8为数据放入AH中,读取低4为放在屏蔽过低4为的AL中,然后将AX中的内容向右移

8、动4位,所得到的结果存放在指定单元中,为当前温度。将前一步骤采集到的当前温度转换成十六进制数,然后进行标度变换,比拟当前温度和输入的期望温度差,然后做出相应的标记,然后根据不同的标记跳到相应的加热子程序中。其根本原那么就是:实际温度和期望温度差距越大,加热子程序中,每个周期的高电平占空比就越大。在烤箱开始加热的时候,调用一次;待到达指定温度时,再调用一次;最后结束的时候,再调用一次,总共有3次。发声子程序首先是将发声的频率存放到存放器AX中,然后利用8254定时,再将频率数据写入42H口。然后读取61H口的控制字信息,其中控制信息为11B时,输出,即可发声;为00B时,输出,声音停止。首先初始

9、化屏幕大小,选择X,Y轴所在的位置,选定划线颜色,利用BIOS中断,即可在屏幕上绘制出X,Y轴。我们将实时保存的温度结果存放在指定的CTEMP中,调用CRT曲线绘制子程序时,直接读取当前温度值,然后设定起始位置,计算当前坐标位置,就可以在屏幕上描出此时的温度点。然后,将横坐标向右移动1,带下次读取时,再次在屏幕上描点,屡次反复,就形成了多个点组成的温度响应曲线。设计控制烤箱温度的系统,我们采用PID控制算法。利用计算机控制中的A/D转换器,将采集到的模拟信号转换成数字信号,然后送入计算机进行处理。在计算机中,我们编写了PID控制算法,将送入的电信号经过该算法,输出一个控制继电器开关的脉冲信号,

10、我们可以通过调节脉冲高电平的占空比,来控制一个信号周期内加热时间的长短。从而实现比例控制。又由于这个占空比是实时变化的,所以,这是一个变比例系数的P控制器。利用这个控制器,我们可以使烤箱内的温度保持在我们所设定的期望值。实验结果如下表所示:实验次数初始温度设定温度调节时间超调量误差1358025秒42.3%24010027秒23.3%36016029秒-21.5%45020040秒-63.5%温度变化过程可大致用如下曲线描述:温度T/°C300200100时间t/s10200 本次设计总体上还是比拟成功,根本上实现了任务要求。只有调节时间的,可能是冗长的程序,或者是电烤箱的功率问题,

11、又或者是自己的PID的参数设计不够完善,总之,不能到达要求的20秒以内,但是接近20秒,此为设计的瑕疵。见附录4作为我们团队的组长,需要确定适宜的电路,对电路进行调试,将变送器调至最适宜的范围。同时还要确定与硬件相关的软件主体思想。一个工程的成败,与组长的整体协调能力关系很大。这次的时间比拟紧张,而且之前没怎么做过过程控制类的题目,所以可以说是时间短、任务重。热敏电阻PT100之前接触过,但是没有和计算机连起来使用,也是一个新的挑战。这次设计我吸取的上次计算机硬件课程设计的教训,学会多利用子程序,而不是要把所有的问题都用一个主程序解决,却很少使用子程序。这样,不但别人读不懂自己的程序,就连自己

12、有时候都读不懂自己的程序。软件局部主要涉及到一些数据的转换和处理,例如BCD码转换成ASCII码、十六进制数与BCD码的相互转换等,虽然很久没用汇编语言编写程序,但是这些算法还是都记在心里,只要稍作熟悉就可以顺利将算法变成一个个子程序。其中,给我带来最大困扰的是PID控制器的设计。但是经过老师的讲解,我明白了,原来可以调节输出信号的占空比,控制继电器的开关时间,来调节PID调节器的比例系数,从而实现变比例系数的PID控制。这次课程设计感觉比以前进步的一点就是程序的模块化思想更加深刻。之前总也用程序段的方式插入的主程序中,而这次那么是尽量减少主程序的内容,将所有的处理局部都写成子程序,设计好入口

13、参数,就可以是整个程序思路清晰,一目了然。一个好的程序编写者并不是会把所有的模块都自己写出来,而是可以将自己搜索到的各种模块与自己的工程结合,设计好接口参数,到达事半功倍的效果。这次的程序就用了之前做过的一些设计的模块,如实时显示刷新模块,延时程序,发声子程序等。这些之前积累下来的珍贵资料大大加快了本次课程设计的速度。这次设计的缺乏是:最开始的一天几乎都浪费掉了,原因是太长时间没有复习汇编语言,感到很生疏,只有拿着课本和实验指导书一点点地找感觉,相信这个问题是大家都存在的,却也是可以解决的。再有类似的课程设计要提前复习即将用到的知识,防止在工作需要时才临时抱佛脚。 7.2韩明昆感想:本次计控课

14、程设计使我对计算机控制技术的相关知识有了新的理解.一来稳固了上课所学的计控知识,二来拓宽了我的视野,学到了许多新的东西。在课程设计开始的阶段,我用老师给的硬件连接图将各个部件焊在板子上,很久没有焊东西了,这次突然又焊起来又费了不少劲。通过以前学习的知识,我知道有的地方可以从反面连接到一起,这样可以省很多没有必要的线,也少了布线的烦恼。然后我们就按原理图上将各个部件一一焊好,焊好后用万用表测试了各个连接点,没有出现错误短路的地方,也就完成了前期工作。然后我们开始编制程序。由于我的编程能力有限,所以对于编程方面我做的很少。起初,我们觉得电烤箱的思路很简单,就是一个测试温度。看是否到达目标温度,然后

15、送1,送0就可以了。但实际编制的时候,才发现其实里面的问题也还是很复杂的。首先,要输入目标温度,但通过板子接AD574转化过来的是一个12位的二进制数,最大值FFF是4000多,这跟我们输入的三位数之间有个换算关系,经过我们计算,应该是三位数*13.6,但这时又不知道小数的乘法该怎么做,后来想到可以先乘136,然后再除以10,就可以得到相应的目标数据。然后还碰到了很多问题,都一一化解了。最后通过通力协作,我们按要求实现了根本功能,本次课程设计算是做完了。通过这次课程设计。使我了对计控知识的了解又有了新的认识。最大的收获就是通过团队合作,每人完成相应的程序模块,然后将各个模块合在一起,这是以后进

16、入社会,工作中会遇到的实际问题,这也算是增长了一次实践经验吧。团队合作是这次课程设计让我体会最深的,如果让一个人来完成这么庞大的程序,我估计没几个人做的出来。所以,以后一定要加强这方面的锻炼,还有一点体会就是编程这方面最重要的就是仔细,有时候一个标号弄错了,要费很大的劲去找,所以细心也非常重要。这也是大学最后一次团队合作的课程设计了,我们大家相处的也很融洽,总之这次课程设计让我收获颇丰。这次的课程设计我们小组总算是顺利地完成了。虽然只有短短一个星期,但让我真正见识到了什么是团队的力量。从接到此次课程设计任务开始,大家就分配好了各自的任务,并且经常聚在一起各抒己见地讨论各个方案的可行性,气氛那是

17、十分的热烈。在我们小组中也许有的同学能力强些,有些同学能力没那么强,分工时能力强的同学可能任务就重些,但是大家都没有任何的怨言,全力地专注于自己的那一局部任务,所以团结协作是我们小组能顺利完成此次课程设计的一项非常重要的保证,而这次设计也正好锻炼我们这一点,这也是非常珍贵的。我们这次是设计对烤箱温度控制系统,对于温度的控制系统,我们需要完成温度的采集,温度的控制,能通过键盘,显示接口实现恒温时间设置,系统初始参数设置,报警设置等功能,并能通过不同的声音提示恒温开始和结束时间。我们一起讨论,一起研究,经过几番努力,初步编出的程序,问题很多,也总找不到原因,然后参考书上的例题程序,修改了很多,有些

18、问题是子程序与主程序的连接没弄好,还是很多问题,然后仔细复习书上所学过的知识,对我们的程序再次发现问题,修改问题,后来经过屡次的修改最终完成了初步的可行性程序,也算一个进步。在调试过程中又遇到了烤箱失灵等各种客观问题,但最终在老师的协作以及我们自身的努力下,都将这些困难一一克服并得到了比拟理想的结果。在这次设计中,我主要负责的是显示及声音局部,就是程序刚开始的时候有关显示界面,刚开始的时候还是出现很多问题,显示程序的编写,在同学的帮助以及参考书上的一些程序后,初步完成了这段程序,然后经过组长的屡次修改,完成了这局部的编写。经过这个局部的编写,让自己明白了很多,课堂上学的东西远远不够,还是需要自

19、己课后的更多的付出和复习,才能让自己所学的东西学以致用,才能让书上的知识变成自己的,也才能让自己变得更加充实,学得更多。最后顺利地完成了课程设计,大家心情都很喜悦,虽然过程有点累,但是看到努力后的成果,还是很欣慰。总的来说,通过历时一个星期的课程设计,发现了自己的很多缺乏,以及自己知识的很多漏洞,看到了自己的实践经验还是比拟缺乏,理 论联系实际的能力还急需提高。经过这个课程设计,同时也证明一个团队的力量比一个人的力量大得多,完成一个复杂的问题效率也会高很多,我自己也从此次课程设计中学到了很多东西,实在是令我受益匪浅。婧楠感想:这次课程设计让我体会到了团队的温暖。由于我将要参加研究生入学考试,所

20、以精力大都放到复习考研上面去了。但是我的团队给了最大的包容和理解,让我负责了较为轻松的程序界面和提示语程序编写。这已经不是第一次团队合作做课程设计了,但是这次让我最为记忆犹新。本次课程设计我们小组做的是烤箱,我的主要工作是程序界面和提示语程序编写。通过此次课程设计,总的来说收获还是挺大的。我的工作是参与了局部子程序的编写,主要有用AD574检测温度的程序、加热程序分为100%加热、80%加热、50%加热、20%加热、恒温延时的编写。在编写程序之前我先复习了下硬件书,检测温度的程序主要就是AD转换的程序,先选通道,再启动转换并检测转换是否结束,结束后将得到的结果保存起来,在参考了硬件实验书上的程

21、序的情况下,程序很快就正确编完了。加热程序是通过8255的A0口输出1或0来实现的,如50%加热就是在前半周期时间内A0送1,后半周期内A0口送1。恒温延时程序的主要思想就是先设定一个标志,此标志的值等于设定的恒温时间以分为单位乘以60除以2恒温程序的周期,然后再设定另一个标志,初始值为0,接着在每次进入恒温程序时自加1,就可以通过判断是否等于第一个值来判断来判断延时是否完成。就在三四天的时间内,大家就把整个课程设计完成了,虽然大家都有点累,但更多的是兴奋。总的来说,这次课程设计历时一个星期,通过课程设计,发现自己的很多缺乏,自己知识的很多漏洞,看到了自己的实践经验还是比拟缺乏,理论联系实际的

22、能力还急需提高。经过这个课程设计,也可以证明一个团队的力量比一个人的力量大得多,也可以从中体会到,完成一个复杂的问题效率高很多,我自己也从中学到了很多以前懂的东西,这是实践与理论的结合,也为以后打下根底。附录Pt100PCPt100变送器电烤箱PCI总线8255AAD574JK实验板开始定时中断初始化8255初始化显示室温设置提示信息设置室温子程序显示温度设置提示信息设置室温度程序显示时间设置提示信息设置时间子程序定时结束否?N读温度子程序实时显示刷新子程序转换当前温度子程序比拟温度子程序根据温度选择加热占空比结束音乐子程序Y输入一个目标温度的三位数值,将其存入Stemp单元SI指向stemp

23、单元的第一个数设置循环次数CX=3将SI指向单元的数据转化为BCD码(即-30)SI+13次到否将BCD码存入DI指向的STEMPBCD单元中DI+1RET 返回 NY开始选择通道0延时给送负脉冲,启动转换检测STS是否为1读高8位,将结果存入AH读低4位,屏蔽低4位,将结果存入AL将AX右移4位并将结果存入CTEMP,即得到当前温度子程序结束是否3.4 温度比拟和标志位改变子程序开始将设定温度的BCD码转换为16进制将当前温度采样值除以斜率比拟当前温度和设定温度值,得到差值8?3?15?30?温度标志设为01温度标志设为03温度标志设为04温度标志设为02温度标志设为FF结束返回YYYY N

24、 N N N3.5加热子程序以占空比20%为例开始启动加热设置CX=2延时200msCX自减1判断CX是否为0关加热设置CX=8延时200msCX自减1判断CX是否为0子程序结束NYYN3.6 发声子程序读取61H端口的原控制信息D1D0=PB1PB0=11B,其他位不变直接控制发声返回设置发声频率,即16位计数初值,存入AX中压栈,将AX中的数据保护起来8254定时器2为方式3,先低后高写16位计数值弹栈 将AX中的数据取出将低八位计数值写入42H将高八位计数值写入42H返回读取61H端口的原控制信息D1D0=PB1PB0=00B 其他位不变直接控制闭音返回开始调用02号DOS中断显示空格指

25、针指向显缓区将BCD码转换为ASCII码依次调用02号DOS中断显示显缓区内容显示CR,将光标移动到显示区首位结束返回3.7屏幕实时显示子程序4. 程序源代码DATA SEGMENTAD574H EQU 200HAD574L EQU 201HAD574S EQU 205HKEEP_CS DW ?KEEP_IP DW ?COUNT_TIME DW 00H ;中断计数器SETTIME DB 4 DB 0 DB 4 DUP (?) SETTIMEBCD DW ?,?,? x_p dw 10SETROOM DB 4 DB 0 DB 4 DUP(?)SETROOMBCD DW ?,?,? STEMP D

26、B 4 DB 0 DB 4 DUP(?)STEMPBCD DW ?,?,? STEMP16 DW ?CTEMP DW ?CTEMP16 DW ?CTEMPBCD DB ?,?,?,27H,'C','$' CHAZHI DW ?DELAYLOGO DW ? TIMECOUNT DW 0 HEATFLAG DB ?MUSICFLAG DB 0 MSG1 DB 0AH,0DH,'Room temperature:','$' MSG2 DB 0AH,0DH,'Desired temperature:','$'

27、; MSG3 DB 0AH,0DH,'The time:','$' MSG4 DB 0AH,0DH,'Current Temperature:',0AH,0DH,'$' MSG5 DB 0AH,0DH,'Press R to RESET the temperature',0ah,0dh DB 'Press Q to EXIT','$' DATA ENDS;-STCK SEGMENT PARA STACK 'STACK' DB 256 DUP(0)STCK ENDS;-

28、CODE SEGMENTMAIN PROC FAR ASSUME CS:CODE,DS:DATA,SS:STCK START: PUSH DS MOV AX,0 PUSH AX MOV AX,DATA MOV DS,AX CLI ;中断向量的设置及8259初始化 MOV AL,1CH MOV AH,35H INT 21H MOV KEEP_CS,CS MOV KEEP_IP,BX MOV AL,1CH MOV AH,25H MOV DX,SEG TIMER MOV DS,DX MOV DX,OFFSET TIMER INT 21H MOV AX,DATA MOV DS,AX MOV AL,36

29、H OUT 43H,AL MOV AX,59660D OUT 40H,AL MOV AL,AH jmp p_1 start_1: jmp start p_1: OUT 40H,AL IN AL,21H AND AL,0FCH OUT 21H,AL ;-8255初始化- MOV DX,20BH MOV AL,80H OUT DX,AL call tt LEA DX,MSG1 MOV AH,09H INT 21H CALL SETROM LEA DX,MSG2 MOV AH,09H INT 21H CALL SETEMP LEA DX,MSG3 MOV AH,09H INT 21H CALL SE

30、TIME LEA DX,MSG5 MOV AH,09H INT 21H LEA DX,MSG4 mov ah,09h int 21hMAINAGAIN: MOV AH,01H INT 16H JZ GOON2 MOV AH,0 INT 16H CMP AL,'R' JZ START_1 CMP AL,'r' JZ START_1 CMP AL,'Q' JZ EXITMAIN_1 CMP AL,'q' JZ EXITMAIN_1 GOON2: CALL TRANSTIME LEA SI,TIMECOUNT MOV AL,SI MOV

31、 BL,AL LEA SI,DELAYLOGO jmp mm_1 start_2: jmp start mm_1: MOV AL,SI CMP AL,BL JBE ENDMUSIC CALL TRANSCTEMPCALL DISP call point jmp pp_1 exitmain_1:jmp exitmain pp_1: CALL READTEMPCALL CMPTEMP MOV AH,01H INT 16H JZ GOON1 MOV AH,0 INT 16H CMP AL,'R' JZ START_2 CMP AL,'r' JZ START_2 CMP

32、 AL,'Q' JZ EXITMAIN CMP AL,'q' JZ EXITMAIN GOON1: CMP HEATFLAG,01H JZ H100 CMP HEATFLAG,02H JZ H80 CMP HEATFLAG,03H JZ H50 CMP HEATFLAG,04H JZ H20 CMP HEATFLAG,0FFH JZ HOKH100:CALL HEAT100JMP MAINAGAINH80:CALL HEAT80JMP MAINAGAINH50:CALL HEAT50JMP MAINAGAINH20:CALL HEAT20JMP MAINAGAI

33、NHOK:CALL HEATOKJMP MAINAGAINENDMUSIC: MOV AL,00H MOV DX,20AH OUT DX,AL ;. MOV CX,4D MUSICEND1:PUSH CXCALL SPEAKONMOV CX,5 SP4: CALL DELAY_1 LOOP SP4NOPNOP CALL SPEAKOFF MOV CX,5 SP5:CALL DELAY_1 LOOP SP5POP CXLOOP MUSICEND1 JMP STARTEXITMAIN: RET MAIN ENDP;- SETEMP PROC NEAR LEA DX,STEMP MOV AH,0AH

34、 INT 21H LEA SI,STEMP ADD SI,2 LEA DI,STEMPBCD MOV CX,3 TRANSBCD:MOV AL,SI XOR AH,AH SUB AX,30H MOV DI,AX INC SIINC DIINC DILOOP TRANSBCDRETSETEMP ENDP;-SET TIME- SETIME PROC NEAR LEA DX,SETTIME MOV AH,0AH INT 21H LEA SI,SETTIME ADD SI,2 LEA DI,SETTIMEBCD MOV CX,3 TRANSBCD2:MOV AL,SI XOR AH,AH SUB A

35、X,30H MOV DI,AX INC SIINC DIINC DILOOP TRANSBCD2RETSETIME ENDP;-SET ROOM TEMPERATURE- SETROM PROC NEAR LEA DX,SETROOM MOV AH,0AH INT 21H LEA SI,SETROOM ADD SI,2 LEA DI,SETROOMBCD MOV CX,3 TRANSBCD3:MOV AL,SI XOR AH,AH SUB AX,30H MOV DI,AX INC SIINC DIINC DILOOP TRANSBCD3RETSETROM ENDP;-读取当前温度-READTE

36、MP PROC NEAR MOV DX,AD574S MOV AL,40H OUT DX,AL MOV CX,100H LP1:LOOP LP1 MOV AL,00H OUT DX,AL MOV CX,10 LP2:LOOP LP2 MOV AL,40H OUT DX,AL MOV DX,AD574L LP3: IN AL,DX TEST AL,01H JNZ LP3 MOV DX,AD574H IN AL,DX MOV AH,AL INC DX IN AL,DX AND AL,0F0H ROR AX,4 MOV CTEMP,AX RETREADTEMP ENDP;-比拟当前温度和设定温度子程

37、序-CMPTEMP PROC NEAR;-BCD->16- LEA SI,STEMPBCD MOV AX,0000H ADD AX,SI MOV BX,0AH MUL BX ADD AX,SI+2 MUL BX ADD AX,SI+4 MOV STEMP16,AX ;-CTEMP TRANS- MOV AX,CTEMP MOV BX,0AH MUL BX MOV BX,88H DIV BX MOV CTEMP16,AX ;-COMPARE- MOV BX,STEMP16 SUB BX,AX MOV CHAZHI,BX ;-根据差值设定加热标志- CMP CHAZHI,50D JG SET

38、FLAG1 CMP CHAZHI,30D JG SETFLAG2 CMP CHAZHI,15D JG SETFLAG3 CMP CHAZHI,4D JG SETFLAG4 JMP SETFLAGOK SETFLAG1: MOV HEATFLAG,01H JMP CMPEXIT SETFLAG2: MOV HEATFLAG,02H JMP CMPEXIT SETFLAG3: MOV HEATFLAG,03H JMP CMPEXIT SETFLAG4: MOV HEATFLAG,04H JMP CMPEXIT SETFLAGOK: MOV HEATFLAG,0FFH CMPEXIT: RETCMP

39、TEMP ENDP ;-加热子程序-HEAT100 PROC NEAR MOV DX,20AH MOV AL,01H OUT DX,AL MOV CX,10 NEXT1:CALL DELAY_1LOOP NEXT1 RETHEAT100 ENDPHEAT80 PROC NEAR MOV DX,20AH MOV AL,01H OUT DX,AL MOV CX,8 NEXT2:CALL DELAY_1LOOP NEXT2 MOV AL,00H OUT DX,AL MOV CX,2 NEXT3: CALL DELAY_1LOOP NEXT3RETHEAT80 ENDPHEAT50 PROC NEAR

40、 MOV DX,20AH MOV AL,01H OUT DX,AL MOV CX,5 NEXT4: CALL DELAY_1LOOP NEXT4 MOV AL,00H OUT DX,AL MOV CX,5 NEXT5: CALL DELAY_1LOOP NEXT5RETHEAT50 ENDPHEAT20 PROC NEAR MOV DX,20AH MOV AL,01H OUT DX,AL MOV CX,2 NEXT6: CALL DELAY_1LOOP NEXT6 MOV AL,00H OUT DX,AL MOV CX,8 NEXT7: CALL DELAY_1LOOP NEXT7RETHEA

41、T20 ENDPHEATOK PROC NEAR LEA SI,TIMECOUNT MOV AX,SI INC AX MOV SI,AX CMP MUSICFLAG,01H JZ SPK1 MOV MUSICFLAG,01H CALL SPEAKER MOV CX,3D SP1:CALL SPEAKON PUSH CX MOV CX,3D SP2:CALL DELAY_1 LOOP SP2NOPNOP MOV CX,3D CALL SPEAKOFF SP3: CALL DELAY_1LOOP SP3POP CX LOOP SP1 SPK1: MOV DX,20AH MOV AL,00H OUT

42、 DX,AL MOV CX,10 NEXT8: CALL DELAY_1 LOOP NEXT8 RET HEATOK ENDPSPEAKER PROC NEAR MOV AX,1208D PUSH AX MOV AL,0B6H OUT 43H,AL POP AX OUT 42H,AL MOV AL,AH OUT 42H,AL RETSPEAKER ENDPSPEAKON PROC NEAR PUSH AX IN AL,61H OR AL,03H OUT 61H,AL POP AX RETSPEAKON ENDPSPEAKOFF PROC NEAR PUSH AX IN AL,61H AND AL,0FCH OUT 61H,AL POP AX RETSPEAKOFF ENDP;-延时程序-DELAY_1 proc near MOV COUNT_TIME,0D STIDL1: CMP COUNT_TIME,1D JL DL1CLIRETDELAY_1 endp ;-显示-DISP PROC NEAR PUSH BX PUSH SI PUSH DI L1: MOV DL,20H MOV AH,02H INT 21H LEA SI,CTEMPBCD MOV BL,SI ADD BL,30H MOV DL,BL MOV AH,02

温馨提示

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

评论

0/150

提交评论