第2章MSP430F149单片机基础知识
msp430f149技术资料

MSP430是德州公司新开发的一类具有16位总线的带FLASH的单片机,由于其性价比和集成度高,受到广大技术开发人员的青睐.它采用16位的总线,外设和内存统一编址,寻址范围可达64K,还可以外扩展存储器。
具有统一的中断管理,具有丰富的片上外围模块,片内有精密硬件乘法器、两个16位定时器、一个14路的12位的模数转换器、一个看门狗、6路P口、两路USART通信端口、一个比较器、一个DCO内部振荡器和两个外部时钟,支持8M的时钟。
由于为FLASH型,则可以在线对单片机进行调试和下载,且JTAG口直接和FET(FLASH EMULATION TOOL)的相连,不须另外的仿真工具,方便实用,而且,可以在超低功耗模式下工作,对环境和人体的辐射小,测量结果为100mw左右的功耗(电流为14mA左右),可靠性能好,加强电干扰运行不受影响,适应工业级的运行环境,适合与做手柄之类的自动控制的设备.我们相信MSP430单片机将会在工程技术应用中得以广泛应用,而且,它是通向DSP系列的桥梁,随着自动控制的高速化和低功耗化,MSP430系列将会得到越来越多人的喜爱。
第三章MSP430F149 资源的应用介绍及开发第一节中断介绍及存储器段介绍中断在MSP430中得以广泛的应用,它可以快速进入中断程序,之后返回中断前的状态,其时序为:PC执行程序中断允许置位SR中的GIE置位 EINT(中断开)中断到,中断标志位(IFG)置位从中断向量表中读取中断程序的入口地址,进入中断程序执行中断程序中断允许位复位 RETI中断返回回到原来地址。
具体应用将会在应用程序中的到应用。
有关中断源和中断优先级及中断允许位、中断标志位在参考资料1上有详细介绍。
MSP430单片机的片上存储器共为64K,表示为图:第三节 P 口MSP430F149有6个8位的P口,其中P1、P2口占两个中断向量,共可以接16 个中断源,还可以直接利用 P口的输入输出寄存器,直接对外进行通信。
MSP430F149中文资料--部分

基于MSP430F149的GPS
(芯片篇)
1、系统功能框图
2芯片资料:
MSP430F149:
低电源电压范围:1.8~3.6V
超低功耗:待机模式:1.6uA 关闭模式(RAM保持):0.1uA 活动模式:280uA at 1MHz,2.2V
5种省电模式
6us内从待机模式唤醒
16位RISC结构,125ns指令周期
带内部参考,采样保持和自动扫描特性的12位A/D转换器
有7个捕获/比较寄存器的16位定时器Timer_B 有3个捕获/比较寄存器的16位定时器Timer_A
片内集成比较器
串行在线编程,无需外部编程电压,安全熔丝可编程代码保护.
器件系列包括:–MSP430F133:8KB+256B闪速存储器,256B的RAM –MSP430F135:16KB+256B闪速存储器,512B的RAM –MSP430F147,MSP430F1471:32KB+256B闪速存储器,1KB的RAM –MSP430F148, MSP430F1481:48KB+256B闪速存储器,2KB的RAM –MSP430F149, MSP430F1491:60KB+256B闪速存储器,2KB的RAM
可用封装:64脚方形扁平封装(QFP).
功能框图。
MSP430F149最全中文资料

