MSP430寄存器详细分类

更新时间:2024-06-18 14:50:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

时钟模块

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

定时器 各种定时器功能

定时器 功能 看门狗定时器 基本定时器 定时器 A 定时器 B 基本定时,当程序发生错误时执行一个受控的系统重启动。 基本定时,支持软件和各种外围模块工作在低频率、低功耗条件下。 基本定时,支持同时进行的多种时序控制、多个捕获、比较功能和多种输出 波形(PWM),可以以硬件方式支持串行通信。 A 灵 基本定时,功能基本同定时器 A,但比较定时器活,功能更强大。

TACTL 控制寄存器 15--10 9 8 7 SSEL1 SSEL0 ID1 未用 6 5 4 ID0 MC1 MC0 3 未用 2 1 0 CLR TAIE TAIFG SSEL1、SSEL0 选择定时器输入分频器的时钟源 Timer_A 时钟源 SSEL1 SSEL0 输入时钟源 说明 0 0 TACLK 用特定的外部引脚信号 0 1 ACLK 辅助时钟 1 0 SMCLK 子系统时钟 1 1 INCLK 见器件说明 ID1,ID0 输入分频选择

00 不分频 01 2 分频 10 4 分频 11 8 分频

MC1,MC0 计数模式控制位

00 停止模式 01 增计数模式 10 连续计数模式 11 增/减计数模式

CLR 定时器清除位

POR 或 CLR 置位时定时器和输入分频器复位。CLR 由硬件自动复位,其读出始终为 0。定时器在下一个有效输入沿开始工作。如果不是被清除模式控制暂停,则定时器以增计数模式开始工作。

TAIE 定时器中断允许位

0 禁止定时器溢出中断

6

1 允许定时器溢出中断

TAIFG 定时器溢出标志位

增计数模式: 当定时器由 CCR0 计数到到 0 时,TAIFG 置位。 连续计数模式:当定时器由 0FFFFH 计数到 0 时,TAIFG 置位。 增/减计数模式:当定时器由 CCR0 减计数到 0 时,TAIFG 置位。

TAR 16 位计数器

这是计数器的主体,内部可读写。

[1]修改 TIMWER_A:当计数时钟不是 MCLK 时,写入应该在计数器停止计数时写, 因为它与 CPU 时钟不同步,可能引起时间竞争。

[2]TIMER_A 控制位的改变:如果用 TACLK 控制寄存器中的控制位来改变定时器 工作,修改时定器应停止,特别是修改输入选择位、输入分频器和定时器清除位时。 输入时钟和软件所用的系统时钟异步可能引起时间竞争,使定时器响应出错。 CCTLx 捕获/比较控制寄存器 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 CAPTMOD1-0 CCIS1-0 SCS SCCIx CAP OUTMODx CCIEx CCIx OUT COV CCIFx TIMER_A 有多个捕获比较模块,每个模块都有自己的控制寄存器 CCTLx CAPTMOD1-0 选择捕获模式

00 禁止捕获模式 01 上升沿捕获 10 下降沿捕获

11 上升沿与下降沿都捕获

CCISI1-0 在捕获模式中用来定提供捕获事件的输入端

00 选择 CCIxA 01 选择 CCIxB 10 选择 GND 11 选择 VCC

SCS 选择捕获信号与定时器时钟同步、异步关系

0 异步捕获 1 同步捕获

异步捕获模式允许在请求时立即将 CCIFG 置位和捕获定时器值,适用于捕获信 号的周期远大于定时器时钟周期的情况。但是,如果定时器时钟和捕获信号发生时 间竞争,则捕获寄存器的值可能出错。

在实际中经常使用同步捕获模式,而且捕获总是有效的。

SSCIx 比较相等信号 EQUx 将选择中的捕获、比较输入信号 CCIx(CCIxA,CCIxB,Vcc 和 GND)进行锁存,然后可由 SCCIx 读出。

CAP 选择捕获模式还是比较模式。

0 比较模式

7

1 捕获模式

注意:同时捕获和捕获模式选择

如果通过捕获比较寄存器 CCTLx 中的 CAP 使工作模式从比较模式变为捕获模式,

