MSP430系列微控制器开发软件的使用2.docx

上传人:b****5 文档编号:29380882 上传时间:2023-07-22 格式:DOCX 页数:27 大小:549.13KB
下载 相关 举报
MSP430系列微控制器开发软件的使用2.docx_第1页
第1页 / 共27页
MSP430系列微控制器开发软件的使用2.docx_第2页
第2页 / 共27页
MSP430系列微控制器开发软件的使用2.docx_第3页
第3页 / 共27页
MSP430系列微控制器开发软件的使用2.docx_第4页
第4页 / 共27页
MSP430系列微控制器开发软件的使用2.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

MSP430系列微控制器开发软件的使用2.docx

《MSP430系列微控制器开发软件的使用2.docx》由会员分享,可在线阅读,更多相关《MSP430系列微控制器开发软件的使用2.docx(27页珍藏版)》请在冰豆网上搜索。

MSP430系列微控制器开发软件的使用2.docx

MSP430系列微控制器开发软件的使用2

第2章MSP430系列微控制器开发软件的使用——流水灯控制电路的设计

目标

通过本章的学习,应掌握以下知识

●MSP430微控制器开发软件的使用

●工程(Project)的概念

●C语言源程序的编辑

●C语言源程序的结构

●源程序的编译

●源程序对逻辑资源的占用和它的运行时间

●源程序的模拟调试

●源程序的仿真调试

引言

基于微控制器的电路开发,无论大到一个复杂的应用系统,还是小到一个本章将要涉及的流水灯控制电路,设计者都需要具备以下3个方面的知识:

第一是对所使用微控制器芯片的了解;第二是编程语言的掌握;第三为开发软件的使用。

MSP430系列微控制器的编程语言包括汇编语言和C语言,本书采用C语言作为开发语言。

MSP430系列微控制器的开发软件有2种,TI公司提供的CodeComposerTMStudio开发软件和IAR公司的产品EmbeddedWorkbenchforMSP430开发软件。

这两种开发软件都可以从TI公司的网站下载免费的代码限制版。

代码限制版的含义是这种版本的开发软件只支持小规模用户程序的处理,或者说只支持初学者所编写的小规模程序的整个开发过程。

CodeComposerTMStudio开发软件的代码限制版可以支持16kB的用户程序处理,EmbeddedWorkbenchforMSP430开发软件的代码限制版可以支持4kB的用户程序处理。

本章分别描述EmbeddedWorkbenchforMSP430开发软件和CodeComposerTMStudio开发软件的使用。

通过设计一个使用P1并行输入/输出端口控制的流水灯电路来介绍应用系统的开发过程。

内容包括工程建立,源程序的编辑、编译、模拟调试以及需要向目标芯片下载程序代码的仿真调试。

源程序采用C语言编写。

作为第一个接触的应用程序,程序中涉及的系统时钟、监视定时器和P1端口的配置部分,建议读者简单地承认。

2.1流水灯电路

硬件电路是编写软件程序的基础,电路的具体结构决定了源程序的组成。

图2.1所示为一个由8个发光二极管组成的流水灯电路。

图2.1基于P1端口的流水灯原理电路图

图2.1给出的基于P1并行输入/输出端口的流水灯原理电路图是在图1.3所示的MSP430芯片最小系统电路图的基础上,通过添加8个发光二极管构成的。

芯片不需要使用的管脚在这里没有画出,组装电路的时候这些没有画出的管脚悬空即可。

二极管D1~D8和电阻R2组成流水灯的显示电路。

图中8个发光二极管的连接方式被称为共阴极连接方式,即所有发光二极管的N极被连接在一起,再通过电阻R2与地线相连接。

对于这种连接方式,如果P1端口的某个管脚输出逻辑“1”,即高电平,则对应的发光二极管将被点亮;如果P1端口的某个管脚输出逻辑“0”,即低电平,则对应的发光二极管将熄灭。

电阻R2为限流电阻,限流电阻用来防止电流过大损坏电路器件。

