总结
1. CPU介绍
MSP430的CPU具有诸如计算分支、表格处理、支持高级语言(C)等现代处理器特征,其特点包括:
1.RISC精简指令集
2.正交体系结构
3.包括程序计数器PC、堆栈寄存器SP、状态寄存器SR在内的全部寄存器可访问
3.单周期寄存器操作
4.更大的寄存器容量以减少内存访问
5.20位地址总线允许直接访问,在整个内存范围内进行分支,而不进行分页。
6.16位数据总线允许长字访问
7.提供常数发生器产生6个常用常数以减少代码大小
8.直接内存到内存传送不需要中间寄存器
9.字节、字、20位地址直接访问
2. 中断
中断向量为16位地址,可指向低64KB内存,这也意味着中断服务程序必须位于低64KB的内存空间中。
发生中断时,首先将PC和SR压入堆栈,因为PC长度为20bit,所以PC的0:15位先被压入,再把PC的16:19和SR一并压入堆栈。
3.CPU寄存器
MSP430含有16个寄存器(R0:R15),R0、R1、R2、R3有特殊用途,其余为通用寄存器。
3.1 程序计数器PC
20位PC(也就是R0)指向下一条将要执行的指令地址,每条指令为偶数个字节,意味着PC只能为偶数,每执行一条指令后PC自动递增。
3.2 堆栈指针SP
CPU使用20位SP(也就是R1)储存子程序返回地址,此外,所有的软件也能使用SP来储存数据。SP被用户初始化进入RAM,总是指向偶数地址。
3.3 状态寄存器SR
被作为源或者目的16位状态寄存器(也就是R2)只能够在寄存器模式下用字命令使用,其余的寻址模式组合用于支持常量生成器。不要给SR写16位数,否则结果将不可预料。
** 3.4常数发生器CG1和CG2**
6个常用常数可被CG1(R2)和CG2(R3)产生而不需要额外的代码,6个常数如下:
其优点包括:不需要特殊指令、不需要额外代码、检索常量不需要代码内存访问。
如果需要,编译器会优先使用常数发生器,若R2、R3设置为常规模式,则其被当做普通寄存器使用。
** 3.5普通寄存器**
12个普通寄存器(R4:R15)可储存8bit、16bit、20bit数据,若向内写入字节数据,则8:19位会被清除,若写入系数据,则16:19位会被清除
4.寻址模式
MSP430包含7个源寻址模式和4个目的寻址模式,最大能够寻址1MB内存空间。
寻址模式具体内容较为复杂,详情参考
关键字:MSP430 CPU介绍 寄存器
引用地址:
MSP430CPU介绍
推荐阅读最新更新时间:2024-11-11 11:22
MSP430在Energia上的使用(上)
准备工作 终于狠下心花了百元大洋买了块MSP430F5529LP板子,准备研究一下板载仿真器在Energia中是如何进行烧录的。 通过TI公司的官方文件《MSP430F5529 LaunchPad Development Kit……》,我们其实可以得到LaunchPad的原理图,因为整个原理图用了四页,这里就不详细展示了,有需要可以在TI官网找。我只截取板载仿真器和MSP430F5529芯片的接口部分的图 其中板载仿真器被TI公司命名为ezFET,应该是简版仿真器的意思,除去电源线部分,我们可以看到信息传输分为两部分——SBW和UART。其中SBW相当于两线JTAG,可以当做仿真器接口,而UART则是使用的MSP430的B
[单片机]
单片机电源管理寄存器PCON的用法
我们知道单片机内部有一个电源管理寄存器PCON,这个寄存器的最低两位,IDL和PD这两位分别用来设定是否使单片机进入空闲模式和掉电模式。 1. 空闲模式 当单片机进入空闲模式时,除CPU处于休眠状态外,其余硬件全部处于活动状态,芯片中程序未涉及到的数据存储器和特殊功能寄存器中的数据在空闲模式期间都将保持原值。但假若定时器正在运行,那么计数器寄存器中的值还将会增加。单片机在空闲模式下可由任一个中断或硬件复位唤醒,需要注意的是,使用中断唤醒单片机时,程序从原来停止处继续运行,当使用硬件复位唤醒单片机时,程序将从头开始执行。 让单片机进入空闲模式的目的通常是为了降低系统的功耗,举个很简单的例子,大家都用过数字万用
[单片机]
MSP430系列单片机与51单片机的区别及优劣势对比
MSP430系列单片机是美国德州仪器(TI)1996年开始推向市场的一种16 位超低功耗的混合信号处理器(Mixed Signal Processor)。称之为混合信号处理器,主要是由于其针对实际应用需求,把许多模拟电路、数字电路和微处理器集成在一个芯片上,以提供“单片”解决方案。MSP430是16位单片机,51是8位单片机,MSP430采用RISC精简指令集,单个时钟周期就可以执行一条指令,相同晶振,速度较51快12倍。其它片上资源也是MSP较丰富。 有很多应用领域,比如智能仪器或仪表、自动化控制设备、家用电器等,其对于运算及控制功能的要求不高,用简单的控制软件便可达到令人满意的控制效果,但是针对一些对于体积、成本及能耗有着
[单片机]
(5)MSP430F5529 统一时钟系统UCS
之前有一点漏说明了,先补充上:还有一个模块时钟源:MODOSC,产生MODCLK时钟源信号,一般只为闪存控制模块和ADC12模块提供服务。 该模块不被使用时自动关闭,任何模块对该时钟源提出使用要求时,MODOSC无需被使能即可响应该请求。430F5529中MODCLK为5MHZ。 *************************************************************** MSP430F5529有多个时钟源,而且很多模块其时钟源都是可以自由选择的。此外,由于一般情况下,系统功耗是和工作频率成正比的,因此有些时候通过选择较低频率的时钟源,在满足正常工作条件下,是可以有效降低功耗的。虽然函数库HA
[单片机]
详解ARM9的CPSR寄存器
最近在学习嵌入式底层系统开发,在写启动代码时要设置各个模式的SP,需要调整CPU的工作模式,部分代码如下: view plain copy print ? pre name= code class= plain .equ DISABLE_IRQ, 0x80 .equ DISABLE_FIQ, 0x40 .equ SYS_MOD, 0x1f .equ IRQ_MOD, 0x12 .equ FIQ_MOD, 0x11 .equ SVC_MOD, 0x13 .equ ABT_MOD, 0x17 .equ UND_MOD, 0x1b /pre pre name= code clas
[单片机]
MSP430 IIC总线程序
#ifndef _I2C_H #define _I2C_H #define SDA_1 P4OUT|=0x02 //SDA = 1 #define SDA_0 P4OUT&=~0x02 //SDA = 0 #define SCL_1 P4OUT|=0x01 //SCL = 1 #define SCL_0 P4OUT&=~0x01 //SCL = 0 #define SDA_IN P4DIR&=~0x02; //I/O口为输入 #define SDA_OUT P4DIR|=0x02 //I/0口为输出 #define J
[单片机]
MSP430 DM430-A开发板学习笔记(五)IO中断方式来实现按键检测
1.按键说明 在MSP430开发板中,有四个按键连接到P1,即 2.中断流程图 中断流程图如下,在用C语言实现我们想要的功能的时候,我们可能需要使用switch、if语句对某些变量进行多次判别,这样会加长我们的代码并且不易观看,使用外部中断的好处就是: 1.可以在中断服务程序中对变量的值进行修改,从而达到随时更改变量值的目的 2.对一些变量可以进行单独控制,减少主程序代码的长度 3.中断配置 我们要开启P1口的低四位中断,使用下降沿触发中断,意思就是,我们按下按键,某个p1口由高电平状态→低电平状态,便产生了一个下降沿,从而触发了中断程序,代码如下: //*******************************
[单片机]
基于MSP430的湿度控制器及定标
个人觉得技术博客可以作为自己成长的一个记录工具,可以把除了军工或者可能涉密的项目,或者一些项目中用到的一些小技巧甚至是一些体会写出来和大家一起分享,同时也能督促自己在追赶时代的同时能回顾自己曾经付出的汗水和自己未曾完成或者已经完成的事情,有种温故而知新的感觉,尤其是对硬件。对于软件可能更多的是种成就感。无论怎样这都是一种坚持的动力也是自我提高的过程。 这个430单片的小项目是我本科刚毕业的时候做的,花了近乎一个月的时间。现在看来,东西做是做成了,但是文档功底似乎还要提高。之后我又花了近乎一个月的时间做了这个项目的姐妹版本 基于MSP430的湿度计及定标。两者的区别除了前者多个控制功能以外,主要在定标功能的实现上。前者的定标计
[单片机]