遥控窗帘的设计

遥控窗帘的设计

[摘 要]随着电子技术和自动化技术的发展,人们对生活质量的要求越来越高。

本设计根据社会发展的需要,采用AT89C51单片机系统来控制窗扇,利用P1和P3口的特殊功能,根据其不同的控制模式,实现半制动控制,自动控制,定时控制的相互转换,实现窗扇自动开关。

关键词: 单片机,编码, 定时控制,步进电机

Design of remote control curtain

[Abstract ]With the development of electronic technology and automation technology, people on the quality of life of the increasingly high demand. This design according to the needs of social development, using AT89C51 single-chip microcomputer system to control the window, using the special function of P1 and P3, according to its different mode of control, realize the brake control, automatic control, mutual conversion timing control, automatic switch model.

Key words: Single chip microcomputer,Coding, Timing control, Stepper motor

目 录

第一章 绪论........................................................11 1.1. 设计背景和意义以及主要任务.............................11 1.2设计的要求..............................................11 第二章 方案设计....................................................12

2.1 控制器智能项目..........................................12 2.2 系统的总体架构计划......................................12 第三章 硬件电路的设计..............................................13 3.1 AT89C51单片机的介绍.....................................13 3.2 本设计的相关电路的介绍..................................13 3.2.1 晶振电路............................................13 3.2.2 复位电路............................................13 3.2.3 时钟电路............................................13 3.2.4 电源电路............................................13 3.2.5 步进电机............................................13 3.3.6 键盘和显示接口电路..................................13 第四章 软件程序设计................................................14 4.1 软件开发环境选择........................................14 4.2 主程序..................................................14 4.3 主程序软件的设计........................................14 4.4 其它功能程序的设计......................................14 4.4.1 键盘程序的设计....................................14 4.4.2 定时程序的设计....................................14 4.4.3 步进电机的程序设计................................14

4.4.4 定时程序的设计....................................14 第五章 系统的调试和运行............................................15 5.1 软件调试................................................15 5.2 PCB图..................................................15 小结 ..............................................................16 致谢 ..............................................................17 参考文献...........................................................18

第一章 绪论

1.1.设计背景和意义以及主要设计任务

随着社会经济的发展和人们生活水平的改变,宽大窗户的办公和生活建筑越来越多。这种建筑结构美观,采光良好。但是,窗户的高度或者宽度超过4米以后手拉窗帘却比较困难。而现在的放地产商几乎却都没有为用户考虑这个问题,使一些高档住宅反而带来了生活上的不便,解决这个问题的方法是使用窗帘机。

窗帘机是专门为高大的窗户设计的窗帘控制装置,根据功能不同可以分为智能、遥控、自动和智能等多种规格。智能窗帘机是通过窗帘机上的控制按键操作窗帘开合的一种最简单的窗帘机,仅仅解决了手动窗帘的问题,可还需要人来近距离操作,智能窗帘使一些超高、超宽窗帘的操作变得比较容易。但是因为这种窗帘技术含量低,基本没有厂家作大规模工业化生产;遥控窗帘机可以远距离操作窗帘的开合,使用更为方便,自动窗帘机具有自动控制功能,可以满足用户各种情况下的使用要求。随着新科技和自动化的发展,传感器的使用数量越来越大,功能越来越强,各种传感器都已经标准化和模块化,这为智能家居控制控制系统的设计提供极大的方便。

智能家居是利用先进的计算机技术、网络通讯技术、综合布线技术、依照人体工程学原理,融合个性需求,将与家居生活有关的各个子系统如安防、灯光控制、窗帘控制、煤气阀控制、信息家电、场景联动、地板采暖等有机地结合在一起,通过网络化综合智能控制和管理,实现“以人为本”的全新家居生活体验。

在设计系统时,面对各种检查对象和大量控制单元,需要利用各种标准和MCU 进行连接,在通过MCU 进行数据处理,实现实时监控。而此时采用单片机来实现智能家居控制系统不仅具有采集控制方便,简单,灵活等优点,而且大幅度提高采各模块和芯片的协调性,从而大大提高系统的利用性。此系统设计正是利用AT89C51单片机的优点,顺利的完成了本设计的要求。并且实现了定时和自动控制功能,为控制家居设备提供了良好的基础。

随着自动窗帘热潮在世界范围内的日渐兴起,随着中国电子技术的飞速发展、人们生活水平的不断提高以及智能电子技术在生活中的广泛应用,自动窗帘已经成为未来家居装饰潮流发展的最新方向,在不久的将来,没有自动窗帘系统

的住宅肯定不合潮流。从目前的发展趋势来看,在未来的20年时间里,自动窗帘行业将成为中国的主流行业之一,其市场的发展前景是非常广阔的。

本设计的主要任务主要是通过单片机实现窗扇的多项智能控制,完成单片机应用系统其开发过的系统的总体设计,软件设计和系统调试。 1.2设计的要求

(1) 进一步熟悉和掌握单片机的内部结构和工作原理,了解单片机应用系统设计的基本方法和步骤

(2)掌握单片机仿真软件Proteus ,protel ,keil 的使用方法; (3)掌握键盘和显示器在的单片机控制系统中的应用。 (4)掌握撰写课程设计报告的方法。

第二章 方案设计

智能窗帘控制器总体方案设计是确定能够满足设计要求的总体方案的环节。本章从系统功能需求出发,规划并确定了系统的总体结构,并在此基础上考虑了系统的可扩展性及可实现性。 2.1 控制器智能项目

随着人民生活水平的不断提高,人们对家庭生活舒适性的需求越来越强烈,窗帘作为每个家庭生活中最必须的家居用品之一,自然也需要满足人民更舒适性的需求。窗帘最基本的作用无非是保护业主的个人隐私以及遮阳挡尘等功能,但传统的窗帘您必须手动去开关,每天早开晚关也是挺麻烦的,特别是别墅或复式房的大窗帘,比较长,而且重,用时需要很大的力才能开关窗帘,特别不方便;于是智能窗帘应运而生。现有的智能窗帘都可以自动开关闭窗帘,到了时间自动控制窗帘的开关,可以根据光的但是他们也有些缺点。窗帘控制器的自动开关如何让窗帘能够开关自如,停机的时间是否到位。

智能窗帘主要有以下几大功能:(1)手动控制:该功能使智能窗帘具有手动正传、手动反转 和手动停止的功能。而且增加了工作状态指示,电机工作在正传、反转和停止状态的时候,数码管均有不同工作状态指示。(2)半自动手动控制:半自动手动控制是在需要关闭或打开窗帘的时候,只需要人工按一下“正转”或“反转”按键后,窗帘到位自动停止。(4) 时间自动控制:根据设置输入的开启或关闭时间,来控制窗帘的关闭和打开。

窗帘的正转、反转和停止功能可由单片机输出信号来控制步进电机的运转以实现。时间自动控制可以由定时器来控制。 2.2 系统总体架构计划

整个智能窗户控制系统包括微处理器、电机驱动电路等模块组成。整个系统框图如图2-1所示。

图2-1 系统框图

智能窗帘控制器的总体结构框图如图2-2所示。

图2-2 智能窗帘控制器结构框图

首先给电路加上电源,在通过时钟电路来定好时间,到了设定的时间自动的复位来开闭窗扇。在通过信号的传输到单片机控制器,来实现电机的运行与停止。显示部件用来显示智能窗帘控制器的各种状态信息。键盘是主要的输入设备,控制单片机的各种参量。

第三章 系统硬件设计

整个系统的硬件接线图如图3-1所示。

R

图3-1 系统总硬件接线图

总体硬件电路图包括单片机外围电路,键盘/显示接口电路,步进电机控制电路等模块。单片机外围电路提供各模块所需的5V 电源和时钟模块;单片机的P2口控制步进电机的运行从而控制窗帘的升降。显示和键盘让人机交换变得更容易。以上各模块组成了智能窗帘控制器的总体电路。 3.1 AT89C51单片机的介绍

