基于单片机的自动窗控制系统设计_第1页
基于单片机的自动窗控制系统设计_第2页
基于单片机的自动窗控制系统设计_第3页
基于单片机的自动窗控制系统设计_第4页
基于单片机的自动窗控制系统设计_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

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

文档简介

[20]。图2-9JDY-33蓝牙通信模块实物图2.8AD转换器的选择方案1:ADC0832ADC0832采样率最高为200kHz,输入电压范围为0-5V。它适用于低速采样的应用场景,例如温度、光照度等模拟量信号的数字化转换。方案2:AD6620ASZAD6620ASZ采样率可高达1MHz,输入电压范围为-10V~10V。其适用于高速采样和高精度数字化转换的应用场景,例如音频、视频、雷达等信号的数字化转换。对比两种方案,在本设计中需要对雨量和光照进行数模转化,所以选择方案1。ADC0832实物图如图2-10所示。图2-10ADC0832实物图2.9本章小结本章对系统的总体方案设计做了详细阐述,从多方面比较了该系统所要用到的器件,最后根据是否能实现要求确定了器件的选择。第3章系统硬件设计3.1单片机最小系统的设计3.1.1STC89C52RC单片机介绍STC89C52RC是以8051为核心的微控制器,其性能价格比高,功耗低,程序设计简单。在工业控制、家用电器、电子仪器、汽车电子等方面有广泛的应用。主要功能如表3-1所示。单片机有一个低功率运行方式,使得待机状态下的功率消耗更小,从而提高了电池的续航能力。STC89C52RC是一款具有高性价比、功能丰富、易于编程的单片机,其DIP封装如图3-1所示。在P0、P1、P2、P3端口中,一共有32个可编程的输入/输出管脚,每一个端口中都有8位(8个管脚)。表3-1STC89C52RC主要功能主要功能特性兼容MCS51指令系统4K可反复擦写FlashROM32个双向I/O口256x8bit内部RAM3个16位可编程定时/计数器中断时钟频率0-24MHz2个串行中断可编程UART串行通道2个外部中断源共6个中断源2个读写中断口线3级加密位低功耗空闲和掉电模式软件设置睡眠和唤醒功能图3-1STC89C52RCDIP封装图3.1.2晶振电路STC89C52RC单片机的时钟信号能以两种方式产生。第一,内部时钟方式是利用单片机内部的振荡电路,在单片机内部产生时钟脉冲信号。第二,由外部电路产生。为了稳定频率和快速起振,电路中使用了电容C1和C2,晶振CYS的振荡频率可根据需要选择,常用的典型值为12MHz和6MHz。电路图如图3-2所示。图3-2晶振电路设计图3.1.3复位电路STC89C52RC单片机的复位电路包含外部复位电路和内部复位电路。在外部复位电路中按下复位按键时,电容开始充电,同时给单片机提供一个低电平信号,将单片机复位。内部复位电路通过监测芯片的电源电压状态来实现复位功能。当引脚RST的电压从高电平变为低电平时,内部复位电路会被触发,它将清空所有寄存器,并从地址为0的位置开始执行程序。在这个过程中,必须保证引脚RST的电平不能一直处于低电平状态,否则会导致芯片无法正常工作。具体电路如图3-3所示。图3-3复位电路设计图3.1.4单片机最小系统电路图STC89C52RC是一款非常出色的最小系统电路,具有广泛的应用前景,电路图如图3-4所示。STC89C52RC单片机采用5V电源供电,单片机复位引脚高电平有效,图中采用C2,R1和SW5构成了复位电路。单片机时钟端口18和19脚为时钟输入脚,采用11.0592MHz晶振和两颗22pF电容组成了时钟电路,给单片机提供工作脉冲。STC89C52RC单片机具有4组IO口,P0、P1、P2、P3,其中P0口驱动能力最弱,属于三态门,所以在最小系统中通过上拉电阻,来提高端口的驱动能力,P3口的驱动能力最强,并且P3端口具有第二功能,包括计数器脉冲输入,外部中断输入和串口功能。图3-4单片机最小系统3.2电源电路该设计使用的是USB接口做供电口,将USB线直接插入到电源插座或者充电宝上就能供电,线必须能承受输出5V,2A。USB接开关和指示灯,通电后,开关负责电的通断,指示灯亮。电路图如图3-5所示。图3-5电源电路设计3.3LCD1602显示电路LCD1602显示电路是一种基于液晶显示技术的电路,其可以用来显示文字、数字和符号等信息。在该设计中第一排显示窗户开闭状态、光照强度、是否有人、温度,第二排是显示当前风速和雨量。电路图如图3-6所示。图3-6显示模块电路设计3.4A/D转换电路A/D转换电路的作用是把雨和光两种传感器收集到的模拟信号转化为数字信号。在本次设计中用的是AD0832,芯片仅在CS管脚处于低值时,方可启动,以完成变换动作。引脚CLK,作为该芯片的一个时钟输入端。DI/DO引脚分别实现了通道的选择与变换后的数据的输出。CH0、CH1为与降水量、光照传感器相连的两个信号输入端。采用DO/DI双管脚分别选取两个通道,从而实现对各种传感器信号的读出。电路图如图3-7所示。图3-7ADC0832电路图3.5按键电路设计该设计用到了三个独立按键,按键电路主要由按键,电源和单片机接口组成,其一端接地,一端接入单片机中,当触发时单片机获取端口状态,然后执行相应程序。SW2是用来换页选择温度、光、降水的,SW3是增加阈值的,SW4是减少阈值的。电路图如图3-8所示。图3-8按键电路图3.6电机驱动电路设计在该设计中使用L289N驱动模块驱动电机,其是一款双路全桥式驱动芯片,工作电压最高可达到46V,输入信号可为高低电平信号或PWM信号。在本设计中没有采用PWM信号,只需控制一个电机。引脚IN1、IN2连接单片机,引脚OUT1、OUT2连接电机,如果给IN1输入一个信号,电机正转,给IN2输入一个信号,电机反转。原理图如图3-9所示。图3-9电机驱动原理图3.7传感器电路设计3.7.1光照传感器模块设计本模块主要用于对光照进行采集,通过转换器变换后,将数据传输到单片机,光照才会在显示屏上显示数值。原理图如图3-10所示。图3-10光照传感器模块原理图3.7.2温度传感器模块设计相比于传统的模拟温度传感器,DS18B20温度传感器输出的是数字信号,可以直接被微处理器等数字设备读取;DS18B20温度传感器可以通过热插拔方式直接连接到电路板上,并且不需要外部元器件;误差低,可实现高精度的温度测量。原理图如图3-11所示。图3-11温度传感器模块原理图3.7.3人体热释电感应模块设计RCWL-0515模块是一款微波雷达运动传感器,采用射频微波电路技术,其核心为RCWL-9196芯片,可以用于探测人体、动物或其他移动物体的运动。当有物体进入检测范围时,微波信号会被反射回来并被接收天线接收,这个反射信号可以被传感器接收并转换成电信号输出。广泛应用于安防、智能家居、灯光开关等领域。原理图如图3-12所示。图3-12人体热释电感应模块原理图3.7.4风速传感器模块设计霍尔传感器通过磁场变化来测得风速。具体来说,当气流穿过磁场时,会引起磁场的扰动。这个扰动会被转换成电信号,然后通过霍尔元件进行检测和放大。此模块采用霍尔传感器检测风扇叶片上的磁铁,每当叶片旋转一周时,霍尔传感器输出一个高电平信号。单片机使用外部中断引脚和定时器测量高电平脉冲的周期,一旦达到所需的转速,指示灯将点亮。单片机接收并解析数据,并在LCD1602液晶屏上显示风扇的转速。原理图如图3-13所示。图3-13风速传感器模块原理图3.7.5雨量传感器模块设计本模块主要是对降水量进行采集,从传感器的输出口连接转换器。在转换器中数模转换后数据会传送给单片机,最后在显示屏上显示出示数。原理图如图3-14所示。图3-14雨量传感器模块原理图3.8PCB板图设计原理图绘制完成后,首先根据电路原理图确定需要使用的器件清单,并记录其名称、封装类型、引脚数目等信息。然后通过软件对所有电路进行封装,连接线接好,再对比电路原理图,查看是否错接,最后完成PCB的布局,如图3-15所示。图3-15PCB板图3.9系统原理图通过A/D软件将各个模块的接口连接到一起,构成了整个系统的硬件电路,并绘制了系统的原理图。电路原理图包括STC89C52单片机、晶振电路、复位电路、各个传感器电路、显示电路、驱动电路,报警电路。如图3-16所示。图3-16系统原理图3.10本章小结本章主要介绍了自动窗的总体硬件设计方案,包括单片机最小系统、A/D转换模块、按键模块、电机驱动模块、传感器模块、显示模块、PCB版图的设计。第4章系统软件设计4.1编译工具简介Keil4是一种基于C语言的嵌入式系统开发环境,由德国Keil公司推出。Keil4支持各种比较流行的微控制器和开发板,例如ARM系列的芯片,STC单片机等。Keil4还提供了各种软件开发工具和组件,如编译器、汇编器、仿真器等,方便开发人员进行嵌入式系统的设计、测试和调试。主要特点包括:全面支持各种微处理器,如ARM、8051等;提供了易于使用的编译器和集成开发环境;支持多种调试模式,如仿真器、硬件调试器等;支持开发板或外部设备的驱动程序开发和测试。4.2主程序设计系统通电后,首先开始进行初始化,然后检测是否有蓝牙信号,有蓝牙信号的话就调用蓝牙控制程序。没有的话就开始检测按键是否按下,如果按下就为手动模式,然后调用手动模式程序,没有按下的话则为自动模式。在自动模式下系统会持续不断地检测传感器模块输出的温度、光照、雨量、风速以及人体信号,并将它们实时显示在液晶屏上。同时如果测得当前温度超过设定阈值,则系统通过单片机驱动电机来开窗。在开窗的状态下,如果测得当前光照、雨量、风速和是否有人任意一项满足要求,系统就会通过单片机驱动电机进行关窗并发起警报。总程序流程图如图4-1所示。4.3蓝牙控制模块程序设计该模块在通电后,首先初始化,然后判断蓝牙是否连接,连接后发出控制信号,流程图如图4-2所示。4.4按键程序设计系统通电后,首先初始化,接着进行判断按键1是否按下,如果按下则更换行数,会从总页面依次跳转到温度、风速、雨量、光照页面,跳转后接着判断按键2、按键3是否按下,如果按键2按下则增加阈值,按键3按下则减少阈值。如图4-3所示。4.5LCD1602显示程序设计如图4-4所示为LCD1602显示流程图,系统通电后,首先初始化,然后判断是否对液晶进行读写,是的话就选择显示的位置,最后在正确的位置显示所接收的数据。图4-1主程序流程图图4-2蓝牙控制模块流程图图4-3按键流程图图4-4LCD1602显示屏流程图4.6传感器程序设计该传感器启动后首先进行初始化,然后对温度进行采集,存储到寄存器中,数模转换后,读取温度值,最后传送给单片机。如图4-5所示。图4-5温度传感器程序流程图光照传感器需要在初始化后进行数据采集,并将采集到的数据发送给ADC0832转换器进行处理,处理后的数据才能够被传输到单片机中使用。具体过程如图4-6所示。图4-6光照传感器程序流程图雨量传感器在初始化后,然后采集数据,将数据发给AD0832转换器,转换成数字量,最后传输给单片机,如图4-7所示。风速传感器在初始化后,然后判断磁极的变化,有变化则输出高电平信号,最后测得风速传给单片机,如图4-8所示。图4-7雨量传感器程序流程图图4-8风速传感器程序流程图人体热释电传感器发射微波并分析反射波以检查是否有任何变化,当检测到运动时,传感器的TTL电平输出引脚将从低电平切换到高电平,然后给单片机最后在液晶屏上显示,如图4-9所示。图4-9人体热释电传感器程序流程图4.7本章小结本章首先阐述了编译工具的特点,然后完成了本系统中主程序、显示程序、传感器程序、转换器程序、按键程序、蓝牙控制程序的设计,同时阐述了各个程序所实现的功能。第5章系统硬件调试5.1硬件调试硬件电路焊接完毕后,要按照所设计的软体电路原理图来核对线路的连结是否准确。在进行硬体电路板的焊接过程中,会出现很多问题,比如虚焊、引脚损坏、串接等。出现上述问题时,要按照标准的方式,利用万用表对故障进行检测,找到故障产生的原因,然后重新焊接解决问题。由于本系统的应用范围较广,必须获得稳定的适用于单片机工作的电压。当电力供应完成后,首先要做的就是检测一下,测试元器件是否有问题,如果有问题,零件就会被破坏,整个系统就会崩溃。所以,在给硬件送电前,必须对电流加以控制,从而达到对线路的过流保护。在给线路上供电以后,要检查线路上的各种元件的状况,如果有一个元件发生了异常,就要立刻切断电源。没有问题后应当将程序通过下载器下载程序以反接的方式插到蓝牙接口上,传输给单片机。然后重新启动系统,对各个传感器进行操作,查看是否能实现预设功能,在所有的功能都满足要求的情况下,软件程序传输顺利完成,硬件实物图如图5-1所示。图5-1硬件焊接图5.2软件调试对实物进行了各种测试之后,接下来要对软件展开了一系列的检测工作,这些检测工作是按照整个系统中每个模块所需要的功能来展开的。在进行调试的时候,要对每个模块的软件功能进行检测,如果在检测过程中出现了一些问题,那么就可以按照当时存在的问题来改写程序修改,在每个模块的软件测试完成之后,就可以对整个系统展开一次全面的检测。这次的软件测试在系统功能实现中起到了很大的作用,此次软件是对各个模块分别进行了设计,从而降低了各模块之间的耦合程度,降低了软件测试中出现错误的可能性。在进行检测时,将相应的每个模块的软件程序分别进行检测,检测每个模块的软件是否能够正常地工作。如果在设计的软件程序中或者是在程序结构中,发现了一个错误,就要去找到问题发生的位置,对问题产生的原因进行分析,并对其进行改正。假如不是逻辑和制作方面的问题,那么就要对测试环境中没有设置相关参数的方面进行分析,可以在网上查资料,或者和老师交流,直到软件程序不会发生问题为止。在软件测试结束后,要对各个模块性能进行检测,要考虑到软件编制时没有错误,模块自身会发生功能无法全部实现的情况,而各个模块的性能都可以实现,在多次测试后也没有出现错误的情况,则本次软件测试完成。5.3系统调试在对系统进行了硬件焊接和软件测试后,系统实体就可以进行上电测试了。在整个设计中,系统是否能够实现预定的功能,这是非常重要的一步。如果在上电测试的过程中,产生了按键不灵、受气候影响的问题,那么就要对这些问题进行分析和解决。在解决了问题之后,需要进行多次测试,直到不在会出现问题,功能都能实现,那么该系统的测试就完成了。5.3.1系统功能演示系统通过USB插口上电后,LCD1602显示屏就会显示数据。同时,传感器会实时采集数据,LCD1602显示屏上就会实时更新数据。第一页第一行显示的依次是窗户状态、光照、是否有人、温度,第二行显示的是风速、雨量;第二页为光照设定的上阈值,第三页为雨量设定的下阈值,第四页为温度设定的上阈值,第五页为风速设定的下阈值。如果窗户在关闭的状态下,测得温度的数值大于设定的下限时,电机就会工作,反之电机静止。当前测得温度的数值超过设定的阈值19,电机就会进行转动,窗户呈现打开的状态,如图5-2所示。图5-2窗户打开示意图在窗户打开的情况下,当前测得光照的数值超过设定阈值50的时候,电机就会进行转动,窗户呈现关闭的状态显示如下图5-3所示。窗户关闭的情况还有风速超过设置阈值、雨量超过设置阈值、检测到有人。图5-3光照条件下窗户关闭示意图在窗户打开的情况下,如果测得的风速数值大于预先设置的阈值8,电机就会进行转动,窗户就会呈现关闭的状态,如图5-4所示。图5-4风速条件下窗户关闭示意图在窗户打开的情况下,如果测得的降水量数值大于预先设置的阈值50,电机就会进行转动,窗户呈现关闭的状态,如图5-5所示。图5-5雨量条件下窗户关闭示意图在窗户打开的情况下,如果要检测到有人时,电机就会进行转动,窗户呈现关闭的状态,如图5-6所示。图5-6有人条件下窗户关闭示意图5.3.2调试分析进行硬件测试的调试时,要注意元件和线路之间的连接是否正常,比如线路连接的部位有没有缺焊、连焊等问题,这个时候就需要通过万用表来进行检测来判断。在软件调试的时候,简洁正确的软件程序为设备运行、后期改进、测试功能提供了方便。实物测试是本次设计的最后一步,需要在调试过程中,耐心地、仔细地检查系统功能,确保所有功能都能完全实现。5.4实验结果在室内温度超过舒适温度23°C情况下,窗户是打开的状态,这样方便收集相关传感器数据,采集的数据记录于表5-1中。在窗户打开的状态下,第一行中光照、雨量、风速没有超过阈值并且没有人,窗户不会关闭。第二行是光照超过阈值50,窗户关闭。第三行是风速超过阈值8,窗户关闭。第四行是雨量超过阈值50,窗户关闭。第五行是检测到有人,窗户关闭。最后一行是所有传感器都不满足要求,所以窗户关闭。表5-1实验数据室内温度(°C)光照(lx)雨量(%)风速(m/s)人窗户状态254503无开2652203无关2449189无关2648564无关2745302有关2551559有关5.5本章小结本章对系统的硬件测试、软件调试和实物测试做了详细的阐述。在测试的时候,做了多次测试实验,实验结果表明该系统能实现所有预设的功能。结论在科技高速发展的今天,智慧家居已越来越多地融入到了生活中。而基于单片机的自动窗控制系统设计,正是智能家居中的一种,其可以让人们通过手机或电脑控制窗户的开启和关闭,这既给人们的生活带来了便利,又提升了居住的舒适性。因此,设计智能化的家居系统有重要意义。该控制系统设计由硬件和软件两个部分组成。硬件部分用到了温度传感器DS18B20、液晶显示屏LCD1602、STC89C52单片机、蓝牙、霍尔传感器、雨滴传感器、光敏电阻、RCWL-0515微波感应模块、直流电机。其中,传感器可以检测环境的温度、风速、雨量、光照和是否有人等信息,电机可以控制窗户的开启和关闭,单片机控制器可以对传感器和电机进行控制。软件部分包括程序设计编写,是为了控制窗户的开启和关闭。该系统设计了三种控制模式:手动控制、自动控制、蓝牙控制。基于单片机的自动窗控制系统设计具有以下优点:首先可以自动检测环境信息,实现智能化控制;其次,安全可靠,该系统配有防盗报警措施,确保了用户的财产安全和人身安全。但是,也存在一些缺点,比如不能实现远程控制,只能近距离操控,测试点单一,未来随着技术发展可能会实现。参考文献常淑英.基于单片机的自动控制窗户系统设计[J].中国科技信息,2014,(7):17-18.李硕,贾子庆,张明玮.基于多传感器的智能窗系统设计[J].电子设计工程,2011,(4):10-16.XiaX,ChenF,LeiW,etal.DesignofAutomaticClosingWindowDeviceBasedonSingleChipMicrocomputer[J].ScienceMosaic,2014,(9):8-13吴昌隆,陈美玲,赵兴雷.基于单片机的智能百叶窗硬件设计[J].通信电源技术,2019,36(7):12-20.高素萍,李旭斌.智能窗控制系统的设计与实现[D].深圳:深圳职业技术学院,2010.薛春虎.国外节能门窗现状及发展趋势[D].北京:中国工业大学,2005.金发庆.传感器技术与应用[M],北京:北京机械工业出版社,2002,17-40王茵,李明.基于物联网信息平台的智能窗户设计[J].数字技术与应用,2017,(15):17-25.张仁朝,蔡小兰.基于STC89C52单片机的智能窗户设计[J].电子制作,2018,12(1):12-23.JunBingHE,PeiXiangHE,ZhangJ.WindowofTalkSystemBasedonPICSinglechipMicrocomputer[J].ChineseAgriculturalMechanization,2007,(3):7-9郭天祥.新概念51单片机C语言教程第2版[M].电子工业出版社,2018,20-30秦嘉嵘,陈云龙.基于单片机的智能窗户控制系统的设计与实现[J].中国市场,2019,8(12):4-74.张仁朝,蔡小兰.基于STC89C52单片机的智能窗户设计[J].电子制作,2018,19(23):3-7.何力民.单片机高级教程[M],北京:北京航空大学出版社,2000,25-40NgongiahIsidoreKomofor,RamakrishnanBalamurali,NjitackeZericTabekoueng,KuiateGaetanFautso,KingniSifeuTakougang.DynamicalanalysisandmicrocontrollerimplementationoffractalresistivecapacitiveshuntedJosephsonjunction[J].PhysicaScripta,2022,97(12):5-40王宏刚,万伟雄.基于C语言的自动窗户系统设计与实现[J].信息技术与信息化,2019,(3):3-7.王明秋.智能家居控制系统的设计与实现研究[D].武汉:华中师范大学,2006.秦嘉嵘,陈云龙.基于单片机的智能窗户控制系统的设计与实现[J].中国市场,2019,8(12):4-74.董少明,单片机原理及应用技术[M],北京:北京理工大学出版社,2009,45-60伍春霞.基于单片机雨天自动关窗器的设计[J].电工技术,2020,(20):8-9.

