收藏 分销(赏)

基于MSP430单片机的实时时钟设计(数码管显示).doc

上传人:二*** 文档编号:4536411 上传时间:2024-09-27 格式:DOC 页数:36 大小:4.22MB
下载 相关 举报
基于MSP430单片机的实时时钟设计(数码管显示).doc_第1页
第1页 / 共36页
亲,该文档总共36页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、市职业大学毕 业 设 计 说 明 书毕业设计题目 基于MSP430单片机的实时时钟设计 系 部 电子信息工程系 专业班级 08电气1班 姓 名学 号指导教师 2011年 5月 29 日摘 要本文研究了基于数码管显示的数字时钟系统设计与实现。该系统具有时间设置与显示、闹钟、计时等功能,系统以MSP430单片机为核心,主要进行基于MSP430单片机的低功耗型数字时钟与其系统的研究。系统带有数码管显示器,配合按键提供友好的用户界面,操作简单,该数字时钟能长期、连续、可靠、稳定的工作;同时还具有体积小、功耗低等特点,便于携带,使用方便。系统软件设计包括单片机编程。单片机软件编程主要实现按键、数码管显示

2、、时钟、计时、闹钟等模块功能。在本设计中充分利用了单片机部资源,涉与到了键盘控制、数码管显示、中断系统、定时/计数器、串口通信等。关键字:数字时钟;MSP430单片机;数码管AbstractThis paper studies the digital pipe display based on digital clock system design and realization. This system has the time set and display, alarm clock, timing, and other functions, system to MSP430 microc

3、ontroller as the core, mainly for the low power consumption MCU based on MSP430 type of digital clock and its system. System, cooperate with digital tube display buttons provide friendly user interface, easy operation, this digital clock can long-term continuous, reliable and stable working; It also

4、 has the features such as small volume, power consumption, easy to carry, easy to use. System software design including microcontroller programming. Single-chip microcomputer software programming mainly realizes buttons, digital pipe display, clock, timing, alarm clock function module.In this design

5、 make full use of the internal resources, involving the microcontroller keyboard control, digital tube display, interrupt system, timing/counters, serial communication.Keyword: Digital clock, MSP430 microcontroller,Digital tube目录第一章 绪论11.1课题研究的意义11.2课程设计容11.3课程设计目的2第二章 数字时钟的构成与方案选择32.1数字时钟的构成32.2模块方

6、案选择32.2.1单片机模块方案32.2.2 时钟方案选择32.2.3 键盘模块选择42.2.4 显示模块方案选择4第三章 系统硬件设计与实现53.1电路设计图53.2系统硬件设计53.2.1 MSP430单片机简介53.2.2 复位电路的设计63.2.3 晶振电路设计73.2.4 时钟模块设计83.2.5 键盘模块设计83.2.6 显示模块设计9第四章 系统的软件设计114.1系统设计总流程图114.2 DS1302时钟流程图114.3 LED数码管显示流程图12第五章 系统的调试与仿真145.1 IAR FOR 430简介145.2程序调试过程14第六章 结论16参考文献17附录一:系统原

7、理图18致3533 / 36第一章 绪论1.1课题研究的意义20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力的推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。目前,单片机正朝着高性能和多品种方向发展的趋势将进一步向CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路装化等几个方面发展。下面是单片机的主要发展趋势:单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现在已经能用单片机通过软件方法来实现了。这种软

8、件代替硬件的控制技术也称为微控制技术,是传统控制设计的一次革命。数字时钟在单片机模块里比较常见,数字时钟是一种用0、1数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,因此得到了广泛的使用。数字时钟是采用数字电路实现对时、分、秒数字现实的计时装置,广泛用于个人家庭,办公室,车站等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字时钟的精度远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大扩展了钟表原先的报时功能。诸如定时自动报警、按时自动打铃、时间程序自动控制、