西安邮电学院 63# 710061
陈小忠
3
MSP430 单片机的开发及应用
(1) .汇编是对源程序而言的,因此必须打开一个源文件才能汇编,而连接是对一个工程文件而言 的,连接是对工程文件的所有源代码(包括多个源文件)和数据的定位,因此连接必须打开一个工程 文件才能连接. (2) 连接中必须将库文件的路径改正确,且必须选定 C—SPY 的驱动方式,即在 project 中的 options 的 xlink 的 include 下修改(先选中)xcl 的库路径为 $TOOLKIT_DIR$\icc430\msp430F149A.xcl ,选择 C—SPY 的驱动 drive 为 simulator 或 FLASH EMULATION TOOL ,当没连接 430 片子时可以选 simulator,当连接 430 片子时,选 FLASH EMULATION TOOL 进行在线下载调试. (3) 由于 430 支持汇编语言和 C 语言两种语言,因此可以在一个工程文件 中同时用两种语言,但 建议用汇编语言,因为便于在调试时寻找逻辑和指令的联系及地址的定位正确与否. (4) 在在线的 C—SPY 的调试中,单步需要将 Control 的 Reatime 前的勾取消才能进行单步测试. (5) 在线调试时,不能将 58 管脚(复位/非屏蔽中断) 外部变高,否则,会强制退出调试环境.
第二章
MSP430 F149 语言介绍
MSP430 是德州公司的新产品,有独特的开发环境和自身语言,下面是我在毕业设计中对 F149 的开发环境熟悉中遇到的一些问题的处理和汇编语言的用法及程序中遇到的问题的体会.
第一节 开发环境及程序下载
1.开发环境:在 EW23 环境下进行编程,汇编,连接,在 C—SPY 环境下进行调试,下载是在连 接之后,调试之前,通过计算机的串口下载的.关于环境的操作,可以参考有关资料,其中可能遇到的 问题及解决方法有:
第二章 MSP430F149基本时钟系统

DCOR DIVS0 DIVS1 SELS DIVM0 DIVM1 SELM0 SELM1
(0x01) /* DCO 外部电阻使能 */ (0x02) /* SMCLK 2 分频 */ (0x04) /* SMCLK 4 分频*/ (0x08) /* SMCLK 时钟源选择 0:DCOCLK / 1:XT2CLK/LFXT1CLK */ (0x10) /* MCLK 2 分频 */ (0x20) /* MCLK 4 分频 */ (0x40) /* MCLK 时钟源选择 01:DCOCLK*/ (0x80) /* MCLK 时钟源选择 10:有 XT2 则选择 XT2CLK 否则选择 LFXT1CLK*/
/*************************************************
*BCSCTL2 控制位定义
**************************************************/
#define #define #define #define #define #define #define #define
/* Modulation Bit 0 */ /* Modulation Bit 1 */ /* Modulation Bit 2 */ /* Modulation Bit 3 */ /* Modulation Bit 4 */ /* DCO Select Bit 0 */ /* DCO Select Bit 1 */ /* DCO Select Bit 2 */
0——禁止中断
1——允许中断
说明:IE1 中其余位可能被其它模块使用。
5、IFG1:中断标志寄存器 1
7
6
5
4
MSP430F149中文资料

