您的当前位置:首页正文

基于单片机的智能窗帘控制器的设计

2023-03-23 来源:易榕旅网


基于单片机的智能窗帘控制器的设计

周士晨

(陕西理工学院物电学院电子信息科学与技术专业2012级3班,陕西 汉中 723001)

指导教师:蒋媛

[摘要]在社会经济快速增长,人们的生活质量也在不断飞升的时代里,人们对生活的舒适度的需求越来越高,窗帘作为每个家庭的必须用品,当然也需要满足人们更高的舒适性需求,因此就有设计一款智能的遥控窗帘的需要。本设计是基于8位的单片机STC89C51所设计的智能遥控窗帘。采用了无线遥控,和智能模式,通过直流电机控制窗帘的开和关。

[关键词]STC89C51;直流电机;无线遥控

Design of intelligent curtain controller based on single chip microcomputer

Zhou Shichen

(Grade12,Class03,Major Electronic Information Science and Technology,School of Physics and Telecommunication Engineering,Shaanxi University of Technology,

Hanzhong,723000 Shaanxi)Tutor: Jiang Yuan

Abstract :In the rapid growth of social economy, people's quality of life also in the era of continuously rising, people is higher and higher demand for the comfort of life, the curtain as each family must supplies, of course also needs to meet the

demand of people to a higher comfort, so there is a need to design a intelligent remote control curtains. This design is based on 8-bit microcontroller STC89C51 design intelligent remote control curtains. Using the wireless remote control, and intelligent mode, the curtain opened and closed by dc motor control.

Key words : STC89C51;DC motor;wireless remote control

目 录

基于单片机的智能窗帘控制器的设计 ...................................................................................................................................... 1 1 概述 ......................................................................................................................................................................................... 1

1.1 设计的背景与意义 ....................................................................................................................................................... 1 1.2 主要任务 ....................................................................................................................................................................... 3 2系统总体方案及硬件设计 ....................................................................................................................................................... 3

2.1设计思路 ........................................................................................................................................................................ 4 2.2 工作原理 ....................................................................................................................................................................... 4 2.3 硬件系统设计 ............................................................................................................................................................... 5

2.3.1主控芯片 ............................................................................................................................................................. 5 2.3.2 单片机最小系统 ................................................................................................................................................ 9 2.3.3按键设计 ........................................................................................................................................................... 11 2.3.4 遥控发射模块参数 .......................................................................................................................................... 11 2.3.5 PT2262/PT2272编解码集成电路原理说明.................................................................................................... 13 2.3.6 遥控电路设计 .................................................................................................................................................. 17 2.3.7 光线检测模块 .................................................................................................................................................. 19 2.3.8 正反转控制模块 .............................................................................................................................................. 19 2.3.9 正反转与模式显示模块 .................................................................................................................................. 20

3系统软件设计 ......................................................................................................................................................................... 21

3.1 软件介绍 ..................................................................................................................................................................... 22 3.2程序设计 ...................................................................................................................................................................... 24 3.3系统程序流程图 .......................................................................................................................................................... 26 4毕业设计体会 ......................................................................................................................................................................... 26 参考文献.................................................................................................................................................................................... 28 附录A ........................................................................................................................................................................................ 30 附录B ........................................................................................................................................................................................ 43

1 概述

对每个家庭来说窗帘已经是不可缺少的家具用品,众所周知窗帘的最基本作用就是保护个人隐私以及遮挡阳光挡灰尘等。但是,每天会面临一个问题就是早上开晚上关有些麻烦并且会容易忘记导致家里一天没有光线,特别是一些比较大窗帘不仅仅比较沉重,而且还特别的长,要很大的力气去拉开和合并窗帘,这样是非常费力气和麻烦的。随着中国的科学的不断的进步与技术不断的创新,人们的生活水平也逐渐的步入了小康的生活水平,人们对能通过自动化控制的产品的需求也就越来越高。所以有需求就有市场,于是在近几年中遥控电动的产品如同光的速度一般地发展着,并且得到广泛的应用。自动窗帘也包括在其中,我们只需轻按一下遥控器,就可以看着窗帘不费吹灰之力的根据按键的指令自动的进行拉开和闭合,就是这么的简单,这么的方便。为了更加的了解自动窗帘的运作过程,所在这本次设计中,我主要利用单片机模块无线遥控模块来设计的电路。

1.1 设计的背景与意义

随着社会经济的发展,科学的进步,人民生活质量也越来越好,同时伴随的是生活中的压力和工作的压力以及竞争力也渐渐变大,人们都希望有一个舒适的环境去工作或者休息,这就使得自动化技术快速的发展。当今,自动化的控制已经非常普遍。为了进一步满足人们高水准生活的需求,他依然有很高的研究价值,在这个家用电器不断的升级不断地换代的时候,从最早的几个元气件组成的电路到现在几万个元器件组成的大型集成电路;从普通“傻瓜”机向高性能、智能型、多功能型发展;由手动的控制向红外线遥控、声控、光控、向智能化发展。而无线遥控具有低成本、低功耗、功能强等特点是目前应用最广泛的一种遥控方式。与此同时,智能窗帘作为家居中不可缺少的一部分,也开始被人们所关注起来,目前,绝大多数的家里用的都时钢丝绳手动的窗帘,只有极少部分的家里用的时电动控制的窗帘。但价格相当昂贵,而且不能达到智能化,更不能普及。所以,现在的重