9、定时广播、自动开起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。因此,研究数字时钟与扩大其应用,有着非常现实的意义。1.2课程设计容(1) 了解MSP430单片机实验开发系统中的实验模块原理,画出电路原理图(2) 综合运用实验模块,开发设计具有一定功能的单片机控制系统,进行软、硬件的设计与调试(3) 写出完整的设计任务书:课题的名称、系统的功能、硬件原理图、软件框图、程序清单、参考资料(4) 时间包括年、月、日、星期、时、分、秒的显示1.3课程设计目的(1) 巩固、加深和扩大单片机应用的知识面,提高综合与灵活运用所学的知识解决工业控制的能

10、力(2) 培养针对课题需要,选择和查阅有关手册、图标与文献资料的自学能力,提高组成系统、编程、调试的动手能力(3) 通过对课题设计方案的分析、选择、比较,熟悉单片机用系统开发、研制的过程与软硬件设计的方法、容与步骤第二章 数字时钟的构成与方案选择2.1数字时钟的构成数字时钟实际上是一个对标准频率(1HZ)进行计数的计数电路。由于计数的起始时间不可能与标准时间一致,故需要在电路上加一个校时电路,同时标准的1MHZ时间信号必须做到准确稳定。通常使用石英晶体振荡器电路构成数字时钟。(1) 晶体振荡器电路晶体振荡器电路给数字时钟提供一个频率稳定准备的12MHZ的方波信号没课保证数字时钟的走时准确与稳定

11、,不管是指针式的电子钟还是数字显示的电子钟都使用了晶体振荡器电路。(2) 时间计数器电路时间计数器电路由秒个位和秒十位计数器,分个位和分十位计数器电路组成,秒个位和秒十位计数器,分个位和分十位计数器为60进制计数器。2.2模块方案选择2.2.1单片机模块方案方案一:使用89C51单片机模块。其部数据总线是8位的,虽然经过各种努力使其部功能模块有了显著的增加,但是受其结构本身的限制很大,其模拟功能部件的增加更加困难。其指令采用的是复杂指令集(CISC),在待机状态下,耗电电流仍为3mA。方案二:使用MSP430单片机模块其基本架构是16位的,同时在其部的数据总线经过转换还存在8位的总线,在加上本

12、身就是混合型的结构,因而对它这样的开放型的架构来说,无论扩展8位的功能模块,还是16位的功能模块,即使扩展模/数转换或数/模转换这类的功能模块也是很方便的。由于引进了Flash型程序存储器和JTAG技术,不仅可以实现在线编程和仿真,而且使开发工具变得简便,价格也相对低廉。所以本次设计采用了MSP430单片机模块。2.2.2 时钟方案选择方案一:基本门电路搭建。用基本门电路来实现时钟发生器,电路结构复杂,故障系数大,不易测试。方案二:专用时钟芯片。目前市场上已有很多实时时钟芯片。如DS12887、DS1302、DS1307、PCF8563、X1227等,芯片都集成了时钟/日历功能,给时钟系统设计

13、带来了很多方便。根据设计要求,在本设计中我采用了DS1302时钟芯片。2.2.3 键盘模块选择方案一:采用阵列式键盘。此类键盘是采用行列扫描方式,当按键较多时可以降低占用单片机的I/O数目。但是本次设计按键较少,所以不采纳。方案二:采用独立式按键电路。每个键单独占有一根I/O的工作状态互不影响,此类键盘采用端口直接扫描方式。所以在设计中选择了采用独立式按键。2.2.4 显示模块方案选择方案一:采用液晶显示器。液晶也传统的显示器相比,最大的优点在于耗电量和体积,一般的液晶显示器的分辨率可达到720线之上,当然,液晶还在轻薄性上有着明显的优势,但是液晶显示器的可视偏转角度有限,容易产生影响拖尾现象