那么不应同时进行捕获;否则,在捕获比较寄存器中的值是不可预料的,推荐的指 令顺序为:[1]修改控制寄存器,由比较模式换到捕获模式。

[2]捕获 OUTMODx 选择输出模式

000 输出 001 置位

010 PWM 翻转/复位 011 PWM 置位/复位 100 翻转/置位 101 复位

110 PWM 翻转/置位 111 PWM 复位/置位

定时器时钟上升沿时 OUTx 在各模式下的状态

EQU0 EQUx 输出模式 OUTx 状态(或触发器输入端 D) 0 X X X(OUTx 位) X 0 OUTx(不变) 1 X 1 1(置位) 0 0 OUTx(不变) 0 1 /OUTx(与以前相反) 2 1 0 0 1 1 1(置位) 0 0 OUTx(不变) 0 1 1(置位) 3 1 0 0 1 1 1(置位) X 0 OUTx(不变) 4 X 1 /OUTx(与以前相反) X 0 OUTx(不变) 5 X 1 0 6 0 0 OUTx(不变) 0 1 1 1 0 1 /OUTx(与以前相反) 1 0 CCIx 捕获比较模的输入信号

捕获模式:由 CCIS0 和 CCIS1 选择的输入信号通过该位读出。 比较模式:CCIx 复位。

8

OUT 输出信号

0 输出低电平 1 输出高电平

如果 OUTMODx 选择输出模式 0(输出),则该位对应于输入状态。

COV 捕获溢出标志

0 输出低电平 1 输出高电平

[1]当 CAP=0 时,选择比较模式。捕获信号发生复位,没有使 COV 置位的捕获事件。

[2]当 CAP=1 时,选择捕获模式,如果捕获寄存器的值被读出再次发生捕获事件, 则 COV 置位。程序可检测 COV 来断定原值读出前是否又发生捕获事件。读捕获寄存器时不会使溢出标志复位,须用软件复位。

CCIFGx 捕获比较中断标志

捕获模式:寄存器 CCRx 捕获了定时器 TAR 值时置位。 比较模式:定时器 TAR 值等于寄存器 CCRx 值时置位。

CCRx 捕获/比较寄存器

15--0

在捕获比较模块中,可读可写。其中 CCR0 经常用作周期寄存器,其他 CCRx 相同。

TAIV 定器器 A 中断向量寄存器

15--5 4--1 0--0 中断向量 0 0 Timer_A 有两个中断向量,一个单独分配给捕获比较寄存器 CCR0,另一个作为 共用的中断向量用于定时器和其他的捕获比较寄存器。

CCR0 中断向量具有最高的优先级,因为 CCR0 能用于定义是增计数和增减计数模 式的周期。因此,他需要最快速度的服务。CCIFG0 在被中断服务时能自动复位。

CCR1-CCRx 和定时器共用另一个中断向量,属于多源中断,对应的中断标志 CCIFG1-CCIFGx 和 TAIFG1 在读中断向量字 TAIV 后,自动复位。如果不访问 TAIV 则不能自动复位,须用软件清除;如果相应的中断允许位复位(不允许中断), 寄存器,

则将不会产生中断请求,但中断标志仍存在,这时须用软件清除。

关于中断挂起和返回不包括处理约需要 11~16 个时钟周期。

TIMER_A 中断优先级 中断优先级 中断源 捕获/比较器 1 捕获/比较器 1 最高 捕获/比较器 x 缩写 CCIFG1 CCIFG1 CCIFGx 9

TAIV 的内容 2 4

最低 定时器溢出 没有中断将挂起 TAIFG1 10 0 比较器 A CACTL1 比较器 A 控制寄存器 1 7 6 5 4 CAEX CARESL CAREF1 CAREF0 3 CAON 2 CAIES 1 CAIE 0 CAIFG CAEX 比较器的输入端,控制比较器 A 的输入信号和输出方向。

CARSEL 选择内部参考源加到比较器 A 的正端或负端。

CAEX 和 CARSEL 的含义 CARSE CAEX 0 0 1 0 1 1 含义 内部参考源加到比较器的正端 内部参考源加到比较器的负端 内部参考源加到比较器的负端 内部参考源加到比较器的正端 CAREF1、CAREF0 选择参考源

