MSP430单片机原理解读

MSP430单片机原理解读
MSP430单片机原理解读

第 2 章MSP430 单片机原理与 C 语言基础MSP430系列超低功耗单片机有200多种型号,TI公司用3~ 4位数字表示其型号。其中第一位数字表示大系列,如MSP430F1xx系列、MSP430F2xx系列、MSP430F4xx系列、MSP430F5xx系列等。在每个大系列中,又分若干子系列,单片机型号中的第二位数字表示子系列号,一般子系列越大,所包含的功能模块越多。最后1~2 位数字表示存储容量,数字越大表示RAM 和ROM 容量越大。430 家族中还有针对热门应用而设计的一系列专用单片机。如SP430FW4xx 系列水表专用单片机、MSP430FG4xx 系列医疗仪器专用单片机、MSP430FE4xx 系列电能计量专用单片机等。这些专用单片机都是在同型号的通用单片机上增加专用模块而构成的。最新的MSP430型号列表可以通过TI公司网站下载。

在开发单片机应用系统时,第一步就是单片机的选型,选择合适的单片机型号往往就能事半功倍。单片机选型基本方法是选择功能模块最接近项目需求的系列,然后根据程序复杂程度估算存储器和RAM 空间,并留有适当的余量,最终决定选用的单片机型号。

本章节以MSP430F249单片机为学习目标,介绍单片机的基本结构和工作原理,读者可以举一反三、触类旁通,而不必每种型号都去学习却无法深入掌握。

2.1 MSP430F249单片机基本结构与原理

2.1.1MSP430F249的主要结构特点

供电电压范围1.8V~3.6V 。

超低功耗:活动状态270uA(1MHz,2.2V);待机模式0.3uA;关机模式0.1uA。

16位RISC精简指令集处理器。

时钟系统:多种时钟源,可灵活使用。时钟频率达到16MHz ;具有内部振荡器;可外接32kHz 低频晶振;外接时钟输入。

12位A/D转换器,内部参考电压,采用保持电路。

16位定时器A,3个捕获/比较寄存器。

16 位定时器B,7 个捕获/比较寄存器。

4个通用串口:USCI_A0 和USCI_A1、USCI_B0 和USCI_B1(I2C、SPI)。

60kB+256B的flash程序存储器,2kB的RAM数据存储器。

64引脚QFP封装。

MSP430F249单片机的芯片封装形式如图2.1所示,各引脚的功能描述如表2-1 所列。

2.1.2 MSP430F249单片机的基本结构

MSP430F24x系列单片机功能结构示意图如图2.2所示。

(1)CPU简介

MSP430单片机的CPU为16位RISC精简指令集的处理器,只有27条正交汇编指令和7 种寻址方式。RISC 处理器基本上是为高级语言所设计的,编译程序对正交指令系统很容易做到最优化,利于产生高效紧凑的代码。MSP430CPU 中集成了16个16位通用寄存器

R0~R15,其中R0~R3分别复用为程序指针PC、堆栈指针SP、状态寄存器SR和常数发生器CG1/CG2。这些寄存器之间的操作只需要一个CPU 周期。

1)程序计数器(PC 指针)也就是CPU 专用寄存器R0, PC 指针是一个16 位寄存器,可以寻址64kB 的空间。MSP430单片机的指令长度以字(16位)为 最小单位,而程序存储器单元以字节(8位)为单位,所以PC 的值总是偶数。

OOEJOEJtJQOOEJtJOOOLJO

63 @Q 59 50 57 56 55 54 53 52 &1 50 49

2.1 MSP430F249单片机引脚图

RST'NMI

图2.2 MSP430F24x 系列单片机功能结构示意图

Jmstg.sd H 」

o<./9.9d

InoMA

Hinoe

二匕

sd

-nM x SE

avoa 」

=

W9d s><

廉AG

4B 47 P6.5/A5 (P6.6/A6 P67^A7/SVSIN

Vg XIN XOUT

P1 s OfTACLKCAOUT

P1.1/TA0 P1.2/TA1 P1L3TTA2 P1.4/SMCLK

MSP430F2410. MSP430F24V 11

13

14

46 4S 44

41

40

39 38 3€ 35

P5.4'MCLK

P5.3;UCB1 CLK^UCAISTE P5.2JUCB1 SOM1/UCB1SCL P5.1JUCB1 SIMQ/UCB1SDA P5.0/UCB1 STE/UCAlCLK P4 7/TBCLW : P4.fi.'TB6 P4.5/TBS P4.4.-TB4 P4.3.TB3 P4.2H02 P4.irFBl P4 O/TBO

P3.7^UCA1 RXQAJCA ISOMI P3.6JUCA 1TXD/UCA1SIMO

cm Bx 一

Qw u rw Ed

山?

go

)M .£d

JumoH urmasoHun KIE

d

NDWUhcd

呂0

畀00

盏記

g <更

Fl

立宣

<2 s Q u rxlu??*

UX E

富 5E P3X'P4.x

P5.^P6-.M

4x8

OsciiialorB

Ba&ic Cld^k Sy&temi+

Rash

RAM nj

SMCLK ->

MCL*K

2kB 4k B 4kg- 4KB

ADC12 12-Bit

Ports PUP2 Parts P3/P4 P5.*F6 Emulalion

B

Chennela

l/Q

[ntetfTupt capability

I'Q

JTAG ~

InLe^a 匚 E <

BOR SVS^SVM

MPY. MPYS. MlAC r MACS

Watchdog WDT+

Timer Al 3 CC Registers

7 CC Registers, Shadow

Ftag

Comp_A+

USCI AD

UART.1

UN IfDA. SPI LFSCl Al UART/ LIN IrDA. SPI USCI BO SPh I2C

USC? Bl SPI, ?2C

C / CC AVCC P1.)Ci j

P2.K

XINi 1

XOUT/ XT2IN

XT2OUT

ACLK

MAB

MDB

1 r 1

Timer B7

Hardware Mulglxer

16MHz CPU indL 16

表2-1MSP430F249单片机引脚描述

