基于单片机的照明控制系统的设计-学位论文

上传人:痛*** 文档编号:206306398 上传时间:2023-05-03 格式:DOC 页数:46 大小:387.50KB
收藏 版权申诉 举报 下载
基于单片机的照明控制系统的设计-学位论文_第1页
第1页 / 共46页
基于单片机的照明控制系统的设计-学位论文_第2页
第2页 / 共46页
基于单片机的照明控制系统的设计-学位论文_第3页
第3页 / 共46页
资源描述:

《基于单片机的照明控制系统的设计-学位论文》由会员分享,可在线阅读,更多相关《基于单片机的照明控制系统的设计-学位论文(46页珍藏版)》请在装配图网上搜索。

1、河北工业大学2012届本科毕业论文1 引言11 课题背景 近十几年来,随着我国城市建设的快速发展,楼宇照明也相应飞速发展。在楼宇的照明数量与质量两个方面均有显著的变化与提高,特别是随着人民生活水平进入小康水平,楼宇照明水平提高很快,追求人工照明光环境的舒适性、个性化、安全、节能等方面日见突出。楼宇中人工光环境对于满足人们的生活、学习、娱乐以及工作方面有着重要的意义。12 课题思路照明控制系统传统是以照明配电箱通过手动开关来控制照明灯具的通断,或通过回路中串入接触器,实现远距离控制。而今出现的楼宇自控系统,是以电气触点来实现区域控制、定时通断、中央监控等功能。由于照明控制系统在楼宇自控系统中并非

2、独立,同时控制功能简单,因此使用上有一定的局限性。故当楼宇自控系统出现故障时,照明系统亦受到影响。随着微电子技术与数字化技术的发展,开发出了智能化水平更高的专业照明控制的独立系统,从而能节约能源、延长灯具寿命、提高照明质量。根据使用客户的经验,不仅使照明管理与设备维修简单及降低费用外,还对环境改善、提高工作效率都有着显著的效果。本系统是以单片机为控制器的核心,其中上位机是以AT89C51为基础,下位机是以AT89C2051为基础,再连接外围电路,通过现场总线RS485通信方式实现照明灯具的智能控制,也可以通过无线数传模块实现无线通信,从而达到照明灯具的智能控制。13 有线通信技术在数据通信、计

3、算机网络以及工业上的分布式控制系统中,经常需要采用串行通信来达到远程信息交换的目的。目前,有多种接口标准可用于串行通信,最常用的接口有RS-232、RS-422、RS-485。RS232是最早的串行接口标准,在短距离、较低波特率串行通信中得到了广泛应用。其后发展起来的RS-422、RS-485是平衡传送的电气标准,比起RS-232非平衡的传送方式在电气指标上有了大幅度的提高。但总的来说,RS-232、RS-422与RS-485最初都是由电子工业协会(EIA)制订并发布的, EIA于1983年在RS-422基础上制定了RS-485标准,增加了多点、双向通信能力,即允许多个发送器连接到同一条总线上

4、,同时增加了发送器的驱动能力和冲突保护特性,扩展了总线共模范围,后命名为TIA/EIA-485-A标准。RS-232、RS-422与RS-485标准只对接口的电气特性做出规定,而不涉及接插件、电缆或协议,在此基础上用户可以建立自己的高层通信协议。正因为RS-485的远距离、多节点(32个)、可以自行定义协议以及传输线成本低的特性,使得EIA RS-485成为工业应用中数据传输的首选标准。14 无线数传技术有线传输的方式虽然使用非常广泛且可靠性较高,但由于各方面的局限性,已经在众多方面被无线传输方式所取代。无线数字传输技术日益完善,其重要性也被人们所认识,相应的基于无线数字传输的产品也随处可见。

5、无线数字传输系统安装简便、使用效率高,可应用于各个领域,例如,无线数据传输、无线数据采集、无线抄表、工业遥控、楼宇自动化、高档玩具等等。无线数传技术是通过单片机的串口与无线数传模块连接,将要发送的数据由无线数传模块向空中发出,然后由另一个终端设备的无线数传模块从空中接收数据,这样就实现了预期的任务。15 单片机的应用技术电子技术和微型计算机的迅速发展,促进微型计算机测量和控制技术的迅速发展和广泛应用,单片机(单片微型计算机)的应用已经渗透到国民经济的各个部门和领域,它起到了越来越重要的作用。单片微型计算机就是将中央处理单元、存储器、定时/计数器和多种接口都集成到一块集成电路芯片上的微型计算机。

6、因此一块芯片就构成了一台计算机。它已成为工业控制领域、智能仪器仪表、尖端武器、日常生活中最广泛使用的计算机。单片机由硬件系统与软件系统组成。硬件系统是指构成微机系统的实体与装置,通常由运算器、控制器、存储器、输入接口电路和输入设备、输出接口电路和输出设备等组成。其中运算器和控制器一般做在一个集成芯片上,统称中央处理单元(Central Processing Unit),简称CPU,是微机的核心部件。CPU配上存放程序和数据的存储器、输入/输出(Input/Output,简称I/O)接口电路以及外部设备即构成单片机的硬件系统。软件系统是微机系统所使用的各种程序的总称,人们通过它对微机进行控制并与

7、微机系统进行信息交换,使微机按照人的意图完成预定的任务。软件系统与硬件系统共同构成完整的单片微型计算机系统,两者相辅相成,缺一不可。2 基于单片机的照明控制系统的设计框架与性能2.1 系统设计要点系统设计主要包括硬件和软件两大部分,依据控制系统的工作原理和技术性能,将硬件和软件分开设计。硬件设计部分包括电路原理图、合理选择元器件、绘制线路图,然后对硬件进行调试、测试,以达到设计要求。软件设计部分,首先在总体设计中完成系统总框图和各模块的功能设计,拟定详细的工作计划;然后进行具体设计,包括各模块的流程图,选择合适的编程语言和工具,进行代码设计等;最后是对软件进行调试、测试,达到所需功能要求。在系