共 20 页 第 1 页

点是如何研制出功能全、智能化高的、造价低的试用于所有家用智能自动控制窗帘。

51单片机就以它的功能强、成本低、消耗低、可靠性强等特点,就是因为这样单片机也有它突出的优点。从1974年开始,开始不断发展,并广泛应用于生活中的方方面面像工业中的测量、家用电器中的控制、医疗设备、等多种专用设备的智能化管理及过程控制等领域。

从国内的情况来看,单片机成为了我们生活中不可缺少的一部分:在以后的几年里,8位和16位单片机将是单片机的发展主流,它的新发展表现在:

(1) CPU功能的增加。

(2) 内部资源的增多。

(3) 引脚的多功能化。

(4) 低成本、低功耗。

由此可以得到单片机的发展方向将是容量教大、性能较高、功耗较低等方面发展,还有就是对CPU、存储器以及片内I/O的改进,特别重要的一点是系统的单片机是目前单片机发展的重要趋势之一。正因为单片机是众多优点集于一身,使得单片机在工业控制中和家用电器的领域上得到了广泛的应用。单片机系统具有以下特点:

1、具有“小、轻、廉、省”的特点,特别是耗电方面是相对较少的,另一方面它供电电源的体积小、重量轻,就因这一点就特别适用于“电脑型产品”,可以在收银机、办公设备、家电、电子秤、厨房设备等许多产品上得到广泛应用。

共 20 页 第 2 页

2、具有实现数字化和智能化可以适用于仪器仪表的测量,不仅单单完成测量还能够处理、监控等。

3、可以对各种工业进行控制,例如温度控制、液面控制、生产线顺序控制等。

我对单片机的认识大部分是来自于书本以及网上资料,就算仅仅如此我已经知道单片机的应用极大地推动了计算机技术的普及和发展,已渗透到我们生活中的方方面面,由此可以猜测,随着单片机性能的一步一步提高,它的应用领域会更加普遍广泛。单片机的应用不单单可以实现较多的功能并且在另一方面可以降低设计和生产成本。以至于它对我国许多产品的升级、换代做出了很大的贡献[8]。

1.2 主要任务

本次毕业设计的课题是设计基于STC89C51单片机的遥控窗帘。主要功能如下:

1)设计能够控制窗帘的开关。

2)要具有防过卷功能。

3)具有无线遥控的功能。

4)能够指示运行的状态。

5)具有智能控制模式,可以根据环境光线控制窗帘的开合窗帘。

2系统总体方案及硬件设计

共 20 页 第 3 页

本系统主要由单片机最小系统、无线发射、接收模块、按键部分、电机控制执行部分和限位开关组成。

2.1设计思路

本设计是基于单片机的遥控窗帘,采用8位的STC89C51单片机做控制器,程序采用C语言编程来实现。窗帘的闭合和打开是利用直流电机正反转来实现的。无线遥控模块是由SC2262(发射)/SC2272(接收)编码解码芯片组成的无线发送接收模块。接收信号是通过SC2272,利用SC2272的D0、D1、D2、D3端口输出的信号控制单片机,单片机控制电磁继电器的吸合来控制直流电机的正反转,实现窗帘的打开和闭合,再电机工作的过程中程序会时刻检测是否碰到行程开关,如果碰到程序会终止电机的工作,从而实现窗帘的防过卷。

系统框图如下:

图2.1系统框图

2.2 工作原理

共 20 页 第 4 页

本设计它采用的是通过无线遥控的控制方式,其中无线发送接收模块是由SC2262/SC2272 编码解码芯片组成的;控制窗帘的开关是通过控制直流电机的正反转来实现,并且根据指示来运行状态;另一方面可以根据环境光线的强弱变化让窗帘的开合状态得到控制,利用限位开关来控制窗帘停止,防止过卷,就是通过这么一个过程来完成对窗帘的智能控制,并很好的体现出更智能更人性化的系统。

2.3 硬件系统设计

2.3.1主控芯片

本设计的主控芯片是单片机STC89C51。是一个具有4K 可编程Flash 存储器,允许程序存储器在系统可编程,他的指令和管脚的功能和工业的80c51是一致的,所以STC89C51在许多嵌入式控制系统中得到广泛应用。

STC89C51单片机主要功能:在晶片内部具时钟振荡器;其中内部程序存储器(ROM)为 4KB;内部数据存储器(RAM)为 256字节;具有32个可编程I/O口线;包括8 个中断向量源;可以看到有两个 16 位计数器/定时器;同时是具有全双工UART串行通道的;还具有三级加密程序存储器;在掉电后中断可被唤醒;并且会有低功耗空闲和掉电模式;还有一个看门狗定时器[1,2]。

在运用到STC89C51时,必须要了解各引脚功能:

P40_VCC引脚中单片机电源正端输入,接+5V;

P20_GND引脚是单片机电源地端;

共 20 页 第 5 页

P18_XTAL1引脚是单片机系统时钟的反相放大器输入端;