AT89C51是一种带4K 字节FLASH 存储器(FPEROM —Flash

Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K 字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL 高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU 和闪烁存储器组合在单个芯片中,ATMEL 的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

图3-2 AT89S51单片机引脚图

AT89C51 提供以下标准功能:4k 字节Flash 闪速存储器,128字节内部RAM ,32 个I/O 口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51可降至0Hz 的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU 的工作,但允许RAM ,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM 中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。

VCC :供电电压。 GND :接地。

P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL 门电流。当P0口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。在FIASH 编程时,P0 口作为原码输入口,当FIASH 进行校验时,P0输出原码,此时P0外部必须接上拉电阻。

P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器

能接收输出4TTL 门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH 编程和校验时,P1口作为低八位地址接收。

P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL 门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH 编程和校验时接收高八位地址信号和控制信号。

P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL 门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL )这是由于上拉的缘故。

P3口也可作为AT89C51的一些特殊功能口,如下表所示: 口管脚 备选功能 P3.0 RXD(串行输入口) 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(外部数据存储器读选通)

P3口同时为闪烁编程和编程校验接收一些控制信号。

RST :复位输入。当振荡器复位器件时,要保持RST 脚两个机器周期的高电平时间。

ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。在FLASH 编程期间,此引脚用于输入编程脉冲。在平时,ALE 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE 脉冲。如想禁止ALE 的输出可在SFR8EH 地址上置0。此时, ALE只有在执行MOVX ,MOVC 指令是ALE 才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE 禁止,置位无效。

/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器

(0000H-FFFFH ),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET ;当/EA端保持高电平时,此间内部程序存储器。在FLASH 编程期间,此引脚也用于施加12V 编程电源(VPP )。

XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 3.2 本设计的相关电路的介绍 3.2.1晶振电路

电路中的晶振即石英晶体震荡器。由于石英晶体震荡器具有非常好的频率稳定性和抗外界干扰的能力,所以,石英晶体震荡器是用来产生基准频率的。通过基准频率来控制电路中的频率的准确性。同时,它还可以产生振荡电流,向单片机发出时钟信号。

图3-3是单片机的晶振电路。电路中的电容C1和C2的典型值通常选择为30PF 左右,该电容的大小会影响振荡电路频率的高低、振荡器的稳定性和起振的快速性。晶体振荡频率的范围通常在1.2~12MHz。晶体的频率越高,系统的时钟频率越快,单片机的运行速度越快。但反过来,运行速度对于存储器的速度要求就越高,对印刷电路板的工艺要求也就越高,即要求线间的寄生电容要小。晶体和电容应该尽可能安装得与单片机芯片靠近,以减少寄生电容,更好地保证振荡器稳定、可靠地工作。AT89C51常选择振荡频率12MHz 的石英晶体。

10113029

[***********][1**********]728

V

图3-3 单片机晶振电路图

3.2.2复位电路

复位是单片机的初始化操作,只需要给AT89C51的复位引脚RST 加上大于2个机器周期(即24个时钟振荡周期)的高电平就可以使AT89C51复位。复位时,单片机初始化为0000H ,从0000H 单元开始执行程序。除了进入系统的正常初始化之外,当程序运行错误(如程序跑飞)或操作错误使系统处于锁死状态时,也需要复位键使RST 脚为高电平,使AT89C51摆脱“跑飞”或“死锁”状态而重新启动。图3-4是复位电路图。

10113029

[***********][1**********]728

图3-4 复位电路图

3.2.3时钟电路

本设计需要窗帘在给定的时间自动开和关,所以需要用到定时器,而为了保证单片机与外界时钟一致,要用到一个实时时钟电路。这里使用DS12887实时时钟芯片来完成这项功能。

DS12887是DALLAS 公司生产的实时日历时钟芯片,其主要功能包括非易失性时日历时钟、报警器、百年历、可编程中断、方波发生器和114字节的非易失静态RAM 。使用DS12887时应注意以下几点:Vcc 正常情况下为5V ,当Vcc 降至4.25V 时,所有的输入被忽略,输出为高阻状态,Vcc 降至3V 时,外部电源被关断,内部锂电池为实时时钟和RAM 供电,在断电情况下,时钟继续运行,其中的数据可保存十年以上不会丢失。DS12887有两种工作时序,即MOTOROLA 和INTEL 时序,由MOT 引脚的电平指定,当MOT 引脚为高电平时选择MOTOROLA 时序,当MOT 引脚为低电平时选择INTEL 时序,图中选为INTEL 时序,这时芯片的DS 引脚接系统的读信号/RD,R/W引脚接系统的写信号/WR。AS 引脚用于分离数据地址总线AD7-AD0上的地址和数据信息,连接到MCU 的ALE 引脚。RESET 引脚的信号对日历时钟和RAM 没有影响,但它影响DS12887的命令和状态寄存器的内容,在图中直接将RESET 连至Vcc ,这样可以保证DS12887在进入或退出电源失效状态时,其工作状态不受RESET 引脚的影响。DS12887有一个可编程输出方波引脚SQW ,从该引脚可以输出频率为2Hz-256Hz 的方波,在系统中正是利用此引脚输出周期为125MS 的方波,作为MCU 外部中断/INT0的中断源实现周期性中断,每当中断发生时,MCU 读一二次输入口,检查电表是否转过一圈,在整点时还要采一次三相电流和电压。

除此之外,DS12887内部还有128字节的RAM 的单元,其中前10个字节用于存放日历时钟信息,字节0为秒,字节2为分,字节4为时,字节6为星期,字节7为日,字节8为月,字节9为年,字节0AH-0DH 用作控制和状态寄存器,剩下的114字节为用户RAM ,所有的这128字节都是掉电非易失性的。

图3-5 时钟电路图

DS12887时钟芯片和AT89C5l 单片微机的接口电路如图3-5所示。模式选择脚MOT 接地, DS12887时钟芯片的AS 端口和AT89C51单片机的AIE 端直接相联;而DS 、R /W 读写控制线与单片机的RD/WR控制线制线相连;DS12887的高位地址由AT89C51单片机的P2.7端口来片选,则DS12887的高8位地址定为7FH ,而其低8位则由芯片内部各单元的地址来决定(00H-3FH);DS12887的中断输出端IQR 和AT89C51的外部中断INT0端相联,给单片机提供中断信号;DS12887的SQW 端与89C5I 的TO 端相连。 3.2.4 电源电路

单片机工作需要使用5V 电压,因此需要给单片机设计电源电路。图3-6是单片机的电源电路。它采用LM7805三端集成稳压器,可输出+5V的直流电压供电。

CC

图3-6 电源电路图

3.2.5步进电机

步进电机为一种数字伺服执行元件,具有结构简单、运行可靠、控制方便、控制性能好等优点,广泛应用在数控机床、机器人、自动化仪表等领域。为了实现步进电机的简易运动控制,一般以单片机作为控制系统的微处理器,通过步进电机专用驱动芯片实现步进电机的速度和位置定位控制。

单片机在本次试验中对步进电机的控制从而达到对转角和位移的控制的方法。本次设计采用两个型号为130HZ308-450的三相反应式步进电机对旋转角度和位移进行控制,该步进电机力矩大、耐负载冲击、精度高。

其步距角为1.2°,即 N =1.2°,即本次设计的测控系统对回转台转角的控制精度可以达到1.2°。步进电机的驱动电路是根据控制信号工作的。而本次测控系统是以单片机位控制中心的,下面将介绍步进电机控制系统。

步进电机控制系统主要由脉冲分配器,功率驱动电路,步进电机几部分构成的。步进电机控制系统的方框图如图3-8所示:

图3-8 步进电机控制系统方框图

图3-9 步进电机控制系统电路图

如图3-9所示,是步进电机控制系统的电路图。