8、统设计中设计方法的选用是系统设计能否成功的关键。硬件电路是采用结构化系统设计方法,该方法保证设计电路的标准化、模块化。硬件电路的设计最重要的选择用于控制的单片机,并确定与之配套的外围芯片,使所设计的系统既经济又高性能。硬件电路设计还包括输入输出接口设计,画出详细电路图,标出芯片的型号、器件参数值,根据电路图在仿真机上进行调试,发现设计不当及时修改,最终达到设计目的。软件设计的方法与开发环境的选取有着直接的关系,本系统由于是采用51系列单片机,因此使用Keil C语言进行开发。此编程工具相比汇编语言具有结构化、适用范围大、可移植性好等特点。本系统软件设计采用模块化系统设计方法,先编写各个功能模块

9、子程序,然后进行组合与调整,经过调试后,达到设计功能要求。2.2 系统的结构系统的结构主要由三部分组成:a)上位机系统;b)下位机系统;c)通信系统。这三部分共同完成了主控制器通过有线、无线通信方式与分控制器进行信息交换,达到控制照明灯具的目的。有线通信系统的结构框图如图2.1所示。该多机通信系统采用RS-485半双工主从式通信系统,主机可以发送数据或命令到从机,从机主要负责对分布的照明灯具进行控制,用中断的方式接收主机发来的命令或数据并做出回应。主控制器RS485接口RS485接口分控制器RS485接口分控制器RS485接口分控制器图2.1 有线通信系统结构框图无线数据传输系统也是由主控制器

10、和分控制器两部分组成,系统结构框图如图2.2所示。主控制器是发送遥控指令、发送数据信息、接收应答信息等,分控制器接收数据与遥控指令,完成对照明灯具的控制。主控制器无线数传模块分控制器无线数传模块主控制器无线数传模块图2.2 无线数传系统结构框图系统的主控制器通过RS-485总线或无线数传模块将数据或命令发送给分控制器,同时将信息送给数码显示单元进行显示,并有看门狗电路对运行程序进行有效监视。主控制器硬件电路结构如图2.3所示。分控制器接收主控制器的发来的数据和命令,通过可控硅电路对照明灯具进行开关、亮度控制,并且利用实时时钟芯片对照明灯具进行定时开关控制。分控制器硬件电路结构如图2.4所示。系

11、统在单片机的控制之下完成数据的通信、显示,同时能够控制照明灯具,其硬件电路只是系统的实施工具,大量的工作是由软件来完成的。这些程序是系统的灵魂,是负责完成硬件电路实现功能和与用户交互的桥梁,是维护系统正常工作的工具。2.3 系统性能指标及技术要求a)照明启停控制系统 1) 全开 2) 全关 3) 单独开 4) 单独关b)照明亮度控制系统 1) 全部亮度调节 2) 单独亮度调节c)定时控制系统 1) 对全部照明灯进行定时控制 2) 对每个照明灯进行定时控制89C51数码显示及驱动电路通信接口电路看门狗键盘晶振电源 图2.3 主控制器硬件电路结构框图89C2051电源看门狗晶振时钟电路零点检测电路

12、可控硅控制电路图2.4 分控制器硬件电路结构框图3 基于单片机的照明控制系统的硬件电路设计3.1 主控制器的电路设计主控制器采用AT89C51单片机作为微处理器,AT89C51是美国ATMEL公司生产的低电压、高性能CMOS 8位单片机,片内含4K bytes的可反复擦写的Flash只读程序存储器和128 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash 存储单元。主控制器系统的外围接口电路由键盘、数码显示及驱动电路、晶振、看门狗电路、通信接口电路等几部分组成。主控制器系

13、统的硬件电路原理图如图3.1所示。图3.1 主控制器系统的硬件电路原理图3.1.1 键盘的接口设计键盘的结构形式有两种,即独立式按键和矩阵式键盘。本系统使用的是44矩阵式键盘,第一行从左到右为1、2、3、4,第二行为5、6、7、8,第三行为9、0、开、关,第四行为增值、减值、定时、确认。该形式的键盘,每个按键开关位于行列的交叉处,采用逐行扫描的方法识别键码。矩阵键盘的列线从左到右分别与单片机的P1.0、P1.1、P1.2、P1.3相连,矩阵键盘的行线从上到下分别与P1.4、P1.5、P1.6、P1.7相连。每当按下一个键时,对应的行线与列线就会连通,这样单片机就能检测出信号,并通过键盘扫描程序

14、对键盘进行扫描,以识别被按键的行、列位置。3.1.2 LED数码显示的接口设计数码显示与驱动电路由74LS138译码器、7447 TTL BCD-7段高有效译码器/驱动器、4个数码管以及5个A1015三极管组成。由单片机的P0.0P0.3口输出的四位BCD码,经7447芯片后,翻译成7段数码管a、b、c、d、e、f、g相应的段,并输出点亮数码管相应的段。单片机的P0.4、P0.5口输出的信号经74LS138译码器后产生的高电平信号加在A1015三极管的基极,控制三极管的导通,从而起到对相应数码管的选通作用。4个7段数码管都被接成共阳极方式。3.1.3 看门狗监控电路的设计本系统采用MAXIM公

15、司的低成本微处理器监控芯片MAX813L构成硬件狗,与AT89C51的接口电路如图3.1所示。MR与WDO经过一个二极管连接起来,WDI接单片机的P2.7口,RESET接单片机的复位输入脚RESET,MR经过一个复位按钮接地。该监控电路的主要功能如下:a)系统正常上电复位:电源上电时,当电源电压超过复位门限电压4.65V,RESET端输出200ms的复位信号,使系统复位。b)对+5V电源进行监视:当+5V电源正常时,RESET为低电平,单片机正常工作;当+5V电源电压降至+4.65V以下时,RESET输出高电平,对单片机进行复位。c)看门狗定时器被清零,WDO维持高电平;当程序跑飞或死机时,C

