书名:msp430系列单片机接口技术及系统设计实例
魏小龙 编著
isbn 7-81077-231-7
开本:787×1092 1/16
字数: 691千字
定价:45.00元
2002年10月第1版
2002年10月第1次印刷
内 容 简 介
本书较为详细地介绍了ti公司的msp430系列单片机。全书共分5章。首先讲述msp430全系列所涉及的片内外围模块的功能、原理、应用及各个系列的模块构成情况;其次讲述msp430的开发环境及如何使用汇编语言、c语言进行程序设计;最后例举大量的以msp430为核心的系统设计应用实例,大部分实例同时给出汇编语言和c语言的源程序,且全部在作者设计的实验工具上测试通过,并实现了预期的功能。
本书配光盘一张,包含书中所用到的源程序及ti公司的网址与笔者的网址连接,还有msp430软件的下载地址。
本书可作为高等院校计算机、自动化及电子技术类专业的教学参考书,也可作为大学生电子设计以及毕业设计的参考书,更适用于从事单片机开发的科技人员。
前 言
单片机(或微控制器)技术已经渗透到人类生活的方方面面,在家用电器、通信产品等日用电子设备中都可见到单片机,估计全世界人均有几片单片机(或微控制器),此技术正在积极地影响着人类的生活。
ti公司msp430系列是一个超低功耗类型的单片机,特别适合于电池应用的场合或手持设备。同时,该系列将大量的外围模块整合到片内,也特别适合于设计片上系统;有丰富的不同型号的器件可供选择,给设计者带来很大的灵活性。它是一个16位的精简指令构架,有大量的工作寄存器和数据存储器(目前最大的ram为2 kb),其ram单元也可以实现运算。msp430系列是众多单片机系列中的一颗耀眼的新星。
在超低功耗方面,msp430系列单片机能够实现在1.8~3.6 v电压、1 mhz的时钟条件下运行,耗电电流(在0.1~400 μa之间)因不同的工作模式而不同;同时能够在实现液晶显示的情况下,只耗电0.8 μa。典型情况:在4 khz, 2.2 v条件下工作消耗电流2.5 μa;在1 mhz, 2.2 v条件下工作消耗电流280 μa;在只有ram数据保持的低功耗模式下耗电0.1 μa(见msp430x13x、14x数据手册)。
在运算速度方面,msp430系列单片机能在8 mhz晶体的驱动下,实现125 ns的指令周期。16位的数据宽度、125 ns的指令周期以及多功能的硬件乘法器(能实现乘加)相配合,能实现数字信号处理的某些算法(如fft等)。
在整合方面,msp430系列单片机将大量的cpu外围模块集成在了片内,有如下一些模块:
看门狗(wdt) 定时器a (timer_a)定时器b (timer_b)
模拟比较器串口0、1(usart0、1)硬件乘法器
液晶驱动器10位/12位adc14位adc(adc14)
端口0(p0)端口1~6(p1~p6) 基本定时器(basic timer)
其中:定时器a、b均带有多个捕获/比较寄存器,同时可实现多路pwm输出;模拟比较器与定时器配合,可方便地实现adc;液晶驱动多达160笔段;硬件adc模块能在小于10 μs的速率下实现10~14位的高速、高精度转换,同时提供采样/保持与参考电压;端口0,1,2(p0,p1,p2)能够接收外部上升沿或下降沿的中断输入。
我在1998年底开始接触msp430单片机,那时只有网络上的大量英文资料,通过阅读发现其优点,便开始细读。1999年,我申请到msp430f1121样片,进行了一些实验,更加证实了msp430的诸多优点。最初我使用msp430实现了热敏电阻测量温度,这是ti网站提供的典型案例,但是ti文档中的程序格式在ti网站提供的iar软件中却不能编译,我非常熟悉51却也对其中许多硬件的操作不是很理解。然而msp430的确有很多优点:可以方便地调整器件的运行耗电量;硬件功能齐备,如定时器a(当时的f1121就有)带有3个捕获/比较器,可以实现3路时序,也可实现pwm输出等。鉴于此,为了让更多想使用msp430的朋友少走弯路,我便使用网络(笔者的个人主页
http://ppowxl.top263.net,现改为http://www.mcu- china.com)发布了本人的使用心得和自己写的一些源程序。我的个人主页在263网站停止其使用之前的访问量达60 000多ip地址,这个统计数据是263提供的,非常可靠。通过网络我认识了很多使用msp430的朋友,相互切磋,受益颇多,我的很多心得体会在书中都有体现。后来笔者陆续使用msp430做了一些开发,比如电子水表、热表、黑匣子记录仪、智能传感器、电站使用的操作票掌上机、一些电池供电的医用仪表等。这些开发工作的进行使得我对msp430更加熟悉。由于很多网友对msp430一些问题的询问,以及我对msp430的使用已经积累了不少心得体会,在2001年我萌生了编写msp430接口与应用方面的书的念头,后与北京航空航天大学出版社联系,得到很大支持。近一年半的时间,我在大量的实验基础上,总结了与msp430有关的多次开发经历,于2002年暑假完成了书稿。近来ti发布的所有flash型芯片,我都使用其做过实验,并体现于本书中。
本书讲解了msp430全系列的接口原理、设计开发方法以及大量的系统设计实例。本书共分为5章:第1章讲述了msp430的大致情况,对各个系列(11x,12x,13x,14x,31x,32x,33x, 41x,43x,44x)分门别类地进行了介绍,可为设计者选型提供参考;第2章详细地讲述了指令系统及汇编语言和c语言的设计方法;第3章讲述了msp430全系列所涉及到的所有片内外围模块(目前器件)的接口原理和使用方法,从最早的3xx系列到最新的4xx系列所涉及到的msp430单元模块,其中大部分都结合接口原理的讲解给出了实际的应用;第4章介绍了开发环境,详细地讲述了开发软件的使用方法;第5章给出了大量的应用实例,由简单程序设计和硬件应用到较为完整的系统设计,每个例子都有详细的设计原理、汇编和(或)c语言源程序,读者可直接借鉴;最后为附录,由于msp430单片机的片内外围设备都拥有大量的寄存器,因此在附录中将这些寄存器集中起来以方便读者查阅。
在这里,要着重强调的是:本书中的源程序以及第5章的设计实例都是笔者亲自编写并调试通过的,尤其是第5章的实例都在笔者设计的实验板或面包板上调试通过,并实现了预期的功能,读者可放心借鉴。相信对有无单片机设计经历的读者都会有帮助。
本书配光盘一张,包含书中所用到的源程序及ti公司的网址与笔者的网址连接,还有msp430软件的下载地址。
本书在成书过程中得到了ti公司msp430中国代理利尔达单片机技术有限公司的段焕春副总经理和平红光经理的大力支持,在此表示衷心的感谢。
限于笔者水平,书中错误与不妥在所难免,恳请读者批评指正。同时欢迎访问我的个人主页(
www.mcu-china.com),以相互交流。作者 2002年6月于南京航空航天大学
目 录
第1章 msp430系列单片机简介
1.1 概述1
1.2 msp430x1xx系列4
1.2.1 msp430x11x系列5
1.2.2 msp430x12x系列7
1.2.3 msp430x13x系列10
1.2.4 msp430x14x系列13
1.3 msp430x3xx系列17
1.3.1 msp430x31x系列18
1.3.2 msp430x32x系列21
1.3.3 msp430x33x系列24
1.4 msp430x4xx系列27
1.4. 1msp430x41x系列27
1.4.2 msp430f43x系列31
1.4.3 msp430f44x系列36
第2章 msp430指令系统与程序设计
2.1msp430的16位cpu40
2.2msp430的存储器组织42
2.2.1数据存储器ram44
2.2.2程序存储器rom45
2.2.3外围模块寄存器地址48
2.3寻址模式49
2.3.1寄存器寻址模式49
2.3.2变址寻址模式50
2.3.3符号模式51
2.3.4绝对寻址模式52
2.3.5间接寻址模式54
2.3.6间接增量寻址模式55
2.3.7立即寻址模式57
2.4指令格式57
2.4.1指令书写格式57
2.4.2双操作数指令(内核指令)58
2.4.3单操作数指令(内核指令)59
2.4.4条件和无条件转移指令(内核指令)60
2.4.5无需rom补偿的仿真指令60
2.4.6指令集表62
2.4.7msp430指令的时钟周期与指令长度63
2.5指令集说明64
2.5.1数据传送指令64
2.5.2数据运算类指令68
2.5.3逻辑运算与位操作类指令76
2.5.4跳转与程序流程的控制类指令85
2.5.5用多个指令仿真的宏指令100
2.5.6堆栈指针寻址101
2.6汇编语言程序设计102
2.6.1汇编伪指令102
2.6.2常用汇编程序设计方法106
2.7c语言程序设计基础109
2.7.1msp430c语言的数据类型110
2.7.2表达式语句(结构)111
2.7.3函数的定义与调用113
2.7.4msp430 c语言标准库函数115
2.7.5c语言编程实例118
第3章 msp430单片机片内外设原理与使用方法
3.1基础时钟模块与低功耗119
3.1.1低速晶体振荡器120
3.1.2高速晶体振荡器121
3.1.3dco振荡器122
3.1.4锁频环fll/fll+125
3.1.5基础时钟模块与低功耗131
3.1.6时钟系统的应用举例134
3.2msp430各种端口134
3.2.1端口p0,p1和p2135
3.2.2端口p3,p4,p5和p6139
3.2.3端口tp0140
3.2.4com和s端口140
3.2.5端口应用举例140
3.3定时器141
3.3.1看门狗定时器141
3.3.2基本定时器144
3.3.38位定时器/计数器147
3.3.4通用定时器/端口149
3.3.516位定时器a153
3.3.616位定时器b 169
3.4硬件乘法器186
3.5比较器a190
3.6flash存储器模块197
3.7msp430系列的通用串行通信模块210
3.7.1 usart模块的结构210
3.7.2usart模块的寄存器214
3.7.3 异步模式220
3.7.4同步模式223
3.7.5应用举例226
3.8msp430模数转换模块227
3.8.1adc10模数转换模块227
3.8.2adc12模数转换模块246
3.8.3adc14模数转换模块265
3.9msp430液晶驱动模块273
第4章 msp430开发环境简介
4.1embeddedworkbench(嵌入式工作台)283
4.1.1embeddedworkbench安装283
4.1.2embeddedworkbench概述284
4.1.3embeddedworkbench使用指南285
4.1.4embeddedworkbench综述293
4.2cspy使用指南294
4.3汇编程序调试举例298
4.4c程序调试举例303
第5章 msp430单片机的应用
5.1基础应用部分307
5.1.1msp430头文件307
5.1.2延时程序的设计311
5.1.3常用数学程序的设计312
5.1.4码制转换程序设计316
5.1.5发光二极管类显示器件接口设计319
5.1.6键盘接口设计332
5.1.7与存储器的接口设计344
5.1.8msp430与模数转换器的接口349
5.1.9msp430乐音的输出351
5.2msp430综合应用设计354
5.2.1msp430与i2c总线方式的e2prom接口355
5.2.2将键盘输入的按键值送到显示器显示362
5.2.3键盘、显示与低功耗应用363
5.2.4简易电子琴的设计365
5.2.5以msp430为核心的温度测量与报警系统设计
5.2.6固体数码录音机的设计371
5.3 msp430系统设计378
5.3.1时间控制器的设计378
5.3.2用msp430设计的复杂多相位交通灯383
5.3.3以msp430为核心的手持设备设计396
附录 msp430模块空间分配
附录1 特殊功能寄存器sfr401
附录2 i/o端口403
附录3 msp430f4xx系列基本定时器(basic timer1)
附录4 msp430x3xx系列定时器/端口(timer/port)
附录5 msp430f1xx系列基本时钟405
附录6 msp430f4xx系列fll+模块406
附录7 msp430x3xx系列fll模块406
附录8 模拟比较器406
附录9 看门狗定时器407
附录10 flash系列flash模块407
附录11 msp430f4xx系列svs模块408
附录12 uart模式下的两个串口408
附录13 spi模式下的两个串口409
附录14 flash系列adc12模块(1xx、4xx)410
附录15 msp430f1xx系列adc10模块412
附录16 msp430x3xx系列adc14模块414
附录17 硬件乘法器模块414
附录18 定时器a模块415
附录19 定时器b模块417
附录20 msp430x3xx系列液晶驱动模块420
附录21 msp430f4xx系列液晶驱动模块