P19_XTAL2引脚是系统时钟的反相放大器输出端,只需在 XTAL1 和 XTAL2 上接一只12M石英晶振,并且需要在两引脚与地之间加上一两个 30PF 的小电容,这样就组成晶振系统,为单片机提供精准的时钟,避免噪声干扰而死机;

P9_RESET引脚是单片机的复位引脚,高电平使能,当要对单片机复位是,只要将引脚低电平拉高至高电平,并维持两到三个毫秒以上的延时,就可以让单片机内部的特殊寄存器工作,并且重程序最开始的地址执行代码,从而实现单片机的复位功能;

P31_EA/Vpp引脚是单片机的使能端口,EA表示存取外部程序代码之意,当电压为低电平时,系统会取用外部的程序代码来执行程序。因为STC89C51的外部没有无程序存储器空间,所以在执行单片机内部的程序是EA要为高电平这样单片机就能正常运行了。

P30_ALE/PROG引脚是地址锁存器启用信号,因为51单品机是已多工的方式工作,所以单片机的第30管脚用来触发外部8位锁存器,将P0口的数据锁进锁存器中,平时ALE输出的频率是晶振频率的1/6,因此用这个管脚也可以来驱动周边的芯片;

P29_PSEN引脚单片机这个管脚的输出是外部程序存储器的读选通信号。在从外部程序存储器取指令期间,每个机器周期两次PSEN有效。但在此期间,每当访问外部数据存储器时,这两次有效的PSEN信号将不出现。PSEN同样可以驱动(吸收或输出)8个LS型的TTL输入;

PORT0(P0.0~P0.7)引脚端口P0口是一个8位开路双向输入输出端口,其中只有P0口内有提升电路,P1口、P2口、P3口都不具备这个电路,当P0口作为I/O口使用时

共 20 页 第 6 页

可以同时驱动8个负载。同时外部需要接上拉排阻,以提高供电。如果当单片机的EA管脚脚为低电压时也就是要调用外部程序时,P0口就会运用多工的方式提供地址总线和数据总线。所以我们必须外加一锁存器将P0口送出的地址栓锁住,再配合端口2所送出的A8~A15合成一完整的16位地址总线,而定址到64K的外部存储器空间;

PORT2(P2.0~P2.7)引脚端口2是具有内部提升电路的双向I/O端口,每一个引脚可以推动4个LS的TTL负载,若将端口2的输出设为高电平时,此端口便能当成输入端口来使用。P2除了当做一般I/O端口使用外,若是在STC89C51扩充外接程序存储器或数据存储器时,也提供地址总线的高字节A8~A15,这个时候P2便不能当做I/O来使用了;

PORT1(P1.0~P1.7)引脚端口1也是具有内部提升电路的双向I/O端口,其输出缓冲器可以推动4个LS TTL负载,同样地若将端口1的输出设为高电平,便是由此端口来输入数据。如果是使用8052或是8032的话,P1.0又当做定时器2的外部脉冲输入脚,而P1.1可以有T2EX功能,可以做外部中断输入的触发脚位;

PORT3(P3.0~P3.7)引脚P3口也具有内部提升电路的双向I/O端口,他不仅可以输出缓冲器还可以可以推动4个TTL负载,P3口还有很多功能是复用的,比如串行通信、外部中断控制、计时计数控制及外部数据存储器内容的读取或写入控制等功能都可以p3口实现。

其引脚分配如下:

P3.0:叫RXD引脚,用于单片机的串行通信输入。

共 20 页 第 7 页

P3.1:叫TXD引脚,用于单片机的串行通信输出。

P3.2:叫INT0引脚,用于单片机的外部中断0输入。

P3.3:叫INT1引脚,单片机的外部中断1输入。

P3.4:叫T0引脚,用于单片机的计时计数器0输入。

P3.5:叫T1引脚,用于单片机的计时计数器1输入。

P3.6:叫WR引脚,用于单片机的外部数据存储器的写入信号。

P3.7:叫RD引脚,用于单片机的外部数据存储器的读取信号。

REST:叫单片机复位输入引脚。在振荡器复位器件的情况下,要保持REST脚两个机器周期的高电平时间。

ALE/PROG:在FLASH编程期间,用于输入编程脉冲。在一般情况下,ALE端会以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。以至于它可用来作对外部输出的脉冲或者是用于定时目的。需要特别注意的一点是:每当它被用作外部数据存储器时,就将跳过一个ALE脉冲。要是想禁止ALE的输出那就可以在SFR8EH地址上置0。与此同时ALE只有在执行MOVX,MOVC指令时才会起作用。最后需要将该引脚被略微拉高。如果微处理器是在外部执行ALE禁止状态,那么置位就是无效的。

PSEN:是用于外部程序存储器的选通信号。在由外部程序存储器取指的这段时间,每个机器周期需要两次的PSEN才能有效。如果在访问外部数据存储器的话,这两次有效的

共 20 页 第 8 页

/PSEN信号是不会出现的。

EA/VPP:当EA保持低电平时,需要保证在此期间有外部程序存储器(0000H-FFFFH),关于内部程序存储器是可有可无的。需要特别注意的是当加密方式为1时,EA引脚将内部锁定为RESET;反之当EA端是高电平时,需要保持在此间有内部程序存储器。在FLASH编程期间,此引脚也可以用于12V编程的电源[1,2]。