14、,而且液晶显示器的寿命也很短。方案二:采用数码管显示器。LED数码管能在低电压、小电流条件下驱动发光,能与CMOS、ITL电路兼容,发光响应时间极短,高频特性好,单色性好,亮度高,体积小,重量轻,抗冲击性能好,寿命长,使用寿命在10万小时以上,甚至可达100万小时。成本低,因此它被广泛用作数字仪表、数控装置、计算机的数显器件。在设计中我们也选择使用数码管。第三章 系统硬件设计与实现3.1电路设计图MSP430单片机模块本次电路的设计,是由键盘来设置和调节数码管上所显示的日期、时间等数据,这些数据通过MSP430模块的整理和传送,控制各个模块的正常运行,时间通过LED数码管显示器显示出来。如图3

15、.1所示:数码管显示模块按键模块时钟模块图3.1系统结构图3.2系统硬件设计本设计是以MSP430单片机为控制核心,其芯片具有在线编程功能,功耗低,能低电压,小电流下工作;时钟芯片采用DS1302,它是一款高性能、低功耗的实时时钟芯片,其精度和使用寿命相对其他芯片具有明显的优越性,同时具有掉电自动保存功能,可以对年、月、日、星期、时、分、秒进行设置和调整;温度检测模块由DS18B20构成,该传感器结构简单,不需要外接电路,在-10+85围精度为0.5,精度较好;显示部份使用LED数码管显示屏来实现,该显示屏具有高频特性好,单色性好,亮度高,体积小,重量轻,抗冲击性能好,寿命长的特点。3.2.1

16、 MSP430单片机简介 强大的处理能力MSP430系列单片机是一个16位的单片机,采用了精简指令集(RISC)结构,具有丰富的寻址方式(7种源操作数寻址、4种目的操作数寻址)、简洁的27条核指令以与大量的模拟指令;大量的寄存器以与片数据存储都可以参加多种运算;还有高效的查表处理指令;有较高的处理速度,在8MHZ晶体驱动下指令周期为125ns。这些特点保证了可编制出高效率的源程序。MSP430系列单片机的中断源较多,并且可以任意嵌套,使用时灵活方便。当系统处于省电的备用状态时,用中断请求讲它唤醒只有6us。超低功耗MSP430单片机之所以有超低的功耗,是因为其在降低芯片的电源电压与灵活而可控的

17、运行时钟方面都有其独到之处。首先,MSP430系列单片机的电源电压采用的是1.83.6V电压。因而可使其在1MHz的时钟条件下运行时,芯片的电流会在200400uA左右,时钟关断模式的最低功耗只有0.1uA。其次,独特的时钟系统设计,在MSP430系列中有两个不同的系统时钟系统:基本时钟系统和锁频(FLL和FLL+)时钟系统或DCO数字振荡器时钟系统。有的使用一个晶体振荡器(32768Hz),有的使用两个晶体振荡器。由系统时钟系统产生CPU和各功能所需的时钟,并且这些时钟可以在指令的控制下,打开和关闭,从而实现对总体功耗的控制。MSP430单片机引脚图如图3.2所示: 图3.2 MSP430单

18、片机的引脚图3.2.2 复位电路的设计 MSP430单片机系统复位电路功能模块共有两个复位信号:一个是上电复位信号POR和上电清除信号PUC。当器件上带电或者RST/NMI引脚配置为复位模式即RST/NMI引脚产生低电平的时候,器件上会产生上电复位信号,当启动看门狗,向看门狗写入错误的安全参数值,向片Flash写入错误的安全参数值的时候,会引起产生上电清除信号。当产生上电复位信号时,必然会产生上电清除信号。但是当产生上电清除信号的时候缺不会产生上电复位信号。图3.3复位电路图3.2.3 晶振电路设计MSP430系列芯片所有的晶振接口上的旁路电容大概都是2pF,旁路电容我们可以看成是晶振和单片机