附录A程序代码#include<reg52.h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedint#defineLCDIOP0sbitrs=P2^7;sbitrd=P2^6;sbitlcden=P2^5;sbitspeaker=P1^2;sbitmotor1=P1^0;sbitmotor2=P1^1;unsignedinttemp;unsignedinttempx_set=35;uchardatadisdata[5];sbitren=P1^3;sbitk1=P3^5;sbitk2=P3^6;sbitk3=P3^7;sbitDQ=P3^3;sbitCS=P2^2;sbitSCL=P2^3;sbitDO=P2^4;intopen;intguang,shui,guang_set=50,shui_set=50,wind_set=8,close=0;voiddelayms(intx){chari;while(x--){for(i=150;i>0;i--);}}voiddelay(uintz){ uintx,y; for(x=z;x>0;x--) for(y=110;y>0;y--);}unsignedcharad0832read(bitSGL,bitODD){ unsignedchari=0,value=0,value1=0; SCL=0; DO=1; CS=0; SCL=1; SCL=0; DO=SGL; SCL=1; SCL=0; DO=ODD; SCL=1; SCL=0; DO=1; for(i=0;i<8;i++) { SCL=1; SCL=0; value<<=1; if(DO) value++; } for(i=0;i<8;i++) { value1>>=1; if(DO) value1+=0x80; SCL=1; SCL=0; } CS=1; SCL=1; if(value==value1) returnvalue; return0;}voidwrite_com(ucharcom){ rs=0; rd=0; lcden=0; LCDIO=com; delay(5); lcden=1; delay(5); lcden=0; }voidwrite_date(uchardate){ rs=1; rd=0; lcden=0; LCDIO=date; delay(5); lcden=1; delay(5); lcden=0; }voidinit(){ ucharnum; lcden=0; write_com(0x38); write_com(0x0c); write_com(0x06); write_com(0x01); write_com(0x80); delay(5); write_com(0x80);}voidDisplaytwo(bitbRow,unsignedcharbtColumn,unsignedcharbtData){ uinta,b; if(bRow) write_com(0xc0+btColumn); else write_com(0x80+btColumn); a=btData/10;b=btData%10; write_date(a+0x30);write_date(b+0x30);}voidDisplayString(bitbRow,unsignedcharbtColumn,unsignedchar*pData){ while(*pData!='\0') { if(bRow)write_com(0xc0+btColumn); else write_com(0x80+btColumn); write_date(*(pData++)); btColumn++; }}voidwrite_num(ucharhang,ucharadd,uintdate){ if(hang==0) write_com(0x80+add); else write_com(0x80+0x40+add); if(date<0) { write_date(0x30+date/100%10); write_date(0x30+date/10%10); } if(date>=0) { write_date(0x30+date/100%10); write_date(0x30+date/10%10); write_date('C'); }}intset_mode=0;voidkey(){ if(k1==0) { set_mode++; if(set_mode>4)set_mode=0; write_com(0x01); while(k1==0); } if(set_mode==1) { DisplayString(0,0,"SET-LIGHT:"); Displaytwo(1,7,guang_set); if(k2==0) { guang_set++;if(guang_set>99)guang_set=99; while(k2==0); } if(k3==0) { guang_set--; if(guang_set<0)guang_set=0; while(k3==0); } } if(set_mode==2) { DisplayString(0,0,"SET-Water:"); Displaytwo(1,7,shui_set); if(k2==0) { shui_set++;if(shui_set>99)shui_set=999; while(k2==0); } if(k3==0) { shui_set--; if(shui_set<0)shui_set=0; while(k3==0); } } if(set_mode==3) { DisplayString(0,0,"SET-TEMP:"); Displaytwo(1,7,tempx_set); if(k2==0) { tempx_set++;if(tempx_set>99)tempx_set=999; while(k2==0); } if(k3==0) { tempx_set--; if(tempx_set<0)tempx_set=0; while(k3==0); } } if(set_mode==4) { DisplayString(0,0,"SET-WIND:"); Displaytwo(1,7,wind_set); if(k2==0) { wind_set++;if(wind_set>99)wind_set=999; while(k2==0); } if(k3==0) { wind_set--; if(wind_set<0)wind_set=0; while(k3==0); } } }voidTimer0_init(){ SCON=0x50; TMOD|=0x20; TH1=0xFD; TL1=0x0; TR1=1; ES=1; EX0=1; IT0=1; EA=1;}voiduart_send_byte(unsignedchardat){ SBUF=dat; while(!TI); TI=0;}voiduart_send_str(unsignedchar*s){ while(*s!='\0') { uart_send_byte(*s); s++; }}intcountx=0;voidex0_intr()interrupt0{countx=countx+1;}voidtimer0()interrupt3using1{ intcount; TH1=(65536-50000)/256; TL1=(65536-50000)%256; count++;}bitflag=0; voiddelay_t(unsignedinti){ while(i--);}voidInit_DS18B20(void){ unsignedcharx=0; DQ=1; delay_t(8); DQ=0; delay_t(80); DQ=1; delay_t(14); x=DQ; delay_t(20);}ucharRead(void) { unsignedchari=0; unsignedchardat=0; for(i=8;i>0;i--) { DQ=0; dat>>=1; DQ=1; if(DQ) dat|=0x80; delay_t(4); } return(dat);}voidWrite(unsignedchardat){ unsignedchari; for(i=8;i>0;i--) { DQ=0; DQ=dat&0x01; delay_t(5); DQ=1; dat>>=1; } delay_t(4);}uintReadTemperature(void){ unsignedchara=0; unsignedcharb=0; unsignedintt=0; floatf_t=0; Init_DS18B20(); Write(0xCC); Write(0x44); Init_DS18B20(); Write(0xCC); Write(0xBE); a=Read(); b=Read(); if(b<127) { t=b;t<<=8;t=t|a; flag=0; } else { a=~a;b=~b; t=b;t<<=8;t=t|a;t=t+1; flag=1; } f_t=t*0.056; t=f_t*10+0.5; return(t);}voidmain(){intr,i,time; init(); Timer0_init();speaker=1; delay(2000); while(1) { if(set_mode==0) { if(k2==0&&close==1){motor1=1;motor2=0;delay(500);close=0;while(k2==0);} if(k3==0&&close==0){motor1=0;motor2=1;delay(500);close=1;w

温馨提示

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

评论

0/150

提交评论