单片机输出步进脉冲后,再由脉冲分配电路按事先确定的顺序控制各相的通断。本设计由软件完成脉冲分配工作,不仅使线路简化,成本下降,而且可根据应用系统的需要,灵活地改变步进电机的控制方案。软件控制脉冲将在软件设计部分说明。

步进电机功率驱动电路工作在较大脉冲电流状态,采用光电耦合器将单片机与步机电机隔离可以避免单片机与步进电机功率回路的共地干扰,防止强功率的干扰信号反串进主控系统。此外,万一驱动电路发生故障,也不致让功放中较高的电压串入单片机而使其损坏。

步进电机的驱动电路有很多种,但最为常见的就是用单电压驱动,双电压驱动,斩波驱动,细分驱动等。但电压驱动是步进电机控制中最为简单的一种驱动电路,它在本质上是一个单间的反相器。它最大的特点是结构简单,工作效率低。而且它的外接电阻要消耗相当一部分能量,这样会影响电路的稳定性。双电压驱动电路是采用两种电源电压,缺点在于在高低电压连接处电流出现谷点,这样必然引起力矩在谷点处下降,不易于电机的正常运行。对于斩波驱动则可以克服这种缺点,并且还可以提高步进电机的效率。从提高效率的角度来看这是一个很好的驱动电路,它可以用较高的电源电压,同时无需外接电阻来限定额定电流和减少时间常数。但由于其波形顶部呈现锯齿形波动,所以产生较大的电磁噪声。细分驱动是用脉冲电压来供电的,对于一个电压脉冲,转子就可以转动一步。本设计采用的是恒频脉宽调制细分驱动电路,电路图如3-10所示。

图3-10 恒频脉宽调制细分驱动电路

3.2.6 键盘和显示接口电路

键盘在单片机应用系统中能实现向单片机输入数据,传送命令等功能,是人工干预单片机的主要手段。本设计中的键盘采用4×4矩阵键盘。16个键分别为:0-9十个数字键,用于时间设定输入;设定键,设定自动窗帘开和关的时间;复位键,在程序出错或者有误操作的时候;正转键,使步进电机正转,窗帘打开;反转键,使步进电机反转,窗帘关闭;停止键,步进电机停止运转;确定键,时间设定完成后确定输入。

由于按键比较多,加上减少所战占用的端口,可以将按键组成一个矩阵,如图3-11所示。

图3-11 键盘接口电路

获取键盘信息的方法有2种,我们经常用到的是扫描法。在扫描法中,所有的行线固定为输出端口,并依次输出低电平;所有列线固定为输入端口,用来检测按键状态。当全部按键均松开时,从列线上检测不到行线输出的低电平。当某个按键按下时,只有在对应的行线输出低电平时才能在对应的列线端口检测到低

电平。按键的触点在闭合和断开时均会产生抖动,这时触点的逻辑电平是不稳定的,如果不妥善处理,将会引起按键命令的错误执行或重复执行。一般消除抖动采用软件方法来解决,将在软件部分介绍这点。

显示部分则主要显示时间,用于设置时间。采用LED 数码管进行显示是一种经济实用的方法。每位数码管由7个笔画加上小数点共8个发光二极管组成;有共阴极和共阳极两种类型,公共端用来进行位控制,笔画端用来进行字符控制;数码管显示有静态显示和动态显示两种方法。

在数码管显示中,有2个技术问题需要解决,这就是整数高位和闪烁显示问题。虽然某些新型LED 驱动芯片本身具有闪烁控制和熄灭控制功能,但通过合理的软件设计,采用廉价芯片组成的驱动电路同样可以实现整数高位灭零和闪烁显示功能,达到降低系统硬件成本的目的。

本设计采用的就是4位LED 数码管的串行驱动电路来达到显示时间和消除闪烁显示的目的。驱动器采用74LS164,由AT89C51的P3.0和P3.1来控制LED 数码管的显示。显示电路图如3-12所示。

图3-12 显示电路

第四章 系统软件设计

系统软件设计主要包括显示子程序,键盘子程序,时钟程序,步进电机控制程序设计及部分构成。本章节系统的介绍了智能窗帘的主程序和各主要功能子程序的设计流程。

本论文所设计的程序主要完成以下功能:

⑴ 按键+遥控控制窗帘开关(分为连续开关和步进开关) ⑵ 定时开关窗帘设置 ⑶ 人机交互信息+时间显示

图4-1 遥控窗帘总流程图

4.1 软件开发环境选择

本论文所选择的软件开发环境为KEIL uVISION4。

Keil公司是一家业界领先的微控制器(MCU )软件开发工具的独立供应商。Keil 公司由两家私人公司联合运营,分别是德国慕尼黑的Keil Elektronik GmbH 和美国德克萨斯的Keil Software Inc 。Keil 公司制造和销售种类广泛的开发工具,包括ANSI C编译器、宏汇编程序、调试器、连接器、库管理器、固件和实时操作系统核心(real-time kernel)。有超过10万名微控制器开发人员在使用这种得到业界认可的解决方案。其Keil C51编译器自1988年引入市场以来成为事实上的行业标准,并支持超过500种8051变种。

Keil 公司在2007年被ARM 公司收购。其两家公司分别更名为ARM Germany GmbH 和ARM Inc和。Keil 公司首席执行官Reinhard Keil表示:“作为ARM Connected Community 中的一员,Keil 和ARM 保持着长期的良好关系。通过这次收购,我们将能更好地向高速发展的32位微控制器市场提供完整的解决方案,同时继续在uVision 环境下支持我们的8051和C16x 编译器。”

2009年2月发布Keil μVision4,Keil μVision4引入灵活的窗口管理系统,使开发人员能够使用多台监视器,并提供了视觉上的表面对窗口位置的完全控制的任何地方。新的用户界面可以更好地利用屏幕空间和更有效地组织多个窗口,提供一个整洁,高效的环境来开发应用程序。新版本支持更多最新的ARM 芯片,还添加了一些其他新功能。

2011年3月ARM 公司发布最新集成开发环境RealView MDK 开发工具中集成了最新版本的Keil uVision4,其编译器、调试工具实现与ARM 器件的最完美匹配。

图4-2 Keil μVision4启动画面

图4-3 编程界面

4.2 主程序

4.3 主程序软件设计

主程序构成无限循环,主要完成单片机初始化,关中断,菜单显示内容初始化,按键扫描,电机运行,计时等功能。

主程序的流程图如图4-4所示。

图4-4 主程序流程图

启动主程序,先关中断并且设置堆栈,接着初始化寄存器,初始化显示内容;然后执行按键查询,执行相应的操作。如果是设定键,则设定时间,开始计时;到时间后步进电机开始相应的工作,工作完成后停机。如果是电机控制键,则也执行相应的工作。如果都不是,则是复位键,采取复位操作。 4.4 主要功能子程序设计 4.4.1 步进电机程序设计

步进电机程序设计的主要任务是:

1). 判断旋转方向; 2). 按顺序传送控制脉冲;

3). 判断所要求的控制步数是否传送完毕。

图4-5 步进电机工作流程图

4.4.2 显示程序

显示程序开始后,起始地址60H 发送到R0,01H 发送至显示位代码R2,再将位代码发送到单片机A 口,,单片机取显示数据查表转换成显示代码发送至单片机B 口,延时2ms ,指针R0加1,然后判断6显示是否完成。如果完成则返回,没完成则位代码R2左移一位,继续显示查表,一直到6位显示完成后返回。

显示子程序流程图如图4-6所示

图4-6 显示部分流程图

4.4.3 键盘程序设计

按键的触点在闭合和断开时均会产生抖动,这时触点的逻辑电平是不稳定的,如不妥善处理,将会引起按键命令的错误执行或者重复执行。现在用软件延时的方法来避开抖动阶段。在判断是否有键闭合后都延时5ms ,按下键后再延时12ms 就可以避免键盘的抖动。然后键码分析,执行相应的模块,显示后返回。

键盘子程序如图4-7所示。

图4-7 键盘程序流程图

