【基于STC89C52单片机的恒温系统的设计与实现13000字】_第1页
【基于STC89C52单片机的恒温系统的设计与实现13000字】_第2页
【基于STC89C52单片机的恒温系统的设计与实现13000字】_第3页
【基于STC89C52单片机的恒温系统的设计与实现13000字】_第4页
【基于STC89C52单片机的恒温系统的设计与实现13000字】_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

4.6按键电路设计 5系统软件设计 5.1主程序设计 5.2读出温度子程序设计 5.4液晶显示子程序设计 5.5温度控制子程序设计 6系统调试 26.1硬件调试 236.2软件调试 6.3系统联调 7结论与展望 附录 附录A原理图 28附录B实物图 29 11绪论温度是科学技术中最基本的物理量之一,在我们的生活、工业生产、农业生产、医药、科研、化学研究中等方面中都离不开温度。例如在石油、冶金矿工、农业生产中,温度需要非常精确地稳定控制。我曾经亲眼看到某个鸡场由于室内温度过高,导致小鸡大面积死亡,公司损失惨重甚至濒临破产。事后想想,如果鸡场温度能够保持恒定呢?温度超标能够及时报警呢?这样类似的惨剧是否能减少发生甚至不再发生呢?又或是昂贵的药材由于储存不善,长期处于温度过低、过高的状态下,导致药效减弱甚至是失效,生物实验室温度过高,导致实验失败等等屡见不鲜。常常有因为温度控制发生意外导致人员伤亡或是经济损失,例如水池、温室等室内室外场所。可见,温度控制的意义在如今社会生活中应有着举足轻重的地位,在人力资源愈加昂贵的今天,智能化恒温控制显得更加重要,能够为企业缩减运营成本,提升自身利润率,降低人工安全隐患。本次设计控制对象是温度,主题内容是单片机恒温系统。温度控制在我们的生活和生产中日益广泛,日常生活和工业生产中,比如锅炉厂、电源、发酵室等场所的温度检测与恒温控制。在以前的温度控制中,往往由人工进行控制,成本高而又不安全,远远满足不了需求,本次设计的目的是制造出一种可以连续高灵敏度的检测温度、控制温度的恒温系统,它具有体积小、功能强、性价比高等特点,使用方便,实用又划算。1.3温度控制系统完成的功能本设计可以对系统的温度进行实时的检测与控制:1、能够显示系统当前温度。2、能够设定系统报警上下限温度。3、当系统温度高于或者低于手动设置的系统温度时能够实现声光报警。4、当系统温度高于手动设置的温度时风扇开始工作,系统自动降温到系统设定温度以内风扇停止运行。5、当系统温度低于手动设置的温度时加热片通电加热,系统自动升温到系统2设定温度以内停止加热。6、当温度在系统设置温度之间时,不执行升温、降温操作,显示屏显示当前系统温度,精确到小数点后一位。5系统软件设计在系统软件设计中最重要的就是主程序是的设计,其中包括对系统的初始化程序,还有其他子模块的子程序,如温度控制子程序。大部分的控制和判断都在主程序中进行的,主程序通过调用各部分子程序执行相关功能,整个主程序形成一个死循环能够循环运行。在系统通电之后先对系统进行程序的初始化操作,执行各种子程序,包括定时器中断程序当定时时间到,就可以设置系统报警温度上限和温度上限。当定时时间没有到来之前,要一直执行死循环函数,在死循环中需要对系统温度进行检测,如果系统温度低于设置的温度下限,则启动升温系统为系统升温,直到温度在设置温度范围内;如果系统温度高于设置的温度上限,则启动降温系统为系统降温,直到温度在设置温度范围内I91。这样循环就结束,程序从头开始,继续对系统温度进行检测、控制。系统主程序流程图如图5-1所示:显示当前系统温度YNNY5.3按键控制子程序设计因为在此次设计中具有设置温度的上限和下限的功能,所以需要增加按键电入。按键控制流程图如下图5-3所示。此时模式为0,当被按下时,模式转换为模式1,进入到调整温度下限设置;当“设置”再次按下时,进入到调整温度上限设置,此时模式转换为2,;再次按下“设低,此时系统会判断处于什么模式,若处于模式1,则温度下限减1,若处于模式2,则温度上限减1。那么同理,当“加”键被被我们手动按下时,那么连接“加”键的单片机I/O□电平将会拉低,此时系统会判断处于什么模式,若处于模式1,则温度下限加1,若处于模式2,则温度上限加1。若模式为0,则按下后什么都不Y模式切换NY增加温度上下限NY减小温度上下限N结束下“减”键按下“加”键按下6系统调试发现故障,并及时排除故障,反复进行调试,直到能够达到要求为止1一系列测试结论,从而判断电路是否符合设计要求。实际仿真运行调试如图6-1所伞宁伞e铁844图6-1仿真运行调试图6.2软件调试进行软件调试主要是为了保证程序在单片机中能够顺利正常的运行二不出现6.3系统联调整体的事物进行完整的测试。首先观察LCD1602显示屏能否正常显示相关文字等启动DS18B20对系统温度进行检测,然后将测量到的系统温度将之与报警值温度进行对比15。若温度低于报警下限温度,则控制加热片的继电器吸合,加热片进行加热,系统进入到加热状态,直到系统温度进入到报警下限温度,加热片关闭加热,等待下一次启动指令。若温度高于报警上限温度,则控制小风扇的继电器吸合,小风扇转动进行降温,系统进入到降温状态,直到系统温度进入到报警温度上限温度,小风扇关闭,等待下一次启动指令。经过两天的调试,反复修改,反复尝试,最终整个系统调试完成,能够正常使用,一切功能正常,调试过程如图6-2所示:附录B实物图//数据寄存器//地址寄存器高八位//地址寄存器低八位//命令寄存器//命令触发寄存器//命令寄存器unsignedcharTB3;//温度下限小数点后一位unsignedcharHB1;//温度上限十位unsignedcharHB3;//温度上限小数点后一位unsignedcharH_buff[5];unsignedcharmoshi=0;sbitBUZZER=P3^4;//蜂鸣器报警功能T_buff[1]=T_baojing/10T_buff[3]=T_baojingLcdShowStr(3,0,"Set_TeH_buff[0]=H_baojing/100H_buff[1]=H_baojing/10%10H_buff[3]=H_baojing%10if(T_baojing>=999)T_baT_buff[0]=T_baojing/T_buff[1]=T_baojing/10if(H_baojing<=0)H_bH_buff[0]=H_baojing/100H_buff[1]=H_baojing/10%10H_buff[3]=H_baojing%10res=Get18B20Temp(&temp);//读取当前温度decT=(decT*10)/16;//二进制的小数部分转换为1位十进制位value=Byte_Read(0x2007{Byte_Program(0x2001Byte_Program(0x2002Byte_Program(0x2003TB1=Byte_Read(0x2000);//读取EEPROM中设置温度上限的报警值,并赋给全局变量TB2=Byte_Read(Ox2001);//读取EETB3=Byte_Read(Ox2002);//读取EEPROM中设置湿度上限的报警值,并赋给全局变量HB1=Byte_Read(0x2003);//读取EEPROM中设置湿度下限的报警值,并赋给全局变量HB2=Byte_Read(0x2004);//读取EEPROM中设置湿度上T_baojing=TB1*100+TH_baojing=HB1*100+H/************主函数(程序的入口)****************/LcdShowStr(2,0,"Temperature");//Start18B20();/1开始读取温度信号wendu_chuli();/读取温度并显示wendu_chuli();//温度检测并显示if(wendu>=H_baojing)//当温度大于温度上限时BUZZER=0;//蜂鸣器响LED_G=1;elseif(wendu>T_baojing&&wendu<H_baojing)//当温度在温度下限和温度上限之间时BUZZER=1;//蜂鸣器不响elseif(wendu<=T_baojing)//当温度小于温度下限时}定时器中断子程序(定时1ms)voidTimer0_isr(void)THO=(65536-1000)/256;//重新赋值1ms/*软件延时函数,延时时间(t*10)us*/voidDelayX10us(unsignedcha_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();for(mask=0x01;mask!=_nop_();_nop_();}unsignedcharRead18B2for(mask=0x01;mask!{_nop_();_nop_();_nop_();_nop_();}/*等待液晶准备好*/sta=LCD1602_DB;/读取状态字}while(sta&0x80);//bit7等于1表示液晶正忙,重复检测直到其等于0为止/*向LCD1602液晶写入一字节命令,cmd-待写入命令值*/voidLcdWriteCmd(unsignedcha/*向LCD1602液晶写入一字节数据,dat-待写入数据值*/voidLcdWriteDat(unsignedchar/*设置显示RAM起始地址,亦即光标位置,(x,y)-

温馨提示

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

评论

0/150

提交评论