由于不同型号发光二极管的技术参数存在差异,应根据具体情况来确定限流电阻的阻值,限流电阻的取值范围是100Ω~1kΩ。

为保证电路的安全,限流电阻的阻值开始可以选取大一些,如果发光二极管的亮度不够,再逐渐减小限流电阻的阻值,直到发光二极管的亮度满足要求。

限流电阻还有第二种接入方法。

第二种方法是每个发光二极管都与1个限流电阻串联,然后再分别与地相连。

这时共需8个电阻。

限流电阻的第一种接入方法的优点是接线简单,第二种方法的优点是在点亮不同个数的发光二极管时亮度能够保持一致。

MSP430系列微控制器支持多个时钟信号源,其中包括芯片内部的数字控制振荡器(DCO)。

数字控制振荡器属于RC振荡器,具体工作频率可以通过软件进行设置。

微控制器复位以后,系统默认的时钟信号就来自于这个数字控制振荡器。

由于流水灯电路对时钟稳定度和精度的要求都不高,这里将采用这个时钟信号源,因此图2.1所示的电路中不需要外部的时钟电路。

数字控制振荡器的默认工作频率大约1MHz,不同型号的MSP430微控制器芯片存在一些差异。

2.2EmbeddedWorkbenchforMSP430开发软件的使用

这里使用EmbeddedWorkbenchforMSP430开发软件的版本为v5.30。

EmbeddedWorkbenchforMSP430开发软件对设计过程的管理采用工程方式。

工程(Project)保存着设计输入的编辑信息和设计调试的环境信息等内容。

在开始设计输入之前首先需要建立一个工程。

新建一个工程之前需要为它建立一个专用的文件夹,后面产生的工程文件以及设计输入文件等都将存储在这个文件夹之中。

建议不同工程的文件最好放在不同的文件夹中,同一工程的所有文件都放在同一个文件夹中。

建议一个文件夹只存储一个工程,一个工程中只包含一个设计输入文件,这样文件夹名称、工程名称、设计文件名称都可以取为相同名称,它们之间的区别通过文件扩展名来实现。

新建一个文件夹“led_8”,用来保存由8个发光二极管组成的流水灯电路的显示控制工程中的所有文件。

2.2.1创建工程(Project)

图2.2所示为已经打开EmbeddedWorkbenchforMSP430开发软件后呈现的工作窗口。

窗口中将自动出现一些开发软件的使用介绍信息,如果现在不想阅读,可以将这个窗口关闭,也可以置之不理。

图2.2EmbeddedWorkbenchforMSP430开发软件的工作窗口

在工作窗口中,用菜单“Project→CreateNewProject...”可以打开创建新工程窗口,如图2.3所示。

图2.3创建新工程窗口

创建新工程窗口默认产生一个新的工程,即这个窗口中“Projecttemplates”栏目中的“Emptyproject”,因此这里仅需要简单地点击“OK”按钮即可。

点击“OK”按钮将打开新工程存储窗口,如图2.4所示。

图2.4新工程存储窗口

利用这个窗口可以将创建的新工程存储到专门为它建立的文件夹之中。

由下拉菜单“保存在(I)”找到专门为它建立的文件夹,例如这里的“led_8”;在下拉菜单“文件名(N)”输入新工程的名称,例如这里的“led_8”;在下拉菜单“保存类型(T)”,已经默认为工程类型“ewp”,因此不用修改。

不同工程的文件最好放在不同的文件夹中,同一工程的所有文件都放在同一文件夹中。

由于在一个文件夹中将只保存一个工程的相关文件,因此文件夹名称、工程名称以及后面将要命名的源程序名称都推荐采用同一名称。

在图2.4中,点击“保存(S)”按钮将返回到EmbeddedWorkbenchforMSP430开发软件的工作窗口,如图2.5所示。

对比图2.2,在现在的工作窗口,工作区“Workspace”的文件栏目“Files”已经不再是空的,呈现出了新建的工程标志,led_8。

这表示已经完成工程的创建。

图2.5EmbeddedWorkbenchforMSP430开发软件的工作窗口