4.4.4 定时程序设计

定时的主要功能是在设定时间单片机能够得到中断信号,从而控制窗帘的开关。时钟发出50ms 的信号给单片机,计数器计数,当计数到20,则过了1秒,秒单元数值加1,当秒单元到达60,分单元数值加1,秒单元清零。当时单元到达24,时单元清零。标志1天时间计满,把他们的值放到存储单元的指定单元。图4-8是定时功能流程图。

图4-8 定时功能流程图

第五章 系统的调试和运行

5.1软件调试

当硬件制作完成后,软件制作也是不可轻视的部分,是实现电路的功能的关键部分,通过本次毕业设计,总结经验如下:

(1)先进行人工检查。写好程序后,不要立刻烧入单片机,先对纸面上的程序进行人工检查。由于采用C 语言编程,所以要特别小心地检查语法错误,如括号不配对,漏写分号等,通过仔细的检查,发现并排除这些错误。

(2)人工检查无误后,上机调试。在编译时给出的语法错误的信息,根据提示的信息具体找出程序中错误之处并改之,从上至下逐一改正。应当注意的是:有的提示出错行并不是真正出错的行,如果在提示出错的行上找不到错误的话,则应该到上行再找。

(3) 当确认程序无语法错误和逻辑错误时,通过直接下载到单片机来调试。采用的是自下到上的调试方法,即单独调好每一个模块,然后再连接成一个完整的系统调试。

(4) 程序烧入单片机后,观察各个部件的工作是否正常,功能是否实现。如不能正常工作,则继续检查程序中的相应模块,必要时从上到下重新检查程序。

5.2 PCB图

小结

本次设计系统地介绍了自动窗帘控制系统的硬件电路设计以及软件设计。经过几个月的资料查找和设计,我已完成了毕业设计的任务。本文设计了电动窗帘控制器的智能项目,系统的介绍了电动窗帘控制器的硬件电路设计到软件设计的以系列步骤。本设计采用步进电机作为执行元件,以AT89C51单片机作为控制芯片,辅助键盘和显示,实现了电动窗帘控制器的多项智能项目。

本次毕业设计的整个研究与设计过程包括选题、设计以及完善等。首先,在选题方面查阅了很多与题目有关的资料和课题并且制定设计方案,进行设计的总体规划,然后将这些方案落实到设计环节中。其次,在制定的方案基础上运用所学的知识对硬件以及软件进行设计,并用相关软件进行仿真设计。最后,对设计内容进一步修缮,以求达到最佳设计结果。

纵观整个设计系统,单片机使用了熟悉的AT89C51单片机,从而使整个控制芯片设计起来也是得心应手。所用芯片简单实用,减少了开发和硬件开销。本设计的步进电机可以很好的执行单片机的命令。步进电机为一种数字伺服执行元件,具有结构简单、运行可靠、控制方便、控制性能好等优点。使得窗帘的开关更加的准确,稳定。设计的时钟电路配合单片机的定时功能很好的解决了自动控制这项功能。同时,由于设计的时间和能力有限,有许多功能和技术没有充分研究,如加上光感器和温控器可以使窗扇更加智能化。其次,显示功能中还没有显示电动窗帘控制器的工作方式。控制器很固定,没有完成实物,从而导致没有蓝牙和红外控制功能。而且没有完成实物的设计,这不得不说是一个遗憾。但是,一个完整的毕业设计过程,让我掌握了单片机系统和电子操作软件等方面的知识,尤其在动手能力方面有很大的提升,也给今后更成功、完善的设计打下坚实的基础。

此次设计过程中,在完成设计任务之外也让我系统性地认识和全面地掌握了单片机相关技术,从本次毕业设计中我更加深刻地认识到理念来源于实际的含义。在和同学以及老师的就相关问题的互相讨论交流中,我认识到自己的很多不足,但在这些不足中我又学到了很多知识,使我的综合应用能力有了很大提高。

致谢

毕业设计即将完成,在这里我要衷心感谢所有在设计过程中给我提供帮助的老师和同学,没有他们的帮助,我的毕业设计不可能这么顺利的完成。

首先要感谢的是指导老师钱松老师。在学校毕业设计的时间里,钱老师给我提供了很大的帮助。在完成毕业设计的过程中,钱老师给我指出了很多错误,提出了很多宝贵意见,还给我提供了毕业设计中所用到设备的支持。钱老师每次在查看我的进度的同时都是认真查看我的设计,对于设计中存在的问题也是耐心的回答和讨论。毕业设计的初稿钱老师也是仔细审阅,细节部分的问题也被他看出。在此对于钱老师一丝不苟,兢兢业业的精神表示衷心的敬佩。

同时,我要向在这次毕业设计中给我提供帮助和提出意见的同组同学表谢。 在他们的帮助和建议下,我的毕业设计才得以更加顺利的完成。

参考文献

[1]刘叶冰, 董欣, 张家维. 智能园区系统集成技术. 工程设计CAD 与智能建筑,1999

[2]腾飞. 智能家居就在眼前. 中国计算机用户,2004.

[3]俞国亮.MCS51单片机原理及应用.[M].北京:清华大学出版社,2008.

[4]刘焕平,童一帆. 单片机原理与接口技术[M].北京:北京航空航天大学出版社,2007

[5]崔惠柳. 串行实时时钟芯片DS1302及其应用[M].广西:广西工业学院,1998

[6]汪德彪.MCS-51单片机原理及接口技术[M].北京:电子工业出版社,2003

[7]苏平. 单片机原理与接口技术[M].北京:电子工业出版社,2003

[8]余雷声. 电气控制与PLC 应用[M].北京:机械工业出版社,2005

[9]丁元杰 单片微机原理及应用 北京:机械工业出版社,2003.7

[10]王建校 杨建国 51系列单片机及C51程序设计 北京:科学出版社 2002.4

[11]李朝青 无线发送/接收IC 芯片及其数据通讯技术选遍北京:北京航空航天大学出版社 2003.5

[12] 孙育才.MCS-51系列单片微型计算机及其应用. 东南大学出版社,1991

[13]沈红卫 单片机应用系统设计实例与分析 单片机应用系统设计实例与分析 2003

[14]余永全 单片机与家用电器智能化技术 北京:电子工业出版社 1995

[15]余永权 汪明慧 黄英编 单片机在控制系统中的应用 北京:电子工业出版社 2003

[16]靳达 单片机应用系统开发实例导航 北京:人民邮电出版社 2003

遥控窗帘的设计

[摘 要]随着电子技术和自动化技术的发展,人们对生活质量的要求越来越高。

本设计根据社会发展的需要,采用AT89C51单片机系统来控制窗扇,利用P1和P3口的特殊功能,根据其不同的控制模式,实现半制动控制,自动控制,定时控制的相互转换,实现窗扇自动开关。

关键词: 单片机,编码, 定时控制,步进电机

Design of remote control curtain

[Abstract ]With the development of electronic technology and automation technology, people on the quality of life of the increasingly high demand. This design according to the needs of social development, using AT89C51 single-chip microcomputer system to control the window, using the special function of P1 and P3, according to its different mode of control, realize the brake control, automatic control, mutual conversion timing control, automatic switch model.

Key words: Single chip microcomputer,Coding, Timing control, Stepper motor

目 录

第一章 绪论........................................................11 1.1. 设计背景和意义以及主要任务.............................11 1.2设计的要求..............................................11 第二章 方案设计....................................................12

2.1 控制器智能项目..........................................12 2.2 系统的总体架构计划......................................12 第三章 硬件电路的设计..............................................13 3.1 AT89C51单片机的介绍.....................................13 3.2 本设计的相关电路的介绍..................................13 3.2.1 晶振电路............................................13 3.2.2 复位电路............................................13 3.2.3 时钟电路............................................13 3.2.4 电源电路............................................13 3.2.5 步进电机............................................13 3.3.6 键盘和显示接口电路..................................13 第四章 软件程序设计................................................14 4.1 软件开发环境选择........................................14 4.2 主程序..................................................14 4.3 主程序软件的设计........................................14 4.4 其它功能程序的设计......................................14 4.4.1 键盘程序的设计....................................14 4.4.2 定时程序的设计....................................14 4.4.3 步进电机的程序设计................................14

