




免费预览已结束,剩余40页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘 要:智能路灯系统以AT89C51单片机为控制核心,系统采用线路简单、体积小的专用时钟芯片DS1302,使用DS1302不但使电路功耗降低,而且节省IO口资源。采用光敏电阻检测环境的明暗变化,根据外界亮度的不同自动调节路灯亮灭。同时具有定时模式,在定时模式下系统点亮一半路灯。配有时间设定键盘和手动控制按键,采用常用的七段数码管作为显示器件。该系统可以通过TLC2543模数转换器和光敏电阻来获取外界亮度,定时模式时间段设定等功能,通过内部的控制逻辑实现路灯的亮灭控制。具有较好的实用价值。关键词: AT89C51 DS1302 智能路灯 光敏电阻朗读显示对应的拉丁字符的拼音第一章 绪论城市路灯管理工作是城市市政工程管理的重要任务之一,飞速发展的现代化城市需要具有自动化程度高,运行可靠,使用维护方便的照明控制系统。特别是在能源急剧消耗的今天,节能已经成为不可逃避的问题。利用89系列单片机,设计比较方便,计算处理也较简单,并且在时间精度方面也能达到日常使用的要求。路灯控制系统分为两大类:一类是用使用光敏电阻的感光性产生电信号控制,一类是使用DS1302时钟芯片控制。设计特点各不相同,因而用途也不同。我通过简单的合成可以使路灯系统同时具有以上两种特性,在51系列单片机的逻辑控制下完成对路灯开关的任务。通过I/O口的按键可以调整实时时间,点亮路灯时间,熄灭路灯时间。本设计硬件电路简单成本低,性能可靠,操作简单,实现了51单片机在在智能控制当中的应用。具体要求:(1)支路控制器有时钟功能,能设定、显示进入定时模式的时间(2)支路控制器应能根据环境明暗变化,自动开灯和关灯。(3)支路控制器能分别独立控制每只路灯的开灯和关灯时间。按照系统要求,可以将整个系统分为四个模块来设计:(1)单片机最小系统,其中包括相应按键设计;(2)七段数码管显示模块;(3)DS1302时钟模块设计;(4)TLC2543模数转换模块和光敏电阻采样电路设计。第二章 方案设计【方案一】: 采用数字电路实现。数字电路结构简单,响应速度快。但处理能力有限,本文要求控制器需实现的功能很多,数字电路不易实现。【方案二】:采用AT89C51作为主控制单片机。该芯片功能强大,具有足够快的速度;有各种同步串行接口、足够的内部ROM和RAM,以减小控制系统的物理尺寸,具有看门狗功能和稳定的电源,可以很方便的实现我所需功能,利用其强大的功能不仅可以简化硬件电路而且还可以大幅度提高系统运行速度。【方案三】:应用ARM,ARM是一种功耗很低的高性能处理器,技术具有性能高、成本低和能耗省的特点。方便、安全、高效。但ARM编程较复杂,我很难掌握,且开发板价格较高。综合第一章要求和性价比我选择方案二为本系统的最终方案,根据设计要求并综合各方面因素,决定用动态扫描法实现 LED数字显示,使用DS1302时钟芯片完成定时计算,用TLC2543模数转换器完成光强信号的采集。整体框图如下图所示:2.1 单片机电路设计本设计由于要求必须使用单片机作为系统的主控制器,而且以单片机为主控制器的设计,可以容易地将计算机技术和测量控制技术结合在一起,组成新型的只需要改变软件程序就可以更新换代的“智能化测量控制系统”。这种新型的智能仪表在测量过程自动化、测量结果的数据处理以及功能的多样化方面,都取得了巨大的进展。再则由于系统没有其它高标准的要求,又考虑到本设计中程序部分比较大,根据总体方案设计的分析,设计这样一个简单的的系统,由于系统的采样精度较高,因此选用片外AD芯片,拟采用12位AD芯片,由于应用程序不大,应用程序直接存储存片内,不用在外部扩展存储器,这样电路也可简化。AT89C51单片机是把那些作为控制应用所必需的基本内容都集成在一个尺寸有限的集成电路芯片上。如果按功能划分,它由如下功能部件组成,即微处理器(CPU)、数据存储器(RAM)、程序存储器(ROM)、并行I/O口(4个8位I/O口)、串行口、定时器/计数器、中断系统及特殊功能寄存器。它们都是通过片内单一总线连接而成,其基本结构依旧是微处理器(CPU)加上外围芯片的传统结构模式。但对各种功能部件的控制是采用特殊功能寄存器的集中控制方式,以实现不同的功能。具有以下主要特性:与MCS-51 兼容 4K字节可编程闪烁存储器 寿命:1000写/擦循环数据保留时间:10年全静态工作:0Hz-24Hz三级程序存储器锁定128*8位内部RAM32可编程I/O线两个16位定时器/计数器5个中断源 可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路2.1.1微处理器(CPU)AT89C51单片机中有一个8位的微处理器,与通用的微处理器基本相同,同样包括了运算器和控制器两大部分,只是增加了面向控制的处理功能,不仅可处理数据,还可以位变量的处理。2.1.2数据存储器(RAM)数据存储器空间分为片内与片外两部分。当AT89C51单片机的片内RAM不够用时,又给用户提供了在片外可扩展至64KB RAM的能力,以供用户的需求。片内为128个字节,字节地址为00H7FH。片外最多可外扩至64k字节,用来存储程序在运行期间的工作变量、运算的中间结果、数据暂存和缓冲、标志位等,所以称为数据存储器。2.1.3程序存储器(ROM)AT89C51单片机的片内程序存储器为4KB的FLASH存储器,地址范围为0000H0FFFH。有16位地址线,可外扩的程序存储器空间最大为64KB,地址范围为0000HFFFFH。由于受集成度限制,片内只读存储器一般容量较小,如果片内的只读存储器的容量不够,则需用扩展片外的只读存储器,片外最多可外扩至64k字节。2.1.4中断系统具有5个中断源,2级中断优先权。2.1.5定时器/计数器片内有2个16位的定时器/计数器, 具有四种工作方式(方式0、方式1、方式2、方式3)。2.1.6串行口1个全双工的串行口,具有四种工作方式。可用来进行串行通讯,扩展并行I/O口,甚至与多个单片机相连构成多机系统,从而使单片机的功能更强且应用更广。2.1.7特殊功能寄存器(SFR)AT89C51单片机共有21个特殊功能寄存器,用于对片内的个功能的部件进行管理、控制、监视。实际上是一些控制寄存器和状态寄存器,是一个具有特殊功能的RAM区。由上可见,AT89C51单片机的硬件结构具有功能部件种类全,功能强等特点。特别值得一提的是该单片机CPU中的位处理器,它实际上是一个完整的1位微计算机,这个1位微计算机有自己的CPU、位寄存器、I/O口和指令集。1位机在开关决策、逻辑电路仿真、过程控制方面非常有效;而8位机在数据采集,运算处理方面有明显的长处。MCS-51单片机中8位机和1位机的硬件资源复合在一起,二者相辅相承,它是单片机技术上的一个突破,这也是MCS-51单片机在设计的精美之处,得以在实际生活中得到了广泛的应用。2.2 智能控制方式 对于路灯系统,其本质工作是为了在光照强度不足时,为行人及行车提供足够的光照。现在的路灯控制系统多采用的是人工定时开关的控制方式,即在某一个时间段如晚六点到早上六点之间路灯处于全开状态,其他时间路灯全关。这显然是不合理的。当突然遇到天气不好需要路灯补充照明的时候,上述控制方式不能达到系统的要求。因此,本文按照前面的要求设计了如下控制方式。 该路灯控制系统包括光线控制和定时控制两种方式。其中在正常运行情况下,系统处于光线控制状态。此时路灯的亮灭主要由外界光线强度控制。为了更好的节能省电,本文设计的控制器设计了三个光线控制档位,分别对应着路灯全开,路灯半开和路灯全关。由于路灯系统的特殊性,在午夜也不能关闭,但是此时路上车流量很小,没有必要路灯全开。因此,在定时控制下,可以设定一个控制区间,在该区间内路灯一直处于半开状态。为了保护路灯系统,光线控制半开路灯主要是控制路灯左半边而定时控制主要控制右半边。3光敏控制电路光敏电阻器是利用半导体的光电效应制成的一种电阻值随入射光的强弱而改变的电阻器;入射光强,电阻减小,入射光弱,电阻增大。光敏电阻器一般用于光的测量、光的控制和光电转换(将光的变化转换为电的变化)。常用的光敏电阻器硫化镉光敏电阻器,它是由半导体材料制成的。光敏电阻器的阻值随入射光线(可见光)的强弱变化而变化,在黑暗条件下,它的阻值(暗阻)可达110M欧,在强光条件(100LX)下,它阻值(亮阻)仅有几百至数千欧姆。光敏电阻器对光的敏感性(即光谱特性)与人眼对可见光(0.40.76)m的响应很接近,只要人眼可感受的光,都会引起它的阻值变化。光敏电阻的信号主要由AD芯片采集,本文选用的AD芯片为TLC2543.TLC2543是TI公司的12位串行模数转换器,使用开关电容逐次逼近技术完成A/D转换过程。由于是串行输入结构,能够节省51系列单片机I/O资源;且价格适中,分辨率较高,因此在仪器仪表中有较为广泛的应用。TLC2543的特点(1)12位分辩率A/D转换器;(2)在工作温度范围内10s转换时间;(3)11个模拟输入通道;(4)3路内置自测试方式;(5)采样率为66kbps;(6)线性误差1LSBmax;(7)有转换结束输出EOC;(8)具有单、双极性输出;(9)可编程的MSB或LSB前导;(10)可编程输出数据长度。TLC2543是一款集成度很高的高精度AD芯片,因此在应用中并不需要增加过多的外围电路,仅需要提供可靠的参考电压即可。其电路连接如图7所示。图 7 AD采样电路TLC2543 可以用四种传输方法使TLC2543得到全12位分辩率,每次转换和数据传递可以使用12或16个时钟周期。 一个片选脉冲要插到每次转换的开始处,或是在转换时序的开始处变化一次后保持为低,直到时序结束。 图8显示每次转换和数据传递使用16个时钟周期和在每次传递周期之间插入的时序,图9显示每次转换和数据传递使用16个时钟周期,仅在每次转换序列开始处插入一次时序。图8 16时钟传送时序图图9 16时钟传送时序图4时钟芯片DS1302是美国DALLAS 公司推出的一种高性能、低功耗的实时 时钟芯片,附加31字节静态RAM,采用SPI 三线接口与CPU 进行同步通信,并可采用突发方式一次传送多个字节的时钟信号和RAM数据。实时时钟可提供秒、分、时、日、星期、月和年,一个月小与31天时可以自动调整,且具有闰年补偿功能。工作电压宽达2.55.5V。采用双电源供电(主电源和备用电源),可设置备用电源充电方式,提供了对后背电源进行涓细电流充电的能力。正是因为DS1302的这些种种优点,所以选用了它为本系统提供时钟功能,而且还用它做了定时的功能,为系统提供了一种定时开关路灯的功能。第5 显示模块设计数码管是一类价格便宜 使用简单,通过对其不同的管脚输入相对的电流,使其发亮,从而显示出数字能够显示 时间、日期、温度等所有可用数字表示的参数的器件。在电器特别是家电领域应用极为广泛,如显示屏、空调、热水器、冰箱等等。绝大多数热水器用的都是数码管,其他家电也用液晶屏与荧光屏。七段数码管是数码管的一种是半导体发光器件,数码管可分为七段数码管和八段数码管,区别在于八段数码管比七段数码管多一个发光二极管单元,其基本单元是发光二极管。七段数码管有两种显示方式,一种是直流驱动,这是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。优点是编程简单,显示亮度高,缺点是占用I/O端口多。还有一种是动态显示驱动,是将所有数码管通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示。将所有数码管的8个显示笔划a,b,c,d,e,f,g,dp的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。由于AT89C51单片机本身IO口的驱动电流并不能满足数码管的点亮条件,因此在设计中我选用了共阳极数码管,同时位选端采用PNP型三极管驱动导通,以此来提高电路的驱动能力。第三章 软件设计本设计采用C语言编程,编译环境为keil UV4。keil c51 是美国Keil Software 公司出品的51 系列兼容单片机C 语言软件开发系统,和汇编相比,C 在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil c51 软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows 界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到keil c51 生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。Keil C51 可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE 本身或其它编辑器编辑C 或汇编源文件,然后分别有C51 及A51 编辑器编译连接生成单片机可执行的二进制文件(.HEX),然后通过单片机的烧写软件将HEX 文件烧入单片机内。3.1 整体程序框图 系统整体主要包括一个主函数和两个中断函数组成。其中一个中断为外部中断,主要处理手自动切换信号。另一个中断为定时器中断,用于定时采样光线信号和定时扫描数码管。由于AD采样是一个比较耗费时间的过程,而且本系统对于光线的采集也没有很高的实时性要求。因此,本文将AD转换放到了定时器中断中,每隔一段时间启动一次AD转换。这样可以很好的节约CPU资源。中断流程图如下所示:整体流程图如下所示:第四章 仿真测试Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。Proteus可提供的仿真元器件资源:仿真数字和模拟、交流和直流等数千种元器件,有30多个元件库。Proteus可提供的仿真仪表资源 :示波器、逻辑分析仪、虚拟终端、SPI调试器、I2C调试器、信号发生器、模式发生器、交直流电压表、交直流电流表。理论上同一种仪器可以在一个电路中随意的调用。除了现实存在的仪器外,Proteus还提供了一个图形显示功能,可以将线路上变化的信号,以图形的方式实时地显示出来,其作用与示波器相似,但功能更多。这些虚拟仪器仪表具有理想的参数指标,例如极高的输入阻抗、极低的输出阻抗。这些都尽可能减少了仪器对测量结果的影响。Proteus可提供的调试手段 Proteus提供了比较丰富的测试信号用于电路的测试。这些测试信号包括模拟信号和数字信号。在PROTEUS绘制好原理图后,调入已编译好的目标代码文件:*.HEX,可以在PROTEUS的原理图中看到模拟的实物运行状态和过程。PROTEUS不仅可将许多单片机实例功能形象化,也可将许多单片机实例运行过程形象化。前者可在相当程度上得到实物演示实验的效果,后者则是实物演示实验难以达到的效果。它的元器件、连接线路等却和传统的单片机实验硬件高度对应。这在相当程度上替代了传统的单片机实验教学的功能,例:元器件选择、电路连接、电路检测、电路修改、软件调试、运行结果等。由于PROTEUS提供了实验室无法相比的大量的元器件库,提供了修改电路设计的灵活性、提供了实验室在数量、质量上难以相比的虚拟仪器、仪表,因而也提供了培养学生实践精神、创造精神的平台随着科技的发展,“计算机仿真技术”已成为许多设计部门重要的前期设计手段。它具有设计灵活,结果、过程的统一的特点。可使设计时间大为缩短、耗资大为减少,也可降低工程制造的风险。相信在单片机开发应用中PROTEUS也能茯得愈来愈广泛的应用。使用Proteus软件进行单片机系统仿真设计,是虚拟仿真技术和计算机多媒体技术相结合的综合运用,有利于培养学生的电路设计能力及仿真软件的操作能力;在单片机课程设计和全国大学生电子设计竞赛中,我们使用 Proteus开发环境对学生进行培训,在不需要硬件投入的条件下,学生普遍反映,对单片机的学习比单纯学习书本知识更容易接受,更容易提高。实践证明,在使用 Proteus 进行系统仿真开发成功之后再进行实际制作,能极大提高单片机系统设计效率。因此,Proteus 有较高的推广利用价值。4.1 整体仿真电路4.2 定时模式下路灯半亮仿真系统设定0点到6点之间为定时模式时间,在该时间段内,系统自动控制右侧路灯亮而左侧路灯熄灭。 4.3 光线控制模式下仿真当系统处于非定时模式下时,将自动切换至光线控制模式,在该模式下可以根据光强自动改换灯的亮灭状态。下图为光线较量时路灯全灭的仿真图。下图为光线不充足时仿真图下图为光线很暗时的仿真图 结 论 随着现代化建设的迅速发展,市政建设取得的极大发展进步。传统的路灯控制与维护手段已不能适应城市现代化的要求。单片机、IC芯片等技术的大力发展给智能路灯控制发展提供了前提和基础。 智能路灯控制器主要包括时钟芯片DS1302和单片机AT89C51组成的时钟控制部分,LED管的显示部分,键盘部分,手动控制部分和光线采集部分。本文利用Keil编译环境和Proteus仿真软件对路灯控制系统进行了程序编写和硬件仿真。主要实现了如下功能:(1)支路控制器有时钟功能,能设定、显示进入定时模式的时间(2)支路控制器应能根据环境明暗变化,自动开灯和关灯。(3)支路控制器能分别独立控制每只路灯的开灯和关灯时间。虽然支路控制器已经可以满足设计的要求。但是如何将支路控制器应用到大范围的路灯系统中还是一个值得研究的问题,需要进一步研究。智能路灯控制器安全可靠,极大地提高了路灯控制自动化水平,减小了管理人员的工作量,降低了物资消耗,完成了预期任务,提高了市政路灯管理水平。随着微机及电子器件发展,路灯控制自动化水平还将不断提高,控制器将更加完善。 致谢 大学所学的知识在这次的课程设计里得到了充分体现,在完成这个课程设计的过程中,也遇到了不少的问题,但在老师和同学的帮助下,问题很快就得到了解决。在此过程中,我也学到了不少的新的知识,自己的动手能力得到了大大的提高,分析问题和总结问题也积累了不少的经验,在此我衷心地感谢我的指导老师陈锦儒、彭昕昀老师。感谢他对我完成这个课题的支持与帮助,在设计过程中给了我宝贵的建仪和意见,同时也感谢我周边的同学,他们为我提供了很多的资料和帮助。在此也感谢其他同学对我学业的支持与关心。参考文献1 靳 达. 单片机应用系统开发实例导航. 北京:人民邮电出版社,20032 楼然苗,李光飞.51系列单片机设计实例.北京:北京航空航天大学出版社,20033 余永权.89系列FLASH单片机原理及应用.北京:电子工业出版社,20004 李东生.PROTEL 99SE电路设计技术入门与应用.北京:电子工业出版社,20025 诸昌钤.LED显示屏系统原理及工程技术.成都:电子科技大学出版社,20006 余永权,汪明慧等. 单片机在控制系统中的应用. 北京:电子工业出版社,20047 李群芳,黄建.单片微型计算机与接口技术.北京:电子工业出版社,20018 鸣谢的资料搜索。9 谭浩强,C程序设计(第三版)北京:清华大学出版社,2005附录主程序#include reg52.h #include ds1302.h #include segdisp.h #include TLC2543.h / 包含头文件 /* 与编译器无关的数据类型定义 */*/typedef unsigned char uint8; / 无符号8位整型变量typedef signed char int8; / 有符号8位整型变量typedef unsigned short uint16; / 无符号16位整型变量typedef signed short int16; / 有符号16位整型变量typedef unsigned int uint32; / 无符号32位整型变量typedef signed int int32; / 有符号32位整型变量typedef float fp32; / 单精度浮点数(32位长度)typedef double fp64; / 双精度浮点数(64位长度)/*/sbit LEDA = P0 0; sbit LEDB = P0 1; sbit AMdisp = P0 2; sbit AOPEN=P10;sbit BOPEN=P11;sbit setbutton=P12;sbit plusbutton=P13;sbit minbutton=P14;sbit configbutton=P15;/=/=bit flagk=0;bit flagg=0;bit flagstop=0;bit flagset=0,flagminu=0,flagplus=0,flagconf=0;bit openhoursetflag=0,openminsetflag=0,closehoursetflag=0,closeminsetflag=0;int setnum=0;/*设定仿真系统的当前时间*/unsigned char code time_set7=55,59,5,12,1,1,11;/ 秒 分时 号月份 星期 年int disphour=0,dispmin=0; /送到数码管显示的数值int openhourset=0,openminset=0;/开关时间的设定初始值int closehourset=6,closeminset=0;int openhoursetconf=0;/时间设定完成后将值赋予这四个变量,用于比较int openminsetconf=0;int closehoursetconf=6;int closeminsetconf=0;int AMnum=0; /手动自动切换用的变量。用它的奇偶来判断是不是打开自动状态unsigned short lightstrong;unsigned int realtimesecond,setopentimesecond,setclosetimesecond;/*/void key() P1=0XFF; if(P1=0xfe|flagk)/p10? flagk=1; if(P1=0xff) flagk=0; LEDA=LEDA; if(P1=0xfd|flagg)/p11? flagg=1; if(P1=0xff) flagg=0; LEDB=LEDB; void keyproc() if(P1=0xFB|flagset) flagset=1; if(P1=0xff) flagset=0; if(setnum=0)disphour=100;openhoursetflag=1;closehoursetflag=0;openminsetflag=0;closeminsetflag=0; dispmin= openminset;/此时打开时间的小时位的十位会出现,开始设定打开时间的小时if(setnum=1)dispmin=100;openhoursetflag=0;closehoursetflag=0;openminsetflag=1;closeminsetflag=0; disphour=openhourset;/此时打开时间的分钟位的十位会出现开始设定打开时间的分钟if(setnum=2)disphour=100;openhoursetflag=0;closehoursetflag=1;openminsetflag=0;closeminsetflag=0; dispmin=closeminset;/此时关闭时间的小时位的十位会出现,开始设定关闭时间的小时if(setnum=3)dispmin=100;openhoursetflag=0;closehoursetflag=0;openminsetflag=0;closeminsetflag=1; disphour=closehourset;/此时关闭时间的分钟位的十位会出现开始设定关闭时间的分钟 setnum+; if(P1=0xF7|flagplus) flagplus=1;if(P1=0xff) flagplus=0; if(openhoursetflag)openhourset+; if(openhourset=24) openhourset=0;disphour=openhourset;if(openminsetflag)openminset+;if(openminset=60)openminset=0;dispmin=openminset;if(closehoursetflag)closehourset+; if(closehourset=24) closehourset=0;disphour=closehourset;if(closeminsetflag)closeminset+; if(closeminset=60) closeminset=0;dispmin=closeminset; if(P1=0xEF|flagminu) flagminu=1;if(P1=0xff)flagminu=0; if(openhoursetflag)openhourset-;if(openhourset0)openhourset=23;disphour=openhourset;if(openminsetflag)openminset-;if(openminset0)openminset=59;dispmin=openminset;if(closehoursetflag)closehourset-;if(closehourset0)closehourset=23;disphour=closehourset;if(closeminsetflag)closeminset-;if(closeminsetsetopentimesecond&realtimesecond3000)/ 亮度很高,灯全灭 LEDA=0; /关灯 LEDB=0; /关灯 else if(lightstrong2000)/ 亮度不足,灯亮一半 LEDA=1; /开灯 LEDB=0; /关灯 else if(lightstrong0; i-) DS1302_IO = ACC0; DS1302_CLK = 1; DS1302_CLK = 0; ACC = ACC 1; /DS1302?(?)unsigned char DS1302OutputByte(void) unsigned char i; for(i=8; i0; i-) ACC = ACC 1; ACC7 = DS1302_IO; DS1302_CLK = 1; DS1302_CLK = 0; return(ACC); void Write1302(unsigned char ucAddr, unsigned char ucDa) DS1302_RST = 0; DS1302_CLK = 0; DS1302_RST = 1; DS1302InputByte(ucAddr); DS1302InputByte(ucDa); DS1302_CLK = 1; DS1302_RST = 0; unsigned char Read1302(unsigned char ucAddr) unsigned char ucData; DS1302_RST = 0; DS1302_CLK = 0; DS1302_RST = 1; DS1302InputByte(ucAddr|0x01); ucData = DS1302OutputByte(); DS1302_CLK = 1; DS1302_RST = 0; return(ucData);void DS1302_SetProtect(bit flag) if(flag)Write1302(0x8E,0x10);elseWrite1302(0x8E,0x00);void DS1302_SetTime( unsigned char Value) int i;DS1302_SetProtect(0);for(i=0;i7;i+)Write1302(0x80+i+i, (Valuei/10)Second = (ReadValue&0x70)4)*10 + (ReadValue&0x0F);ReadValue = Read1302(DS1302_MINUTE);Time-Minute = (ReadValue&0x70)4)*10 + (ReadValue&0x0F);ReadValue = Read1302(DS1302_HOUR);Time-Hour = (ReadValue&0x70)4)*10 + (ReadValue&0x0F);ReadValue = Read1302(DS1302_DAY);Time-Day = (ReadValue&0x70)4)*10 + (ReadValue&0x0F);ReadValue = Read1302(DS1302_WEEK);T
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 信用宣传进社区活动方案
- 借势营销活动方案
- 倾诉小秘密亲子活动方案
- 假期景区活动方案
- 假期美食活动方案
- 做小区活动策划方案
- 做菜技能比赛活动方案
- 健力宝春节活动方案
- 健康共享活动方案
- 健康指导员五进活动方案
- GB/T 14598.2-2025量度继电器和保护装置第1部分:通用要求
- 重庆市渝北区2023-2024学年七年级下学期期末语文试题(解析版)
- 2025年安全月安全有奖答题考试题库(附答案)
- 浙江省宁波市2025年八年级下学期期末数学试题及答案及答案
- 北京历史文化街区风貌保护与更新设计导则
- 国能集团工会工作报告
- 2025年商业管理与商业模式创新能力考核题及答案
- T/CBMCA 012-2020室内环境清洁消毒服务规范
- 2024年青海省囊谦县事业单位公开招聘辅警考试题带答案分析
- 2025中考语文常考作文押题(10大主题+10篇范文)
- 《工程勘察设计收费标准》(2002年修订本)
评论
0/150
提交评论