0 使用外部参考源;

1 选择 0.25Vcc 为参考电压 2 选择 0.5Vcc 为参考电压

3 选择二极客电压为参考电压,必须见具体的芯片资料。

CAON 控制比较器 A 的打开和关闭

0 关闭比较器 1 打开比较顺

CAIES 中断触发沿选

0 上升沿使中断标志 CAIFG 置位 1 下降沿使中断标志 CAIFG 置位

CAIE 中断允许

0 禁止中断 1 允许中断

CAIFG 比较器中断标

0 没有中断请求 1 有中断请求

7

CACTL2 比较器 A 控制寄存器 2 6 5 4 3 10

2 1 0

CACTL2.7 CACTL2.6 CACTL2.5 CACTL2.4 P2CA1 P2CA0 CAF CAOUT CACTL2.7—2.4 含义请参见具体的芯片资料,例如,在 MSP430X1XX 系列中,这 位可以被执行,但不控制任何硬件,可被用作标志位。

P2CA1 控制输入端 CA1

0 外部引脚信号不连接比较器 A 1 外部引脚信号连接比较器 A

P2CA0 控制输入端 CA0

0 外部引脚信号不连接比较器 A 1 外部引脚信号连接比较器 A

CAF 选择比较器输出端是否经过 RC 低通滤波器

0 不经过 1 经过

CAOUT 比较器 A 的输

0 CA0 小于 CA1 1 CA0 大于 CA1

CAPD 端口禁止寄存器

比较器 A 模块的输入输出与 IO 口共用引脚,CAPD 可以控制 IO 端口输入缓冲器 的通断开关。当输入电压不接近 Vss 或 Vcc 时,CMOS 型的输入缓冲器可以起到分流 作用。这样可以减少了由不是 Vss 或 Vcc 的输入电压所引起的流入输入缓冲器的电 流。控制位 CAPD0—CAPD7 初始化为 0,则端口输入缓冲器有效。当相应控制位置 1 时,端口输入缓冲器无效。

ADC12 模数转换模块

ADC12 模块的所有寄存器

寄存器 转换控制寄存器 中断控制寄存器

寄存器缩写 ADC12CTL0 ADC12CTL1 ADC12IFG ADC12IE ADC12IV 寄存器含义 转换控制寄存器 0 转换控制寄存器 1 中断标志寄存器 中断使能寄存器 中断向量寄存器 存储及其控制寄存器 ADC12MCTL0-ADC12MCTL15 ADC12MEM0-ADC12MCTL15 存储控制寄存器 0-15 存储寄存器 0-15 ADC12CTL0 转换控制寄存器 0 15--12 11--8 7 6 5 4 SHT1 SHT0 MSC 2.5V REFON ADC12ON ADC12SC 采集/转换控制位

3 2 ADC12TOVIE ADC12TVIE 1 ENC 0 ADC12SC

11

在不同条件 ADC12SC 的含义.

ENC=1 SHP=1 SHP=0 ISSH=0 ADC12SC 由 0 变为 1 启动 AD 转换AD 转换完成后 ADC12SC 自动复位 ADC12SC 保持高电平时采集 ADC12SC 复位时启动一次转换 ENC=1 表示转换允许(必须使用);ISSH=0 表示采要输入信号为同相输入(推荐使 用);SHP=1 表示采样信号 SAMPCON 来源于采样定时器;SHP=0 表示采样直接由 ADC12SC 控制。使用 ADC12SC 时,需注意以上表格信号的匹配。用软件启动一次 AD 转换,需要使用一条指令来完成 ADC12SC 与 ENC 的设置。

ENC 转换允许位

0 ADC12 为初始状态,不能启动 AD 转换 1 首次转换由 SAMPCON 上升沿启动

只有在该位为高电平时,才能用软件或外部信号启动转换。在不同转换模式, ENC 由高电平变为低电平的影响不同:

□ 当 CONSEQ=0 (单通道单次转换模式)且 ADC12BUSY=1(ADC12 处于采样或者转 换)时,中途撤走 ENC 信号(高电平变为低电平),则当前操作结束,并可能得到错误 结果。所以在单通道单次转换模式整个过程中,都必须保证 ENC 信号有效。

