关于(单片机)msp430的时钟资料
MSP430系统时钟与低功耗讲义

低频振荡器VLO
内部集成了一个低频振荡器VLO,值是12kHz,频率受温度和 供电电压影响(范围4kHz~20kHz)。 一般用于对频率精度要求不高的场合。
MSP430系统时钟与低功耗
MSP430G2553引脚图
MSP430系统时钟与低功耗
举例
例1:将MSP430G2553的时钟设置为MCLK和SMCLK,且均为8MHz ,ACLK设为32.768kHz。(芯片外接32.768kHz手表晶振) DCOCTL=CALDCO_8MHZ; BCSCTL1=CALBC1_8MHZ;
void main(void) {
WDTCTL = WDTPW + WDTHOLD; //关闭看门狗定时器
GPIO_Init();
//初始化GPIO
_enable_interrupts();
//等同_EINT,使能总中断
while(1)
{
__delay_cycles(1000000); //与CPU时钟相关的长延时
例4:将MSP430G2553的时钟设置:MCLK为4MHZ,SMCLK为2MHZ, ACLK设为32.768kHz.(芯片外接32.768kHz手表晶振) DCOCTL=CALDCO_8MHZ; BCSCTL1=CALBC1_8MHZ; BCSCTL2|=DIVM_1+DIVS_2;
MSP430系统时钟与低功耗
MSP430系统时钟与低功耗
P1OUT ^= BIT0;
//LED亮灭状态改变
P1OUT ^= BIT6;
//LED亮灭状态改变
}
}
MSP430系统时钟与低功耗
void GPIO_Init()
基于msp430单片机的数字时钟

摘要:日期时间显示器可以说是各种各样,随处可见,这里我们着重设计一款超低功耗的,显示内容较为丰富的日期时间显示器。
该日期时间显示器是基于MSP430单片机和LCD1602液晶显示器。
MSP430单片机最显著的特点是能够超低功耗运行,正是由于这一特点,用MSP430来做日期时间显示器,可以很有效地降低功耗,节约电能。
同时LCD1602是微功耗的液晶显示器,显示内容丰富。
目录摘要 (1)一、MSP430单片机最小系统 (3)二、LCD1602液晶显示器 (3)三、按键和闹铃 (6)四、主程序框图 (7)五、MSP430单片机的内部设置 (8)1、时钟系统与低功耗模式 (8)2、I/O口 (9)3、Basic Timer基础定时器 (10)一、MSP430单片机最小系统在传统的微处理器系统中,要让系统运行,至少要提供电源、时钟和复位信号,而在MSP430单片机中,内部就带有复位电路(BOR)、片内数控时钟源(DCO),因此只需外加电源即可构成可运行的最小系统。
由于内部DCO误差很大(20%),且受温度影响严重。
只适合为CPU运算提供时钟,或在对时间误图1差要求极其宽松的场合。
但是在这里我们要做日期时间显示器,就必须通过外部晶体作为时钟源。
MSP430单片机通常使用32.768kHz的手表晶振作为外部时钟。
MSP430最小系统设计如图1所示。
二、LCD1602液晶显示器LCD1602是工业字符型液晶,能够同时显示16×02即32个字符。
市面上字符液晶绝大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此表1HD44780写的控制程序可以很方便地应用于市场上大部分的字符型液晶。
字符型LCD通常有14个引脚线或16个引脚线,多出来的两条线是背光电源线VCC (15脚)和地线GND(16脚),其控制原理与14脚的LCD完全相同。
管脚具体定义如表1所示。
HD44780内置了DDRAM、CGROM和CGRAM。
MSP430单片机的时钟系统

fDCOCLK=D×(N+1) ×fFLLREFCLK/n 其中,D由3位FLLD控制位确定,取值为1,2,4,8,16,32;
N由10位FLLN控制位确定,取值范围为1~1023;
n由3位FLLREFDIV控制位确定,取值为1,2,4,8,12,16。
DCO模块操作(1/4)
DCOCLK频率调整过程:
➢稳定的频率。以满足定时应用,如实时时钟RTC;
➢低Q值振荡器。用于保证开始及停止操作最小时间延迟。
MSP430X5XX / 6XX系列时钟系统模块(1/3)
夜 空 中 最 亮的 星,在 广播声 中响起 ,我正 独自漫 步在小 道上, 回忆着 最美的 星 空 。 那 一 年翻惊 摇落, 破釜沉 舟,用 尽了所 有力气 。我改 变了自 己,我 收获了 最 美 好 的 经 历。我 在星空 的见证 下,翻 开这段 岁月, 酸甜苦 辣,待 君品尝 。生活
➢XT2CLK 高频时钟源:可以使用标准晶振,振荡器或者 外部时钟源输入4MHz~32MHz。
➢VLOCLK 低功耗低频内部时钟源:典型值为10KHZ;
➢REFOCLK 低频修整内部参考时钟源:典型值为 32768Hz,作为FLL基准时钟源;
➢DCOCLK 片内数字控制时钟源:通过FLL模块来稳定。
时钟系统模块设计要求(1/1)
单片机各部件能有条不紊自动工作,实际上是在其系统时 钟作用下,控制器指挥芯片内各个部件自动协调工作,使内部 逻辑硬件产生各种操作所需的脉冲信号而实现的。
为适应系统和具体应用需求,单片机的系统时钟必须满足 以下不同要求:
➢高频率。用于对系统硬件需求和外部事件快速反应;
➢低频率。用于降低电流消耗;
➢UCS模块还有一个内部的振荡器(MODOSC)。它主要 给FLASH模块控制器或其他任意需要的模块提供时钟。
MSP430的时钟设置