2)堆栈指针SP为CPU专用寄存器R1, SP指针为16为寄存器,也总是偶数的。堆栈是在片内RAM中实现的,通常将堆栈指针设置为片内RAM的最高地址加一。使用C语言编程时,集成编译软件IAR会自动设置堆栈指针初始值。对程序员来说无需关心细节,编译结束后在信息窗提示的编译结果会给出RAM

使用量的大小,只要不超过RAM区实际容量并稍留余量给堆栈用即可。使用汇编语言编程时必须注意堆栈指针的正确设置,否则堆栈可能会覆盖你的变量区,导致程序出错。

)状态寄存器和常数发生器、(见数据手册)状态寄存器

V 溢出标志,当算术运算结果超出有符号数范围时置位。

SCG1 系统时钟控制位1,该位置位时关闭SMCLK

SCG0 系统时钟控制位0,如果DCO未用作MCLK或SMCLK时,该位置位关闭DCO。

OSCOFF 晶振控制位,如果LFXT1未用作MCLK或SMCLK时,该位置位关闭LFXT1 0

CPUOFF CPU控制位,该位置位时关闭CPU。

GIE 总中断允许位,该位置位时允许可屏蔽中断;复位时禁止所有的

可屏蔽中断。

N 负数标志位,当运算结果为负时置位;否则复位。

Z 零标志位,当运算结果为零时置位;否则复位。

C 进位标志位,当运算结果产生进位时置位;否则复位。

(2)片内存储器

MSP430单片机采用冯?诺依曼结构,程序存储器flash、数据存储器RAM、特殊功能寄存器以及中断向量全部映射到64kB内部地址空间。MSP430不同型号单片机地址空间略有不同,MSP430F249的存储器结构如表2-2所示。

表2-2 MSP430F249存储器结构

1)数据存储区

MSP430F249的数据存储区RAM有2kB大小,地址范围0x0200~0x09FF。RAM为堆栈、全局变量和局部变量提供空间。使用C语言来开发项目,注意观

察编译结束后在信息窗口中提示的RAM使用量的大小,只有不超过RAM区的实际容量并稍留余量即可。

2)引导区

引导区使得用户可以通过UART串口对MSP430单片机的程序存储器flash 或RAM区实现程序代码的写操作。详细内容参见TI公司的相关技术文档

《Features of the MSP430 Bootstrap Loader。

3)信息存储区

MSP430F249单片机有256B的信息存储区,它分为两段,每段128B。信息存储区用来存放那些掉电后需要保存的变量,一般用来保存项目的设定值或量程转换参数。Flash信息存储区只允许块擦除或写入操作,且有擦除次数的限制。需要频繁(几秒钟一次)擦除写入的变量不能存放在信息存储区,这时可以外接铁电存储器EEPROM器件来保存这些变量。

4)程序存储区

MSP430F249单片机的程序存储区位于0x1100~0xFFC0,约60kB,程序存储区用于存放用户程序、常数以及表格等。程序存储区可以通过JTAG、BSL和ISP方式下载得到用户程序。

关于Flash存储器,我们介绍几个基本概念。Flash的结构决定了写操作只

能将存储单元中的各比特位从1改写成0,而不能将0改写成1。所以Flash中每个单元可以一次性写入数据,数据一旦写入,在擦除前不能被再次改写。Flash 可以被擦除,擦除后所有单元的比特位都恢复为1,但擦除操作只能针对整个段

进行。所以在改写某单元之前,必须先擦除整个段。Flash存储器较适合做大批

量连续数据存储,而且一般控制器都会提供连续写功能以提高速度。

在Flash中,将每次能擦除的最小区块单位成为段”(Segmen),将每次能连续写入的最大区块单位称为块”(Block)。

红头文件工资证明格式

红头文件工资证明格式文件管理序列号:[K8UY-K9IO69-O6M243-OL889-F88688]

××××××××××××公司 ××字【20××】×号 下面几种证明格式、挑选适合自己的、直接填好打印出来、让财务盖章即可! 员工工作及收入证明 本证明仅用于证明我公司员工的工作及在我公司的工资收入,不作为我公司对该员工任何形势的担保文件。 盖章: 日期:年月日 ==================================================================

工资收入证明 ________________: 兹证明________是我公司员工,在________部门任________职务。至今为止,一年以来总收入约为__________元。特此证明。 本证明仅用于证明我公司员工的工作及在我公司的工资收入,不作为我公司对该员工任何形势的担保文件。 盖章: 日期:______年___月___日 ================================================================== 工资收入证明

兹证明___是我单位员工,身份证号码:___________,在我单位工作___年,岗位为____,年收入__万元(人民币)。 本证明仅限于该职工办理____信用卡使用,我公司不对该职工使用信用卡可能造成的一切后果承担任何责任。 特此证明 单位名称(盖章):_____ 日期:___年__月__日 公文排版样式 文头的字体:一号黑体字、加粗、红色、居中、字符间距为1.7磅 发文字号的字体:四号仿宋体、黑色 标题的字体:三号黑体字、加粗、黑色、居中 主送机关的字体:四号仿宋体、黑色 正文的字体:四号仿宋体、黑色、首行缩进2个字符、1.5倍行距

IAR中MSP430的头文件解析,你看看

