MSP430 系列单片机实用 
C 语言程序设计 
 
 
张    晞    王德银    张    晨    编著 
人  民  邮  电  出  版  社 
图书在版编目(CIP)数据 
MSP430 系列单片机实用 C 语言程序设计/张晞,王德银,张晨编著. 
—北京:人民邮电出版社,2005.9 
ISBN 7-115-13664-5 
Ⅰ.M…    Ⅱ.①张…②王…③张…    Ⅲ.①单片微型计算机,MSP430 
②C 语言-程序设计    Ⅳ.①TP368.1②TP312 
中国版本图书馆 CIP 数据核字(2005)第 089732 号 
 
内  容  提  要 
本书从应用角度出发,主要介绍 MSP430 的硬件基础部分和 IAR 公司的 MSP430 C 编译器 EW430,并
对 MSP430 中的各功能模块给出了应用实例。这些实例程序按照结构化编写,经作者的封装后,读者在开发
中只需稍加修改即可直接调用。书中还介绍了 MSP430 的几种典型应用,如软件模拟串行口、在线刷新
FLASH、实现中断嵌套等,并为其编写了完整代码,读者完全可以将其直接组合在自己的项目中。书中还讲
解了单片机领域编写程序的规范、程序结构的安排以及如何提高编码效率等实际应用中的问题。随书光盘中
包括了本书的所有程序代码。 
 
 
 
 
 
 
 
MSP430 系列单片机实用 C 语言程序设计 
北京市崇文区夕照寺街 14 号 
    编        著      张    晞    王德银    张    晨 
        责任编辑      刘映欣 
    人民邮电出版社出版发行 
        邮编    100061        电子函件    315@ptpress.com.cn 
        网址    http://www.ptpress.com.cn 
        北京顺义振华印刷厂印刷 
        新华书店总店北京发行所经销 
    开本:787×1092    1/16 
        印张:17.5 
        字数:426 千字 
        印数:1 – 5 000 册 
 
