当前位置:文档之家› 基于51单片机的智能窗帘控制系统设计与实现

基于51单片机的智能窗帘控制系统设计与实现

项目编号___201111 ___ 江南大学物联网工程学院
大学生创新训练计划结题报告
项目名称基于51单片机的智能窗帘控制系统设计与实现项目负责人晶
所学专业电气工程及其自动化
所在学院物联网工程学院
(手机)
电子信箱diamond-heartqq.
项目起止年月2011/11-2012/05
第一指导教师肖永松
专业技术职务工程师
(手机)
电子信箱
结题日期2012年5月
江南大学物联网工程学院创新训练计划项目结题验收表学院名称:物联网工程学院填写日期:2012 年5 月
大学生创新训练计划
《基于AT89C51单片机的智能窗帘控制系统》成果精粹
江南大学
二○一二年五月
简介
随着物联网概念的发展,智能家居的理念也渐渐渗透到我们的生活中,受此启发,我们想尝试着做一个智能窗帘的控制系统,希望可以通过光强和时间来控制窗帘的开合。

恰好我们都进行了电路、模电数电的学习,也曾初步接触了单片机,我们想通过设计这个控制系统来加深我们对所学容的理解和掌握,更加熟悉使用protel等专业软件。

计划设计一个系统可以实现以下功能:
在自动模式下,在设定的时间,如早成6点至晚上8点,晚上8点至早晨6点,时间控制,可以避免室开灯造成窗帘自动拉开。

通过光强控制,在设定光照强度围,窗帘拉开,超过设定强度,如夏日中午,为避免房间被光直射造成温度过高,窗帘关闭。

在手动模式下,通过按键来调整窗帘的开合状态。

最终设计使用STC89C51单片机,STC89C51有512字节的数据存储空间,是AT89C51的两倍,并且带有4K字节的EEPROM存储空间,可以断电后保存资料,可以直接使用串口下载,而AT89C51需要专用下载器。

控制系统可以实现对光信号的采集、转换、传输,并根据单片机接收到的信号,结合时钟电路的信号,对步进电机进行控制,通过控制步进电机转向及转动圈数,来实现对窗帘的打开及拉合控制。

设计时对硬件进行了模块化分析,以STC89C51作为主控芯片,光信号采集使用光敏模块,数模转换主要使用PCF8591芯片,显示模块采用1602液晶显示器,时钟电路采用DS1302芯片,电机驱动器主要使用ULN2003。

控制器设计:
构成模块主要功能:
单片机控制系统:处理信号并控制电机运行。

AD转换:将光敏模块输出的模拟信号转换为数字信号。

光敏模块:采集光信号并转换为模拟信号。

液晶模块:用于显示时间及控制模式。

时钟电路:配合外部晶体实现振荡,为单片机提供运行时钟。

按键:设置时间及选择模式。

电机驱动:为步进电机提供足够大的驱动电流。

复位:进行复位。

电源:为系统运行进行供电。

图1 模块功能图
硬件设计
单片机控制模块
图2 单片机控制模块电路原理图:
STC89C51芯片共40引脚,1~8脚是通用I/O接口(p1.0~p1.7),9脚rst复位键,10、11脚RXD串口输入、TXD串口输出,12~19脚:p3接口(12,13脚INT0中断0、INT1中断1,14,15:计数脉冲
T0 T1 16,17:WR写控制RD读控制输出
端) ,18,19脚:晶振谐振器,20脚接地线,21~28
p2接口高8位地址总线29: psen 片外rom选
通端,单片机对片外rom操作时29脚(psen)
输出低电平30:ALE/PROG 地址锁存器31:EA
rom取指令控制器,电源+5V。

本系统采用P0口及P1^0、P1^1、P1^2控制液晶显示,P1^3-P1^7口
控制按键、P3^0、P3^1、P3^4口控制DS1302、P3^5、P3^6口控制PCF8591,P2^0-P2^3口控制ULN2003。

●光敏模块:
功能:采集光信号并转换为模拟信号。

说明:VCC 外接3.3V-5V电压(可以直接与5v单片机和3.3v单片机相连)GND 外接GND
DO 小板数字量输出接口(0和1)
AO 小板模拟量输出接口图3 光敏模块电路图本系统使用AO端作为AD转换模块的模拟信号输入。