MSP430的时钟设置MSP430大部分都有三时钟脉冲可供运行时选择,这三个时钟是,1)辅助时钟ACLK;2)系统主时钟MCLK;3)子系统时钟SMCLK。
这三种时钟脉冲的选择主要靠下面三个控制寄存器来完成,这三个控制寄存器是1)控制寄存器DCOCT其存储单元地址是56h;2) 基本始终控制寄存器1,BCSCTL1,地址57h;3) 基本始终控制寄存器2,BCSCTL2,地址58h。
下面对这三个寄存器的控制的软件状态状态进行介绍。
1)控制寄存器DCOCTLDCO2;DCO1;DCO0这三位共八个状态,控制时钟脉冲的8个频段。
000~111对应0~7;频率由低到高8个频段。
MOD.4~MOD.0这5为共32种状态,定义在32个周期中插入插入其他频率。
DCO2=0x80;DCO1=0x40;DCO0=0x20;MOD4=0x10;MOD3=0x08;MOD2=0x04;MOD1=0x02;MOD0=0x01其中TX2OFF为0,开启TX2振荡器,为1关闭;XTS=0开启低频模式,1开启高频模式;DIVA1和DIVA0控制分频模式0 0 不分频0 1 2分频1 0 4分频1 1 8分频TX5V一般设置为0RSEL2~RSEL0三位决定八个频段的不同频率,这样,RSEL2~RSEL0和DCO2~DCO0共可实现8*8=64个不同的频率。
由于430没有位操作,所以定义了每一位状态对应的名称:TX2OFF=0x80TXS=0x40DIVA1=0x20DIVA0=0x10TX5V=0x08RSEL2=0x04RSEL1=0x02RSEL0=0x01也就是每位所在的位置为1,其余位为0,这样,要对某一位操作,就可通过运算,在不改变其他位的情况下,对某一位进行置1或清0(如何做后面讲)。
SELM.1- SELM.0DIVM.1- DIVM.0SELS时钟源选择DIVS.1-DIVS.0 DCOR0 0 默认DCOCLK0 0默认MCLK=DCOCLK00 默认SMCLK=MCLK选择电阻0 1选择DCOCLK0 1 2分频选择SMCLK01 MCLK 2分频内电阻1 0 选择XT2CLK1 0 4分频默认选择DCOCLK10 MCLK 4分频或外电阻1 1 选择LFXTICLK1 18分频11 MCLK 8分频SELM1=0x80;SELM0=0x40;DIVM1=0x20;DIVM0=0x10;SELS=0x08;DIVS1=0x04;DIVS0=0x02;DCOR=0x01;下面看如何让在保证其他位不变的情况下给某一位清0或置1.例1要给BCSCTL2的bit3清0。
MSP430时钟系统详解

2
while(1) { P1OUT = 0x40; _delay_cycles(100); P1OUT = 0; _delay_cycles(5000); } }
// 开启 LED // 关闭 LED
2、CPU 运行在晶振(32768Hz)时钟下: 时钟下: 晶体频率为 32768 赫兹,约 3 倍的 VLO。如果我们在前面的代码中使用晶振,指示灯应闪 烁大约每秒一次。 你知道为什么 32768 赫兹是一个标准?这是因为这个数字是 2 的 15 次方, 因此很容易用简单的数字计数电路,以每秒一次获得率 ——手表和其他时间时基。认识到 ACLK 来自外部晶振时钟。 #include <msp430g2231.h> void main(void) { WDTCTL = WDTPW + WDTHOLD; // 关闭看门狗定时器 P1DIR = 0x41; // P1.0 和 P1.6 配置输出 P1OUT = 0x01; // 开启 P1.0 BCSCTL3 |= LFXT1S_0; // LFXT1 = 32768Hz 晶振 while(IFG1 & OFIFG) { IFG1 &= ~OFIFG; // 清除 OSCFault 标志 _delay_cycles(100000); // 为可见的标志延时 } P1OUT = 0; // 关闭 P1 __bis_SR_register(SCG1 + SCG0); // 关闭 DCO BCSCTL2 |= SELM_3 + DIVM_3; // MCLK = 32768/8 while(1) { P1OUT = 0x40; // 开启 LED _delay_cycles(100); P1OUT = 0; / / 关闭 LED _delay_cycles(5000); } } 3、CPU 运行在晶振(32768Hz)和 DCO 时钟下: 时钟下: 最慢的频率,我们可以运行 DCO 约在 1MHz(这也是默认速度) 。因此,我们将开始切换 MCLK 到 DCO 下。在大多数系统中,你会希望 ACLK 上运行的 VLO 或 32768 赫兹晶振。 由于 ACLK 在我们目前的代码是在晶体上运行,我们会打开 DCO 计算。
MSP430单片机实现时钟显示

MSP430单片机实现时钟显示MSP430单片机实现时钟显示MSP430系列振荡器是一种超低功耗存储器,它的每一系列根据不同的需要由不同的模块组成,其FLASH系列使高效电子系统变得轻巧。
FLASH驱动器同时也具有很强的灵活性。
同时为了在低控制器strong的驱动下得到较高的稳定频率,某些MSP430器件上使用了锁频技术FLL或增强型锁频环技术FLL+。
如MSP430F412的时钟模块中使用了FLL+技术,这样可以得到稳定的频率。
MSP430F413的典型工作电流为350uA(1MHz,3V)工作电压为1.8V;-;3.6V,由于它的程序代码熔丝保护,多次可擦写功能的FLASH 程序存储器,96字段的电阻电容可以直接驱动通常应用在测量频率上的字段型LCD,从而广泛应用于要求功耗低、时钟准确度高、进行实时时钟显示以及定时处理某些操作的仪表(如电子水表、电表、煤气表等)中。
本文介绍用MSP430F413实现实时时钟及其显示。
在驱动电路中,液晶可以等效为设备。
两个电极分别为公共极与段极。
公共极由CMOn信号驱动,段极由SEGn信号驱动。
由此可以得到4种驱动方法。
(1)静态驱动:使用一个引脚作为液晶公共端COM0,而每一段段极需要另一个引脚驱动。
(2)2MUX驱动:使用两个引脚作为液晶公共端COM0、COM1每两段段极需要另一引脚驱动。
(3)LCDUX驱动:使用三个引脚作为液晶公共端COM0、COM1、COM2,每3段段极需要另一引脚驱动。
(4)4MUX驱动:使用4个引脚作为液晶公共端COM0、COM1、COM2,每4段段极需要另一引脚驱动。
MSP430对液晶的驱动主要是通过液晶模块的寄存器LCD3ML和LCDMx来实现。
而驱动能力的不同也就是LCDMx寄存器的数量不同。
显示缓存器LCDMx越多,缓存越大,显示的内容就越多。
MSP430F413集成了96段液晶驱动器,具有较强的显示功能。
在本文中MSP430F413采用了4MUX方式,其显示缓存器中位与液晶段的对应关系如图1所示。
MSP430时钟配置