2.2.2编辑源程序

在EmbeddedWorkbenchforMSP430开发软件工作窗口中,用菜单“File→New→File”可以创建一个新的编辑窗口,即文本输入窗口。

使用工作窗口中的符号

也可以实现同样功能。

包含新编辑窗口的工作窗口如图2.6所示。

这个新编辑窗口当前没有被命名,名称栏显示“Untitled1”。

图2.6EmbeddedWorkbenchforMSP430开发软件的工作窗口

编辑窗口被用来编辑C语言源文件。

编辑窗口,即C语言源文件,的命名可以用菜单“File→SaveAs...”打开如图2.7所示的“另存为”窗口来实现。

图2.7“另存为”窗口

“另存为”窗口的下拉菜单“保存在(I)”将自动指向为当前工程创建的文件夹“led_8”。

窗口中的文件夹“settings”保存着所建立工程的相关内容。

编辑窗口支持多种文本文件的编辑。

这个窗口中的下拉菜单“保存类型(T)”将显示出编辑窗口能够进行编辑文本文件的所有类型。

在下拉菜单“文件名(N)”输入将要编辑的文本文件的名称和文件扩展名,led_8.c。

扩展名“c”表示这个文本文件采用C语言编写。

通过点击“保存(S)”按钮将返回到EmbeddedWorkbenchforMSP430开发软件的工作窗口。

图2.8EmbeddedWorkbenchforMSP430开发软件的工作窗口

图2.8为已经完成C语言源文件编辑的EmbeddedWorkbenchforMSP430开发软件工作窗口。

在文本编辑窗口中,C语言源程序中第1句是包含语句

#include//包含名称定义和对应地址或数据的头函数

这条语句将开发软件提供的头文件MSP430.h包含进本程序。

头文件MSP430.h直接,或者间接,地声明了许多内容,其中就包括这里需要使用的P1端口功能寄存器“P1SEL”、方向寄存器“P1DIR”、输出寄存器“P1OUT”名称。

头文件建立了这些功能寄存器名称与它们地址之间的关系,这样就可以通过这些名称进行寄存器的访问。

使用名称比使用地址具有明显的物理意义,而且也容易记忆。

C语言源程序中必须具有一个主函数。

语句

voidmain(void)//主函数

声明主函数。

不同的编译系统对函数的格式要求不一样,对于EmbeddedWorkbenchforMSP430开发软件,希望读者按照这个格式输入。

主函数中的第一句

WDTCTL=WDTPW+WDTHOLD;//关闭看门狗

用来关闭MSP430芯片中的监视定时器,也称看门狗。

监视定时器用来当程序运行不正常时使MSP430芯片复位,然后从新开始工作。

为简化程序结构,这里简单地关闭了MSP430芯片中的监视定时器。

接着的两条语句

P1SEL=0x00;//设置P1端口为数字输入/输出口

P1DIR=0xff;//设置P1端口为输出口

用来对驱动发光二极管的P1端口的管脚进行配置,将这些管脚配置为数字信号输入/输出管脚,信号传输方向为输出方向。

发光二极管的闪烁应该一直在程序的控制之下,这里使用下面语句实现这个想法。

while

(1)//重复执行

{

P1OUT=0x01;//依次点亮每一个发光二极管

P1OUT=0x02;

P1OUT=0x04;

P1OUT=0x08;

P1OUT=0x10;

P1OUT=0x20;

P1OUT=0x40;

P1OUT=0x80;

}

微控制器芯片的工作必须一直在程序的控制之下,因此C语言源程序中必须具有这样一个无条件循环结构。

需要执行的任务放在这个无条件循环结构之内,使之重复执行。

在图2.8所示的编辑窗口中,程序语句后面存在被称作为注释的程序说明。

注释由双斜杠“//”开始,直到本行结束。

注释可以与某条语句同行,也可以独立成行。

注释也可以包含在符号“/*”和“*/”之间。

使用这两个符号可以包含1行,也可以包含多行。

2.2.3编译源程序