1、#define BIT0 (0×0001) //(0×0001)不是地址,而是一个16进制数值。 例1、P3DIR |= BIT3;实际上也可以写成P3DIR |= 0×0008; 意思是将P3口的默认上电值0×0000和0×0008相与,设置P3口的第三位(即P3.3)管脚作输出使用。 例2、WDTCTL = WDTPW + WDTHOLD;实际上就是WDTCTL=0×5A80; 你可以在头文件中查到#define WDTPW (0×5A00)和#define WDTHOLD (0×0080)。WDTCTL是看门狗的控 制寄存器,在msp430的User’Guide中有说明:当它的值为0×5A80时停止看门狗定时。 那为什么我们不直接写成WDTCTL=0×5A80;呢?这样的话程序的可读性会很差。 0×5A80只是一个数值,当你下次再看你写的程序,或者别人读你的程序时,就不明白WDTCTL=0×5A80;的 意思了。如果写成WDTCTL = WDTPW + WDTHOLD;就好理解多了: WDTPW(Watchdog timer password,看门狗的密码,WDTCTL的高8位):只有WDTCTL的高8位为 0×5A时才能对WDTCTL寄存器进行写操作。 WDTHOLD(Watchdog timer hold,WDTCTL的第7位):当WDTCTL的第7位为1时,停止看门狗计时。 这样我们通过PW,HOLD就可以轻松的知道WDTCTL = WDTPW + WDTHOLD;是做什么的了。可以看出 msp430的头文件是很人性化的。 2、当然也有表示地址的,例如,头文件中有以下部分: #ifdef __IAR_SYSTEMS_ASM__ #define DEFC(name, address) sfrb name = address #define DEFW(name, address) sfrw name = address; ///运用了可变参数宏的宏定义格式:#define 宏符号名(参数表) 宏体;;宏体中就是写出参数表中各个

企业红头文件标准格式(公文必备)

×××××公司 公文格式 说明:本纸质公文格式样本共8 页,按照国家标准GB/T9704 -1999 并结合公司实际情况制定。

—1— 关于×××××的通知 (批复、函 ) 标题: 小二宋体加粗 ××公司: 主送单位: 小三黑体 ×××××××××××××××××××××××××××××××××××× ×××××××××××××正文×:×小×三仿×宋×××××××××××××××。 ×××××××××××××××××××××××××××××××××××× ×××××××××××××××××××××××××××××××××××××× ×××××××××××××××××××××××××××××××××××××× ××××××××××××××××。 该页为 下行 文 及平行 文首页 格式 发文机构: 宋体,字号不限, 可适当调整,置于同一行 密级、紧急程度: 三号黑体 公司 B 密★一年 特急 ×××××管理有限公司文件 物业××字〔 2004 〕××号 签发人: ×××

—1— 公司 B 密★一年 特急 ×××××管理有限公司文件 签发人:××× 关于×××的请示 ××公司: ×××××××××××××××××××××××××××××××××××× ×××××××××××××××××××××××××××××××××××××× ×× 该页为 上 行文 首页 格 式 物业××字〔 2004 〕××号 ×××

××××××××××××××××××××× 该页为单一机构行文末页格式 附件:1 、××××× 2、××××× 二○ ○三年×月×日联系人:×××,电话:××) 联系人:只在上行文中标注

企业、公司红头文件公文格式

×××××管理有限公司 纸质公文格式 综合管理部 二○○四年九月二十日编制 说明:本纸质公文格式样本共8页,按照国家标准GB/T9704-1999并结合公司实际情况制定。

特 急 ×××××管理有限公司文件 物业××字…2004?××号 签发人:××× 关于×××××的通知(批复、函) ××公司: ×××××××××××××××××××××××××××××××××××××。 ××××××××××××××××××××××××××××××××。 ×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××。 —1—

公司B密★一年 特急×××××管理有限公司文件 签发人:×××物业××字…2004?××号××× 关于×××的请示 ××公司: ×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××。 —1—

×××××××××××××××××××××。 2、××××× 二○○三年×月×日 (联系人:×××,电话:××) —2—

××××××××××××××。 附件:1、×××××××× 2、×××××××× 二○○三年×月×日 主题词:×××× 抄报: 抄送:

××××××××××××××。 附件:1、×××××××× 2、×××××××× ××公司××公司××公司 ××公司××公司 二○○三年×月×日 主题词:×××× 抄报: 抄送:

MSP430G2553_官方例程(加注释版)

LaunchPad 官方例程(无修改) 一切皆为2012TI杯电子设计大赛 1. //************************************************************************* ***** // LaunchPad Lab2 - Software Toggle P1.0, // // MSP430G2xx2 // ----------------- // /|\| XIN|- // | | | // --|RST XOUT|- // | | // | P1.0|-->LED // //************************************************************************* ***** #include void main(void) { WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer //在MSP430的information A Flash段中一般会有一些比如DCO校正信息,温度传感器校正等等的数据存在,这些是出厂设置好的!但是有时候用户会不小心把infoA擦除掉,而擦除后的内容就为0xFF了。下面程序段的作用是,判断CALBC1_1MHZ的地址内容是否被擦除了,如果擦除了,那么while(1)。如果没有,那么将校正信息添入相应的寄存器,可以得到精度相对高的DCO输出频率 if (CALBC1_1MHZ == 0xFF || CALDCO_1MHZ == 0xFF) { while(1); // If calibration constants erased, trap CPU!! } // Configure Basic Clock

Msp430学习笔记

Msp430学习笔记一、简介 图1 基本结构

图2 pin designation 结论: 1.基本每个管脚都可以复用 2.外围功能模块丰富 端口介绍(32 I/O pins) 1.端口P1和P2 具有输入、输出、中断和外部模块功能。这些功能可以通过各自的7个控制寄存器的设置来实现。 (1)PxDIR 输入输出方向寄存器rw (2)PxIN 输入寄存器r (3)PxOUT 输出寄存器r (4)PxIFG 中断标志寄存器r (5)PxIES 中断触发沿选择寄存器rw (6)PxIE 中断使能寄存器rw (7)PxSEL 功能选择寄存器rw 2.其他端口:四个控制寄存器(除去中断相关)看看例程

二、时钟部分 1.时钟寄存器设置 SCFQCTL 系统时钟控制寄存器(倍频,反馈后默认是31,31+1=32) SCFI0 系统时钟频率调整器0(锁频环反馈中的分频(实质最终是倍频)) SCFI1 系统时钟频率调整器1(自动控制调整,无需软件设置) FLL_CTL0 FLL+控制器0 (反馈中是否分频、选择LFXT1晶振的有效电容) FLL_CTL1 FLL+控制器1 (振荡器控制、时钟源对应的振荡器的选择,默认情况下:振荡 器打开,MCLK选择DCOCLK,SMCLK选择DCOCLK) 图时钟模块

