

已阅读5页,还剩30页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于单片机的防火卷闸门控制电路的设计摘 要当今科学技术快速发展,人们的生活变得多姿多彩,然而日常生活也有很多隐患需要我们去防范,为了提高应对火灾的能力,因此我们设计一个防火卷闸门控制电路来辅助火灾发生时的救援工作,减少火灾的损失。本电路用来控制卷闸门的开合,达到便于人们逃离火灾现场和阻碍火势的作用。本文详细介绍了基于单片机的防火卷闸门控制电路的硬件设计过程,电源电路起到改变电压的作用,将220v电压转换成5v电压;显示电路部分用于显示当前温度、中停时间以及中停位置;模数转换器将烟雾传感器接收到的模拟信号转换成数字信号;电机驱动部分接上一个5v步进电机,用来模拟卷闸门的升降;键盘部分用来设定中停时间、中停位置和手动控制卷闸门的升降;单片机作为主控器件,是整个系统的核心,起到主要控制作用。关键词 火灾;防火卷闸门;单片机;软件设计abstractthe rapid development of science and technology today, its colorful life, but the daily lives of a lot of hidden trouble that we need to solve the matter, in order to make us more powerful to face the fire disaster, we design a fire prevention gate control circuit to assist the rscue facing the fire disaste, to reduce peoples loss.this circuit is used to controll the door to open or close,helping people easily to escape from the fire and hind it.this article mainly introduced the fire prevention gate control circuit hardware design process of timing, the power circuit supply the change of the voltage,changing the 220v into 5v; the showing circuit shows the current temperature,stop time and stop position; adc converts the analog signal received by the smoke sensor into digital signals; the part of the motor drive connected to a 5 v stepping motor, used to simulate the rise and fall of the gate;the keyboard part is used to set the stop time, stop position and manual control gate lifting; microcontroller as the main control devices, is the core of the whole system, including main control function.key words :fire; fire prevention gate; single chip microcomputer; the software design 32目 录摘要abstract1 绪 论11.1 引言12 硬件电路设计22.1 确定设计方案22.2 系统总体结构22.3 单片机控制电路22.3.1 单片机总控制电路32.3.2 管脚说明32.4 显示电路52.4.1 显示元器件的选择52.4.2 显示电路原理图62.5 复位及时钟电路72.6 电机驱动电路82.7 模数转换电路92.8 键盘电路112.9 硬件电路原理总图123 软件设计134 电路焊接调试及体会164.1 硬件的焊接和调试164.2 软件调试164.3 硬件实物图165 设计总结17参考文献18附录1 pcb图19附录2 硬件原理图20附录3 硬件实物图21附录4 源程序22致射321 绪论1.1 引言近年来火灾事频繁发生,特别是一些大型的公共场所,一旦发生火灾造成的人、财物的损失非常巨大。用户对火灾报警和消防系统的要求越来越高。通过对一些大型公共场所火灾事故的分析,排除火灾现场水源不足,或水压不足,以及消防通道不通畅等因素外,现有的消防割断也没有起到应有的作用,这也是致使火灾抢救困难,造成巨大经济损失的关键因素。因此,许多生产部门逐渐开发了电脑控制的防火卷闸门,但其功能及控制要求也不能满足用户的要求。基于上述原因,本文设计的防火卷闸门控制系统,满足了防火卷闸门的控制要求,也满足了用户的使用要求。其主要功能是火灾发生时能自动逃生,火灾时,防火卷闸门按指令下降至中停位置等待人员逃生,过中停时间后将继续下降至全关闭。同时本设计还设置了紧急逃生程序,当卷帘过中停位置后的任一时刻,如果仍有人员未能逃离危险区,可按动升、降、停任一一键卷帘将自动升起至中停位置停留到事先设定的时间后,又将自动下降至关闭状态,即充分地保证人员安全地从火场撤离,同时又使卷帘达到阻火功能。随着应用领域的不断扩大,应用需求不断提高,普通类型的感温、感烟火灾卷闸门系统已不能满足需要,运用高新技术的卷闸门在不断研发,其特点是:功能更新;可靠性提高;报警时间提前。相信本电路设计亦能满足此要求。2 硬件电路设计2.1 确定设计方案防火卷闸门控制电路最基本的要求是可以实现卷闸门的自动升降。通过烟雾和温度传感器采集信号判断是否起火,若判断起火则单片机发出指令给电机驱动程序控制卷闸门自动下降至一半,等待人员逃生,然后继续下降至底部阻断火势。若还有人未逃离现场,只要按下升、停、降任何一个按钮,门将自动升起至一半,让其逃出,之后再下降,此过程可反复。2.2 系统总体结构系统总体结构框图如图1所示。当电源打开,温度传感器自动检测环境温度,通过显示器显示。然后可以手动设置中停位置和中停时间。当火灾发生时,温度传感器和烟雾传感器分别感知各自信号,传送给单片机,判断起火则控制电机自动下降。当还有人未逃离火灾现场时,按键盘按钮则门自动上升。 stc89s52单片机键盘控制电机驱动部件led数码显示电源温度传感器烟雾传感器报警器图1 单片机控制卷闸门的总方框图2.3 单片机控制电路(stc89c52)2.3.1单片机总控制电路 单片机总控制电路图如图2所示:图2 单片机控制电路2.3.2管脚说明vcc:供电电压。 gnd:接地。 p0口:p0口为一个8位漏级开路双向i/o口,每脚可吸收8ttl门电流。当p0口的管脚第一次写1时,被定义为高阻输入。p0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。在fiash编程时,p0 口作为原码输入口,当fiash进行校验时,p0输出原码,此时p0外部必须接上拉电阻。 p1口:p1口是一个内部提供上拉电阻的8位双向i/o口,p1口缓冲器能接收输出4ttl门电流。p1口管脚写入1后,被内部上拉为高,可用作输入,p1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在flash编程和校验时,p1口作为低八位地址接收。 p2口:p2口为一个内部上拉电阻的8位双向i/o口,p2口缓冲器可接收,输出4个ttl门电流,当p2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,p2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。p2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,p2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,p2口输出其特殊功能寄存器的内容。p2口在flash编程和校验时接收高八位地址信号和控制信号。 p3口:p3口管脚是8个带内部上拉电阻的双向i/o口,可接收输出4个ttl门电流。当p3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,p3口将输出电流(ill)这是由于上拉的缘故。 p3口也可作为at89c51的一些特殊功能口,如表1所示:表1 p3口及备选功能引脚备选功能p3.0rxd(串行输入口)p3.1txd(串行输出口)p3.2int0(外部中断0)p3.3int1(外部中断1)p3.4t0(记时器0外部输入)p3.5t1(记时器1外部输入)p3.6wr(外部数据存储器写选通)p3.7rd(外部数据存储器读选通)p3口同时为闪烁编程和编程校验接收一些控制信号。 rst:复位输入。当振荡器复位器件时,要保持rst脚两个机器周期的高电平时间。 ale/prog:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在flash编程期间,此引脚用于输入编程脉冲。在平时,ale端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ale脉冲。如想禁止ale的输出可在sfr8eh地址上置0。此时, ale只有在执行movx,movc指令是ale才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ale禁止,置位无效。 /psen:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/psen有效。但在访问外部数据存储器时,这两次有效的/psen信号将不出现。 /ea/vpp:当/ea保持低电平时,则在此期间外部程序存储器(0000h-ffffh),不管是否有内部程序存储器。注意加密方式1时,/ea将内部锁定为reset;当/ea端保持高电平时,此间内部程序存储器。在flash编程期间,此引脚也用于施加12v编程电源(vpp)。 xtal1:反向振荡放大器的输入及内部时钟工作电路的输入。 xtal2:来自反向振荡器的输出。 2.4 显示电路2.4.1 显示元器件的选择 在系统中要显示时间,就必需有显示元器件,目前市场上显示元器件很多,有lcd、点阵显示、7段数码管显示等。led显示器与lcd显示器相比,led在亮度、功耗、可视角度和刷新速率等方面,都更具优势。led与lcd的功耗比大约为10:1,而且更高的刷新速率使得led在视频方面有更好的性能表现,能提供宽达160的视角,可以显示各种文字、数字、彩色图像及动画信息,也可以播放电视、录像、vcd、dvd等彩色视频信号,多幅显示屏还可以进行联网播出。从节约成本和节约能源的角度作为出发点,我们选择两位共阴数码管作为时间显示,以便节约成本和功耗。数码管的驱动方式:数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。静态显示驱动:静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的i/o端口进行驱动,或者使用如bcd码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用i/o端口多,如驱动5个数码管静态显示则需要5840根i/o端口来驱动,要知道一个89s51单片机可用的i/o端口才32个),实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。动态显示驱动:数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划a,b,c,d,e,f,g,dp的同名端连在一起,另外为每个数码管的公共极com增加位选通控制电路,位选通由各自独立的i/o线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通com端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的com端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为12ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的i/o端口,而且功耗更低。为了充分利用单片机i/o口本设计采用动态显示,单片机p0口接段码,p2口接位选,然而p0不能直接驱动数码管,所以我们选择9012-pnp外延型晶体管(三极管)作为驱动。它是一种小电压,小电流,小信号的pnp型硅普通三极管。本例中主要用于: 开关应用。其特性如下:型号:9012-pnp外延型晶体管(三极管)集电极电流ic:max -500ma 集电极-基极电压vcbo:-40v 工作温度:-55 to +150和9013(npn)相对 主要用途:开关应用、射频放大2.4.2 显示电路原理图显示部分是时钟最为重要的部分,共需要2位led显示器。采用动态显示方式,由于端口的问题以及动态显示方式的优越性,在此设计的连接方式上采用共阴级接法。显示器led有段选和位选两个端口,首先说段选端,它由led八个端口构成,通过对这八个端口输入的不同的二进制数据使得它的时间显示也不同,从而可以得到我们所要的时间显示和温度。由于单片机i/o口不能直接驱动数码管子所以要用pnp三极管来驱动。管动原理如图3所示:图3 显示控制电路2.5 复位及时钟电路复位是由外部的复位电路来实现的。复位电路采用上电自动复位和按钮复位两种方式,此电路系统采用的是上电与按钮复位电路。系统的时钟电路设计是采用的内部方式,即利用芯片内部的振荡电路。stc89c52单片机内部有一个用于构成振荡器的高增益反相放大器。引脚xtal1和xtal2分别是此放大器的输入端和输出端。这个放大器与作为反馈元件的片外晶体谐振器一起构成一个自激振荡器。外接晶体谐振器以及电容c1和c2构成并联谐振电路,接在放大器的反馈回路中。复位及时钟电路如图4所示:图4 复位及时钟电路2.6 电机驱动电路 本电路采用uln2003芯片驱动。 uln2003是大电流驱动阵列,多用于单片机、智能仪表、plc、数字量输出卡等控制电路中。可直接驱动继电器等负载。输入5vttl电平,输出可达500ma/50v。uln2003是高耐压、大电流达林顿陈列,由七个硅npn达林顿管组成。 该电路的特点如下: uln2003的每一对达林顿都串联一个2.7k的基极电阻,在5v的工作电压下它能与ttl和cmos电路 直接相连,可以直接处理原先需要标准逻辑缓冲器来处理的数据。uln2003 是高压大电流达林顿晶体管阵列系列产品,具有电流增益高、工作电压高、温度范围宽、带负载能力强等特点,适应于各类要求高速大功率驱动的系统。 引脚1:cpu脉冲输入端,端口对应一个信号输出端。 引脚2:cpu脉冲输入端。 引脚3:cpu脉冲输入端。 引脚4:cpu脉冲输入端。 引脚5:cpu脉冲输入端。 引脚6:cpu脉冲输入端。 引脚7:cpu脉冲输入端。 引脚8:接地。引脚9:该脚是内部7个续流二极管负极的公共端,各二极管的正极分别接各达林顿管的集电极。用于感性负载时,该脚接负载电源正极,实现续流作用。如果该脚接地,实际上就是达林顿管的集电极对地接通。 引脚10:脉冲信号输出端,对应7脚信号输入端。引脚11:脉冲信号输出端,对应6脚信号输入端。引脚12:脉冲信号输出端,对应5脚信号输入端。引脚13:脉冲信号输出端,对应4脚信号输入端。引脚14:脉冲信号输出端,对应3脚信号输入端。引脚15:脉冲信号输出端,对应2脚信号输入端。引脚16:脉冲信号输出端,对应1脚信号输入端。 电路如图5所示:图5 电机驱动电路2.7 模数转换电路本电路采用adc0804芯片。adc0804 为一只具有20引脚8位cmos 连续近似的a/d 转换器,其规格如下: (1) 高阻抗状态输出 (2) 分辨率:8 位(0255) (3) 存取时间:135 ms (4) 转换时间:100 ms (5) 总误差:-1+1lsb (6) 工作温度:adc0804c为0度70度;adc0804l为-40 度85 度 (7) 模拟输入电压范围:0v5v (8) 参考电压:2.5v (9) 工作电压:5v (10) 输出为三态结构 引脚功能如下:d0-d7:八位数字量输出端;clk:为芯片工作提供工作脉冲,时钟电路如图所示,时钟频率计算方式是:fck=1/(1.1rc)cs:片选信号;wr:写信号输入端;rd:读信号输入端;intr:转换完毕中断提供端;其他管脚连接如图,是供电和提供参考电压的管脚输入端。 电路如图6所示:图6 模数转换 2.8 键盘电路它是整个系统中最简单的部分,根据功能要求,本系统共需七个按键:时间增大调整键、时间减小调整键、中停位置增大调整键、中停位置减小调整键、手动上升键、停止键、手动下降键。打开电源将先显示中停时间,然后显示当前温度。如果再按中停时间加、减键就可以选择中停时间(十位、个位),按中停位置加、减键加键就可以调整中停位置。调时间步骤如下:1按中停时间加、减键-数码管显示中停时间并定留不动2 按中停位置加、减键-数码管显示中停位置并停留不动。3 按手动升降键-电机转动原理图如图7所示:图7 键盘电路图2.9 硬件电路原理总图在仿真电路中能实现所有功能后,使用altium designer来画硬件原理图新建一个工程之后,新建一张原理图,把所需的元器件摆放整齐,并正确连线,确认无误后,就可以作元件封装,并生成网络,最后得到的硬件原理图见附录二(pcb图见附录一)。3 软件设计硬件制作完毕之后,接下来就是程序设计,本设计采用c语言,在主程序中,主要实现初始化,按键处理,时间采用动态显示方式。当接受温度和烟雾刺激之后,进入按键处理程序.程序流程图如8(源程序见附录四):初始化是否有火警中停位置及中停时间设定中停时间显示火警指示灯门下降中停位置到中停时间到下降键扫描门上升下限位置关闭键盘扫描ynnnyynyny 图8 程序流程图电源打开后,单片机先通过传感器接收的信号判断是否产生火灾,若否,则在设定中停时间及中停位置后显示环境温度;若产生火灾则指示灯亮,同时门下降,至中停位置后停留至中停时间;然后断续下降。最后检测按键是否被按下,若按下,则门再次上升至中停位置;若求按下则本次火灾控制卷闸门操作结束。4 电路焊接调试及体会4.1 硬件的焊接和调试电路的调试我们可以分步骤来就行:第一步:元器件在焊接之前用万用表对其进行检测。第二步:焊接完一个小模块电路之后,用万用表检测焊接之间的布线是否导通,因为可能在焊接的时候由于技术的不熟练会导致虚焊。第三步:软件测试,可以编写一个功能小程序来检测电路模块是否能正常工作,若是不能正常工作,在来判断是硬件的焊接错误还是软件程序的编写错误。做实物就是把理论实践到实物中来,实物的成功能够让我们更加直观的了解设计的功能原理带来的结果,对于实物的焊接,由于我们是手工制作,难免会比较粗糙,在线路的排布引脚的焊接等方面都有可能会出现错误,而且在焊接实物的过程中也是我们进一步的对原理图的认知,能更清楚的了解每一个模块的电路是怎样走线,怎样与单片机连接在一起。在焊接的同时应调试,不能全部焊完再调试,这样会引起很不必要的麻烦。对于线路接口的地方,一定要耐心焊接,焊锡稍有不完整,会使电路短路或者开路。因此电路的检测是很重要的一部分,在上电后,若是不能正常工作按原理图分模块进行电路检测,是否有虚焊或漏焊现象;如焊接正常,在按信号传递的方向逐级检测,找出出问题的一级,并向该级的上级进行检测,直到将故障排除。4.2 软件调试软件的调试过程中,联机调试非常重要,在硬件电路都正常的情况下,联机调试就成了设计能否成功的关键。在软件编程过程中,先可以写出单元模块的程序然后在单元模块上进行测试,这样的做法是让我们思路更清晰不会混乱。4.3 硬件实物图如附录三所示。5 设计总结经过这些天有关于单片机控制的防火卷闸门的课程设计,使我对单片机的应用有了更深的了解。在这次毕业设计的过程中,还是碰到了许多的问题。比如,对于数码管动态扫描显示和电机驱动的综合编程不能较好地解决;对于程序的前后顺序及调用掌握得还不够好;对于一些相关的应用软件没能熟练掌握,通过段时间的苦想和反复仿真测试,以及参考网上的程序,最终还是把问题解决了。通过这次做毕业设计,我发现在现实设计中还需要注意很多的细节,包括程序设计和硬件设计都要我们小心仔细,一个地方出错就可能会整个系统失效。在硬件设计时,由于电路图转印不好使得腐蚀后的电路板出现断线,在调试过程中引来很大的麻烦。特别是对于电机按照指令转动的问题上,问到过很多麻烦,要么是不转,要么是不按指令转动,于是我向同学请教,在同学耐心的指导下,经过多次调整,才使得电机功能得以正常运行。在软件设计时,还遇到了许多问题,毕竟想像和现实还是有很大的区别的,然而到了最后这些问题都一一被解决了,我也在这次毕业设计中学会了很多东西,总结出自已的一套解决问题的方法,这让我觉得自已有了很大的收获,为今后的工作和研究打下了坚定的基础。参考文献1张毅刚,彭喜源,谭晓昀编著。mcs-51单片机应用设计m。哈尔滨工业大学出版社2艾树峰。基于主从多机通信的暖房自动温控系统的设计与实现j电迅技术,2004年05期3何立民编著。单片机应用系统设计m。北京航空航天大学出版社4艾树峰,苑冰。单片机在嵌入式系统应用中的抗干扰措施j。电迅技术,2002年04期附录1 pcb图附录3 硬件实物图附录4 源程序#include #include #define uint unsigned int#define uchar unsigned charuchar code tabledu= /数码管显示数字代码0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;sbit dq=p07; /ds18b20数据口sbit we_shi=p31; /数码管十位sbit we_ge=p30; /数码管个位sbit rd=p33; /模数芯片读sbit wr=p32; /模数芯片写sbit relay=p34; /继电器sbit up=p37; /电机上升sbit stop=p36; /电机停止sbit down=p35; /电机下降sbit key_miao_shi=p27; /设置中停时间十位sbit key_miao_ge=p26;/设置中停时间个位sbit key_dianji_sheng=p25;/设置中停位置十位sbit key_dianji_jiang=p24;/设置中停位置个位/*/*sbit a1=p23; /定义步进电机连接端口sbit b1=p22;sbit c1=p21;sbit d1=p20;#define coil_a1 a1=1;b1=0;c1=0;d1=0;/a相通电,其他相断电#define coil_b1 a1=0;b1=1;c1=0;d1=0;/b相通电,其他相断电#define coil_c1 a1=0;b1=0;c1=1;d1=0;/c相通电,其他相断电#define coil_d1 a1=0;b1=0;c1=0;d1=1;/d相通电,其他相断电#define coil_ab1 a1=1;b1=1;c1=0;d1=0;/ab相通电,其他相断电#define coil_bc1 a1=0;b1=1;c1=1;d1=0;/bc相通电,其他相断电#define coil_cd1 a1=0;b1=0;c1=1;d1=1;/cd相通电,其他相断电#define coil_da1 a1=1;b1=0;c1=0;d1=1;/d相通电,其他相断电#define coil_off a1=0;b1=0;c1=0;d1=0;/全部断电*/*unsigned char code f_rotation4=0x02,0x04,0x08,0x01;/正转表格unsigned char code b_rotation4=0x01,0x08,0x04,0x02;/反转表格*/uchar code ccw8=0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09; /逆时钟旋转相序表uchar code cw8=0x09,0x01,0x03,0x02,0x06,0x04,0x0c,0x08; /正时钟旋转相序表bit updateflag,baojingflag,stopflag,onetimeflag;uint keyflag,speed=500;uint t0,t1,zhengshu,daojishi,i,k;int z_t_time=10,z_t_position=3,quanshu=5;uchar dataport,temp,r,n=64;void delaynms(uint aa)uchar bb;while(aa-)for(bb=0;bb0;x-)for(y=123;y0;y-);void motor_ccw(void)uchar i,j;for(j=0;j8;j+) /电机旋转一周,不是外面所看到的一周,是里面的传动轮转了一周if(stop=0)delaynms(5);if(stop=0)stopflag=1;break; /如果stop按下,退出此循环for(i=0;i8;i+) /旋转45度dataport=p2;p2=(dataport&0xf0)|ccwi;/p2=ccwi;delaynms(2); /调节转速void motor_cw(void)uchar i,j;for(j=0;j8;j+)if(stop=0)delaynms(5);if(stop=0)stopflag=1;break; /如果stop按下,退出此循环for(i=0;i0; i-)dq = 0;dq = dat&0x01;/按位与delaymsus2x(25);dq = 1;dat=1;delaymsus2x(25);uchar readonechar(void)uchar i=0;uchar dat=0;for (i=8;i0;i-) dq = 0; / 给脉冲信号 dat=1;/稍微延时 dq = 1; / 给脉冲信号 if(dq=1) dat|=0x80; delaymsus2x(25); return(dat);void readtemperature()uchar lsb,msb,temph,templ;init_ds18b20();writeonechar(0xcc); / 跳过读序列号的操作writeonechar(0x44); / 启动温度转换delayms(10);init_ds18b20();writeonechar(0xcc); /跳过读序号列号的操作 writeonechar(0xbe); /读取温度寄存器等(共可读9个寄存器) 前两个就是温度lsb=readonechar(); /低位msb=readonechar(); /高位init_ds18b20(); /复位,结束数据读取temph=msb4; /取低字节高4位zhengshu=temph|templ;void readsmoke()wr=1;_nop_();wr=0;_nop_();wr=1;delayms(5);p1=0xff;rd=1;_nop_();rd=0;_nop_();temp=p1; /传送电压rd=1;void keyscan()if(zhengshu=33)|(temp=50) /当温度和烟雾超标时,开启声光报警/if(zhengshu=27)baojingflag=1;relay=0;else relay=1;baojingflag=0;if(baojingflag=0)if(key_miao_shi=0)delayms(5);if(key_miao_shi=0)while(!key_miao_shi);tr0=0;/有按键时,关闭读温度定时器if(updateflag=1)/防止第一次按键加一z_t_time+=10;if(z_t_time=100)z_t_time=0;keyflag=1;updateflag=1;t1=0;tr1=1;if(key_miao_ge=0)delayms(5);if(key_miao_ge=0)while(!key_miao_ge);tr0=0; /有按键时,关闭读温度定时器if(updateflag=1)/防止第一次按键加一z_t_time+;if(z_t_time=100)z_t_time=0;keyflag=1;updateflag=1;t1=0;tr1=1; if(key_dianji_sheng=0)delayms(5);if(key_dianji_sheng=0)while(!key_dianji_sheng);tr0=0; /有按键时,关闭读温度定时器if(updateflag=1)/防止第一次按键加一z_t_position+;if(z_t_position=4)z_t_position=4;updateflag=1;keyflag=2;t1=0;tr1=1;if(key_dianji_jiang=0)delayms(5);if(key_dianji_jiang=0)while(!key_dianji_jiang);tr0=0;/有按键时,关闭读温度定时器if(updateflag=1)/防止第一次按键加一z_t_position-;if(z_t_position=6)quanshu=5;tr0=1;break;for(r=0;rn;r+)motor_ccw(); /电机逆转if(stop=0)delaynms(5);if(stop=0)while(!stop);stopflag=1;break; /如果stop按下,退出此循环if(stopflag=1)tr0=1;break;if(down=0) /反转下降逆时针delayms(5);if(down=0)while(!down);tr0=0; /有按键时,关闭读温度定时器while(1)quanshu-;if(quanshu0)quanshu=0;tr0=1;break;for(r=0;r=z_t_position)for(r=0;r=0)quanshu-;if(quanshu0)quanshu=0;tr0=1;keyflag=0;daojishi=z_t_time;break;/闸门关闭后继续显示温度for(r=0;rn;r+)motor_cw(); /电机反转下降if(up=0)|(stop=0)|(down=0)delayms(5);if(up=0)|(stop=0)|(down=0)while(!up);while(!down);while(!stop);tr0=0;tr1=0;/stopflag=1;while(quanshu=z_t_position)for(r=0;rn;r+)motor_ccw(); /电机正转上升到中停位置quanshu+;keyflag=3;daojishi=z_t_time;/t1=0;tr1=1;tr0=0;r=n;quanshu=-1;/if(stopflag=1)break;/if(stopflag=1)break;if(up
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 银行风险管理报告
- 银行风险管理专题访谈实录
- 车辆停放管理制度
- 餐饮招商供应商管理规定
- 省级生物高考模拟试题详解
- 幼儿园课程游戏活动设计与实施
- 2025年智能家居系统互联互通性与用户体验研究报告
- 肝癌核医学治疗-洞察及研究
- 零售超市库存管理及盘点流程
- 叶酸与儿童自闭症风险关联探讨-洞察及研究
- (高清版)TDT 1055-2019 第三次全国国土调查技术规程
- 个人施工安全免责简单协议书(通用)带详尽条款
- 医药代表拜访中的市场分析技巧
- JGT472-2015 钢纤维混凝土
- 变压器市场需求分析报告
- 电梯结构与原理-第2版-全套课件
- SWITCH塞尔达传说旷野之息-1.6金手指127项修改使用说明教程
- 128个护理诊断和措施大全
- 蒋介石-教学讲解课件
- 尿培养标本的留取规范及临床意义课件
- 中山大学2019级本科培养方案修订说明
评论
0/150
提交评论