1、 1目 录绪论 10.1 课题背景 .10.2 国内外概况 .10.3 课题的研究工作 .2第一章 核心芯片结构原理介绍 .41.1 中央控制芯片 AT89C2051.41.11 AT89C2051 的特点 41.12 AT89C2051 的引脚功能 41.2 红外线接受模块 TSOP18xx.51.21 红外线一体化接受头 .51.22 红外线发射码组成 .61.3 时钟芯片 DS1302.61.31 DS1302 引脚功能及结构 .71.32 DS1302 的控制字 .71.33 数据输入与输出(I/O) .71.34 DS1302 的寄存器 .81.35 DS1302 与 CPU 的连接
2、 .8第二章 硬件电路设计 .92.1 电源部分硬件电路设计 .92.2 显示部分硬件电路设计 .102.3 鸣响部分硬件电路设计 .112.4 红外接收部分硬件电路设计 .112.5 时钟控制部分硬件电路设计 .122.6 电机部分硬件电路设计 .12第三章 系统软件设计 .143.1 红外线解码的设计 .143.2 DS1302 的控制程序 153.3 数码显示设计 .173.4 遥控控制部分 .18总 结 19致 谢 20参考文献 .21附 录 221绪论本章阐述了单片机控制的红外线遥控自动窗帘系统的市场价值、研究背景、国内外的现状、以及发展方向,明确指出了单片机控制的红外线遥控自动窗帘
3、系统所面临的问题及一些解决方案。0.1 课题背景生活在提高,时代在进步,人类在向文明迈进,不同的时代对居住空间、环境有不同的要求,这是社会的必然潮流。单片机控制的自动窗帘遥控系统,既能解决每天手拉开和关上窗帘的不便,又显示出了生活的档次,同时还可以根据光线的明暗来自动控制窗帘的开关,以调节室内的光线,更进一步地满足了人们的享受要求。所以该产品能形成大规模生产,很快会普及全国市场,产生巨大的经济效益;另外,除了广大市民住宅使用外,该遥控窗帘器还可以广泛应用于别墅、公寓、宾馆、饭店、写字楼、歌舞厅、影剧院、会议厅、银行、学校、医院等各种公共场所,因此该产品具有广阔的市场前景。遥控自动窗帘系统在我国
4、还刚刚兴起,但其发展前景广阔,推广和应用自动窗帘系统具有重要的现实意义。其一,改变人们的生活方式。单片机控制的遥控自动窗帘系统具有丰富的智能化功能,为家庭用户营造一个高效、舒适、便利、环保的居住环境。单片机控制的遥控自动窗帘只用一个多功能遥控器就能控制和监测住房的窗帘开关问题,给人们日上生活带来极大的方便。这些都将改变人们传统的生活方式,并提高了人们的生活质量。其二,牵动一大批产业。单片机控制的遥控自动窗帘产品面向家庭用户,其应用市场是庞大的,发展前景也是广阔的,必将吸引大批有远见的各类企业介入,从而牵动一大批产业的发展。这里最先受益的应该是房地产业,单片机控制的遥控自动窗帘不仅是一个很好的概
5、念与“卖点” ,同时也是直接提升住宅档次的一个条件,这将会给房地产商带来新的利润空间。在家居集成化、网络化的趋势下,家居集成也成为一种潮流,许多更专业的、美观的、智能化的家居集成产品相继出现。其三,开拓一个崭新的市场。遥控自动窗帘系统牵动了许多的行业,它将不仅仅是目前的 IT 系统集成商或建筑弱电工程总包商的市场,而且是专业公司和智能化装饰公司的市场。0.2 国内外概况在欧美等发达国家,电动窗帘已广泛应用。在 10 年前,电动窗帘就已经进入我国,可一直没有大的推广,这两年,随着电控技术的不断提高及价格的不断下降,电动窗帘热才又卷土重来。据了解,全国共有 170 多种电动窗帘器获得了国家专利,但
6、就其技术本身而言,还是大同小异,但售价却有很大差别,贵的要数千元,便宜的只要 500 块。尽管遥控自动窗帘系统在国内是一个新兴的行业,但是,它也正以不可抵挡之势迅速崛起。遥控自动窗帘系统走进中国以来,在短短四年的时间里,遥控自动窗帘系统生产商由最初的几家公司增加到如今的百余家企业,其行业发展之迅1速是目前国内任何其它行业所无法比拟的。目前,我国遥控自动窗帘系统生产厂商、分销商、集成商与装饰公司都形成了相当规模,不少国内知名企业纷纷涉足遥控自动窗帘系统行业,如青岛海尔、清华同方、TCL 等,并涌现出一些较具影响力的智能家居专业厂商,如上海索博智能电子有限公司、北京九州易居科技有限公司、天津瑞朗智
7、能家居电子科技有限公司、深圳市正星特科技有限公司等。自动窗帘产品已开始走进中国的家庭。具报道,我国 2004 年售出商品房 1.9 亿m,如果每 20 m需要一套窗帘架产品,仅此一项就可以年新增窗帘架产品近千万套加上。年新增窗帘架产品市场需求将不低于 2000 万套。如果单片机控制的遥控自动窗帘,销售占市场的 5%左右,就可实现年产值上亿元。随着自动窗帘热潮在世界范围内的日渐兴起,随着中国电子技术的飞速发展、人们生活水平的不断提高以及智能电子技术在生活中的广泛应用,自动窗帘已经成为未来家居装饰潮流发展的最新方向,在不久的将来,没有自动窗帘系统的住宅肯定不合潮流。从目前的发展趋势来看,在未来的
8、20 年时间里,自动窗帘行业将成为中国的主流行业之一,其市场的发展前景是非常广阔的。0.3 课题的研究工作智能家居系统是一个大的社会系统工程,我们应当加快我国智能家居标准化进程。自动窗帘系统作为智能家居中一个很重要的部分,需要在我国智能家居这一领域,建立起一个具有中国特色的新兴、健康的产业链。让自动窗帘系统在我国并不是远在天边,而是近在眼前。现有的电动窗帘机的控制方式有固定式开关控制、遥控、光控、声控等,其中以前两种形式居多。就实用程度和经济角度来说,用固定式开关控制方式较好,这是因为窗帘的开闭不像电视机等家电产品开闭得那样频繁,每天开闭的次数不多,因此安装在固定的地方使用也相当方便,如把开关
9、装在床头柜等电器综合控制系统中,睡在床上就能控制窗帘的开闭。利用触摸开关,实现全自动断电,既安全又节能,但最重要的一点就是没有实现完全的自动化,没的摆脱对人的依赖作用。而采用遥控控制时,需要候机电源,不可能完全断电而且增加遥控功能,也增加了成本,售价也相应提高。窗帘机的控制方式大体上有三种:声控、光控、时控,声控和遥控属于半自动类;而光控虽属全自动式,但因光敏器件的灵敏度,冬夏等不同季节的光照度的不同,以及人们对起闭窗帘在时间上的要求不同,而难以实施和普及。因此,时控式的全自动窗帘机便成了专业以及业余电子设计人员的热门课题。根据以上自动窗帘有些不能实现完全的自动化;有些虽然实现了完全的自动化,
10、但结构复杂,性能不够稳定;有些虽然实现了完全的自动化,且性能还可以,但价格昂贵不适合普通消费者使用。所以我想利用价格相对便宜的红外线遥控发射芯片、单片机作为主要控制器件,来完成该系统的设计。该系统主要有如下几方面的特点:1.发射红外线的发射装置采用一般彩色电视机的遥控器,这样既方便又实惠,可谓一物两用。2.时间控制开关窗帘。通过对 DS1302 芯片的设定,让用户可以随自己的生活习惯方便的自动开关窗帘,无需手动。3.采用红外遥控方式,不会干扰其它电器的正常工作,也不会影响邻近的无线设备。超距离遥控,可达 89m。4.另一种控制方式为手动控制方式,防止停电后采用手动控制。15.美观。以往的遥控电
11、动窗帘都是向一边拉或向上拉,而本设计为向两边打开,随个人的爱好可以控制其大小。6.体积小、结构简单、灵敏度高、抗干扰性强、经济实用、工作可靠。1第一章 核心芯片结构原理介绍为使基于单片机控制的红外线遥控系统在实际使用过程中方便快捷,并且具有较高的性能/价格比,所以对该系统的原器件作了精心挑选。按在实际工作中的作用,可分为以下几个部分:AT89C2051 单片机是整个电路的核心,它控制其它模块来完成各种复杂的操作;红外线一体化接受头负责接受命令;芯片 DS1302 负责时钟的运行及设置参数的存储。1.1 中央控制芯片 AT89C205189C2051 是由 ATMEL 公司推出的一种小型单片机,
12、95 年出现在中国市场。其主要特点为采用 Flash 存贮器技术,降低了制造成本,其软件、硬件与 MCS-51 完全兼容,且采用 ATMEL 高密度非易失存储器制造技术制造,将多功能 8 位 CPU 和闪烁存储器组合在单个芯片中,可以很快被中国广大用户接受。其程序的电可擦写特性,使得开发与试验比较容易,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。1.11 AT89C2051 的特点89C2051 有很宽的工作电源电压,可为 2.76V,当工作在 3V 时,电流相当于 6V 工作时的 1/4。89C2051 工作于 12Hz 时,动态电流为 5.5Ma,空闲态为 1mA,掉电状态仅为 2
13、0nA。这样小的功耗很适合于电池供电的小型控制系统。AT89C51 具有以下几个特点:AT89C2051 与 MCS-51 系列的单片机在指令系统和引脚上完全兼容;片内有 4k 字节在线可重复编程快擦写程序存储器;全静态工作,工作范围:0Hz24MHz;三级程序存储器加密;1288 位内部 RAM;32 位双向输入输出线;两个十六位定时器/计数器;五个中断源,两级中断优先级;一个全双工的异步串行口;间歇和掉电两种工作方式。1.12 AT89C2051 的引脚功能AT89C2051 的接口线包括:P0、P1、P2、P3 共四个八位口。1. P0 口是三态双向口,通称数据总线口,因为只有该口能直接
14、用于对外部存储器的读/写操作。P0 口也用以输出外部存储器的低 8 位地图 1 址。由于是分时输出,故应在外部加锁存器将此地址数据锁存,地址锁存,信号用 ALE。2. P1 口是专门供用户使用的 I/O 口,是准双向口。3. P2 口是从系统扩展时作高 8 位地址线用。不扩展外部存储器时,P2 口也可以作为用户 I/O 口线使用,P2 口也是准双向口。14. P3 口是双功能口,该口的每一位均可独立地定义为第一 I/O 功能或第二I/O 功能。作为第一功能使用时操作同 P1 口。P3 口的第二功能如表 1.1 所示。1.2 红外线接受模块 TSOP18xx遥控器发射装置首选家用彩电遥控器。因为
15、目前,彩电和 VCD 已走进千家万户,而其所带的红外线遥控器给这些家电的操作带来了极大的方便,而接受只需一个红外线一体化接受头就行了。近年来,随着信息技术的飞速发展,无线通信技术正在向各个领域渗透,特别是利用红外线进行通信无论从小型化、轻量化、还是从安全性等方面考虑,其可行性都比较高。红外数据通讯实际是利用红外线作为通讯载体,由红外发射器和红外接收器来完成信号的无线收发。在发射端,对发送的数字信号经适当的调制后,送入电光变换电路,驱动红外发光二极管发射红外光脉冲;在接收端,红外接收器对收到的红外信号进行光电变换,并进行解调后,恢复出原信号。在红外数据通讯中,红外接收器件的选择是红外数据通讯中至
16、关重要的因素。1.21 红外线一体化接受头TSOP18xx 系列是 Temic 公司新近推出的一体化红外线接收模块,集红外线接收、放大、解调于一体,不需要任何外接元件,就能完成从红外线接收到输出与 TTL 电平信号兼容的所有工作;而体积只有普通三极管大小一样,适合各种红外线遥控和红外线数据传输,其传输距离大于 4 米。红外线接收模块 TSOP18xx 系列的管脚分布如图 1.2 所示,1、2 分别为电源和地,3 为信号输出端,其输出电平和 TTL 电平兼容。TSOP18xx 系列的特性如下:多种接收频率可供选择:30KHz、33KHz、36KHz、36.7K Hz、38KHz、40KHz、56
17、KHz;大范围工作电压:(3-6) V;工作电流:3mA;遥控距离:大于 4m.端口引脚 引脚功能P3.0 RXD(串行口输入端)P3.1 TXD(串行口输出端)P3.2 0(外部中断 0 请求端,低电平有效)INTP3.3 (外部中断 1 请求端,低电平有效 )INT1P3.4 T0(定时器/计数器 0 计数脉冲输入端)P3.5 T1(定时器/计数器 1 计数脉冲输入端)P3.6 (外部数据存储器写选通输出端)WRP3.7 (外部数据存储器读选通输出端)RD表 1.1 P3 口引脚功能说明图 1.2 TSOP18xx1内置金属保护装置;综合限幅电路功能;多种主要传输码;智能自动增益控制 (A
18、GC)。TSOP18 xx 系列红外线模块接收器的受光面一侧为黑色环氧聚焦滤波透镜,此透镜消除了可见光对它的干扰,对于提高可靠性及滤除光噪声至关重要。模块内含红外线 PIN 接收管、前置放大器和解调器。当红外线发射器发出的信号经空间传送到 TSOP18 xx 系列模块时 ,模块内部 PIN 红外线接收管将红外光转换为电信号,该信号经前置放大、解调后由 3 脚输出与 TTL 电平兼容的电信号,该信号能直接送入到微控器等要求 TTL 电平信号输入的芯片中。1.22 红外线发射码组成要使用红外线一体化接受头接受遥控器发射的红外线,再通过单片机解码,那就。必须先了解红外线发射器所发射的红外线码的组成。
19、一般的彩电、VCD 遥控器的编码,大概有以下两种编码格式(Format) 。第一种格式为 1913、9012、1621 格式;第二种为 3010 格式。其中尤以第一种格式用得最多。要识别一个遥控器的格式很简单,只要把遥控器拆开,看它所用的集成块型号就知道,比如 uPD1621、SAA3010,其格式就是 1621、3010 格式。下面分别具体说明这两种编码格式。第一种格式以 1621 为例,当按下遥控器上的某个按键时,遥控器将发射出一帧数据,帧数据的编码格式由三部分组成:引导码(Lead code) 、客户码(Custom code)和数据码(Data code) , 对于一个遥控器来说,每个
20、按键所发射的帧数据的客户码总是一样的,有区别的只是数据码。其中 9012 和 1913、1621 格式的唯一区别就是引导码的高电平宽度不一样,9012 格式为 4.5ms,1913 和 1621 格式为 9ms。帧结构中的客户码和数据码各有两个字节,第一个字节和第二个字节互为按位取反,其中客户码的高 4 位与低 4 位又互为按位取反。 0码由 0.56ms 高电平和 0.565ms 低电平组合而成、 1码由 0.56ms 高电平和 1.69ms 低电平组合而成。码元的高电平信号采用 38kHz 矩形波(载波)调制发射,载波占空比(Duty)为 1/3,低电平无信号发射。第二种格式 3010 与
21、第一种格式截然不同,它是以信号脉冲的上升沿和下降沿来分别表示1码和0码的。每一帧由起始位(Start bit)、扩展位(Enlarged bit)、翻转位(Toggle bit)、系统位(System bit)和数据位(Data bit)组成。1.3 时钟芯片 DS1302DS1302 是美国 DALLAS 公司推出的一种高性能、低功耗、带 RAM 的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为 2.5V5.5V。采用三线接口与 CPU 进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或 RAM 数据。DS1302 内部有一个 318 的用于
22、临时性存放数据的 RAM 寄存器。DS1302 是 DS1202 的升级产品,与 DS1202 兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充1电的能力。1.31 DS1302 引脚功能及结构DS1302 的引脚排列,其中 Vcc1 为后备电源,VCC2 为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302 由 Vcc1 或 Vcc2 两者中的较大者供电。当 Vcc2 大于 Vcc10.2V 时,Vcc2 给 DS1302 供电。当 Vcc2 小于 Vcc1时,DS1302 由 Vcc1 供电。X1 和 X2 是振荡源,外接 32.768kHz 晶
23、振。RST 是复位/片选线,通过把 RST 输入驱动置高电平来启动所有的数据传送。RST 输入有两种功能:首先,RST 接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST 提供终止单字节或多字节数据的传送手段。当 RST 为高电平时,所有的数据传送被初始化,允许对 DS1302 进行操作。如果在传送过程中 RST 置为低电平,则会终止此次数据传送,I/O 引脚变为高阻态。上电运行时,在 Vcc2.0V之前,RST 必须保持低电平。只有在 SCLK 为低电平时,才能将 RST 置为高电平。I/O 为串行数据输入输出端(双向),后面有详细说明。SCLK 为时钟输入端。 下图 1.3 为
24、DS1302 的引脚功能图:1.32 DS1302 的控制字DS1302 的控制字如图 1.4 示。控制字节的最高有效位(位 7)必须是逻辑1,如果它为 0,则不能把数据写入 DS1302 中,位 6 如果为 0,则表示存取日历时钟数据,为 1 表示存取 RAM 数据;位 5 至位 1 指示操作单元的地址;最低有效位(位 0)如为 0 表示要进行写操作,为 1 表示进行读操作,控制字节总是从最低位开始输出。1 RAM A4 A3 A2 A1 A0 RAM K1.33 数据输入与输出 (I/O)在控制指令字输入后的下一个 SCLK 时钟的上升沿时,数据被写入图 1.3 DS1302 引脚功能图图
25、 1.4 DS1302 的控制字1DS1302,数据输入从低位即位 0 开始。同样,在紧跟 8 位的控制指令字后的下一个 SCLK 脉冲的下降沿读出 DS1302 的数据,读出数据时从低位 0 位到高位7。1.34 DS1302 的寄存器DS1302 有 12 个寄存器,其中有 7 个寄存器与日历、时钟相关,存放的数据位为 BCD 码形式,其日历、时间寄存器及其控制字见图 1.5。此外,DS1302 还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与 RAM 相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。DS1302 与 RAM 相关的寄存器分为两类:一
26、类是单个 RAM单元,共 31 个,每个单元组态为一个 8 位的字节,其命令控制字为C0HFDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的 RAM 寄存器,此方式下可一次性读写所有的 RAM 的 31 个字节,命令控制字为 FEH(写)、FFH(读)。命令字 各位内容寄存器名称写 读 取值范围 7 6 5 4 3 2 1 0秒寄存器 80H 81H 00-59 CH 10SEC SEC分寄存器 82H 83H 00-59 0 10MIN MIN小时寄存器 84H 85H 01-12 或 00-23 12/24 0 A HR HR日期寄存器 86H 87H 01-28,29,30,3
27、1 0 0 10DATE DATE月份寄存器 88H 89H 01-12 0 0 0 10M MONTH周寄存器 8AH 8BH 01-07 0 0 0 0 0 DAY年份寄存器 8CH 8DH 00-99 10YEAR YEAR1.35 DS1302 与 CPU 的连接DS1302 与 CPU 的连接需要三条线,即 SCLK(7)、I/O(6)、RST(5)。其中,时钟的显示用 LCD。实际上,在调试程序时可以不加电容器,只加一个 32.768kHz 的晶振即可。只是选择晶振时,不同的晶振,误差也较大。另外,还可以在上面的电路中加入 DS18B20,同时显示实时温度。只要占用 CPU 一个口
28、线即可。 LCD 还可以换成 LED,还可以使用北京卫信杰科技发展有限公司生产的 10 位多功能 8 段液晶显示模块 LCM101,内含看门狗(WDT)/时钟发生器及两种频率的蜂鸣器驱动电路,并有内置显示 RAM,可显示任意字段笔划,具有 34 线串行接口,可与任何单片机、IC 接口。功耗低,显示状态时电流为 2A (典型值),省电模式时小于1A,工作电压为 2.4V3.3V,显示清晰。图 1.5 DS1302 寄存器与控制字对照表1第二章 硬件电路设计电路分为七个部分,分别是电源部分、显示部分、鸣响提示部分、红外线接收部分、时钟控制部分、电机控制执行部分、单片机主控器件部分。下面逐一分析:2
29、.1 电源部分硬件电路设计通过一带有整流电路的 12V 变压器外接市电(220V)后,输入直流 12V 电压,如图 2.1 所示。右边两个是 12 伏的电源滤波电容,一般大电容旁边并联一个小电容的目的是降低高频内阻,因为大的电解电容一般采用卷绕工艺制造,所以等效电感较大,小电容可以提供一个小内阻的高频通道,降低电源全频带内阻。然后输出电压为+12V 的 VDD,为控制继电器提供工作电压。同时经过 3端集成稳压器 LM7805 稳压后输出+5V 电压 VBB,为讯响电路、红外接收电路、显示电路提供电源,5V 电源经过二极管 D4、限流电阻 R18=51 后,为单片机提供VCC 电压,BATTER
30、Y 是直流供电电源,电压为 3V3.6V,在本电路中为了节省成本,使用两节 5 号普通电池,C6 和 C7 是单片机电源滤波电容。平时交流电正常的情况下,5V 电源为单片机供电的同时,也为电池浮充电,大大延长了电池的使用寿命,当交流电停电的时候,电池仅为单片机供电,单片机在掉电状态下维持时钟的正常走时,VBB 供电被 D4 隔断。在控制器设置成手动控制时,单片机除执行任务外,均处于睡眠状态,遥控器信号的到来,单片机从睡眠中唤醒,恢复正常工作,所以手动状态下当交流停电时,电池的耗电电流更小。图 2.1 供电部位电路设计图纸此处为市电 220V 交流供电电源此处为 12V 直流供电电源12.2 显
31、示部分硬件电路设计显示电路设计,考虑到本设计是作为一般家庭的自动控制窗帘,所以采用的是四位数码管来显示实时时间、调开窗帘时间、关窗帘时间,在开窗帘、关窗帘的时候在数码管上不作任何提示,但是伴随有声音提示。这部分电路最大的优点就是经济实惠,最大的缺点就是欠美观及不能反映窗帘动作情况。如果此系统作为大型别墅、宾馆、饭店、写字楼、歌舞厅、影剧院、会议厅、银行、学校、医院等各种公共场所,可以把这部分电路设计为液晶屏显示,当然显示的就不仅仅是时间了,还包括年、月、星期。四位数码管显示,如图 2.2 所示,在一般情况下显示实时时间,在需要调节开窗帘时间的时候,通过软件的控制作用,数码管将显示此开定时时间;
32、同样在需要调节关窗帘时间的时候,数码管将显示此关定时时间。因为在开窗帘、关窗帘、停窗帘的时候有明显的动作现象,很容易观察到,所以没有设定在数码管上显示出来。P1 口的 P1.0、P1.1、P1.2、P1.3 分别接四个三极管,当其中一个引脚背拉为低电平的时候,与该引脚相连的三极管便导通,此三极管便驱动与它相连接的数码管,然后送入该位应该显示的字形码。此引线接低电平图 2.2 数码显示部分硬件电路12.3 鸣响部分硬件电路设计鸣响电路可以设计成一个单独的单元来控制,用一个独立的按键来控制它的开与关,但是红外 线发射遥控器是采用彩色电视机上的遥控 器,而非专用遥控器,考虑到使用的按键较 多时容易让
33、用户记不清各个键对应的功能, 所以容易产生误操作;别外考虑到可以选取 一个功率比较小,声音比较悦耳的陶瓷喇 叭,这个喇叭一方面能掩盖电机和窗帘发 出来的噪声,另一方面也能作为检错用。 一般情况下人们不会把它当噪声来看待。鸣响电路与单片 机的一个 P 口引脚相连,应程序设定在开 窗帘和关窗帘的时候都会伴随着声音。喇 叭采用小功率的陶瓷音源,声音不会很大。 音频信号输出,音频信号通过 R20、C10 输入到三极管 V6 的基 极上,放大后推动发声器 Y1 发。二极管 D3 用来提供 C10 的放电回路,保证交流信 号的正常耦合。2.4 红外接收部分硬件电路设计红外线接收电路使用一个集成红外接收器,
34、型号是图 2.3 鸣响部分硬件电路设计此引线接低电平此引线接P3.2图 2.4 红外接收硬件电路图1TSOP1838,静态时输出端输出高电平,当接收到红外信号后,按红外信号的数据波形输出负脉冲数据信号。红外信号输出到单片机的 P3.2 ,该口对应的第二功能是外部中断 0 (INT0),利用该口的第二功能,一旦红外线信号到来,P3.2被拉低,单片机中止当前的工作转移到接收、处理红外信号。开启中断功能的目的,既减轻了单片机的工作负担,又保证接收到的红外信号的完整性,同时在手动工作状态下,单片机进入睡眠后,利用外部中断功能完成对单片机的唤醒。2.5 时钟控制部分硬件电路设计DS1302 主要特点是采
35、用串行数据传输,可为掉电保护电源提供可编程的充电功能,并且可以关闭充电功能。采用普通 32768Hz 晶振,开窗帘时间,关窗帘时间都保存在 DS1302 自带的 RAM 中,不需要单独的 EEPROM。要特别说明的是备用电源 B1,可以用电池或者超级电容(10 万 uF 以上) 。虽然 DS1302 在主电源掉电后,耗电很小,但如果要长时间保证时钟正常,最好选用小型充电电池。可以用老式电脑主板上的那种 3.6V 充电电池。如果断电时间较短(几小时或几天)时,就可以用漏电较小的普通电解电容代替。100uF就可以保证 1 小时的正常走时。DS1302 在第一次加电后,须进行初始化操作,初始化后就可
36、以按正常方法调整时间及升降窗帘时间。如下图 2.5 所示。2.6 电机部分硬件电路设计电机执行电路,为了减轻单片机的工作负荷,提高单片机的抗干扰能力,所以电机不直接由单片机来驱动。当继电器的触点打开时,没有漏电流.也就是说,断开状态的电阻非常大(接近无穷大),此时触点两侧的电压可达 1500V;当触图 2.5 时钟控制部分电路设计1点合上时,接通电阻极低,所以继电器的功率非常小.因此继电器不会发热,通常也不需要散热器;电磁继电器的购买成本通常比半导体驱动器件低;继电器的打开时间一般是毫秒级的,相比之下,半导体开关的开关时间是微秒级的。电机执行部分完全受单片机的控制,通过单片机的 P3.0 和
37、P3.1 完成。单片机复位状态下 P3.0 和 P3.1 输出高电平,三极管 V1、V2,V4、V5 截止,两个继电器 J1、J2 释放状态,方向可逆的电动机因无电源供电而停止。当 P3.0 或者 P3.1其中有一个被拉低后,两个继电器便会有一个导通,例如 P3.0 拉低后 V1 导通、V4 导通,J1 吸合,电机得电转动,当只有 P3.1 拉低后,电机则反方向转动,实现了窗帘的拉开和关闭。两个继电器的工作状态受单片机控制,在同一个时间内两个继电器仅能有一个吸合。即便是在电机工作期间,操作了反向转动按键,单片机也是先释放当前工作的继电器,并延时一段时间后再吸合另外一个继电器,防止了电机正反工作
38、线圈同时通电的冒险。电路图见下图 2.6。接控制线 P3.0接控制线P3.1图 2.6 电机控制部分电路设计1第三章 系统软件设计该系统最重要的部分就是程序的编写,如果软件编写的科学就能体现出该系统功能的完整性、实用性、经济性。软件部分的编写主要分为红外线解码程序、时钟芯片 DS1302 控制程序、数码显示程序、遥控控制程序这四大部分来阐述。3.1 红外线解码的设计该系统采用长虹彩电 K11F 型遥控器,产生的遥控编码是连续的 32 位二进制码组,其中前 16 位为用户识别码,能区别不同的电器设备,防止不同机种遥控码互相干扰。该芯片的用户识别码固定高 8 位地址为 0BFH,低 8 位地址为4
39、0H;后 16 位为 8 位操作码(功能码)及其反码。遥控器在按键按下后,周期性地发出同一种 32 位二进制码,周期约为108ms。一组码本身的持续时间随它包含的二进制“0“和“1“的个数不同而不同,大约在 4563ms 之间。当一个键按下超过 36ms,振荡器使芯片激活,将发射一组 108ms 的编码脉冲,这 108ms 发射代码由一个起始码(9ms),一个结果码(4.5ms),低 8 位地址码(9ms18ms),高 8 位地址码(9ms18ms),8 位数据码(9ms18ms)和这 8 位数据的反码(9ms18ms)组成。如果键按下超过 108ms 仍未松开,接下来发射的代码(连发代码)将
40、仅由起始码(9ms)和结束码(2.5ms)组成。代码宽度算法:16 位地址码的最短宽度:1.1216=18ms 16 位地址码的最长宽度:2.24ms16=36ms。易知 8 位数据代码及其 8 位反代码的宽度和不变:(1.12ms+2.24ms)8=27ms。所以得 32 位代码的宽度为(18ms+27ms)(36ms+27ms)解码的关键是如何识别“0 和“1“,代码格式(以接收代码为准,接收代码与发射代码反向)。从位的定义我们可以发现“0“、“1“均以 0.56ms 的低电平开始,不同的是高电平的宽度不同,“0“为 0.56ms,“1“为 1.68ms,所以必须根据高电平的宽度区别“0“
41、和“1“。如果从 0.56ms 低电平过后,开始延时,0.56ms 以后,若读到的电平为低,说明该位为“0“,反之则为“1“,为了可靠起见,延时必须比0.56ms 长些,但又不能超过 1.12ms,否则如果该位为“0“,读到的已是下一位的高电平,因此取(1.12ms+0.56ms)/2=0.84ms 最为可靠,一般取 0.84ms 左右均可;根据码的格式,应该等待 9ms 的起始码和 4.5ms 的结果码完成后才能读码。根据以上分析可得出解码程序流程如下:有信号产生中断EA 清零延时小于 9ms(低电平)等待高电平的到来延时小于 4.5ms(高电平)等待下一次高电平的到来延时 0.84ms 左
42、右读区P3.2 脚电平值再等待下一次高电平的到来延时 0.84ms 左右读取 P3.2 脚电平值,依次取得 32 位代码,前 16 位为识别码,后 18 位既为 8 位数据码和 8 位1数据反码。集体流程框图见 3.1。13.2 DS1302 的控制程序I2C 总线是由数据线 SDA 和时钟 SCL 构成的串行总线,可发送和接收数据。在 CPU 与被控 IC 之间、IC 与 IC 之间进行双向传送,最高传送速率 100kbps。各种被控制电路均并联在这条总线上,但就像电话机一样只有拨通各自的号码才能工作,所以每个电路和模块都有唯一的地址,在信息的传输过程中, I2C 总线上并接的每一模块电路既
43、是主控器(或被控器),又是发送器(或接收器),这取决于它所要完成的功能。CPU 发出的控制信号分为地址码和控制量两部分,地址码用来选址,即接通需要控制的电路,确定控制的种类;控制量决定该调整的类别(如对比度、亮度等)及需要调整的量。这样,各控制电路虽然挂在同一条总线上,却彼此独立,互不相关。I2C 总线在传送数据过程中共有三种类型信号,它们分别是:开始信号、结束信号和应答信号。开始信号:SCL 为高电平时,SDA 由高电平向低电平跳变,开始传送数据。结束信号:SCL 为低电平时,SDA 由低电平向高电平跳变,结束传送数据。 应答信号:接收数据的 IC 在接收到 8bit 数据后,向发送数据的
44、IC 发出特定的低电平脉冲,表示已收到数据。CPU 向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU 接收到应答信号后,根据实际情况作出是否继续传递信号的判断。若未收到应答信号,由判断为受控单元出现故障。目前有很多半导体集成电路上都集成了 I2C 接口。带有 I2C 接口的单片机有:CYGNAL 的 C8051F0XX 系列,PHILIPSP87LPC7XX 系列,MICROCHIP 的PIC16C6XX 系列等。很多外围器件如存储器、监控芯片等也提供 I2C 接口,DSl302 有单字节传送方式和多字节传送方式。通过把复位线驱动至高电平来启动所有的数据传送。复位线有两种功能,首
45、先接通控制逻辑,允许地址命令序图 3.2 DS1302 读实时时间80H88HR_BIT(DS1301 时间地址)60H66HW_BIT(2051 时间地址)CLK=1,RST=1CLK=0,RST=0CLK=0,RST=1图 3.1 红外中断,接收信号N有信号,中断接受解码跳出识别码正确否?与实际键值(10 个)比较,转出执行相应动作中断返回Y1列送入移位寄存器;其次,提供了中止单字节或多字节数据传送的手段。 数据输入时,时钟的上升沿数据必须有效,数据的输出在时钟的下降沿。如果为低电平,那么所有的数据传送将被中止且 I0 引脚变为高阻状态。上电时,在 Vcc2.5 伏之前,必须为逻辑 0。当
46、把驱动至逻辑 1 状态时,SCLK 必须为逻辑0。单字节数据输入跟随在写命令字节的 8 个 SCLK 周期之后,在随后的 8 个 SCLK 周期的上升沿输入数据字节,数据从位 0 开始输入,如图 3.3。多字节数据输出跟随在输入读命令字节的 8 个 SCLK 周期之后,在随后的 8 个 SCLK 周期的下降沿输出数据字节,数据从位 0 开始输出,如图 3.4。读取实时时间过程流程见框图 3.2;DS1302 初始化流程见框图 3.5;修改RAM 值见框图 3.6。图 3.3 单字节传送方式图 3.4 多字节传送方式图 3.5 DS1302 初始化过程Clk=0,rst=0Clk=0,rst=1
47、8EHR_BIT( 写入 DS1302)00HR_BIT( 开允许写入)Clk=1,rst=0Clk=0,rst=180H88HR_BIT (DS1301 时间地址)60H66HR_BIT(2051 时间地址)Clk=1,rst=0Clk=0,rst=190HR_BIT( 充电方式地址 )10100101BR_BIT(充电方式)Clk=1,rst=0Clk=0,rst=18EHR_BIT( 写入 DS1302)80HR_BIT(关允许写入)CLK=1,RST=013.3 数码显示设计数码管的显示程序由定时计数器来设定,既大约 200ms 后定时计数器就会产生中断,在中断子程序里面,数码管会根据
48、具体情况执行不同的显示子程序。第一种显示方式:正常时间显示,先使与第一个数码管相连的三极管导通即把 P1.3置一,接着把分钟个位(61H 的低四位)的字形码送入 P0 口,延时一段时间,让第一个三极管截止,第二个三极管导通,把分钟十位(62H 的高四位)的字形码送如P0 口,延时一段时间,至此分钟就显示完了。接着以同样的方式送第三位、第四位到小时的个位、十位;第二种显示方式:调开窗帘的时间,如果 02H 为高电平就表明用户在调开窗帘的定时时间,这样就必须显示开窗帘的定时时间(6AH、6BH),显示方式与正常时间显示一样。第三中显示方式:调关窗帘的时间,如果 03H 为高电平就表明用户在调关窗帘
49、的定时时间,这样就必须显示关窗帘的定时时间(6CH、6DH),显示方式与正常时间显示一样。框图见 3.7。图 3.6 修改 RAM 过程CLK=1,RST=0Clk=0,rst=0Clk=0,rst=18EHR_BIT(写入 DS1302)00HR_BIT(开允许写入)R1R_BIT(地址)R0R_BIT(数据)Clk=1,rst=0Clk=0,rst=18EHR_BIT(写入 DS1302)80HR_BIT(关允许写入)图 3.7 定时中断到,显示NNYY02H 为 1 否 显示开窗帘时间定时计数器 1 中断03H 为 1 否 显示关窗帘时间显示正常时间中断返回13.4 遥控控制部分遥控控制部分就是根据遥控器发送的编码来执行需要的任务,其中包括:开窗帘、关窗帘、停止移动(把窗帘设置成半开状态)、调节实时时间,(按一下此键,再按加、减键即可使实时时间增加一或减小一)、调节开窗帘时间、调节关窗帘时间、时间增加、时间减小、开/关自动开关帘、开/关自动关窗帘。具体实施措施为: 1.接收到的红外线码值为 10H,转入执行 stop 子程序,此时 P3.0、P3.1 两个引脚都