《基于单片机的智能路灯控制系统设计学士学位论文.doc》由会员分享,可在线阅读,更多相关《基于单片机的智能路灯控制系统设计学士学位论文.doc(29页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、河南科技学院 2014 届本科毕业论文(设计)设计题目:基于单片机的智能路灯控制系统设计学生姓名: 所在院系: 所学专业: 导师姓名: 完成时间: 2014-5-10 基于单片机的智能路灯控制系统设计摘 要随着中国现代化节奏的不断加快,电子产品的大量应用也导致电力消费飞速地增长。于此相对的另一个事实是电力资源已成为一种紧缺型资源。如何节能降耗己成为近年来世界性研究的一个热点课题。目前路灯已经成为一个城市的照明和夜景美化不可分割更无可替代的一部分,而在路灯的高效节能方面,自动路灯控制系统的优劣举足轻重。由于单片机具有集成度高,处理能力强,可靠性高,系统结构简单,价格低廉的优点,因此在路灯照明工程
2、中被广泛应用。本设计研究的基于单片机的智能路灯控制系统正是针对我国在城市照明上所存在的巨大的能源消耗而开发出的新型节能控制系统。本文给出了智能路灯控制系统的架构和设计方案,详细分析了其工作原理和以AT89S51为主控单元的各模块软硬件设计。关键词:智能路灯,单片机,分时调压,光线调压DESIGN OF STREET LAMPCONTROLSYSTEM BASED ON SINGLE CHIP MICROCOMPUTERABSTRACTWith the accelerating pace of Chinas modernization, a large number of application
3、s for electronic products also led to rapid growth in electricity consumption. Another fact is that this relative power resources has become a scarce resource type. How to saving energy has become a hot topic in recent years, worldwide research.Currently street lighting has become part of a city and
4、 the beautification lighting and night indivisible more irreplaceable. In terms of energy-efficient lights, automatic street light control system merits of pivotal.Due to the microcontroller with high integration, processing capacity, high reliability, simple structure, low-cost advantages, so the s
5、treet lighting project has been widely used. The study design microcontroller-based intelligent street light control system in our country is on the existence of a huge city lighting energy consumption and the development of new energy-saving control system.This paper presents the architecture and d
6、esign of intelligent street light control system, a detailed analysis of its working principle and to AT89S51 as the main control unit hardware and software design of each module.Keywords: intelligent street lighting, SCM, timeshare regulator,light regulator目 录1 绪论11.1 设计背景11.2 设计的意义11.3 国内外现状分析11.4
7、 论文的主要内容22 PROTEUS仿真软件与KEIL22.1 Proteus仿真软件22.2 Keil23 硬件设计33.1 按键模块33.2 计时模块33.2.1 计时模块的软件设计33.2.2 计时模块的硬件设计53.3 光线强弱检测模块53.3.1 ADC0832综述53.3.2 光敏电阻的介绍73.3.3 光线强弱检测模块的硬件电路设计83.4 路灯控制模块93.4.1 继电器的概述93.4.2 PNP型三极管的概述93.4.3 路灯控制模块的硬件电路设计104软件设计114.1 程序模块分类及功能114.2 程序流程图115 软件测试135.1 测试目的135.2 测试方法135.
8、2.1 功能测试:135.2.2 测试结果136 结论14致 谢15参考文献17附录1:电路原理图18附录2:重要源代码模块191 绪论本文研究的智能路灯节能控制系统是通过配套的功率变换组件,可在路灯的启停和运行中,有效的调节路灯的端电压,控制路灯的照明亮度,从而改变了路灯在不同时段的耗电量,改善了功率因素,到了节约电能的目的。1.1 设计背景“十二五”时期,我国仍将处于工业化和城镇化快速发展阶段,面临的资源和环境形势依然严峻。能源问题已经成为制约经济和社会发展的重要因素,应当从战略和全局的高度,充分认识做好能源工作的重要性和紧迫性,高度重视能源安全,实现能源的可持续发展。在北京东西部能源技术
9、研究院的报道中有这么一篇中提到节能是缓解能源约束,减轻环境压力,保障经济安全,实现全面建设小康社会目标和可持续发展的必然选择,体现了科学发展观的本质要求,是一项长期的战略任务,必将摆在更加突出的战略位置。城市亮化作为形象工程的重要组成部分,越来越被政府所重视,大量的资金投入进行建设和改造,使得我们的城市夜晚变得灯火辉煌,绚丽多彩,但问题也随之而来,能耗的逐年攀升,由此产生的某些问题亦逐渐显露出来。这些问题的产生无疑给当地的路灯管理部门的各方面工作带来很大的压力,急切加以解决。尤其是在当前环境条件每况愈下的形势下,低碳、节能、环保越来越收到人们的重视。旧式的控制系统存在功耗大,公共资源得不到充分
10、应用,效率低等消极影响。伴随着路灯数量的急剧增加,照明系统中所存在的问题也日益突出,耗电量大就是其中最为突出的一个。 所以,对城市的路灯的设计已经成为了当务之急。1.2 设计的意义路灯是我国经济发展和国家建设中必需的用电设备,它在我国的整体用电量中所占比例巨大,如果通过节能装置对其进行有效控制,就能够降低电力损耗,达到节约能源,降低生产安装成本,有助于我国经济的快速发展。1.3 国内外现状分析目前,路灯照明广泛采用高压钠灯,其设计寿命在12000小时以上,在正常情况下至少可用3年,但是由于超压使用,现在路灯的使用寿命仅仅只有1年左右,有的甚至只有几个月,造成维护和材料的极大浪费。较高的电压不仅
11、不能让负载设备更好的工作,而且还会造成发热及过早损坏,还会造成不必要的电费开支。 而且,我国绝大多数地区的路灯关开灯都是采用人工控制或者定时控制,这样也有许多不利之处:若采用人工控制,则路灯开关存在着一定的不确定性,同时也占用了一定的人力资源。定时控制则存在着夏冬季白黑昼时间不同的情况,使得天还没黑路灯就开,天还没亮路灯就灭的情况,大大影响了人们的日常出生活。本设计通过使用AT89C51单片机对系统进行智能控制,使系统达到自动启停及智能调压。近年来,随着科技的不断发展,各种路灯控制器也被不断的研究出来。1.4 论文的主要内容本设计可以通过对外界光线和电压信号的采集来控制路灯的自动启停以及智能调
12、压从而减少城市路灯照明耗电量,又对输入电压进行稳压调节来提高用电效率。主要内容如下: (1) 利用单片机,对整个路灯系统进行研究与设计。 (2) 针对光线和电压信号的采集,采用数据采集技术。 (3) 通过按键可对相关的参数值进行设置,从而实现对不同时间进行不同的开灯模式。 (4) 当电压符合额定电压时,系统自动进行稳压。 (5) 在午夜之后降低电压以调节路灯亮度,实现调压。2 Proteus仿真软件与Keil2.1 Proteus仿真软件Proteus软件是英国Lab Center Electronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。它不仅具有其它ED
13、A工具软件的仿真功能,还能仿真单片机及外围器件。它是目前比较好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师以及致力于单片机开发应用的科技工作者的青睐。Proteus从原理图布图、代码调试到单片机与外围电路协同仿真都能方便的实现,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列处理器,并持续增加其他系列
14、处理器模型。在编译方面,它也支持IAR、Keil和MATLAB等多种编译器。2.2 KeilKeil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。3 硬件设计3.1 按键模块键盘模块的硬件电路设计如图3-1所示。K1、K2、K3、K4分别同P
15、3.0、P3.1、P3.2、P3.3相连,当S2、S3、S4、S5任意一个键按下时,同它相连的端口电压则被拉低。在此设计中,若在时间调整模式下S2设置为“加1”功能键,S3设置为“减1”功能键;若在手动操作模式下S2设置为“开”功能键,S3设置为“关”功能键。S4为功能切换键,实现运行模式、时间调整模式和退出模式的切换。S5为运行模式下实现“自动”、“手动”的切换。图3-1 键盘电路3.2 计时模块3.2.1 计时模块的软件设计DS1302是DALLAS 公司推出的涓流充电时钟芯片,内含有一个实时时钟/日历和31字节静态RAM通过简单的串行接口与单片机进行通信。实时时钟/日历电路提供秒、分、时
16、、日、星期、月、年的信息,每月的天数和闰年的天数可自动调整,时钟操作可通过 AM/PM 指示决定采用24或12小时格式。DS1302与单片机之间能简单地采用同步串行的方式进行通信,仅需用到三个口线:RES复位 、I/O 数据线和SCLK串行时钟。时钟/RAM 的读/写数据以一个字节或多达31个字节的字符组方式通信。DS1302 工作时功耗很低,保持数据和时钟信息时功率小于 1mW,其外部管脚如图3-2所示。图3-2 DS1302外部管脚DS1302是由DS1202改进而来增加了以下的特性:双电源管脚用于主电源和备份电源,供应Vcc1为可编程涓流充电电源;附加七个字节存储器,它广泛应用于电话、传
17、真、便携式仪器以及电池供电的仪器仪表等产品领域;实时时钟具有能计算2100年之前的秒、分、时、日、日期、星期、月、年的能力,还有闰年调整的能力。DS1302内部结构为移位寄存器,控制逻辑,晶振,时钟和RAM。具体控制字介绍:l 控制字的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入到DS1302中; l 位6:如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;l 位5至位1(A4A0):指示操作单元的地址;l 位0(最低有效位):如为0,表示要进行写操作,为1表示进行读操作。控制字总是从最低位开始输出,在控制字指令输入后的下一个SCLK时钟的上升沿时,数据被写入DS130
18、2,数据输入从最低位(0位)开始。同样,在紧跟8位的控制字指令后的下一个SCLK脉冲的下降沿,读出DS1302的数据,读出的数据也是从最低位到最高位。具体时序图如图3-3所示。图3-3 DS1302时序图3.2.2 计时模块的硬件设计具体电路如下图3-4所示。BT1为电压值3V的电池组,来作为DS1302的备用电源。Y2为一个32.768 KHz的晶振。DS1302的5、6、7端分别同单片机的P2.1、P2.2、P2.3相连,同时在还为它们配置了阻值为10K的上拉电阻,能最大程度的保证操作与通讯的准确和稳定。图3-4 实时时钟模块电路3.3 光线强弱检测模块3.3.1 ADC0832综述ADC
19、0832 为8位分辨率A/D转换芯片,其最高分辨可达256级,可以适应一般的模拟量转换要求。其内部电源输入与参考电压的复用,使得芯片的模拟电压输入在0-5V之间。芯片转换时间仅为32S,据有双数据输出可作为数据校验,以减少数据误差,转换速度快且稳定性能强。独立的芯片使能输入,使多器件挂接和处理器控制变的更加方便。通过DI 数据输入端,可以轻易的实现通道功能的选择。ADC0832引脚分布如图3-5所示。图3-5 ADC0832引脚分布图ADC0832有以下特点:l 8位分辨率;l 逐次逼近式A/D转换器;l 双通道A/D转换;l 输入输出电平与TTL/CMOS相兼容;l 5V电源供电时输入电压在
20、05V之间;l 工作频率为250KHZ,转换时间为32S;l 一般功耗仅为15mW;l 8P、14PDIP(双列直插)、PICC 多种封装。芯片接口说明:l CS片选使能,低电平芯片使能;l CH0模拟输入通道0,或作为IN+/-使用;l CH1模拟输入通道1,或作为IN+/-使用;l GND芯片参考0电位(地);l DI数据信号输入,选择通道控制;l DO数据信号输出,转换数据输出;l CLK芯片时钟输入;l VCC/REF电源输入及参考电压输入(复用)。单片机对ADC0832的控制原理:正常情况下ADC0832与单片机的接口应为4条数据线,分别是CS、CLK、DO、DI。但由于DO端与DI
21、端在通信时并未同时有效并与单片机的接口是双向的,所以电路设计时可以将DO和DI 并联在一根数据线上使用。当ADC0832未工作时其CS输入端应为高电平,此时芯片禁用,CLK和DO/DI的电平可任意。当要进行A/D转换时,须先将CS使能端置于低电平并且保持低电平直到转换完全结束。此时芯片开始转换工作,同时由处理器向芯片时钟输入端CLK输入时钟脉冲,DO/DI端则使用DI端输入通道功能选择的数据信号。在第1个时钟脉冲的下沉之前DI端必须是高电平,表示启始信号。在第2、3个脉冲下沉之前DI端应输入2位数据用于选择通道功能,其时序图如图3-6所示。图3-6 ADC0832操作时序图3.3.2 光敏电阻
22、的介绍(1)光敏电阻介绍光敏电阻(photocell,注意:光电池是photovoltaic cell)又称光敏电阻器(photoresistor or light-dependent resistor,后者缩写为ldr)或光导管(photoconductor),常用的制作材料为硫化镉,另外还有硒、硫化铝、硫化铅和硫化铋等材料。这些制作材料具有在特定波长的光照射下,其阻值迅速减小的特性。这是由于光照产生的载流子都参与导电,在外加电场的作用下作漂移运动,电子奔向电源的正极,空穴奔向电源的负极,从而使光敏电阻器的阻值迅速下降。(2)基本特性及其土要参数1暗电阻、亮电阻暗电流、暗电阻。光敏电阻在一定
23、的外加电压下,当没有光照射的时候,流过的电流称为暗电流。外加电压与暗电流之比称为暗电阻,常用“0LX”表示。2伏安特性伏安特性曲线用来描述光敏电阻的外加电压与光电流的关系,对于光敏器件来说,其光电流随外加电压的增大而增大。其变化特征如图3-7所示。图3-7 a 光敏电阻的伏安特性 b 光敏电阻的光电特性图 c 光敏电阻的光谱特性(3)光电特性光敏电阻器在一定的外加电压下,当有光照射时,流过的电流称为光电流,外加电压与光电流之比称为亮电阻,常用“100LX”表示。3.3.3 光线强弱检测模块的硬件电路设计在此设计中我们使用光敏电阻和ADC0832模数转换器相结合的方式来实现对环境明暗程度的检测。
24、所选光敏电阻GMR1的亮电阻阻值在2K至10K之间变化,所以选择阻值为10K的电阻R8同光敏电阻串联连接形成分压电路。环境明暗程度的检测的原理如下:当照射在光敏电阻上的光线亮度发生变化时,光敏电阻的阻值也随之相应的发生变化,其变化趋势为光线变强阻值减小,反之也成立,而ADC0832的通道0得到的电压值随光线的变强而减小,ADC0832将得到的电压信号转换成数字信号,并通过特定的操作送给单片机进行处理。如图3-10 环境明暗检测模块电路次便现对环境明暗程度信号的向模拟信号转换,最终向数字信号的转换,也就使系统能对环境明暗程度信号间接的进行相应的分析并处理。具体电路如图3-10所示。关于模数转换器
25、的选择:通常使用的模数转换器是ADC0809,它是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS逐次逼近式A/D转换器。另需接外部时钟才能正常工作,8路通道只取其一也造成了资源的浪费。同单片机通讯时使用的是并行的方式,这样也对单片机的端口占用很大。另外其体积也较大,价格也较ADC0832昂贵,这样也变相的增加的印制板电路制作和元器件采购的成本。综合考虑下,ADC0832的使用最合适。3.4 路灯控制模块3.4.1 继电器的概述继电器(英文名称:relay)是一种电控制器件,是当输入量(激励量)的变化达到规定要求时,在电气输出电路中使被控量发生预定的阶跃变化的一种电器。它
26、具有控制系统(又称输入回路)和被控制系统(又称输出回路)之间的互动关系。通常应用于自动化的控制电路中,它实际上是用小电流去控制大电流运作的一种“自动开关”。故在电路中起着自动调节、安全保护、转换电路等作用。3.4.2 PNP型三极管的概述9015是一种常用的普通三极管。它是一种小电压,小电流,小信号的PNP型硅三极管。其物理结构如下图3-11所示。其中引脚1为发射极,引脚2为基极,引脚3为集电极。图3-11 9015实物图(1)特性l 集电极-发射极电压-45Vl 集电极-基电压-50Vl 射极-基极电压-5Vl 集电极电流0.1Al 耗散功率0.45Wl 结温150l 特征频率平均300MH
27、Zl 放大倍数:A60150、B100300、C200600、D4001000(2)主要用途分开关应用和射频放大两大类。在此设计中主要应用于开关应用,选用的C型号的9015。3.4.3 路灯控制模块的硬件电路设计图3-12 路灯控制模块电路如上图3-12所示,Q1为PNP性三极管9015;U2为继电器,型号为JQC-3F;H5为接线座;D2为续流二极管,型号为IN4001;D3为发光二极管。设计思路:9015的基极通过阻值为4.7K的电阻与AT89S52的P1.0相连。当该位置1,也即为5V高电平时,发射极1同基极2之间没有电压差,此时9015处于断开状态。如此集电极没有电流通过,所以下面的继
28、电器线圈和发光二极管D3不工作。当该位被拉至0,也即0V低电平时,发射极1同基极2之间有电压值大约4.3V的电压差降,通过4.7K的电阻限流后,通过P1.0口的灌电流就很小,此电流也为基极电流。基极电流通过9015的放大后,是9015工作在饱和状态,集电极有足够大的电流可以驱动继电器的线圈工作,使U2的1和3引脚构成的常开触点闭合,1和2引脚构成的常闭触点断开。同时因为9015工作在饱和状态,发射极和集电极的电压降大约0.2V,集电极的电压约为4.8V,因此发光二极管串联一阻值为1K的电阻限流,使通过其电流为5mA左右而点亮。继电器中的线圈在关断的瞬间由于电磁感应现象的存在,会产生比原电压值大
29、多倍的反向电压,如果没有续流二极管D2让关断瞬间保持原电流方向的电流构成回路,以消耗线圈中存储的电能,将会反向击穿9015从而可能造成器件损毁。这是不被允许的,所以加一耐压大于5V(IN4001耐压值为1000V)的续流二极管即可避免此类情况的发生,这样可以保证所设计系统安全稳定的运行。4软件设计本系统软件设计采用了目前广泛使用的MCS-51单片机高级语言keil-C51作为软件开发工具,它表达能力强、可移植性好、便于进行结构化程序设计可以直接操作计算机硬件,对速度要求不是很高的应用场合是一种十分理想的开发工具。4.1 程序模块分类及功能主程序部分:主程序主要完成对系统资源的配置,各功能模块的
30、调用以及外界信息的处理。(1)LCD1602操作程序部分:显示时间信息,控制状态信息以及工作状态。(2)ADC0832操作程序部分:对光信号进行采集,转化为电信号进而交给系统进行处理。(3)DS1302操作程序部分:通过键盘操作可完成对时间,运行状态路灯工作状态的调整。(4)定时中断程序部分:对时间进行计数,进而改变标志位,系统可通过标志位的改变就行各种运作。(5)外部中断程序:发生中断时,完成对某个标志字节改变,以便后续的操作通过判断标志字节的状态来决定进行相应的动作。4.2 程序流程图软件从某种程度上大体可分为主程序和中断服务程序两部分。主程序完成对运行环境的初始化和以一定的逻辑及方式对各
31、个模块的程序进行调用,同时对某些系统硬件资源进行配置,从而达到预期的功能或目的。中断程序完成特定的某个功能。如图4-1,4-2所示,分别为外部中断0、定时中断0和主程序流程图。S2、S3、S4和S5是功能按键,在调时状态下,S2为加1,S3为减1在手动模式下S2为开灯,S3为关灯。其中S4为外部中断0入口,也为功能切换键,按一次flag加1;flag为1时,每按一次S5循环切换手动和自动运行模式。flag为0时,退出并确认参数和功能设定。 图4-1 a外部中断0子程序流程图 b 定时器0子程序流程主程序流程图如图4-2所示。图4-2 主程序流程图Flag为1时,S5切换运行模式液晶显示Auto
32、或Manu;flag为2或3,液晶显示Y或y,通过S2、S3调整年份;flag为4,液晶显示M,通过S2、S3调整月份;flag为5,液晶显示D,通过S2、S3调整日期;flag为6,液晶显示W,通过S2、S3调整星期;flag为7,液晶显示H,通过S2、S3调整小时;flag为8,液晶显示M,通过S2、S3调整分钟;flag为9,液晶显示S,通过S2、S3调整秒。在光线控制的模式下,使用定时器T0定时5秒,定时时间到后,则置a=1;将当前存储的光线信息和前一次的进行比较,如果前后两次的数据在允许的误差范围内则根据判断进行下一步的操作,也即控制路灯以何种方式开关或关断。这样前后有5S10S的时
33、间差,也可保证该控制系统不会因闪电等突发状况产生勿动操作。此操作暗合数字滤波和有效性检查的原则,使系统更稳定、可靠!5 软件测试5.1 测试目的软件测试是软件生命周期中一项非常重要且复杂的工作,对软件可靠性保证具有极其重要的意义,通过软件测试可以发现软件设计过程中的不足之处,以便更好地完善。该设计的主要设计目的是显示模块能正常显示,并能实现自动或手动对路灯工作模式的改变。5.2 测试方法测试方法主要是针对该设计的功能模块进行测试,看是否能够正常使用,显示是否出现乱码,路灯是否按照预期结果亮灭等。5.2.1 功能测试:该设计主要路灯亮度的自动或手动转换。在此对系统各部分功能,以及可靠性等方面进行
34、测试。针对本系统,主要由进行如表5-1的功能测试。表5-1测试用例表测试性能路灯亮度两端电压的变化用例目的反映路灯亮度的变化测试方法期望的结果实际情况通过调试按键,切换路灯的各种工作状态,并观察路灯电压的变化路灯在3中模式下出现不同的电压与期望的结果情况一致5.2.2 测试结果首先测试半电压模式(省电模式),调试后出现图5-1运行结果。图5-1 半电压模式此时模拟路灯两端电压是2.2v。而后调试程序到全电压工作模式,运行结果如图5-2。图5-2 全电压工作模式此时模拟路灯两端电压为4.4v,及达到了预期的结果。最后再测试关闭模式,结果如图5-3所示。图5-3 关闭模式测试结果与预期设想一致,达
35、到了预期效果。6 结论智能路灯控制系统的研究在国内外都在持续进行。众所周知,路灯在生活中普遍存在。在庞大的基数面前,优秀的路灯管理系统往往能制造出巨大的经济效益并且能节省大量电力资源。因此,智能路灯节能控制系统的研制对于构建节能型社会有着重要的意义。这次设计的智能路灯控制系统,从光线强度、时间等方面入手,通过对这些变量的检测与处理,实现了光线、时间、人工对输入路灯电压的综合调节。虽然本设计能够在一定程度上实现对路灯的智能控制与调节,但是其本身仍然存在很多问题,比如:没有在具体的电路板上进行试验,缺乏实践的检验;成本过高等。致谢经过长时间的努力,我的毕业设计终于完成了。但是坦白的说,这个设计不是
36、完美的,还有很多的地方需要完善和改进。在设计的过程中虽然辛苦,但是辛苦中也包含着快乐。特别是在编程的时候,每想到一个好的思路,好的方法,无不激动不已。调试程序的时候,经常会出现山穷水尽疑无路,柳暗花明又一村的情况,身心疲惫的自己顿时又振作起来。最后,我由衷地感谢我的母校河南科技学院,她为我们的学习成长创造了如此好的环境。我由衷地感谢师长们对我默默无闻的帮助及潜移默化的影响,为我将来的发展奠定了坚实的基础;我还要由衷地感谢身边的同学对我的无私关怀与支持,给我大量的宝贵意见。总之,我的毕业设计能够完成,无不凝聚了各位老师的大量辛勤的汗水。老师,您辛苦了!参考文献1朱家义.C语言程序设计实例教程M.
37、北京:清华大学出版社.20092贾振国.DS1820 及高精度温度测量的实现J.北京:电子技术应用.20003余永权.单片机原理及应用M. 北京:电子工业出版社.19974袁占生,白瑞锋,杨像闽.电气照明1-i能技术研究J.内蒙古民族师院学报(自然科学版).20005胡兴军.发展中的智能照明系统J.光源与照明.2004 6仇齐武.关于照明节能的措施和方法讨论.北京:电子技术应用.2000 7景春国,顾德英,舒冬梅.基于C+Builder的城市路灯无线数传监控软件设计J.工业控制计算机.2003,8张开羽,刘骊,吕杨.基于DALI协议的智能照明系统设计J.电子工程师.2004 9谢子殿,朱秀.基
38、于单片机控制的智能化路灯节能装置的设计J.微计算机信息.200510余发山.单片机原理及应用技术M. 徐州:中国矿业大学出版社.200311贾振国. DS1820 及高精度温度测量的实现J.电子技术应用.200012余永权.单片机原理及应用M. 北京:电子工业出版社.1997附录1:电路原理图附录2:重要源代码模块uchar read_0832(uchar channel) /读取通道中模数转化的值 uchar i,temp=0;channel=3;channel|=0x01;CS=0;for(i=0;i=1;CLK=0;delay(2);CLK=1;for(i=0;i8;i+)temp=1;
39、CLK=0;_nop_();if(DO=1)temp|=0x01;elsetemp|=0x00;_nop_();CLK=1;CS=1;return temp;void wlcd_com(uchar com) /向LCD1602中写控制字en=0;rs=0;rw=0;P0=com;delay(1);en=1;delay(1);en=0;void wlcd_data(uchar date)/向LCD1602中写入数据en=0;rs=1;rw=0;P0=date;delay(1);en=1;delay(1);en=0;void bcdzhuanshi() /BCD转十进制uchar i;for(i=
40、0;i7;i+)shidatai+1=bcddatai%16+(bcddatai/16)*10;void shizhuanbcd() /十进制转BCDuchar i;for(i=0;i7;i+)bcddatai=shidatai+1%10+(shidatai+1/10)*16;void writebyte(uchar addr,uchar shuju)/DS1302写一字节uchar i;uint temp=0;temp=shuju;temp=8;temp=temp+addr;SCLK=0;RST=1;for(i=0;i=1;SCLK=1;SCLK=0;RST=0;IO=1;uchar rea
41、dbyte(uchar addr) /DS1302读一字节uchar temp=0,i;temp=addr|0x01;SCLK=0;RST=1;for(i=0;i=1;SCLK=1;SCLK=0;temp=0;for(i=0;i=1;if(IO)temp=temp|0x80;elsetemp=temp|0x00;SCLK=1;SCLK=0;RST=0;IO=1;return temp;void write_1302() /写入DS1302shizhuanbcd();writebyte(controladdr,0x00); / 允许写入writebyte(secondaddr,0x80); /
42、停止跑时writebyte(trickleaddr,0xa9); / 设置writebyte(yearaddr,bcddata0); / 写入年份writebyte(monthaddr,bcddata1); / 写入月份writebyte(dateaddr,bcddata2); / 写入日期writebyte(houraddr,bcddata3); / 写入小时writebyte(minuteaddr,bcddata4); / 写入分钟writebyte(dayaddr,bcddata6); / 写入星期writebyte(secondaddr,bcddata5); / 写入秒并启动write
43、byte(controladdr,0x80); / 写保护void read_1302() /从DS1302读出bcddata0=readbyte(yearaddr);bcddata1=readbyte(monthaddr);bcddata2=readbyte(dateaddr);bcddata3=readbyte(houraddr);bcddata4=readbyte(minuteaddr);bcddata5=readbyte(secondaddr);bcddata6=readbyte(dayaddr);bcdzhuanshi();void display()/显示DS1302中读出的时间 wlcd_com(0x80+0x40); wlcd_data(tableshidata0/10); wlcd_data(tableshidata0%10); wlcd_data(tableshidata1/10); wlcd_data(tableshidata1%10);