MSP430 频率(时钟)配置MSP430时钟:1、在MSP430单片机中一共有四个时钟源:(1)LFXT1CLK,为低速/高速晶振源,通常接32.768kHz晶振(2)XT2CLK,可选高频振荡器,外接标准高速晶振,通常是接8Mhz,也可以接400kHz~16Mhz;(3)DCOCLK,数控振荡器,为内部时钟,由RC震荡回路构成,受温度和电压的影响较大;若外部不接稳定的晶振电路,直接由内部时钟工作,则会因环境变化而导致性能不稳定。
(4)VLOCLK,内部低频振荡器,12kHz标准振荡器。
(要得到标准的12k则必须外接32768等晶振)2、在MSP430单片机内部一共有三个时钟系统:(1)ACLK:辅助时钟,通常由LFXT1CLK或VLOCLK作为时钟源,可以通过软件控制更改时钟的分频系数;(2)MCLK:主时钟,为系统内核提供时钟,它可以通过软件从四个时钟源选择或者从四个时钟源分频后选择为主时钟;(3)SMCLK:子时钟,也是可以由软件选择时钟源。
3、MSP430的时钟设置包括3个寄存器,DCOCTL、BCSCTL1、BCSCTL2、BCSCTL3MOD0~MOD4: Modulation Bit,频率的微调。
一般不需要DCO的场合保持默认初始值就行了。
XT5V: 1.DIVA0~DIVA1:选择ACLK的分频系数。
DIVA=0,1,2,3,ACLK的分频系数分别是1,2,4,8;XTS: 选择LFXT1工作在低频晶体模式(XTS=0)还是高频晶体模式(XTS=1)。
XT2OFF: 控制XT2振荡器的开启(XT2OFF=0)与关闭(XT2OFF=1)。
正常情况下把XT2OFF复位就可以了.DCOR: 0,选择内部电阻;1,选择外部电阻DIVS0~DIVS1: DIVS=0,1,2,3对应SMCLK的分频因子为1,2,4,8SELS: 选择SMCLK的时钟源, 0:DCOCLK; 1:XT2CLK/LFXTCLK.DIVM0~1: 选择MCLK的分频因子, DIVM=0,1,2,3对应分频因子为1,2,4,8.SELM0~1: 选择MCLK的时钟源, 0,1:DCOCLK, 2:XT2CLK, 3:LFXT1CLK我用的时候一般都把SMCLK与MCLK的时钟源选择为XT2。
MSP430系统时钟寄存器详解

MSP430系统时钟寄存器详解MSP430系统时钟寄存器详解一、时钟源种类LFXT1CLK低频时钟源——MSP430每一种器件都有XT2CLK高频时钟源——存在于X13X、X14X、X15X、X16X、X43X、X44X等DCOCLK数字控制RC振荡器二、时钟源说明ACLK辅助时钟:ACLK是LFXT1CLK(低频时钟源)信号经过1、2、4、8分频得到的。
ACLK可由软件选为各个外围模块的时钟信号,一般用于低速外设。
MCLK系统主时钟:MCLK可由软件选择来自LFXT1CLK(低频时钟源)、XT2CLK(高频时钟源)、DCOCLK(数字控制RC振荡器)三者之一,然后经过1、2、4、8分频得到。
MCLK主要用于CPU和系统。
SMCLK子系统时钟:可由软件选择来自LFXT1CLK(低频时钟源)和DCOCLK(数字控制RC振荡器),或者、XT2CLK(高频时钟源)和DCOCLK(数字控制RC振荡器)具体由器件决定,,然后经过1、2、4、8分频得到。
SMCLK主要用于高速外围模块。
三、系统时钟寄存器说明1.DCOCTLDCO控制寄存器,各位定义:DCO.0——DCO.2定义8种频率之一,可分段调节DCOCLK频率,相邻两种频率相差10%。
而频率由注入直流发生器的电流定义。
MOD.O——MOD.4定义在32个DCO周期中插入的fdco+l周期个数,而在余下的DCO周期中为fDco周期,控制切换DCO和DCO+1选择的两种频率。
如果DCO常数为7,表示已经选择最高颂率,此时不能利用MOD.O-MOD.4进行频率调整。
2.BCSCTL1基本时钟系统控制寄存器1,各位定义:XT2OFF=O,XT2振荡器开启;XT2OFF=1,XT2振疡器关闭(默认XT2关闭)。
XTS控制LFXTl 工作模武,选择需结合实际晶体振荡器连接情况。
XTS=O,LFXTl工作在低频模式 (默认低频模式);XTS=1,LFXTl工作在高频模式(必须连接有相应高频时钟源)。
MSP430时钟分析

