找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 22053|回复: 1
收起左侧

单片机自动窗帘控制系统设计文档

[复制链接]
ID:338490 发表于 2018-5-26 02:04 | 显示全部楼层 |阅读模式
项目  自动窗帘控制系统

摘 要

自动控制属于电子及信息科学的一个重要分支,并且在现代家居中有着较好的目前发展前景。目前,家庭居住环境的采光及避光问题主要采用的是手动开闭窗帘,手动开闭不仅费力而且很多方面不够人性化,可能对用户造成一定的困扰,窗帘控制系统可以解决这些问题。本文综述了自动窗帘控制系统的设计与制作过程,介绍了设计制作一个完整的窗帘控制系统需要做的理论分析以及其制作过程。自动窗帘控制系统核心采用的是单片机AT89S52,其次利用了光照传感器、键盘显示接口电路以及信号调理电路等外围电路,整个系统在各模块的配合下可实现半自动控制、自动控制、定时控制等功能。该设计在理论层面上,用程序语言驱动各模块工作,实现系统的内在联系,在应用层面上则采用Protel软件进行原理图设计。

自动窗帘控制系统的构成主要由光照传感电路、系统主控模块电路、电源转换电路、电机控制电路、键盘以及显示电路等组成,重点讨论了窗帘自动控制系统的设计过程、硬件选用和软件调试等问题,通过本系统可实现利用光照强度以及设置时间来控制窗帘自动开闭。



目录

前  言              1

第1章 绪论              2

1.1 课题研究背景及意义              2

1.2 基本内容安排              2

1.3 设计思想及基本功能              3

第2章 总体电路设计及其原理说明              4

2.1 方案选取              4

2.2 系统总体结构设计              5

    2.2.1系统基本功能              5

    2.2.2系统总体结构设计              6

第3章 硬件分析与设计              7

3.1电源电路设计              7

3.2 89C52单片机及相关电路              8

3.2.189C52单片机概述              8

3.2.2晶振电路              8

3.2.3复位电路              9

3.2.4时钟电路              10

3.2.5键盘电路              12

3.2.6 显示电路              13

3.2.7 A\D转换电路              15

3.2.8光敏传感器              17

3.2.9 步进电机              18

3.2.10信号校正电路              19

第4章 程序分析与设计              21

4.1 主程序设计              21

4.2 主要子程序设计              22

    4.2.1 键盘程序设计              22

    4.2.2定时程序设计              24

4.2.3步进电机程序设计              25

总结              26

致谢              27

参考文献              28

附录一              29

附录二              30

1



前  

伴随着信息化时代的到来,人们的生活速度以及对生活质量的追求也在大幅提高。电子产品智能化速度的加快,也使人们的工作、生活和通讯的关系日益紧密。智能化的产品设计在改变人们工作方式与生活习惯的同时,让人们对生活质量的提升提出了更高的要求,方便、舒适成了人们所追求的生活方式,在现代家庭生活环境中,居家环境早已不仅仅局限在物理空间上,人们更为关注的是一个安全、方便、舒适的环境。智能化的电子产品以及设计将以前的被动静止物体转变为人们能够方便操控的工具,这些产品具有提供全方位的信息交换的功能,不仅能够优化人们的生活方式,帮助人们合理的安排时间,增强居家环境的安全性,甚至还可以为各种能源费用节约资金。

在智能化产品中,单片机的应用已经越来越广泛,单片机以它体积小、质量轻、耗电省、可靠性高、价格低等优点,开始不断发展,并广泛应用于仪器仪表、家用电器、医疗设备、航天航空领域、工业专用设备的管理及过程控制等领域,在很多的大中型的电气设备以及小型的电子产品中也用到了单片机进行控制。

针对人们对智能化的需求以及对舒适生活的追求,窗帘自动控制系统改变了传统窗帘的劣势,它可以根据外界光照强度的不同而自动开闭窗帘,也可以根据人们设定的时间来控制窗帘。该系统利用光敏电阻检测光照强度的变化,并且将光敏检测模块的电阻变化转化为电压变化,然后将电压变化的信号送单片机,单片机通过电机驱动模块控制着步进电机的正反转实现窗帘的来回移动。本设计正是把利用AT89C52 单片机的优点以及简单实用性,顺利的完成了对智能控制的要求,并且为智能化的家居设备提供了良好的基础。此外,对该系统进行扩展,比如可以加上防火,防盗,甚至室内煤气浓度监测等功能,会使该系统更具有实用性,而且也完善了系统。


