1、毕业设计设计题目基于单片机的吊扇的多功能控制系统的设计学生指导教师教授专业(年级、班级)电子信息工程2011级1班学院机电工程学院年月日目录摘要错误未定义书签。1绪言错误未定义书签。11课题背景312课题研究的目的和意义22系统的控制特点与性能要求43本设计用到的元器件简介531INTER公司AT89C51单片机简介532、AT89C2051芯片简介633DS18B20温度传感器64硬件设计741总体硬件设计742直流稳压电源的设计8421单相桥式整流电路9422滤波电路10423稳压电路1043电机调速模块11431电机调速原理11432电机控制模块硬件设计1144温度显示与控制模块设计12
2、441温度检测硬件模块设计12442温度显示硬件模块设计135软件设计1451数字温度传感器模块程序流程图1652电机控制模块1653人机接口186总结与展望197致谢错误未定义书签。参考文献20附录错误未定义书签。摘要本设计主要介绍一种多功能吊扇的设计方案。该系统以AT89C51芯片的单片机为核心,采用通用的温度传感器来对环境温度的进行监控,同时系统随着环境温度的变化来改变电机的运行状态。本设计采用的温度智能控制,使吊扇可以感知环境的温度,从而调节吊扇的转速,达到适合人们工作效果。用户可以选择这种智能调速的方式,也可以选择手动设定的方式来控制转速。而定时工作功能可以让用户自己控制吊扇的工作时
3、间的长短,以提供更人性化的服务。关键词AT89C51多功能吊扇温度传感器无极调速1绪言主要阐述了多功能吊扇的研究背景,现状,发展方向,明确的指出了制作多功能吊扇所用到的元器件,以及各个元器件的功能描述。11课题背景我们通常看见的吊扇一般只有四个或五个风速档,用的是人工开关,感知不到室内的温度,只是人为的调节用哪个档。而多功能吊扇这个设计是一个新思想,它采用的是广泛应用的AT89C51单片机。通过单片机与温度传感器的结合,把它应用到家用吊扇转速的精确控制,能够给人们提供更加人性化的服务。(1)多功能吊扇简介它使用直流电动机的控制,以模拟电路为基础,运算放大器、非线性集成电路以及数字电路组成,使得
4、对吊扇各档风量调节更加细微,使得吊扇的控制更加人性化,同时它也具有全自动、智能化,制作容易的优点。使用温度传感器、专用控制集成电路和单片机,实现当室温达到所设定开启的温度时,吊扇自动开启,而且还可以根据室温的变化自动调节风速;当室温低于所设定的温度时,吊扇自动关闭。(2)多功能吊扇设计目的5月份过后,天气会越来越热,特别是到了盛夏更加炎热。现在可以帮助人们纳凉工具主要有空调、普通吊扇、电风扇、蒲扇、纸扇等。而吊扇通常是人们的最佳选择。人们常常整天整夜的使用,一旦温度稍有变化,感冒人数就会急剧增加;蒲扇和纸扇价格低廉,但不自动,人们通常不会用它。基于这种情况下,多功能吊扇从此产生。我们的生活在飞
5、速发展,人们也越来越忙。在炎热的夏天,到家都想好好休息,消除自己整天的疲劳,而多功能吊扇的设计就解决了这些问题。多功能吊扇是通过单片机控制来实现直流电动机运转频率的自动调节,从而达到改变风速的目的。此设计用到AT89C51单片机,它是把微处理器,存储器(RAM和ROM),输入/输出接口以及定时器/计数器集成在一起的集成电路芯片。他与集成电路相结合,组成一个设定温度,感温,控制和输出于一身的模块。利用单片机AT89C51和一些电路对室温进行探测,从而对吊扇进行开和关、定时等一系列控制。12课题研究的目的和意义面临庞大的市场需要,需要提高电风扇的市场竞争力。使之在技术含量上有所提高,应使风扇不仅功
6、能多样,操作简便,而且更加安全可靠。为此,在将要走出大学校门,撰写毕业论文之计,我选择了基于单片机的遥控交流无级调速系统作为我的毕业设计的研究课题,本课题以”智能电风扇作为载体来进行研究。大学学习期间,分别学习了单片微机原理及其应用,传感器检测及应用技术等课程,对单片机有一定的了解,特别是MCS51系列的单片机的特点及其应也较常熟悉;而对于传感器的一些应用也略知一二。所以,在设计智能电风扇的时候,给电风扇赋予了更多人性化的设计,如,遥控控制、定时控制,无极调速等,使电风扇更加人性化,相信其丰富的功能,人性化的设计将大大提高电风扇的市场竞争力。而且最主要的是通过智能的控制使得科技的应用深入生活中
7、,让广大的人民能享受到科技带来的方便2系统的控制特点与性能要求本设计主要目的是使普通的电风扇的功能更加强大,使操作简单化,智能化,主要实现以下几个部分的功能1温度控制功能电风扇可以感知环境温度,以调节风扇的转速,达到更好的工作效果。2定时工作功能该定时功能可以让自己制定风扇工作时间的长短,以提供更人性化的服务。3、无级调风功能该功能可解决普通电风扇档位风速变化过大的缺点,可实现任意风速。4、遥控控制该功能可以让用户远距离控制电风扇,并选择电风扇等运作状态。5、实时温度显示该功能方便用户根据室温调节电机的启动温度点,达到节能目的。3本设计用到的元器件简介31INTER公司AT89C51单片机简介
8、AT89C51是一种带4K字节闪存可编程可擦除只读存储器的低电压、高性能CMOS8位微处理器,俗称单片机。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。外形及引脚排列如图所示主要特性与MCS51兼容4K字节可编程闪烁存储器寿命1000写/擦循环数据保留时间10年全静态工作0HZ24MHZ三级程序存储器锁定1288位内部RAM32可编程I/O线两个16位定时器/计数器5个中断源可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路32、AT89C2051芯片简介AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1
9、000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS51指令集和输出管脚相兼容。33DS18B20温度传感器DS18B20内部结构如图321所示,主要由4部分组成64位ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DS18B20的管脚排列如图352所示,DQ为数字信号输入输出端;GND为电源地;VDD为外接供电电源输入端(在寄生电源接线方式时接地,见图382)。ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码,每个DS18B20的64位序列号均不相同。64位ROM的排的循环冗余校验码(CRCX8X5X41)。RO
10、M的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。图321DS18B20的内部结构4硬件设计41总体硬件设计系统总体设计框图如下41所示64位ROM和一线端口存储和控制逻辑高速暂存器8位CRC生成器供电方式选择配置寄存器低温触发器TL高温触发器TH温度传感器INTERNALVDDVDD图41系统总体设计框图对于单片机中央处理器的方案设计,根据要求,我们可以选用具有4KB片内EPPROM的AT89C51单片机作为中央处理器。作为整个控制系统的核心,AT89C51内部已包含了定时器、程序存储器、数据存储器等硬件,其硬件能符合整个控制系统的要求,不需要
11、外接其他存储器芯片和定时器件,方便地构成一个最小系统。整个系统结构紧凑,抗干扰能力强,竞价比高。是比较合适的方案。42直流稳压电源的设计直流稳压电源主要功能是为后两个部分提供电压的输出。在设计中分出了2个支路,分别输出5V电压。直流稳压电源主要由电源变压器、整流电路、滤波电路和稳压电路四部分组成。框图如图42所示。图42直流稳压电源方框图遥控器红外线发射红外线接收模块AT89C51单片机系统数字温度传感器键盘输入模块温度显示模块电机控制模块微光显示模块VFVRV1V2电源变压器整流电路滤波电路稳压电路421单相桥式整流电路整流电路主要实现将交流电转换成直流电。实现这以目标主要是靠二极管的单向导
12、电作用,因此二极管是构成整流电路的关键元件。我采用的是单相桥式整流电路。本设计整流电路如图4211所示。图4212单相桥式整流电路图在图中,输入电压V1通过电源变压器成V2。它的作用是将交流电电压V1变成整流电路要求的交流电压V2。其中的电阻式要求支流供电的负载电阻。四个整流二极管D1到D4结成电桥的形式。通过负载R的电流I以及电压V3的波形如图4212。它们都是单方向的全波脉动波形。220VAB234ILV2422滤波电路在整流电路输出波形中由于有较多的波纹成分,在所要求的波形不太符合。所以在整流电路以滤去整流输出电压的纹波。而滤波电路常有电容滤波,电感滤波和RC滤波等。本电路采用的是电容滤
13、波电路。如图422所示。图422电容滤波电路423稳压电路典型应用电路如图423所示。图中C1、C2用于频率补偿,防止自激振荡和高频干扰;C3采用电解电容,以减少电源引入的低频干扰对输出电压的影响;D是保护二极管,当输入端短路时,给C3一个放电的通路,防止C3两端电压激穿调整的发结。图423稳压电路43电机调速模块431电机调速原理通过单片机控制可控硅的导通角,从而改变加在电机两端的有效电压来调节电动机的运转。可控硅导通条件如下1)阳阴极间加正向电压;2)控制极阴极间加正向触发电压;3)阳极电流IA大于可控硅的最小维持电流IS。432电机控制模块硬件设计电路中采用了过零双向可控硅型光耦MOC3
14、041,集光电隔离、过零检测、过零触发等功能于一身,避免了输入输出通道同时控制双向可控硅触发的缺陷,简化了输出通道功离2驱动电路的结构。所设计的可控硅触发电路原理图见图23其中RL即为电机负载,其工作原理是单片机及响应用户参数设置,在I/O口输出一个高电平,经反向器反向后,送出一个低电平,使光电耦合导通,同时触发双向可控硅,使工作电路导通工作,给定时间内,负载得到的功率为PUINN式中P为负载得到的功率,KW;N为给定时间内可控硅导通的正弦波的总个数;U为可控硅在一个电源周期全导通时所对应的电压有效值V;I为可控硅在一个电源周期全导通时所对应的电流有效值A。由式(1)可知,当U,I,N为定植时
15、,只要改变N的大小即可控制功率的输出,从而达到调节电机转速的目的。图432电机控制原理44温度显示与控制模块设计441温度检测硬件模块设计图441以MCS51系列单片机为例,画出了DS18B20与微处理器的典型连接。图441(A)中DS18B20采用寄生电源方式,其VDD和GND端均接地,图441(B)中DS18B20采用外接电源方式,其VDD端用3V55V电源供电。假设单片机系统所用的晶振频率为12MHZ,根据DS18B20的初始化时序、写时序和读时序,分别编写了3个子程序INIT为初始化子程序,WRITE为写(命令或数据)子程序,READ为读数据子程序,所有的数据读写均由最低位开始。(A)
16、寄生电源工作方式(B)外接电源工作方式VOVDDGND47K3V55V3V55VUPP33DS18B20VOVDDGND47K3V55V外接电源3V55VUPP33DS18B20接其它的一线装置主机控制DS18B20完成温度转换必须经过三个步骤初始化、ROM操作指令、存储器操作指令。必须先启动DS18B20开始转换,再读出温度转换值。假设接一单元,再按照温度值字节的表示格式及其符号位,经过简单的变换即可得到实际温度探测电路。单线数字温度传感器DS18B20采用一线总线接口,大大节省了系统的I/O资源。如图442所示。图442温度传感器DS18B20电路442温度显示硬件模块设计温度传感器可以选
17、用LM324A的运算放大器,将其设计成比例控制调节器,输出电压与热敏电阻的阻值成正比,但这种方案需要多次检查后方可使采样精确,过于繁琐。所以我采用老性能更为优越的DS18B20数字温度传感器,它可以直接将模拟温度信号转化为数字信号,降低了电路的复杂程度,提高了电路的运行质量。本模块以DS18B20作为温度传感器,AT89C51作为处理器,配以温度显示作为温度控制输出单元。整个系统力求结构简单,功能完善。电路图如图443所示。系统工作原理如下DS18B20进行现场温度测量,将测量数据送入AT89C51的P37口,经过单片机处理后显示温度值,并与设定温度值的上下限值比较,若高于设定值或低于设定下限
18、值则控制电机转速进行调整。PIAIR65VU6VDDDQGND图443DS18B20温度计原理图5软件设计软件总体流程描述在主程序初始化之后,开始反复检测各模块相关部分的缓冲区标志,如果缓冲区标志置位,说明有相应的数据需要处理,然后主程序调用响应的处理子模块,对于温度传感器,我们采用定时采集数据的方法,在定时中断子程序中,采集相应的数据,并进行判断,如果是异常数据,则将数据保存在系统缓冲区,同时置对应的缓冲区标志。然后主程序将会调用相应的子程序进行处理。软件主流程图见下页图52所示。当有按键按下的时候,采用键盘中断子程序扫描相应的键盘码,然后发给主程序,置对应的键盘按键标志位。在主程序中,当有
19、键盘按下的时候,调用对应的键盘处理子程序。图52软件主流程系统初始化LED显示系统温度值MCS51单片机数据缓冲区标志位DS18B20数据缓冲区置位键盘按键缓冲区置位红外线信号数据缓冲区标志位是否定时DS18B20处理子模块键盘扫描处理子模块红外接收子模块定时处理51数字温度传感器模块程序流程图图521数字温度传感器模块程序流程图52电机控制模块电机涉及到转速和摆头两个方面。风扇的转速由光耦合器触发导通角控制,摇头部分可以使用普通电风扇蜗杆部分摇头调速,只是把它用一个电磁阀来控正常设置异常系统初始化开始进行测温设置参数初始化DS18B20启动DS18B20测温调用相应的键值处理程序调用相应的控
20、制程序内部判断调用子程序调用读子程序输出显示结束制其导通与断开来实现摇头控制。在此基础上我们通过软件对风扇的转动进行精细的控制,以实现多种风类型。对于各种风类型我们依照如下定义正常的芯片,使用默认的12位转换精度,外接供电电源,子程序GETWD读取的温度值高位字节送WDMSB单元,低位字节送WDLSB风风扇按设定之强,中,弱风互速运转。图522电机控制模块自然风风扇马达按预编电脑程序作不规则运转,配合风速键之设定,可分强自然风,中自然风,弱自然风,模仿大自然之风吹效果,令风量更柔和更舒服。睡眠风风扇马达进入自然风电脑程序控制,其原理是人体的体温会在睡眠后慢慢下降。风扇的风量亦会慢慢减弱,以免入
21、睡后着凉,其减弱规律如下当最初设定为强风时,风扇按强自然风运转半小时,后转为中自然风,半小时后再变为弱自然风,直至预置时间结束,或被关掉为止;当最初设定为中时,风扇按中自然风运转半小时,转为弱自然风,直至预置时间结束,或被关中断入口保护现场SETB24H,001N100N00,26H中断返回回复现场还原初始化数据开FANL及其显示,CLR24H,0关FANL及其显示掉为止;当最初设定为弱自然风时,风扇按弱自然风运转,直至预置时间结束,或被关点为止。如图522所示。从软件层角度来说,就是根据前一刻的风扇状态以及用户的输入来确定当前时刻所要输出的风类型和风速。从软件驱动层角度来说,就是根据软件层确
22、定的当前时刻风类型和风速量化所要输出的风速值。从硬件驱动层角度来说,对于风速转速的控制,最终是1根线的选通以线上可控硅导通时间的控制,也就是说,将软件驱动层量化出的风速值。转换成1根线的选通以及选通的线上可控硅的导通时间。53人机接口本部分功能主要便于用户使用电风扇,使用户只要简单的操作,就能实现需要的全部功能,主要有以下几个方面组成键盘操作模块在电风扇底座部分也有一个23小键盘,按键功能分配如图435所示图523风扇控制面板示意图可以进行风的强度,类型,定时等系统设置。与之对应的是键盘扫描处理模块。基本思想如下如果有按键按下,中断处理子程序首先进行扫描按键,得到对应的正确的键盘扫描码,然后根
23、据键盘扫描码得到对应的按键号,置有按键标志,并将按键号保持在全局变量中。系统不停的判断有按键标志,如果没有则跳过,如果有按键按下,则进行响应的按键处理,同时实时的在LED上显示,并将最终结果反馈到系统各部分。对应的键盘处理过程的软件流程图如图524所示。风型风强定时摇头增加减小图524键盘处理过程的软件流程图6总结与展望本文主要完成了如下工作1分析了电风扇在国内市场上所处的地位,以及我所设计研究的智能电风扇主要功能与作用。2从解决智能电风扇温度控制入手,讨论了温度传感器在本设计中的作用不等不等不等相等相等相等相等相等标志位处理程序键值与(01H)比较键值与(02H)比较键值与(03H)比较键值
24、与(04H)比较键值与(05H)比较其它键不处理处理K5子程序处理K4子程序处理K3子程序处理K2子程序处理K1子程序返回主程序清处标志位与地位以及实现了遥控无级调速及各种不同类型风类在电风扇上的应用。3从总体的设计布局入手,讨论了单片机在本设计中的作用与主导地位。在本课题的研究过程中,对单片机和传感器有了一定的了解,对设计智能电风扇有了一个总体的设计思路。其中有很多芯片是我们所没有学过的,但是通过设计中的学习,我查阅了大量的资料,尤其是到图书馆去询问老师,通过在校园网的CNKI网站查到了许多对我有很大帮助的资料,并且和同学们一起讨论,使我对这些芯片有了很深刻的了解,并学会将其运用在具体的实践
25、当中。但是在很都方面还有待于进一步的改进和完善。在以后的工作与学习中,需要更加努力的学习理论知识,在本身掌握知识的基础上还要看大量的书籍,还有要提高实践能力,才能对这些专业的知识做进一步的学习和研究。7致谢在论文完成之际,我首先要向我教我机电一体化设计与应用及我的毕业论文指导老师何忠胜老师表示最真挚的谢意。是他将扎实的理论知识传授与我,如果没有他们的谆谆教诲就没有我这篇论文的设计思路。在论文写作期间,何忠胜老师给了我很多指导和帮助,给我提了很多中肯的意见,并在我多次的修改期给我很多激励,让我有勇气克服了心理的压力,很好的完成了论文的文稿,虽然的写作的过程中,我遇到了很多的麻烦,但是何老师都不厌
26、其烦的帮我修改,提出了很多的建议,在这里我要忠诚的感谢他;我还要特别感谢的是黄立峰、李伟文、张志田、雷福祥等各位老师给予我的无私的帮助,正是有了他们的鼓励和帮助,我的毕业论文才得以顺利的完成。到现在为止,论文基本就已经完成了,但是由于本人学识有限,以及现有知识的有限加之时间仓促,文中不免有错误和待改进之处,真诚欢迎各位老师,同学提出宝贵意见参考文献1陈杰,黄鸿等传感器与检测技术北京高等教育出版社,20028252张肇富采用温度传感器的电扇江苏电器,1994,23胡乾斌单片微型计算机原理与应用武汉华中理工大学出版社,19974陈丽芳单片机原理与控制技术南京东南大学出版社,20035刘迎春,叶湘滨
27、传感器原理设计与应用长沙国防科技大学出版社,20026何立民单片机应用技术选编北京北京航空航天的学出版社,20047李昔华王延川电风扇智能控制模块的设计渝州大学学报自然科学版,2000附录程序清单/TOUWENJIANH/TYPEDEFUNSIGNEDCHARBYTETYPEDEFUNSIGNEDINTWORD/以下管脚配置/DS18B20部分SBITDQP34/显示部分SBITDBP20SBITCPP21/发光显示部分SBITLED_DINGSHIP00SBITLED_SHOUDONGP01SBITLED_ZIDONGP02SBITLED_KUAIP03SBITLED_ZHONGP04SBI
28、TLED_MANP05/键盘定义部分DEFINEWUJIAN0X3FSBITKEY1P10/状态转换/启动SBITKEY2P11/10/1SBITKEY3P12/10/2SBITKEY4P13/3SBITKEY5P14/0确定/继电器控制部分SBITJDQ1P24/0表示开通,1表示关断SBITJDQ2P25SBITJDQ3P26/蜂鸣器部分SBITCALLP27/低电平鸣叫/DS18B20C/INCLUDEINCLUDE“TOUWENJIANH“/延时子程序/EXTERNVOIDDELAYWORDUSECONDSFORUSECONDS0USECONDS/复位子程序/STATICBYTEOW_
29、RESETVOIDBYTEPRESENCEEA0DQ0/PULLDQLINELOWDELAY45/LEAVEITLOWFOR480US/551USDQ1/ALLOWLINETORETURNHIGHDELAY4/WAITFORPRESENCE/61USPRESENCEDQ/GETPRESENCESIGNALDELAY40/WAITFORENDOFTIMESLOT/491USEA1RETURNPRESENCE/PRESENCESIGNALRETURNED/0PRESENCE,1NOPART/从1WIRE总线上读取一个字节子程序/STATICBYTEREAD_BYTEVOIDBYTEIBYTEVAL
30、UE0EA0FORI8I0IVALUE1DQ0/PULLDQLOWTOSTARTTIMESLOTDQ1/THENRETURNHIGHUNSIGNEDCHARIFORI0I0I/WRITESBYTE,ONEBITATATIMEDQ0/PULLDQLOWTOSTARTTIMESLOTDQ0DQVAL/6USDELAY5/HOLDVALUEFORREMAINDEROFTIMESLOT/74USDQ1VALVAL1EA1DELAY5/读取温度/WORDREAD_TEMPERATUREVOIDUNIONBYTEC2WORDXTEMPOW_RESETWRITE_BYTE0XCC/SKIPROMWRITE_
31、BYTE0XBE/READSCRATCHPADTEMPC1READ_BYTETEMPC0READ_BYTEOW_RESETWRITE_BYTE0XCC/SKIPROMWRITE_BYTE0X44/STARTCONVERSIONRETURNTEMPX/求解温度/EXTERNBYTEREAL_TEMVOIDWORDWENWENREAD_TEMPERATURERETURNWEN4/MAINC/INCLUDEINCLUDE“TOUWENJIANH“/数据区DEFINETIME_DEFAULT41BYTEDINGSHI_TIMETIME_DEFAULT/存放定时时间BITFLAG_DINGSHI0/0表
32、示没有定时WORDDINGSHI_JISHU31000/1000601分钟/BITFLAG_DINGSHI_DELAY0/1表示有BYTEDINGSHI_DELAY100/DEFINEHWX_DELAY_CONST3/人体感应延时时间BYTEHWX_DELAYHWX_DELAY_CONST/用于保存红外线触发延长时间WORDHWX_JISHU10/BYTEWENDU0/用于存放温度值/DEFINELOW_WEN18DEFINEMID_WEN20DEFINEHIG_WEN24DEFINEVHI_WEN28/BYTETIME_STOR100/存储主观时间/触发显示BYTEWENDU_STORLOW
33、_WEN/存储主观温度/触发显示/ENUMSTATION0ZIDONG,DINGSHI,SHOUDONG,WEAKSTATE/函数说明区EXTERNBYTEREAL_TEMVOIDEXTERNVOIDDELAYWORDUSECONDSVOIDMINGJIAOVOIDVOIDDISPLAYBYTEINPUT,BITKKLVOIDAUTO_SPEEDVOIDVOIDWEAK_DEFAULTVOID/主程序/VOIDMAIN/定时器0用于键盘扫描TMOD0X01|TMOD/定时器0的1方式TH00XD8TL00XF0/定时器0初始化10MS扫描一次/定时器1用于显示TMOD0X10|TMOD/定时器
34、1的1方式TH10X15TL10XA0/定时器1初始化60MS中断一次/外部中断TCONTCON|0X01/外部中断0都下降沿触发/以下为开启部分IP0X01/两个定时器同等优先级IE0X8B/开启定时器0,1,外部中断0中断/WHILEREAL_TEM85AUTO_SPEEDLED_ZIDONG0/刚开始为自动方式P1P1|0X7C/拉高五个键盘WENDU_STOR100/两个不可能值/用于启动显示TIME_STOR100/两个不可能值/用于启动显示/TR01/开启定时器0TR11WHILE1WENDUREAL_TEM/定时器0中断服务子程序功能进行键盘处理说明键盘输入为P10到P14/VO
35、IDTIME0VOIDINTERRUPT1BYTEJIANPANTH00XD8TL00XF0JIANPANP1IFJIANPANWUJIAN/如果还有键盘值提取键盘值DELAY500/延时消抖JIANPANP1IFJIANPANWUJIANGOTOTIME_OUTSWITCHSTATECASEDINGSHIIFKEY10/状态转换时做些相应的处理STATESHOUDONGLED_SHOUDONG0FLAG_DINGSHI_DELAY0DINGSHI_DELAY100TIME_STOR100WENDU_STOR100/触发MINGJIAOWHILEKEY10ELSEIFKEY20/加分IFDIN
36、GSHI_TIME10DINGSHI_TIME10DINGSHI_DELAY100/MINGJIAOWHILEKEY30ELSEIFKEY40/定时与否FLAG_DINGSHIFLAG_DINGSHIIFFLAG_DINGSHI1LED_DINGSHI0ELSELED_DINGSHI1DINGSHI_JISHU31000DINGSHI_DELAY100/MINGJIAOWHILEKEY40ELSEIFKEY50WEAK_DEFAULTMINGJIAOWHILEKEY50BREAKCASESHOUDONGIFKEY10/状态转换时做些相应的处理STATEZIDONGAUTO_SPEEDLED_S
37、HOUDONG1LED_ZIDONG0MINGJIAOWHILEKEY10ELSEIFKEY20/快1JDQ21JDQ31JDQ10/关断其它LED_ZHONGLED_MAN1LED_KUAI0MINGJIAOWHILEKEY20ELSEIFKEY30/中2JDQ11JDQ31JDQ20/关断其它LED_KUAILED_MAN1LED_ZHONG0MINGJIAOWHILEKEY30ELSEIFKEY40/慢3JDQ11JDQ21JDQ30/关断其它LED_ZHONGLED_KUAI1LED_MAN0MINGJIAOWHILEKEY40ELSEIFKEY50/停4WEAK_DEFAULTMIN
38、GJIAOWHILEKEY50BREAKCASEZIDONGIFKEY10/状态转换时做些相应的处理STATEDINGSHILED_ZIDONG1FLAG_DINGSHI_DELAY1DINGSHI_DELAY100/开始延时TIME_STOR100/MINGJIAOWHILEKEY10ELSEIFKEY20/快1JDQ21JDQ31JDQ10/关断其它LED_ZHONGLED_MAN1LED_KUAI0STATESHOUDONGLED_ZIDONG1LED_SHOUDONG0MINGJIAOWHILEKEY20ELSEIFKEY30/中2JDQ11JDQ31JDQ20/关断其它LED_KUA
39、ILED_MAN1LED_ZHONG0STATESHOUDONGLED_ZIDONG1LED_SHOUDONG0MINGJIAOWHILEKEY30ELSEIFKEY40/慢3JDQ11JDQ21JDQ30/关断其它LED_ZHONGLED_KUAI1LED_MAN0STATESHOUDONGLED_ZIDONG1LED_SHOUDONG0MINGJIAOWHILEKEY40ELSEIFKEY50/停4WEAK_DEFAULTMINGJIAOWHILEKEY50BREAKCASEWEAKIFKEY10STATEZIDONGLED_ZIDONG0WENDU_STOR100/两个不可能值TIME_
40、STOR100/两个不可能值AUTO_SPEEDMINGJIAOWHILEKEY10BREAKTIME_OUT/定时器1中断服务子程序功能用于定时0060S/VOIDTIMER1VOIDINTERRUPT3TH10X15TL10XA0/红外线到记时EX00IFHWX_JISHU10DINGSHI_JISHU3ELSEDINGSHI_JISHU31000IFDINGSHI_TIME1DINGSHI_TIMEELSEWEAK_DEFAULT/5秒延时IFFLAG_DINGSHI_DELAY1IFDINGSHI_DELAY1DINGSHI_DELAYELSESTATESHOUDONGFLAG_DIN
41、GSHI_DELAY0DINGSHI_DELAY100LED_SHOUDONG0TIME_STOR100WENDU_STOR100/MINGJIAO/显示和温控SWITCHSTATECASEDINGSHI/在定时的时候只显示时间IFTIME_STORDINGSHI_TIMEDISPLAYDINGSHI_TIME,1TIME_STORDINGSHI_TIME/BREAKCASESHOUDONGCASEZIDONG/是否有定时,有则交替显示温度和时间,没有则只显示温度IFFLAG_DINGSHI0/STATICBYTEJIAOTI_JISHU20STATICBITFLAG_JIAOTI0IFJIA
42、OTI_JISHU21CP1/蜂鸣器鸣叫子程序功能只负责鸣叫就是/VOIDMINGJIAOVOIDBYTEIFORI0IVHI_WENJDQ21JDQ31JDQ10LED_ZHONGLED_MAN1LED_KUAI0/KUAIELSEIFWENDUHIG_WENJDQ11JDQ31JDQ20LED_KUAILED_MAN1LED_ZHONG0/ZHONGELSEIFWENDUMID_WENJDQ21JDQ11JDQ30LED_ZHONGLED_KUAI1LED_MAN0/MANELSEJDQ21JDQ31JDQ11LED_ZHONGLED_MANLED_KUAI1/TING/功能进入睡眠状态之前的准备/VOIDWEAK_DEFAULTVOIDFLAG_DINGSHI0/清楚定时标志DINGSHI_TIMETIME_DEFAULTDINGSHI_JISHU31000/FLAG_DINGSHI_DELAY0DINGSHI_DELAY100/STATEWEAK/进入睡眠状态JDQ11JDQ21JDQ31/关闭继电器LED_SHOUDONGLED_ZIDONGLED_DINGSHI1LED_KUAILED_ZHONGLED_MAN1/WENDU_STOR100TIME_STOR100