4.4.4 定时程序的设计....................................14 第五章 系统的调试和运行............................................15 5.1 软件调试................................................15 5.2 PCB图..................................................15 小结 ..............................................................16 致谢 ..............................................................17 参考文献...........................................................18

第一章 绪论

1.1.设计背景和意义以及主要设计任务

随着社会经济的发展和人们生活水平的改变,宽大窗户的办公和生活建筑越来越多。这种建筑结构美观,采光良好。但是,窗户的高度或者宽度超过4米以后手拉窗帘却比较困难。而现在的放地产商几乎却都没有为用户考虑这个问题,使一些高档住宅反而带来了生活上的不便,解决这个问题的方法是使用窗帘机。

窗帘机是专门为高大的窗户设计的窗帘控制装置,根据功能不同可以分为智能、遥控、自动和智能等多种规格。智能窗帘机是通过窗帘机上的控制按键操作窗帘开合的一种最简单的窗帘机,仅仅解决了手动窗帘的问题,可还需要人来近距离操作,智能窗帘使一些超高、超宽窗帘的操作变得比较容易。但是因为这种窗帘技术含量低,基本没有厂家作大规模工业化生产;遥控窗帘机可以远距离操作窗帘的开合,使用更为方便,自动窗帘机具有自动控制功能,可以满足用户各种情况下的使用要求。随着新科技和自动化的发展,传感器的使用数量越来越大,功能越来越强,各种传感器都已经标准化和模块化,这为智能家居控制控制系统的设计提供极大的方便。

智能家居是利用先进的计算机技术、网络通讯技术、综合布线技术、依照人体工程学原理,融合个性需求,将与家居生活有关的各个子系统如安防、灯光控制、窗帘控制、煤气阀控制、信息家电、场景联动、地板采暖等有机地结合在一起,通过网络化综合智能控制和管理,实现“以人为本”的全新家居生活体验。

在设计系统时,面对各种检查对象和大量控制单元,需要利用各种标准和MCU 进行连接,在通过MCU 进行数据处理,实现实时监控。而此时采用单片机来实现智能家居控制系统不仅具有采集控制方便,简单,灵活等优点,而且大幅度提高采各模块和芯片的协调性,从而大大提高系统的利用性。此系统设计正是利用AT89C51单片机的优点,顺利的完成了本设计的要求。并且实现了定时和自动控制功能,为控制家居设备提供了良好的基础。

随着自动窗帘热潮在世界范围内的日渐兴起,随着中国电子技术的飞速发展、人们生活水平的不断提高以及智能电子技术在生活中的广泛应用,自动窗帘已经成为未来家居装饰潮流发展的最新方向,在不久的将来,没有自动窗帘系统

的住宅肯定不合潮流。从目前的发展趋势来看,在未来的20年时间里,自动窗帘行业将成为中国的主流行业之一,其市场的发展前景是非常广阔的。

本设计的主要任务主要是通过单片机实现窗扇的多项智能控制,完成单片机应用系统其开发过的系统的总体设计,软件设计和系统调试。 1.2设计的要求

(1) 进一步熟悉和掌握单片机的内部结构和工作原理,了解单片机应用系统设计的基本方法和步骤

(2)掌握单片机仿真软件Proteus ,protel ,keil 的使用方法; (3)掌握键盘和显示器在的单片机控制系统中的应用。 (4)掌握撰写课程设计报告的方法。

第二章 方案设计

智能窗帘控制器总体方案设计是确定能够满足设计要求的总体方案的环节。本章从系统功能需求出发,规划并确定了系统的总体结构,并在此基础上考虑了系统的可扩展性及可实现性。 2.1 控制器智能项目

随着人民生活水平的不断提高,人们对家庭生活舒适性的需求越来越强烈,窗帘作为每个家庭生活中最必须的家居用品之一,自然也需要满足人民更舒适性的需求。窗帘最基本的作用无非是保护业主的个人隐私以及遮阳挡尘等功能,但传统的窗帘您必须手动去开关,每天早开晚关也是挺麻烦的,特别是别墅或复式房的大窗帘,比较长,而且重,用时需要很大的力才能开关窗帘,特别不方便;于是智能窗帘应运而生。现有的智能窗帘都可以自动开关闭窗帘,到了时间自动控制窗帘的开关,可以根据光的但是他们也有些缺点。窗帘控制器的自动开关如何让窗帘能够开关自如,停机的时间是否到位。

智能窗帘主要有以下几大功能:(1)手动控制:该功能使智能窗帘具有手动正传、手动反转 和手动停止的功能。而且增加了工作状态指示,电机工作在正传、反转和停止状态的时候,数码管均有不同工作状态指示。(2)半自动手动控制:半自动手动控制是在需要关闭或打开窗帘的时候,只需要人工按一下“正转”或“反转”按键后,窗帘到位自动停止。(4) 时间自动控制:根据设置输入的开启或关闭时间,来控制窗帘的关闭和打开。

窗帘的正转、反转和停止功能可由单片机输出信号来控制步进电机的运转以实现。时间自动控制可以由定时器来控制。 2.2 系统总体架构计划

整个智能窗户控制系统包括微处理器、电机驱动电路等模块组成。整个系统框图如图2-1所示。

图2-1 系统框图

智能窗帘控制器的总体结构框图如图2-2所示。

图2-2 智能窗帘控制器结构框图

首先给电路加上电源,在通过时钟电路来定好时间,到了设定的时间自动的复位来开闭窗扇。在通过信号的传输到单片机控制器,来实现电机的运行与停止。显示部件用来显示智能窗帘控制器的各种状态信息。键盘是主要的输入设备,控制单片机的各种参量。

第三章 系统硬件设计

整个系统的硬件接线图如图3-1所示。

R

图3-1 系统总硬件接线图

总体硬件电路图包括单片机外围电路,键盘/显示接口电路,步进电机控制电路等模块。单片机外围电路提供各模块所需的5V 电源和时钟模块;单片机的P2口控制步进电机的运行从而控制窗帘的升降。显示和键盘让人机交换变得更容易。以上各模块组成了智能窗帘控制器的总体电路。 3.1 AT89C51单片机的介绍

AT89C51是一种带4K 字节FLASH 存储器(FPEROM —Flash

Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K 字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL 高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU 和闪烁存储器组合在单个芯片中,ATMEL 的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

图3-2 AT89S51单片机引脚图

AT89C51 提供以下标准功能:4k 字节Flash 闪速存储器,128字节内部RAM ,32 个I/O 口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51可降至0Hz 的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU 的工作,但允许RAM ,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM 中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。

VCC :供电电压。 GND :接地。

P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL 门电流。当P0口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。在FIASH 编程时,P0 口作为原码输入口,当FIASH 进行校验时,P0输出原码,此时P0外部必须接上拉电阻。

P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器

能接收输出4TTL 门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH 编程和校验时,P1口作为低八位地址接收。

P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL 门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH 编程和校验时接收高八位地址信号和控制信号。

P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL 门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL )这是由于上拉的缘故。

P3口也可作为AT89C51的一些特殊功能口,如下表所示: 口管脚 备选功能 P3.0 RXD(串行输入口) 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(外部数据存储器读选通)

P3口同时为闪烁编程和编程校验接收一些控制信号。

RST :复位输入。当振荡器复位器件时,要保持RST 脚两个机器周期的高电平时间。

ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。在FLASH 编程期间,此引脚用于输入编程脉冲。在平时,ALE 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE 脉冲。如想禁止ALE 的输出可在SFR8EH 地址上置0。此时, ALE只有在执行MOVX ,MOVC 指令是ALE 才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE 禁止,置位无效。