□ 当 CONSEQ=0(非单通道单次转换)时,ENC 由高电平变为低电平,则当前转换 正常结束,且转换结果有效,在当前转换结束时停止操作。

ADC12TVIE 转换时间溢出中断允许位

0 没发生转换时间溢出 1 发生转换时间溢出

当前转换还没有完成时,又发生一次采样请求,则会发生转换时间溢出。如果允许中断,则会发生中断请求。

ADC12OVIE 溢出中断允许位

0 没有发生溢出 1 发生溢出

当 ADC12MEMx 中原有的数据还没有被读出,而现在又有新的转换结果数据要写入时,则会发生溢出。如果相应的中断允许,则会发生中断请求。 ADC12ON ADC12 内核控制位

0 关闭 ADC12 内核 1 打开 ADC12 内核

REFON 参考电压控制位

0 内部参考电压发生器关闭 1 内部参考电压发生器打开

2.5V 内部参考电压的电压值选择位

0 选择 1.5V 内部参考电压 1 选择 2.5V 内部参考电压

12

MSC 多次采样/转换位 有效条件 MSC 值 含义 SHP=1 0 每次转换需要 SHI 信号的上升沿触发采集定时器 仅首次转换同 SHI 信号的上升沿触发采样定时器,而后采样 CONSE !=0 1 转换将在前一次转换完成立即进行 其中 CONESQ≠0 表示当前转换模式不是单通道单次转换。

SHT1,SHT0 采集保持定时器 1,采样保持定时器 0

这是定义了每通道转换结果中的转换时序与采样时钟 ADC12CLK 的关系。采样周 期是 ADC12CLK 周期的整 4 倍,则:

Tsample = 4 x Tadc12clk x N

SHT1,SHT0 采样保持定时器 1,采样保持定时器 0 的分频因子

SHITx 0 1 2 3 4 5 6 7 8 9 10 11 12--15 N 1 2 4 8 16 24 32 48 64 96 128 192 256

ADC12CTL2 转换控制寄存器 2 15-12 11-10 9 8 7-5 4,3 2,1 CONSEQ 0 ADC12BUSY CSSTARTADD SHS SHP ISSH ADC12DIV ADC12SSEL 大多数位只有在 ENC=0 时才可被修改,如 3-15 位。

CSSTARTADD 转换存储器地址位,这 4 位表示二进制数 0-15 分别对应 ADC12MEM0-15。可以定义单次转换地址或序列转换的首地址。

SHS 采样触发输入源选择位

0 ADC12SC

1 Timer_A.OUT1 2 Timer_B.OUT0 3 Timer_B.OUT1

SHP 采样信号(SAMPCON)选择控制位

0 SAMPCON 源自采样触发输入信号

1 SAMPCON 源自采样定时器,由采样输入信号的上升沿触发采样定时器

ISSH 采样输入信号方向控制位

0 采样输入信号为同向输入 1 采样输入信号为反向输入

ADC12DIV ADC12 时钟源分频因子选择位,分频因子为 3 位二进制数加 1

ADC12SEL ADC12 内核时钟源选择 0 ADC12 内部时钟源:ADC12OSC 1 ACLK 2 MCLK

13

3 SMCLK

CONSEQ 转换模式选择位

0 单通道单次转换模式 1 序列通道单次转换模式 2 单通道多次转换模式 3 序列通道多次转换模式

ADC12BUSY ADC12 忙标志位

0 表示没有活动的操作

1 表示 ADC12 正处于采样期间、转换期间或序列转换期间。

ADC12BUSY 只用于单通道单次转换模式,如果 ENC 复位,则转换立即停止,转 换结果不可靠,需要在使 ENC=0 之前,测试 ADC12BUSY 位以确定是否为 0。在其它转换模式下此位是无效的。

ADC12MEM0-ADC12MEM15 转换存储器 15 14 13 12 11-0 0 0 0 0 MSB LSB 这 16 位寄存器是用来存储 AD 转换结果,只用其中低 12 位,高 4 位在读出时为0。

ADC12MCTLx 转换存储器控制寄存器

7

EOS

EOS 序列结束控制位

0 序列没有结束

1 此序列中最后一次转换

6,5,4 SREF

3,2,1,0 INCH

