仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
电路原理图如下:
1. 控制系统设计
1.1. 系统方案设计单片机应用于多种电子产品中所取得的便捷性受到了人们的广泛喜爱,对于自动窗帘控制系统对单片机应用的智能化要求,实现自动控制的方案有两种:
方案 以单片机为基础的光照强度及时钟模块的自动控制。
方案比较:
相同点:都是通过单片机控制的,利用步进电机控制开关以及以液晶屏显示。
不同点:检测器件的选取不同。
方案 系统框图如图图 1.1。
图 1.1 方案框图
方案主要以时钟模块以及光照采集元件,通过设定光照值来控制窗帘的打开与关闭从而实现白天开窗帘,晚上关窗帘的功能,利用设定的时间来控制窗帘的开闭,实用性更强[1]。综合考虑以上因素,方案可行。
1.2. 系统工作原理智能窗帘控制系统由光敏传感器来感应外部环境的光强变化,由光敏传感器感应出来的信号输入到A/D转换器,转换后的信号由单片机控制步进电动机,来操作电机的正转、反转与停止[2]。自动窗帘控制器的各种状态信息通过显示模块显示。键盘控制为输入设备,控制单片机的各种参数。单片机所需电压由电源模块来提供[3]。
总体结构框图如图 1.2。
图 1.2 总体结构框图
2. 硬件部分设计2.1. 控制模块设计、2.1.1. STC89C51单片机单片机作为本系统的主控模块,应满足要求如下:
(1)8 位的CPU(微处理器);
(2)片内数据存储器RAM(128B);
(3)片内程序存储器ROM(4KB);
(4)两个定时器/计数器;
(5)四个8位并行I/O接口P0-P3;
(6)五个中断源的中断控制系统;
(7)片内振荡器和时钟产生电路,但石英晶体和微调电容需要外接;
根据以上要求本设计作品选用的是STC89C51单片机来控制步进电机正反转实现窗帘的开关。自动模式下时,光敏电阻检测光照强度的变化转化为电压变化的信号输送给单片机,单片机输送信号给电机驱动模块控制电机的正反转实现窗帘的打开与关闭;智能遥控模式时,通过遥控发射和接收模块,单片机接收遥控指令控制电机的正反转;手动按键模式时,由按键控制电机的正反转来实现窗帘的打开与关闭。
单片机相关引脚如图 2.1。
图 2.1单片机引脚
(1)时钟电路引脚XTAL1(19 脚)和XTAL2(18 脚)[4]。
(2)控制信号引脚RST(9 脚),ALE(30 脚),PSEN (29 脚)和EA(31 脚)。
(3)输入/输出端口P0/P1/P2/P3
STC89C51有40个引脚,4个8位并行I/O口,1个全双工异步串行口,与此同时内部还含有5个中断源,2个优先级和2个16位的定时/计数器[5]。STC89C51单片机组成如图 2.2。
图 2.2 单片机组成
2.2. 硬件电路2.2.1. 时钟模块DS1302通过串行的方式与单片机之间进行数据转换与传送,能够向单片机提供准确的实时时间信息,并且也可以对月末时间、闰平年的天数进行自动的调整,它还有着双电源引脚即:主电源和备份电源,尽管在主电源无法供电或关闭的的状态下,也能够保持时钟模块的不中断[8]。
DS1302与单片机系统的数据传送依靠RST,I/O,SCLK三根端线即可完成[9]。结构图如图 2.3所示。
图 2.3 时钟模块连接
2.2.2. 光敏检测模块根据外面环境的光照强度值变化来控制电动机合理的打开或者是关闭窗帘,而光敏电阻主要负责感应光强从而完成此部分要实现的功能。在此次焊接设计中用到的是光敏电阻。光敏电阻,意思也就是外部光照强度值的变化会直接影响电阻值的改变,对此感应十分敏感。光照强度增加电阻值减少;反之则电阻增大[11] ,如图 2.4所示。
图 2.4光强检测原理图
光敏电阻系统接收外部光照,在光照达到一定强度时窗帘会关闭,在光照弱时会自动打开。光敏电阻收集到的是动态的模拟信号[12],我们需要将这些信号转换成数字信号并输出到单片机使其驱动电机正反方向转动。根据这一方面就要用到数模转换电路,在本作品中选用的是ADC0832芯片。
2.2.3. 步进电动机控制电路步进电机利用电磁感应原理,其角位移是通过控制电脉冲的数量来实现的[13]。步进电机主要涉及相数、拍数、步距角、启动转矩以及电机正反转控制等[14]。电动机连接图与ULN2003芯片结构如图 2.5电动机管脚连接图所示。
图 2.5电动机管脚连接图
ULN2003芯片概述与特点:
ULN2003具有抗高压和超高电流的达林顿系列,它的每一对达林顿管都有一个2.7K的基极电阻被串联,在5V工作电压下工作时,才与TTL和CMOS电路直接相连。组成主要为七个NPN型达林顿管。
步进电机驱动电路的工作过程是:通过P2.0-P3.0口将单片机与ULN2003连接,从P2口输出00000001B,ULN2003连接的四个管脚中每次只有一个管脚导通,其他的管脚则断开[15]。
2.2.4. 液晶模块液晶显示器主要优点是功耗小、大小适宜轻便、显示内容多种多样、显示屏很薄等优点,被各种系统广泛的应用。本作品中应用的是液晶显示模块LCD1602。图 2.6为本作品的显示器的连接图。
图 2.6 LCD1602连接图
2.2.5. 电源模块智能窗口供电电路输出5V电压给所有模块供电,如图 2.7所示。
图 2.7 电源模块
2.2.6. 按键模块五个按钮,分别为S1,S2,S3,S4,S5。其中S1为切换模式,S2为时间设置,S3是设置阈值,S4和S5为手动模式的开/关,自动模式的加/减。连接方式如图 2.8。
图 2.8 时间模块
3. 系统原理图本次设计作品智能窗帘系统主要有两种控制模式。当系统处于手动模式的时候可以通过按键实现一键开关窗帘;当系统处在自动模式下通过光敏检测元件检测光强从而实现窗帘的自动开关。DS1302芯片是本设计的时钟芯片,可以设置时间开启和关闭窗帘,还可以实时的检测当前时间。液晶显示模块显示当前时间、光照强度系数和工作模式等信息。原理图如图3.1所示。
图 3.1系统设计原理图
4. 软件设计4.1. 系统主程序设计本设计系统的主程序需要完成的功能有:单片机各个模块的初始化操作,定时器初值设置以及开启,按键的扫描,电机运转,显示时间光照数字量等[16]。如图 4.1所示。
图 4.1程序框图
4.2. 1602液晶程序设计液晶开始显示之前,必须先确定一个位置,表示要在哪个地方显示,比如第1行第5列的位置。在完成坐标定位之后就可以开始显示内容了。液晶在显示的时候,是一位一位完成的。比如数字“123”,就会先显示百位的“1”,然后是十位的“2”,最后是个位的“3”。显示字符串的话,也是一样的道理,比如显示“hello”,也是从最开始的字母“h”开始显示,一位一位的完成,直到显示完字母“o”,才完成一次显示任务。要说明的是,每次显示一串字符或一个数字的时候,只需在最开始的时候完成一次定位,之后每显示完一个字符,液晶会自动跳到下一个位置的,无需每个字符都定位一次。
图 4.2 液晶显示流程图
4.3. 按键子程序设计液晶上面的时间会不断的走时刷新,就是靠单片机不断去读取时钟芯片DS1302的时间信息并发到液晶显示更新的。读取时钟芯片的时间信息主要流程是,写入年份寄存器地址0x8D,接着就读取的年份的数据。然后用同样的方式,依次写入寄存器地址0x89、0x87、0x8B、0x85、0x83、0x81,分别读取到月份、日期、星期、小时、分钟、秒钟。读取的流程图如图 4.3所示。
图 4.3 读取DS1302时间信息流程图
5. 仿真所谓仿真就是模拟运行,就是在实验的条件下模拟环境时间变化,检查系统能否正常工作,并验证其运行的可靠性。仿真如图 5-1。
Proteus8.17版本的仿真和Keil代码及word文档3个文件下载(仅供参考):
智能窗帘设计.7z
(515.69 KB, 下载次数: 30)
|