基于MSP430单片机的实时时钟设计(数码管显示)_第1页
基于MSP430单片机的实时时钟设计(数码管显示)_第2页
基于MSP430单片机的实时时钟设计(数码管显示)_第3页
基于MSP430单片机的实时时钟设计(数码管显示)_第4页
基于MSP430单片机的实时时钟设计(数码管显示)_第5页
已阅读5页,还剩34页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于MSP430单片机的实时时钟设计0苏州市职业大学毕业设计说明书毕业设计题目基于MSP430单片机的实时时钟设计系部电子信息工程系专业班级08电气1班姓名学号指导教师2011年5月29日基于MSP430单片机的实时时钟设计1摘要本文研究了基于数码管显示的数字时钟系统设计与实现。该系统具有时间设置及显示、闹钟、计时等功能,系统以MSP430单片机为核心,主要进行基于MSP430单片机的低功耗型数字时钟及其系统的研究。系统带有数码管显示器,配合按键提供友好的用户界面,操作简单,该数字时钟能长期、连续、可靠、稳定的工作;同时还具有体积小、功耗低等特点,便于携带,使用方便。系统软件设计包括单片机编程。单片机软件编程主要实现按键、数码管显示、时钟、计时、闹钟等模块功能。在本设计中充分利用了单片机内部资源,涉及到了键盘控制、数码管显示、中断系统、定时/计数器、串口通信等。关键字数字时钟;MSP430单片机;数码管基于MSP430单片机的实时时钟设计2ABSTRACTTHISPAPERSTUDIESTHEDIGITALPIPEDISPLAYBASEDONDIGITALCLOCKSYSTEMDESIGNANDREALIZATIONTHISSYSTEMHASTHETIMESETANDDISPLAY,ALARMCLOCK,TIMING,ANDOTHERFUNCTIONS,SYSTEMTOMSP430MICROCONTROLLERASTHECORE,MAINLYFORTHELOWPOWERCONSUMPTIONMCUBASEDONMSP430TYPEOFDIGITALCLOCKANDITSSYSTEMSYSTEM,COOPERATEWITHDIGITALTUBEDISPLAYBUTTONSPROVIDEFRIENDLYUSERINTERFACE,EASYOPERATION,THISDIGITALCLOCKCANLONGTERMCONTINUOUS,RELIABLEANDSTABLEWORKINGITALSOHASTHEFEATURESSUCHASSMALLVOLUME,POWERCONSUMPTION,EASYTOCARRY,EASYTOUSESYSTEMSOFTWAREDESIGNINCLUDINGMICROCONTROLLERPROGRAMMINGSINGLECHIPMICROCOMPUTERSOFTWAREPROGRAMMINGMAINLYREALIZESBUTTONS,DIGITALPIPEDISPLAY,CLOCK,TIMING,ALARMCLOCKFUNCTIONMODULEINTHISDESIGNMAKEFULLUSEOFTHEINTERNALRESOURCES,INVOLVINGTHEMICROCONTROLLERKEYBOARDCONTROL,DIGITALTUBEDISPLAY,INTERRUPTSYSTEM,TIMING/COUNTERS,SERIALCOMMUNICATIONKEYWORDDIGITALCLOCK,MSP430MICROCONTROLLER,DIGITALTUBE基于MSP430单片机的实时时钟设计3目录第一章绪论111课题研究的意义112课程设计内容113课程设计目的2第二章数字时钟的构成及方案选择321数字时钟的构成322模块方案选择3221单片机模块方案3222时钟方案选择3223键盘模块选择4224显示模块方案选择4第三章系统硬件设计与实现531电路设计图532系统硬件设计5321MSP430单片机简介5322复位电路的设计6323晶振电路设计7324时钟模块设计8325键盘模块设计8326显示模块设计9第四章系统的软件设计1141系统设计总流程图1142DS1302时钟流程图1143LED数码管显示流程图12第五章系统的调试与仿真1451IARFOR430简介1452程序调试过程14第六章结论16参考文献17附录一系统原理图18致谢35基于MSP430单片机的实时时钟设计1第1章绪论11课题研究的意义20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力的推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。目前,单片机正朝着高性能和多品种方向发展的趋势将进一步向CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。下面是单片机的主要发展趋势单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现在已经能用单片机通过软件方法来实现了。这种软件代替硬件的控制技术也称为微控制技术,是传统控制设计的一次革命。数字时钟在单片机模块里比较常见,数字时钟是一种用0、1数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,因此得到了广泛的使用。数字时钟是采用数字电路实现对时、分、秒数字现实的计时装置,广泛用于个人家庭,办公室,车站等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字时钟的精度远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动开起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。因此,研究数字时钟及扩大其应用,有着非常现实的意义。12课程设计内容(1)了解MSP430单片机实验开发系统中的实验模块原理,画出电路原理图(2)综合运用实验模块,开发设计具有一定功能的单片机控制系统,进行软、基于MSP430单片机的实时时钟设计2硬件的设计及调试(3)写出完整的设计任务书课题的名称、系统的功能、硬件原理图、软件框图、程序清单、参考资料(4)时间包括年、月、日、星期、时、分、秒的显示13课程设计目的(1)巩固、加深和扩大单片机应用的知识面,提高综合及灵活运用所学的知识解决工业控制的能力(2)培养针对课题需要,选择和查阅有关手册、图标及文献资料的自学能力,提高组成系统、编程、调试的动手能力(3)通过对课题设计方案的分析、选择、比较,熟悉单片机用系统开发、研制的过程及软硬件设计的方法、内容及步骤基于MSP430单片机的实时时钟设计3第2章数字时钟的构成及方案选择21数字时钟的构成数字时钟实际上是一个对标准频率(1HZ)进行计数的计数电路。由于计数的起始时间不可能与标准时间一致,故需要在电路上加一个校时电路,同时标准的1MHZ时间信号必须做到准确稳定。通常使用石英晶体振荡器电路构成数字时钟。(1)晶体振荡器电路晶体振荡器电路给数字时钟提供一个频率稳定准备的12MHZ的方波信号没课保证数字时钟的走时准确及稳定,不管是指针式的电子钟还是数字显示的电子钟都使用了晶体振荡器电路。(2)时间计数器电路时间计数器电路由秒个位和秒十位计数器,分个位和分十位计数器电路组成,秒个位和秒十位计数器,分个位和分十位计数器为60进制计数器。22模块方案选择221单片机模块方案方案一使用89C51单片机模块。其内部数据总线是8位的,虽然经过各种努力使其内部功能模块有了显著的增加,但是受其结构本身的限制很大,其模拟功能部件的增加更加困难。其指令采用的是复杂指令集(CISC),在待机状态下,耗电电流仍为3MA。方案二使用MSP430单片机模块其基本架构是16位的,同时在其内部的数据总线经过转换还存在8位的总线,在加上本身就是混合型的结构,因而对它这样的开放型的架构来说,无论扩展8位的功能模块,还是16位的功能模块,即使扩展模/数转换或数/模转换这类的功能模块也是很方便的。由于引进了FLASH型程序存储器和JTAG技术,不仅可以实现在线编程和仿真,而且使开发工具变得简便,价格也相对低廉。所以本次设计采用了MSP430单片机模块。222时钟方案选择基于MSP430单片机的实时时钟设计4方案一基本门电路搭建。用基本门电路来实现时钟发生器,电路结构复杂,故障系数大,不易测试。方案二专用时钟芯片。目前市场上已有很多实时时钟芯片。如DS12887、DS1302、DS1307、PCF8563、X1227等,芯片内都集成了时钟/日历功能,给时钟系统设计带来了很多方便。根据设计要求,在本设计中我采用了DS1302时钟芯片。223键盘模块选择方案一采用阵列式键盘。此类键盘是采用行列扫描方式,当按键较多时可以降低占用单片机的I/O数目。但是本次设计按键较少,所以不采纳。方案二采用独立式按键电路。每个键单独占有一根I/O的工作状态互不影响,此类键盘采用端口直接扫描方式。所以在设计中选择了采用独立式按键。224显示模块方案选择方案一采用液晶显示器。液晶也传统的显示器相比,最大的优点在于耗电量和体积,一般的液晶显示器的分辨率可达到720线之上,当然,液晶还在轻薄性上有着明显的优势,但是液晶显示器的可视偏转角度有限,容易产生影响拖尾现象,而且液晶显示器的寿命也很短。方案二采用数码管显示器。LED数码管能在低电压、小电流条件下驱动发光,能与CMOS、ITL电路兼容,发光响应时间极短,高频特性好,单色性好,亮度高,体积小,重量轻,抗冲击性能好,寿命长,使用寿命在10万小时以上,甚至可达100万小时。成本低,因此它被广泛用作数字仪表、数控装置、计算机的数显器件。在设计中我们也选择使用数码管。基于MSP430单片机的实时时钟设计5第三章系统硬件设计与实现31电路设计图本次电路的设计,是由键盘来设置和调节数码管上所显示的日期、时间等数据,这些数据通过MSP430模块的整理和传送,控制各个模块的正常运行,时间通过LED数码管显示器显示出来。如图31所示图31系统结构图32系统硬件设计本设计是以MSP430单片机为控制核心,其芯片具有在线编程功能,功耗低,能低电压,小电流下工作;时钟芯片采用DS1302,它是一款高性能、低功耗的实时时钟芯片,其精度和使用寿命相对其他芯片具有明显的优越性,同时具有掉电自动保存功能,可以对年、月、日、星期、时、分、秒进行设置和调整;温度检测模块由DS18B20构成,该传感器结构简单,不需要外接电路,在1085范围内精度为05,精度较好;显示部份使用LED数码管显示屏来实现,该显示屏具有高频特性好,单色性好,亮度高,体积小,重量轻,抗冲击性能好,寿命长的特点。321MSP430单片机简介强大的处理能力MSP430系列单片机是一个16位的单片机,采用了精简指令集(RISC)结构,具有丰富的寻址方式(7种源操作数寻址、4种目的操作数寻址)、简洁的27条内核指令以及大量的模拟指令;大量的寄存器以及片内数据存储都可以参加多种运算;还有高效的查表处理指令;有较高的处理速度,在8MHZ晶体驱动下指令周期为125NS。这些特点保证了可编制出高效率的源程MSP430单片机模块按键模块数码管显示模块时钟模块基于MSP430单片机的实时时钟设计6序。MSP430系列单片机的中断源较多,并且可以任意嵌套,使用时灵活方便。当系统处于省电的备用状态时,用中断请求讲它唤醒只有6US。超低功耗MSP430单片机之所以有超低的功耗,是因为其在降低芯片的电源电压及灵活而可控的运行时钟方面都有其独到之处。首先,MSP430系列单片机的电源电压采用的是1836V电压。因而可使其在1MHZ的时钟条件下运行时,芯片的电流会在200400UA左右,时钟关断模式的最低功耗只有01UA。其次,独特的时钟系统设计,在MSP430系列中有两个不同的系统时钟系统基本时钟系统和锁频(FLL和FLL时钟系统或DCO数字振荡器时钟系统。有的使用一个晶体振荡器(32768HZ),有的使用两个晶体振荡器。由系统时钟系统产生CPU和各功能所需的时钟,并且这些时钟可以在指令的控制下,打开和关闭,从而实现对总体功耗的控制。MSP430单片机引脚图如图32所示图32MSP430单片机的引脚图322复位电路的设计MSP430单片机系统复位电路功能模块共有两个复位信号一个是上电复位信号POR和上电清除信号PUC。当器件上带电或者RST/NMI引脚配置为复位模式即RST/NMI引脚产生低电平的时候,器件上会产生上电复位信号,当启动看门狗,向看门狗写入错误的安全参数值,向片内FLASH写入错误的安全参数值的时候,会引起产生上电清除信号。当产生上电复位信号时,必然会产生上电清除信号。但是当产生上电清除信号的时候缺不会产生上电复位信号。基于MSP430单片机的实时时钟设计7图33复位电路图323晶振电路设计MSP430系列芯片所有的晶振接口上的旁路电容大概都是2PF,旁路电容我们可以看成是晶振和单片机之间的负载电容,但是旁路电容随着晶振和单片机的距离以及单片机的种类,在电气焊接时的方法不同而不同,所以为了要更好的让晶振起振,选择合适的负载能力比较强的晶振。MSP430系列芯片因为是低功耗单片机,所以它的I/O流过的电流比较小,在这种情况下就必须要求晶振的谐振电阻必须要小,因为太大了I/O不能供应足够的电流让晶振正常的工作,所以必须选择合适的谐振电阻的晶振。MSP430系列芯片对晶振输出的正弦波震荡幅度也有要求,最低必须保证要有02VCC的输出电压,所以必须选择合适的谐振输出电压值的晶振。影响晶振起振的原因有晶振(ESR)、晶振启动后负载电容的大小、单片机电源电压的范围、PCB布线和电气隔离、外部的环境因素和电路板的保护涂层处理,上面具体介绍的三个参数是选择晶振时必须考虑的最主要的参数。在振荡回路中,晶体既不能过激励容易振到高次谐波上也不能欠激励不容易起振。晶体的选择至少必须考虑谐振频点,负载电容,激励功率,温度特性,长期稳定性。图34晶振电路图基于MSP430单片机的实时时钟设计8324时钟模块设计DS1302时钟内含有一个实时时钟/日历和31字节静态RAM,通过简单的串行接口与单片机进行通信,实时时钟/日历电路提供年、月、日、星期、时、分、秒的信息,每月的天数和闰年的天数可自动调整,时钟操作可通过AM/PM指示决定采用24或12小时格式。DS1302与单片机之间能简单的采用同步串行的方式进行通信,仅需用到三个口线(1)RES复位)、(2)I/O(数据线)、(3)SCLK(串行时钟),时钟RAM的读写数据以一个字节或多达31个字节的字符组方式通信。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。当RST为高电平时,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在VCC超过25V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。I/O为串行数据输入输出端,SCLK始终是输入端。图35DS1302时钟模块电路图325键盘模块设计本次设计采用了独立式键盘电路,这种键盘使用单片机的I/O口线直接连接,每个按键对应一根口线,每根I/O口线上的按键工作状态不会影响其他I/O口线上的状态。键盘的工作方式可分为编程控制方式和中断控制方式,设置各个口线为输入模式,通过中断方式或者软件查询方式获取各个口线是否有键按下的信息在如图36所示的键盘中,有键按下则口线端电平为高,否则为低电平。在按下设置键要对其时间进行调整时,可通过、对其进行调整,如果要调整多个时间点的话,在对其中一个设置完成结束后,系统会自动跳到下一个时间点,这样就能对所有的点进行调整,调整结束后返回显示调整之后的时间。基于MSP430单片机的实时时钟设计9图36按键模块电路图326显示模块设计LED数码管里面有8只发光二极管,分别记作A、B、C、D、E、F、G、DP,其中DP为小数点,每一只发光二极管都有一根电极引到外部引脚上,而另外一只引脚就连接在一起同样也引到外部引脚上,记作公共端(COM)。共阴极的LED,只要在某该段二极管加上高电平,该段即点亮,反之则暗。对共阴极LED显示器的控制采用“接地方式”即通过控制LED的“GND”引脚的电平高低来达到选通的目的,该引脚即通常所说的位选线。共阳极LED显示器控制方式则相反。两种控制方式中,共阴极LED控制方式受糸统器件功耗限制的段则不能点亮使用LED显示器时,工作电流一般为210MA/段,这样当LED处于全亮状态时,工作电流约1580MA左右。LED显示器的亮度除与工作电流有关外,还与LED的型号有关。根据显示亮度的不同划分为普通亮度和高亮度LED,高亮度LED显示器的发光强度远大于普通亮度的LED,正常情况下的发光强度越是普通LED的10倍,即在12MA/段时便可点亮。图37显示模块电路LED数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们需要的位数,因此根据LED数码管的驱动方式的不同,可以分为静态式和动态式两类。基于MSP430单片机的实时时钟设计10(1)静态显示驱动静态驱动也称直流驱动。静态驱动是指每个数码管的每个段码都由一个单片机的I/O埠进行驱动,或者使用如BCD码二十进位解码器进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O埠多,所以实际应用时必须增加解码驱动器进行驱动,增加了硬体电路的复杂性。(2)动态显示驱动数码管动态显示介面是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划“A、B、C、D、E、F、G、DP”的同名端连在一起,另外为每个数码管的公共极COM增加位元选通控制电路,位元选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是哪个数码管会显示出字形,取决于单片机对位元选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位元就显示出字形,没有选通的数码管就不会亮。透过分时轮流控制各个LED数码管的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位元数码管的点亮时间为12MS,由于人的视觉暂留现象及二极体的余晖效应,尽管实际上各位数码管并非同时点亮,但是只要扫描的速度足够快,给人的印象就是一组稳定的显示资料,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O埠,而且功耗更低。基于MSP430单片机的实时时钟设计11第四章系统的软件设计41系统设计总流程图系统设计总流程图如图41所示,接通电源之后,系统进行初始化,按下设置键,对当地时间进行读取,对时间进行需要的调整,这些数据通过数码管显示器显示出来,确认无误后才开始运行。图41系统设计总流程图42DS1302时钟流程图程序运行时要对DS1302进行设置,开始调整时间之前先对DS1302系统进行初始化,看当前系统时间是否为0,是的话给各个点校准当地的有效时间,并对时间进行上传,将有效的时间信息存储在EPROM中,然后上传给信息管理层,收到命令之后对相应的时间点进行修改,然后显示出具体的时间。具体的流程图如图42所示基于MSP430单片机的实时时钟设计12图42DS1302时钟流程图43LED数码管显示流程图LED数码管在显示时间之前,首先要对其串口工作方式进行设置,然后设置基于MSP430单片机的实时时钟设计13图43LED数码管流程图对应的地址指针,然后选择其数码段,通过传送过来的脉冲来显示出这个段位的时间,然后再次选择段位,通过下一次传送过来的脉冲来显示这个段位的时间,其他的段位时间也通过这个方法依次显示出来,当所有段位时间都显示出来之后,取段结束,时间显示成功,流程图如图43所示基于MSP430单片机的实时时钟设计14第五章系统的调试与仿真51IARFOR430简介IARSYSTEMS是全球领先的嵌入式系统开发工具和服务的供应商。公司成立于1983年,迄今已有27年,提供的产品和服务涉及到嵌入式系统的设计、开发和测试的每一个阶段,包括带有C/C编译器和调试器的集成开发环境、实时操作系统和中间件、开发套件、硬件仿真器以及状态机建模工具。国内普及的MSP430开发软件种类不多,主要有IAR公司的EMBEDDEDWORKBENCHFORMSP430简称EW430和AQ430。目前IAR的用户居多。IAREW430软件提供了工程管理,程序编辑,代码下载,调试等所有功能,并且软件界面和操作方法与IAREWFORARM等开发软件一致,因此,学会了IAREW430,就可以很顺利的过度到另一种新处理器的开发工作。52程序调试过程1创建新工作站打开IAREMBEDDEDWORKBENCH。单击“开始”“程序”IARSYSTEMSIAREMBEDDEDWORKBENCHFORMSP430V3,自动创建一个新的工作站。2创建并保存工程单击并选项中CREATNEWPROJECTINNEWWORKBENCH,选择工程类型和保存路径,同时输入文件名,单击“保存”按钮。3创建或加载源文件(1)创建源程序。单击FILENEWFILE或按快捷键CTRLN出现所需要的源程序编辑界面,编辑过程要注意标点应为英文。(2)加载源文件。单击菜单PROJECTADDFILETEST出现需要的加载源文件界面,选择相应的文件类型,出现相应的文件,选中需要加载的文件后,单击“打开”按钮。源文件加载完成后,在工程TEST下出现430P1S43和OUTPUT子目录。4保存工作贴单击FILESAVEWORKSPACE,输入文件名TESTWORKSPACE,单击“保存”按钮。保存工作站工作完成。5编译环境设置基于MSP430单片机的实时时钟设计15(1)目标芯片设置,即选择需要调试的单片机型号。(2)仿真方式设置,设置软件模拟仿真或FET在线仿真调试。(3)仿真器借口类型设置,设置并口FET,连接到单片机的JTAG接口。6工程编译和链接、调试(1)工程编译和修改源程序,在左侧工程管理中选中源文件430P1S43,双击鼠标左键,进入源程序编辑状态。(2)连接生成目标代码,源文件编译通过之后,将连接生成目标代码。通过单击PROJECTMAKE。(3)调试,在的程序通过了连接,生成目标代码之后。通过单击PROJECTDEBUGGER进入调试集成环境。分析在调试的过程中,我们也遇到了很多的困难,比如数码管不显示或者显示不全,对当地有效时间不能进行调整等等,这时候就需要我们对我们的硬件和软件进行再一次深入的研究。硬件方面我们需要对我们的板子进行整体的检查,看那些焊点是否完好,芯片有没有接触不良,软件方面就要对我们设计的程序再一次的编译,检查出一些细小的缺陷。经过多次的调试,这次的数字时钟设计终于调试成功。因考虑到制作费用和周期,编写的程序在与设计功能相同的电路板上完成验证。调试结果见图51和52图51调试结果显示图基于MSP430单片机的实时时钟设计16图52时间显示图第六章结论经过几个月的努力,我终于完成了这次的毕业设计基于MSP430单片机的实时时钟显示设计(数码管显示)。从接受到这个课题到逐步的完成,每一步的完成对我来说都有着新的体会。在大学期间,这是给我的最大的一个挑战。从拿到这个题目开始,到收集这方面的资料,一步一步的逐步完善自己的方案设计,在这个过程中可以说自己收获了很多,同时也发现了自身知识的不足,我们必须具备一定的专业基础知识,才能成功的设计出一件合格的东西。当然最重要的是学到了关于基本MSP430的一些基本应用,同时也加深了对一些常用数字时钟的了解及设计方法。但是其中遇到的问题也不少,因为我们之前学的都是51单片机,现在着手做MSP430的芯片,这是一个很有难度和挑战性的设计,所以很多的内容都是需要自己去自学的,比如有些MSP430的芯片和引脚问题不懂的时候就可以试着去参考51单片机的,两者相比较一下,一些问题就能迎刃而解,这也是一种很好的学习方法。通过这一阶段的毕业设计,我受益匪浅,不仅锻炼了良好的逻辑思维能力,而且培养了弃而不舍的求学精神和严谨作风。回顾此次毕业设计,是大学三年所学知识很好的总结。基于MSP430单片机的实时时钟设计17参考文献1魏小龙MSP430系列单片机接口技术及系统设计实例北京北京航空航天大学出版社,20022涂时亮单片机软件设计技术重庆科学文献出版社重庆分社,19873张毅刚单片机原理及应用北京高等教育出版社,20044胡大可MSP430系列16位超低功耗单片机原理与应用北京北京航空航天大学出版社,20015胡大可MSP430系列单片机C语言程序设计开发北京北京航空航天大学出版社,20036李智奇MSP430系列超低功耗单片机原理与系统设计西安西安电子科技大学出版社,20087戴佳,戴卫恒MSP430单片机C语言应用程序设计实例精讲M北京电子工业出版社,20068卢晓轩,洪利,章扬MSP430单片机与1WIRE器件的软件接口青岛科技大学学报,2006,27(3)2682719余永权,李小青,陈林康单片机应用系统的功率接口技术北京北京航空航天大学出版社,199210张齐,杜群贵单片机应用系统设计技术北京电子工业出版社200311陈光东单片机微型计算机原理与接口技术华中理工大学出版社199912曾日波多功能数字电子钟系统的设计与实现乐山师范学院学报2004,19(12)232713刘迎春MSP430单片机原理及应用教程M北京清华大学出版社,2005,145157基于MSP430单片机的实时时钟设计18附录一系统原理图123456ABCD654321DCBATITLENUMBERREVISIONSIZEBDATE13MAY201SHEETOFFILEDDOCUMENTSANDSETINGSOUT桌桌BACKUP2DBDRAWNY17182019212223252726242829303132334353637393841404342464847495051525354555657595861606263641354678910112131415164542P54P53P52P51P50P47P46P45P44P43P42P41P40P37P36P35P5P56P57XT2OUTXT2INTD0TD1TMSTCKRSTP60P61P62AVSSDVSSAVDCCP63P64P65P66P67VREFXINXOUTVEREFVREFP10P11P12P13P14P15P16P17P20P21P22P23P24P25P26P27P30P31P32P33P34MSP430F1491234567891011213141516JCON1612345678JPHEADER4X212345678JPHEADER4X2123456789101121314JPHEADER7X2VCVCY2CRYSTALC5001UFVCY1CRYSTAL123456789JCON9VC桌桌SWPBSWPBSWPBBTBATERY123J1CON3RRES2123J2CON3R10KVCR10KR10KR10KVCVCC01UFR4RES1R5RES1DDIODED1DIODEYCRSTALCCCCC2001UFC3001UFS1SWSPSTR34K7C101UFR11KVCR2POT2VCQ1PNPR610KU1BELVCABFCGDEDPY1234567ABCDEFG8DPDPDSDPY_7SEG_DPVCVC基于MSP430单片机的实时时钟设计19附录二程序设计INCLUDEINCLUDE“DS1302H“INCLUDE“LEDH“DEFINEDS1302_SECOND0X81/时钟芯片的寄存器位置,存放时间DEFINEDS1302_MINUTE0X83DEFINEDS1302_HOUR0X85DEFINEDS1302_WEEK0X8BDEFINEDS1302_DAY0X87DEFINEDS1302_MONTH0X89DEFINEDS1302_YEAR0X8DUNSIGNEDCHARDATESTRING11,TIMESTRING9,WEEK_VALUE2,TEMPBUFFER7/CHARHIDE_SEC,HIDE_MIN,HIDE_HOUR,HIDE_DAY,HIDE_WEEK,HIDE_MONTH,HIDE_YEARCHARDONE,COUNT,TEMP,FLAG,UP_FLAG,DOWN_FLAG/UNSIGNEDINTTEMP_VALUE0,TEMP_MAX0TEMP_MIN0/温度值VOIDDATETOSTRVOID/将时间年,月,日,星期数据转换成数码管显示字符串,放到数组里DATESTRINGUNSIGNEDCHARYEAR,MONTH,DAY,WEEKYEARRTC_GETYEARMONTHRTC_GETMONDAYRTC_GETDATEWEEKRTC_GETDAYIFHIDE_YEAR2就不显示,输出字符串为2007/07/22DATESTRING02DATESTRING10DATESTRING2YEAR/100DATESTRING3YEAR100基于MSP430单片机的实时时钟设计20ELSEDATESTRING0DATESTRING1DATESTRING2DATESTRING3DATESTRING4/IFHIDE_MONTH0X59/超过59秒,清零TEMP0BREAKCASE2TEMPDATAREADDS1302_MINUTE/读取分数TEMPTEMP1/分数加1UP_FLAG1IFTEMP0X59/超过59分,清零TEMP0BREAKCASE3TEMPDATAREADDS1302_HOUR/读取小时数TEMPTEMP1/小时数加1UP_FLAG1IFTEMP0X23/超过23小时,清零TEMP0BREAKCASE4TEMPDATAREADDS1302_WEEK/读取星期数TEMPTEMP1/星期数加1UP_FLAG1IFTEMP0X7TEMP1BREAKCASE5TEMPDATAREADDS1302_DAY/读取日数TEMPTEMP1/日数加1基于MSP430单片机的实时时钟设计25UP_FLAG1IFTEMP0X31TEMP1BREAKCASE6TEMPDATAREADDS1302_MONTH/读取月数TEMPTEMP1/月数加1UP_FLAG1IFTEMP0X12TEMP1BREAKCASE7TEMPDATAREADDS1302_YEAR/读取年数TEMPTEMP1/年数加1UP_FLAG1IFTEMP0X99TEMP0BREAKDEFAULTBREAKWHILEP1INDELAY_NMS2/VOIDDOWNKEY/降序按键IFP1IN/读取秒数TEMPTEMP1/秒数减1DOWN_FLAG1/数据调整后更新标志IFTEMPBREAKCASE2TEMPDATAREADDS1302_MINUTE/读取分数TEMPTEMP1/分数减1DOWN_FLAG1IFTEMP0X59TEMP0X59/小于0秒,返回59秒BREAKCASE3TEMPDATAREADDS1302_HOUR/读取小时数TEMPTEMP1/小时数减1DOWN_FLAG1IFTEMP0X00TEMP0X23BREAKCASE4TEMPDATAREADDS1302_WEEK/读取星期数TEMPTEMP1/星期数减1DOWN_FLAG1IFTEMP0X00TEMP0X07基于MSP430单片机的实时时钟设计27BREAKCASE5TEMPDATAREADDS1302_DAY/读取日数TEMPTEMP1/日数减1DOWN_FLAG1IFTEMP0X00TEMP0X31BREAKCASE6TEMPDATAREADDS1302_MONTH/读取月数TEMPTEMP1/月数减1DOWN_FLAG1IFTEMP0X00TEMP0X12BREAKCASE7TEMPDATAREADDS1302_YEAR/读取年数TEMPTEMP1/年数减1DOWN_FLAG1IFTEMP0X99TEMP0X99BREAKDEFAULTBREAKWHILEP1INDELAY_NMS2VOIDSETKEY/模式选择按键基于MSP430单片机的实时时钟设计28IFP1IN/SETKEY按一次,COUNT就加1DONE1/进入调整模式WHILEP1INDELAY_NMS2VOIDKEYDONE/按键功能执行UNSIGNEDCHARSECONDIFFLAG0/关闭时钟,停止计时DATAWRITE0X8E,0X00/写入允许TEMPDATAREADDS1302_SECONDDATAWRITE0X80,TEMP|0X80DATAWRITE0X8E,0X80/禁止写入FLAG1SETKEY/扫描模式切换按键SWITCHCOUNTCASE1DO/COUNT2,调整秒OUTKEY/扫描跳出按钮UPKEY/扫描加按钮DOWNKEY/扫描减按钮IFUP_FLAG1|DOWN_FLAG1/数据更新,重新写入新的数据DATAWRITE0X8E,0X00/写入允许基于MSP430单片机的实时时钟设计29DATAWRITE0X80,TEMP|0X80/写入新的秒数DATAWRITE0X8E,0X80/禁止写入UP_FLAG0DOWN_FLAG0HIDE_SEC/位闪计数IFHIDE_SEC3HIDE_SEC0SHOW_TIME/数码管显示数据WHILECOUNT2BREAKCASE2DO/COUNT3,调整分HIDE_SEC0OUTKEYUPKEYDOWNKEYIFTEMP0X60TEMP0IFUP_FLAG1|DOWN_FLAG1DATAWRITE0X8E,0X00/写入允许DATAWRITE0X82,TEMP/写入新的分数DATAWRITE0X8E,0X80/禁止写入UP_FLAG0DOWN_FLAG0HIDE_MINIFHIDE_MIN3HIDE_MIN0基于MSP430单片机的实时时钟设计30SHOW_TIMEWHILECOUNT3BREAKCASE3DO/COUNT4,调整小时HIDE_MIN0OUTKEYUPKEYDOWNKEYIFUP_FLAG1|DOWN_FLAG1DATAWRITE0X8E,0X00/写入允许DATAWRITE0X84,TEMP/写入新的小时数DATAWRITE0X8E,0X80/禁止写入UP_FLAG0DOWN_FLAG0HIDE_HOURIFHIDE_HOUR3HIDE_HOUR0SHOW_TIMEWHILECOUNT4BREAKCASE4DO/COUNT5,调整星期HIDE_HOUR0OUTKEYUPKEYDOWNKEYIFUP_FLAG1|DOWN_FLAG1基于MSP430单片机的实时时钟设计31DATAWRITE0X8E,0X00/写入允许DATAWRITE0X8A,TEMP/写入新的星期数DATAWRITE0X8E,0X80/禁止写入UP_FLAG0DOWN_FLAG0HIDE_WEEKIFHIDE_WEEK3HIDE_WEEK0SHOW_TIMEWHILECOUNT5BREAKCASE5

温馨提示

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

评论

0/150

提交评论