16、PU不能在1.6s内给出“喂狗”信号,WDO跳变为低电平,由于MR端有一个内部250mA的上拉电流,D导通MR获得有效低电平,RESET端输出复位脉冲,单片机复位,看门狗定时器清零,WDO又恢复成高电平。d)手动复位:如果需要对系统进行手动复位,只要按下手动复位按钮,就能对系统进行有效的复位。3.2 分控制器的电路设计分控制器采用低档型的AT89C2051单片机作为微处理器,AT89C2051也是美国ATMEL公司生产的低电压、高性能CMOS 8位单片机,片内含2K bytes的可反复擦写的Flash只读程序存储器和128 bytes的随机存取数据存储器(RAM),兼容标准MCS-51指令系统

17、,具有15线可编程I/O口,该单片机具有体积小、成本低、结构简单、性价比较高等特点。分控制器系统的外围接口电路由晶振、实时时钟芯片、可控硅控制电路、零点检测电路、看门狗电路、通信接口电路等组成。分控制器系统的硬件电路原理图如图3.2所示。图3.2 分控制器系统的硬件电路原理图3.2.1 时钟芯片的接口设计本系统利用单片机89C2051和时钟芯片DS1302进行串行数据通信,读取和写入实时数据,用于定时控制照明灯具的启停。DS1302是美国Dallas公司推出的一种高性能、低功耗的实时时钟芯片,附加31字节静态RAM,采用SPI三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟

18、信号或RAM数据。实时时钟可提供秒、分、时、日、星期、月和年,一个月小于31日时可自动调整。DS1302与单片机的连接仅需要3根线,即SCLK、I/O、RST。RST接在P1.7上,此引脚为高电平时,选中该芯片,可对其进行操作。串行数据线I/O与串行时钟线SCLK分别接在P1.5和P1.6上,所有的单片机地址、命令及数据均通过这两条线传输。在本系统中,89C2051为主器件,DS1302为从器件,主器件在总线上产生时钟脉冲、寻址信号、数据信号等,而从器件则相应接收数据、送出数据。对DS1302的每一次读写需16个时钟脉冲,前8个脉冲输入操作地址和读写命令。其中位7必须为1;位0为0时向芯片写入

19、数据,为1时从芯片读出数据;位6位1选定芯片中的地址。后8个脉冲写入或读出数据。DS1302采用双电源系统供电,VCC1在双电源系统中提供主电源,在这种运用方式下VCC2连接到备份电源,以便在没有主电源的情况下能保存时间信息以及数据。DS1302由两者中的较大者供电。当VCC1大于VCC2+0.2V时,VCC1给DS1302供电。当VCC1小于VCC2时,DS1302由VCC2供电。3.2.2 零点检测与可控硅控制电路的设计这部分电路的设计采用单片机的I/O口灌电流的方法控制可控硅实现开关与调光控制,用光电耦合器M0C3021作为可控硅的驱动器,同时实现强、弱电的隔离。光电耦合器M0C3021

20、通过一个非门与89C2051的P3.7口连接,当此脚输出低电平时,将会封锁住MOC3021,使双向可控硅BT131不导通,这样就会使照明灯关闭;当P3.7脚输出高电平时,使光电耦合器MOC3021打开驱动双向可控硅,从而将双向可控硅触发导通,这样就开启了所要控制的照明灯。对于照明灯的亮度调节,这里采用PWM(Pulse Width Modulation)方式,即脉冲宽度调制的简称,PWM是一种周期一定而高低电平的占空比可以调制的方波信号,当输出脉冲周期一定时,输出脉冲的占空比越大相对应的输出有效电压越大。在一个周期内的脉冲宽度(导通时间)为T1,周期为T,波形如图3.3所示。图3.3 脉冲波形

21、图则输出电压的平均值为:U=VCCT1/T=VCC其中=T1/T(正脉冲的持续时间与脉冲周期的比值)称为占空比,的变化范围为01,VCC为电源电压。当电源电压VCC不变的情况下,输出电压的平均值U取决与占空比的大小,改变的大小就可以改变输出电压的平均值,这就是PWM的工作原理。灯泡的亮度与加在灯泡两端的电压成比例,而灯泡两端的电压与可控硅的导通角成比例,这样通过调节PWM信号的占空比来控制可控硅的导通角。因此占空比越大,灯泡就越亮,当占空比=1时,灯泡的亮度最高。由于89C2051单片机没有PWM信号输出功能,所以在这里采用单片机定时器配合软件的方法来实现PWM信号的输出。使用PWM方法进行可

22、控硅控制时,调制频率不能低于市电频率,因为当频率低于50Hz时,超过了人眼视觉暂留效应,用于调光将产生闪烁的现象。当调制频率大于市电频率,可控硅将处于连续导通状态而不能达到调压的目的,因此必须使用过零检测作为触发可控硅的基点。在本系统中所使用的过零检测电路如图3.2所示,先由一个变压器将市电电压转换成10V左右的电压,经过整流、稳压后可作为系统工作电源,同时将变压器次级的同名端引出一根线连接到比较器LM311的正输入端,用以检测交流电的过零点,然后将过零信号送给单片机的P1.3口上。当检测到交流电的过零点时,就去触发双向可控硅,同时通过PWM信号的输出控制双向可控硅的导通时间,最终达到控制灯泡

23、亮度的目的。3.3 RS485通信电路的设计本系统的有线通信方式采用RS485总线进行通信,RS485标准支持半双工通信,只需三根线就可以进行数据的发送和接收,同时具有抑制共模干扰的能力,接收灵敏度可达200mV,大大提高了通信距离,在100K bps速率下通信距离可达1200m,如果通信距离缩短,最大速率可达10M bps。在这里使用的是主从式通信方式,主机由主控制器充当,从机为分控制器。主机处于主导和支配地位,从机以中断方式接收和发送数据,主机发送的信息可以传送到所有的从机或指定的从机,从机发送的信息只能为主机接收,从机之间不能直接通信。主机与从机的通信电路图分别如图3.4与图3.5所示。

