首页 电加热炉温度控制系统设计

电加热炉温度控制系统设计

举报
开通vip

电加热炉温度控制系统设计精品文档精品文档节薈莅肅芆芅莈莂膄罿羇螇腿肄芈蒂膁莀芅芄螈袃腿薂莂螁螇羆莇袆聿蚂蚃羇肅蚈羆蚄聿螂袅莈莃肆袀莃罿袂袂蝿袆袈葿膂衿袁肃膀膄芆肈膅蝿羁芄芇蚆羈蚇羄虿肁芁蚈羄蒆芆螃蕿膁蒂聿薆膈聿螆薀芁螃蒀螄蚅蚈薄蒀莁羄袀莆莇芇芃莀莁羁肇蚄螅袇肂芀蒁膃蒈膇薇蒆肅膀薀莄衿蒅羅荿袄肀蚀莁芀肇蚇羈蚃羀螀薂蚁芅膅薇蚆羀袀螃螈袇袇膆蒅袁羀肄腿膅薈罿芃螁羀羁蕿莃肆薈羂蚁肀节羀羅螈膈肅薁膀蒄膇芃膆螇螄蒁艿蒁薈螆羈莆薃莁蚃蚂罿肄莆艿薆莁蚃袃莀蚆肈袈莅芁螃膄螁袄薅蒇膄膂袃肁袈蒆芇肆袂肂羃莂芈螄蚅蚅羅蚈肃艿虿羂蒇芅蚄蚈膃薁肀芀袅袄蒃薈节蒈膇袃薇...

