MSP430单片机之RTC-实时时钟

发布者:温暖的微风最新更新时间:2017-01-04 来源: eefocus关键字:MSP430  单片机  RTC  实时时钟 手机看文章 扫描二维码
随时随地手机看文章

  RTC-Real Time Clock是430单片机的实时时钟模块,可以配置成实时时钟模式(万年历)或者一般目的的32位计数器模式,其中实时时钟模式提供了年月日、时分秒,可以选择BCD码或者二进制格式,并且具有可编程的闹钟。RTC模块支持中断。相关寄存器请参阅430系列单片机user's guide(我用的是5438A)。

  1.计数器模式

  实时时钟控制器寄存器1 RTCMODE位被重置时,计数器模式被选择,通过软件设置可以得到一个32位的计数器。从时钟模式切换到计数器模式是通过重置计数值:RTCNT1、RTCNT2、RTCNT3、RTCNT4 和 预换算计数器:RT0PS、RT1PS。

  计数器的增量计数器来自ACLK、SMCLK或者分频之后的ACLK、SMCLK。分频系数来自分频除法器RT0PS、RT1PS。RT0PS的输出可以和RT1PS的输出级联构成32位计数器的时钟源。4个独立的8位计数器级联成为32位的计数器。这能提供计数时钟的8位、16位、24位、32位溢出中断。RTCTEV位选择各自的触发,通过设置RTCTEVIE位,一个RTCTEV能够触发一个中断。计数器RTCNT1到RTCNT4都可以单独访问,并可能被写入数值。

  2.日历模式

  当RTCMODE被置位时,万年历模式被选中。值得一提的是,万年历模式有能够计算能否被4整除的闰年算法,这个算法范围是1901年到2099年。

  2.1预分频

  分频器自动将RT0PS和RT1PS配置成为实时时钟提供一秒间隔的时钟,RT0PS源于ACLK,一般来说ACLK为32768Hz,是为了实时时钟的运行。从日历模式切换到计数器模式时,会将年月日、时分秒全部被置位1,RT0PS和RT1PS也会被置位。当RTCBCD=1时,日历寄存器会被选为BCD码,必须在时间设置之前选择好格式,改变RTCBCD的状态和切换到计数器模式影响一样。

  2.2闹钟功能

  用户可编程闹钟只有在日历模式下有效。每一个闹钟寄存器都包括都包括一个闹钟使能位,AE用来修改每一个闹钟寄存器,通过设置闹钟寄存器的AE位,可以产生多种闹钟。无效的闹钟不会通过硬件的检测,所以用户有必要检查所设闹钟是否正确。

  2.3读写实时时钟寄存器

  系统时钟和实时时钟的时钟源异步,因而读写实时时钟寄存器的时候要注意。此时实时时钟寄存器每秒钟更新一次,为了防止在更新的时候读取实时时钟数据而造成错误数据的读取,应该设置一个禁止进入的窗口,在禁止进入窗口和窗口外期间,只有RTCRDY复位有效才可以读取。在RTCRDY复位的时候,读取操作是错误的并且读取的时间数据也无效被忽略。

  2.4时钟中断

  由于我做的部分只涉及实时时钟显示,中断部分没有过多涉及,就不在讨论了。

RTC实时时钟显示部分程序结构如下:


 1 //只是部分代码,远未完整,只是说明一下框架

 2 void Init_RTC(void)//初始化RTC

 3 {

 4   RTCCTL01 = RTCSSEL_0 + RTCMODE;          // 时钟模式,每分钟中断, BCD格式

 5   unsigned int hour,min,sec;

 6   

 7   hour=key[0]*10+key[1];

 8   min =key[2]*10+key[3];

 9   sec =key[4]*10+key[5];

10   

11   SetRTCYEAR(2012); 

12   SetRTCMON(6);

13   SetRTCDAY(1);

14   SetRTCHOUR(hour);  //按键设定时间

15   SetRTCMIN(min);

16   SetRTCSEC(sec);

17 }

18 

19   while(key_C)   //扫描按键

20   {

21     

22     if(key_stime_ok)

23     {

24       char str[4];

25       key_stime_ok=0;

26       key_temp=Read_Key();//读取按键数值

27       if(key_temp != No_key)

28       {

29         key[key_C-1]=key_temp;

30         sprintf(str,"%d",key_temp);

31         PutStringEN24(60,k,str);

32         k-=16;

33         key_C--;

34       }

35     }

36   }

