智能窗帘控制系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
毕业论文论文题目:智能遥控窗帘系统设计
系部:信息工程系
专业名称:电子信息工程
班级:08432 学号:13 姓名:朱斌
指导教师:郑莹
完成时间:11 年 5 月8 日
目录
摘要.............................................................. 第1章绪论.. (1)
1.1窗帘红外遥控器设计目的 (1)
1.2窗帘红外遥控器完成的功能 (1)
第2章总体方案设计 (2)
第3章硬件设计 (4)
3.1红外接收电路 (4)
3.2单片机控制电路 (5)
3.2.1 单片机简介 (5)
3.2.2 时钟电路和复位电路 (6)
3.3显示电路 (7)
3.4报警与控制电路 (8)
第4章软件设计 (9)
4.1主程序设计 (9)
4.2数据处理子程序 (11)
4.31602C显示子程序 (12)
第5章安装调试与结果 (15)
第6章总结 (16)
致谢 (17)
参考文献 (18)
附录 (19)
一、电路原理图.................................... 错误!未定义书签。
二、PCB图 ........................................ 错误!未定义书签。
三、源程序........................................ 错误!未定义书签。
第1章绪论
1.1 窗帘红外遥控器设计目的
随着社会信息化的加快,人们的工作、生活和通讯、信息的关系日益紧密。
信息化社会在改变人们生活方式与工作习惯的同时,也对传统的住宅提出了挑战,社会、技术以及经济的进步更使人们的观念随之巨变。
人们对家居的要求早已不只是物理空间,更为关注的是一个安全、方便、舒适的居家环境。
随着电子技术产业结构调整,生产工艺的飞速发展,人们生活水平的不断提高,家用电器逐渐普及,市场对于红外遥控控制系统的需求也越来越大。
高精度、多功能、低功耗,是现代科技发展的趋势。
在这种趋势下,窗帘的数字化、智能化已经成为现代生产研究的主导设计方向。
单片机在电子产品中的应用已经越来越广泛,在很多的电子产品中也用到了红外控制。
随着窗帘红外控制器应用范围的日益广泛和多样,各种适用于不同场合的窗帘控制器应运而生。
红外线窗帘遥控控制器是我厂最新研制的一种高科技产品,它不但取代原有的无线遥控窗帘控制器,而且工作可靠,4种不同的工作方式任意选择,数字自动测试环境亮度,整点报时,电机工作鸣响提示,数码时钟等功能,满足不同用户的需要。
1.2 窗帘红外遥控器完成的功能
本文介绍一款使用微电脑管理的、红外遥控器控制的多功能窗帘控制器。
该窗帘控制器采用89c2051单片机的最小系统设计,控制一个220v的可逆、变速电动机控制窗帘的拉开和关闭。
窗帘控制器可以使用红外遥控器进行远程手动开、手动关和手动停控制;可以执行事先输入的开启时间和关闭时间进行时间控制;还可以根据室外环境亮度实现环境亮度光控。
三种工作方式可以方便地进行选择,当选择时间控制的方案时,数码管还能显示当时小时和分钟时间,不过时间数据只能顺序显示,显示一遍后,略等片刻再显示下一遍时间。
另外、电机拉动窗帘的工作的时间长度,电机工作的时候是否有鸣响提示,以及光控状态下环境亮度的控制参数的调整等等都可以通过遥控器进行设置。
第2章总体方案设计
这次设计题目为单片机在电子产品中的应用已经越来越广泛,在很多的电子产品中也用到了红外控制。
随着窗帘红外控制器应用范围的日益广泛和多样,各种适用于不同场合的窗帘控制器应运而生。
实现这种控制目的的方案有3个。
方案(一)自动控制系统。
(采用A/D转换器)
方案(二)模拟集成控制器自动控制系统。
(采用V/F转换电路)
这二个方案都是采用单片机控制,液晶显示模块LCD显示。
方案(一)的系统框图如图2.1:
图2.1 方案一的原理框图
AT89C2051是一款采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容的单片机,其主要性能特点有:(1)高性能、低功耗的8Byte微控制器,RISC精简指令集机构,指令功能强大,且多数为单周期指令,具有低功耗的闲置和掉电控制模式、5个中断源、两个16位定时器/计数器等功能。
(2)片内集成4KB可编程闪烁存储器,可进行1000次以上写/擦循环操作,数据保留时间可达10年,支持三级程序存储器锁定。
(3)丰富强大的外部接口性能:32可编程I/O线,可编程串行通道,片内振荡器和时钟电路。
采用LG28显示模块41BH数码管,动态扫描,8550三极管位选驱动,AT89C51微处理器P0口直接段选实现小时、分钟显示,具有显示亮度强、稳定性能好、显示误差少等优点。
方案(二)的框图如图2.2:
图2.2 方案二的原理框图
该窗帘控制器采用89c2051单片机的最小系统设计,控制一个220v的可逆、变速电动机控制窗帘的拉开和关闭。
窗帘控制器可以使用红外遥控器进行远程手动开、手动关和手动停控制;还可以根据室外环境亮度实现环境亮度光控。
以及光控状态下环境亮度的控制参数的调整等等都可以通过遥控器进行设置。
该红外遥控窗帘可谓是一款多功能的窗帘控制器窗帘控制器原理图。
第3章硬件设计
3.1 红外接收电路
笔者设计的这款红外遥控器,不仅能设置控制对象的给定值或控制参数,并通过红外线发送给对象,而且能接收并显示对象通过红外线反馈回的实际值,这是它不同于普通红外遥控器的地方。
因此,实际应用中,红外遥控器和控制对象上都装有红外发送电路和红外接收电路。
红外遥控器的硬件部分主要包括五个模块:电源模块、键盘模块、液晶模块、红外发送模块和红外接收模块。
总体硬件框图如图1所示。
由于MSP430、红外发送模块和红外接收模块都可采用3V电源,所以电源模块采用两节1.5V电池供电即可。
键盘模块采用4×4行列扫描式键盘。
液晶模块由MSP430F413直接驱动。
因为发光二极管的发光距离与其发射功率成正比,为了提高发光二极管的发光距离,必须提高它的发射功率,也就是使红外发光二极管工作于脉冲状态。
可以用两种方法来实现:一是用硬件方法,即设计脉冲电路来产生占空比尽量小的脉冲载波信号;另一种就是用软件来控制MSP430F413的输出端P2.1,让其输出即为占空比较小的脉冲信号。
这里利用软件来实现这个功能。
即在需要输出高电平的时候,让程序定时把P2.1口输出状态反向,其中定时时间是由指令数和指令周期来决定的,每条指令的指令执行周期是固定的,所以如果想让反向频率高一些,则让指令执行的少一些,反之就让指令多一些。
可见输出信号占空比可以由定时时间的长短来决定,这样就可以在高电平时输出占空比尽量小的脉冲信号。
因为接收头对38KHz的光信号转换能力比较强,所以把高电平的频率设置为38KHz。
在需要输出低电平的时候,控制P2.1口一直为低就可以了。
红外发光二极管发射波形如图3所示。
先发一段前导码,以检验这组码是否为想要的码。
前导码由一个9ms的高电平和一个4ms的低电平组成。
然后再发32位数据代码,其中高电平为0.5ms,低电平为0.5ms的一个周期为代码“0”;高电平为0.5ms,低电平为1.5ms的一个周期为代码“1”。
为了提高发射功率,实际工作时,发光二极管的高电平用38kHz的载波信号载波,低电平则一直为低。
红外发送程序流程图如图4所示。
即先发出前导码,然后再按发出的是‘0’或‘1’来发出不同的数据码,每发送完一位,就让码长计数器num加1,直到num加到32时,发送停止。
3.2 单片机控制电路
3.2.1 单片机简介
以大规模集成电路为主组成的微型计算机,简称为单片机,又称为嵌入式微控制器(Embedded microcontroller)。
它的诞生是计算机发展史上一个新的里程碑。
1)单片机的发展
单片机从诞生至今已经经历了4个发展阶段,分别是:
第一阶段(1974-1976年):单片机初级阶段。
因工艺限制,此阶段的单片机采用双片的形式而且功能比较简单。
例如仙童公司生产的F8单片机,只包括了8位CPU,64个字节的RAM,和两个并行口,需要加一块具有1KB ROM、定时器/计数器和两个并行口的3851芯片才能组成一台完整的计算机。
第二阶段(1976-1978年):低性能单片机阶段。
此阶段的单片机已成为一台完整的计算机,但内部资源不够丰富,以Intel公司生产的MCS-48系列为代表,片内集成了8位CPU、8位定时器/计数器、RAM和ROM等,但无串行口,中断系统也比较简单,片内RAM和ROM容量较小且寻址范围不大于4KB。
第三阶段(1978-):高性能单片机阶段。
此阶段的单片机内部资源丰富,以Intel公司生产的MCS-51系列为代表,片内集成了8位CPU、16位定时器/计数器、串行I/O口、多级中断系统、RAM和ROM等,片内RAM和ROM容量加大,寻址范围可达64KB。
有的型号内部还带有A/D转换器。
第四阶段(1982-):8位单片机得巩固发展及16位、32位单片机推出阶段。
16位单片机以Intel公司生产得MCS-96系列为代表,在片内带有多通道A/D转换器和高速输入/输出(HSI/HSO)部件,中断处理和实时处理能力很强。
2)单片机的特点:
(1)小巧灵活、成本低、易于产品化。
能利用它方便地组装成各种智能式测控设备及各种智能仪器仪表,很容易满足仪器设备既智能又微型化的要求。
(2)可靠性高、适用的温度范围宽。
单片机芯片一般是按工业测控要求设计的,能适应各种恶劣的环境。
这一点是其他机种无法比拟的。
(3)易扩展、控制能力强。
通过单片机本身或扩展可以方便地构成各种规模地应用系统及多机和分布式计算机控制系统。
(4)指令系统相对简单,较易掌握,且指令中又较丰富地逻辑控制功能指令,能较方便地直接操作外部输入输出设备。
由于单片机具有功能强、体积小、可靠性好和价格便宜等独特优点,已成为传统工业技术改造和新产品更新换代的理想机种,具有广泛的发展前景。
单片机技术的应用,使得许多领域的技术水平和自动化程度大大提高,可以说,当今世界正面临着一场以单片机技术为标志的新技术革命。
3.2.2 时钟电路和复位电路
1)时钟产生电路
片内电路与片外器件就构成一个时钟产生电路,CPU 的所有操作均在时钟脉冲同步下进行。
片内振荡器的振荡频率非常接近晶振频率,一般多在 1.2MHz ~24MHz 之间选取。
C1、C2是反馈电容,其值在20pF ~100pF 之间选取,典型值为30pF 。
本电路选用的电容为30pF ,晶振频率为12MHz 。
振荡周期=s μ121;
机器周期s S m μ1=
指令周期=s μ4~1。
XTAL1和XTAL2:片内振荡电路输入线,这两个端子用来外接石英晶体和微调电容。
在石英晶体的两个管脚加交变电场时,它将会产生一定频率的机械变形,而这种机械振动又会产生交变电场,上述物理现象称为压电效应。
一般情况下,无论是机械振动的振幅,还是交变电场的振幅都非常小。
但是,当交变电场的频率为某一特定值时,振幅骤然增大,产生共振,称之为压电振荡。
这一特定频率就是石英晶体的固有频率,也称谐振频率。
即用来连接8051片内OSC 的定时反馈回路,如图3.5所示。
石英晶振起振后要能在XTAL2线上输出一个3V 左右的正弦波,以便使MCS-51片内的OSC 电路按石英晶振相同频率自激振荡。
通常,OSC 的输出时钟频率fOSC 为0.5MHz-16MHz ,典型值为12MHz 或者11.0592MHz 。
电容C1和C2可以帮助起振,典型值为30pF ,调节它们可以达到微调fOSC 的目的。
2)单片机复位电路
图3.6为单片机复位电路。
单片机在开机时都需要复位,以便中央处理CPU
以及其他功能部件都处于一个确定的初始状态,并从这个状态开始工作。
单片机的复位后是靠外部电路实现的,在时钟电路工作后,只要在单片机的RST 引脚上出现24个时钟振荡脉冲(2个机器周期)以上的高电平,单片机便可实现初始化状态复位。
MCS-51单片机的RST 引脚是复位信号的输入端。
例如:若MCS-51单片机时钟频率为12MHz ,则复位脉冲宽度至少应该为2μs 。
图3.1 时钟电路 图3.2 复位电路
3.3 显示电路
液晶显示器以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,在袖珍式仪表和低功耗应用系统中得到越来越广泛的应用。
此次使用的是字符型液晶模块1602C,该模块是一种用5x7点阵图形来显示字符的液晶显示器,能够显示2行16个字符。
1602采用标准的16脚接口,其中:
第1脚:VSS为地电源。
第2脚:VDD接5V正电源。
第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。
图3.3 液晶显示接口电路
第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
第5脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作。
当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。
第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
第7~14脚:D0~D7为8位双向数据线。
第15~16脚:空脚,也可以15脚接5V 正电源16脚接地,控制LCD 背景光。
3.4 报警与控制电路
该部分是单片机和外部报警与控制的接口部分,主要起报警、执行和电气隔离作用,其电路图如图3.4所示。
继电器采用SRD-D6VDC-SL-C 型,240AC 通断TA 的电流。
其直流线圈电阻95欧,三极管Q1采用KTC9012,输出电流IC 为150mA ,放大系数β为60至1000范围内,若取β为200则Ic 在5V 下为50mA 左右,则基极电流为0.25mA 。
只有P0口在高点位输出时才能达到这样大的电流值。
因此把这两个口分别用P0和P01代替。
由于P0口属于三态输出输入口,因此,必须接上拉电阻,其阻值大小可计算为:
(50.7)170.25V K mA -=Ω
我们取10千欧的电阻让Q1在高电平时饱和导通,此时,基极电流为0.44mA 。
二极管D1主要起保护作用,在Q1关断时续流,以免电感线圈断路时产生过压损坏三极管。
图3.4 继电器、报警与执行电路
由于DS18B20自带了存储器,能够将设定的温度报警值自动存入 DS18B20 的 EEROM 中,永久保存,因此每次开机时系统都会自动从 DS18B20 的 EEROM 读出温度报警值.两个继电器中,K1接的是降温装置,K2接的是加热装置,当实际温度大于 TH 的设定值时,蜂鸣器响,表示超温,此时继电器K1吸合,接通降温装置进行降温;当实际温度处于 TL 与TH 的设定值之间时,继电器常闭。
总的原理图和PCB 图见附录1、附录2所示。
第4章软件设计
4.1 主程序设计
主程序完成系统初始化及各个程序之间的联系任务,如下图所示。
4.1 主程序流程图
主程序流程说明:
电路分为8个部分,分别是电源部分、显示部分、鸣响提示部分、红外线接收部分、数据储存部分、光控电路测光部分、电机控制执行部分、单片机主控器件部分。
电源部分通过外接插座输入交流12v或者直流13-14v电压,交流电经过整流滤波后,输出电压为12v的vdd,为控制继电器提供工作电压。
同时经过3端集成稳压器ic2稳压后输出5v电压vbb,为讯响电路、红外接收电路、显示电路提供电源,5v电源经过二极管d4、限流电阻r18后,为单片机提供vcc电压,e1是直流供电电源,电压为3v~3.6v,在本电路中为了节省成本,使用两节5号普通电池,c6和c7是单片机电源滤波电容。
平时交流电正常的情况下,5v电源为单片机供电的同时,也为电池浮充电,大大延长了电池的使用寿命,当交流电停电的时候,电池仅为单片机供电,单片机在掉电状态下维持时钟的正常走时,vbb供电被d4隔断。
在控制器设置成手动控制时,单片机除执行任务外,均处于睡眠状态,遥控器信号的到来,单片机从睡眠中唤醒,恢复正常工作,所以手动状态下当交流停电时,电池的耗电电流更小。
显示电路使用一个0.56英寸的共阳高亮度数码管,限流电阻取用1—1.5k.
鸣响电路由单片机的p1.0兼用,除驱动数码管的数点之外,兼用音频信号输出,音频信号通过r20、c10输入到三极管v6的基极上,三极管驱动发声器发声。
二极管d3用来提供c10的放电回路,保证交流信号的正常耦合。
发声器发出的声音有单片机软件来实现和控制,不同的情况下发出不同音调、不同时间长度的鸣响来,也可以编制乐音声音发声。
红外线接收电路使用一个集成红外接收器,型号是hs3008,静态时输出端输出高电平,当接收到红外信号后,按红外信号的数据波形输出负脉冲数据信号。
红外信号输出到单片机的p3.2 ,该口对应的第二功能是外部中断0 (int0),利用该口的第二功能,一旦红外线信号到来,p3.2被拉低,单片机中止当前的工作转移到接收、处理红外信号。
开启中断功能的目的,既减轻了单片机的工作负担,又保证接收到的红外信号的完整性,同时在手动工作状态下,单片机进入睡眠后,利用外部中断功能完成对单片机的唤醒。
光控电路有gm1、c5、v3组成,利用了单片机的p3.4和p3.5完成对环境亮度的测试工作。
gm1可以使用光敏电阻或者光敏二极管,本电路中使用光敏二极管。
c3和gm1组成rc充放电回路,p3.4处于高电平的时候,p3.4的高电压用过gm1的正向电阻向c3充电,当p3.4被单片机拉低后,c3通过光敏元件放电,光敏二极管工作在反向电压状态下,此时环境亮度决定了光敏二极管的光阻值,光阻值大,c3放电速度慢,反之放电速度快。
适当控制p3.4的拉低脉冲宽度,使得c3
放电工作在线性比较好的一个工作段上。
p3.5用来检测c3在p3.4拉低期间放电的电压状态,当c3电压下降到1/2vcc以下后,p3.5测得数据“0”,反之测得数据“1”,为了减小p3.5对c3充放电的影响,c3充放电电压通过三极管v3组成的射极输出器连接到p3.5上,射极输出器的高输入阻抗减小了p3.5对rc充放电电路的影响。
电机执行部分完全受单片机的控制,通过单片机的p3.0和p3.1完成。
单片机复位状态下p3.0和p3.1输出高电平,三极管v1、v2,v4、v5截止,两个继电器j1、j2释放状态,方向可逆的电动机因无电源供电而停止。
当p3.0或者p3.1其中有一个被拉低后,两个继电器便会有一个导通,例如p3.0拉低后v1导通、v4导通,j1吸合,电机得电转动,当只有p3.1拉低后,电机则反方向转动,实现了窗帘的拉开和关闭。
两个继电器的工作状态受单片机控制,在同一个时间内两个继电器仅能有一个吸合。
即便是在电机工作期间,操作了反向转动按键,单片机也是先释放当前工作的继电器,并延时一段时间后再吸合另外一个继电器,防止了电机正反工作线圈同时通电的冒险。
单片机是本电路中的核心器件,担负整个电路的管理。
电路中使用p1口的8个i/o口分别驱动数码管的7个笔划和数点。
这样做的目的是at89c2051用于本电路中,其i/o口比较富裕,这样的驱动显示节省一个显示驱动电路,同时显示的数字和字符完全通过软件编写的,可以编写更多的字符。
所以数码管除显示0~9数字外,还可以显示软件编辑的任意字符,数点用来指示工作状态和不同的设置状态。
单片机的复位脚使用c1、r14组成上电复位电路,k1是手动复位按键,实践中得知本复位按键用到的时候很少。
数点控制脚兼用鸣响信号输出端,输出的音频信号通过r20、c10输入到v6的基极,放大后推动发声器y1发声。
d3是c10的泄放电阻,保证交变信号的正常耦合。
单片机的p3.3和p3.7口作为iic储存器的总线,本电路使用at24c02完成对设置状态和设置数据的储存。
4.2 数据处理子程序
数据处理部分使用的器件是MCS-51系列单片机AT89C51,它自带8K的FLASH程序存储器,它的核心处理单元为8位。
数据处理主要是对数字温度传感器采集温度数据,并进行逻辑判断,根据数据的具体情况输出到LCD显示和使继电器动作。
这部分包括三个方面的工作,主要由三个子程序来完成,分别为GETWD、DATA-PRO和ZTBJ。
从这个子程序读出的数据由两个字节组成,高字节为35H,低字节为34H,数据格式如表4.3所示。
处理过程如框图4.2所示。
首先,把高位字节不带进位位Cy左移四位,再与F0H相与,最后把低四位置零,高四位保持不变,将所得结果存储起来。
低位字节的处理是:先将该字节高低四位相互交换,存储该字节在R3中,然后将这个数据与0FH相与去除高四位,最后将这个低位字节与处理后的高位字节相或,将高低位字节最后处理为一个字节,除去最高位符号位,后七位就是要显示的数据,存储在36H中。
最后把R3中数据取出,带进位位左移一位,判断其进位标志位C是否为“1”,若为“1”则把数字5存储在37H中,供LCD显示测量值小数部分。
否则把37H中置零。
图4.2 数据处理子程序
4.3 1602C显示子程序
液晶显示器采用目前使用的比较广泛的字符型液晶显示器1602C。
1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B (41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。
1602液晶模块内部的控制器共有11条控制指令,如表4.1所示,它的读写操作、屏幕和光标的操作都是通过指令编程来实现的。
(说明:1为高电平、0为低电平)
指令1:清显示,指令码01H,光标复位到地址00H位置。
指令2:光标复位,光标返回到地址00H。
指令3:光标和显示模式设置I/D:光标移动方向,高电平右移,低电平左移。
指令4:显示开关控制。
D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示C:控制光标的开与关,高电平表示有光标,低电平表示无光标B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。
指令5:光标或显示移位S/C:高电平时移动显示的文字低电平时移动光标。
指令6:功能设置命令DL:高电平时为4位总线,低电平时为8位总线N:低电平时为单行显示,高电平时双行显示F: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。
表4.1 控制指令
指令11:读数据液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。
要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符。
表4.2是DM-1602的内部显示地址。
表4.2 DM-1602内部显示地址
初始化子程序的框图如图4.3所示。
在初始化子程序中,操作非常简单,主要是对LCD 发出初始化控制命令,然后开显示器,写入数据,初始化过程就算完成。
图4.3 LCD 初始化子程序
初始化子程序说明:首先开始,然后清屏并光标复位,单片机发写命令,再液晶显示应答。
如果回答否,再回到清屏并光标复位,开始以为是继电器坏了,经检查,原来是没有给控制加热和降温装置的继电器供电,后来接上电源后问题就得到了解决。
单片机发写命令,再液晶显示应答,如果回答是,再准备写入数据,最后执行显示命令。
执行显示命令 清屏并光标复位
液晶显示应答否
单片机发写命令 开始
准备写入数据
否
是。