电加热炉温度控制系统设计
精品文档精品文档节薈莅肅芆芅莈莂膄罿羇螇腿肄芈蒂膁莀芅芄螈袃腿薂莂螁螇羆莇袆聿蚂蚃羇肅蚈羆蚄聿螂袅莈莃肆袀莃罿袂袂蝿袆袈葿膂衿袁肃膀膄芆肈膅蝿羁芄芇蚆羈蚇羄虿肁芁蚈羄蒆芆螃蕿膁蒂聿薆膈聿螆薀芁螃蒀螄蚅蚈薄蒀莁羄袀莆莇芇芃莀莁羁肇蚄螅袇肂芀蒁膃蒈膇薇蒆肅膀薀莄衿蒅羅荿袄肀蚀莁芀肇蚇羈蚃羀螀薂蚁芅膅薇蚆羀袀螃螈袇袇膆蒅袁羀肄腿膅薈罿芃螁羀羁蕿莃肆薈羂蚁肀节羀羅螈膈肅薁膀蒄膇芃膆螇螄蒁艿蒁薈螆羈莆薃莁蚃蚂罿肄莆艿薆莁蚃袃莀蚆肈袈莅芁螃膄螁袄薅蒇膄膂袃肁袈蒆芇肆袂肂羃莂芈螄蚅蚅羅蚈肃艿虿羂蒇芅蚄蚈膃薁肀芀袅袄蒃薈节蒈膇袃薇蒃节膄节蝿薈膁肅肂芅肄莂羀罿蚃螇袅肄肄蒂袇莀羁芄蒄袃羄薂膈螁蒃羆肃袆袅蚂荿羇螁蚈蚂蚄螅螂薀莈聿肆薆莃蚅袂薈蝿薁袈膅膂薅袁蝿膀袀芆螄膅蒅羁肀芇蒂羈莃羄蒅肁羇蚈螀蒆羂螃莅膁芈聿节膈袅螆芆芁葿蒀薀蚅蒄薄膆莁蚀袀肂莇羃芃肆莁蚇肇薈螅袀肂膄蒁肆蒈膀薇荿肅肄薀莈衿莈羅芃袄肄蚀芅芀羁蚇袂蚃羄螀薆蚁艿膅蒁蚆袄袀螇螈螁袇肀蒅螄羀羈腿聿薈羃芃蚄羀羅蕿莇肆薂羂薅肀膆羀衿螈膁肅蒅膀莇膇膇膆螀螄蒅艿莄薈蝿羈莀薃莅蚃薆罿羇莆膃薆芅蚃袇莀薀肈螂莅膅肇肈羅袈螀莁莈肅膇肅膂莀薁羀膇羅芇芆薂蚈罿蕿腿蚂芇芃羃羆蚁膈羈薂莇蒄莄芄腿螇螇蒂蒇蒁蒁螆袁莆蒆膈薆蚃袂肄荿羆蕿肈蚆袄芃薇肁衿莈羈螆袁蚄袅葿蒈肇袈袆肂肅蒇膀肇膀螈袆芃膁螅羂蚆袈蚈羆薄蚂羃莀葿蚇蕿肆蒁肃薅肂肈蒆蕿膆螂蒄袃薀蚇葿葿芅羄薁莅节芇芈荿莅羁羂蚄螀袆羇艿蒅膂莃膆蒂蝿肀腿蒅莃螄蒄衿莈蝿聿薅蚄膅肆薁羇薇肀蚅薁芁莄聿薆莆羀螅袂蚂袆螁膅荿袀袄肃肃膄艿罿膈螀羄肁蒄蚆羁薈袇蚀肄节袅羅荿膇羀薀肄蒃肂薇膁螆蝿蒀膄蚄蒃螅袂虿蒈蒀芄蚁袃肃芀芈芆莁莄袂芄蚅羂袇艿芁蒄膃莁袃蒀蒆肈膁薃肀螂蒅膂肅袇螇袇肇膃葿蚀蚅袀螇羇艿薄肂莂芄虿蚇肇薀羅芀螀袃莈薇膇蒇膂袂薁蒂膇蒇芇螈薂膀罿莅腿莇芇罿羃蚂蚁羄羈芈莇膀莄羀腿薃螇膈蒇膇蒁蒂袁肂蒆袄薆莈袂螀薃蚂螃螄羀蚀薇莃芅薅薂蚄羀薇羈蚁螃膄莁薄肀袈荿膃蒅螃莄薄膀聿蒆蒁膆莂膂蒄芀芀袆蝿蚄芅羁莅莀芇芇芁莆袄蚀芅蒀蒈蚈蕿袄蒃螃膅蕿蒅袅袇薆螈蒂袁蕿莃芆膅羄莈芁螁虿蚄蚇蚈蚆芁芄蚁蝿袅肈羆膃袀肃薁衿肆葿蒈袅葿袁蒁罿肃薅螆莃肈薀莂聿芄羆莈肅蚇蚃节腿薅莇薆蒃蒀莂节膈蒂螈膈芅聿膁膂芈螄腿蒆蚃虿膄肂莈羅芆罿莅芈羃羂蒈膆蚇芇肇膁螂袂薈膃肈薅薄螀薀螂蚈莄蒈肇芆荿薃螃蚈薅蚅莅螄羈莂蚃螈薂肆蚃蒆芃肁艿膁蕿蒇羁袄膆膄腿芁螀袈蒃蚆螆袃聿莁羂艿螁肄莅蚂聿莁罿莆莄螆羄蒁罿蒁膀螇薂芃螇蒄衿薁蒁膇膄羅莆蒆蝿羅蚂袂蒂蚇羅芅蚀羅虿罿羄荿薄肄莆肅袀莀节袇膃肇芆膄肂螁螄蕿肇袆膆芄聿膂肃肇蚆蚅肆莄芀薃蚅蝿芅蚈羆蒄蒁螀羃蒀袄蒇袆薄螂膀羇袈蒃膅薂薄蒅薁葿蚀肂羄蒂蚄蚆羂螇肈蚁羇莃螄袇聿艿螀芀螆芃袃袄蒀薇芈衿薅膃羃肆袁腿羀蚃薈膃肃莇节蒈PAGEPAGE27精品文档PAGE湖南理工学院南湖学院课程 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 题目:电加热炉温度控制系统设计专业:机械电子工程组名:第三组班级:机电班组成员:彭江林、谢超、薛文熙目录1意义与要求........................................................21.1实际意义....................................................21.2技术要求....................................................22设计内容及步骤....................................................22.1方案设计....................................................22.2详尽设计....................................................3主要硬件介绍...........................................3电路设计方法...........................................4绘制流程图.............................................7程序设计...............................................82.3调试和仿真..................................................83结果剖析..........................................................94课程设计心得领会.................................................10参照文件......................................................................................................................................10附录............................................................10-27意义与要求1.1实际意义在现实生活中间,好多场合需要对温度进行智能控制,平时生活中最常有的要算空调解冰箱了,他们都能根据环境实时情况,联合人为的设定,对温度进行智能控制。工业生产中的电加热炉温度监控系统和培养基的温度监控系统都是计算机控制系统的典型应用。经过这次课程设计,我们将自己着手设计一个小型的计算机控制系统,目的在于将理论联合实践以加深我们对课本知识的理解。1.2技术要求要求利用所学过的知识设计一个温度控制系统,并用软件仿真。功能要求如下:1)能够利用温度传感器检测环境中的实时温度;2)能对所要求的温度进行设定;3)将传感器检测到得实时温度与设定值相比较,当环境中的温度高于或低于所设定的温度时,系统会自动做出相应的动作来改变这一状况,使系统温度始终保持在设定的温度值。设计内容及步骤2.1方案设计要想达到技术要求的内容,少不了以下几种器件:单片机、温度传感器、LCD显示屏、直流电动机等。其中单片机用作主控制器,控制其他器件的工作和办理数据;温度传感器用来检测环境中的实时温度,并将检测值送到单片机中进行数值对照;LCD显示屏用来显示温度、时间的数字值;直流电动机用来 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 示电加热炉的工作情况,转动表示电加热炉通电加热,停止转动表示电加热炉断电停止加热。整体思路是这样的:首先我们经过按键设定所需要的温度值,然后利用温度传感器检测电加热炉的实时加热温度,并送至单片机与设定值进行比较。若检测值小于设定值,则无任何动作,电加热炉持续导通加热;若检测值大于设定值,则单片机控制光电耦合器导通,继电器动作,电加热炉断电停止加热。一旦炉温低于设定值,单片机又控制光电耦合器断开,继电器开关分别,电加热炉开始导通加热。这个过程中所设定的温度值和传感器检测到得温度值都要在LCD显示屏上显示出来,以方便操作人员察看。此外,还能够加上时钟模块,以方便计时。这个设计思路相对照较简单,利用所学过的知识容易实现,加上光电耦合器用于隔绝强电和弱电,比较安全,正好切合我们自动化专业用弱电控制强电的目的,正所谓学致使用。2.2详尽设计主要硬件介绍1.单片机这里采用AT89C51单片机作为控制系统的办理器。AT89C51是一种带4K字节闪存可编程可擦除只读存储器的低电压、高性能CMOS8位微办理器。2.温度传感器温度传感器有好多种型号,这里我采用DS18B20温度传感器。数字温度传感器DS18B20拥有独到的单总线接口方式,支持多节点,使散布式温度传感器设计大为简化。测温时无需任何外围原件,能够经过数据线直接供电,拥有超低功耗工作方式。测温范围为-55到+125摄氏度,可直接将温度变换值以16位二进制数字码的方式串行输出,因此特别适合单线多点温度测量系统。由于传输的是串行数据,能够不需要放大器和A/D变换器,因而这种测温方式大大提高了各样温度测控系统的可靠性,降低了成本,缩小了体积。3.开关器件由于单片机与电动机之间需要用开关器件连结,并且前者用弱电控制,后者由强电控制,这就尤其需要注意安全问题。于是我想到了在课本中学过的高性能安全开关器件光电耦合器。光电耦合器是由一个发光器件和和一个光电变换器件组成,这里所用的光电耦合器OPTOCOUPLER-NPN是由一个发光二极管和一个光敏晶体管所组成。当发光二极管发光,就会使得光敏晶体管导通,继电器通电动作,将开关吸合,电动机回路断开。电路设计方法1.显示部分电路显示电路截图如下列图所示。图2.1显示部分电路图这里我采用LCDLM016L液晶显示屏作为系统的显示器件,如下图,LCDLM016L采用 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 的16脚接口,仿真时隐藏了背光正极和背光负极两个引脚。它经过D0-D78位数据端来与单片机进行数据和指令传输,这里我们将它与单片机的P0口连结。在显示屏上显示的内容包括设定的温度值SET、传感器检测到的环境温度SA以实时钟,这个时钟是能够调整的,这样方便工作人员在对系统进行操作时有一个时间观点。2.温度检测电路温度传感器与单片机的连结情况如下列图所示。图2.2温度检测电路图温度传感器18B20将检测到的环境实时温度进行A/D变换和放大,然后串行送入单片机P1.7口,便于单片机将此数值与设定的温度值进行比较,然后先做出相应反响。在仿真时,我们只能经过按18B20上的加减按钮来调节实时温度,是一个模拟的过程。3.键盘电路键盘电路如下列图所示。图2.3键盘电路图这里减排设计得比较简单,“MS”键是切换调整对象的,调整对象包括时、分、温度设定值三项,“+”键是向上加调整对象的值,“—”键是向下减调整对象的值,“ON/OFF”键是翻开和封闭系统自动调节功能的开重点。4.电气开关及工作电路电器开关及工作电路如下列图所示。图2.4电气开关及工作电路图如下图,光电耦合器1脚接电源,2脚接单片机P3.7脚。工作过程用以下三个阶段来描绘:1)单片机将温度传感器送入的值与设定值进行比较,若送入值小于设定值,则P3.7脚保持高电平,这样发光二极管不发光,光敏晶体管保持高阻态,继电器也不会工作,电动机和灯泡维持导通,相当于电炉持续加热,指示灯亮;(2)一旦送入值比设定值大,单片机将会控制P3.7脚变为低电平,发光二极管导通发光,光敏晶体管受光照影响导通,既而继电器工作,电磁铁将单刀双掷开关吸向左端,使电动机和灯泡同时停止工作,这就相当于电炉断电,停止加热;(3)电炉短路一段时间后,必定致使炉温降低,而温度传感器DS18B20在不中断地检测炉温,当检测值低于设定值后,单片机又控制P3.7脚恢复高电平,光电耦合器恢复高阻态,继电器断电,单刀双掷开关被弹回右端,电动机和灯泡又开始工作,这相当于电炉从头开始加热。绘制流程图开始初始化P1口,初始化24C02读出24C02保留的数据赋于KLCD初始化延时500ms启动时钟准时器0初始化,DS18B20初始化按键扫描、温度采集送入单片机进行温度值比较Y设定值>=采集值?N将P3.7口置0Y设定值<采集值?N将P3.7口置1程序设计由于整个程序工程量比较大,我采用模块化设计方法来设计这个程序。首先定义在后边将会用到的变量,不可能一次定义正确,所以边定义边补充。然后编写子函数,包括LCM初始化子函数、显示指定坐标的一个字符子函数、ds18b20初始化函数、ds18b20延迟子函数、读取ds18b20目前温度子函数、液晶显示子函数、键盘扫描子函数、设定工作模式子函数、按键加办法函数、按键减办法函数、24C02读写驱动程序、准时器t0中止子函数等子程序,最后是主函数。2.3调试和仿真在Keil软件中编写完程序后,编译生成.Hex文件,单片机能够履行.Hex文件。在Protues软件中,给单片机加载所生成的.Hex文件,按下运行按钮,系统开始仿真。系统仿真截图如下列图所示。图2.5系统仿真图(一)上一张是当温度采样值小于设定值,电热炉处于工作状态时的仿真截图。以下这张是当温度采样值高于设定值后,系统自动做出反响,使电热炉断电停止工作的仿真截图。图2.6系统仿真图(二)结果剖析由以上仿真结果能够知道,此次的设计基本成功。当采样温度低于设定值的时候,系统不会对电热炉做出相应动作,电热炉保持加热。一旦采样温度高于设定值,系统就会做出反响,使电加热炉断电停止加热。当温度降下来后,系统又会自动控制电加热炉从头开始加热。系统的反响速度也是十分精准的,会在很短的时间内作出相应动作。此外,由于在电路中加入了EPROM24C02,使得该系统拥有掉电保护功能,来电后自动恢复正常工作。除此之外,该系统还有一个比较实用的小功能—电子钟,这样的话工作人员能够利用它正确掌握系统已经工作的时间,也就是说能够把它当做一个准时器来用。在安全保护方面,该系统也有相当不错的表现,由于使用了光电耦合器和就电磁继电器,将强电部分和弱电部分充分开绝,十分安全。综合以上剖析,该系统的设计十分红功。课程设计心得领会一学期很快就过去了,大学四年的学习也差不多结束了,但对机械电子的学习没有结束,而是才刚才开始。说到电加热炉,我们都比较熟悉,在平时生活中我们经常用到,特别是冬天用它来煮火锅。我们也会发现这样一个问题,一般的电加热炉是没有温度自动控制的,当温度上涨到我们需要的程度时,它仍旧持续加热,这不单会影响到加热效果,还会造成电能的浪费。那么就有必要设计一种能自动调节炉温的系统,把它应用到平时生活中,将会给人们带来极大的方便。在设计的过程中,我也碰到一些麻烦,比方说怎样来实现电动机回路的自动通断调节、怎样来实现时钟的调整等等,这些问题都令我十分棘手。经过去图 关于书的成语关于读书的排比句社区图书漂流公约怎么写关于读书的小报汉书pdf 馆查阅有关资料和上网搜寻各硬件的原理以及应用,我最终都一一解决了这些问题。由于我们是三个同学做同一个题目,在设计过程中,我们碰到困难的时候也经常相互议论,相互讨教,最终一同解决问题,在此也感谢我的“战友”们。总的来说,此次课程设计的过程比较轻松,从拿到问题到彻底解决问题,这是一个令人振奋并享受的过程。经过去图书馆大量的查阅书籍,我也学到了好多在课本上没有的知识,收获颇丰。这段过程让我懂得了一个道理,那就是学生要学的绝对不该只是是课本上的东西,有些东西只有走进图书馆,你才可能学习到。也只有这样,我们才能成为一个见多识广、渊博的人。参照文件[1]于海生.微型计算机控制技术.清华大学出版社,2004谭浩强.C程序设计(第三版).清华大学出版社,2006戴焯.传感与检测技术.武汉理工大学出版社,2006张毅刚.单片机原理及应用.高等教育出版社,2003柯节成.简洁电子元件器件手册.高等教育出版社,2005附录系统的完整程序如下:/*电加热炉温度控制系统问题描绘:当温控开关翻开时,若测得环境温度大于设定温度,则继电器吸合,电加热炉停止工作;若测得环境温度小于设定温度,则继电器释放,电加热炉持续工作。*/#include#include#include#defineucharunsignedchar#defineuintunsignedint#defineBUSY0x80//lcd忙检测标志#defineDATAPORTP0//定义P0口为LCD通讯端口#definePLAYE_ADDRXBYTE[0XBFFF]//语音报警地点sbitRED_ALARM=P1^0;//红色指示灯sbitWRITE_ALARM=P1^1;//白色指示灯sbitGREEN_ALARM=P1^2;//绿色指示灯sbitBLUE_ALARM=P1^3;sbitP1_4=P1^4;//时钟调整sbitP1_5=P1^5;//时钟加sbitP1_6=P1^6;//时钟减sbitDQ=P1^7;//定义ds18b20通信端口sbitLCM_RS=P2^0;//数据/命令端sbitLCM_RW=P2^1;//读/写选择端sbitLCM_EN=P2^2;sbitsda=P2^3;//IO口定义sbitscl=P2^4;//LCD使能信号sbitad_busy=P3^2;//adc中止方式接口sbitRECLED_EOC=P3^5;//ISD1420放音结束查问标志sbitOUT=P3^7;ucharad_data;//ad采样值存储ucharseconde;//定义并初始化时钟变量ucharminite;ucharhour;ucharmstcnt=0;uchartemp1,temp2,temp;//温度显示变量uchart,set;ucharK;bitON_OFF=0;bitoutflag;bitwrite=0;ucharcodestr0[]={"---::---"};ucharcodestr1[]={"SET:CSA:.C"};voiddelay_LCM(uint);//LCD延时子程序voidinitLCM(void);//LCD初始化子程序voidlcd_wait(void);//LCD检测忙子程序voidWriteCommandLCM(ucharWCLCM,ucharBusyC);//写指令到ICM子函数voidWriteDataLCM(ucharWDLCM);//写数据到LCM子函数voidDisplayOneChar(ucharX,ucharY,ucharDData)//显示指定坐标的一个字符子函数voidDisplayListChar(ucharX,ucharY,ucharcode*DData);//显示指定坐标的一串字符子函数voidinit_timer0(void);//准时器初始化voiddisplayfun1(void);voiddisplayfun2(void);voiddisplayfun3(void);voiddisplayfun4(void);voidkeyscan(void);//键盘扫描子程序voidset_adj(void);voidinc_key(void);voiddec_key(void);voiddelay_18B20(unsignedinti);voidInit_DS18B20(void);ucharReadOneChar(void);voidWriteOneChar(unsignedchardat);voidReadTemperature(void);voidad0809(void);voidplayalarm(void);/*延时K*1ms,12.000mhz/voiddelay_LCM(uintk){uinti,j;for(i=0;i0;i--){DQ=0;//给脉冲信号dat>>=1;DQ=1;//给脉冲信号if(DQ)dat|=0x80;delay_18B20(4);}return(dat);}/*ds18b20写一个字节voidWriteOneChar(uchardat){/unsignedchari=0;for(i=8;i>0;i--){DQ=0;DQ=dat&0x01;delay_18B20(5);DQ=1;dat>>=1;}}/读取ds18b20目前温度/voidReadTemperature(void){unsignedchara=0;unsignedcharb=0;unsignedchart=0;Init_DS18B20();WriteOneChar(0xCC);//跳过读序号列号的操作WriteOneChar(0x44);//启动温度变换delay_18B20(100);//thismessageisweryimportantInit_DS18B20();WriteOneChar(0xCC);WriteOneChar(0xBE);//跳过读序号列号的操作//读取温度存放器等(共可读9个存放器)前两个就是温度delay_18B20(100);a=ReadOneChar();b=ReadOneChar();//读取温度值低位//读取温度值高位temp1=b<<4;temp1+=(a&0xf0)>>4;temp2=a&0x0f;temp=((b*256+a)>>4);//目前采集温度值除16得实际温度值}/*液晶显示子函数1正常显示*/voiddisplayfun1(void){WriteCommandLCM(0x0c,1);//显示屏翻开,光标不显示,不闪烁,检测忙信号DisplayListChar(0,0,str0);DisplayListChar(0,1,str1);DisplayOneChar(3,0,hour/10+0x30);//液晶上显示小时DisplayOneChar(4,0,hour%10+0x30);DisplayOneChar(6,0,minite/10+0x30);DisplayOneChar(7,0,minite%10+0x30);//液晶上显示分DisplayOneChar(9,0,seconde/10+0x30);//液晶上显示秒DisplayOneChar(10,0,seconde%10+0x30);DisplayOneChar(4,1,K/10+0x30);//液晶上显示设定的温度DisplayOneChar(5,1,K%10+0x30);DisplayOneChar(11,1,temp1/10+0x30);//液晶上显示测得的温度DisplayOneChar(12,1,temp1%10+0x30);DisplayOneChar(14,1,temp2/10+0x30);if(ON_OFF==0)//若温控标志为0{DisplayOneChar(14,0,0x4f);//液晶上显示不控温的标志DisplayOneChar(15,0,0x46);}else{DisplayOneChar(14,0,0x4f);//液晶上显示控温的标志DisplayOneChar(15,0,0x4e);if(outflag==1)DisplayOneChar(0,0,0x7c);elseDisplayOneChar(0,0,0xef);}}/液晶显示子函数2*/voiddisplayfun2(void){WriteCommandLCM(0x0c,1);//显示屏翻开,光标不显示,不闪烁,检测忙信号DisplayListChar(0,0,str0);DisplayListChar(0,1,str1);DisplayOneChar(6,0,minite/10+0x30);DisplayOneChar(7,0,minite%10+0x30);DisplayOneChar(9,0,seconde/10+0x30);DisplayOneChar(10,0,seconde%10+0x30);DisplayOneChar(4,1,K/10+0x30);DisplayOneChar(5,1,K%10+0x30);DisplayOneChar(11,1,temp1/10+0x30);DisplayOneChar(12,1,temp1%10+0x30);DisplayOneChar(14,1,temp2/10+0x30);WriteCommandLCM(0x0f,1);//显示屏翻开,光标显示,闪烁,检测忙信号DisplayOneChar(3,0,hour/10+0x30);DisplayOneChar(4,0,hour%10+0x30);}/液晶显示子函数3*/voiddisplayfun3(void){WriteCommandLCM(0x0c,1);//显示屏翻开,光标不显示,不闪烁,检测忙信号DisplayListChar(0,0,str0);DisplayListChar(0,1,str1);DisplayOneChar(3,0,hour/10+0x30);DisplayOneChar(4,0,hour%10+0x30);DisplayOneChar(9,0,seconde/10+0x30);DisplayOneChar(10,0,seconde%10+0x30);DisplayOneChar(4,1,K/10+0x30);DisplayOneChar(5,1,K%10+0x30);DisplayOneChar(11,1,temp1/10+0x30);DisplayOneChar(12,1,temp1%10+0x30);DisplayOneChar(14,1,temp2/10+0x30);WriteCommandLCM(0x0f,1);//显示屏翻开,光标显示,闪烁,检测忙信号DisplayOneChar(6,0,minite/10+0x30);DisplayOneChar(7,0,minite%10+0x30);}/液晶显示子函数4*/voiddisplayfun4(void){WriteCommandLCM(0x0c,1);//显示屏翻开,光标不显示,不闪烁,检测忙信号DisplayListChar(0,0,str0);DisplayListChar(0,1,str1);DisplayOneChar(3,0,hour/10+0x30);DisplayOneChar(4,0,hour%10+0x30);DisplayOneChar(6,0,minite/10+0x30);DisplayOneChar(7,0,minite%10+0x30);DisplayOneChar(9,0,seconde/10+0x30);DisplayOneChar(10,0,seconde%10+0x30);DisplayOneChar(11,1,temp1/10+0x30);DisplayOneChar(12,1,temp1%10+0x30);DisplayOneChar(14,1,temp2/10+0x30);WriteCommandLCM(0x0f,1);//显示屏翻开,光标显示,闪烁,检测忙信号DisplayOneChar(4,1,K/10+0x30);DisplayOneChar(5,1,K%10+0x30);}/键盘扫描子函数/voidkeyscan(void){ucharxx;//局部变量P1=0xff;if(P1!=0xff){delay_LCM(50);if(P1!=0xff){xx=P1;switch(xx)//根据按键状态,调用不同的子函数{case0xfe:set_adj();case0xfd:inc_key();case0xfb:dec_key();casebreak;break;break;0xf7:{delay_LCM(150);ON_OFF=!ON_OFF;while(!BLUE_ALARM);}break;default:break;}}}}/设定工作模式子函数/voidset_adj(void){delay_LCM(100);set++;if(set>=4)set=0;while(!RED_ALARM);}/按键加办法函数/voidinc_key(void){delay_LCM(150);switch(set){case0:if(P1==0xf7){delay_LCM(150);ON_OFF=!ON_OFF;}case1:hour++;if(hour>=23)hour=23;break;case2:minite++;if(minite>=59)minite=59;break;case3:K++;if(K>=99)K=99;break;default:break;break;}while(!WRITE_ALARM);}/按键减办法函数*/voiddec_key(void){delay_LCM(150);switch(set){case0:if(P1==0xf7){delay_LCM(150);ON_OFF=!ON_OFF;}break;case1:hour--;if(hour<=0)hour=0;break;case2:minite--;if(minite<=0)minite=0;break;case3:K--;if(K<=1)K=1;default:break;break;}while(!GREEN_ALARM);}/24C02读写驱动程序/voiddelay1(ucharx){uinti;for(i=0;i=20){seconde++;write=1;mstcnt=0;}if(seconde>=60){minite++;seconde=0;}if(minite>=60){hour++;minite=0;}if(hour>=24){hour=0;}keyscan();//按键扫描}/*themainfuntion*/voidmain(void){P1=0xff;x24c02_init();K=x24c02_read(2);//////初始化p1口,全设为初始化24C02读出保留的数据赋于1Kseconde=x24c02_read(4);minite=x24c02_read(6);hour=x24c02_read(8);delay_LCM(500);initLCM();//延时500ms启动//LCD初始化init_timer0();//时钟准时器0初始化Init_DS18B20();//DS18B20初始化DisplayListChar(0,0,str0);DisplayListChar(0,1,str1);while(1){keyscan();//按键扫描ReadTemperature();//温度采集switch(set)//LCD根据工作模式显示{case0:displayfun1();delay_LCM(1000);break;//正常工作显示case1:displayfun2();delay_LCM(1000);break;//调整时显示case2:displayfun3();delay_LCM(1000);break;//调整分显示case3:displayfun4();delay_LCM(1000);break;//温度设定default:break;}keyscan();if(ON_OFF==1)//相当于延时//若温控标志位1,控制LAMP动作{if(temp1>=K+1){outflag=1;OUT=0;}if(temp1
本文档为【电加热炉温度控制系统设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
春天阳光书院
暂无简介~
格式:doc
大小:118KB
软件:Word
页数:36
分类:
上传时间:2022-11-17
浏览量:0