单片机引脚图如下:

U11234567891011121314151617181920P10P11P12P13P14P15P16P17RESETP30/RXDP31/TXDP32/INT0P33/INT1P34/T0P35/T1P36WRP37/RDX2X1GNDSTC89C52VCCP00P01P02P03P04P05P06P07EA/VPALE/PPSENP27P26P25P24P23P22P21P204039383736353433323130292827262524232221 图2.2 单片机引脚图

2.3.2 单片机最小系统

什么是最小系统?单片机的最小系统:需要在51单片机加上一些的外围电路和应用系统所构成的应用系统称为单片机最小系统。

共 20 页 第 9 页

(1)时钟电路

STC89C51单片机芯片内部有一个反相放大器,是用来构成振荡器振荡电路。一般情况下会在在P19和P20还有GND之间接一个30Pf的瓷片电容,然后根据实际情况选择合适的晶振,可以选6M、12M、24M等构成晶振电路,起作用是为单片机提供时钟[1,2]。

C21830pFY1C311.0592MHz1930pF 图2.3 时钟电路

(2)复位电路

在单片机最小系统电路中,一般采用的是上电自动复位和手动按键复位两种方式来达到最小系统的复位操作的目的。其中上电复位就是在单片机接上电源,单片机最小系统自动实现复位操作,通过电容C3充电来实现上电自动复位。我们这里使用的的是手动复位,要求在电源接通的条件下,单片机最小系统工作期间,用按钮开关控制单片机复位。通过按键将电阻R1与VCC接通来实现手动按键复位[1,2]。

其结构如下图:

共 20 页 第 10 页

VCCS49C1R110uF10k 图2.4 复位电路

2.3.3按键设计

一般常用的按键有机械触点式按键、导电橡胶式和柔性按键(又称触摸式键盘)这三种类型。

使用机械接触式按键机械弹性使复位按钮,手感明显,连接是用于制造单件清晰,简单的过程。但造成接触不良触点容易侵入灰尘,体积也比较大。

使用橡胶的弹性按按钮一路面板重置导电橡胶按键做了一个小尺寸,组装方便,适合大规模生产。但时间长了,留下了弹性橡胶老化下滑,而容易侵入灰尘。

弹性按钮在近年来迅速发展,新类型的按钮,可以分成一个凸球面的和平面型两种。灵活键最大的特点是防尘,防潮,耐腐蚀,美观大方,便于组装。和面板的布局和外观,颜色,从机器键可以根据需要而设计的。

由于有限的客观条件和经济能力,该系统采用机械接触的按钮[1,2,3]。

2.3.4 遥控发射模块参数

共 20 页 第 11 页

1、通讯方式:调幅AM

2、工作频率:315MHZ/433MHZ

3、频率稳定度:±75KHZ

4、发射功率:≤500MW

5、静态电流:≤0.1UA

6、发射电流:3~50MA

7、工作电压:DC 3~12V

数据传输模块在运行的时候采用的是声表面波谐振稳频,其频率稳定度较高,当环境温度变化在为-25〜+ 85度之间时,那么频率仅仅为3ppm /度。特别是对多个无线远程控制和数据传输系统的一个集合。频率稳定在谐振器的晶体后,比一般的LC振荡器的频率稳定性和一致性方面都较差,就算是在高品质的微调电容器,因为温度变化和振动,也很难以确保没有频率已被调整的偏移发生。

发射机模块未设置编码IC和数据调制晶体管Q1的增加,这种结构使得能够容易地和其它固定编码电路中,滚动编码电路和微控制器接口,而不管编码电路电压和输出振幅信号幅度的值。例如,使用PT2262和其他编码的IC进行连接,就可以直接把它们的数据输出端第17脚接至数据模块的输入端,那么这个过程就完成了。

数据模块具有宽的工作电压范围为3〜12V,当电压变化基本上是相同的发送频率,

共 20 页 第 12 页

并发送器模块,支持所述接收模块无需任何调节可以稳定地接收。当发射机电压为3V时,需要约20至50米的传输距离,其传输功率小,当电压为5V时约需要100至200米的传输距离,当为9V的电压时约需要300至500米的传输距离,当传输电压为12V时事最佳工作电压,具有较好的发射效应,约为60毫安,发射电流为700至800米空旷传输距离和传输功率大约为500毫瓦。当电压低于l2V的功率消耗增加时,有效辐射功率不显著改善。这个模块的特征是发送功率较大,相对传输距离远,更适合于恶劣的条件下的通信。因为天线导线有25厘米长,那么最好在远距离传输的时候将它竖立起来,因为会有许多因素会影响到无线电信号发送的收入的最佳选择,但事实上距离是只有一半的标称距离或更小,并且需要时间去开发传输。

减少电力消耗的数据可以使用ASK调制模式来达到其目的,当数据信号被停止时发射电流就会降低到零的状态,该数据信号和发送模块的输入电阻器或可使用电容耦合,而不是直接连接,或发射器模块不会工作。接近实际工作电压数据模块应该是数据级,为了获得更好的调制效果。