/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器

(0000H-FFFFH ),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET ;当/EA端保持高电平时,此间内部程序存储器。在FLASH 编程期间,此引脚也用于施加12V 编程电源(VPP )。

XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 3.2 本设计的相关电路的介绍 3.2.1晶振电路

电路中的晶振即石英晶体震荡器。由于石英晶体震荡器具有非常好的频率稳定性和抗外界干扰的能力,所以,石英晶体震荡器是用来产生基准频率的。通过基准频率来控制电路中的频率的准确性。同时,它还可以产生振荡电流,向单片机发出时钟信号。

图3-3是单片机的晶振电路。电路中的电容C1和C2的典型值通常选择为30PF 左右,该电容的大小会影响振荡电路频率的高低、振荡器的稳定性和起振的快速性。晶体振荡频率的范围通常在1.2~12MHz。晶体的频率越高,系统的时钟频率越快,单片机的运行速度越快。但反过来,运行速度对于存储器的速度要求就越高,对印刷电路板的工艺要求也就越高,即要求线间的寄生电容要小。晶体和电容应该尽可能安装得与单片机芯片靠近,以减少寄生电容,更好地保证振荡器稳定、可靠地工作。AT89C51常选择振荡频率12MHz 的石英晶体。

10113029

[***********][1**********]728

V

图3-3 单片机晶振电路图

3.2.2复位电路

复位是单片机的初始化操作,只需要给AT89C51的复位引脚RST 加上大于2个机器周期(即24个时钟振荡周期)的高电平就可以使AT89C51复位。复位时,单片机初始化为0000H ,从0000H 单元开始执行程序。除了进入系统的正常初始化之外,当程序运行错误(如程序跑飞)或操作错误使系统处于锁死状态时,也需要复位键使RST 脚为高电平,使AT89C51摆脱“跑飞”或“死锁”状态而重新启动。图3-4是复位电路图。

10113029

[***********][1**********]728

图3-4 复位电路图

3.2.3时钟电路

本设计需要窗帘在给定的时间自动开和关,所以需要用到定时器,而为了保证单片机与外界时钟一致,要用到一个实时时钟电路。这里使用DS12887实时时钟芯片来完成这项功能。

DS12887是DALLAS 公司生产的实时日历时钟芯片,其主要功能包括非易失性时日历时钟、报警器、百年历、可编程中断、方波发生器和114字节的非易失静态RAM 。使用DS12887时应注意以下几点:Vcc 正常情况下为5V ,当Vcc 降至4.25V 时,所有的输入被忽略,输出为高阻状态,Vcc 降至3V 时,外部电源被关断,内部锂电池为实时时钟和RAM 供电,在断电情况下,时钟继续运行,其中的数据可保存十年以上不会丢失。DS12887有两种工作时序,即MOTOROLA 和INTEL 时序,由MOT 引脚的电平指定,当MOT 引脚为高电平时选择MOTOROLA 时序,当MOT 引脚为低电平时选择INTEL 时序,图中选为INTEL 时序,这时芯片的DS 引脚接系统的读信号/RD,R/W引脚接系统的写信号/WR。AS 引脚用于分离数据地址总线AD7-AD0上的地址和数据信息,连接到MCU 的ALE 引脚。RESET 引脚的信号对日历时钟和RAM 没有影响,但它影响DS12887的命令和状态寄存器的内容,在图中直接将RESET 连至Vcc ,这样可以保证DS12887在进入或退出电源失效状态时,其工作状态不受RESET 引脚的影响。DS12887有一个可编程输出方波引脚SQW ,从该引脚可以输出频率为2Hz-256Hz 的方波,在系统中正是利用此引脚输出周期为125MS 的方波,作为MCU 外部中断/INT0的中断源实现周期性中断,每当中断发生时,MCU 读一二次输入口,检查电表是否转过一圈,在整点时还要采一次三相电流和电压。

除此之外,DS12887内部还有128字节的RAM 的单元,其中前10个字节用于存放日历时钟信息,字节0为秒,字节2为分,字节4为时,字节6为星期,字节7为日,字节8为月,字节9为年,字节0AH-0DH 用作控制和状态寄存器,剩下的114字节为用户RAM ,所有的这128字节都是掉电非易失性的。

图3-5 时钟电路图

DS12887时钟芯片和AT89C5l 单片微机的接口电路如图3-5所示。模式选择脚MOT 接地, DS12887时钟芯片的AS 端口和AT89C51单片机的AIE 端直接相联;而DS 、R /W 读写控制线与单片机的RD/WR控制线制线相连;DS12887的高位地址由AT89C51单片机的P2.7端口来片选,则DS12887的高8位地址定为7FH ,而其低8位则由芯片内部各单元的地址来决定(00H-3FH);DS12887的中断输出端IQR 和AT89C51的外部中断INT0端相联,给单片机提供中断信号;DS12887的SQW 端与89C5I 的TO 端相连。 3.2.4 电源电路

单片机工作需要使用5V 电压,因此需要给单片机设计电源电路。图3-6是单片机的电源电路。它采用LM7805三端集成稳压器,可输出+5V的直流电压供电。

CC

图3-6 电源电路图

3.2.5步进电机

步进电机为一种数字伺服执行元件,具有结构简单、运行可靠、控制方便、控制性能好等优点,广泛应用在数控机床、机器人、自动化仪表等领域。为了实现步进电机的简易运动控制,一般以单片机作为控制系统的微处理器,通过步进电机专用驱动芯片实现步进电机的速度和位置定位控制。

单片机在本次试验中对步进电机的控制从而达到对转角和位移的控制的方法。本次设计采用两个型号为130HZ308-450的三相反应式步进电机对旋转角度和位移进行控制,该步进电机力矩大、耐负载冲击、精度高。

其步距角为1.2°,即 N =1.2°,即本次设计的测控系统对回转台转角的控制精度可以达到1.2°。步进电机的驱动电路是根据控制信号工作的。而本次测控系统是以单片机位控制中心的,下面将介绍步进电机控制系统。

步进电机控制系统主要由脉冲分配器,功率驱动电路,步进电机几部分构成的。步进电机控制系统的方框图如图3-8所示:

图3-8 步进电机控制系统方框图

图3-9 步进电机控制系统电路图

如图3-9所示,是步进电机控制系统的电路图。

单片机输出步进脉冲后,再由脉冲分配电路按事先确定的顺序控制各相的通断。本设计由软件完成脉冲分配工作,不仅使线路简化,成本下降,而且可根据应用系统的需要,灵活地改变步进电机的控制方案。软件控制脉冲将在软件设计部分说明。

步进电机功率驱动电路工作在较大脉冲电流状态,采用光电耦合器将单片机与步机电机隔离可以避免单片机与步进电机功率回路的共地干扰,防止强功率的干扰信号反串进主控系统。此外,万一驱动电路发生故障,也不致让功放中较高的电压串入单片机而使其损坏。

步进电机的驱动电路有很多种,但最为常见的就是用单电压驱动,双电压驱动,斩波驱动,细分驱动等。但电压驱动是步进电机控制中最为简单的一种驱动电路,它在本质上是一个单间的反相器。它最大的特点是结构简单,工作效率低。而且它的外接电阻要消耗相当一部分能量,这样会影响电路的稳定性。双电压驱动电路是采用两种电源电压,缺点在于在高低电压连接处电流出现谷点,这样必然引起力矩在谷点处下降,不易于电机的正常运行。对于斩波驱动则可以克服这种缺点,并且还可以提高步进电机的效率。从提高效率的角度来看这是一个很好的驱动电路,它可以用较高的电源电压,同时无需外接电阻来限定额定电流和减少时间常数。但由于其波形顶部呈现锯齿形波动,所以产生较大的电磁噪声。细分驱动是用脉冲电压来供电的,对于一个电压脉冲,转子就可以转动一步。本设计采用的是恒频脉宽调制细分驱动电路,电路图如3-10所示。