第1章 绪论
1.1 课题研究背景及意义

21世纪是信息化的时代,知识与科技成为时代的潮流,在它们的推动下,智能化也因此得到了很大的发展,其作用在社会生活中日益得到彰显。智能控制系统主要利用计算机技术、网络通信技术、综合布线技术等现代化技术的有机结合而发挥作用。在通信技术、计算机技术、网络技术、智能控制技术的迅猛发展潮流下,家庭生活实现了现代化与智能化,居家环境也变得更加舒适与安全。智能化控制的工作原理自然离不开运算和控制单元,而该系统采用的主控器件AT89C52,正是运算与控制单元的集合体。系统的整体主要由硬件和软件两部分组成。硬件部分由单片机扩展的外围电路以及各种实现单片机系统控制功能的接口电路组成;软件部分主要由单片机系统实现其特定控制功能的各种程序组成。本设计中介绍了自动窗帘控制系统的硬件构成以及软件设计过程,以尽最大可能满足不同人对窗帘开闭的不同需求。同时,系统在针对人们一般需求的设计开发外,还提出多种解决方案,在考虑到经济性和简便性的前提下,可以供日后对控制系统的功能进行扩展。

1.2 基本内容安排

该设计通过分析电动窗帘的现状和人们对自动窗帘控制系统的功能的需求,从而对自动窗帘控制器进行总体的设计。系统的总体设计采用以步进电机作为单片机控制元件,执行窗帘开闭的主要任务;以光敏电阻作为检测元件,以提供单片机外界光照的变化;89C52单片机作为主控制芯片,控制着整个系统的运行,此外,辅助以键盘和显示电路,在各个电路模块的配合下最终实现了自动窗帘控制系统的智能化要求。

自动窗帘控制系统设计过程主要分为一下几个章节:

(1)绪论:介绍目前国内外电动窗帘的发展现状和研究的目的和意义。

(2)总体设计方案:概括自动窗帘控制系统的的总体设计方案选取以及硬件设计的总况。

(3)硬件设计:采用89C52单片机作为控制核心,并且辅助以外围电路,其中包括电源电路,定时电路,步进电机控制电路,键盘/显示电路等一系列相关电路。

(4)软件设计:介绍各个功能模块的的设计流程以及设计思路。

(5)总结:针对设计中的不足进行再思考以及提出自动窗帘控制系统功能的扩展。


1.3  设计思想及基本功能

该系统具有一般的窗帘控制系统的最基本的功能,即通过电动按钮来开闭窗帘,在此基本功能的前提下,本设计根据需求还设计了可以根据光照强度和设定时间自动开闭窗帘的功能,在选取设计方案和采用元器件方面,该系统本着简单实用经济的思想,尽量简化电路设计,用最简单的电路布线和选用最经济实用的器件来达到设计要求。

自动窗帘控制系统具有以下几个基本功能:

(1)手动控制:该功能是根据用户的需求通过按键进行窗帘的开关,此功能可以使窗帘的开闭处于任何一种状态;

(2)光照自动控制:系统可以根据用户设定的光照强度值通过感光器采集光照自动开光窗帘;

(3)时间控制:此功能是根据用户设定的时间一次性开关窗帘,并显示当前温度。


(4)温度报警系统:可以自行设置温度报警温度。

(5)时间显示及闹钟系统:可以自行设置闹钟时间。

(6)手动自动控制按键随时切换。


第2章 总体电路设计及其原理说明

2.1 方案选取

    单片机在各种电子产品中的应用已经越来越广泛,很多的电子产品利用单片机所取得的便利性得到了人们的好评,针对单片机控制的自动窗帘控制系统的智能化要求,实现其自动控制的方案有两种:

    方案(一)基于温度检测以及声控检测器件的自动控制

    方案(二)基于光照强度器件的自动控制

    这二个方案都是基于单片机控制的,采用步进电机控制以及液晶显示,不同的设计部分在于检测器件的选取上。

方案(一)的系统框图如图2.1:





             图2.1   方案(一)的原理框图


方案(二)的系统框图如图2.2。

                      图2.2   方案(二)的原理框图

    方案(一)与方案(二)的区别主要在于检测器件的应用,方案(一)采用温度采集和声音检测元件,通过设定的温度来控制窗帘的开闭,以减少光照对室内的温度影响,利用声音控制虽然方便性有所提高,但是其误差较大。方案(二)采用的时钟模块实用性更强。综合考虑以上因素,系统设计采用方案(二)。