24、主机与从机选用的RS485通信收发器芯片为MAX485,它是MAXIM公司生产的用于RS 485通信的低功率收发器件,采用单一电源+5 V工作,额定电流为300 A,采用半双工通信方式。它完成将TTL电平转换为RS485电平的功能。MAX485芯片内部含有一个驱动器和接收器。RO和DI端分别为接收器的输出和驱动器的输入端,与单片机连接时只需分别与单片机的RXD和TXD相连即可;RE和DE端分别为接收和发送的使能端,当RE端为逻辑0时,器件处于接收状态;当DE端为逻辑1时,器件处于发送状态,因为MAX485工作在半双工状态,所以只需用单片机的一个管脚控制这两个引脚即可,主机与从机分别使用P2.6

25、与P1.0脚进行控制;A端和B端分别为接收和发送的差分信号端,当A引脚的电平高于B时,代表发送的数据为1;当A的电平低于B端时,代表发送的数据为0。在进行通信时只需要一个信号控制MAX485的接收和发送即可。同时将A和B端之间加匹配电阻,这里选用120的电阻。 图3.4 主机通信电路图 图3.5 从机通信电路图为了提高系统的抗干扰能力,采用光电耦合器TLP521对通信系统进行光电隔离。从机使用单片机的P1.0控制通信收发器MAX485的工作状态,平时置P1.0为低电平,使从机串行口处于侦听状态。当有串行中断产生时判别是否是本机号,若为本机地址则置P1.0为高电平,发送应答信息,然后再置P1.0

26、为低电平接收控制指令,继续保持P1.0为低电平,使串行收发器处于接收状态;若不是本机地址,使P1.0为低电平,使串行收发器处于接收侦听状态。3.4 无线数传电路的设计无线数据传输需要通过无线数传模块来实现。本系统选用的是上海桑锐电子科技有限公司生产的SRWF-1型微功率无线数传模块。该模块的通信信道是半双工的,最适合点对多点的通信方式。单片机与无线数传模块之间可以进行信息的传送与回馈,即所谓的双向通信。3.4.1 无线数传电路的连接主控制器与分控制器各使用一个无线数传模块,形成发送与接收的无线通信通道。模块的数据输入和输出端与单片机的串行口连接,即模块的串行数据发射端TXD与单片机的串行数据输

27、入端RXD连接;模块的串行数据接收端RXD与单片机的串行数据输出端TXD连接。单片机与无线数传模块SRWF-1的电路连接如图3.6所示。图3.6 单片机与无线数传模块的连接3.4.2 SRWF-1模块的特性a) 微发射功率:最大10dbm(10mW)的发射功率。b).ISM频段工作频率,无需申请频点。载频频率429-438MHz,也可提供315/868/915MHz等载频。c) 高抗干扰能力和低误码率。基于FSK的调制方式,采用高效无线通信协议,在信道误码率为10-2时,可得到实际误码率10-510-6。d) 完善的通讯协议。e) 传输距离远。在视距情况下,天线高度3米,可靠传输距离300m。

28、f) 透明的数据传输。提供透明的数据接口,能适应任何标准或非标准的用户协议。自动过滤掉空中产生的噪音信号及假数据(所发即所收)。g) 多信道,多速率。SRWF-1型模块标准配置提供8个信道,根据用户需要,可扩展到16/32信道,满足用户多种通信组合方式的需求。SRWF-1型模块可提供1200bps、2400bps、4800bps、9600bps、19200bps等多种通信波特率,并且无线传输速率与接口波特率成正比,以满足客户设备对多种波特率的需要。h) 双串口,3种接口方式。SRWF-1型模块提供2个串口3种接口方式,COM1为TTL电平UART接口。COM2由用户自定义为标准的RS-232/

29、RS-485接口(用户只需要拔/插短路器再上电即可改变接口类型)。i) 高速无线通讯和大的数据缓冲区。可1次传输无限长度的数据,用户编程更加灵活。j) 智能数据控制,用户无需编制多余的程序。即使是半双工通信,用户也无需编制多余的程序,只要从接口收/发数据即可,其它如空中收/发转换,网络连接,控制等操作,SRWF-1型模块能够自动完成。k) 低功耗及休眠功能。接收电流20mA,发射电流40mA,休眠时电流仅为20uA。l) 高可靠性,体积小、重量轻。采用高性能单片处理器ATMega8L,外围电路少,可靠性高,故障率低。m) 两种接口收发等待时间。可设置的接口等待时间使模块既能用于高速用户设备(如

30、DSP系统)也可适用低速系统(如51系统)。n) 看门狗实时监控。ATMega8L的看门狗监控内部功能,改变了传统产品的组织结构,提高了产品的可靠性。4 基于单片机的照明控制系统的软件设计软件是计算机系统的灵魂,没有软件计算机不能充分发挥其功能,这是软件在计算机中的地位,而在计算机控制系统中,软件也是非常重要的。在照明控制系统中,硬件设备的功能是由软件来定义的,如系统要控制分布的照明灯具,通过有线与无线串行通信程序来完成控制功能,通过软件定义键盘功能,通过编程完成LED数码显示等等,由此可见,软件是控制系统中的一个重要组成部分。该照明控制系统的软件程序包括:照明启停控制程序、照明亮度控制程序、