19、之间的负载电容,但是旁路电容随着晶振和单片机的距离以与单片机的种类,在电气焊接时的方法不同而不同,所以为了要更好的让晶振起振,选择合适的负载能力比较强的晶振。MSP430系列芯片因为是低功耗单片机,所以它的I/O流过的电流比较小,在这种情况下就必须要求晶振的谐振电阻必须要小,因为太大了I/O不能供应足够的电流让晶振正常的工作,所以必须选择合适的谐振电阻的晶振。 MSP430系列芯片对晶振输出的正弦波震荡幅度也有要求,最低必须保证要有0.2VCC的输出电压,所以必须选择合适的谐振输出电压值的晶振。影响晶振起振的原因有晶振(ESR)、晶振启动后负载电容的大小、单片机电源电压的围、PCB布线和电气隔

20、离、外部的环境因素和电路板的保护涂层处理,上面具体介绍的三个参数是选择晶振时必须考虑的最主要的参数。在振荡回路中,晶体既不能过激励(容易振到高次谐波上)也不能欠激励(不容易起振)。晶体的选择至少必须考虑:谐振频点,负载电容,激励功率,温度特性,长期稳定性。图3.4晶振电路图3.2.4 时钟模块设计 DS1302时钟含有一个实时时钟/日历和31字节静态RAM,通过简单的串行接口与单片机进行通信,实时时钟/日历电路提供年、月、日、星期、时、分、秒的信息,每月的天数和闰年的天数可自动调整,时钟操作可通过AM/PM指示决定采用24或12小时格式。DS1302与单片机之间能简单的采用同步串行的方式进行通

21、信,仅需用到三个口线:(1)RES(复位)、(2)I/O(数据线)、(3)SCLK(串行时钟),时钟RAM的读写数据以一个字节或多达31个字节的字符组方式通信。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。当RST为高电平时,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在Vcc超过2.5V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。I/O为串行数据输入输出端,SCLK始终是输入端。图3.5DS

22、1302时钟模块电路图3.2.5 键盘模块设计 本次设计采用了独立式键盘电路,这种键盘使用单片机的I/O口线直接连接,每个按键对应一根口线,每根I/O口线上的按键工作状态不会影响其他I/O口线上的状态。键盘的工作方式可分为编程控制方式和中断控制方式,设置各个口线为输入模式,通过中断方式或者软件查询方式获取各个口线是否有键按下的信息在如图3.6所示的键盘中,有键按下则口线端电平为高,否则为低电平。在按下设置键要对其时间进行调整时,可通过+、-对其进行调整,如果要调整多个时间点的话,在对其中一个设置完成结束后,系统会自动跳到下一个时间点,这样就能对所有的点进行调整,调整结束后返回显示调整之后的时间

23、。图3.6按键模块电路图3.2.6 显示模块设计 LED数码管里面有8只发光二极管,分别记作a、b、c、d、e、f、g、dp,其中dp为小数点,每一只发光二极管都有一根电极引到外部引脚上,而另外一只引脚就连接在一起同样也引到外部引脚上,记作公共端(COM)。共阴极的LED,只要在某该段二极管加上高电平,该段即点亮,反之则暗。对共阴极LED 显示器的控制采用“接地方式”即通过控制LED 的“GND”引脚的电平高低来达到选通的目的,该引脚即通常所说的位选线。共阳极LED 显示器控制方式则相反。两种控制方式中,共阴极LED 控制方式受糸统器件功耗限制的段则不能点亮使用LED 显示器时,工作电流一般为

24、2-10mA/段,这样当LED 处于全亮状态时,工作电流约15-80 mA 左右。LED 显示器的亮度除与工作电流有关外,还与LED 的型号有关。根据显示亮度的不同划分为普通亮度和高亮度LED,高亮度LED 显示器的发光强度远大于普通亮度的LED,正常情况下的发光强度越是普通LED 的10 倍,即在1-2 mA/段时便可点亮。图3.7显示模块电路LED数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们需要的位数,因此根据LED数码管的驱动方式的不同,可以分为静态式和动态式两类。(1) 静态显示驱动:静态驱动也称直流驱动。静态驱动是指每个数码管的每个段码都由一个单片机的I/O