在编译源程序之前,需要选择程序运行的目标芯片。

在EmbeddedWorkbenchforMSP430开发软件工作窗口,用菜单“Project→Options...”可以打开如图2.10所示的源程序编译条件选择窗口。

在工作区的“Files”栏目,用鼠标选择工程标志“led_8”,再点击鼠标右键将打开一个浮动菜单,如图2.9所示。

图2.9浮动菜单

在浮动菜单中选择“Options...”也打开如图2.10所示的源程序编译条件选择窗口。

图2.10源程序编译条件选择窗口

图2.10所示窗口的左侧为目录,当前在“Category”中选择的是“GeneralOptions”。

窗口的右侧为“GeneralOptions”中可以选择的具体内容。

“GeneralOptions”具有多个选项卡,图示为目标芯片选项卡“Target”。

在这个选项卡中,由“Device”栏目的下拉菜单可以展示所使用版本的EmbeddedWorkbenchforMSP430开发软件支持的全部芯片系列的名称。

从展示的芯片系列名称中可以选择目标芯片从属的系列,例如选择“MSP430GxxxFamily”芯片系列。

随着目标芯片系列名称的选择,该系列中被支持的芯片名称将被显示。

选择“MSP430G2231”作为本次设计将要使用的目标芯片。

完成选择以后“Device”栏目的文本框中将显示“MSP430G2231”。

图2.10所示的源程序编译条件选择窗口中其它内容保持默认状态。

通过点击窗口中的“OK”按钮完成目标芯片的选择。

在编译源程序之前,还需要将完成编辑的C语言源程序添加到工程之中。

这个添加工作同样可以通过如图2.9所示浮动菜单完成。

在浮动菜单中选择“Add”将打开一个添加文件列表,选择“Add“led_8.c””即可完成添加工作。

在开发软件工作窗口,用菜单“Project→AddFiles...”可以打开一个包含“led_8.c”文件的窗口,选择“led_8.c”文件,点击窗口中的“打开(O)”按钮也可以完成这个添加工作。

完成C语言源程序添加以后的工作区“Workspace”窗口如图2.11所示。

图2.11工作区“Workspace”窗口

在EmbeddedWorkbenchforMSP430开发软件工作窗口中,用菜单“File→SaveWorkspace”将打开一个类似于图2.4所示的工作区存储窗口“SaveWorkspaceAs”。

在下拉菜单“文件名(N)”输入工作区的名称,这里也同样为“led_8”。

点击“保存(S)”按钮将返回到EmbeddedWorkbenchforMSP430开发软件的工作窗口。

上述必需的操作步骤完成以后,在工作窗口,用菜单“Project→Make”就可以开始C语言源程序“led_8.c”的编译。

使用工作窗口中的符号

也可以实现同样功能。

完成编译工作以后的EmbeddedWorkbenchforMSP430开发软件的工作窗口如图2.12所示。

图2.12EmbeddedWorkbenchforMSP430开发软件的工作窗口

工作区窗口“Workspace”显示工程中包含的文件。

信息窗口“Messages”显示C语言源程序“led_8.c”存储需要100bytes的代码存储空间;程序运行需要50bytes的数据存储空间的支持等内容。

MSP430G2231芯片具有2kB的程序存储器和128B的数据存储器,MSP430F2619芯片具有120kB的程序存储器和4kB的数据存储器,两者都具有足够的逻辑资源支持工程led_8。

EmbeddedWorkbenchforMSP430的代码限制版的开发软件支持4kB的用户程序,也满足支持工程led_8的要求。

信息窗口“Messages”还显示C语言源程序“led_8.c”的编译过程中没有错误,也没有警告。

如果编译过程中发现错误,将不能产生向芯片下载的代码。

出现警告信息,向芯片下载的代码可以产生,但是建议检查产生警告信息的原因。

2.2.4模拟调试

C语言源程序的编译成功只能说明程序不存在语法错误,并不能证明它没有逻辑错误。

通过逐步执行语句,观察执行过程中相关数据的变化情况可以判断程序是否满足设计要求。