2.2总体方案设计

自动窗帘控制系统总体方案设计是基于满足设计要求的前提并且根据理论上的可实现性和硬件上的经济实用性,而进行设计的重要环节。本章从人们对系统功能需求出发,在综合考虑各种因素的情况下,设计出自动控制系统的总体构架,并且在基本功能需求的基础上尽可能考虑系统的可扩展性。

2.2.1系统基本功能

随着人民生活水平的不断提高,人们对家庭生活舒适性的需求越来越强烈,窗帘作为每个家庭生活中最必须的家居用品之一,自然也需要满足人民更舒适性的需求。窗帘最基本的作用无非是保护业主的个人隐私以及遮阳挡尘等功能,但传统的窗帘您必须手动去开关,每天早开晚关也是挺麻烦的,特别是别墅或复式房的大窗帘,比较长,而且重,用时需要很大的力才能开关窗帘,特别不方便;于是电动窗帘应运而生。现有的电动窗帘都可以自动开关闭窗帘,到了时间自动控制窗帘的开关,可以根据光的但是他们也有些缺点。窗帘控制器的自动开关如何让窗帘能够开关自如,停机的时间是否到位。

电动窗帘主要有以下几大功能:(1)手动控制:该功能使电动窗帘具有手动正传、手动反转 和手动停止的功能。而且增加了工作状态指示,电机工作在正传、反转和停止状态的时候,发光二极管管均有不同工作状态指示。(2)自动控制:根据光照强弱来控制窗帘的打开与关闭。(3)时间控制 “天黑关闭,天亮打开”具有智能管理,不产生误动作。窗帘的正转、反转和停止功能可由单片机输出电平来控制步进电机的运转以实现。环境亮度的控制通过光敏电阻和运放组成的电路来控制单片机输出电平继而控制电机的正转和反转。时间自动控制可以由定时器来控制


2.2.2系统总体结构设计

自动窗帘控制系统设计的总体框图如图2.3所示。

图2.3  电动窗帘控制器结构框图

根据光照来开闭窗帘主要原理是用光敏电阻采集外界的光强度,从光传感器采集的信号利用信号校正电路放大,滤波后输入单片机。传入的信号由89C52单片机来控制,并且做出响应,以实现电机的正转、反转与停止。显示模块是用来显示自动窗帘控制器的各种状态。键盘作为输入设备,通过不同按键来控制单片机进行各种运转状态。


第3章 硬件分析与设计3.1 AT89S52单片机及相关电路3.1.1 AT89S52单片机概述

AT89S52的塑封图如图3.1所示,它为DIP40双列直插塑料封装。AT89S52作

为系统的核心控制元件,只有它能正常工作后才能使其它的元件进入正常工作状态。因此,下面对AT89S52进行必要的说明,AT89S52的管脚如图3.2所示。

图3.1  AT89C52封装图                      图3.2  AT89s52引脚图

单片机电路在本系统中作为主控芯片首先对外部电路采集到的温度信号进行反应,发PWM信号给L297,然后通过L298驱动步进电机。同时按键扫描实现手动自动控制。

用DS1302时钟芯片,DS18B20温度传感器,以及1602液晶,实现时间、温度的显示。以及闹钟、温度报警等功能。

(1)VCC:40脚,供电电压,一般接+5V电压。

(2)GND:20脚,接工作地。

(3)P0口:1~8脚,P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。

当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上电阻。但是P0口在程序校验作为输出指令字节时,需要外部加上拉电阻,一般上拉电阻选4.7K~10K为宜。本设计中用5.1K的排阻对P0口进行上拉电平。

(4)P1口:32~39脚,P1口是一个内部具有上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4个TTL门电流。P1端口写入“1”后,被内部上拉电阻把端口拉高,此时可以作为作输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流。

(5)P2口:20~27脚,P2 口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动4 个TTL 逻辑电平。对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。

(6)P3口:10~17脚,P3 口是一个具有内部上拉电阻的8 位双向I/O 口,P3 输出缓冲器能驱动4 个TTL 逻辑电平。对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。

(7)RESET:9脚,复位输入端。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

(8):30脚,当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于系统校验。

(9)PSEN:29脚,外部程序存储器的选通信号。