MSP430单片机的开发及应用设计人:陈小忠西安邮电学院电子信息工程系电子0002班西安邮电学院63# 7100612003年7月目录第一章概述第二章MSP430 F149语言介绍第一节开发环境及程序下载第二节语言介绍第三章MSP430F149 资源的应用介绍及开发第一节中断介绍及存储器段介绍第二节硬件乘法器第三节P口第四节定时器及数模转换第五节时钟模块第六节USART通信模块第七节比较器第八节模数转换第四章MSP430F149开发板的介绍及测试第一节模数转换模块第二节传感器模块第三节外存和实时时钟模块第四节485和232模块第五节电源管理模块及晶振模块第六节PWM波形滤波第一章概述MSP430是德州公司新开发的一类具有16位总线的带FLASH 的单片机,由于其性价比和集成度高,受到广大技术开发人员的青睐.它采用16位的总线,外设和内存统一编址,寻址范围可达64K,还可以外扩展存储器.具有统一的中断管理,具有丰富的片上外围模块,片内有精密硬件乘法器、两个16位定时器、一个14路的12位的模数转换器、一个看门狗、6路P口、两路USART 通信端口、一个比较器、一个DCO内部振荡器和两个外部时钟,支持8M 的时钟.由于为FLASH 型,则可以在线对单片机进行调试和下载,且JTAG口直接和FET(FLASH EMULATION TOOL)的相连,不须另外的仿真工具,方便实用,而且,可以在超低功耗模式下工作,对环境和人体的辐射小,测量结果为100mw左右的功耗(电流为14mA左右),可靠性能好,加强电干扰运行不受影响,适应工业级的运行环境,适合与做手柄之类的自动控制的设备.我们相信MSP430单片机将会在工程技术应用中得以广泛应用,而且,它是通向DSP系列的桥梁,随着自动控制的高速化和低功耗化 ,MSP430系列将会得到越来越多人的喜爱.通过两过多月的毕业设计,我对MSP430有了初步了解,对内部的硬件资源和自身的汇编语法进行了实验,并开发了一个应用板,并进行了调试.鉴于时间和能力有限,没能对所有的应用一一实验.第二章 MSP430 F149语言介绍MSP430是德州公司的新产品,有独特的开发环境和自身语言,下面是我在毕业设计中对F149的开发环境熟悉中遇到的一些问题的处理和汇编语言的用法及程序中遇到的问题的体会.第一节开发环境及程序下载1.开发环境:在EW23环境下进行编程,汇编,连接,在C—SPY环境下进行调试,下载是在连接之后,调试之前,通过计算机的串口下载的.关于环境的操作,可以参考有关资料,其中可能遇到的问题及解决方法有:(1) .汇编是对源程序而言的,因此必须打开一个源文件才能汇编,而连接是对一个工程文件而言的,连接是对工程文件的所有源代码(包括多个源文件)和数据的定位,因此连接必须打开一个工程文件才能连接.(2) 连接中必须将库文件的路径改正确,且必须选定C—SPY的驱动方式,即在project中的options的xlink的include下修改(先选中)xcl的库路径为$TOOLKIT_DIR$\icc430\msp430F149A.xcl ,选择C—SPY 的驱动drive为simulator或FLASH EMULATION TOOL ,当没连接430片子时可以选simulator,当连接430片子时,选 FLASH EMULATION TOOL进行在线下载调试.(3) 由于430支持汇编语言和C语言两种语言,因此可以在一个工程文件中同时用两种语言,但建议用汇编语言,因为便于在调试时寻找逻辑和指令的联系及地址的定位正确与否.(4) 在在线的C—SPY 的调试中,单步需要将Control的Reatime前的勾取消才能进行单步测试.(5) 在线调试时,不能将58 管脚(复位/非屏蔽中断)外部变高,否则,会强制退出调试环境.2.程序下载原理及脱机工作原理:程序的在线调试是通过JATG口和F149片子的 RST、TCK、TDI、TDO、TMS引脚按一定的时序串行的传递程序代码和数据的,调试指令的命令传递都是通过这些数据线和控制线传递的,下载时序可参见资料1,其中的地址0FFFEH为复位向量的地址,它是程序遇到非屏蔽中断和程序启动的首要地址,地址中存放的是程序段开始的首地址,因此必须把程序段的首地址标号表示在中断向量中或程序伪指令的开头位置,否则,连接时将会出错,具体的表示方法在下一节中表示.程序的下载和在线调试的电源是通过计算机在JATG提供的,不须另外给加电源.脱机工作时,是将F149的电源线上电,此时的复位时序同下载后在线复位的时序一样,只是时钟是通过F149内部时钟DCO提供的,上电后,程序将复位向量0FFFE中的地址装入PC,PC开始从程序段的首地址开始执行.脱机工作启动不需要任何操作,只需上电即可,电压要大于1.8v,一般取3v左右,另外,在脱机工作时,可以给RST端口加一个低电平脉冲以复位从程序开始重新执行.第二节指令介绍MSP430有自身语言,汇编语言也不同于其他类型的单片机,伪指令也是变幻魔测,但又很重要,下面是我毕业设计的一些尝试、出问题的地方.也可参见资料。
MSP430F149定时器B讲解

