版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于单片机的照明控制系统摘要随着电子技术的飞速发展,基于单片机的控制系统已广泛应用于工业、农业、电力、电子、智能楼宇等行业,微型计算机作为嵌入式控制系统的主体与核心,代替了传统的控制系统的常规电子线路。同时楼宇智能化的发展与成熟,也为基于单片机的照明控制系统的普及与应用奠定了坚实的基础。本文阐述了照明的有线、无线控制方式设计原理与实现方法。以设计过程为主线,分别从硬件和软件两个方面描述设计过程,即从硬件电路的设计方法到实现所要求功能的软件技术。该照明控制系统的主控制器、分控制器分别是以AT89C51与AT89C2051单片机为基础,实现了有线通信、无线数传、控制与显示等功能。文中详细地描述了控制电路的设计过程,包括:键盘与LED显示电路、RS485通信电路、无线数传电路、照明灯控制电路以及看门狗电路等。对于软件设计主要有主控制器、分控制器的有线通信程序设计与无线数字传输程序设计以及灯光控制、定时控制、键盘扫描与LED显示等程序设计。有线通信程序的功能是:通过RS485主从通信方式,由主控制器发出命令对全部或单个分控制器所控制的照明灯实现开启、关闭、灯光亮度调节、定时控制等功能。无线数传程序设计的功能是:通过无线数传模块实现照明灯的无线遥控,同样实现有线方式控制的功能。关键词:主控制器,分控制器,单片机,有线通信,无线数传,灯光亮度控制,定时控制TheControlSystemforLightingBasedonSingle–chipMicrocomputer恼A稍b章s际t茄r轿a愿c氧t嘱W拴i当t股h降鹿t那h喜e码士r送a布p隔i缺d心脊d辞e宽v千e沙l叉o编p相m抛e揉n早t垫隆o科f弹快e艳l硬e违c沫t列r凑o惕n个i狸c愈垄t突e葡c井h煌n滤o袍l旱o估g陈y繁,皆嗽t宵h岭e晋跳s夹y帮s知t只e台m毁朝o诱f薄深c饮o君n粮t忙r烦o昨l戒堵b批a毛s印e摘d荷筐o裕n造旁S术i奶n绩g踏l堵e奏-爱c滴h悟i让p外不M敢i堡c纠r稀o虽c思o史m雾p撞u孔t莫e排r值反i卫s盾业w丛i冒d闭e光l竞y虑读a椒p花p祸l命i替e夸d跃计i腥n译兵i订n眠d臂u陪s沃t扎r谋y汪,谁a惹g客r羊i奏c堡u备l平t图u仿r辫e垃,之睬e符l喉e舌c搭t必r徒i李c脸明p芽o喝w虽e温r数,则树e脊l创e战c涨t览r命o校n金,亲看i服n刮t奏e怖l纠l冬i族g微e竿n尘t页锹b导u壳i翠l夹d伏i过n泰g踏劲a葵n拴d喂换s讨o屈寇o绳n扰.慧M沉i萌c阿r疏o冲c碍o奖m国p图u珍t贞e桑r毙,佣a批s状触t注h材e顾洁s剥u坏b掌j束e祖c改t膜显a耐n名d牙旬c旋o庙r成e眨圣o虏f季寄t家h束e合市e子m糠b半e须d莲d微e箩d敞肤s堆y掏s阔t散e箭m炸丽o邻f卫晕c峰o助n营t校r败o悠l摊,棋柜r艺e凝p扯l昆a什c起e收s灭恒t阶h看e扑葱t卵r碑a势d绪i塘t苦i慈o掘n夜a减l歇础s戒y屑s址t未e凉m常—节e影l啦e扒c别t巾r挣o掏n让i蓬c折狼c亏i腹r设c筛u暮i叠t涛.上录A僚t族仇t他h杜e抗喂s欲a绢m引e究伞t如i命m伸e烈,宅揉t蹄h塔e床每d衰e猫v钢e僻l甩o饱p辣m到e犹n明t稀粱a茶n贡d尿秀m不a燃t拒u僻r凯a竿t撞i扛o膛n瞧核o渗f近衣t千h集e垃爬i霉n雨t软e体l观l之i著g仇e院n连t快向b物u粥i枣l胡d暴i激n桥g唤准h配a厉v溉e护译e泪s息t狗a猴b桌l闪i扔s惩h双e站d崭澡t僻h遇e盏干s兄u乡b踏s忙t灶a翻n供t涨i上a峰l磁饰f如o己u戴n以d坚a行t程i秀o仍n病作f邮o贤r浩慨t梨h出e稿哥p律o耀p游u罢l认a慈r厚i砍z抢a罩t经i厚o蒜n软建a显n溜d国禽a熊p眉p局l耕i愤c勒a占t鼓i浙o惜n坏岗o白f临砖t邻h筛e陵榜c画o锯n并t袋r奴o御l罩披s松y市s丈t卷e乌m摩欢f练o丹r搅剩l脉i帝g底h辜t益i闭n苹g辅青b辈a那s带e孤d跨醋o拥n五侦s蚊i轧n侦g垄l技e哑-浆c君h馒i窃p震河m伯i烫c您r来o垦c雹o宰m静p怠u抽t忙e迅r芽.Thepaperexpatiatesonthedesigningtheoriesandimplementationmethodofthecontrolsystemforlightingbywiredorwirelesscommunications.Takingthedesigningprocessasmainline,itdescribestheprocessofdesigningfromtworespects—hardwareandsoftware.Inanotherword,thepaperdescribestheprocessfromthemethodofcircuitdesigningtothesoftwaretechnologyofrealizingthedemandedfunctions.ThehostcontrollerofthecontrolsystemforlightingisbasedonAT89C51single-chipmicrocomputer,andtheauxiliaryonesarebasedonAT89C2051.Thesystemcandomanyjobs,suchaswiredcommunication,wirelessdatatransmitting,controllinganddisplay.Thepaperdescribesthedesigningprocessofthecircuitatlength,including:keyboardandLEDdisplaycircuit,RS485communicationcircuit,wirelesstransmittingcircuit,controlcircuitoflighting,watchdogcircuit,etc.Thedesigningofsoftwaremainlyincludestheseveralprogramming锹,琴德s允u牵c岸h兵剑a件s坐辞w惨i聪r践e党d甲槐c烘o常m敞m值u糖n册i计c业a捞t捆i雪o译n酱,迅尖w强i话r拐e涛l宝e蒙s渠s订受d膛a蓬t围a龟惹t楼r腿a删n蜓s敬m速i脾t铜t既i旷n怪g彼,颗运l房a资m是p乡l急i迁g炼h筑t萌睡c锡o剖n丽t迷r须o全l劫l狠i春n蠢g董,燥刺t揭i摔m略e译d凭材c凡o闻n识t追r糖o真l像l在i另n蛋g啄,联竞k键e透y赶b菊o识a考r四d棒利s熔c难a弦n讲n霸i炮n罢g讨龟a想n妙d标捆L钞E茧D枝测d烦i套s聪p咱l甚a辽y刷i潮n糠g鉴.凭马T辨h任e捧掘w株i个r梁e惰d饶苏c咽o叮m匪m弄u奥n如i敌c鄙a贴t撕i铜o言n忘趁p临r寒o撑g屈r住a睁m克m凡i接n陷g虾捷f很u扒n挣c醒t底i公o毯n裹咐i衫s顶庙t洋h接a陶t坟t锤h予r营o柏u裤g灯h祸M车a懒s早t简e抵r份-富s俗l愈a恩v昆e简灿c瓜o物m小m泄u廊n场i飘c把a输t膀i栽o吸n太备m魂e污t耕h电o手d狐虎b恰a刺s炊e故d客心o纹n旁农R拌S宁4滑8雪5租麻t男h每e恨错h换o礼s振t抱说c或o碰n均t网r光o电l膜l咸e停r藏野s市e钉n请d岛s口总o范r项d钉e矛r钥s韵敌t下o苦拳t及h促e奶构a旷l挡l烫母a傍u刊x寒i镜l狸i莫a坊r抵y毙块c竟o壶n慎t费r彼o职l垫l筒e越r约s相掠o闲r蹦动e甜a脉c排h反恶o鲜n愧e焰,顽猴i肢n赤c董l针u王d者i撒n获g新:耀革t咐u疤r决n传i磁n争g序o卸n教畜l荐i认g谋h签t晌i窃n邻g冲,式痒t太u位r术n骄i属n贩g糟仓o械f尘f取毫l勿i暖g眠h司t劫i奉n蛋g氏,捏墓r粪e煎g撑u劝l劣a县t世i已n禾g撇爹b今r拘i墨g脏h泪t览n绢e块s填s斩弯o觉f底丝l慈i权g谊h结t明i四n淘g葱,齿抖c辆o遵n青t币r扯o溜l仍l涌i督n权g会搜t够i辜m棕e剥d属最l些i抚g文h监t慕i依n汗g查,燕孔e淘t葵c屠.批甩T掘h沸e讽至w闻i叉r级e绑l匪e轨s纸s复史d根a凉t倒a半碌t侵r翻a拼n璃s奶m任i标t珠t杏i讨n蚊g报亿p挠r容o携g现r录a炉m搅m银i词n奇g烫篇f唯u东n港c惊t萝i占o宵n薯暂i收s跳横t下h湖a桌t慕豆b规y既攻w剃i缓r朋e坡l滑e亩s袋s应平t悔r盛a雹n剂s聚m撕i蛋t季t喝e屋r润焦i逮t蓝童r糠e黄a殊l迈i掀z登e使s嚷址w为i跪r浪e温l欢e除s坚s毫思c脸o烧n支t碑r唐o虑l融l辛i绸n铁g环绿o肚f泪须t坑h剃e朋庭l带i隐g喘h驱t领i盗n牛g狡,酷长a百n注d概诞a丘c伙h岭i勿e姿v业e奶s夏挺t递h堵e盒横f仔u肥n哲c愚t板i箱o宁n肉s捞腥i亡d轧e胀n做t唱i耗c盒a性l沈气t犁o帖量w目i令r碎e软d息恩c招o萍m拍m喘u巩n祸i坑c响a绿t误i票o滩n存.草KeyWords:Hostcontroller,Auxiliarycontroller,Single-chipmicrocomputer,Wiredcommunication,Wirelessdatatransmitting,controllingbrightnessoflighting,Timedcontrolling目录摘要·····················································1Abstract··················································2序言·······················································61.1单片机应用技术···················································61.2有线通信技术···················································71.3无线数传技术···················································71.4本章小结···················································8基于单片机的照明控制系统的设计框架和性能························92.1系统设计要点···················································92.2系统的结构···················································92.3系统性能指标与技术要求···········································112.4本章小结···················································12基于单片机的照明控制系统的硬件电路设计·······················133.1主控制器的电路设计············································13键盘的接口设计···················································14LED数码显示的接口设计···········································14看门狗监控电路的设计··················································143.2分控制器的电路设计·················································15时钟芯片的接口设计··············································16零点检测与可控硅控制电路的设计·····························163.3RS485通信电路的设计···········································173.4无线数传电路的设计···············································20无线数传电路的连接···········································20SRWF-1模块的特性·······································203.5本章小结···················································21第四章基于单片机的照明控制系统的软件设计······························224.1人机交互程序设计··········································22键盘扫描程序设计········································23LED数码显示程序设计·············································254.2照明启停控制程序设计·············································26全部启停控制程序设计············································26单独启停控制程序设计···············································284.3照明亮度控制程序设计···············································30全部亮度控制程序设计···············································30单独亮度控制程序设计···············································324.4照明定时控制程序设计···················································33全部定时控制程序设计···················································33单独定时控制程序设计···················································344.5RS485通信程序设计···················································35主机部分通信程序设计···················································37从机部分通信程序设计···················································374.6无线数传通信程序设计···················································394.7本章小结···················································39第五章实验及总结···················································40致谢···························································41参考文献···························································42附录···························································43第一章序言近十几年来,随着我国城市建设的快速发展,楼宇照明也相应飞速发展。在楼宇的照明数量与质量两个方面均有显著的变化与提高,特别是随着人民生活水平进入小康水平,楼宇照明水平提高很快,追求人工照明光环境的舒适性、个性化、安全、节能等方面日见突出。楼宇中人工光环境对于满足人们的生活、学习、娱乐以及工作方面有着重要的意义。照明控制系统传统是以照明配电箱通过手动开关来控制照明灯具的通断,或通过回路中串入接触器,实现远距离控制。而今出现的楼宇自控系统,是以电气触点来实现区域控制、定时通断、中央监控等功能。由于照明控制系统在楼宇自控系统中并非独立,同时控制功能简单,因此使用上有一定的局限性。故当楼宇自控系统出现故障时,照明系统亦受到影响。随着微电子技术与数字化技术的发展,开发出了智能化水平更高的专业照明控制的独立系统,从而能节约能源、延长灯具寿命、提高照明质量。根据使用客户的经验,不仅使照明管理与设备维修简单及降低费用外,还对环境改善、提高工作效率都有着显著的效果。本系统是以单片机为控制器的核心,其中上位机是以AT89C51为基础,下位机是以AT89C2051为基础,再连接外围电路,通过现场总线RS485通信方式实现照明灯具的智能控制,也可以通过无线数传模块实现无线通信,从而达到照明灯具的智能控制。1单片机的应用技术电子技术和微型计算机的迅速发展,促进微型计算机测量和控制技术的迅速发展和广泛应用,单片机(单片微型计算机)的应用已经渗透到国民经济的各个部门和领域,它起到了越来越重要的作用。单片微型计算机就是将中央处理单元、存储器、定时/计数器和多种接口都集成到一块集成电路芯片上的微型计算机。因此一块芯片就构成了一台计算机。它已成为工业控制领域、智能仪器仪表、尖端武器、日常生活中最广泛使用的计算机。单片机由硬件系统与软件系统组成。硬件系统是指构成微机系统的实体与装置,通常由运算器、控制器、存储器、输入接口电路和输入设备、输出接口电路和输出设备等组成。其中运算器和控制器一般做在一个集成芯片上,统称中央处理单元(CentralProcessingUnit),简称CPU,是微机的核心部件。CPU配上存放程序和数据的存储器、输入/输出(Input/Output,简称I/O)接口电路以及外部设备即构成单片机的硬件系统。软件系统是微机系统所使用的各种程序的总称,人们通过它对微机进行控制并与微机系统进行信息交换,使微机按照人的意图完成预定的任务。软件系统与硬件系统共同构成完整的单片微型计算机系统,两者相辅相成,缺一不可。1.2有线通信技术在数据通信、计算机网络以及工业上的分布式控制系统中,经常需要采用串行通信来达到远程信息交换的目的。目前,有多种接口标准可用于串行通信,最常用的接口有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标准,增加了多点、双向通信能力,即允许多个发送器连接到同一条总线上,同时增加了发送器的驱动能力和冲突保护特性,扩展了总线共模范围,后命名为TIA/EIA-485-A标准。RS-232、RS-422与RS-485标准只对接口的电气特性做出规定,而不涉及接插件、电缆或协议,在此基础上用户可以建立自己的高层通信协议。正因为RS-485的远距离、多节点(32个)、可以自行定义协议以及传输线成本低的特性,使得EIARS-485成为工业应用中数据传输的首选标准。3无线数传技术有线传输的方式虽然使用非常广泛且可靠性较高,但由于各方面的局限性,已经在众多方面被无线传输方式所取代。无线数字传输技术日益完善,其重要性也被人们所认识,相应的基于无线数字传输的产品也随处可见。无线数字传输系统安装简便、使用效率高,可应用于各个领域,例如,无线数据传输、无线数据采集、无线抄表、工业遥控、楼宇自动化、高档玩具等等。无线数传技术是通过单片机的串口与无线数传模块连接,将要发送的数据由无线数传模块向空中发出,然后由另一个终端设备的无线数传模块从空中接收数据,这样就实现了预期的任务。1.4本章小结本章介绍了照明控制系统在智能楼宇中的应用、发展以及所使用的主要专业技术。它从传统的方式逐步发展到能够实现智能化控制,使用户使用起来更加方便、舒适。本文所研究的照明控制系统主要使用了单片机应用技术、有线通信技术和无线数传技术。在这里主要对这三种技术的组成、功能、发展以及使用领域等方面进行了简要的阐述。第二章基于单片机的照明控制系统的设计框架与性能2.1系统设计要点系统设计主要包括硬件和软件两大部分,依据控制系统的工作原理和技术性能,将硬件和软件分开设计。硬件设计部分包括电路原理图、合理选择元器件、绘制线路图,然后对硬件进行调试、测试,以达到设计要求。软件设计部分,首先在总体设计中完成系统总框图和各模块的功能设计,拟定详细的工作计划;然后进行具体设计,包括各模块的流程图,选择合适的编程语言和工具,进行代码设计等;最后是对软件进行调试、测试,达到所需功能要求。在系统设计中设计方法的选用是系统设计能否成功的关键。硬件电路是采用结构化系统设计方法,该方法保证设计电路的标准化、模块化。硬件电路的设计最重要的选择用于控制的单片机,并确定与之配套的外围芯片,使所设计的系统既经济又高性能。硬件电路设计还包括输入输出接口设计,画出详细电路图,标出芯片的型号、器件参数值,根据电路图在仿真机上进行调试,发现设计不当及时修改,最终达到设计目的。软件设计的方法与开发环境的选取有着直接的关系,本系统由于是采用51系列单片机,因此使用KeilC语言进行开发。此编程工具相比汇编语言具有结构化、适用范围大、可移植性好等特点。本系统软件设计采用模块化系统设计方法,先编写各个功能模块子程序,然后进行组合与调整,经过调试后,达到设计功能要求。2.2系统的结构系统的结构主要由三部分组成:(1)上位机系统;(2)下位机系统;(3)通信系统。这三部分共同完成了主控制器通过有线、无线通信方式与分控制器进行信息交换,达到控制照明灯具的目的。有线通信系统的结构框图如图2.1所示。该多机通信系统采用RS-485半双工主从式通信系统,主机可以发送数据或命令到从机,从机主要负责对分布的照明灯具进行控制,用中断的方式接收主机发来的命令或数据并做出回应。图2.1有线通信系统结构框图无线数据传输系统也是由主控制器和分控制器两部分组成,系统结构框图如图2.2所示。主控制器是发送遥控指令、发送数据信息、接收应答信息等,分控制器接收数据与遥控指令,完成对照明灯具的控制。图2.2无线数传系统结构框图系统的主控制器通过RS-485总线或无线数传模块将数据或命令发送给分控制器,同时将信息送给数码显示单元进行显示,并有看门狗电路对运行程序进行有效监视。主控制器硬件电路结构如图2.3所示。分控制器接收主控制器的发来的数据和命令,通过可控硅电路对照明灯具进行开关、亮度控制,并且利用实时时钟芯片对照明灯具进行定时开关控制。分控制器硬件电路结构如图2.4所示。图2.3主控制器硬件电路结构框图图2.4分控制器硬件电路结构框图系统在单片机的控制之下完成数据的通信、显示,同时能够控制照明灯具,其硬件电路只是系统的实施工具,大量的工作是由软件来完成的。这些程序是系统的灵魂,是负责完成硬件电路实现功能和与用户交互的桥梁,是维护系统正常工作的工具。3系统性能指标及技术要求(1)照明启停控制系统①全开②全关③单独开④单独关(2)照明亮度控制系统①全部亮度调节②单独亮度调节(3)定时控制系统①对全部照明灯进行定时控制②对每个照明灯进行定时控制2.4本章小结本章主要从系统设计要点、系统的结构、系统性能指标及技术要求三方面对所研究的照明控制系统的设计框架和性能进行了阐述,该系统由一个主控制器与若干个分控制器组成,系统的设计首先要从硬件方面着手,在绘制出正确的电路图后,再按功能要求编制出相应的软件程序,最终要达到所要求的性能指标。第三章基于单片机的照明控制系统的硬件电路设计1主控制器的电路设计主控制器采用AT89C51单片机作为微处理器,AT89C51是美国ATMEL公司生产的低电压、高性能CMOS8位单片机,片内含4Kbytes的可反复擦写的Flash只读程序存储器和128bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元。主控制器系统的外围接口电路由键盘、数码显示及驱动电路、晶振、看门狗电路、通信接口电路等几部分组成。主控制器系统的硬件电路原理图如图3.1所示。图3.1主控制器系统的硬件电路原理图键盘的接口设计键盘的结构形式有两种,即独立式按键和矩阵式键盘。本系统使用的是4×4矩阵式键盘,第一行从左到右为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相连。每当按下一个键时,对应的行线与列线就会连通,这样单片机就能检测出信号,并通过键盘扫描程序对键盘进行扫描,以识别被按键的行、列位置。LED数码显示的接口设计数码显示与驱动电路由74LS138译码器、7447TTLBCD-7段高有效译码器/驱动器、4个数码管以及5个A1015三极管组成。由单片机的P0.0~P0.3口输出的四位BCD码,经7447芯片后,翻译成7段数码管a、b、c、d、e、f、g相应的段,并输出点亮数码管相应的段。单片机的P0.4、P0.5口输出的信号经74LS138译码器后产生的高电平信号加在A1015三极管的基极,控制三极管的导通,从而起到对相应数码管的选通作用。4个7段数码管都被接成共阳极方式。看门狗监控电路的设计本系统采用MAXIM公司的低成本微处理器监控芯片MAX813L构成硬件狗,与AT89C51的接口电路如图3.1所示。MR与WDO经过一个二极管连接起来,WDI接单片机的P2.7口,RESET接单片机的复位输入脚RESET,MR经过一个复位按钮接地。该监控电路的主要功能如下:(1)系统正常上电复位:电源上电时,当电源电压超过复位门限电压4.65V,RESET端输出200ms的复位信号,使系统复位。(2)对+5V电源进行监视:当+5V电源正常时,RESET为低电平,单片机正常工作;当+5V电源电压降至+4.65V以下时,RESET输出高电平,对单片机进行复位。(3)看门狗定时器被清零,WDO维持高电平;当程序跑飞或死机时,CPU不能在1.6s内给出“喂狗”信号,WDO跳变为低电平,由于MR端有一个内部250mA的上拉电流,D导通MR获得有效低电平,RESET端输出复位脉冲,单片机复位,看门狗定时器清零,WDO又恢复成高电平。(4)手动复位:如果需要对系统进行手动复位,只要按下手动复位按钮,就能对系统进行有效的复位。3.2分控制器的电路设计分控制器采用低档型的AT89C2051单片机作为微处理器,AT89C2051也是美国ATMEL公司生产的低电压、高性能CMOS8位单片机,片内含2Kbytes的可反复擦写的Flash只读程序存储器和128bytes的随机存取数据存储器(RAM),兼容标准MCS-51指令系统,具有15线可编程I/O口,该单片机具有体积小、成本低、结构简单、性价比较高等特点。分控制器系统的外围接口电路由晶振、实时时钟芯片、可控硅控制电路、零点检测电路、看门狗电路、通信接口电路等组成。分控制器系统的硬件电路原理图如图3.2所示。图3.2分控制器系统的硬件电路原理图时钟芯片的接口设计本系统利用单片机89C2051和时钟芯片DS1302进行串行数据通信,读取和写入实时数据,用于定时控制照明灯具的启停。DS1302是美国Dallas公司推出的一种高性能、低功耗的实时时钟芯片,附加31字节静态RAM,采用SPI三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或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时向芯片写入数据,为1时从芯片读出数据;位6~位1选定芯片中的地址。后8个脉冲写入或读出数据。DS1302采用双电源系统供电,VCC1在双电源系统中提供主电源,在这种运用方式下VCC2连接到备份电源,以便在没有主电源的情况下能保存时间信息以及数据。DS1302由两者中的较大者供电。当VCC1大于VCC2+0.2V时,VCC1给DS1302供电。当VCC1小于VCC2时,DS1302由VCC2供电。零点检测与可控硅控制电路的设计这部分电路的设计采用单片机的I/O口灌电流的方法控制可控硅实现开关与调光控制,用光电耦合器M0C3021作为可控硅的驱动器,同时实现强、弱电的隔离。光电耦合器M0C3021通过一个非门与89C2051的P3.7口连接,当此脚输出高电平时,将会封锁住MOC3021,使双向可控硅BT131不导通,这样就会使照明灯关闭;当P3.7脚输出低电平时,使光电耦合器MOC3021打开驱动双向可控硅,从而将双向可控硅触发导通,这样就开启了所要控制的照明灯。对于照明灯的亮度调节,这里采用PWM(PulseWidthModulation)方式,即脉冲宽度调制的简称,PWM是一种周期一定而高低电平的占空比可以调制的方波信号,当输出脉冲周期一定时,输出脉冲的占空比越大相对应的输出有效电压越大。在一个周期内的脉冲宽度(导通时间)为T1,周期为T,波形如图3.3所示。图3.3脉冲波形图则输出电压的平均值为:U=VCC×T1/T=αVCC其中α=T1/T(正脉冲的持续时间与脉冲周期的比值)称为占空比,α的变化范围为0≤α≤1,VCC为电源电压。当电源电压VCC不变的情况下,输出电压的平均值U取决与占空比α的大小,改变α的大小就可以改变输出电压的平均值,这就是PWM的工作原理。灯泡的亮度与加在灯泡两端的电压成比例,而灯泡两端的电压与可控硅的导通角成比例,这样通过调节PWM信号的占空比来控制可控硅的导通角。因此占空比越大,灯泡就越亮,当占空比α=1时,灯泡的亮度最高。由于89C2051单片机没有PWM信号输出功能,所以在这里采用单片机定时器配合软件的方法来实现PWM信号的输出。使用PWM方法进行可控硅控制时,调制频率不能低于市电频率,因为当频率低于50Hz时,超过了人眼视觉暂留效应,用于调光将产生闪烁的现象。当调制频率大于市电频率,可控硅将处于连续导通状态而不能达到调压的目的,因此必须使用过零检测作为触发可控硅的基点。在本系统中所使用的过零检测电路如图3.2所示,先由一个变压器将市电电压转换成10V左右的电压,经过整流、稳压后可作为系统工作电源,同时将变压器次级的同名端引出一根线连接到比较器LM311的正输入端,用以检测交流电的过零点,然后将过零信号送给单片机的P1.3口上。当检测到交流电的过零点时,就去触发双向可控硅,同时通过PWM信号的输出控制双向可控硅的导通时间,最终达到控制灯泡亮度的目的。3.3RS485通信电路的设计本系统的有线通信方式采用RS485总线进行通信,RS485标准支持半双工通信,只需三根线就可以进行数据的发送和接收,同时具有抑制共模干扰的能力,接收灵敏度可达±200mV,大大提高了通信距离,在100Kbps速率下通信距离可达1200m,如果通信距离缩短,最大速率可达10Mbps。在这里使用的是主从式通信方式,主机由主控制器充当,从机为分控制器。主机处于主导和支配地位,从机以中断方式接收和发送数据,主机发送的信息可以传送到所有的从机或指定的从机,从机发送的信息只能为主机接收,从机之间不能直接通信。主机与从机的通信电路图分别如图3.4与图3.5所示。图3.4主机通信电路图图3.5从机通信电路图主机与从机选用的RS485通信收发器芯片为MAX485,它是MAXIM公司生产的用于RS485通信的低功率收发器件,采用单一电源+5V工作,额定电流为300μA,采用半双工通信方式。它完成将TTL电平转换为RS485电平的功能。MAX485芯片内部含有一个驱动器和接收器。RO和DI端分别为接收器的输出和驱动器的输入端,与单片机连接时只需分别与单片机的RXD和TXD相连即可;RE和DE端分别为接收和发送的使能端,当RE端为逻辑0时,器件处于接收状态;当DE端为逻辑1时,器件处于发送状态,因为MAX485工作在半双工状态,所以只需用单片机的一个管脚控制这两个引脚即可,主机与从机分别使用P2.6与P1.0脚进行控制;A端和B端分别为接收和发送的差分信号端,当A引脚的电平高于B时,代表发送的数据为1;当A的电平低于B端时,代表发送的数据为0。在进行通信时只需要一个信号控制MAX485的接收和发送即可。同时将A和B端之间加匹配电阻,这里选用120Ω的电阻。为了提高系统的抗干扰能力,采用光电耦合器TLP521对通信系统进行光电隔离。从机使用单片机的P1.0控制通信收发器MAX485的工作状态,平时置P1.0为低电平,使从机串行口处于侦听状态。当有串行中断产生时判别是否是本机号,若为本机地址则置P1.0为高电平,发送应答信息,然后再置P1.0为低电平接收控制指令,继续保持P1.0为低电平,使串行收发器处于接收状态;若不是本机地址,使P1.0为低电平,使串行收发器处于接收侦听状态。3.4无线数传电路的设计无线数据传输需要通过无线数传模块来实现。本系统选用的是上海桑锐电子科技有限公司生产的SRWF-1型微功率无线数传模块。该模块的通信信道是半双工的,最适合点对多点的通信方式。单片机与无线数传模块之间可以进行信息的传送与回馈,即所谓的双向通信。无线数传电路的连接主控制器与分控制器各使用一个无线数传模块,形成发送与接收的无线通信通道。模块的数据输入和输出端与单片机的串行口连接,即模块的串行数据发射端TXD与单片机的串行数据输入端RXD连接;模块的串行数据接收端RXD与单片机的串行数据输出端TXD连接。单片机与无线数传模块SRWF-1的电路连接如图3.6所示。图3.6单片机与无线数传模块的连接SRWF-1模块的特性(1)微发射功率:最大10dbm(10mW)的发射功率。(2)
ISM频段工作频率,无需申请频点。
载频频率429-438MHz,也可提供315/868/915MHz等载频
。(3)高抗干扰能力和低误码率。基于FSK的调制方式,采用高效无线通信协议,在信道误码率为10-2时,可得到实际误码率10-5~10-6。(4)完善的通讯协议。(5)传输距离远。在视距情况下,天线高度>3米,可靠传输距离>300m。(6)透明的数据传输。
提供透明的数据接口,能适应任何标准或非标准的用户协议。自动过滤掉空中产生的噪音信号及假数据(所发即所收)。(7)多信道,多速率。
SRWF-1型模块标准配置提供8个信道,根据用户需要,可扩展到16/32信道,满足用户多种通信组合方式的需求。SRWF-1型模块可提供1200bps、2400bps、4800bps、9600bps、19200bps等多种通信波特率,并且无线传输速率与接口波特率成正比,以满足客户设备对多种波特率的需要。
(8)双串口,3种接口方式。
SRWF-1型模块提供2个串口3种接口方式,COM1为TTL电平UART接口。COM2由用户自定义为标准的RS-232/RS-485接口(用户只需要拔/插短路器再上电即可改变接口类型)。(9)高速无线通讯和大的数据缓冲区。
可1次传输无限长度的数据,用户编程更加灵活。
(10)智能数据控制,用户无需编制多余的程序
。即使是半双工通信,用户也无需编制多余的程序,只要从接口收/发数据即可,其它如空中收/发转换,网络连接,控制等操作,SRWF-1型模块能够自动完成。(11)低功耗及休眠功能。
接收电流<20mA,发射电流<40mA,休眠时电流仅为<20uA。(12)高可靠性,体积小、重量轻。
采用高性能单片处理器ATMega8L,外围电路少,可靠性高,故障率低。
(13)两种接口收发等待时间。
可设置的接口等待时间使模块既能用于高速用户设备(如DSP系统)也可适用低速系统(如51系统)。
(14)看门狗实时监控。ATMega8L的看门狗监控内部功能,改变了传统产品的组织结构,提高了产品的可靠性。
3.5本章小结本章详细地阐述了系统硬件部分的设计过程,从系统主控制器的硬件电路设计到分控制器的硬件电路设计,然后是RS485通信电路设计与无线数传模块的电路连接。系统的主控制器和分控制器分别是以AT89C51与AT89C2051单片机为基础,按照所要求的功能配上相应的外围电路。主控制器的外围电路主要有键盘接口、LED数码显示接口、看门狗接口、RS485通信接口、无线数传接口以及晶振等。分控制器的外围电路主要有时钟芯片接口、零点检测电路、可控硅控制电路、RS485通信电路、无线数传电路以及看门狗与晶振等。主控制器通过串口使用RS485通信方式或者无线数传方式向分控制器发出信号实现对照明灯的启停、亮度调节、定时控制等功能。第四章基于单片机的照明控制系统的软件设计软件是计算机系统的灵魂,没有软件计算机不能充分发挥其功能,这是软件在计算机中的地位,而在计算机控制系统中,软件也是非常重要的。在照明控制系统中,硬件设备的功能是由软件来定义的,如系统要控制分布的照明灯具,通过有线与无线串行通信程序来完成控制功能,通过软件定义键盘功能,通过编程完成LED数码显示等等,由此可见,软件是控制系统中的一个重要组成部分。该照明控制系统的软件程序包括:照明启停控制程序、照明亮度控制程序、照明定时控制程序、人机交互程序以及RS485串行通信与无线数传通信程序等。本着软件设计的基本方法,照明控制程序的软件设计方法是利用传统的结构化分析与设计方法来完成的。结构化程序设计方法虽然是早期的程序设计方法,但该方法还一直被广泛地使用。结构化系统分析与设计贯穿整个软件设计过程,遵循“自顶向下,逐步求精”的基本原则。本照明控制系统软件程序总体结构如图4.1所示。图4.1照明控制系统软件程序总体结构图人机交互程序设计系统的人机交互程序设计,主要是解决按键的扫描与信息的显示,让操作者能够灵活地控制系统工作。键盘用来输入指令,发光数码管用来显示单片机的状态,这是一个比较简单的人机交互形式。键盘扫描程序设计本系统的键盘采用的是4×4矩阵式键盘,矩阵式键盘由行线和列线组成,按键位于行、列线的交叉点上。一个4×4的行、列结构可以构成一个含有16个按键的键盘,显然,在按键数量较多时,矩阵式键盘较之独立式按键键盘要节省很多I/O口。矩阵式键盘中,行、列线分别连接到按键开关的两端,在进行键盘扫描时,首先把矩阵键盘列线的第一根线置高,然后分别再检测矩阵键盘行线是否有高电平的信号,如果有信号,那么就证明这根行线与第一根列线相交处的按键被按下了,单片机就读入这个键值。如果所有的四根行线都没有信号,那么就把第一根列线置低,把第二根列线置高,再一次检测行线有没有信号,然后依次类推。由于键盘扫描的速度很快,而人按键总会持续一定的时间,因此只要单片机处在等待输入的状态,这个键盘扫描程序基本上不会错过任何一个按键信号。由于一般人按键会有抖动,抖动信号造成键盘扫描时会出现一些错误的信号,要不就是扫描不进数据,要不就是重复输入很多次数据,因此需要有一个消除抖动的程序。让单片机不响应一些相关的抖动信号,而只响应一次确实存在的按键信号。消抖动程序是这样实现的,当检测到一个脉冲信号时,并不立即认为是一次按键,而是延时一段时间以后再进行检测,如果三次检测都有信号,那么就认为有一次按键动作发生了。延时的选择非常重要,太快了,起不到消除抖动的效果,太慢了又让键盘太不灵活,错过较多的按键信号。键盘扫描程序的流程图如图4.2所示。系统的按键定义除了基本的数字键(0~9)外,将其它的键依次定义为开、关、增值、减值、定时、确认六个命令键,其控制的基本功能是:(1)通过数字键、确认键输入分控制器的地址以及定时功能的时间设置。(2)利用开、关键控制照明灯具的启停。(3)利用增值、减值键控制照明灯具的亮度。(4)通过定时键来对照明灯具进行定时控制的设置。系统通过软件方法实现该功能,即定义开、关、增值、减值、定时、确认等命令键,利用键盘扫描程序获取对应命令键的键值,然后执行相应的子程序,实现所要求的控制功能。图4.2键盘扫描程序流程图LED数码显示程序设计本系统采用了四位共阳极七段数码管,共阳极数码管的8个发光二极管的阳极(二极管正端)连接在一起,通常,公共阳极接高电平(一般接电源),其它管脚接段驱动电路输出端。当某段驱动电路的输出端为低电平时,则该端所连接的字段导通并点亮,根据发光字段的不同组合可显示出各种数字或字符。此时,要求段驱动电路能吸收额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻,这里的限流电阻选为100Ω。这里选用的7447芯片是从BCD码到SEG7段码的转换器,而74LS138是一个地址译码器,通过74LS138选通某个数码管,然后根据7447传送过来的SEG7段码的数据进行显示,而在非选通的时候,数码管能够保持原有的显示数据。LED数码显示程序的流程图如图4.3所示。图4.3LED数码显示程序流程图照明启停控制程序设计照明的启停控制主要是由主控制器发出指令,通过RS485通信方式或无线数传方式控制全部或部分分控制器所控制照明灯具的启停,因此照明启停控制程序由两部分组成,即全部启停控制与单独启停控制两部分。全部启停控制程序设计全部照明启停控制系统是利用主控制器上的开、关按键来控制全部照明灯的启停,控制命令是通过串口通信方式传达到分控制器,分控制器再依据命令向P3.7口输出高低电平,来达到控制灯泡亮和灭的目的。在这个多机系统中采用的是主从式通信方式,主机即主控制器处于主导和支配地位,从机即分控制器一般以中断方式来接收和发送数据。在主从式多机系统中主机发送的信息可以传送到所有的从机或指定的从机,在这里是要发送给所有的从机,来控制照明灯的启停。在本系统中采用广播式命令,不需要从机返回信息,从机之间也不能直接通信。主机由AT89C51单片机充当,从机为AT89C2051单片机。主机与从机的数据通信波特率定为9600波特,每个从机都有唯一的地址号,用来区分各从机。单片机的数据通信由串口完成,定时器T1为波特发生器,数据传送格式为1位起始位,8位数据位,1位停止位,1位可编程位(TB8)。工作方式:定时器T1设置为方式2,串口设置为工作方式3。本系统的通信原理为:从机在建立与主机通信之前所有分机的SM2都置1,即随时处于对通信线路监听的状态,只能收到主机发送来的机号信息。主机向从机发送广播地址信息时,广播地址为00H,所有分机都接收到广播地址信息,然后进入正常通信状态,清除SM2位,开始接收主机发送来的命令。从机收到的命令是开灯时,向P3.7口输出高电平,打开MOC3021驱动双向可控硅,从而就点亮了灯泡;同理,如果收到的命令是关灯时,向P3.7口输出低电平,封闭MOC3021使双向可控硅截止,也就达到了关闭灯泡的目的。该系统的主机和从机的控制程序流程图如图4.4和图4.5所示。图4.4全部启停控制主机程序流程图图4.5全部启停控制从机程序流程图单独启停控制程序设计单独照明启停控制系统是通过主机发送给指定的从机命令信息,来实现照明灯的启停控制。主机首先发送从机地址,被叫到的从机向主机发送本机地址,然后主机向从机传送数据,从机根据接收的数据信息执行相应的命令。单片机的工作方式同全部照明启停控制系统。其具体的工作过程是:所有的从机在通信之前都把SM2位置1,随时处于侦听状态。当主机发送从机的地址信息时,每帧数据的第9位都为1,所有从机都接收到地址信息,然后判断主机是否呼叫本机。如果呼叫本机则进入正式通信状态,清除SM2,并把本机地址号发送给主机作为应答,然后才开始接收主机发送来的信息。而其它从机由于地址号不符,他们的SM2位仍然为1,仍处于侦听状态,无法接收主机发送来的数据信息。主机收到从机发送来的回应信息后,比较主机已发送的地址号与刚接收的地址号是否相符,如果不符,则发出错误信息;如果相符,则正式发送数据信息,这时发送的每帧的第9位都为0。只有SM2=0的从机才能接收到主机发送的信息。从机根据命令执行相应的动作,如果为打开命令,则输出高电平驱动可控硅动作,开启照明灯;如果为关闭命令,则输出低电平使可控硅截止,停掉照明灯。该系统的主机和从机控制程序流程图分别如图4.6与4.7所示。图4.6单独启停控制主机程序流程图图4.7单独启停控制从机程序流程图照明亮度控制程序设计照明亮度控制系统是利用主控制器键盘上的增值与减值键,通过串口通信方式来控制分控制器所控制的照明灯的亮度。在这里对于灯泡亮度的调节是通过PWM方式来进行的,分控制器选用的是AT89C2051单片机,这种单片机本身没有PWM输出,只能通过软件方法实现。在一定频率的方波中,调整高电平和低电平的占空比,即可实现。假设把一个周期分为10个时间等份,如果方波中的高低电平占空比是1:9,这时就是一个比较暗的亮度,如果占空比是5:5,就是一个中间亮度,如果高低电平占空比是9:1,这时就是一个比较亮的亮度,高低电平占空比为0:10时,灯泡是灭的,高低电平占空比为10:0时,灯泡最亮。在进行实验中,将定时器1的溢出定为1/20000秒,每10次脉冲输出一个2KHz频率。这每10次脉冲再用来控制高低电平的10个比值。这样,在每个1/2000秒的方波周期中,都可以改变方波的输出占空比,从而控制灯泡的10个亮度级别。在主控制器键盘上每次按增值与减值键改变占空比的值就可以控制灯泡的亮度。全部亮度控制程序设计全部照明亮度控制系统就是主机向从机发送广播地址,所有从机都接收主机发送来的数据信息,然后根据命令是调亮还是调暗来进行相应的灯泡亮度控制。该系统的主机控制程序流程图同图4.4所示,从机控制程序流程图如图4.8所示。图4.8全部亮度控制从机程序流程图单独亮度控制程序设计单独照明亮度控制系统通信原理基本上与单独照明启停控制系统相同,也是开始时所有从机处于监听状态,等待主机的呼叫,当主机发出某一从机的地址时,所有从机将接收到的地址与本机地址相比较,如果相符,说明主机在呼叫自己,然后发回应答信号,表示准备好开始接收后面的命令,否则不予理睬,继续监听呼叫地址。主机收到从机的应答后,则开始一次通信,通信完毕,从机继续处于监听状态,等待呼叫。从机在收到调亮或调暗的命令后,利用零点检测电路检测电源过零点,一旦单片机的P1.3口检测到过零点脉冲,就会向P1.3口输出PWM信号以调高或调低灯泡的亮度。该系统的主机控制程序流程图同图4.6所示,从机控制程序流程图如图4.9所示。图4.9单独亮度控制从机程序流程图照明定时控制程序设计照明定时控制系统是利用从机即单片机AT89C2051和时钟芯片DS1302进行数据通信,读取和写入实时数据,主机采用串口通信方式对从机进行定时时间的设置,从机然后根据设定的时间进行照明灯的启停控制。DS1302的控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入到DS1302中;位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5~位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。DA1302的控制字如表4-1所示。在DS1302芯片中,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供了终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中置RST为低电平,则会终止此次数据传送,并且I/O引脚变为高阻态。在控制指令字输入后的下一个SCLK时钟的上升沿时数据被写入DS1302,数据输入从低位即位0开始。同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位至高位7。全部定时控制程序设计在全部定时控制系统中是通过主控制器向所有的分控制器发送广播地址,分控制器在收到广播地址后,使自己处于接收数据状态,然后主控制器向网络中发送时间数据信息,分控制器在收到时间数据后写入DS1302芯片,等到设定时间到达后,单片机发出命令关闭照明灯。该系统的主机控制流程图同图4.4所示,从机的控制流程图如图4.10所示。图4.10全部定时控制从机程序流程图单独定时控制程序设计主控制器使用键盘输入被呼叫分控制器的地址,并通过网络向所有分控制器传送,在分控制器将该地址与本机地址进行比较后,判断是否是呼叫自己,如果是呼叫本机,就将本机地址传送给主控制器,进一步接收传送的数据,然后分控制器就将数据写入DS1302芯片,等到设定的时间到达时就执行关闭照明灯的命令。单独定时控制的主机程序流程图同图4.6所示,从机程序流程图如图4.11所示。图4.11单独定时控制从机控制程序流程图RS485通信程序设计由于RS485总线是异步半双工的通信总线,在某一个时刻总线只可能呈现一种状态,所以这种方式一般适用于主机对从机的查询方式通信。在通信中,主机与各个从机进行通信,必须能对各个从机进行识别,这一识别功能是利用串口控制寄存器SCON的SM2位实现的。当串口以方式3工作时,发送和接收的每一帧信息都是11位,其中第9位数据位是可编程的,通过对SCON寄存器的TB8位置1或置0,以区别发送的是地址帧还是数据帧(规定地址帧的第9位为1,数据帧的第9位为0)。若从机的控制位SM2被设为1,则当接收的是地址帧时,数据装入SBUF,并置RI=1,向CPU发出中断申请,若接收的是数据帧,则不产生中断,信息被抛弃。若SM2被设为0,则无论是地址帧还是数据帧都将产生RI=1中断标志,数据装入SBUF。利用这一功能,可以按照如下步骤进行数据通信:(1)将所有SM2位置1,使其处于只接收地址帧的状态。(2)主机发送一帧地址信息,其中前8位数据位表示通信的从机地址,第9位为1,表示当前帧为地址帧。(3)从机接收到地址帧后,如果是广播地址帧,则所有从机都将其SM2位置0,准备接收主机发送的数据或命令;如果不是广播地址帧,则将本机地址与帧中地址进行比较。如果地址相同,则将其SM2位置0,并发送本机地址帧,然后准备接收数据。如果地址不同,则丢弃当前数据,SM2位不变。(4)主机发送数据帧,相应的从机接收,其他从机则不受影响。(5)当主机需要与其他从机通信时,可以再次发出地址帧寻呼从机,重复这一过程。主机在发送数据时,按照表4-2的数据格式进行传输。在程序中,第9位发送数据位SCON中的TB8位,第9位接收数据位为SCON的RB8位,因此,发送数据前,可以通过对TB8位置1或0来确定要发送的是地址帧还是数据帧。而接收数据时,对地址帧的判断则是通过读取RB8位来获得的,RB8=1,当前帧为地址帧,RB8=0,当前帧为数据帧。单片机的串口工作在方式3下,其波特率由定时器1(T1)的溢出率决定,计算公式为:定时器T1的溢出率的计算公式为:则波特率的公式变为:系统所采用的晶振频率为11.0592MHz,T1工作在模式3下,波特率=9600b/s。主机部分通信程序设计系统中的主机通信程序分为4个部分,分别为预定义及全局变量部分、程序初始化部分、数据通信流程和发送数据部分。主机的数据通信的基本流程如下:(1)主机首先向所有从机发送地址帧对要通信的从机进行呼叫,发送地址帧时需将TB8位置1。(2)发送地址帧后,如果发送的是广播地址帧,则不需要从机应答,待延迟一段时间后,调用发送函数发送数据;如果发送的是非广播地址帧,主机则要接收应答,若应答信号中的地址与前面发送的地址并不相同,主机将重新发送地址帧呼叫,否则调用发送函数发送数据。(3)发送完数据后,主机等待从机的校验信号,如果接收到0X0F数据,表示发送成功,通信结束,否则主机将重新发送数据,直至发送成功。该部分程序对应的流程图如图4.12所示。图4.12主机数据通信流程图从机部分通信程序设计从机通信程序也被分为预定义及全局变量部分、程序初始化部分、数据通信流程和接收数据部分4个部分。从机部分的数据通信过程受主机控制,其基本的流程如下:(1)初始化完成后,从机设置SM2位为1,串口只接收第9位数据位为1的地址帧,数据帧将被直接抛弃。(2)如果串口有数据接收(收到地址帧),则从机会将该帧中的地址信息先与广播地址进行比较,如果是广播地址,则做好接收数据的准备,如果是其它地址,则与本机地址比较,如果相同,则发送应答信息,应答信息内容应为本机地址,否则丢弃当前数据,从机继续处于等待呼叫状态。(3)程序调用接收函数接收主机发送的数据部分并作出应答,接收到的数据保存至Buf指向的缓冲区中。如果接收函数返回0xff,表示数据校验失败,程序等待主机重新发送数据。如果函数返回值为0xfe,表示从机在数据接收过程中发现主机发送地址帧,程序将放弃当前接收过程,将SM2位重新置1,开始下一通信过程。如果函数返回0,表示数据被成功接收,向主机发送成功信号,随后,程序将SM2位置1,重新开始下一个数据通信流程。该部分程序对应的流程图如图4.13所示。图4.13从机数据通信流程图6无线数传通信程序设计这里所设计的无线数据传输系统是采用主从式通信方式,主控制器设为主站,所有分控制器设为从站,所有从站都编一个唯一的地址。通信的协调完全由主站控制,主站先发送地址帧,所有从站都接收,如果是接收的是广播地址码,则所有从站都做好接收主机发送数据或命令的准备,然后主机发送数据或命令;如果接收的是其它地址码,则从站将接收到的地址帧与本地地址码相比较,若不同则将数据全部丢掉,不做任何响应;若地址码相同,则证明是呼叫本站,从站将自己的地址码发送回去,主站收到自己刚发出去的地址码后,接着发送数据或命令。这些工作都需要通信协议来完成,可保证在任何一个瞬间,通信网中只有一个模块处于发送状态,避免相互干扰。SRWF-1模块在使用之前要进行无线信道、接口类型、接口速率、接口参数等的设定,在设置完成后便可以进行数据传输,当模块收到单片机发来的第一个数据后自动进行无线网络连接、数据同步等工作,因此第一个数据将在5个字节时间延迟后从接收方串口输出。如要传送1个数据帧,此时间延迟将逐渐减少。当最后一个数据被发送后,模块将处于等待状态直到模块所设置的接收等待时间延迟之后,模块将自动通知所有接收设备断开无线网络连接、转入空闲状态。当发送方最后一个数据被发送后需延迟6-8个字节才能接收空中其他模块的数据。其他模块在此时间内也不能向空中发射数据,即使有用户数据输入也是被缓冲在模块中,而没有发送到无线链路中,以避免引起数据通讯混乱。无线数传的通信协议与流程基本上与RS485通信程序相同,因此主机和从机的数据通信程序流程图分别如图4.12与4.13所示。4.7本章小结本章主要阐述了照明控制系统的软件设计,该系统的软件程序主要由照明启停控制程序、照明亮度控制程序、照明定时控制程序、人机交互程序、串行通信程序等组成。而照明启停控制、亮度控制以及定时控制程序又分为全部控制和单独控制两部分,人机交互程序由键盘扫描程序与LED显示程序组成,而串行通信程序由RS485通信程序和无线数传程序组成。在这里分别对每个子程序的工作流程、工作原理以及过程都做了详细的论述。第五章实验及总结本文研究了基于AT89C51与AT89C2051单片机的智能照明控制系统的设计原理与实现方法,包括硬件设计与软件设计。首先根据设计要求用ProtelDXP软件绘制出原理图,然后依据原理图选择元器件,在实验板上布置元器件并连接线路,对硬件电路进行测试,检查串行口是否选错,测量电源是否正常,复位电平是否正确,单片机是否起振等等。接着就要按照功能要求编制程序,这里采用KeilC编程工具,需先根据要求划分模块,优化结构;再根据各模块特点确定何为主程序,何为子程序,何为中断服务程序,相互间如何调用;再根据各模块性质和功能将各模块细化,设计出程序流程图;最后才根据各模块流程图编制具体程序。调试时应先调主程序,实现最基本最主要的功能,在此基础上再将各模块功能往主程序上堆砌,直至各模块联调、统调,实现全部功能。在实验过程中,首先通过主控制器上的键盘输入地址号,地址号是由数字组成的,在输入完毕后,然后按下确认键,信号经过网络传输后,分控制器将收到的地址进行比较确认后,然后执行下一步的程序。经过实验的验证,在输入广播地址后,所有的分控制器都正确地执行了后续的命令,实现了灯泡的启停、亮度调节、定时关闭功能;在输入某个分机地址后,该分机也正常地执行了相应的命令,同样达到了所要求的功能。由于系统采用的是RS485通信与无线数传通信方式,如果使用在现场环境中必然存在干扰的问题,所以抗干扰与可靠性设计就显得尤为重要。虽然系统已经考虑了可靠性设计问题,如看门狗技术、复位电路、光电耦合等在电路设计中的应用,但这也只是针对部分问题做了解决,一些详细的设计还有待于解决。该系统还只是试验室的调试系统,离真正的现场应用还有一定的距离。软件部分的编制也是力求简单实用,即本着实用、有效、方便的原则进行编制。但一个较好的和较完善的应用软件不是在短时间内就可以完成的,它需要不断的完善和发展,需要我们做大量的工作和时间的检验。现在的系统还没有达到真正的智能化,还需要增加很多新的功能和先进的科学技术,才能达到真正意义上的智能化控制。致谢本文是在教授的精心指导下完成的,在这几个月的工作和学习期间,我深深地感到从老师那里学到的不仅仅是知识和技术,更重要的是他严谨的治学态度,实事求是的工作作风和高风亮节的做人品质。在此,我向老师致以最衷心的感谢!参考文献[1]王幸之、钟爱琴等.AT89系列单片机原理与接口技术.北京:北京航空航天大学出版社.2005[2]孙涵芳、徐爱卿.单片机原理及应用.北京:北京航空航天大学出版社.1996[3]阳宪惠.现场总线技术及其应用.北京:清华大学出版社.1999[4]求是科技.8051系列单片机C程序设计完全手册.北京:人民邮电出版社.2006[5]房小翠、王金凤.单片机使用系统设计技术.北京:国防工业出版社.1999[6]李华.MCS-51系列单片机实用接口技术.北京:北京航空航天大学出版社.2003[7]吴金戎、沈庆阳等.8051单片机实践与应用.北京:清华大学出版社.2002[8]陈新忠.基于RS485总线的单片机多机通信软件设计.现代电子技术.2002.(3)P8~10[9]樊宇、程全.基于RS485总线实现的远距离多机主从式通信技术.工业控制计算机.2006.19(7)P71~73[10]SRWF-1型微功率无线数传模块使用说明书.上海桑锐电子科技有限公司.2004[11]孙雪梅、范久臣.实时时钟芯片在单片机系统中的应用.沈阳教育学院学报.2005.7(2)P132~134附录Ⅰ.串行通信程序(1)主机部分#include<AT89X51.H>#include<STRING.H>#define__MAX_LEN_64//数据最大长度#define_MHZ_11//设置单片机使用的晶振频率(11.0592MHz)/*以下为程序协议中使用的握手信号*/#define__SUCC_0x0f//数据传送成功#define__ERR_0xf0//数据传送错误voidinit_serial();//串口初始化voidsend_data(unsignedchar*buf);//发送数据voiddelay10ms(unsignedintcount);//延时子程序(10ms)voidmain(){ charbuf[__MAX_LEN_]; unsignedchari=0; unsignedchartmp; unsignedcharaddr;//该字节用于保存要通信的从机地址 /*为缓冲区赋初值*/ P0=0xff; while(P1!=0)//每隔100ms从P0口读取,若读取到0则表明数据采集结束 { *(buf+i)=P0; delay10ms(10);//延时100ms P0=0xff; i++; } *(buf+i)=0;//缓冲区最后一个字节为0表示数据结束 /*读要访问的分机地址*/ P0=0xff; addr=P0; /*串口初始化*/ init_serial();//初始化串口 EA=0;//关闭所有中断 /*发送地址帧并接收应答信息,如果接收的信号与发送的地址信息不同,则重新发送地址帧*/ tmp=addr-1; /*发送数据并接收校验信息,如果接收的信号为0FH,表示从机接收成功,否则将重新发送该组数据*/ tmp=__ERR_; while(tmp!=__SUCC_) { send_data(buf);//发送数据 RI=0; while(!RI); tmp=SBUF; RI=0; } while(1);//程序结束,进入死循环}/*初始化串口*/voidinit_serial(){ TMOD=0x20; //定时器T1使用工作方式2 TH1=250;//设置初值 TL1=250; TR1=1;//开始计时 PCON=0x80;//SMOD=1 SCON=0xd0; //工作方式3,9位数据位,波特率9600bps,允许接收}/*发送数据*/voidsend_data(unsignedchar*buf){ unsignedcharlen;//保存数据长度 unsignedcharecc;//保存校验字节 len=strlen(buf);//计算要发送数据的长度 ecc=len;//开始进行校验字节计算 /*发送数据
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论