SREF 参考电压源选择位

0 VR+ = AVCC ,VR-=AVSS 1 VR+ = AREF+ ,VR-=AVSS

2,3 VR+ = AeREF+ ,VR-=AVSS

4 VR+ = AVCC ,VR-=VREF-/VeREF-; 5 VR+ = VREF+ , VR-=VREF-/ VeREF-; 6,7 VR+ = AeREF+ ,VR-=VREF-/ VeREF-;

INCH 选择模拟输入通道。用 4 位二进制码表示输入通道 0-7 A0-A7 8 VeREF+

9 VeREF-/VeREF-

10 片内温度传感器的输出 11-15 (AVCC-AVSS) /2

中断控制寄存器:ADC12IFG、ADC12IE、ADC12IV

14

ADC12IFG 中断标志寄存器 15 14 1 …… ADC12IFG.15 ADC12IFG.14 …… ADC12IFG.1 ADC12IFG.x = 1 转换结束,并且转换结果已经装入转换存储器 ADC12IFG.x = 0 ADC12MEMx 被访问

0 ADC12IFG.0

ADC12IE 中断使能寄存器

15 14 1 0 …… ADC12IE.15 ADC12IE.14 …… ADC12IE.1 ADC12IE.0 ADC12IE.x= 1 允许相应的中断标志位 ADC12IFG.x 在置位时发生的中断请求服务 ADC12IE.x=0 禁止相应的中断标志位 ADC12IFG.x 在置位时发生的中断请求服务 ADC12IV 中断向量寄存器

ADC12 是一个多源中断:有 18 个中断标志(ADC12IFG.0—ADC12IFG.15、ADC12TOV、ADC12OV)但只有一个中断向量。 ADC12 各中断标志对应的 ADC12IV 值 ADC12 ADC12 ADC1 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 TOV OV 2IV 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

USART 串行异步模式

MSP430F14 USART0 异步方式中断控制位 特殊功能寄存器 接收中断控制位 IFG1 接收中断标志 URXIFG0 IE1 接收中断使能 URXIE0 ME1接收允许 URXE0 MSP430F14 USART1 异步方式中断控制位 特殊功能寄存器 接收中断控制位 IFG2 接收中断标志 URXIFG1 发送中断控制位 接收中断标志 UTXIFG0 接收中断使能 UTXIE0 接收允许 UTXE0 发送中断控制位 接收中断标志 UTXIFG1

IE2 ME2 接收中断使能 URXIE1 接收允许 URXE1 接收中断使能 UTXIE1 接收允许 UTXE1

在 MSP430 器件中有的型号有两个通信硬件模块 USART0 和 USART1,因此他们有两套寄存器.请看下表: USART0 的寄存器 寄存器 缩写 读写类型 地址 初始状态 U0CTL 070H 控制寄存器 读/写 PUC 后 001H U0TCTL 71H 发送控制寄存器 读/写 PUC 后 001H U0RCTL 72H 接收控制寄存器 读/写 PUC 后 000H 15

波特率调整控制寄存器 波特率控制寄存器 0 波特率控制寄存器 1 接收缓冲器 发送缓冲器 SFR 模块使能寄存器 1 FR 模块使能寄存器 1 FR 模块使能寄存器 1 U0MCTL U0BR0 U0BR1 U0RXBUF U0TXBUF ME1 IE1 IFG1 读/写 读/写 读/写 读 读/写 读/写 读/写 读/写 73H 74H 75H 76H 77H 004H 000H 002H 不变 不变 不变 不变 不变 PUC 后 000H PUC 后 000H PUC 后 082H USART1 的寄存器 寄存器 控制寄存器 发送控制寄存器 接收控制寄存器 波特率调整控制寄存器 波特率控制寄存器 0 波特率控制寄存器 1 接收缓冲器 发送缓冲器 SFR 模块使能寄存器 1 FR 模块使能寄存器 1 FR 模块使能寄存器 1 UxCTL 控制寄存器 7 6 PENA PEV PENA 校验允许位

0 校验禁止

