作者:BerenCamlost
本文针对于MSP430单片机原理与应用课程,请在复习时使用。
参考资料:
- PPT
- MSP430F6638用户手册
- 实验教程
本章最新更新日期:2018.12.21
第一章 CPU 寄存器
1.1 PC——程序计数器
- 取完指令后CPU根据该指令的字节数自动增量PC,因此20位的PC(R0)的值总是指向下一条要执行的指令。
- PC总是指向偶地址(bit0=0)
1.2 SP——堆栈指针
- CPU使用20位堆栈指针(SP,也称为R1)来存储子例程调用和中断的返回地址。
- 【作用】:保护现场和恢复现场。
- 它使用先进后出方案。
- SP由用户初始化为RAM,并且始终与偶数地址对齐。
- 堆栈分两种:
- 向上增长,栈底占用较低地址,栈顶占用较高地址 : 8051
- 向下增长,栈底占用较高地址,栈顶占用较低地址: MSP430、AVR
- ARM支持两种增长方式的堆栈。
1.3 SR——状态寄存器
- 用作源或目标寄存器的16位状态寄存器(SR,也称为R2)只能用于通过字指令寻址的寄存器模式。 寻址模式的其余组合用于支持常数发生器。
- SCG1:系统时钟发生器1该位可用于根据器件系列启用或禁用时钟系统中的功能; 例如,DCO偏置启用或禁用。
- SCG0:系统时钟发生器0该位可用于根据器件系列启用或禁用时钟系统中的功能; 例如,FLL(频率锁定环)启用或禁用。
- OSCOFF:关闭振荡器。 该位置1时,当LFXT1 CLK不用于MCLK或SMCLK时,它会关闭LFXT1晶体振荡器。
- CPUOFF:CPU关闭。 该位置1时,将关闭CPU。
- CPUOFF,OSCOFF,SCGO和SCG1位请求系统进入低功耗模式。
- GIE:中断使能总控制位,可以使能/屏蔽可屏蔽中断。
可以使用如下指令配置SR寄存器:
//将SR某位置1
__bis_SR_register();
_bis_SR_register();
_BIS_SR();
//将SR某位置0
__bic_SR_register();
_bic_SR_register();
_BIC_SR();
上述都是内置函数,关于更多的内置函数,请查看博客(这两篇博客显然一样并且都是转(抄)的,随便看看吧)。