37 

38 void Show_Clock(void)

39 {

40   unsigned int Hour ,Minute,Second;

41   char p1[10],p2[10],p3[10];

42   for(;RTCCTL01&RTCRDY;)        _NOP(); // 等待RTC有效

43   for(;RTCCTL01&RTCRDY;)        _NOP(); 

44 

45    Hour = GetRTCHOUR();

46    Minute = GetRTCMIN();

47    Second = GetRTCSEC();

48    

49    sprintf(p1,"%02d",Hour);

50    sprintf(p2,"%02d",Minute);

51    sprintf(p3,"%02d",Second);

52    

53    PutStringEN24(1,2,p1); //用的TFT屏显示时钟

54    PutStringEN24(1,34,":");

55    PutStringEN24(1,50,p2);

56    PutStringEN24(1,82,":");

57    PutStringEN24(1,98,p3);

58 }


关键字:MSP430  单片机  RTC  实时时钟 引用地址:MSP430单片机之RTC-实时时钟

上一篇:单片机中定时器与计数器的区别
下一篇:MSP430单片机之中断服务

推荐阅读最新更新时间:2024-03-16 15:28

基于MSP430和MAX262程控滤波器的设计
在电子系统中,滤波器是数据采集、信号处理等方面不可缺少的重要环节,如信号采集前的噪声滤除,D/A转换输出的“阶梯状”滤波等等。一般的有源滤波器由运算放大器、RC元件组成,但这种滤波器的截止频率、Q值等参数都是固定不变的,在某些信号频率动态范围较宽的场合就不适宜使用。因此,有必要采取多种截止频率的滤波器,如程控滤波器,对动态范围较宽的信号进行滤波。美国Maxim公司生产的可编程滤波器芯片MAX262可以通过编程进行各种参数的设置,实现低通、高通、带通、陷波等处理,且滤波的特性参数如中心频率、品质因素等,均可以通过程序设置。 本文介绍以低功耗单片机MSP430F449为控制核心,通过凌特公司数字频率源芯片LTC69034产生时钟
[单片机]
基于<font color='red'>MSP430</font>和MAX262程控滤波器的设计
单片机微处理器看门狗监控电路
  在微处理器的工作过程中,如遇到来自电源或外界的干扰,有可能使读出的指令或程序指针地址发生错误,在这种情形下,将使微处理器错误地执行指令,或者到错误的地址去取指令,以至发生混乱,使整个系统无法正常地工作。微处理器监控电路实际上是一个复位电路,其作用是及时地发现上述情况,并向微处理器发出复位信号,以控制系统重新工作。常用的监控电路具有两个功能,一个功能是对电源电压的监控,通过对电源电压波动范围的设置,此电路通过电压比较器监视电源电压,一旦电源电压低于设定值,比较器的输出控制产生复位电路,使系统重新工作。监控电路的另一个功能是对执行程序的监视,此电路的框图如图1所示,它由一个计数器和复位电路构成,当计数器计数溢出时,将控制复位电路产生
[单片机]
<font color='red'>单片机</font>微处理器看门狗监控电路
单片机应用实现网络上对远程机房设备无人监控解析方案
1 以太网控制器 台湾Realtek公司的以太网控制器是一种符合IEEE802.3以太网标准的控制器,有RTL8019、RTL8029和RTL8139等系列。其中RTL8019是ISA总线的,较易与8位MCU实现接口。RTL8029和RTL8139是PCI总线的,不能直接与8位的MCU接口,需要一个PCI接口进行转接。考虑到目前RTL8029在市场上较容易购买,故采用RTL8029以太网控制器作为网络接口。 RTL8029内部已经包含有整个网络接口层的协议 (PHY层和MAC层协议),因此应用起来较简单。用户不必考虑链路控制问题,而只需考虑单片机如何从RTL8029中去读TCP/IP协议的数据即可。 PCI总线信号有3.3V
[单片机]
<font color='red'>单片机</font>应用实现网络上对远程机房设备无人监控解析方案
干簧管计数器中单片机中断的设计实现
  在本实验中,要设计一个干簧管计数器,并用数码管来显示。在本例中,还要接触单片机一个重要的功能“中断”。   干簧管是干式舌簧管的简称,是一种有触点的无源电子开关元件,具有结构简单,体积小便于控制等优点,其外壳一般是一根密封的玻璃营,管中装有两个铁质的弹性簧片电板,还灌有一种叫金属铑的惰性气体。下图是它的结构示意图。   平时,玻璃管中的两个由特殊材料制成的簧片是分开的。   当有磁性物质靠近玻璃管时,在磁场磁力线的作用下,管内的两个簧片被磁化而互相吸引接触,簧片就会吸合在一起,使结点所接的电路连通。外磁力消失后,两个簧片由于本身的弹性而分开,线路也就断开了。因此,作为一种利用磁场信号来控制的线路开关器件,干簧管可以作