25、埠进行驱动,或者使用如BCD码二十进位解码器进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O埠多,所以实际应用时必须增加解码驱动器进行驱动,增加了硬体电路的复杂性。(2) 动态显示驱动:数码管动态显示介面是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划“a、b、c、d、e、f、g、dp”的同名端连在一起,另外为每个数码管的公共极COM增加位元选通控制电路,位元选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到一样的字形码,但究竟是哪个数码管会显示出字形,取决于单片机对位元选通COM端电路的控制,所以我们只要将需要显示的数码管的选

26、通控制打开,该位元就显示出字形,没有选通的数码管就不会亮。透过分时轮流控制各个LED数码管的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位元数码管的点亮时间为12ms,由于人的视觉暂留现象与二极体的余晖效应,尽管实际上各位数码管并非同时点亮,但是只要扫描的速度足够快,给人的印象就是一组稳定的显示资料,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O埠,而且功耗更低。第四章 系统的软件设计4.1系统设计总流程图 系统设计总流程图如图4.1所示,接通电源之后,系统进行初始化,按下设置键,对当地时间进行读取,对时间进行需要的调整,这些数据通过数码管显

27、示器显示出来,确认无误后才开始运行。图4.1系统设计总流程图4.2 DS1302时钟流程图 程序运行时要对DS1302进行设置,开始调整时间之前先对DS1302系统进行初始化,看当前系统时间是否为0,是的话给各个点校准当地的有效时间,并对时间进行上传,将有效的时间信息存储在EPROM中,然后上传给信息管理层,收到命令之后对相应的时间点进行修改,然后显示出具体的时间。具体的流程图如图4.2所示:图4.2DS1302时钟流程图4.3 LED数码管显示流程图 LED数码管在显示时间之前,首先要对其串口工作方式进行设置,然后设置图4.3LED数码管流程图对应的地址指针,然后选择其数码段,通过传送过来的

28、脉冲来显示出这个段位的时间,然后再次选择段位,通过下一次传送过来的脉冲来显示这个段位的时间,其他的段位时间也通过这个方法依次显示出来,当所有段位时间都显示出来之后,取段结束,时间显示成功,流程图如图4.3所示.第五章 系统的调试与仿真5.1 IAR FOR 430简介IAR Systems是全球领先的嵌入式系统开发工具和服务的供应商。公司成立于1983年,迄今已有27年,提供的产品和服务涉与到嵌入式系统的设计、开发和测试的每一个阶段,包括:带有C/C+编译器和调试器的集成开发环境、实时操作系统和中间件、开发套件、硬件仿真器以与状态机建模工具。国普与的MSP430开发软件种类不多,主要有IAR公

29、司的Embedded Workbench forMSP430(简称EW430)和AQ430。目前IAR的用户居多。IAR EW430软件提供了工程管理,程序编辑,代码下载,调试等所有功能,并且软件界面和操作方法与IAR EW for ARM等开发软件一致,因此,学会了IAR EW430,就可以很顺利的过度到另一种新处理器的开发工作。5.2程序调试过程1. 创建新工作站打开IAR Embedded Workbench。单击“开始”“程序”IAR SystemsIAR Embedded Workbench For MSP430 V3,自动创建一个新的工作站。2.创建并保存工程单击并选项中Creat

30、 new project in new workbench,选择工程类型和保存路径,同时输入文件名,单击“保存”按钮。3.创建或加载源文件(1)创建源程序。单击FileNewFile或按快捷键Ctrl+N出现所需要的源程序编辑界面,编辑过程要注意标点应为英文。(2)加载源文件。单击菜单ProjectAdd file test出现需要的加载源文件界面,选择相应的文件类型,出现相应的文件,选中需要加载的文件后,单击“打开”按钮。源文件加载完成后,在工程test下出现430P1.s43和Output子目录。4.保存工作贴单击FileSave Workspace,输入文件名Test Workspace

