2.3.5 晶振电路
MSP430系列单片机时钟模块包括数控振荡器(DCO)、高速晶体振荡器和低速晶体振荡器等3个时钟源。这是为了解决系统的快速处理数据要求和低功耗要求的矛盾,通过设计多个时钟源或为时钟设计各种不同工作模式,才能解决某些外围部件实时应用的时钟要求,如低频通信、LCD显示、定时器、计数器等。数字控制振荡器DCO已经集成在MSP430内部,在系统中只需设计高速晶体振荡器和低速晶体振荡器两部分电路。
高速晶振也称为第二振荡器XT2,它为MSP430F149工作在高频模式时提供时钟,XT2最高可达8MHz。在系统中XT2采用4MHz的晶体,XT2外接2个22pF的电容经过XT2IN和XT2OUT连接到MCU。
低速晶体振荡器(LFXTl)满足了低功耗及使用32.768kHz晶振的要求。LFXTl振荡器默认工作在低频模式,即32.768kHz,也可以通过外接450kHz~ 8MHz的高速晶体振荡器或陶瓷谐振器工作在高频模式,在本电路中我们使用低频模式,经过XIN和XOUT连接到MCU。
第 7 页
3软件总体方案设计
MSP430单片机进行编程时可以采用C语言和汇编语言,本设计采用IAR C/C++编译器提供的C语言编程环境。采用模块化的设计,在进行软件设计时,通常把整个过程分成若干个部分,每一部分叫做一个模块。模块程序设计法的主要优点是:模块化编程使程序更有效,小块程序更容易理解和调试,当知道模块的输入和所要求的输出时,就可直接测试小模块;当同类的需求较多时,可把程序放入库中以备以后使用,若要再使用,则由库中把它取出,而不要全部重新编写;模块化编程使得要解决的问题与特定模块分离,很容易找出出错的模块,大大简化了调试。本系统由主程序,信号采集程序,LCD显示子程序和步进电机控制程序构成。
3.1 C语言基础
从程序流程的角度来看,程序可以分为三种基本结构, 即顺序结构、分支结构、循环结构。 这三种基本结构可以组成所有的各种复杂程序。C语言提供了多种语句来实现这些程序结构。程序中执行部分最基本的单位是语句。C语言的语句可分为五类:表达式语句任何表达式末尾加上分号即可构成表达式语句,常用的表达式语句为赋值语句;函数调用语句函数调用加上分号即组成函数调用语句;控制语句用于控制程序流程,由专门的语句定义符及所需的表达式组成。主要有条件判断执行语句,循环执行语句,转向语句等;复合语句由{}把多个语句括起来组成一个语句。复合语句被认为是单条语句,它可出现在所有允许出现语句的地方,如循环体等,空语句仅由分号组成,无实际功能。
C语言中没有提供专门的输入输出语句, 所有的输入输出都是由调用标准库函数中的输入输出函数来实现的。scanf和getchar函数是输入函数,接收来自键盘的输入数据。scanf是格式输入函数,可按指定的格式输入任意类型数据。getchar函数是字符输入函数, 只能接收单个字符。 printf和putchar函数是输出函数,向显示器屏幕输出数据。printf是格式输出函数,可按指定的格式显示任意类型的数据。putchar是字符显示函数,只能显示单个字符。
关系表达式和逻辑表达式是两种重要的表达式, 主要用于条件执行的判断和循环执行的判断。C语言提供了多种形式的条件语句以构成分支结构:if语句主要用于单向选择;if-else语句主要用于双向选择;if-else-if语和switch语句用于多向选择。这几种形式的条件语句一般来说是可以互相替代的。
C语言提供了三种循环语句。for语句主要用于给定循环变量初值,步长增
第 8 页
量以及循环次数的循环结构。循环次数及控制条件要在循环过程中才能确定的循环可用 while或do-while语句。三种循环语句可以相互嵌套组成多重循环。循环之间可以并列但不能交叉。可用转移语句把流程转出循环体外,但不能从外面转向循环体内。在循环程序中应避免出现死循环,即应保证循环变量的值在运行过程中可以得到修改,并使循环条件逐步变为假,从而结束循环。
3.2 软件开发平台 3.2.1IAR简介
嵌入式 IAR Embedded Workbench是一个非常有效的集成开发环境(IDE) ,它使用户充分 有效地开发并管理嵌入式应用工程。作为一个开发平台,它具备任何在用户每天的工作地方所 想要的特性。
嵌入式 IAR Embedded Workbench IDE 提供一个框架, 任何可用的工具都可以完整地嵌入其 中,这些工具包括: 高度优化的 IAR AVR C/C++编译器; AVR IAR 汇编器; 通用 IAR XLINK Linker; IAR XAR 库创建器和 IAR XLIB Librarian; 一个强大的编辑器; 一个工程管理器; IAR C-SPYTM调试器,一个具有世界先进水平的高级语言调试器。 嵌入式 IAR Embedded Workbench 适用于大量 8 位、 位以及 32 位的微处理器和微控制器, 16 使用户在开发新的项目时也能在所熟悉的开发环境中进行。它为用户提供一个易学和具有最大 量代码继承 能力的开发 环境,以及 对大多数和 特殊目标的 支持。嵌入 式 IAR Embedded Workbench 有效提高用户的工作效率,通过 IAR 工具,用户可以大大节省工作时间。
3.2.2IAR应用
创建工程前先要创建一个新目录,在AVR\\tutor目录下找到projects。第一步先创建一个工作区,选择File>New>Workspae,创建一个新工程并放入工作区。
创建一个新工程,选择project->create new project。弹出create new project对话框,可以让用户按照模板创建新工程。
第 9 页
图3-1创建目录界面
确认tool chain选项已经设置AVR,然后点击OK。弹出一个标准的Save As对话框,确认用户想放置工程文件的地方,在File name对话框中输入project1,然后点击Save创建新工程。
图3-2 创建工程界面
第 10 页
图3-3 添加文件界面
设置工程选项在工作区窗口中选择工程文件夹project1->Debug,然后选择project1->options选项。General选项中Target选项页被显示
第 11 页