(10):31脚,访问外部程序存储器控制信号。当为低电平时,读取外部程序存储器;当端为高电平时,则读取内部程序存储器,设计中一般接高电平。

(11)XTAL1:19脚,振荡器反相放大器和内部时钟发生电路的输入端。如采用外部时钟源时,XTAL1为输入端。

(12)XTAL2:18脚,振荡器反相放大器的输出端。如采用外部时钟源时,XTAL2应悬空不接。

3.2.2晶振电路

电路中的晶振即石英晶体震荡器。由于石英晶体震荡器具有非常好的频率稳定性和抗外界干扰的能力,所以,石英晶体震荡器是用来产生基准频率的。通过基准频率来控制电路中的频率的准确性。同时,它还可以产生振荡电流,向单片机发出时钟信号。

图3.3是单片机的晶振电路。片内电路与片外器件就构成一个时钟产生电路,CPU的所有操作均在时钟脉冲同步下进行。片内振荡器的振荡频率非常接近晶振频率,一般多在1.2MHz~24MHz之间选取。C1、C2是反馈电容,其值在20pF~100pF之间选取,典型值为30pF。本电路选用的电容为30pF,晶振频率为12MHz。

振荡周期=

                      机器周期

                      指令周期T=

XTAL1接外部晶体的一个引脚,XTAL2接外晶体的另一端。在单片机内部,接至上述振荡器的反相放大器的输出端。采用外部振荡器时,对HMOS单片机,该引脚接外部振。在石英晶体的两个管脚加交变电场时,它将会产生一定频率的机械变形,而这种机械振动又会产生交变电场,上述物理现象称为压电效应。一般情况下,无论是机械振动的振幅,还是交变电场的振幅都非常小。但是,当交变电场的频率为某一特定值时,振幅骤然增大,产生共振,称之为压电振荡。这一特定频率就是石英晶体的固有频率,也称谐振频率。石英晶振起振后要能在XTAL2线上输出一个3V左右的正弦波,以便使MCS-51片内的OSC电路按石英晶振相同频率自激振荡。通常,OSC的输出时钟频率fOSC为0.5MHz-16MHz,典型值为12MHz或者11.0592MHz。电容C1和C2可以帮助起振,典型值为30pF,调节它们可以达到微调fOSC的目的。

图3.3  单片机晶振电路图

3.2.3复位电路

复位电路的主要功能是使单片机进行初始化,在初始化的过程中需要在复位引脚RST上加大于2个机器周期的高电平。复位后的单片机地址初始化为0000H,然后继续从0000H单元开始执行程序。在复位电路中提供复位信号,等到系统电源稳定后,再撤销复位信号。但是为了在复位按键稳定的前提下,电源稳定后还要经一定的延时才撤销复位信号,以防在按键过程中引起的抖动而影响复位。图3.4所示的RST 复位电路可以实现上述基本功能。

图3.4  复位电路图

3.2.4时钟电路

DS1302芯片的接口电路如图3.5所示。

                         图3.5  时钟电路图

本设计使用的实时时钟电路芯片是美国DALLAS公司生产的一种高性能、低功耗、带RAM的实时时钟电路芯片DS1302,时钟芯片在本系统中除了起到时间的显示外,还在时间控制中起到重要作用,所以是必不可少的。

其引脚如图3.14所示。VCC1为后备电源,VCC2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由VCC1或VCC2两者中的较大者供电;当VCC2大于VCC1+0.2V时,VCC2给DS1302供电;当VCC2小于VCC1时,DS1302由VCC1供电。X1和X2是振荡源,外接32.768kHz晶振。是复位/片选线,通过把输 入驱动置高电平来启动所有的数据传送。                       

3.14 DS1302引脚图

输入有两种功能。首先,接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,提供终止单字节或多字节数据的传送手段。当为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时在Vcc≥2.5V之前,必须保持低电平。只有在SCLK为低电平时,才能将置为高电平。I/O为串行数据输入输出端(双向),SCLK始终是输入端。本设计入端。本设计连接图如图3.15所示,其中C1和C2起微调晶振的作用。

3.2.5温度检测器模块
温度是一种最基本的环境参数,人民的生活与环境的温度息息相关,DS18B20装置适用于人民的日常生活和工、农业生产用于温度测量。由半导体公司生产的DS18B20型单线智能温度传感器,属于新一代适配微处理器的智能温度传感器,可广泛用于工业、民用、军事等领域的温度测量及控制仪器、测控系统和大型设备中。它具有体积小,接口方便,传输距离远等特点。