MSP430时钟分析最近开始学习MSP430,在所有单片机学习中,时钟的设置无疑是最基本的一项工作!尤其对于现在的单片机,外部有低速,高速两种晶振,内部还有PLL 的内部时钟源,设置好系统工作的时钟则是工作完美开始的表现。
我一共用了两种系列的430 单片机,MSP430F149 和MSP430F437,系列的不同,时钟的设置也略有不同,下面从149 的时钟一步一步来说吧!在f149 中,基础时钟是被叫做basic clock module,其一共有三个时钟源:一个LFXT1CLK,为低速/高速晶振源,通常接32.768khz,也可以接(400khz~8Mhz)一个为XT2CLK,外接标准高速晶振,通常是接8Mhz,也可以接(400khz~8Mhz)还有一个叫DCOCLK,为内部晶振,有RC震荡回路构成。
在430 内部一共有三个时钟系统一个为ACLK,通常由LFXT1CLK 作为时钟源,可以通过软件控制改时钟的分频系树。
一个为MCLK,即Main CLK,一听就知道是主时钟单元,为系统内核提供时钟,它可以通过软件从三个时钟源选择,一个为SMCLK,称作辅助主时钟,也是可以由软件选择时钟源。
Basic Clock Module Registers(基础时钟寄存器)DCO control register DCOCTLBasic clock system control 1 BCSCTL1Basic clock system control 2 BCSCTL2SFR interrupt enable register 1 IE1SFR interrupt flag register 1 IFG1DCOCTL 寄存器是用来配置DCOCLK 的,这里暂且不提BCSCTL1 与BCSCTL2 寄存器则显得比较重要,这两个寄存器控制了你整个系统中430 的工作时钟系统。
BCSCTL1 寄存器:7 654 3 210XT2OFF XTS DIVAx XT5V RSELxXT20FF:用来控制XT2 晶振的开启和关闭,置1 时关闭,置0 时,开启XTS:用来选择低速晶体的工作模式(可忽略)DIVAx:用来选择ACLK 的分频系数XT5V: 无用。
基于MSP430单片机的电子时钟设计说明

基于MSP430单片机的电子时钟设计说明
一、需求分析
本设计的目标是基于MSP430单片机来设计一款电子时钟。
电子时钟
可以用来显示当前的时间,比如时、分、秒;同时还具有闹钟功能,即可
以设置每天一些时刻提醒用户,提醒用户做件事情。
设计时,要注意以下
几个方面:
1、时间流逝的准确性:电子时钟的核心功能是准确显示当前的时间,即时针、分针、秒针在正确地流逝;同时也要考虑时间的准确性,用户可
以设置任意时间,时钟计时要按照设置的时间进行计时。
2、系统稳定性:电子时钟的系统稳定性极其重要,不能因为短暂的
停电等扰动,导致系统失去稳定,时间乱跳。
3、外观设计:在外观设计方面,电子时钟要求具有精美、简约的外观,而且要求清晰显示时间内容,用户可以视觉上感受时间的运行,同时
操作简单,操作界面友好;同时,为了满足用户的要求,要能够设置闹钟,并且有红色指示灯和蜂鸣器来提醒。
二、设计要求
1、MSP430单片机:采用MSP430F169作为主控制器,芯片的16位CPU具有较强的数据处理能力,可以有效调整时间性能,满足电子时钟计
时要求。
2、时间及闹钟设置:采用4×4键盘模块作为时间及闹钟设置。
MSP430编程(一)—— 时钟配置

MSP430编程(一)——时钟配置geweilin 2010.03.13笔者认为这篇文章只适合msp430的初学者,如果你已经熟悉430编程,那么这篇文章对你的用途不大。
msp430的时钟非常灵活,这篇文章将以msp430x1xx为例主要介绍器件的基本时钟模块(Basic Clock Module,以下称:时基模块)及其配置方法(以下所述均是针对msp430x1xx系列,其它系列读者可以参考相应的User’s guide)。
(一) 时基模块简介msp430的时基模块支持低功耗和超低功耗。
使用3个内部时钟信号,用户可以在性能和低功耗之间找到最佳的平衡点。
这个时基模块可以被配置为不使用任何外部元件、使用一个电阻、使用一个或两个晶体振荡器或陶瓷振荡器,所有这些完全可有软件控制。
时基模块包括2个或3个时钟源:□ LFXT1CLK: 低频/高频振荡器,既可以使用低频的32768HZ的手表晶体,也可以使用450KHZ- 8MHZ的标准的晶体振荡器或者陶瓷振荡器。
□ XT2CLK: 可选的高频振荡器,可以使用标准的晶体振荡器或者陶瓷振荡器,也可以使用450KHZ- 8MHZ 的外部时钟源。
□ DCOCLK: 内部RC型数控振荡器。
可以从时基模块获得3个时钟信号:□ ACLK: 辅助时钟,ACLK由LFXT1CLK时钟源经过1、2、4或者8分频得到,他可由软件选择配置到某个特定的外设上。
□ MCLK: 系统主时钟,MCLK可由软件选择LFXT1CLK、XT2CLK(如果可用的话)、或者DCOCLK作为时钟源,经过1、2、4或者8分频后得到,它被用来供CPU和系统使用。
□ SMCLK: 系统子时钟,SMCLK可由软件选择LFXT1CLK、XT2CLK(如果有的话)、或者DCOCLK作为时钟源,经过1、2、4或者8分频后得到,他可由软件选择供某个外设使用。
时基模块的框图如图1所示:注意:对于msp430x11x和msp430x12xx系列的单片机没有XT2振荡器,而是由LFXT1CLK代替XT2CLK。
msp430时钟配置