31、照明定时控制程序、人机交互程序以及RS485串行通信与无线数传通信程序等。本着软件设计的基本方法,照明控制程序的软件设计方法是利用传统的结构化分析与设计方法来完成的。结构化程序设计方法虽然是早期的程序设计方法,但该方法还一直被广泛地使用。结构化系统分析与设计贯穿整个软件设计过程,遵循“自顶向下,逐步求精”的基本原则。本照明控制系统软件程序总体结构如图4.1所示。照明停启控制照明亮度控制照明定时控制人机交互串行通信照明控制系统全部启停控制单独启停控制单独亮度控制全部亮度控制单独亮度控制全部定时控制LED数码显示键盘扫描无线数传RS485通信图4.1 照明控制系统软件程序总体结构图4.1 人机交互

32、程序设计系统的人机交互程序设计,主要是解决按键的扫描与信息的显示,让操作者能够灵活地控制系统工作。键盘用来输入指令,发光数码管用来显示单片机的状态,这是一个比较简单的人机交互形式。4.1.1 键盘扫描程序设计本系统的键盘采用的是44矩阵式键盘,矩阵式键盘由行线和列线组成,按键位于行、列线的交叉点上。一个44的行、列结构可以构成一个含有16个按键的键盘,显然,在按键数量较多时,矩阵式键盘较之独立式按键键盘要节省很多I/O口。矩阵式键盘中,行、列线分别连接到按键开关的两端,采用编程扫描工作方式的行扫描法,步骤如下:a)判断是否有键按下。其实现方法是使端口P1的高四位所有的行输出均为低电平,然后从端

33、口P1的低四位读入列值。如果没有键值按下,读入的列值为FH,如果有键按下,则不为FH。b)若有键按下,则延时10ms,再判断是否确实有键按下。c)若确实有键按下,则求出按下键的键值。其实现方法是对键盘进行逐行扫描。即先令P1.4为0,然后读入列值,若列值等于FH,说明该行无键按下,再令P1.5为0,对下一行进行扫描;若扫描某一行读入的列值不等于FH,则说明该行有键按下,求出键值。求键值时需要设置行值寄存器和列值寄存器。每扫完一行后,若无键按下,则行值寄存器加上04H;若有键按下,行值寄存器保存原值,转而求相应的列值。求列值的方法是,将列值右移,每移位一次列值寄存器加1,直至移出位为低电平为止。

34、最后将行值和列值相加即得十六进制的键值,每个十六进制键值对应相应的操作功能,如表4-1所示表4-1 键值对应表键值操作功能键值操作功能键值操作功能键值操作功能014589C125690D2367A开E定时3478B关F确认系统的按键定义除了基本的数字键(09)外,将其它的键依次定义为开、关、增值、减值、定时、确认六个命令键,其控制的基本功能是:a) 通过数字键、确认键输入分控制器的地址以及定时功能的时间设置。b) 利用开、关键控制照明灯具的启停。c) 利用增值、减值键控制照明灯具的亮度。d) 通过定时键来对照明灯具进行定时控制的设置。系统通过软件方法实现该功能,即定义开、关、增值、减值、定时、

35、确认等命令键,利用键盘扫描程序获取对应命令键的键值,然后执行相应的子程序,实现所要求的控制功能。4.1.2 LED数码显示程序设计本系统采用了四位共阳极七段数码管,共阳极数码管的8个发光二极管的阳极(二极管正端)连接在一起,通常,公共阳极接高电平(一般接电源),其它管脚接段驱动电路输出端。当某段驱动电路的输出端为低电平时,则该端所连接的字段导通并点亮,根据发光字段的不同组合可显示出各种数字或字符。此时,要求段驱动电路能吸收额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻,这里的限流电阻选为100。这里选用的7447芯片是从BCD码到SEG7段码的转换器,而74LS138是

36、一个地址译码器,通过74LS138选通某个数码管,然后根据7447传送过来的SEG7段码的数据进行显示,而在非选通的时候,数码管能够保持原有的显示数据。LED数码显示程序的流程图如图4.2所示。关显示初始化查表取段码段码送驱动显示位码送译码器选通低位数码管显示缓冲区左移数字是否显示完YN返回子程序入口图4.2 LED数码显示程序流程图4.2 照明启停控制程序设计照明的启停控制主要是由主控制器发出指令,通过RS485通信方式或无线数传方式控制全部或部分分控制器所控制照明灯具的启停,因此照明启停控制程序由两部分组成,即全部启停控制与单独启停控制两部分。4.2.1 全部启停控制程序设计全部照明启停控

37、制系统是利用主控制器上的开、关按键来控制全部照明灯的启停,控制命令是通过串口通信方式传达到分控制器,分控制器再依据命令向P3.7口输出高低电平,来达到控制灯泡亮和灭的目的。在这个多机系统中采用的是主从式通信方式,主机即主控制器处于主导和支配地位,从机即分控制器一般以中断方式来接收和发送数据。在主从式多机系统中主机发送的信息可以传送到所有的从机或指定的从机,在这里是要发送给所有的从机,来控制照明灯的启停。在本系统中采用广播式命令,不需要从机返回信息,从机之间也不能直接通信。主机由AT89C51单片机充当,从机为AT89C2051单片机。主机与从机的数据通信波特率定为9600波特,每个从机都有唯一

38、的地址号,用来区分各从机。单片机的数据通信由串口完成,定时器T1为波特发生器,数据传送格式为1位起始位,8位数据位,1位停止位,1位可编程位(TB8)。工作方式:定时器T1设置为方式2,串口设置为工作方式3。本系统的通信原理为:从机在建立与主机通信之前所有分机的SM2都置1,即随时处于对通信线路侦听的状态,只能收到主机发送来的机号信息。主机向从机发送广播地址信息时,广播地址为00H,所有分机都接收到广播地址信息,然后进入正常通信状态,清除SM2位,开始接收主机发送来的命令。从机收到的命令是开灯时,向P3.7口输出高电平,打开MOC3021驱动双向可控硅,从而就点亮了灯泡;同理,如果收到的命令是