发射机发射模块最好垂直安装在主板边缘,设备应乱放5mm以上,以防止分布参数影晌。比如说传输距离、信号的频率和幅度调制模块、发射电压及电池容量、发射天线、灵敏度、相关接收机收发环境等因素。通常开阔地带最大发射约800米,不同的传输距离会因为折射和反射的传输过程缩短到无线电信号将会出现不稳定的情况,需要根据不同的环境制定不同的收发器以及收发距离[5]。

2.3.5 PT2262/PT2272编解码集成电路原理说明

PT2262 / 2272是来自台湾普林斯顿公司生产,具有低功耗CMOS工艺以及低成本通用编解码电路,PT2262 / 2272最多含有12个侧三态地址引脚是A0-A11引脚,接线

共 20 页 第 13 页

方式有悬空、接高、接低电平,任何可用的组合如531441地址码,PT2262最多可以有6个数据终端,设定的地址码和数据码是从17脚串行输出的,由芯片PT2262发射编码信号有:地址代码、数据代码、同步代码,可以用来形成一个完整的代码。PT2272解码芯片有两个比较检查接收信号和它的地址代码,VT脚输出的是高电平,并在同一时间数据脚输出高电平,如果发送端一直按住该按钮那么芯片将连续发射编码。不管有没有按下发射按钮,PT2262都无需电源。其17脚为低电平,高频发射电路工作频率为315MHz并且没有按下按钮时,那么PT2262电器是处于工作的状态,然而17脚输出的是调制的串行数据信号,当17脚输出315MHz的高频传输电路就可以看到在启动和发出的高频信号的幅度,当315MHz的高频传输电路停止那么17脚振荡,并且高频传输电路会完全关闭,用来控制数字信号PT2262 17脚输出,因而高频电路完整幅移键控(ASK调制)调制等效于100%的调幅。

PT2262特点

1、CMOS工艺制造,低功耗。

2、外部元器件少 。

3、RC振荡电阻 。

4、工作电压范围宽:2.6-15v 。

5、数据最多可达6位。

6、地址码最多可达531441种。

共 20 页 第 14 页

应用范围

1、车辆防盗系统。

2、家庭防盗系统。

3、遥控玩具。

4、其他电器遥控。

图2.5 芯片2262 /2272 图片

在特定的应用中,外部振动阻力可以适当地根据需要进行调整,电阻越大,越慢的振荡频率,更大的码发送时间长的编码宽度。大多数产品均采用2262/1.2M=2272/200K组合,

共 20 页 第 15 页

该模块的另一个重要用途是与单片机数据通信来实现,然后有一些小窍门:

1、合理的通讯速率

数据模块的最大传输数据速率为9.6KBs,通常在约2.5K控制的高数据率的增加会降低接收器的灵敏度和误码率或者甚至不可能工作。

2、合理的信息码格式

当单片机模块工作时,它会定义自己的传输协议,不管使用哪一种调制的方案,信息编码格式的传递是非常重要的,它将会直接影响数据收发的可靠性。

推荐方案:格式是 前导码+同步码+ 数据帧,前导码长度要大。设置前导码的长度为10ms,以避免背景噪声,因为所接收的数据根据一个容易受到干扰(即,零级干扰)接收模块所引起的接收到的数据错误。所以,我使用的是CPU编解码器并增加一些乱码数据识别,用来抑制干扰因素。前导码的长度不同其主要应用于数据中,并有一定的特性,使得该软件可以通过一定的算法同步码被识别,同时准备好接收数据。

数据帧不应使用NRZ,不长0和1长。采用曼彻斯特编码或编码POCSAG。

3、单片机对接收模块的干扰

2262单片机仿真时间一般是正常的,但在2272单片机模拟解码的过程中就会发现有很多短距离遥控器,这是微控制器时钟倍频器将与接收模块干扰所导致的,51系列单片机的电磁干扰比2051的电磁干扰程度打,因为PIC系列的电磁干扰是比较小的,所以我们需要使用一些抗干扰措施来减少干扰。比如说微控制器和遥控接收电路有两个5伏电源,

共 20 页 第 16 页

接收板独立的电源78L05微控制器时钟面积从接收模块走,降低了微控制器的工作频率,增加屏蔽的中间。

接收模块和51系列是最好做一个隔离电路接口,可以更好的抑制微控制器模块,主要是起到接收电磁干扰的作用。

一般接收器模块的工作是高输出脉冲,而不是一个直流电平,所以我们不能用万用表测试,可以通过发光二极管调试一个3K串联电阻的监控模块在输出状态时使用[5]。

根据无线数据模块和PT2262 / PT2272编解码芯片的特殊用途,只需对其进行简单的连接,并且可以直接连接到传输距离为理想,一般可达600米,如果配合使用的微控制器或微处理器,微控制器或微处理器将时钟干扰,导致降低传输距离远,一般实用200米的距离内。

2.3.6 遥控电路设计

遥控电路的设计主要运用了,2262与2272芯片作为遥控的接收编码与译码芯片,遥控电路图如下:

共 20 页 第 17 页

M1FSMK987654321U1SC2262ATADD0D1D2D3OSC1TEOSC2GNDDoutVCC10D111D212D3131415DATA161718R110KR2R410RK310K10KR54.7M4148DATAGNDVCCA7A6A5A4A3A2A1A012VD1D24148D34148D1D2D3K131UP42K231DOWN42K331QH42