缩写 读写类型 地址 U1CTL 078H 读/写 U1TCTL 79H 读/写 U1RCTL 7AH 读/写 U1MCTL 7BH 读/写 U1BR0 7CH 读/写 U1BR1 7DH 读/写 U1RXBUF 7EH 读 U1TXBUF 7FH 读/写 ME2 005H 读/写 IE2 001H 读/写 IFG2 003H 读/写 初始状态 PUC 后 001H PUC 后 001H PUC 后 000H 不变 不变 不变 不变 不变 PUC 后 000H PUC 后 000H PUC 后 020H 5 SPB 4 CHAR 3 2 LISTEN SYNC 1 MM 0 SWRST

1 校验允许

校验允许时,发送端发送校验,接收端接收该校验,地址位多机模式中,地址

位包含校验操作.

PEV 奇偶校验位,该位在校验允许时有效

0 奇校验 1 偶校验

SPB 停止位选择.决定发送的停止位数,但接收时接收器只检测 1 位停止位.

0 1 位停止位 1 2 位停止位

CHAR 字符长度

0 7 位

16

1 8 位

LISTEN 反馈选择.选择是否发送数据由内部反馈给接收器

0 无反馈

1 有反馈,发送信号由内部反馈给接收器

SYNC USART 模块的模式选择

0 UART 模式[异步] 1 SPI 模式[同步]

MM 多机模式选择位

0 线路空闲多机协议 1 地址位多机协议

SWRST 控制位

上电时该位置位,此时 USART 状态机和运行标志初始化成复状态

(URXIFG=0,URXIE=0,UTXIE=0,UTXIFG=1)。所有受影响的逻辑保持在复位状态,直至SWRST 复位。也就是说一次系统复位后,只有对 SWRST 复位,USART 才能重新被允许。而接收和发送允许标志 URXE 和 UTXE 不会因 SWRST 而更改。

SWRST 位会使 URXIE、UTXIE、URXIFG、RXWAKE、TXWAKE、RXERR、BRK、PE、OE及 FE 等复位。

在串行口使用设置时,这一位起重要的作用。一次正确的 USART 模块初始化应该是这样设置过程的:先在 SWRST=1 时设置,设置完串口后再设置 SWRST=0;最后如需要中断,则设置相应的中断使能。

UxTCTL 发送控制寄存器 7 6 5 4 3 2 TXWAKE 1 未用

0 TXEPT

未用 CKPL SSEL1 SSEL0 URXSE CKPL 时钟极性控制位

0 UCLKI 信号与 UCLK 信号极性相同 1 UCLKI 信号与 UCLK 信号极性相反

SSEL1、SSEL0 时钟源选择,此两位确定波特率发生器的时钟源

0 外部时钟 UCLKI; 1 辅助时钟 ACLK 2 子系统时钟 SMCLK 3 子系统时钟 SMCLK

URXSE 接收触发沿控制位

0 没有接收触发沿检测 1 有接收触发沿检测

TXWAKE 传输唤醒控制

0 下一个要传输的字符为数据 1 下一个要传输的字符是地址

17

TXEPT 发送器空标志,在异步模式与同步模式时是不一样的。

0 正在传输数据或者发送缓冲器(UTXBUF)有数据 1 表示发送移位寄存器和 UTXBUF 空或者 SWRST=1

URCTL 接收控制寄存器 7 6 5 FE PE OE FE 帧错误标志

0 没有帧错误 1 帧错误

4 BRK 3 2 1 URXEIE URXWIE RXWAKE 0 RXERR

PE 校验错误标志位

0 校验正确 1 校验错误

OE 溢出标志位

0 无溢出 1 有溢出 BRK 打断检测位

0 没有被打断 1 被打断

URXEIE 接收出错中断允许位

0 不允许中断,不接收出错字符并且不改变 URXIFG 标志 1 允许中断,出错字符接收并且能够置位 URXIFG

URXWIE 接收唤醒中断允许位,当接收到地址字符时,该位能够置位 URXIFG,当 URXEIE=0,如果接收内容有错误,该位不能置位 URXIFG。

0 所有接收的字符都能够置位 URXIFG 1 只能接收到地址字符才能置位 URXIFG

在各种条件下 URXEIE 和 URXWIE 对 URXIFG 的影响