2.工作模式:One Active Mode、Five Power Saving Modes MSP430是一个特别强调低功耗的单片机系列,尤其适用于采用电池供电的长时间工作场合。 系统根据应用和节能使用不同的时钟信号,这样可以合理利用系统的电源,实现整个系统的超低功耗。 中断是MSP430微处理器的一大特色。有效地利用中断可以简化程序,并且提高执行效率和系统稳定性。几乎所有的msp430系统单片机的每个外围模块都能产生中断,为MSP430针对事件(外围模块产生的中断)进行的编程打下基础。MSP430在没有事件发生时处于低功耗模式,事件发生时通过中断唤醒CPU,时间处理完毕后CPU再次进入低功耗模式,由于CPU运算速度和推出低功耗的速度很快,所以在应用中,CPU大部分时间都处于低功耗状态,使得系统的整体功耗极大地降低。 MSP430中断可分为三种:1.系统复位中断;2.不可屏蔽中断;3.可屏蔽中断。 多个中断请求发生时,响应最高优先级中断。响应中断时,MSP430单片机会将不可屏蔽中断控制位SR.GIE(总中断允许位)复位。因此,一旦响应了中断,即使有优先级更高的可屏蔽中断出现,也不会中断当前正在响应的中断而去响应更高优先级的中断。但SR.GIE复位不会影响不可屏蔽中断,所以仍可接收不可屏蔽中断的中断请求。

MSP430 中文版用户指南

用于MSP430?的IAR嵌入式工作平台版本3+用户指南 Literature Number:ZHCU026X June2004–Revised November2011

内容Preface (5) 1现在就开始! (7) 1.1软件安装 (8) 1.2LED闪烁 (8) 1.3光盘和网络上重要的MSP430文档 (9) 2开发流程 (10) 2.1概述 (11) 2.2使用KickStart (11) 2.2.1项目设置 (12) 2.2.2用于MSP430L092/MSP430C092的附件项目设置 (13) 2.2.3从零开始创建一个项目 (15) 2.2.4用于LPMx.5调试的附加项目设置 (16) 2.2.5MSP430器件的密码保护 (17) 2.2.6使用一个现有的IAR V1.x/V2.x/V3.x项目 (18) 2.2.7堆栈管理和.xcl文件 (18) 2.2.8如何生成德州仪器(TI).TXT(和其它格式)文件 (18) 2.2.9示例程序概述 (18) 2.3使用C-SPY (18) 2.3.1断点类型 (19) 2.3.2使用断点 (20) 2.3.3使用单步执行 (21) 2.3.4使用观察窗口 (21) A常见问题和解答 (23) A.1硬件 (24) A.2程序开发(汇编语言、C语言编译器、连接器) (24) A.3调试中(C-SPY) (26) B FET专用菜单 (30) B.1菜单 (31) B.1.1Emulator→Device Information (31) B.1.2Emulator→Release JTAG on Go (31) B.1.3Emulator→Resynchronize JTAG (31) B.1.4Emulator→Init New Device (31) B.1.5Emulator→Secure-Blow JTAG Fuse (31) B.1.6Emulator→Breakpoint Usage (31) B.1.7Emulator→Advanced→Clock Control (31) B.1.8Emulator→Advanced→Emulation Mode (31) B.1.9Emulator→Advanced→Memory Dump (32) B.1.10Emulator→Advanced→Breakpoint Combiner (32) B.1.11Emulator→State Storage Control (32) B.1.12Emulator→State Storage Window (32) B.1.13Emulator→Sequencer Control (32) B.1.14Emulator→"Power on"Reset (32) B.1.15Emulator→GIE on/off (32) B.1.16Emulator→Leave Target Running (32)

红头文件工资证明范本格式模板

××××××××××××公司 ××字【20××】×号 下面几种证明格式、挑选适合自己的、直接填好打印出来、让财务盖章即可! 员工工作及收入证明 本证明仅用于证明我公司员工的工作及在我公司的工资收入,不作为我公司对该员工任何形势的担保文件。 盖章: 日期:年月日 ==================================================================

工资收入证明 ________________: 兹证明________是我公司员工,在________部门任________职务。至今为止,一年以来总收入约为__________元。特此证明。 本证明仅用于证明我公司员工的工作及在我公司的工资收入,不作为我公司对该员工任何形势的担保文件。 盖章: 日期:______年___月___日 ==================================================================

工资收入证明 兹证明___是我单位员工,身份证号码:___________,在我单位工作___年,岗位为____,年收入__万元(人民币)。 本证明仅限于该职工办理____信用卡使用,我公司不对该职工使用信用卡可能造成的一切后果承担任何责任。 特此证明 单位名称(盖章):_____ 日期:___年__月__日 公文排版样式 文头的字体:一号黑体字、加粗、红色、居中、字符间距为1.7磅 发文字号的字体:四号仿宋体、黑色 标题的字体:三号黑体字、加粗、黑色、居中 主送机关的字体:四号仿宋体、黑色

红头文件40(情况说明)

路桥灵文(2015)040号签发人:邓宏 关于四川省重点工程公路建设从业单位信用评定公示我项目部存在异议的情况说明芦山县公路养护段: 根据四川省交通运输厅网站公示的四川省重点公路建设从业单 位信用评定公示内容,我公司按照《四川省重点公路建设从业单位信 用管理办法》中有关评分标准,本着实事求是,逐条逐项进行自我评