本系统中,DS18B20作为温度传感器,在本系统中可以实时的采集环境温度,并在液晶屏进行显示。当温度超过设定的上限时,进行温度报警。
DS18B20的性能特点:①采用单总线专用技术,既可通过串行口线,也可通过其它I/O口线与微机接口,无须经过其它变换电路,直接输出被测温度值(9位二进制数,含符号位),②测温范围为-55℃-+125℃,测量分辨率为0.0625℃,③内含64位经过激光修正的只读存储器ROM,④适配各种单片机或系统机,⑤用户可分别设定各路温度的上、下限,⑥内含寄生电源。
DS18B20内部结构主要由4部分组成:64位光刻ROM,温度传感器,非挥发的温度报警触发器TH和TL,配制寄存器。DS18B20的管脚排列如图2所示。
光刻ROM中的64位序列号是出厂前被光刻好的,他可以看作是该DS18B20的地址序列码。64位光刻ROM的排列是:开始8位(28h)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=x8+x5+x4+1)。光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。

采用数字温度传感器DS18B20,与传统的热敏电阻相比, 他能够直接读出被测温度并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。可以分别在93.75ms和750ms内完成9位和12位的数字量, 并且从DS18B20读出的信息或写入DS18B20的信息仅需要一根口线( 单线接口) 读写, 温度变换功率来源于数据总线, 总线本身也可以向所挂接的DS18B20供电, 而无需额外电源。因而使用DS18B20可使系统结构更趋简单,可靠性更高,成本更低。测量温度范围为~55℃~+125℃。C,在一10℃~+85℃。C范围内,精度为±0.5℃。DS1822的精度较差为±2℃。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。其引脚分布如图2-4所示

图2-4 DS18B20引脚图

引脚功能如下:

NC(1 、2 、6 、7 、8脚) :空引脚,悬空不使用。

VDD(3脚):可选电源脚,电源电压范围3~5.5V。

DQ(4脚):数据输入/输出脚,漏极开路,常态下高电平。


                                                                3.2.5键盘电路

键盘在单片机应用系统中能实现向单片机输入数据,传送命令等功能,是人工干预单片机的主要手段。本设计中的键盘采用独立键盘式。SW1为调整时间以及温度、闹钟的进入、退出按键。SW2为选择调整时间、调整闹钟、调整温度报警上限。SW3为 加1键。SW4为 减1 键。SW5为窗帘自动、手动控制切换。SW6为手动控制时打开与关闭的控制。

如图3.6所示。


                         图3.6 键盘接口电路

获取键盘信息的方法有2种,我们经常用到的是扫描法。在扫描法中,所有的行线固定为输出端口,并依次输出低电平;所有列线固定为输入端口,用来检测按键状态。当全部按键均松开时,从列线上检测不到行线输出的低电平。当某个按键按下时,只有在对应的行线输出低电平时才能在对应的列线端口检测到低电平。按键的触点在闭合和断开时均会产生抖动,这时触点的逻辑电平是不稳定的,如果不妥善处理,将会引起按键命令的错误执行或重复执行。一般消除抖动采用软件方法来解决,将在软件部分介绍这点。



3.2.6 显示电路

液晶显示器以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,在各种小系统中得到了更广泛的应用。本设计中使用的液晶显示模块是LCD1602。图3.3所示为本设计LCD1602的连接图。

                      图3.3 LCD1602连接图

LCD1602是一种用5x7点阵图形来显示字符的液晶显示器模块,它显示的容量为2行16个字。其实物如图3.4和图3.5所示,它的显示内容丰富、体积小、美观和易于控制都是本设计选择作为显示模块的原因。其引脚结构图如图3.6所示。

图3.4 LCD1602正面图

图3.5  LCD1602反面图

图3.6  LCD1602引脚结构图


3.2.7光敏传感器

窗帘自动控制系统的光控功能是可以根据光照的强弱来自动控制窗帘的开闭的,因此需要用到光照传感元器件,在本设计中采用了光敏电阻。

