• 2.80 MB
  • 2022-04-22 13:43:14 发布

基于单片机的自动窗帘系统毕业设计.doc

  • 83页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'华科学院本科毕业设计(论文)基于单片机的自动窗帘系统设计摘要目前,家庭居住环境的采光及避光问题主要采用的是手动开闭窗帘,手动开闭不仅费力而且很多方面不够人性化,会对用户造成一定的困扰,本文设计的自动窗帘控制系统可以解决这些问题。本文主要阐述了自动窗帘控制的设计过程。以AT89C51单片机为控制核心,以光敏电阻和雨滴传感器为传感器件,以步进电机为执行器件。在设计的同时对单片机的理论基础和外围扩展知识进行了比较全面准备。硬件采用分块的模式,对整个系统的电路设计进行分析,分别给出了系统整体框图、显示电路、检测电路、系统总控制模块、等相关电路;随后说明系统软件的编写过程,同样采用的是分块的模式,且每一个模块都给出了相应的流程图。本设计利用单片机实现了半自动控制、自动控制、定时控制的相互转换,智能的控制窗帘的动作。通过调试,时钟控制、手动开关窗帘、自动开关窗帘等控制方面的设计基本达到了预期效果。具有较强的实用价值。关键词:单片机,自动窗帘,步进电机,自动控制。-79- 华科学院本科毕业设计(论文)SystemdesignbasedonsinglechipmicrocomputerautomaticcurtainAbstractNow,accordingtotherequirementsoflivingenvironments.Thispaperdescribestheprocessofintelligentcurtaincontroller.ThisdesignusesAT89C51microcontrollerasthecontrol,introducemicrocontroller-basedopticalcurtaincurtainsystem,themainstructuralprincipleofthehardwareandsoftwareprogrammingtoexplain.Inthedesignformonolithicintegratedcircuits,andperipheraltoexpandthebasicthetheoriesofknowledgewasfairlycomprehensivepreparation.Blockthemodelofhardwareused,thecircuitdesignoftheentiresystemtoanalyzetheoverallblockdiagramofthesystemaregiven,displaycircuit,photoelectricswitchcircuit,systemcontrolmodule,powerconversioncircuits,protectioncircuitsandotherrelatedcircuit;thendescribesthesoftwarethepreparationprocess,butalsobythesub-blockpattern,witheachmoduletodrawacorrespondingflowchart.Inthispaper,usetheAT89C51microcontroller,accordingtotheirdifferentmodes,toachievesemi-automaticcontrol,automaticcontrol,timingcontroloftheconversionandintelligentmotioncontrolcurtains.Debuggingbysimulation,clockcontrol,manualswitchcurtains,thecurtainsautomaticallyswitchthebasicdesignofsuchcontroltoachievethedesiredeffect,withastrongpracticalvalue.Keywords:SCM、intelligentcurtain、steppingmotor、automaticcontrol.-79- 华科学院本科毕业设计(论文)-79- 华科学院本科毕业设计(论文)-79- 华科学院本科毕业设计(论文)第1章绪论1.1研究目的和意义21世纪是科技飞速发展的时代,单片机的应用也随之越来越广泛。在这样高速发展的环境下,各种新型产品犹如雨后春笋,单片机的作用也越发重要单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域的广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的32位300M的高速单片机。单片机具有高集成度、高可靠性,控制功能强,低电压、低功耗,优异的性价比。由于这些优良的特性,单片机广泛的应用到工业控制,智能家电,汽车电子,楼宇自动化,医疗器械。日常生活中,验钞机、门禁系统、电子监控、变频空调等也使用到了单片机。在材料科学、工业技术、计算机技术的发展与进步的带动下,电路系统向着高度集成的方向发展。CPU的生产制造技术,也朝着综合性、技术性、实用性发展。其告诉的发展可以用日新月异来形容。其中单片机的重要性越来越越突出,在控制系统中的应用越来越普遍。要进行单片机系统的设计首先,要有一定的基础知识;第二,需要具有一定的软件设计能力,能够根据设计的要求,写出所需程序;第三,要灵活的把知识综合运用。另外,单片机也经常应用到一些小系统的设计。本系统就是依靠AT89C51单片机的优点顺利设计出来的。随着科技的发展,人们生活水平不断提高,使得人们对于居住的空间的环境有了更高的要求,人们希望居住空间更加的舒适、便捷。这是人类发展的必然规律。科技把人们的生活变的更加智能化,使人们生活的更加舒适、便捷。人们的生活离不开窗帘,它保护了人们的隐私。对于现代的建筑,对于窗帘的要求也越来越高,既能解决每天手动开关的麻烦,又能显示出生活的档次,所以窗帘自动系统会越来越普及。并且可以广泛的应用到普通住宅、宾馆饭店、写字楼等各种场所,因此自动窗帘系统有着广阔的市场前景,因此研究这方面的产品也显得更加的重要。由于我国的科技刚刚发展起来,各种科技产品还明显的落后于发达国家,人民的生活也刚刚开始富裕起来,许多智能系统也刚刚在我国兴起。但是,发展前景却广阔。这种系统可以为我们营造出高效、舒适、便捷的居住环境。并且它可以牵动一大批产业。如此广泛的应用,他的前景也必将非常广阔。-79- 华科学院本科毕业设计(论文)随着科学技术的飞速发展,人们的生活观念也在渐渐的发生转变。各种家电也在发生着变化。由于单片机技术和计算机技术的的不断成熟,家电越来越智能化。窗帘也不例外,在欧美等发达国家,智能窗帘系统已广泛应用。智能窗帘在国内算是高端前沿产业,市场广阔,有推广和应用的意义,在发达的欧美市场智能窗帘已经并不新鲜,已经广泛运用于平常百姓家中,所以有必要在国内推广。1.2国内外发展状况随着科学技术的飞速发展,人们的生活观念也在渐渐的发生转变。各种家电也在发生着变化。由于单片机技术和计算机技术的的不断成熟,家电越来越智能化。窗帘也不例外,在欧美等发达国家,电动智能窗帘已广泛应用。自动窗帘在国内算是高端前沿产业,市场广阔,有推广和应用的意义,在发达的欧美市场智能窗帘已经并不新鲜,已经广泛运用于平常百姓家中。本设计通过分析自动窗帘的发展和现状来规划其智能功能,从而对窗帘进行智能控制。采用步进电机为执行原件,以光敏电阻和雨滴传感器作为传感原件,AT89C51单片机作为控制芯片,辅助键盘和显示,实现自动窗帘的多项智能项目。自动窗帘控制系统设计过程主要分为以下几个章节:(1)绪论:介绍目前国内自动窗帘的发展现状和研究的目的和意义。总体设计方案:给出智能窗帘系统的总体方案设想,智能项目,和设计结构规划。(2)硬件设计:选用AT89C51单片机为核心的各种电路设计,包括复位电路,电源电路,时钟电路,步进电机控制电路,传感器电路,键盘/显示电路等一系列相关电路。(3)软件设计:主要介绍了各项功能的设计流程。(4)总结与展望:针对设计中的不足进行再思考以及提出自动窗帘控制系统功能的扩展,和对此设计发展前景的展望。1.3课题的目的任务和要求自动窗帘控制系统总体设计方案是确定能满足设计要求的总体方案环节。本章从系统功能的需求出发,规划并确定系统的总体结构,并在次基础上考虑了系统的可扩展性以及可实现性。-79- 华科学院本科毕业设计(论文)该系统除了具有一般窗帘控制系统的最基本功能以外,还通过单片机的控制实现了根据光照强度,空气湿度和设定时间自动开闭窗帘的功能,在选取设计方案和采用元器件方面,该设计本着简单实用经济的思想,尽量使电路的设计简单化,用最简单的电路布线和选用最经济实用的器件来达到设计的需求。智能窗帘主要有一下功能(1)手动控制:该功能是根据用户的需求通过按键进行窗帘的开关,此功能可以使窗帘的开闭处于任何一种状态;(2)光敏控制:根据光的强弱,实现窗帘的自动开关。(3)雨滴传感器控制:若传感器上有水滴,则窗帘自动关闭,水干后,自动开启。(4)时间自动控制:根据用户设置的时间来控制开启或者关闭窗帘。-79- 华科学院本科毕业设计(论文)-79- 华科学院本科毕业设计(论文)第2章系统方案论证2.1方案选取单片机在各种电子产品中的应用已经越来越广泛,很多的电子产品利用单片机所取得的便利性得到了人们的好评,所以本设计采用的控制元器件选用单片机。单片机的选择:单片机自70年代问世以来都以微处理器(MPU)技术及超大规模集成电路技术的发展为先导,通过广泛的应用领域拉动得到了蓬勃发展,单片机功能也日渐完善。由于单片机的应用,使许多领域的技术水平和自动化程度都大大提高,可以不夸张的说当今世界正在经受着一场以单片机技术为标志的新技术革命浪潮冲击。主要的单片机类型如下:(1)MCS-51系列单片机MCS-51系列单片机主要指Intel公司生产的以51位内核的单片机芯片,具有8位CPU、4K字节的ROM、128字节的RAM、同时可扩展外部64K字节RAM和ROM、两个16位的定时器、四个8位并行I/O口、一个全双工串行I/O口、21字节专用寄存器、五个中断源、片内自带振荡器、片内单总线等功能部件。(2)AT89C51单片机AT89C51是一种带4K字节FLASH存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压、高性能的CMOS8位微处理器,俗称为单片机。AT89C2051单片机是一种带2K字节闪存,可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用了ATMEL高密度非易失存储器制造技术制造,和工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在了单个芯片中,ATMEL的AT89C51是一种高效微控制器,而AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性较高且价廉的方案。外形及引脚的排列如图2-1所示:-79- 华科学院本科毕业设计(论文)图2.1AT89C单片机外形及引脚排列AT89C51单片机主要的特性如下:(1)和MCS-51产品指令系统完全兼容(2)4K字节在线编程Flash存储器,1000次擦写周期(3)工作电压范围4.0~5.5V(4)全静态工作模式:0~33MHz(5)三级程序存储器锁l内部RAM128×8字节(6)三十二个可编程I/O口线l两个16位定时/计数器(7)六个中断源(8)全双工串行UART通道(9)低功耗空闲和掉电模式(10)中断可从空闲模式唤醒系统(11)看门狗(WDT)和双数据指针(12)掉电标识和快速编程的特性(13)具有掉电状态下中断恢复功能(14)灵活的在系统编程(ISP字节或页写模式)-79- 华科学院本科毕业设计(论文)因为AT89C51单片机片内有4K字节的在线编程Flash存储器,而且可以擦写1000次,具有掉电模式,而且具有掉电状态下中断恢复功能,对设计开发非常实用。所以选用AT89C51单片机作为自动窗帘系统的控制单片机。针对单片机控制的自动窗帘控制系统的智能化要求,实现其自动控制的方案有两种:方案(一)基于温度检测以及声控检测器件的自动控制方案(二)基于光照强度器件以及湿度检测器件的自动控制方案(一)的系统框图如图2.2所示:声控检测89C51单片机键盘模块液晶模块温度检测电源模块图2.2方案(一)的原理框图方案(二)的系统框图如图2.3所示:-79- 华科学院本科毕业设计(论文)时钟模块89C51单片机键盘模块显示模块光照检测电源模块图2.3方案(二)的原理框图这两个方案都是基于单片机控制的,采用步进电机控制以及液晶显示器,不同的设计部分在于检测器件的选取上。方案(一)与方案(二)的区别主要在于检测器件的应用,方案(一)采用温度采集和声音检测原件,通过设定的温度来控制窗帘的开闭,以减少光照对室内的温度影响,利用声音控制虽然方便性有所提高,但是其误差较大。方案(二)采用的时钟模块实用性更强,且手动控制不容易出现误差。综合考虑以上因素,系统设计采用方案(二)。2.2总体设计方案自动窗帘控制系统总体方案设计是基于满足设计要求的前提并且根据理论上的可实现性和硬件上的经济实用性,而进行设计的重要环节。本章从人们对系统功能需求出发,在综合考虑各种因素的情况下,设计出自动控制系统的总体构架,并且在基本功能需求的基础上尽可能考虑系统的可扩展性。2.2.1系统基本功能-79- 华科学院本科毕业设计(论文)伴随着科学技术的发展和人民生活水平的日益提高,人们对生活舒适性的追求越来越强烈,而窗帘在每个家庭生活是必备的,其基本功能是保护住户的隐私以及遮蔽阳光等。基于这些作用窗帘的便利性自然也收到家庭的关注。但传统的窗帘绝大部分是用手去开关,每天开关不仅不省力,而且还可能错过最佳的光照时间,尤其是大窗帘,比较重,而且长,在开闭时需要费很大力气才能开关窗帘,特别不方便。针对这种现象,自动窗帘遍由此产生。现有的窗帘基本上都可以利用按键控制,自动开关窗帘,虽然省了力气,但是有些方面的设计还是不够人性化。对此,本控制系统提出可以根据光照以及定时等开关窗帘,具体有一下几大功能:(1)手动控制:该功能是根据用户的需求通过按键进行窗帘的开关,此功能可以使窗帘的开闭处于任何一种状态;(2)光敏控制:根据光的强弱,实现窗帘的自动开关。(3)雨滴传感器控制:若传感器上有雨滴,则窗帘自动关闭,水干后,自动开启。(4)时间自动控制:根据用户设置的时间来控制开启或者关闭窗帘。2.2.3系统总体结构设计自动窗帘控制系统设计的总体框图如图2.4所示89C51光敏、雨滴传感器信号校正A/D转换显示模块键盘模块步进电机图2.4智能窗帘控制结构框图-79- 华科学院本科毕业设计(论文)通过传感器采集的信号利用信号校正电路放大,滤波后输入到A/D转换器,传入的信号是由AT89C51单片机来控制,并且做出响应,以实现电机的正转、反转与停止。显示模块是用来显示时间以及自动窗帘控制器的各种状态。键盘作为输入设备,通过不同按键来控制显示模块的显示内容和控制单片机的各种运转状态。-79- 华科学院本科毕业设计(论文)第3章系统硬件分析设计总体硬件包括单片机外围电路、A/D转换电路,信号调理电路、检测电路、键盘/显示接口电路、步进电机控制电路等模块。单片机外围电路提供各种模块所需的5V电源和时钟模块;信号检测后是模拟信号,经过调理放大进入A/D转换后输出数字信号给单片机。3.1系统硬件总设计自动窗帘控制系统设计的总体框图如图3.1所示:89C51光敏、雨滴传感器信号校正A/D转换显示模块键盘模块步进电机图3.1自动窗帘控制系统设计总体框图根据光照和雨滴来开闭窗帘的主要原理是用光敏电阻采集外界的光强度,从光传感器采集的信号利用信号校正电路放大,滤波后输入到A/D转换器,由于A/D转换器件的转换需要一定时间,一旦在短时间内信号发生变化,转换结果将会出现偏差,所以在转换期应该采用采样保持电路。传入的信号是由AT89C51单片机来控制,并且做出响应,以实现电机的正转、反转与停止。显示模块是用来显示时间以及自动窗帘控制器的各种状态。键盘作为输入设备,通过不同按键来控制显示模块的显示内容和控制单片机的各种运转状态。-79- 华科学院本科毕业设计(论文)3.2各单元电路设计3.2.1控制电路设计51系列优点之一是它从内部的硬件到软件有一套完整的按位操作系统,称作位处理器,或布尔处理器。它的处理对象不是字或字节而是位。它不光能对片内某些特殊功能寄存器的某位进行处理,如传送、置位、清零、测试等,还能进行位的逻辑运算,其功能十分完备,使用起来得心应手。虽然其他种类的单片机也具有位处理功能,但能进行位逻辑运算的实属少见。51系列在片内RAM区间还特别开辟了一个双重功能的地址区间,十六个字节,单元地址20H~2FH,它既可作字节处理,也可作位处理(作位处理时,合128个位,相应位地址为OOH~7FH),使用极为灵活。这一功能无疑给使用者提供了极大的方便,因为一个较复杂的程序在运行过程中会遇到很多分支,因而需建立很多标志位,在运行过程中,需要对有关的标志位进行置位、清零或检测,以确定程序的运行方向。而实施这一处理(包括前面所有的位功能),只需用一条位操作指令即可。51系列的另一个优点是乘法和除法指令,这给编程也带来了便利。八位除以八位的除法指令,商为八位,精度嫌不够,用得不多。而八位乘八位的乘法指令,其积为十六位,精度还是能满足要求的,用的较多。作乘法时,只需一条指令就行了,即MuLAB(两个乘数分别在累加器A和寄存器B中。积的低位字节在累加器A中,高位字节在寄存器B中)。很多的八位单片机都不具备乘法功能,作乘法时还得编上一段子程序调用,十分不便。在51系列中,还有一条二进制一十进制调整指令DA,能将二进制变为BCD码,这对于十进制的计量十分方便。而在其他的单片机中,则也需调用专用的子程序才行。AT89C51单片机的引脚排列如图3.2所示:-79- 华科学院本科毕业设计(论文)图3.2AT89C51单片机的引脚排列图晶振电路:电路中的晶振即石英晶体震荡器。由于石英晶体震荡器具有非常好的频率稳定性和抗外界干扰能力,所以,石英晶体震荡器的用来产生基准频率的。通过基准频率来控制电路中的频率的准确性。同时,它还可以产生震荡电流,向单片机发出时钟信号。电路中的电容C1和C2的典型值通常选择为30μF左右,该电容的大小会影响震荡电路频率的高低、震荡器的稳定性和奇珍的快速性。晶体震荡频率的范围通常在1.2~12MHz。晶体的频率越高,系统的时钟频率越快,单片机的运行速度越快。但反过来,运行速度对于存储器的速度要求就越高,对印刷电路板的工艺要求也就越高,即要求线间的寄生电容要小。晶体和电容应该尽可能安装得与单片机芯片靠近,以减少寄生电容,更好地保证震荡器稳定、可靠地工作。89C51常选择震荡频率12MHz的石英晶体。单片机晶振电路图如图3.3所示:-79- 华科学院本科毕业设计(论文)图3.3单片机晶振电路图复位电路:复位是单片机的初始化操作,只需要给89C51的复位引脚RST加上大于2个机器周期(即24个时钟震荡周期)的高电压就可以使89C51复位。复位时,单片机初始化为0000H,从0000H单元开始执行程序。除了进入系统的正常初始化之外,当程序运行错误(如程序跑飞)或者操作错误使系统处于锁死状态时,也需要复位键使RST引脚为高电平,使89C51摆脱“跑飞”或者“死锁”状态而重新启动。复位电路图如图3.4所示。图3.4复位电路图时钟电路:本设计需要窗帘在给定的时间自动的开和关,所以需要用到定时器,而为了保证单片机与外界时钟一致,要用到一个实时时钟电路。这里实用的是DS1302时钟芯片来完成这项功能。DS1302是DALLAS公司推出的涓流充电时钟芯片,内含有一个实时时钟/日历和31字节静态RAM,通过简单的串行接口与单片机进行通信。实时时钟/日历电路提供秒、分、时、日、周、月、年的信息,每月的天数和闰年的天数可自动调整。时钟操作可通过AM/PM-79- 华科学院本科毕业设计(论文)指示决定采用24或12小时格式。DS1302与单片机之间能简单地采用同步串行的方式进行通信,仅需用到三个口线:(1)RES复位(2)I/O数据线(3)SCLK串行时钟。时钟/RAM的读/写数据以一个字节或多达31个字节的字符组方式通信。DS1302工作时功耗很低保持数据和时钟信息时功率小于1mWDS1302是由DS1202改进而来增加了以下的特性:双电源管脚用于主电源和备份电源供应,Vcc1为可编程涓流充电电源,附加七个字节存储器。它广泛应用于电话、传真、便携式仪器以及电池供电的仪器仪表等产品领域。下面将主要的性能指标作一综合:(1)实时时钟具有能计算2100年之前的秒、分、时、日、星期、月、年的能力,还有闰年调整的能力。(2)318位暂存数据存储RAM。(3)串行I/O口方式使得管脚数量最少。(4)宽范围工作电压2.05.5V。(5)工作电流2.0V时,小于300nA。(6)读/写时钟或RAM数据时有两种传送方式单字节传送和多字节传送字符组方式。(7)8脚DIP封装或可选的8脚SOIC封装根据表面装配。(8)简单3线接口。(9)与TTL兼容Vcc=5V。(10)可选工业级温度范围-40+85。(11)双电源管用于主电源和备份电源供应。DS1302芯片和AT89C51单片机的接口电路如图3.5所示:图3.5DS1302芯片和AT89C51单片机的接口电路图-79- 华科学院本科毕业设计(论文)3.2.2检测电路设计自动窗帘要根据光照和是否有雨的情况而自动开关窗帘,因而需要用到光传感器和雨滴传感器。光敏传感器:在本设计中采用了光敏电阻,光敏电阻与碳膜电阻不同,它对光的变化非常敏感,再光的照射下,阻值会明显变小,所以叫他光导器件。光敏电阻又称光导管,常用的制作材料为硫化镉,另外还有硒、硫化铝、硫化铅和硫化铋等材料。这些制作材料具有在特定波长的光照射下,其阻值迅速减小的特性。这是由于光照产生的载流子都参与导电,在外加电场的作用下作漂移运动,电子奔向电源的正极,空穴奔向电源的负极,从而使光敏电阻器的阻值迅速下降。光敏电阻属半导体光敏器件,除具灵敏度高,反应速度快,光谱特性及r值一致性好等特点外,在高温,多湿的恶劣环境下,还能保持高度的稳定性和可靠性,可广泛应用于照相机,太阳能庭院灯,草坪灯,验钞机,石英钟,音乐杯,礼品盒,迷你小夜灯,光声控开关,路灯自动开关以及各种光控玩具,光控灯饰,灯具等光自动开关控制领域。光敏电阻的结构简单,它是在陶瓷基片上积淀一层光敏半导体,再接上两根引出电极组成的。该电路中的光敏器件选用的是硫化镉光敏电阻。雨滴传感器:雨滴传感器又叫雨滴检测传感器,用于检测是否下雨及雨量的大小,广泛用于汽车自动刮水系统、智能灯光系统和智能天窗系统中。在雨滴传感刮水系统中,用雨滴检测传感器检测出雨量,并利用控制器将检测出的信号进行变换,根据变换后的信号自动地按雨量设定刮水器的间歇时间,以便随时控制刮水器电动机;在汽车智能灯光系统中检测车辆行驶的环境,自动调整灯光模式,提高车辆在恶劣环境下行驶的安全性;在智能天窗系统中传感器一旦检测到下雨,会自动关闭天窗。传感器控制电路是由运算放大器组成比较电路,在运算放大器同相输入端用两个电阻分压,得到的电压值作为基准电压,在反相输入端则用光敏电阻对光和湿度变化采集,由于光敏电阻具有根据光照强度阻值变化的特点,雨滴传感器根据是否有水滴阻值变化的特点,可以得到反向输入端的电压值。然后将得到的两组电压值进行比较,比较后的信号经过A/D转换送入单片机89C51的P35和P36接口,单片机处理后输出命令控制电机正转或者反转,以实现通过光照和雨滴控制窗帘的开关功能。集成运算放大电路:-79- 华科学院本科毕业设计(论文)集成电路运算放大器是一种高电压增益、高输入电阻和地输入电阻的多级直接耦合放大电路,它的种类很多,电路也不一样,但结构具有共同之处,集成运放的内部电路组成的原理框图如图3.6所示。差分输入级电压放大级输出级偏置电流图3.6集成运放的内部电路组成的原理框图本设计选用的器件是LM393。LM393的主要优势是:(1)高精度比较器;(2)减少由于温漂引起的失调电压;(3)工作电源电压范围宽,单电源、双电源均可工作,单电源:2~36V,双电源:±1~±18V;(4)输入工模电压范围接近地电平;(5)兼容逻辑电路。LM393的功能框图如图3.7所示。图3.7LM393的功能框图-79- 华科学院本科毕业设计(论文)LM393是高增益,宽频带器件,象大多数比较器一样,如果输出端到输入端有寄生电容而产生耦合,则很容易产生振荡。这种现象仅仅出现在当比较器改变状态时,输出电压过渡的间隙,电源加旁路滤波并不能解决这个问题,标准PC板的设计对减小输入—输出寄生电容耦合是有助的。减小输入电阻至小于10K将减小反馈信号,而且增加甚至很小的正反馈量(滞回1.0~10mV)能导致快速转换,使得不可能产生由于寄生电容引起的振荡,除非利用滞后,否则直接插入IC(集成电路板integratedcircuit,缩写:IC)并在引脚上加上电阻将引起输入—输出在很短的转换周期内振荡,如果输入信号是脉冲波形,并且上升和下降时间相当快,则滞回将不需要。使用LM393时必须要注意,比较器的所有没有用的引脚必须接地。LM393偏置网络确立了其静态电流与电源电压范围2.0~30V无关。  差分输入电压可以大于Vcc并不损坏器件,保护部分必须能阻止输入电压压向负端超过-0.3V。  LM393的输出部分是集电极开路,发射极接地的NPN输出晶体管,可以用多集电极输出提供或ORing。传感器电路如图3.8所示图3.8传感器电路图3.2.3执行电路设计步进电机步进电机作为执行原件是机电一体化的关键产品之一,-79- 华科学院本科毕业设计(论文)广泛应用在各种自动化控制系统中。随着微电子和计算机技术的发展,步进电机的需求量与日俱增,在各个国民经济领域都有应用。步进电机是一种将电脉冲转化为角位移的执行机构。当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(称为“步距角”),它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。步进电机可以作为一种控制用的特种电机,利用其没有积累误差(精度为100%)的特点,广泛应用于各种开环控制。现在比较常用的步进电机包括反应式步进电机(vr)、永磁式步进电机(pm)、混合式步进电机(hb)和单相式步进电机等。永磁式步进电机一般为两相,转矩和体积较小,步进角一般为7.5度或15度;反应式步进电机一般为三相,可实现大转矩输出,步进角一般为1.5度,但噪声和振动都很大。反应式步进电机的转子磁路由软磁材料制成,定子上有多相励磁绕组,利用磁导的变化产生转矩。本设计采用的步进电机是混合式步进电机。混合式步进电机混合了永磁式和反应式步进电机的优点它又分为两相和五相:两相步进角一般为1.8度而五相步进角一般为0.72度。这种步进电机的应用最为广泛。所以,本设计采用此种步进电机。步进电机28BYJ-48型四相八拍电机,电压为DC5V—DC12V。当对步进电机施加一系列连续不断的控制脉冲时,它可以连续不断地转动。每一个脉冲信号对应步进电机的某一相或者两相绕组的通电状态改变一次,也就对应转子转过一定的角度(一个步距角)。当通电状态改变完成一个循环时,转子转过一个齿距。四相步进电机可以在不同的通电方式下运行,常见的通电方式有单(单相绕组通电)四拍(A-B-C-D-A。。。),双(双相绕组通电)四拍(AB-BC-CD-DA-AB-。。。),八拍(A-AB-B-BC-C-CD-D-DA-A。。。)驱动方式:表3.1步进电机驱动方式导线颜色123456785红++++++++4橙——3黄———2粉———1蓝———红线接-79- 华科学院本科毕业设计(论文)电源5V,橙色电线接P1.3口,黄色电线接P1.2口,粉色电线接P1.1口,蓝色接P1.0口。由于单片机接口信号不够大需要通过ULN2003放大再连接到相应的电机接口。ULN2003晶体管阵列:ULN2003是一个单片高电压、高电流的达林顿晶体管阵列集成电路。它是由7对NPN达林顿管组成的,它的高电压输出特性和阴极箝位二极管可以转换感应负载。单个达林顿对的集电极电流是500mA。达林顿管并联可以承受更大的电流。此电路主要应用于继电器驱动器,字锤驱动器,灯驱动器,显示驱动器(LED气体放电),线路驱动器和逻辑缓冲器。ULN2003的每对达林顿管都有一个2.7kΩ串联电阻,可以直接和TTL或5VCMOS装置。ULN2003的主要特点:(1)500mA额定集电极电流(单个输出)。(2)高电压输出:50V。(3)输入和各种逻辑类型兼容。(4)继电器驱动器。步进电机控制系统电路如图3.9所示:图3.9步进电机控制系统电路图在实用两相混合式步进电机时需注意,该种电机在低速运转时有振动和噪声,是其固有的缺点、一般可采用以下方案来克服:(1)如步进电机正好工作在共振区,可通过改变减速比等机械传动避开共振区;(2)采用带有细分功能的驱动器,这是最常用的、最简便的方法;(3)换成步距角更小的步进电机,如三相或五相步进电机;(4)换成交流伺服电机,几乎可以完全克服震动和噪声,但成本较高;(5)在电机轴上加磁性阻尼器,市场上已有这种产品,但机械结构改变较大。-79- 华科学院本科毕业设计(论文)3.2.4键盘/显示接口电路键盘在单片机应用系统中能实现向单片机输入数据,传送命令等功能,是人工干预单片机的主要手段。本设计中的键盘采用了四个按键。K1键可以设置日期及时间,按下K1依次调整年月日时和分,调整哪个那个会显示**,可以按K2+K3-,来调整要调整的数据,按到调整分钟之后会全部出现**就是设置完成了。设置开启和关闭时间:K4键,第一行显示kai:xx:xx,第二行显示guan:xx:xx.此时按下K2+K3-,来调整要调整的数据,第一次设置开的小时,第二次设置开的分钟,第三次设置关的小时,第四次设置关的分钟。第五次恢复正常显示。按键接口电路如图3.10所示:图3.10键盘接口电路图-79- 华科学院本科毕业设计(论文)显示部分则主要用于显示时间,用于设置时间。在日常生活中,我们对液晶显示器并不陌生。液晶显示模块已作为很多电子产品的通用器件,如在计算器、万用表、电子表及很多家用电子产品中都可以看到,显示的主要是数字、专用符号和图形。在单片机与人的人机交流界面中,一般的输出方式有以下几种:发光管、LED数码管、液晶显示器。本设计中采用的是液晶显示器作为输出器件的。在单片机系统中应用液晶显示器作为输出有以下几个优点:(1)显示质量高:由于液晶显示器每一个点在收到信号后就一直保持那种色彩和亮度,恒定发光,而不像阴极射线管显示器(CRT)那样需要不断刷新新亮点。因此,液晶显示器画质高且不会闪烁。(2)数字式接口液晶显示器都是数字式的,和单片机系统的接口更加简单可靠,操作更加方便。(3)体积小、重量轻:液晶显示器通过显示屏上的电极控制液晶分子状态来达到显示的目的,在重量上比相同显示面积的传统显示器要轻得多(4)低功耗:相对而言,液晶显示器的功耗主要消耗在其内部的电极和驱动IC上,因而耗电量比其它显示器要少得多。字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,目前常用16*1,16*2,20*2和40*2行等的模块。本设计采用的液晶显示器为1602字符型液晶显示器。1602LCD主要技术参数:显示容量:16×2个字符;芯片工作电压:4.5—5.5V;工作电流:2.0mA(5.0V);模块最佳工作电压:5.0V字符尺寸:2.95×4.35(W×H)mm。1602液晶显示器引脚接口说明:第1脚:VSS为地电源。第2脚:VDD接5V正电源。第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第7~14脚:D0~D7为8位双向数据线。第15脚:背光源正极。-79- 华科学院本科毕业设计(论文)第16脚:背光源负极。1602LCD分为带背光和不带背光两种,基控制器大部分为HD44780,带背光的比不带背光的厚,是否带背光在应用中并无差别,两者尺寸差别如下图3.11所示:图3.111602液晶显示器尺寸图LCD显示的基本原理:点阵图形式液晶由M×N个显示单元组成,假设LCD显示屏有64行,每行有128列,每8列对应1字节的8位,即每行由16字节,共16×8=128个点组成,屏上64×16个显示单元与显示RAM区1024字节相对应,每一字节的内容和显示屏上相应位置的亮暗对应。例如屏的第一行的亮暗由RAM区的000H——00FH的16字节的内容决定,当(000H)=FFH时,则屏幕的左上角显示一条短亮线,长度为8个点;当(3FFH)=FFH时,则屏幕的右下角显示一条短亮线;当(000H)=FFH,(001H)=00H,(002H)=00H,……(00EH)=00H,(00FH)=00H时,则在屏幕的顶部显示一条由8段亮线和8条暗线组成的虚线。这就是LCD显示的基本原理。1602液晶模块内部的控制器共有11条控制指令如表3.2所示:-79- 华科学院本科毕业设计(论文)表3.21602液晶模块控制指令表序号指令RSR/WD7D6D5D4D3D2D1D01清显示00000000012光标返回000000001*3置输入模式00000001I/DS4显示开/关控制0000001DCB5光标或字符移位000001S/CR/L**6置功能00001DLNF**7置字符发生存贮器地址0001字符发生存贮器地址8置数据存贮器地址001显示数据存贮器地址9读忙标志或地址01BF计数器地址10写数到CGRAM或DDRAM10要写的数据内容11从CGRAM或DDRAM读数11读出的数据内容1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说明:1为高电平、0为低电平)指令1:清显示,指令码01H,光标复位到地址00H位置。指令2:光标复位,光标返回到地址00H。指令3:光标和显示模式设置I/D:光标移动方向,高电平右移,低电平左移S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。指令4:显示开关控制。D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示C:控制光标的开与关,高电平表示有光标,低电平表示无光标B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。指令5:光标或显示移位S/C:高电平时移动显示的文字,低电平时移动光标。指令6:功能设置命令DL:高电平时为4位总线,低电平时为8位总线N:低电平时为单行显示,高电平时双行显示F:低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。指令7:字符发生器RAM地址设置。指令8:DDRAM地址设置。指令9:读忙信号和光标地址BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。-79- 华科学院本科毕业设计(论文)指令10:写数据。指令11:读数据。读操作时序如图3.12所示:图3.12读操作时序写操作时序如图3.13所示:图3.13写操作时序液晶显示器电路如图3.14所示:-79- 华科学院本科毕业设计(论文)图3.14液晶显示器电路图-79- 华科学院本科毕业设计(论文)第4章系统软件设计系统软件设计主要包括显示子程序,键盘子程序,时钟程序,步进电机控制程序设计及部分构成。本章节系统的介绍了自动窗帘的主程序和各主要功能子程序的设计流程。4.1系统软件总设计主程序构成无限循环,主要完成单片机初始化,关中断,菜单显示内容初始化,按键控制,电机运行,计时等功能。主程序软件设计流程图如图4.1所示。开始关中断设置推显示短路帽?触发控制外部触发?设置时间到点?开始计时电机工作完成?电机停止YNYNNYYN图4.1主程序软件设计流程图-79- 华科学院本科毕业设计(论文)启动主程序,先关中断并且设置堆栈,接着初始化寄存器,初始化显示内容;然后根据短接帽是否连接执行相应的操作。4.2系统软件子程序设计4.2.1步进电机程序设计步进电机程序设计的主要任务是:(1)判断旋转方向;(2)按顺序传送控制脉冲;(3)判断所要求的控制步数是否传送完毕。步进电机工作流程图如4.2所示。开始步进电机正转?传送正转的脉冲序列传送反转的脉冲序列传送步数是否完毕?传送步数是否完毕?返回图4.2步进电机工作流程图-79- 华科学院本科毕业设计(论文)表4.1步进电机转向表橙黄粉蓝十六制(P1口)10000X0811000X0C01000X0401100X0601000X0200110X0300010X0110010X09所以可以定义旋转相序ucharcodeCCW[8]={0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09};  //逆时钟旋转相序表ucharcodeCW[8]={0x09,0x01,0x03,0x02,0x06,0x04,0x0c,0x08};   //正时钟旋转相序表4.2.2键盘程序设计在操作按键时,无论是按下还是松开,触电在闭合和断开时均会产生抖动,此时逻辑电平是不稳的,如果得不到正确的处理,可能会引起单片机对按键命令的错误执行。解决这个问题的简单方法是利用软件延时。在单片机处理按键操作后都延时5ms,如果确定是按键后再延时12ms,这样基本可以避免键盘的抖动。然后由单片机运行键码分析,并执行相应的命令,显示并且返回。图4.3是键盘设计流程图。-79- 华科学院本科毕业设计(论文)两次调用显示程序返回开始按键?调用显示程序延时分析按键,执行YN图4.3键盘设计流程图在单片机应用系统设计中,系统有两性能很大一部分取决于键盘处理程序。在按键时按得快了没有反应,按慢了一连响应几次,总给人迟钝感,不能使人满意。在该设计中用以下思路设计的键处理程序。首先要判断有没有键值,若有键值,再判断是否为首次按下:(1)若首次按下:判断是否与上次按下的键值相同a.若相同再判断:是否已经按下了300ms?1).若已经按下300ms则将此键做为连键处理。2).若不是连键则判断:是否按下20ms?1>.若确认按下20ms,得到有效键值等待弹起2>.若不是按下20ms直接结束处理(ret)。b.若不相同则将标志清零结束处理(ret)。(2)若不是首次按下:将键值暂存起来,标志置位结束处理。如果无键值,则判断是否有键值已被确认(1)若有键已被确认:判断按键是否首次抬起a.若首次抬起:判断抬起延时时间(20ms)是否到达1>.若延时到则将标志处理结束处理。2>.若延时未到直接结束处理(ret)。b.若非首次抬起:直接结束处理(ret)。(2)若没有键被确认:直接结束处理(ret)。-79- 华科学院本科毕业设计(论文)4.2.3定时程序设计定时程序的主要作用是在用户设定的时间后能够使单片机收到一个中断信号,从而发出相应的指令,控制窗帘的开关。时钟芯片发出50ms的信号给单片机后,计数器开始工作,计数器记到20,则时间即为1秒,秒单元加1,当秒单元计数到60,分单元加1,此时秒单元清零。当时单元计数到24.时单元清零。图4.4是定时程序流程图。开始计数器满20秒加1秒满60分满60时加1时满24清零返回图4.4定时程序流程图-79- 华科学院本科毕业设计(论文)-79- 华科学院本科毕业设计(论文)第5章测试和调试5.1硬件调试硬件调试是利用开发系统、基本检测仪器(万用表、示波器)等,检查系统硬件中存在的故障。硬件调试可以分为静态调试与动态调试两步进行:(1)静态调试静态调试是在用户系统未工作时的一种调试。步骤如下:第一步:目测。检查外部的各种元件或者是电路是否有断电。第二步:用万用表测试。先用万用表复核目测中有疑问的连接点,再检测各种电源线与接地线之间是否有短路现象。第三步:加电检测。给电路板加电,家呢所有的硬件的电源是够符合要求的值。第四步:联机检查。在整个系统连接好以后对系统进行检查。(2)动态调试动态调试是在用户系统工作的情况下发现和排除用户系统硬件中存在的器件内部故障、器件连接逻辑错误等的一种硬件检查。动态调试的一般方法是由近及远,由分到合。5.1.128BYJ-48步进电机:步进电机28BYJ48型四相八拍电机,电压为DC5V—DC12V。当对步进电机施加一系列连续不断的控制脉冲时,它可以连续不断地转动。每一个脉冲信号对应步进电机的某一相或两相绕组的通电状态改变一次,也就对应转子转过一定的角度(一个步距角)。当通电状态的改变完成一个循环时,转子转过一个齿距。四相步进电机可以在不同的通电方式下运行,常见的通电方式有单(单相绕组通电)四拍(A-B-C-D-A。。。),双(双相绕组通电)四拍(AB-BC-CD-DA-AB-。。。),八拍(A-AB-B-BC-C-CD-D-DA-A。。。)步进电机实物图如图5.1所示:-79- 华科学院本科毕业设计(论文)图5.1步进电机实物图驱动方式如表5.1所示:表5.1步进电机驱动方式导线颜色123456785红++++++++4橙——3黄———2粉———1蓝———红线接电源5V,橙色电线接P1.3口,黄色电线接P1.2口,粉色电线接P1.1口,蓝色接P1.0口。由于单片机接口信号不够大需要通过ULN2003放大再连接到相应的电机接口如图5.2所示:图5.2步进电机与ULN2003连接图-79- 华科学院本科毕业设计(论文)5.1.21602液晶显示器字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,目前常用16*1,16*2,20*2和40*2行等的模块。下面以长沙太阳人电子有限公司的1602字符型液晶显示器为例,介绍其用法。一般1602字符型液晶显示器实物如图5.3所示:图5.31602液晶显示器实物图1602LCD的一般初始化(复位)过程:延时15mS写指令38H(不检测忙信号)延时5mS写指令38H(不检测忙信号)延时5mS写指令38H(不检测忙信号)-79- 华科学院本科毕业设计(论文)以后每次写指令、读/写数据操作均需要检测忙信号写指令38H:显示模式设置写指令08H:显示关闭写指令01H:显示清屏5.1.3DS1302时钟芯片DS1302是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。DS1302的引脚排列,其中Vcc1为后备电源,VCC2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电。X1和X2是振荡源,外接32.768kHz晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在Vcc≥2.5V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。I/O为串行数据输入输出端(双向),。SCLK始终是输入端。DS1302的引脚图如图5.4所示:图5.4DS1302引脚图调试中问题说明:-79- 华科学院本科毕业设计(论文)DS1302与微处理器进行数据交换时,首先由微处理器向电路发送命令字节,命令字节最高位MSB(D7)必须为逻辑1,如果D7=0,则禁止写DS1302,即写保护;D6=0,指定时钟数据,D6=1,指定RAM数据;D5~D1指定输入或输出的特定寄存器;最低位LSB(D0)为逻辑0,指定写操作(输入),D0=1,指定读操作(输出)。在DS1302的时钟日历或RAM进行数据传送时,DS1302必须首先发送命令字节。若进行单字节传送,8位命令字节传送结束之后,在下2个SCLK周期的上升沿输入数据字节,或在下8个SCLK周期的下降沿输出数据字节。DS1302与RAM相关的寄存器分为两类:一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0H~FDH,其中奇数为读操作,偶数为写操作;再一类为突发方式下的RAM寄存器,在此方式下可一次性读、写所有的RAM的31个字节。要特别说明的是备用电源B1,可以用电池或者超级电容器(0.1F以上)。虽然DS1302在主电源掉电后的耗电很小,但是,如果要长时间保证时钟正常,最好选用小型充电电池。可以用老式电脑主板上的3.6V充电电池。如果断电时间较短(几小时或几天)时,就可以用漏电较小的普通电解电容器代替。100μF就可以保证1小时的正常走时。DS1302在第一次加电后,必须进行初始化操作。初始化后就可以按正常方法调整时间。5.1.4LM双电压比较器集成电路 LM393是高增益,宽频带器件,象大多数比较器一样,如果输出端到输入端有寄生电容而产生耦合,则很容易产生振荡。这种现象仅仅出现在当比较器改变状态时,输出电压过渡的间隙,电源加旁路滤波并不能解决这个问题,标准PC板的设计对减小输入—输出寄生电容耦合是有助的。减小输入电阻至小于10K将减小反馈信号,而且增加甚至很小的正反馈量(滞回1.0~10mV)能导致快速转换,使得不可能产生由于寄生电容引起的振荡,除非利用滞后,否则直接插入IC(集成电路板integratedcircuit,缩写:IC)并在引脚上加上电阻将引起输入—输出在很短的转换周期内振荡,如果输入信号是脉冲波形,并且上升和下降时间相当快,则滞回将不需要。比较器的所有没有用的引脚必须接地。LM393双电压比较集成电路实物如图5.5所示:-79- 华科学院本科毕业设计(论文)图5.5LM393双电压比较集成电路实物图5.2软件调试软件调试是通过对程序的汇编、连接、执行来发现程序中存在的语法错误与逻辑错误并加以排除纠正的过程。程序运行后编辑,查看程序是否有逻辑的错误。在对硬件调试后再对软件进行调试。在硬件连接调试完成之后,即可下载程序。将在kill中写好的程序编译成.hex格式,再由stc-isp将程序烧入到单片机里面去,烧程序时先打开烧录器,选择你所烧单片机的对应型号,打开程序编译好的hex格式的文件,调整好烧录时的波特率,本单片机设定的是2400hz~15000hz的波特率;点击下载。5.3系统联调对整个系统测试和调试以后,系统实物图如图5.6所示:-79- 华科学院本科毕业设计(论文)图5.6自动窗帘系统实物图当系统接上短接帽,此时窗帘由传感器控制,窗帘的开关受光照和湿度控制,且液晶显示器上显示时间和当前窗帘的开关状态,当光照充足且无雨滴时窗帘开,此时显示窗帘打开,显示“K”。如图5.7所示。图5.7窗帘由光敏电阻控制(开)当没有光照时,窗帘自动关闭,显示器显示窗帘状态为“G”。如图5.8所示:-79- 华科学院本科毕业设计(论文)图5.8窗帘由光敏电阻控制(关)当雨滴传感器上有水滴时,窗帘自动关闭,如图5.9所示:图5.9雨滴传感器上有雨滴时窗帘状态水滴干后,窗帘自动开启,这时窗帘状态如图5.10所示:-79- 华科学院本科毕业设计(论文)图5.10雨滴传感器上无水滴时窗帘状态拔下短接帽后通电即可显示当前日期和时间,第一行显示:data:XX:XX:XX第二行显示time:XX:XX:XX设置时间和日期:按下K1(调)键可以设置日期及时间,按下K1依次调整年月日时和分,调整哪个那个会显示**,如图5.11所示:-79- 华科学院本科毕业设计(论文)图5.11设置显示时间时状态可以按K2+K3-,来调整要调整的数据,按到调整分钟之后会全部出现**就是设置完成了。如图5.12所示:图5.12时间设置完成图设置开启和关闭时间:按下K4(定)键,第一行显示kai:00:00,第二行显示guan:00:00。如图5.13所示:图5.13设置开启和关闭时间此时按下K2+K3-,来调整要调整的数据,第一次设置开的小时,第二次设置开的分钟,第三次设置关的小时,第四次设置关的分钟。第五次恢复正常显示,当时间与设置时间开启时间一样时,步进电机开始转模拟开,当时间与设置时间关闭时间一样时,步进电机反转模拟关。自动窗帘系统整体测试完毕,自动窗帘可以完成所需全部任务。-79- 华科学院本科毕业设计(论文)总结本次设计系统地介绍了自动窗帘控制系统的硬件电路设计以及软件设计。在总体方案设计中以光敏电阻和雨滴传感器作为信号的传感器,使得设计的检测部分稳定、准确。以步进电机作为信号输出的执行原件,控制简单,容易实现。AT89C51单片机作为主要的控制原件,经济实用,减少了硬件的复杂性。并且应用了按键控制以及显示电路,极大的提升了本设计的方便性,在本设计中,可以认为控制窗帘的开关,使得窗帘更加人性化。本设计的主要原理是光敏电阻和雨滴传感器受到外界条件影响后,经过A/D转换,传送给单片机一个电信号,在由单片机经过处理后,将信号传给步进电机,控制步进电机做出相应的动作,最终实现控制窗帘的开闭。在实现一般应用的基础上,又添加了定时元器件电路,用户可以自己设定开关时间,使窗帘的自动化性能得到进一步提升。再加上手动控制,使得本系统更加人性化。光敏电阻的良好感光性以及步进电机的结构简单,控制方便的优点使窗帘控制开关更加稳定。本章从硬件和软件两方面进行介绍。系统硬件部分主要是对硬件各部分电路的设计,其中包括检测电路模块,控制电路模块,液晶显示模块,外围设备模块等部分,并详细分析了各个模块的组及其作用,介绍了所用的主要芯片的特性及用法,简述了模块设计时的注意事项和使用方法。软件部分包括主程序,键盘中断子程序,内部设定时中断程序设计和外部中断程序等部分。每个部分包括主程序,键盘中断子程序,内部定时中断程序设计和外部中断程序等部分。每个部分都画出了相应的程序流程图,使得系统的软件设计思路清晰地呈现在读者面前,简单易懂。本次毕业设计的整个研究与设计过程包括选题、设计以及完善等。首先,在选题方面我查阅了很多与题目相关的资料和课题并且制定了几个详细的设计方案,进行设计的总体规划,从中选出经济,节能并且稳定容易实现的方案,然后将方案落实到设计环节中。其次,在制定的方案基础上运用所学的知识对硬件以及软件进行了设计,并用相关软件进行仿真设计。最后,对设计内容进一步修缮,以求达到最佳设计效果。但是由于个人水平能力有限,论文设计上存在许多不足之处,有待于进一步的改进。所以虽然设计内容完成了基本的功能要求,但是其中还是存在一定欠缺,比如在设计中没有考虑到窗帘工作方式的显示窗帘工作方法的切换也比较不便,以及没有添加类似红外遥控的设计等。-79- 华科学院本科毕业设计(论文)此次设计过程中,在完成设计任务之外也让我系统性地认识和全面地掌握了单片机相关技术,从本次毕业设计中我更加深刻地认识到了理念来源于实际的含义。并且在和老师的帮助以及同学就相关问题的互相讨论交流中,我认识到了自己的很多不足,但在这些不足中我又学到了很多知识,使我的综合应用能力有了很大提高。所以在本次毕业设计的实现中,使我对所学的科目进行了总和,让我对所学的知识更加的清楚,对于以上之粗浅体会进一步的总结和提高,需要有更多的社会实践来提供,我也相信在不久的将来踏入社会,类似这样的设计绝不在少数,只要我们努力学习、勇于实践、勤学好问我们就会懂得以前不明白或不懂得道理,就会很快地成长和成熟起来。我也相信凭着我自强不息勇于拼搏的精神一定能够很快的适应类似设计的需要,适应这个多变的社会,充分发挥长处朝我们的方向不断前进再前进!-79- 华科学院本科毕业设计(论文)参考文献[1]郁有文,常健,程继红.传感器原理及工程应用[M].西安:电子科技大学出版社,2008. [2]何希才. 传感器技术及应用[M]. 北京:航空航天大学出版社,2001. [3]袁新燕.关于“单片机原理与应用”教学的讨论[J].电脑开发与应用,1997,10(4):56-59. [4]唐炜.单片机原理与应用课程教学改革探讨[J].电气电子教学学报,2002,24(3):21-23. [5]楼然苗, 李光飞. 51系列单片机设计实例[M]. 北京:航空航天大学出版社,2003. [6]张友德,赵志英,涂时亮.单片微型机原理、应用与实验[M]. 上海:复旦大学出版社,2006. [7]曾一江. 单片机原理与接口技术[M].北京:科学出版社, 2006. [8]QU Jin-yu.Measure  of Engine Speed Based on C8052F Chip[J].Tractor&Farm Transporter,2007,12(5):12-15. [9]赵亮.液晶显示模块LCD1602应用[J].电子制作,2007,17(3):12-15 . [10]王锁弘.电子车速里程表的单片机实现方案[J].国外电子元器件,2004,14(5):7-8. [11]陈雪丽.单片机原理及接口技术[M]. 西安:化学工业出版社, 2005. [12]LvQuan. Modern sensor principle and application[J]. The first edition. Beijing: tsinghua university press. 2006,10(5): 3-5. [13]邓燕妮,常小科,刘辉琴等.基于51单片机控制的液晶显示技术[J].工业控制计算机,2007,12(3):22-25. [14]蔡康松,段杏林.基于单片机字符型液晶显示模块控制设计[J].黄山学院学报,2005,5(6):10-15. [15]尹勇强.uVision2单片机应用开发指南[M]. 北京:航空航天大学出版社,2005[16]V.Yu.Teplov,A.V.Anisimov.ThermostattingSystemUsingaSingle-ChipMicrocomputerandThermoelectricModulesBasedonthePeltierEffect[J],2002[17]YeagerBrent.Howtotroubleshootyourelectronicscale[J]..PowderandBulkEngineering.1995[18]MeehanJoanne,MuirLindsey.SCMinMerseysideSMEs:Benefitsandbarriers[J]..TQMJournal.2008[19]NonisR,DaDaltN,PalestriP,etal.Modeling,designandcharacterizationofanewlow-jitteranalogdualtuningLC-VCOPLLarchitecture[J].IEEEJournalofSolidStateCircuits.2005[7]LimKyoohyun,ParkChanhong,KimDalsoo,etal.Alow-noisephase-lockedloopdesignbyloopbandwidthoptimization.IEEEJournalofSolidStateCircuits.2000[20]BoerstlerDW.Alow-jitterPLLclockgeneratorformicroprocessorswithlockrangeof340~612MHz.IEEEJournalofSolidStateCircuits.1999[9]LeeJri.High-SpeedCircuitDesignsforTransmittersinBroad-bandDataLinks.IEEEJournalofSolid-StateCircuits[J].2006-79- 华科学院本科毕业设计(论文)-79- 华科学院本科毕业设计(论文)致谢经过这么长时间的忙碌,毕业设计和论文已经接近尾声。在毕业设计的过程中,由于经验的缺乏以及知识的局限性,难免有许多考虑不周全的地方,在选题,设计等方面,如果没有王玉杰导师的督促指导,没有同学们的支持和帮助,单独完成这个设计,其中还是有一定难度的。在论文完稿之际,我想借此机会对在完成毕业设计期间关心、帮助、支持和鼓励过我的老师、同学以及朋友们致以最诚挚的谢意和最衷心的祝福!首先我要感谢的是我的导师王玉杰老师,在完成整个毕业设计的过程中,王老师给我提供了很大的帮助,在选题、设计以及修改论文的各个环节里老师给我指出了很多错误,提出了很多宝贵意见,对于设计中存在的问题也是耐心的回答和指导,让我能够顺利的完成毕业设计。在此谨向老师致以诚挚的谢意和崇高的敬意。其次要感谢的是所有在大学四年中教育指导过我的所有老师,你们传授给我的专业知识是我完成本设计的基础,也是日后踏入工作岗位的重要基石,对于老师们一丝不苟,兢兢业业的精神表示衷心的感谢。最后我还要向所有关心和支持我学习的朋友和同学们表示真挚的谢意!感谢你们对我的关心、关注和支持。-79- 华科学院本科毕业设计(论文)-79- 华科学院本科毕业设计(论文)附录附录一:PCB板图:设计整体电路图:-79- 华科学院本科毕业设计(论文)-79- 华科学院本科毕业设计(论文)附录二:程序:#include#include#defineuintunsignedint#defineucharunsignedchar///////时钟芯片端口定义////////////////////////sbitsck=P1^0;sbitio=P1^1;sbitrst=P1^2;//////液晶控制端口定义//////////////////sbitrs=P3^3;sbiten=P3^2;//////按键端口定义//////////////////////////////sbitkey1=P1^3;sbitkey2=P1^4;sbitkey3=P1^5;sbitkey4=P1^6;/////////自动或者按照作息时间切换////////////////////////sbitqh=P1^7;//自动或者按照作息时间切换/////自动控制时信号输入/////////////////////////////////////////////////sbitgg=P3^5;//光敏电阻信号输入sbityy=P3^6;//下雨传感器信号输入uchartable[]={"0123456789"};//液晶显示字符ucharwritetime[7];ucharwriteadd[7]={0x8c,0x8a,0x88,0x86,0x84,0x82,0x80};//写入数据的地址ucharreadadd[7]={0x8d,0x8b,0x89,0x87,0x85,0x83,0x81};//时钟芯片读出数据的地址//////步进电机接口//////////////ucharfan[4]={0xf8,0xf4,0xf2,0xf1};//反转ucharzheng[4]={0xf1,0xf2,0xf4,0xf8};//正转-79- 华科学院本科毕业设计(论文)ucharnian,yue,ri,shi,fen,miao;//变量定义ucharshi1,fen1,shi2,fen2;//时分1开启和2关闭比较变量bitchuang_flag;//窗户开关标志位,0为窗户开,1为窗户关voiddelay(uintms)//延时函数{uchary;for(ms;ms>0;ms--)for(y=110;y>0;y--);}voidds1302_write_byte(uchardate)//时钟芯片写字节{uchari;for(i=0;i<8;i++){sck=0;io=date&0x01;date=date>>1;sck=1;}}voidds1302_write(ucharadd,uchardate)//时钟芯片相应地址写入数据{rst=0;_nop_();sck=0;_nop_();rst=1;_nop_();ds1302_write_byte(add);ds1302_write_byte(date);rst=0;_nop_();sck=0;_nop_();-79- 华科学院本科毕业设计(论文)io=1;sck=1;}uchards1302_read(ucharadd)//时钟芯片相应地址读出数据{uchari,date;rst=0;_nop_();sck=0;_nop_();rst=1;_nop_();ds1302_write_byte(add);for(i=0;i<8;i++){date=date>>1;sck=0;if(io)date=date|0x80;sck=1;}rst=0;_nop_();sck=0;_nop_();io=1;sck=1;returndate;}voidyj1602_write_com(ucharcom)//液晶写入地址{en=0;delay(1);en=1;delay(1);-79- 华科学院本科毕业设计(论文)rs=0;delay(1);P0=com;en=0;delay(1);}voidyj1602_write_date(uchardate)//液晶写入数据{en=0;delay(1);en=1;delay(1);rs=1;delay(1);P0=date;en=0;delay(1);}voidyj1602_init()//液晶初始化{yj1602_write_com(0x38);yj1602_write_com(0x0c);yj1602_write_com(0x06);yj1602_write_com(0x01);}voidwrite_1602(ucharadd,uchardate)//液晶显示数字字符{ucharshi,ge;shi=date/16;ge=date%16;yj1602_write_com(0x80+add);yj1602_write_date(0x30+shi);//0x30码制转换yj1602_write_date(0x30+ge);}-79- 华科学院本科毕业设计(论文)voiddisplay()//显示函数显示年月日时分秒{yj1602_write_com(0x80);yj1602_write_date("D");yj1602_write_date("a");yj1602_write_date("t");yj1602_write_date("a");yj1602_write_date(":");writetime[0]=ds1302_read(readadd[0]);write_1602(5,writetime[0]);yj1602_write_com(0x80+7);yj1602_write_date("-");writetime[2]=ds1302_read(readadd[2]);write_1602(8,writetime[2]);yj1602_write_com(0x80+10);yj1602_write_date("-");writetime[3]=ds1302_read(readadd[3]);write_1602(11,writetime[3]);yj1602_write_com(0x80+14);if(chuang_flag==0)yj1602_write_date("K");if(chuang_flag==1)yj1602_write_date("G");yj1602_write_com(0x80+0x40);yj1602_write_date("T");yj1602_write_date("i");yj1602_write_date("m");yj1602_write_date("e");yj1602_write_date(":");writetime[4]=ds1302_read(readadd[4]);write_1602(0x40+5,writetime[4]);-79- 华科学院本科毕业设计(论文)yj1602_write_com(0x80+0x40+7);yj1602_write_date(":");writetime[5]=ds1302_read(readadd[5]);write_1602(0x40+8,writetime[5]);yj1602_write_com(0x80+0x40+10);yj1602_write_date(":");writetime[6]=ds1302_read(readadd[6]);write_1602(0x40+11,writetime[6]);yj1602_write_com(0x80+0x40+11);}voiddisplay1()//显示调整开启和关闭时间函数{yj1602_write_com(0x80);yj1602_write_date("K");yj1602_write_date("a");yj1602_write_date("i");yj1602_write_date(":");yj1602_write_com(0x87);yj1602_write_date(table[shi1/10]);yj1602_write_date(table[shi1%10]);yj1602_write_date("-");yj1602_write_date(table[fen1/10]);yj1602_write_date(table[fen1%10]);yj1602_write_com(0x80+0x40);yj1602_write_date("G");yj1602_write_date("a");yj1602_write_date("n");yj1602_write_date(":");-79- 华科学院本科毕业设计(论文)yj1602_write_com(0x87+0x40);yj1602_write_date(table[shi2/10]);yj1602_write_date(table[shi2%10]);yj1602_write_date(":");yj1602_write_date(table[fen2/10]);yj1602_write_date(table[fen2%10]);}voidkeyscan()//按键扫描{uchardate_flag;ucharset_flag;ucharj,k;if(key1==0){yj1602_init();delay(10);if(key1==0){display();ds1302_write(0x8e,0x00);date_flag=1;yj1602_write_com(0x80+5);yj1602_write_date("*");//依次调整年月日时分,秒不可调整yj1602_write_date("*");nian=ds1302_read(readadd[0]);j=nian/16;k=nian%16;nian=j*10+k;}while(!key1);-79- 华科学院本科毕业设计(论文)}////////////////////////调整年///////////////////////////////////////while(date_flag==1){display();if(key1==0){delay(10);if(key1==0){date_flag=2;yj1602_write_com(0x80+8);yj1602_write_date("*");//依次调整年月日时分,秒不可调整yj1602_write_date("*");yue=ds1302_read(readadd[2]);j=yue/16;k=yue%16;yue=j*10+k;}while(!key1);}if(key2==0){delay(10);if(key2==0){nian++;yj1602_write_com(0x80+5);yj1602_write_date("*");yj1602_write_date("*");-79- 华科学院本科毕业设计(论文)if(nian==100)//年nian=0;j=nian/10;k=nian%10;writetime[0]=j*16+k;ds1302_write(writeadd[0],writetime[0]);}while(!key2);}if(key3==0){delay(10);if(key3==0){if(nian==0)nian=100;yj1602_write_com(0x80+5);yj1602_write_date("*");yj1602_write_date("*");nian--;j=nian/10;k=nian%10;writetime[0]=j*16+k;ds1302_write(writeadd[0],writetime[0]);}while(!key3);}}/////////////调整月///////////////////////////////////////////////while(date_flag==2)-79- 华科学院本科毕业设计(论文){display();if(key1==0){delay(10);if(key1==0){date_flag=3;yj1602_write_com(0x80+11);yj1602_write_date("*");//依次调整年月日时分,秒不可调整yj1602_write_date("*");ri=ds1302_read(readadd[3]);j=ri/16;k=ri%16;ri=j*10+k;}while(!key1);}if(key2==0){delay(10);if(key2==0){yj1602_write_com(0x80+8);yj1602_write_date("*");yj1602_write_date("*");yue++;if(yue>=13)yue=1;-79- 华科学院本科毕业设计(论文)j=yue/10;k=yue%10;writetime[2]=j*16+k;ds1302_write(writeadd[2],writetime[2]);}while(!key2);}if(key3==0){delay(10);if(key3==0){if(yue<=1)yue=13;yj1602_write_com(0x80+8);yj1602_write_date("*");yj1602_write_date("*");yue--;j=yue/10;k=yue%10;writetime[2]=j*16+k;ds1302_write(writeadd[2],writetime[2]);}while(!key3);}}/////////////调整日///////////////////////////////////////////////while(date_flag==3){display();-79- 华科学院本科毕业设计(论文)if(key1==0){delay(10);if(key1==0){date_flag=4;yj1602_write_com(0x80+0x40+5);yj1602_write_date("*");//依次调整年月日时分,秒不可调整yj1602_write_date("*");shi=ds1302_read(readadd[4]);j=shi/16;k=shi%16;shi=j*10+k;}while(!key1);}if(key2==0){delay(10);if(key2==0){yj1602_write_com(0x80+11);yj1602_write_date("*");yj1602_write_date("*");ri++;if((yue==1)||(yue==3)||(yue==5)||(yue==7)||(yue==8)||(yue==10)||(yue==12)){if(ri==32)-79- 华科学院本科毕业设计(论文)ri=1;}if(yue==2){if(nian%4==0){if(ri==30)ri=1;}else{if(ri==29)ri=1;}}if((yue==4)||(yue==6)||(yue==9)||(yue==11)){if(ri==31)ri=1;}j=ri/10;k=ri%10;writetime[3]=j*16+k;ds1302_write(writeadd[3],writetime[3]);}while(!key2);}if(key3==0){-79- 华科学院本科毕业设计(论文)delay(10);if(key3==0){if((yue==1)||(yue==3)||(yue==5)||(yue==7)||(yue==8)||(yue==10)||(yue==12)){if(ri==1)ri=32;}if(yue==2){if(nian%4==0){if(ri==1)ri=30;}else{if(ri==1)ri=29;}}if((yue==4)||(yue==6)||(yue==9)||(yue==11)){if(ri==1)ri=31;}yj1602_write_com(0x80+11);yj1602_write_date("*");-79- 华科学院本科毕业设计(论文)yj1602_write_date("*");ri--;j=ri/10;k=ri%10;writetime[3]=j*16+k;ds1302_write(writeadd[3],writetime[3]);}while(!key3);}}/////////////调整时///////////////////////////////////////////////while(date_flag==4){display();if(key1==0){delay(10);if(key1==0){date_flag=5;yj1602_write_com(0x80+0x40+8);yj1602_write_date("*");//依次调整年月日时分,秒不可调整yj1602_write_date("*");fen=ds1302_read(readadd[5]);j=fen/16;k=fen%16;fen=j*10+k;}while(!key1);}-79- 华科学院本科毕业设计(论文)if(key2==0){delay(10);if(key2==0){yj1602_write_com(0x80+0x40+5);yj1602_write_date("*");yj1602_write_date("*");shi++;if(shi==24)shi=0;j=shi/10;k=shi%10;writetime[4]=j*16+k;ds1302_write(writeadd[4],writetime[4]);}while(!key2);}if(key3==0){delay(10);if(key3==0){if(shi==0)shi=24;yj1602_write_com(0x80+0x40+5);yj1602_write_date("*");yj1602_write_date("*");shi--;j=shi/10;k=shi%10;writetime[4]=j*16+k;-79- 华科学院本科毕业设计(论文)ds1302_write(writeadd[4],writetime[4]);}while(!key3);}}/////////////调整分///////////////////////////////////////////////while(date_flag==5){display();if(key1==0){delay(10);if(key1==0){date_flag=0;yj1602_write_com(0x80+5);yj1602_write_date("*");yj1602_write_date("*");yj1602_write_com(0x80+8);yj1602_write_date("*");yj1602_write_date("*");yj1602_write_com(0x80+11);yj1602_write_date("*");yj1602_write_date("*");yj1602_write_com(0x80+0x40+5);yj1602_write_date("*");yj1602_write_date("*");yj1602_write_com(0x80+0x40+8);yj1602_write_date("*");yj1602_write_date("*");-79- 华科学院本科毕业设计(论文)yj1602_write_com(0x80+0x40+11);yj1602_write_date("*");yj1602_write_date("*");writetime[6]=0;ds1302_write(writeadd[6],writetime[6]);ds1302_write(0x8e,0x80);}while(!key1);}if(key2==0){delay(10);if(key2==0){yj1602_write_com(0x80+0x40+8);yj1602_write_date("*");yj1602_write_date("*");fen++;if(fen==60)fen=0;j=fen/10;k=fen%10;writetime[5]=j*16+k;ds1302_write(writeadd[5],writetime[5]);}while(!key2);}if(key3==0){delay(10);if(key3==0)-79- 华科学院本科毕业设计(论文){if(fen==0)fen=60;yj1602_write_com(0x80+0x40+8);yj1602_write_date("*");yj1602_write_date("*");fen--;j=fen/10;k=fen%10;writetime[5]=j*16+k;ds1302_write(writeadd[5],writetime[5]);}while(!key3);}}if(key4==0){delay(10);if(key4==0){yj1602_init();set_flag=1;yj1602_write_com(0x87);yj1602_write_date("*");yj1602_write_date("*");}while(!key4);}while(set_flag==1){display1();-79- 华科学院本科毕业设计(论文)if(key2==0){delay(10);if(key2==0){yj1602_write_com(0x87);yj1602_write_date("*");yj1602_write_date("*");shi1++;if(shi1==24)shi1=0;}while(!key2);}if(key3==0){delay(10);if(key3==0){yj1602_write_com(0x87);yj1602_write_date("*");yj1602_write_date("*");if(shi1==0)shi1=24;shi1--;}while(!key3);}if(key4==0){delay(10);if(key4==0)-79- 华科学院本科毕业设计(论文){yj1602_write_com(0x8a);yj1602_write_date("*");yj1602_write_date("*");set_flag=2;}while(!key4);}}while(set_flag==2){display1();if(key2==0){delay(10);if(key2==0){yj1602_write_com(0x8a);yj1602_write_date("*");yj1602_write_date("*");fen1++;if(fen1==60)fen1=0;}while(!key2);}if(key3==0){delay(10);if(key3==0){-79- 华科学院本科毕业设计(论文)yj1602_write_com(0x8a);yj1602_write_date("*");yj1602_write_date("*");if(fen1==0)fen1=60;fen1--;}while(!key3);}if(key4==0){delay(10);if(key4==0){yj1602_write_com(0x87+0x40);yj1602_write_date("*");yj1602_write_date("*");set_flag=3;}while(!key4);}}while(set_flag==3){display1();if(key2==0){delay(10);if(key2==0){yj1602_write_com(0x87+0x40);-79- 华科学院本科毕业设计(论文)yj1602_write_date("*");yj1602_write_date("*");shi2++;if(shi2==24)shi2=0;}while(!key2);}if(key3==0){delay(10);if(key3==0){yj1602_write_com(0x87+0x40);yj1602_write_date("*");yj1602_write_date("*");if(shi2==0)shi2=24;shi2--;}while(!key3);}if(key4==0){delay(10);if(key4==0){yj1602_write_com(0x8a+0x40);yj1602_write_date("*");yj1602_write_date("*");set_flag=4;}-79- 华科学院本科毕业设计(论文)while(!key4);}}while(set_flag==4){display1();if(key2==0){delay(10);if(key2==0){yj1602_write_com(0x8a+0x40);yj1602_write_date("*");yj1602_write_date("*");fen2++;if(fen2==60)fen2=0;}while(!key2);}if(key3==0){delay(10);if(key3==0){yj1602_write_com(0x8a+0x40);yj1602_write_date("*");yj1602_write_date("*");if(fen2==0)fen2=60;fen2--;}-79- 华科学院本科毕业设计(论文)while(!key3);}if(key4==0){delay(10);if(key4==0){set_flag=0;yj1602_write_com(0x87);yj1602_write_date("*");yj1602_write_date("*");yj1602_write_com(0x8a);yj1602_write_date("*");yj1602_write_date("*");yj1602_write_com(0x87+0x40);yj1602_write_date("*");yj1602_write_date("*");yj1602_write_com(0x8a+0x40);yj1602_write_date("*");yj1602_write_date("*");}while(!key4);}}}voiddeal_with(){ucharss,ff,a,b;uchari,j;-79- 华科学院本科毕业设计(论文)if(qh==1)//不接短路帽为自动定时控制{display();keyscan();a=writetime[4]/16;b=writetime[4]%16;ss=a*10+b;a=writetime[5]/16;b=writetime[5]%16;ff=a*10+b;if((shi1!=0)&&(fen1!=0)&&(shi2!=0)&&(fen2!=0)){if((shi1==ss)&&(fen1==ff)&&(chuang_flag==1))//需要打开窗户的时间和窗是关闭的{//yy晴天1,下雨0//gg白天0,白天开窗for(j=0;j<128;j++)//步进电机转90°{for(i=0;i<4;i++){P2=zheng[i];display();}}chuang_flag=0;//窗户当前状态开启}if((shi2==ss)&&(fen2==ff)&&(chuang_flag==0))//需要关闭窗户的时间和窗是打开的{for(j=0;j<128;j++)//步进电机转90°-79- 华科学院本科毕业设计(论文){for(i=0;i<4;i++){P2=fan[i];display();}}chuang_flag=1;//1为窗户当前状态关}}}if(qh==0)//街上短路帽为触发信号控制(光敏电阻和雨滴传感器){display();if((yy==0)&&(chuang_flag==0))//yy=0下雨关窗,0为窗户开的情况(白天)关闭窗户{for(j=0;j<128;j++)//步进电机转90°{for(i=0;i<4;i++){P2=fan[i];display();}}chuang_flag=1;//1为窗户当前状态关}if((yy==1)&&(gg==1)&&(chuang_flag==0))//0为窗户开,到了晚上需要关窗{//yy晴天1,下雨0//gg晚上1,晚上关窗-79- 华科学院本科毕业设计(论文)for(j=0;j<128;j++)//步进电机转90°{for(i=0;i<4;i++){P2=fan[i];display();}}chuang_flag=1;//1为窗户当前状态关}if((yy==1)&&(gg==0)&&(chuang_flag==1))//窗户关,到白天需要开窗{//yy晴天1,下雨0//gg白天0,白天开窗for(j=0;j<128;j++)//步进电机转90°{for(i=0;i<4;i++){P2=zheng[i];display();}}chuang_flag=0;//窗户当前状态开启}}}voidmain()//主函数{yj1602_init();while(1)-79- 华科学院本科毕业设计(论文){display();//显示函数keyscan();//按键扫描函数deal_with();//窗开关处理}}-79-'