图2.3.6遥控器原理图

用12V电池的远程控制部分,电源按钮电池正结束后按压和将芯片和发射模块和通信信号,所以还设计以确保电池的耐久性。接收部分的电路图如下:

P1.3VCCM2GNDDATADATAVCCJSMK123456789U2R1510KVCCVCCQ19013P1.2R1810kR16Q5R13901310kSC2272A0VCCA1VTA2OSC2A3OSC1A4DINA5D3A6D2A7D1GNDD01817R14162.2K15141312R192.2k1110R122.2k820KP1.1Q29013

共 20 页 第 18 页

图2.6接收原理图

接收电路是通过SC2272先译码,然后通过NPN三极管9013将芯片输出的的高电平转化为低电平,这样单片机就可以更好地识别变化。

2.3.7 光线检测模块

当室外光线变亮时,拉开窗帘,并且指示灯亮,当室外光线变暗时,窗帘关闭,关闭指示灯亮,光电阻增加检测系统的自动模式是自动关闭,晶体管的基极电压变低,随着晶体管,发射极电阻为10k拉低,输出低电平;当明亮的耐光性变得更小,该晶体管的基极电压变高时,晶体管被接通时,电源发射极被拉动时,输出高电平[3]。光传感器的原理如下:

VCCR21guangminQ69013P1.0R19104R2010k 图2.7 光敏检测模块

2.3.8 正反转控制模块

电机的驱动模块主要采用的是两个继电器来控制直流电机的两端电压,从而控制电机

共 20 页 第 19 页

的正反转,带动窗帘的开合,两个继电器采用5V继电器,通过两个PNP三极管9012驱动继电器的吸和[4]。模块的电路图如下:

VCCVCCP3.0R91KQ39012R1110JDQ1VCCR101KMQ490123V图2.8 电机正反转模块

P3.5JDQ2VCC 2.3.9 正反转与模式显示模块

显示主要采用3个红黄蓝LED灯指示系统工作状态,红色LED亮时系统是智能模式,就是当室光线变亮时,窗帘自动打开,当室外光线变暗时,窗帘自动关闭。当蓝色LED亮时表示电机正传,黄色LED亮时表示电机反转,当限位开关闭合时,相应LED灯慢闪3下,同时停止电动机。

电路图如下所示:

共 20 页 第 20 页

R1710KD3LEDL图2.9显示模块接线图

P1.4R71KD3LEDYP1.5R82.2KD4LEDRP1.7 3系统软件设计

对于STC89C51系列的单片机,通常都是兼容c语言与汇编语言,也有的汇编和c交替使用的。

C语言是一种结构化编程语言,它可以生成压缩代码。在硬件配置上C语言只需要单芯片内存等硬件有结构的初步了解,由编译器寄存器分配,不同的内存寻址和数据类型和管理的其他细节。 用C语言写的出来的程序本身不会太依赖于机器的硬件结构,实质上无需修改可以是不同类型的微控制器之间相互便携。程序可以分为不同的功能,结构,规范,可读性强。 C语言提供了许多标准库中包含的程序,具有很强的数据处理能力。 C语言作为一种方便,容易掌握的语言已被广泛应用,是目前最广泛使用的微控制器的编程语言之一。而且c语言简单也懂不需要了解太多的寄存器。

汇编语言程序设计也将在SCM给出被广泛使用,具有简单,实用,灵活的控制,还具有实时的性质,大大的提高了程序的效率和利用率。汇编语言具有非常强的控制硬件,

共 20 页 第 21 页

可以实现与其他高级语言的软件和硬件的信息不能在汇编语言来控制,但编程的复杂性非常高,而且不容易理解。

综合来看,软件设计语言选择C语言。

3.1 软件介绍

Keil是美国Keil Software公司研发的单片机开发软件,他有两个版本一个ARM一个是研发51单片机的,他兼容51编程和汇编编程,在这次的设计中我们选择的是51编程的软件运用的是c语编程,和汇编编程相比,c语言在许多方面都有很大的优势,首先他的程序简单易懂,简单易学,而且结构性强,在功能上和可维护性上与汇编相比也有明显的优势。这些只有用过汇编和c语言的人才会深有体会。KeilC51软件有齐全的库函数和功能齐全的调试工具,Keil还有一个强的功能是c语言生成汇编代码,他的生成效率非常高,而且代码关联紧密,容易理解。尤其在开发大型项目是就更能体现出Keil的强大之处,下面就是在开发时所用到的各个部分功能,Keil_c软件界面如图:

共 20 页 第 22 页

图3.1 Keil_c软件界面

Protel99是80年代portel公司推出的EDA软件,protel99可应用于windows7系统和windowsXp系统操作下的EDA设计研发软件,他具有很强的数据交换能力和3D模拟功能,是一个32的设计软件,他可以独立完成电子电路的原理图设计,还可以完成印制电路板和开发可编程逻辑元器件的设计和模拟功能等工作。他可以设计16个VCC 和GND和16个机加工层。

Protel99软件的特点:

(1)他可生成30多种电气连接网络链接表;

