论文题目:
河南机电高等专科学校
毕业设计论文
系 部 电子通信工程系 专 业 应用电子技术 班 级 0 9 2 学生姓名 学 号 0 9 0 4 1 5 1 1 9 指导教师
2012年4月1日
家用智能窗帘控制系统
河南机电高等专科学校毕业设计论文
摘要
随着电子技术产业结构调整,生产工艺的飞速发展,人们生活水平的不断提高,家用电器逐渐普及,市场对于红外遥控控制系统的需求也越来越大。高精度、多功能、低功耗,是现代科技发展的趋势。在这种趋势下,窗帘的数字化、智能化已经成为现代生产研究的主导设计方向。万用遥控器存储有很多家电遥控器的编码,最大缺点是灵活性差,即使是采用同一遥控芯片的遥控器可以选取不同的识别码(客户码)和命令码(数据码),从而构成几乎无数种具体的用法。新的遥控编码组合随新的家电机型层出不穷,导致采用专用集成电路(ASIC)或掩模型单片机(MaskROM MPU)制作的万用遥控芯片总会对一些设备,而且是越来越多的设备无法起作用。学习型遥控器是将原家电遥控器对准学习型遥控器的接收器逐一按键,从而准确地记录该遥控器的波形,应用时再将这一波形再现、发射出去。这样的优点是通用性强,缺点是遥控器内存储器的容量极基有限,一般只能记录数十人键的波形,更换设备就更重新学习。 家电控制器不象万用遥控器那样具体到芯片的每一种应用以及每个码的功能,也不需要象学习型遥控器那样机械地记录每个按键的波形,而是综合了遥控编码方式的诸多因素形成特征字,将需要改变的部分数据编码分离出来由PC机软件去处理,极大地节省了数据存储量而又完全不失通用性。这样一来就具备了二者的优点而克服了相应的缺点。
单片机在电子产品中的应用已经越来越广泛,在很多的电子产品中也用到了红外控制。随着窗帘红外控制器应用范围的日益广泛和多样,各种适用于不同场合的窗帘控制器应运而生。红外线窗帘遥控控制器是最新研制的一种高科技产品,它不但取代原有的无线遥控窗帘控制器,而且工作可靠,4种不同的工作方式任意选择,数字自动测试环境亮度,整点报时,电机工作鸣响提示,数码时钟等功能,满足不同用户的需要。
关键词:多功能,红外遥控,定时,事件,编程
1
河南机电高等专科学校毕业设计论文
Abstract
As the electronic technology industrial structure adjustment, the rapid development of the production process, people living standard rise ceaselessly, household appliances grew in popularity, market infrared remote control system for the demand is growing. High precision, multi-function, low power consumption, is the trend of the development of the modern science and technology. In light of the trend, the curtain of digital, intelligent has become the leading modern production research design direction. Universal remote control storage have many home appliance of remote control code, the biggest drawback is poor flexibility, even if it's the same remote control chip can select different for a remote control (customer yards) and command code (data yards), make almost countless kind of specific usage. The new remote control code with new home appliance combination model emerge in endlessly, lead to use of a special integrated circuit (ASIC) or their model SCM (MaskROM MPU) make remote control chip has always some multi-purpose equipment, and is more and more equipment to work. Learning is the remote control on the learning of the remote control home appliance remote control each receiver key, can be accurately record the remote control of the waveform, the application will be the wave to reproduce, launch out. Such advantages is a universality, the disadvantage is within the capacity of the storage extremely remote control and limited, general can only record dozens of key waveforms, changing equipment is more to learn. Home appliance controller does not like universal remote control that are specific to the chip every application and the function of each code, also do not need like learning remote control that mechanical record of each key, wave, but combines the coding method of remote control of the many factors form feature words, will need to change part of the data coding separated by a PC software to handle, greatly saves data storage and completely do not break generality. So they have both of the advantages and overcome the shortcomings of the corresponding.
The application of microcomputer in the electronic products already more and more widely, in many electronic products used to control and infrared. As the curtain ir controller the scope of application of increasingly widely and diversity, all kinds of suitable for different occasions curtain controller arises at the historic moment. Infrared remote controller are newly developed curtain of a kind of high-tech products, it not only replace original wireless remote control curtain controller, and reliable work, four different ways of working any choice, digital automatic test environment brightness, on the hour hour, motor ring tip, a digital clock, and other functions, meet the needs of different users.
Keywords: multi-function, infrared remote control, timing, events, programming
2
河南机电高等专科学校毕业设计论文
目录
目录
摘要 .............................................................................................................................................................. 1 绪论 .............................................................................................................................................................. 4 1.1窗帘红外遥控器设计目的 ........................................................................................................... 4 1.2窗帘红外遥控器完成的功能 ....................................................................................................... 4 1.3课题研究工作 ............................................................................................................................... 4 1.4国内外概况 ................................................................................................................................... 5 第二章 总体设计方案 ................................................................................................................................ 7 第三章 核心芯片结构原理介绍 ................................................................................................................ 9 3.1中央控制芯片 AT89C2051 ....................................................................................................... 9
3.11 AT89C2051的特点 ............................................................................................................... 9 3.12 AT89C2051的引脚功能 ....................................................................................................... 9 3.21 红外线一体化接收头 .......................................................................................................... 11 3.22 红外线发射码组成 ............................................................................................................ 11 3.3 时钟芯片 DS1302 ............................................................................................................... 12 3.31 DS1302引脚功能及结构 ................................................................................................... 12 3.32 DS1302的控制字 ............................................................................................................... 13 3.33数据输入与输出(I/O) ......................................................................................................... 13 3.34 DS1302的寄存器 ................................................................................................................. 13 3.35 DS1302与CPU的连接 ......................................................................................................... 14
第四章硬件电路设计 ................................................................................................................................ 15 4.1电源部分硬件电路设计 ............................................................................................................. 15 4.2显示部分硬件电路设计 ............................................................................................................. 16 4.3音响部分硬件电路设计 ............................................................................................................. 17 4.4时钟控制部分硬件电路设计 ..................................................................................................... 18 4.5时钟电路和复位电路 ................................................................................................................. 18 第五章 系统软件设计 .............................................................................................................................. 21 致谢 ............................................................................................................................................................ 28 参考文献 .................................................................................................................................................... 29 附录 ............................................................................................................................................................ 30
3
河南机电高等专科学校毕业设计论文
绪论
1.1窗帘红外遥控器设计目的
随着社会信息化的加快,人们的工作、生活和通讯、信息的关系日益紧密。信息化社会在改变人们生活方式与工作习惯的同时,也对传统的住宅提出了挑战,社会、技术以及经济的进步更使人们的观念随之巨变。人们对家居的要求早已不只是物理空间,更为关注的是一个安全、方便、舒适的居家环境。
随着电子技术产业结构调整,生产工艺的飞速发展,人们生活水平的不断提高,家用电器逐渐普及,市场对于红外遥控控制系统的需求也越来越大。高精度、多功能、低功耗,是现代科技发展的趋势。在这种趋势下,窗帘的数字化、智能化已经成为现代生产研究的主导设计方向。
单片机在电子产品中的应用已经越来越广泛,在很多的电子产品中也用到了红外控制。随着窗帘红外控制器应用范围的日益广泛和多样,各种适用于不同场合的窗帘控制器应运而生。红外线窗帘遥控控制器是我厂最新研制的一种高科技产品,它不但取代原有的无线遥控窗帘控制器,而且工作可靠, 4种不同的工作方式任意选择,数字自动测试环境亮度,整点报时,电机工作鸣响提示,数码时钟等功能,满足不同用户的需要。
1.2窗帘红外遥控器完成的功能
本文介绍一款使用微电脑管理的、红外遥控器控制的多功能窗帘控制器。该窗帘控制器采用89c2051单片机的最小系统设计,控制一个220v的可逆、变速电动机控制窗帘的拉开和关闭。窗帘控制器可以使用红外遥控器进行远程手动开、手动关和手动停控制;可以执行事先输入的开启时间和关闭时间进行时间控制;还可以根据室外环境亮度实现环境亮度光控。三种工作方式可以方便地进行选择,当选择时间控制的方案时,数码管还能显示当时小时和分钟时间,不过时间数据只能顺序显示,显示一遍后,略等片刻再显示下一遍时间。另外、电机拉动窗帘的工作的时间长度,电机工作的时候是否有鸣响提示,以及光控状态下环境亮度的控制参数的调整等等都可以通过遥控器进行设置。
1.3课题研究工作
智能家居系统是一个大的社会系统工程,我们应当加快我国智能家居标准化进程。自动窗帘系统作为智能家居中一个很重要的部分,需要在我国智能家居这一领域,建立起一个具有中国特色的新兴、健康的产业链。让自动窗帘系统在我国并不是远在天边,而是近在眼前。现有的电动窗帘机的控制方式有固定式开关控制、遥控、光控、声控等,其中以前两种形式居多。就实用程度和经济角度来说,用固定式开关控制方式较好,这是因为窗帘的开闭不像电视机等家电产品开闭得那样频繁,每天开闭的次数不多,因此安装在固定的地方使用也相当方便,如
4
河南机电高等专科学校毕业设计论文
把开关装在床头柜等电器综合控制系统中,睡在床上就能控制窗帘的开闭。利用触摸开关,实现全自动断电,既安全又节能,但最重要的一点就是没有实现完全的自动化,没的摆脱对人的依赖作用。而采用遥控控制时,需要候机电源,不可能完全断电而且增加遥控功能,也增加了成本,售价也相应提高。
窗帘机的控制方式大体上有三种:声控、光控、时控,声控和遥控属于半自动类;而光控虽属全自动式,但因光敏器件的灵敏度,冬夏等不同季节的光照度的不同,以及人们对起闭窗帘在时间上的要求不同,而难以实施和普及。因此,时控式的全自动窗帘机便成了专业以及业余电子设计人员的热门课题。根据以上自动窗帘有些不能实现完全的自动化;有些虽然实现了完全的自动化,但结构复杂,性能不够稳定;有些虽然实现了完全的自动化,且性能还可以,但价格昂贵不适合普通消费者使用。所以我想利用价格相对便宜的红外线遥控发射芯片、单片机作为主要控制器件,来完成该系统的设计。该系统主要有如下几方面的特点:
1.发射红外线的发射装置采用一般彩色电视机的遥控器,这样既方便又实惠,可谓一物两用。
2.时间控制开关窗帘。通过对DS1302芯片的设定,让用户可以随自己的生活习惯方便的自动开关窗帘,无需手动。
3.采用红外遥控方式,不会干扰其它电器的正常工作,也不会影响邻近的无线设备。超距离遥控,可达8~9m。
4.另一种控制方式为手动控制方式,防止停电后采用手动控制。
5.美观。以往的遥控电动窗帘都是向一边拉或向上拉,而本设计为向两边打开,随个人的爱好可以控制其大小。
6.体积小、结构简单、灵敏度高、抗干扰性强、经济实用、工作可靠。
1.4国内外概况
在欧美等发达国家,电动窗帘已广泛应用。在10年前,电动窗帘就已经进入我国,可一直没有大的推广,这两年,随着电控技术的不断提高及价格的不断下降,电动窗帘热才又卷土重来。据了解,全国共有170多种电动窗帘器获得了国家专利,但就其技术本身而言,还是大同小异,但售价却有很大差别,贵的要数千元,便宜的只要500块。
尽管遥控自动窗帘系统在国内是一个新兴的行业,但是,它也正以不可抵挡之势迅速崛起。遥控自动窗帘系统走进中国以来,在短短四年的时间里,遥控自动窗帘系统生产商由最初的几家公司增加到如今的百余家企业,其行业发展之迅速是目前国内任何其它行业所无法比拟的。目前,我国遥控自动窗帘系统生产厂商、分销商、集成商与装饰公司都形成了相当规模,不少国内知名企业纷纷涉足遥控自动窗帘系统行业,如青岛海尔、清华同方、TCL等,并涌现出一些较具影响力的智能家居专业厂商,如上海索博智能电子有限公司、北京九州易居科技有限公司、天津瑞朗智能家居电子科技有限公司、深圳市正星特科技有限公司等。自动窗帘产品已开始走进中国的家庭。具报道,我国2004年售出商品房1.9亿m²,如果每20 m²需要一套窗帘架产品,仅此一项就可以年新增窗帘架产品近千万套加上。年
5
河南机电高等专科学校毕业设计论文
新增窗帘架产品市场需求将不低于2000万套。如果单片机控制的遥控自动窗帘,销售占市场的5%左右,就可实现年产值上亿元。
随着自动窗帘热潮在世界范围内的日渐兴起,随着中国电子技术的飞速发展、人们生活水平的不断提高以及智能电子技术在生活中的广泛应用,自动窗帘已经成为未来家居装饰潮流发展的最新方向,在不久的将来,没有自动窗帘系统的住宅肯定不合潮流。从目前的发展趋势来看,在未来的20年时间里,自动窗帘行业将成为中国的主流行业之一,其市场的发展前景是非常广阔的。
6
河南机电高等专科学校毕业设计论文
第二章 总体设计方案
这次设计题目为单片机在电子产品中的应用已经越来越广泛,在很多的电子产品中也用到了红外控制。随着窗帘红外控制器应用范围的日益广泛和多样,各种适用于不同场合的窗帘控制器应运而生。
实现这种控制目的的方案有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线,可编程串行通道,片内
7
河南机电高等专科学校毕业设计论文
振荡器和时钟电路。
采用LG28显示模块41BH数码管,动态扫描,8550三极管位选驱动 , AT89C51微处理器P0口直接段选实现小时、分钟显示,具有显示亮度强、稳定性能好、显示误差少等优点。
方案(二)的框图如图2.2:
图2.2 方案二的原理框图
该窗帘控制器采用89c2051单片机的最小系统设计,控制一个220v的可逆、变速电动机控制窗帘的拉开和关闭。窗帘控制器可以使用红外遥控器进行远程手动开、手动关和手动停控制;还可以根据室外环境亮度实现环境亮度光控。以及光控状态下环境亮度的控制参数的调整等等都可以通过遥控器进行设置。 该红外遥控窗帘可谓是一款多功能的窗帘控制器窗帘控制器原理图。
8
河南机电高等专科学校毕业设计论文
第三章 核心芯片结构原理介绍
为使基于单片机控制的红外线遥控系统在实际使用过程中方便快捷,并且具有较高的性能/价格比,所以对该系统的原器件作了精心挑选。按在实际工作中的作用,可分为以下几个部分:AT89C2051单片机是整个电路的核心,它控制其它模块来完成各种复杂的操作;红外线一体化接受头负责接受命令;芯片DS1302负责时钟的运行及设置参数的存储。
3.1中央控制芯片 AT89C2051
89C2051是由ATMEL公司推出的一种小型单片机,95年出现在中国市场。其主要特点为采用Flash存贮器技术,降低了制造成本,其软件、硬件与MCS-51完全兼容,且采用ATMEL高密度非易失存储器制造技术制造,将多功能8位CPU和闪烁存储器组合在单个芯片中,可以很快被中国广大用户接受。其程序的电可擦写特性,使得开发与试验比较容易,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
3.11 AT89C2051的特点
89C2051有很宽的工作电源电压,可为2.7~6V,当工作在3V时,电流相当于6V工作时的1/4。89C2051工作于12Hz时,动态电流为5.5Ma,空闲态为1mA,掉电状态仅为20nA。这样小的功耗很适合于电池供电的小型控制系统。
AT89C51具有以下几个特点:
•AT89C2051与MCS-51系列的单片机在指令系统和引脚上完全兼容; •片内有4k字节在线可重复编程快擦写程序存储器; •全静态工作,工作范围:0Hz~24MHz; •三级程序存储器加密; •128×8位内部RAM; •32位双向输入输出线;
•两个十六位定时器/计数器; •五个中断源,两级中断优先级; •一个全双工的异步串行口; •间歇和掉电两种工作方式。
3.12 AT89C2051的引脚功能
AT89C2051的接口线包括:P0、P1、P2、P3共四个八位口。
1. P0口是三态双向口,通称数据总线口,因为只有该口能直接用于对外部
9
河南机电高等专科学校毕业设计论文
存储器的读/写操作。P0口也用以输出外部存储器的低8位地图1址。由于是分端口引脚 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 引脚功能 RXD(串行口输入端) TXD(串行口输出端) 0(外部中断0请求端,低电平有效) (外部中断1请求端,低电平有效) T0(定时器/计数器0计数脉冲输入端) T1(定时器/计数器1计数脉冲输入端) (外部数据存储器写选通输出端) (外部数据存储器读选通输出端) 时输出,故应在外部加锁存器将此地址数据锁存,地址锁存,信号用ALE。 2. P1口是专门供用户使用的I/O口,是准双向口。
3. P2口是从系统扩展时作高8位地址线用。不扩展外部存储器时,P2口也可以作为用户I/O口线使用,P2口也是准双向口。
4. P3口是双功能口,该口的每一位均可独立地定义为第一I/O功能或第二I/O功能。
作为第一功能使用时操作同P1口。P3口的第二功能如表3.1所示。
表3.1 P3口引脚功能说明
3.2 红外线接受模块 TSOP18xx
遥控器发射装置首选家用彩电遥控器。因为目前,彩电和VCD已走进千家万户,而其所带的红外线遥控器给这些家电的操作带来了极大的方便,而接受只需一个红外线一体化接受头就行了。
近年来,随着信息技术的飞速发展,无线通信技术正在向各个领域渗透,特别是利用红外线进行通信无论从小型化、轻量化、还是从安全性等方面考虑,其可行性都比较高。红外数据通讯实际是利用红外线作为通讯载体,由红外发射器和红外接收器来完成信号的无线收发。在发射端,对发送的数字信号经适当的调制后,送入电光变换电路,驱动红外发光二极管发射红外光脉冲;在接收端,红外接
10
图3.2 TSOP18xx
河南机电高等专科学校毕业设计论文
收器对收到的红外信号进行光电变换,并进行解调后,恢复出原信号。在红外数据通讯中,红外接收器件的选择是红外数据通讯中至关重要的因素。
3.21 红外线一体化接收头
SOP18xx系列是Temic公司新近推出的一体化红外线接收模块,集红外线接收、放大、解调于一体,不需要任何外接元件,就能完成从红外线接收到输出与TTL电平信号兼容的所有工作;而体积只有普通三极管大小一样,适合各种红外线遥控和红外线数据传输,其传输距离大于4米。
红外线接收模块TSOP18xx系列的管脚分布如图1.2所示,1、2分别为电源和地,3为信号输出端,其输出电平和TTL电平兼容。TSOP18xx系列的特性如下:
•多种接收频率可供选择:30KHz、33KHz、36KHz、36.7K Hz、38KHz、40KHz、56KHz;
•大范围工作电压:(3-6) V; •工作电流:3mA; •遥控距离:大于4m. •内置金属保护装置; •综合限幅电路功能; •多种主要传输码;
•智能自动增益控制 (AGC)。
TSOP18 xx系列红外线模块接收器的受光面一侧为黑色环氧聚焦滤波透镜,此透镜消除了可见光对它的干扰,对于提高可靠性及滤除光噪声至关重要。模块内含红外线 PIN接收管、前置放大器和解调器。当红外线发射器发出的信号经空间传送到 TSOP18 xx系列模块时,模块内部 PIN红外线接收管将红外光转换为电信号,该信号经前置放大、解调后由 3脚输出与 TTL电平兼容的电信号,该信号能直接送入到微控器等要求 TTL电平信号输入的芯片中。
3.22 红外线发射码组成
要使用红外线一体化接受头接受遥控器发射的红外线,再通过单片机解码,那就。必须先了解红外线发射器所发射的红外线码的组成。
一般的彩电、VCD遥控器的编码,大概有以下两种编码格式(Format)。第一种格式为1913、9012、1621格式;第二种为3010格式。其中尤以第一种格式用得最多。要识别一个遥控器的格式很简单,只要把遥控器拆开,看它所用的集成块型号就知道,比如uPD1621、SAA3010,其格式就是1621、3010格式。下面分别具体说明这两种编码格式。
第一种格式以1621为例,当按下遥控器上的某个按键时,遥控器将发射出一帧数据,帧数据的编码格式由三部分组成:引导码(Lead code)、客户码(Custom code)和数据码(Data code),
对于一个遥控器来说,每个按键所发射的帧数据的客户码总是一样的,有区别的只是数据码。其中9012和1913、1621格式的唯一区别就是引导码的高电平
11
河南机电高等专科学校毕业设计论文
宽度不一样,9012格式为4.5ms,1913和1621格式为9ms。帧结构中的客户码和数据码各有两个字节,第一个字节和第二个字节互为按位取反,其中客户码的高4 位与低4位又互为按位取反。‘0’码由0.56ms高电平和0.565ms低电平组合而成、‘1’码由0.56ms高电平和1.69ms低电平组合而成。码元的高电平信号采用38kHz矩形波(载波)调制发射,载波占空比(Duty)为1/3,低电平无信号发射。
第二种格式3010与第一种格式截然不同,它是以信号脉冲的上升沿和下降沿来分别表示‘1’码和‘0’码的。每一帧由起始位(Start bit)、扩展位(Enlarged bit)、翻转位(Toggle bit)、系统位(System bit)和数据位(Data bit)组成。
3.3 时钟芯片 DS1302
DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。
3.31 DS1302引脚功能及结构
DS1302的引脚排列,其中Vcc1为后备电源,VCC2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电。X1和X2是振荡源,外接32.768kHz晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在Vcc>2.0V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。I/O为串行数据输入输出端(双向),后面有详细说明。SCLK为时钟输入端。 下图3.3为DS1302的引脚功能图:
12
河南机电高等专科学校毕业设计论文
图3.31 DS1302引脚功能图
3.32 DS1302的控制字
DS1302 的控制字如图3.3示。控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。 RAM RAM 1
A4 A3 A2 A1 A0 图3.32 DS1302的控制字
3.33数据输入与输出(I/O)
在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。 3.34 DS1302的寄存器
DS1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式,其日历、时间寄存器及其控制字见图1.5。
此外,DS1302 还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。DS1302与RAM相关的寄存器分为两类:一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0H~FDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。
寄存器名称 秒寄存器
命令字 写 80H 读 81H 取值范围 00-59 各位内容 7 CH 6 5 4 3 2 1 SEC 13 0 10SEC 河南机电高等专科学校毕业设计论文
分寄存器 小时寄存器 日期寄存器 月份寄存器 周寄存器 年份寄存器 82H 84H 86H 88H 8AH 8CH 83H 85H 87H 89H 8BH 8DH 00-59 01-12或00-23 01-28,29,30,31 01-12 01-07 00-99 0 12/24 0 0 0 0 0 0 0 10MIN A HR MIN HR DATE MONTH 0 DAY YEAR 10DATE 0 0 10M 0 10YEAR
图3.34 DS1302寄存器与控制字对照表
3.35 DS1302与CPU的连接
DS1302与CPU的连接需要三条线,即SCLK(7)、I/O(6)、RST(5)。其中,时钟的显示用LCD。
实际上,在调试程序时可以不加电容器,只加一个32.768kHz的晶振即可。只是选择晶振时,不同的晶振,误差也较大。另外,还可以在上面的电路中加入DS18B20,同时显示实时温度。只要占用CPU一个口线即可。 LCD还可以换成LED,还可以使用北京卫信杰科技发展有限公司生产的10位多功能8段液晶显示模块LCM101,内含看门狗(WDT)/时钟发生器及两种频率的蜂鸣器驱动电路,并有内置显示RAM,可显示任意字段笔划,具有3-4线串行接口,可与任何单片机、IC接口。功耗低,显示状态时电流为2μA (典型值),省电模式时小于1μA,工作电压为2.4V~3.3V,显示清晰。
14
河南机电高等专科学校毕业设计论文
第四章硬件电路设计
电路分为七个部分,分别是电源部分、显示部分、鸣响提示部分、红外线接收部分、时钟控制部分、电机控制执行部分、单片机主控器件部分。下面逐一分析:
4.1电源部分硬件电路设计
通过一带有整流电路的12V变压器外接市电(220V)后,输入直流12V电压,如图2.1所示。右边两个是12伏的电源滤波电容,一般大电容旁边并联一个小电容的目的是降低高频内阻,因为大的电解电容一般采用卷绕工艺制造,所以等效电感较大,小电容可以提供一个小内阻的高频通道,降低电源全频带内阻。然后输出电压为+12V的VDD,为控制继电器提供工作电压。同时经过3端集成稳压器LM7805稳压后输出+5V电压VBB,为讯响电路、红外接收电路、显示电路提供电源,5V电源经过二极管D4、限流电阻R18=51后,为单片机提供VCC电压,BATTERY是直流供电电源,电压为3V~3.6V,在本电路中为了节省成本,使用两节5号普通电池,C6和C7是单片机电源滤波电容。平时交流电正常的情况下,5V电源为单片机供电的同时,也为电池浮充电,大大延长了电池的使用寿命,当交流电停电的时候,电池仅为单片机供电,单片机在掉电状态下维持时钟的正常走时,VBB供电被D4隔断。在控制器设置成手动控制时,单片机除执行任务外,均处于睡眠状态,遥控器信号的到来,单片机从睡眠中唤醒,恢复正常工作,所以手动状态下当交流停电时,电池的耗电电流更小。
此处为市电220V交流供电电源 此处为12V直流供电电源
15
河南机电高等专科学校毕业设计论文
图4.1 供电部位电路设计图纸
4.2显示部分硬件电路设计
显示电路设计,考虑到本设计是作为一般家庭的自动控制窗帘,所以采用的是四位数码管来显示实时时间、调开窗帘时间、关窗帘时间,在开窗帘、关窗帘的时候在数码管上不作任何提示,但是伴随有声音提示。这部分电路最大的优点就是经济实惠,最大的缺点就是欠美观及不能反映窗帘动作情况。如果此系统作为大型别墅、宾馆、饭店、写字楼、歌舞厅、影剧院、会议厅、银行、学校、医院等各种公共场所,可以把这部分电路设计为液晶屏显示,当然显示的就不仅仅是时间了,还包括年、月、星期。
四位数码管显示,如图2.2所示,在一般情况下显示实时时间,在需要调节开窗帘时间的时候,通过软件的控制作用,数码管将显示此开定时时间;同样在需要调节关窗帘时间的时候,数码管将显示此关定时时间。因为在开窗帘、关窗帘、停窗帘的时候有明显的动作现象,很容易观察到,所以没有设定在数码管上显示出来。P1口的P1.0、P1.1、P1.2、P1.3分别接四个三极管,当其中一个引脚背拉为低电平的时候,与该引脚相连的三极管便导通,此三极管便驱动与它相连接的数码管,然后送入该位应该显示的字形码。
此引线接低电平 图4.2 数码显示部分硬件电路
16
河南机电高等专科学校毕业设计论文
4.3音响部分硬件电路设计
音响电路可以设计成一个单独的单元来控制,用一个独立的按键来控制它的开与关,但是红外线发射遥控器是采用彩色电视机上的遥控器,而非专用遥控器,考虑到使用的按键较多时容易让用户记不清各个键对应的功能,所以容易产生误操作;别外考虑到可以选取一个功率比较小,声音比较悦耳的陶瓷喇叭,这个喇叭一方面能掩盖电机和窗帘发出来的噪声,另一方面也能作为检错用。一般情况下人们不会把它当噪声来看待。
音响电路与单片机的一个P口引脚相连,应程序设定在开窗帘和关窗帘的时候都会伴随着声音。喇叭采用小功率的陶瓷音源,声音不会很大。音频信号输出,音频信号通过R20、C10输入到三极管V6的基极上,放大后推动发声器Y1发。二极管D3用来提供C10的放电回路,保证交流信号的正常耦合。
图电
4.4红外接收部分硬件电路设计
4.3 鸣响部分硬件
路设计
红外线接收电路使用一个集成红外接收器,型号是TSOP1838,静态时输出端输出高电平,当接收到红外信号后,按红外信号的数据波形输出负脉冲数据信号。红外信号输出到单片机的P3.2 ,该口对应的第二功能是外部中断0 (INT0),利用该口的第二功能,一旦红外线信号到来,P3.2被拉低,单片机中止当前的工作转移到接收、处理红外信号。开启中断功能的目的,既减轻了单片机的工作负担,又保证接收到的红外信号的完整性,同时在手动工作状态下,单片机进入睡眠后,利用外部中断功能完成对单片机的唤醒。
17
河南机电高等专科学校毕业设计论文
此引线接P3.2 图4.4 红外接收硬件电路图
4.4时钟控制部分硬件电路设计
DS1302主要特点是采用串行数据传输,可为掉电保护电源提供可编程的充电功能,并且可以关闭充电功能。采用普通32768Hz晶振,开窗帘时间,关窗帘时间都保存在DS1302自带的RAM中,不需要单独的EEPROM。
要特别说明的是备用电源B1,可以用电池或者超级电容(10万uF以上)。虽然DS1302在主电源掉电后,耗电很小,但如果要长时间保证时钟正常,最好选用小型充电电池。可以用老式电脑主板上的那种3.6V充电电池。如果断电时间较短(几小时或几天)时,就可以用漏电较小的普通电解电容代替。100uF就可以保证1小时的正常走时。DS1302在第一次加电后,须进行初始化操作,初始化后就可以按正常方法调整时间及升降窗帘时间。如下图4.5所示。
图4.5 时钟控制部分电路设计
4.5时钟电路和复位电路
1)时钟产生电路
18
河南机电高等专科学校毕业设计论文
片内电路与片外器件就构成一个时钟产生电路,CPU的所有操作均在时钟脉冲同步下进行。片内振荡器的振荡频率非常接近晶振频率,一般多在1.2MHz~24MHz之间选取。C1、C2是反馈电容,其值在20pF~100pF之间选取,典型值为30pF。本电路选用的电容为30pF,晶振频率为12MHz。
振荡周期=112s;
机器周期
Sm1s
指令周期=1~4s。
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。
19
河南机电高等专科学校毕业设计论文
图4.61 时钟电路图 4.62 复位电路
4.6 电机部分硬件电路设计
电机执行电路,为了减轻单片机的工作负荷,提高单片机的抗干扰能力,所以电机不直接由单片机来驱动。当继电器的触点打开时,没有漏电流.也就是说,断开状态的电阻非常大(接近无穷大),此时触点两侧的电压可达1500V;当触点合上时,接通电阻极低,所以继电器的功率非常小.因此继电器不会发热,通常也不需要散热器;电磁继电器的购买成本通常比半导体驱动器件低;继电器的打开时间一般是毫秒级的,相比之下,半导体开关的开关时间是微秒级的。
电机执行部分完全受单片机的控制,通过单片机的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拉低后,电机则反方向转动,实现了窗帘的拉开和关闭。两个继电器的工作状态受单片机控制,在同一个时间内两个继电器仅能有一个吸合。即便是在电机工作期间,操作了反向转动按键,单片机也是先释放当前工作的继电器,并延时一段时间后再吸合另外一个继电器,接控制线P3.0 防止了电机正反工作线圈同时通电的冒险。电路图见下图4.7。
接控制线P3.1
图4.7 电机控制部分电路设计
20
河南机电高等专科学校毕业设计论文
第五章 系统软件设计
该系统最重要的部分就是程序的编写,如果软件编写的科学就能体现出该系统功能的完整性、实用性、经济性。软件部分的编写主要分为红外线解码程序、时钟芯片DS1302控制程序、数码显示程序、遥控控制程序这四大部分来阐述。
5.1红外线解码的设计
该系统采用长虹彩电K11F型遥控器,产生的遥控编码是连续的32位二进制码组,其中前16位为用户识别码,能区别不同的电器设备,防止不同机种遥控码互相干扰。该芯片的用户识别码固定高8位地址为0BFH,低8位地址为40H;后16位为8位操作码(功能码)及其反码。
遥控器在按键按下后,周期性地发出同一种32位二进制码,周期约为108ms。一组码本身的持续时间随它包含的二进制\"0\"和\"1\"的个数不同而不同,大约在45~63ms之间。
当一个键按下超过36ms,振荡器使芯片激活,将发射一组108ms的编码脉冲,这108ms发射代码由一个起始码(9ms),一个结果码(4.5ms),低8位地址码(9ms~18ms),高8位地址码(9ms~18ms),8位数据码(9ms~18ms)和这8位数据的反码(9ms~18ms)组成。如果键按下超过108ms仍未松开,接下来发射的代码(连发代码)将仅由起始码(9ms)和结束码(2.5ms)组成。
代码宽度算法:
16位地址码的最短宽度:1.12×16=18ms 16位地址码的最长宽度:2.24ms×16=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\"和\"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左右→读区P3.2脚电平值→再等待下一次高电平的到来→延时0.84ms左右→读取P3.2脚电平值,依次取得32位代码,前16位为识别码,后18位既为8位数据码和8位数据反码。
21
河南机电高等专科学校毕业设计论文
集体流程框图见5.1。
有信号,中断 接受解码 CLK=0,RST=0 CLK=0,RST=1 识别码正确否? 跳出 80H~88H→R_BIT(DS1301时间地址) 60H~66H→W_BIT(2051时间地址) Y 与实际键值(10个)比 较,转出执行相应动作 CLK=1,RST=1 中断返回 图5.2 DS1302读实时时间 图5.1 红外中断,接收信号
5.2 DS1302的控制程序
I2C总线是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。在CPU与被控IC之间、IC与IC之间进行双向传送,最高传送速率100kbps。各种被控制电路均并联在这条总线上,但就像电话机一样只有拨通各自的号码才能工作,所以每个电路和模块都有唯一的地址,在信息的传输过程中, I2C总线上并接的每一模块电路既是主控器(或被控器),又是发送器(或接收器),这取决于它所要完成的功能。CPU发出的控制信号分为地址码和控制量两部分,地址码用来选址,即接通需要控制的电路,确定控制的种类;控制量决定该调整的类别(如对比度、亮度等)及需要调整的量。这样,各控制电路虽然挂在同一条总线上,却彼此独立,互不相关。
I2C总线在传送数据过程中共有三种类型信号,它们分别是:开始信号、结束信号和应答信号。
开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。 结束信号:SCL为低电平时,SDA由低电平向高电平跳变,结束传送数据。
22
河南机电高等专科学校毕业设计论文
应答信号:接收数据的IC在接收到8bit数据后,向发送数据的IC发出特定的低电平脉冲,表示已收到数据。CPU向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU接收到应答信号后,根据实际情况作出是否继续传递信号的判断。若未收到应答信号,由判断为受控单元出现故障。
目前有很多半导体集成电路上都集成了I2C接口。带有I2C接口的单片机有:CYGNAL的C8051F0XX系列,PHILIPSP87LPC7XX系列,MICROCHIP的PIC16C6XX系列等。很多外围器件如存储器、监控芯片等也提供I2C接口,DSl302有单字节传送方式和多字节传送方式。通过把复位线驱动至高电平来启动所有的数据传送。复位线有两种功能,首先接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,提供了中止单字节或多字节数据传送的手段。
数据输入时,时钟的上升沿数据必须有效,数据的输出在时钟的下降沿。如果为低电平,那么所有的数据传送将被中止且I/0引脚变为高阻状态。上电时,在Vcc>2.5伏之前,必须为逻辑0。当把驱动至逻辑1状态时,SCLK必须为逻辑0。 单字节数据输入跟随在写命令字节的8个SCLK周期之后,在随后的8个SCLK周期的上升沿输入数据字节,数据从位0开始输入,如图3.3。多字节数据输出跟随在输入读命令字节的8个SCLK周期之后,在随后的8个SCLK周期的下降沿输出数据字节,数据从位0开始输出,如图5.3。
图5.3 单字节传送方式
图5.4 多字节传送方式
读取实时时间过程流程见框图5.2;DS1302初始化流程见框图5.5;修改RAM值见框图5.6。
Clk=0,8EH→R_BIT(写入
00H→R_BIT(开允许写入)
Clk=1,rst=0 Clk=0,rst=1 CLK=1,RST=0 8EH→R_BIT(写入DS1302) 80H→R_BIT(关允许写入) 23
河南机电高等专科学校毕业设计论文
图5.5 DS1302初始化过程 Clk=1,rst=0 Clk=0,rst=1 90H→R_BIT(充电方式地址) 10100101B→R_BIT(充电方式) 80H~88H→R_BIT(DS1301时间地址) 60H~66H→R_BIT(2051时间地址) Clk=1,rst=0 Clk=0,rst=1
Clk=0,rst=0
8EH→R_BIT(写入DS1302) 00H→R_BIT(开允许写入) Clk=0,rst=1 CLK=1,RST=0 8EH→R_BIT(写入DS1302) 80H→R_BIT(关允许写入)
R1→R_BIT(地址) R0→R_BIT(数据) 图5.6 修改RAM过程 Clk=1,rst=0 Clk=0,rst=1 5.3 数码显示设计
数码管的显示程序由定时计数器来设定,既大约200ms后定时计数器就会产生中断,在中断子程序里面,数码管会根据具体情况执行不同的显示子程序。第一种显示方式:正常时间显示,先使与第一个数码管相连的三极管导通即把P1.3置一,接着把分钟个位(61H的低四位)的字形码送入P0口,延时一段时间,让第一个三极管截止,第二个三极管导通,把分钟十位(62H的高四位)的字形码送如P0口,延时一段时间,至此分钟就显示完了。接着以同样的方式送第三位、第四位到小时的个位、十位;第二种显示方式:调开窗帘的时间,如果02H为高电平就表明用户在调开窗帘的定时时间,这样就必须显示开窗帘的定时时间(6AH、6BH),显示方式与正常时间显示一样。第三中显示方式:调关窗帘的时间,如果03H为高电平就表明用户在调关窗帘的定时时间,这样就必须显示关窗帘的定时时间(6CH、6DH),显示方式与正常时间显示一样。框图见5.7。
24
定时计数器1中断 02H为1否 显示开窗帘时间 河南机电高等专科学校毕业设计论文
图5.7 定时中断到,显示 5.4遥控控制部分
遥控控制部分就是根据遥控器发送的编码来执行需要的任务,其中包括:开窗帘、关窗帘、停止移动(把窗帘设置成半开状态)、调节实时时间,(按一下此键,再按加、减键即可使实时时间增加一或减小一)、调节开窗帘时间、调节关窗帘时间、时间增加、时间减小、开/关自动开关帘、开/关自动关窗帘。具体实施措施为:
1.接收到的红外线码值为10H,转入执行stop子程序,此时P3.0、P3.1两个引脚都将被置为高电平,控制电机的四个三极管都处于截止状态,电机不执行任何动作既窗帘停止不动;
2.接受到的红外线值为16H,转入执行OPEN子程序,在此程序中P3.0将被置\"1\与P3.0相连接的两个三极管导通,电机正转,延时一段时间也就是窗帘全部打开的时候P3.0又被置\"0\电机停止运动;
3.接收到的红外线值为44H,转入执行CLOSE子程序,在此程序中P3.1将被置\"0\与P3.1相连接的两个三极管导通,电机反转,延时一段时间也就是窗帘全部被关上的时候P3.1又被置\"01\电机停止运动;
4.接收到的红外线值为0CH,就使01H取反,开始01H应该为\"0\取反后01H变为\"1\"如果此时再按加一或是减一键,系统便会转入执行STIME子程序,使实时时间加一或是减一后放入DS1302的RAM中,如果再次按到0CH这个键,那么01H取反被设置为\"0\按加或是减键的时候就不能改变实时时间的值了;
5.接受到的红外线值为46H、47H的时候与第四基本上相同,不同之出就是46H为调节开窗帘的定时时间,47H为调节关窗帘的定时时间;
6.接受到的红外线值为49H时,为开/关自动开窗帘,中断程序将把03H取
25
河南机电高等专科学校毕业设计论文
反,03H开始应该为\"0\取反后变为\"1\系统在去读取DS1302实时时间的时候如果发现03H为\"1\"就会把读得的实时时间与开窗帘的定时时间想比较,相等就会执行开窗帘子程序;如果再次按到该键,03H将被值\"0\在读取实时时间的时候就不在作比较了,而是直接退出中断程序;
7.接受到的红外线值为50H时,为开/关自动关窗帘,与开/关自动开窗帘设计一样。
26
河南机电高等专科学校毕业设计论文
总结
现象观察:在MCS-51仿真器上通过编译、加载、运行后可以观察到,在没有调时键被按下时,数码管显示正常的实时时间,因为在分钟和小时中间没有设置准确的秒钟闪烁信号,所以只能看到在小时和分钟间有个点在闪烁。在P3.0、P3.1口上分别接一发光二极管,在送入低电平的时候亮,高电平的时候不亮。在有键被按下时,程序自动转入相应的中断子程序,如:P2.1口手动开帘键被按下时,P3.0口上接的发光二极管亮;P2.1口上的键被按下时,P3.1口上接的发光二极管亮,这说明程序能够正常的运行,能够使继电器导通,带动电机向正确的方向转动。
经过在MCS-51仿真器上调试运行,此电路及程序基本上达到了预期目的,当然在程序中也还有很多可以改进的优化设计,也还可以添加一些辅助功能这些都还有待更好的改进。
本文主要完成了如下工作: 硬件部分
•采用自制5V稳压电源。先用一变压器把市电(220V交流电)变成12V,经整流、滤波后,再用一集成稳压管(74L05)把电压稳定在5V以供单片机使用;
•单片机选用89C2051,是整个系统的核心部件,担负整个系统的管理控制任务;
•红外线遥控方式。发射部分采用普通的彩电遥控器,既节约成本又方便;接收部分采用一红外线接头,主要是通过89C2051解码,分析出需要执行的命令,再由单片机去完成;
•采用四位数码管来显示时间及要求的动作指示; •设有鸣响提示喇叭; •数据存储设定。选用时钟日历芯片DS1302作为万年历,因为他带有32字节的RAM,并且带有后备电源不怕断电,所以兼做数据存储器使用,保存用户设定的一些参数。
•窗帘用能正反转的电动机来拖动,电机的转动方向由继电器来控制。 软件部分:
•对DS1302芯片进行初始化,I2C总线进行单字节数据读写传送、多字节数据读写传送;
•利用红外线一体化接收头对红外线遥控器发射的编码进行接收,然后由单片机根据接收到的信号进行解码;
•控制程序,根据解码得到的结果去执行需要的操作。开窗帘、关窗帘、停止移动、调节实时时间、调节开窗帘时间、调节关窗帘时间、时间增加、时间减小、开/关自动开关帘、开/关自动关窗帘;
•显示电路。实时时钟显示、开窗帘调时显示、关窗帘调时显示。 本课题的研究虽然取得了一定的收获,但在很多方面还有待于进一步的改进和完善。如:鸣响电路没有作为一个单独的单元来控制,这样在每次开关窗帘的时候有会伴随着喇叭的声音,如果把鸣响电路设计成单独的控制单元,并且在执行不同操作时会伴随不同的乐曲声,那样将是最理想的;还有就是没有设计光控电路,以便根据光线强弱自行调整升降。
27
河南机电高等专科学校毕业设计论文
致谢
在论文完成之际,我首先要对我的指导老师孔老师和帮助过我的所有同学及提供给我实验条件的高老师表示最真挚的谢意。在整个论文的选题、理论研究、需求分析和系统设计的过程中,他们给了我不少启发,并对论文的设计方案提出了许多至关重要的建议,在实验过程中帮我解决了不少的难题。
在论文写作期间曾经遇到过很多的阻力,但是在大家的帮助下总算是顺利地度过了,现在一切都好了。
在论文的完成过程中,我还要特别感谢周新月同学给予了我无私的帮助,正是在他的鼓励和帮助之下,才使得我的实验能顺利的完成;同时,得到了其他许多让我分享他们宝贵经验和知识的老师以及同学的热心帮助,向他们表示由衷的感谢;我还要感谢这一领域的学者们,是他们给我经验和研究方向,文中引用了一些他们研究成果,在此一并表示衷心的感谢。
由于本人学识有限,加之时间仓促,文中不免有错误和待改进之处,真诚欢迎各位师长、同行提出宝贵意见。谢谢!
28
河南机电高等专科学校毕业设计论文
参考文献
[ 1] 杨恢先,黄辉先.单片机原理及应用.长沙:国防科技大学出版社,2003. [ 2] 阳宪惠.现场总线技术及其应用.北京:清华大学出版社,1999. [ 3] 张友德,等.单片机原理应用与实验.上海:复旦大学出版社,2000. [ 4] 李朝青.单片机原理及接口技术.北京:北京航空航天大学出版社,1996. [ 5] 阎石.数字电子技术基础.北京:高等教育出版社,1998. [ 6] 陈玉宏,向凤红.自动控制原理.重庆:重庆大学出版社,2003. [ 7] 杨帮文.新编传感器实用宝典.北京:机械工业出版社,2005. [ 8] 郑啊奇.Visual Basic教程.清华大学出版社,2007. [ 9] 杜文洁.电路基础.科学出版社,2007.
[10] 俞志根.传感器与检测技术.科学出版社,2007. [11] 王法轮.单片机原理及应用.科学出版社,2007.
[12] 于安红.简明电子元器件手册.上海交通大学出版社,2005. [13] 杨爱琴.数字电子技术.科学出版社,2007.
[14] Url:http://baike.baidu.com/view/1478145.htm,百度百科
29
河南机电高等专科学校毕业设计论文
附录
;遥控器各按键数据码
stop equ 10h ;手动使窗帘停止运动 s_time equ 0ch ;调实时时间 o_time equ 46h ;调升窗帘时间 c_time equ 47h ;调降窗帘时间 up equ 19h ;增加时间键 down equ 1dh ;减少时间键 open equ 16h ;手动升 close equ 44h ;手动降
o_auto equ 49h ;自动升帘开关 c_auto equ 50h ;自动降帘开关 second equ 60h ;2051时间地址
k_on bit p3.0 ;电机正转输出 k_off bit p3.1 ;电机反转输出 clk bit p2.0 ;ds1302的三总线 io bit p2.1 rst bit p2.2
;60h 秒 ;61h 分 ;62h 时
;6ah 开分 from 00(1302) ;6bh 开时 from 01(1302) ;6ch 关分 from 10(1302) ;6dh 关时 from 11(1302)
;***************************************************** org 0000h ajmp start org 0003h
ljmp s_int ;红外线中断 org 000bh ;200us
ljmp p_int ;定时读时间及比较时间 org 001bh ljmp display
;***************************************************** org 0030h start: clr rst mov sp,#2ah clr 01h
30
河南机电高等专科学校毕业设计论文
clr 02h clr 03h clr 04h clr 05h
mov tmod,#12h ;为0001 0010b mov tl1,#0e5h mov th1,#0beh
mov th0,#3fh mov tl0,#3fh setb et0 setb et1 setb tr0 setb tr1
setb it0 ; setb ex0
lcall set1302 ;
mov r1,#0c1h ;0001)
acall t_6061
mov 6ah,a
mov r1,#0c3h ; acall t_6061
mov 6bh,a
mov r1,#0c5h ;0101)
acall t_6061
mov 6ch,a
mov r1,#0c7h ; acall t_6061
mov 6dh,a
setb ea sjmp $
delay1: mov r4,#034h aa: mov r5,#045h djnz r5,$ djnz r4,aa ret
电平中断方式 初始化 取定时开参数从1302中(1100,(1100,0011) 取定时关参数从1302中(1100,(1000,0111) 31
河南机电高等专科学校毕业设计论文
;***************************************************** p_int: push acc push psw setb rso clr rs1 inc r2
cjne r2,#250d,p_out mov r2,#00h inc r3
cjne r3,#10d,p_out
mov r3,#00h ; acall r_1302 ;now1: jnb 04h,now2 mov a,6bh
mov b,#10 div ab swap a add a,b
cjne a,62h,now2 mov a,6ah
mov b,#10 div ab swap a add a,b
cjne a,61h,now2 ; setb p3.1 clr p3.0 acall delay1 setb p3.0
now2: jnb 05h,out mov a,6dh
mov b,#10 div ab swap a add a,b
cjne a,62h,out mov a,6ch
延时250*10*200us 时间放60,61,62h中 比较62h,61h与6bh,6ah 32
河南机电高等专科学校毕业设计论文
mov b,#10 div ab swap a add a,b
cjne a,61h,out setb p3.0 clr p3.1 acall delay1
setb p3.1 ;比较62h,61h与6dh,6ch
out: pop psw pop acc reti
;******************************************************* display:push acc push psw
mov tl1,#0e0h mov th1,#0b0h mov dptr,#tab1
jb 01h,ds1 ;调正常显示时间 jb 02h,ds2 ;调升窗帘时间显示 jb 03h,ds3 ;调降窗帘时间显示
ds0: mov dptr,#tab1 mov a,62h anl a,#0fh mov b,a mov a,62h swap a
anl a,#07h movc a,@a+dptr mov p0,a clr p1.3 lcall dl2m
setb p1.3 ;显示小时
mov a,b
movc a,@a+dptr clr acc.7 mov p0,a
33
河南机电高等专科学校毕业设计论文
clr p1.2 lcall dl2m setb p1.2
mov a,61h anl a,#0fh mov b,a mov a,61h swap a
anl a,#0fh movc a,@a+dptr mov p0,a clr p1.1 lcall dl2m setb p1.1
mov a,b
movc a,@a+dptr mov p0,a clr p1.4 lcall dl2m setb p1.4 setb tr1 pop psw pop acc reti
ds1: mov a,62h mov 42h,a mov a,61h mov 43h,a sjmp ds_1
ds2: mov a,6bh mov 42h,a mov a,6ah mov 43h,a sjmp ds_1
ds3: mov a,6dh mov 42h,a mov a,6ch mov 43h,a sjmp ds_1
34
河南机电高等专科学校毕业设计论文
ds_1: mov dptr,#tab1 mov a,42h anl a,#0fh mov b,a mov a,42h swap a
anl a,#07h movc a,@a+dptr mov p0,a clr p1.3 lcall dlcm setb p1.3
mov a,b
movc a,@a+dptr clr acc.7 mov p0,a clr p1.2 lcall dlcm setb p1.2
mov a,43h anl a,#0fh mov b,a mov a,43h swap a
anl a,#0fh movc a,@a+dptr mov p0,a clr p1.1 lcall dlcm setb p1.1
mov a,b
movc a,@a+dptr mov p0,a clr p1.4 lcall dlcm setb p1.4 pop psw pop acc reti
35
河南机电高等专科学校毕业设计论文
dl2m: mov 40h,#14h dl2: mov 41h,#14h dl1: nop nop
djnz 41h,dl1 djnz 40h,dl2 ret
dlcm: mov 40h,#160d dl4: mov 41h,#160d dl3: nop nop
djnz 41h,dl1 djnz 40h,dl2 ret
;************************有接收到遥控器信号******* s_int: clr ea push acc push psw clr rs0 setb rs1 mov r6,#10d sb: acall ys1
jb p3.2,exit ;持续9ms低电平 djnz r6, sb jnb p3.2, $
acall ys2 ;持续4ms高电平 jb p3.2,exit mov r1,#1ah mov r2,#4d pp: mov r3,#8d jjjj: jnb p3.2,$
acall ys1 ;高电平延时0.8ms后既为值 mov c,p3.2 jnc uuu jb p3.2,$ uuu: mov a,@r1 rrc a mov @r1,a djnz r3,jjjj inc r1 djnz r2,pp
;------------------------------------- mov a,1ah
36
河南机电高等专科学校毕业设计论文
xrl a,#40h ;判断1ah的值是否等于遥控器低8位地址(40h)
jnz exit mov a,1bh
xrl a,#0bfh ;再判断高8位地址是否正确(0bfh) jnz exit mov a,1ch cpl a
xrl a,1dh ;将1ch的值取反后和1dh比较 不同则无效丢弃(核对数据是否准确)
jnz exit
acall do ;相应按键的处理 exit: setb ea pop psw pop acc reti
;--------------------delay----------------------- ys1: mov 70h,#16d ;延时1,9ms dd1: mov 71h,#21d djnz 71h,$ djnz 70h,dd1 ret
ys2: mov 70h,#09d ;延时2,4ms dd2: mov 71h,#220d djnz 71h,$ djnz 70h,dd2 ret
;--------------------------------按键判断------------------------ d0: cjne a,#stop,d1 setb p3.0
setb p3.1 ;电机停止转动 ajmp exit
d1: cjne a,#open,d2 ;正转 setb p3.1 clr p3.0 acall delay1 setb p3.0 ajmp exit
d2: cjne a,#close,d3 ;反转 close1:setb p3.0 clr p3.1
37
河南机电高等专科学校毕业设计论文
acall delay1 setb p3.1 ajmp exit
d3: cjne a,#s_time,d4 ;调时间(45h,44h,43h,42h) cpl 01h ajmp exit
d4: cjne a,#o_time,d5 ;调升窗帘时间(34h,33h,32h,31h) cpl 02h ajmp exit
d5: cjne a,#c_time,d6 ;调降窗帘时间(38h,37h,36h,35h) cpl 03h ajmp exit
d6: cjne a,#0_auto,d7 ;自动升帘开关 clp 04h ajmp exit
d7: cjne a,#c_auto,d8 ;自动降帘开关 clp 05h ajmp exit
d8: cjne a,#up,d9 ;数字加1 sjmp up1 ajmp exit
d9: cjne a,#down,exit ;数字减1 sjmp down1 ajmp exit
exit: pop psw pop acc reti
;--------------------------------inc------------------------ up: jb 01h,s_time1 jb 02h,o_time1 jb 03h,c_time1 ret
s_time1:mov 6fh,61h acall bcd_hex inc a
38
河南机电高等专科学校毕业设计论文
cjne a,#60d,inch1 mov a,#0 inch1: mov 6fh,a acall hex_bcd mov 61h,a mov r1,#82h mov r0,61h
acall setone ;分钟+1
mov a,61h
cjne a,#00h,exit2 mov 6fh,62h acall bcd_hex inc a
cjne a,#24d,inch2 mov a,#0 inch2: mov 6fh,a acall hex_bcd mov 62h,a mov r1,#84h mov r0,62h
acall setone ; exit2: ret
o_time1: inc 6ah ; mov a,6ah
cjne a,#60d,inch3 mov 6ah,#00h inc 6bh mov a,6bh
cjne a,#24d,inch1 mov 6bh,#00h
inch3: mov r1,#0c1h mov r0,6ah
acall setone ; mov r1,#0c3h mov r0,6bh
acall setone ; ret
c_time1: inc 6ch ; mov a,6ch
超过60,小时加1 升帘时间增加 分钟写入ds1302 小时写入ds1302 降帘时间增加 39
河南机电高等专科学校毕业设计论文
cjne a,#60d,inch4 mov 6ch,#00h inc 6dh mov a,6dh
cjne a,#24d,inch4 mov 6dh,#00h
inch4: mov r1,#0c5h mov r0,6ch
acall setone ;分钟写入ds1302 mov r1,#0c7h mov r0,6dh
acall setone ;小时写入ds1302 ret
;********************************************************** down: jb 01h, s_time2 jb 02h,o_time2 jb 03h,c_time2 ret
s_time2:mov 6fh,61h acall bcd_hex dec a
cjne a,#0ffh,dech1 mov a,#59d dech1: mov 6fh,a acall hex_bcd mov 61h,a mov r1,#82h mov r0,61h
acall setone ;分钟-1 mov a,61h
cjne a,#00h,exit3
mov 6fh,62h acall bcd_hex dec a
cjne a,#0ffh,dech2 mov a,#23h dech2: mov 6fh,a acall hex_bcd mov 62h,a mov r1,#84h mov r0,62h
40
河南机电高等专科学校毕业设计论文
acall setone ;小时 exit3: ret
o_time2:dec 6ah ;升帘时间-1 mov a,6ah
cjne a,#0ffh,dech3 mov 6ah,#59d dec 6bh mov a,6bh
cjne a,#0ffh,dech3 mov 6bh,#23d
inch3: mov r1,#0c1h mov r0,6ah
acall setone ;分钟写入ds1302 mov r1,#0c3h mov r0,6bh
acall setone ; 小时写入ds1302 ret
c_time2:inc 6ch ;降帘时间-1 mov a,6ch
cjne a,#0ffh,dech4 mov 6ch,#59d dec 6dh mov a,6dh
cjne a,#0ffh,dech4 mov 6dh,#23d
inch4: mov r1,#0c5h mov r0,6ch
acall setone ;分钟写入ds1302 mov r1,#0c7h mov r0,6dh
acall setone ;小时写入ds1302 ret
:******************************************************** set1302:clr rst clr clk
mov second,#0 mov 61h,#0 mov 62h,#18
41
河南机电高等专科学校毕业设计论文
mov 63h,#1 mov 64h,#1 mov 65h,#1 mov 66h,#2 setb rst mov a,#8eh lcall r_bit mov a,#00h lcall r_bit setb clk clr rst
mov r0,#second mov r7,#7 mov r1,#80h set1302a:clr rst clr clk setb rst mov a,r1 lcall r_bit mov a,@r0 lcall r_bit inc r0 inc r1 inc r1 setb clk clr rst
djnz r7,set1302a clr rst clr clk
setb clk nop
clr rst nop
clr clk setb rst mov a,#90h lcall r_bit
mov a,#10100101b ; lcall r_bit setb clk clr rst clr clk
充电器设置42
河南机电高等专科学校毕业设计论文
setb rst mov a,#8eh lcall r_bit mov a,#80h lcall r_bit setb clk clr rst ret
;----------------------读取一ram ------ t_6061: clr rst clr clk setb rst mov a,r1 lcall r_bit lcall w_bit setb clk clr rst ret
;----------------------------- r_1302: mov r0,#second mov r7,#7 mov r1,#81h r_1302a:clr rst clr clk setb rst
mov a,r1
lcall r_bit ;读入地址81h lcall w_bit ;写出地址的数据 mov @r0,a inc r0 inc r1 inc r1 setb clk clr rst
djnz r7,r_1302a ret
;------------------r_bit------------------ r_bit: mov r4,#8 r_bit1: rrc a mov io,c setb clk clr clk
43
河南机电高等专科学校毕业设计论文
djnz r4,r_bit1
ret ;1字节读入ds1302 ;-------------------w_bit----------------------- w_bit: mov r4,#8 w_bit1: mov c,io rrc a setb clk clr clk
djnz r4,w_bit1
ret ;1字节写出到单片机
;-------------------------------------------------- bcd_hex: mov a,6fh anl a,#0fh mov b,a mov a,6fh mov 6fh,b swap a
anl a,#0fh mov b,#0ah mul ab add a,6fh ;mov 6fh,a ret
hex_bcd: mov a,6fh mov b,#10 div ab swap a add a,b ;mov 6fh,a ret
;-----写一地址---r1 为地址,r0 为数据---------- setone: clr clk clr rst clr clk nop
setb rst
mov a,#8eh ;读入地址8eh lcall r_bit mov a,#00h
lcall r_bit ;00h读入,允许寄存器写
44
河南机电高等专科学校毕业设计论文
setb clk clr rst clr clk nop
clr rst clr clk setb rst
mov a,r1 ;读入要修改的地址 lcall r_bit
mov a,r0 ;读入数据 lcall r_bit
nop
setb clk clr rst nop nop
clr rst clr clk setb rst
mov a,#8eh ;读入地址8eh lcall r_bit
mov a,#80h ;80h读入,禁止寄存器写 lcall r_bit
setb clk clr rst ret
tab: db 0c0h,0f9h,0a4h,0b0h,99h,92h db 82h,0f8h,80h,90h end 45
因篇幅问题不能全部显示,请点此查看更多更全内容