MSP430F149定时器B1.定时器B模块:TimerB与TimerA大部分相同,不同点在于定时器B的捕获/比较单元增加了锁存器。
二者区别:(1)TimerB计数长度为8位,10位,12位,16位可编程,由TBCTL寄存器的CNTLx两位来配置,而定时器A的计数长度是固定的16位;(2)TimerB没有实现定时器A中的SCCI功能位的功能;(3)TimerB在比较模式下的捕获/比较寄存器功能与TimerA不同,增加了捕获比较锁存器;(4)有些芯片型号当中TimerB输出实现了高阻抗输出;(5)比较模式的原理有所不同:TimerA当中CCRx寄存器当中保存与TAR相比较的数据,而在TimerB 当中CCRx中保存要比较的数据,但并不直接与定时器TBR相比较,而是将CCRx当中的数据锁存到相应的锁存器之后,由锁存器与TBR相比较。
从捕获/比较寄存器相比较锁存器传输数据的过程的时间也是可编程的,可以是写入比较捕获寄存器之后立即传输,也可有一个定时器来触发传输。
(6)TimerB支持多种同步的定时功能,多重比较捕获功能和多重波形输出功能(PWM波)。
而且,通过对比较数据的两级缓冲,可实现多个PWM波同步周期更新。
2.TimerB的逻辑结构图:定时器B的逻辑结构基本与定时器A相同。
3.定时器B的寄存器:寄存器相关位的配置过程参考定时器A和数据手册。
4.定时器B的比较功能当定时器B工作在比较模式时,将数据写入捕获比较锁存器TBCCRx当中,当TBCCTLx当中的CLLDx位决定的装载事件的发生时,TBCCRx中的数据会自动地传输到比较寄存器当中。
5.TI提供的例程://// ////// MSP430F149// -----------------// /|| XIN|-// | | | HF XTAL (455k - 8MHz)// --|RST XOUT|-// | |// | P4.1/TB1|--> CCR1 - 75% PWM// | P4.2/TB2|--> CCR2 - 25% PWM//// M. Buccini// Texas Instruments Inc.// Feb 2005// Built with IAR Embedded Workbench Version: 3.21A//******************************************************************************。
MSP430F149 学习板使用说明

MSP430F149 开发板使用说明2009年09月第一章新手入门1.1 MSP430F149 学习板特点:选用16 位超低功耗单片机MSP430F149,采用子母双板分离设计,MCU 子板与集成外设母板通过插针座连接,使用灵活方便。
ØMCU 的全部IO都用插针引出,便于二次开发提供电源指示灯和上电自动复位、手动复位电路。
2、蜂鸣器实验(1)蜂鸣器1:单频音(步进变音调)(2)蜂鸣器2:奏乐(祝你平安)3、数码管实验(1)数码管1(显示0123)(2)数码管2(动态显示0~F)4、4×1 独立按键实验(1)键盘1:扫描数码管显示5、1602 液晶实验(1)1602 液晶1:动态字符显示(2)1602 液晶2:静态字符显示(3)1602 液晶3:内部时钟显示6、RS232 接口实验(1)RS232 接口1:MCU 发送数据PC 机显示(2)RS232 接口2:按键控制MCU 发送数据PC 机显示(3)RS232 接口3:PC 机发送数据MCU 液晶显示(4)RS232 接口4:MCU 回发接收到的PC 机数据7、RS485 接口实验(1)RS485 接口1:发送程序8、PS2 接口实验(1)PS2 接口1:PS2 控制1602 显示9、12-Bit 高精度温度传感器实验(1)温度传感器1:DS18B20 在液晶显示10、RTC 实时时钟实验(1)实时时钟1:DS1302 测试(2)实时时钟2:DS1302 电子钟11、2k Bit EEPROM 实验(1)EEPROM1:AT24C02 测试(2)EEPROM2:读出数据通过串口在PC 机显示12、12-Bit 模数转换器(ADC)接口实验(1)模数转换器2:ADC 在1602 液晶在显示(2)模数转换器3:ADC 通过串口在PC 机显示13、12864 液晶实验(与12864 液晶配套)(1)12864 液晶并口1:字符显示(2)12864 液晶并口2:汉字显示(3)12864 液晶并口3:图形显示(4)12864 液晶并口4:综合演示(5)12864 液晶串口5:字符显示(6)12864 液晶串口6:汉字显示(7)12864 液晶串口7:图形显示(8)12864 液晶串口8:综合演示14、HS0038红外接口实验(1)红外遥控解码实验,在数码管上显示三、开发板综合程序1、温度时间综合实验(1)DS18B20 + DS1302 + 16022、SSCOM综合实验(1)PC发送接收字符第三章板上资源详解本章详细介绍了MSP430F149 学习板上各个功能模块的硬件电路原理、使用方法和注意事项,使用前请仔细阅读。
MSP430F149 FLASH存储模块

