基于单片机的智能型家居窗帘控制电路的设计文档格式.docx
《基于单片机的智能型家居窗帘控制电路的设计文档格式.docx》由会员分享,可在线阅读,更多相关《基于单片机的智能型家居窗帘控制电路的设计文档格式.docx(76页珍藏版)》请在冰豆网上搜索。
虽然遥控自动窗帘系统在我国还刚刚兴起,但其发展前景广阔,推广和应用自动窗帘系统具有重要的现实意义。
1.2课题的研究方向
自动窗帘机的控制方式大体上有三种:
声控、光控、时控,声控和遥控属于半自动类;
而光控虽属全自动式,但因光敏器件的灵敏度,冬夏等不同季节的光照度的不同,以及人们对起闭窗帘在时间上的要求不同,而难以实施和普及。
因此,时控式的全自动窗帘机便成了专业以及业余电子设计人员的热门课题。
本电路设计利用价格相对便宜的单片机作为主要控制器件,通过步进电机的正反转模拟窗帘开启关闭,实现以下功能:
[1]无线遥控功能;
[2]半手动控制功能;
[3]根据环境亮度自动控制功能;
[4]定时控制功能。
考虑到单片机IO口有限,比市场上的少了正点报时功能。
2系统总体方案设计
2.1系统方案确定
根据任务书要求:
[1]能根据时间定时开关窗帘;
[2]能根据光的亮度自动开关窗帘;
[3]能用红外遥控器控制窗帘开启关闭;
为满足上述要求,确定的方案原理图图2.1如下:
图2.1系统方案原理框图
按键模块除了定时外,还可在遥控器失灵后手动控制,防止意外情况。
2.2模块器件选择
为使基于单片机控制的红外线遥控系统在实际使用过程中具有较高的性能/价格比,所以对该系统的原器件作了精心挑选。
按在实际工作中的作用,可分为以下几个部分:
STC89C52RC单片机是整个电路的核心,它控制其它模块来完成各种复杂的操作;
红外线一体化接受HS0038负责接受命令;
芯片DS1302负责时钟的运行及设置参数;
AT24C02用来存储数据;
LCD1602用来显示各种数据,包括实时时间、定时时间、电机运行状态等。
下面重点说明下STC89C52RC单片机以及简单介绍下部分其他器件(其他器件会在相应电路中详细介绍)。
2.2.1STC89C52RC单片机
STC89C52RC有很宽的工作电源电压,可为2.7~6V,当工作在3V时,电流相当于6V工作时的1/4。
STC89C52RC工作于12Hz时,动态电流为5.5mA,空闲态为1mA,掉电状态仅为20nA。
引脚图如图2.2:
图2.2STC89C52RC引脚图
STC89C52RC的特点
·
STC89C52RC与MCS-51系列的单片机在指令系统和引脚上完全兼容;
片内有4k字节在线可重复编程快擦写程序存储器;
全静态工作,工作范围:
0Hz~24MHz;
三级程序存储器加密;
128×
8位内部RAM;
32位双向输入输出线;
两个十六位定时器/计数器
五个中断源,两级中断优先级;
一个全双工的异步串行口;
间歇和掉电两种工作方式
超强抗干扰:
高抗静电(ESD保护)
轻松过
2KV/4KV快速脉冲干扰;
宽电压,不怕电源抖动
;
宽温度范围,-40℃~85℃
禁止ALE输出;
超低功耗:
[1]掉电模式:
典型功耗<
0.1
μ
A
[2]空闲模式:
典型功耗2mA
[3]正常工作模式:
典型功耗4mA-7mA
[4]掉电模式可由外部中断唤醒,适用于电池供电系统,如水表、气表、便携设备等.
STC89C52RC的引脚
[1]电源:
①VCC-芯片电源,接+5V;
②VSS-接地端;
[2]时钟:
XTAL1、XTAL2-晶体振荡电路反相输入端和输出端。
[3]控制线:
控制线共有4根:
ALE/PROG:
地址锁存允许/片内EPROM编程脉冲
①ALE功能:
用来锁存P0口送出的低8位地址
②PROG功能:
片内有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。
PSEN:
外ROM读选通信号。
RST/VPD:
复位/备用电源。
①RST(Reset)功能:
复位信号输入端。
②VPD功能:
在Vcc掉电情况下,接备用电源。
EA/Vpp:
内外ROM选择/片内EPROM编程电源。
①EA功能:
内外ROM选择端。
②Vpp功能:
片内有EPROM的芯片,在EPROM编程期间,施加编程电源Vpp。
[4]I/O口线:
P0、P1、P2、P3共四个八位口。
▪P0口是三态双向口,通称数据总线口,因为只有该口能直接用于对外部存储器的读/写操作。
P0口也用以输出外部存储器的低8位地图1址。
由于是分时输出,故应在外部加锁存器将此地址数据锁存,地址锁存,信号用ALE。
▪P1口是专门供用户使用的I/O口,是准双向口。
▪P2口是从系统扩展时作高8位地址线用。
不扩展外部存储器时,P2口也可以作为用户I/O口线使用,P2口也是准双向口。
▪P3口是双功能口,该口的每一位均可独立地定义为第一I/O功能或第二I/O功能。
作为第一功能使用时操作同P1口。
P3口的第二功能如表2.1所示。
表2.1P3口第二功能
端口引脚
各个功能
P3.0
RXD(串行口输入端)
P3.1
TXD(串行口输出端)
P3.2
(外部中断0请求输入端,低电平有效)
P3.3
(外部中断1请求输入端,低电平有效)
P3.4
T0(定时器/计数器0计数脉冲输入端)
P3.5
T1(定时器/计数器1计数脉冲输入端)
P3.6
(外部数据存储器写选通信号输入端,低电平有效)
P3.7
(外部数据存储器读选通信号输入端,低电平有效)
2.2.2LCD1602液晶显示屏
LCD1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。
它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好)。
1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。
2.2.3DS1302时钟芯片
DS1302是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。
采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。
DS1302内部有一个31×
8的用于临时性存放数据的RAM寄存器。
DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后备电源双电源引脚,同时提供了对后备电源进行涓细电流充电的能力。
3系统硬件电路设计
3.1单片机时钟电路
片内电路与片外器件就构成一个时钟产生电路,CPU的所有操作均在时钟脉冲同步下进行。
片内振荡器的振荡频率非常接近晶振频率,一般多在1.2MHz~24MHz之间选取。
C2、C3是反馈电容,其值在20pF~100pF之间选取,典型值为30pF。
本电路选用的电容为30pF,晶振频率为12MHz。
振荡周期=1/12μS;
机器周期=1μS;
指令周期=1~4μS;
XTAL1和XTAL2:
片内振荡电路输入线,这两个端子用来外接石英晶体和微调电容。
在石英晶体的两个管脚加交变电场时,它将会产生一定频率的机械变形,而这种机械振动又会产生交变电场,上述物理现象称为压电效应。
一般情况下,无论是机械振动的振幅,还是交变电场的振幅都非常小。
但是,当交变电场的频率为某一特定值时,振幅骤然增大,产生共振,称之为压电振荡。
这一特定频率就是石英晶体的固有频率,也称谐振频率。
即用来连接STC89C52RC片内OSC的定时反馈回路。
石英晶振起振后要能在XTAL2线上输出一个3V左右的正弦波,以便使STC89C52RC片内的OSC电路按石英晶振相同频率自激振荡。
通常,OSC的输出时钟频率fosc为0.5MHz-16MHz,典型值为12MHz或者11.0592MHz。
电容C2和C3可以帮助起振,典型值为30pF,调节它们可以达到微调fosc的目的。
如图3.1所示.
图3.1单片机时钟电路
3.2单片机复位电路
单片机在开机时都需要复位,以便中央处理CPU以及其他功能部件都处于一个
确定的初始状态,并从这个状态开始工作。
单片机的复位后是靠外部电路实现的,在时钟电路工作后,只要在单片机的RST引脚上出现24个时钟振荡脉冲(2个机器周期)以上的高电平,单片机便可实现初始化状态复位,如图3.2所示。
图3.2单片机复位电路
3.3电源电路
通过220V转12V变压器输入,再经桥式整流电路后,输入直流12V电压。
C1、C2是12伏的电源滤波电容,大电容C1旁边并联一个小电容的目的是降低高频内阻,因为大的电解电容一般采用卷绕工艺制造,所以等效电感较大,小电容可以提供一个小内阻的高频通道,降低电源全频带内阻。
之后经过3端集成稳压芯片LM7805稳压后输出+5V电压VCC,为步进电机电路、红外接收电路、显示电路、时钟芯片提供电源,5V电源经过二极管D5、限流电阻R1=5K后,为DS1302提供VDD电压,BATTERY是直流供电电源,电压为3V左右,在本电路中为了节省成本,使用两节5号可充电电池。
市电正常的情况下,VDD电源为DS1302供电的同时,也为电池充电,从而延长电池的使用寿命,当市电停电的时候,电池为DS1302供电,DS1302在掉电状态下维持时钟的正常,如图3.3所示。
图3.3电源电路
3.4显示电路
显示电路设计采用的是液晶LCD1602(仿真时用LM016L代替)来显示实时时间、步进电机运行状态等内容。
由于P0口带负载能力差,故需接上拉电阻(这里用1K的排阻),P0口作为数据口连接LCD1602的7~14口,来传输数据及指令。
P2.5接LCD1602的4脚RS(数据/命令选择端),P2.6接LCD1602的5脚R/W(读写选择端),P2.7接LCD1602的6脚E(使能信号)。
电位器RV1用来调节LCD1602的亮度,如图3.4所示。
图3.4LCD1602显示电路
3.4.1LCD1602管脚介绍
1602共16个管脚,但是编程用到的主要管脚不过三个,分别为:
RS(数据命令选择端4脚),R/W(读写选择端5脚),E(使能信号6脚);
以后编程便主要围绕这三个管脚展开进行初始化,写命令,写数据。
以下具体阐述这三个管脚:
RS为寄存器选择,高电平选择数据寄存器,低电平选择指令寄存器。
R/W为读写选择,高电平进行读操作,低电平进行写操作。
E端为使能端,后面和时序联系在一起。
除此外,D0~D7(7~14脚)分别为8位双向数据线,第1脚:
VSS为地电源;
第2脚:
VDD接5V正电源;
第3脚:
液晶显示偏压。
3.4.2LCD1602操作时序
表3.1操作时序
RS
R/W
操作说明
写入指令码到D0~D7
1
读从D0~D7输出的状态字
写数据到D0~D7
从D0~D7读数据
3.4.3LCD1602指令集
0x38设置16*2显示,5*7点阵,8位数据接口;
0x01清屏;
0x0f开显示,显示光标,光标闪烁;
0x08只开显示;
0x0e开显示,显示光标,光标不闪烁;
0x0c开显示,不显示光标;
0x06地址+1,当写入数据的时候光标右移;
0x02地址计数器AC=0(此时地址为0x80),光标归原点,但是DDRAM中内容不变;
0x18光标和显示一起向左移动;
3.5DS1302时钟电路
本电路采用DS1302时钟芯片(DS1302主要特点是采用串行数据传输),采用32768Hz晶振,两个电源Vcc1及Vcc2接电源VDD,这样如果没有交流电的供电也可以由可充电电池供电,起了掉电保护,防止实时时间数据丢失。
2脚X1(晶振引脚)及3脚X2(晶振引脚)接32786Hz的晶振,晶振旁接两个6pf的起振电容,5脚RST(复位引脚)与单片机的P1.7相连,6脚I/O(数据输入输出引脚)与单片机的P1.6相连,7脚CLK(串行时钟输入引脚)与单片机的P1.5相连,如图3.5所示。
图3.5DS1302时钟电路
3.5.1DS1302简介
DSl302是美国Dallas公司生产的一种串行实时时钟/日历芯片,以串行方式与单片机进行数据传送,它能够向单片机提供:
秒、分、时、日、月、年、及星期等实时时间信息,并能够对闰年天数自动调整,日历有效至2100年。
DSl302由双电源中较大者供电,使系统在没有主电源的情况下也能保持时钟的连续运行。
片内具有31个字节静态RAM,可用来保存重要数据。
DSl302具有引脚少、体积小、价格低等优点,得到了广泛应用。
本文对其进行详细分析和阐述并在分析其时序的基础上给出了DSl302与单片机连接的接口电路和通讯子程序。
3.5.2DS1302芯片引脚
DS1302的引脚功能描述如表3.2所示:
表3.2DS1302引脚描述
引脚号
名称
说明
Vcc2
备用电源引脚
5
CE
复位引脚
2
X1
晶振引脚
6
I/O
串行输入输出引脚
3
X2
7
SCLK
串行时钟输入引脚
4
GND
电源地引脚
8
Vcc1
主电源引脚
3.5.3DS1302内部寄存器
DS1302串行实时时钟芯片主要由移位寄存器、控制逻辑、振荡器、实时时钟及31个字节RAM组成,其内部结构如表3.3所示。
数据传送前,必须把置为高电平且把提供地址和命令信息的8位字节装入到移位寄存器。
在进行单字节传送或多字节传送时,开始的8位命令字节用于指定40个字节(31个字节RAM和9个字节时钟寄存器)中哪个将被访问。
表3.3DS1302内部寄存器
寄存器名
命令字
取值范围
各位内容
写
读
秒寄存器
80H
81H
00--59
CH
10SEC
SEC
分钟寄存器
82H
83H
10MIN
MIN
小时寄存器
84H
85H
01--12或00--23
12/24
A/M
HR
日期寄存器
86H
87H
01--28,29,30,31
10DATE
DATE
月份寄存器
88H
89H
01--12
10M
MONTH
周日寄存器
8AH
8BH
DAY
年份寄存器
8CH
8DH
00--99
10YEAR
YEAR
从上面可以看出,DS1302的寄存器存的是BCD码,用的时候要转换回十进制码。
3.5.4DS1302数据传输方式
对DS1302进行任何数据传送时,第一个数据字节必须是命令字节,格式如表3.4所示,其最高有效位MSB(位7)必须为逻辑1。
如果它是零,禁止写DS1302。
位6为逻辑0时指定传送时钟/日历数据;
逻辑1指定传送RAM数据。
位1至5指定进行输入或输出的特定寄存器的地址。
最低有效位LSB(位0)为逻辑0时指定时进行写操作(输入);
逻辑1指定进行读操作(输出)。
命令字节总是从最低有效LSB(位0)开始输入[07]。
表3.4命令字
RAM__
CK
A4
A3
A2
A1
A0
RD__
WR
3.6AT24C02数据存储电路
本电路采用AT24C02芯片,AT24C02支持I2C协议(一种总线数据传送协议),总线协议规定任何将数据传送到总线的器件作为发送器。
任何从总线接收数据的器件为接收器。
数据传送是由产生串行时钟和所有起始停止信号的主器件控制的。
A0、A1、A2接地表示该器件的地址为00H,SCK接单片机的P1.0脚,SDA接单片机的P1.1脚,如图3.6所示。
图3.6AT24C02数据存储电路
3.6.1AT24C02简介
CAT24WC02是一个2K位串行CMOSE2PROM,内部含有256个8位字节,CATALYST公司的先进CMOS技术实质上减少了器件的功耗。
CAT24WC01有一个8字节页写缓冲器,CAT24WC02/04/08/16有一个16字节页写缓冲器,该器件通过I2C总线接口进行操作有一个专门的写保护功能。
3.6.2AT24C02芯片引脚
AT24C02引脚描述如表3.5所示:
表3.5AT24C02引脚描述
引脚名称
功能描述
A0,A1,A2
器件地址选择
SDA
串行数据/地址
SCL
串行时钟
WP
写保护
Vcc
+1.8V~6.0V工作电压
Vss
电源地
SCL串行时钟:
AT24C02串行时钟输入管脚用于产生器件所有数据发送或接收的时钟,这是一个输入管脚。
SDA串行数据/地址:
AT24C02双向串行数据/地址管脚用于器件所有数据的发送或接收,SDA是一个开漏输出管脚,可与其它开漏输出或集电极开路输出进行线或(wire-OR)。
A0、A1、A2器件地址输入端:
这些输入脚用于多个器件级联时设置器件地址,当这些脚悬空时默认值为0。
当使用AT24C02时最大可级联8个器件。
如果只有一个AT24C02被总线寻址,这三个地址输入脚(A0、A1、A2)可悬空或连接到Vss,如果只有一个AT24C02被总线寻址这三个地址输入脚(A0、A1、A2)必须连接到Vss。
WP写保护:
如果WP管脚连接到Vcc,所