近期要参加电子设计大赛,我们的微处理器选择了msp430(高性能不说,关键很多系列的芯片可到TI官网免费申请到),本人负责软件,之前并没有深入接触过msp430系列的单片机,但还稍稍有点51的底子,现将本人学习430的一点小心得与大家分享~********************************基于MSP430F169******************************在MSP430单片机中,一个时钟周期 = MCLK晶振的倒数。
如果MCLK是8MHz,则一个时钟周期为1/8us。
MSP430单片机的时钟模块主要包括:三个时钟:辅助时钟ACLK 、主时钟MCLK 、子系统时钟SMCLK三个振荡器:低频时钟源LFXT1 (一般外接32768HZ的手表晶振)、高频时钟源XT2(一般外接8MHZ晶振)、数字控制RC振荡器(系统默认是800KHZ)而MSP430单片机工作所需时钟就是由这些振荡器振荡后经处理产生的。
(1)ACLK:是LFXT1CLK信号经1/2/4/8分频后得到的,主要用作低速外围的时钟(2)MCLK:是LFXT1CLK,XT2CLK,DCOCLK的三者之一决定,由软件选择,然后经1/2/4/8分频后得到,主要用于CPU和系统(3)SMCLK:可由LFXT1CLK和DCOCLK,或者XT2CLK与DCOCLK决定,然后经1/2/4/8分频后得到,主要用于高速外围模块*************************************寄存器配置************************************MSP430的时钟模块由DCOCTL, BCSCTL1, BCSCTL2, IE1, IFG1这五个寄存器来确定,具体的功能如下所示:(1)DCOCTL: DCO控制寄存器,地址为56H,初始值为60H// 7 6 5 4 3 2 1 0// DCO2 DCO1 DCO0 MOD4 MOD3 MOD2 MOD1 MOD0//// DCO0~DCO2: DCO Select Bit,定义了8种频率之一,而频率由注入直流发生器的电流定义// MOD0~MOD4: Modulation Bit,频率的微调(2)BCSCTL1(ACLK): Basic Clock System Control 1,地址为58H,初始值为84H// 7 6 5 4 3 2 1 0// XT2OFF XTS DIVA1 DIVA0 XT5V RSEL2 RSEL1 RSEL0//// RSEL2~RSEL0: 选择某个内部电阻以决定标称频率(0最低,7最高)// XT5V: 1,该比特未用,必须选择复位// DIVA0~DIVA1: 选择ACLK的分频系数。
基于MSP430单片机的实时时钟设计

基于MSP430单片机的实时时钟设计基于MSP430单片机的实时时钟设计是一个简单而有趣的项目,可以将当前的时间以数码管的形式显示出来。
本文将介绍如何使用MSP430单片机和数码管来实现实时时钟,包括时钟芯片、显示部分的接线和编程等方面。
首先,我们需要准备的材料和工具有:1. MSP430单片机开发板(例如MSP-EXP430G2 LaunchPad)2.DS1302实时时钟芯片3.4位共阳数码管(例如TM1640)4.杜邦线若干5.面包板6.12MHz晶振7.调试器和编程软件(例如MSP-FET430UIF和MSP430-GCC)接下来,我们开始进行实时时钟的设计。
1.硬件连接:a.将MSP430单片机开发板连接到计算机,并打开编程软件。
b.将DS1302实时时钟芯片插入面包板,并根据其引脚定义连接到MSP430单片机的端口。
c.将4位共阳数码管插入面包板,并根据其引脚定义连接到MSP430单片机的端口。
2.编程设计:a.在编程软件中创建一个新的项目,选择MSP430单片机的适当型号,并设置时钟频率为12MHz。
b.导入DS1302和TM1640的相关库文件,并进行必要的初始化设置。
c.配置MSP430单片机的端口,使其与DS1302和TM1640的引脚连接匹配。
d.编写程序代码,实现实时时钟的功能,包括获取当前时间、将时间转换为数码管的显示格式以及控制数码管进行显示。
3.调试和测试:a.将MSP430单片机从计算机中断开,并将其与电源连接,确保其正常运行。
b.观察数码管是否正确显示当前时间,包括小时、分钟和秒数。
c.如果有错误或不完善的地方,重新调试和修改程序代码,直到实时时钟正常工作。
通过上述步骤,我们可以成功地设计一个基于MSP430单片机的实时时钟(数码管显示)。
这个项目可以作为学习和实践嵌入式系统和单片机编程的绝佳机会,同时也可以作为一个有用和有趣的作品展示给别人。
这个设计还可以进一步扩展和改进,例如添加日期显示功能、设置闹钟功能等。
关于(单片机)msp430的时钟资料

关于(单⽚机)msp430的时钟资料msp430f5419/38学习笔记之时钟系统(2011-11-30 10:41:30)分类: msp430标签:msp430f541xmsp430f543xucs时钟系统注:msp5419/38中,如果你使⽤SMCLK做TIMER_A的时钟,那么进⼊低功耗3或低功耗4是不会把SMCLK关掉的,这点5系列和其他系列的不⼀样。
UCS模块是⼀个低成本超低功耗系统,通过选择使⽤3个内部时钟信号,⽤户可以得到性能和功耗的最佳平衡点。
UCS可以由软件配置其⼯作模式,如配置成:不需要任何外部器件、使⽤ 1或 2个外部晶振等。
⼀、时钟系统UCS模块具有5个时钟源:XT1CLK:低频/⾼频振荡器,既可以与低频 32768HZ钟振、标准晶振、外部振荡器,⼜可以与外部4M-32MHZ时钟源⼀起使⽤,XT1CLK可以作为FLL模块内部的参考时钟。
有些芯⽚XT1CLK只允许使⽤外部的低频晶振,具体可参考数据⼿册;XT2CLK:可选⾼频振荡器,可与标准晶振,振荡器或者 4MHZ~32MHZ外部时钟源⼀起使⽤;VLOCLK:内部低功耗、低频振荡器,频率典型值为10KHZ;REFOCLK:内部低频振荡器,典型值为 32768HZ,可作为 FLL基准时钟源;DCOCLK:可以通过 FLL来稳定的内部数字控制振荡器(DCO);DCOCLK经过 FLL分频后可得DCOCLKDIV。
UCS模块可以提供3种时钟信号:ACLK:辅时钟;MCLK:系统主时钟;SMCLK:⼦系统主时钟。
⼆、UCS操作PUC之后,UCS的默认配置模式如下:XT1CLK 选择LF模式下的XT1作为时钟源,ACLK 选择 XT1CLK 作为时钟源;MCLK 选择DCOCLKDIV作为时钟源;SMCLK 选择DCOCLKDIV作为时钟源;FLL操作使能,FLL基准时钟(FLLREFCLK)选择XT1CLK;XIN 和 XOUT作普通IO ⼝使⽤,禁⽌了 XT1 功能,直到 I/O ⼝重新配置为 XT1 模式;如果有 XT2IN 和XT2OUT,则⼀并配置为普通 IO ⼝,禁⽌ XT2 功能。
MSP430教程9:MSP430单片机时钟模块