(2)具有强大的编辑功能;

(3)如果在原理图中选择任意一级元器件,同时在PCB中同样的器件也将被选中;

(4)可以同时运行原理图和PCB图,他支持在原理图和PCB间交叉修改查找元器件,和网络图。

(5)Protel99既可以由原理图向PCB进行正向注释元器件标号,也可以由PCB到原理图反向注释,以保持电气原理图和PCB在设计上的一致性;

(6)他不仅满足国际化设计要求;而且可以方便的使用数模混合仿真;

(7)支持用CUPL语言和原理图设计PLD,生成标准的JED下载文件; * PCB可设计32个信号层,16个电源-地层和16个机加工层;

共 20 页 第 23 页

(8)具有很强的“规则驱动”设计环境,符合在线的和批处理的设计规则检查;

(9)智能覆铜功能,覆铀可以自动重铺;

(10)提供大量的工业化标准电路板做为设计模版;

图3.2 Prote199SE界面图

Protel99的工作界面是一种标准的Windows界面,如图所示,其中包括:主菜单、对象选择按钮、仿真进程控制按钮预览窗口、状态栏、标题栏、图形编辑窗口、标准工具栏、绘图工具栏、预览对象方位控制按钮、、对象选择器窗口。

3.2程序设计

共 20 页 第 24 页

这次设计主要运用的是C语言编程,主要使用了if else语句,while循环等判断语句,当遥控板上有按键按下时,编码芯片会把相应的按键编码,通过导线发送到无线模块中,无线发射模块就会发出信号,通过调幅的方式传播,接收模块就会接收到信号,芯片会自动解码,解码后输出相应的电压经过三极管放大,单片机接受数据,响应相应功能。当限位开关闭合时,说明窗帘已经到达指定位置,停止转动。

共 20 页 第 25 页

3.3系统程序流程图

图3.3 总程序流程图

4毕业设计体会

四年的大学时光转眼间就过去了,在这四年里我觉得我过得很充实,参加了很多关于单片机方面的设计,像课程设计,挑战杯,飞思卡尔,大学生电子设计大赛等等,也很感谢学校能提供这么一个平台,给了我们可以施展自己的空间,在参加这些设计的过程中不断学习和锻炼锻炼了自己的实践动手能力,分析问题以及解决问题的能力。

共 20 页 第 26 页

理论出真知,实践出才干,设计是一个漫长而又艰辛的过程的,在设计的过程中不断查询相关的资料和书籍,从图书馆到互联网,纸上得来终觉浅,绝知此事要躬行,任何成果的得来都要付出艰辛的努力,同时也感觉到自己所学知识的不足,让我们通过这此设计过程进一步复习掌握了模拟电子,数字电子等相关的课程实践方面的学习,并且复习了单片机原理,单片机开发软件,Protel制图软件,学会了单片机应用系统的整个设计过程。

制作过程是一个考验人耐力的过程,不能有丝毫的急躁,马虎,对电路调试都需要一步一步认真分析,千万不能过分追求速度,在调速过程中对于遇到的问题要总结笔记为以后设计提供宝贵的经验,为以后的设计积累了宝贵的经验,这次设计制作过程中通过不断训练让我受益匪浅学习到了很多的科技制作方面的知识,掌握了这些基本的技能。

总体来说,通过参加单片机毕业设计让我学些到了很多课堂上学习不到的知识,在摸索电路设计,程序编写,调试的各个过程中都充满着很多的挑战,培养了电子设计的兴趣,同时也体验到了设计过程中的艰辛,更让我体会到了成功的喜悦和快乐。

共 20 页 第 27 页

参考文献

[1] 李朝青. 单片机原理及接口技术[M]. 北京:北京航天航空大学出版色,2001.22-26.

[2] 胡汉才. 单片机原理及其接口技术[M]. 北京:清华大学出版社,2004.55-56.

[3] 阎石.数字电子技术基础[M].北京:高等教育出版社,2003.19-58.

[4] 熊超美. 步进电机的单片机控制硬件系统设计[J]. 湖南有色金属. 2011(02).2-3.

[5] 董晓庆. 基于单片机的红外线传输系统设计及实现[J]. 科技资讯. 2010(21).1-2.

[6] 王海波,吴晓光,李沛,余祎琴. 基于AT89S52单片机步进电机控制系统设计[J]. 机电产品开发与创新. 2009(06).3-4.

[7] 杨东,轩克辉,董雪峰. 光敏电阻的特性及应用研究[J]. 山东轻工业学院学报(自然科学版). 2013(02).2-3.

[8] 谌容,胡泽,张扯拉,汪维. 基于单片机控制的智能光控窗帘系统研究[J]. 电子世界. 2013(09).3-5.

[9] 张天鹏,徐磊. L298N控制直流电机正反转[J]. 工业设计. 2011(03).5-6.

[10]V. Yu. Teplov,A. V. Anisimov. Thermostatting System Using a Single-Chip Microcomputer

and

Thermoelectric

Modules

Based

on

the

Peltier

共 20 页 第 28 页

Effect[J] .2002:8-11.

[11] 王述彦,师宇,冯忠绪. 基于模糊PID控制器的控制方法研究[J]. 机械科学与技术. 2011(01)