●模数转换模块:
图4 AD转换模块电路原理图
功能:将光敏模块输出的模拟信号转换为数字信号,本系统采用第三通道(AIN3)
说明:因为STC89C51芯片没有AD转换模块,故而采用PCF8591T芯片来实现AD与DA转换功能的,它有4路模拟输入,1路模拟输出,一个I2C-BUS 接口,3个给硬件地址编程的脚。

通过I2C
总线与处理器通信,其价格低廉,接口简
单,转换控制容易等优点,在单片机应用
系统中得到了广泛的应用。

其引脚定义如
下:
AIN0~AIN3:模拟输入(A/D 转换)。

AOUT:模拟输出(D/A转换)。

A0-A2:硬件设备地址。

GND:电源负极地。

VREF:参考电压输入。

EXT:振荡器输入时,部/外部的切换开关。

OSC: 振荡器输入/输出。

SCL: I2C BUS 时钟输入。

SDA:I2C BUS 数据输入/输出。

AGND:模拟地,摸拟信号和基准电源的参考地。

液晶显示模块:
功能:用于显示时间及控制模式
说明:此液晶为工业字符型液晶,能够同时显示16x02即32个字符。

(16列2行)图6 液晶电路原理图
图5 液晶实物图
1602采用标准的16脚接口,其中:
第1脚:VSS为地电源
第2脚:VDD接5V正电源
第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度
第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。

第5脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作。

当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW 为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。

第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。

第7~14脚:D0~D7为8位双向数据线。

第15~16脚:空脚
按键模块:用于设置时间及选择模式
图7 按键电路原理图
说明:
P1.3:右
P1.4:中
P1.5:下
P1.6:左
P1.7:上
时钟电路
图8 时钟电路原理图
说明:低功耗时钟芯片DS1302可以对年、月、日、时、分、秒进行计
时DS1302与单片机之间能简单地采用同步串行的方式进行通信,仅需用到
三个口线:1 RES(复位);2 I/O(数据线);3 SCLK(串行时钟)。

时钟/RAM 的读/写数据以一个字节或多达31个字节的字符组方式通信。

步进电机驱动模块:用于驱动步进电机
图9 步进电机驱动电路
说明:电机选用28BYJ-48型步进电机,电压5V,五线四相
图10 步进电机原理图
表1 步进电机转动相序
相顺序 A B C D
0 1 1 0 0
1 0 1 1 0
2 0 0 1 1
3 1 0 0 1
相顺序从0到1称为一步,电机轴将转过18度,0→1→2→3→4则称为通电一周,转轴将转过72度,若循环进行这种通电一周的操作,电机便连续的转动起来,而进行相反的通电顺序如4→3→2→1将使电机同速反转。

通电一周的周期越短,即驱动频率越高,则电机转速越快,但步进电机的转速也不可能太快,因为它每走一步需要一定的时间,若信号频率过高,可能导致电机失步,甚至只在原步颤动。

●电源模块:为系统供电
图11 电源模块原理图
●复位模块
图12 复位电路原理图软件设计
设计流程图:
图13 软件流程图
实物展示
图14 PCB板正面
图15 PCB板背面项目心得
通过这次历时半年的项目,我们都收获颇多。

在所学专业知识上,我们都有了更深的理解和认识,能够把课本的知识同实际应用对应起来,学习的过程就充满了趣味,不那么枯燥。

在最初的基础知识准备的过程中,我们翻阅了大量的资料,看视频教程,练习使用protel等软件,对进行项目所需要的只是做了系统的学习,这个过程中有许多的不解和困惑,大家相互交流,总结自己学习的收获,感觉很充实。

半年的过程中,遇到过各种各样的难题,但是大家齐心协力,相互配合,虽然不是每次都能够顺利解决问题,有的时候会因为检查电路或程序的错误而花费大量的时间,但是我们能够从解决问题的过程中相互学习,彼此之间的合作也使得我们的进展不会停滞不前。

每一次一起解决掉某个问题的时候,获得一定成就的时候我们都很受鼓舞。

在分工及合作中的交流也很重要,每个人的思路和想法都让我们从不同的角度去思考。

这次的项目合作让我们都受益匪浅。

我们都非常高兴能够参加这次项目,这会是我们大学学习中非常有趣也很有收获的经历。

附:
proteus仿真图
表1 硬件模块元件清单
模块元件型号数量
AD 转换
PCF8591 1个电阻1KΩ1个
10KΩ2个滑变电阻器10KΩ1个电容104 1个
液晶模块液晶显示器1602 1个滑变电阻器10KΩ1个。

相关主题