收藏 分销(赏)

课程设计烤箱.doc

上传人:xrp****65 文档编号:7221945 上传时间:2024-12-28 格式:DOC 页数:26 大小:156.50KB 下载积分:10 金币
下载 相关 举报
课程设计烤箱.doc_第1页
第1页 / 共26页
课程设计烤箱.doc_第2页
第2页 / 共26页


点击查看更多>>
资源描述
李杰峰、韩明昆、陆明、吴婧楠--烤箱温度控制系统的设计 目 录 摘要、序言 1 1.组员详细分工 2 1.1已知参数和设计要求 2 1.2实现方法 2 2.组员详细分工 2 3.详细操作说明 2 4.设计总体思路 3 4.1设计步骤 3 4.2原理分析 4 5.实验结果 5 6.源程序清单 5 7.设计感想 6 7.1李杰峰感想 6 7.2韩明昆感想 6 7.3陆明感想 7 7.4吴婧楠感想 8 附录 7 摘要 本文是对烤箱温度控制系统进行设计,在烤箱温度控制系统中,利用计算机对烤箱的继电器发出不同的信号,来控制继电器的开断,从而能够实现控制烤箱加热与否的控制。本系统采用了PID控制,是经典控制理论在实际中成功应用的典型实例。本次采用的计时芯片是8254,而信号输出芯片则是8255,同时,利用8259芯片对计时、加热等过程进行中断的控制。而温度采集则是用了PT100感温电阻,将电信号送至A/D574中,利用A/D574的模数转换功能,将采集的温度模拟信号转换成计算机可以识别的电信号,进而在计算机内对这些电信号进行处理,经过PID控制算法来输出控制烤箱的电信号。 关键词:PID控制算法,A/D574模数转换,计算机控制 序言 温度控制技术广泛应用于社会生活的各个领域,如家电、汽车、材料、电力电子等,传统的温度控制技术中最常见的是继电器调温,但由于继电器动作频繁,温度控制范围小,精度不高,可能会因触点不良而影响正常工作。最近几年快速发展的有PID 温控、模糊控制、神经网络 以及遗传算法在温度控制中的应用。烤箱是热处理生产中应用最广的加热设备,它电流通过电热元件产生热量,借助辐射和对流的传递方式,将热量传递给所要加热的物品,使其加热到所要求的温度。本文设计的烤箱温度控制系统,是利用计算机对其温度进行控制,采用PID控制算法,以实现对烤箱温度控制,达到控制性能要求的指标。 1. 主要设计内容 1.1已知参数和设计要求 1.某烤箱的温度控制要求为:控制烤箱温度从室温上升到目标温度并一直保持在该目标温度,要求控制的精度达±3%,调节时间≤20秒。 2.目标温度应可以通过键盘任意修改。 3.完成温度检测、温度变松,温度显示(LED和CRT曲线)、温度控制、通过键盘设定上、下限温度报警值,温度超限报警(声、光)等功能。 1.2实现方法 采用80X86计算机、JK实验系统装置实现(限≤4人选做) 2. 组员详细分工 姓名 职务 负责的部分 李杰峰 组长 控制算法编写,软件数据转换 韩明昆 组员 硬件电路焊接,调试,报告编写 陆明 组员 发声程序、显示程序编写 吴婧楠 组员 程序界面、提示语等编写 3. 详细操作说明 1.进入程序后显示如下: Please set room temperature:(输入当前室温,2位数字,以回车结束) Please set desired temperature:(期望达到的温度,3位数字内,以回车结束) Please set time:(输入期望保持预设温度的时间,分钟为单位,2位数字) 2.设置完之后屏幕上会显示如下文字: Please set room temperature:xx Please set desired temperature:xxx Please set time:xx Press R to RESET number. Press Q to EXIT to DOS Current Temperature: XXX C 3. 此时屏幕上的温度值会不断刷新。达到预设温度后会发出3声短响,在预设温度范围内保持指定时间之后会发出4声长响并返回设定参数部分。 4.设计总体思路 系统控制框图如图所示 控制器 烤箱 温度采集 我们采用的是传统的PID控制策略,其具体过程如下: 一开始,给定一个输入信号,即期望温度,此时,PID控制器还没有起作用,此信号通过变送器送至继电器,继电器导通,使烤箱处于工作状态。这时,温度传感器就把烤箱内的温度转变成电信号送至计算机中。计算机则将此电信号与输入的期望温度进行比较,通过控制器,根据不同的差值,选择不同的控制策略。由于计算机内的电信号都是脉冲信号,因此,可以调节脉冲信号的占空比来调节继电器的断开与导通的时间。期望值与测量值的差距大,就增大占空比,使一个周期内的加热时间增长,反之,则减小占空比。 采用上述的控制策略,即可以实现PID调节,不同的占空比,相当于PID调节中的比例系数改变,因此,利用计算机调节的烤箱温度控制系统是一个变比例系数的调节过程。因此,只要比例系数选定的合适,都会达到控制指标的要求。 4.1设计步骤 4.1.1主程序的设计 首先确定主程序所要实现的目标,即:显示提示信息,输入设定温度值,输入温度保持时间,实时刷新当前温度,比较实时温度与设定温度差值并进行PID运算,重置参数和结束。 然后,确定了主程序所要实现的功能以后,在相应的编写各个子程序模块。同时,要考虑在整个系统实现的过程中,所要运用到的芯片,好进行芯片的初始化。如8255,8259等 4.1.2温度/时间设定子程序 温度/时间设定子程序,即,从键盘上输入一串数字,将其存放在指定的空间区域内,然后将键盘的ASCII码转换成BCD(8421)码,方便后续计算。 4.1.3读取当前温度子程序 即AD574的使用过程。首先,先将AD574初始化,给R/送负脉冲,启动转换。然后检测STS是否为1,不为1则说名转换结束。读取高8为数据放入AH中,读取低4为放在屏蔽过低4为的AL中,然后将AX中的内容向右移动4位,所得到的结果存放在指定单元中,为当前温度。 4.1.4温度比较以及加热子程序 将前一步骤采集到的当前温度转换成十六进制数,然后进行标度变换,比较当前温度和输入的期望温度差,然后做出相应的标记,然后根据不同的标记跳到相应的加热子程序中。其基本原则就是:实际温度和期望温度差距越大,加热子程序中,每个周期的高电平占空比就越大。 4.1.5发声子程序 在烤箱开始加热的时候,调用一次;待到达指定温度时,再调用一次;最后结束的时候,再调用一次,总共有3次。发声子程序首先是将发声的频率存放到寄存器AX中,然后利用8254定时,再将频率数据写入42H口。然后读取61H口的控制字信息,其中控制信息为11B时,输出,即可发声;为00B时,输出,声音停止。 4.1.6绘制坐标轴子程序 首先初始化屏幕大小,选择X,Y轴所在的位置,选定划线颜色,利用BIOS中断,即可在屏幕上绘制出X,Y轴。 4.1.7CRT曲线绘制子程序 我们将实时保存的温度结果存放在指定的CTEMP中,调用CRT曲线绘制子程序时,直接读取当前温度值,然后设定起始位置,计算当前坐标位置,就可以在屏幕上描出此时的温度点。然后,将横坐标向右移动1,带下次读取时,再次在屏幕上描点,多次反复,就形成了多个点组成的温度响应曲线。 4.2原理分析 设计控制烤箱温度的系统,我们采用PID控制算法。利用计算机控制中的A/D转换器,将采集到的模拟信号转换成数字信号,然后送入计算机进行处理。在计算机中,我们编写了PID控制算法,将送入的电信号经过该算法,输出一个控制继电器开关的脉冲信号,我们可以通过调节脉冲高电平的占空比,来控制一个信号周期内加热时间的长短。从而实现比例控制。又由于这个占空比是实时变化的,所以,这是一个变比例系数的P控制器。利用这个控制器,我们可以使烤箱内的温度保持在我们所设定的期望值。 5.实验结果 实验结果如下表所示: 实验次数 初始温度 设定温度 调节时间 超调量 误差 1 35 80 25秒 4℃ 2.3% 2 40 100 27秒 2℃ 3.3% 3 60 160 29秒 -2℃ 1.5% 4 50 200 40秒 -6℃ 3.5% 温度变化过程可大致用如下曲线描述: 温度T/°C 300 200 100 时间t/s 10 20 0 本次设计总体上还是比较成功,基本上实现了任务要求。只有调节时间的,可能是冗长的程序,或者是电烤箱的功率问题,又或者是自己的PID的参数设计不够完善,总之,不能达到要求的20秒以内,但是接近20秒,此为设计的瑕疵。 6.原程序清单 见附录4 7.设计感想 7.1李杰峰感想 作为我们团队的组长,需要确定合适的电路,对电路进行调试,将变送器调至最合适的范围。同时还要确定与硬件相关的软件主体思想。一个项目的成败,与组长的整体协调能力关系很大。 这次的时间比较紧张,而且之前没怎么做过过程控制类的题目,所以可以说是时间短、任务重。热敏电阻PT100之前接触过,但是没有和计算机连起来使用,也是一个新的挑战。 这次设计我吸取的上次计算机硬件课程设计的教训,学会多利用子程序,而不是要把所有的问题都用一个主程序解决,却很少使用子程序。这样,不但别人读不懂自己的程序,就连自己有时候都读不懂自己的程序。 软件部分主要涉及到一些数据的转换和处理,例如BCD码转换成ASCII码、十六进制数与BCD码的相互转换等,虽然很久没用汇编语言编写程序,但是这些算法还是都记在心里,只要稍作熟悉就可以顺利将算法变成一个个子程序。其中,给我带来最大困扰的是PID控制器的设计。但是经过老师的讲解,我明白了,原来可以调节输出信号的占空比,控制继电器的开关时间,来调节PID调节器的比例系数,从而实现变比例系数的PID控制。 这次课程设计感觉比以前进步的一点就是程序的模块化思想更加深刻。之前总也用程序段的方式插入的主程序中,而这次则是尽量减少主程序的内容,将所有的处理部分都写成子程序,设计好入口参数,就可以是整个程序思路清晰,一目了然。 一个好的程序编写者并不是会把所有的模块都自己写出来,而是可以将自己搜索到的各种模块与自己的项目结合,设计好接口参数,达到事半功倍的效果。这次的程序就用了之前做过的一些设计的模块,如实时显示刷新模块,延时程序,发声子程序等。这些之前积累下来的宝贵资料大大加快了本次课程设计的速度。 这次设计的不足是:最开始的一天几乎都浪费掉了,原因是太长时间没有复习汇编语言,感到很生疏,只有拿着课本和实验指导书一点点地找感觉,相信这个问题是大家都存在的,却也是可以解决的。再有类似的课程设计要提前复习即将用到的知识,避免在工作需要时才临时抱佛脚。 7.2韩明昆感想: 本次计控课程设计使我对计算机控制技术的相关知识有了新的理解.一来巩固了上课所学的计控知识,二来拓宽了我的视野,学到了许多新的东西。 在课程设计开始的阶段,我用老师给的硬件连接图将各个部件焊在板子上,很久没有焊东西了,这次忽然又焊起来又费了不少劲。通过以前学习的知识,我知道有的地方可以从背面连接到一起,这样可以省很多没有必要的线,也少了布线的烦恼。然后我们就按原理图上将各个部件一一焊好,焊好后用万用表测试了各个连接点,没有出现错误短路的地方,也就完成了前期工作。 然后我们开始编制程序。由于我的编程能力有限,所以对于编程方面我做的很少。起初,我们觉得电烤箱的思路很简单,就是一个测试温度。看是否达到目标温度,然后送1,送0就可以了。但实际编制的时候,才发现其实里面的问题也还是很复杂的。首先,要输入目标温度,但通过板子接AD574转化过来的是一个12位的二进制数,最大值FFF是4000多,这跟我们输入的三位数之间有个换算关系,经过我们计算,应该是三位数*13.6,但这时又不知道小数的乘法该怎么做,后来想到可以先乘136,然后再除以10,就可以得到相应的目标数据。然后还碰到了很多问题,都一一化解了。 最后通过通力协作,我们按要求实现了基本功能,本次课程设计算是做完了。通过这次课程设计。使我了对计控知识的了解又有了新的认识。最大的收获就是通过团队合作,每人完成相应的程序模块,然后将各个模块合在一起,这是以后进入社会,工作中会遇到的实际问题,这也算是增长了一次实践经验吧。团队合作是这次课程设计让我体会最深的,如果让一个人来完成这么庞大的程序,我估计没几个人做的出来。所以,以后一定要加强这方面的锻炼,还有一点体会就是编程这方面最重要的就是仔细,有时候一个标号弄错了,要费很大的劲去找,所以细心也非常重要。这也是大学最后一次团队合作的课程设计了,我们大家相处的也很融洽,总之这次课程设计让我收获颇丰。 7.3陆明感想 这次的课程设计我们小组总算是顺利地完成了。虽然只有短短一个星期,但让我真正见识到了什么是团队的力量。从接到此次课程设计任务开始,大家就分配好了各自的任务,并且经常聚在一起各抒己见地讨论各个方案的可行性,气氛那是十分的热烈。在我们小组中也许有的同学能力强些,有些同学能力没那么强,分工时能力强的同学可能任务就重些,但是大家都没有任何的怨言,全力地专注于自己的那一部分任务,所以团结协作是我们小组能顺利完成此次课程设计的一项非常重要的保证,而这次设计也正好锻炼我们这一点,这也是非常宝贵的。 我们这次是设计对烤箱温度控制系统,对于温度的控制系统,我们需要完成温度的采集,温度的控制,能通过键盘,显示接口实现恒温时间设置,系统初始参数设置,报警设置等功能,并能通过不同的声音提示恒温开始和结束时间。我们一起讨论,一起研究,经过几番努力,初步编出的程序,问题很多,也总找不到原因,然后参考书上的例题程序,修改了很多,有些问题是子程序与主程序的连接没弄好,还是很多问题,然后仔细复习书上所学过的知识,对我们的程序再次发现问题,修改问题,后来经过多次的修改最终完成了初步的可行性程序,也算一个进步。在调试过程中又遇到了烤箱失灵等各种客观问题,但最终在老师的协作以及我们自身的努力下,都将这些困难一一克服并得到了比较理想的结果。 在这次设计中,我主要负责的是显示及声音部分,就是程序刚开始的时候有关显示界面,刚开始的时候还是出现很多问题,显示程序的编写,在同学的帮助以及参考书上的一些程序后,初步完成了这段程序,然后经过组长的多次修改,完成了这部分的编写。经过这个部分的编写,让自己明白了很多,课堂上学的东西远远不够,还是需要自己课后的更多的付出和复习,才能让自己所学的东西学以致用,才能让书上的知识变成自己的,也才能让自己变得更加充实,学得更多。 最后顺利地完成了课程设计,大家心情都很喜悦,虽然过程有点累,但是看到努力后的成果,还是很欣慰。 总的来说,通过历时一个星期的课程设计,发现了自己的很多不足,以及自己知识的很多漏洞,看到了自己的实践经验还是比较缺乏,理 论联系实际的能力还急需提高。经过这个课程设计,同时也证明一个团队的力量比一个人的力量大得多,完成一个复杂的问题效率也会高很多,我自己也从此次课程设计中学到了很多东西,实在是令我受益匪浅。 7.4吴婧楠感想: 这次课程设计让我体会到了团队的温暖。由于我将要参加研究生入学考试,所以精力大都放到复习考研上面去了。但是我的团队给了最大的包容和理解,让我负责了较为轻松的程序界面和提示语程序编写。这已经不是第一次团队合作做课程设计了,但是这次让我最为记忆犹新。 本次课程设计我们小组做的是烤箱,我的主要工作是程序界面和提示语程序编写。通过此次课程设计,总的来说收获还是挺大的。 我的工作是参与了部分子程序的编写,主要有用AD574检测温度的程序、加热程序(分为100%加热、80%加热、50%加热、20%加热)、恒温延时的编写。 在编写程序之前我先复习了下硬件书,检测温度的程序主要就是AD转换的程序,先选通道,再启动转换并检测转换是否结束,结束后将得到的结果保存起来,在参考了硬件实验书上的程序的情况下,程序很快就正确编完了。加热程序是通过8255的A0口输出1或0来实现的,如50%加热就是在前半周期时间内A0送1,后半周期内A0口送1。恒温延时程序的主要思想就是先设定一个标志,此标志的值等于设定的恒温时间(以分为单位)乘以60除以2(恒温程序的周期),然后再设定另一个标志,初始值为0,接着在每次进入恒温程序时自加1,就可以通过判断是否等于第一个值来判断来判断延时是否完成。 就在三四天的时间内,大家就把整个课程设计完成了,虽然大家都有点累,但更多的是兴奋。 总的来说,这次课程设计历时一个星期,通过课程设计,发现自己的很多不足,自己知识的很多漏洞,看到了自己的实践经验还是比较缺乏,理论联系实际的能力还急需提高。经过这个课程设计,也可以证明一个团队的力量比一个人的力量大得多,也可以从中体会到,完成一个复杂的问题效率高很多,我自己也从中学到了很多以前懂的东西,这是实践与理论的结合,也为以后打下基础。 附录 1.系统框图 Pt100 PC Pt100变送器 电烤箱 PCI总线 8255A AD574 JK实验板 2.电路原理图 3.各模块程序流程图 开始 定时中断初始化 8255初始化 显示室温设置提示信息 设置室温子程序 显示温度设置提示信息 设置室温度程序 显示时间设置提示信息 设置时间子程序 定时结束否? N 读温度子程序 实时显示刷新子程序 转换当前温度子程序 比较温度子程序 根据温度选择加热占空比 结束音乐子程序 Y 3.1主程序流程图 3.2设定温度/时间/室温流程图 输入一个目标温度的三位数值,将其存入Stemp单元 SI指向stemp单元的第一个数 设置循环次数CX=3 将SI指向单元的数据转化为BCD码(即-30) SI+1 3次到否 将BCD码存入DI指向的STEMPBCD单元中 DI+1 RET 返回 N Y 3.3读取当前温度子程序 开始 选择通道0 延时 给送负脉冲,启动转换 检测STS是否为1 读高8位,将结果存入AH 读低4位,屏蔽低4位,将结果存入AL 将AX右移4位并将结果存入CTEMP,即得到当前温度 子程序结束 是 否 3.4 温度比较和标志位改变子程序 开始 将设定温度的BCD码转换为16进制 将当前温度采样值除以斜率 比较当前温度和设定温度值,得到差值 △8? △>3? △>15? △>30? 温度标志设为01 温度标志设为03 温度标志设为04 温度标志设为02 温度标志设为FF 结束返回 Y Y Y Y N N N N 3.5加热子程序(以占空比20%为例) 开始 启动加热 设置CX=2 延时200ms CX自减1 判断CX是否为0 关加热 设置CX=8 延时200ms CX自减1 判断CX是否为0 子程序结束 N Y Y N 3.6 发声子程序 读取61H端口的原控制信息 D1D0=PB1PB0=11B,其他位不变 直接控制发声 返回 设置发声频率,即16位计数初值,存入AX中 压栈,将AX中的数据保护起来 8254定时器2为方式3,先低后高写16位计数值 弹栈 将AX中的数据取出 将低八位计数值写入42H 将高八位计数值写入42H 返回 读取61H端口的原控制信息 D1D0=PB1PB0=00B 其他位不变 直接控制闭音 返回 开始 调用02号DOS中断显示空格 指针指向显缓区 将BCD码转换为ASCII码 依次调用02号DOS中断显示显缓区内容 显示CR,将光标移动到显示区首位 结束返回 3.7屏幕实时显示子程序 4. 程序源代码 DATA SEGMENT AD574H EQU 200H AD574L EQU 201H AD574S EQU 205H KEEP_CS DW ? KEEP_IP DW ? COUNT_TIME DW 00H ;中断计数器 SETTIME DB 4 DB 0 DB 4 DUP (?) SETTIMEBCD DW ?,?,? x_p dw 10 SETROOM DB 4 DB 0 DB 4 DUP(?) SETROOMBCD DW ?,?,? STEMP DB 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:','$' 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 ;------------------------------------------------CODE SEGMENT MAIN 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,36H 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 SETIME LEA DX,MSG5 MOV AH,09H INT 21H LEA DX,MSG4 mov ah,09h int 21h MAINAGAIN: 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 BL,AL LEA SI,DELAYLOGO jmp mm_1 start_2: jmp start mm_1: MOV AL,[SI] CMP AL,BL JBE ENDMUSIC CALL TRANSCTEMP CALL DISP call point jmp pp_1 exitmain_1:jmp exitmain pp_1: CALL READTEMP CALL 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 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 HOK H100: CALL HEAT100 JMP MAINAGAIN H80: CALL HEAT80 JMP MAINAGAIN H50: CALL HEAT50 JMP MAINAGAIN H20: CALL HEAT20 JMP MAINAGAIN HOK: CALL HEATOK JMP MAINAGAIN ENDMUSIC: MOV AL,00H MOV DX,20AH OUT DX,AL ;............................................ MOV CX,4D MUSICEND1: PUSH CX CALL SPEAKON MOV CX,5 SP4: CALL DELAY_1 LOOP SP4 NOP NOP CALL SPEAKOFF MOV CX,5 SP5: CALL DELAY_1 LOOP SP5 POP CX LOOP MUSICEND1 JMP START EXITMAIN: RET MAIN ENDP ;------------------------------ SETEMP PROC NEAR LEA DX,STEMP MOV AH,0AH 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 SI INC DI INC DI LOOP TRANSBCD RET SETEMP 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 AX,30H MOV [DI],AX INC SI INC DI INC DI LOOP TRANSBCD2 RET SETIME 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 SI INC DI INC DI LOOP TRANSBCD3 RET SETROM ENDP ;---------读取当前温度--------- READTEMP 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 RET READTEMP ENDP ;---------比较当前温度和设定温度子程序---------- 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 SETFLAG1 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,0
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 百科休闲 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服