接收字符后的标志位 地址字符 URXEIE URXWIE 字符出错 URXIFG 0 X 1 X 不变 0 0 0 X 置位 0 1 0 0 不变 0 1 0 1 置位 1 0 X X 置位(接收所有字符) 1 1 X 0 不变 1 1 X 1 置位

RXWAKE 接收唤醒检测位。在地址位多机模式,接收字符地址位置位时,该机被 唤醒,在线路空闲多机模式,在接收到字符前检测到 URXD 线路空闲时,该机被唤起,

18

RXWAKE 置位。

0 没有被唤醒,接收到的字符是数据 1 唤醒,接收的字符是地址

RXERR 接收错误标志

0 没有接收错误 1 有接收到错误

UxBR0、UxBR1 波特率选择寄存器 这两个寄存器是用于存放波特率分频因子的整数部分。 UxBR0 波特率选择寄存器 0 7 6 5 4 3 2 27 26 25 24 23 22 UxBR1 波特率选择寄存器 1 7 6 5 215

214

213

1 21 0 20 4 212

3 211

2 210

1 29

0 28

UxMCTL 波特率调整控制寄存器 7 6 5 4 3 2 1 0 M7 M6 M5 M4 M3 M2 M1 M0 若波特率发生器的输入频率 BRCLK 不是所需波特率的整数倍,带有一小数,则 整数部分写 UBR 寄存器,小数部分由调整寄存器 UxMCTL 的内容反映。波特率由以下 公式计算:

波特率=BRCLK/(UBR+(M7+M6+…M0)/8) URXBUF 接收数据缓存 7 6 5 接收缓存存放移位寄存器最后接收的字符,可由用户访问。读接收缓存可以复 位接收时产生的各种错误标志、RXWAKE 位和 URXIFGx 位。如果传输 7 位数据,接收

缓存内容右对齐,最高位为 0。

4 3 2 1 0

当收接和控制条件为真时,接收缓存装入当前接收到的字符。 当接收和控制条件为真时接收数据缓存结果

条件 结果 URXEIE URXWIE PE FE BRK 装入 URXBUF 0 1 0 0 0 无差错地址字符 1 1 X X X 所有地址字符 0 0 0 0 0 无差错字符 1 0 X X X 所有字符 19

UTXBUF 发送数据缓存 7 6 5 4 3 2 1 0 发送缓存内容可以传至发送移位寄存器,然后由 UTXDx 传输。对发送缓存进行 写操作可以复位 UTXIFGx。如果传输出 7 位数据,发送缓存内容最高为 0。

常用波特率及其对应设置参数与对应误差表 Divide by ACLK[32768HZ 低频振荡器] baud rate ACLK MCLK 436. 91 1398 1 MCLK[1048576HZ 高频振荡器] Sync hr UxBR1 TX Erro Ux BR 1 UxB R0 UxM CTL Max.TX Error/% 75

1 B4 FF -0.3/0.3 Max.R X Error /% -0.3/ 0.3 Ux BR 0 UxM CTL Max. TX Error /% Max. RX Erro r/% ±2 ±2 36 9D FF 0/0.1 CPU 的状态寄存器 SR 15-9 保留 8 V 7 SCG1 6 SCG0 5 4 OscOff CPUoff 3 GIE 2 N 1 Z 0 C V 溢出标志

SCG1 SCG0 时钟控制位

SCG1 置位关闭 SMCLK

SCG0 置位关闭 DCO 发生器

OscOff 晶体振荡控制位

置位 OscOff 使晶体振荡器处于停止状态,置位 OscOff 同时 CPUoff 位也置

位。可用 NMI 或外部中断(系统当前中断允许)将 CPU 唤醒。

CPUoff CPU 控制位

置位 CPUoff 可使 CPU 进入关闭模式,可以用所中断允许将 CPU 唤醒。

GIE 全局中断标志位

控制可屏蔽中断

GIE 置位 CPU 可响应可屏蔽中断 GIE 置位 CPU 不响应可屏蔽中断

N 负标志

Z 零标志

C 进位标志

特殊功能寄存器

系统中断处理

20

当各模块发生中断请求时并且相应的中断允许和通用中断允许位(GIE)置位时,中断服务程序按以下顺序动作:

