




已阅读5页,还剩42页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘 要第一章 ATmage8概述ATmega8单片机是高档AVR单片机中ATmega系列的一种,该单片机是由ATMEL公司的第一个真正的8位RISC型单片机,并它同FLASH和EEPROM技术相结合,有极高的性价比 1。1.1 ATmega8的特点ATmega8是一种非常特殊的单片机,它的芯片内部集成了较大容量的存储器和丰富强大硬件接口电路,具备AVR高档单片机MEGE系列的全部性能和特点7。ATmega8具有高性能低功耗的8 位AVR微处理器、先进的RISC 结构、非易失性的程序和数据存储器、强大的外部接口性能、带片内RC振荡器的可编程看门狗定时器片内模拟比较器、最多23个编程的I/O口、4.5-5.5V的宽工作电压、高达16MHz的运行速度等特点。该类单片机还具有系统内可编程特性,可无需购买昂贵的仿真器和编辑器也可进行单片机嵌入式系统设计和开发,尤其是对于单片机的初学者来说,可提供了非常方便和简捷的学习开发环境。因此,本设计选择了ATmega8单片机为主控芯片来实现空调节能控制功能。1.2 ATmega8编程和系统开发工具 ATmega8具有了一整套的编程和开发工具,它包括宏汇编编译器、C语言编译器、BS-BASIC语言编译器以及在线调试/仿真器和评估板。本设计所采用的是ICC AVR软件开发环境,它是一种使用符合ANSI 标准的C 语言来开发AVR系列单片机程序的一个工具 ,能产生可以直接使用的INTEL HEX格式文件,这种格式文件可被大多数的编程器所支持。本设计中采用的编程器是纬煌编程器,它可以实现直接下载程序到单片机芯片中,方便快捷的实现各模块功能。 第二章 现有机房空调节能控制器设计2.1 现有机房空调节能控制器介绍机房节能的重点就是是降低空调能耗。实现空调节能的途径有很多种,空调节能控制器就是其中一种途径,目前空调控制器的有很多种,他们有着不同的优点和缺点,下面主要阐述了几种的空调节能控制器的设计及对他们的总结。2.1.1基于特定单片机的空调节能控制器设计(1)基于PIC16F877单片机的空调节能控制器设计该空调节能控制器是通过优化压缩机运行曲线, 根据空调的运行特性及环境对温度的感适能力,通过一个继电器控制空调内压缩机的运行状态,调整了空调压缩机的运行曲线,达到调控温度及节省耗电的功能。该节能控制器硬件电路以PIC16F877 单片机为控制核心,主要包括温度采集模块、参数设置及状态显示模块、压缩机控制模块等。温度采集模块对室温进行采集,送入主控制单元;参数设置及状态显示单元主要是选择节能控制器的工作模式及节能效率, 并对相应的工作模式以及设定的温度进行显示;压缩机控制模块主要对空调压缩机电路进行控制。该节能控制器软件设计是将节能控制分为两种节能状态, 对制冷温度进行设定, 并对压缩机强制关断时间做出选择, 达到设定温度后,两种节能状态程序分别通过强制关断压缩机10 分钟和15 分钟来克服压缩机的长时间工作和频繁启动, 达到节省电能的目的。该设计程序可分为:初始化模块、按键采集及处理模块、显示模块、压缩机控制模块、参数重置模块四个功能模块5。(2)基于C8051F020 的环保节能空调控制器的设计该空调控制器设计利用抽取地下水形成环流热交换实现调节室内温度的一种方法,根据热转换前的温度、环境的温度、热转换后的温度,通过控制步进电机的转动来实现对水流速度的控制,同时控制小型风扇的转速来调节热交换效率,实现对环境温度的自动调节,实现节能效果6。该空调控制器设计硬件电路以C8051F020 单片机为核心,由温度采集电路、温度显示电路、数据传输电路、步进电机驱动电路、小型风扇控制电路及热交换部分组成。系统完成温度的采集与处理,通过控制步进电机转动来实现水流速度的控制,同时调节风扇转速来改变热交换效率,并完成与上位机之间的数据传输。该空调控制器设计系统软件设计包括上位机软件和单片机监控软件两部分,其中上位机软件用于接收、存储单片机上传的数据,并进行显示;监控软件主要包括温度采集、处理、显示,步进电机控制及风扇速度的调节等,并与计算机进行通讯。2.1.2 基于变频技术的空调节能控制器设计基于变频技术的空调节能控制器是根据空调具有冷负荷变化范围大的特点,南方地区供冷范围10%-100%之间变化大的优势来调整空调机组的运行参数 2。下面阐述了这种技术的两种方式:(1)中央空调系统水系统变频调速节能方式采用交流变频技术控制水泵的运行,是通过对阀门调节和变频调速两种状态下的H-Q(压力流量)关系及P-Q(功率流量)控制。当所需流量减少时,水泵转速降低,电动机所需功率按转速的三次方下降。当水泵转速下降到额定转速的6 0% (即f = 3 0 H z )时,电动机消耗功率将下降78.4% ,即节电率为78.4 % ,这种方式控制来减少水泵流量的效果是十分显著。(2)机房专用空调压缩机变频方式机房专用空调压缩机变频技术是利用变频器改变压缩机的供电频率,通过调节压缩机的转速达到控制室温的目的。空调每次启动时,先以最大功率、最大风量进行制热或制冷,迅速接近所设定的温度后,压缩机便在低转速、低能耗状态下运转,仅以所需的功率维持设定的温度 3。这样的控制器不但温度稳定,避免了压缩机频繁地开、停所造成的使用寿命的缩减,而且耗电量大大下降。2.1.3 基于利用自然冷源的空调节能控制器设计这种节能技术的原理是把室外的自然环境作为冷源,用控制器判断室外空气温度低于室内空气温度且达到一定程度时,通过通风将机房内的热量带走,达到降低机房内部温度的目的。这样可以减少空调的使用时间,达到节约电能的目的。在技术实现上,目前有下列两种方式:(1)自然通风新风系统当室外空气温度较低时,通过控制器控制直接将室外低温空气送至室内,为室内降温;当室外温度高不足以带走室内热量时,则开启空调。FCX系列节能空调采用自然通风新风系统,直接将室外心外新风引入,改组没有传热顺势,运行效率高3。(2)热交换新风系统热交换新风系统采用隔绝换热方式,室内外空气并不接触,室外空气只作为冷源将室内热量带走,室内空气换热冷却后重新回到室内,不改变机房内部湿度,洁净度也能得到更好的保证。FCR系列机房节能空调采用的就是热交换新风系统,核心部件是板式显热换热器,室内外空气在换热芯片内进行能量交换3。2.1.4 基于机房空调机组自适应控制器设计基于机房空调机组自适应控制器以机房专用空调回风口处传感器的温湿度值作为数据采样参考点,监测整个机房平面的真实环境温湿度数据。上海电信就是利用机房专用空调系统组合的综合控制能力以及机房内气流组织的优化处理,该控制器采用的是计算机温度模拟技术建立数学模型,并通过自动计算机房不同的工况、空调冷量分布等综合数据,动态跟踪计算不同季节空调在外部的环境温度与室内目标温度的关系和空调当前的富余容量,精确控制“N +1”、“N +0”、“N -1”台等空调数量的优先开、关机顺序,使空调组群始终处于最合理的工作状态,从而达到空调效率最大化的目的2。机房专用空调自适应恒温恒湿控制节能监控系统的安装和施工简单方便,不需要对机房结构做任何变动,不影响原有空调系统的结构,具有安全可靠性等特点,且有利于日常维护。2.2方案设计比较以上介绍了现有的几种空调节能控制器设计方案设计,现在将他们进行比较,比较如下:(1)基于变频技术的空调控制器,该设计改造必须治理好谐波效应,避免其干扰机房设备的正常工作,且由于其投资较大,因此在实际节能改造中需慎重考虑。(2)基于空调自适应控制系统的空调节能控制器要满足响应时间短,控制速度快,控制精度高等特点,因此只有高质量的控制系统才能利用空调系统的自动,安全,节能运行。(3)基于利用自然冷源空调节能控制器,该设计的新风节能系统和热交换节能系统利用的是室外大气冷源,冷量来源廉价易得,且取之不尽,用之不竭,但节能效果受室外条件的影响,在北方和南方温度较低的地区节能效果更显著。(4)基于某单片机的空调节能控制器:采用专门的空调控制器代替器原有的温度控制器,将原先空调压缩机的启动和关闭由一个温度设定点改为温度区段控制,优化压缩机的运行曲线,减少空调器的运行时间以达到节能的目的。此方法实现起来比较简单,相对变频空调来说投资少,相对空调自适应空调控制器的控制系统要求低。并且没有南北方地区差异,适应于各个地方。下面对以上四种节能控制器的优点和缺点以及建议使用的场合进行比较。如下表2.1所示(见下页):表2.1 现有空调节能控制器对比表节能方案优 点缺 点建议使用场合基于某单片机优化压缩机的运行曲线,减少空调器的运行时间适用于各类空调基于变频技术节能效果显著,尤其适合通信机房内长期连续运行的空调系统变频改造所需投资较大,需考虑投资效益适用于各类空调空调自适应控制系统自动设定更合理的运行参数,群组化工作投资规模较大,工程较复杂适用于通信枢纽楼,大型交换局等机房安装多台空调机组的场合,不适用于小型机房基于利用自然冷源直接利用自然风,热交换效率高,节能效果显著引起机房内空气洁净度下降,设备因灰尘,静电等故障增多全年室外气温低于15的小时数在3000h以上的地区。仅使用在对洁净度要求不高的接入层机房第三章 总体方案设计本设计是利用ATmega8单片机为主控芯片来实现空调节能控制,有温度采集模块、控制空调开关模块、通讯模块等几大功能模块。下面主要述说几大模块实现的总体设计思路。3.1 温度采集模块设计本设计要实现温度采集模块,选用DS18B20(如图3.1)为温度传感器,该传感器是“一线总线”数字化温度传感器支持“一线总线”接口,它测量温度范围从-55到+125,精度为0.5,支持3V到5.5V的电压范围,程序可设定9到12位的分辨率,精度为0.5,转换时间为750ms,可选择小的封装方式(跟三极管相似),更宽的电压适用范围和分辨率设定,只要正确的提供电源就可以读取芯片采集温度。在本设计中,主要利用DS18B20数字温度计实现采集空调的出风口和进风口实时的温度的变化,并通过两者温差来判断空调工作的状态,方便如何控制空调的开关。图3.1 DS18B20引脚图3.2 控制空调开关模块设计本模块主要实现控制空调开关功能。因空调机房的空调品牌多样,一种遥控器不能实现对多个机房空调的控制。本设计选用万能遥控器作为空调遥控,可以很好的解决对各机房的不同空调的状态的控制问题,通过控制万能遥控器的电源开关来控制机房空调的开关,具体采用光电隔离的光耦技术和继电器来实现对遥控器的按键的开关,实现空调开关控制的功能。不但可以人工使用遥控器控制,还可以通过控制器来控制空调的开关,两者和互补干扰,实现节能功能。3.3 通信模块设计本设计采用RS-485总线通信实现与上位机通信功能。通信的关键不仅是能够传输数据,更重要的是能够准确传输。因RS485标准作为一种多点、差分数据传输的电气规范,其接口大多连接成半双工通信方式,具有的噪声抑制能力、数据传输速率、电缆长度和可靠性,因此选用RS-485总线来实现与上位机的通信。通信模块主要就是采用RS-485总线协议实现通信功能。具体当上位机发送指令时,能够识别指令并执行指令,并可以上传空调的开关状态和空调的执行情况以及出风口和进风口的温度。3.4 其他模块设计(1)电源转换模块本设计需要两种电源转换模块,一种需要12V转换为5V为单片机提供工作电压,一种是5V转化成3.3V电压工遥控器使用。在本设计中选用LM2575是由12V转5V电压的电源转换芯片,提供ATmega8所需的为5V左右供电电源,而选用5V转3.3V的MC33269芯片满足遥控器的工作电压的需求。(2)控制器地址设置本设计的控制器地址是实现能够识别485不同地址与上位机进行通信。本设计选用的是2位BCD编码拨码开关,该拨码开关用于识别不同的控制器。可以相应的设置0-3作为一个控制器485地址,实现4个这样的空调控制器同时与上位机实现通信。(3)检测电路设计检测电路时为了更好的检查硬件电路状况和程序是否运行。本设计采用的是两个LED发光二极管,一个作为电源灯,用来检查电路提供的电压是否正常,一个作为运行灯,用来检查程序运行是否正常。第四章 硬件设计4.1 ATmega8单片机IO口分配本设计用两个电容并联一个7.3728MHz晶振作为时钟电路,RXD和TXD为接受发送引脚外接RS485总线实现通信模块,PC5和PC4口作为普通的IO口接拨码开作为485通信时的地址(可以自定义0-3地址),PB5口作为485半双工通信允许接受和发送引脚,PB3口也是为普通的IO口外接LED灯作为运行灯,作为程序正常运行的标志,而PC2和PB2口也是作为普通的输入输出端口外接温度传感器DS18B20,通过单总线传输温度实现温度采集模块。如图4.1所示:图4.1 ATmega8电路IO口分布原理图4.2 温度采集模块设计本设计所用的是两个DS1820采集空调进风口和出风口的温度。为了能够读取和写入到DS1820单总线的数据,按照DS18B20引脚分布将其2引脚DQ与mega8的PC2和PB2口相连,在它们之间再加上接上拉电阻5.1K,提高读取准确性,而其他的引脚按照工作要求连接,1引脚接地GND,3引脚接电源VCC。DS18B20只要提供好工作电压,主要是软件编程,其原理图如图4.2所示:图4.2 DS18B20与mega8连接图4.3 空调开关控制模块设计本设计采用的是TLP521光耦芯片和继电器配合使用来控制遥控器的开关。TLP521光耦芯片的1引脚接PB7口,外围连接电路以及与继电器的连接如图4.4所示。工作原理:本设计控制空调开启或关闭是通过模拟万能遥控器按键的开关来实现的,通过单片机输出高低电平来控制光耦芯片的输出端E引脚输出高低电压,使继电器在通电和断电的两种情况下吸合和通断遥控器上的电源开关,实现空调开启或关闭功能。图4.3 控制空调开关模块原理图4.4 通信模块设计 本设计采用的是MAX487芯片实现RS485总线协议,该芯片为单+5V电源供电,工作电流在120-500uA,有低电流关机模式,消耗0.1uA电流,还有驱动器有过载保护功能,设计的相关的电路如图4.3所示。与单片机的连接和工作原理:MAX487芯片的RO与单片机的ATmage8的串行接受引脚相连,MAX487芯片的DI与单片机的ATmage8的串行发送引脚相连;DE与PB5相连,决定是单片机为发送还是接受状态;A、B引脚为与上位机或串行通信的两根线,根据这两根线上的电压差来那个判断是传送是高还是低电平,实现上位机与控制器的了通信。图4.4 通信模块原理图 4.5 其他模块设计4.5.1 电源转换模块设计(1)单片机工作电压本模块是实现12V电压转5V电压的功能,采用是LM2575芯片,该芯片能够实现电源的转化,其输出脚VOUT输出5V 电压,将其电压接入单片机的VCC引脚,提供单片机5V工作电压。其芯片的外围应用电路如图4.5所示:图4.5 12V转5V原理图(2)遥控器的工作电压本模块是能过实现5V转3.3V的电源转换功能,本设计选用的是MC33269电源转换芯片,可以实现该电源转换功能,提供遥控所需要的的3.3V电压,其外围电路如图4.6所示: 图4.6 5V转3.3V电路图 4.5.2 485地址设置本模块是实现485通信地址的设置,本设计里用拨码开关来实现,通过利用2个IO口设置成输入状态,读取IO口的数据(即拨码的地址),用BCD码读取相应IO口数据,就可以可设置0-3通信地址。如图4.7所示:图 4.7 485地址设计 4.5.3 测试电路设计本模块是用来测试电压提供是否正常和直观看出程序是否正常运行,本设计采用PB3口连接实现LED灯,利用编程使RUN运行灯的间断闪烁来实现测试运行的程序是否正常和电源灯POWER的正极连接VCC来测试提供的电压是否正常功能。如图4.8所示:图4.8 测试电路原理图第五章 软件设计 5.1 总体程序流程图 软件程序主要实现温度采集模块、控制空调开关模块、通信模块等。温度采集模块:对DS18B20的读取来采集机房温度;控制空调开关模块:即就在一定的条件下,实现对空调的开关功能;通信模块:就是对485地址的读取和通讯模块的数据的接受和发送、处理接受的指令以及对数据的存储等模块。主模块流程图如图5.1所示:图5.1 主程序流程图5.2 温度采集模块软件设计本模块是实现对DS18B20温度的读取,采集机房内实时的温度,用来很好控制机房的空调的开关。对读取DS18B20命令序列可分为有3步:初始化DS18B20、ROM命令(跟随需要交换的数据)和功能命令(跟随需要交换的数据),流程图如图5.4所示:图 5.4 读取DS18B20流程图每次访问DS18B20,必须严格遵守这个命令时序。对于DS18B20操作时首先应将它复位。将DQ线拉低480至960s,再将数据线拉高15至60s,然后,DS18B20发出60至240s的低电平信号(存在脉冲),这时主机才能对它进行其它操作。具体时序图如图5.5所示。图5.5 DS18B20初始化时序图初始化DS18B20要严格控制好时序,即DS18B20的复位。下面就是其复位程序,具体程序清单及解释如下:unsigned char ds18b20_resetEnter(void) /BOOL ds18b20_reset(void) unsigned char bus_flag; /BOOL bus_flag;unsigned char bus_ok; bus_ok=0; DDRB|=0x04; /DQ_TO_0()/ 设置1-wire总线为低电平(占领总线). /* 现在延迟480us960us, 与硬件密切相关,但应尽可能选小值(480us), 把抖动留给系统(比如在延迟期间发生中断导致延迟变长)。 */ wait_us(490); / 490us CLI(); / 下面这段时间要求比较严格,为保险起见,关中断 DDRB&=0xFB; / 设置1-wire总线为高电平(释放总线) wait_us(68); / 最佳时间: 60us+7.5us!(忙延时,只是一种策略) bus_ok=PINB&0x04; / 探测总线上是否有器件 if(bus_ok=0x04) bus_flag=0; / 复位单总线但没有发现有器件在线 else bus_flag=1; / 复位单总线并发现有器件在线 SEI(); / 退出临界代码区(开中断) /* 保证Master释放总线的时间(不是说总线处于高电平的时间)不小于 480us即可,这一时间从读总线状态之前就开始了,所以这里把这个 时间计算在内。在Master释放总线的前半段,也是被动器件声明它 们在线之时。*/ wait_us(422); / 490-67.5usreturn(bus_flag); 上述就是对DS18B20复位时严格的时序的程序清单。对于向DS18B20写1的情况,数据线必须先被拉至逻辑低电平,然后就被释放,是数据线在写时间片开始之后的15微妙之内拉至高电平;对于写0时间片的情况,数据线必须被拉至逻辑低电平且至少保持低电平60us,如图5.6所示:图5.6 DS18B20写操作时序图对于读取DS18B20数据的情况,首先主机应把数据线从逻辑高电平拉至低电平,并至少维持1微妙,并释放总线,在15微妙到60微妙之间读取DS18B20输出数据,而各个时间片之间必须有最短为1微妙的恢复时间。如图5.7所示:图5.7 DS18B20读操作时序图 DS18B20要求严格的协议来确保数据的完整性,详细的程序见附录二。 5.3 空调状态控制模块本模块实现对遥控器开关的控制来实现对空调的开关功能。本设计是利用两个DS18B20温度传感器读取到的温度,比较两者温度差值来来判断空调开启、关闭还是处于故障状态。具体判断条件如下:当出风口的温度大于进风口温度3,置空调制热故障;当进风口大于出风口3,判断空调为开启状态,当进风口和出风口相差1摄氏度的时候,判断空调为关闭状态,如图5.6所示: 图 5.6 空调状态的判断流程图5.4 通讯模块(1)接收和发送模块本模块实现对数据的接受和发送子程序功能。本设计是利用单片机的中断功能,有接受中断处理函数来接受下传的命令。在设计就是用地址帧来识别不同的控制器的地址,首先接受地址帧,识别正确的地址后就一一接受数据,再校验数据是否接受的正确,等接收好后就改为发送状态,上传空调的状态和实时的温度。流程图如图5.2所示:图 5.2 接收和发送模块流程图(2)处理接收到的命令该子模块是实现识别各条指令的意义。本子程序具体实现如下:当接受到命令后,首先分析命令,是开启还是关闭,还是托管。在执行开启和关闭状态下,执行空调的开启或关闭, 2分钟后就通过上述的空调判断模块来判断是否命令是否执行完毕,若未执行好,再次开启或关闭空调,2分钟后再次判断,如此执行了3次,若在3次之内执行完毕,则置空调控制器执行完毕标志,若3次还未执行成功,则置空调故障,然后再上传空调告警;如果托管情况下,就要判断实际的温度与空调的状态实现空调开还是关或者是保持不变。若出现通信故障情况下,就按照托管情况执行命令,如图5.3所示:图 5.3 处理接收到的命令流程图 5.5 其他模块实现(1)空调遥控开关 该模块是通过对遥控开关来实现对空调的开关功能。具体是用PD7口来实现,具体为:PORTD|=0x80;PD7置1和PORT&=0x7F;PB0置0,直接控制PD7口的高低电平来模拟遥控开关电源的按键。(2)运行灯的闪烁本模块是实现测试程序是否正常的子程序,具体是:利用定时器0来定时0.5S控制灯的亮灭。首先初始化定时器,包括初始值设定定时10ms,开定时0中断,并且要循环50次后就取反PB3口的电平,PORTB=0x08;PB3口间断500ms取反一次,即就是运行灯在0.5S闪烁一次。(3)拨码开关的读取该模块是用来设置485地址,具体是直接按照BCD码读取PC4和PC5口的值,如:m=PINC;读C口的值,m=m4;m&=0x03;即可读取到PC4和PC5的电平,来实现随便拨动拨码开关来实现对485地址的设置。第六章 系统实现本设计就是实现空调节能的控制,系统的硬件部分如图6.1所示。首先要对硬件的各个模块进行调试,然后再编写程序实现各个模块,下面分别来阐述硬件和软件的调试和相关遇到的问题及解决方法,最后对整个系统进行总结。图6.1 系统硬件实物图6.1 硬件调试 硬件调试主要包括对电源、时钟、空调开关控制电路进行检测,在调试中遇到了一些问题,下面也对这些问题提出及解决。 6.1.1 电路的检测(1)电源模块电源模块主要是用了LM2575芯片和MC33269芯片分别实现12V转5V和5V转3.3V的功能。具体检测方法:当外引入接上 12V电压后,首先观察接在PB3口的电源灯是否亮,用万用表测量LM2575的2引脚输出为是否为5V,测量MC33269的输出端接的二极管的负极电压是否为3.3V,若测量的值是5V或3.3V左右,说明是电源转换芯片正常,否则,芯片不正常,具体的检测如下表6.1所示。(2)时钟电路本设计使用的是外部晶振7.3728MHz,具体用示波器测量的波形的频率是否为7.3728MHz。(3)空调开关控制电路空调开关电路主要是能够通过该电路实现遥控器的电源开关,具体是引出一根5V电压的导线,点触到继电器的一端,看是否集电极是否吸合(有声音),观看遥控器是否能够正常开关电源。若遥控器被正常开关,则空调控制电路正常,否则,不正常。6.1.2 遇到的问题及解决问题:当单片机的PB0口加以5V电压的时候,继电器不吸合,再用万用表检查在光耦第一通道输出的电压只有2.81V,本应该有12V左右。原因:光耦的输出端不正常以及使用的限流电阻1K过大。解决:当重新更换光耦和240的电阻后,电路能够正常控制空调的开关。 6.2 软件调试 软件主要有温度采集模块、空调开关控制模块和通信模块。各个模块逐一调试实现各个模块功能,然后整合各模块整体实现总体功能。 6.2.1 各模块的调试及实现(1)温度采集模块 按照DS18B20的严格时序要求,读取总线上的数据,传到单片机的IO上,再通过串口传到上位机上的串口调试工具上显示出来。下面来阐述主要调试步骤: a、测试其中一个DS18B20读出来的温度正确性;从DS18B20读出来的数据有高低字节共16位,前5位是符号位,中间的7位是温度的整数部分,后4位是二进制的小数部分,通过配置寄存器来决定温度分辨率是(如9位为0.5)。例如是0000,0101,0001,0011,表示的是+82.5度,1111,1010,1011,0000则要取反加1,0000,0101,0100,1111+1=0000,0101,0101,0000即就是-85C。若只取整数,只要高位TH=4,temp=TH|TL,temp即是获得温度的整数部分。b、温度精确到小数点一位DS18B20读出来的温度精确到小数点一位,出厂精度为12位,即是0.0625C,读到的温度低位的后四位乘以0.0625,保留小数点一位,必须乘以10后保留转化成整型后可以上传。上传的方式为十六进制,如下公式就是读取到的整数部分:temperature_Out1=(value_zero4);而小数部分则为:temperature_Out2=(value&0X0F)*0.0625*10;上传的温度时,要划分为两部分上传:例如上传21.1度,则显示的是02110,具体的程序如下:send10=temperature_Out1/10;send11=(temperature_Out1%10)出风口的温度3度以上,说明已经正在开启空调;进风口的温度=出风口的温度,说明空调已经关闭;若检测到的温度60C,说明空调已经坏了,有故障;具体的程序如附录二。(3)DS18B20工作状态处理 a、若读取不到温度时,则保留上一次读的温度并计数, 连续200次都读取不到温度,就置18B20故障标志,一旦读到温度后,就将标志和计数都清0;b、当读出来温度后,有两种情况,即读取的温度不正确和与上一次读到的温度相差太大,具体如下所述处理的方法:、温度不正常:在下无18B20故障下读取到温度,但不在机房正常的温度之间,具体是判断温度是否在(0-60度)之间,如果在属于正常,若不在就保留上一次温度并计数,连续200次都不在,则置18B20故障标志和计数,若下次读到的温度在正常范围之内,则清除标志和计数清0。、读到正常温度:读出来的温度与上一次读出来的温度相差10度以上,则这次的温度不正确,保留上一次的温度值和计数,连续200次都相差10度以上,则置就置18B20故障标志,若下次读到相差在10度以内温度了,标志和计数数就清0。(4)通信模块编写接受中断函数void Receives(void),实现串口的接收,接收好就直接判断是否接受正确,再改成发送状态,发送一个测试字节,标志通讯正常。(5)分析及执行命令模块识别上位机传达的指令并相应的处理后就执行指令,当上位机下达开启空调命令时,遥控器就要开启电源使空调打开;当上位机下达关闭空调命令时,遥控器就要关闭电源使空调关闭;当下达空调器托管时,控制器就通过实际的温度值与空调实际的开关状态来使空调开还是关。在托管情况下,当实际的温度高于上限值时,控制器就开启空调,这时要是已经开启空调,就保持原来的状态;当实际的温度低于下限值时,控制器就关闭空调,这时要是空调正在关闭状态,就保持原来的状态;当实际的温度湿在所设温度范围之内,就保持原来的状态不变。 6.2.2 遇到的问题及解决1、DS18B20读不出温度,一直上传的是0805 原因分析:可能18B20线断开或脱落和程序运行也需一定的时间,本身DS18B20要求的时序就很严格。解决:检查所接的电路可能断了,需要在程序上做相应的延时调整即可读取到正确的温度。2、DS18B20读的温度不准确原因:处理读出的温度不正确,应该是,前5位是符号位,中间的7为是温度的整数部分,后4位是二进制的小数部分。解决:采用了正确位处理即可读取到准确的温度。6.3 系统测试将设计中的硬件和软件各模块成功实现后整合起来,实现系统整个功能,下面分别阐述主要模块实现的功能。(1)读取DS18B20温度转换本设计中按照严格时序读取DS18B20存贮器中的高位和低位共16位数据,前5位为符号位,中间7位为温度整数部分,后4位为小数部分,本设计确定默认出厂精度12位,即可精确到0.0625,读取到的数据以及上传到上位机的温度值如表6.1所示,表6.1 DS18B20温度转换实现表实际的温度数字输出(二进制)数字输出(十六进制)转换温度+24.50000,0001,1000,100001880245+25.30000,0001,1001,010101950253+26.10000,0001,1010,000101A10261+27.60000,0001,1011,101001BA0276通过上面软件对DS18B20读取的温度转换实现表,采集到了准确的温度值,实现了温度采集模块,基本达到了设计要求。(2)通信模块功能实现表 通信模块主要分为上位机查询和控制器(下位机)上传两种:当上位机发送地址帧时,下位机应返回地址、空调运行状态、控制器的状态、指令执行状态以及两个DS18B20上传的温度值:当上位机发送开启、关闭空调和托管命令的时候,下位机应该做出相应的开启、关闭和托管反应,并上传和查询地址帧一样格式的数据,具体的实现表6.2如下所示:表6.2 通信功能实现表上位机发送的命令下位机(控制器)上传及执行状况命令十六进制十六进制意义执行状况地址帧7878 00 00 00 02 70 02 40 02 45 02 44 03 BC地址、空调关、设备正常、未执行命令、温度上限值27、温度下限值24、进风口温度24.5、出风口温度24.4、结束数据、校验和开机5A 01 02 30 02 70 02 40 01 4278 00 00 02 02 70 02 40 02 45 02 44 03 BE地址、空调关、设备正常、执行开机命令、温度上限值27、温度下限值24、进风口温度24.5、出风口温度24.4、结束数据、校验和继电器吸合并开启遥控器的电源,开启空调关机5A 00 02 30 02 70 02 40 01 4178 01 01 01 02 70 02 40 02 45 02 44 03 BF地址、空调开、设备故障、执行关机命令、温度上限值27、温度下限值24、进风口温度24.5、出风口温度24.4、结束数据、校验和继电器吸合并关闭遥控器的电源,关闭空调托管(温度低于下限值,关闭空调)5A 02 02 30 02 70 02 40 00 4278 01 00 03 02 70 02 40 02 45 02 44 03 C0地址、空调开、设备正常、执行托管命令、温度上限值27、温度下限值24、进风口温度24.5、出风口温度24.4、结束数据、校验和继电器吸合并关闭遥控器的电源,关闭空调通过上述通信实现表,可以看出通信模块基本完成了设计的标准。(3)电源模块实现主要检测本设计中12V转5V的芯片LM2575-5的工作状况,检测结果如下表6.3所示:表6.3 LM2575-5芯片工作状态检测表电源供给(V)LM2575理论输出(V)LM2575实际输出(V)11.995.004.9712.045.004.9712.135.004.9912.155.005.00根据上面的检测LM2575的转换的电压表,可以看出该电源模块实现了12V转5V的功能。6.4 结论本设计是以ATmega8单片机为主控芯片的空调节能控制器,分为硬件和软件部分,主要有通过DS18B20温度传感器采集空调进风口和出风口的温度实现了温度采集功能,通过温差来判断空调开关的状态实现了判断空调开关状态功能,通过上位机的串口调试器来发送开启和关闭的状态实现了通信功能,通过继电器开启和关闭遥控器的开关电源,实现了控制空调开关功能。最终整个系统在托管命令下,判断实际温度高于温度上限值时,关闭了空调;当实际温度低于下限值的时候,开启了空调,同时也可以通过中心强制的开关空调,实现机房空调节能目的。第七章 总 结本设计是以ATmega8单片机为主控芯片的空调节能控制器,实现了温度采集模块、空调开关控制模块以及通信模块。该设计不仅能够兼容到机房监控中心下,受到中心的控制,使其强制的开启和关闭空调,还能够在托管情况下,合理的开关空调,增加了温度的控制范围,减小了空调压缩机的频繁关停,延长了空调的寿命,不仅让机房的所有设备正常的运行,还能够节约电能,提高了节电效率,达到了很好的节能效果。虽然本设计能过大体上都能实现,但还是存在着不足,控制空调的开关必须要购买万能遥控器才能控制多种品牌的机房空调,它要是能够再次学习空调遥控器的红外编码,将空调的开关红外编码学习到EEPROM中,用控制器发送红外编码来直接控制空调的开关,不需要继电器和光耦来隔离万能遥控器,避免花费的过多的成本费,就可以很好的控制空调的开关。附录一 空调控制器原理图和PCB板图(1)空调控制器原理图(2)空调控制器PCB板图附录二 空调节能控制器C语言程序代码(1)主程序模块void main(void) uchar i,j=0;uchar temp; SPL=0X5F; /将堆栈置于顶端 SPH=0X04; PORTB=0x00; DDRB=0x3B; /PB0,PB1输出 CLI(); /cpu关全局中断/ /-WATCHDOG TIME init-/ WDTCR=(1WDCE)|(1WDE); /WDT ENABLEWDTCR=(0WDCE)|(1WDE)|(1WDP2)|(0WDP1)|(1WDP0);WDR();TIMSK|=1TOIE0; /T0中断使能TT0=0xB7; /T0设初值TCCR0=0x05; /启动T0,1024分频 PORTC=0x30; /PC4、PC5设置上拉DDRC=0; /设置PC口为输入UCSRA=0x21; /MPCM=1,多机通讯模式允许UCSRB=0x9C; /接收、发送结束中断使能,接收、发送使能 9位 数据寄存器空中断禁止UCSRC = 0x86; /异步,八位数据,无校验, 一个停止位 UBRRH=0x00;UBRRL=47; /波特率9600PORTB&=0xDF; /设定487为接收状态PORTB|=0x08; /运行灯灭/ WDTCR=0x08; /启用看门狗,溢出时间16.3m
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 空运出口货物航空货运代理及仓储服务合同范本
- 韩式发型设计工作室技师劳务合作合同样本
- 离婚后房产、存款及子女抚养权益分配合同范本
- 物业权让与担保合同范本:酒店物业权益担保
- 离婚协议书模板定制与婚姻法律风险评估合同
- 农村生活垃圾收集、运输及资源化利用合同
- Linux服务配置指南
- 2025年燃气燃油热水炉购销与节能改造及维护合同
- 2025版快速响应卷帘门采购与安装施工合同
- 学校水暖维修合同协议书范本6篇
- 铁路工程设计防火规范
- 外贸客户验收设备报告工厂测试FATSAT
- 国开电大外国文学形考
- 函数的概念学习任务单-高一上学期数学人教A版(2019)必修第一册
- 产品技术规格书模板
- 《绿色建筑评价标准》解读
- 颈脊髓损伤患者护理查房PPT
- 小学数学 北师大版 六年级上册 第二单元第1课时《分数混合运算(一)》 课件
- 浙大中控DCS图形化编程(“模块”)共248张课件
- 自采商品管理流程
- 建设工程文件收集整编系统
评论
0/150
提交评论