时钟模块
DCOCTL DCO 控制寄存器 7 6 5 DCO.2 DCO.1 DCO.0 4 MOD.4 3 MOD.3 2 MOD.2 1 MOD.1 0 MOD.0 DCO.0-DCO.4 定义 8 种频率之一,可以分段调节 DCOCLK 频率,相邻两种频率相差10%。而频率由注入直流发生器的电流定义。
MOD.0-MOD.4 定义在 32 个 DCO 周期中插入的 Fdco+1 周期个数,而在下的 DCO 周期 中为 Fdco 周期,控制改换 DCO 和 DCO+1 选择的两种频率。如果 DCO 常数为 7,表示 已经选择最高频率,此时不能利用 MOD.0-MOD.4 进行频率调整。
BCSCTL1 基本时钟系统控制寄存器 1
7 XT2OFF 6 TXS 5 DIVA.1 4 DIVA.0 3 XT5V 2 1 0 Rsel.2 Resl.1 Resl.0
XT2OFF 控制 XT2 振荡器的开启与关闭。
TX2OFF=0,XT2 振荡器开启。
TX2OFF=1,TX2 振荡器关闭(默认为 TX2 关闭) XTS
控制 LFXT1 工作模式,选择需结合实际晶体振荡器连接情况。 XTS=0,LFXT1 工作在低频模式(默认)。
XTS=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,选择最高的标称频率。
BCSCTL2 基本时钟系统控制寄存器 2 7 6 5 4 3 SELM.1 SELM.0 DIVM.1 DIVM.0 SELS 2 1 DIVS.1 DIVS.0 0 DCOR SELM.1 SELM.0 选择 MCLK 时钟源
0 时钟源为 DCOCLK(默认) 1 时钟源为 DCOCLK
2 时钟源为 LFXT1CLK(对于 MSP430F11/12X),时钟源为 XT2CLK(对
于 MSP430F13/14/15/16X);
3 时钟源为 LFTXTICLK。
DIVM.1 DIVM.0 选择 MCLK 分频
0 1 分频(默认) 1 2 分频
1
2 4 分频 3 8 分频
SELS 选择 SMCLK 时钟源
0 时钟源为 DCOCLK(默认)
1 时钟源为 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 为止。
IO 端口
MSP430 的端口 器件 MSP430F11X MSP430F12X MSP430F13/14/15/16 MSP430F4XX MSP430F20X MSP430F21X MSP430F22X MSP430 端口功能 端口 P1、P2 P3、P4、P5、P6 S、COM P1 √ √ √ √ √ √ √ P2 P3 P4 √ √ √ √ √ √ √ √ √ √ √ √ √ √ P5 P6 S COM √ √ √ √ √ √ 功能 I/O、中断功能、其他片内外设功能 I/O、其他片内外设功能 I/O、驱动液晶 2
PxDIR 方向寄存器 7 6 5 4 3 2 1 0 P7DIR P6DIR P5DIR P4DIR P3DIR P2DIR P1DIR P0DIR 0 为输入模式 1 为输出模式
在 PUC 后全都为复位,作为输入时,只能读;作为输出时,可读可定。 PxIN 输入寄存器 7 6 5 4 3 2 1 0 PxIN PxIN PxIN PxIN PxIN PxIN PxIN PxIN 输入寄存器是只读的,用户不能对它写入,只能读取其 IO 内容。此时引 脚方向必须为输入。
PxOUT 输出寄存器 7 6 5 4 3 2 1 0 P7OUT P6OUT P5OUT P4OUT P3OUT P2OUT P1OUT P1OUT 这是 IO 端口的输出缓冲器,在读取时输出缓存的内容与脚引方向定义无关。 改变方向寄存器的内容,输出缓存的内容不受影响。 PxIFG 中断标专寄存器 7 6 5 4 3 P7IFG P6IFG P5IFG P4IFG P3IFG 标志相应引脚是否有待处理中断信息。 0 没有中断请求 1 有中断请求 PxIES 中断触发沿选择寄存器 7 6 5 4 P7IES P6IES P5IES P4IES 0 上升沿使相应标志置位 1 下降沿使相应标志置位 PxIE 中断使能寄存器 7 6 5 P7IE P6IE P5IE 0 禁止中断 1 允许中断
2 P2IFG 1 0 P1IFG P0IFG
3 P3IES 2 P2IES 1 P1IES 0 P0IES
4 P4IE 3 P3IE 2 P2IE 1 P1IE 0 P0IE PxSEL 功能选择寄存器 7 6 5 4 P7SEL P6SEL P5SEL P4SEL 0 选择引脚为 I/O 功能。 1 选择引脚为外围模块功能 关于端口 P3、P4、P5、P6
3 P3SEL 2 P2SEL 1 P1SEL 0 P0SEL
3
端口 P3、P4、P5、P6 是没有中断功能的,其它功能与 P1、P2 相同。所以 在此不再作详尽说明。
关于端口 COM、S
这些端口实现与 LCD 片的驱动接口,COM 端是 LCD 片的公共端,S 端为 LCD 片的段码端。LCD 片输出端也可以用软件配置为数字输出端口,详情使用请查 看其手册。
WDT 看门狗
WDTCNT 计数单元
这是 16 位增计数器,由 MSP430 所选定的时钟电路产生的固定周期时钟信号对 计数器进行加法计数。如果计数器事先被预置的初始状态不同,那么从开始 计数到计数溢出为止所用的时间就不同。WDTCNT 不能直接通过软件存取,必 须通过看门狗定时器的控制寄存器 WDTCTL 来控制。
WDTCTL 控制寄存器
4
15--8 7 6 5 4 3 2 1 0 HOLD NMIES NMI TMSEL CNTCL SSEL IS1 IS0 口令 WDTCTL 由高 8 位口令和低 8 位控制命令组成。要写入操作 WDT 的控制命令,出于安全原因必须先正确写入高字节看门狗口令。口令为 5AH,如果口令写错将导致系统复位。读 WDTCTL 时不需要口令。这个控制寄存器还可以用于设置 NMI 引脚功能。
ISO,IS1 选择看门狗定时器的定时输出。其中 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,SSEL3 可确定 WDT 定时时间。WDT 最多只能定时 8 种和时钟源相关的 时间。下表列出了 WDT 可选的定时时间(晶体为 32768HZ,SMCLK=1MHZ)。 WDT 的定时时间表 SSEL IS1 IS0 定时时间/ms 0 1 1 0.056 Tsmclk x 2(6) 0 1 0 0.5 Tsmclk x 2(9) 1 1 1 1.9 Taclk x 2(6) 0 0 1 8 Tsmclk x 2(13) 1 1 0 16 Taclk x 2(9) 0 0 0 32 Tsmclk x 2(15) (PUC 复位后的值) 1 0 1 250 Taclk x 2(13) 1 0 0 1000 Taclk x 2(15) CNTCL 当该位为 1 时,清除 WDTCNT。
TMSEL 工作模式选择 0 看门狗模式 1 定时器模式
NMI 选择 RST/NMI 引脚功能,在 PUC 后被复位。
0 RST/NMI 引脚为复位端
1 RST/NMI 引脚为边沿触发的非屏蔽中断输入。
NMIES 选择中断的边
沿触发方式
0 上升沿触发 NMI 中断 1 下降沿触发 NMI 中断
HOLD 停止看门狗定时器工作,降低功耗。
0 WDT 功能激活
1 时钟禁止输入,计数停止
5