定,其自我评定结果与公示结果存在偏差,理由如下: 一、项目开工至2014年10月,项目所在地受极端天气影响及土地征用、房屋管线拆迁未及时跟进,导致工程无施工作业面,故项目经理、技术负责人前期在岗时间相对较少;2014年10月至今,项目经理、技术负责人均按合同相关条款约定按时到岗到位,正常开展施工作业; 二、施工机械设备、仪器完全按照合同要求按时到位,设备、仪器运行正常,完全满足施工需要,所有设备严格实行“三定”制度;进场设备、仪器均经业主单位及监理工程师认可; 三、项目管理机构、管理制度完善;原材料、成品、半成品、构配件均按有关规定进行检查检验同时提供了相应的证明材料; 四、所有隐蔽工程均按照相关规定,经报业主、监理工程师现场检验隐蔽工程,经检验合格后才进行隐蔽和进行下一道工序作业; 五、工程实体外观按照《公路工程质量检验评定标准》检验,外观无缺陷,并得到当地老百姓及当地政府的一致肯定; 六、所有项目管理资料均按相关规定完成各方签认并及时归档; 七、安全管理资料、管理制度完善,应急预案、措施已建立并经监理及业主批复。特殊作业人员均持证上岗; 八、本项目开工至今,未发生任何一起安全责任事故; 九、本项目开工至今,民工工资及时发放,未发生拖欠农民工工资事件,做到了民工工资按时发放。 综上所述,我项目部质量、安全管理制度建立健全,未发生安全

MSP430几种常用内置函数解释

几个重要的内联函数(内联函数定义在intrinsics.h中,但是这几个函数使用的时候不需要事先声明该文件头) ①__bic_SR_register(); 将CPU中SR寄存器中的某些位清零。即将括号内的位清零。 例:__bic_SR_register(GIE);//将GIE位清零,即关闭总中断 ②__bis_SR_register(); 将CPU中SR寄存器中的某些位置1。即将括号内的位置1。 ③__interrupt 放在函数前面,标志中断函数。下面这段程序是看门狗 WDT的中断服务函数。WDT_VECTOR为看门狗的中断向量。举例: #pragma vector=WDT_VECTOR __interrupt void WatchDog(void) {…} ④__monitor 放在函数前面,功能是声明当这一函数执行的时候自动关闭中断。应该尽量缩短这样的函数,否则,中断事件无法得到及时的响 应。 ⑤__bic_SR_register_on_exit(); 功能:用于一个中断函数或者不可中断函数(标志为__monitor)返回时,将CPU内SR寄存器中的某些位清0. ⑥__bis_SR_register_on_exit(); 功能:用于一个中断函数或者不可中断函数(标志为__monitor)返回时,将CPU内SR寄存器中的某些位置1. ⑦__no_init 放在全局变量前面,功能是使程序启动时不为变量赋初值 ⑧__disable_interrupt 关闭总中断 另外一个相同作用的表达为:_DINT() ⑨__enable_interrupt 开启总中断 另外一个相同作用的表达为:_EINT() ⑩__even_in_range(,); 常被用在多源中断的查询中,如switch(__even_in_range(TAIV,1 0) 意思是:只有在TAIV的值是在0--10内的偶数时才会执行 switch函数内的语句。其作用是提高switch语句的效率 A._NOP() 空操作,等价于__no_operation指令 B.__get_SP_register(void) 功能:返回堆栈指针寄存器SP的值。

MSP430UIF使用说明

MSP430-UIF仿真器使用说明 一. 功能描述 0、USB接口的JTAG仿真器。USB口取电,不需要外接电源,并能给目标板或用户板提供3.3V(300mA)电源; 1、对MSP430 FLASH全系列单片机进行编程和在线仿真; 2、完全兼容德州仪器原厂MSP-FET430UIF开发工具; 3、可在线升级,烧熔丝加密。 4、采用德州仪器标准的2×7 PIN(IDC-14)标准连接器; 5、支持IAR430、AQ430、HI-TECH、GCC以及TI一些第三方编译器集成开发环境下的实时仿真、调试、单步执行、断点设置、存储器内容查看修改等; 6、支持程序烧写读取和熔丝烧断功能; 7、支持JTAG、SBW(2 Wire JTAG)接口; 8、支持固件升级功能。 二. JTAG连接 与目标板相连的14PIN的连接头定义见仿真器外壳(注意第一脚的方向)。仿真器与目标板连接方法如图所示:(详细请参考文件IAR FET Users Guide slau138d.pdf) 图1 Signal Connections for 4-Wire JTAG Communication

图2 Signal Connections for 2-Wire JTAG Communication (Spy-Bi-Wire) 三. 硬件安装 1.插上仿真器,计算机就会发现新硬件如图3 图3 安装第一步 2.选择“从列表或指定位置安装”,点击下一步,如图4找到驱动存放位置

图4 查找驱动3.安装驱动 图5 安装驱动

4.安装完成就可以使用了,在您的电脑里就会多一个串口如图6,不一定都是COM4。 图6 设备管理器位置 四. IAR设置 图7 打开在工程选项如上图

政府红头文件通常格式 说明

政府红头文件通常格式说明 红头文件通常有三种格式说明 三种格式分别为:(1.报;2.函;3.发。) 对应的是上行文、平行文、下行文。 三种格式的用法: “报”:指的是给上级报告情况用的; “函”:指的是对平级别的单位请求、答复、协商等情况下用的;“发”:指的是对下级布置工作、提出要求等等用的。 值得说明:“字”:指的是决定、公告等等用。 党委的直接用单位简称,政府的要加上“政”字。 红头文件注意事项: 1、装订:两页以上装订至纸张的四分之一和四分之三处 2、平行文:上空九格(仿宋三号字体、行距单倍行距加固定值5磅) 上行文:上空13格+固定值20磅 标题:宋体加粗小二 文号与标题空2格标题与正文空1格 文头用仿宋三号正文用仿宋三号 主题词:用黑体三号内容用仿宋三号 抄送报:仿宋三号 3、页边距:上下2.54左右2.5(横28字,竖22行) 带文件头的用世林化发(世林化发〔2011〕号)

不带文件头的用世林化字(世林字〔2011〕号签发人:) 公司内部发文用平行文 公司外部发文用上行文 红头文件格式要求 眉首:(文头,红色反线以上部分) 印制份数序号、密级和保密期限、紧急程度、发文机关标识、发文字号、签发人 1.公文份数顺序号7位数(版心左上角顶格第1行,机密、绝密件才标注) 2.密级和保密期限(秘密、机密、绝密*30年) 秘密件指内容涉及国家一般秘密,一旦泄露会使国家的安全和利益遭受一定损害的公文。 机密件指内容涉及国家重要秘密,一旦泄露会使国家的安全和利益遭受严重损害的公文。 绝密件指内容涉及国家核心秘密,一旦泄露会使国家的安全和利益遭受重大损害的公文。 3.紧急程度 急件、特急;电报:特提、特急、加急、平急 (3号黑体字,顶格标识在版心右上角第1行,两字间空1字;如同时标识密级和紧急程度,密级在第1行,紧急程序在第2行) 4.发文机关标识(小标宋体字,红色)