39、关灯时,向P3.7口输出低电平,封闭MOC3021使双向可控硅截止,也就达到了关闭灯泡的目的。该系统的主机和从机的控制程序流程图如图4.3和图4.4所示。4.2.2 单独启停控制程序设计单独照明启停控制系统是通过主机发送给指定的从机命令信息,来实现照明灯的启停控制。主机首先发送从机地址,被叫到的从机向主机发送本机地址,然后主机向从机传送数据,从机根据接收的数据信息执行相应的命令。单片机的工作方式同全部照明启停控制系统。其具体的工作过程是:所有的从机在通信之前都把SM2位置1,随时处于侦听状态。当主机发送从机的地址信息时,每帧数据的第9位都为1,所有从机都接收到地址信息,然后判断主机是否呼叫本机

40、。如果呼叫本机则进入正式通信状态,清除SM2,并把本机地址号发送给主机作为应答,然后才开始接收主机发送来的信息。而其它从机由于地址号不符,他们的SM2位仍然为1,仍处于侦听状态,无法接收主机发送来的数据信息。主机收到从机发送来的回应信息后,比较主机已发送的地址号与刚接收的地址号是否相符,如果不符,则发出错误信息;如果相符,则正式发送数据信息,这时发送的每帧的第9位都为0。只有SM2=0的从机才能接收到主机发送的信息。从机根据命令执行相应的动作,如果为打开命令,则输出高电平驱动可控硅动作,开启照明灯;如果为关闭命令,则输出低电平使可控硅截止,停掉照明灯。该系统的主机和从机控制程序流程图分别如图4

41、.5与4.6所示。4.3 照明亮度控制程序设计照明亮度控制系统是利用主控制器键盘上的增值与减值键,通过串口通信方式来控制分控制器所控制的照明灯的亮度。在这里对于灯泡亮度的调节是通过PWM方式来进行的,分控制器选用的是AT89C2051单片机,这种单片机本身没有PWM输出,只能通过软件方法实现。在一定频率的方波中,调整高电平和低电平的占空比,即可实现。假设把一个周期分为10个时间等份,如果方波中的高低电平占空比是1:9,这时就是一个比较暗的亮度,如果占空比是5:5,就是一个中间亮度,如果高低电平占空比是9:1,这时就是一个比较亮的亮度,高低电平占空比为0:10时,灯泡是灭的,高低电平占空比为10

42、:0时,灯泡最亮。在进行实验中,将定时器1的溢出定为1/20000秒,每10次脉冲输出一个2KHz频率。这每10次脉冲再用来控制高低电平的10个比值。这样,在每个1/2000秒的方波周期中,都可以改变方波的输出占空比,从而控制灯泡的10个亮度级别。在主控制器键盘上每次按增值与减值键改变占空比的值就可以控制灯泡的亮度。4.3.1 全部亮度控制程序设计全部照明亮度控制系统就是主机向从机发送广播地址,所有从机都接收主机发送来的数据信息,然后根据命令是调亮还是调暗来进行相应的灯泡亮度控制。该系统的主机控制程序流程图同图4.3 所示,从机控制程序流程图如图4.7所示。4.3.2 单独亮度控制程序设计单独

43、照明亮度控制系统通信原理基本上与单独照明启停控制系统相同,也是开始时所有从机处于侦听状态,等待主机的呼叫,当主机发出某一从机的地址时,所有从机将接收到的地址与本机地址相比较,如果相符,说明主机在呼叫自己,然后发回应答信号,表示准备好开始接收后面的命令,否则不予理睬,继续侦听呼叫地址。主机收到从机的应答后,则开始一次通信,通信完毕,从机继续处于侦听状态,等待呼叫。从机在收到调亮或调暗的命令后,利用零点检测电路检测电源过零点,一旦单片机的P1.3口检测到过零点脉冲,就会向P1.3口输出PWM信号以调高或调低灯泡的亮度。该系统的主机控制程序流程图同图4.5所示,从机控制程序流程图如图4.8所示。初始

44、化调用键盘扫描子程序取键值发送数据给从机有键按下吗YN开始返回图4.3 全部启停控制主机程序流程图初始化接收主机发送的地址接收主机发送的数据向P3.7输出高电平是打开命令吗地址是00H吗中断入口程序返回向P3.7输出低电平是关闭命令吗YYYNNN图4.4 全部启停控制从机程序流程图开始返回初始化调用键盘扫描子程序取键值发送地址给从机接收从机返回的地址送显错误信息“OE”发送数据给从机两个地址相符吗有键按下吗YYNN图4.5 单独启停控制主机程序流程图初始化接收主机发送的地址接收主机发送的数据向P3.7输出高电平是打开命令吗与本机地址相符吗中断入口程序返回向P3.7输出低电平是关闭命令吗YYYN

45、NN向主机发送本机地址图4.6 单独启停控制从机程序流程图初始化接收主机发送的地址接收主机发送的数据向P3.7输出增加一个亮度级别的PWM信号是调亮命令吗地址是00H吗中断入口程序返回是调暗命令吗YYYNNN交流电过零点吗交流电过零点吗向P3.7输出减少一个亮度级别的PWM信号还有数据吗NNNYYY图4.7 全部亮度控制从机程序流程图Y是调亮命令吗初始化接收主机发送的地址向主机发送的数据向P3.7输出增加一个亮度级别的PWM信号与本机地址相符吗中断入口程序返回是调暗命令吗YYNNN交流电过零点吗交流电过零点吗向P3.7输出减少一个亮度级别的PWM信号还有数据吗NNNYYY接收主机发送的数据图4

46、.8 单独亮度控制从机程序流程图4.4 照明定时控制程序设计照明定时控制系统是利用从机即单片机AT89C2051和时钟芯片DS1302进行数据通信,读取和写入实时数据,主机采用串口通信方式对从机进行定时时间的设置,从机然后根据设定的时间进行照明灯的启停控制。DS1302的控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入到DS1302中;位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。DS1302的控制字如表4-2所示。表4-2 DS1302