图3-10 恒频脉宽调制细分驱动电路

3.2.6 键盘和显示接口电路

键盘在单片机应用系统中能实现向单片机输入数据,传送命令等功能,是人工干预单片机的主要手段。本设计中的键盘采用4×4矩阵键盘。16个键分别为:0-9十个数字键,用于时间设定输入;设定键,设定自动窗帘开和关的时间;复位键,在程序出错或者有误操作的时候;正转键,使步进电机正转,窗帘打开;反转键,使步进电机反转,窗帘关闭;停止键,步进电机停止运转;确定键,时间设定完成后确定输入。

由于按键比较多,加上减少所战占用的端口,可以将按键组成一个矩阵,如图3-11所示。

图3-11 键盘接口电路

获取键盘信息的方法有2种,我们经常用到的是扫描法。在扫描法中,所有的行线固定为输出端口,并依次输出低电平;所有列线固定为输入端口,用来检测按键状态。当全部按键均松开时,从列线上检测不到行线输出的低电平。当某个按键按下时,只有在对应的行线输出低电平时才能在对应的列线端口检测到低

电平。按键的触点在闭合和断开时均会产生抖动,这时触点的逻辑电平是不稳定的,如果不妥善处理,将会引起按键命令的错误执行或重复执行。一般消除抖动采用软件方法来解决,将在软件部分介绍这点。

显示部分则主要显示时间,用于设置时间。采用LED 数码管进行显示是一种经济实用的方法。每位数码管由7个笔画加上小数点共8个发光二极管组成;有共阴极和共阳极两种类型,公共端用来进行位控制,笔画端用来进行字符控制;数码管显示有静态显示和动态显示两种方法。

在数码管显示中,有2个技术问题需要解决,这就是整数高位和闪烁显示问题。虽然某些新型LED 驱动芯片本身具有闪烁控制和熄灭控制功能,但通过合理的软件设计,采用廉价芯片组成的驱动电路同样可以实现整数高位灭零和闪烁显示功能,达到降低系统硬件成本的目的。

本设计采用的就是4位LED 数码管的串行驱动电路来达到显示时间和消除闪烁显示的目的。驱动器采用74LS164,由AT89C51的P3.0和P3.1来控制LED 数码管的显示。显示电路图如3-12所示。

图3-12 显示电路

第四章 系统软件设计

系统软件设计主要包括显示子程序,键盘子程序,时钟程序,步进电机控制程序设计及部分构成。本章节系统的介绍了智能窗帘的主程序和各主要功能子程序的设计流程。

本论文所设计的程序主要完成以下功能:

⑴ 按键+遥控控制窗帘开关(分为连续开关和步进开关) ⑵ 定时开关窗帘设置 ⑶ 人机交互信息+时间显示

图4-1 遥控窗帘总流程图

4.1 软件开发环境选择

本论文所选择的软件开发环境为KEIL uVISION4。

Keil公司是一家业界领先的微控制器(MCU )软件开发工具的独立供应商。Keil 公司由两家私人公司联合运营,分别是德国慕尼黑的Keil Elektronik GmbH 和美国德克萨斯的Keil Software Inc 。Keil 公司制造和销售种类广泛的开发工具,包括ANSI C编译器、宏汇编程序、调试器、连接器、库管理器、固件和实时操作系统核心(real-time kernel)。有超过10万名微控制器开发人员在使用这种得到业界认可的解决方案。其Keil C51编译器自1988年引入市场以来成为事实上的行业标准,并支持超过500种8051变种。

Keil 公司在2007年被ARM 公司收购。其两家公司分别更名为ARM Germany GmbH 和ARM Inc和。Keil 公司首席执行官Reinhard Keil表示:“作为ARM Connected Community 中的一员,Keil 和ARM 保持着长期的良好关系。通过这次收购,我们将能更好地向高速发展的32位微控制器市场提供完整的解决方案,同时继续在uVision 环境下支持我们的8051和C16x 编译器。”

2009年2月发布Keil μVision4,Keil μVision4引入灵活的窗口管理系统,使开发人员能够使用多台监视器,并提供了视觉上的表面对窗口位置的完全控制的任何地方。新的用户界面可以更好地利用屏幕空间和更有效地组织多个窗口,提供一个整洁,高效的环境来开发应用程序。新版本支持更多最新的ARM 芯片,还添加了一些其他新功能。

2011年3月ARM 公司发布最新集成开发环境RealView MDK 开发工具中集成了最新版本的Keil uVision4,其编译器、调试工具实现与ARM 器件的最完美匹配。

图4-2 Keil μVision4启动画面

图4-3 编程界面

4.2 主程序

4.3 主程序软件设计

主程序构成无限循环,主要完成单片机初始化,关中断,菜单显示内容初始化,按键扫描,电机运行,计时等功能。

主程序的流程图如图4-4所示。

图4-4 主程序流程图

启动主程序,先关中断并且设置堆栈,接着初始化寄存器,初始化显示内容;然后执行按键查询,执行相应的操作。如果是设定键,则设定时间,开始计时;到时间后步进电机开始相应的工作,工作完成后停机。如果是电机控制键,则也执行相应的工作。如果都不是,则是复位键,采取复位操作。 4.4 主要功能子程序设计 4.4.1 步进电机程序设计

步进电机程序设计的主要任务是:

1). 判断旋转方向; 2). 按顺序传送控制脉冲;

3). 判断所要求的控制步数是否传送完毕。

图4-5 步进电机工作流程图

4.4.2 显示程序

显示程序开始后,起始地址60H 发送到R0,01H 发送至显示位代码R2,再将位代码发送到单片机A 口,,单片机取显示数据查表转换成显示代码发送至单片机B 口,延时2ms ,指针R0加1,然后判断6显示是否完成。如果完成则返回,没完成则位代码R2左移一位,继续显示查表,一直到6位显示完成后返回。

显示子程序流程图如图4-6所示

图4-6 显示部分流程图

4.4.3 键盘程序设计

按键的触点在闭合和断开时均会产生抖动,这时触点的逻辑电平是不稳定的,如不妥善处理,将会引起按键命令的错误执行或者重复执行。现在用软件延时的方法来避开抖动阶段。在判断是否有键闭合后都延时5ms ,按下键后再延时12ms 就可以避免键盘的抖动。然后键码分析,执行相应的模块,显示后返回。

键盘子程序如图4-7所示。

图4-7 键盘程序流程图

4.4.4 定时程序设计

定时的主要功能是在设定时间单片机能够得到中断信号,从而控制窗帘的开关。时钟发出50ms 的信号给单片机,计数器计数,当计数到20,则过了1秒,秒单元数值加1,当秒单元到达60,分单元数值加1,秒单元清零。当时单元到达24,时单元清零。标志1天时间计满,把他们的值放到存储单元的指定单元。图4-8是定时功能流程图。

图4-8 定时功能流程图

第五章 系统的调试和运行

5.1软件调试

当硬件制作完成后,软件制作也是不可轻视的部分,是实现电路的功能的关键部分,通过本次毕业设计,总结经验如下:

(1)先进行人工检查。写好程序后,不要立刻烧入单片机,先对纸面上的程序进行人工检查。由于采用C 语言编程,所以要特别小心地检查语法错误,如括号不配对,漏写分号等,通过仔细的检查,发现并排除这些错误。

(2)人工检查无误后,上机调试。在编译时给出的语法错误的信息,根据提示的信息具体找出程序中错误之处并改之,从上至下逐一改正。应当注意的是:有的提示出错行并不是真正出错的行,如果在提示出错的行上找不到错误的话,则应该到上行再找。

(3) 当确认程序无语法错误和逻辑错误时,通过直接下载到单片机来调试。采用的是自下到上的调试方法,即单独调好每一个模块,然后再连接成一个完整的系统调试。

(4) 程序烧入单片机后,观察各个部件的工作是否正常,功能是否实现。如不能正常工作,则继续检查程序中的相应模块,必要时从上到下重新检查程序。