IAR中MSP430头文件解析

1、#define BIT0 (0x0001) //(0x0001)不是地址,而是一个16进制数值。 例1、P3DIR |= BIT3;实际上也可以写成P3DIR |= 0x0008; 意思是将P3口的默认上电值0x0000和0x0008相与,设置P3口的第三位(即P3.3)管脚作输出使用。 例2、WDTCTL = WDTPW + WDTHOLD;实际上就是WDTCTL=0x5A80; 你可以在头文件中查到#define WDTPW (0x5A00)和#define WDTHOLD (0x0080)。WDTCTL是看门狗的控制寄存器,在msp430的User’Guide中有说明:当它的值为0x5A80时停止看门狗定时。那为什么我们不直接写成WDTCTL=0x5A80;呢?这样的话程序的可读性会很差。0x5A80只是一个数值,当你下次再看你写的程序,或者别人读你的程序时,就不明白WDTCTL=0x5A80;的意思了。如果写成WDTCTL = WDTPW + WDTHOLD;就好理解多了: WDTPW(Watchdog timer password,看门狗的密码,WDTCTL的高8位):只有WDTCTL的高8位为0x5A时才能对WDTCTL寄存器进行写操作。 WDTHOLD(Watchdog timer hold,WDTCTL的第7位):当WDTCTL的第7位为1时,停止看门狗计时。 这样我们通过PW,HOLD就可以轻松的知道WDTCTL = WDTPW + WDTHOLD;是做什么的了。可以看出msp430的头文件是很人性化的。 2、当然也有表示地址的,例如,头文件中有以下部分: #ifdef __IAR_SYSTEMS_ASM__ #define DEFC(name, address) sfrb name = address #define DEFW(name, address) sfrw name = address; ///运用了可变参数宏的宏定义格式:#define 宏符号名(参数表) 宏体;;宏体中就是写出参数表中各个 //参数之间的关系。 #endif …… …… #define P6OUT_ (0x0035) DEFC( P6OUT , P6OUT_) //这里就是用了以上的可变参数宏。DEFC( P6OUT , P6OUT_) 就表//示:sfrb P6OUT = P6OUT_这里的0x0035就是指P6OUT这个寄存器的地址了。

红头文件说明

红头文件说明 眉首:(文头,红色反线以上部分) 印制份数序号、密级和保密期限、紧急程度、发文机关标识、发文字号、签发人 1.公文份数顺序号7位数(版心左上角顶格第1行,机密、绝密件才标注) 2.密级和保密期限(秘密、机密、绝密*30年) 秘密件指内容涉及国家一般秘密,一旦泄露会使国家的安全和利益遭受一定损害的公文。机密件指内容涉及国家重要秘密,一旦泄露会使国家的安全和利益遭受严重损害的公文。绝密件指内容涉及国家核心秘密,一旦泄露会使国家的安全和利益遭受重大损害的公文。 3.紧急程度 急件、特急;电报:特提、特急、加急、平急 (3号黑体字,顶格标识在版心右上角第1行,两字间空1字;如同时标识密级和紧急程度,密级在第1行,紧急程序在第2行) 4.发文机关标识(小标宋体字,红色) 《XXX人民政府文件》——主要用于向上级机关报告工作,颁布行政规章,发布政府的决定或通知、印发重要会议纪要和政府领导讲话,转发上级或批转下级重要文件等)《XXX人民政府》——主要用于印发函件及处理一般事项的通知、批复等下行文。 联合行文(党、政、军、群) 5.发文字号(发文机关标识下空2行,用3号仿宋体字,居中排布。联合行文只标主办机关的发文字号) 发文机关代字(渝府发)——年份〔2005〕——序号 6.签发人 只有上行文才标注。平行排列于发文字号右侧。发文字号居左空1字,签发人姓名居右空1字。“签发人”用3号仿宋字,后用3号楷体字标识签发人姓名。 二、主体(红色反线下方,主题词上方) 标题、主送机关、正文、附件、发文机关、成文时间、印章、附注 1.标题(位于红色反线空两行之下,2号小标宋体字,居中) 三要素:发文机关——事由(关于?的)——文种 要求:切题、简明、醒目、得体 2.主送机关(左侧顶格用3号仿宋体字标识) 全称或规范化简称、统称 注:公告、通告等属周知性的公文,没有主送单位。 3.公文正文:首页必须显示正文 4.附件(正文下空1行左空2字,用3号仿宋体标识) 附件是正文内容的组成部分,与公文正文一样具有同等效力。 5.成文日期(行政机关公文用汉字,党委系统用阿拉伯数码标识;法规性公文的成文时间一般在标题下方正中,并加一圆括号) 成文日期确定的原则: (1)会议通过的决定、决议等以会议通过日期为准; (2)领导签发的,以签发日期为准; (3)联合行文,以最后签发机关的领导签发日期为准; (4)法规性文件以文件批准日期为准。 6.公文生效标识(右空4字)

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口可作为外部中断口。 2、P6可作为A/D输入口。 3、P1.2和P2.0可作为PWM波输出口。 4、P1.1:MCLK P1.5:ACLK 5、串口通信时:P2.4、 P4.0为发送TXD, P2.5 、P4.1为接收RXD。 (三)、基本操作: 1、所有P口都可作为通用IO口使用 2、所有P口都可进行字节操作和位操作 按字节操作:

红头文件格式要求及说明

