1、摘 要自动控制属于电子及信息科学的一个重要分支,并且在现代家居中有着较好的目前发展前景。目前,家庭居住环境的采光及避光问题主要采用的是手动开闭窗帘,手动开闭不仅费力而且很多方面不够人性化,可能对用户造成一定的困扰,窗帘控制器可以解决这些问题本文旨在设计一个家用窗帘自动开关控制器。当外界光照度高于某一参考值时窗帘自动打开,低于该参考值是窗帘自动关闭。通过本学期对单片机的学习,利用单片机为控制器,设计单片机控制系统,最终实现控制功能。本设计具有一定的的推广价值,能更加方便人们的生活起居。本系统先确定了设计方案,再分别通过硬件设计和软件设计来完善方案。自动窗帘控制器的构成主要由光照传感电路、89C5
2、1单片机作为控制器、器主控模块电路、电源转换电路、电机控制电路、键盘、显示电路、执行机构为步进电机等组成,重点讨论了窗帘自动控制器的设计过程、硬件选用和软件调试等问题,通过本器可实现利用光照强度以及设置时间来控制窗帘自动开闭。 关键词:家用窗帘;89C51单片机;步进电机;光敏电阻目 录第1章 绪论1第2章 方案设计22.1 概述22.2 系统组成的总体结构2第3章 硬件设计43.1 电源电路设计43.2 系统控制器单片机的选择43.3 光敏电阻的选择与设计53.4 驱动电路的设计63.5 AD转换电路设计73.6 键盘的设计73.7 显示电路的设计83.8 时钟电路的设计10第4章 软件设计
3、114.1 AD转换程序设计114.2电机驱动程序设计124.3 时钟电路程序设计134.4 系统分析14第5章 课程设计总结15参考文献16附录17word文档 可自由复制编辑 第1章 绪论伴随着信息化时代的到来,人们的生活速度以及对生活质量的追求也在大幅提高。电子产品智能化速度的加快,也使人们的工作、生活和通讯的关系日益紧密。智能化的产品设计在改变人们工作方式与生活习惯的同时,让人们对生活质量的提升提出了更高的要求,方便、舒适成了人们所追求的生活方式,在现代家庭生活环境中,居家环境早已不仅仅局限在物理空间上,人们更为关注的是一个安全、方便、舒适的环境。智能化的电子产品以及设计将以前的被动静
4、止物体转变为人们能够方便操控的工具,这些产品具有提供全方位的信息交换的功能,不仅能够优化人们的生活方式,帮助人们合理的安排时间,增强居家环境的安全性,甚至还可以为各种能源费用节约资金。在智能化产品中,单片机的应用已经越来越广泛,单片机以它体积小、质量轻、耗电省、可靠性高、价格低等优点,开始不断发展,并广泛应用于仪器仪表、家用电器、医疗设备、航天航空领域、工业专用设备的管理及过程控制等领域,在很多的大中型的电气设备以及小型的电子产品中也用到了单片机进行控制。针对人们对智能化的需求以及对舒适生活的追求,窗帘自动控制器改变了传统窗帘的劣势,它可以根据外界光照强度的不同而自动开闭窗帘,也可以根据人们设
5、定的时间来控制窗帘。该器利用光敏电阻检测光照强度的变化,并且将光敏检测模块的电阻变化转化为电压变化,然后将电压变化的信号送单片机,单片机通过电机驱动模块控制着步进电机的正反转实现窗帘的来回移动。本设计正是把利用AT89C51 单片机的优点以及简单实用性,顺利的完成了对智能控制的要求,并且为智能化的家居设备提供了良好的基础。此外,对该器进行扩展,比如可以加上防火,防盗,甚至室内煤气浓度监测等功能,会使该器更具有实用性,而且也完善了器。 第2章 方案设计2.1 概述 本次设计主要是综合运用所学知识,设计出家用窗帘自动开关控制器,并在实践的基本技能方面进行一次系统的训练。能够较全面地巩固和应用“单片
6、机”课程中所学的基本理论和基本方法,并初步掌握小型单片机系统设计的基本方法。该器具有一般的窗帘控制器的最基本的功能,即通过电动按钮来开闭窗帘,在此基本功能的前提下,本设计根据需求还设计了可以根据光照强度和设定时间自动开闭窗帘的功能,在选取设计方案和采用元器件方面,该器本着简单实用经济的思想,尽量简化电路设计,用最简单的电路布线和选用最经济实用的器件来达到设计要求。自动窗帘控制器具有以下几个基本功能: (1)手动控制:该功能是根据用户的需求通过按键进行窗帘的开关,此功能可以使窗帘的开闭处于任何一种状态; (2)自动控制:用户可以通过按键一次性开闭窗帘; (3)光照控制:器可以根据用户设定的光照强
7、度值通过感光器采集光照自动开光窗帘; (4)时间控制:此功能是根据用户设定的时间一次性开关窗帘。2.2 系统组成的总体结构 本次课程设计所采用的系统结构图如图所示 图2.2系统组成结构图根据光照来开闭窗帘主要原理是用光敏电阻采集外界的光强度,从光传感器采集的信号利用信号校正电路放大,滤波后输入到A/D转换器,由于A/D转换器件的转换需要一定时间,一旦在这段时间内信号发生变化,转换结果将会出现偏差,所以在转换期间要应该采用采样保持电路。传入的信号由89C51单片机来控制,并且做出响应,以实现电机的正转、反转与停止。显示模块是用来显示自动窗帘控制器的各种状态。键盘作为输入设备,通过不同按键来控制单
8、片机进行各种运转状态。第3章 硬件设计3.1 电源电路设计 单片机正常工作电压为5V,因此设计的电源电路主要是提供单片机工作电压。图3.1(a)是为单片机提供电压的电源电路。在这个电路中采用了三端集成稳压器LM7805,可以输出5V的直流电压以供给单片机。 图3.1(a)电源电路三端集成稳压器LM7805,总共有三条引脚,分别是输入端、接地端和输出端。用LM78LM79系列三端稳压器来组成稳压电源所需的外围元件极少,电路内部还有过流、过热及调整管的保护电路,使用起来可靠、方便。其内部结构图如图3.1(b)所示。 图3.1(b) LM7805内部示意图3.2 系统控制器单片机的选择 自单片机诞生
9、以来的40年中,单片机已有70多个系列,500多个机种,如今单片机厂商众多,生产的单片机产品性能各异,种类繁多。以Inter(美国英特尔)公司的MCS-51系列产品为例,其一般可以分为普通型和增强型。他们的结构基本相同,其主要的差别在于存储器的不同,如89C51是以FlashROM为存储器。为了符合系统的要求,本课程设计选用89C51作为微机控制核心。其特点如下:面向控制的8位CPU;一个片内震荡器和时钟产生电路,振荡频率为024MHz;片内4kbFlashROM程序存储器;128B的片内数据存储器;可寻址64KB的片外程序存储器和片外数据存储器控制电路;2个16位定时/计数器;4个并行I/O
10、口,共32条可单独编程的I/O线;5个中断源和2个中断优先级;一个全双工的异步串行口等。 AT89C51单片机是低功耗、高性能的CMOS 8位单片机,片上带有8K Flash 存储器,且允许在器改写或用编程器编程。89C51单片机上有40个引脚如图所示,其主要参数有:(1)4K字节可编程闪烁存储器;(2)全静态工作:0Hz-24MHz; (3) 128*8位内部RAM ;(4) 32可编程I/O线;(5)两个16位定时器/计数器;(6) 5个中断源;(7)低功耗的闲置和掉电模式;(8)片内振荡器和时钟电路; 图3.2 89C51单片机引脚图3.3 光敏电阻的选择与设计窗帘自动控制器的光控功能是
11、可以根据光照的强弱来自动控制窗帘的开闭的,因此需要用到光照传感元器件,本设计采用了型号为GL3526的光敏电阻。其参数为最大电压100(VDC);最大功率50(mW);环境温度-30到+70;光谱峰值540(nm)到10(nm);高电阻 20K;低电阻 1M。 图3.3 光敏电阻与单片机的连接图3.4 驱动电路设计 本次课设中我们所选用的驱动电机为JL-48E500 / 520步进电机,下图为步进电机运行原理图。JL-48E500 / 520是供电源为12V的4相5线的步进电机,而且是减速步进电机,减速比为30:1,步进角为5.625*30度。如果需要旋转一圈,那么需360*30/5.625的
12、脉冲信号,该步进电机的耗电流为200mA左右。 图3.4 步进电机原理图用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.4 步进电机电路与单片机的连接3.5 AD转换电路 A/D转换的作用是进行模数转换,把接收到的模拟信号转换成数字信号输出。ADC0809的主要特性有:(1)8路输入通道,8位A/D转换器,即分辨率为8位。(2)具有转换起停控制端。(3)转换时间为10
13、0s(时钟为640kHz时),130s(时钟为500kHz时)。(4)模拟输入电压范围05V,不需零点和满刻度校准。(5)工作温度范围为-4085摄氏度。(6)低功耗,约15mW。ADC0809芯片为28引脚的双列直插式封装: 图3.5 AD转换器引脚图 3.6 键盘的设计在窗帘控制器设计中的键盘采用的是44矩阵键盘。这16个按键分别为:设定键主要是用来设定自动窗帘打开或者关闭的时间;0-9数字键,其作用主要是用于设定时间;复位键主要应用在程序出错以及误操作的时候使单片机复位,从而重新设定;反转键是使步进电机反转,控制窗帘关闭;正转键是使步进电机正转,从而控制窗帘打开;停止键可以控制步进电机停
14、止工作,窗帘控制器停止运行;确定键主要是用于在时间设定完成后的确定输入。 图3.6 键盘接口电路3.7 显示电路的设计显示电路主要是用于显示时间。采用LED数码管进行显示是因为LED数码管具有以下几个优点:(1)能在低电压、小电流条件下驱动发光,能与CMOS、ITL电路兼容。(2)发光响应时间极短(0.1s),高频特性好,单色性好,亮度高。(3)体积小,重量轻,抗冲击性能好。 本设计采用的是4位LED数码管的串行驱动电路来达到显示的目的。驱动器采用74LS164,由单片机89C51的P3.0和P3.1来控制LED数码管的显示。显示电路图如3.7(a)所示。 图3.7(a)显示电路图 74LS1
15、64是8 位串行输入,并行输出的移位寄存器。其引脚图如下图3.7(b)所示: 图3.7(b)74SL164引脚图 3.8 时钟电路的设计DS1302是美国DALLAS公司推出的一种高性能、低功耗的实时时钟日历芯片,附加31字节静态RAM,采用SPI三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号和RAM数据。实时时钟可提供秒、分、时、日、星期、月和年,一个月小于31天时可以自动调整,且具有闰年补偿功能。工作电压宽达2.55.5V。采用双电源供电(主电源和备用电源),可设置备用电源充电方式。需要强调的是,DS1302需要使用32.768KHz的晶振。DS1302采用双电源
16、供电,平时由+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转换子程序设计 该流程图首先要发送启动信号到地址选择处,由地址选择字来判断应答信号是否正确,不正确则返回,若正确则继续执行来发送转换控制字,再次判断应答信号是否正确,如此执行三次,最终读取转换数据,并发送非应答信号,顺序执行发送结束信号,最终返回主程序。图4.1 A/D转换流程图4.2 电机驱动程序设计 此
17、流程图首先由电机脉冲分配函数来确定电机是正转还是反转,从而来决定数组是加1还是减1,若大于最大节拍则令节拍为0,否则直接调转到最小节拍;若小于最小节拍则顺序执行到把数据输出到电机接口再执行延时程序,否则直接跳转到延时程序,最后返回,整个程序结束。 图4.2 电机驱动流程图4.3 时钟电路程序设计 该程序主要实现对DS1302写保护、充电,对年、月、日、时、分、秒等寄存器的读写操作。首先程序初始化,紧接着写入时钟初值,此时时钟开始进入计时阶段,由硬件读出数据并返回,整个程序结束。图4.3 时钟电路流程图4.4 系统分析 本系统能实现基本的家用自动窗帘使用。可以实现外界光强时窗帘打开,光弱时是自动
18、关闭。但若综合考虑天气和时间因素,系统还存在一些不足之处。如外界阴天等其他干扰因素会使窗帘不能正常打开。所以还需加入定时系统。当光敏电阻失效时窗帘不能自动开合,所以还需加入红外遥控系统。使人们可以通过遥控器控制窗帘的打开与关闭。通过相关资料我们可以知道电机的工作状态还可通过数码管显示出来,程序的编写很简单,通过不同数字表示相应工作状态。与此同时,还可以通过鸣响提示电路提示电机正在工作,以避免多次按下按钮使单片机进行误操作,造成死机。基于单片机的智能遥控窗帘的设计,在实时性要求较低的测控与采集系统的应用中具有很好的发展前景和应用价值。在国内外,自动调光窗帘成为人们家居生活的首选布置。 第5章 课
19、程设计总结本次设计器地介绍了自动窗帘控制器的硬件电路设计以及软件设计。在总体方案设计中以光敏电阻作为传送信号的传感器,用步进电机作为信号输出的执行元件,89C51单片机作为主要的控制元器件,并且应用了按键以及和显示电路。应用89C51单片机的优势减少了硬件的复杂性,光敏电阻接收外界光照信号,经过AD转换后,传送给单片机一个电信号,单片机经过处理后,控制步进电机做出相应的动作,以控制窗帘的开闭。在实现一般应用的基础上,又添加了定时元器件电路,使窗帘的自动化性能得到进一步提升。光敏电阻的良好感光性以及步进电机的结构简单,控制方便的优点使窗帘控制开关更加稳定。本次毕业设计的整个研究与设计过程包括选题
20、、设计以及完善等。首先,在选题方面查阅了很多与题目有关的资料和课题并且制定设计方案,进行设计的总体规划,然后将这些方案落实到设计环节中。其次,在制定的方案基础上运用所学的知识对硬件以及软件进行设计,并用相关软件进行仿真设计。最后,对设计内容进一步修缮,以求达到最佳设计结果。虽然设计内容完成了基本的功能,但是其中还是存在一定欠缺,比如在设计中没有考虑到窗帘工作方式的显示以及没有添加类似红外遥控的设计等。 此次设计过程中,在完成设计任务之外也让我器性地认识和全面地掌握了单片机相关技术,从本次毕业设计中我更加深刻地认识到理念来源于实际的含义。在和同学以及老师的就相关问题的互相讨论交流中,我认识到自己
21、的很多不足,但在这些不足中我又学到了很多知识,使我的综合应用能力有了很大提高。 参考文献1 何希才,薛永毅.传感器及其应用实例M.北京:机械工业出版社,2004.22 瞿贵荣.电动窗帘红外遥控电路J.家庭电子,2005(2):2-3.3 郭成林.智能遥控窗帘系统设计J.山西电子技术,2006(6):32-33.4 胡汉才.单片机原理及其接口技术M.北京:清华大学出版社,1996.15 吴爱萍,黄振兴.基于AT89S52的智能窗帘群控系统J.科技资讯,2007,8 6 梅丽凤,王艳秋.单片机原理及接口技术.清华大学出版社,2011.127 陈伯时,阮毅.电力拖动自动控制系统.机械工业出版社,20
22、12.18 中国工控网网页, 9 童诗白,华成英.模拟电子技术基础M.高等教育出版社,2003.10 胡汉才,单片机原理及接口技术J.北京:清华大学出版社,2004.11 江思敏,胡荣.Protel电路设计教程J.北京:清华大学出版社,2002.12 李全利,迟荣强.单片机原理及接口技术J.北京:高等教育出版社,2001.13 程学先,林珊,程传慧.汇编语言程序设计J.北京:机械工业出版社,2005.附录(1) A/D转换程序如下:ORG 00HLJMP STARTORG 0BHLJMP T0XORG 30HSTART: MOV CH,#0BCHMOV DPCNT,#00HMOV R1,#DP
23、CNTMOV 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,
24、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
25、,06H,5BH,4FH,66HDB 6DH,7DH,07H,7FH,6FH,00HDPBT: DB 0FEH,0FDH,0FBH,0F7HDB 0EFH,0DFH,0BFH,07FHEND(2) 电机驱动程序如下: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
26、 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 END(3) 时钟电路程序如下:OR
27、G 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,#11111110b
28、LCALL 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 LC
29、ALL 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,OUTPUTLOOPRETENDword文档 可自由复制编辑