[12] 黎琼. 智能家居中红外遥控系统的设计与实现[D]. 华中科技大学 2007.14-40.

[13]Yu, Zhou, Gao, Weizeng, Zuo, Xiangang.Design of Novel Intelligent Transportation System based on Wirel

ess Sensor Network and ZigBee Technology[D]. Sensors & Transducers, 2013, Vol.156 (9), pp.95-102

共 20 页 第 29 页

附录A

#include

#include

#include //头文件

#define uc unsigned char

#define ui unsigned int //宏定义

sbit close = P1^3;

sbit open = P1^2;//手动前进后退按键

sbit out1 = P3^0;

sbit out2 = P3^5;//电机控制输出

sbit limit_close = P3^4;

sbit limit_open = P3^6;//前进后退限位开关

sbit led_close = P1^4;

共 20 页 第 30 页

sbit led_open = P1^5;//前进后退限位指示灯

sbit light = P1^0;//光线传感器

sbit change = P1^1;//手动自动切换按键(默认自动)

sbit led_zhishi = P1^7;//模式指示灯,灯亮是自动模式

bit bdata change_flag; //自动模式变量,为0是自动,为1是手动

bit bdata flag_shan;

bit bdata flag_shan1;

bit bdata flag_shan2;

uc m,n,shan;

void delay(ui x)//延时函数大约延时x ms

{

ui i,j;

for(i=0;i共 20 页 第 31 页

for(j=0;j<110;j++);

}

void work()//工作函数

{

if(change==0)//判断切换是否按下

{

delay(50); //按键去抖

if(change==0) //再次判断按键是否按下

change_flag=~change_flag;//手动,自动切换

if(change_flag==1)//切换到手动

{

out1=1; //关闭电机和LED指示灯

out2=1;

共 20 页 第 32 页

led_close=1;

led_open=1;

}

while(!change);//按键释放

}

led_zhishi=change_flag;//控制模式指示灯和模式一致(自动模式时,change_flag为0,所以指示灯点亮)

if(change_flag==0)//自动模式

{

if(light==0)//夜间(无光)时关闭窗帘

{

delay(50);

if(light==0)

{

共 20 页 第 33 页

if((limit_close==0)&&(flag_shan==0)) //当碰触到关闭的限位开关时

{

out1=1; //关闭电机

out2=1;

led_close=1; //关闭指示灯

for(shan=0;shan<6;shan++) //执行6次,闪烁3次

{

led_close=~led_close; //指示灯闪烁

delay(500); //间隔500ms

}

flag_shan=1; //闪烁后,变量置一,防止再次进入

}

else if(limit_close==1) //没有碰触到限位时

共 20 页 第 34 页

{

out1=1;

out2=0; //关闭窗帘

led_open=1;

led_close=0; //关闭指示灯亮

flag_shan=0; //变量置零,到达限位时闪烁指示灯

}

}

}

else if(light==1)//白天(有光)时打开窗帘

{

delay(50);

if(light==1)

共 20 页 第 35 页

{

if((limit_open==0)&&(flag_shan==0))//以下注释同上

{

out1=1;

out2=1;

led_open=1;

for(shan=0;shan<6;shan++)

{

led_open=~led_open;

delay(500);

}

flag_shan=1;

}

第 36 页

共 20 页

else if(limit_open==1)

{

out1=0;

out2=1;

led_open=0;

led_close=1;

flag_shan=0;

}}}}

else if(change_flag==1)//手动模式

{

if((close==0)&&(limit_close==1))//关闭是否按下

{

delay(50); //去抖

共 20 页 第 37 页

if((close==0)&&(limit_close==1))//再次判断

{

out1=1;

out2=~out2;//按一下打开,再按一下,停止

led_open=1;

led_close=out2; //指示灯跟随电机状态点亮

flag_shan1=0; //变量置零

}

while(!close);//释放

}

else if((open==0)&&(limit_open==1))//打开是否按下

{

delay(50); //去抖

共 20 页 第 38 页

if((open==0)&&(limit_open==1))//再次判断

{

out2=1;

out1=~out1;//按一下关闭,再按一下,停止

led_close=1;

led_open=out1;

flag_shan2=0;

}

while(!open);//按键释放

}

if((limit_close==0)&&(flag_shan1==0)) //碰触限位时

{

delay(5);

共 20 页 第 39 页

if((limit_close==0)&&(flag_shan1==0))

{

out2=1;

led_close=1;

for(shan=0;shan<6;shan++) //闪烁3次

{

led_close=~led_close;

delay(500);

}

flag_shan1=1;

}

}

if((limit_open==0)&&(flag_shan2==0))

共 20 页 第 40 页

{

delay(5);

if((limit_open==0)&&(flag_shan2==0))

{

out1=1;

led_open=1;

for(shan=0;shan<6;shan++)

{

led_open=~led_open;

delay(500);

}

flag_shan2=1;

}

第 41 页

共 20 页 }

}

}

void main()//主函数

{

light=0;

while(1)//进入死循环

{

work();//调用工作函数

}

}

第 42 页

共 20 页

附录B

共 20 页 第 43 页

原理图

共 20 页 第 44 页

因篇幅问题不能全部显示,请点此查看更多更全内容