47、的控制字765432101RAM CKA4A3A2A1A0RD W在DS1302芯片中,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供了终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中置RST为低电平,则会终止此次数据传送,并且I/O引脚变为高阻态。在控制指令字输入后的下一个SCLK时钟的上升沿时数据被写入DS1302,数据输入从低位即位0开始。同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的

48、数据,读出数据时从低位0位至高位7。4.4.1 全部定时控制程序设计在全部定时控制系统中是通过主控制器向所有的分控制器发送广播地址,分控制器在收到广播地址后,使自己处于接收数据状态,然后主控制器向网络中发送时间数据信息,分控制器在收到时间数据后写入DS1302芯片,等到设定时间到达后,单片机发出命令关闭照明灯。该系统的主机控制流程图同图4.3所示,从机的控制流程图如图4.9所示。4.4.2 单独定时控制程序设计主控制器使用键盘输入被呼叫分控制器的地址,并通过网络向所有分控制器传送,在分控制器将该地址与本机地址进行比较后,判断是否是呼叫自己,如果是呼叫本机,就将本机地址传送给主控制器,进一步接收

49、传送的数据,然后分控制器就将数据写入DS1302芯片,等到设定的时间到达时就执行关闭照明灯的命令。单独定时控制的主机程序流程图同图4.5所示,从机程序流程图如图4.10所示。4.5 RS485通信程序设计由于RS485总线是异步半双工的通信总线,在某一个时刻总线只可能呈现一种状态,所以这种方式一般适用于主机对从机的查询方式通信。在通信中,主机与各个从机进行通信,必须能对各个从机进行识别,这一识别功能是利用串口控制寄存器SCON的SM2位实现的。当串口以方式3工作时,发送和接收的每一帧信息都是11位,其中第9位数据位是可编程的,通过对SCON寄存器的TB8位置1或置0,以区别发送的是地址帧还是数

50、据帧(规定地址帧的第9位为1,数据帧的第9位为0)。若从机的控制位SM2被设为1,则当接收的是地址帧时,数据装入SBUF,并置RI=1,向CPU发出中断申请,若接收的是数据帧,则不产生中断,信息被抛弃。若SM2被设为0,则无论是地址帧还是数据帧都将产生RI=1中断标志,数据装入SBUF。利用这一功能,可以按照如下步骤进行数据通信中断入口程序初始化接收主机发送的地址读出DS1302芯片的数据关闭照明灯地址是00H吗时间到了吗返回接收主机发送的数据将数据写入DS1302芯片YYNN图4.9 全部定时控制从机程序流程图中断入口程序初始化接收主机发送的地址读出DS1302芯片的数据关闭照明灯与本机地址

51、相符吗时间到了吗返回向主机发送本机地址将数据写入DS1302芯片YYNN接收主机发送的数据图4.10 单独定时控制从机控制程序流程图a) 将所有SM2位置1,使其处于只接收地址帧的状态。b) 主机发送一帧地址信息,其中前8位数据位表示通信的从机地址,第9位为1,表示当前帧为地址帧。c) 从机接收到地址帧后,如果是广播地址帧,则所有从机都将其SM2位置0,准备接收主机发送的数据或命令;如果不是广播地址帧,则将本机地址与帧中地址进行比较。如果地址相同,则将其SM2位置0,并发送本机地址帧,然后准备接收数据。如果地址不同,则丢弃当前数据,SM2位不变。d) 主机发送数据帧,相应的从机接收,其他从机则

52、不受影响。e) 当主机需要与其他从机通信时,可以再次发出地址帧寻呼从机,重复这一过程。主机在发送数据时,按照表4-3的数据格式进行传输。表4-3 数据传输格式 字节数N字节数1字节数2数据N字节奇偶校验在程序中,第9位发送数据位SCON中的TB8位,第9位接收数据位为SCON的RB8位,因此,发送数据前,可以通过对TB8位置1或0来确定要发送的是地址帧还是数据帧。而接收数据时,对地址帧的判断则是通过读取RB8位来获得的,RB8=1,当前帧为地址帧,RB8=0,当前帧为数据帧。单片机的串口工作在方式3下,其波特率由定时器1(T1)的溢出率决定,计算公式为:波特率=T1的溢出率定时器T1的溢出率的

53、计算公式为:溢出率=(-T1的初始值)则波特率的公式变为:波特率=(-T1的初始值)系统所采用的晶振频率为11.0592MHz,T1工作在模式3下,波特率=9600b/s。4.5.1 主机部分通信程序设计系统中的主机通信程序分为4个部分,分别为预定义及全局变量部分、程序初始化部分、数据通信流程和发送数据部分。主机的数据通信的基本流程如下:a) 主机首先向所有从机发送地址帧对要通信的从机进行呼叫,发送地址帧时需将TB8位置1。b) 发送地址帧后,如果发送的是广播地址帧,则不需要从机应答,待延迟一段时间后,调用发送函数发送数据;如果发送的是非广播地址帧,主机则要接收应答,若应答信号中的地址与前面发

54、送的地址并不相同,主机将重新发送地址帧呼叫,否则调用发送函数发送数据。c) 发送完数据后,主机等待从机的校验信号,如果接收到0X0F数据,表示发送成功,通信结束,否则主机将重新发送数据,直至发送成功。该部分程序对应的流程图如图4.11所示。等待从机应答开始结束发送地址帧调用发送函数发送数据等待从机应答是广播地址吗发送成功吗应答信息与发送的地址相符吗YYYNNN图4.11 主机数据通信流程图4.5.2 从机部分通信程序设计从机通信程序也被分为预定义及全局变量部分、程序初始化部分、数据通信流程和接收数据部分4个部分。从机部分的数据通信过程受主机控制,其基本的流程如下:a) 初始化完成后,从机设置S