插页:1 
2005 年 9 月第 1 版 
2005 年 9 月北京第 1 次印刷 
ISBN 7-115-13664-5/TP·4784 
定价:35.00 元(附光盘) 
读者服务热线:(010)67132692    印装质量热线:(010)67129223  
前前            言言  
以前出版的有关 MSP430 的书籍主要是从 MSP430 内部结构的角度来讲述的,读者可以
从中获得比较全面的相关知识,但这些书的描述往往过于底层,使得读者使用时必须花费相
当多的时间认真推敲各个寄存器或者模块之间的关系。本书所描述的重点与以往的相关书籍
不同,本书并不准备详细地将 MSP430 重新描述一遍,相关的知识可以从 MSP430 的数据手
册或者类似书籍中获得。本书将通过实际应用来讲述如何用 C 语言编写 MSP430 的程序,所
提供的例子涵盖 MSP430 大多数的功能模块,而且都是采用结构化编程方法,使得这些例子
中的代码能够被读者重复利用,或者只需在例子的框架内进行修改,就可以满足需要。 
MSP430 的功能非常强大,其内部的寄存器非常多,关系也比较复杂,对于初学者,
往往会有无从下手的感觉。通过学习本书中的例子,初学者能够尽快渡过初学 MSP430
时的瓶颈期。对于已经有经验的读者,本书更像是一本编程的代码库,因为书中的例子都
立足于应用,可以重复利用,能够大大提高工作效率。本书还详细讲述了 IAR 公司的    
C 语言开发工具,可以作为 C 语言开发 MSP430 的使用手册。书中所有的例程都在 IAR
公司的 C 编译器 EW430  3.1A 版本下完成,并在北京东方美源公司提供的实验板上使用
JTAG 仿真器调试通过。由于没有详细介绍 MSP430 内部的寄存器,因此,读者阅读本书
的时候,手边最好有相应的 MSP430 芯片手册,以便随时查阅。 
本书由张晞、王德银、张晨三人编写而成。张晞,中国矿业大学机电学院副教授,机械
制造及其自动化学科带头人,长期从事单片机的教学及研究工作。王德银,高级工程师,现
任河南平顶山煤业集团五矿矿长,主要从事煤矿机电自动化和安全生产监测系统的研究。张
晨,现任北京东方美源公司研发部主管,多年从事单片机的应用设计工作。本书在成书过程
中得到北京东方美源科技有限公司的大力支持,在此表示感谢。 
由于作者水平有限,成书时间仓促,书中必定会存在不妥之处,恳请广大读者批评指正,
以便在以后的版本中及时修正,联系地址:mcu@mcu163.com(作者)或 liuyingxin@ptpress.com.cn
(编辑)。欢迎访问作者的个人网站 http://www.mcu163.com,欢迎与作者进行技术交流。 
 
 
编    者             
2005 年 8 月         
目目            录录  
第 1 章    MSP430 硬件基础知识........................................................................................................ 1 
1.1    概述....................................................................................................................................... 2 
1.2    存储器结构........................................................................................................................... 2 
1.3    复位....................................................................................................................................... 4 
1.4    系统时钟............................................................................................................................... 6 
1.5    低功耗模式........................................................................................................................... 8 
1.6    中断..................................................................................................................................... 10 
1.7    外围模块............................................................................................................................. 16 
第 2 章    C 语言基础知识 ............................................................................................................... 17 
2.1    标识符与关键字 ................................................................................................................. 18 
2.1.1    标识符.......................................................................................................................... 18 
2.1.2    关键字.......................................................................................................................... 18 
2.2    数据类型............................................................................................................................. 19 
2.2.1    基本型.......................................................................................................................... 19 
2.2.2    构造型.......................................................................................................................... 20 
2.2.3    指针型.......................................................................................................................... 21 
2.3    运算符................................................................................................................................. 22 
2.4    函数..................................................................................................................................... 26 
2.5    数组..................................................................................................................................... 27 
2.6    指针..................................................................................................................................... 27 
2.7    位运算................................................................................................................................. 29 
2.8    存储类型............................................................................................................................. 29 
2.8.1    变量.............................................................................................................................. 29 
2.8.2    函数.............................................................................................................................. 30 
2.9    预处理功能......................................................................................................................... 30 
2.9.1    宏定义.......................................................................................................................... 30 
2.9.2    条件编译...................................................................................................................... 31 
2.9.3    文件包含...................................................................................................................... 31 
2.10    程序的基本结构 ............................................................................................................... 32 
2.10.1    顺序结构.................................................................................................................... 32 
2.10.2    选择结构.................................................................................................................... 32 
2.10.3    循环............................................................................................................................ 34 
– 1 – 
MSP430 系列单片机实用 C 语言程序设计 
2.10.4    跳转............................................................................................................................ 35 
第 3 章    IAR C 编译器的使用 ......................................................................................................... 37 
3.1    概述..................................................................................................................................... 38 
3.1.1    特性.............................................................................................................................. 38 
3.1.2    软件结构...................................................................................................................... 38 
3.1.3    文件类型...................................................................................................................... 39 
3.2    开发调试环境..................................................................................................................... 40 
3.2.1    创建一个工程.............................................................................................................. 40 
3.2.2    编译链接项目.............................................................................................................. 43 
3.2.3    项目设置...................................................................................................................... 44 
3.2.4    调试.............................................................................................................................. 50 
3.3    语言扩展............................................................................................................................. 55 
3.3.1    扩展关键字.................................................................................................................. 56 
3.3.2    内部函数...................................................................................................................... 57 
3.3.3    扩展定义...................................................................................................................... 60 
3.4    C 语言与汇编语言混合使用 ............................................................................................. 63 
3.4.1    调用内部函数.............................................................................................................. 63 
3.4.2    直接嵌入...................................................................................................................... 63 
3.4.3    调用汇编模块.............................................................................................................. 64 
3.5    编写高质量的代码 ............................................................................................................. 67 
3.6    函数库................................................................................................................................. 68 
第 4 章    开发工具 .......................................................................................................................... 97 
4.1    JTAG 仿真器、编程器....................................................................................................... 98 
4.2    BSL 编程器......................................................................................................................... 99 
第 5 章    程序设计的规范与结构 ................................................................................................ 101 
5.1    程序规范........................................................................................................................... 102 
5.2    程序结构........................................................................................................................... 106 
5.3    框架程序........................................................................................................................... 109 
第 6 章    MSP430 异步串行通信 ................................................................................................... 123 
6.1    串行通信简介................................................................................................................... 124 
6.2    串行通信软件实现 ........................................................................................................... 125 
第 7 章    定时器............................................................................................................................ 137 
7.1    16 位定时器...................................................................................................................... 138 
7.1.1    定时中断.................................................................................................................... 139 
– 2 – 
目        录 
7.1.2    PWM 输出 ................................................................................................................. 142 
7.1.3    捕获脉冲信号周期.................................................................................................... 149 
7.1.4    软件模拟异步串行通信 ............................................................................................ 153 
7.2    基本定时器....................................................................................................................... 161 
第 8 章    FLASH 的读写、擦除与 I/O 端口................................................................................... 167 
8.1    FLASH 的读写和擦除 ..................................................................................................... 168 
8.2    I/O 端口............................................................................................................................. 174 
8.2.1    非行列式键盘............................................................................................................ 175 
8.2.2    行列式键盘................................................................................................................ 185 
第 9 章    DMA 数据传输与 IIC 总线............................................................................................... 193 
9.1    DMA 数据传输................................................................................................................. 194 
9.2    IIC 总线............................................................................................................................. 200 
第 10 章    FLL+锁频环与液晶屏驱动模块 ................................................................................... 215 
10.1    FLL+锁频环.................................................................................................................... 216 
10.2    液晶屏驱动模块 ............................................................................................................. 218 
第 11 章    AD、DA 转换.................................................................................................................. 233 
11.1    ADC12............................................................................................................................. 234 
11.2    DAC12............................................................................................................................. 244 
第 12 章    比较器 A........................................................................................................................ 251 
12.1    斜边 AD 转换 ................................................................................................................. 252 
12.2    电阻值测量..................................................................................................................... 260 
第 13 章    特殊处理....................................................................................................................... 267 
13.1    中断嵌套......................................................................................................................... 268 
13.2    程序异常处理 ................................................................................................................. 270 
附录 A    MSP430 基本电路图 
 
 
 
 
 
 
 