31、,单击“保存”按钮。保存工作站工作完成。5编译环境设置(1) 目标芯片设置,即选择需要调试的单片机型号。(2) 仿真方式设置,设置软件模拟仿真或FET在线仿真调试。(3) 仿真器借口类型设置,设置并口FET,连接到单片机的JTAG接口。6.工程编译和、调试(1)工程编译和修改源程序,在左侧工程管理中选中源文件430P1.S43,双击鼠标左键,进入源程序编辑状态。(2)连接生成目标代码,源文件编译通过之后,将连接生成目标代码。通过单击Project-Make。(3)调试,在的程序通过了连接,生成目标代码之后。通过单击Project-Debugger进入调试集成环境。分析:在调试的过程中,我们也遇

32、到了很多的困难,比如:数码管不显示或者显示不全,对当地有效时间不能进行调整等等,这时候就需要我们对我们的硬件和软件进行再一次深入的研究。硬件方面我们需要对我们的板子进行整体的检查,看那些焊点是否完好,芯片有没有接触不良,软件方面就要对我们设计的程序再一次的编译,检查出一些细小的缺陷。经过多次的调试,这次的数字时钟设计终于调试成功。因考虑到制作费用和周期,编写的程序在与设计功能一样的电路板上完成验证。调试结果见图5.1和5.2图5.1 调试结果显示图图5.2 时间显示图第六章 结论经过几个月的努力,我终于完成了这次的毕业设计基于MSP430单片机的实时时钟显示设计(数码管显示)。从接受到这个课题

33、到逐步的完成,每一步的完成对我来说都有着新的体会。在大学期间,这是给我的最大的一个挑战。从拿到这个题目开始,到收集这方面的资料,一步一步的逐步完善自己的方案设计,在这个过程中可以说自己收获了很多,同时也发现了自身知识的不足,我们必须具备一定的专业基础知识,才能成功的设计出一件合格的东西。当然最重要的是学到了关于基本MSP430的一些基本应用,同时也加深了对一些常用数字时钟的了解与设计方法。但是其中遇到的问题也不少,因为我们之前学的都是51单片机,现在着手做MSP430的芯片,这是一个很有难度和挑战性的设计,所以很多的容都是需要自己去自学的,比如有些MSP430的芯片和引脚问题不懂的时候就可以试

34、着去参考51单片机的,两者相比较一下,一些问题就能迎刃而解,这也是一种很好的学习方法。通过这一阶段的毕业设计,我受益匪浅,不仅锻炼了良好的逻辑思维能力,而且培养了弃而不舍的求学精神和严谨作风。回顾此次毕业设计,是大学三年所学知识很好的总结。参考文献1小龙.MSP430系列单片机接口技术与系统设计实例.:航空航天大学,2002.2涂时亮.单片机软件设计技术.:科学文献分社,19873毅刚.单片机原理与应用.:高等教育,20044胡大可.MSP430系列16位超低功耗单片机原理与应用.:航空航天大学,2001.5胡大可.MSP430系列单片机C语言程序设计开发.:航空航天大学,2003.6智奇.M

35、SP430系列超低功耗单片机原理与系统设计.:电子科技大学,2008.7戴佳,戴卫恒.msp430单片机C语言应用程序设计实例精讲M.:电子工业,2006.8卢晓轩,洪利,章扬.MSP430单片机与1-wire器件的软件接口.科技大学学报,2006,27(3):268-2719余永权,小青,林康.单片机应用系统的功率接口技术.:航空航天大学,1992.10齐,杜群贵.单片机应用系统设计技术.电子工业.200311光东.单片机微型计算机原理与接口技术.华中理工大学.199912曾日波.多功能数字电子钟系统的设计与实现.师学院学报.2004,19(12):23-2713迎春.msp430单片机原理