55、M2位为1,串口只接收第9位数据位为1的地址帧,数据帧将被直接抛弃。b) 如果串口有数据接收(收到地址帧),则从机会将该帧中的地址信息先与广播地址进行比较,如果是广播地址,则做好接收数据的准备,如果是其它地址,则与本机地址比较,如果相同,则发送应答信息,应答信息内容应为本机地址,否则丢弃当前数据,从机继续处于等待呼叫状态。c) 程序调用接收函数接收主机发送的数据部分并作出应答,接收到的数据保存至Buf指向的缓冲区中。如果接收函数返回0xff,表示数据校验失败,程序等待主机重新发送数据。如果函数返回值为0xfe,表示从机在数据接收过程中发现主机发送地址帧,程序将放弃当前接收过程,将SM2位重新置

56、1,开始下一通信过程。如果函数返回0,表示数据被成功接收,向主机发送成功信号,随后,程序将SM2位置1,重新开始下一个数据通信流程。该部分程序对应的流程图如图4.12所示。4.6 无线数传通信程序设计这里所设计的无线数据传输系统是采用主从式通信方式,主控制器设为主站,所有分控制器设为从站,所有从站都编一个唯一的地址。通信的协调完全由主站控制,主站先发送地址帧,所有从站都接收,如果是接收的是广播地址码,则所有从站都做好接收主机发送数据或命令的准备,然后主机发送数据或命令;如果接收的是其它地址码,则从站将接收到的地址帧与本地地址码相比较,若不同则将数据全部丢掉,不做任何响应;若地址码相同,则证明是

57、呼叫本站,从站将自己的地址码发送回去,主站收到自己刚发出去的地址码后,接着发送数据或命令。这些工作都需要通信协议来完成,可保证在任何一个瞬间,通信网中只有一个模块处于发送状态,避免相互干扰。SRWF-1模块在使用之前要进行无线信道、接口类型、接口速率、接口参数等的设定,在设置完成后便可以进行数据传输,当模块收到单片机发来的第一个数据后自动进行无线网络连接、数据同步等工作,因此第一个数据将在5个字节时间延迟后从接收方串口输出。如要传送1个数据帧,此时间延迟将逐渐减少。当最后一个数据被发送后,模块将处于等待状态直到模块所设置的接收等待时间延迟之后,模块将自动通知所有接收设备断开无线网络连接、转入空

58、闲状态。当发送方最后一个数据被发送后需延迟6-8个字节才能接收空中其他模块的数据。其他模块在此时间内也不能向空中发射数据,即使有用户数据输入也是被缓冲在模块中,而没有发送到无线链路中,以避免引起数据通讯混乱。无线数传的通信协议与流程基本上与RS485通信程序相同,因此主机和从机的数据通信程序流程图分别如图4.11与4.12所示。接收函数返回值为0XFFY接收函数返回值为0XFE开始将SM2地址为1只接收地址帧串口有数据接收发送应答信号信号内容为本机地址调用接收函数接收数据向主机发送成功信号是广播地址吗接收的地址与本机地址相符吗YYYNNNN图4.12 从机数据通信流程图结论本文研究了基于AT8

59、9C51与AT89C2051单片机的智能照明控制系统的设计原理与实现方法,包括硬件设计与软件设计。首先根据设计要求用Protel DXP软件绘制出原理图,然后依据原理图选择元器件,在实验板上布置元器件并连接线路,对硬件电路进行测试,检查串行口是否选错,测量电源是否正常,复位电平是否正确,单片机是否起振等等。接着就要按照功能要求编制程序,这里采用Keil C编程工具,需先根据要求划分模块,优化结构;再根据各模块特点确定何为主程序,何为子程序,何为中断服务程序,相互间如何调用;再根据各模块性质和功能将各模块细化,设计出程序流程图;最后才根据各模块流程图编制具体程序。调试时应先调主程序,实现最基本最

60、主要的功能,在此基础上再将各模块功能往主程序上堆砌,直至各模块联调、统调,实现全部功能。参考文献1 王幸之,钟爱琴等. AT89 系列单片机原理与接口技术. 北京:北京航空航天大学出版社,20052 孙涵芳,徐爱卿. 单片机原理及应用. 北京:北京航空航天大学出版社, 19963 阳宪惠. 现场总线技术及其应用. 北京:清华大学出版社,19994 求是科技. 8051 系列单片机 C 程序设计完全手册. 北京:人民邮电出版社, 20065 房小翠,王金凤. 单片机使用系统设计技术. 北京:国防工业出版社,19996 李华. MCS-51系列单片机实用接口技术. 北京:北京航空航天大学出版社,

61、20037 吴金戎,沈庆阳等. 8051 单片机实践与应用. 北京:清华大学出版社,20028 陈新忠. 基于 RS485 总线的单片机多机通信软件设计. 现代电子技术,2002.(3) P8109 樊宇,程全. 基于 RS485 总线实现的远距离多机主从式通信技术. 工业控制计算机, 2006. 19(7) P717310 SRWF-1型微功率无线数传模块使用说明书. 上海桑锐电子科技有限公司, 200411 孙雪梅,范久臣. 实时时钟芯片在单片机系统中的应用. 沈阳教育学院学报, 2005. 7(2) P13213412 曹丙霞,赵艳华. Protel99SE原理图与PCB设计.北京: 电

62、子工业出版社,200713 周杰英.微型计算机原理及应用.北京: 机械工业出版社,200614 胡汉才编著.单片机原理及其接口技术北京:清华大学出版社,199615 李广弟单片机基础北京:北京航空航天大学出版社,199516 何立民MCS-51系列单片机应用系统设计.北京:北京航空航天大学出版社,199917 Peter prinz&Tony Crawford,C in a Nutshell.OReilly Media,Inc,200718 U.Titze Ch.Schenk.Elecfronic Circuits,10thed. Spring-Verlag, Berlin, 199319 Adel S.Sedra and Kmith:Microelectronic Circuits,4th ed,Oxford University Press.Inc,199820

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!