家用窗帘自动开关控制器.doc_第1页
家用窗帘自动开关控制器.doc_第2页
家用窗帘自动开关控制器.doc_第3页
家用窗帘自动开关控制器.doc_第4页
家用窗帘自动开关控制器.doc_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

本科生课程设计(论文) 摘 要本文旨在设计一个家用窗帘自动开关控制器。当外界光照度高于某一参考值时窗帘自动打开,低于该参考值是窗帘自动关闭。通过本学期对单片机的学习,利用单片机为控制器,设计单片机控制系统,最终实现控制功能。本设计具有一定的的推广价值,能更加方便人们的生活起居。本系统先确定了设计方案,再分别通过硬件设计和软件设计来完善方案。在设计中用到了89C51单片机作为控制器,执行机构为步进电机,使用光敏电阻作为传感器。系统在天气不稳定等外界干扰下会有可能影响其稳定性。关键词:家用窗帘;89C51单片机;步进电机;光敏电阻目 录第1章 绪论1第2章 课程设计的方案22.1 概述22.2 系统组成总体结构2第3章 硬件设计43.1 系统控制器单片机的选择43.2 检测电路的设计53.3 电机驱动电路的设计73.4 显示电路的设计83.5 时钟电路设计9第4章 软件设计104.1 A/D转换子程序设计104.2 电机驱动程序设计134.3 时钟电路程序设计15第5章 系统分析18第6章 课程设计总结19参考文献2220第1章 绪论随着经济社会的快速发展,人们的生活节奏也越来越快,高效、方便、节能也越来越引起人们的重视。特别是随着电子技术产业向集成化、智能化转变以后,人们对居家生活的各方面都要求方便干净,而且美观。同时,也为人们的生活环境以及智能家居的实现提供了依据,为此,研究与设计智能窗帘控制系统具有深远的现实意义。本设计介绍了一种自动窗帘的控制系统,自动窗帘的控制系统包括电路控制部分和机械传动部分,电路控制部分光信号获取及转换为电信号,利用电信号实现控制,以及各种控制状态的自动转换,机械部分由限位开关和继电器控制电机正反转。因此,我选择的设计制作就是在我所学知识的基础之上,把简单的居家生活中的窗帘用光感应控制实现,使生活方便的同时也把所学知识更好的运用在生活中,真正做到学以致用。目前,国内外的家用窗帘自动控制技术已经很成熟,有多家的生产厂商。本设计是对在校所学理论知识的一次实践应用,同时一定程度上填补了市场上自动控制窗帘的空白;采用目前广泛使用的模块化设计理念,成品具有体积小、可靠性高、易于安装检测维修等传统人为控制电动窗帘不可比拟的优点;该作品设计简单实用,能自动控制,一经安装,无需人工管理。此外,本设计产品成本低廉,适用性广,能在各种窗口场合使用,对不便人工作业的场合效果尤为显著,具有很大的市场推广空间和经济效益前景。但值得注意的是,就目前国内的社会发展水平和国人的消费水准来说,与其说本设计是一种生活必需品,倒不如说是一种家庭装饰品,其推广过程中可能遇到一些暂时性的困难。就目前而言,所设计产品虽适用范围广阔,但与当今普通手动窗帘相比造价要高,只适于部分场合的使用,其市场前景可能会随着社会的发展越来越好。其主要意义在于达到了学以致用的目的;同时,具有一定的现实意义,经改进完善后能进行生产,投入使用。所以,国内外对该课题的研究并没有广泛开展。第2章 课程设计的方案2.1 概述本次设计主要是综合运用所学知识,设计出家用窗帘自动开关控制器,并在实践的基本技能方面进行一次系统的训练。能够较全面地巩固和应用“单片机”课程中所学的基本理论和基本方法,并初步掌握小型单片机系统设计的基本方法。应用场合: 应用于家用窗帘,家用窗帘有一个光敏电阻作为光线传感器,通过外界光线和光纤传感器的设定值作比较,决定窗帘是打开还是关闭。控制器由12V蓄电池供电。系统功能介绍: 该系统使用AT89C51单片机作为核心,外围电路由时钟芯片、光敏电阻等构成。用PCF8591作为A/D转换从而实现光控。2.2 系统组成总体结构单片机 AD转换光敏电阻LED显示步进电机时钟电路驱动电路该系统使用AT89C51单片机作为核心,通过使用光敏电阻作为光线传感器,PCF8591作为A/D转换实现光控。时钟芯片采用DS1302,用于实现钟控功能,同时集成DS18B20用于显示环境温度。设计驱动电路控制步进电机,使用JL-48E500 / 520是供电源为5V的4相5线的步进电机。用两个LED灯显示窗帘的打开和关闭状态。整个电路使用了5V电源供电。 图2.1 系统总体结构框图 对于电机如何停止的问题,本设计在窗帘滑杆上安装了微动开关,一旦窗帘拉动到指定位置就会触碰微动开关,从而送给单片机一个低脉冲,单片机在接收到低脉冲后,则认为窗帘已完全拉开或关闭,调用程序实现电机的停止转动;当接收到光控信号时,单片机调用相应的程序,驱动光敏二极管检测环境亮度,根据检测结果,实现窗帘的拉开或关闭。在设计过程中有可能遇到的一些典型的问题,但采取了相应的措施:(1) 电机驱动问题。电机的驱动电压为5 V,但是经过三极管的降压后,电机驱动能力明显下降,为了增大电机驱动能力,在控制部分与电机执行部分加了光耦隔离,将两部分隔离开来,外接12 V电压,以增大电机的驱动能力。 (2) 电机停机问题。单独靠程序来实现电机的停机,对时间控制的要求非常高,且不易实现。如果通过继电器来实现停机也可以,但由于继电器响应时间慢、机械结构易损坏、寿命较短、可靠性不高,故采用了微动开关,通过送单片机低脉冲来实现电机停机,实时性也很好。第3章 硬件设计3.1 系统控制器单片机的选择自单片机诞生以来的40年中,单片机已有70多个系列,500多个机种,如今单片机厂商众多,生产的单片机产品性能各异,种类繁多。以Inter(美国英特尔)公司的MCS-51系列产品为例,其一般可以分为普通型和增强型。他们的结构基本相同,其主要的差别在于存储器的不同,如89C51是以FlashROM为存储器。为了符合系统的要求,本课程设计选用89C51作为微机控制核心。其特点如下:面向控制的8位CPU;一个片内震荡器和时钟产生电路,振荡频率为024MHz;片内4kbFlashROM程序存储器;128B的片内数据存储器;可寻址64KB的片外程序存储器和片外数据存储器控制电路;2个16位定时/计数器;4个并行I/O口,共32条可单独编程的I/O线;5个中断源和2个中断优先级;一个全双工的异步串行口等。 图3.1 AT89C51实物图 图3.2 AT89C51引脚图3.2 检测电路的设计PCF8591是一个单片集成、单独供电、低功耗、8-bit CMOS数据获取器件。PCF8591具有4个模拟输入、1个模拟输出和1个串行IC总线接口。PCF8591的3个地址引脚A0, A1和A2可用于硬件地址编程,允许在同个IC总线上接入8个PCF8591器件,而无需额外的硬件。在PCF8591器件上输入输出的地址、控制和数据信号都是通过双线双向IC总线以串行的方式进行传输。PCF8591的功能包括多路模拟输入、内置跟踪保持、8-bit模数转换和8-bit数模转换。PCF8591的最大转化速率由IC总线的最大速率决定。PCF8591 特性:单独供电;PCF8591的操作电压范围2.5V-6V ;低待机电流 ;通过IC总线串行输入/输出 ;PCF8591通过3个硬件地址引脚寻址 ;PCF8591的采样率由IC总线速率决定 ;4个模拟输入可编程为单端型或差分输入 ;自动增量频道选择 ;PCF8591的模拟电压范围从VSS到VDD ;PCF8591内置跟踪保持电路;8-bit逐次逼近A/D转换器。图3.3 PCF8591引脚图传感器采用光敏电阻,A/D采用PCF8591该硬件电路设计简单,便于调试如图光敏电阻测量到的电压值送PCF8591通道1,SCL与SDA分别是时钟总线与数据总线接单片机的P2.0与P2.1,如 图3.4 所示为检测电路电路图:图3.4 检测电路电路图光敏电阻选用GM5539用一个稳定的电源通过光敏管,根据它所能通过的电流来决定光线的强弱值,比如说你给出一个稳定的10mA电源,光敏管的最大值是1000X,当输出为10mA时,那就是证明采集的光线为1000X以上,如果输出为5mA时采光就为500X,此为模拟方式来读取光敏管所采集的光线,只要电源稳定,它的准确性也会很高。图3.5 光敏电阻实物图3.3 电机驱动电路的设计JL-48E500 / 520是供电源为12V的4相5线的步进电机,而且是减速步进电机,减速比为30:1,步进角为5.625*30度。如果需要旋转一圈,那么需360*30/5.625的脉冲信号,该步进电机的耗电流为200mA左右。图3.6 步进电机实物图用ULN2003驱动,驱动端口为 P1.0(A),P1.1(B),P1.2(C),P1.3(C)。正转次序: AB 组BC组-CD 组-DA 组 (即一个脉冲,正转 5.625度);反转次序:AB 组 -AD 组-CD 组-CB 组(即一个脉冲,正转 5.625 度)。 图3.7 步进电机驱动电路图3.4 显示电路的设计本系统要求用2个LED灯显示当前窗帘开关状态。图3.8 LED灯实物图两个LED灯采用共阳极接法,在阳极端接入+5V电源,每一路显示灯串入电阻,阴极端分别连接单片机的P1.0口和P1.1口。当两个端口中的一个为低电平时,与其对应的LED灯点亮。如前文所述,在窗帘滑杆上安装了微动开关,一旦窗帘拉动到指定位置就会触碰微动开关,从而送给单片机一个低脉冲,单片机在接收到低脉冲后,从而使相应的指示灯点亮。图3.9 显示电路电路图3.5 时钟电路设计DS1302是美国DALLAS公司推出的一种高性能、低功耗的实时时钟日历芯片,附加31字节静态RAM,采用SPI三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号和RAM数据。实时时钟可提供秒、分、时、日、星期、月和年,一个月小于31天时可以自动调整,且具有闰年补偿功能。工作电压宽达2.55.5V。采用双电源供电(主电源和备用电源),可设置备用电源充电方式。需要强调的是,DS1302需要使用32.768KHz的晶振。图3.10 DS1302实物图DS1302采用双电源供电,平时由+5V电源供电,当+5V掉电之后,由图中BT1(+3V备用电池)供电。 如图,串行时钟SCLK接单片机P3.6,时钟数据的I/O接P3.3,E接P3.2。需要注意X1和X2两端连接的晶振Y1,该晶振频率为32.768KHz。图3.11 时钟电路电路图第4章 软件设计4.1 A/D转换子程序设计(一)、A/D转换流程图:开始发送启动信号发送地址选择字应答信号正确发送转换控制字应答信号是否正确发送启动信号发送地址控制字应答信号是否正确读取转换数据发送非应答信号发送结束信号返回主程序否否否是 是 是 图4.1 A/D转换流程图该流程图首先要发送启动信号到地址选择处,由地址选择字来判断应答信号是否正确,不正确则返回,若正确则继续执行来发送转换控制字,再次判断应答信号是否正确,如此执行三次,最终读取转换数据,并发送非应答信号,顺序执行发送结束信号,最终返回主程序。(二)、A/D转换程序如下:ORG 00HLJMP STARTORG 0BHLJMP T0XORG 30HSTART: MOV CH,#0BCHMOV DPCNT,#00HMOV R1,#DPCNTMOV R7,#5MOV A,#10MOV R0,#DPBUFLOP: MOV R0,AINC R0DJNZ R7,LOPMOV R0,#00HINC R0MOV R0,#00HINC R0MOV R0,#00HMOV TMOD,#01HMOV TH0,#(65536-4000)/256MOV TL0,#(65536-4000) MOD 256SETB TR0SETB ET0SETB EAWT: CLR STSETB STCLR STWAIT: JNB EOC,WAITSETB OEMOV GDATA,P0CLR OEMOV A,GDATAMOV B,#100DIV ABMOV 33H,AMOV A,BMOV B,#10DIV ABMOV 34H,AMOV 35H,BSJMP WTT0X: NOPMOV TH0,#(65536-4000)/256MOV TL0,#(65536-4000) MOD 256MOV DPTR,#DPCDMOV A,DPCNTADD A,#DPBUFMOV R0,AMOV A,R0MOVC A,A+DPTRMOV P1,AMOV DPTR,#DPBTMOV A,DPCNTMOVC A,A+DPTRMOV P2,AINC DPCNTMOV A,DPCNTCJNE A,#8,NEXTMOV DPCNT,#00HNEXT: RETIDPCD: DB 3FH,06H,5BH,4FH,66HDB 6DH,7DH,07H,7FH,6FH,00HDPBT: DB 0FEH,0FDH,0FBH,0F7HDB 0EFH,0DFH,0BFH,07FHEND4.2 电机驱动程序设计(一)、电机驱动流程图:正转数组位置减1数组位置加1大于最大节拍节拍等于0小于最小节拍输出数据到电机接口延时返回电机脉冲分配函数 Y N Y N Y N图4.2 电机驱动流程图此流程图首先由电机脉冲分配函数来确定电机是正转还是反转,从而来决定数组是加1还是减1,若大于最大节拍则令节拍为0,否则直接调转到最小节拍;若小于最小节拍则顺序执行到把数据输出到电机接口再执行延时程序,否则直接跳转到延时程序,最后返回,整个程序结束。(二)、电机驱动程序如下:JMP STARTORG 0100HSTART:MOV BUFF_STEP,#00HMOV P0,#0fFh MOV P1,#0ffhMOV P3,#0ffhMOV P2,#0ffHMOV A,#00H MOV PSW,#00HMOV IE,#00HMOV SP,#30HMAIN: JNB SW1,CCW_LP MOV DPTR,#TAB_CW JMP LOOPCCW_LP:MOV DPTR,#TAB_CCWLOOP: MOV A,BUFF_STEPMOVC A,A+DPTRMOV P1,AINC BUFF_STEPMOV A,BUFF_STEPCJNE A,#04H,MAINMOV BUFF_STEP,#00HJMP MAINDEL: MOV R6,#10DEL0: MOV R7,#200DJNZ R7,$DJNZ R6,DEL0TAB_CW: DB 11110001B,11101001B,11100101B,11100011B TAB_CCW: DB 11110001B,11100011B,11100101B,11101001B END4.3 时钟电路程序设计(一)、时钟电路流程图:开始初始化写入时钟初值开始计时读出数据返回 图4.3 时钟电路流程图该程序主要实现对DS1302写保护、充电,对年、月、日、时、分、秒等寄存器的读写操作。首先程序初始化,紧接着写入时钟初值,此时时钟开始进入计时阶段,由硬件读出数据并返回,整个程序结束。二、时钟电路程序如下:ORG 0000HLJMP STARTORG 0060HSTART: ;CLR T_RST;CLR T_CLKMOV SP,#60H MOV SECOND,#00H MOV MINUTE,#00HMOV HOUR,#12HMOV DAY,#01H MOV MONTH,#01HMOV WEEK,#01HMOV YEARL,#08HMOV A,HOURANL A,#0FHMOVC A,A+DPTRMOV P2,AMOV P1,#11111101bLCALL DIS_DELAYMOV A,HOURSWAP AANL A,#03HMOVC A,A+DPTRMOV P2,AMOV P1,#11111110bLCALL DIS_DELAYRET DIS_DELAY:PUSH PSWMOV R7,#10D1: MOV R6,#248D2: DJNZ R6,$DJNZ R7,D1POP PSWRET SETDS1302:CLR T_RSTNOPCLR T_CLKNOPSETB T_RSTNOPMOV B,#8EH LCALL INPUTBYTE MOV B,#00H LCALL INPUTBYTESETB T_CLKNOPCLR T_RSTMOV R0,#SECOND MOV R1,#80H MOV R7,#7SETLOOP:CLR T_RSTNOPMOV B,R1LCALL INPUTBYTE LCALL OUTPUTBYTE MOV R0,A 、INC R0 INC R1INC R1SETB T_CLKNOPCLR T_RSTNOPDJNZ R7,GETLOOPINPUTBYTE:MOV R4,#8INPUTLOOP:MOV A,BRRC AMOV B,AMOV T_IO,CSETB T_CLKNOPNOPNOPCLR T_CLKDJNZ R4,INPUTLOOPRET CLR ACLR CMOV R4,#8OUTPUTLOOP:NOPNOPMOV C,T_IORRC ASETB T_CLKNOPNOPNOPCLR T_CLKDJNZ R4,OUTPUTLOOPRETEND第5章 系统分析本系统能实现基本的家用自动窗帘使用。可以实现外界光强时窗帘打开,光弱时是自动关闭。但若综合考虑天气和时间因素,系统还存在一些不足之处。如外界阴天等其他干扰因素会使窗帘不能正常打开。所以还需加入定时系统。当光敏电阻失效时窗帘不能自动开合,所以还需加入红外遥控系统。使人们可以通过遥控器控制窗帘的打开与关闭。通过相关资料我们可以知道电机的工作状态还可通过数码管显示出来,程序的编写很简单,通过不同数字表示相应工作状态。与此同时,还可以通过鸣响提示电路提示电机正在工作,以避免多次按下按钮使单片机进行误操作,造成死机。基于单片机的智能遥控窗帘的设计,在实时性要求较低的测控与采集系统的应用中具有很好的发展前景和应用价值。在国内外,自动调光窗帘成为人们家居生活的首选布置。第6章 课程设计总结本次设计介绍

温馨提示

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

评论

0/150

提交评论