EmbeddedWorkbenchforMSP430开发软件提供这样的调试环境。

EmbeddedWorkbenchforMSP430开发软件的程序调试支持需要硬件电路支持的仿真调试和只在计算机上进行的模拟调试两种方式。

在图2.10所示的源程序编译条件选择窗口的“Category”中选择“Debugger”,这时的窗口如图2.13所示。

图2.13源程序编译条件选择窗口

在窗口右侧选择“Setup”选项卡,在“Driver”栏目利用下拉菜单选择“Simulator”,点击窗口中的“OK”按钮返回工作窗口,这样就可以使用EmbeddedWorkbenchforMSP430开发软件提供的模拟调试环境。

2.2.4.1源程序逻辑功能检查

在工作窗口,用菜单“Project→Downloadanddebug”能够进入调试环境,如图2.14所示。

使用工作窗口中的符号

也可以实现同样功能。

图2.14中的led_8.c现在不是设计输入的编辑窗口,而是进行程序调试的窗口。

窗口左侧的箭头指向的语句,同时这条语句具有绿色阴影,为将要执行的语句。

注意,是将要执行,但是还没有执行。

led_8.c调试窗口右边的窗口“Disassembly”为反汇编窗口。

这个窗口中的内容为C语言程序led_8.c经过反汇编以后产生对应的汇编语言程序。

这里不需要汇编语言程序,这个反汇编窗口可以关闭。

图2.14EmbeddedWorkbenchforMSP430开发软件的调试窗口

使用菜单“View→Registers”可以打开MSP430微控制器的内部寄存器的显示窗口。

打开内部寄存器显示窗口的工作窗口如图2.15所示。

图2.15EmbeddedWorkbenchforMSP430开发软件的调试窗口

内部寄存器显示窗口“Registers”具有一个下拉菜单,用来选择希望观察的寄存器。

利用这个下拉菜单可以选择MSP430微控制器的全部内部寄存器。

这个下拉菜单当前选择“Port1/2”,即选择观察芯片数字并行输入/输出端口P1和P2相关寄存器。

图2.15中的“Registers”窗口当前显示P1端口的所有寄存器名称和寄存器当前的内容。

点击寄存器名称前面的“+”标志可以显示寄存器中每一位的状态。

工作窗口中的“Debug”菜单中包含多种程序调试工具。

常用的调试工具如下。

■StepInto

使用该调试工具可以使程序逐条执行。

使用快捷键F11和工作窗口中的符号

也可以实现同样功能。

■StepOver

使用该调试工具可以使程序在一个函数内部逐条执行,但不进入其它的函数。

使用快捷键F10和工作窗口中的符号

也可以实现同样功能。

“StepInto”调试工具与该调试工具的区别是可以进入其它的函数内部逐条执行,完全描述微控制器内部程序的执行过程。

在被调用函数已经调试通过的情况下,使用工具“StepOver”可以加快调试速度。

■StepOut

使用该调试工具可以立即完成当前函数的运行,返回调用该函数的上一级函数。

使用快捷键Shift+F10和工作窗口中的符号

也可以实现同样功能。

■RuntoCursor

将光标置于某条语句,使用该调试工具可以使程序直接运行到光标位于的语句处。

使用工作窗口中的符号

也可以实现同样功能。

将光标置于希望观察运行情况的语句处,使用这个调试工具能够使程序立即运行到这条语句,加快调试速度。

■StopDebugging

使用该调试工具可以关闭模拟调试环境,返回源程序编辑窗口。

使用快捷键Ctrl+Shift+D和工作窗口中的符号

也可以实现同样功能。

图2.8所示EmbeddedWorkbenchforMSP430开发软件工作窗口中的C语言源文件只包含主函数,因此现在使用StepInto调试工具和StepOver调试工具的效果一样。

每使用一次这个调试工具,C语言源文件将执行一句。

发光二极管逐个顺序、循环地进行点亮,再熄灭的变化过程可以由内部寄存器显示窗口“Registers”中“P1OUT”寄存器的内容形象地显示出来。

