msp430f149中文最新.docx

上传人:b****3 文档编号:13228120 上传时间:2023-06-12 格式:DOCX 页数:52 大小:26.18KB
下载 相关 举报
msp430f149中文最新.docx_第1页
第1页 / 共52页
msp430f149中文最新.docx_第2页
第2页 / 共52页
msp430f149中文最新.docx_第3页
第3页 / 共52页
msp430f149中文最新.docx_第4页
第4页 / 共52页
msp430f149中文最新.docx_第5页
第5页 / 共52页
msp430f149中文最新.docx_第6页
第6页 / 共52页
msp430f149中文最新.docx_第7页
第7页 / 共52页
msp430f149中文最新.docx_第8页
第8页 / 共52页
msp430f149中文最新.docx_第9页
第9页 / 共52页
msp430f149中文最新.docx_第10页
第10页 / 共52页
msp430f149中文最新.docx_第11页
第11页 / 共52页
msp430f149中文最新.docx_第12页
第12页 / 共52页
msp430f149中文最新.docx_第13页
第13页 / 共52页
msp430f149中文最新.docx_第14页
第14页 / 共52页
msp430f149中文最新.docx_第15页
第15页 / 共52页
msp430f149中文最新.docx_第16页
第16页 / 共52页
msp430f149中文最新.docx_第17页
第17页 / 共52页
msp430f149中文最新.docx_第18页
第18页 / 共52页
msp430f149中文最新.docx_第19页
第19页 / 共52页
msp430f149中文最新.docx_第20页
第20页 / 共52页
亲,该文档总共52页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

msp430f149中文最新.docx

《msp430f149中文最新.docx》由会员分享,可在线阅读,更多相关《msp430f149中文最新.docx(52页珍藏版)》请在冰点文库上搜索。

msp430f149中文最新.docx

msp430f149中文最新

msp430f149中文[最新]

MSP430F149中文

========================================第1页========================================

MSP430

单片机的开发及应用

MSP430

0002

63#710061

2003

7

西安邮电学院

63#710061

陈小忠

1

2004.9.6开始看,其实以前看过,忘记了。

再看~========================================第2页========================================

MSP430

单片机的开发及应用

第一章

概述

第二章

MSP430F149

语言介绍

第一节

开发环境及程序下载

第二节

语言介绍

第三章

MSP430F149

资源的应用介绍及开发

第一节

中断介绍及存储器段介绍

第二节

硬件乘法器

第三节

P

第四节

定时器及数模转换

第五节

时钟模块

第六节

USART通信模块

第七节

比较器

第八节

模数转换

第四章

MSP430F149开发板的介绍及测试

第一节

模数转换模块

第二节

传感器模块

第三节

外存和实时时钟模块

第四节

485

232

模块

第五节

电源管理模块及晶振模块

第六节

PWM

波形滤波

西安邮电学院

63#710061陈小忠

2

========================================第3页========================================

MSP430

单片机的开发及应用

MSP430

是德州公司新开发的一类具有16

位总线的带

FLASH

的单片机

由于其性价比和

集成度高

受到广大技术开发人员的青睐

.

它采用

16

位的总线

外设和内存统一编址,

寻址范围可达64K,

还可以外扩展存储器.

具有统一的中断管理,

具有丰富的片上外围模块,

片内有精密硬件乘法器、两个

16

位定时器、一个14

路的

12

位的模数转换器、一个看门狗、

6

P

口、两路

USART

通信端口、一个比较器、一个

DCO

内部振荡器和两个外部时钟

支持

8M

的时钟

.

由于为

FLASH

则可以在线对单片机进行调试和下载

JTAG

口直接和FET(FLASHEMULATIONTOOL)

相连

不须另外的仿真工具,

方便实用,

而且

可以在超低功耗模式下工作

对环境和人体的辐射小

量结果为100mw

左右的功耗

电流为

14mA

左右

),

可靠性能好

加强电干扰运行不受影响,适应工

业级的运行环境

适合与做手柄之类的自动控制的设备

.

我们相信

MSP430

单片机将会在工程技术应用中得以广泛应用,

而且

它是通向

DSP

系列的桥梁

随着自动控制的高速化和低功耗化

MSP430

系列将会得到越来越多人的喜爱

.

通过两过多月的毕业设计,

我对

MSP430

有了初步了解

对内部的硬件资源和自身的汇编语法进行了实验

并开发了一个应用板,

并进行了调试

.

鉴于时间和

能力有限

没能对所有的应用一

一实验

.

MSP430F149

MSP430

是德州公司的新产品,

有独特的开发环境和自身语言,

下面是我在毕业设计中对F149

的开发环境熟悉中遇到的一些问题的处理和汇编语言的用法及程序

中遇到的问题的体会.

1.开发环境

:

EW23

环境下进行编程,

汇编

连接

C—SPY

环境下进行调试,

下载是在连接之后

调试之前

通过计算机的串口下载的

.

关于环境的操作,

可以参考有关资料,

其中可能遇到的

问题及解决方法有

:

西安邮电学院

63#710061陈小忠

3

========================================第4页========================================

MSP430

单片机的开发及应用

(1).

汇编是对源程序而言的,

因此必须打开一个源文件才能汇编,

而连接是对一个工程文件而言的

连接是对工程文件的所有源代码(

包括多个源文件

和数据的定位

因此连接必须打开一个工程文件才能连接

.

(2)

连接中必须将库文件的路径改正确

且必须选定C—SPY的驱动方式,

即在

project中的

options的

xlink

include下修改(

先选中)xcl

的库路径为

$TOOLKIT_DIR$\icc430\msp430F149A.xcl,

选择

C—SPY的驱动drive

simulator或

FLASHEMULATIONTOOL,

当没连接

430

片子时可以选simulator,当连接

430

片子时

FLASH

EMULATIONTOOL进行在线下载调试.

(3)

由于

430

支持汇编语言和C

语言两种语言,

因此可以在一个工程文件

中同时用两种语言,

建议用汇编语言,

因为便于在调试时寻找逻辑和指令的联系及地址的定位正确与否

.

(4)

在在线的

C—SPY

的调试中,

单步需要将Control的

Reatime前的勾取消才能进行单步测试

.

(5)

在线调试时,

不能将

58

管脚(复位/

非屏蔽中断)

外部变高,

否则

会强制退出调试环境

.

2.

程序下载原理及脱机工作原理

:

程序的在线调试是通过

JATG

口和

F149

片子的

RST

TCK

TDI

TDO

TMS

引脚按一定的时序串行的传递程序代码和数据的

调试指令的命令传递都是通过这些数据线和控制线传递的,

下载时序可参见资料1,

其中的地址

0FFFEH

为复位向量的地址

是程序遇到非屏蔽中断和程序启动的首要地址

地址中存放的是程序段开始的首地址,

因此必须把

程序段的首地址标号表示在中断向量中或程序伪指令的开头位置

否则

连接时将会出错,

具体的

表示方法在下一节中表示

.

程序的下载和在线调试的电源是通过计算机在

JATG

提供的

不须另外给加电源.

脱机工作时,

是将

F149

的电源线上电,

此时的复位时序同下载后在线复位的时序一样

只是时

钟是通过F149

内部时钟DCO

提供的

上电后

程序将复位向量0FFFE

中的地址装入PC,PC

开始

从程序段的首地址开始执行

.

脱机工作启动不需要任何操

只需上电即可,

电压要大于1.8v,

一般

3v

左右

另外

在脱机工作时,

可以给

RST

端口加一个低电平脉冲以复位从程序开始重新执行

.

西安邮电学院

63#710061陈小忠

4

========================================第5页========================================

MSP430

单片机的开发及应用

MSP430

有自身

语言

汇编语言也不同于其他类型的单片机,

伪指令也是变幻魔测

但又很重

下面是我毕业设计的一些尝试、出问题的地方.

也可参见资料。

1.

#include

不能大写。

2.

程序段前的伪指令可以套用下列模板,

在以后的几章中的程序都采用此模板,

只是中间的

主程序变化而已

:

#include"MSP430x14x.h"/*把库文件包括进来

这个库文件是必须的

其他的库文件视需要而定

*/

RSEGUDATA0/*定义数据段一般默认数据段段地址是从0200H

开始的也可以自己定义数据段

开始地址

但必须在

0200H

09FFH*/

DS0/*

表示数据段从默认的段开始

偏移地址为

0,

若为

DSN,

表示数据段的偏移地址

N

开始

此时的物理地址为(0200+N)H*/ADINPUTEQU00200H/*

0200H

地址命名为

ADINPUT,

此后程序中的地址0200H

可以用

ADINPUT

表示

便于程序的可读性

注意

:

标号必须顶格写

*/

ADW5H/*

定义

A

字变量的值为

5H,

此时将会将

5H

写到数据段的当前偏移地址上,

便于后面

使用

变量也得顶格写

*/

RSEGCSTACK

/*

定义堆栈段

*/

DS0

/*

段偏移值为

0H,

物理地址为默认开始地址值*/

RSEGCODE

/*

定义代码段

1*/

DS0

/*

代码段

1*/

RESET

/*

标号

表示程序段的开始地址

将被写入复位向量中

*/

MOV#SFE(CSTACK),SP

/*

初始化堆栈指针

*/

MOV#(WDTHOLD+WDTPW),&WDTCTL/*

停止看门狗定时器

*/

„„

程序段的内容

COMMONINTVEC/*

表示中断向量定义

*//*

下面的伪指令都不顶格

*/

ORGXXX1/*XXX1

表示中断向量表中的具体的中断向量

1*/

DWYYY1/*YYY

是中断程序入口标号

表示中断程序首地址

*/

ORGXXX2/*XXX2

表示中断向量表中的具体的中断向量

2/

DWYYY2/*YYY2

是中断程序入口标号

表示中断程序首地址

*/

ORGRESET_VECTOR/*

复位向量

每个程序中都必须的

可以放在段开始前的伪指令中

*/

DWRESET

/*

程序开始的地址标号

*/

END

/*

程序结束

*/

3.

几个规定

:

所有的标号都要顶格写,

所有的变量都要顶格写,

所有的伪指令和指令都不能顶格写

CALL

调用子程序是在标号前用“#

”,而其他的转移指令中的标号前不用“#

”,对外设的

寄存器,当程序开始时,许多是复位为零的,如果要置位为

1

,可以直接将每一位的名称作立即数写入,例如:

指令

西安邮电学院

63#710061陈小忠

5

========================================第6页========================================

MSP430

单片机的开发及应用

MOV#(WDTHOLD+WDTPW),&WDTCTL

就是将

WDTCTL

寄存器中的

WDTHOLD

WDTPW

位置位为高,很容易读程序内容。

4

(关于几类定义的区别:

EQU

=

SET

VAR

ASSIGN

都是给标号变量定义地址值的

伪指令,都可以出现在程序中的任何位置,但用法不一样,

=

EQU

是定义一个永久地址标号

变量,一旦定义,在程序中的这个标号将固定在定义的地址上,不能改动。

SET

VAR

ASSIGN

是暂时的地址标号变量,可以在程序中改动,一旦定义了一个标号地址,就可以对这个

标号作地址访问,但必须是在数据段。

另外,DB

DW

是定义变量在数据段当前的偏移位置,是作为数据定义的,不是作为地址定义的,例如:

AADB2H/*

此时在数据段的当前位置写入了

2H

到存储器,以后用

AA

时就是用数据

2H

,注:

AA

顶格写

*/

可以在以后的程序中看到这些区别。

其他的指令和伪指令都可以在相关资料上查找到,以上是经常出现的问题,一般核心程序

中的指令在语法上都不会有太大的问题,在此不再列举。

MSP430F149

本章将介绍

MSP430F149

的片上资源的开发和实验程序,并有详细的时序图、波形图和实

验结果的数据,当然,只能是部分应用程序。

中断在

MSP430

中得以广泛的应用,它可以快速进入中断程序,之后返回中断前的状态,

其时序为:

PC

执行程序

中断允许置位

SR中的

GIE

置位

EINT

(中断开)

中断

到,中断标志位(IFG

)置位

从中断向量表中读取中断程序的入口地址,进入中断程序

执行中断程序

中断允许位复位

RETI中断返回

回到原来地址。

具体应用将会在应用程

序中的到应用。

有关中断源和中断优先级及中断允许位、中断标志位

在参考资料1

上有详细介绍。

MSP430

单片机的片上存储器共为64K

,表示为图

:

西安邮电学院

63#710061陈小忠

6

========================================第7页========================================

MSP430

单片机的开发及应用

0H

0FH010H—0100H

0200H

9FFH0A00HFC0H—

10FFHFFE0H--SFR0FFH01FFHRAM

区,数

——

为信息段

FFFFH(特殊功

8

位外

16

位外

据存储区,

0FBFH1100H—

FFDFH

中断向

能寄存器

转模块、

转模块、

可修改访问

专用

为程序代码段

量地址

IE

IFG

I/O

端口)

TIMER

FLASHFLASH

MEM

ADC

引导

ROM

对存储器的访问可以用间接寻址,这对于查表处理很方便,在此举一

例子:

是对存储段200H

100

个数的读取和操作.

„„MAINMOV#0200H,R6/*

200H

地址开始读出数据到R5

可以加许多对R5(

即数据段的内容)

进行操

作的

程序

*/

MOV#100,R4/*

设取

100

个地址单元

*/

LOOP1MOV.W0(R6),R5/*间接寻址模式

*/

ADD#2,R6/*

是字操作

*/

;.......

/*

可以加对取出的数的操作

*/

MOV.WR5,0(R6)/*操作完后再放回原地址

*/

SUB.B#1,R4/*

循环

100

*/

CMP#0,R4

JNZLOOP1

„„„„„

.

实验结果为:

可以从

R5

中看到数据存储器从

200H

开始的

100

个数值,在操作完后,可以在200H

开始存储器中

看到操作后的结果满足要求。

硬件乘法器不集成在CPU

是独立于

CPU

运行的

运算时只需将两个操作数放进相应的地

址中

就可以直接在结果寄存器中取数据,CPU

可以工作在低功耗模式,

如果用间接寻址模式,

可以超

低工耗的乘法计算大量的表数据,

这儿列举一个例子

其他的几种情况类似于此

:

下面为有符号数

第一个乘数决定类型)

的乘法程序的部

„„

MOV#138H,R4/*乘数

2

的地址为

138H,

这儿用间接寻址方式*/

MOV#-45H,&MPYS/*装第一个有符号乘数的数值入地址,

第一个乘数

MPYS

决定了

*/

MOV#35H,0(R4)/*装第二个有乘数的数值入地址*/

MOVRESLO,R5/*

结果低字送入

R5

中取出

*/

西安邮电学院

63#710061陈小忠

7

========================================第8页========================================

MSP430

单片机的开发及应用

MOVRESHI,R6/*结果高字送入

R6

*/

MOVSUMEXT,R7/*结果扩展送入

R7

*/

„„

实验结果为可以在

R7

R6

R5

中看到

-45*35

的结果为FFFFFFFFF1B7H,结果正确。

硬件乘法器的软件限制可见参考资料

1,

建议做乘法之前关掉中断

.

P

MSP430F149有

6

8

位的

P

口,其中P1

P2

口占两个中断向量,共可以接

16

个中断源,

还可以直接利用

P

口的输入输出寄存器,直接对外进行通信。

因为所有的

P

口都是和其他外设复用

的,因此在用端口之前都要用功能选择寄存器选定所用的功能是外设

还是

P

口,选定之后还要在方

向寄存器中确定是是输出还是输入,我实验了一个程序,前部分是实

现中断功能的程序,后部分为中断程序是实现直接用

P

口对外提供一个短脉冲的程序,在我们设计的开发板中,专门利用了

P

的输入输出功能对外存

24WCXX

和实时时钟芯片

8563

的数据通过的存取

I

2

C

总线的读取和写入。

利用了

P

口向电池充电的开启电路。

下面是个例子:

例:

利用

P

口的中断功能实验:

MAINMOV#SFE(CSTACK),SP/*初始化堆栈指针

*/

MOV#(WDTHOLD+WDTPW),&WDTCTL/*停看门狗定时器

*/

LOOP2BIS#GIE,SR/*普通中断允许

*/

EINT/*开中断

*/

MOV.B#000H,&P1DIR/*定义

P1

口为输入方向

*/

MOV.B#000H,&P1SEL/*定义

P1

口为

P

端口功能

*/

MOV.B#002H,&P1IE/*P1.1

口为中断允许

*/

MOV.B#000H,&P1IES/*定义

P1.1

口为上升沿产生中断

*/

JMPLOOP2/*循环等待中断

*/

/*

下面为中断程序

*/

LOOP1MOV.B#001H,&P1DIR/*定义

P1.0

口为输出口

*/

MOV.B#001H,&P1OUT/*定义

P1.0

口输出的为高电平

发光二极管灯亮

*/

MOV.B#000H,&P1IE/*返回中断前的

PC

及其他状态

*/

MOV.B#000H,&P1OUT/*

P1.0

口置低

发光二极管灯灭

*/

RETI/*

中断返回

*/

COMMONINTVEC/*

列中断向量表

*/

ORGPORT1_VECTOR

DWLOOP1/*

中断向量的入口地址为LOOP1*/

END

实验结果为:

在运行中,当给P1.1

口一个高电平时

PC

装入中断程序的地址LOOP1,

进入中断程序段

P.0

被置高

此时发光二极管灯亮,

两个指令周期之后灯灭

此后又返回中断前的地址开始执行,

等待下一次中断的到来

.

西安邮电学院

63#710061陈小忠

8

========================================第9页========================================

MSP430

单片机的开发及应用

MSP430

中有两个

16

位定时器,还可以利用看门狗定时器。

由于定时器的是

16

位的,则

可以在秒数量级上定时,且具有

2

个中断向量,便于处理各种定时中断。

定时器的应用在F149

中具有举足轻重的作用,可以利用

MSP430F149

中的定时器的比较模式产生

PWM

(数字脉冲调

制)波形,再经过低通滤波器产生任意函数的波形,也就是说,可以通过定时器的比较模式实

现数模转换功能。

另外,定时器还具有捕获模式,我们可以通过定时器的捕获功能实现各种测

量,比如脉冲宽度测量,如果和比较器结合,还可以测量电阻、电容、电压、电流、温度等,

可以这样说,只要能通过传感转换为时间长度的,都可以通过定

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2