MSP430的时钟模块由低速晶体振荡器LFXT1、高速晶体振荡器XT2(MSP430 X11X,MSP430X12X没有)、数字控制振荡器DCO、琐相环FLL(MSP430X16X以上包括)和增强型琐相环FLL+等部件组成。
MSP430X1XX基本时钟模块有三个时钟输入源LFXT1CLK(低速32768Hz,高速4 50Hz到8MHz)、XT2CLK(450Hz到8MHz)、DCOCLK,提供以下三种时钟信号1.ACLK辅助时钟:由LFXT1CLK信号经1、2、4、8分频后得到,可以由软件选作各个外围模块的时钟信号,一般用于低速外设。
2.MCLK系统主时钟:MCLK可由软件选择来自LFXT1CLK、XT2CLK、DCOCLK三者之一,然后经1、2、4、8分频得到,MCLK主要用于CPU和系统。
3.SMCLK子系统时钟:可由软件选自LFXT1CLK和DCOCLK(MSP430X11X、MSP 430X12X系列,因其不含XT2),或XT2CLK和DCOCLK,然后经1、2、4、8分频得到。
SMCLK主要用于高速外围模块。
系统频率与系统的工作电压密切相关(MSP430工作电压1.8V~3.6V,编程电压2.7V~3.6V),所以不同的工作电压,需要选择不同的系统时钟。
当两个外部振荡器失效时,DCO振荡器会自动被选作MCLK的时钟源。
PUC信号之后,DCOCL K被自动选作MCLK和SMCLK的时钟信号,LFXT1CLK被选作ACLK的时钟信号,根据需要MCLK和SMCLK的时钟源可以另外设置。
控制时钟模块的三个寄存器为DCO控制寄存器DCOCTL、基本时钟系统控制寄存器1BCSCTL1、基本时钟控制寄存器2BCSCTL21.DCOCTL7 6 5 4 3 2 1 0 DCO2 DCO1 DCO0 MOD4 MOD3 MOD2 MOD1 MOD0DCO.0~DCO.2 定义8种频率之一(DCO=0~DCO=8),可分段调节DCOCLK 频率,相领两种频率相差10%。
MSP430 时钟