光敏电阻又称光导管,常用的制作材料为硫化镉,另外还有硒、硫化铝、硫化铅和硫化铋等材料。这些制作材料具有在特定波长的光照射下,其阻值迅速减小的特性。这是由于光照产生的载流子都参与导电,在外加电场的作用下作漂移运动,电子奔向电源的正极,空穴奔向电源的负极,从而使光敏电阻器的阻值迅速下降。光敏电阻属半导体光敏器件,除具灵敏度高,反应速度快,光谱特性及r值一致性好等特点外,在高温,多湿的恶劣环境下,还能保持高度的稳定性和可靠性,可广泛应用于照相机,太阳能庭院灯,草坪灯,验钞机,石英钟,音乐杯,礼品盒,迷你小夜灯,光声控开关,路灯自动开关以及各种光控玩具,光控灯饰,灯具等光自动开关控制领域。

应用光控原理工作,天亮窗帘自动打开,天黑窗帘自动关闭。由运放组成比较电路,同向输入端有两个电阻分压得到一个电压值,作为基准电压进行比较,而反相输入端用一个光敏电阻对外部环境的光线进行采集,利用光敏电阻暗时电阻大,亮时电阻小的特点,来确定反向输入端的电压值。再两者进行比较,比较后的信号再送入单片机AT89S52的P1^3口,从而通过单片机来控制电机的正反转。来实现天亮窗帘自动打开,天黑窗帘自动关闭这一自动控制功能。

光敏电阻连接如图3.11所示。

                       3.11 光敏传感器3.2.9 步进电机

步进电动机是一种将电脉冲信号转换成角位移或线位移的机电元件。步进电动机的输入量是脉冲序列,输出量则为相应的增量位移或步进运动。正常运动情况下,它每转一周具有固定的步数;做连续步进运动时,其旋转转速与输入脉冲的频率保持严格的对应关系,不受电压波动和负载变化的影响。下图为步进电机运行原理框图。



     在步进电机控制电路中,步进控制器的作用是把输入脉冲转换成环型脉冲,以控制步进电机的转向。在实际应用中由软件代替步进控制器,其优点是使线路简化,降低成本,可靠性提高。在窗帘控制系统中选用了型号为130HZ308-450的三相反应式步进电机,其优点是力矩大,精度高,其步进角度是1.2°。步进电机电路与单片机的连接如图3.12。


                     图3.12  步进电机电路与单片机的连接


第4章 程序分析与设计

系统软件设计主要有几部分组成,其中包括显示子程序,按键子程序,定时时钟程序,步进电机控制程序等。本章介绍了自动窗帘控制系统的主程序以及各主要部分功能程序的设计过程,程序代码详见附录。

4.1 主程序设计

主程序构成无限循环,主要完成单片机初始化,关中断,菜单显示内容初始化,按键扫描,电机运行,计时等功能。

主程序的流程图如图4.1所示。

图4.1  主程序流程图

启动主程序,先关中断并且设置堆栈,接着初始化寄存器,初始化显示内容;然后执行按键查询,执行相应的操作。如果是设定键,则设定时间,开始计时;到时间后步进电机开始相应的工作,工作完成后停机。如果是电机控制键,则也执行相应的工作。如果都不是,则是复位键,采取复位操作。

4.2 主要功能子程序设计4.2.1 步进电机程序设计

步进电机程序设计的主要任务是:

★ 判断旋转方向;

★ 按顺序传送控制脉冲;

★ 判断所要求的控制步数是否传送完毕。


图4.2.1 步进电机工作流程图

4.2.2显示程序

显示程序开始后,起始地址60H发送到R0,01H发送至显示位代码R2,再将位代码发送到单片机A口,,单片机取显示数据查表转换成显示代码发送至单片机B口,延时2ms,指针R0加1,然后判断6显示是否完成。如果完成则返回,没完成则位代码R2左移一位,继续显示查表,一直到6位显示完成后返回。

显示子程序流程图如图4.2.2所示。

图4.2.2 显示部分流程图

4.2.3 键盘程序设计

按键的触点在闭合和断开时均会产生抖动,这时触点的逻辑电平是不稳定的,如不妥善处理,将会引起按键命令的错误执行或者重复执行。现在用软件延时的方法来避开抖动阶段。在判断是否有键闭合后都延时5ms,按下键后再延时12ms就可以避免键盘的抖动。然后键码分析,执行相应的模块,显示后返回。

键盘子程序如图4.2.3所示。

图4.2.3  键盘程序流程图

4.2.4 定时程序设计

