窗帘自动开关控制器
摘 要
自动控制属于电子及信息科学的一个重要分支,并且在现代家居中有着较好
的目前发展前景。目前,家庭居住环境的采光及避光问题主要采用的是手动开闭窗帘,手动开闭不仅费力而且很多方面不够人性化,可能对用户造成一定的困扰,窗帘控制器可以解决这些问题本文旨在设计一个家用窗帘自动开关控制器。当外界光照度高于某一参考值时窗帘自动打开,低于该参考值是窗帘自动关闭。通过本学期对单片机的学习,利用单片机为控制器,设计单片机控制系统,最终实现控制功能。本设计具有一定的的推广价值,能更加方便人们的生活起居。
本系统先确定了设计方案,再分别通过硬件设计和软件设计来完善方案。自
动窗帘控制器的构成主要由光照传感电路、89C51单片机作为控制器、器主控模块电路、电源转换电路、电机控制电路、键盘、显示电路、执行机构为步进电机等组成,重点讨论了窗帘自动控制器的设计过程、硬件选用和软件调试等问题,通过本器可实现利用光照强度以及设置时间来控制窗帘自动开闭。
关键词:家用窗帘;89C51单片机;步进电机;光敏电阻
辽 宁 工 业 大 学 课 程 设 计 说 明 书 (论文)
目 录
第1章 绪论 . .......................................................... 1
第2章 方案设计 ...................................................... 2
2.1 概述 . ........................................................... 2
2.2 系统组成的总体结构 . ............................................. 2
第3章 硬件设计 ...................................................... 4
3.1 电源电路设计 . ................................................... 4
3.2 系统控制器单片机的选择 . ......................................... 4
3.3 光敏电阻的选择与设计 . ........................................... 5
3.4 驱动电路的设计 . ................................................. 6
3.5 A\D转换电路设计 ................................................ 7
3.6 键盘的设计 . ..................................................... 7
3.7 显示电路的设计 . ................................................. 8
3.8 时钟电路的设计 . ................................................ 10
第4章 软件设计 ..................................................... 11
4.1 A\D转换程序设计 ............................................... 11
4.2电机驱动程序设计 ............................................... 12
4.3 时钟电路程序设计 . .............................................. 13
4.4 系统分析 ....................................................... 14
第5章 课程设计总结 ................................................ 15
参考文献 . .............................................................. 16
附录 . .................................................................. 17
第1章 绪论
伴随着信息化时代的到来,人们的生活速度以及对生活质量的追求也在大幅
提高。电子产品智能化速度的加快,也使人们的工作、生活和通讯的关系日益紧密。智能化的产品设计在改变人们工作方式与生活习惯的同时,让人们对生活质量的提升提出了更高的要求,方便、舒适成了人们所追求的生活方式,在现代家庭生活环境中,居家环境早已不仅仅局限在物理空间上,人们更为关注的是一个安全、方便、舒适的环境。智能化的电子产品以及设计将以前的被动静止物体转变为人们能够方便操控的工具,这些产品具有提供全方位的信息交换的功能,不仅能够优化人们的生活方式,帮助人们合理的安排时间,增强居家环境的安全性,甚至还可以为各种能源费用节约资金。
在智能化产品中,单片机的应用已经越来越广泛,单片机以它体积小、质量
轻、耗电省、可靠性高、价格低等优点,开始不断发展,并广泛应用于仪器仪表、家用电器、医疗设备、航天航空领域、工业专用设备的管理及过程控制等领域,在很多的大中型的电气设备以及小型的电子产品中也用到了单片机进行控制。
针对人们对智能化的需求以及对舒适生活的追求,窗帘自动控制器改变了传
统窗帘的劣势,它可以根据外界光照强度的不同而自动开闭窗帘,也可以根据人们设定的时间来控制窗帘。该器利用光敏电阻检测光照强度的变化,并且将光敏检测模块的电阻变化转化为电压变化,然后将电压变化的信号送单片机,单片机通过电机驱动模块控制着步进电机的正反转实现窗帘的来回移动。本设计正是把利用AT89C51 单片机的优点以及简单实用性,顺利的完成了对智能控制的要求,并且为智能化的家居设备提供了良好的基础。此外,对该器进行扩展,比如可以加上防火,防盗,甚至室内煤气浓度监测等功能,会使该器更具有实用性,而且也完善了器。
第2章 方案设计
2.1 概述
本次设计主要是综合运用所学知识,设计出家用窗帘自动开关控制器,并在
实践的基本技能方面进行一次系统的训练。能够较全面地巩固和应用“单片机”课程中所学的基本理论和基本方法,并初步掌握小型单片机系统设计的基本方法。该器具有一般的窗帘控制器的最基本的功能,即通过电动按钮来开闭窗帘,在此基本功能的前提下,本设计根据需求还设计了可以根据光照强度和设定时间自动开闭窗帘的功能,在选取设计方案和采用元器件方面,该器本着简单实用经济的思想,尽量简化电路设计,用最简单的电路布线和选用最经济实用的器件来达到设计要求。自动窗帘控制器具有以下几个基本功能:
(1)手动控制:该功能是根据用户的需求通过按键进行窗帘的开关,此功能可以使窗帘的开闭处于任何一种状态;
(2)自动控制:用户可以通过按键一次性开闭窗帘;
(3)光照控制:器可以根据用户设定的光照强度值通过感光器采集光照自动开光窗帘;
(4)时间控制:此功能是根据用户设定的时间一次性开关窗帘。
2.2 系统组成的总体结构
本次课程设计所采用的系统结构图如图所示
图2.2系统组成结构图
根据光照来开闭窗帘主要原理是用光敏电阻采集外界的光强度,从光传感器
采集的信号利用信号校正电路放大,滤波后输入到A/D转换器,由于A/D转换器件的转换需要一定时间,一旦在这段时间内信号发生变化,转换结果将会出现偏差,
所以在转换期间要应该采用采样保持电路。传入的信号由89C51单片机来控制,并且做出响应,以实现电机的正转、反转与停止。显示模块是用来显示自动窗帘控制器的各种状态。键盘作为输入设备,通过不同按键来控制单片机进行各种运转状态。
第3章 硬件设计
3.1 电源电路设计
单片机正常工作电压为5V ,因此设计的电源电路主要是提供单片机工作电压。图3.1(a )是为单片机提供电压的电源电路。在这个电路中采用了三端集成稳压器LM7805,可以输出5V 的直流电压以供给单片机。
图3.1(a )电源电路
三端集成稳压器LM7805,总共有三条引脚,分别是输入端、接地端和输出
端。用LM78\LM79系列三端稳压器来组成稳压电源所需的外围元件极少,电路内部还有过流、过热及调整管的保护电路,使用起来可靠、方便。其内部结构图如图3.1(b )所示。
图3.1(b ) LM7805内部示意图
3.2 系统控制器单片机的选择
自单片机诞生以来的40年中,单片机已有70多个系列,500多个机种,如
今单片机厂商众多,生产的单片机产品性能各异,种类繁多。以Inter(美国英特尔) 公司的MCS-51系列产品为例,其一般可以分为普通型和增强型。他们的结构基本相同,其主要的差别在于存储器的不同,如89C51是以FlashROM
为存储器。
为了符合系统的要求,本课程设计选用89C51作为微机控制核心。其特点如下:面向控制的8位CPU ;一个片内震荡器和时钟产生电路,振荡频率为0~24MHz;片内4kbFlashROM 程序存储器;128B 的片内数据存储器;可寻址64KB 的片外程序存储器和片外数据存储器控制电路;2个16位定时/计数器;4个并行I/O口,共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 光敏电阻的选择与设计
窗帘自动控制器的光控功能是可以根据光照的强弱来自动控制窗帘的开闭
的,因此需要用到光照传感元器件,本设计采用了型号为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的脉冲信号,该步进电机的耗电流为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 A\D转换电路
A/D转换的作用是进行模数转换,把接收到的模拟信号转换成数字信号输出。ADC0809的主要特性有:(1)8路输入通道,8位A/D转换器,即分辨率为8位。(2)具有转换起停控制端。(3)转换时间为100μs(时钟为640kHz 时) ,130μs(时钟为500kHz 时) 。(4)模拟输入电压范围0~+5V ,不需零点和满刻度校准。(5)工作温度范围为-40~+85摄氏度。(6)低功耗,约15mW 。
ADC0809芯片为28引脚的双列直插式封装:
图3.5 A\D转换器引脚图
3.6 键盘的设计
在窗帘控制器设计中的键盘采用的是4×4矩阵键盘。这16个按键分别为:设定键主要是用来设定自动窗帘打开或者关闭的时间;0-9数字键,其作用主要是用于设定时间;复位键主要应用在程序出错以及误操作的时候使单片机复位,从而重新设定;反转键是使步进电机反转,控制窗帘关闭;正转键是使步进电机正转,从而控制窗帘打开;停止键可以控制步进电机停止工作,窗帘控制器停止运行;确定键主要是用于在时间设定完成后的确定输入。
图3.6 键盘接口电路
3.7 显示电路的设计
显示电路主要是用于显示时间。采用LED 数码管进行显示是因为LED 数码管具有以下几个优点:(1)能在低电压、小电流条件下驱动发光,能与CMOS 、ITL 电路兼容。(2)发光响应时间极短(
(3)体积小,重量轻,抗冲击性能好。
本设计采用的是4位LED 数码管的串行驱动电路来达到显示的目的。驱动器采用74LS164,由单片机89C51的P3.0和P3.1来控制LED 数码管的显示。显示电路图如3.7(a )所示。
图3.7(a )显示电路图
74LS164是8 位串行输入,并行输出的移位寄存器。其引脚图如下图3.7(b )所示:
图3.7(b )74SL164引脚图
3.8 时钟电路的设计
DS1302是美国DALLAS 公司推出的一种高性能、低功耗的实时时钟日历芯片,附加31字节静态RAM ,采用SPI 三线接口与CPU 进行同步通信,并可采用突发方式一次传送多个字节的时钟信号和RAM 数据。实时时钟可提供秒、分、时、日、星期、月和年,一个月小于31天时可以自动调整,且具有闰年补偿功能。工作电压宽达2.5~5.5V 。采用双电源供电(主电源和备用电源),可设置备用电源充电方式。需要强调的是,DS1302需要使用32.768KHz 的晶振。
DS1302采用双电源供电,平时由+5V电源供电,当+5V掉电之后,由图中BT1(+3V备用电池)供电。 如图,串行时钟SCLK 接单片机P3.6,时钟数据的I/O接P3.3,E 接P3.2。需要注意X1和X2两端连接的晶振Y1,该晶振频率为32.768KHz 。
C7
图3.11 时钟电路电路图
第4章 软件设计
4.1 A/D转换子程序设计
该流程图首先要发送启动信号到地址选择处,由地址选择字来判断应答信号是否正确,不正确则返回,若正确则继续执行来发送转换控制字,再次判断应答
信号是否正确,如此执行三次,最终读取转换数据,并发送非应答信号,顺序执行发送结束信号,最终返回主程序。
图4.1 A/D转换流程图
4.2 电机驱动程序设计
此流程图首先由电机脉冲分配函数来确定电机是正转还是反转,从而来决定数组是加1还是减1,若大于最大节拍则令节拍为0,否则直接调转到最小节拍;若小于最小节拍则顺序执行到把数据输出到电机接口再执行延时程序,否则直接跳转到延时程序,最后返回,整个程序结束。
图4.2 电机驱动流程图
4.3 时钟电路程序设计
该程序主要实现对DS1302写保护、充电,对年、月、日、时、分、秒等寄存器的读写操作。首先程序初始化,紧接着写入时钟初值,此时时钟开始进入计时阶段,由硬件读出数据并返回,整个程序结束。
图4.3 时钟电路流程图
4.4 系统分析
本系统能实现基本的家用自动窗帘使用。可以实现外界光强时窗帘打开,光弱时是自动关闭。但若综合考虑天气和时间因素,系统还存在一些不足之处。如外界阴天等其他干扰因素会使窗帘不能正常打开。所以还需加入定时系统。当光敏电阻失效时窗帘不能自动开合,所以还需加入红外遥控系统。使人们可以通过遥控器控制窗帘的打开与关闭。通过相关资料我们可以知道电机的工作状态还可通过数码管显示出来,程序的编写很简单,通过不同数字表示相应工作状态。与此同时,还可以通过鸣响提示电路提示电机正在工作,以避免多次按下按钮使单片机进行误操作,造成死机。基于单片机的智能遥控窗帘的设计,在实时性要求较低的测控与采集系统的应用中具有很好的发展前景和应用价值。在国内外,自动调光窗帘成为人们家居生活的首选布置。
第5章 课程设计总结
本次设计器地介绍了自动窗帘控制器的硬件电路设计以及软件设计。在总体方案设计中以光敏电阻作为传送信号的传感器,用步进电机作为信号输出的执行元件,89C51单片机作为主要的控制元器件,并且应用了按键以及和显示电路。应用89C51单片机的优势减少了硬件的复杂性,光敏电阻接收外界光照信号,经过A\D转换后,传送给单片机一个电信号,单片机经过处理后,控制步进电机做出相应的动作,以控制窗帘的开闭。在实现一般应用的基础上,又添加了定时元器件电路,使窗帘的自动化性能得到进一步提升。光敏电阻的良好感光性以及步进电机的结构简单,控制方便的优点使窗帘控制开关更加稳定。
本次毕业设计的整个研究与设计过程包括选题、设计以及完善等。首先,在选题方面查阅了很多与题目有关的资料和课题并且制定设计方案,进行设计的总体规划,然后将这些方案落实到设计环节中。其次,在制定的方案基础上运用所学的知识对硬件以及软件进行设计,并用相关软件进行仿真设计。最后,对设计内容进一步修缮,以求达到最佳设计结果。虽然设计内容完成了基本的功能,但是其中还是存在一定欠缺,比如在设计中没有考虑到窗帘工作方式的显示以及没有添加类似红外遥控的设计等。
此次设计过程中,在完成设计任务之外也让我器性地认识和全面地掌握了单片机相关技术,从本次毕业设计中我更加深刻地认识到理念来源于实际的含义。在和同学以及老师的就相关问题的互相讨论交流中,我认识到自己的很多不足,但在这些不足中我又学到了很多知识,使我的综合应用能力有了很大提高。
参考文献
[1] 何希才,薛永毅. 传感器及其应用实例[M ].北京:机械工业出版社,2004.2 [2] 瞿贵荣. 电动窗帘红外遥控电路[J ].家庭电子,2005(2):2-3. [3] 郭成林. 智能遥控窗帘系统设计[J ].山西电子技术,2006(6):32-33. [4] 胡汉才. 单片机原理及其接口技术[M ].北京:清华大学出版社,1996.1
[5] 吴爱萍,黄振兴. 基于AT89S52的智能窗帘群控系统[J ].科技资讯,2007,8 [6] 梅丽凤,王艳秋. 单片机原理及接口技术. 清华大学出版社,2011.12 [7] 陈伯时,阮毅. 电力拖动自动控制系统. 机械工业出版社,2012.1 [8] 中国工控网网页, http://www.gongkong.com/
[9] 童诗白,华成英. 模拟电子技术基础[M].高等教育出版社,2003. [10] 胡汉才,单片机原理及接口技术[J].北京:清华大学出版社,2004. [11] 江思敏,胡荣.Protel 电路设计教程[J].北京:清华大学出版社,2002. [12] 李全利,迟荣强. 单片机原理及接口技术[J].北京:高等教育出版社,2001. [13] 程学先,林珊,程传慧. 汇编语言程序设计[J].北京:机械工业出版社,2005.
附录
(1)A/D转换程序如下: ORG 00H LJMP START ORG 0BH LJMP T0X ORG 30H
START: MOV CH,#0BCH MOV DPCNT,#00H MOV R1,#DPCNT MOV R7,#5 MOV A,#10 MOV R0,#DPBUF LOP: MOV @R0,A INC R0 DJNZ R7,LOP MOV @R0,#00H INC R0 MOV @R0,#00H INC R0 MOV @R0,#00H MOV TMOD,#01H
MOV TH0,#(65536-4000)/256 MOV TL0,#(65536-4000) MOD 256 SETB TR0 SETB ET0 SETB EA WT: CLR ST SETB ST CLR ST
WAIT: JNB EOC,WAIT SETB OE MOV GDATA,P0
CLR OE MOV A,GDATA MOV B,#100 DIV AB MOV 33H,A MOV A,B MOV B,#10 DIV AB MOV 34H,A MOV 35H,B SJMP WT T0X: NOP
MOV TH0,#(65536-4000)/256 MOV TL0,#(65536-4000) MOD 256 MOV DPTR,#DPCD MOV A,DPCNT ADD A,#DPBUF MOV R0,A MOV A,@R0 MOVC A,@A+DPTR MOV P1,A MOV DPTR,#DPBT MOV A,DPCNT MOVC A,@A+DPTR MOV P2,A INC DPCNT MOV A,DPCNT CJNE A,#8,NEXT MOV DPCNT,#00H NEXT: RETI
DPCD: DB 3FH,06H,5BH,4FH,66H DB 6DH,7DH,07H,7FH,6FH,00H DPBT: DB 0FEH,0FDH,0FBH,0F7H DB 0EFH,0DFH,0BFH,07FH END
(2)电机驱动程序如下:
JMP START
ORG 0100H
START:MOV BUFF_STEP,#00H
MOV P0,#0fFh
MOV P1,#0ffh
MOV P3,#0ffh
MOV P2,#0ffH
MOV A,#00H
MOV PSW,#00H
MOV IE,#00H
MOV SP,#30H
MAIN: JNB SW1,CCW_LP
MOV DPTR,#TAB_CW
JMP LOOP
CCW_LP:MOV DPTR,#TAB_CCW
LOOP: MOV A,BUFF_STEP
MOVC A,@A+DPTR
MOV P1,A
INC BUFF_STEP
MOV A,BUFF_STEP
CJNE A,#04H,MAIN
MOV BUFF_STEP,#00H
JMP MAIN
DEL: MOV R6,#10
DEL0: MOV R7,#200
DJNZ R7,$
DJNZ R6,DEL0
TAB_CW: DB 11110001B,11101001B,11100101B,11100011B TAB_CCW: DB 11110001B,11100011B,11100101B,11101001B END
(3)时钟电路程序如下:
ORG 0000H
LJMP START
ORG 0060H
START: ;CLR T_RST
;CLR T_CLK
MOV SP,#60H
MOV SECOND,#00H
MOV MINUTE,#00H
MOV HOUR,#12H
MOV DAY,#01H
MOV MONTH,#01H
MOV WEEK,#01H
MOV YEARL,#08H
MOV A,HOUR
ANL A,#0FH
MOVC A,@A+DPTR
MOV P2,A
MOV P1,#11111101b
LCALL DIS_DELAY
MOV A,HOUR
SWAP A
ANL A,#03H
MOVC A,@A+DPTR
MOV P2,A
MOV P1,#11111110b
LCALL DIS_DELAY
RET
DIS_DELAY:
PUSH PSW
MOV R7,#10
D1: MOV R6,#248
D2: DJNZ R6,$
DJNZ R7,D1
POP PSW
RET
SETDS1302:
CLR T_RST
NOP
CLR T_CLK
NOP
SETB T_RST
NOP
MOV B,#8EH
LCALL INPUTBYTE
MOV B,#00H
LCALL INPUTBYTE
SETB T_CLK
NOP
CLR T_RST
MOV R0,#SECOND
MOV R1,#80H
MOV R7,#7
SETLOOP:
CLR T_RST
NOP
MOV B,R1
LCALL INPUTBYTE
LCALL OUTPUTBYTE
MOV @R0,A 、
INC R0
INC R1
INC R1
SETB T_CLK
NOP
CLR T_RST
NOP
DJNZ R7,GETLOOP
INPUTBYTE:
MOV R4,#8
INPUTLOOP:
MOV A,B
RRC A
MOV B,A
MOV T_IO,C
SETB T_CLK
NOP
NOP
NOP
CLR T_CLK
DJNZ R4,INPUTLOOP
RET
CLR A
CLR C
MOV R4,#8
OUTPUTLOOP:
NOP
NOP
MOV C,T_IO
RRC A
SETB T_CLK
NOP
NOP
NOP
CLR T_CLK
DJNZ R4,OUTPUTLOOP
RET
END