36、与应用教程M. :清华大学,2005,145-157附录一:系统原理图附录二:程序设计#include#includeds1302.h#includeled.h#define DS1302_SECOND 0x81 /时钟芯片的寄存器位置,存放时间#define DS1302_MINUTE 0x83#define DS1302_HOUR 0x85#define DS1302_WEEK 0x8b#define DS1302_DAY 0x87#define DS1302_MONTH 0x89#define DS1302_YEAR 0x8d unsigned char DateString11,Tim

37、eString9,week_value2,TempBuffer7; /char hide_sec,hide_min,hide_hour,hide_day,hide_week,hide_month,hide_year;char done,count,temp,flag,up_flag,down_flag;/unsigned int temp_value=0,temp_max=0;temp_min=0; /温度值void DateToStr(void) /将时间年,月,日,星期数据转换成数码管显示字符串,放到数组里DateString unsigned char Year,Month,Day,We

38、ek; Year=rtc_getyear(); Month=rtc_getmon(); Day=rtc_getdate(); Week=rtc_getday(); if(hide_year2) /这里的if,else语句都是判断位闪烁,2就不显示,输出字符串为 2007/07/22 DateString0 = 2; DateString1 = 0; DateString2 = Year/10 + 0; DateString3 = Year%10 + 0; else DateString0 = ; DateString1 = ; DateString2 = ; DateString3 = ; D

39、ateString4 = /; if(hide_month2) DateString5 = Month/10 + 0; DateString6 = Month%10 + 0; else DateString5 = ; DateString6 = ; DateString7 = /; if(hide_day2) DateString8 = Day/10 + 0; DateString9 = Day%10 + 0; else DateString8 = ; DateString9 = ; if(hide_week2) week_value0 = Week%10 + 0; /星期的数据另外放到 we

40、ek_value数组里,跟年,月,日的分开存放,因为等一下要在最后显示 Else week_value0 = ; week_value1 = 0; DateString10 = 0; /字符串末尾加 0 ,判断结束字符void TimeToStr(void) /将时,分,秒数据转换成数码管显示字符放到数组 TimeString; unsigned char Hour,Minute,Second; Hour=rtc_gethour(); Minute=rtc_getmin(); Second=rtc_getsec(); if(hide_hour2) TimeString0 = Hour/10 +

41、 0; TimeString1 = Hour%10 + 0; else TimeString0 = ; TimeString1 = ; TimeString2 = :; if(hide_min2) TimeString3 = Minute/10 + 0; TimeString4 = Minute%10 + 0; else TimeString3 = ; TimeString4 = ; TimeString5 = :; if(hide_sec2) TimeString6 = Second/10 + 0; TimeString7 = Second%10 + 0; else TimeString6

42、= ; TimeString7 = ; DateString8 = 0;void show_time() /数码管显示程序 TimeToStr(); /时间数据转换数码管字符 DateToStr(); /日期数据转换液晶字符 LCD_PutStr(DateString,0); /显示日期 LCD_PutStr(week_value,15); /显示星期 LCD_PutStr( Week,10); /在数码管上显示 字母 week LCD_PutStr(TimeString,16); /显示时间/void outkey() /跳出调整模式,返回默认显示 unsigned char Second;

43、 if (!(P1IN&BIT0) count=0;hide_sec=0,hide_min=0,hide_hour=0,hide_day=0,hide_week=0,hide_month=0,hide_year=0; Second=dataread(DS1302_SECOND); Datawrite(0x8e,0x00); /写入允许 Datawrite(0x80,Second&0x7f); Datawrite(0x8E,0x80); /禁止写入 done=0;/temp_max=0;sund=1; while(!(P1IN&BIT0); delay_nms(2); /void Upkey()/升序按键 if(!(P1IN&BIT1) switch(count) case 1: temp=dataread(DS1302_SECOND); /读取秒数 temp=temp+1; /秒数加1 up_flag=1; /数据调整后更新标志

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
百度文库年卡

猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服