MSP430单片机的时钟结构是其一大特点,像配置IO口一样,对MSP430单片机的时钟配置同样由很多的寄存器来完成。
我们引入官方的一张图片来描述MSP430单片机的时钟结构:让Cloud为大家解释一下这张图,MCLK是MSP430单片机的主系统时钟,用作CPU的时钟源,它由两个入口可选择,一个是来自上面的选择器,还有一个来自下面的DCO。
DCO翻译过来就是数字控制的RC振荡器,也就是一个可以通过编程来调节其震荡频率的RC振荡器,范围是0-16MHz。
MCLK上面是ACLK,用于外围慢速设备的时钟,MCLK下面是SMCLK,也叫子系统时钟,用于外围快速设备的时钟。
图片中蓝色的文字向我们说明了当MSP430上电后主系统时钟和子系统时钟都是由这个DCO来提供的,默认为1.1MHz (可以通过进一步修改来改变频率)。
而ACLK默认由外部的晶振来提供(LFXT1其实就是我们电路板上可焊接的32.768KHz的晶振,至于为什么是32768大家可以百度,这里并不关心)。
上面还有一个叫做VLO的超低功耗/低频振荡器,用户也可以通过设置来使用它。
一、和以往一样,我们先了解一下MSP430的时钟相关寄存器:1、DCOCTL:DCO控制寄存器这个寄存器用来定义DCO的频率;2、BCSCTL1:基本时钟系统控制寄存器1这个寄存器可以控制XT2的开启关闭,LFXT1的工作模式,ACLK的分频系数,还有DCO振荡器的内部电阻阻值(可以用以调节频率);3、BCSCTL2:基本时钟系统控制寄存器2这个寄存器用来定义MCLK、SMCLK的时钟来源和分频系数,另外还可以定义DCO 的电阻来自内部还是外部;4、BCSCTL3:基本时钟系统控制寄存器3这个寄存器用来定义LFXT1和XT2的工作模式还有外部晶振的负载电容以及LFXT1和XT2振荡器的错误标志(注意:由于G系列单片机没有XT2所以大家不必关心XT2)。
另外还有两个是中断寄存器,但是也和时钟配置相关,在这里我们也拿出几位来学习,在下面的详细说明中就不再加入这两个寄存器的说明了:5、IE1:中断使能寄存器1这个寄存器中第1位OFIE(晶振故障中断使能寄存器)用来允许或禁止晶体故障中断0-禁止中断1-使能中断6、IFG1:中断标志寄存器1这个寄存器中第1位OFIFG(晶振故障中断标志寄存器)用来指示是否有晶振故障的中断产生0-没有发生中断1-有中断事件发生二、下面详细说明每个寄存器的相关配置:1、DCOCTL寄存器配置:DCOCTL DCO控制寄存器76543210 DCO.2DCO.1DCO.0MOD.4MOD.3MOD.2MOD.1MOD.0·7~5-DCO:用来定义DCO的8中不同频率,相邻两种频率相差10%·4~0-MOD:定义在32个DCO周期中插入的Fdco+1周期个数,而在下的DCO周期中为Fdco周期,控制改换DCO和DCO+1选择的两种频率。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
msp430f5419/38学习笔记之时钟系统(2011-11-30 10:41:30)分类: msp430标签:msp430f541xmsp430f543xucs时钟系统注:msp5419/38中,如果你使用SMCLK做TIMER_A的时钟,那么进入低功耗3或低功耗4是不会把SMCLK关掉的,这点5系列和其他系列的不一样。
UCS模块是一个低成本超低功耗系统,通过选择使用3个内部时钟信号,用户可以得到性能和功耗的最佳平衡点。
UCS可以由软件配置其工作模式,如配置成:不需要任何外部器件、使用1或 2个外部晶振等。
一、时钟系统UCS模块具有5个时钟源:XT1CLK:低频/高频振荡器,既可以与低频 32768HZ钟振、标准晶振、外部振荡器,又可以与外部4M-32MHZ时钟源一起使用,XT1CLK可以作为FLL模块内部的参考时钟。
有些芯片XT1CLK只允许使用外部的低频晶振,具体可参考数据手册;XT2CLK:可选高频振荡器,可与标准晶振,振荡器或者 4MHZ~32MHZ外部时钟源一起使用;VLOCLK:内部低功耗、低频振荡器,频率典型值为10KHZ;REFOCLK:内部低频振荡器,典型值为 32768HZ,可作为 FLL基准时钟源;DCOCLK:可以通过 FLL来稳定的内部数字控制振荡器(DCO);DCOCLK经过 FLL分频后可得DCOCLKDIV。
UCS模块可以提供3种时钟信号:ACLK:辅时钟;MCLK:系统主时钟;SMCLK:子系统主时钟。
二、UCS操作PUC之后,UCS的默认配置模式如下:XT1CLK 选择LF模式下的XT1作为时钟源,ACLK 选择 XT1CLK 作为时钟源;MCLK 选择DCOCLKDIV作为时钟源;SMCLK 选择DCOCLKDIV作为时钟源;FLL操作使能,FLL基准时钟(FLLREFCLK)选择XT1CLK;XIN 和 XOUT作普通IO 口使用,禁止了 XT1 功能,直到 I/O 口重新配置为 XT1 模式;如果有 XT2IN 和XT2OUT,则一并配置为普通 IO 口,禁止 XT2 功能。
如上所述:默认状态下:XIN/XOUT(P7.0/1)、XT2IN/XT2OUT(P5.2/3) 为普通 IO口,振荡功能禁止;FLL基准源、ACLK时钟源是 XT1CLK,晶振失效逻辑控制位作用下均切换到 REFOCLK,ACLK = 32768Hz;默认下FLL倍频为:31(FLLN值),DCOCLKDIV=(32+1)*32768 =1.047856MHz;默认下分频值 D=2(FLLD值),DCOCLK = 2*DCOCLKDIV = 2.097152MHz。
默认选择了使用 XT1的 FLL操作,为了启用 XT1功能,必须将与 XT1引脚对应的 PSEL置位。
当 XT1CLK 使用 32768Hz 晶振时,由于XT1不会立即稳定,失效逻辑控制位会立即选择 REFOCLK 作为 ACLK 时钟源。
一旦晶体振荡稳定后,由于 FLL的作用,MCLK 和SMCLK 都将稳定在 1.047586MHz,Fdco稳定在 2.097152MHz。
状态寄存器(SCG0,SCG1,OSCOFF和CPUOFF)用于配置 MSP430的工作模式,使能和禁止 UCS模块中的部分功能(参考系统复位、中断和操作模式)。
UCS 模块可以在程序运行中的任何时候进行配置和修改配置,配置使用寄存器 UCSCTL0~UCSCTL8。
2.1 UCS模块在超低功耗方面的特性为了保持长时间工作或降低功耗而采用低时钟频率;快速响应时间和快速数据处理能力需要高时钟频率;适应各种工作温度和供电电压的稳定时钟;低成本应用中使用准确度要求较少器件的时钟。
2.2 VLO 内部低功耗低频振荡器内部 VLO能够在不需要任何外接晶振的情况下,提供 10KHz的时钟,在对时钟精度不敏感而对成本又非常敏感的场合,使用 VLO是一个非常好的选择。
当 VLO 作为 ACLK、MCLK、SMCLK(SELA=1、SELM=1、SELS=1)中的任何一个时钟源时,开始启动振荡。
2.3 REFO 内部低频参考时钟在对成本非常敏感时,通常不需要使用外部晶振,此时可以使用内部低频参考时钟。
该时钟的典型频率值为32768Hz,并可以作为用于稳定时钟模块 FLL所需要的参考时钟源 FLLREFCLK。
REFO 和 FLL在不需要外接晶振的情况下,给了系统时钟设置一定的灵活性。
REFO不使用时,不存在电流消耗。
REFO 在下面任何一种情况下,是处于工作允许状态的:在活动模式到 LPM3模式下,REFO 作为ACLK 的时钟源(SELA=2 OSCOFF=0);在活动模式下,REFO 作为 MCLK的时钟源(SELM=2 CPUOFF=0);在活动模式到 LPM1模式下时,REFO作为 SMCLK 的时钟源(SELS=2SMCLKOFF=0);活动模式到LPM3模式下,REFO作为FLLREFCLK(SELREF=2)时钟源,DCO作为ACLK的时钟源(SE LA=3,4 OSCOFF=0)在活动模式下,REFO作为FLLREFCLK(SELREF=2)时钟源,DCO 作为 MCLK的时钟源(SELA=3,4 CPUOFF=0);活动模式到LPM1模式,REFO作为FLLREFCLK(SELREF=2)时钟源,DCO作为SMCLK时钟源(SELA=3,4 SMCLKOFF=0)对于ACLK、MCLK、SMCLK的时钟源的选择由 UCSCTL4 控制寄存器决定:SELA Bits10-8 选择ACLK 的时钟源000 XT1CLK001 VLOCLK010 REFOCLK011 DCOCLK100 DCOCLKDIV101 XT2CLK(可用),否则是DCOCLKDIV110 保留,XT2CLK(可用),否则是DCOCLKDIV111 保留,XT2CLK(可用),否则是DCOCLKDIVSELS Bits6-4 选择SMCLK 的时钟源000 XT1CLK001 VLOCLK010 REFOCLK011 DCOCLK100 DCOCLKDIV101 XT2CLK(可用),否则是DCOCLKDIV110 保留。
XT2CLK(可用),否则是DCOCLKDIV111 保留。
XT2CLK(可用),否则是DCOCLKDIVSELM Bits2-0 选择MCLK 的时钟源000 XT1CLK001 VLOCLK010 REFOCLK011 DCOCLK100 DCOCLKDIV101 XT2CLK(可用),否则是DCOCLKDIV110 保留,XT2CLK(可用),否则是DCOCLKDIV111 保留,XT2CLK(可用),否则是DCOCLKDIVACLK、MCLK、SMCLK 时钟的输出(对应 P11.0/1/2)UCSCTL5 控制寄存器决定:DIVPA Bits14-12 外部引脚上可用的 ACLK 时钟源分频。
对 ACLK 进行分频,外部引脚(P11.0)上输出。
000 fACLK/1001 fACLK/2010 fACLK/4011 fACLK/8100 fACLK/16101 fACLK/32110 保留。
默认是 fACLK/32111 保留。
默认是 fACLK/32DIVA Bits 10-8 ACLK 时钟源分频。
对 ACLK 时钟源进行分频。
000 fACLK/1001 fACLK/2010 fACLK/4011 fACLK/8100 fACLK/16101 fACLK/32110 保留。
默认是 fACLK/32111 保留。
默认是 fACLK/32DIVS Bits 6-4 SMCLK 时钟源分频000 fSMCLK/1001 fSMCLK/2010 fSMCLK/4011 fSMCLK/8100 fSMCLK/16101 fSMCLK/32110 保留。
fSMCLK/32111 保留。
fSMCLK/32DIVM Bits2-0 MCLK 时钟源分频000 fMCLK/1001 fMCLK/2010 fMCLK/4011 fMCLK/8100 fMCLK/16101 fMCLK/32110 保留。
默认是 fMCLK/32111 保留。
默认是 fMCLK/322.4 XT1 振荡器XT1 为了支持低功耗模式,而支持在低频模式下(XTS=0)使用 32768Hz 时钟。
晶振连接到 XIN 和XOUT,此时不需要任何其他外围器件,软件可以通过 XCAP 位来设置 LF模式下 XT1 晶振的内部负载电容,负载电容可以由软件选择为2pF,6pF,9pF,12pF(典型值),也可以根据需要增加外接电容。
一些芯片在HF模式时(XTS=1)也支持高速晶振或者振荡器,高频晶振或振荡器连接到XIN 和 XOUT引脚时,两端口都需要接外部电容,电容的大小需要根据晶振或者振荡器的规格来选择。
LF 模式下,可以通过 XT1DRIVE位来提高 XT1 驱动能力。
在上电时,为快速可靠启动可以设置 XT1DRIVE 位来快速启动。
如果用户为了降低功耗,可以在需要时降低其驱动能力。
在 HF模式时,可以通过选择适当的XT1DRIVE 值来满足不同范围的晶振或振荡器。
无论是在LF还是HF模式下,都可以通过配置 XT1BYPASS 位,XT1 可以使用加载在 XIN脚上的外部时钟信号。
当使用外部时钟信号时,外部信号的频率和选择的工作模式必须与数据手册上的参数相符合,当在BYPASS模式时,将关闭XT1 的振荡器电源。
上电时,默认操作是XT1,LF模式,但是XT1 将保持禁止状态,直到与 XT1复用的端口设置成 XT1 模式。
复用 IO 口的配置由 XIN 和 XT1BYPASS 相关的 PSEL决定。
PSEL 置位,X1IN 和 X1OUT 端口将配置成 XT1 模式。
如果 XT1BYPASS 也置位,XT1 将配置成 BYPASS 模式,XT1 相对应的振荡器将断电。
在 BYPASS 模式下,XIN可以接收外部时钟信号的输入,XOUT 配置成普通 IO口模式,这时与X1OUT相对应的PxSEL位可以不用关心。
如果与XT1IN 对应的PSEL位清零,XT1IN 和 XT1OUT均被配置为普通 IO 口模式,XT1 将禁止。
2.5 XT2 振荡器某些芯片有第二个晶振XT2, XT2CLK源自 XT2,且在高频模式下, XT2的特性和XT1相同, XT2DRIVE位用来选择XT2的频率范围。
通过配置 XT1BYPASS 位,可以使 XT2 可以使用加载在 XIN 脚的外部时钟信号,当使用外部时钟信号时,外部信号的频率必须和选择的工作模式在数据手册上的参数相符合。