智能电动窗帘项目论文_第1页
智能电动窗帘项目论文_第2页
智能电动窗帘项目论文_第3页
智能电动窗帘项目论文_第4页
智能电动窗帘项目论文_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

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

文档简介

本科CDIO一级项目论文论文题目智能电动窗帘设计学生姓名刘伟学号专业班级指导教师陈丹职称讲师二O一一年十一月成都信息工程控制工程学院制智能窗帘系统设计摘要本文描述了智能遥控窗帘系统的设计和工作原理,给出了智能遥控窗帘系统的硬件原理图、软件流程图。用单片机实现窗帘控制,为传统的手拉式或滑轮式窗帘应用模式转轨到新的红外模式和光敏电阻模式以及按键模式提供了具体解决方案,也为窗帘的智能化发展提供了新的思路。本文的主要研究工作如下:使用用价格相对便宜的红外线遥控发射芯片、和光敏电阻模块和按键开关来实现对智能窗帘的半自动和全自动的控制;使用技术成熟的单片机最小系统作为主要控制系统,因为它是一个软硬件相结合的系统,软件是控制单片机控制的程序源代码;硬件是实现系统控制功能的电子元件、单元电路的组成;使用由四个MOS管连接H桥式电机驱动电路作为驱动模块实现对直流电机的驱动。由于时间和技术上的限制,未来还需要针对智能窗帘各个模块的参数进行调优,通过与实际问题相结合的设计得到更好的结果。关键词:智能家居系统;自动窗帘系统;红外线遥控;光敏电阻模块;H桥式电机驱动电路;单片机最小系统IntelligentcurtainsystemdesignAbstractThispaperdescribestheintelligentremotecontrolcurtainsystemdesignandworkingprinciple,presentstheintelligentremotecontrolcurtainsystemhardwarediagram,thesoftwareflowchart.WithMCUcurtainscontrol,forthetraditionaltypeorpulleytypecurtainapplicationmodetransitiontothenewinfraredpatternandphotosensitiveresistancemodeandkeymodelprovidesspecificsolutions,aswellasthecurtainintelligentdevelopmentprovidesanewtrainofthought.Themainresearchworkisasfollows:Theuseoftherelativelycheappriceoftheinfraredremotecontroltransmittingchip,andphotosensitiveresistancemoduleandakeyswitchtoachievetheintelligentcurtainsemi-automaticandfullyautomaticcontrol;TheuseofmaturetechnologyofSCMsystemasthemaincontrolsystem,becauseitisacombinationofsoftwareandhardwaresystem,softwarecontrolmicrocontrollercontrolprogramsourcecode;hardwaresystemistorealizethecontrolfunctionoftheelectronicelement,circuitunit;UseismadeoffourMOStubeconnectingtheHbridgemotordrivecircuitfordrivingmoduleforDCmotordrive.Becauseofthetimeandtechnicallimitations,futureneedforintelligentcurtainmodulesofthetuningparametersoftheactualproblem,andbycombiningthedesigntogetbetterresults.Keywords:intelligenthomefurnishingsystem;automaticcurtainsystem;infraredremotecontrol;thephotosensitiveresistormodule;Hbridgemotordrivecircuit;thesmallestsingle-chipsystem目录论文总页数:40页1引言 21.1项目概述 21.2设计目的 21.3设计任务 21.4研究思路和方法 22项目总体方案设计 22.1系统原理框图和工作原理 22.1.1原理框图 22.1.2工作原理 33系统硬件设计 33.1各个单元电路的工作原理和实现的功能(按摸块化设计) 33.2印制板电路图……………………143.3硬件电气原理图; 143.4产品材料(器件、电路板、结构件等)清单型号、供方、数量、单价、总价、成本 24系统软件设计 174.1各个单元的设计思路和实现的功能(按摸块化设计)。 24.2软件程序框图 24.3程序源代码 25调试运行 33调试运行中存在的问题及解决方法 34结论 34参考文献 35二级标题:四号宋体加粗首行缩进1个字符二级标题:四号宋体加粗首行缩进1个字符1引言1.1项目概述如果说建筑是凝固的音乐,那么完美的家庭智能化自动控制系统则是这首乐曲上绝妙的音符。在科技发达、物质富庶的今天,自控系统已不单纯是实现室内基本安防、照明、采暖的工具,而且是建筑装饰的一种实用艺术品,是自动化技术与建筑艺术的统一体。完善的自控系统集装饰、照明、安防及节能于一身,尽力达到完美与和谐的统一,充分利用科学与艺术的搭配,光与影的组合以及安防与空调的自动控制来创造各种舒适、优雅的环境,以加强室内空间效果的气氛。而智能窗帘作为智能家居的一部分,更显得尤为重要。试想,当你在看电视前还要去理会那窗帘的开关实在是一件烦人的事情,当你躺在床上的时候,发现窗帘没有关上的时候……你是不是很恼火啊。为了解决这些生活中碰到的实际问题,我们设计的智能窗帘便应运而生。设计目的自动定时来实现窗帘的定时张开与关闭,早上定点拉开窗帘,同时起到早上提醒业主起床的作用,给人营造温馨与舒适的环境。实现一键控制功能,可以一键将窗帘拉开或关闭。1.3设计任务室外光强高于30KLX时,该电路自动控制电机使窗帘拉开。(2)设置两个手动按钮,一个控制窗帘卷起,一个控制窗帘落下,此时的操作不受光的控制。1.4研究思路和方法定时开关要实现双定时,则其主要的技术在与将不同强度的光信号转化为不同值的电信号,同时对电信号进行取样,再使用一个专业的窗口比较器LM393对电压值进行分段,来实现双定时;一键控制在于的是简洁方便,同时为了降低成本,加强实用性,课题选用红外控制和按键控制两种键控制方式来实现对窗帘的一键控制功能;在执行机构方面,为了降低成本和维护实物的美观性,课题采用了一个直流电机,采用三脚架结构固定安放电机,通过对绳索在电机凹槽的缠绕方式的不同,来实现窗帘的左右开合。2项目总体方案设计2.1系统原理框图和工作原理2.1.1原理框图2.1.2工作原理首先这款智能电动窗帘属于智能家居的一个分模块,因此电源供电以室内交流电220V最为合适,因为课题使用了以单片机为主控芯片的控制器和12V直流减速电机,所以整个模块需要12V、5V两种直流电源;5V电源为主控制器电源,12V电源为MOS管H桥驱动电路电源;主控制器选用了以单片机为主控芯片的最小控制系统,使用了软硬件结合的方式来实现整个窗帘的智能化;红外控制课题选用了市场上比较实用SM0038系列的红外模块来实现;定时模块课题采用了以可见光光敏电阻器为传感器,通过传感器检测光的强弱来确定相对应的电压值;驱动电路选用了以MOS为核心的H桥式驱动电路来驱动电机正反转,3系统硬件设计3.1各个单元电路的工作原理和实现的功能(按摸块化设计)1电源指示灯模块:利用发光二极管作为电源指示灯,批示电源是否接通。电路原理图如右图所示:发光二极管的压降Uon约为1.8V,通过二极管的电流I=(Vcc-Uon)/R5≈0.63mA;2.220伏交流电转12伏直流电模块:课题选择了一个22012V的变压器,得到一个12V的交流电,再通过由4个N4007整流二极管组成的H桥整流电路和一个50V—1000uF的极性电容来得到一个直流12V电源;J1排针口为220伏交流电输入口,T1为220伏到12伏的变压器,四个整流二极管N4007型号的组成的整流器,C2为是整流滤波电容;为了减小元件误差,课题使用了7812和7805三端稳压芯片来得到12V、5V的直流电源。3.7812稳十二伏稳压模块:12V电源为MOS管H桥驱动电路电源;J3是从220伏交流电转12伏直流电模块的电压输出口,从7812的1号脚输入,2号脚接地,3号脚为12V稳压电源输出端口;C9电容为滤波电容;4.7805稳五伏稳压模块:5V电源为主控制器电源;J3是从220伏交流电转12伏直流电模块的电压输出口,从7805的1号脚输入,2号脚接地,3号脚为5V稳压电源输出端口;C19电容为滤波电容;5.主控制器:用软件生成了PWM波,通过P0端口来驱动MOS管H桥驱动模块,让电机正转或者反转; 当主控制器的P0.6端口输出为高电平,P0.7端口输出为低电平的时候,电机正转,窗帘拉开;当主控制器的P0.6端口输出为低电平,P0.7端口输出为高电平的时候,电机反转,窗帘闭合;当主控制器的P0.6端口输出为低电平,P0.7端口输出为低电平的时候,电机不转,窗帘保持原状态;电机状态P0.6P0.7反转01不转00正转10晶振为11.0592M,P0.6和P0.7为PWM波输出端口,电机正转PWM波占空比为80%;P3.2、P3.3为外部中断按键,P2.1为光敏电阻电压输入端口;6.光敏电阻传感器模块:光敏电阻课题选用了TYL系列光敏电阻器,它是利用半导体的光电效应制成的一种电阻值随入射光的强弱而改变的电阻器;入射光强,电阻减小,入射光弱,电阻增大。光敏电阻器一般用于光的测量、光的控制和光电转换;根据光敏电阻的光谱特性,可分为三种光敏电阻器,紫外光敏电阻器、红外光敏电阻器、可见光光敏电阻器;课题选用了可见光光敏电阻器光敏电阻属半导体光敏器件,除具灵敏度高,反应速度快,光谱特性及r值一致性好等特点外,在高温,多湿的恶劣环境下,还能保持高度的稳定性和可靠性;传感器模块使用了一个10K的滑动变阻器作为打压调节平衡器,入射光强,电阻减小,2号端口电压值变大,窗帘打开;入射光弱,电阻增大,2号端口电压值变小,窗帘闭合。然后通过一个LM393进行一个比较,确定两个阈值,使得LM393发出三种不同的高低电平组合信号,通过单片机的P2端口来实现对窗帘的开合控制;光照强度光敏电阻电压v窗帘开合状态E<10KLXU》4.0关闭10KLX<E<30KLX1.8《U《4.0保持E>30KLXU《1.8开7.SM0038红外模块作为红外遥控装置:将红外的接收端安装在主控制器上,课题使用了发射端的五个按键作为整个智能窗帘系统的红外控制按键,来实现窗帘的开合,以及遥控与定时的相互转换;红外遥控模块采用了SM0038系列,其解调输出信号可以直接有微处理器解码,其主要特点是可靠性高,不易受环境干扰,并可以防止非控制信号的输出脉冲出现。可以连续进行数据发送。12345遥控器1号健为整个系统的电源总开关键,2号健是夜间模式键,打开2号健的时候,是在夜间状态,窗帘已经关闭,光敏电阻模块放置在靠向窗户一侧,当第二天天亮,室外光打达到设定的阈值时,夜间模式功能使得窗帘打开,提醒主人起床,当不需使用夜间模式时,可按下3号健,关闭夜间模式,当然使用其他的三个遥控键也可以实现关闭夜间模式功能;4号健为窗帘打开键,5号健为窗帘关闭键;实现了红外遥控功能;红外遥控板按键对应键值级功能说明表键标号对应键值功能说明145H总开关246H夜间定时模式开启347H夜间定时模式关闭444H电机正转窗帘开启540H电机反转窗帘闭合8.H桥MOS管驱动电机电路模块:4个MOS管组成H的4条垂直腿,而电机就是H中的横杠。之所以选用MOS管,而不选用双极型晶体管,是因为双极型晶体管本身有导通电阻,在通过大电流时会明显发热,如果没有散热措施会很容易烧毁。这样就会限制电路功率的增加。而MOS管由于结构和原理的不同,导通电阻远比普通三极管低,允许流过更大的电流,且MOS管都内置有反向二极管来保护管子本身,所以采用MOS管连接H桥不但效率可以提高,电路也可以简化,使用MOS管搭建H桥,高位电路使用P沟道管;低位使用N沟道管。Q1和Q2为绝缘栅型P沟道耗尽型场效应管,型号为IRF9540;Q3和Q4为绝缘栅型N沟道耗尽型场效应管,型号为IRF540;当P0.6输入为高电平P0.7输入为低电平时,Q1和Q4管导通,Q2和Q3管截止,电机正转;当P0.6输入为低电平P0.7输入为高电平时,Q1和Q4管截止,Q2和Q3管导通,电机反转。9.电机:电机选用的是一个十二伏直流电机,转速为150转/分,功率为5W,价格为五十元,在本系统的电机选用中,性价比为相对最优;10.执行结构:课题窗帘的开合方式选择了左右开合方式,总体结构的设计分为以下几部分:10.1轨道主体架构:采用两个等腰三角形结构平行放置,将其底边沿两边延长,三角形两斜边也相同做延伸,实物制作中所有线条均采用钢铁或木条代替,在系统中起支撑作用。10.1.2材料选择:由于金属材料价格相对较高、尺寸更改较困难,项目资金不足,所以选用价格低廉的木棒作为主体架构。钢丝、软绳作为固定辅助元件。10.1.3架构安装:架构长40cm,宽5cm,等腰三角形高15cm。用钢丝和软绳将每个节点固定。底座两末端用平滑钢丝固定,由于其将作为滑轮的转轴,效果如图:10.2电机位置的设计:将电机安放于架构上凹槽处,用绝缘耐高温导线将其固定,安放位置需满足传动线布置空间,即电机安放不能太靠前也不能靠后,位置必须适中。效果如图:图中圆柱体为电机的模型10.3电机传动实现的设计:在底边两侧各安装一个滑轮,用于传动绳索的来回滑动,目的是减小绳索滑动时所受的阻力。将滑轮穿过钢丝,将钢丝与主体架构固定连接。使用软绳在电机转轴上缠绕,缠绕方向需满足方案设计要求。传动绳的长度必须满足要求,取70cm×2。缠绕(剩60cm图中两端小圆代表滑轮,两细实线代表传动绳索,主体结构下方中间处绳索无连接绳索在电机转轴上的缠绕:两边绳索采用不同方向的缠绕方式,满足电机转动时,两边绳索同收同放。缠绕方式如图:电机转轴剖面图(细实线代表两边绳索)这种缠绕方式可实现:当转轴顺时钟旋转时,两边绳索同时放长,即绳索在转轴上缠绕更少;当转轴逆时钟旋转时,两边绳索同时收紧,即绳索在转轴上缠绕更多。由此实现电机的传动。10.4窗帘轨道设计以及装饰窗帘的传动实现设计:10.4.1轨道设计:窗帘轨道采用双轨道形式,即两边传动绳索走向不重叠,相互不影响。绳索在整个结构的中心点位置与橡皮筋相连接,橡皮筋的另一端固定在结构的两端。通过绳索的滑动改变橡皮筋的长度,使连接点与轨道的相对位置发生改变;10.4.2轨道材料选择与固定:为使窗帘能自如滑动,需减小圆环与轨道之间的摩擦力,固选用表面光滑的刚性塑料管,长度为25cm;用软绳按照方案设计中要求将轨道一端固定好,另一端需留着穿圆环。下面为绳索与橡皮筋的连接效果三视图(窗帘为关闭状态):左边绳索与左边橡皮筋的主视图(细实线为绳索,最粗实线为橡皮筋,两边圆为滑轮)当绳索向左拉时,橡皮筋变长,即中间连接点向左边滑轮靠近;同理,当右边伸缩的绳索向右拉时,橡皮筋变长,中间连接点向右边滑轮靠近。俯视图(细实线为绳索,最粗实线为橡皮筋,两边的矩形为滑轮)当左右两边绳索分别向两边拉时,两个连接点分别向左和向右靠,窗帘为展开趋势。左视图(放大效果)细实线为绳索,两矩形为滑轮10.4.3装饰窗帘传动的设计:装饰窗帘使用圆环挂轨道滑动形式,圆环均使用挂在轨道上的形式,两个轨道上的第一个环分别与两个连接点固定连接。通过改变连接点位置,即改变装饰窗帘中间点的位置来控制窗帘的开闭,每个环的下端均与装饰窗帘固定连接;将圆环穿过轨道,末端与主体架构固定连接;将轨道的另一端固定在主体架构上。中间圆环与连接点固定连接俯视图(中间两竖线为圆环)单边窗帘效果主视图短竖线为圆环,其下方矩形为装饰窗帘,中间圆环与连接点固定连接,末端圆环与轨道末端固定连接。通过中间连接点(第一圆环)的相对位置改变带动整个窗帘的开闭。3.2印制板电路图:3.3硬件电气原理图;原理图1驱动原理图3.4产品材料(器件、电路板、结构件等)清单型号、供方、数量、单价、总价、成本型号供方数量个单价元总价元220V—12V的变压器EI-41x18成都市电子市场11515稳压二极管N4007成都市电子市场101.515整流二极管1N4937成都市电子市场101.515电解电容1000uf成都市电子市场33.510.5LED普通发光二极管成都市电子市场100.11单片机STC89C51/AT89C52成都市电子市场3824晶振11.0592成都市电子市场41.56开关按键开关摇动开关成都市电子市场1512插槽、插针双排插槽、单排插槽成都市电子市场200.714排阻A472J成都市电子市场100.55排线杜邦线、排线成都市电子市场1米1010焊锡成都市电子市场14040红外模块SMOO38成都市电子市场11515Mos管IRF540/IRF9540成都市电子市场5525比较器LM393成都市电子市场50.84光敏电阻TYL系列成都市电子市场13.53.5电机12v直流电机成都市电子市场15050排针单排排针成都市电子市场100.77可调稳压芯片LM317成都市电子市场222滑动变阻器502成都市电子市场100.22驱动芯片ULN2003成都市电子市场236万能板九寸万能板成都市电子市场5525铁钉长短铁钉成都市电子市场1包22制板PCB印制板成都市电子市场5315双接头电源线成都市电子市场122材料打印50项目费用总计:381元4系统软件设计4.1各个单元的设计思路和实现的功能(按摸块化设计)4.1.1实现智能窗帘系统的定时自动开合功能:软件定时,使电机正反转的时间确定,防止电机正反转过度;4.1.2实现智能窗帘系统的一键控制功能:依靠单片机的中断功能实现按键控制窗帘开合;软件设计外部中断程序来实现该功能;使用红外模块实现远程的按键控制窗帘开合:对购买的SM0038红外模块进行软件的红外解码,时期实现红外远程控制窗帘开合;对光敏电阻采集的电信号进行采样滤波以及数值处理:实用软件编写一个采样中值滤波程序实现光检测窗帘自动开合;电机能够实现正反转:在主控制器单片机内用程序生成一个PWM波,通过改变它的占空比来实现电机的正反转。4.2软件程序框图4.3程序源代码#include<reg52.h>#include<intrins.h>/**********************************宏定义区**************************************/#defineucharunsignedchar#defineuintunsignedint#defineTIME1#defineERR0#defineIR_close2#defineIR_open3#defineIR_stop4#definekey_close5#definekey_open6#defineHighLight10#defineLowLight11#defineruntime50#defineLightMod7#defineLightModCancel8/*******************************端口定义******************************************/sbitopen=P3^4;//关窗帘按钮sbitclose=P3^2;//开窗帘按钮sbitled=P0^0;//指示灯sbitpwm1=P0^6;//正转pwm输出sbitpwm2=P0^7;//反转pwm输出sbitIRIN=P3^3;//红外接收器数据线sbitAD_In=P1^3; //TLC549输入端sbitAD_Out=P3^4; //TLC549输出端sbitCS=P1^4; //TLC549片选信号/*****************************全局变量******************************************/uintflag;intt1;intt2;ucharIRCOM[7]={0};inttcnt1,tcnt2;//uintADBuf;intLightSet;inti;/**********************************函数声明区***********************************/voidInitSys(void);voidTimerInit(void);voiddelay1(intms);voiddelay(intx);intIR_IN(void);voidResponse(uchar*value);intKeyScan(void);uintAverage(uintbuffer[30]);ucharAD_Change(void);uintAD_Filter();/********************************************************************************描述:系统初始化*形参:void*返回值:void*******************************************************************************/voidInitSys(void){ tcnt1=0; tcnt2=0; //IT1=1; //EX1=1; TimerInit(); t1=20000; t2=20000; LightSet=0;}/********************************************************************************描述:定时器初始化*形参:*返回值:*******************************************************************************/voidTimerInit(void){ TMOD=0x11;//定时器0和定时器1工作在方式1 TH0=-(20000/256);//定时器0赋初值 TL0=-(20000%256); TH1=-(50000/256);//定时器1赋初值 TL1=-(50000%256); TR1=1;//开启定时器1 TR0=1;//开启定时器0 ET1=1;//定时器0中断允许 ET0=1;//定时器1中断允许 EA=1;//中断总开关为1 //a=0; flag=1;//pwm波的标志位 pwm1=0;//pwm1初始值为低 pwm2=0;//pwm2初始值为低 led=1;//指示灯灭}/********************************************************************************描述:红外解码程序*形参:void *返回值:int*******************************************************************************/intIR_IN(void){ unsignedcharj,k,N=0; if(IRIN==1)//P3^6引脚为高 delay(15);//延时1.6ms,判断是否为干扰信号 if(IRIN==0)//延时后P3.6仍为高电平,表示是数据 { returnERR; } //确认IR信号出现 while(!IRIN)//等IR变为高电平,跳过9ms的前导低电平信号。 {delay(1);} for(j=0;j<4;j++)//收集四组数据 { for(k=0;k<8;k++)//每组数据有8位 { while(IRIN)//等IR变为低电平,跳过4.5ms的前导高电平信号。 {delay(1);} while(!IRIN)//等IR变为高电平 {delay(1);} while(IRIN)//计算IR高电平时长 { delay(1); N++; if(N>=30) {//EX1=1; returnERR; }//0.14ms计数过长自动离开。 }//高电平计数完毕 IRCOM[j]=IRCOM[j]>>1;//数据最高位补0 if(N>=8){IRCOM[j]=IRCOM[j]|0x80;}//数据最高位补1 N=0; } } if(IRCOM[2]!=~IRCOM[3]) { returnERR; } if(IRCOM[2]==0x45)//判断键值 { led=~led; t1=20000; t2=20000; returnIR_stop;//45H停止开关 } else { if(IRCOM[2]==0x44) { led=~led; t1=20000; t2=20000; delay1(10); t1=10000; t2=40000; returnIR_close;//44H关窗 } else { if(IRCOM[2]==0x40) { led=~led; t1=20000; t2=20000; delay1(10); t1=40000; t2=10000; returnIR_open;//40H开窗 } else { if(IRCOM[2]==0x46)//46H光照自动开关窗模式 { LightSet=1; led=~led; t1=20000; t2=20000; delay1(10); returnLightMod; } else { if(IRCOM[2]==0x47) { led=~led; LightSet=0; t1=20000; t2=20000; delay1(10); returnLightModCancel; } else { led=1; return1; } } } } }}/********************************************************************************描述:延时程序,以0.14MS为单位*形参:intx*返回值:void*******************************************************************************/voiddelay(intx)//x*0.14MS{ uchari; while(x--) { for(i=0;i<13;i++){} }}//对delay延时的定义/********************************************************************************描述:延时程序,以MS为单位,延时时间为ms*1MS*形参:intms *返回值:void*******************************************************************************/voiddelay1(intms){ unsignedchary;//定义一个临时变量y while(ms--)//循环ms次 { for(y=0;y<250;y++)//循环250次 { _nop_();//空操作 _nop_(); _nop_(); _nop_(); } }}/********************************************************************************描述:按键扫描,连接硬件引脚为P3.2和P3.3*形参:void*返回值:int*******************************************************************************/intKeyScan(void){ if(!open||!close)//判断是否有按键按下 { if(!open)//如果是P3.3被按下 { delay1(10);//延时消抖 while(!open)//延时P3.3仍为低则表示P3.4被按下 { delay1(10); if(open)//按键被释放 { led=~led;// //delay1(1); t1=10000; t2=40000; returnkey_open;//函数结束,返回key_open } } } else//对P3.2操作 { delay1(10); while(!close) { delay1(10); if(close) { led=~led; t1=40000; t2=10000; returnkey_close; } } } } return0;}/********************************************************************************描述:对AD采样值进行简单的中值滤波*形参:void*返回值:uint*******************************************************************************/uintAD_Filter(){ uintDate_Buffer[30]={0},temp;// uchari; for(i=0;i<30;i++) { Date_Buffer[i]=AD_Change(); delay1(1); //延时1毫秒采集一次。这里可以根据工作需要调整时间。 } temp=Average(Date_Buffer); //return(temp); temp=temp*500/256; if(LightSet==1)//判断是否遥控设置为夜间模式 { if(temp<200) {returnHighLight;}//夜间模式下如果光强度超过上限阈值,则窗帘打开 } else {return0;}}/************************************************************************名 称:Average()*功 能:中位值平均滤波法,取一共三十个数据,最大和最小的五个数据不要 对中间的二十个数据求平均值*输 入:三十个待处理的值*输 出:得到一个中位的平均值***********************************************************************/uintAverage(uintbuffer[30]){ uchari,j; uinttemp; for(i=1;i<30;i++)////先对整个数组的三十个值进行从小到大的排列 for(j=29;j>=i;--j) { if(buffer[j-1]>buffer[j]) { temp=buffer[j-1]; buffer[j-1]=buffer[j]; buffer[j]=temp; } } ////对数组进行处理,去掉一个最大值和一个最小值,中间的二十个值再来求平均值 temp=0; for(i=5;i<25;i++) { temp+=buffer[i]; } temp=(uint)(((float)temp)/20+0.5); return(temp);}/*********************************************************************名称:AD_Change(void)*功能:TLC549驱动程序*输入:无*输出:temp(电压值)***********************************************************************/ucharAD_Change(void){ uchari,temp=0; AD_In=0; _nop_(); _nop_(); CS=0; _nop_(); _nop_(); _nop_(); _nop_(); if(AD_Out==1)temp+=1; for(i=0;i<8;i++)//串行接受AD转换芯片的数据 { AD_In=1; _nop_(); _nop_(); AD_In=0; _nop_(); _nop_(); if(i!=7) { temp=temp<<1; if(AD_Out==1)temp+=1; } } CS=1; returntemp; }/*********************************************************************************主函数**********************************************************************************/voidmain(void){ InitSys();//初始化系统 while(1) { while(IR_IN()==LightMod||LightSet)//如果夜间模式被开启 { if(AD_Filter()!=0)//判断是否光照达到阈值,如果达到阈值则执行 { led=~led; TR0=1; LightSet=0; for(i=0;i<1000;i++) { t1=10000; t2=40000;//电机正转p0620%;p0780% delay1(1); if(IR_IN()==LightModCancel)break; } t1=20000; t2=20000;//停转 } while(IR_IN()==IR_close)//扫描关窗遥控按键是否被按下 { TR0=1;// t1=10000; t2=40000; if(IR_IN()==IR_stop)//扫描停止遥控按键是否被按下 { t1=20000; t2=20000;// } } while(IR_IN()==IR_open)//扫描开窗遥控按键是否被按下 { TR0=1; t1=40000; t2=10000; if(IR_IN()==IR_stop)//扫描停止遥控按键是否被按下 { t1=20000; t2=20000;// } } } while((IR_IN()==IR_close)&&!LightSet)//夜间模式没被开启则执行下面程序 { TR0=1; t1=10000; t2=40000; if(IR_IN()==IR_stop) { t1=20000; t2=20000; } } while((IR_IN()==IR_open)&&!LightSet) { TR0=1; t1=40000; t2=10000; if(IR_IN()==IR_stop) { t1=20000; t2=20000; } } if(KeyScan()==0) {;} else { if(KeyScan()==key_open){ } if(KeyScan()==key_close){ } } }}/*****************************中断函数******************************************/voidPWM()interrupt1{ TR0=0; switch(flag) { case1: { pwm1=1;pwm2=0;//pwm1和pwm2为互补 TH0=-(t1/256);//给t0赋值 TL0=-(t1%256); flag=2; TR0=1; break; } case2: { pwm1=0;pwm2=1; TH0=-(t2/256); TL0=-(t2%256); flag=1; TR0=1; break; } }} voidLED()interrupt3//暂时不用{ TR1=0; tcnt1++; if(tcnt1<=20)//1S { if(tcnt2<TIME) { led=~led; tcnt2=0; } tcnt2++; } TR1=1;}5调试运行调试运行中存在的问题及解决方法5.1在电源模块,变压整流后的理论输出值为12V,但是实际的输出值为18V,原本只需要一个7805电源模块就可以实现整个系统的电源供应;解决方案:增加了一个7812模块专门为驱动模块供电;5.2课题开始制作的单片机最小系统主控板在调试的过程中,因为线路连接问题而达不到课题要求;解决方案:选择了成品的单片机开发板来代替单片机最小系统主控板;5.3在制作MOS管驱动电路模块的时候,在模块通电之后,MOS管温度太高,而多次烧坏;解决方案:改换显得MOS管之后又加了散热片,才使得驱动模块正常工作;5.4在传感器模块设计时,课题初步使用了光电三极管作为传感器,但是在万能板上多次调试的效果均不理想;解决方案:使用了光敏电阻来代替光电三极管作为传感器;5.5在系统通电工作时,窗帘不能很流畅地开和闭,主体架构两端滑轮不能实现平稳转动。原因是转轴上两个方向的传动绳绕组之间互相缠绕,导致短时卡死现象,滑轮不能平稳转动是由于其中心轴的钢丝的刚度不够,在电机拖动力中发生形变。解决方案:用固体胶将转轴分为前后两部分,两个绕组一个在前一个在后,避免其相互影响。结论团队经过将近四个学期的不懈努力,终于完成了智能电动窗帘的设计,虽然有部分功能尚未实现不能达到设计要求,但总体上完成了一个从硬件到软件完整的设计流程。本文主要完成了以下任务:(1)了解了红外遥控通讯原理;(2)分析了发射器与接收器的原理;(3)了解编码与解码原理;(4)了解单片机原理与串口技术以及抗干扰技术;(5)了解利用单片机的系统设计;本次设计中有一些不足,首先是主控制器的PCB板调试失败,所以最后只能只是在开发板上调试、演示。其次是设计中的窗帘定时关闭部分的功能未实现,只是完成了窗帘定时开启;二是由于只做过短期的培训,技术上较为生疏,需要边做边学,周期较长。该系统经过多次改进,参考了现在实际电路通用的做法,在现有技术的状态下各项指标已经达到技术要求,但由于自身水平有限,电路中还有些技术方面还可以进一步加强。如红外线接受电路可以进一步调试其精确度和灵敏度,通过多只光敏电阻更加准确的控制窗帘升降。谢辞首先,也是最主要感谢的是我们团队的指导老师,陈丹老师在整个系统开发的过程中她给了我们很大的帮助,在论文任务制定时,她首先肯定了我们的项目大方向,但是同时又帮我们具体分析,使我们最后对智能智能电动窗帘这个具体目标进行设计时起到了不可估量的作用,受能力限制,在论文提纲制定时,团队的思路不是很清晰,经过老师的帮忙,让我们具体设计时思路顿时清晰。在完成初步方案设计后,陈丹老师认真查看了我们的项目方案,指出了项目存在的很多问题。在此十分感谢陈丹老师的细心指导,才能让项目顺利完成,让我们顺利完成CDIO结题论文。最后要感谢在整个论文写作过程中帮助过我们团队的每一位学友们,同时也感谢团队成员为项目顺利完成所作出的贡献。参考文献[1]何立民.单片机应用系统设计.北京:航天航空大学出版社,2001年.[2]李广弟.单片机基础.北京:北京航空航天大学出版社,2001年.[3]何希才.新型实用电子电路400例.电子工业出版社,2000年.[4]赵负图.传感器集成电路手册,第一版.化学工业出版社,2004年.[5]杨邦文.新型实用电路制作200例.北京:人民邮电出版社,1998年.[6]邹其洪.电工电子试验与计算机仿真.北京:电子工业出版社,2003年.[7]《电子世界》杂志.《电子世界》出版部,2004年5月刊第一版[8]《九五年度电子设计精选》.北京理工大学出版社,1997年第一版[9]王新贤.《通用集成电路速查手册.科学技术出版社,2002年第一版[10]杨素行.《模拟电子技术基础简明教程》.高等教育出版社,1998年10月第二版[11]杜坤梅.《电机控制技术》.哈尔滨工业大学出版社,2002年2月第二版[12]肖景和,赵健.实用遥控电路.北京:人民邮电出版社,2002.7[13]王建校,杨建国,51系列单片机及C51程序设计.北京:科学出版社,2002.4[14]李朝青.无线发送/接收IC芯片及其数据通讯技术选遍.北京:北京航空航天大学出版社,2003.5[15]余永叔,何小敏.世界流行单片机技术手册.北京:北京航空航天大学出版社,2002[16]余永全.单片机与家用电器智能化技术.北京:电子工业出版社,1995[17]余永权,汪明慧,黄英.单片机在控制系统中的应用.北京:电子工业出版社,2003[18]秉时,鄂生.红外双路红外线遥控开关.2004.000(007)[19]倪健,董强.中国民航飞行学院学报<<编码解码技术在红外遥控器中的实现>>.河北工程大学2004.015(001)[20]李经达.皖西学院学报<<红外遥控器软件解码的研究及其在单片机控制产品设计中的应用>>.皖西学院计算机科学系,2002.018(004)说明:期刊类:[序号]作者.篇名[J].刊名,出版年份,卷号(期号):起止页码专著类:[序号]作者.书名[M].出版地:出版社,出版年份.起止页码报纸类:[序号]作者.篇名[N].报纸名,年月日专利:[序号]专利所有者.题名[P].国别:专利号,年月日标准:[序号]标准编号,标准名称[S]电子文献:[序号]主要责任者.电子文献题名[EB/OL].电子文献出处或可获得地址,发表或更新日期/引用日期示例:1

专著、书籍、译著【格式】序号

责任者[外国作者请注明国籍].书名(版本,第1版不写)[文献类型M].其他责任者

温馨提示

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

评论

0/150

提交评论