定时的主要功能是在设定时间单片机能够得到中断信号,从而控制窗帘的开关。时钟发出50ms的信号给单片机,计数器计数,当计数到20,则过了1秒,秒单元数值加1,当秒单元到达60,分单元数值加1,秒单元清零。当时单元到达24,时单元清零。标志1天时间计满,把他们的值放到存储单元的指定单元。图4.2.4是定时功能流程图。

图4.2.4  定时功能流程

4.2.6 DS18B20测温流程图

DS18B20的测温原理如图2-5所示,图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在-55℃所对应的一个基数值。计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2 计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。DS18B20在正常使用时的测温分辨率为0.5℃,如果要更高的精度,则在对DS18B20测温原理进行详细分析的基础上,采取直接读取DS18B20内部暂存寄存器的方法,将DS18B20的测温分辨率提高到0.1~0.01℃。

图2-5 测温流程图


总结

    本次设计系统地介绍了自动窗帘控制系统的硬件电路设计以及软件设计。在总体方案设计中以光敏电阻作为传送信号的传感器,用步进电机作为信号输出的执行元件,89C52单片机作为主要的控制元器件,并且应用了按键以及和显示电路。应用89C52单片机的优势减少了硬件的复杂性,光敏电阻接收外界光照信号,经过A\D转换后,传送给单片机一个电信号,单片机经过处理后,控制步进电机做出相应的动作,以控制窗帘的开闭。在实现一般应用的基础上,又添加了定时元器件电路,使窗帘的自动化性能得到进一步提升。光敏电阻的良好感光性以及步进电机的结构简单,控制方便的优点使窗帘控制开关更加稳定。

本次设计的整个研究与设计过程包括选题、设计以及完善等。首先,在选题方面查阅了很多与项目有关的资料和课题并且制定设计方案,进行设计的总体规划,然后将这些方案落实到设计环节中。其次,在制定的方案基础上运用所学的知识对硬件以及软件进行设计,并用相关软件进行仿真设计。最后,对设计内容进一步修缮,以求达到最佳设计结果。虽然设计内容完成了基本的功能,但是其中还是存在一定欠缺,比如在设计中没有考虑到窗帘工作方式的显示以及没有添加类似红外遥控的设计等。

    此次设计过程中,在完成设计任务之外也让我系统性地认识和全面地掌握了单片机相关技术,从本次设计中我更加深刻地认识到理念来源于实际的含义。在和同学以及老师的就相关问题的互相讨论交流中,我认识到自己的很多不足,但在这些不足中我又学到了很多知识,使我的综合应用能力有了很大提高。



                      致 谢

经过这么长时间的忙碌,设计和文档已经接近尾声。在设计的过程中,由于经验的缺乏以及知识的局限性,难免有许多考虑不周全的地方,在选题,设计等方面,如果没有导师的督促指导,没有同学们的支持和帮助,单独完成这个设计,其中还是有一定难度的。在文档完稿之际,我想借此机会对在完成设计期间关心、帮助、支持和鼓励过我的老师、同学以及朋友们致以最诚挚的谢意和最衷心的祝福!

首先我要感谢的是我的导师老师,在完成整个设计的过程中,老师给我提供了很大的帮助,在选题、设计以及修改文档的各个环节里老师给我指出了很多错误,提出了很多宝贵意见,对于设计中存在的问题也是耐心的回答和指导,让我能够顺利的完成设计。在此谨向老师致以诚挚的谢意和崇高的敬意。

其次要感谢的是所有在大学四年中教育指导过我的所有老师,你们传授给我的专业知识是我完成本设计的基础,也是日后踏入工作岗位的重要基石,对于老师们一丝不苟,兢兢业业的精神表示衷心的感谢。

最后我还要向所有关心和支持我学习的朋友和同学们表示真挚的谢意!感谢你们对我的关心、关注和支持。





附录一:系统原理图(截图过来不知道为什么很不清晰,大家重新用AD画一下吧)

附录二:程序(见附件)


以上图文的Word格式文档下载(内容和本网页上的一模一样,方便大家保存):
基于单片机的自动窗帘控制系统.doc (1.2 MB, 下载次数: 98)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:290266 发表于 2019-2-28 03:24 | 显示全部楼层
楼主的原理图看不清大家去看学习一下我发的这个吧
(烟雾+灯控)的智能窗户程序+仿真+实物图详见:http://www.51hei.com/bbs/dpj-151689-1.html
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表