点击寄存器P1OUT名称前面的“+”标志还可以显示这个寄存器中每一位的内容。

每一位的内容表示“P1”端口的每一个管脚当前的状态。

当程序进入语句

while

(1)//重复执行

的语句体之中,随着语句的逐条顺序、循环执行,“P1OUT”寄存器中的内容将显示对应的数据,这个数据表示P1端口的各个管脚逐个顺序、循环地进行从低电平到高电平,再从高电平到低电平的变化,模拟管脚连接的发光二极管逐个顺序、循环地进行点亮,再熄灭的变化过程。

2.2.5.2源程序运行时间检查

程序调试不仅需要检查逻辑关系是否满足,而且还需要检查时间关系是否满足要求。

使用内部寄存器显示窗口“Registers”下拉菜单,选择“CPURegisters”,这时的开发软件的工作窗口如图2.16所示。

图2.16EmbeddedWorkbenchforMSP430开发软件的工作窗口

利用“CPURegisters”窗口可以检查源程序的执行时间。

“CPURegisters”窗口最下面的4行的内容中涉及程序的执行时间。

前3行显示从开始调试程序所花费的总时间,第4行为刚执行的程序,1条语句或者多条语句,花费的时间。

每执行1次向P1端口进行数据传输的语句,需要的时间可以从第4行进行观察。

这里花费时间的单位为MSP430系统的机器周期。

前面提到过数字控制振荡器的默认工作频率大约1MHz,默认的机器周期与振荡器的周期相同,因此对应机器周期约1us。

每执行1次向P1端口进行数据传输的语句,需要4个,或5个机器周期,对应约4us,或5us的时间。

注意,上述程序执行时间显示,如果程序正常运行,那么每个发光二极管的点亮时间约为4us,或5us,接着下一个发光二极管将被点亮。

如此快的速度进行发光二极管的依次、循环地进行亮、灭工作,观察起来就像8个发光二极管同时都被点亮一样。

2.2.5仿真调试

EmbeddedWorkbenchforMSP430开发软件不仅支持模拟调试,而且还支持仿真调试,就是观察硬件电路对程序的真实执行情况。

模拟调试通过观察寄存器P1OUT的内容来设想发光二极管的工作情况,仿真调试则可以观察到发光二极管的真实工作情况,即看到发光二极管的点亮,或者熄灭的状态。

上一节介绍的模拟调试过程不需要建立硬件电路与PC机的联系,本节介绍的仿真调试过程需要建立硬件电路与PC机的联系。

硬件电路与PC机的联系可以通过硬件开发工具来建立。

硬件开发工具一边连接PC机,另一边连接MSP430微控制器芯片。

在图2.10所示的源程序编译条件选择窗口的“Category”中选择“Debugger”,这时的窗口如图2.17所示。

图2.17源程序编译条件选择窗口

在窗口右侧选择“Setup”选项卡,在“Driver”栏目利用下拉菜单选择“FETDebugger”,这样就可以使用EmbeddedWorkbenchforMSP430开发软件提供的仿真调试环境。

这里FET为FlashEmulationTool的缩写,表示这时执行的指令为MSP430芯片内部程序存储器(Flash)中存储的内容。

MSP430系列芯片的硬件开发工具与PC机的连接接口具有多种形式。

具体形式的选择也能够通过源程序编译条件选择窗口完成。

在源程序编译条件选择窗口的“Category”中选择“FETDebugger”,这时的窗口如图2.18所示。

在窗口右侧选择“Setup”选项卡,在“Connection”栏目利用左侧的下拉菜单显示当前使用的EmbeddedWorkbenchforMSP430开发软件所支持的PC机接口。

图2.18已经显示了支持的连接接口类型。

当前使用的开发软件支持的接口类型包括USB接口和并行接口。

如果选择并行接口,这时“Connection”栏目右侧下面的并行接口选择下拉菜单将被激活,利用它可以完成PC机并行接口的选择。

德州仪器(TI)公司提供给

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

当前位置:首页 > 解决方案 > 商业计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1