第2章第1节MSP430概述
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
地址总线数据总线控制总线srr2数据输入输出电路指令译码r4r5r15通用寄存器pcr0alumsp430cpu原理图指令指针寄存器spr1堆栈指针寄存器状态寄存器mab16bitmdb16bitmcbr2r3常数发生器16bitriscarchitecture27条核心指令7种寻址方式16个16位的寄存器r0pcprogramcounterr1spstackpointr2srcg1statusr3cg2constantgeneratorr4generalpurposer5generalpurposer14generalpurposer15generalpurpose15msp430cpu的寄存器msp430cpu的编程结构仅从编程的角度看待cpu的组成主要是指cpu中的寄存器及其使用方法而不关心其硬件实现的具体细节msp430汇编语言程序
……
CMP x , y JC less …… …… ;x-y ;若 C=1 , x<y , 转至 less处运行 ;否则x>=y 运行此指令
less: ……
……
;less处的指令
Z:零标志(Zero Flag) 若运算结果为 0 时,则Z=1,否则Z=0 例:CMP指令与Z标志结合测试两个操作数是否相等: ……
计算机的基本组成和工作原理
输 入 设 运算器ALU
存储器
输 出 设
备 控制器
CPU
备
1.以二进制表示数据和指令(程序)
? ? ?
要 点
2. “存储程序” 3. 五大组成部分
+
“程序控制”
冯· 诺依曼计算机
微机的基本结构
输入/输出 设备1 输入/输出 设备n
CPU
运算器 + 控制器 + 寄存器
存 储 器
• • • • 16-bit RISC CPU; peripherals模块(外设,I/O接口); 时钟模块; 各模块通过地址总线(MAB)、数据总线(MDB)和控 制总线(MCB)互连; I/O接口与存储器统一编址; 27条核心指令,7种寻址方式; CPU中的寄存器均可以进行读和写操作; 单周期寄存器操作; 无需寄存器中介的存储器之间的数据传送; 内含常数发生器,可缩短代码长度; ……
被加数
运 运 算 算 器 器
加数 和
SR
存储器与 I/O 组织 I/O与存储器统一编址,可寻址空间64k字节
通用寄存器
R4 R5 …… R15
指令指针寄存器 PC/R0 堆栈指针寄存器 SP/R1
地 址 寄 存 器
MAB
MDB
运 算 ALU 器 数据暂存器 指令寄存器 指令译码器 SR/R2 状态寄存器 控制电路
存储器 和 I/O系统
MCB
存储器的构成:ROM + RAM
存储器用于存放程序与数据 ROM: Read Only Memory RAM: Random Access Memory FLASH ROM 64K ROM 程序 和 常数
高
ROM具有掉电保护 的功能,即掉电不丢 失其中的信息。 CPU RAM无掉电保护功能 掉电后原有信息将 不复存在
MAB MDB
MCB
地址 译码 数据 缓冲 控制 电路
RAM 变量 与 堆栈 I/O SFR
低
MSP430 64k字节可寻址空间的组织
操作指令 word: 字指令(.W) byte:字节指令(.B)
code, data word or byte tables
data, code
I/O空间
数据的存储格式
通用寄存器可以用作数据寄存器(寄存器寻址方式)、地址 指针(寄存器间接寻址方式)或变址值(index value,变址 寻址方式),而且可以用字指令(.W)或者字节指令(.B) 进行存取操作。
字节指令(.B)存取寄存器操作示意图:
MSP430 CPU的状态寄存器——SR/R2
状态位(Status Bits): V (Overflow Flag) N (Negative Flag) Z (Zero Flag) C (Carry Flag) 记录指令运算结果的状态信 息。常作为后续转移指令的 控制条件,又称为条件码
R14
R15
General Purpose
General Purpose
汇编语言直接与 CPU中的寄存器打交道 因此在汇编语言程序中 要频繁使用寄存器
MSP430汇编语言程序:
Start: ……
MOV #100 , R6 MOV #0 , R8
MOV #2000H , R7
例:右图的 MSP430 汇编语言 程序使用了 R6,R7,R8,SR 等寄存器
1xxx xxxxB 1000 0000B 1000 0000B
Z=0
与
0xxx xxxxB 1000 0000B 0000 0000B
Z=1
…… TST R5 , 1000 0000B JZ zero ;两个操作数相“与”
;若 Z=1 则R5的D7=0,转 zero处运行
……
…… zero: …… ……
CMP x , y
JC less JZ equal …… ……
;x-y
;若 C=1 , x<y , 转 less处运行 ;若 Z=1 , x=y , 转equal处运行 ;否则x>y 运行此指令
less: ……
equal: ……
与TST指令结合用Z测试某位是0还是1:
例:测试R5的D7 是0还是1? 与
MSP430 的 Comparator A
MSP430 的 Clock System
MSP430 的 Emulation Module
MSP430X13X和MSP430X14X的引脚定义
P5
P6
P4
P2 P1 P3 引脚复用
D/A , DMA , I2C , SVS
高字节存储在高地址 低字节存储在低地址
byte可以在奇地址或偶地址
word的高字节只能在奇地址 低字节只能在偶地址
特殊功能寄存器 SFR
用于允许/禁止某些外设的功能、允许/禁止某些外设的中断 请求、登记某些外设的中断标志等。 SFR是字节型的寄存器,因此只能使用字节型指令(.B)对 其进行操作。
MSP430 外设
Again: ADD INC DEC JNZ …… @R7 , R8 R7 R6 again
使用SR寄存器
MSP430 CPU 寄存器
15 R0/PC Program Counter R1/SP Stack Point R2/SR/CG1 Status R3/CG2 Constant Generator 0 0 0
;否则R5的D7=1,运行此指令
; zero处的指令
加法运算对状态标志的影响举例
1 0 1 1 0 1 0 1 被加数8位 + 1 0 0 0 1 1 1 1 加数8位 进位 1 1 1 1 1 1 1 0 1 0 0 0 1 0 0 和8位
最高位D7位产生进位: 相加的结果为44H, 不为0: 结果为正: 结果有溢出: C=1 Z=0 N=0 V=1
• • • • • • •
MSP430 CPU原理图
通用寄存器
R4 R5 …… R15
指令指针寄存器 PC/R0 堆栈指针寄存器
SP/R1
常数发生器
R2/R3
地 址 输 出 电 路
16-bit RISC architecture 27条核心指令 7种寻址方式 16个16位的寄存器
MAB 16-bit 地址总线
取完指令后CPU根据该指令的字节数自动增 量PC,因此PC的值指向下一条要执行的指 令。PC总是指向偶地址(bit0=0) 堆栈用于保存子程序的返回地址等重要信息。 堆栈按先进后出原则进行操作,堆栈指针SP 指向堆栈的栈顶(TOP)。SP总是指向偶地 址(bit0=0),并且必须由用户初始化。
R4
R5
方式位(Mode Bits): SCG1 SCG0 OSCOFF CPUOFF GIE (General Interrupt enable) 用于控制时钟、CPU 和中断
常用状态标志C和Z的含义及其使用
C:进位标志(Carry Flag) 加法时,若最高位有进位则C=1,否则C=0 减法时,若最高位有借位则C=1,否则C=0 例:CMP指令与C标志结合可判断两数的大小:
第2章
MSP430微控制器概述
与寻址方式
第1节 MSP430微控制器概述 第2节 MSP430 CPU的寻址方式
本章课程目标: 1. 了解MSP430的基本结构 2. 掌握MSP430的寻址方式 3. 熟悉 IAR 的使用方法(通过实验)
第1节 MSP430微控制器概述
计算机 微型计算机 工控机 单片机 微控制器(MCU) 嵌入式系统 ……
运 算 ALU 器
数据输入 输出电路
MDB 16-bit 数据总线
SR/R2 状态寄存器
指令译码 与 控制逻辑
MCB
控制总线
MSP430 CPU 的编程结构
仅从编程的角度看待CPU的 组成,主要是指CPU中的寄 存器及其使用方法,而不关 心其硬件实现的具体细节
MSP430 CPU 的寄存器
15 R0/PC Program Counter R1/SP Stack Point R2/SR/CG1 Status R3/CG2 Constant Generator R4 R5 General Purpose General Purpose 0 0 0
I/O 接口 1
I/O 接口 n
地址总线 AB
数据总线 DB
控制总线 CB
独立芯片或电路
微控制器(MCU)的基本结构
CPU运算器 + 控制器来自+ 寄存器存 储 器I/O 接口 1
I/O 接口 n
地址总线 AB 数据总线 DB
控制总线 CB
集成芯片
存储容量、速度、功能、功耗、……???
MSP430的体系结构与特点
General Purpose
General Purpose
状态寄存器SR用于指示ALU的运算结果状态 以及CPU、时钟和中断控制等。SR只能用于 寄存器寻址方式的字指令(.W)中。若使用 其它的寻址方式,则实际上用的是常数发生 器CG1,而不是SR。
R15
General Purpose
通用寄存器 R4~R15
Peripherals (I/O接口) 16位 8位
0100~01FFh 010~0FFh
MSP430 的 digital I/O
MSP430 的 Watchdog Timer
MSP430 的 USART0 , USART1
MSP430 的 ADC12
MSP430 的 Timer_A3 , Timer_B7
……
CMP x , y JC less …… …… ;x-y ;若 C=1 , x<y , 转至 less处运行 ;否则x>=y 运行此指令
less: ……
……
;less处的指令
Z:零标志(Zero Flag) 若运算结果为 0 时,则Z=1,否则Z=0 例:CMP指令与Z标志结合测试两个操作数是否相等: ……
计算机的基本组成和工作原理
输 入 设 运算器ALU
存储器
输 出 设
备 控制器
CPU
备
1.以二进制表示数据和指令(程序)
? ? ?
要 点
2. “存储程序” 3. 五大组成部分
+
“程序控制”
冯· 诺依曼计算机
微机的基本结构
输入/输出 设备1 输入/输出 设备n
CPU
运算器 + 控制器 + 寄存器
存 储 器
• • • • 16-bit RISC CPU; peripherals模块(外设,I/O接口); 时钟模块; 各模块通过地址总线(MAB)、数据总线(MDB)和控 制总线(MCB)互连; I/O接口与存储器统一编址; 27条核心指令,7种寻址方式; CPU中的寄存器均可以进行读和写操作; 单周期寄存器操作; 无需寄存器中介的存储器之间的数据传送; 内含常数发生器,可缩短代码长度; ……
被加数
运 运 算 算 器 器
加数 和
SR
存储器与 I/O 组织 I/O与存储器统一编址,可寻址空间64k字节
通用寄存器
R4 R5 …… R15
指令指针寄存器 PC/R0 堆栈指针寄存器 SP/R1
地 址 寄 存 器
MAB
MDB
运 算 ALU 器 数据暂存器 指令寄存器 指令译码器 SR/R2 状态寄存器 控制电路
存储器 和 I/O系统
MCB
存储器的构成:ROM + RAM
存储器用于存放程序与数据 ROM: Read Only Memory RAM: Random Access Memory FLASH ROM 64K ROM 程序 和 常数
高
ROM具有掉电保护 的功能,即掉电不丢 失其中的信息。 CPU RAM无掉电保护功能 掉电后原有信息将 不复存在
MAB MDB
MCB
地址 译码 数据 缓冲 控制 电路
RAM 变量 与 堆栈 I/O SFR
低
MSP430 64k字节可寻址空间的组织
操作指令 word: 字指令(.W) byte:字节指令(.B)
code, data word or byte tables
data, code
I/O空间
数据的存储格式
通用寄存器可以用作数据寄存器(寄存器寻址方式)、地址 指针(寄存器间接寻址方式)或变址值(index value,变址 寻址方式),而且可以用字指令(.W)或者字节指令(.B) 进行存取操作。
字节指令(.B)存取寄存器操作示意图:
MSP430 CPU的状态寄存器——SR/R2
状态位(Status Bits): V (Overflow Flag) N (Negative Flag) Z (Zero Flag) C (Carry Flag) 记录指令运算结果的状态信 息。常作为后续转移指令的 控制条件,又称为条件码
R14
R15
General Purpose
General Purpose
汇编语言直接与 CPU中的寄存器打交道 因此在汇编语言程序中 要频繁使用寄存器
MSP430汇编语言程序:
Start: ……
MOV #100 , R6 MOV #0 , R8
MOV #2000H , R7
例:右图的 MSP430 汇编语言 程序使用了 R6,R7,R8,SR 等寄存器
1xxx xxxxB 1000 0000B 1000 0000B
Z=0
与
0xxx xxxxB 1000 0000B 0000 0000B
Z=1
…… TST R5 , 1000 0000B JZ zero ;两个操作数相“与”
;若 Z=1 则R5的D7=0,转 zero处运行
……
…… zero: …… ……
CMP x , y
JC less JZ equal …… ……
;x-y
;若 C=1 , x<y , 转 less处运行 ;若 Z=1 , x=y , 转equal处运行 ;否则x>y 运行此指令
less: ……
equal: ……
与TST指令结合用Z测试某位是0还是1:
例:测试R5的D7 是0还是1? 与
MSP430 的 Comparator A
MSP430 的 Clock System
MSP430 的 Emulation Module
MSP430X13X和MSP430X14X的引脚定义
P5
P6
P4
P2 P1 P3 引脚复用
D/A , DMA , I2C , SVS
高字节存储在高地址 低字节存储在低地址
byte可以在奇地址或偶地址
word的高字节只能在奇地址 低字节只能在偶地址
特殊功能寄存器 SFR
用于允许/禁止某些外设的功能、允许/禁止某些外设的中断 请求、登记某些外设的中断标志等。 SFR是字节型的寄存器,因此只能使用字节型指令(.B)对 其进行操作。
MSP430 外设
Again: ADD INC DEC JNZ …… @R7 , R8 R7 R6 again
使用SR寄存器
MSP430 CPU 寄存器
15 R0/PC Program Counter R1/SP Stack Point R2/SR/CG1 Status R3/CG2 Constant Generator 0 0 0
;否则R5的D7=1,运行此指令
; zero处的指令
加法运算对状态标志的影响举例
1 0 1 1 0 1 0 1 被加数8位 + 1 0 0 0 1 1 1 1 加数8位 进位 1 1 1 1 1 1 1 0 1 0 0 0 1 0 0 和8位
最高位D7位产生进位: 相加的结果为44H, 不为0: 结果为正: 结果有溢出: C=1 Z=0 N=0 V=1
• • • • • • •
MSP430 CPU原理图
通用寄存器
R4 R5 …… R15
指令指针寄存器 PC/R0 堆栈指针寄存器
SP/R1
常数发生器
R2/R3
地 址 输 出 电 路
16-bit RISC architecture 27条核心指令 7种寻址方式 16个16位的寄存器
MAB 16-bit 地址总线
取完指令后CPU根据该指令的字节数自动增 量PC,因此PC的值指向下一条要执行的指 令。PC总是指向偶地址(bit0=0) 堆栈用于保存子程序的返回地址等重要信息。 堆栈按先进后出原则进行操作,堆栈指针SP 指向堆栈的栈顶(TOP)。SP总是指向偶地 址(bit0=0),并且必须由用户初始化。
R4
R5
方式位(Mode Bits): SCG1 SCG0 OSCOFF CPUOFF GIE (General Interrupt enable) 用于控制时钟、CPU 和中断
常用状态标志C和Z的含义及其使用
C:进位标志(Carry Flag) 加法时,若最高位有进位则C=1,否则C=0 减法时,若最高位有借位则C=1,否则C=0 例:CMP指令与C标志结合可判断两数的大小:
第2章
MSP430微控制器概述
与寻址方式
第1节 MSP430微控制器概述 第2节 MSP430 CPU的寻址方式
本章课程目标: 1. 了解MSP430的基本结构 2. 掌握MSP430的寻址方式 3. 熟悉 IAR 的使用方法(通过实验)
第1节 MSP430微控制器概述
计算机 微型计算机 工控机 单片机 微控制器(MCU) 嵌入式系统 ……
运 算 ALU 器
数据输入 输出电路
MDB 16-bit 数据总线
SR/R2 状态寄存器
指令译码 与 控制逻辑
MCB
控制总线
MSP430 CPU 的编程结构
仅从编程的角度看待CPU的 组成,主要是指CPU中的寄 存器及其使用方法,而不关 心其硬件实现的具体细节
MSP430 CPU 的寄存器
15 R0/PC Program Counter R1/SP Stack Point R2/SR/CG1 Status R3/CG2 Constant Generator R4 R5 General Purpose General Purpose 0 0 0
I/O 接口 1
I/O 接口 n
地址总线 AB
数据总线 DB
控制总线 CB
独立芯片或电路
微控制器(MCU)的基本结构
CPU运算器 + 控制器来自+ 寄存器存 储 器I/O 接口 1
I/O 接口 n
地址总线 AB 数据总线 DB
控制总线 CB
集成芯片
存储容量、速度、功能、功耗、……???
MSP430的体系结构与特点
General Purpose
General Purpose
状态寄存器SR用于指示ALU的运算结果状态 以及CPU、时钟和中断控制等。SR只能用于 寄存器寻址方式的字指令(.W)中。若使用 其它的寻址方式,则实际上用的是常数发生 器CG1,而不是SR。
R15
General Purpose
通用寄存器 R4~R15
Peripherals (I/O接口) 16位 8位
0100~01FFh 010~0FFh
MSP430 的 digital I/O
MSP430 的 Watchdog Timer
MSP430 的 USART0 , USART1
MSP430 的 ADC12
MSP430 的 Timer_A3 , Timer_B7