1、MSP430系列微控制器开发软件IAR的使用2 MSP430系列微控制器开发软件IAR的使用流水灯电路的设计2.1 引言基于微控制器的电路开发,无论大到一个应用系统,还是小到一个本章将要涉及的流水灯控制电路,设计者都需要具有以下3个方面的知识:对所使用微控制器芯片的了解、编程语言的掌握和开发软件的使用。MSP430系列微控制器的开发软件有2种,一种为TI公司提供的Code ComposerTM Essentials开发软件,另一种为IAR公司的产品Embedded Workbench for MSP430。这两种开发软件都可以从TI公司的网站下载免费的代码限制版。本章描述Embedded Wo
2、rkbench for MSP430开发软件的使用,这里以版本v5.30为例,通过编写一个使用P1并行输入/输出端口控制的流水灯来介绍应用系统的开发过程,内容包括工程建立,源程序的编辑、编译、模拟调试以及向目标芯片的程序代码下载。源程序采用C语言编写。作为第一个接触的应用程序,程序中涉及的系统时钟初始化、P1端口的配置部分建议读者简单地承认。硬件电路是编写软件程序的基础,电路的具体结构决定了源程序的组成。图2.1所示为一个由8个发光二极管组成的流水灯电路。图2.1 基于P1端口的流水灯原理电路图图2.1给出的基于P1并行输入/输出端口的流水灯原理电路图是在图1.3所示的MSP430芯片最小系统
3、电路图的基础上,通过添加8个发光二极管构成的。芯片不需要使用的管脚在这里没有画出,组装电路的时候这些没有画出的管脚悬空即可。二极管D1D8和电阻R2组成流水灯的显示电路。图中8个发光二极管的连接方式被称为共阴极连接方式,即所有二极管的N极被连接在一起,再通过电阻R2与地线相连接。对于这种连接方式,如果P1端口的某个管脚输出逻辑“1”,即高电平,则对应的发光二极管被点亮;如果P1口的某个管脚输出逻辑“0”,即低电平,则对应的发光二极管熄灭。电阻R2为限流电阻,限流电阻用来防止电流过大损坏电路器件。由于不同型号的发光二极管的技术参数不同,应根据具体情况来确定限流电阻的阻值,限流电阻的取值范围是10
4、01k。为保证电路的安全,限流电阻开始可以选取大一些,如果发光二极管的亮度不够,再逐渐减小限流电阻的值,直到发光二极管的亮度满足要求。限流电阻还有第二种接入方法。第二种方法是每个发光二极管都与1个限流电阻串联,再分别与地相连。这时共需8个电阻。限流电阻的第一种接入方法的优点是接线简单,第二种方法的优点是在点亮不同个数的发光二极管时亮度能够保持一致。MSP430系列微控制器支持多个时钟信号源,其中包括芯片内部的数字控制振荡器(DCO)。这是一个RC振荡器,具体工作频率可以通过软件进行设置。微控制器复位以后,系统默认的时钟信号就来自于这个数字控制振荡器。由于流水灯电路对时钟稳定度和精度的要求都不高
5、,这里将采用这个时钟信号源,因此图2.1所示的电路中不需要外部的时钟电路。数字控制振荡器的默认工作频率大约1MHz,不同型号的微控制器芯片具有一些差异。2.2 创建工程(Project)Embedded Workbench for MSP430开发软件对设计过程的管理采用工程方式。工程(Project)保存着输入编辑的信息和设计调试的环境等内容。在开始设计输入之前首先应该建立一个工程。新建一个工程之前还需要建立一个文件夹,后面产生的工程文件以及源代码文件等都将存储在这个文件夹之中。建议不同工程的文件最好放在不同的文件夹中,同一工程的所有文件都放在同一个文件夹中。图2.2所示为打开Embedde
6、d Workbench for MSP430开发软件后呈现的工作窗口。窗口中将自动出现一些使用介绍信息,如果现在不想阅读,可以将这个窗口关闭,也可以置之不理。图2.2 Embedded Workbench for MSP430开发软件的工作窗口在工作窗口中,用菜单“Project Create New Project.”打开创建新工程窗口,如图2.3所示。图2.3 创建新工程窗口创建新工程窗口默认产生一个新的工程,即“Empty project”,因此这里仅需要简单地点击“OK”按钮即可。点击“OK”按钮将打开新工程存储窗口,如图2.4所示。图2.4 新工程存储窗口利用这个窗口可以将创建的新工
7、程存储到专门为它建立的文件夹之中。由下拉菜单“保存在(I)”找到专门为它建立的文件夹,例如这里的“led_8”;在下拉菜单“文件名(N)”输入新工程的名称,例如这里的“led_8”;在下拉菜单“保存类型(T)”,由于默认为工程类型“ewp”,因此不用修改。不同工程的文件最好放在不同的文件夹中,同一工程的所有文件都必须放在同一文件夹中。文件夹名称、工程名称以及后面将要命名的源程序名称推荐采用同一名称。 在图2.4中,点击“保存(S)”按钮将返回到Embedded Workbench for MSP430开发软件的工作窗口,如图2.5所示。在现在的工作窗口,工作区“Workspace”已经不再是空
8、的,呈现出了新建的工程标志,led_8。图2.5 Embedded Workbench for MSP430开发软件的工作窗口2.3 编辑源程序在Embedded Workbench for MSP430开发软件工作窗口中,用菜单“File New File”可以创建一个新的编辑窗口。包含新编辑窗口的工作窗口如图2.6所示。这个新编辑窗口当前没有被命名,名称栏显示“Untitled1”。图2.6 Embedded Workbench for MSP430开发软件的工作窗口编辑窗口支持多种文本文件的编辑。用菜单“File Save As.”可以打开如图2.7所示的“另存为”窗口。这个窗口中的下拉
9、菜单“保存类型(T)”显示出了编辑窗口能够进行编辑的文本文件类型。图2.7 “另存为”窗口 “另存为”窗口的下拉菜单“保存在(I)”将自动指向为当前工程创建的文件夹“led_8”。窗口中的文件夹“settings”保存着刚建立工程的相关内容。 在下拉菜单“文件名(N)”输入将要编辑的文本文件的名称和文件扩展名,led_8.c。扩展名表示这个文本文件采用C语言编写。通过点击“保存(S)”按钮将返回到Embedded Workbench for MSP430开发软件的工作窗口。图2.8为已经完成C语言源文件编辑的Embedded Workbench for MSP430开发软件工作窗口。 在文本编
10、辑窗口中,C语言源程序中第1句是包含语句 #include / 包含名称定义和对应地址或数据的头函数这条语句将开发软件中的头文件MSP430.h包含进本程序。头文件MSP430.h声明了许多内容,其中就包括这里需要使用的P1端口功能寄存器“P1SEL”、方向寄存器“P1DIR”、输出寄存器“P1OUT”。头文件建立了这些功能寄存器名称与它们地址之间的关系,这样就可以通过这些名称进行寄存器的访问。图2.8 Embedded Workbench for MSP430开发软件的工作窗口 C语言源程序中必须具有一个主函数。语句 int main(void) / 主函数声明主函数。不同的编译系统对函数的
11、格式要求不一样,对于Embedded Workbench for MSP430开发软件,希望读者按照这个格式输入。 主函数中的第一句 WDTCTL=WDTPW+WDTHOLD; / 关闭看门狗用来关闭MSP430系列芯片中的监视定时器,也称看门狗。监视定时器用来当程序运行不正常时使MSP430系列芯片复位。为简化程序结构,这里简单地关闭了MSP430系列芯片中的监视定时器。 接着的两条语句 P1SEL=0x00; / 设置 P1 端口为数字输入 / 输出口 P1DIR=0xff; / 设置 P1 端口为输出口用来对驱动发光二极管的P1端口的管脚进行配置,将这个端口配置为数字信号输入/输出端口,
12、信号传输方向为输出方向。注意,使用的管脚需要进行配置,因为MSP430的大多数管脚都是复用管脚。 发光二极管的闪烁应该一直在程序的控制之下,这里使用下面语句实现这个想法。 while(1) / 重复执行 P1OUT=0x01; / 依次点亮每一个发光二极管 P1OUT=0x02; P1OUT=0x04; P1OUT=0x08; P1OUT=0x10; P1OUT=0x20; P1OUT=0x40; P1OUT=0x80; 微控制器芯片的工作必须在程序的控制之下,因此C语言源程序中必须具有这样一个无条件循环结构。需要执行的任务放在这个无条件循环结构之内,使之重复执行。在图2.8所示的编辑窗口中,
13、程序语句后面存在被称作为注释的程序说明。注释由双斜杠“/”开始,直到本行结束。注释可以与某条语句同行,也可以独立成行。注释也可以包含在符号“/*”和“*/”之间。使用这两个符号可以包含1行,也可以包含多行。使用注释的目的是为了方便程序阅读。切忌有这样的想法:我是程序的唯一阅读者,我不会忘记自己编写的程序中语句的含义。一个好的注释记载了设计思想,同时它也可以方便别人阅读,方便互相交流。另外,撰写注释也可以迫使设计者更加仔细地思考程序设计的细节,这点对于一个初学者非常重要。2.4 编译源程序在编译源程序之前,需要选择程序运行的目标芯片。在Embedded Workbench for MSP430开
14、发软件工作窗口的工作区“Workspace”栏目,用鼠标选择工程标志“led_8”,再点击鼠标右键将打开一个浮动菜单,如图2.9所示。图2.9 浮动菜单 在浮动菜单中选择“Options.”将打开如图2.10所示的源程序编译条件选择窗口。图2.10 源程序编译条件选择窗口 窗口的左侧为目录,当前在“Category”中选择的是“General Options”。窗口的右侧为可以选择的具体内容。“General Options”具有多个选项卡,图示为目标芯片选项卡“Target”。在这个选项卡中,由“Device”栏目的下拉菜单可以展示使用的Embedded Workbench for MSP4
15、30开发软件版本支持的芯片系列名称。从展示的芯片系列名称中可以选择目标芯片从属的系列,例如这里选择“MSP430Gxxx Family”芯片系列。随着目标芯片系列名称的选择,该系列中被支持的芯片名称将被显示。这里选择“MSP430G2231”作为目标芯片。完成选择以后“Device”栏目的文本框中将显示“MSP430G2231”。 图2.10所示的源程序编译条件选择窗口中其它内容保持默认状态。通过点击窗口中的“OK”按钮完成目标芯片的选择。 在编译源程序之前,还需要将完成编辑的C语言源程序添加到工程之中。这个添加工作也可以通过如图2.9所示浮动菜单完成。在浮动菜单中选择“Add”将打开一个添加
16、文件列表,选择“Add“led_8.c”即可完成添加工作。完成C语言源程序添加的工作区“Workspace”窗口如图2.11所示。图2.11 工作区“Workspace”窗口 在Embedded Workbench for MSP430开发软件工作窗口中,用菜单“File Save Workspace”将打开一个类似于图2.4所示的工作区存储窗口“Save Workspace As”。在下拉菜单“文件名(N)”输入工作区的名称,这里也为“led_8”。点击“保存(S)”按钮将返回到Embedded Workbench for MSP430开发软件的工作窗口。 在工作窗口,用菜单“Project
17、 Make”开始C语言源程序“led_8.c”的编译。完成编译工作以后的Embedded Workbench for MSP430开发软件的工作窗口如图2.12所示。使用工作窗口中的符号也可以实现同样功能。图2.12 Embedded Workbench for MSP430开发软件的工作窗口 工作区窗口“Workspace”显示工程中包含的文件。信息窗口“Messages”显示C语言源程序“led_8.c”存储需要100bytes的代码存储空间;程序运行需要50bytes的数据存储空间的支持等内容。 信息窗口“Messages”还显示C语言源程序“led_8.c”的编译过程中没有错误,也没有
18、警告。如果编译过程中发现错误,将不能产生向芯片下载的代码。出现警告信息,向芯片下载的代码可以产生,但是建议检查产生警告信息的原因。2.5 模拟调试C语言源程序的编译成功只是说明不存在语法错误,并不能证明没有逻辑错误。通过逐步执行语句,观察执行过程中相关数据的变化情况可以判断程序是否满足设计要求。Embedded Workbench for MSP430开发软件提供这样的模拟调试环境。在图2.10所示的源程序编译条件选择窗口的“Category”中选择“Debugger”,这时的窗口如图2.13所示。图2.13 源程序编译条件选择窗口 在窗口右侧选择“Setup”选项卡,在“Driver”栏目利
19、用下拉菜单选择“Simulator”,点击窗口中的“OK”按钮返回工作窗口,这样就可以使用Embedded Workbench for MSP430开发软件提供的模拟调试环境。2.5.1 源程序逻辑功能检查在工作窗口,用菜单“Project Download and debug”能够进入模拟调试环境,如图2.14所示。使用工作窗口中的符号也可以实现同样功能。图2.14中的led_8.c现在不是编辑窗口,而是调试窗口。窗口中箭头指向的语句,同时这条语句具有绿色阴影,为将要执行的语句。注意,是将要执行,但是并没有执行。led_8.c调试窗口左边的窗口“Disassembly”为反汇编窗口。这个窗口
20、中的内容为C语言程序led_8.c经过反汇编以后产生的对应的汇编语言程序。这里不需要汇编语言程序,这个反汇编窗口可以关闭。图2.14 Embedded Workbench for MSP430开发软件的调试窗口 使用菜单“View Registers”可以打开MSP430微控制器的内部寄存器的显示窗口。打开内部寄存器显示窗口的工作窗口如图2.15所示。图2.15 Embedded Workbench for MSP430开发软件的调试窗口 内部寄存器显示窗口“Registers”具有一个下拉菜单,下拉菜单当前的内容为“Port 1/2”。利用这个下拉菜单可以选择MSP430微控制器的全部内部寄
21、存器。图2.15 中的“Registers”窗口当前显示P1端口的所有寄存器名称和寄存器当前的内容。点击寄存器名称前面的“+”标志可以显示寄存器中每一位的状态。 工作窗口中的“Debug”菜单中包含多种调试工具。常用的调试工具以下几种: Step Into使用该调试工具可以使程序逐条执行。使用快捷键F11和工作窗口中的符号也可以实现同样功能。 Step Over使用该调试工具可以使程序在主函数内部逐条执行,但不进入其它的函数。使用快捷键F10和工作窗口中的符号也可以实现同样功能。“Step Into” 调试工具与该调试工具的区别是可以进入其它的函数内部逐条执行,完全描述微控制器内部程序的执行过
22、程。 Step Out使用该调试工具可以立即完成当前函数的运行,返回调用该函数的上一级函数。使用快捷键Shift+F10和工作窗口中的符号也可以实现同样功能。 Run to Cursor将光标置于某条语句,使用该调试工具可以使程序直接运行到光标位于的语句处。使用工作窗口中的符号也可以实现同样功能。 Stop Debugging 使用该调试工具可以关闭模拟调试环境,返回源程序编辑窗口。使用快捷键Ctrl+Shift+D和工作窗口中的符号也可以实现同样功能。 图2.8所示Embedded Workbench for MSP430开发软件工作窗口中的C语言源文件只包含主函数,因此现在使用Step I
23、nto调试工具和Step Over调试工具的效果一样。每使用一次这个调试工具,C语言源文件将执行一句。注意,箭头指向的语句,同时这条语句具有绿色阴影,为将要执行的语句。 发光二极管逐个顺序、循环地进行点亮,再熄灭的变化过程可以由内部寄存器显示窗口“Registers”中“P1OUT”寄存器的内容形象地显示出来。点击寄存器P1OUT名称前面的“+”标志可以显示这个寄存器中每一位的内容。每一位的内容表示“P1”端口的每一个管脚当前的状态。当程序进入语句 while(1) / 重复执行的语句体之中,随着语句的逐条顺序、循环执行,P1端口的各个管脚逐个顺序、循环地进行从低电平到高电平,再从高电平到低电
24、平的变化,模拟管脚连接的发光二极管逐个顺序、循环地进行点亮,再熄灭的变化过程。2.5.2 源程序运行时间检查程序调试不仅需要检查逻辑关系是否满足,而且还需要检查时间关系是否满足要求。使用内部寄存器显示窗口“Registers”下拉菜单,选择“CPU Registers”,这时的开发软件的工作窗口如图2.16所示。图2.16 Embedded Workbench for MSP430开发软件的工作窗口利用“CPU Registers”窗口可以检查源程序的执行时间。“CPU Registers”窗口最下面的4行的内容中涉及程序的执行时间。前3行显示从开始调试程序所花费的总时间,第4行为刚执行的程序
25、花费的时间。每执行1次向P1端口进行数据传输的语句,需要的时间可以从第4行进行观察。这里花费时间的单位为MSP430系统的机器周期。前面提到过数字控制振荡器的默认工作频率大约1MHz,对应机器周期约1us。注意,每执行1次向P1端口进行数据传输的语句,需要4个机器周期,对应约4us的时间。2.6 仿真调试Embedded Workbench for MSP430开发软件不仅支持模拟调试,而且还支持仿真调试,就是观察硬件电路对程序的真实执行情况。注意,上一节介绍的模拟调试过程不需要建立硬件电路与PC机的联系,本节介绍的仿真调试过程需要建立硬件电路与PC机的联系。硬件电路与PC机的联系可以通过硬件
26、开发工具来建立。在图2.10所示的源程序编译条件选择窗口的“Category”中选择“Debugger”,这时的窗口如图2.17所示。图2.17 源程序编译条件选择窗口 在窗口右侧选择“Setup”选项卡,在“Driver”栏目利用下拉菜单选择“FET Debugger”,这样就可以使用Embedded Workbench for MSP430开发软件提供的仿真调试环境。这里FET为Flash Emulation Tool的缩写,表示这时执行的指令为MSP430芯片内部程序存储器(Flash)中存储的内容。 MSP430系列芯片的硬件开发工具与PC机的连接接口具有多种形式。具体形式的选择也能够
27、通过源程序编译条件选择窗口完成。在源程序编译条件选择窗口的“Category”中选择“FET Debugger”,这时的窗口如图2.18所示。图2.18 源程序编译条件选择窗口 在窗口右侧选择“Setup”选项卡,在“Connection”栏目利用左侧的下拉菜单即可完成,连接接口形式的选择。图2.18显示了展开的连接接口菜单。常用的接口形式包括USB接口和并行接口。如果选择并行接口,这时“Connection”栏目右侧下面的并行接口选择下拉菜单将被激活,利用它可以完成PC机并行接口的选择。图2.17和图2.18所示的选择条件完成以后,点击源程序编译条件选择窗口中的“OK”按钮返回工作窗口。在工作窗口,用菜单“Project Download and debug”,或者使用工作窗口中的符号能够进入仿真调试环境。仿真调试窗口与如图2.14所示的模拟调试窗口完全一样,调试工具也完全一样。 2.7 小结
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1