[1] CPU 处于活动状态:完成当前所执行的指令. [2]CPU 处于停止状态:低功耗模式终止. [3]指向下一条指令的 PC 值压入堆栈. [4]SR 压入堆栈

[5]如果在执行上条指令时已发生多个中断请求等待服务,则选择最高优先级者. [6]单中断源标志的中断请求位自动复位,多中断源标志仍保持置位等待软件服务.

[7]通用中断允许位 GIE 复位;CPUoff 位、OSCOff 位和 SCG1 位置位;状态位 V、N、Z 和 C复位;SCG0 位保持不变.

[8]相应的中断向量值装入 PC,程序从此地址继续执行中断处理.

ME1 模块允许寄存器 1 7 6 5 4 URXE0/ UTXE0 USPIE0 后为 000H 初始状态:PUC UTXE0 USART0 发送允许位

0 不允许 1 可允许

URXE0 USART0 接收允许位

0 不允许 1 可允许

3 2 1 0

USPIE0 USART0 发送与接收允许位(在 SPI 模式)

IFG1 中断标志寄存器 1

7 6 5 UTXIFG0 URXIFG0 初始状态:PUC 后为 082H 4 NMIIFG 3 2 1 OFIFG 0 WDTIFG

UTXIFG0 USART0 发送中断标志位(F14、15、16、44)

此位上电为 UTXIFG0=1,表示可以向发送缓冲器写操作。对发送缓存进行写操作时可以复位 UTXIFG0。

URXIFG0 USART0 接收中断标志位(F14、15、16、44)

0 无接收到有效字符

1 接收到有效字符,读接收缓存可以复位接收时产生的各种错误标志、

RXWAKE 位和 URXIFGx 位。

NMIIFG NMI/RST 引脚信号位

OFIFG 振荡器失效时置位

0 无振荡器失效 1 振荡器失效,当 XT 扫荡器丢失大约 100 个振荡周期时设置 TX 振荡器失效标志 OSCFault。OSCFault 标志设置振荡器失效中断标志 OFIFG,如果这

21

时振荡器失效中断允许(OFIE)置位,则将产生非屏蔽中断请求。OFIFG 标志必须由用户软件来清除。

WDTIFG 看门狗中断标志

看门狗模式时溢出或密钥不符时产生置位

IE1 中断使能寄存器 1

7 6 5 4 3 UTXIE0 URXIE0 ACCVIE NMIIE 初始状态:PUC 后为 000H UTXIE0 USART 发送中断允许位

0 不允许 1 允许

2 1 OFIE 0 WDTIE

URXIE0 USART0 接收中断使能位允许

0 不允许 1 允许

ACCVIE FLASH 存贮器非法访问中断允许

NMIIE NMI 看门狗中断允许

OFIE 振荡器失效中断允许

0 不允许 1 允许

WDTIE 看门狗允许,选看门狗模式无效//

0 不允许 1 允许

ME2 中断使能寄存器 2

7 6 5 4 URXE1/ UTIE1 USPIE1 初始状态:PUC 后为 000H UTXE1 USART1 发送允许位

0 不允许 1 可允许

URXE1 USART1 接收允许位

0 不允许 1 可允许

3 2 1 0

USPIE1 USART0 发送与接收允许位(在 SPI 模式)

IFG2 中断标志寄存器 2

22

5 4 3 2 1 0 UTXIFG1 URXIFG1 初始状态:PUC 后为 020H UTXIFG1 USART1 发送中断标志位(F14、15、16、44)

此位上电为 UTXIFG0=1,表示可以向发送缓冲器写字符。对发送缓存进行写操作时可以复位 UTXIFG0。

7 6 URXIFG1 USART1 接收中断标志位(F14、15、16、44)

0 无接收到有效字符

1 接收到有效字符,读接收缓存可以复位接收时产生的各种错误标志、RXWAKE 位和 URXIFGx 位。

IE2 中断使能寄存器 2

7 6 5 4 3 2 UTXIE1 URXIE1 初始状态:PUC 后为 000H UTXIE1 USART1 发送中断允许位(F14、15、16、44)

URXIE1 USART1 接收中断允许位(F14、15、16、44)

1 0

23

本文来源:https://www.bwwdw.com/article/fpl3.html

Top