MSP430_Family_Users_Guide(中文版)_430单片机__极端详细__应用程序
MSP430_单片机_资料
MSP430_单片机_资料MSP430_单片机_资料Ulrt-lao wowep drsien wigthTexas nsItumertn s超功低微耗控制器超低功耗控微器制SM4P0Augus3t 0 0/1MSP430_单片机_资料ltUra-lwo pwored signe withMSP340发展历程性能Flsh aFalhs1.-836. VL CDD riev r. 1….-3.6 8V Bsica lCoc Tiker_A meNwROM/OPT.525 -VL DC DrvireFL TiLmrePor/ tBasc Tiierm8- bi tT/ C33xxCD120L Tmeri_ ASAUTR MPFY14xTiermB _DAC2 21US RT MPAYC mo_Ap4F4NewxF13Tixmr_Be DCA1 2UASTRC op_AmF42x3x2xCDL48 ADC41X1xUSART24F1x3x1xLCD921x1x1Cop_AF40xm***-*****20XX年20XX年0202Agustu0 0 /2UlMSP430_单片机_资料ratl-wop wor eedisgn itwhSM4P3:全新的0微制控R器N THE *****NH ,NT TOH EMIEL. ITs’ lFah MsS430 MPU redCuces pwoer cnsuompton driatiscally s, youo rabtteire surn lnogr.eMS430P的效极能.高/IO和PC U运是行用能同的不时钟PC 功U 的耗关通过开状寄态器存控的位实现制MSP430 的耗功极低. 行执时为601A u@ .81 V(Fasl)h 备用时为0.1u A(Fl sh)a MPS403极地延长大电了池寿命电SM4P0 有3业级工16 itb RISCM CU. -40 8-5 C M SP34 0编程方便,发开工具廉价DA MED1M,EMM ;2EMM=2*****+E2hTeMSP 304 runswith aatcwhcr staylat p tou4MH zitenrnalclck!ouAugst 00 /3MSP430_单片机_资料lUra-ltw powero dsiegnw ith*****Fxx :LASH F列特性系New灵活样多外的围模块RUNTH ***** N,O ONT HTEM IL.ET ’Is lash*****MCU red cuesp wore conumptions drsticaaly, so ylou rabtetiesrrun l ongre. 12b-t iAD /8( +4 通道, 转换1 0s) 61-ib timTe_r wAthi C3C /寄器存1-6bt iTime_B wirth 7/C C存器寄1 2 个-SURA接口T 件硬法器乘模拟号信比较器基本时模钟块- 由可程内部电阻控编频制率-由单一部电外控制阻率频-2 3kHz 振产晶生低频- 高晶振频产高生频可选择外部-时钟源超低功耗1.8V . ..3 6.V 供电电压范2围00 A@ 1MH,z 2.2V,活动模式0.7 A 备用模式0. 1A 保持R AM 据数 6 s备从模式唤醒用强大C的U 内P核16Bit R-IC S构结251n 指令s期周@ MHz8Auugs t00/4UMSP430_单片机_资料lrt-alw oopewr edign swtihSP4M0 系3列注1 - :可C由mopaatorrA_实现2 -可由Ti mr/Poert实现3 -有562 FLASBH 和oot BRM O 4 I-punt/utpuOt+ Otpuu外t模围块: TIMRSE: WT Db8tiT B1T _A T_BT- aWchtdgo 定时器- 8位定器时/计器数-Baic siTemr 1- Tmie_r A(x )捕/捉比较寄存器T-ime_r (Bx 捕)捉比/较寄存器URAT 件实软,或现用通同步异/接口步数MPY硬乘法器I/O件数字I/O ,O及tuputAgusut 00/ 5MSP430_单片机_资料Ulrt-aowlp wore dsegin witMhSP403F LSAH 列系NweFie vnew lFas hcofinurgtiaon avsilaable now!号型LASH 1 FB 4 KB 8 KB 1K6KB 32 B K8 K4 B60KBA/ DlSpeo loSe p2-b1t 12i-itb 12-bti1 2b-it12 bit-Tmire sA3A3 A 3 +B 33 A +3 A3B +B7 A + B3 A7 +3B 7SUART 1 12 2M2P Yvv v/IO 4 114 8 448 8 4484 8FALH 型S超低功耗Falsh 内核10,000 次写/0周期擦程存储器序段:51分2 信B存储息分器:128B段可以分擦段除或整擦除体编和擦程除电由压内产生部有代读出码护保*****101 *****1F211MS P34F031 M3FS*****FMSP 40F317 4SPM*****F *****F94Augst 00 u/6MSP430_单片机_资料低功耗的超现实:速起动和快电省模式其他MCUIUltarlo- powewrd esig nithw* / 4b8tiC UP* 电流耗大消* 唤醒慢Ic c /A45 400 ***-*****IvAgr300 5022 00tVc c=3 V1 se ccylcetime**********ctAvei odMe PML0*****LLPMIAvrg3 t例L:P3, M备模式用(*****C1) 3276xHz 振8荡活动器基。
MSP430寄存器手册
2-时钟模块
微控网为你准备的 MSP430F 单片机入门必修课
微控网
MSP430F1XX 系列时钟模块图 时基模块结构如上图 : MSP430 系列单片机基础时钟主要是由低频晶体振荡器,高频晶体振荡器,数字控制 振荡器(DCO),锁频环(FLL)及 FLL+等模块构成。由于 430 系列单片机中的型号不同, 而时钟模块也将有所不同。虽然不同型号的单片机的时基模块有所不同,但这些模块产 生出来的结果是相同的.在 MSP430F13、 14 中是有 TX2 振荡器的, 而 MSP430F11X,F11X1 中是用 LFXT1CLK 来代替 XT2CLK 时钟信号的.在时钟模块中有 3 个(对于 F13,F14)时钟 信号源(或 2 个时钟信号源,对于 F11X、F11X1): 1-LFXT1CLK: 低频 /高频时钟源.由外接晶体振荡器,而无需外接两个振荡电容器.较 常使用的晶体振荡器是 32768HZ。 2-XT2CLK: 高频时钟源.由外接晶体振荡器。需要外接两个振荡电容器,较常用 的晶体振荡器是 8MHZ。 3-DCOCLK: 数字可控制的 RC 振荡器。
微控网为你准备的 MSP430F 单片机入门必修课
微控网
1-复位模块
MSP430 单片机系统复位电路 从上 MSP430 系统复位电路功能模块图中可以看到了两个复位信号,一个是上电复位信 号 POR(Power On Reset)和上电清除信号 PUC(Power Up Clear)。 POR 信号是器件的复位信号,此信号只有在以下的事件发生时才会产生: □器件上电时。 □RST/NMI 引脚配置为复位模式,当 RST/NMI 引脚生产低电平时。 当 POR 信号产生时, 必然会产生 PUC 信号; 而 PUC 信号的产生时不会产生 POR 信号。 会引起产生 PUC 信号的事件: □POR 信号发生时。 □ 启动看门狗时,看门狗定时器计满时。 □ 向看门狗写入错误的安全参数值时。 □向片内 FLASH 写入错误的安全参数值时。 MSP430 单片机系统复位后器件的初始 当 POR 信号或 PUC 信号发生时引起器件复位后,器件的初始化状态为: □RST/NMI 引脚配置为复位模式。 □ I/O 引脚为输入模式。
基于MSP430单片机的微功耗中文人机界面设计
基于MSP430单片机的微功耗中文人机界面设计在现代便携式智能仪器或手持设备中,中文人机界面成为一种事实上的行业标准。
能显示汉字的图形点阵液晶和可输入数字的小键盘已成为智能设备必不可少的组成部分。
同时作为便携式设备基本要求的低功耗特性也贯穿于中文人机界面的设计始终。
这种低功耗中文人机交互界面需要设计者在选取MCU和具体元器件上有特殊考虑。
微功耗、小体积应作为选择相关器件的首要要求。
设计中,笔者采用MSP430F149单片机作为系统的MCU,通过选择合适的液晶显示模块在3V电平构建了一个低功耗的中文人机界面。
此中文人机界面构成了微功耗数据采集系统的重要组成部分。
一、MSP430系列FLASH型单片机的微功耗特点德州仪器公司(TI)推出的MSP430F14x系列是超低功耗Flash型16位RISC指令集单片机。
它采用"冯-纽曼"结构,RAM、ROM和全部外围模块都位于同一个地址空间内。
其具有丰富的片内外围,性价比极高。
MSP430F14x系列是TI的MSP430F1x系列(FLASH存储器型)单片机中功能最强大的子系列。
F14x具有更大的程序和数据存储区、更多的外围模块,其片内甚至还包括一个硬件乘法器。
同时F14x系列单片机开发工具简便,固化于FLASH存储器内的程序易于在线升级和调试,非常适合于开发消费类便携式电子产品。
MSP430F14x单片机集中体现了现代单片机先进的低功耗设计理念。
其设计结构完全以系统低功耗运行为核心。
这种低功耗结构具体体现在以下四点:(1)高集成度的完全单片化设计。
将很多外围模块集成到了MCU芯片中,增大硬件冗余。
内部以低功耗、低电压的原则设计,这样系统不仅功能强、性能可靠、成本降低,而且便于进一步微型化和便携化。
(2)内部电路可选择性工作。
F14x单片机可以通过特殊功能寄存器选择使用不同的功能电路,即依靠软件选择其中不同的外围功能模块,对于不使用的模块使其停止工作,以减少无效功耗。
MSP430寄存器的中文解释,熟知这些写起程序来很方便
#define P5DIR_ sfrb P5DIR
#define P5SEL_ sfrb P5SEL
#define P6IN_ const sfrb P6IN #define P6OUT_ sfrb P6OUT
0x0034 /* P6 输入寄存器 */ = P6IN_; 0x0035 /* P6 输出寄存器*/ = P6OUT_; 0x0036 /* P6 方向选择寄存器*/ = P6DIR_; 0x0037 /* P6 功能选择寄存器*/ = P6SEL_;
#define P4DIR_ sfrb P4DIR
#define P4SEL_ sfrb P4SEL
/************************************************************ * DIGITAL I/O Port5/6 I/O口寄存器定义PORT5和6 无中断功能
************************************************************/
#define P5IN_ const sfrb P5IN #define P5OUT_ sfrb P5OUT
0x0030 /* P5 输入寄存器 */ = P5IN_; 0x0031 /* P5 输出寄存器*/ = P5OUT_; 0x0032 /* P5 方向选择寄存器*/ = P5DIR_; 0x0033 /* P5 功能选择寄存器*/ = P5SEL_;
#define MPY_
0x0130 /* 无符号乘法 */
sfrw
MPY
= MPY_; 0x0132 /* 有符号乘法*/ = MPYS_; 0x0134 /* 无符号乘加 */ = MAC_; 0x0136 /* 有符号乘加 */ = MACS_; 0x0138 /* 第二乘数 */ = OP2_; 0x013A /* 低6位结果寄存器 */ = RESLO_; 0x013C /* 高6位结果寄存器 */ = RESHI_; 0x013E /*结果扩展寄存器 */ = SUMEXT_;
MSP430中文数据手册
MSP430混合信号微控制器数据手册产品特性●低电压范围:2.5V~5.5V●超低功耗——活动模式:330μA at 1MHz, 3V——待机模式:0.8μA——掉电模式(RAM数据保持):0.1μA●从待机模式唤醒响应时间不超过6μs●16位精简指令系统,指令周期200ns●基本时钟模块配置——多种内部电阻——单个外部电阻——32kHz晶振——高频晶体——谐振器——外部时钟源●带有三个捕获/比较寄存器的16位定时器(Timer_A)●串行在线可编程●采用保险熔丝的程序代码保护措施●该系列产品包括——MSP430C111:2K字节ROM,128字节RAM——MSP430C112:4K字节ROM,256字节RAM——MSP430P112:4K字节OTP,256字节RAM●EPROM原型——PMS430E112:4KB EPROM, 256B RAM●20引脚塑料小外形宽体(SOWB)封装,20引脚陶瓷双列直插式(CDIP)封装(仅EPROM)●如需完整的模块说明,请查阅MSP430x1xx系列用户指南(文献编号:SLAU049产品说明TI公司的MSP43O系列超低功耗微控制器由一些基本功能模块按照不同的应用目标组合而成。
在便携式测量应用中,这种优化的体系结构结合五种低功耗模式可以达到延长电池寿命的目的。
MSP430系列的CPU采用16位精简指令系统,集成有16位寄存器和常数发生器,发挥了最高的代码效率。
它采用数字控制振荡器(DCO),使得从低功耗模式到唤醒模式的转换时间小于6μs.MSP430x11x系列是一种超低功耗的混合信号微控制器,它拥有一个内置的16位计数器和14个I/0引脚。
典型应用:捕获传感器的模拟信号转换为数据,加以处理后输出或者发送到主机。
作为独立RF传感器的前端是其另一个应用领域。
DW封装(顶视图)可用选型功能模块图管脚功能简介:1.CPUMSP430的CPU采用16位RISC架构,具有高度的应用开发透明性。
MPS430手册
T EXAS I NSTRUMENTSMPS430系列混合信号微控制器结构及模块用户指南目录1MSP430系列1.1特性与功能1.2系统关键性能1.3MSP430系列的各型号2结构概述2.1CPU2.2代码存储器2.3数据存储器(RAM)2.4运行控制2.5外围模块2.6振荡器、倍频器和时钟发生器3系统复位、中断和运行模式3.1系统复位和初始化3.2中断系统结构3.3中断处理3.3.1SFR中的中断控制位3.3.2外部中断3.4运行模式3.5低功耗模式3.5.1 低功耗模式0与模式1,LPM0和LPM1 3.5.2 低功耗模式2与模式3,LPM2和LPM3 3.5.3 低功耗模式4,LPM43.6 低功耗应用要点4 存储器组织4.1 存储器中的数据4.2 片内ROM组织4.2.1 ROM表的处理4.2.2 计算分支跳转和子程序调用4.3 RAM与外围模块组织4.3.1 RAM4.3.2 外围模块—地址定位4.3.3 外围模块--SFR5 16位CPU5.1 CPU寄存器5.1.1 程序计数器PC5.1.2 系统堆栈指针SP5.1.3 状态寄存器SR5.1.4 常数发生寄存器CG1与CG25.2 寻址模式5.2.1 寄存器模式5.2.2 变址模式5.2.3 符号模式5.2.4 绝对模式5.2.5 间接模式5.2.6 间接增量模式5.2.7 立即模式5.2.8 指令的时钟周期与长度5.3 指令组概述5.3.1 双操作数指令5.3.2 单操作数指令5.3.3 条件跳转5.3.4 模拟指令的短格式5.3.5 其它指令5.4 指令分布6 硬件乘法器6.1 硬件乘法器的操作6.2 硬件乘法器的寄存器6.3 硬件乘法器的SFR位6.4 硬件乘法器的软件限制6.4.1 硬件乘法器软件限制--寻址模式6.4.2 硬件乘法器软件限制--中断程序7 振荡器与系统时钟发生器7.1 晶体振荡器7.2 处理机时钟发生器7.3 系统时钟运行模式7.4 系统时钟控制寄存器7.4.1 模块寄存器7.4.2 与系统时钟发生器相关的SFR位7.5 DCO典型特性8 数字I/O配置8.1 通用端口P08.1.1 P0控制寄存器8.1.2 P0原理图8.1.3 P0中断控制功能8.2 通用端口P1、P28.2.1 P1、P2控制寄存器8.2.2 P1、P2原理图8.2.3 P1、P2中断控制功能8.3 通用端口P3、P48.3.1 P3、P4控制寄存器8.3.2 P3、P4原理图8.4 LCD端口8.5 LCD端口--定时器/端口比较器9 通用定时器/端口模块9.1 定时器/端口模块操作9.1.1 定时器/端口计数器TPCNT1,8位操作9.1.2 定时器/端口计数器TPCNT2,8位操作9.1.3 定时器/端口计数器,16位操作9.2 定时器/端口寄存器9.3 定时器/端口SFR位9.4 定时器/端口在A/D中的应用9.4.1 R/D转换原理9.4.2 分辨率高于8位的转换10 定时器10.1 Basic Timer110.1.1 BasicTimer1寄存器10.1.2 SFR位10.1.3 BasicTimer1操作10.1.4 BasicTimer1操作:LCD时钟信号f LCD 10.2 8位间隔(Interval)定时器/计数器10.2.1 8位定时器/计数器的操作10.2.2 8位定时器/计数器的寄存器10.2.3 与8位定时器/计数器有关的SFR 10.2.4 8位定时器/计数器在UART中的应用10.3 看门狗定时器10.3.1 看门狗定时器寄存器10.3.2 看门狗定时器中断控制功能10.3.3 看门狗定时器操作10.4 8位PWM定时器10.4.1 操作10.4.2 PWM寄存器11 Timer_A11.1 Timer_A的操作11.1.1 定时器操作11.1.2 捕获模式11.1.3 比较器模式11.1.4 输出单元11.2 Timer_A的寄存器11.2.1 Timer_A控制寄存器TACTL11.2.2 捕获/比较控制寄存器CCTL11.2.3 Timer_A中断向量寄存器11.3 Timer_A的应用11.3.1 Timer_A增计数模式应用11.3.2 Timer_A连续模式应用11.3.3 Timer_A增/减计数模式应用11.3.4 Timer_A软件捕获应用11.3.5 Timer_A处理异步串行通信协议11.4 Timer_A的特殊情况11.4.1 CCR0用作周期寄存器11.4.2 定时器寄存器的启/停11.4.3 输出单元Unit012 USART外围接口,UART模式12.1 异步操作12.1.1 异步帧格式12.1.2 异步通信的波特率发生器12.1.3 异步通信格式12.1.4 线路空闲多处理机模式12.1.5 地址位格式12.2 中断与控制功能12.2.1 USART接收允许12.2.2 USART发送允许12.2.3 USART接收中断操作12.2.4 USART发送中断操作12.3 控制与状态寄存器12.3.1 USART控制寄存器UCTL12.3.2 发送控制寄存器UTCTL12.3.3 接收控制寄存器URCTL12.3.4 波特率选择和调制控制寄存器12.3.5 USART接收数据缓存URXBUF12.3.6 USART发送数据缓存UTXBUF12.4 UART模式,低功耗模式应用特性12.4.1 由UART帧启动接收操作12.4.2 UART模式波特率与时钟频率12.4.3 节约MSP430资源的多处理机模式12.5 波特率的计算13 USART外围接口,SPI模式13.1 USART的同步操作13.1.1 SPI模式中的主模式,MM=1、SYNC=1 13.1.2 SPI模式中的从模式,MM=0、SYNC=1 13.2 中断与控制功能13.2.1 USART接收允许13.2.2 USART发送允许13.2.3 USART接收中断操作13.2.4 USART发送中断操作13.3 控制与状态寄存器13.3.1 USART控制寄存器13.3.2 发送控制寄存器UTCTL13.3.3 接收控制寄存器URCTL13.3.4 波特率选择和调制控制寄存器13.3.5 USART接收数据缓存URXBUF 13.3.6 USART发送数据缓存UTXBUF14 液晶显示驱动14.1 LCD驱动基本原理14.2 LCD控制器/驱动器14.2.1 LCD控制器/驱动器功能14.2.2 LCD控制及模式寄存器14.2.3 LCD显示存储器14.2.4 LCD操作软件例程14.3 LCD端口功能14.4 LCD与端口模式混合应用实例15 A/D转换器15.1 概述15.2 A/D转换操作15.2.1 A/D转换15.2.2 A/D中断15.2.3 A/D量程15.2.4 A/D电流源15.2.5 A/D输入端与多路切换15.2.6 A/D接地与降噪15.2.7 A/D输入与输出引脚15.3 A/D控制寄存器16 其它模块16.1 晶体振荡器16.2 上电电路16.3 晶振缓冲输出附录A 外围模块分布附录B 指令组说明附录C EPROM编程本书用途及表述约定MSP430用户指南以方便工程师及程序员使用的方式提供软件和硬件资料,以帮助开发应用MSP430系列的产品。
MSP430单片机实验指导书
试验一一、实验目的进一步熟悉IAR for MSP430编程软件和PROTEUS仿真软件的使用。
了解并熟悉单片机I/O口和LED灯的电路结构,学会构建简单的流水灯电路。
掌握MSP430单片机I/O口的编程方法和使用I/O口进行输入输出的注意事项。
掌握PROTEUS仿真软件仿真MSP430单片机过程中的注意事项。
二、实验内容1、运用PROTEUS仿真软件绘制LED流水灯电路;2、运用IAR for MSP430编程软件编辑led流水灯程序,并且生成 .hex 或.d90文件,并且将生成的文件加载到单片机中,程序使用P1或其它端口来演示跑马灯,输出低电平驱动。
三、实验器材电脑一台四、实验原理及介绍LED流水灯实际上是一个带有发光二极管的单片机最小系统,即由led灯、电阻、电容器、电源等电路和必要的软件组成的单个的单片机;如果要让接在P1或其它端口的LED 灯亮起来,那么只需要将P1或其它端口的电平变为低电平就可以了。
同理,将该端口电平变为高电平,LED灯就会熄灭。
五、程序流程图六、实验步骤1、运用PROTEUS仿真软件绘制电路图;2、运用IAR for MSP430编写流水灯程序,并且生成‘’.hex’’或“.d90”文件3、将‘’.hex’’或“.d90”文件软件加载到PROTEUS仿真软件中;4、换一种流水灯的亮灭顺序,改变延时时间的大小,多次实验,灵活使用七、参考程序#include"msp430f249.h"#define uint unsigned int/******************** 主函数 **************************/ void main(void){Uint I;WDTCTL = WDTPW + WDTHOLD;P1DIR = ox0ff;while(1){PIOUT = 0x00;For(I = 0;I < 65565;I ++);PIOUT = 0x0ff;For(I = 0;I < 65565;I ++);}}八、心得体会(二页以上)实验二一、实验目的1.掌握IAR for MSP430软件与proteus软件仿真调试的方法;2.掌握LCD1602液晶模块显示西文的原理及使用方法;3.掌握用8位数据模式驱动LCM1602液晶的C语言编程方法;4.掌握用LCM1602液晶模块显示数字的C语言编程方法。
MSP430讲义(南京航空航天大学)430单片机的简介
超低功耗微控制器MSP430南京航空航天大学魏小龙2002年9月修改F40xi n de s i g n x31xLCD92x32xLCD84ADC14x33xLCD120Timer_A USART MPY8-bit T/C19961999200020022001x11x1Comp_AX12x USARTi n de s i g n F13xTimer_B ADC12USART Comp_AF14xTimer_B ADC122 USART MPY Comp_ANewNewF41xF42xi n de s i g n F43X/F44XM S P430南京航空航天大学魏小龙2002年9月修改1 个晶振, 1 个DCO, 适应不同频率需要2 个晶振, 1 个DCO, 适应不同频率需要南京航空航天大学魏小龙2002年9月修改MSP430 performs 16 bit instead of 8 bit 4 times faster than a typical 8 bit µC !!MSP430 performs 16 bit instead of 8 bit 4 times faster than a typical 8 bit µC !!南京航空航天大学魏小龙2002年9月修改南京航空航天大学魏小龙2002年9月修改南京航空航天大学南京航空航天大学魏小龙2002年自动扫描桶型缓存采样/转换控制片内温度传感器可编程参考源选择南京航空航天大学魏小龙2002年9南京航空航天大学魏小龙2002年9月修改例程简介Dis6.s43Key.cKey.s43r电源的高效率Ÿ电池缩减/ 电池寿命延长Ÿ电源电路简化/ 可远程供电r硬件简化Ÿ外部元件极少Ÿ集成实时钟Ÿ集成LCD 驱动电路Ÿ集成ADCr加速产品开发Ÿ用Flash 或OTP 型可快速制作样机Ÿ用Flash 型可作现场更新Ÿ容易学习和设计程序Ÿ代码效率高r廉价的微控制器MSP430和开发工具FET南京航空航天大学魏小龙2002年9月修改/sc/docs/products/micro/msp430器件厂家网站中国代理网站小龙微控有大量的430应用与例程/sc/docs/products/micro/msp430器件厂家网站中国代理网站小龙微控有大量的430应用与例程。
MSP430简介(超详细·)
MSP430简介(超详细·)msp430简介MSP430是德州公司新开发的⼀类具有16位总线的带FLASH 的单⽚机,由于其性价⽐和集成度⾼,受到⼴⼤技术开发⼈员的青睐.它采⽤16位的总线,外设和内存统⼀编址,寻址范围可达64K,还可以外扩展存储器.具有统⼀的中断管理,具有丰富的⽚上外围模块,⽚内有精密硬件乘法器、两个16位定时器、⼀个14路的12位的模数转换器、⼀个看门狗、6路P⼝、两路USART通信端⼝、⼀个⽐较器、⼀个DCO内部振荡器和两个外部时钟,⽀持8M 的时钟.由于为FLASH型,则可以在线对单⽚机进⾏调试和下载,且JTAG⼝直接和FET(FLASH EMULATION TOOL)的相连,不须另外的仿真⼯具,⽅便实⽤,⽽且,可以在超低功耗模式下⼯作对环境和⼈体的辐射⼩,测量结果为100mw左右的功耗(电流为14mA左右),可靠性能好,加强电⼲扰运⾏不受影响,适应⼯业级的运⾏环境,适合与做⼿柄之类的⾃动控制的设备.我们相信MSP430单⽚机将会在⼯程技术应⽤中得以⼴泛应⽤,⽽且,它是通向DSP 系列的桥梁,随着⾃动控制的⾼速化和低功耗化, MSP430系列将会得到越来越多⼈的喜爱.⼀、IO⼝(⼀)、P⼝端⼝寄存器:1、PxDIR 输⼊/输出⽅向寄存器(0:输⼊模式 1:输出模式)2、PxIN 输⼊寄存器输⼊寄存器是只读寄存器,⽤户不能对其写⼊,只能通过读取该寄存器的内容知道I/O⼝的输⼊信号。
3、PxOUT 输出寄存器寄存器内的内容不会受引脚⽅向改变的影响。
4、PxIFG 中断标志寄存器(0:没有中断请求 1:有中断请求)该寄存器有8个标志位,对应相应的引脚是否有待处理的中断请求;这8个中断标志共⽤⼀个中断向量,中断标志不会⾃动复位,必须软件复位;外部中断事件的时间必须>=1.5倍的MCLK的时间,以保证中断请求被接受;5、PxIES 中断触发沿选择寄存器(0:上升沿中断 1:下降沿中断)6、PxSEL 功能选择寄存器(0:选择引脚为I/O端⼝ 1:选择引脚为外围模块功能)7、PxREN 上拉/下拉电阻使能寄存器(0:禁⽌ 1:使能)(⼆)、常⽤特殊P⼝:1、P1和P2⼝可作为外部中断⼝。
430单片机简介
430单片机简介MSP430 系列是一个16 位的、具有精简指令集的、超低功耗的混合型单片机,在1996 年问世,由于它具有极低的功耗、丰富的片内外设和方便灵活的开发手段,已成为众多单片机系列中一颗耀眼的新星。
回忆MSP430 系列单片机的发展过程,可以看出有这样三个阶段:开始阶段从1996 年推出MSP430 系列开始到2000 年初,这个阶段首先推出有33X 、32X 、31X 等几个系列,而后于2000 年初又推出了11X 、11X1 系列。
MSP430 的33X 、32X 、31X 等系列具有LCD 驱动模块,对提高系统的集成度较有利。
每一系列有ROM 型( C )、OTP 型(P )、和EPROM 型(E )等芯片。
EPROM 型的价格昂贵,运行环境温度范围窄,主要用于样机开发。
这也表明了这几个系列的开发模式,即:用户可以用EPROM 型开发样机;用OTP 型进行小批量生产;而ROM 型适应大批量生产的产品。
2000 年推出了11X/11X1 系列。
这个系列采用20 脚封装,内存容量、片上功能和I/O 引脚数比较少,但是价格比较低廉。
这个时期的MSP430 已经显露出了它的特低功耗等的一系列技术特点,但也有不尽如人意之处。
它的许多重要特性,如:片内串行通信接口、硬件乘法器、足够的I/O 引脚等,只有33X 系列才具备。
33X 系列价格较高,比较适合于较为复杂的应用系统。
当用户设计需要更多考虑成本时,33X 并不一定是最适合的。
而片内高精度A/D 转换器又只有32X 系列才有。
寻找突破,引入Flash 技术随着Flash 技术的迅速发展,TI 公司也将这一技术引入MSP430 系列中。
在2000 年7 月推出F13X/F14X 系列,在2001 年7 月到2002 年又相继推出F41X 、F43X 、F44X 这些全部是Flash 型单片机。
F41X 单片机是目前应用比较广的单片机,它有48 个I/O 口,96 段LCD 驱动。
MPS430用户手册
IAR Embedded Workbench™Version3+ for MSP430™User's GuideLiterature Number:SLAU138AFJune2004–Revised June2014Contents Preface (6)1Get Started Now! (8)1.1Software Installation (9)1.2Flashing the LED (9)1.3Important MSP430Documents on the CD-ROM and Web (10)2Development Flow (11)2.1Overview (12)2.2Using KickStart (12)2.2.1Project Settings (13)2.2.2Using Math Library for MSP430(MSPMathlib)in IAR EW4305.60.1and Newer (14)2.2.3Additional Project Settings for MSP430L092and MSP430C092 (14)2.2.4Creating a Project From Scratch (16)2.2.5Additional Project Settings for Ultra-Low-Power Mode(LPMx.5)Debugging (17)2.2.6Password Protection for MSP430Devices (18)2.2.7Using an Existing IAR V1.x,V2.x,or V3.x Project (18)2.2.8Stack Management and.xcl Files (19)2.2.9How to Generate Texas Instruments.TXT(and Other Format)Files (19)2.2.10Overview of Example Programs (19)2.3Using C-SPY (19)2.3.1Breakpoint Types (19)2.3.2Using Breakpoints (22)2.3.3Using Single Step (22)2.3.4Using Watch Windows (23)3EnergyTrace™Technology (24)3.1Introduction (24)3.2Energy Measurement (24)3.3IAR Embedded Workbench®for MSP430Integration (24)3.3.1Debugging Devices With EnergyTrace++Technology Support (24)3.3.2Debugging Devices Without EnergyTrace++Technology Support (31)3.4Measuring Low-Power Currents (34)3.5EnergyTrace Technology FAQs (35)4Memory Protection Unit(MPU)and Intellectual Property Encapsulation(IPE) (37)A Frequently Asked Questions (38)A.1Hardware (39)A.2Program Development(Assembler,C-Compiler,Linker) (39)A.3Debugging(C-SPY) (41)B FET-Specific Menus (45)B.1Menus (46)B.1.1Emulator→Device Information (46)B.1.2Emulator→Release JTAG on Go (46)B.1.3Emulator→Resynchronize JTAG (46)B.1.4Emulator→Init New Device (46)B.1.5Emulator→Secure-Blow JTAG Fuse (46)B.1.6Emulator→Breakpoint Usage (46)2Contents SLAU138AF–June2004–Revised June2014Submit Documentation FeedbackCopyright©2004–2014,Texas Instruments IncorporatedB.1.7Emulator→Advanced→Clock Control (46)B.1.8Emulator→Advanced→Emulation Mode (46)B.1.9Emulator→Advanced→Memory Dump (47)B.1.10Emulator→Advanced→Breakpoint Combiner (47)B.1.11Emulator→State Storage Control (47)B.1.12Emulator→State Storage Window (47)B.1.13Emulator→Sequencer Control (47)B.1.14Emulator→"Power on"Reset (47)B.1.15Emulator→GIE on/off (47)B.1.16Emulator→Leave Target Running (47)B.1.17Emulator→Force Single Stepping (47)Revision History (48)3 SLAU138AF–June2004–Revised June2014Contents Submit Documentation FeedbackCopyright©2004–2014,Texas Instruments IncorporatedList of Figures1-1.Activate Project (9)1-2.Activate Project in Workspace Overview (10)2-1.L092Mode (14)2-2.C092Emulation Mode (15)2-3.C092Password (15)2-4.Enable Ultra-Low-Power Debug Mode (17)2-5.LPMx.5Notifications (18)2-6.JTAG Password (18)3-1.Pulse Density and Current Flow (24)3-2.Debug Session With EnergyTrace++Windows (25)3-3.Debug Options (26)3-4.Emulator Pulldown Menu With EnergyTrace++-Related Functions (27)3-5.Enabling the State Log Window (27)3-6.State Log Window With EnergyTrace++Data (28)3-7.State Log Summary With EnergyTrace++Data (28)3-8.Power Log Setup Window (28)3-9.Power Log Window With EnergyTrace++Data (29)3-10.Timeline With Power Log and State Graphs Disabled (29)3-11.Timeline With EnergyTrace++Data (30)3-12.Function Profiler With EnergyTrace++Data (30)3-13.Debug Session With EnergyTrace Windows (31)3-14.Emulator Pulldown Menu With EnergyTrace-Related Functions (32)3-15.Power Log Setup Window (32)3-16.Power Log Window With EnergyTrace Data (33)3-17.Timeline With Power Log Graph Disabled (33)3-18.Timeline With EnergyTrace Data (34)3-19.LPM3Current When Executing Under Debug Control (34)3-20.Release JTAG on Go Option in Emulator Pulldown Menu (35)3-21.LPM3Current When Executing with JTAG Signals Released (35)4-1.MPU Configuration Dialog (37)4List of Figures SLAU138AF–June2004–Revised June2014Submit Documentation FeedbackCopyright©2004–2014,Texas Instruments IncorporatedList of Tables2-1.Device Architecture,Breakpoints,and Other Emulation Features (20)5 SLAU138AF–June2004–Revised June2014List of Tables Submit Documentation FeedbackCopyright©2004–2014,Texas Instruments IncorporatedPrefaceSLAU138AF–June2004–Revised June2014Read This FirstAbout This ManualThis manual describes the use of IAR Embedded Workbench®(EW430)with the MSP430™ultra-low-power microcontrollers.How to Use This ManualRead and follow the instructions in the Get Started Now!chapter.This chapter provides instructions on installing the software,and describes how to run the demonstration programs.After you see how quick and easy it is to use the development tools,TI recommends that you read all of this manual.This manual describes only the setup and basic operation of the software development environment,but it does not fully describe the MSP430microcontrollers or the complete development software and hardware systems.For details of these items,see the appropriate TI and IAR™documents listed in RelatedDocumentation From Texas Instruments,Important MSP430Documents on the CD-ROM and Web.This manual applies to the use with Texas Instruments'MSP-FET430UIF,MSP-FET430PIF,and eZ430 development tools series.These tools contain the most up-to-date materials available at the time of packaging.For the latestmaterials(including data sheets,user's guides,software,and application information),visit the TI MSP430 web site at /msp430or contact your local TI sales office.Information About Cautions and WarningsThis book may contain cautions and warnings.CAUTIONThis is an example of a caution statement.A caution statement describes a situation that could potentially damage yoursoftware or equipment.The information in a caution or a warning is provided for your protection.Read each caution and warning carefully.MSP430,EnergyTrace are trademarks of Texas Instruments.6Read This First SLAU138AF–June2004–Revised June2014 IAR Embedded Workbench is a registered trademark of IAR Systems AB.Submit Documentation Feedback All other trademarks are the property of their respective owners.Copyright©2004–2014,Texas Instruments Incorporated Related Documentation From Texas Instruments Related Documentation From Texas InstrumentsMSP430development tools documentationMSP430Hardware Tools User's Guide,literature number SLAU278eZ430-F2013Development Tool User's Guide,literature number SLAU176eZ430-RF2480User's Guide,literature number SWRA176eZ430-RF2500Development Tool User's Guide,literature number SLAU227eZ430-RF2500-SEH Development Tool User's Guide,literature number SLAU273eZ430-Chronos Development Tool User's Guide,literature number SLAU292MSP430device data sheetsMSP430x1xx Family User's Guide,literature number SLAU049MSP430x2xx Family User's Guide,literature number SLAU144MSP430x3xx Family User's Guide,literature number SLAU012MSP430x4xx Family User's Guide,literature number SLAU056MSP430x5xx and MSP430x6xx Family User's Guide,literature number SLAU208MSP430FR57xx Family User's Guide,literature number SLAU272MSP430FR58xx,MSP430FR59xx,MSP430FR68xx,and MSP430FR69xx Family User's Guide,literature number SLAU367CC430device data sheetsCC430Family User's Guide,literature number SLAU259If You Need AssistanceSupport for the MSP430devices and the FET development tools is provided by the Texas Instruments Product Information Center(PIC).Contact information for the PIC can be found on the TI web site at/support.The Texas Instruments E2E Community support forums for the MSP430is available to provide open interaction with peer engineers,TI engineers,and other experts.Additional device-specific information can be found on the MSP430web site.NOTE:The KickStart kit is supported by Texas Instruments.Although the KickStart kit is a product of IAR,Texas Instruments provides the support for it.Therefore,please do not request support for KickStart from IAR.Consult the extensivedocumentation provided with KickStart before requesting assistance.7 SLAU138AF–June2004–Revised June2014Read This First Submit Documentation FeedbackCopyright©2004–2014,Texas Instruments IncorporatedChapter1SLAU138AF–June2004–Revised June2014Get Started Now!This chapter provides instruction on installing the software,and shows how to run the demonstration programs.Topic Page1.1Software Installation (9)1.2Flashing the LED (9)1.3Important MSP430Documents on the CD-ROM and Web (10)8Get Started Now!SLAU138AF–June2004–Revised June2014Submit Documentation FeedbackCopyright©2004–2014,Texas Instruments Incorporated Software Installation 1.1Software InstallationFollow the instructions on the supplied READ ME FIRST document to install the IAR EmbeddedWorkbench™KickStart kit.Read the file<Installation Root>\Embedded Workbenchx.x\430\doc\readme.htm from IAR for the latest information about the Workbench.The term KickStartrefers to the function-limited version of Embedded Workbench(including C-SPY™debugger).KickStart is supplied on the CD-ROM included with each FET,and the latest version is available from the MSP430 web site.The documents mentioned in the previous paragraph(and this document)can be accessed using:Start→Programs→IAR Systems→IAR Embedded Workbench KickStart for MSP430V3.KickStart is compatible with Windows2000(SP4),Windows XP(32bit and64bit),Windows Vista(32bit and64bit),and Windows7(32bit and64bit).However,the USB FET interface works with only Windows XP(32bit and64bit),Windows Vista(32bit and64bit),and Windows7(32bit and64bit).1.2Flashing the LEDThis section demonstrates on the FET the equivalent of the C-language"Hello World!"introductoryprogram.An application that flashes the LED is developed and downloaded to the FET,and then run.1.Start the Workbench(Start→Programs→IAR Systems→IAR Embedded Workbench KickStart forMSP430V3→IAR Embedded Workbench).2.Click File→Open Workspace to open the file at:<Installation Root>\Embedded Workbench x.x\430\FET_examples\Flashing the LED.eww.The workspace window opens.3.Click on the tab at the bottom of the workspace window that corresponds to the MSP430device(MSP430xxxx)and desired language(assembler or C)to set a project active(see Figure1-1).Figure1-1.Activate Project9 SLAU138AF–June2004–Revised June2014Get Started Now! Submit Documentation FeedbackCopyright©2004–2014,Texas Instruments IncorporatedImportant MSP430Documents on the CD-ROM and Web Alternatively,right click to activate a project in the Workspace Overview tab(see Figure1-2).Figure1-2.Activate Project in Workspace Overview4.Click Project→Options→FET Debugger→Setup→Connection to select the appropriate port:Texas Instruments LPT-IF for the parallel FET Interface(MSP-FET430PIF)or Texas Instruments USB-IF for the USB Interface(MSP-FET430UIF)or for the eZ430.5.Click Project→Rebuild All to build and link the source code.You can view the source code by double-clicking on the project,and then double-clicking on the displayed source file.6.Click Project→Debug to start the C-SPY debugger.C-SPY erases the device flash and thendownloads the application object file to the device flash.See FAQ Debugging#1if C-SPY is unable to communicate with the device.7.Click Debug→Go to start the application.The LED should flash.8.Click Debug→Stop Debugging to stop debugging,to exit C-SPY,and to return to the Workbench.9.Click File→Exit to exit the Workbench.Congratulations,you have just built and tested an MSP430application!1.3Important MSP430Documents on the CD-ROM and WebThe primary sources of MSP430information are the device-specific data sheet and user's guide.The most up-to-date versions of these documents that are available at the time of production are provided on the CD-ROM included with this tool.The MSP430web site(/msp430)contains the most recent version of these documents.PDF documents describing the IAR tools(Workbench and C-SPY,the assembler,the C compiler,thelinker,and the librarian)are in the common\doc and430\doc folders.Supplements to the documents(that is,the latest information)are available in HTML format in the same directories.430\doc\readme_start.htm provides a convenient starting point for navigating the IAR documentation.10Get Started Now!SLAU138AF–June2004–Revised June2014Submit Documentation FeedbackCopyright©2004–2014,Texas Instruments IncorporatedChapter2SLAU138AF–June2004–Revised June2014Development Flow This chapter describes how to use KickStart to develop application software and how to use C-SPY to debug it.Topic Page2.1Overview (12)2.2Using KickStart (12)2.3Using C-SPY (19)11 SLAU138AF–June2004–Revised June2014Development Flow Submit Documentation FeedbackCopyright©2004–2014,Texas Instruments IncorporatedOverview 2.1OverviewApplications are developed in assembler or C using the Workbench,and they are debugged using C-SPY.C-SPY is seamlessly integrated into the Workbench.However,it is more convenient to make thedistinction between the code development environment(Workbench)and the debugger(C-SPY).C-SPY can be configured to operate with the FET(that is,an actual MSP430device)or with a software simulator of the device.KickStart refers to the Workbench and C-SPY collectively.The KickStart software tools area product of IAR.Documentation for the MSP430family and KickStart is extensive.The CD-ROM supplied with this toolcontains a large amount of documentation describing the MSP430.The MSP430home page(/msp430)is another source of MSP430information.The components of KickStart(workbench and debugger,assembler,compiler,linker)are fully documented in<Installation Root>\EmbeddedWorkbench x.x\common\doc and<Installation Root>\Embedded Workbench\430\doc..htm files located throughout the KickStart directory tree contain the most up-to-date information and supplement the PDF files.In addition,KickStart documentation is available online via Help.Read Me First files from IAR and TI and this document can be accessed using Start→Programs→IAR Systems→IAR Embedded Workbench KickStart for MSP430V3.Tool User's Guide Most Up-To-Date Information Workbench,C-SPY EW430_UsersGuide.pdf readme.htm,ew430.htm,cs430.htm,cs430f.htmAssembler EW430_AssemblerReference.pdf a430.htm,a430_msg.htmCompiler EW430_CompilerReference.pdf icc430.htm,icc430_msg.htmC library CLibrary.htmLinker and Librarian xlink.pdf xlink.htm,xman.htm,xar.htm2.2Using KickStartThe KickStart edition is a special starter kit or evaluation version of IAR Embedded Workbench withlimitations both in code size and in the service and support that is provided.Limitations:•The C compiler does not generate an assembly code list file.•The code size limit of the MSP430IAR KickStart C/C++Compiler is set to4Kbytes for traditional MSP430devices and8Kbytes for MSP430X devices(see Table2-1for detailed information aboutwhich MSP430device is based on which architecture).•The IAR Assembler delivered is the full version without any restrictions.•The IAR XLINK Linker links a maximum of4Kbytes originating from C source code for traditional MSP430devices and8Kbytes for MSP430X devices(see Table2-1for detailed information aboutwhich MSP430device is based on which architecture),but an unlimited amount of code originatingfrom assembly code.•The IAR KickStart C-SPY Simulator reads a maximum of4Kbytes originating from C code for traditional MSP430devices and8Kbytes for MSP430X devices but is unlimited in the amount ofassembly code read(see Table2-1for detailed information about which MSP430device is based onwhich architecture).•MISRA C is not available.•The runtime library source code is not included.A full(that is,unrestricted)version of the software tools can be purchased from IAR.A mid-featured toolset–called Baseline,with a12Kbyte C-code size limitation and basic floating-point operations–is also available from IAR.See the IAR web site(www.iar.se)for more information.12Development Flow SLAU138AF–June2004–Revised June2014Submit Documentation FeedbackCopyright©2004–2014,Texas Instruments Incorporated Using KickStart 2.2.1Project SettingsThe settings required to configure the Workbench and C-SPY are numerous and detailed.Read andthoroughly understand the documentation supplied by IAR when dealing with project settings.Review the project settings of the supplied assembler and C examples(the project settings are accessed usingProject→Options with the project name selected).Use these project settings as templates whendeveloping your own projects.Note that if the project name is not selected when settings are made,the settings are applied to the selected file(not to the project).The following project settings are recommended or required:•Specify the target device(General Options→Target→Device).•Enable an assembler project or a C or assembler project(General Options→Target→Assembler-only project).•Enable the generation of an executable output file(General Options→Output→Output file→Executable).•To most easily debug a C project,disable optimization[C/C++Compiler→Optimizations→Size→None(Best debug support)].•Enable the generation of debug information in the compiler output(C/C++Compiler→Output→Generate debug information).•Specify the search path for the C preprocessor(C/C++Compiler→Preprocessor→Include Paths).•Enable the generation of debug information in the assembler output(Assembler→Output→Generate Debug Info).•Specify the search path for the assembler preprocessor(Assembler→Preprocessor→Include Paths).•To debug the project using C-SPY,specify a compatible format[Linker→Output→Format→Debug information for C-SPY(with runtime control modules or with I/O emulation modules)].•Specify the search path for any used libraries(Linker→Config→Search paths).•Specify the C-SPY driver.Select Project→Options→Debugger→Setup→Driver→FET Debugger to debug on the FET(that is,MSP430device).Select Simulator to debug on the simulator.If FETDebugger is selected,use Project→Options→FET Debugger→Setup→Connection to select theappropriate port:Texas Instruments LPT-IF for the parallel FET Interface(MSP-FET430PIF)or TexasInstruments USB-IF for the USB Interface(MSP-FET430UIF)or for the eZ430.•Enable the Device Description file.This file makes C-SPY"aware"of the specifics of the device it is debugging.This file corresponds to the specified target device(Debugger→Setup→Devicedescription file→Override default).•Enable the erasure of the Main and Information memories before object code download(FET Debugger→Download→Erase main and Information memory).•To maximize system performance during debug,disable Virtual Breakpoints(FET Debugger→Breakpoints→Use virtual breakpoints)and disable all System Breakpoints(FET Debugger→Breakpoints→System breakpoints on).NOTE:Use Factory Settings to quickly configure a project.Use the Factory Settings button to quickly configure a project to a usable state.The following steps can be used to quickly configure a project.Note that the General Options tab does not have a Factory Settings button.1.Specify the target device(General Options→Target→Device).2.Enable an assembler project or a C or assembler project(General Options→Target→Assembler-only project).3.Enable the generation of an executable output file(General Options→Output→Output file→Executable).4.Accept the factory settings for the compiler(C/C++Compiler→Factory Settings).5.Accept the factory settings for the assembler(Assembler→Factory Settings).13 SLAU138AF–June2004–Revised June2014Development Flow Submit Documentation FeedbackCopyright©2004–2014,Texas Instruments IncorporatedUsing KickStart 6.Accept the factory settings for the linker(Linker→Factory Settings).7.Accept the factory settings for C-SPY(Debugger→Factory Settings).8.Debug on the hardware(Debugger→Setup→Driver→FET Debugger).9.Specify the active parallel port used to interface to the FET if not LPT1(FET Debugger→Setup→Connection→Texas Instruments LPT-IF)or specify the USB port(FET Debugger→Setup→Connection→Texas Instruments USB-IF).NOTE:Avoid the use of absolute path names when referencing files.Instead,use the relative pathname keywords$TOOLKIT_DIR$and$PROJ_DIR$.See theIAR documentation for a description of these keywords.The use of relative path namespermits projects to be moved easily,and projects do not require modification when IARsystems are upgraded(for example,from KickStart or Baseline to Full).2.2.2Using Math Library for MSP430(MSPMathlib)in IAR EW4305.60.1and NewerTI's MSPMathlib is part of EW4305.60.1and newer releases.This optimized library provides up to26x better performance in applications that use floating point scalar math.For details,see the MSPMathlibweb page(/tool/mspmathlib).MSPMathlib may be enabled for new and existing projects on all supported devices.Enable or disable MSPMathlib in the project options(General Options→Library Configuration→MathLib).2.2.3Additional Project Settings for MSP430L092and MSP430C092The MSP430L092can operate in two different modes:L092mode and C092emulation mode.Thepurpose of the C092emulation mode is to behave like a C092with up to1920bytes of code at its final destination for mask generation.The operation mode is determined by EW430before starting the debugger.Two radio buttons areavailable for the mode selection.By default the L092mode is selected(see Figure2-1and Figure2-2).Figure2-1.L092Mode14Development Flow SLAU138AF–June2004–Revised June2014Submit Documentation FeedbackCopyright©2004–2014,Texas Instruments Incorporated Using KickStartFigure2-2.C092Emulation Mode2.2.3.1MSP430L092Loader CodeThe Loader Code in the MSP430L092is a ROM-code from TI that provides a series of services.It enables customers to build autonomous applications without needing to develop a ROM mask.Such an application consists of an MSP430device containing the loader(for example,MSP430L092)and an SPI memorydevice(for example,'95512or'25AA40);these and similar devices are available from variousmanufacturers.The majority of use cases for an application with a loader device and external SPI memory for native0.9-V supply voltage are late development,prototyping,and small series production.Figure2-1shows the selection for loading the application into the external SPI memory.2.2.3.2Password Protection of MSP430C092The MSP430C092is a customer-specific ROM device that is protected by a password.To start a debug session,the password must be provided to EW430.Figure2-3shows how to provide a HEX password in EW430.Figure2-3.C092Password15 SLAU138AF–June2004–Revised June2014Development Flow Submit Documentation FeedbackCopyright©2004–2014,Texas Instruments IncorporatedUsing KickStart 2.2.4Creating a Project From ScratchThis section presents step-by-step instructions to create an assembler or C project from scratch,and to download and run the application on the MSP430(see also Section2.2.1,Project Settings).The MSP430 IAR Embedded Workbench IDE User's Guide presents a more comprehensive overview of the process.1.Start the Workbench(Start→Programs→IAR Systems→IAR Embedded Workbench KickStart forMSP430V3→IAR Embedded Workbench).2.Create a new text file(File→New→File).3.Enter the program text into the file.NOTE:Use.h files to simplify your code development.KickStart is supplied with files that define the device registers and the bit names for eachdevice.These files can greatly simplify the task of developing your program.The files arelocated in<Installation Root>\Embedded Workbench x.x\430\inc.Include the.h filecorresponding to your target device in your text file(#include"msp430xyyy.h").Additionally,files io430xxxx.h are provided and are optimized to be included by C source files.4.Save the program text file(File→Save).It is recommended that assembler text files be saved with a file-type suffix of".s43"and that C text files be saved with a file-type suffix of".c".5.Create a new workspace(File→New→Workspace).6.Create a new project(Project→Create New Project).Select Tool chain:MSP430,Project Templates:Empty project and click OK.Specify a project name and click Save.7.Add the program text file to the project(Project→Add Files).Select the program text file and clickOpen.Alternatively,double-click on the file to add it to the project.NOTE:How to add assembler source files to your projectThe default file type presented in the Add Files window is"C/C++Files".To view assemblerfiles(.s43),select"Assembler Files"in the"Files of type"drop-down menu.8.Save the workspace(File→Save Workspace).Specify a workspace name and click Save.9.Configure the project options(Project→Options).For each of the subcategories(General Options,C/C++Compiler,Assembler,Linker,Debugger),accept the default Factory Settings with the followingexceptions:•Specify the target device(General Options→Target→Device).•Enable an assembler project or a C or assembler project(General Options→Target→Assembler-only project).•Enable the generation of an executable output file(General Options→Output→Output file→Executable).•To debug on the FET(that is,the MSP430),click Debugger→Setup→Driver→FET Debugger.•Specify the active port used to interface to the FET(FET Debugger→Setup→Connection).10.Build the project(Project→Rebuild All).11.Debug the application using C-SPY(Project→Debug).This starts C-SPY,and C-SPY takes control ofthe target,erases the target memory,programs the target memory with the application,and resets thetarget.See FAQ Debugging#1if C-SPY is unable to communicate with the device.12.Click Debug→Go to start the application.13.Click Debug→Stop Debugging to stop the application,to exit C-SPY,and to return to the Workbench.14.Click File→Exit to exit the Workbench.16Development Flow SLAU138AF–June2004–Revised June2014Submit Documentation FeedbackCopyright©2004–2014,Texas Instruments Incorporated Using KickStart 2.2.5Additional Project Settings for Ultra-Low-Power Mode(LPMx.5)Debugging2.2.5.1What is LPMx.5LPMx.5is an ultra-low-power mode in which the entry and exit is handled differently than the other low-power modes.LPMx.5gives the lowest power consumption available on a device.To achieve this,entry to LPMx.5disables the LDO of the PMM module,which removes the supply voltage from the core and the JTAGmodule of the device.Because the supply voltage is removed from the core,all register contents andSRAM contents are lost.Exit from LPMx.5causes a BOR event,which forces a complete reset of thesystem.NOTE:The option"RELEASE JTAG ON GO"is currently not supported in the EmbeddedWorkbench when LPMx.5debugging is active.See the MSP430device family user's guidefor additional LPMx.5and ultra-low-power debug mode details.2.2.5.2Enable Ultra-Low-Power Debug ModeTo enable the ultra-low power debug mode feature the“Enable ULP/LPMx.5debug”checkbox must be enabled by clicking FET Debugger->Setup->Enable ULP/LPMx.5debug(see Figure2-4).When the ultra-low power debug mode is enabled a notification is displayed in the Debugger log every time thetarget device enters and leaves LPMx.5mode(see Figure2-5).Press the Halt or Reset button in Embedded Workbench to wake up the target device from LPMx.5.Execution of the code is halted at the start of the program.All breakpoints that had been active beforeLPMx.5are restored and reactivated automatically.Figure2-4.Enable Ultra-Low-Power Debug Mode17 SLAU138AF–June2004–Revised June2014Development Flow Submit Documentation FeedbackCopyright©2004–2014,Texas Instruments Incorporated。
MSP430_Family_Users_Guide(中文版)_430单片机__极端详细__应用程序
2.强大的处理能力
MSP430 系列单片机是 16 位单片机,采用了目前流行的、颇受学术界好评的精简指令集(RISC)结构, 一个时钟周期可以执行一条指令(传统的 MCS51 单片机要 12 个时钟周期才可以执行一条指令),使 MSP430 在 8MHz 晶振工作时,指令速度可达 8MIPS(注意:同样 8MIPS 的指令速度,在运算性能上 16 位处理器比 8 位处理器高远不止两倍)。不久还将推出 25~30MIPS 的产品。
同时,MSP430 系列单片机中的某些型号,采用了一股只有 DSP 中才有的 16 位多功能硬件乘法器、 硬件乘.加(积之和)功能、DMA 等一系列先进的体系结构,大大增强了它的数据处理和运算能力,可以有 效地实现一些数字信号处理的算法(如 FFT、DTMF 等)。这种结构在其他系列单片机中尚未使用。
MSP430 系列单片机的丰富片内外设,在目前所有单片机系列产品中是非常突出的,为系统的单片解 决方案提供了极大的方便。
msp430f系列中文资料
超低功耗微控制器MSP430F40xi n de s i g n x31xLCD92x32xLCD84ADC14x33xLCD120Timer_A USART MPY8-bit T/Cx11x1Comp_AX12x USARTi n de s i g n F13xTimer_B ADC12USART Comp_AF14xTimer_B ADC122 USART MPY Comp_ANewNewF41xi n de s i g n F42xi n de s i g n F44xi n de s i g nUltra -low power design withM S P430August 00 / 11FLASH 型的时钟系统(F13x,F14x)2 个晶振, 1 个DCO, 适应不同频率需要采样/转换控制可编程参考源选择片内温度传感器Ultra -low power design withM S P430August 00 / 34F11x 应用实例)Floating Point Package)Starter Kit MSP-STK430X320TI 软件包仿真器评估板TI 软件库C-编译器编程器)TI Programming AdapterAugust 00 / 37New电源的高效率y电池缩减/ 电池寿命延长y电源电路简化/ 可远程供电硬件简化y外部元件极少y集成实时钟y集成LCD 驱动电路y集成ADC加速产品开发y用Flash 或OTP 型可快速制作样机y用Flash 型可作现场更新y容易学习和设计程序y代码效率高廉价的微控制器MSP430和开发工具FET/sc/docs/products/micro/msp430E-mail: lierda@ (wzptt)/sc/docs/products/micro/msp430E-mail: lierda@ (wzptt)。
MSP430头文件带中文注释
#ifndef __msp430x14x#define __msp430x14x/************************************************************ * STANDARD BITS************************************************************/#define BIT0 0x0001#define BIT1 0x0002#define BIT2 0x0004#define BIT3 0x0008#define BIT4 0x0010#define BIT5 0x0020#define BIT6 0x0040#define BIT7 0x0080#define BIT8 0x0100#define BIT9 0x0200#define BITA 0x0400#define BITB 0x0800#define BITC 0x1000#define BITD 0x2000#define BITE 0x4000#define BITF 0x8000/************************************************************ * STATUS REGISTER BITS************************************************************/#define C 0x0001#define Z 0x0002#define N 0x0004#define V 0x0100#define GIE 0x0008#define CPUOFF 0x0010#define OSCOFF 0x0020#define SCG0 0x0040#define SCG1 0x0080/* Low Power Modes coded with Bits 4-7 in SR */#ifndef __IAR_SYSTEMS_ICC /* Begin #defines for assembler */#define LPM0 CPUOFF#define LPM1 SCG0+CPUOFF#define LPM2 SCG1+CPUOFF#define LPM3 SCG1+SCG0+CPUOFF#define LPM4 SCG1+SCG0+OSCOFF+CPUOFF/* End #defines for assembler */#else /* Begin #defines for C */#define LPM0_bits CPUOFF#define LPM1_bits SCG0+CPUOFF#define LPM2_bits SCG1+CPUOFF#define LPM3_bits SCG1+SCG0+CPUOFF#define LPM4_bits SCG1+SCG0+OSCOFF+CPUOFF#include <In430.h>#define LPM0 _BIS_SR(LPM0_bits) /* Enter Low Power Mode 0 */#define LPM0_EXIT _BIC_SR(LPM0_bits) /* Exit Low Power Mode 0 */#define LPM1 _BIS_SR(LPM1_bits) /* Enter Low Power Mode 1 */#define LPM1_EXIT _BIC_SR(LPM1_bits) /* Exit Low Power Mode 1 */#define LPM2 _BIS_SR(LPM2_bits) /* Enter Low Power Mode 2 */#define LPM2_EXIT _BIC_SR(LPM2_bits) /* Exit Low Power Mode 2 */#define LPM3 _BIS_SR(LPM3_bits) /* Enter Low Power Mode 3 */#define LPM3_EXIT _BIC_SR(LPM3_bits) /* Exit Low Power Mode 3 */#define LPM4 _BIS_SR(LPM4_bits) /* Enter Low Power Mode 4 */#define LPM4_EXIT _BIC_SR(LPM4_bits) /* Exit Low Power Mode 4 */#endif /* End #defines for C *//************************************************************ * PERIPHERAL FILE MAP************************************************************//************************************************************ * 特殊功能寄存器地址和控制位************************************************************/ /*中断使能1*/#define IE1_ 0x0000sfrb IE1 = IE1_;#define WDTIE 0x01 /*看门狗中断使能*/#define OFIE 0x02 /*外部晶振故障中断使能*/#define NMIIE 0x10 /*非屏蔽中断使能*/#define ACCVIE 0x20 /*可屏蔽中断使能/flash写中断错误*/#define URXIE0 0x40 /*串口0接收中断使能*/#define UTXIE0 0x80 /*串口0发送中断使能*//*中断标志1*/#define IFG1_ 0x0002sfrb IFG1 = IFG1_;#define WDTIFG 0x01 /*看门狗中断标志*/#define OFIFG 0x02 /*外部晶振故障中断标志*/#define NMIIFG 0x10 /*非屏蔽中断标志*/#define URXIFG0 0x40 /*串口0接收中断标志*/#define UTXIFG0 0x80 /*串口0发送中断标志*//* 中断模式使能1 */#define ME1_ 0x0004sfrb ME1 = ME1_;#define URXE0 0x40 /* 串口0接收中断模式使能*/#define USPIE0 0x40 /* 同步中断模式使能*/#define UTXE0 0x80 /* 串口0发送中断模式使能*//* 中断使能2 */#define IE2_ 0x0001sfrb IE2 = IE2_;#define URXIE1 0x10 /* 串口1接收中断使能*/#define UTXIE1 0x20 /* 串口1发送中断使能*//* 中断标志2 */#define IFG2_ 0x0003sfrb IFG2 = IFG2_;#define URXIFG1 0x10 /* 串口1接收中断标志*/#define UTXIFG1 0x20 /* 串口1发送中断标志*//* 中断模式使能2 */#define ME2_ 0x0005sfrb ME2 = ME2_;#define URXE1 0x10 /* 串口1接收中断模式使能*/#define USPIE1 0x10 /* 同步中断模式使能*/#define UTXE1 0x20 /* 串口1发送中断模式使能*//************************************************************* 看门狗定时器的寄存器定义************************************************************/#define WDTCTL_ 0x0120sfrw WDTCTL = WDTCTL_;#define WDTIS0 0x0001 /*选择WDTCNT的四个输出端之一*/#define WDTIS1 0x0002 /*选择WDTCNT的四个输出端之一*/#define WDTSSEL 0x0004 /*选择WDTCNT的时钟源*/#define WDTCNTCL 0x0008 /*清除WDTCNT端: 为1时从0开始计数*/#define WDTTMSEL 0x0010 /*选择模式0: 看门狗模式; 1: 定时器模式*/#define WDTNMI 0x0020 /*选择NMI/RST 引脚功能0:为RST; 1:为NMI*/#define WDTNMIES 0x0040 /*WDTNMI=1时.选择触发延0:为上升延1:为下降延*/ #define WDTHOLD 0x0080 /*停止看门狗定时器工作0:启动;1:停止*/#define WDTPW 0x5A00 /* 写密码:高八位*//* SMCLK= 1MHz定时器模式*/#define WDT_MDLY_32 WDTPW+WDTTMSEL+WDTCNTCL /* TSMCLK*2POWER15=32ms 复位状态*/#define WDT_MDLY_8 WDTPW+WDTTMSEL+WDTCNTCL+WDTIS0 /* TSMCLK*2POWER13=8.192ms " */#define WDT_MDLY_0_5 WDTPW+WDTTMSEL+WDTCNTCL+WDTIS1 /* TSMCLK*2POWER9=0.512ms " */#define WDT_MDLY_0_064 WDTPW+WDTTMSEL+WDTCNTCL+WDTIS1+WDTIS0 /* TSMCLK*2POWER6=0.512ms " *//* ACLK=32.768KHz 定时器模式*/#define WDT_ADLY_1000 WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL /* TACLK*2POWER15=1000ms " */#define WDT_ADLY_250 WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS0 /* TACLK*2POWER13=250ms " */#define WDT_ADLY_16 WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS1 /* TACLK*2POWER9=16ms " */#define WDT_ADLY_1_9 WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS1+WDTIS0 /* TACLK*2POWER6=1.9ms " *//* SMCLK=1MHz看门狗模式*/#define WDT_MRST_32 WDTPW+WDTCNTCL /* TSMCLK*2POWER15=32ms 复位状态*/#define WDT_MRST_8 WDTPW+WDTCNTCL+WDTIS0 /* TSMCLK*2POWER13=8.192ms " */#define WDT_MRST_0_5 WDTPW+WDTCNTCL+WDTIS1 /* TSMCLK*2POWER9=0.512ms " */#define WDT_MRST_0_064 WDTPW+WDTCNTCL+WDTIS1+WDTIS0 /* TSMCLK*2POWER6=0.512ms " *//* ACLK=32KHz看门狗模式*/#define WDT_ARST_1000 WDTPW+WDTCNTCL+WDTSSEL /* TACLK*2POWER15=1000ms " */#define WDT_ARST_250 WDTPW+WDTCNTCL+WDTSSEL+WDTIS0 /* TACLK*2POWER13=250ms " */#define WDT_ARST_16 WDTPW+WDTCNTCL+WDTSSEL+WDTIS1 /* TACLK*2POWER9=16ms " */ #define WDT_ARST_1_9 WDTPW+WDTCNTCL+WDTSSEL+WDTIS1+WDTIS0 /* TACLK*2POWER6=1.9ms " *//************************************************************硬件乘法器的寄存器定义************************************************************/#define MPY_ 0x0130 /* 无符号乘法*/sfrw MPY = MPY_;#define MPYS_ 0x0132 /* 有符号乘法*/sfrw MPYS = MPYS_;#define MAC_ 0x0134 /* 无符号乘加*/sfrw MAC = MAC_;#define MACS_ 0x0136 /* 有符号乘加*/sfrw MACS = MACS_;#define OP2_ 0x0138 /* 第二乘数*/sfrw OP2 = OP2_;#define RESLO_ 0x013A /* 低6位结果寄存器*/sfrw RESLO = RESLO_;#define RESHI_ 0x013C /* 高6位结果寄存器*/sfrw RESHI = RESHI_;#define SUMEXT_ 0x013E /*结果扩展寄存器*/const sfrw SUMEXT = SUMEXT_;/************************************************************ * DIGITAL I/O Port1/2 寄存器定义有中断功能************************************************************/#define P1IN_ 0x0020 /* P1 输入寄存器*/const sfrb P1IN = P1IN_;#define P1OUT_ 0x0021 /* P1 输出寄存器*/sfrb P1OUT = P1OUT_;#define P1DIR_ 0x0022 /* P1 方向选择寄存器*/sfrb P1DIR = P1DIR_;#define P1IFG_ 0x0023 /* P1 中断标志寄存器*/sfrb P1IFG = P1IFG_;#define P1IES_ 0x0024 /* P1 中断边沿选择寄存器*/sfrb P1IES = P1IES_;#define P1IE_ 0x0025 /* P1 中断使能寄存器*/sfrb P1IE = P1IE_;#define P1SEL_ 0x0026 /* P1 功能选择寄存器*/sfrb P1SEL = P1SEL_;#define P2IN_ 0x0028 /* P2 输入寄存器*/const sfrb P2IN = P2IN_;#define P2OUT_ 0x0029 /* P2 输出寄存器*/sfrb P2OUT = P2OUT_;#define P2DIR_ 0x002A /* P2 方向选择寄存器*/sfrb P2DIR = P2DIR_;#define P2IFG_ 0x002B /* P2 中断标志寄存器*/sfrb P2IFG = P2IFG_;#define P2IES_ 0x002C /* P2 中断边沿选择寄存器*/sfrb P2IES = P2IES_;#define P2IE_ 0x002D /* P2 中断使能寄存器*/sfrb P2IE = P2IE_;#define P2SEL_ 0x002E /* P2 功能选择寄存器*/sfrb P2SEL = P2SEL_;/************************************************************ * DIGITAL I/O Port3/4寄存器定义无中断功能************************************************************/#define P3IN_ 0x0018 /* P3 输入寄存器*/const sfrb P3IN = P3IN_;#define P3OUT_ 0x0019 /* P3 输出寄存器*/sfrb P3OUT = P3OUT_;#define P3DIR_ 0x001A /* P3 方向选择寄存器*/sfrb P3DIR = P3DIR_;#define P3SEL_ 0x001B /* P3 功能选择寄存器*/sfrb P3SEL = P3SEL_;#define P4IN_ 0x001C /* P4 输入寄存器*/const sfrb P4IN = P4IN_;#define P4OUT_ 0x001D /* P4 输出寄存器*/sfrb P4OUT = P4OUT_;#define P4DIR_ 0x001E /* P4 方向选择寄存器*/sfrb P4DIR = P4DIR_;#define P4SEL_ 0x001F /* P4 功能选择寄存器*/sfrb P4SEL = P4SEL_;/************************************************************ * DIGITAL I/O Port5/6 I/O口寄存器定义PORT5和6 无中断功能************************************************************/#define P5IN_ 0x0030 /* P5 输入寄存器*/const sfrb P5IN = P5IN_;#define P5OUT_ 0x0031 /* P5 输出寄存器*/sfrb P5OUT = P5OUT_;#define P5DIR_ 0x0032 /* P5 方向选择寄存器*/sfrb P5DIR = P5DIR_;#define P5SEL_ 0x0033 /* P5 功能选择寄存器*/sfrb P5SEL = P5SEL_;#define P6IN_ 0x0034 /* P6 输入寄存器*/const sfrb P6IN = P6IN_;#define P6OUT_ 0x0035 /* P6 输出寄存器*/sfrb P6OUT = P6OUT_;#define P6DIR_ 0x0036 /* P6 方向选择寄存器*/sfrb P6DIR = P6DIR_;#define P6SEL_ 0x0037 /* P6 功能选择寄存器*/sfrb P6SEL = P6SEL_;/************************************************************* USART 串口寄存器"UCTL","UTCTL","URCTL"定义的各个位可串口1 串口2公用************************************************************//* UCTL 串口控制寄存器*/#define PENA 0x80 /*校验允许位*/#define PEV 0x40 /*偶校验为0时为奇校验*/#define SPB 0x20 /*停止位为2 为0时停止位为1*/#define CHAR 0x10 /*数据位为8位为0时数据位为7位*/#define LISTEN 0x08 /*自环模式(发数据同时在把发的数据接收回来)*/#define SYNC 0x04 /*同步模式为0异步模式*/#define MM 0x02 /*为1时地址位多机协议(异步) 主机模式(同步);为0时线路空闲多机协议(异步) 从机模式(同步)*/#define SWRST 0x01 /*控制位*//* UTCTL 串口发送控制寄存器*/#define CKPH 0x80 /*时钟相位控制位(只同步方式用)为1时时钟UCLK延时半个周期*/#define CKPL 0x40 /*时钟极性控制位为1时异步与UCLK相反;同步下降延有效*/#define SSEL1 0x20 /*时钟源选择位:与SSEL0组合为0,1,2,3四种方式*/#define SSEL0 0x10 /*"0"选择外部时钟,"1"选择辅助时钟,"2","3"选择系统子时钟*/#define URXSE 0x08 /*接收触发延控制位(只在异步方式下用)*/#define TXWAKE 0x04 /*多处理器通信传送控制位(只在异步方式下用)*/#define STC 0x02 /*外部引脚STE选择位为0时为4线模式为1时为3线模式*/#define TXEPT 0x01 /*发送器空标志*//* URCTL 串口接收控制寄存器同步模式下只用两位:FE和OE*/#define FE 0x80 /*帧错标志*/#define PE 0x40 /*校验错标志位*/#define OE 0x20 /*溢出标志位*/#define BRK 0x10 /*打断检测位*/#define URXEIE 0x08 /*接收出错中断允许位*/#define URXWIE 0x04 /*接收唤醒中断允许位*/#define RXWAKE 0x02 /*接收唤醒检测位*/#define RXERR 0x01 /*接收错误标志位*//************************************************************* USART 0 串口0寄存器定义************************************************************/#define U0CTL_ 0x0070 /* 串口0基本控制寄存器*/sfrb U0CTL = U0CTL_;#define U0TCTL_ 0x0071 /* 串口0发送控制寄存器*/ sfrb U0TCTL = U0TCTL_;#define U0RCTL_ 0x0072 /* 串口0接收控制寄存器*/ sfrb U0RCTL = U0RCTL_;#define U0MCTL_ 0x0073 /* 波特率调整寄存器*/sfrb U0MCTL = U0MCTL_;#define U0BR0_ 0x0074 /* 波特率选择寄存器0 */sfrb U0BR0 = U0BR0_;#define U0BR1_ 0x0075 /* 波特率选择寄存器1 */sfrb U0BR1 = U0BR1_;#define U0RXBUF_ 0x0076 /* 接收缓存寄存器*/const sfrb U0RXBUF = U0RXBUF_;#define U0TXBUF_ 0x0077 /* 发送缓存寄存器*/sfrb U0TXBUF = U0TXBUF_;/* 改变的寄存器名定义*/#define UCTL0_ 0x0070 /* UART 0 Control */sfrb UCTL0 = UCTL0_;#define UTCTL0_ 0x0071 /* UART 0 Transmit Control */ sfrb UTCTL0 = UTCTL0_;#define URCTL0_ 0x0072 /* UART 0 Receive Control */sfrb URCTL0 = URCTL0_;#define UMCTL0_ 0x0073 /* UART 0 Modulation Control */ sfrb UMCTL0 = UMCTL0_;#define UBR00_ 0x0074 /* UART 0 Baud Rate 0 */sfrb UBR00 = UBR00_;#define UBR10_ 0x0075 /* UART 0 Baud Rate 1 */sfrb UBR10 = UBR10_;#define RXBUF0_ 0x0076 /* UART 0 Receive Buffer */ const sfrb RXBUF0 = RXBUF0_;#define TXBUF0_ 0x0077 /* UART 0 Transmit Buffer */sfrb TXBUF0 = TXBUF0_;#define UCTL_0_ 0x0070 /* UART 0 Control */sfrb UCTL_0 = UCTL_0_;#define UTCTL_0_ 0x0071 /* UART 0 Transmit Control */ sfrb UTCTL_0 = UTCTL_0_;#define URCTL_0_ 0x0072 /* UART 0 Receive Control */ sfrb URCTL_0 = URCTL_0_;#define UMCTL_0_ 0x0073 /* UART 0 Modulation Control */ sfrb UMCTL_0 = UMCTL_0_;#define UBR0_0_ 0x0074 /* UART 0 Baud Rate 0 */sfrb UBR0_0 = UBR0_0_;sfrb UBR1_0 = UBR1_0_;#define RXBUF_0_ 0x0076 /* UART 0 Receive Buffer */const sfrb RXBUF_0 = RXBUF_0_;#define TXBUF_0_ 0x0077 /* UART 0 Transmit Buffer */sfrb TXBUF_0 = TXBUF_0_;/************************************************************ * USART 1 串口1寄存器定义************************************************************/#define U1CTL_ 0x0078 /* 串口1基本控制寄存器*/sfrb U1CTL = U1CTL_;#define U1TCTL_ 0x0079 /* 串口1发送控制寄存器*/sfrb U1TCTL = U1TCTL_;#define U1RCTL_ 0x007A /* 串口1接收控制寄存器*/sfrb U1RCTL = U1RCTL_;#define U1MCTL_ 0x007B /* 波特率调整控制寄存器*/sfrb U1MCTL = U1MCTL_;#define U1BR0_ 0x007C /* 波特率选择寄存器0 */sfrb U1BR0 = U1BR0_;#define U1BR1_ 0x007D /* 波特率选择寄存器1 */sfrb U1BR1 = U1BR1_;#define U1RXBUF_ 0x007E /* 接收缓存*/const sfrb U1RXBUF = U1RXBUF_;#define U1TXBUF_ 0x007F /* 发送缓存*/sfrb U1TXBUF = U1TXBUF_;/* 改变的寄存器名定义*/#define UCTL1_ 0x0078 /* UART 1 Control */sfrb UCTL1 = UCTL1_;#define UTCTL1_ 0x0079 /* UART 1 Transmit Control */sfrb UTCTL1 = UTCTL1_;#define URCTL1_ 0x007A /* UART 1 Receive Control */sfrb URCTL1 = URCTL1_;#define UMCTL1_ 0x007B /* UART 1 Modulation Control */sfrb UMCTL1 = UMCTL1_;#define UBR01_ 0x007C /* UART 1 Baud Rate 0 */sfrb UBR01 = UBR01_;#define UBR11_ 0x007D /* UART 1 Baud Rate 1 */sfrb UBR11 = UBR11_;#define RXBUF1_ 0x007E /* UART 1 Receive Buffer */const sfrb RXBUF1 = RXBUF1_;sfrb TXBUF1 = TXBUF1_;#define UCTL_1_ 0x0078 /* UART 1 Control */sfrb UCTL_1 = UCTL_1_;#define UTCTL_1_ 0x0079 /* UART 1 Transmit Control */sfrb UTCTL_1 = UTCTL_1_;#define URCTL_1_ 0x007A /* UART 1 Receive Control */sfrb URCTL_1 = URCTL_1_;#define UMCTL_1_ 0x007B /* UART 1 Modulation Control */sfrb UMCTL_1 = UMCTL_1_;#define UBR0_1_ 0x007C /* UART 1 Baud Rate 0 */sfrb UBR0_1 = UBR0_1_;#define UBR1_1_ 0x007D /* UART 1 Baud Rate 1 */sfrb UBR1_1 = UBR1_1_;#define RXBUF_1_ 0x007E /* UART 1 Receive Buffer */const sfrb RXBUF_1 = RXBUF_1_;#define TXBUF_1_ 0x007F /* UART 1 Transmit Buffer */sfrb TXBUF_1 = TXBUF_1_;/************************************************************ * Timer A 定时器A寄存器定义************************************************************/#define TAIV_ 0x012E /* Timer A 中断向量寄存器*/sfrw TAIV = TAIV_;#define TACTL_ 0x0160 /* Timer A 控制寄存器*/sfrw TACTL = TACTL_;#define TACCTL0_ 0x0162 /* Timer A 捕获/比较控制寄存器0 */sfrw TACCTL0 = TACCTL0_;#define TACCTL1_ 0x0164 /* Timer A 捕获/比较控制寄存器1 */sfrw TACCTL1 = TACCTL1_;#define TACCTL2_ 0x0166 /* Timer A 捕获/比较控制寄存器2 */sfrw TACCTL2 = TACCTL2_;#define TAR_ 0x0170 /* Timer A 16位计数器内容*/sfrw TAR = TAR_;#define TACCR0_ 0x0172 /* Timer A 捕获/比较寄存器0 */sfrw TACCR0 = TACCR0_;#define TACCR1_ 0x0174 /* Timer A 捕获/比较寄存器1 */sfrw TACCR1 = TACCR1_;#define TACCR2_ 0x0176 /* Timer A 捕获/比较寄存器2 */sfrw TACCR2 = TACCR2_;/* 改变的寄存器名定义*/#define CCTL0_ 0x0162 /* Timer A Capture/Compare Control 0 */ sfrw CCTL0 = CCTL0_;#define CCTL1_ 0x0164 /* Timer A Capture/Compare Control 1 */ sfrw CCTL1 = CCTL1_;#define CCTL2_ 0x0166 /* Timer A Capture/Compare Control 2 */ sfrw CCTL2 = CCTL2_;#define CCR0_ 0x0172 /* Timer A Capture/Compare 0 */sfrw CCR0 = CCR0_;#define CCR1_ 0x0174 /* Timer A Capture/Compare 1 */sfrw CCR1 = CCR1_;#define CCR2_ 0x0176 /* Timer A Capture/Compare 2 */sfrw CCR2 = CCR2_;/*TACTL 控制寄存器16个位寄存器定义*/#define TASSEL2 0x0400 /* 未用*/#define TASSEL1 0x0200 /* 时钟输入源控制位1 */#define TASSEL0 0x0100 /* 时钟输入源控制位0 */#define ID1 0x0080 /* 分频系数选择位1 */#define ID0 0x0040 /* 分频系数选择位0 */#define MC1 0x0020 /* 计数模式控制位1 */#define MC0 0x0010 /* 计数模式控制位0 */#define TACLR 0x0004 /* 置1位清除定时器*/#define TAIE 0x0002 /* 定时器中断允许*/#define TAIFG 0x0001 /* 定时器中断标志*/#define MC_0 00*0x10 /* 停止模式*/#define MC_1 01*0x10 /* 增计数模式*/#define MC_2 02*0x10 /* 连续计数模式*/#define MC_3 03*0x10 /* 增/减计数模式*/#define ID_0 00*0x40 /* 直通*/#define ID_1 01*0x40 /* 2分频*/#define ID_2 02*0x40 /* 4分频*/#define ID_3 03*0x40 /* 8分频*/#define TASSEL_0 00*0x100 /* 时钟源为TACLK */#define TASSEL_1 01*0x100 /* 时钟源为ACLK */#define TASSEL_2 02*0x100 /* 时钟源为SMCLK */#define TASSEL_3 03*0x100 /* 时钟源为INCLK *//* Timer A ,Timer B 可公用捕获/比较控制寄存器X */#define CM1 0x8000 /* 捕获模式选择位1 */#define CM0 0x4000 /* 捕获模式选择位0 */#define CCIS1 0x2000 /* 捕获输入信号源选择位1 */#define CCIS0 0x1000 /* 捕获输入信号源选择位0 */#define SCS 0x0800 /* 信号同步位0:异步捕获;1:同步捕获*/#define SCCI 0x0400 /* 锁存输入信号*/#define CAP 0x0100 /* 模式选择: 0:比较模式;1:捕获模式*/#define OUTMOD2 0x0080 /* 输出模式选择位2 */#define OUTMOD1 0x0040 /* 输出模式选择位1 */#define OUTMOD0 0x0020 /* 输出模式选择位0 */#define CCIE 0x0010 /* 中断允许位*/#define CCI 0x0008 /* 读出输入信号源位ccis0\1 */#define OUT 0x0004 /* 输出信号(选择输出模式0) */#define COV 0x0002 /* 捕获溢出标志*/#define CCIFG 0x0001 /* 中断标志*/#define OUTMOD_0 0*0x20 /* 输出模式*/#define OUTMOD_1 1*0x20 /* 置位模式*/#define OUTMOD_2 2*0x20 /* 翻转/复位模式*/#define OUTMOD_3 3*0x20 /* 置位/复位模式*/#define OUTMOD_4 4*0x20 /* 翻转模式*/#define OUTMOD_5 5*0x20 /* 复位模式*/#define OUTMOD_6 6*0x20 /* 翻转/置位模式*/#define OUTMOD_7 7*0x20 /* 复位/置位模式*/#define CCIS_0 0*0x1000 /* 选择CCIXA为捕获事件的输入信号源*/#define CCIS_1 1*0x1000 /* 选择CCIXB为捕获事件的输入信号源*/#define CCIS_2 2*0x1000 /* 选择GND为捕获事件的输入信号源*/#define CCIS_3 3*0x1000 /* 选择VCC为捕获事件的输入信号源*/#define CM_0 0*0x4000 /* 禁止捕获模式*/#define CM_1 1*0x4000 /* 上升延捕获模式*/#define CM_2 2*0x4000 /* 下降沿捕获模式*/#define CM_3 3*0x4000 /* 上升沿和下降沿都捕获模式*//************************************************************ * Timer B 定时器B寄存器定义************************************************************/#define TBIV_ 0x011E /* 中断向量寄存器:BIT1-BIT3有效*/sfrw TBIV = TBIV_;#define TBCTL_ 0x0180 /* 定时器B控制寄存器:全部控制都集中在这*/ sfrw TBCTL = TBCTL_;#define TBCCTL0_ 0x0182 /* 定时器B捕获/比较控制寄存器0*/sfrw TBCCTL0 = TBCCTL0_;#define TBCCTL1_ 0x0184 /* 定时器B捕获/比较控制寄存器1 */sfrw TBCCTL1 = TBCCTL1_;#define TBCCTL2_ 0x0186 /* 定时器B捕获/比较控制寄存器2 */sfrw TBCCTL2 = TBCCTL2_;#define TBCCTL3_ 0x0188 /* 定时器B捕获/比较控制寄存器3 */sfrw TBCCTL3 = TBCCTL3_;#define TBCCTL4_ 0x018A /* 定时器B捕获/比较控制寄存器4 */sfrw TBCCTL4 = TBCCTL4_;#define TBCCTL5_ 0x018C /* 定时器B捕获/比较控制寄存器5 */sfrw TBCCTL5 = TBCCTL5_;#define TBCCTL6_ 0x018E /* 定时器B捕获/比较控制寄存器6 */sfrw TBCCTL6 = TBCCTL6_;#define TBR_ 0x0190 /* 计数器*/sfrw TBR = TBR_;#define TBCCR0_ 0x0192 /* 定时器B捕获/比较寄存器0 */sfrw TBCCR0 = TBCCR0_;#define TBCCR1_ 0x0194 /* 定时器B捕获/比较寄存器1 */sfrw TBCCR1 = TBCCR1_;#define TBCCR2_ 0x0196 /* 定时器B捕获/比较寄存器2 */sfrw TBCCR2 = TBCCR2_;#define TBCCR3_ 0x0198 /* 定时器B捕获/比较寄存器3 */sfrw TBCCR3 = TBCCR3_;#define TBCCR4_ 0x019A /* 定时器B捕获/比较寄存器4 */sfrw TBCCR4 = TBCCR4_;#define TBCCR5_ 0x019C /* 定时器B捕获/比较寄存器5 */sfrw TBCCR5 = TBCCR5_;#define TBCCR6_ 0x019E /* 定时器B捕获/比较寄存器6 */sfrw TBCCR6 = TBCCR6_;/* 定时器B控制寄存器:全部控制都集中在这*/#define SHR1 0x4000 /* 装载比较锁存器控制位1 :受TBCCTLx中的CCLDx位控制*/#define SHR0 0x2000 /* 装载比较锁存器控制位0 :受TBCCTLx中的CCLDx位控制*/#define TBCLGRP1 0x4000 /* 装载比较锁存器控制位1 :受TBCCTLx中的CCLDx位控制*/ #define TBCLGRP0 0x2000 /* 装载比较锁存器控制位0 :受TBCCTLx中的CCLDx位控制*/ #define CNTL1 0x1000 /* 定时器位数长度控制位1 */#define CNTL0 0x0800 /* 定时器位数长度控制位0 */#define TBSSEL2 0x0400 /* 未用*/#define TBSSEL1 0x0200 /* 时钟输入源控制位1 */#define TBSSEL0 0x0100 /* 时钟输入源控制位0 */#define TBCLR 0x0004 /* 置1清除定时器*/#define TBIE 0x0002 /* 中断允许*/#define TBIFG 0x0001 /* 中断标志*/#define TBSSEL_0 0*0x0100 /* 时钟源为:TBCLK */#define TBSSEL_1 1*0x0100 /* 时钟源为: ACLK */#define TBSSEL_2 2*0x0100 /* 时钟源为:SMCLK */#define TBSSEL_3 3*0x0100 /* 时钟源为:INCLK */#define CNTL_0 0*0x0800 /* 16 位计数模式*/#define CNTL_1 1*0x0800 /* 12 位计数模式*/#define CNTL_2 2*0x0800 /* 10 位计数模式*/#define CNTL_3 3*0x0800 /* 8 位计数模式*/#define SHR_0 0*0x2000 /* 单独装载(初始值) */#define SHR_1 1*0x2000 /* 分三组装载: 1 - 3 groups (1-2, 3-4, 5-6) */#define SHR_2 2*0x2000 /* 分二组装载: 2 - 2 groups (1-3, 4-6)*/#define SHR_3 3*0x2000 /* 不分组装载: 3 - 1 group (all) */#define TBCLGRP_0 0*0x2000 /* 单独装载(初始值) */#define TBCLGRP_1 1*0x2000 /* 分三组装载: 1 - 3 groups (1-2, 3-4, 5-6) */#define TBCLGRP_2 2*0x2000 /* 分二组装载: 2 - 2 groups (1-3, 4-6)*/#define TBCLGRP_3 3*0x2000 /* 不分组装载: 3 - 1 group (all) *//* Additional Timer B Control Register bits are defined in Timer A */#define SLSHR1 0x0400 /* Compare latch load source 1 */#define SLSHR0 0x0200 /* Compare latch load source 0 */#define CLLD1 0x0400 /* 定义比较锁存器TBCLx的装载方式控制位1 */#define CLLD0 0x0200 /* 定义比较锁存器TBCLx的装载方式控制位0 */#define SLSHR_0 0*0x0200 /* 立即装载*/#define SLSHR_1 1*0x0200 /* TBR 计数到0时装载*/#define SLSHR_2 2*0x0200 /* 在增减模式下,计数到TBCLx或0时装载; 在连续计数模式下,计数到0时装载*/#define SLSHR_3 3*0x0200 /* 当计数到TBCL0时装载*/#define CLLD_0 0*0x0200 /* 立即装载*/#define CLLD_1 1*0x0200 /* TBR 计数到0时装载*/#define CLLD_2 2*0x0200 /* 在增减模式下,计数到TBCLx或0时装载; 在连续计数模式下,计数到0时装载*/#define CLLD_3 3*0x0200 /* 当计数到TBCL0时装载*//************************************************************* Basic Clock Module************************************************************/#define DCOCTL_ 0x0056 /* DCO 时钟频率控制寄存器:复位后的值位060h*/sfrb DCOCTL = DCOCTL_;#define BCSCTL1_ 0x0057 /* 系统时钟控制寄存器1 :复位后的值位084h*/sfrb BCSCTL1 = BCSCTL1_;#define BCSCTL2_ 0x0058 /* 系统时钟控制寄存器2 :复位后的值位000h*/sfrb BCSCTL2 = BCSCTL2_;/* DCO 时钟频率控制寄存器*/#define MOD0 0x01 /* DCO插入周期控制位0 */#define MOD1 0x02 /* DCO插入周期控制位1 */#define MOD2 0x04 /* DCO插入周期控制位2 */#define MOD3 0x08 /* DCO插入周期控制位3 */#define MOD4 0x10 /* DCO插入周期控制位4 */#define DCO0 0x20 /* 8种频率控制位0 */#define DCO1 0x40 /* 8种频率控制位1 */#define DCO2 0x80 /* 8种频率控制位2 *//* 系统时钟控制寄存器1 :复位后的值位084h*/#define RSEL0 0x01 /* 选择内部电阻控制位0 */#define RSEL1 0x02 /* 选择内部电阻控制位1 */#define RSEL2 0x04 /* 选择内部电阻控制位2 */#define XT5V 0x08 /* 必须为0*/#define DIVA0 0x10 /* ACLK分频系数控制位0*/#define DIVA1 0x20 /* ACLK分频系数控制位1 */#define XTS 0x40 /* LFXT1工作模式控制位0:低频模式. / 1: 高频模式. */ #define XT2OFF 0x80 /* XT2CLK 使能控制位0:开启; 1:关闭*/#define DIVA_0 0x00 /* ACLK分频系数为: 1 */#define DIVA_1 0x10 /* ACLK分频系数为: 2 */#define DIVA_2 0x20 /* ACLK分频系数为: 4 */#define DIVA_3 0x30 /* ACLK分频系数为: 8 *//* 系统时钟控制寄存器2 :复位后的值位000h*/#define DCOR 0x01 /* 内外电阻选择控制位*/#define DIVS0 0x02 /* SMCLK分频控制位0*/#define DIVS1 0x04 /* SMCLK分频控制位1 */#define SELS 0x08 /* SMCLK 时钟源选择位t 0COCLK / 1:XT2CLK/LFXTCLK */ #define DIVM0 0x10 /* MCLK分频控制位0 */#define DIVM1 0x20 /* MCLK分频控制位1 */#define SELM0 0x40 /* MCLK 时钟输入源选择位0 */#define SELM1 0x80 /* MCLK 时钟输入源选择位1 */#define DIVS_0 0x00 /* SMCLK 分频系数为: 1 */#define DIVS_1 0x02 /* SMCLK 分频系数为: 2 */#define DIVS_2 0x04 /* SMCLK 分频系数为: 4 */#define DIVS_3 0x06 /* SMCLK 分频系数为: 8 */#define DIVM_0 0x00 /* MCLK 分频系数为: 1 */#define DIVM_1 0x10 /* MCLK 分频系数为: 2 */#define DIVM_2 0x20 /* MCLK 分频系数为: 4 */#define DIVM_3 0x30 /* MCLK 分频系数为: 8 */#define SELM_0 0x00 /* MCLK 时钟输入源: DCOCLK */#define SELM_1 0x40 /* MCLK 时钟输入源: DCOCLK */#define SELM_2 0x80 /* MCLK 时钟输入源: XT2CLK/LFXTCLK */#define SELM_3 0xC0 /* MCLK 时钟输入源: LFXTCLK *//************************************************************* * Flash Memory FLASH操作寄存器定义*************************************************************/#define FCTL1_ 0x0128 /* FLASH控制寄存器1:控制编程、擦除*/sfrw FCTL1 = FCTL1_;#define FCTL2_ 0x012A /* FLASH 控制寄存器2 :控制时钟分频*/sfrw FCTL2 = FCTL2_;#define FCTL3_ 0x012C /* FLASH 控制寄存器3:状态标志*/sfrw FCTL3 = FCTL3_;#define FRKEY 0x9600 /* 读FLASH 密码*/#define FWKEY 0xA500 /* 写FLASH 密码*/#define FXKEY 0x3300 /* for use with XOR instruction *//* FLASH控制寄存器1:控制编程、擦除*/#define ERASE 0x0002 /* 擦除段使能*/#define MERAS 0x0004 /* 主存擦除使能*/#define WRT 0x0040 /* 编程使能*/#define BLKWRT 0x0080 /* 段编程使能*//* FLASH 控制寄存器2 :控制时钟分频*/#define FN_0 0x0000 /*直通*/#define FN_1 0x0001 /*2分频*/#define FN_2 0x0002 /*3分频*/#define FN_3 0x0003 /*4分频*/#define FN_4 0x0004 /*5分频*/#define FN_5 0x0005 /*6分频*/#define FN_6 0x0006 /*7分频*/#define FN_7 0x0007 /*8分频*/#define FN_8 0x0008 /*9分频*/#define FN_9 0x0009 /*10分频*/#define FN_10 0x000A /*11分频*/#define FN_11 0x000B /*12分频*/#define FN_12 0x000C /*13分频*/#define FN_13 0x000D /*14分频*/#define FN_14 0x000E /*15分频*/#define FN_15 0x000F /*16分频*/#define FN_16 0x0010 /*17分频*/#define FN_17 0x0011 /*18分频*/#define FN_18 0x0012 /*19分频*/#define FN_19 0x0013 /*20分频*/#define FN_20 0x0014 /*21分频*/#define FN_21 0x0015 /*22分频*/#define FN_22 0x0016 /*23分频*/#define FN_23 0x0017 /*24分频*/#define FN_24 0x0018 /*25分频*/#define FN_25 0x0019 /*26分频*/#define FN_26 0x001A /*27分频*/#define FN_27 0x001B /*28分频*/#define FN_28 0x001C /*29分频*/#define FN_29 0x001D /*30分频*/#define FN_30 0x001E /*31分频*/#define FN_31 0x001F /*32分频*/#define FN_32 0x0020 /*33分频*/#define FN_33 0x0021 /*34分频*/#define FN_34 0x0022 /*35分频*/#define FN_35 0x0023 /*36分频*/#define FN_36 0x0024 /*37分频*/#define FN_37 0x0025 /*38分频*/#define FN_38 0x0026 /*39分频*/#define FN_39 0x0027 /*40分频*/#define FN_40 0x0028 /*41分频*/#define FN_41 0x0029 /*42分频*/#define FN_42 0x002A /*43分频*/#define FN_43 0x002B /*44分频*/#define FN_44 0x002C /*45分频*/#define FN_45 0x002D /*46分频*/#define FN_46 0x002E /*47分频*/#define FN_47 0x002F /*48分频*/#define FN_48 0x0030 /*49分频*/#define FN_49 0x0031 /*50分频*/#define FN_50 0x0032 /*51分频*/#define FN_51 0x0033 /*52分频*/#define FN_52 0x0034 /*53分频*/#define FN_53 0x0035 /*54分频*/#define FN_54 0x0036 /*55分频*/#define FN_55 0x0037 /*56分频*/#define FN_56 0x0038 /*57分频*/#define FN_57 0x0039 /*58分频*/#define FN_58 0x003A /*59分频*/#define FN_59 0x003B /*60分频*/#define FN_60 0x003C /*61分频*/#define FN_61 0x003D /*62分频*/#define FN_62 0x003E /*63分频*/#define FN_63 0x003F /*64分频*/#define FSSEL_0 0x0000 /* Flash时钟选择: ACLK */ #define FSSEL_1 0x0040 /* Flash时钟选择: MCLK */ #define FSSEL_2 0x0080 /* Flash时钟选择: SMCLK */ #define FSSEL_3 0x00C0 /* Flash时钟选择: SMCLK */ /* FLASH 控制寄存器3:状态标志*/#define BUSY 0x0001 /* Flash忙标志*/#define KEYV 0x0002 /* Flash安全键值出错标志*/#define ACCVIFG 0x0004 /* Flash非法访问中断标志*/#define WAIT 0x0008 /* 等待指示信号位*/#define LOCK 0x0010 /* 锁定位*/#define EMEX 0x0020 /* 紧急退出位*//************************************************************ * Comparator A 比较器A寄存器定义************************************************************/#define CACTL1_ 0x0059 /* 比较器A控制寄存器1 */sfrb CACTL1 = CACTL1_;#define CACTL2_ 0x005A /* 比较器A控制寄存器2 */sfrb CACTL2 = CACTL2_;#define CAPD_ 0x005B /*比较器A端口禁止寄存器*/sfrb CAPD = CAPD_;/* 比较器A控制寄存器1 */#define CAIFG 0x01 /*比较器A中断标志*/#define CAIE 0x02 /* 比较器A中断使能*/#define CAIES 0x04 /* 比较器A中断边沿触发选择0:上升延1:下降延*/ #define CAON 0x08 /* 比较器电源开关*/#define CAREF0 0x10 /* 选择参考源位0 */#define CAREF1 0x20 /* 选择参考源位1 */#define CARSEL 0x40 /* 选择内部参考源加到比较器的正端或负端*/#define CAEX 0x80 /* 交换比较器的输入端*/#define CAREF_0 0x00 /* 选择参考源0 : Off 使用外部参考源*/#define CAREF_1 0x10 /* 选择参考源1 : 0.25*Vcc为参考源*/#define CAREF_2 0x20 /* 选择参考源2 : 0.5*Vcc为参考源*/#define CAREF_3 0x30 /* 选择参考源3 : Vt*//* 比较器A控制寄存器2 */#define CAOUT 0x01 /* 比较器输出*/#define CAF 0x02 /* 选择比较器是否经过RC低通滤波器*/#define P2CA0 0x04 /* 外部引脚信号连接到比较器A的CA0 */#define P2CA1 0x08 /* 外部引脚信号连接到比较器A的CA1 */#define CACTL24 0x10#define CACTL25 0x20#define CACTL26 0x40#define CACTL27 0x80#define CAPD0 0x01 /* Comp. A Disable Input Buffer of Port Register .0 */#define CAPD1 0x02 /* Comp. A Disable Input Buffer of Port Register .1 */#define CAPD2 0x04 /* Comp. A Disable Input Buffer of Port Register .2 */#define CAPD3 0x08 /* Comp. A Disable Input Buffer of Port Register .3 */#define CAPD4 0x10 /* Comp. A Disable Input Buffer of Port Register .4 */#define CAPD5 0x20 /* Comp. A Disable Input Buffer of Port Register .5 */#define CAPD6 0x40 /* Comp. A Disable Input Buffer of Port Register .6 */#define CAPD7 0x80 /* Comp. A Disable Input Buffer of Port Register .7 *//************************************************************* ADC12 A/D采样寄存器定义************************************************************//*ADC12转换控制类寄存器*/#define ADC12CTL0_ 0x0;' /* ADC12 Control 0 */sfrw ADC12CTL0 = ADC12CTL0_;#define ADC12CTL1_ 0x01A2 /* ADC12 Control 1 */sfrw ADC12CTL1 = ADC12CTL1_;/*ADC12中断控制类寄存器*/#define ADC12IFG_ 0x01A4 /* ADC12 Interrupt Flag */sfrw ADC12IFG = ADC12IFG_;#define ADC12IE_ 0x01A6 /* ADC12 Interrupt Enable */sfrw ADC12IE = ADC12IE_;#define ADC12IV_ 0x01A8 /* ADC12 Interrupt Vector Word */sfrw ADC12IV = ADC12IV_;/*ADC12存贮器类寄存器*/#define ADC12MEM_ 0x0140 /* ADC12 Conversion Memory */#ifndef __IAR_SYSTEMS_ICC#define ADC12MEM ADC12MEM_ /* ADC12 Conversion Memory (for assembler) */ #else#define ADC12MEM ((int*) ADC12MEM_) /* ADC12 Conversion Memory (for C) */ #endif#define ADC12MEM0_ ADC12MEM_ /* ADC12 Conversion Memory 0 */sfrw ADC12MEM0 = ADC12MEM0_;#define ADC12MEM1_ 0x0142 /* ADC12 Conversion Memory 1 */sfrw ADC12MEM1 = ADC12MEM1_;#define ADC12MEM2_ 0x0144 /* ADC12 Conversion Memory 2 */sfrw ADC12MEM2 = ADC12MEM2_;#define ADC12MEM3_ 0x0146 /* ADC12 Conversion Memory 3 */sfrw ADC12MEM3 = ADC12MEM3_;#define ADC12MEM4_ 0x0148 /* ADC12 Conversion Memory 4 */sfrw ADC12MEM4 = ADC12MEM4_;#define ADC12MEM5_ 0x014A /* ADC12 Conversion Memory 5 */sfrw ADC12MEM5 = ADC12MEM5_;#define ADC12MEM6_ 0x014C /* ADC12 Conversion Memory 6 */sfrw ADC12MEM6 = ADC12MEM6_;#define ADC12MEM7_ 0x014E /* ADC12 Conversion Memory 7 */。
MSP430单片机新手上路-资料篇
MSP430单片机新手上路-资料篇(转)MSP430基础介绍Q1. MSP430使用8M的时钟刷新320 * 240的LCD点阵,不能及时刷新,而改用ARM后可以?A1:以前的MSP430为8MIPS的速度,但是并非MSP430的指令都是一个CYC的,MSP430指令的执行时间依赖于指令形式,寻址方式。
对于I/O操作的指令来说,消耗的指令周期为3个CYC,所以相对于I/O操作的效率并没有达到8MIPS。
要解决这个问题,可以使用今后已经推出的2XX系列或即将推出的5XX系列,她们的频率最高分别可达到16M和25M。
Q2.MSP430直接操作FLASH,RAM,是否需要累加器作Buff?A2:不需要,MSP430的寻址采用的Atomic的形式,任何地址的访问都可以做到直接访问,有效地解决了累加器的瓶颈。
Q3. MSP430单片机中乘法器是如何使用的?A3:MSP430单片机中有很多带有硬件乘法器。
如MSP430F149 在汇编中使用硬件乘法器只需要将乘数与被乘数放入相应得寄存器,经过一个CPU时钟后在将结果从寄存器中取出即可。
可参考《MSP430X4XX Family User’s Guide》中的第七章。
在C语言中,乘法的运算会由编译器自动的放入乘法器完成,用户不用直接的去操作乘法器。
Q4. FW和FE的特点?A4:MSP430FW42X是在MSP430F415的基础上集成了一个Scan IF 模块。
Scan IF模块通过对LC传感器震荡幅值的检测来确定L所处的位置,经状态处理机和时间处理机得到物体运动的变化。
目前被广泛用于Giant magneto-resistive、Hall-effect等领域。
MSP430FE42X是在MSP430F42X的基础上集成了一个电能计量模块(ESP430CE1),利用这个模块,可以自动的算出电能表的常用参数如有功功率,无功功率,相位,频率,电压,电流等。
用户只需要直接的去相应得寄存器读取就可以了。
MSP430F2XX中文手册(加了标签) 1..MSP430体系结构
MSP430F2系列16位超低功耗单片机模块原理第1章MSP430体系结构版本: 1.3日期: 2007.4.原文: TI MSP430x2xxfamily.pdf翻译: 袁德纯编辑: DC 微控论坛版主注:以下文章是翻译TI MSP430x2xxfamily.pdf 文件中的部分内容。
由于我们翻译水平有限,有整理过程中难免有所不足或错误;所以以下内容只供参考.一切以原文为准。
详情请密切留意微控技术论坛。
Page 1 of 7第一章 MSP430的体系结构本章主要描述了MSP430的体系结构本章内容目录1.1MSP430的体系结构1.2可编程时钟系统1.3嵌入式仿真环境1.4地址空间1.5MSP430X2XX系列的提高1.1MSP430的体系结构将MSP430内部的16位精简指令集的CPU通过冯.诺依曼结构的地址总线和数据总线连接到外围设备和可编程时钟系统。
由于有一个先进的CPU配合具有标准组件存储印象的模拟和数字的外围设备,使得MSP430可用于处理混合信号。
MSP430x2xx系列的主要特性如下:◆超低功耗延长了电池的使用寿命●保持RAM 0.1uA●实时时钟模式 0.8uA●MIPS运行 250uA◆理想精确的模拟信号测量●门控比较定时器测量电阻类元件◆16位的精简指令集的CPU全新应用●更大的寄存器空间消除了运行空间的瓶颈●紧凑的核结构设计减少了功耗、降低了成本●使得高水平的编程更优化●27条核心指令和7种寻址方式●强大的矢量中断能力◆系统内的可编程FLASH使改变代码、在线升级和数据载入更灵活1.2 可编程时钟系统时钟系统是为电池供电系统而特别设计的。
只需要一个32KHZ的晶振就可以直接驱动一个低频的辅助时钟(ACLK)。
ACLK可工作于实时时钟模式,并具能够自我唤醒。
内部集成了一个DCO使主时钟(MCLK)可以被CPU和其他的高速外围设备所使用。
由于有了DCO,使得一个窄脉冲在少于2US 的时间内就可以将MSP430唤醒CPU工作。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
虽然 MSP430 系列单片机推出时间不是很长,但由于其卓越的性能,在短短几年时间里发展极为迅速, 应用也日趋广包括一系列不同型号的器件。主要特点有:
1.超低功耗
MSP430 系列单片机的电源电压采用 1.8~3.6V 低电压,RAM 数据保持方式下耗电仅 0.1uA,活动模 式耗电 250pA/MIPS(MIPS:每秒百万条指令数),IO 输入端口的漏电流最大仅 50nA。
另外,MSP430 系列单片机采用矢量中断,支持十多个中断源,并可以任意嵌套。用中断请求将 CPU 唤醒只要 6us,通过合理编程,既以降低系统功耗,又可以对外部事件请求作出快速响应。
在这里.需要对低功耗问题作一些说明。 首先,对一个处理器而言,活动模式时的功耗必须与其性能一起来考察、衡量,忽略性能来看功耗是 片面的。在计算机体系结构中,是用 W/MIPS(瓦特/百万指令每秒)来衡量处理器的功耗与性能关系的, 这种标称方法是合理的。MSP430 系列单片机在活动模式时耗电 250uA/MIPS,这个指标是很高的(传统 的 Mcs51 单片机约为 10~20mA/MIPS)。 其次,作为一个应用系统,功耗是整个系统的功耗,而不 仅仅是处理器的功耗。比如,在一个有多个输入信号的应用系统中,处理器输入端口的漏电流对系统的耗 电影响就较大了。MSP430 单片机输入端口的漏电流最大为 50nA,远低于其他系列单片机(一般为 l~10uA)。 另外,处理器的功耗还要看它内部功能模块是否可以关闭.以及模块活动情况下的耗电.比如低电压 监测电路的耗电等。还要注意,有些单片机的某些参数指标中.虽然典型值可能很小,但最大值和典型值 相差数十倍,而设计时要考虑到最坏情况,就应该关心参数标称的最大值,而不是典型值。总体而言, MSP430 系列单片机堪称目前世界上功耗最低的单片机,其应用系统可以做到用一枚电池使用 10 年。
其中,看门狗可以在程序失控时迅速复位:模拟比较器进行模拟电压的比较,配合定时器,可设计出 高精度(10~11 位)的 A/D 转换器:16 位定时器(Timer A 和 TimerB)具有捕获,比较功能;大量的捕获,比 较寄存器,可用于事件计数、时序发生、PWM 等;多功能串口(USART)可实现异步、同步和 12C 串行通 信,可方便地实现多机通信等应用;具有较多的 I/O 端口,最多达 6*8 条 I/O 口线,IO 输出时,不管是灌 电流还是拉电流,每个端口的输出晶体管都能够限制输出电流(最大约 25mA),保证系统安全:PI、P2 端 口能够接收外部上升沿或下降沿的中断输入;12 位 A/D 转换器有较高的转换速率,最高可达 200Kb/s, 能够满足大多数数据采集应用:LCD 驱动模块能直接驱动液晶多达 160 段;F15x 和 F16x 系列有两路 12 位高速 DAC,可以实现直接数字波形合成等功能:硬件 12C 串行总线接口可以扩展 12C 接口器件:DMA 功能可以提高数据传输速度,减轻 CPU 的负荷。
MSP430 系列单片机有独特的时钟系统设计,包括两个不同的时钟系统:基本时钟系统和锁频环(FLL 和 FLL+)时钟系统或 DCO 数字振荡器时钟系统。由时钟系统产生 CPU 和各功能模块所需的时钟,并且这 些时钟可以在指令的控制下打开或关闭,从而实现对总体功耗的控制。由于系统运行时使用的功能模块不 同,即采用不同的工作模式,芯片的功耗有明显的差异。在系统中共有种活动模式(AM)和 5 种低功耗模式 (LPM0~LPM4)。
MSP430 系列十六位超低功耗单片机 教学实验系统实验教程
赵建 谢楷 沈雪亮 张宝 梁海军 杨乐林 庹明光 徐常志 编写
西安电子科技大学测控工程与仪器系 2006 年 5 月
1
第一部分 MSP430 系列单片机系统原理
2
第一章 MSP430 单片机概述
MSP430 系列单片机是美国德州仪器(TI)1996 年开始推向市场的一种 16 位超低功耗的混合信号处理 器(Mixed Signal Pocessor)。称之为混合信号处理器,主要是由于其针对实际应用需求,把许多模拟电路、 数字电路和微处理器集成在一个芯片上,以提供“单片”解决方案。
2.强大的处理能力
MSP430 系列单片机是 16 位单片机,采用了目前流行的、颇受学术界好评的精简指令集(RISC)结构, 一个时钟周期可以执行一条指令(传统的 MCS51 单片机要 12 个时钟周期才可以执行一条指令),使 MSP430 在 8MHz 晶振工作时,指令速度可达 8MIPS(注意:同样 8MIPS 的指令速度,在运算性能上 16 位处理器比 8 位处理器高远不止两倍)。不久还将推出 25~30MIPS 的产品。
同时,MSP430 系列单片机中的某些型号,采用了一股只有 DSP 中才有的 16 位多功能硬件乘法器、 硬件乘.加(积之和)功能、DMA 等一系列先进的体系结构,大大增强了它的数据处理和运算能力,可以有 效地实现一些数字信号处理的算法(如 FFT、DTMF 等)。这种结构在其他系列单片机中尚未使用。
MSP430 系列单片机的丰富片内外设,在目前所有单片机系列产品中是非常突出的,为系统的单片解 决方案提供了极大的方便。
4.系统工作稳定
上电复位后,首先由 DCO_CLK 启动 CPU,以保证程序从正确的位置开始执行,保证晶体振荡器有 足够的起振及稳定时间。然后软件可设置适当的寄存器的控制位来确定最后的系统时钟频率。如果晶体振 荡器在用做 CPU 时钟 MCLK 时发生故障,DCO 会自动启动,以保证系统正常工作。这种结构和运行机制, 在目前各系列单片机中是绝无仅有的。另外,MSP430 系列单片机均为工业级器件,运行环境温度为 -40~+85"C,运行稳定、可靠性高,所设计的产品适用于各种民用和工业环境。
3
3.高性能模拟技术及丰富的片上外围模块
MSP430 系列单片机结合 TI 的高性能模拟技术,各成员都集成了较丰富的片内外设。视型号不同可 能组合有以下功能模块:看门狗(WDT),模拟比较器 A,定时器 A(Timer_A),定时器 B(Timer_B),串口 0、 1(USART0、I),硬件乘法器,液晶驱动器,10 位,12,14 位 ADC,12 位 DAC,12C 总线,直接数据存 取(DMA),端口 1-6(P1-P6),基本定时器(Basic Timer)等。