5.2 PCB图

小结

本次设计系统地介绍了自动窗帘控制系统的硬件电路设计以及软件设计。经过几个月的资料查找和设计,我已完成了毕业设计的任务。本文设计了电动窗帘控制器的智能项目,系统的介绍了电动窗帘控制器的硬件电路设计到软件设计的以系列步骤。本设计采用步进电机作为执行元件,以AT89C51单片机作为控制芯片,辅助键盘和显示,实现了电动窗帘控制器的多项智能项目。

本次毕业设计的整个研究与设计过程包括选题、设计以及完善等。首先,在选题方面查阅了很多与题目有关的资料和课题并且制定设计方案,进行设计的总体规划,然后将这些方案落实到设计环节中。其次,在制定的方案基础上运用所学的知识对硬件以及软件进行设计,并用相关软件进行仿真设计。最后,对设计内容进一步修缮,以求达到最佳设计结果。

纵观整个设计系统,单片机使用了熟悉的AT89C51单片机,从而使整个控制芯片设计起来也是得心应手。所用芯片简单实用,减少了开发和硬件开销。本设计的步进电机可以很好的执行单片机的命令。步进电机为一种数字伺服执行元件,具有结构简单、运行可靠、控制方便、控制性能好等优点。使得窗帘的开关更加的准确,稳定。设计的时钟电路配合单片机的定时功能很好的解决了自动控制这项功能。同时,由于设计的时间和能力有限,有许多功能和技术没有充分研究,如加上光感器和温控器可以使窗扇更加智能化。其次,显示功能中还没有显示电动窗帘控制器的工作方式。控制器很固定,没有完成实物,从而导致没有蓝牙和红外控制功能。而且没有完成实物的设计,这不得不说是一个遗憾。但是,一个完整的毕业设计过程,让我掌握了单片机系统和电子操作软件等方面的知识,尤其在动手能力方面有很大的提升,也给今后更成功、完善的设计打下坚实的基础。

此次设计过程中,在完成设计任务之外也让我系统性地认识和全面地掌握了单片机相关技术,从本次毕业设计中我更加深刻地认识到理念来源于实际的含义。在和同学以及老师的就相关问题的互相讨论交流中,我认识到自己的很多不足,但在这些不足中我又学到了很多知识,使我的综合应用能力有了很大提高。

致谢

毕业设计即将完成,在这里我要衷心感谢所有在设计过程中给我提供帮助的老师和同学,没有他们的帮助,我的毕业设计不可能这么顺利的完成。

首先要感谢的是指导老师钱松老师。在学校毕业设计的时间里,钱老师给我提供了很大的帮助。在完成毕业设计的过程中,钱老师给我指出了很多错误,提出了很多宝贵意见,还给我提供了毕业设计中所用到设备的支持。钱老师每次在查看我的进度的同时都是认真查看我的设计,对于设计中存在的问题也是耐心的回答和讨论。毕业设计的初稿钱老师也是仔细审阅,细节部分的问题也被他看出。在此对于钱老师一丝不苟,兢兢业业的精神表示衷心的敬佩。

同时,我要向在这次毕业设计中给我提供帮助和提出意见的同组同学表谢。 在他们的帮助和建议下,我的毕业设计才得以更加顺利的完成。

参考文献

[1]刘叶冰, 董欣, 张家维. 智能园区系统集成技术. 工程设计CAD 与智能建筑,1999

[2]腾飞. 智能家居就在眼前. 中国计算机用户,2004.

[3]俞国亮.MCS51单片机原理及应用.[M].北京:清华大学出版社,2008.

[4]刘焕平,童一帆. 单片机原理与接口技术[M].北京:北京航空航天大学出版社,2007

[5]崔惠柳. 串行实时时钟芯片DS1302及其应用[M].广西:广西工业学院,1998

[6]汪德彪.MCS-51单片机原理及接口技术[M].北京:电子工业出版社,2003

[7]苏平. 单片机原理与接口技术[M].北京:电子工业出版社,2003

[8]余雷声. 电气控制与PLC 应用[M].北京:机械工业出版社,2005

[9]丁元杰 单片微机原理及应用 北京:机械工业出版社,2003.7

[10]王建校 杨建国 51系列单片机及C51程序设计 北京:科学出版社 2002.4

[11]李朝青 无线发送/接收IC 芯片及其数据通讯技术选遍北京:北京航空航天大学出版社 2003.5

[12] 孙育才.MCS-51系列单片微型计算机及其应用. 东南大学出版社,1991

[13]沈红卫 单片机应用系统设计实例与分析 单片机应用系统设计实例与分析 2003

[14]余永全 单片机与家用电器智能化技术 北京:电子工业出版社 1995

[15]余永权 汪明慧 黄英编 单片机在控制系统中的应用 北京:电子工业出版社 2003

[16]靳达 单片机应用系统开发实例导航 北京:人民邮电出版社 2003


相关文章

  • 智能窗帘设计说明书
  • 安防智能电动窗帘 设计说明书 设计者: 指导老师: 地址: 单位:山东劳动职业技术学院 2015年9月21日 目录 一. 作品简介 ...................................................... ...查看


  • 遥控窗帘电路的设计-毕业设计
  • 遥控窗帘电路的设计 学生:XX 指导教师:XX 内容摘要:本文主要介绍了遥控窗帘的电路设计.电机工作的时候是否有鸣响提示,以及光控状态下环境亮度的控制参数的调整等等都可以通过遥控器随着电子技术和自动化技术的发展,人们对生活质量的要求越来越高 ...查看


  • 自动窗帘控制系统设计
  • 自动窗帘控制系统设计 孙 勇1,杨文月2,赵宇新1 (1.吉林市供电公司调度通信所,吉林吉林132001:2.东北电力大学信息工程学院,吉林吉林132012) 摘 要:介绍了一款多功能窗帘控制系统.该系统采用AT89S52单片机的最小系统设 ...查看


  • 应用电子技术专业论文开题报告
  • 北京理工大学高等职业技术学院 应用电子技术专业论文开题报告 开题报告日期: 姓名:付月 学号:03 指导老师:班善军老师 论文题目:自动窗帘启闭控制电路设计任务书 一.论文选题意义(初拟) 1.选题的目的和意义 目的:为了方便人们的日常生活 ...查看


  • 基于单片机的智能窗帘控制系统的设计与实现
  • 开发案例 文章编号:1007-1423(2012)36-0075-04DOI :10.3969/j.issn.1007-1423.2012.36.020 基于单片机的智能窗帘控制系统的设计与实现 何康旭 , 张婧婧 (新疆农业大学计算机与信 ...查看


  • 基于单片机的窗帘自动控制系统设计 精品
  • 郑州信息科技职业学院 基于单片机的窗帘自动控制系统设计 摘要 随着现代电子技术的快速发展,智能家居已逐渐进入人们的生活中.本课题介绍基于单片机控制的智能窗帘系统,它采用了无线遥控技术,实现在室内任何地方,只要轻按遥控器,窗帘就会随心所欲地打 ...查看


  • 智能家居课程设计Microsoft Word 文档 (2)
  • 目录 前言 „„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„ 1 1.智能家居概述 „„„„„„„„„„„„„„„„„„„„„„„„„„2 2.设计思想 „„„„„„„„„„„„„„„„„„„„„„„„„„„„2 2.1视频监 ...查看


  • 智能家居的定义及简介
  • 展开 编辑本段智能家居的定义及简介 概念及简介 又称智能住宅,在国外常用Smart Home表示.与智能家居含义近似的有家庭自动化(Home Automation).电子家庭(Electronic Home.E-home).数字家园(Dig ...查看


  • 养老社区智能系统方案
  • 阿城养老社区智能化系统方案 哈尔滨迪笙智能楼宇工程有限公司 2014年06月05日 目 录 第一章 前言 . ................................................................. ...查看


热门内容