
MSP430G2553寄存器资料.docx
15页本文格式为Word版,下载可任意编辑MSP430G2553寄存器资料 MSP430G2553学习笔记 常用赋值运算符: 除掉:=~ , 置位:|= , 看门狗模块: 测试:= , 取反:^= , WDT(看门狗) IS1,IS0 选择看门狗定时器的定时输出,T是WDTCNT的输入时钟源周期 0 T x 2(15) 1 T x 2(13) 2 T x 2(9) 3 T x 2(6) SSEL 选择WDTCNT的时钟源 0 SMCLK 1 ACLK IS0、IS1、SSEL可确定WDT定时时间,WDT只能定时8种和时钟源相关的时间 CNTCL TMSEL 0 1 NMI 当该位为1时,除掉WDTCNT 工作模式选择 看门狗模式 定时器模式 选择RST/NMI引脚功能,在PUC后被复位 RST/NMI引脚为复位端 1 NMIES 0 1 HOLD 0 1 RST/NMI引脚为边沿触发的非屏蔽中断输入 选择中断的边沿触发方式 上升沿触发NMI中断 下降沿触发NMI中断 中断看门狗定时器工作,降低功耗 WDT功能激活 时钟遏止输入,计数中断 WDT(看门狗)配置语句 WDTCTL=WDTPW+WDTHOLD; //将WDTPW+WDTHOLD赋值给WDTCTL,关 闭看门狗定时器操纵寄放器(Stop watchdog timer) IE1 |= WDTIE; //使能WDT中断 WDTCTL = WDT_ADLY_1000; //WDT 1 s / 4间隔计时器 WDTCTL = WDTPW + WDTHOLD + WDTNMI + WDTNMIES; // WDTCTL 由高8位口令和低8位操纵命令组成,要写入操作WDT的操纵命令, 出于安好理由务必先正确写入高字节看门狗口令。
口令为5AH,假设口 令写错将导致系统复位读WDTCTL时不需要口令这个操纵寄放器还 可以用于设置NMI引脚功能 WDT 看门狗定时器(Watch Dog Timer),这是16位增计数器,由MSP430所选 定的时钟电路产生的固定周期时钟信号对计数器举行加法计数假设计 数器事先被预置的初始状态不同,那么从开头计数到计数溢出为止所用 的时间就不同WDTCNT不能直接通过软件存取,务必通过看门狗定时 器的操纵寄放器WDTCTL来操纵 WDTPW WDTPW=0x5A00,是WDTCTL的密码,只有赋予这个值才能修改WDTCTL 这个寄放器 WDTHOLD WDTHOLD=0x0080,使WDTCTL的HOLD位置1 ************************************************************************************** 时钟模块: DCO(数字操纵振荡器) DCO.0-DCO.2 定义8种频率之一,可以分段调理DCOCLK频率,相邻两种频率相差 10%,而频率由注入直流发生器的电流定义 MOD.0-MOD.4 定义在32个DCO周期中插入的Fdco+1周期个数,而在下的DCO周期 中为Fdco周期,操纵改换DCO和DCO+1选择的两种频率。
假设DCO 常数为7,表示已经选择最高频率,此时不能利用MOD.0-MOD.4举行频 率调整 DCO配置语句 DCOCTL = 0; //选择最低DCOx和MODx设置 BCSCTL1=CALBC1_1MHZ; //为1MHZ BCSCTL1校准数据 DCOCTL=CALDCO_1MHZ; //为1MHZ DCOCTL校准数据,这两句同时使用 就使DCO设置为1MHZ CALBC1_1MHZ==0xFF; //校准常数抹去 __bis_SR_register(SCG1 + SCG0); //不用DCO Set_DCO(DELTA_1MHZ); //设置DCO和获得常量 BCSCTL1 根本时钟系统操纵寄放器1 DCOCTL DCO时钟频率操纵寄放器 CALBC1_1MHZ 这是为1MHZ BCSCTL1校准数据时所采用的标签 CALDCO_1MHZ 这是为1MHZ DCOCTL校准数据时所采用的标签 MCLK(主系统时钟)和SMCLK(子系统时钟) SELM.1 SELM.0 0 1 2 3 DIVM.1 DIVM.0 0 1 选择MCLK时钟源 时钟源为DCOCLK(默认) 时钟源为DCOCLK 时钟源为LFXT1CLK(对于MSP430F11/12X),时钟源为XT2CLK(对于MSP430F13/14/15/16X) 时钟源为LFTXTICLK。
选择MCLK分频 1分频(默认) 2分频 2 3 SELS 0 1 4分频 8分频 选择SMCLK时钟源 时钟源为DCOCLK(默认) 时钟源为LFXT1CLK(对于MSP430F11/12X),时钟源为XT2CLK(对 于MSP430F13/14/15/16X) DIVS.1 DIVS.0 选择SMCLK分频 0 1分频 1 2分频 2 4分频 4 8分频 DCOR 选择DCO电阻 0 内部电阻 1 外部电阻 PUC信号之后,DCOCLK被自动选择MCLK时钟信号,根据需要,MCLK的时钟源 可以另外设置为LFXT1或者XT2 设置依次如下: [1]复位OscOff [2]除掉OFIFG [3]延时等待至少50us [4]再次检查OFIFG,假设依旧置位,那么重复[3]、[4]步骤,直到OFIFG=0为止 XT2Sx 0 1 2 3 LFXT1Sx XTS=0 XTS=1 0 1 2 3 XT2范围选择,选择XT2的频率范围 0.4~1MHZ 1~3MHZ 3~16MHZ 0.4~16MHZ 低频时钟选择和LFXT1范围选择 在LFXT1和VLO之间选择 选择LFXT1的频率范围 LFXT1上的32768hz晶体 留存 VLOCLK 外部数字时钟源 XCAPx 0 1 2 3 XT2OF 0 1 LFXT1OF 0 1 振荡器电容选择,XTS=0时,用于LFXT1的有效电容 1pf 6pf 10pf 12.5pf XT2振荡器失效 不存在失效条件 存在失效条件 LFXT1振荡器失效 不存在失效条件 存在失效条件 MCLK(主系统时钟)和SMCLK(子系统时钟)配置语句 BCSCTL2|=SELM_0+DIVM_0; //选择DCOCLK为MCLK的时钟源并且对MCLK 的时钟源举行1/1分频 BCSCTL2|=DIVS_0; //对SMCLK的时钟源举行1/1分频 BCSCTL2 根本时钟系统操纵寄放器2 SELM_0 BCSCTL2的第6、7位,对MCLK的时钟源举行选择 DIVM_0 BCSCTL2的第4、5位,对MCLK的时钟源举行分频 。
ACLK(辅佐时钟) XT2OFF 操纵XT2振荡器的开启与关闭 0 XT2振荡器开启 1 XT2振荡器关闭(默认为XT2关闭) XTS 操纵LFXT1工作模式,选择需结合实际晶体振荡器连接处境 0 LFXT1工作在低频模式(默认) 1 LFXT1工作在高频模式(务必连接有高频相应的高频时钟源) DIVA.0 DIVA.1 操纵ACLK分频 0 不分频(默认) 1 2分频 2 4分频 3 8分频 XT5V 此位设置为0 Resl1.0,Resl1.1,Resl1.2 三位操纵某个内部电阻以抉择标称频率 Resl=0,选择最低的标称频率 ┇ Resl=7,选择最高的标称频率 ACLK(辅佐时钟)配置语句 BCSCTL1|=DIVA_0; //对ACLK举行1/1分频 DIVA_0 BCSCTL1的第4、5位,对ACLK的时钟源举行分频 ******************************************************************************************* BCSCTL3 |= LFXT1S_2; // LFXT1 = VLO ,低频晶振选择内部的超低功耗,超低频率晶振。
IFG1 = ~OFIFG; // 除掉晶振错误标志位(Clear OSCFault flag) _EINT();//总中断允许,开启总中断,相当于51的EA=1; _DINT();//关闭总中断,相当于51的EA=0; LPM0; //开启低功耗模式0,进入低功耗模式,等待中断唤醒 temp = ~temp; //取反 P1OUT = temp; //P1口赋值 TACTL = 0; // Stop Timer ******************************************************************************************* IO端口模块: IO口 全体P口都可作为通用IO口使用,全体P口都可举行字节操作和位操作 在PUC后全都为复位,作为输入时,只能读;作为输出时,可读可写 输入寄放器是只读寄放器,用户不能对其写入,只能通过读取该寄放器的内容知道IO口的输入信号,此时引脚方向务必为输入。
这是IO端口的输出缓冲器, 在读取时输出缓存的内容与脚引方向定义无关,变更方向寄放器的内容,输出缓存的内容不受影响 该寄放器有8个标志位,对应相应的引脚是否有待处理的中断苦求;这8个中断标志共用一个中断向量,中断标志不会自动复位,务必软件复位;外部中断事情的时间务必=1.5倍的MCLK的时间,以保证中断苦求被采纳 PxIE 1 :允许中断) 中断使能寄放器(0:遏止中断 P。