– 3 – 
 
 
  第 1 章    MSP430 硬件基础知识 
 
MSP430 是美国 Texas  Instruments(TI)公司于 1996
年开始推向市场的超低功耗微处理器。除了超低功耗这一
特点外,在 MSP430 系列产品中还集成了很多功能模块,
可以应用于各个方面,使得用一片 MSP430 芯片就能完成
以前要用多片芯片组合才能完成的功能,大大地缩小了产
品的体积,并且降低了成本。因此,MSP430 系列一经推
出,就受到了业内人士的欢迎。迄今为止,MSP430 已经
广泛应用于各个领域,尤其是便携式仪器仪表、监测、医
疗器械以及汽车电子等领域。 
本章将对 MSP430 的基础特性进行简明扼要地介绍,外
围模块的具体操作则完全略过。对基础特性的了解是操作任
何一种微处理器所必备的,仔细阅读本章内容可为学习全书
打下良好的基础。 
1
MSP430 系列单片机实用 C 语言程序设计 
11..11      概概            述述  
当前市场上存在很多种微处理器,每种微处理器都各有其特色。针对不同的应用选择合
适的微处理器非常重要。MSP430 的主要特点为: 
(1)超低功耗    拥有 5 种低功耗模式,以适应不同的需要。CPU 从低功耗模式被唤醒,
这个过程最多只需要 6μs,因此,在某些需要迅速作出反应的应用中,CPU 能够及时退出低
功耗模式,进入工作模式。 
(2)灵活的时钟使用方式    除了片内集成一个晶体振荡器外,还可外接 1~2 个晶体振
荡器。不同的内部功能模块可根据需要使用不同的晶体振荡器,在不需要时可以通过设置寄
存器将其关闭,以降低功耗。 
(3)高速的运算能力    16 位 RISC 架构,125ns 指令周期。 
(4)丰富的功能模块    集成了大量的功能模块,这些功能模块包括: 
  多通道 10~14 位 AD 转换器 
  双路 12 位 DA 转换器 
  比较器 
  液晶驱动器 
  电源电压检测 
  串行口 USART(UART/SPI) 
  硬件乘法器 
  看门狗定时器和多个 16 位、8 位定时器(可进行捕获、比较、PWM 输出) 
  DMA 控制器 
  FLASH 存储器。它可以在运行过程中由程序控制写操作和段的擦除(In  system 
programmable),不需要额外的高电压。 
(5)廉价专业的开发工具    MSP430 的芯片上包括 JTAG 接口,因此在仿真调试程序时,
通过一个廉价的 JTAG 接口转换器就可以完成以往用昂贵的仿真器才能完成的功能,如设置
断点、单步执行程序、读写寄存器等。 
(6)灵活快速的编程方式    可通过 JTAG 和 BSL 两种方式向 CPU 内装载程序。   
(7)高保密性    只需按照特定的方式将 MSP430 内部的熔丝熔断,JTAG 口便被物理性
地阻断。BSL 方式所需要的密码长达 256 位,排列组合出来的密码量为 2 的 256 次幂,如此
巨大的数量被破解的可能性微乎其微。 
(8)低电源电压范围    1.8~3.6V。 
11..22      存存储储器器结结构构  
MSP430 内部存储器的类型有:程序存储器 FLASH、数据存储器 RAM、外围模块寄存
– 2 –