三种格式分别为:(.报;.函;.发.) 对应地是上行文、平行文、下行文. 三种格式地用法: “报”:指地是给上级报告情况用地; “函”:指地是对平级别地单位请求、答复、协商等情况下用地; “发”:指地是对下级布置工作、提出要求等等用地. 值得说明:“字”:指地是决定、公告等等用. 党委地直接用单位简称,政府地要加上“政”字. 红头文件注意事项: 、装订:两页以上装订至纸张地四分之一和四分之三处 、平行文:上空九格(仿宋三号字体、行距单倍行距加固定值磅) 上行文:上空格固定值磅 标题:宋体加粗小二 文号与标题空格标题与正文空格 文头用仿宋三号正文用仿宋三号 主题词:用黑体三号内容用仿宋三号 抄送报:仿宋三号 、页边距:上下左右(横字,竖行) 带文件头地用世林化发(世林化发〔〕号) 不带文件头地用世林化字(世林字〔〕号签发人:) 公司内部发文用平行文 公司外部发文用上行文 红头文件格式要求 眉首:(文头,红色反线以上部分) 印制份数序号、密级和保密期限、紧急程度、发文机关标识、发文字号、签发人 .公文份数顺序号位数(版心左上角顶格第行,机密、绝密件才标注) .密级和保密期限(秘密、机密、绝密*年) 秘密件指内容涉及国家一般秘密,一旦泄露会使国家地安全和利益遭受一定损害地公文. 机密件指内容涉及国家重要秘密,一旦泄露会使国家地安全和利益遭受严重损害地公文. 绝密件指内容涉及国家核心秘密,一旦泄露会使国家地安全和利益遭受重大损害地公文. .紧急程度 急件、特急;电报:特提、特急、加急、平急 (号黑体字,顶格标识在版心右上角第行,两字间空字;如同时标识密级和紧急程度,密级在第行,紧急程序在第行)资料个人收集整理,勿做商业用途 .发文机关标识(小标宋体字,红色) 《人民政府文件》——主要用于向上级机关报告工作,颁布行政规章,发布政府地决定或通知、印发重要会议纪要和政府领导讲话,转发上级或批转下级重要文件等)资料个人收集整理,勿做商业用途 《人民政府》——主要用于印发函件及处理一般事项地通知、批复等下行文. 联合行文(党、政、军、群) .发文字号(发文机关标识下空行,用号仿宋体字,居中排布.联合行文只标主办机关地发文字号)发文机关代字(渝府发)——年份〔〕——序号 .签发人 只有上行文才标注.平行排列于发文字号右侧.发文字号居左空字,签发人姓名居右空字.“签发人”

重要MSP430F149ADC12头文件摘要

MPS430头文件摘要及注释 一.ADC12 1..定义采样保持时间(ADC12CTL0) #define SHT0_0 (0*0x100u) //定义ADC12MEM0——ADC12MEM7采样 #define SHT0_1 (1*0x100u) //保持时间为ADCCLK的多少个周期 eg: #define SHT0_2 (2*0x100u) //SHT0_0 代表采样保持时间为4个ADCCLK #define SHT0_3 (3*0x100u) //周期同理 SHT0_1为8个周期 #define SHT0_4 (4*0x100u) #define SHT0_5 (5*0x100u) #define SHT0_6 (6*0x100u) #define SHT0_7 (7*0x100u) #define SHT0_8 (8*0x100u) #define SHT0_9 (9*0x100u) #define SHT0_10 (10*0x100u) #define SHT0_11 (11*0x100u) #define SHT0_12 (12*0x100u) #define SHT0_13 (13*0x100u) #define SHT0_14 (14*0x100u) #define SHT0_15 (15*0x100u) #define SHT1_0 (0*0x1000u) //定义ADC12MEM8——ADC12MEM15采样 #define SHT1_1 (1*0x1000u) //保持时间为ADCCLK的多少个周期 #define SHT1_2 (2*0x1000u) //使用方法同SHT0_x

MSP430程序库(一)综述

MSP430程序库<一>综述 我与msp430最初的接触来自机械工业出版社出版的《MSP430系列单片机系统工程设计与实践》这本书;我开始参加电子设计竞赛是在大二的暑假,放假之前听说竞赛用 MSP430F169的单片机,然后就去图书馆找有关430单片机的书籍了,有关这款单片机的书不多,很幸运的是我借到了这本书;我写430单片机的程序风格很大程度上受到了此书的影响。 程序库的组织方式:程序库解决方案包含多个项目,每个项目是针对一个单元(如:uart异步串行口)的程序库和使用示例,如异步串行口的程序库,下图中UART项目,Uart.c是主要的程序库源代码,Uart.h是对应头文件,使用时需包含此头文件,main.c是使用示例代码。 程序库使用时只需.c文件和对应的.h文件即可。 文件组织方式:程序库的c文件和h文件一一对应,c文件至少包含两个头文件,其中一个是430的头文件,以使用单片机的硬件资源,另一个是其对应的头文件;如Uart.c开头即为 #include #include"Uart.h" 为防止重复包含头文件中均有#define语句如Uart.h开头和结尾: #ifndef__UART_H #define__UART_H #endif/*__UART_H*/

程序库使用方式:第一步,先把c文件和h文件拷到工程文件夹;然后把c文件添加到项目中在左侧workspace中右击项目,选Add—>Add Files,选择刚添加的c文件;如图: 最后在要调用库函数的程序文件中包含拷进来的头文件;之后,就可以正常调用程序库中的函数(H文件中声明的,需要的话,可以自行添加)。 程序库目前打算先从异步串行口写起,多谢网友们的支持了啊。 相关文章:https://www.360docs.net/doc/742080439.html,/bbs/article_1077_368318.html

红头文件格式要求及说明