[单片机]
干簧管计数器中<font color='red'>单片机</font>中断的设计实现
如何降低MCU系统功耗?
大家在做MCU系统开发的时候,是否也碰到过降低MCU系统功耗的需求? MCU系统整板功耗是个综合的数据,包括MCU功耗以及外部器件功耗,在此我们主要介绍如何降低MCU的功耗: 可以在满足应用的前提下,降低MCU的运行主频,可以降低MCU功耗; 可以选择关闭不用的外设,以减低MCU功耗; 可以选择任务空闲时进入低功耗模式,包括睡眠模式、深度睡眠模式或待机模式,以降低MCU功耗; 在选择深度睡眠模式时,需要将不用的引脚配置为模拟输入模式,包括芯片内部没有引出的引脚,以降低MCU功耗; 排查MCU最小系统外部看是否有内外部上下拉电阻不同的地方,比如JTAG端口内部有配置上下拉电阻,外部不要接反
[汽车电子]
如何降低<font color='red'>MCU</font>系统功耗?
学习笔记 从零开始学单片机(2) 全八段数码管显示
开发板上有八个八段数码管,现在把它点亮它。数码管显示有动态和静态两种,本质上没有什么区别,由于单片机接口有限,不可能一对一,所以依次让每一个数码管点亮,那么从视觉角度上看就是一起亮起来。但是动态显示时,亮度较低。 下面的图是一个八段数码管的原理图,有共阴极和共阳极两种解法,这里是共阴极接法。a,b,c,d,e,f,g,dp分别对应八个数码管。 为了让八个数码管连起来,该开发板使用了两个八进制三态非反转透明锁存器,74HC573。 它的特性是: ×输出能直接接到 CMOS,NMOS 和 TTL 接口上 ×操作电压范围:2.0V~6.0V ×低输入电流:1.0uA ×CMOS 器件的高噪声抵抗特性 D0
[单片机]
学习笔记 从零开始学<font color='red'>单片机</font>(2) 全八段数码管显示
51单片机—LCD1602显示模块
- 什么是LCD1602 LCD:Liquid Crystal Display—液晶显示器,简称LCD,其主要显示原理是以电流刺激液晶分子产生点、线、面并配合背部灯管构成画面,通常把各种液晶显示器都直接叫做液晶。 1602:液晶的命名通常都是按照显示字符的行数或液晶点阵的行、列数来的。1602的意思是每行可以显示16个字符,一共可以显示俩行,类似还有0801、1601等。 注意:此类液晶都是字符液晶,即只能显示ASCII码字符,如数字、大小写字母、各种符号等。 LCD1602显示如图: - 如何操作LCD1602 在操作之前先要了解LCD1602的几个重要知识点: RS:数据/命令选择端,它控制着指令操作和数据操作
[单片机]
51<font color='red'>单片机</font>—LCD1602显示模块
单片机实现可编程逻辑器件的配置
    摘要: 介绍基于SRAM的可重配置PLD的原理;通过对多种串行配置的比较,提出单片机与存储器串行配置方式;从系统复杂度、可靠性和经济性等方面进行比较和分析。     关键词: 复杂可编程逻辑器件 静态随机存储器 被动串行 引言 基于SRAM(静态随机存储器)的可得配置PLD(可编程逻辑器件)的出现,为系统设计者动态改变运行电路中PLD的逻辑功能创造了条件。PLD使用SRAM单元来保存配置数据决定了PLD内部的互连和功能。改变这些数据,也就改变了器件的逻辑功能。由于SRAM的数据是易失的,因此,这些数据必须保存在PLD器件以外的EPROM、EEPROM或Flash ROM等非易失存储器
[应用]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved