msp430f149中文最新.docx
- 文档编号:25869913
- 上传时间:2023-06-16
- 格式:DOCX
- 页数:52
- 大小:26.18KB
msp430f149中文最新.docx
《msp430f149中文最新.docx》由会员分享,可在线阅读,更多相关《msp430f149中文最新.docx(52页珍藏版)》请在冰豆网上搜索。
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
(数字脉冲调
制)波形,再经过低通滤波器产生任意函数的波形,也就是说,可以通过定时器的比较模式实
现数模转换功能。
另外,定时器还具有捕获模式,我们可以通过定时器的捕获功能实现各种测
量,比如脉冲宽度测量,如果和比较器结合,还可以测量电阻、电容、电压、电流、温度等,
可以这样说,只要能通过传感转换为时间长度的,都可以通过定
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- msp430f149 中文 最新