MSP430F149的存储器结构及FLASH读写1 概述1.1 FLASH特点写操作只能将1改写为0,不能将0改写成1。
FLASH擦除后所有单元变为1,擦除操作只能针对整个段。
FLASH在擦除前不能被改写。
1.2 MSP430F149存储器编址方式MSP430F149的ROM为60K+256B的FLASH,RAM为2K。
MSP430存储器采用冯诺依曼结构,RAM和ROM合在一起编址。
MSP430F149内部集成有FLASH控制器,可以简化对FLASH的操作。
64K的寻址空间分为RAM、FLASH。
RAM分两块:1、寄存器(0000H-01FFH),存放特殊寄存器、设备寄存器、变量与堆栈。
2、数据RAM(01FFH-),存放各种变量、中间结果、堆栈。
FLASH分两块:1、主FLASH 一般用于存放程序代码。
2、信息FLASH(InfoFlash)用作掉电后保存少量数据。
分为InfoA(0X1080-0X10FF)和InfoB(0X1000-0X1080),每段各128B。
1.3 操作三种操作:读取、擦除(只能针对段擦除)、写入(可以写入单个字节)。
2使用方法2.1 程序架构读取FLASH方法和读取RAM方法相同。
写和擦除FLASH要进行如下配置:配置寄存器制定指针地址写数据/复制数据配置寄存器2.2 参数配置主要配置三个寄存器FCTL1,FCTL2,FCTL3。
1、配置FLASH控制器时钟。
时钟要求控制在250-470Khz之间。
FCTL2 = FWKEY + FSSEL0 + FN0; //2分频2、用指针指向地址Unsigned char *ptr= (unsigned char *) 0x1080;3、进入写模式或擦除模式FCTL1=FWKEY+WRT;或FCTL1=FWKEY+ERASE4、清除锁定位FCTL3=FWKEY;5、写数据*ptr=0x30;或擦除*ptr=0;6、退出写状态,恢复锁存FCTL1=FWKEY;FCTL3=FWKEY+LOCK;2.3 说明上电FLASH默认状态是读。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.2 Flash操作 2.2.1 存储空间组织 存储器中的数据: 字节数据可以定位在偶 地址或奇地址; 字数据定位在偶地址: 低字节在偶地址,高字节 在下一个奇地址。
片内RAM、FLASH组织
其余空间:0~200h用于外围接口及部件的地址
2.2.2 Flash操作
Flash存储器: Flash存储器分为信息Flash和程序Flash 以MSP430F449为例: 信息Flash的地址为1000h~10FFh(256字节),程 序Flash的地址为1100h~FFFFh(60K)。 从硬件和功能上来说,信息Flash和程序Flash没有本 质的不同,程序首地址可以是1100h,也可以是1000h; 信息也可以放在1000h~FFFFh的任何位置。
ROM 0FF16h 0FF14h 0FF12h 00000h 4AEBh 0xxxxh PC
0FA34h 0FA32h 0FA30h
0xxxxh 05BC1h 0xxxxh
寄存器 R10 R11 0FA33h
002A8h 002A7h
0xxh 012h 0xxh
002A8h 002A7h 002A6h
//定义Flash 写操作安全值(高位0xA5)
//定义Flash 段擦除允许位(低位0x02)
#define LOCK
(0x0010)
//擦除锁存位,Lock = 1:Flash被锁存(只读)
char *addr; addr = 0xA000;
//申明地址指针变量 //指针指向0xA000
while(FCTL3 & BUSY){} //测试等待BUSY复位位 FCTL1 = FWKEY + ERASE; //允许FLASH段擦除 FCTL3 = FWKEY; //清楚写锁存位 for(addr =(char *) 0xA000;addr<(char *)0xB000; addr += 0x200) *addr = 0;
2#中断请求
2#中断允许 2#中断源
n#中断允许 n#中断源
n#中断请求
状态寄存器SR
N:负数位 运算结果为负时置位。
字运算: N位设置为运算结果的15位。 例如:0 - 1 = FFFFh,1→N; 字节运算:N位设置为运算结果的7位。 例如:0 - 1 = FFh,1→N。
状态寄存器SR
Z:零位 运算结果为0时置位,不为0复位。
目标地址 0FF16h +1192h 010A82h ROM 0FF16h 0FF14h 0FF12h 01192h 00045h 040B0h PC 操作前RAM 操作后RAM 010AAh 010A8h 010A6h 0xxxxh 00045h 0xxxxh
010AAh 010A8h 010A6h
01116h 01114h 1112h
0xxxxh 01234h 0xxxxh
01116h 01114h 1112h
0xxxxh 0A123h 0xxxxh
符号模式:MOV EDE, TONI
; ( EDE)→(TONI)
如果 PC = 0FF12h,EDE = 0F016h,TONI = 01114h
x = EDE – PC = 0F016h - 0FF14h = 0F102h; y = TONI – PC = 01114h - 0FF16h = 11FEh; 相当于 MOV x(PC),y(PC) ;(PC+x)→(PC+y)
ROM 0FF16h 0FF14h 0FF12h 011FEh 0F102h 04090h 源地址 0FF14h +0F102h (1)F016h 目标地址 0FF16h +011FEh (1)1114h PC 操作前RAM 0F018h 0F016h 0F014h 0xxxxh 0A123h 0xxxxh 操作后RAM 0F018h 0F016h 0F014h 0xxxxh 0A123h 0xxxxh
指令的时钟周期的总体规律(续) :
3周期:数据从CPU之外读写,且目标地址为Rx,源 地址需要换算,如: MOV 2(R5),R7 ;(R5+2) → R7 ADD &EDE,R6 ;ADD EDE,R6 ;EDE = PC+x BR @R9+ ;R9→PC,R9+2 BR #DATA ;(DATA)→ PC PUSH R5 ;R5 →( SP)
0xxh 05Bh 0xxh
002A7h 002A6h
间接模式:MOV
@R10,0(R11) ;(R10)→(R11 + 0), ;MOV传送字(16位数据)
操作前RAM 0FA34h 0xxxxh 05BC1h 0xxxxh 操作后RAM 0FA34h 0FA32h 0FA30h 0xxxxh 05BC1h 0xxxxh
/定义Flash 写操作安全值(高位0xA5)
#define WRT
(0x0040)
//写操作使能位
#define LOCK
(0x0010)
//Lock = 1:Flash被锁存 (只读)
char *addr,*buf; //申明地址指针变量 const char dat ={0x02,0x78,0x12,0x33,0x54,0x6A}; char cont; addr = 0xA000; buf = &dat[0]; cont = 6; while(FCTL3 & BUSY){} //测试等待BUSY复位位 FCTL3 = FWKEY; //清楚写锁存位 FCTL1 = FWKEY + WRT; //设置写使能 for(cont = 0;cont < 6;cont++) *addr++ = buf[cont]; //写数据flash,且地址指针加1 FCTL1 = FWKEY; //擦除所有使能,防止误操作 FCTL3 = FWKEY + LOCK; // Flash被锁存(只读)
等价与:MOV INCD
@R10,0(R11) R0
在执行时寄存器的自动增量在取操作数之后:
立即模式:MOV #45h,TONI
; #45h →(TONI)
如果 PC = 0FF12h,TONI = 10A8h y = TONI–PC = 10A8h - 0FF16h = 1192h ; 相当于 MOV #45h ,y(PC) ; #45h →(PC+y)
第 2章
MSP430F149单片机基础知识
2.1 CPU概述 CPU寄存器
程序计数器PC 系统堆栈指针SP 第三次放入的数据 第二次放入的数据 第一次放入的数据
压堆栈( 取堆栈( PUSH POP)过程 )过程
SP-6 SP-4 SP-2
状态寄存器SR
V:溢出位 FFFFh + 1 将产生溢出,1→V
常数发生寄存器CG1和CG2
使用常数发生寄存器产生常数的优点: 1、不需要特殊的指令 2、对7种最常用的常数不需要额外的字操作数 3、缩短指令周期:不经过MDB就能直接访问
寻址模式 访问整个地址空间的不同寻址模式由As(寻址位, 源操作数的寻址模式)和Ad(寻址位,目标作数的 寻址模式)模式位的内容确定:
ROM 0FF16h 0FF14h 0FF12h 00000h 4AABh 0xxxxh PC
0FA32h 0FA30h
寄存器 R10 R11 0FA32h 002A6h
002A8h 002A6h 002A4h
0xxxxh 012xxh 0xxxxh
002A8h 002A6h 002A4h
0xxxxh 05BC1h 0xxxxh
x 0
也产生溢出,1→V
状态寄存器SR
低功耗工作模式控制
工作模式 AM LPM0 SCG1 0 0 SCG0 0 0 OSCOff 0 0 CPUOff 0 1
LPM1
LPM2 LPM3
0
1 1
1
0 1
0
0 0
1
1 1
LPM4
1
1
1
1
状态寄存器SR
GIE
1#中断允许 1#中断源 1#中断请求
GIE :通用中断允许位
01084h 01082h 01080h
0xxxxh 01234h 0xxxxh
01084h 01082h 01080h
0xxxxh 01234h 0xxxxh
绝对模式:MOV &EDE,&TONI ;EDE→TONI 如果 EDE = 0F016h,TONI = 01114h
ROM 0FF16h 0FF14h 0FF12h 01114h 0F016h 04292h PC 操作前RAM 0F018h 0F016h 0F014h 0xxxxh 0A123h 0xxxxh 操作后RAM 0F018h 0F016h 0F014h 0xxxxh 0A123h 0xxxxh
间接增量模式:MOV.B @R10+,0(R11) 与 MOV.B @R10,0(R11)的操作结果一样, 仅仅在结束时R10 = R0 + 1
等价与:MOV.B @R10,0(R11) INC R0 间接增量模式:MOV @R10+,0(R11) 与 MOV @R10,0(R11)的操作结果一样,仅 仅在结束时R10 = R0 + 2
//被擦除段的首地址写(0~0xFF)
FCTL1 = FWKEY; //擦除所有使能,防止误操作 FCTL3 = FWKEY + LOCK; // Flash被锁存(只读)
FLASH写操作举例:
将0x02,0x78,0x12,0x33,0x54,0x6A写入 0xA000为首地址的FLASH:
#define FWKEY (0xA500)