MSPG习笔记数据手册Word格式.doc
- 文档编号:3957606
- 上传时间:2023-05-02
- 格式:DOC
- 页数:54
- 大小:2.80MB
MSPG习笔记数据手册Word格式.doc
《MSPG习笔记数据手册Word格式.doc》由会员分享,可在线阅读,更多相关《MSPG习笔记数据手册Word格式.doc(54页珍藏版)》请在冰点文库上搜索。
基本时钟系统的寄存器
DCOCTL-DCO控制寄存器
DCOx
DCO频率选择控制1
MODx
DCO频率校正选择,通常令MODx=0
在MSP430G2553上电复位后,默认RSEL=7,DCO=3,通过数据手册查得DCO频率大概在0.8~1.5MHz之间。
BCSCTL1-基本时钟控制寄存器1
XT2OFF
不用管,因为MSP430G2553内部没有XT2提供的HF时钟
XTS
不用管,默认复位后的0值即可
DIVAx
设置ACLK的分频数
00 /1
01 /2
10 /4
11 /8
RSELx
DCO频率选择控制2
BCSCTL2-基本时钟控制寄存器2
SELMx
MCLK的选择控制位
00 DCOCLK
01 DCOCLK
10 LFXT1CLK或者VLOCLK
11 LFXT1CLK或者VLOCLK
DIVMx
设置MCLK的分频数
SELS
SMCLK的选择控制位
0 DCOCLK
1 LFXT1CLK或者VLOCLK
DIVSx
设置SMCLK的分频数
DCOR
DCO直流发生电阻选择,此位一般设0
0 内部电阻
1 外部电阻
BCSCTL3-基本时钟控制寄存器3
XT2Sx
不用管
LFXT1Sx
00 LFXT1选为32.768KHz晶振
01 保留
10 VLOCLK
11 外部数字时钟源
XCAPx
LFXT1晶振谐振电容选择
00 1pF
01 6pF
10 10pF
11 12.5pF
msp430g2553.h中基本时钟系统的内容
/************************************************************
*BasicClockModule
************************************************************/
#define__MSP430_HAS_BC2__/*DefinitiontoshowthatModuleisavailable*/
SFR_8BIT(DCOCTL);
/*DCOClockFrequencyControl*/
SFR_8BIT(BCSCTL1);
/*BasicClockSystemControl1*/
SFR_8BIT(BCSCTL2);
/*BasicClockSystemControl2*/
SFR_8BIT(BCSCTL3);
/*BasicClockSystemControl3*/
#defineMOD0(0x01)/*ModulationBit0*/
#defineMOD1(0x02)/*ModulationBit1*/
#defineMOD2(0x04)/*ModulationBit2*/
#defineMOD3(0x08)/*ModulationBit3*/
#defineMOD4(0x10)/*ModulationBit4*/
#defineDCO0(0x20)/*DCOSelectBit0*/
#defineDCO1(0x40)/*DCOSelectBit1*/
#defineDCO2(0x80)/*DCOSelectBit2*/
#defineRSEL0(0x01)/*RangeSelectBit0*/
#defineRSEL1(0x02)/*RangeSelectBit1*/
#defineRSEL2(0x04)/*RangeSelectBit2*/
#defineRSEL3(0x08)/*RangeSelectBit3*/
#defineDIVA0(0x10)/*ACLKDivider0*/
#defineDIVA1(0x20)/*ACLKDivider1*/
#defineXTS(0x40)/*LFXTCLK0:
LowFreq./1:
HighFreq.*/
#defineXT2OFF(0x80)/*EnableXT2CLK*/
#defineDIVA_0(0x00)/*ACLKDivider0:
/1*/
#defineDIVA_1(0x10)/*ACLKDivider1:
/2*/
#defineDIVA_2(0x20)/*ACLKDivider2:
/4*/
#defineDIVA_3(0x30)/*ACLKDivider3:
/8*/
#defineDIVS0(0x02)/*SMCLKDivider0*/
#defineDIVS1(0x04)/*SMCLKDivider1*/
#defineSELS(0x08)/*SMCLKSourceSelect0:
DCOCLK/1:
XT2CLK/LFXTCLK*/
#defineDIVM0(0x10)/*MCLKDivider0*/
#defineDIVM1(0x20)/*MCLKDivider1*/
#defineSELM0(0x40)/*MCLKSourceSelect0*/
#defineSELM1(0x80)/*MCLKSourceSelect1*/
#defineDIVS_0(0x00)/*SMCLKDivider0:
#defineDIVS_1(0x02)/*SMCLKDivider1:
#defineDIVS_2(0x04)/*SMCLKDivider2:
#defineDIVS_3(0x06)/*SMCLKDivider3:
#defineDIVM_0(0x00)/*MCLKDivider0:
#defineDIVM_1(0x10)/*MCLKDivider1:
#defineDIVM_2(0x20)/*MCLKDivider2:
#defineDIVM_3(0x30)/*MCLKDivider3:
#defineSELM_0(0x00)/*MCLKSourceSelect0:
DCOCLK*/
#defineSELM_1(0x40)/*MCLKSourceSelect1:
#defineSELM_2(0x80)/*MCLKSourceSelect2:
XT2CLK/LFXTCLK*/
#defineSELM_3(0xC0)/*MCLKSourceSelect3:
LFXTCLK*/
#defineLFXT1OF(0x01)/*Low/highFrequencyOscillatorFaultFlag*/
#defineXT2OF(0x02)/*Highfrequencyoscillator2faultflag*/
#defineXCAP0(0x04)/*XIN/XOUTCap0*/
#defineXCAP1(0x08)/*XIN/XOUTCap1*/
#defineLFXT1S0(0x10)/*Mode0forLFXT1(XTS=0)*/
#defineLFXT1S1(0x20)/*Mode1forLFXT1(XTS=0)*/
#defineXT2S0(0x40)/*Mode0forXT2*/
#defineXT2S1(0x80)/*Mode1forXT2*/
#defineXCAP_0(0x00)/*XIN/XOUTCap:
0pF*/
#defineXCAP_1(0x04)/*XIN/XOUTCap:
6pF*/
#defineXCAP_2(0x08)/*XIN/XOUTCap:
10pF*/
#defineXCAP_3(0x0C)/*XIN/XOUTCap:
12.5pF*/
#defineLFXT1S_0(0x00)/*Mode0forLFXT1:
Normaloperation*/
#defineLFXT1S_1(0x10)/*Mode1forLFXT1:
Reserved*/
#defineLFXT1S_2(0x20)/*Mode2forLFXT1:
VLO*/
#defineLFXT1S_3(0x30)/*Mode3forLFXT1:
Digitalinputsignal*/
#defineXT2S_0(0x00)/*Mode0forXT2:
0.4-1MHz*/
#defineXT2S_1(0x40)/*Mode1forXT2:
1-4MHz*/
#defineXT2S_2(0x80)/*Mode2forXT2:
2-16MHz*/
#defineXT2S_3(0xC0)/*Mode3forXT2:
基本时钟系统例程(DCO)
MSP430G2553在上电之后默认CPU执行程序的时钟MCLK来自于DCO时钟。
TI提供的LaunchPad上,P1.0和P1.6分别接了红色和绿色的LED灯,下面写一个程序让它们交替闪烁;
之后我们来改变DCO的频率,进而使软延时时间变化,可以看到LED闪烁间隔有变化。
#include"
msp430g2553.h"
voidmain(void)
{
WDTCTL=WDTPW+WDTHOLD;
P1DIR|=BIT0+BIT6;
while
(1)
{
P1OUT^=BIT0+BIT6;
__delay_cycles(100000);
}
}
这段程序采用430上电后默认的DCO频率,假设是1MHz的话,则延时100000个DCO提供的MCLK大概是0.1s左右。
下面一段程序,将DCOx设置为1,RSELx设置为1,通过数据手册查得DCO频率大概在0.06~0.14MHz之间,所以明显MCLK要慢得多了,因此LED闪烁时间延长。
DCOCTL|=DCO0;
DCOCTL&
=~(DCO1+DCO2);
BCSCTL1|=RSEL0;
BCSCTL1&
=~(RSEL1+RSEL2+RSEL3);
MSP430G2553的I/O口
MSP430G2553共有2组数字I/O口:
P1和P2,每组各有8个引脚,每个引脚都能够响应中断,接受外部输入的上升沿或者下降中断请求。
所有I/O口均与单片机内部外设的特殊功能引脚复用,当我们选用I/O功能时,要作为通用I/O口来使用,这需要相应的寄存器来进行控制。
I/O头文件内容
*DIGITALI/OPort1/2Pullup/PulldownResistors
#define__MSP430_HAS_PORT1_R__/*DefinitiontoshowthatModuleisavailable*/
#define__MSP430_HAS_PORT2_R__/*DefinitiontoshowthatModuleisavailable*/
SFR_8BIT(P1IN);
/*Port1Input*/
SFR_8BIT(P1OUT);
/*Port1Output*/
SFR_8BIT(P1DIR);
/*Port1Direction*/
SFR_8BIT(P1IFG);
/*Port1InterruptFlag*/
SFR_8BIT(P1IES);
/*Port1InterruptEdgeSelect*/
SFR_8BIT(P1IE);
/*Port1InterruptEnable*/
SFR_8BIT(P1SEL);
/*Port1Selection*/
SFR_8BIT(P1SEL2);
/*Port1Selection2*/
SFR_8BIT(P1REN);
/*Port1ResistorEnable*/
SFR_8BIT(P2IN);
/*Port2Input*/
SFR_8BIT(P2OUT);
/*Port2Output*/
SFR_8BIT(P2DIR);
/*Port2Direction*/
SFR_8BIT(P2IFG);
/*Port2InterruptFlag*/
SFR_8BIT(P2IES);
/*Port2InterruptEdgeSelect*/
SFR_8BIT(P2IE);
/*Port2InterruptEnable*/
SFR_8BIT(P2SEL);
/*Port2Selection*/
SFR_8BIT(P2SEL2);
/*Port2Selection2*/
SFR_8BIT(P2REN);
/*Port2ResistorEnable*/
P1口
P1.0、P1.1、P1.2
P1.3
P1.4
P1.5、P1.6、P1.7
P2.0、P2.1、P2.2、P2.3、P2.4、P2.5
P2.6
P2.7
P1DIR用来选择I/O口是输入还是输出,0为输入,1为输出。
P1IN为输入寄存器,外部的电平输入状态可从此寄存器相应的位读取。
P1OUT为输出寄存器,向外输出的电平状态可从此寄存器送出。
P1SEL和P1SEL2为引脚功能选择。
MSP430G2553的Timer_A
Timer_A的工作原理
MSP430G2553内部有两个Timer_A模块,分别是Timer0_A3和Timer1_A3。
“3”表示每个Timer_A模块有3组“捕获/比较”寄存器。
Timer_A的主要特性包括:
(1)具有16位定时/计数功能,3种计数模式可选
(2)16位定时计数器时钟源可选
(3)可在CPU不介入的情况下,产生PWM波
(4)计数器溢出可产生中断
Timer_A又两部分组成:
主计数器和比较捕获模块。
其中主计数器如下图。
TAR为16主计数器的当前计数值,可对TAR赋初值。
主计数器计数时钟有4种来源,通过TASSELx来进行选择。
IDx可对输入时钟进行分频,TACLR为主计数器的清零控制位,MCx用来选择主计
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MSPG 笔记 数据 手册