红头文件通常有三种格式说明 三种格式分别为:(1.报;2.函;3.发。) 对应的是上行文、平行文、下行文。 三种格式的用法: “报”:指的是给上级报告情况用的; “函”:指的是对平级别的单位请求、答复、协商等情况下用的; “发”:指的是对下级布置工作、提出要求等等用的。 值得说明:“字”:指的是决定、公告等等用。 党委的直接用单位简称,政府的要加上“政”字。 红头文件注意事项: 1、装订:两页以上装订至纸张的四分之一和四分之三处 2、平行文:上空九格(仿宋三号字体、行距单倍行距加固定值5磅) 上行文:上空13格+固定值20磅 标题:宋体加粗小二 文号与标题空2格标题与正文空1格 文头用仿宋三号正文用仿宋三号 主题词:用黑体三号内容用仿宋三号 抄送报:仿宋三号 3、页边距:上下2.54 左右2.5 (横28字,竖22行) 带文件头的用世林化发(世林化发〔2011〕号) 不带文件头的用世林化字(世林字〔2011〕号签发人:) 公司内部发文用平行文 公司外部发文用上行文 红头文件格式要求 眉首:(文头,红色反线以上部分) 印制份数序号、密级和保密期限、紧急程度、发文机关标识、发文字号、签发人

1.公文份数顺序号7位数(版心左上角顶格第1行,机密、绝密件才标注) 2.密级和保密期限(秘密、机密、绝密*30年) 秘密件指内容涉及国家一般秘密,一旦泄露会使国家的安全和利益遭受一定损害的公文。 机密件指内容涉及国家重要秘密,一旦泄露会使国家的安全和利益遭受严重损害的公文。 绝密件指内容涉及国家核心秘密,一旦泄露会使国家的安全和利益遭受重大损害的公文。 3.紧急程度 急件、特急;电报:特提、特急、加急、平急 (3号黑体字,顶格标识在版心右上角第1行,两字间空1字;如同时标识密级和紧急程度,密级在第1行,紧急程序在第2行) 4.发文机关标识(小标宋体字,红色) 《XXX人民政府文件》——主要用于向上级机关报告工作,颁布行政规章,发布政府的决定或通知、印发重要会议纪要和政府领导讲话,转发上级或批转下级重要文件等) 《XXX人民政府》——主要用于印发函件及处理一般事项的通知、批复等下行文。 联合行文(党、政、军、群) 5.发文字号(发文机关标识下空2行,用3号仿宋体字,居中排布。联合行文只标主办机关的发文字号) 发文机关代字(渝府发)——年份〔2005〕——序号 6.签发人 只有上行文才标注。平行排列于发文字号右侧。发文字号居左空1字,签发人姓名居右空1字。“签发人”用3号仿宋字,后用3号楷体字标识签发人姓名。 二、主体(红色反线下方,主题词上方) 标题、主送机关、正文、附件、发文机关、成文时间、印章、附注

MSP430经典例程讲解

这只是我在学习TI公司生产的16位超的功耗单片机MSP430的随笔,希望能对其他朋友有所借鉴,不对之处还请多指教。 下面,开始430之旅。 讲解430的书现在也有很多了,不过大多数都是详细说明底层硬件结构的,看了不免有些空洞和枯燥,我认为了解一个MCU的操作首先要对其基础特性有所了解,然后再仔细研究各模块的功能。 1、首先你要知道msp430的存储器结构。典型微处理器的结构有两种:冯 ? 诺依曼结构----程序存储器和数据存储器统一编码;哈佛结构----程序存储器和数据存储器。MSP430系列单片机属于前者,而常用的mcs51系列属于后者。 0-0xf特殊功能寄存器;0x10-0x1ff外围模块寄存器;0x200-?根据不同型号地址从低向高扩展;0x1000-0x107f seg_b0x1080_0x10ff seg_a 供flash信息存储,剩下的从0xffff 开始向下扩展,根据不同容量,例如149为60KB,0xffff-0x1100 2、复位信号是MCU工作的起点,430的复位型号有两种:上电复位信号POR和上电清楚信号PUC。POR信号只在上电和RST/NMI复位管脚被设置为复位功能,且低电平时系统复位。而PUC信号是POR信号产生,以及其他如看门狗定时溢出、安全键值出现错误是产生。但是,无论那种信号触发的复位,都会使MSP430在地址0xffff处读取复位中断向量,然后程序从中断向量所指的地址开始执行。复位后的状态不写了,详见参考书,嘿嘿。 3、系统时钟是一个程序运行的指挥官,时序和中断也是整个程序的核心和中轴线。430最多有三个振荡器:DCO内部振荡器;LFXT1外接低频振荡器,常见的32768HZ,不用外接负载电容;也可接高频450KHZ-8M,需接负载电容;XT2接高频450KHZ-8M,加外接电容。430有三种时钟信号:MCLK系统主时钟,可分频1/2/4/8,供CPU使用,其他外围模块在有选择情况下也可使用;SMCLK系统子时钟,供外围模块使用,可选则不同振荡器产生的时钟信号;ACLK辅助时钟,只能由LFXT1产生,供外围模块。 4、中断是430处理器的一大特色,因为几乎每个外围模块都能产生,430可以在没有任务时进入低功耗状态,有事件时中断唤醒CPU,处理完毕再次进入低功耗状态。 整个中断的响应过程是这样的,当有中断请求时,如果CPU处于活动状态,先完成当前命令;如果处于低功耗,先退出,将下一条指令的PC值压入堆栈;如果有多个中断请求,先响应优先级高的;执行完后,等待中断请求标志位复位,要注意,单中断源的中断请求标志位自动复位,而多中断的标志位需要软件复位;然后系统总中断允许位SR.GIE复位,相应的中断向量值装入PC,程序从这个地址继续执行。这里要注意,中断允许位SR.GIE和中断嵌套问题。如果当你执行中断程序过程中,希望可以响应更高级别的中断请求时,必须在进入第一个中断时把SR.GIE置位。 其实,其他的外围模块时钟沿着时钟和中断这个核心来执行的。具体的结构我也不罗索了,可以参考430系列手册。 ----------------------------------------------------------- 上面把430单片机的基础特性交待了一下,让大家整体有了结构的印象,后面我想在写一下C语言对430编程的整体结构。基本上属于框架结构,即整体的模块化编程,其实这也是硬件编程的基本法则拉(可不是我规定的法则哦)。 首先是程序的头文件,包括#include ,这是14系列,因为常用149;其他

相关文档
最新文档