单片机实验报告.docx
- 文档编号:6752865
- 上传时间:2023-01-10
- 格式:DOCX
- 页数:41
- 大小:891.68KB
单片机实验报告.docx
《单片机实验报告.docx》由会员分享,可在线阅读,更多相关《单片机实验报告.docx(41页珍藏版)》请在冰豆网上搜索。
单片机实验报告
单片机及通信接口实验报告
通信08-2班
08082230
王冰
2011年5月
实验一MSP430开发环境与程序设计
一、实验目的
1.掌握MSP430开发环境——IAREmbeddedWorkbench的使用方法
2.学会使用IAREmbeddedWorkbench来开发简单的C语言和汇编语言程序,并掌握常用的调试方法。
二、IAREmbeddedWorkbench开发环境
MSP430开发需要硬件和软件两方面环境,本书以MSP430F149为例进行介绍,其他产品开发过程与此类似。
硬件环境非常简单,只需一台PC、一个JTAG仿真器和开发板。
软件开发环境常用IAR公司的IAREmbeddedWorkbench嵌入式工作台以及仿真器C-SPY和AQ430,本章仅介绍IAR产品。
3.1硬件环境
MSP430FLASH单片机内有JTAG调试接口和电可擦除FLASH存储器,开发调试十分方便,只需一台PC、一个JTAG仿真器和一块开发板(FlashEmulationTool),简单功能调试时可有仿真器供电,开发板不需外加电源。
开发调试时可先将程序下载到FLASH中,通过软件控制程序运行,芯片中的信息通过JTAG口提供给开发者进行调试。
JTAG仿真器一端连接在PC的并口(打印机接口),另一端连接在开发板上,如图E.1所示。
JTAG仿真器可以购买现成产品也可以自行设计,自行设计可参考本书附录提供的原理图、PCB板图和元器件清单。
3.2IAREmbeddedWorkbench简介
IAREmbeddedWorkbench是一种用于开发应用各种不同的目标处理器的灵活的集成环境。
它提供一个方便的窗口界面用于迅速的开发和调试。
EmbeddedWorkbench支持多种不同的目标处理器,使用项目模式组织应用程序。
它有如下一些特点。
(1)通用性
a)可以在Windows环境下运行;
b)分层的项目(Project)表示;
c)直观的用户界面;
d)工具与编辑器全集成;
e)全面的超文本帮助。
(2)编辑器
a)可以同时编辑汇编和C语言源文件;
b)编辑汇编和C语言程序的句法用文本格式和颜色区别显示;
c)强有力的搜索和置换命令,而且可以多个文件搜索;
d)从出错列表直接跳转到出错的相关文件的相关语句;
e)可以设置在出错语句前标志;
f)圆括号匹配;
g)自动缩进,可以设置自动缩进的空格;
h)每个窗口的多级取消与恢复。
1IAREmbeddedWorkbench安装
在Windows环境下,双击FET_R445.EXE,安装过程中使用默认值。
有两种方式进入IAREmbeddedWorkbench开发环境:
(1)在Windows环境下依次单击“开始”、“程序”、“IARSystems”、“Embedded
WorkbenchforMSP430V3”、“IAREmbeddedWorkbench”。
注意:
IAREmbeddedWorkbench安装完成之后必须重新启动计算机,否则会导致程序编译的异常。
(2)双击IAREmbeddedWorkbench图标
。
进入嵌入式工作台软件环境后,可以进行程序的编辑、项目的管理、编译及连接工作。
2IAREmbeddedWorkbench使用指南
第一次使用程序编写调试一般需要经过创建工作站、创建并保存工程、创建或加载源文件、保存工作站、设置工作环境(目标芯片、调试方式、仿真器接口
类型、工程编译连接和调试七个步骤。
第一步,创建新工作站。
打开IAREmbeddedWorkbench。
单击:
“开始”、“程序”、IARSystems、IAR
EmbeddedWorkbenchForMSP430V3,自动创建一个新的工作站,出现如2.2所示的界面。
界面提示如下:
图2.2第一次进入EmbeddedWorkbench
Createnewprojectincurrentworkspace:
在新工作站中创建新的工程。
Addexistingprojecttocurrentworkspace:
添加已经存在的工程到当前的工作站中。
Openexistingworkspace:
打开已经存在的工作站。
Exampleworkspace:
打开示例工作站。
根据您的具体情况选择上述4个选项之一。
第二步,创建并保存工程。
单击选项中Createnewprojectinnewworkbench。
出现图2.3界面。
图2.3创建新工程
选择工程类型(Emptyproject、asm、C、C++或xternallybuiltexecutable),若选择的工程类型为Emptyproject,单击“OK”按钮,出现图2.4界面,选择保存路径,同时输入工程文件名(如test),单击保存,一个工程就建立完成了。
图2.4保存新工程
第三步,创建或加载源文件
(1)创建源程序。
单击File,New,File(如图2.5所示)或按快捷键Ctrl+N,出现如图2.4所示的源程序编辑界面。
图2.5创建源程序
图2.6编写源程序
将1.3.4中例子P1端口输出高电平源程序输入编辑窗,结果如图2.6。
编辑过程要注意标点应为英文。
程序代码如下:
ORG1100H;以下指令机器码存储在1100开始的连续存储单元
MOV.B#0FFH,&22H;P1方向寄存器P1DIR切换为输出
MOV.B#0FFH,&21H;P1输出寄存器设为全1,引脚输出高电平
ORG0FFFEH;以下指令机器码存储在0FFFEH开始的连续存储单元
DW1100H;在0FFFEH单元写入1100H
;对MSP430F149而言存储器FFFEH单元
;存储的是第一条指令的地址号
END
伪指令ORG,只在汇编时有用,汇编成的目标程序中就没有了。
在MSP430F149中汇编程序中ORGxxxxH表示下面紧接的一句汇编指令后放在地址xxxxH。
如上述代码第一条指令ORG01100H,表示目标代码43F20022
(MOV.B#0FFH,&022H)等顺序存放在地址单元号为1100H开始的存储器单元中,直到遇上另一个ORG语句为止。
程序中DW是伪指令,它的作用是告汇编器在生成目标程序时,在DW当前地址上写入DW后面跟的数据,数据宽度为一个字,本段程序中DW1100H,即在ORG0FFFEH指定的地址单元0FFFFH中写入1100H。
源程序编辑好之后,保存源文件。
单击工具条的保存或文件菜单(File中的Save)出现如图2.7界面,“保存在框”中选择好文件路径目录,“文件类型”框中填入430P1.s43。
注意不要忘记写上文件名后缀.s43,否则第③步添加源程序时无法找到需要的文件。
s43是430汇编语言的源文件扩展名。
图2.5保存源文件
注意,此时源程序虽然编辑完成,但仅仅是一个孤立的文件,不能进行编译、连接操作。
下面需将它加载到工程中进行管理,以便编译、连接生成目标代码。
(2)加载源文件。
点击菜单Project,Addfiles…出现图2.6所示加载源文件界面。
选择相应的文件类型(此处选择汇编程序),出现相应的文件,选中需要加载的文件后,点击“打开”按钮。
图2.6加载源文件
第四步保存工作站
依次点击File,SaveWorkspace出现如图2.8所示界面,输入文件名
TestWorkspace,点击“保存”。
保存工作站工作完成。
图2.8保存工作站
第五步编译环境设置
选中项目名称(test)后,单击鼠标右键,如图2.9所示。
从快捷菜单中选择Options进入图2.10所示参数设置界面。
环境设置需要设置目标芯片类型、仿真方式、仿真器类型等参数。
图2.9进入环境设置
(1)目标芯片设置,即选择需要调试的单片机型号。
在如图2.10设置界面中,从左边Category列表下选择GeneralOptions,在Target页的Device选项中选择目标芯片型号,本例选择MSP430F149。
如果是新建工程且只使用汇编语言需将Assembleronlyproject选中。
否则会出现默认C语言,连接时会出错。
图2.10目标芯片设置
(2)仿真方式设置。
设置软件模拟仿真或FET在线仿真调试。
在ategory列表下选择Debugger如图2.11界面,在Driver选项中选择FETDebugger或Simulator。
单使用FET仿真器连接目标板进行在线仿真调试时,选择FETDebugger,软件模拟仿真则选择Simulator。
图2.11仿真方式设置
(3)仿真器接口类型设置。
设置并口FET或USBFET。
若选择TETDebugger,最后需进入Category列表下选择FETDebugger,出现如图2.12界面,在Connection选择项中有三个可选项,单使用并口FET时,选择Lpt,同时根据连接并口的实际情况选择相应的并口Lpt1,Lpt2或Lpt3;若使用USB型仿真器,则选择TIUSEFET。
设置正确后单击“OK”按钮,完成环境设置。
图2.11仿真器类型设置
第六步工程编译和连接,调试。
工程编译,连接,调试通过选择菜单Project下的Compile/Make/Debug,或点击图2.12界面右上方的快捷按钮完成。
图2.12编辑编译连接环境界面
(1)工程编译和修改源程序。
在左侧工程管理选中源文件430P1.s43文件,
双击鼠标左键,进入源程序编辑状态。
编译图标
有灰变黑,激活编译功能,
此时单击Project,compile或单击Ctrl+F7键,或单击
按钮进行文件编译。
出现如图2.13下部分所示的错误提示,出错行前标注红色“√”。
图2.13汇编之后产生的错误
任意单击某一个错误提示,系统就会自动的跳到有错误的语句行。
仔细阅读错误提示,发现该行“;”不是英文符号。
修改后编译通过。
(2)连接生成目标代码。
源文件编译通过之后,将连接生成目标代码。
通过单击Project,Make,或按F7键,或单击
按钮,进行连接。
(3)调试。
在的程序通过了连接,生成目标代码之后。
通过单击Project
Debugger,或按Ctrl+F7键,或单击
按钮可以进入如图2.14所示的调试集成环境。
该环境在原编辑编译环境的基础上,工具栏增加了如图2.15所示的调试
快捷按钮。
图2.14调试环境简介
图2.15调试快捷按钮下面介绍一些常用的调试窗口。
所有的窗口通过单击菜单View下相应的内
容来激活显示,通过单击窗口右上角“×”来关闭。
(1)存储器窗口
如图2.16所示为存储器窗口。
单击View/Memory,可以打开此窗口。
MSP430的存储器为线性统一编址,小模式下存储器地址范围为0000H~0FFFFH。
此窗口可以观察其存储器的全部内容。
单击显示模式设置下拉列表可以设置显示格式:
1xUnits:
8位(单字节)显示、2xUnits:
16位(双字节)显示4xUnits:
32位(四字节)显示,LittleEndean:
高位在前BigEndean:
低位在前。
图2.16
中我们可以看到左边一列为地址号码,每行16个单元,中间部分为存储内容(机器代码或数据)。
图2.16上半图中第一行为地址编号从1100H-1107H单元的内容,即43f20022(MOV.B0FFH,&22H),43f20021(MOV.B0FFH,&21H)。
注意指令按16位形式存放,高位在前,也就是说1100H单元存放f2、1101H单元存放43、1102H单元存放22、1103H单元存放00等等,其他没有存储内容空间全为FFFF。
从图2.16下半图我们可以看见FFFEH-FFFFH单元存放1100,FFFEH-FFFFH单元的存放MSP430F149上电复、复位后的第一条指令的地址,因此单片机启动后将从1100H单元开始取指。
(2)源程序窗口
图2.16存储器窗口源程序窗口通常处于激活状态,若已经关闭可以通过双工程管理器中相应的源文件来激活。
如图2.23左侧所示。
窗口中的绿色指示为即将执行的指令语句
条。
随着程序的运行,此绿色指示条会改变,指向即将执行的语句。
(3)反汇编窗口
图2.17源程序窗口
单击View/Disassembly,则可以观察到如图2.18所示的地址-代码-源程序窗口。
此时的绿色指示条指示在具体的物理地址处,其上一行显示显示源程序,从该窗口可以看出每一条指令都开始于偶地址处。
(4)寄存器窗口
图2.18源程序/代码窗口
单击View/Register可以打开如图2.19所示的寄存器窗口。
通过下拉列表可以选择不同模块类型的寄存器。
选择CPURegisters打开如图2.20所示窗口。
可以方便查看PC(程序计数器)、SP(堆栈指针)、SR(状态寄存器的各位名称与对应位的值);R3为常数发生器,模拟指令使用,这里用户看不到;R4~R15给用户使用,可以查看与修改;CYCLECOUNT为程序执行所用的机器周期,通过它可以方便地知道执行代码的时间,在延时程序中经常会用到。
图2.19寄存器窗口
(5)观察窗口
图2.19CPU寄存器窗口
单击View/Watch,可以打开如图2.20所示的变量观察窗口。
窗口第1列是变量名称,第2列变量的数值,第3列是位置,第4列是类型。
图中已经有3个变量,要添加其他变量,可以在下面的虚线框内右击,再单击Add,然后输入变量名称;或直接在源程序中要观察的变量处右击,再击QuickWatch。
观察窗口中不想查看的变量名称可以方便的删除,在不想查看的变量处右击,单击
Remove。
选中相应变量第2列,单击右键可以将显示格式设置为2进制、8进制
10进制16进制、字符的形式。
三、实验设备
名称
指标
数量
微机
1台
双踪同步示波器
40MHz
1台
JTAG下载器(带并口下载线)
1套
MSP430系统最小板
1个
万用表
1个
工具
1盒
四、实验内容
1参照IAREmbeddedWorkbench开发环境学习MSP430开发环境。
(1)按照讲义的步骤学习MSP430程序编写和调试的方法,并记录相关的数
据。
代码:
ORG1100H
MOV.B#0FFH,&22H;P1方向寄存器P1DIR切换为输出
MOV.B#0FFH,&21H;P1输出寄存器设为全1,引脚输出高电平
ORG0FFFEH;以下指令机器码存储在0FFFEH开始的连续存储单元
DW1100H;在0FFFEH单元写入1100H
;对MSP430F149而言存储器FFFEH单元
;存储的是第一条指令的地址号
END
Flash地址fffe:
1110
CpuRegisters:
CYCLECOUNTER=0;CCTIMER1=0;CCTIMER2=0;
(2)观察并记录SR寄存器在POR和PUC之后的初始值,填写下表:
15~9
V
SCG1
SCG0
CPUOff
GIE
N
Z
C
POR
0
0
0
0
0
0
0
0
0
PUC
0
0
0
0
0
0
0
0
0
2学习MSP430汇编语言和C语言编程的方法。
(1)用汇编语言编写程序,实现二进制转为BCD码,列出程序并记录测试数据和结果
BINDECMOV#16,R7
CLRR6
CLRR5
LS1RLAR4
DADDR5,R5
DADDR6,R6
DECR7
JNZLS1
RET
(2)用C编写程序,实现二进制转为BCD码,列出程序并记录测试数据和
结果
8位的二进制转成BCD码
#defineucharunsignedchar
uchar8_bit;
ucharge,shi,bai;
bai=8_bit/100;
shi=8_bit%100/10;
ge=8_bit%10;
(3)用汇编语言编写程序,实现BCD码转为二级制,列出程序并记录测试
数据和结果(选做)
4位BCD码转换成二进制数:
BCD码放在50~53H中,二进制数放在R3R4中。
IDTB:
MOVR0,#50H
MOVR2,#3
MOVR3,#0
MOVA,@R0
MOVR4,A
LOOP:
MOVA,R4
MOVB,A
MULAB
MOVR4,A
MOVA,#10
XCHA,B
XCHA,R3
MULAB
ADDA,R3
XCHA,R4
INCR0
ADDA,@R0
XCHA,R4
ADDCA,#0
MOVR3,A
DJNZR2,LOOP
NOP
RET
实验二MSP430基本时钟模块及低功耗结构
一、实验目的
掌握MSP430单片机基本时钟模块的原理及使用方法
二、实验原理
3.1MSP430X1XX系列时钟模块
从图中可以看出,它有3个时钟输入源:
(1)LFXT1CLK由低频时钟晶体产生的低频时钟源,由标准高频晶体或陶瓷谐振器产生的高频时钟源以及外接时钟信号源。
(2)XT2CLK由标准晶体或陶瓷谐振器产生,外接450KHz~8MHz时钟信号源。
(3)DCOCLK片内可以数字控制的RC振荡器。
基础时钟模块可以提供3种时钟信号:
(1)ACLK(辅助时钟)ACLK是LFXT1CLK信号经1,2,4,8分频后得到的。
分频系数可选,有参数DIVA控制。
ALCK可由软件选作各个外围模块的时钟信号。
(2)MCLK(系统主时钟)MCLK可由软件选择来自LFXT1CLK,XT2CLK,DCOCLK三者之一,然后经1,2,4,8分频得到。
分频系数由DIVM控制。
MCLK主要用
于CPU和系统。
(3)SMLK(子系统时钟)可由软件选择来自LFXT1CLK,XT2CLK,DCOCLK三者之一,然后经1,2,4,8分频得到。
分频系数由DIVS控制。
MCLK主要用于各外围模块。
3.2低速晶体振荡器
低速晶体振荡器在MSP430FLASH系列的每一个器件中都能找到。
一般是指
32768Hz的时钟晶体,同时将所需两个小电容也集成在内部。
这样可降低系统成本,同时降低系统功耗。
LFXT1振荡器在发生有效的PUC后开始工作,一次有效的PUC信号可以将SR寄存器(状态寄存器)的OscOff位复位,即允许LFXT1作。
LFXT1CLK信号没有用作SMCLK或MCLK信号,则可以用软件将OscOff位置以禁止LFXT1工作。
LFXT1的结构如下图所示:
F1XX系列的LFXT1振荡器
当使用32768Hz的晶体时只须连到相应的引脚,两个小电容已经集成在芯片内部。
应注意:
这时LFXT1工作在低频模式,XTS位应复位。
同时LFXT1振荡器也可以外接频率较高的高速晶体振荡器或陶瓷振荡器,以工作在高速模式;这时XTS位置位,同时两个引脚还要外接电容,电容大小根据晶体或振荡器的特性来选择。
3.3高速晶体振荡器
高速振荡器主要存在于F13X,F14X,F4XX等器件,一般称之为第二振荡器XT2,它产生时钟信号XT2CLK,它的工作特性与LFXT1振荡器工作在高频模式是类似。
下图是TX2振荡器的控制逻辑。
如果XT2CLK信号没用做MCLK、SMCLK时钟信号,则可以用XT2Off控制位关闭XT2;如果CPUOff=0,SELM=2,则XT2CLK用做MCLK时钟;如果SCG1=0且SELS=1,XT2CLK用做SMCLK时钟。
3.4DCO振荡器
XT2振荡器的控制逻辑
MSP430FLASH系列的两个外部振荡器产生的时钟信号都可以经1,2,4,8
分频后用作系统主时钟MCLK。
当振荡器失效时,DCO振荡器会自动被选做MCLK的时钟源;上电复位时,不对时钟模块进行任何设置,不加外部振荡器,DCO振荡器也会选做MCLK的时钟源,频率在800K左右。
DCO振荡器实质上是一个可数字控制的RC振荡器。
因为RC振荡器的频率会随着温度和工作电压的变化而变化,所以同一型号芯片产生的频率有所不同。
但同时DCO频率可通过DCO、MOD、Rsel等控制位用软件调节,这又增加了振荡器频率的稳定性。
三、实验设备
名称
指标
数量
微机
1台
JTAG下载器(带并口下载线)
1套
MSP430系统最小板
1个
万用表
1个
工具
1盒
四、实验内容
1用低频晶振产生辅助时钟ACLK并输出,用示波器观察输出波形并记录其波形和频率。
设MCLK=XT1,将ACLK由P2.0输出程序如下:
#include
voidmain(void)
{
unsignedinti;
WDTCTL=WDTPW+WDTHOLD;//停止看门狗
P2DIR|=0X01;//设置P2.0为输出
P2SEL|=0X01;//设置P2.0为MCLK输出
BCSCTL1&=~XTS;//设置XTS为有效低频输出
do{
IFG1&=~OFIFG;//清除振荡器失效标志
for(i=0xFF;i>0;i--);//稳定时间
}
}
2用高速晶体振荡器产生系统时钟MCLK并输出,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 实验 报告