93
智能仪表课程设计 实验指导书 《智能仪表课程设计》 实验指导书 上海交通大学 电气工程实验中心 2014年4月

É智能仪表课程设计 Êeeilab.sjtu.edu.cn/userfiles/files/实验教学2019/EE333 智能仪表课程设计...智能仪表课程设计 实验指导书 1 / 91 1 基于LabView的虚拟仪器设计

  • Upload
    others

  • View
    82

  • Download
    0

Embed Size (px)

Citation preview

智能仪表课程设计 实验指导书

《智能仪表课程设计》 实验指导书

上海交通大学

电气工程实验中心

2014 年 4月

智能仪表课程设计 实验指导书

目录

目录 ............................................................ 2

1 基于 LABVIEW的虚拟仪器设计 .................................... 1

1.1 绪论 ............................................................. 1

1.2 实验简介 ......................................................... 2

1.2.1 A/D 采样 虚拟示波器.......................................................................................................... 2

1.2.2 D/A 输出 信号发生器 .......................................................................................................... 2

1.3 LABVIEW简介 ...................................................... 3

1.3.1 概述 ................................................................................................................................... 3

1.3.2 创建 VI 程序 ..................................................................................................................... 8

1.3.3 程序调试技术 ................................................................................................................. 13

1.3.4 程序结构 ......................................................................................................................... 14

1.3.5 图形显示 ......................................................................................................................... 16

1.4 数据采集卡简介 .................................................. 18

1.4.1 USB-6009 概述 .................................................................................................................... 18

1.4.2 USB-6009 规格说明 ............................................................................................................ 19

1.4.3 USB-6009 引脚说明 ............................................................................................................ 22

1.4.4 NI-DAQ mx 在 USB 设备上的应用 ..................................................................................... 23

2 基于 MSP430的智能仪器设计.................................... 27

2.1 实验简介 ........................................................ 27

2.1.1 基于 MSP430G2553 的电压表设计 .............................................................................. 27

2.1.2 基于 MSP430G2553 的电子秤设计 .............................................................................. 27

2.2 MSP430系列单片机概述 ............................................ 28

2.2.1 MSP430 系列单片机及低功耗特性 .................................................................................. 28

2.2.2 MSP430 单片机的其他特点 .............................................................................................. 30

2.3 MSP430 G2 LAUNCHPAD简介 ........................................... 30

2.4 CCS快速上手 ..................................................... 31

2.4.1 CCS 简介 ............................................................................................................................. 31

2.4.2 CCS 的安装 .......................................................................................................................... 33

2.4.3 CCS 的调试 .......................................................................................................................... 37

2.5 MSP430外设基础知识 .............................................. 55

2.5.1 MSP430 单片机的位操作 .................................................................................................. 55

2.5.2 MSP430 单片机的寄存器 .................................................................................................. 56

2.5.3 MPS430 单片机的中断 ...................................................................................................... 59

2.5.4 MSP430 的函数与文件管理 .............................................................................................. 61

智能仪表课程设计 实验指导书

3 基于 8031 的 16路数据采集系统设计 ............................. 63

3.1 实验简介 ........................................................ 63

3.2 ALTIUM DESIGNER软件简介 ............................................ 63

3.2.1 Altium designer 简介........................................................................................................... 63

3.2.2 Altium designer 窗口届面 .................................................................................................. 64

3.2.3 Altium designer 文件类型 .................................................................................................. 65

3.3 原理图绘制 ...................................................... 66

3.3.1 原理图设计工具栏......................................................................................................... 67

3.3.2 图样的放大与缩小......................................................................................................... 68

3.3.3 设置图样大小 ................................................................................................................. 69

3.3.4 元件库管理器 ................................................................................................................. 71

3.3.5 元件库的加载 ................................................................................................................. 72

3.3.6 元件查找 ......................................................................................................................... 73

3.3.7 放置元器件 ..................................................................................................................... 73

3.3.8 调整元件位置 ................................................................................................................. 76

3.3.9 编辑元件属性 ................................................................................................................. 79

3.3.10 连接线路 ......................................................................................................................... 80

3.4 PCB设计 ........................................................ 81

3.4.1 印刷电路板结构 ............................................................................................................. 81

3.4.2 元件封装 ......................................................................................................................... 82

3.4.3 PCB 设计流程...................................................................................................................... 84

3.4.4 PCB 设计基本原则.............................................................................................................. 84

3.4.5 PCB 文档创建...................................................................................................................... 86

3.4.6 导入网络表 ..................................................................................................................... 87

3.4.7 元件布局与手动布线..................................................................................................... 87

智能仪表课程设计 实验指导书

1 / 91

1 基于 LabView 的虚拟仪器设计

1.1 绪论

虚拟仪器(virtual instrumention)是基于计算机的仪器。计算机和仪器的密切结合是目

前仪器发展的一个重要方向。粗略地说这种结合有两种方式,一种是将计算机装入仪器,其

典型的例子就是所谓智能化的仪器。随着计算机功能的日益强大以及其体积的日趋缩小,这

类仪器功能也越来越强大,目前已经出现含嵌入式系统的仪器。另一种方式是将仪器装入计

算机。以通用的计算机硬件及操作系统为依托,实现各种仪器功能。虚拟仪器主要是指这种

方式。下面的框图反映了常见的虚拟仪器方案。

虚拟仪器的主要特点有:

尽可能采用了通用的硬件,各种仪器的差异主要是软件。

可充分发挥计算机的能力,有强大的数据处理功能,可以创造出功能更强的仪

器。

用户可以根据自己的需要定义和制造各种仪器。

虚拟仪器实际上是一个按照仪器需求组织的数据采集系统。虚拟仪器的研究中涉及的基

础理论主要有计算机数据采集和数字信号处理。目前在这一领域内,使用较为广泛的计算机

语言是美国 NI 公司的 Lab VIEW。

虚拟仪器的起源可以追溯到 20 世纪 70 年代,那时计算机测控系统在国防、航天等领域

已经有了相当的发展。PC 机出现以后,仪器级的计算机化成为可能,甚至在 Microsoft 公司

的 Windows 诞生之前,NI 公司已经在 Macintosh 计算机上推出了 LabVIEW2.0 以前的版本。

对虚拟仪器和 Lab VIEW 长期、系统、有效的研究开发使得该公司成为业界公认的权威。

普通的 PC 有一些不可避免的弱点。用它构建的虚拟仪器或计算机测试系统性能不可能

太高。目前作为计算机化仪器的一个重要发展方向是制定了 VXI 标准,这是一种插卡式的

仪器。每一种仪器是一个插卡,为了保证仪器的性能,又采用了较多的硬件,但这些卡式仪

器本身都没有面板,其面板仍然用虚拟的方式在计算机屏幕上出现。这些卡插入标准的 VXI

机箱,再与计算机相连,就组成了一个测试系统。VXI 仪器价格昂贵,目前又推出了一种较

为便宜的 PXI 标准仪器。

虚拟仪器研究的另一个问题是各种标准仪器的互连及与计算机的连接。目前使用较多的

是 IEEE 488 或 GPIB 协议。未来的仪器也应当是网络化的。

被测对象

信号调理

数据采集卡

虚拟仪器面板

数据处理

智能仪表课程设计 实验指导书

2 / 91

1.2 实验简介

1.2.1 A/D 采样 虚拟示波器

要求:设计软面板,能够显示由信号发生器发出的方波、三角波、正弦波。信号发生器

输出频率为 1~1kHz,幅度为 0~10V。

虚拟示波器的前面板效果图

1.2.2 D/A 输出 信号发生器

要求:设计软面板,能够产生频率在 1~100Hz,幅度为 0~5V 之间的方波、三角波、正

弦波,并输出到示波器进行观察。

信号发生器的前面板效果图

智能仪表课程设计 实验指导书

3 / 91

1.3 LabVIEW 简介

1.3.1 概述

1.3.1.1 LabVIEW 是什么

LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是一种图形化的编程

语言,它广泛地被工业界、学术界和研究实验室所接受,视为一个标准的数据采集和仪器控

制软件。LabVIEW 集成了与满足 GPIB、VXI、RS-232 和 RS-485 协议的硬件及数据采集卡

通讯的全部功能。它还内置了便于应用 TCP/IP、ActiveX 等软件标准的库函数。这是一个功

能强大且灵活的软件。利用它可以方便地建立自己的虚拟仪器,其图形化的界面使得编程及

使用过程都生动有趣。

图形化的程序语言,又称为“G”语言。使用这种语言编程时,基本上不写程序代码,

取而代之的是流程图。它尽可能利用了技术人员、科学家、工程师所熟悉的术语、图标和概

念,因此,LabVIEW 是一个面向最终用户的工具。它可以增强你构建自己的科学和工程系

统的能力,提供了实现仪器编程和数据采集系统的便捷途径。使用它进行原理研究、设计、

测试并实现仪器系统时,可以大大提高工作效率。

利用 LabVIEW,可产生独立运行的可执行文件,它是一个真正的 32 位编译器。像许多

重要的软件一样,LabVIEW 提供了 Windows、UNIX、Linux、Macintosh 的多种版本。

1.3.1.2 LabVIEW 应用程序的构成

所有的 LabVIEW 应用程序,即虚拟仪器(VI),它包括前面板(front panel)、流程图

(block diagram)以及图标/连结器(icon/connector)三部分。

前面板

前面板是图形用户界面,也就是 VI 的虚拟仪器面板,这一界面上有用户输入和显示输

控制对象

(输入)

显示对象

(输出)

图1-1 随机信号发生器的前面板

智能仪表课程设计 实验指导书

4 / 91

出两类对象,具体表现有开关、旋钮、图形以及其他控制(control)和显示对象(indicator)。

图 1-1 所示是一个随机信号发生和显示的简单 VI 是它的前面板,上面有一个显示对

象,以曲线的方式显示了所产生的一系列随机数。还有一个控制对象——开关,可以启动和

停止工作。显然,并非简单地画两个控件就可以运行,在前面板后还有一个与之配套的流程

图。

流程图

流程图提供 VI 的图形化源程序。在流程图中对 VI 编程,以控制和操纵定义在前面板

上的输入和输出功能。流程图中包括前面板上的控件的连线端子,还有一些前面板上没有,

但编程必须有的东西,例如函数、结构和连线等。图1-2是与图1-1对应的流程图。我

们可以看到流程图中包括了前面板上的开关和随机数显示器的连线端子,还有一个随机数发

生器的函数及程序的循环结构。随机数发生器通过连线将产生的随机信号送到显示控件,为

了使它持续工作下去,设置了一个 While Loop 循环,由开关控制这一循环的结束。

如果将 VI 与标准仪器相比较,那么前面板上的东西就是仪器面板上的东西,而流程图

上的东西相当于仪器箱内的东西。在许多情况下,使用 VI 可以仿真标准仪器,不仅在屏幕

上出现一个惟妙惟肖的标准仪器面板,而且其功能也与标准仪器相差无几。

图标/连接器

图标/连接器是子 VI 被其它 VI 调用的接口。图标是子 VI 在其他程序框图中被调用的节

点表现形式;而连接器则表示节点数据的输入/输出口,就象函数的参数。用户必须指定连

接器端口与前面板的控制和显示一一对应。连接器一般情况下隐含不显示,除非用户选择打

开观察它。图标与连接器在这里相当于图形化的参数,详细情况稍后介绍。LabVIEW 的强

大功能归因于它的层次化结构,用户可以把创建的 VI 程序当作子程序调用,以创建更复杂

的程序,而这种调用的层次是没有限制的。

函数:随机数

发生器

结构:循环

与前面板控件对

应的连线端子

与前面板控件对

应的连线端子

图1-2随机信号发生器的流程图

智能仪表课程设计 实验指导书

5 / 91

1.3.1.3 LabVIEW 的操作模板

在 LabVIEW 的用户界面上,应特别注意它提供的操作模板,包括工具(Tools)模板、

控制(Controls)模板和函数(Functions)模板。这些模板集中反映了该软件的功能与特征。

下面我们来大致浏览一下。

工具模板(Tools Palette)

该模板提供了各种用于创建、修改和调试 VI 程序的工具。如果该模

板没有出现,则可以在 Windows 菜单下选择 Show Tools Palette 命令以显

示该模板。当从模板内选择了任一种工具后,鼠标箭头就会变成该工具相

应的形状。当从 Windows 菜单下选择了 Show Help Window 功能后,把工

具模板内选定的任一种工具光标放在流程图程序的子程序(Sub VI)或图

标上,就会显示相应的帮助信息。

工具图标有如下几种:

图标 名称 功 能

Operate Value

(操作值)

用于操作前面板的控制和显示。使用它向数字或字符

串控制中键入值时,工具会变成标签工具

Position/Size/Sele

ct (选择)

用于选择、移动或改变对象的大小。当它用于改变对

象的连框大小时,会变成相应形状。

Edit Text(编辑

文本)

用于输入标签文本或者创建自由标签。当创建自由标

签时它会变成相应形状。

Connect Wire(连

线)

用于在流程图程序上连接对象。如果联机帮助的窗口

被打开时,把该工具放在任一条连线上,就会显示相

应的数据类型。

Object Shortcut

Menu(对象菜单)

用鼠标左键可以弹出对象的弹出式菜单。

Scroll Windows

(窗口漫游)

使用该工具就可以不需要使用滚动条而在窗口中漫

游。

Set/Clear

Breakpoint(断点

设置/清除)

使用该工具在 VI的流程图对象上设置断点。

Probe Data(数据

探针)

可在框图程序内的数据流线上设置探针。通过控针窗

口来观察该数据流线上的数据变化状况。

Get Color(颜色

提取)

使用该工具来提取颜色用于编辑其他的对象。

10 Set Color(颜色

设置)

用来给对象定义颜色。它也显示出对象的前景色和背

景色。

智能仪表课程设计 实验指导书

6 / 91

下面的两个模板是多层的,其中每一个子模板下还包括多个对象。

控制模板(Control Palette)

注意:只有打开前面板时才能调用该模板

在上图中进入 All Controls 模板,可进入右图。

该模板用来给前面板设置各种所需的输出显示对象和输入

控制对象。每个图标代表一类子模板。如果控制模板不显示,

可以用 Windows 菜单的 Show Controls Palette 功能打开它,

也可以在前面板的空白处,点击鼠标右键,以弹出控制模板。

控制模板如左图所示,它包括如下所示的一些子模板。子模板中包括的对象,我们在功

能中用文字简要介绍。

图标 子模板名称 功 能

Numeric(数值量) 数值的控制和显示。包含数字式、指针式显示表盘及各

种输入框。

Boolean(布尔量) 逻辑数值的控制和显示。包含各种布尔开关、按钮以及

指示灯等。

String & Path(字

符串和路径)

字符串和路径的控制和显示。

Array & Cluster

(数组和簇)

数组和簇的控制和显示。

List & Table(列

表和表格)

列表和表格的控制和显示

Graph(图形显示) 显示数据结果的趋势图和曲线图。

Ring & Enum(环

与枚举)

环与枚举的控制和显示。

I/O(输入/输出功

能)

输入/输出功能。于操作 OLE、ActiveX等功能。

Refnum 参考数

10

Digilog

Controls(数字控

制)

数字控制

智能仪表课程设计 实验指导书

7 / 91

11

Classic

Controls(经典控

制)

经典控制,指以前版本软件的面板图标。

12

Activex 用于 ActiveX等功能。

13

Decorations(装

饰)

用于给前面板进行装饰的各种图形对象。

14

Select a

Controls(控制选

择)

调用存储在文件中的控制和显示的接口。

15

User Controls

(用户控制)

用户自定义的控制和显示。

功能模板(Functions Palette)

注:只有打开了流程图程序窗口,才能出现功能模板。

在 Functions中点击进入 All Functions模板(右图)

功能模板是创建流程图程序的工具。该模板上的每一个顶层

图标都表示一个子模板。若功能模板不出现,则可以用 Windows

菜单下的 Show Functions Palette功能打开它,也可以在流程图

程序窗口的空白处点击鼠标右键以弹出功能模板。

功能模板如右图所示,其子模块如下所示。(个别不常用的子

模块未包含)

图标 子模板名称 功 能

Structure(结构) 包括程序控制结构命令,例如循环控制等,以及全局

变量和局部变量。

Numeric(数值运

算)

包括各种常用的数值运算,还包括数制转换、三角函

数、对数、复数等运算,以及各种数值常数。

Boolean(布尔运

算) 包括各种逻辑运算符以及布尔常数。

String(字符串运

算)

包含各种字符串操作函数、数值与字符串之间的转换

函数,以及字符(串)常数等。

Array(数组) 包括数组运算函数、数组转换函数,以及常数数组等。

Cluster(簇) 包括簇的处理函数,以及群常数等。这里的群相当于

C语言中的结构。

Comparison (比

较) 包括各种比较运算函数,如大于、小于、等于。

智能仪表课程设计 实验指导书

8 / 91

Time & Dialog(时

间和对话框)

包括对话框窗口、时间和出错处理函数等。

File I/O(文件输

入/输出)

包括处理文件输入/输出的程序和函数。

10

Data

Acquisition(数

据采集)

包括数据采集硬件的驱动,以及信号调理所需的各种

功能模块。

11

Waveform(波形) 各种波形处理工具

12

Analyze(分析) 信号发生、时域及频域分析功能模块及数学工具 。

13

Instrument I/O

(仪器输入 /输

出)

包括 GPIB(488、488.2)、串行、VXI仪器控制的程序

和函数,以及 VISA的操作功能函数。

14

Motion & Vision

(运动与景像)

15

Mathematics(数

学)

包括统计、曲线拟合、公式框节点等功能模块,以及

数值微分、积分等数值计算工具模块。

16

Communication

(通讯)

包括 TCP、DDE、ActiveX和 OLE等功能的处理模块。

17

Application

Control(应用控

制)

包括动态调用 VI、标准可执行程序的功能函数。

18

Graphics & Sound

(图形与声音)

包括 3D、OpenGL、声音播放等功能模块。包括调用动

态连接库和 CIN节点等功能的处理模块。

19

Tutorial(示教课

程) 包括 LabVIEW示教程序。

20

Report

Generation(文档

生成)

21

Advanced(高级功

能)

22

Select a VI(选

择子 VI)

23

User Library(用

户子 VI库)

1.3.2 创建 VI 程序

VI程序具有三个要素:前面板、框图程序和图标/连接器。

1.前面板

智能仪表课程设计 实验指导书

9 / 91

使用输入控制和输出显示来构成前面板。控制是用户输入数据到程序的接口。而显示是

输出程序产生的数据接口。控制和显示有许多种类,可以从控制模板的各个子模板中选取。

两种最常用的前面板对象是数字控制和数字显示。若想要在数字控制中输入或修改数值,你

只需要用操作工具(见工具模板)点击控制部件的增减按钮,或者用操作工具或标签工具双

击数值栏进行输入数值修改。

显示对象和控制对象都是前面板上的控件,前者有输入端子而无输出端子,后者正好相

反,它们分别相当于普通编程语言中的输出参数和输入参数。数值常数对象可以看成是控制

对象的一个特例。

在前面板中创建新的控制对象或显示对象时,

LabVIEW 都会在流程图中创建对应的端子。端子的

符号反映该对象的数据类型。例如,DBL 符号表示

对象数据类型是双精度数;TF 符号表示布尔数;I16

符号表示 16 位整型数;ABC 符号表示对象数据类

型是字符串。一个对象应当是显示对象还是控制对

象必须弄清楚,否则无法正确连线。有时他们的图

标是相似或相同的,可以根据需要明确规定它是显

示对象还是控制对象。方法是将鼠标移到图标上,

然后点右键,可出现快速菜单(例见右图)。如果菜

单中的第一项是 Chang to Control,说明这是一个显

示对象,你可以根据需要,将其变为控制对象。如果菜单中的第一项是 Chang to Indicator ,

说明这是一个控制对象,你也可以根据需要,将其变为显示对象。控制对象和显示对象都不

能在流程图中删除,只能从前面板上删除。

2.框图程序

框图程序是由节点、端点、图框和连线四种元素构成的。

节点类似于文本语言程序的语句、函数或者子程序。LabVIEW有二种节点类型----函数

节点和子 VI节点。两者的区别在于:函数节点是 LabVIEW以编译好了的机器代码供用户使

用的,而子 VI节点是以图形语言形式提供给用户的。用户可以访问和修改任一子 VI节点的

代码,但无法对函数节点进行修改。上面的框图程序所示的 VI 程序有两个功能函数节点,

一个函数使两个数值相加,另一个函数使两数相减。

端点是只有一路输入/输出,且方向固定的节点。LabVIEW 有三类端点----前面板对象

智能仪表课程设计 实验指导书

10 / 91

端点、全局与局部变量端点和常量端点。对象端点是数据在框图程序部分和前面板之间传输

的接口。一般来说,一个 VI的前面板上的对象(控制或显示)都在框图中有一个对象端点

与之一一对应。当在前面板创建或删除面板对象时,可以自动创建或删除相应的对象端点。

控制对象对应的端点在框图中是用粗框框住的,如例子中的 A和 B端点。它们只能在 VI程

序框图中作为数据流源点。显示对象对应的端点在框图中是用细框框住的。如例子中的 A+B

和 A-B端点。它们只能在 VI程序框图中作为数据流终点。常量端点永远只能在 VI程序框图

中作为数据流源点。

图框是 LabVIEW实现程序结构控制命令的图形表示。如循环控制、条件分支控制和顺序

控制等,编程人员可以使用它们控制 VI程序的执行方式。代码接口节点(CIN)是框图程序

与用户提供的 C语言文本程序的接口。

连线是端口间的数据通道。它们类似于普通程序中的变量。数据是单向流动的,从源端

口向一个或多个目的端口流动。不同的线型代表不同的数据类型。在彩显上,每种数据类型

还以不同的颜色予以强调。

下面是一些常用数据类型所对应的线型和颜色:

类型 颜色

整形数 兰色

浮点数 橙色

逻辑量 绿色

字符串 粉色

文件路径 青色

当需要连接两个端点时,在第一个端点上点击连线工具(从工具模板栏调用),然后移

动到另一个端点,再点击第二个端点。端点的先后次序不影响数据流动的方向。

当把连线工具放在端点上时,该端点区域将会闪烁,表示连线将会接通该端点。当把连

线工具从一个端口接到另一个端口时,不需要按住鼠标键。当需要连线转弯时,点击一次鼠

标键,即可以正交垂直方向地弯曲连线,按空格键可以改变转角的方向。

线型为波折号的连线表示坏线。出现坏线的原因有很多,例如:连接了两个控制对象;

源端子和终点端子的数据类型不匹配(例如一个是数字型,而另一个是布尔型)。可以通过

使用定位工具点击坏线再按下 <Delete> 来删除它。选择 Edit»Remove Bad Wires 或者按

下<Ctrl-B> 可以一次删除流程图中的所有坏线。当 VI 无法运行,或者显示 Signal has

Loose Ends (信号丢失终端)的错误信息时,这是一个快捷的调试方法。

快速提示:

接线头是为了帮助正确连接端口的连线。当把连线工具放到端口

上,接线头就会弹出。接线头还有一个黄色小标识框,显示该端口的

名字。

智能仪表课程设计 实验指导书

11 / 91

如果要查看某个功能函数或者 VI 的输入输出,需要从 Help 菜单中选择 Show Help,

再把光标置于这个功能函数或者 VI上。例如进程监视器 VI 的 Help 窗口显示如下:

你也可以从框图程序窗口创建前面板对象。用选择和连线工具,用鼠标右键点击任一节

点和端点,然后从弹出菜单中选择“创建常数”,“创建控制”,或“创建显示”等命令。LabVIEW

会自动地在被创建的端点与所点击对象之间接好连线。

3.子 VI 的建立

子 VI(SubVI)相当于普通编程语言中的子程序,也就是被其他的 VI 调用的 VI。可以

将任何一个定义了图标和联接器的 VI 作为另一个 VI 的子程序。在流程图中打开

Functions»Select a VI…. ,就可以选择要调用的子 VI 。构造一个子 VI 主要的工作就是定

义它的图标和联接器。

每个 VI 在前面板和流程图窗口的右上角都显示了一个默认的图标。启动图标编辑器的

方法是,用鼠标右键单击面板窗口的右上角的默认图标,在弹出菜单中选择 Edit Icon。

左图显示了图标编辑

器的窗口。可以用窗口

左边的各种工具设计

像素编辑区中的图标

形状。编辑区右侧的一

个方框中显示了一个

实际大小的图标。图标

编辑器的具体使用细

节请参阅相关资料。

联接器是 VI 数

据的输入输出接口。如果用面板控制对象或者显示对象从子 VI 中输出或者输入数据,那

么这些对象都需要在联接器面板中有一个连线端子。您可以通过选择 VI 的端子数并为每个

端子指定对应的前面板对象以定义联接器。

定义联接器的方法是,用鼠标右键单击面板窗口中的图标窗口,在快捷菜单中选择

Show Connector。

联接器图标会取代面板窗口右上角的图标。LabVIEW 自动选择的端子连接模式是控制

智能仪表课程设计 实验指导书

12 / 91

对象的端子位于联接器窗口的左边,显示对象的端子位于联接器窗口右边。选择的端子数取

决于前面板中控制对象和显示对象的个数。

联接器中的各个矩形表示各个端子所在的区域,可以用它们从 VI 中输入或者输出数

据。如果必要,也可以选择另外一种端子连接模式。方法是在图标上单击鼠标右键单出快捷

菜单,选择 Show Connector,再次弹出快捷菜单,选择 Patterns。

4.数据流编程

控制 VI程序的运行方式叫做“数据流”。对一个节点而言,只有当它的所有输入端口上

的数据都成为有效数据时,它才能被

执行。当节点程序运行完毕后,它把

结果数据送给所有的输出端口,使之

成为有效数据。并且数据很快从源送

到目的端口。

如左图所示,这个 VI程序把两个

输入数值相乘,再把乘积减去 50.0。

这个程序中,框图程序从左往右执行,

这个执行次序不是由于对象的摆放位

置,而是由于相减运算函数的一个输

入量是相乘函数的运算结果,它只有当相乘运算完成并把结果送到减运算的输入口后才能继

续下去。请记住,一个节点(函数)只有当它所有的输入端的数据都成为有效数据后才能被

执行,而且只有当它执行完成后,它的所有输出端口上的数据才成为有效。

再看另一个程序(见右图),你认为哪

一个节点函数将先执行――是乘法还是除

法?在这个例子中,我们无法知道哪一个

节点函数首先执行,因为所有输入量几乎

同时到达。对于这样一种相互独立的数据

流程,如果又必须明确指定节点执行的先

后次序,就必须使用顺序(Sequence)结

构来明确执行次序。

5.图表(chart)入门

图表(chart)是一种周期性更新数据的数字式图形

显示对象。可以在 Controls»Graph 模板中找到两种图

表:波形图和强度图(后者不常用)。也可以自定义图

表的格式,以满足自己的显示需要或者让它显示更多的

数据。图表具有的特性有:滚动条、图例、模板、数值

显示、时间坐标显示。

右图显示了快速菜单中 Advanced»Update Mode 子

菜单中提供的三种图表显示类型——Strip chart(条状

智能仪表课程设计 实验指导书

13 / 91

图),Scope chart(示波器图)和 Sweep chart(扫描图)。默认模式是条状图。

LabVIEW 可以用同一个垂直坐标在一个图表中显示多个图区,这种图区被称为重叠式

图区,也可使用多个垂直坐标,这时这种图形被称为堆栈式图区。请参考 Examples\General\

Graphs\charts.llb 中的 charts.vi 示例。

1.3.3 程序调试技术

1.找出语法错误

如果一个 VI 程序存在语法错误,则在面板工具条上的运行按钮会变成一个折断的箭头,

表示程序不能被执行。这时该按钮被称作错误列表。点击它,则 LabVIEW 弹出错误清单窗

口,点击其中任何一个所列出的错误,选用 Find 功能,则出错的对象或端口就会变成高亮。

2.设置执行程序高亮

在 LabVIEW 的工具条上有一个画着灯泡的按钮,这个按钮叫做“高亮执行”按钮上。

点击这个按钮使它变成高亮形式,再点击运行按钮,VI 程序就以较慢的速度运行,没有被

执行的代码灰色显示,执行后的代码高亮显示,并显示数据流线上的数据值。这样,你就可

以根据数据的流动状态跟踪程序的执行。

3.断点与单步执行

为了查找程序中的逻辑错误,有时希望流程图程序一个节点一个节点地执行。使用断点

工具可以在程序的某一地点中止程序执行,用探针或者单步方式查看数据。使用断点工具时,

点击你希望设置或者清除断点的地方。断点的显示对于节点或者图框表示为红框,对于连线

表示为红点。当 VI 程序运行到断点被设置处,程序被暂停在将要执行的节点,以闪烁表示。

按下单步执行按钮,闪烁的节点被执行,下一个将要执行的节点变为闪烁,指示它将被执行。

你也可以点击暂停按钮,这样程序将连续执行直到下一个断点。

4.探针

可用探针工具来查看当流程图程序流经某一根连接线时的数据值。从 Tools 工具模板选

择探针工具,再用鼠标左键点击你希望放置探针的连接线。这时显示器上会出现一个探针显

示窗口。该窗口总是被显示在前面板窗口或流程图窗口的上面。在流程图中使用选择工具或

连线工具,在连线上点击鼠标右键,在连线的弹出式菜单中选择“探针”命令,同样可以为

该连线加上一个探针。

5.错误列表窗口

双击断开的运行按钮或使用菜单命令 Window->Show Error List,打开下图所示的错误列

智能仪表课程设计 实验指导书

14 / 91

表窗口。窗口中 VI list部分列出内存中所有存在错误的 VI。Errors and warnings部分列

出在 VI list 中被选中 VI 的错误。Details 部分对错误进行描述并在一些情况下给出改正

建议。如果选中 Show Warnings 选框,在这部分还会警告显示信息。单击 Help按钮打开在

线帮助文件。双击一个选中的错误或单击 Show Error 按钮会返回出现错误的前面板或程序

框图,并高亮度显示出现错误的对象。

6.常见程序错误及处理

1)由于数据类型不匹配造成程序框图包含断线。改正方法是转换数据类型或用合适的

数据类型替换数据源。

2)某些函数的 Required参数未连线。参数分为多种重要程度,其中 Required的参数

必须连接。改正方法是找到错误处并正确连接。

3)子 VI不能运行。改正方法是修复子 VI。

4)有时在程序框图中看不到错误程序却不能运行,可能是错误连线被节点遮盖。解决

方法是按<Ctrl+B>键删除错误连线。

1.3.4 程序结构

结构是一种程序流程控制节点,它们放置在程序框图中,外形一般是一个大小可以缩放

的边框,当它与其他节点的连线有数据传递过来时,边框内的一段代码或者反复执行、或者

有条件执行、或者按照一定顺序执行。

结构内的一段代码叫做子框图 Subdiagram;结构边框上数据输入输出的端口叫做通道

channel。

LABVIEW 有 7 种结构:While 循环、For 循环、选择结构、展平的顺序结构、层叠的

顺序结构、公式节点和事件结构。这些结构都在 Structure 函数子模板中。

下面介绍几种较为基本而常用的结构。

1.循环结构:

1) While 循环

While 循环可以反复执行循环体的程序,直至到达某个边界条件。它类似于普通编程语

智能仪表课程设计 实验指导书

15 / 91

言中的 Do 循环和 Repeat-Until 循环。While 循环的框图是一个大小可变的方框,用于执

行框中的程序,直到条件端子接收到的布尔值为 FALSE。

该循环有如下特点:

★ 计数从 0开始(i=0)。

★ 先执行循环体,而后 i+1,如果循环只执行一次,那么循环输出值 i=0。

★ 循环至少要运行一次。

循环变量条件端子

While 循环示意图

While 循环有两个固定的端口。循环端口(即上图中循环变量)Iteration Terminal

时一个输出端口,它输出循环当前执行的次数。循环数是从 0 开始计数的。条件端口

Conditional Terminal 是一个布尔量输入端口。程序在每次循环结束时检查条件端口。所

以正如上文中所提,循环至少要运行一次。

条件端口到底遇到什么条件能使 While循环停止下来,是可以设置的。默认设置为 Stop

if True(上图中条件端子显示的绿色箭头变为红色原点即为该状态),即直至传递到条件端

口的布尔量值为 True时退出循环。

右键点击条件端口弹出快捷菜单将设置改为 Continue if True,则传递到条件端口布

尔量值为 False时退出循环(正如上图所示)。

循环结构在进入循环后将不会再理会循环外面数据的变化,因此产生循环终止条件的数

据源一定要放在循环框内,否则将造成死循环。

2) For 循环

For 循环与 While 循环类似,也有两个固定的端口。计数端口 Count 是一个输出端口,

指定循环执行的次数。循环端口 Iteration 是一个输出端口,输出当前执行的循环次数(也是

从 0 开始)。

2.case 选择结构

选择结构如上图所示。它的子框图像一摞卡片一样重叠在一起,任何时候只显示其中一

个,向这些子框图填写代码也要一层层打开进行。由选择结构外连接到选择端口的值决定了

智能仪表课程设计 实验指导书

16 / 91

选择结构应该执行哪一个子框图的代码。这个值的类型可以是整形、布尔型、字符型或枚举

型,默认为布尔型。选择端口图标的颜色也会随连接的数值类型而改变。子框图标志指明当

前显示的子框图对应的选项,但是程序运行时并不一定执行当前显示的子框图。

1.3.5 图形显示

1. 概述

图形显示对于虚拟仪器面板设计是一个重要的内容。LabVIEW 为此提供了丰富的功能。

在前面几章我们已经接触了这个问题,现在较系统地介绍一下。

我们不从图形的实现方法上去讨论问题,那是计算机图形学的课题。但我们需要从用户

的可能的需求角度探求一下,如果你需要做虚拟仪器方面的开发,那么可能遇到些什么图形

问题。LabVIEW 在这方面所做的工作是非常值得借鉴的。

在 LabVIEW 的图形显示功能中 Graph 和 Chart 是两个基本的概念。一般说来 Chart 是

将数据源(例如采集得到的数据)在某一坐标系中,实时、逐点地显示出来,它可以反映被

测物理量的变化趋势,例如显示一个实时变化的波形或曲线,传统的模拟示波器、波形记录

仪就是这样。而 Graph 则是对已采集数据进行事后处理的结果。它先将被采集数据存放在一

个数组之中,然后根据需要组织成所需的图形显示出来。它的缺点是没有实时显示,但是它

的表现形式要丰富得多。例如采集了一个波形后,经处理可以显示出其频谱图。现在,数字

示波器也可以具备类似 Graph 的显示功能。

LabVIEW 的 Graph 子模板中有许多可供选用的控件,其中常用的见下表:

Chart Graph

Waveform(波形) * *

XY *

Intensity(强度图) * *

Digital(数字图) *

3D Surface(三维曲面) *

3D Parametric(三维参变量) *

3D Curve(三维曲线) *

由表中可以看出,Chart 方式尽管能实时、直接地显示结果,但其表现形式有限,而 Graph

方式表现形式要远为丰富,但这是以牺牲实时为代价的。在 LabVIEW 中还包含有极坐标等

其他图形(Plot),本章不讨论。

2. Graph 控件

各种图形都提供了相应的控件,以 Graph 为例介绍。下图所示为它的控件。所有这些控

件都包含在图形快速菜单的 Visible Items 选项下。

曲线图例可用来设置曲线的各种属性,包括线型(实线、虚线、点划线等)、线粗细、

颜色以及数据点的形状等。

图形模板可用来对曲线进行操作,包括移动、对感兴趣的区域放大和缩小等。

光标图例可用来设置光标、移动光标,帮助你用光标直接从曲线上读取感兴趣的数据。

刻度图例用来设置坐标刻度的数据格式、类型(普通坐标或对数坐标),坐标轴名称以

智能仪表课程设计 实验指导书

17 / 91

及刻度栅格的颜色等。

Graph 的图形控件

3. Chart 的独有控件

Chart 的数据并没有事先存在一个数组中,它是实时显示的,为了能够看到先前的数据,

Chart 控件内部含有一个显示缓冲器,其中保留了一些历史数据。这个缓冲器按照先进先出

的原则管理,其最大容量是 1024 个数据点。

滚动条(Scrollbar)

它直接对应于显示缓冲器,通过它可以前后观察缓冲器内任何位置的数据。

数据显示(Digital Display)

选中它,可以在图形右上角出现一个数字显示器,这样可以在画出曲线的同时显示当前

最新的一个数据值。

刷新模式(Update Mode)

Chart 提供了三种画面的刷新模式,分别是

Strip Chart Mode(条壮图):它与纸带式图表记录仪类似。曲线从左到右连续绘制,

当新的数据点到达右部边界时,先前的数据点逐次左移。

Scope Chart Mode(示波器模式):它与示波器类似。曲线从左到右连续绘制,当新

曲线图例

刻度图例

(Scale Legend)

图形模板

(Graph Palette)

光标图例

(Cursor Legend)

标签(Label)

说明

(Caption)

智能仪表课程设计 实验指导书

18 / 91

的数据点到达右部边界时,清屏刷新,从左边开始新的绘制。它的速度较快。

Sweep Chart Mode(扫描模式):与示波器模式的不同在于当新的数据点到达右部

边界时,不清屏,而是在最左边出现一条垂直扫描线,以它为分界线,将原有曲线

逐点向右推,同时在左边画出新的数据点。如此循环下去。

堆叠式图区(Stack Plots)

在相同的纵坐标下,由于各种测量信号的差异,将几条曲线显示在同一个图区有困

难时,可以组织出一种纵坐标相同,而有各自横坐标的堆叠式图区。

4.Chart 和 Graph 的比较

目的:创建一个 VI,用 Chart 和 Graph 分别显示 40 个随机数产生的曲线,比较程序的差别。

前面板及流程图如下

显示的运行结果是一样的。但实现方法和过程不同。在流程图中可以看出,Chart 产生

在循环内,每得到一个数据点,就立刻显示一个。而 Graph 在循环之外,40 个数都产生之

后,跳出循环,然后一次显示出整个数据曲线。从运行过程可以清楚地看到这一点。

值得注意的还有 For 循环执行 40 次,产生的 40 个数据存储在一个数组中,这个数组创

建于 For 循环的边界上(使用自动索引功能)。在 For 循环结束之后,该数组就将被传送到

外面的 Graph。仔细看流程图,穿过循环边界的连线在内、外两侧粗细不同,内侧表示浮点

数,外侧表示数组。

1.4 数据采集卡简介

1.4.1 USB-6009 概述

NI USB-6009 为简单的数据记录、便携式测量和院校实验室实验等应用提供基本的数据

智能仪表课程设计 实验指导书

19 / 91

采集功能。 该产品价位适于学生购买,且其强大的功能足以应对更为复杂的测量应用。 Mac

OS X 和 Linux 用户可下载 NI-DAQmx Base 驱动软件并使用 LabVIEW 或 C 对 USB-6009 进

行编程。

NI 开发了含有 LabVIEW 学生版的 USB-6009 学生套件,为仿真、测试和自动化的理论

性课程补充了实践性实验。 上述套件仅供学生使用,是功能优、价格低、实践性强的学习

工具。 若需了解更多详细信息,请访问“资源”选项卡。

如需更更快速采样、更精确测量、校准支持和更高的通道数,建议使用 NI USB-6210

和 NI USB-6211 高性能 USB 数据采集设备。

USB DAQ 设备与下列 NI 应用软件版本(或更高版本)兼容: LabVIEW 7.x、

LabWindows/CVI 7.x或Measurement Studio 7.x。 USB数据采集模块也与Visual Studio .NET、

C/C++和 Visual Basic 6.0 兼容。

8 路模拟输入 (14 位, 48 kS/s)

2 路模拟输出 (12 位, 150 S/s); 12 路数字 I/O; 32 位计数器

总线供电,实现高移动性; 内置信号连接

可提供 OEM 版

兼容 LabVIEW、LabWindows™/CVI 和 Measurement Studio for Visual Studio .NET

1.4.2 USB-6009 规格说明

概述

产品 USB-6009

产品系列 多功能 DAQ

总线类型 USB

产品 编号 779026-01

智能仪表课程设计 实验指导书

20 / 91

操作系统 / 对象 Linux , Mac OS , Pocket PC , Windows

DAQ 产品家族 B 系列

测量类型 电压

隔离类型 None

与 RoHS 指令的一致性 是

USB 供电 总线供电

模拟输入

通道数 4 , 8

单端通道 8

差分通道 4

分辨率 14 bits

采样率 48 kS/s

吞吐量 (所有通道) 48 kS/s

最大模拟输入电压 10 V

最大电压范围 -10 V - 10 V

最大电压范围的精度 7.73 mV

最小电压范围 -1 V - 1 V

最小电压范围的精度 1.53 mV

量程数 8

同步采样 否

板上存储量 512 B

模拟输出

通道数 2

分辨率 12 bits

最大模拟输入电压 5 V

最大电压范围 0 V - 5 V

最大电压范围的精度 7 mV

最小电压范围 0 V - 5 V

最小电压范围的精度 7 mV

频率范围 150 S/s

单通道电流驱动能力 5 mA

智能仪表课程设计 实验指导书

21 / 91

总电流驱动能力 10 mA

数字 I/O

双向通道 12

仅输入通道 0

仅输出通道 0

定时 软件

逻辑电平 TTL

输入电流 源电流 , 漏电流

输出电流 漏电流 , 源电流

可编程输入滤波器 否

支持可编程上电状态? 否

单通道电流驱动能力 8.5 mA

总电流驱动能力 102 mA

看门狗定时器 否

支持握手 I/O? 否

支持模式 I/O? 否

最大输入范围 0 V - 5 V

最大输出范围 0 V - 5 V

计数器/定时器

计数器/定时器数目 1

缓冲操作 否

短时脉冲干扰消除 否

GPS 同步 否

最大量程 0 V - 5 V

最大信号源频率 5 MHz

脉冲生成 否

分辨率 32 bits

时基稳定度 50 ppm

逻辑电平 TTL

物理标准

长度 8.51 cm

智能仪表课程设计 实验指导书

22 / 91

宽度 8.18 cm

高度 2.31 cm

I/O 连接器 螺丝端子

定时/触发/同步

触发 数字

同步总线(RTSI) 否

1.4.3 USB-6009 引脚说明

Signal

Name Reference Direction Description

GND — — Ground—The reference point for the single-ended analog input

measurements, analog output voltages, digital signals, +5 VDC

supply, and +2.5 VDC at the I/O connector, and the bias current

return point for differential mode measurements.

AI <0..7> Varies Input Analog Input Channels 0 to 7—For single-ended

measurements, each signal is an analog input voltage channel.

For differential measurements, AI 0 and AI 4 are the positive and

negative inputs of differential analog input channel 0. The

following signal pairs also form differential input channels:

AI<1, 5>, AI<2, 6>, and AI<3, 7>.

AO <0, 1> GND Output Analog Output Channels 0 and 1—Supplies the voltage output

of AO channel 0 or AO channel 1.

智能仪表课程设计 实验指导书

23 / 91

P0.<0..7> GND Input or

Output

Port 0 Digital I/O Channels 0 to 7—You can individually

configure each signal as an input or output.

P1.<0..3> GND Input or

Output

Port 1 Digital I/O Channels 0 to 3—You can individually

configure each signal as an input or output.

PFI 0 GND Input PFI 0 —This pin is configurable as either a digital trigger or an

event counter input.

+2.5 V GND Output +2.5 V External Reference—Provides a reference for

wrap-back testing.

+5 V GND Output +5 V Power Source—Provides +5 V power up to 200 mA.

1.4.4 NI-DAQ mx 在 USB 设备上的应用

本节将介绍如何安装和配置 NI USB 数据采集设备,以及如何确认设备工作正常。请

访问 ni.com/manuals 查看相关的其他文档。请访问 ni.com/info 并输入信息代码 rddq8x,

查看 NI-DAQmx 相关的文档。

Step 1:安装 NI 应用软件

安装 NI 应用软件,例如, LabVIEW。升级软件或修改应用程序前应备份应用程序。

Step 2:安装 NI-DAQmx

在安装 NI USB 设备前安装 NI-DAQmx 驱动程序软件,可使 Windows 检测出设备。

将设备随附的光盘插入计算机。如 NI-DAQmx 安装程序未自动运行,可选择开始 » 运行。

输入 x:\autorun.exe, x 是驱动器的名称。完成安装。关于故障排查信息,请访问

ni.com/support/daqmx。

Step 3:NI USB 设备拆包和安装

注意:NI USB 设备为静电敏感设备,操作或连接设备时,人体和设备都需始终接地。

从包装中取出并检查设备。如设备损坏,请联系 NI。请勿安装破损设备。关于信号标

签、压线槽、面板安装、安全合规性的信息,请参考 ni.com/manuals 上的 NI USB 设备文

智能仪表课程设计 实验指导书

24 / 91

档。如要安装 NI USB 设备,将 USB 线插入 PC 和设备,按照提示进行操作。

固件更新

安装 NI USB 设备或更新 NI-DAQmx 后,请根据 Windows 硬件向导的提示更新设备

的固件。

USB-9000 系列用户-第一次将设备连接至计算机时, “ 找到新硬件 ” 向导将会反

复出现大约三次,直到设备就绪。

NI 设备监视器

Windows 监测到新安装的设备后, NI 设备监视器在启用时会自动运行。

NI 设备监视器的图标(如左图所示)在 Windows 任务栏可见时, NI 设

备监视器处于打开状态。断开设备连接,选择开始»所有程序»National

Instruments»NI-DAQ»NI 设备监视器,然后插入设备,可打开 NI 设备监

视器。

NI 设备监视器将提示用户从下列选项中选择:根据设备和系统中安装软件的不同,出

现的选项可能有所差异。

通过 NI LabVIEW SignalExpress 使用设备进行测量-在 LabVIEWSignalExpress

中创建 NI-DAQmx 相关步骤,通过设备通道进行数据采集。

使用该设备开始一个应用-打开 LabVIEW。如已在 MAX 中配置设备,选择该选

项。

运行测试面板-在 MAX 中运行设备的测试面板。

配置并测试该设备-打开 MAX。

不执行操作-仅识别设备,不运行任何程序。

右键单击 NI 设备监视器,可选择下列选项:

启动时运行-系统启动时运行 NI 设备监视器(默认)。

清除所有设备关联-清除设备自动打开的对话框中一直采取该操作选项设置的所

有动作。

关闭-关闭 NI 设备监视器。

Step 4 :确认 NI USB 设备识别

按照下列步骤,确认 NI USB 设备识别:

1. 打开 MAX。

2. 展开设备和接口,确认 MAX 已识别 NI USB 设备。如 NI USB 设备未显示,请按

<F5> 刷新 MAX。如仍未显示,请访问 ni.com/support/daqmx。

3. 右键单击 NI USB 设备名并选择自检。自检结束后,提示信息将显示检测成功或出

错。如提示出错,请查询 ni.com/support/install。

智能仪表课程设计 实验指导书

25 / 91

Step 5:连接传感器和信号线

所有 NI USB 设备都有 PDF 版用户手册,其中包含详细的接线端说明信息。请访问

ni.com/manuals 搜索相关设备的文档。下表列出了从不同位置查看接线端的方法。

位置 如何找到接线端

MAX 右键单击 NI-DAQmx 设备下的设备名称,选择设备引脚。

MAX 右键单击 NI-DAQmx 设备下的设备名称,选择 帮助 »在线设备帮助。

搜索设备相关文档时,浏览器窗口将打开 ni.com/manuals。

DAQ 助手 选择任务或虚拟通道,单击连线图选项卡。选择任务中的各个虚拟通道。

NI-DAQmx 帮助 选择开始 » 所有程序 »National Instruments»NI-DAQmx»NI-DAQmx

帮助。

ni.com/manuals 请参考设备文档。

关于传感器的详细信息,请访问 ni.com/sensors。关于 IEEE 1451.4 TEDS 智能传感器的

更多信息,请访问 ni.com/teds。

如使用 LabVIEW SignalExpress,请查看 Step 7:在应用程序中使用 NI USB 设备。

Step 6:运行测试面板

按照下列步骤使用 MAX 测试面板:

1. 在 MAX 中,展开设备和接口»NI-DAQmx 设备。

2. 右键单击设备,选择测试面板打开设备的测试面板。

3. 单击开始,测试设备功能,或单击帮助查看操作须知。

如发生错误,可通过 NI-DAQmx 帮助或 ni.com/support 获取疑难解答信息。

智能仪表课程设计 实验指导书

26 / 91

Step 7:在应用程序中使用 NI USB 设备

使用 DAQ 助手配置虚拟通道和测量。

安装 NI-DAQmx 后,请选择开始» 所有程序»National Instruments»NI-DAQ 下的自述

文件,查看支持的 LabVIEW SignalExpress、LabVIEW 和操作系统版本信息。

下表列出了 DAQ 助手教程在 NI 软件中的位置:

NI 应用程序 教程位置

LabVIEW 选择帮助 » 搜索 LabVIEW 帮助。然后选择 LabVIEW 入门指南 »DAQ

入门指南 »Taking an NI-DAQmx Measurement in LabVIEW。

LabWindows

/CVI

选 择 Help»Contents 。 然 后 选 择 Using LabWindows/CVI»Data

Acquisition»Taking an NI-DAQmx Measurement in LabWindows/CVI。

Measurement

Studio

选择 NI Measurement Studio Help»Getting Started with the Measurement

Studio Class Libraries»Measurement Studio Walkthroughs»Walkthrough:

Creating a Measurement Studio NI-DAQmx Application。

LabVIEW

SignalExpress 选择 Help»Taking an NI-DAQmx Measurement in SignalExpress。

程序范例

NI-DAQmx 中的范例帮助用户开发应用程序时快速上手。用户可修改范例程序,然后

将修改后的范例保存在应用程序中,或直接将范例添加至现有或新建的应用程序中。

访问 ni.com/info,输入信息代码 daqmxexp,可查看 NI 程序范例。更多范例,请访问

ni.com/zone。

使用 NI-DAQmx 仿真设备,无需安装 NI USB 设备即可运行这些范例。在 MAX 中选

智能仪表课程设计 实验指导书

27 / 91

择帮助» 帮助主题»NI-DAQmx»NI-DAQmx 的 MAX 帮助,搜索使用 MAX 创建

NI-DAQmx 仿真设备的详细信息。

2 基于 MSP430 的智能仪器设计

2.1 实验简介

2.1.1 基于 MSP430G2553 的电压表设计

量程自动调节的电压表,三级量程分别为 30mV, 300mV, 3V。

1、 实验平台:

MSP430G2 LaunchPad

2、 硬件设计:

设计并实现输入电压的 100 倍、10 倍、1 倍的放大电路,以及量程转换电路。

要求: 画出电压表系统的原理图,包括放大电路及量程转换电路、A/D 接口与液晶显示接

口电路。

3、 软件设计:

a. 系统初始化(包括接口电路的初始化以及单片机自身的一些初始化);

b. 测量电压并进行量程判断,选择合适的放大电路;

c. 由 A/D 转换电路读入电压值;

d. 数据滤波处理(每个电压值取 100 次测量平均值);

e. 液晶板显示测量电压。

f.给出系统校准方法

g.实验数据分析

要求:测量误差在 1%以下。

4、实验器材:

要求对元器件选型进行分析和说明。器材由实验室提供。

5、 扩展内容:

设计一个具有三级量程(30mV,300mV,3V,10-1000Hz)的交流电压表,有自动转

换量程的功能,并测量其频率。

2.1.2 基于 MSP430G2553 的电子秤设计

应用 MSP430G2 LaunchPad、电阻应变片称重传感器、运算放大器等器件,制作简易电

子秤。两档量程 1-10g,10-100g,可自动调节。

a) 显示被测物体重量,称重稳定时间不超过 5 秒;

b) 称重范围为 1g¬—100g,通过校正补偿称重传感器的非线性,在量程称重范围内称

重精度优于 1%;

c) 实现“去皮”功能,即可以重新设定“零”重量点;

智能仪表课程设计 实验指导书

28 / 91

2.2 MSP430 系列单片机概述

本节主要内容包括 MSP430G2 系列单片机的特点性能介绍,launchpad 评估板资源的

使用方法介绍及单片机入门的一些基础知识,其中单片机入门知识有关软件的部分希望能够

引起读者们的注意,因为目前就单片机开发而言,硬件方案 IC 制造商总是能够提出多样、

成套的解决方案,而工程师在整合方案之余,绝大部分精力都投入到了编程之中,故而在学

习单片机之初养成良好地编程习惯,不失为是工程师之路的一个良好地开端。

2.2.1 MSP430 系列单片机及低功耗特性

如今的单片机已经不再是二十年前所谓的 SCM,而是从 MCU 向 SOC 转型中间期的

一个时代,在开始本章节正是内容之前,不妨先解释一下上述提到的几个英文缩写:

SCM:单片微型计算机(Single Chip Microcomputer),主要是寻求最佳的单片形态嵌入

式系统的最佳体系结构。Intel 公司的 8031 就是这个缩写的代名词。

MCU:微控制器(Micro Controller Unit),主要的技术发展方向是:不断扩展满足嵌入

式应用时,对象系统要求的各种外围电路与接口电路,突显其对象的智能化控制能力。它所

涉及的领域都与对象系统相关,Philips 公司是最早提出并将这种概念付诸实践的。

SOC:嵌入式系统 System on Chip)即寻求应用系统在芯片上的最大化解决,尤其是对

于便携式、轻量小型化的手持设备,对单片集成系统的需求更是强烈。每当工程师们讨论到

手持设备,MSP430 系列单片机总是第一个被提上议程。

MSP430(Mixed Signal Processor 混合信号处理器)系列最为夺目的亮点之一就是超低

功耗运行,这一硬件上的特点甚至带来另一种以中断为主的编程模式。

关于 MSP430 系列单片机到底有多省电,可以做如下一个实验:

实验器材:橘子一个、锌电极三支(Zn,可以把废旧的锌锰干电池外皮剪下压平)、铜

电极三支(Cu,可以用铜制钥匙充当)、导线若干,内带秒表程序 MSP430+段码液晶小系

统。

实验步骤:

1.制作原电池。将橘子切成三块,分别在果肉两侧插入锌铜两个电极,锌为负端,铜

为正端。再用导线将三个原电池串联,固定牢靠后用万用表测量电池电压。实测数据每个水

果电池电压约为 0.8V,三个串联达 2.4V,虽然距离 MSP430 单片机标准供电电压 3.3V 还

有很大差距,但是在这些条件下 MSP430 单片机运行是绰绰有余的。

2.将 MSP430 单片机系统的 VCC、GND 分别和水果电池组的正负极连接,观察段

码液晶是否可以受到单片机的正常控制。水果原电池能提供的电流十分有限,短路实测最大

电流不足 100uA,而 MSP430 单片机运行秒表程序功耗仅仅不足 2uA,段码液晶约 3uA,

系统总功耗 5uA。对于这个橘子而言,给 MSP430 单片机供电实在是屈才了。

3.将该实验装置放在通风良好,温度 20 摄氏度的环境下,每天三次记录单片机系统

的运行状态,检测系统能够维持的时间。

经实验,只要水果没有腐烂变质或者风干(可以适当补充水分),该系统能坚持一个月

以上。当液晶上的显示变得模糊不清时,立刻换上新的电源,系统立刻重获新生,这时

品尝

橘子,几乎没什么酸味了。5uA 到底是个什么概念呢,举一个更直接的例子,常用的

CR2032

纽扣电池,可以为这个系统提供 5 年以上的续航能力。

智能仪表课程设计 实验指导书

29 / 91

如此种卓越的超低功耗特性,自然给 MSP430 单片机开拓了广阔的应用空间:

第一,正如前文所说,MSP430 单片机就是为了便携式设备而量身打造的。随着技术的

日新月异,便携式设备不断的向小型化、轻量化、高精度、多功能化的方向发展,在集成度、

电池尺寸、设备大小的限制下,还对处理器运算能力和片上资源有了更高的要求。MSP430

单片机强大 CPU(16 位处理器,每秒处理指令最高 25 兆)和片上丰富的接口电路和模拟

电路资源,可以实现模拟数字信号混合处理,大部分设计“单芯片”完成,大幅提高集成度

和生产效率的同时有效的控制了成本。

第二,超低功耗的特定使得产品电池寿命终身化这个命题得以实现。按照电子产品预期

使用寿命 5~8 年计算,电池设计寿命 8~10 年,如果产品耗电量足够低的话,一款产品终

生只用配上一块电池,无需充电和更换。这样一方面减少了用户的麻烦,另一发明设计和制

造的成本也降了下来。例如一款基于 MSP430 单片机的野外气象观测的传感器节点,可以

连续工作数年不更换电池,直至产品寿命终结。

第三,MSP430 单片机低功耗还体现在另一方面,即十分微弱的能量,也能够驱动

MSP430 单片机工作,在 1.8V 以上的电压下 CPU 都可以正常工作,最新系列的 MSP430

单片机甚至可以把这个数值再降低几乎一半至 1.1V。这样很多间接电能也能直接给

MSP430 单片机供电,如小块太阳能电池、信号线自取点、温差能、电缆上磁场能、人体机

械运动震动的能量、酸碱性溶液中的能量等等。基于这种间接电能设计的无源设备产品,也

是符合当前低碳环保设计理念的新方向。日本最近研制了一种尿液检查卡片,就是以尿液作

为电解质发电,驱动低功耗系统进行尿液样本分析。

TI 新品发布会上,Scott Roller 用“无人能及,实实在在”八个字来形容 430 系列产

品,并将“独特的超低漏电工艺技术”和 MSP430 单片机超低功耗系统理念、MSP430 Ware

软件列为 MSP430 单片机系列”实现超低功耗的三大独门秘籍。

对于单片机开发人员而言,芯片内部工艺或许与设计不是那么相关,但是 MSP430 单

片机低功耗系统在软件方面的操作就至关重要了,因为即使 CPU 能够以极低的功耗执行指

令,而程序总是做一些冗余的动作,那样进行下来,还是会有很多功耗白白浪费,那么

MSP430 为软件上控制低功耗又提供了那些可能呢?

首先,MSP430 单片机建立的时钟系统概念,使得 CPU、片上模块、休眠唤醒三者时

钟彼此独立。总众所周知,时钟频率的高低是决定系统功耗的一个重要因素,但是不同模块

的运行速度各不相同,CPU 的繁忙程度也并非总是很高,这就造成低速时钟无法满足需求,

高速时钟又会带来功率浪费的尴尬局面。MSP430 单片机时钟系统提供了三种时钟,通过软

件寄存器设置,不同时钟可以分别开启关闭,可以分别设置倍频分频系数,为各种模块和

CPU 提供多样的选择。基于这样的时钟系统,MSP430 单片机可以实现不同深度的系统休

眠,如此梯度化的休眠方式,让整个系统以间歇工作的方式,最大限度的节约能量。

其次,MSP430 单片机采用模块化设计,在使用时每个模块都可以由软件单独开启关闭,

用到某一模块时打开它,任务完毕之后关闭它,这样也能节省不少的电能。这样的设计还有

诸多其他好处,每一种模块都具有独立完整的结构,在不同型号单片机中,同款模块的功能

结构使用方法都是完全一样的。同一家族不同型号的 MSP430 单片机,实际上就是不同功

能模块的组合。这样的设计,对于学习者而言,使得 MSP430 单片机学习一通百通,对研

发者而言,更换更高级的 MSP430 单片机芯片时,程序移植得心应手。

此外,对于新手而言,如何在保证程序稳定性、健壮性的前提下提高程序执行效率、删

除冗余语句,还是一个遥不可及要求。TI 公司就专门组织了老练的程序工程师编写了程序

库 MSP430 ware,MSP430 430ware 中囊括了几乎所有模块的所有功能函数和海量的例程,

把工程师从底层繁琐的代码编写工作中解放了出来,同时还保证了底层函数的效率和稳定。

智能仪表课程设计 实验指导书

30 / 91

2.2.2 MSP430 单片机的其他特点

除了超低功耗这一突出优势外,MSP430 系列单片机还有不少其他不俗的表现:

1. MSP430 单片机内核采用 16 位 RISC(reduced instruction set computer,精简指令集

计算机)处理器,单指令周期,运算能力和速度优势明显,某些型号的 MSP430 单片机内

部带有硬件乘法器,在 DMA 控制器的配合下,性能堪比 DSP(Digital Signal Processing,

数字信号处理,一种专精于复杂信号运算的智能器件)。

2. MSP430 单片机采用冯 诺依曼结构,寄存器和数据段(即 RAM)与代码段(即

ROM, FLASH 或 FRAM)统一编制。这样代码在 RAM 里同样可以运行,每款 MSP430

单片机都有 FLASH(或 FRAM)控制器,通过它可以对 ROM 的区的代码进行擦写。这

种机制可以很方便的实现设备在线升级功能,无需重新烧写程序,固件更新时单片机仍处正

常工作状态。

3. MSP430 单片机属于工业级芯片,能够在-40~85 摄氏度的范围内工作,并且带有

PWM 发生器等控制输出。适合各类工业测量、工业控制、电机控制等领域。

4. MSP430 单片机作为混合信号处理器,模拟设备也是一大特色,运算放大器、比较器、

ADC、DAC 应有尽有。以 ADC 为例,有高速的 ADC10、ADC12;有高精度的 SD16、

SD24;还有低成本的 SLOPE,可以满足各式各样的测试任务。

5. MSP430 单片机具有多种通信接口,涵盖 UART、I2C、SPI、USI 等等,5 系列单

片机还带有 USB 控制器、射频控制器、Zigbee 控制器。适用于各种协议下的数据中继器、

转发器、转换器的应用中。

6. TI 公司实力雄厚,MSP430 单片机系列产品生命力旺盛,自 1996 年问世以来每年

都有新的型号推出,更新、更强、更省电的单片机不断的推出。2012 年六又推出了新款的

“金刚狼”系列,再度挑战低功耗极限。

2.3 MSP430 G2 LaunchPad 简介

前言所述,主要谈到 MSP430 系列单片机在超低功耗领域傲人的优势,具体谈到

MSP430G2 系列单片机,其核心竞争力在于超高性价比。G2 系列又称“超值系列”,那么它

的超值到底体现在哪些方面呢?

首先,G2 系列单片机的售价低,G2 全系列单片机共有 44 款,根据片上资源的丰富程

度价格由低到高,最低价格 0.34 美元,配置最全的 2553 也仅售 0.99 美元,这样的价位在单

片机范围内可以算是物美价廉了。

G2 系列单片机虽然价格不高,但不等于它的功能不强,G2 系列单片机作为 MSP430

系列中的一员拥有大部分 MSP430 单片机片上外围模块:

16MHz 主频 16 位 CPU

片上程序存储器 FLASH(512B/1KB/2KB/4KB/8KB/16KB)及 FLASH 控制器

片上随机存储器 SRAM(128B/256B/512B)

通用并行输入输出端口 GPIO(4 位/16 位/20 位/24 位)

支持电容触摸式 I/O

看门狗定时器 WDT

上电复位模块 BOR

多功能通信模块 USI(I2C/SPI)USIC_A(UART/LIN/IrDA/SPI) USIC_B(I2C&SPI)

智能仪表课程设计 实验指导书

31 / 91

比较器模块 Comparator A+

片内温度传感器 Temp Sensor

十位逐次逼近型 ADC10

斜率型 slope ADC

板载着一颗 MSP430G2 单片机的 launchpad 评估实验开发板除了上述片上资源外,板

上还有诸多额外的硬件资源:

板载 USB 调试与编程仿真器接口,无驱动可安装

支持所有采用 DIP14 和 DIP20 封装 MSP430G2XX 和 MSP430F20 器件

红绿两粒 LED,两个按键

配套两款电容触摸板

所有管脚在板子两边引出

2.4 CCS 快速上手

2.4.1 CCS 简介

Code Composer Studio 是一种针对 TI 的 DSP、微控制器和应用处理器的集成开发环

境。CCStudio 包括一套用于开发和调试嵌入式应用程序的工具。它包括用于各种 TI 设备

系列的编译器、源代码编辑器、项目生成环境、调试程序、探查器、模拟器和其他许多功能。

CCStudio 提供一个单一用户界面,指导用户完成应用程序开发流程的每一步骤。类似的工

具和界面使用户能够比以前更快地开始使用,并且能够向他们的应用程序添加功能,这些都

智能仪表课程设计 实验指导书

32 / 91

归功于成熟的生产能力工具。

本章节着重讲解 CCS 的使用的基本方法和功能,旨在与读者读完后能够快速上手,开

始自己的 MSP430 单片机学习、练习之路,当然这里提到的使用方法也同样适用与 DSP 等

其他 CCS 支持的处理器。

功能总览

1. 调试

CCStudio 的集成调试程序具有用于简化开发的众多功能和高级断点。条件断点或硬件

断点以全 C 表达式、本地变量或寄存器为基础。高级内存窗口允许您检查内存的每一级别,

以便您可以调试复杂的缓存一致性问题。CCStudio 支持复杂的多处理器或多核系统的开发。

全局断点和同步操作提供了对多个处理器和多核的控制。

2. 分析

CCStudio 的交互式探查器使快速测量代码性能并确保在调试和开发过程中目标资源的

高效使用变得更容易。探查器使开发人员能够轻松分析其应用程序中指令周期内或其他事件

内的所有 C/C++函数,例如缓存未命中/命中率、管道隔栏和分支。分析范围可用于在优化

期间将精力集中在代码的高使用率方面,帮助开发人员开发出经过优化的代码。分析可用于

任何组合的汇编、C++或 C 代码范围。为了提高生产能力,所有分析设备在整个开发周期

中都可供使用。

3. 脚本

某些任务,例如测试,需要运行数小时或数天而不需要用户交互。要完成此类任务,IDE

应能自动执行一些常见任务。CCStudio 拥有完整的脚本环境,允许自动进行重复性任务,

例如测试和性能基准测试。一个单独的脚本控制台允许您在 IDE 内键入命令或执行脚本。

4.图像分析和虚拟化

CCStudio 拥有许多图像分析及图形虚拟化功能。其中包括以图形方式在能够自动刷新

的屏幕上查看变量和数据的能力。CCStudio 还能以本机格式(YUV、RGB)查看主机 PC 或

在目标电路板中加载的图像和视频数据。

5. 编译器

TI 已经开发了专门为了最大程度地提高处理器的使用率和性能而优化的 C/ C ++编译

器。TI 编译器使用各种各样经典的、面向应用的、成熟的、因设备而异的优化,专为所有

支持的结构而优化。其中部分优化包括:

消除公共子表达式;软件流水;强度折减;自动增量寻址;基于成本的寄存器分配;指

令预测;硬件循环;函数内联;矢量化。

TI 编译器还执行程序级别优化,在应用程序级别评估代码性能。通过程序级别视图,

编译器能够像具有完整系统视图的汇编程序开发人员一样生成代码。编译器充分利用此应用

程序级别视图,找出能够显著提升处理器性能的折衷。

TI ARM 和 Microcontroller C/C++编译器经过专门针对代码大小和控制代码效率的优

化。它们具备行业领先的性能和兼容性。

6. 模拟

智能仪表课程设计 实验指导书

33 / 91

模拟器向用户提供一种在能够使用开发板之前开始开发的方式。模拟器还具有更加透彻

地了解应用程序性能和行为的优势。提供了几种模拟器,让用户能够权衡周期精确性、速度

和外围设备模拟,一些模拟器特别适合算法基准测试,而另一些特别适合更加详细的系统模

拟。

7. 仿真

TI 设备包含高级硬件调试功能。这些功能包括:

IEEE 1149.1 (JTAG) 和边界扫描;

对寄存器和内存的非侵入式访问;

实时模式,用于调试与不得禁用的中断进行交互的代码。实时模式允许您在中断事件挂

起后台代码,同时继续执行时间关键中断服务例程;

多核操作,例如同步运行、步进和终止。其中包括跨核触发,该功能可以让一个核触发

另一个核终止;高级事件触发 (AET),可在选定设备上使用,允许用户依据复杂事件或序

列,例如无效数据或程序内存访问,终止 CPU 或触发其他事件。它能够以非侵入式方式测

量性能及统计系统事件数量(例如缓存事件);

CCStudio 提供有关选定设备的处理器跟踪,帮助客户发现以前“看不到的”复杂实时

缺陷。跟踪能够探测很难发现的缺陷-事件之间的争用情况、间歇式实时干扰、堆栈溢出崩

溃、失控代码和不停用处理器的误中断。跟踪是一种完全非侵入式调试方法,依赖处理器内

的调试单元,因此不会干扰或更改应用程序的实时行为。跟踪可以微调复杂开关密集型多通

道应用程序的代码性能和缓存优化。处理器跟踪支持程序、数据、计时和所选处理器与系统

事件/中断的导出。可以将处理器跟踪导出到 XDS560 跟踪外部 JTAG 仿真器或选定设备

上,或导出到芯片缓存嵌入式跟踪缓存(ETB)上。

8. 实时操作系统支持

CCS 具有两个版本的 TI 实时操作系统:

DSP/BIOS5.4x 是一种为 DSP 设备提供预清空多任务服务的实时操作系统。其服务包

括 ISR 调度、软件中断、信号灯、消息、设备 I/O、内存管理和电源管理。此外,DSP/BIOS5.x

还包括调试诊断和加工,包括低系统开销打印和统计数据收集。

BIOS6.x 是一种高级可扩展实时操作系统,支持 ARM926、ARM Cortex M3、C674x、

C64x+、C672x 和基于 28x 的设备。它提供 DSP/BIOS 5.x 没有的若干内核和调试增强,

包括更快、更灵活的内存管理、事件和优先级继承互斥体。

注意:BIOS6.x 包括 DSP/BIOS5.x 兼容层,从而使应用程序源代码的迁移非常轻松。

2.4.2 CCS 的安装

(1)运行下载的安装程序 ccs_setup_5.1.1.00031.exe,当运行到下图处时,选择 Custom 选

项,进入手动选择安装通道。

智能仪表课程设计 实验指导书

34 / 91

(2)单击 Next 得到如下图所示的窗口,为了安装快捷,在此只选择支持 MSP430 Low Power

MCUs 的选项。单击 Next,保持默认配置,继续安装。(如果需要作为 C28x 32-bit Real-time

MCUS 或者其他处理器的集成开发环境,则勾选相应的选项。)

智能仪表课程设计 实验指导书

35 / 91

(3)单击 Finish,将运行 CCS,弹出如下图所示窗口,打开“我的电脑”,在某一磁盘下,

创建以下文件夹路径:C:\MSP-EXP430G2-Launchpad,单击 Browse,将工作区间链接到所

建文件夹。CCS 首先要求的是定义一个工作区,即用于保存开发过程中用到的所有元素(项

目和指向项目的链接,可能还有源代码)的目录。默认情况下,会在 C:\Users\<用

户>\Documents 或 C:\Documents and Settings\<用户>\My Documents 目录下创建工作区,但

可以任意选择其位置。每次执行 CCS 都会要求工作区目录。如果计划对所有项目使用一个

目录,只需选中“Use this as the default and do not ask again(默认使用此目录且不再询问)”

选项。以后随时可以在 CCS 中更改工作区。

智能仪表课程设计 实验指导书

36 / 91

(4)单击 OK,第一次运行 CCS 需进行软件许可的选择,如下图所示。在此,选择 CODE

SIZE LIMITED(MSP430)选项,在该选项下,对于 MSP430,CCS 免费开放 16KB 的程序空

间 ; 若 您 有 软 件 许 可 , 可 以 参 考 以 下 链 接 进 行 软 件 许 可 的 认 证 :

http://processors.wiki.ti.com/index.php/GSG:CCSv5_Running_for_the_first_time,单击 Finish 即

可进入 CCSv5.1 软件开发集成环境,如下图所示。

智能仪表课程设计 实验指导书

37 / 91

2.4.3 CCS 的调试

2.4.3.1 利用 CCSv5.1 导入已有工程

(1)首先打开 CCSv5.1 并确定工作区间 C:\MSP-EXP430G2-Launchpad,选择 File-->Import

弹出如下图所示对话框,展开 Code Composer Studio 选择 Existing CCS/CCE Eclipse Projects。

智能仪表课程设计 实验指导书

38 / 91

(2)单击 Next 得到如下图所示对话框。

(3)单击 Browse 选择需导入的工程所在目录,在此,我们选择:

C:\MSP-EXP430G2-Launchpad\MSP-EXP430G2-Launchpad(需在此之前,将实验代码复制到

工作区间下),如下图所示。

智能仪表课程设计 实验指导书

39 / 91

(4)单击 Finish,即可完成既有工程的导入。

(5)此外也可以通过 project-->Import Exiting CCS/CCE Eclipse Project 导入已有工程,如下

图所示,其他步骤与步骤(2)-(4)相同。

2.4.3.2 利用 CCSv5.1 新建工程

(1)首先打开 CCSv5.1 并确定工作区间,然后选择 File-->New-->CCS Project 弹出如下图所

示对话框。

智能仪表课程设计 实验指导书

40 / 91

(2)在 Project name 中输入新建工程的名称,在此输入 myccs1。

(3)在 Output type 中有两个选项:Executable 和 Static library,前者为构建一个完整的可执

行程序,后者为静态库。在此保留:Executable。

(4)在 Device 部分选择器件的型号:在此 Family 选择 MSP430;Variant 选择 MSP430Gxxxx

family,芯片选择 MSP430G2210;Connection 保持默认。

(5)选择空工程,然后单击 Finish 完成新工程的创建。

(6)创建的工程将显示在 Project Explorer 中,如下图所示。

特别提示:若要新建或导入已有.h 或.c 文件,步骤如下:

(7)新建.h 文件:在工程名上右键点击,选择 New-->Header File 得到如下图所示对话框。

在 Header file 中输入头文件的名称,注意必须以.h 结尾,在此输入 myo1.h。

(8)新建.c 文件:在工程名上右键单击,选择 New-->source file 得到如下图所示对话框。

智能仪表课程设计 实验指导书

41 / 91

在 Source file 中输入 c 文件的名称,注意必须以.c 结尾,在此输入 my01.c。

(9)导入已有.h 或.c 文件:在工程名上右键单击,选择 Add Files 得到如下图所示对话框。

找到所需导入的文件位置,单击打开,得到如下图所示对话框。

选择 Copy files,单击 OK,即可将已有文件导入到工程中。

若已用其它编程软件(例如 IAR),完成了整个工程的开发,该工程无法直接移植入

CCSv5,但可以通过在 CCSv5 中新建工程,并根据步骤(7)、(8)和(9)新建或导入已有.h

和.c 文件,从而完成整个工程的移植。

2.4.3.3 利用 CCSv5.1 调试工程

2.4.3.3.1 创建目标配置文件

(1)在开始调试之前,有必要确认目标配置文件是否已经创建并配置正确。在此以实验一

智能仪表课程设计 实验指导书

42 / 91

为例进行讲解:首先导入 Lauchpad 实验的工程,如下图所示,其中 MSP430G2231.ccxml

目标配置文件已经正确创建,即可以进行编译调试,无需重新创建;若目标配置文件未创建

或创建错误,则需进行创建。为了讲解目标配置文件创建过程,在此对 LAB1 的工程再次创

建目标配置文件。

(2)创建目标配置文件步骤如下:右键单击项目名称,并选择 NEW --> Target Configuration

File。

智能仪表课程设计 实验指导书

43 / 91

( 3 )在 File name 中键入后缀为 .ccxml 的配置文件名,将配置文件命名为

MSP-EXP430G2231.ccxml,如下图所示。

(4)单击 Finish,将打开目标配置编辑器,如下图所示。

(5)将 Connection 选项保持默认:TI MSP430 USB1 (Default),在 Board or Device 菜单中选

择单片机型号,在此选择 MSP430G2231。配置完成之后,单击 Save,配置将自动设为活动

模式。如下图所示, 一个项目可以有多个目标配置,但只有一个目标配置在活动模式。要

查看系统上所有现有目标配置,只需要去 View --> Target Configurations 查看。

智能仪表课程设计 实验指导书

44 / 91

2.4.3.3.2 启动调试器

(1)首先将 LAB1 工程进行编译通过:选择 Project-->Build Project,编译目标工程。在第

一次编译实验工程时,系统会提示自动创建 rts430xl.lib 库文件,您可以选择等待创建完成,

但可能会花费较长的时间。或者,为了方便,推荐在编译之前将本实验文件夹内的 rts430xl.lib

库文件复制到 CCSV5.1 的库资源文件夹内,其复制路径为:----\tools\compiler\msp430\lib(----

为 CCSv5.1 的安装路径)。

编译结果,如下图所示,表示编译没有错误产生,可以进行下载调试;如果程序有错误,将

会在 Problems 窗口显示,根据显示的错误修改程序,并重新编译,直到无错误提示。

(2)单击绿色的 Debug 按钮 进行下载调试,得到如下图所示的界面。

智能仪表课程设计 实验指导书

45 / 91

(3)单击运行图标 运行程序,观察显示的结果。在程序调试的过程中,可通过设置断

点来调试程序:选择需要设置断点的位置,右击鼠标选择 Breakpoints Breakpoint,断点设

置成功后将显示图标 ,可以通过双击该图标来取消该断点。程序运行的过程中可以通过

单步调试按钮 配合断点单步的调试程序,单击重新开始图标 定位到

main()函数,单击复位按钮 复位。可通过中止按钮 返回到编辑界面。

(4)在程序调试的过程中,可以通过 CCSV5.1 查看变量、寄存器、汇编程序或者是 Memory

等的信息 显示出程序运行的结果,以和预期的结果进行比较,从而顺利地调试程序。单击

菜单 ViewVariables,可以查看到变量的值,如下图所示。

(5)点击菜单 ViewRegisters,可以查看到寄存器的值,如下图所示。

智能仪表课程设计 实验指导书

46 / 91

(6)点击菜单 ViewExpressions,可以得到观察窗口,如下图所示。可以通过

添加观察变量,或者在所需观察的变量上右击,选择 Add Watch Expression 添加到观察窗口。

(7)点击菜单 ViewDisassembly,可以得到汇编程序观察窗口,如下图所示。

(8)点击菜单 ViewMemory Browser,可以得到内存查看窗口,如下图所示。

智能仪表课程设计 实验指导书

47 / 91

(9)点击菜单 ViewBreak points,可以得到断点查看窗口,如下图所示。

智能仪表课程设计 实验指导书

48 / 91

2.4.3.4 CCSv5.1 资源管理器介绍及应用

2.4.3.4.1 CCSV5.1 资源管理器介绍

(1)CCSv5.1 具有很强大的功能,并且其内部的资源也非常丰富,利用其内部资源进行

MSP430 单片机开发,将会非常方便。现在演示 CCSv5.1 资源管理器的应用。如下图所示,

通过 Help-->Welcome to CCS 打开 CCSv5.1 的欢迎界面。

(2)具体 TI 欢迎界面如下图所示,利用 New Project 链接可以新建 CCS 工程;利用 Examples

链接可以搜索到示例程序资源;利用 Import Project 链接可以导入已有 CCS 工程文件;利用

Support 链接可以在线获得技术支持;利用 Web Resources 链接可以进入 CCSv5.1 网络教程,

学习 CCSv5.1 有关知识。

智能仪表课程设计 实验指导书

49 / 91

(3)在“Packages”下拉菜单下选择 ALL,进入 CCSv5.1 资源管理器,如下图所示。在左

列资源浏览器中,包含 MSP430Ware。MSP430Ware 将所有的 MSP430 MCU 器件的代码范

例、数据表与其他设计资源整合成一个便于使用的程序包,基本上包含了成为一名 MSP430

MCU 专家所需要的一切。

(4)如下图所示,展开 MSP430ware,其包含三个方面内容:MSP430 单片机资源、开发装

置资源以及 MSP430 资源库。

(5)展开 MSP430 单片机资源,得到如下图所示的界面,展开 MSP430F5xx/6xx,其中包

含 F5xx/6xx 系列的用户指导、数据手册、勘误表以及示例代码。

智能仪表课程设计 实验指导书

50 / 91

(6)展开 Code Examples,在下拉选项上选择 MSP430F552x,在右面窗口中,将得到

MSP430F552x 有关各内部外设的应用程序资源,如下图所示。若您打算在 ADC 模块的基础

上,开发 MSP430,首先可以选择一个有关 ADC 的工程,作为讲解,在此选择第二个工程:

MSP430F55xx_adc_01.c。单击该工程名称,将会弹出一个对话框,选择单片机型号,在此

选择 MSP430F5529,单击 OK。之后您将在工程浏览器中,看到导入的工程:

MSP430F55xx_adc_01,您可以在此基础上进行单片机的开发。

(7)展开 Development Tools 开发装置资源,得到如下图所示的界面,其中包含

MSP-EXP430F5529 开发板资源。

(8)单击 User Experience Project (Code Limited),在右面窗口中将得到如下图所示窗口。示

例程序导入步骤分为四步,在保证开发板仿真器连接正确的前提下(在此利用开发板内置仿

真器),单击第一步,将示例工程导入 CCS,您将在资源浏览器中,看到导入的工程:

MSP-EXP430F5529 User Experience_16KB,并且第一步和第三步后面蓝色的对号变亮。单

击第二步,对示例工程进行编译,编译完成后,将发现第二步后面蓝色的对号变亮。单击第

四步,将示例工程下载到开发板。

智能仪表课程设计 实验指导书

51 / 91

(9)展开 Libraries 资源库,得到如下图所示的界面,其中包含 MSP430 驱动程序库以及

USB 的开发资源包。“MSP430 驱动程序库”为全新高级 API,这种新型驱动程序库能够使

用户更容易地对 MSP430 硬件进行开发。就目前而言,MSP430 驱动程序库可支持

MSP430F5xx 和 F6xx 器件。MSP430USB 开发资源包包含了开发一个基于 USB 的 MSP430

项目所需的所有源代码和示例应用程序,该开发资源包只支持 MSP430USB 设备。

2.4.3.4.2 430Ware 使用指南

(1) 430Ware 是CCS中的一个附带应用软件,在安装 CCSV5的时候可选择同时安装 430Ware,

在 TI 官网上也提供单独的 430Ware 安装程序下载。(http://www.ti.com/tool/msp430ware)在

430Ware 中可以容易地找到 MSP430 所有系列型号的 Datasheet,User’s guide 以及参考例程,

此外 430Ware 还提供了大多数 TI 开发板(持续更新中)的用户指南,硬件设计文档以及参

考例程。针对 F5 和 F6 系列还提供了驱动库文件,以方便用户进行上层软件的开发。

智能仪表课程设计 实验指导书

52 / 91

(2) 在 CCS 中单击“view”->“TI Resource Explorer”,在主窗口体会显示如下图所示的界

面。其中,Package 右侧的下拉窗口中可以观察目前 CCS 中安装的所有附加软件。在 package

旁的下拉菜单中选择 MSP430Ware,进入 430Ware 的界面。

(3) 在 430Ware 的界面左侧可以看到 3 个子菜单,分别是 Device,里面包含 MSP430 所有的

系列型号;Development Tools,里面包括 TIMSP430 较新的一些开发套件的资料;和 Libaries,

包含了可用于 F5 和 F6 系列的驱动库函数以及 USB 的驱动函数。

(4) 单击入下图所示界面菜单前的三角下拉键,查看下级菜单,可以看到在 Devices 的子目

录下有目前所有的 MSP430 的型号,找到正在使用的型号,例如 MSP430G2xx,同样单击文

字前的三角下拉键,在子目录可以找到该系列的 User’s Guide,在用户指南中有对该系列

智能仪表课程设计 实验指导书

53 / 91

MSP430 的 CPU 以及外围模块,包括寄存器配置,工作模式的详细介绍和使用说明;同时

可以找到的是该系列的 Datasheet,数据手册是与具体的型号相关,所以在 datasheet 的子目

录中会看到具体不同型号的数据手册;最后在这里还可以找到的是参考代码。

(5) 在 430Ware中提供不同型号的CCS示例程序,以及基于Grace的示例程序供开发者参考。

如下图所示,选择具体型号后,在右侧窗口中看到提供到的参考示例程序。为更好地帮助用

户了解 MSP430 的外设,430Ware 中提供了基于所有外设的参考例程,从示例程序的名字中

可以看出该示例程序涉及的外设,同时在窗口中还可以看到关于该例程的简单描述,帮助用

户更快地找到最合适的参考程序。如下图所示,单击选中的参考例程,在弹出的对话框中选

择连接的目标芯片型号。

智能仪表课程设计 实验指导书

54 / 91

(6) 经过上一步操作后,CCS 会自动生成一个包含该示例程序的工程,用户可以直接进行编

译,下载和调试。在 Development Tools 的子目录中可以找到 TI 基于 MSP430 的开发板,部

分资源已经整合在软件中,另外还有部分型号在 430Ware 中也给出了链接以方便用户的查

找和使用。在该目录下可以方便地找到相应型号的开发板的用户指南,硬件电路图以及参考

例程。

(7) 为简化用户上层软件开发,TI 给出了 MSP430 外围模块的驱动库函数,这样用户可以不

用过多地去考虑底层寄存器的配置。这些支持可以在 430Ware 的 Libraries 子目录中方便地

找到。目前对 DriverLib 的支持仅限于 MSP430F5 和 F6 系列。

智能仪表课程设计 实验指导书

55 / 91

通过上述描述可以看出,430Ware 是一个非常有用的工具,利用 430Ware 可以很方便地找到

进行 430 开发所需要的一些帮助,包括用户指南,数据手册和参考例程。

2.5 MSP430 外设基础知识

MSP430 单片机属于 RISC 型处理器。RISC 也就是精简指令集处理器的简称,与普通

51 单片机的复杂指令集相区别。从“指令集”的字面上理解好像仅仅是软件差异,但是其实

是硬件构造有巨大差别。指令复杂,意味着电路复杂,普通 51 单片机执行 1 条指令最少需

要 12 个时钟周期,而 RISC 单片机最少仅需 1 个时钟周期。指令的减少,意味着很多“想法”

没法一次实现,比如 RISC 中的乘法运算就得分解为移位和加法。

对于初学者,不用花力气在区分两种处理器上。只需要知道 RISC 处理器带来的最大不

同就是不能进行位操作,内存寻址只能到字不能到位。打个比方,一栋楼只有一个邮政编码,

快递员送东西只送到楼,这显然送货速度就要比送到户要快。至于,包裹是这栋楼具体哪户

人家的,就得想点办法了。

2.5.1 MSP430 单片机的位操作

2.5.1.1 写位操作

在对某字节使用“=”进行写操作时,所有位的值都将被改变。如果先将原字节读出来,

再使用“按位”操作符对原字节进行赋值,则可“等效”实现对单个位的写操作。

例 将 P1.0 置 1、P1.1 置 0、P1.2 取反,不影响其他位。

P1OUT |= 0x01; //“按位或”,相当于置 1

智能仪表课程设计 实验指导书

56 / 91

P1OUT &= ~0x02; //取反后再“按位与”,相当于置 0

P1OUT ^= 0x04; //“按位异或”,相当于取反

说明:需要特别指出的是,采用“按位”操作并不意味着 MSP430 具备了位操作能力,按

位操作实际是对整个字节的 8 位都进行了“操作”,只不过对其中 7 位的值没影响而已。

在包含了头文件#include "MSP430G2553.h"以后,可以使用各种宏定义来辅助按位操作。

#define BIT0 (0x0001)

#define BIT1 (0x0002)

#define BIT2 (0x0004)

#define BIT3 (0x0008)

#define BIT4 (0x0010)

#define BIT5 (0x0020)

#define BIT6 (0x0040)

#define BIT7 (0x0080)

#define BIT8 (0x0100)

#define BIT9 (0x0200)

#define BITA (0x0400)

#define BITB (0x0800)

#define BITC (0x1000)

#define BITD (0x2000)

#define BITE (0x4000)

#define BITF (0x8000)

有了 BIT0-BITF 的宏定义以后,可以方便的对最多 16 位寄存器的各位进行设置,使用

BITx 宏定义的最大好处是不用再去“数脚趾头”了。上例代码可改写为:

P1OUT |= BIT0; //“按位或”,相当于置 1

P1OUT &= ~BIT1; //取反后再“按位与”,相当于置 0

P1OUT ^= BIT2; //“按位异或”,相当于取反

当然,也可以用加号对多位同时操作。

例 将 P1.0、P1.1、P1.2 均置 1,不影响其他位。

P1OUT |= BIT0+BIT1+BIT2; //可用加法进行批量设置

2.5.1.2 读位操作

读位操作主要是通过 if语句判断的方法得到的。同样,这种变通的办法不意味着MSP430

单片机可以对位进行读取,这种方法同样需要对 1 个字节的 8 位都操作。

例 将 P2.0 的输出设置成与 P1.1 输入相反,读取 P1.0 状态到变量 Temp。

unsigned char Temp=0;

if((P1IN&BIT1)==0) P2OUT |= BIT0; //读 P1.1 写 P2.0

else P2OUT &= ~BIT0;

if(P1IN&BIT0) Temp=1; //读 P1.0 写 Temp

else Temp=0;

2.5.2 MSP430 单片机的寄存器

MSP430 单片机的片内外设极为丰富,这些硬件资源需要大量的寄存器来配置功能。

MSP430 单片机内部有数百个寄存器和近千个控制位,这就注定它不能像 51 那样完全靠人

肉去记忆、靠脚趾头去数位数。

智能仪表课程设计 实验指导书

57 / 91

2.5.2.1 寄存器的一般宏定义配置方法

在 MSP430G2553.h 的头文件中,用于配置寄存器的宏定义有三类,“不带下划线”、“带

1 条下划线”和“1条以上下划线”。

1) 不带下划线的寄存器宏定义:实际上就是一个控制位,以便人们不用去记忆该位在

8 位或 16 位寄存器中的位置。

2) 带 1 条下划线的寄存器宏定义:有些功能设置需要 2 位或以上才能完整描述。当只

需要 2 位时,我们就可以将 2 位的组合展开,变为 xx_0/1/2/3 来直接加以设置,相当于数字

电路中的“2-4 译码”。

3) 带 1 条以上下划线的寄存器宏定义:这类宏定义可以完成某一项非常复杂的设置,

实际上是将多种宏定义的组合相加起来,相当于宏定义的宏定义。

先讨论前两种,下图给出了 BCSCTL2 中 DIVMx 控制位的位置以及 MSP430 头文件中

两种 DIVMx 的宏定义,DIVM0/1 和 DIVM_0/1/2/3,图中 rw-0 的意思是该位可读可写,复

位后初始值为 0。

图 BCSCTL 寄存器的位

#define DIVM0 (0x10) /* MCLK Divider 0 */

#define DIVM1 (0x20) /* MCLK Divider 1 */

#define DIVM_0 (0x00) /* MCLK Divider 0: /1 */

#define DIVM_1 (0x10) /* MCLK Divider 1: /2 */

#define DIVM_2 (0x20) /* MCLK Divider 2: /4 */

#define DIVM_3 (0x30) /* MCLK Divider 3: /8 */

这个 8位寄存器中的DIVMx是用来控制MCLK的分频系数的,分频系数依次为1/2/4/8。

当需要两位才能“决定”某功能时,就会有带下划线加数字的宏定义。3 位及以上 MSP430 头

文件中没有提供,那样的组合太多了。

例 设置 MCLK 的时钟 8 分频。下列 4 条代码均可实现该功能。

BCSCTL2 |= 0x30; //人肉记忆+数脚趾头,原始社会才干的事!

BCSCTL2 |= BIT5+BIT4; //需记忆 DIVMx 在 BSCTL 中的位置,不推荐!

BCSCTL2 |= DIVM1+DIVM0; //由两项组成,看起来不直观,凑合!

BCSCTL2 |= DIVM_3; //简洁明了,力荐!

2.5.2.2 宏定义配置的注意事项

在使用按位或操作符“|=”配置寄存器时,要注意宏定义之间的“叠加”效应。重新用宏定

义配置寄存器前,一定要先清零。(此外,极少数寄存器上电复位后默认值不是 0,要特别

注意。)

智能仪表课程设计 实验指导书

58 / 91

例 先设定 MCLK 分频为 2,一段时间后改为 4 分频。

错误的代码:

BCSCTL2 |= DIVM_1; //这确实是 2 分频

delay( );

BCSCTL2 |= DIVM_2; //因为|=赋值的原因,这实际上是 8 分频,请自行面壁想清楚

正确的代码:

BCSCTL2 |= DIVM_1;// 2 分频

delay( );

BCSCTL2 &= ~( DIVM_0+ DIVM_1+ DIVM_2+ DIVM_3);//预先把全部相关控制位置 0

BCSCTL2 |= DIVM_2;//此时再用|=设置才不出错

相关控制位全置 0 还可写成:

BCSCTL2 &= ~DIVM_3 或 BCSCTL2 &=~(DIVM0+DIVM1)

2.5.2.3 寄存器配置的宏定义组合

有两条及以上下划线的宏定义属于“极品”宏定义,往往 1 招杀敌致胜,在编程中应优先

使用。如下图所示,我们来看 MSP430 头文件中看门狗定时器的寄存器和宏定义节选。

图 WDT 控制寄存器

#define WDTIS0 (0x0001)

#define WDTCNTCL (0x0008)

#define WDTTMSEL (0x0010)

#define WDTPW (0x5A00)

#define WDT_MDLY_32 (WDTPW+WDTTMSEL+WDTCNTCL) /* 32ms*/

#define WDT_MDLY_8 (WDTPW+WDTTMSEL+WDTCNTCL+WDTIS0) /* 8ms */

例 将看门狗定时器设为 8ms 定时器模式。

1) 看门狗控制寄存器 WDTCTL 有 16 个控制位,高 8 位是解锁口令,必须为 0x5A00,

否则单片机将复位。

2) 要将看门狗设为定时器用途,需将 WDTTMSEL 置 1,表明是定时器工作模式(非看

门狗模式)。

3) 如果是 8ms 定时,末 3 位的分频值是 001,详细解释见 WDT 看门狗章节。

本来我们需要这么写:

WDTCTL= WDTPW+WDTTMSEL+WDTCNTCL+WDTIS0

智能仪表课程设计 实验指导书

59 / 91

但是我们有寄存器组合,可以这么写:

WDTCTL= WDT_MDLY_8;//逆袭 !只用 1 句就搞定了

对于一些“物理意义明确”,又归属于同一个寄存器的复杂操作,往往会有这种“多下划

线”的宏定义组合,敬请留意 MSP430xx 单片机的头文件。

2.5.2.4 特殊情况下寄存器的配置

有时候我们会碰到这样的情况,寄存器的参数不是固定的,而是依据某些变量的值得到。

这时,应当将变量移位后直接进行赋值。

例 a 和 b 是两个变量,将 DCOCTL 寄存器中 DCOx 设为 a,MODx 设为 b。DCOCTL 寄存

器的位排列见下图。

图 DCOCTL 控制寄存器

当 a 和 b 的值不溢出时(a 的取值范围为 0-7,b 的取值范围为 0-31),可简单的编程为:

DCOCTL = a<<5+b; //用移位的方法设置寄存器可以避免复杂的代码

避免 a,b 溢出,更好一些的代码为:

DCOCTL= (a<<5)&0xE0+b &0x1F;//用按位与操作将 a,b 分别限定在高 3 位和低 5 位上

2.5.2.5 寄存器配置小结

1) 一般情况下,均使用宏定义去配置寄存器,这样做省事省力,可读性好。

2) 深刻理解“|=”对寄存器赋值的效果,先清 0 后赋值,避免误操作。

3) 提前查阅头文件,尽量使用组合宏定义配置寄存器。

4) 对于由变量决定的寄存器配置,应使用移位后的变量直接赋值。

2.5.3 MPS430 单片机的中断

2.5.3.1 中断的作用

中断有多重要呢?没有中断的单片机就是废物。如果把 CPU 比作一个“无所不能”的超

人,那么“中断”就是围绕在超人身旁的仆人。这些仆人除了给“超人”打小报告以外,什么活

都不会干。千万不要小瞧这“打小报告”,超人虽然无所不能,但超人只有一双手,一次只能

干一件事。

智能仪表课程设计 实验指导书

60 / 91

1) 没有外部中断,CPU 必须蹲在门口看有没有人敲门。有中断的话,CPU 就能解放出

来干大事,中断在此扮演门铃的角色。

2) 没有定时中断,CPU 需要用自己的“生物钟”去延时,基本上属于浪费生命。有中断

的话,闹钟的响铃将拯救 CPU 的生命。

3) 超人也需要休息,没有中断,CPU 休息以后将长眠不醒...

中断的作用:作为 CPU 的仆人,报告“事件”,以便 CPU 停下手头的“任务”去处理“事

件”。主人 CPU 休眠后,“中断”相时而动,叫醒 CPU。

2.5.3.2 中断的使用方法

世界上有些事,不用知道细节。比如吃饭,不用知道粮食是怎么种出来的,吃就行了。

使用中断就是这一类事,用就完了,不用管具体是怎么实现的。依葫芦画瓢,模仿代码足矣。

中断使用的步骤:

1) 配置子模块中断相关的寄存器,比如外部中断的上升沿触发还是下降沿触发,定时

中断的计数方式和定时值。

2) 依模板写中断服务子函数框架,添加中断后要干什么的代码(事件处理函数)。

3) 使能子模块的中断,使能总中断。

4) 一旦中断发生,CPU 停下主函数的活,并标记位置。进入中断服务子函数里干活,

完事后回到主函数标记位置处继续干活。

2.5.3.3 中断服务子函数

我们来看 MSP430 的中断子函数模板,加粗斜体部分是允许用户“创意”的地方,其他则

是固定格式。其中,PORT1_VECTOR 是中断向量表中的地址宏定义,直接决定了这个中断

子函数是响应哪个中断源。PORT1_ISR 是中断子函数名,这个最好按标准写法取名字,便

于理解。中断向量表和标准的中断子函数名可见头文件<MSP430G2553.h>。

#pragma vector = PORT1_VECTOR

__interrupt void PORT1_ISR(void)

{

//中断后想干的事写这里;

}

在 MSP430 单片机中,中断资源是比较“宝贵的”,很多中断都是共用一个“中断向量入

口”。比如上面写的是 P1 口的中断服务子函数,当 P1 的 8 个 IO 口任何一个检测到中断事

件(上升沿或下降沿),就会进入中断子函数。我们需要在子函数里,查询中断标志位(特

殊功能寄存器),判断一下到底是哪个 IO 口“出事”了。

2.5.3.4 中断嵌套

MSP430单片机的中断没有常规意义的优先级,所以一般不进行中断嵌套。进中断子函

数后,一般第一件事都是关掉总中断,待退出中断子函数时才打开。

智能仪表课程设计 实验指导书

61 / 91

如果中断前,CPU 是休眠的,中断来临后,CPU 会被“短暂”唤醒去处理中断子函数,

处理完毕,CPU 也将继续休眠。除非在中断子函数中写入“永久”唤醒 CPU 的代码,有专门

的代码可以实现该功能。

2.5.4 MSP430 的函数与文件管理

2.5.4.1 函数

MSP430 单片机的头文件定义了大量的宏定义来帮助用户编写代码,普通 51 单片机编

译器的宏定义就少的多,这是与单片机使用复杂程度相适应的。对于操作更为复杂的单片机,

比如 ARM 系列,宏定义都不足以帮助写代码了,于是就有了各种库函数。在 ARM 中,对

一个 IO 口的读写操作都有必要调用一个函数来实现。

用户自己能仿照 MSP430 的风格为 51 单片机编写头文件宏定义吗?当然可以。同样,

我们也可以为 MSP430 编写自己的“库函数”。厂商的库函数只能针对单片机的片内外设,而

自己编写的“库函数”可以涵盖从片内外设,到外部器件,甚至跨越单片机的阻隔。

举个例子:

1) 写两个函数 Motor_ON( )和 Motor_OFF( ),在主函数中调用以实现电机启停的功能。

不同单片机、不同的接线、不同的电机类型控制启停代码会千差万别,但是都被封在函数中。

2) 主函数的代码将清晰明了,启或停是怎么实现是子函数的事。而对于子函数

Motor_ON( )和 Motor_OFF( )来说,只需专注做好分内事,为什么要启停,何时启停,不用操

心。

3) 这就像统帅与将军的职责分工来,统帅命令将军攻城,将军报告伤亡数字,统帅说

我只要城,不要数字。

一段能正确运行实现功能的代码,水平分 3 个层次。

1) 隔一段时间连自己都不懂。俗称“连亲妈都认不出来”。

2) 自己懂,别人不懂。

3) 是人就懂。

我们来看 UART_Init(2400,’n’,8,1)这个函数,配合传入参数,即使函数不是自己编的,

也能猜出来,这个函数负责 UART 串口的初始化。串口将被设置为 2400 波特率、奇偶校验

无、8 位数据位、1 个停止位,这就是函数的魅力。

宏定义与函数可以互相结合起来使用,达到如虎添翼的效果:

1) 函数中可以有普通代码、宏定义代码和其他函数。

2) 宏定义也可以将普通代码、其他宏定义、和多个函数封装成一句宏定义。

宏定义和函数有什么区别呢?

1) 在很多情况下,两者都能实现类似功能。函数可以很简单,内部只有一句代码也行;

宏定义也可以很复杂,包含多条代码及函数。

2) 宏定义的方法在编译时仅仅是“查找并替换”,所以它占用程序代码空间大,相当于

完全不重复利用代码。

3) 函数在运行中是“临时”调用关系,资源是能回收的,所以使用函数所占的程序代码

智能仪表课程设计 实验指导书

62 / 91

空间小。

4) 函数在调用和回收的过程中涉及入栈出栈操作,执行速度慢。而宏定义就相当于是

一气呵成完全没有停顿,速度快。

2.5.4.2 文件管理

什么是文件管理?就是不要在 main.c 中写下所有的代码,而应该将大的程序划分为小

的 c 文件。

1) 1 个 main.c 写下全部代码是最容易导致“亲妈都认不出来”的情况。

2) 我们从一个初学者开始,陆陆续续会调试各种片内和片外的设备,会积累各种各样

的代码。不管是敝帚自珍还是独孤求败,重复写同样的代码总是令人身心疲惫的事情。

3) 初学者最容易想到的是事后用复制粘贴的方法利用原代码,这是非常效率低下而且

容易出错的。

4) 正确的做法是,当我们写代码的时候,先就考虑这段代码有没有可能在别的地方能

用到,然后分开独立写 c 文件,这样就可以有效准确利用原有代码。

如何有效进行文件管理呢?

1) 按功能模块划分 c 文件,比如片内的时钟、定时器、UART 收发器、Flash 控制器、

ADC 模数转换器、片外的 12864 液晶、矩阵键盘,可以分别设为 System_clock.c、Timer_A.c、

UART.c、Flash.c、ADC10.c、LCD.c、Key.c。

2) 将隶属于各模块的代码函数都放进各自的 c 文件中。

3) 建立与 c 文件同名的 h 头文件,在 h 文件中声明可能被调用到的函数。

4) 在 main.c 中包含 h 头文件,就可以使用外部 c 文件中的函数了。

例 建一个 Motor.c 文件,在里面编写一个启动电机函数 Motor_ON( )和一个停止电机函

数 Motor_OFF( ),并编写头文件。

Motor.c 文件

void Motor_ON( )

{

P1OUT |=BIT0;

}

void Motor_OFF()

{

P1OUT &=~BIT0;

}

Motor.h 文件

extern Motor_ON( );

extern Motor_OFF( );

有些编译器支持直接在 h 头文件中写程序代码。无论编译器是否支持,都不建议这样做,

分开写 c 文件和 h 头文件可以让复杂程序的代码更易读。

智能仪表课程设计 实验指导书

63 / 91

3 基于 8031 的 16 路数据采集系统设计

3.1 实验简介

1. 系统基本架构:

单片机 8031 为系统的控制器

LS373 为锁存器扩展端口

模拟开关 AD7506 用于切换、选择输入信号

采样保持器 LF398

AD574 为 12 位 A/D 转换器

DAC1210 为 12 位 DAC 芯片

2. 技术要求:

16 路数据输入通道,二路 D/A 输出,采样精度 12 位,速率大于 1KHZ.

3. 设计内容:

画出 SCH,PCB 图,简述工作原理。

16 路数据采集系统示意图

3.2 Altium Designer 软件简介

3.2.1 Altium designer 简介

Altium Designer 基于一个软件集成平台,把为电子产品开发提供完整环境所需的工具

智能仪表课程设计 实验指导书

64 / 91

全部整合在一个应用软件中。包含所有设计任务所需的工具:原理图和 HDL 设计输入、电

路仿真、信号完整性分析、PCB 设计、基于 FPGA 的嵌入式系统设计和开发,是较为常用

的 EDA 工具之一。

图 3-1Altium Design 的软件集成结构

3.2.2 Altium designer 窗口届面

Altium Designer 应用程序启动后,默认的工作界面如图 3-2 所示。主窗口上方依次是标

题栏、菜单栏和工具栏;中部是两个大窗口,左边是面板窗口,右边是工作窗口;下面有面

板标签栏、命令栏和状态栏等。

(1)系统菜单。位于 Altium Designer 界面的上方左侧,启动 Altium Designer 后,系统

显示“DXP”、“File”、“View”、“Project”、“Window”和“Help”基本操作菜单项,用户使

用这些菜单项内的命令选项可以设置 Altium Designer 中的系统参数,新建各类项目文件,

启动对应的设计模块。当设计模块被启动后,主菜单将会自动更新,以匹配设计模块。

(2)浏览器工具栏。浏览器工具栏位于 Altium Designer 界面的上方右侧,由浏览器地

址编辑框、后退快捷按钮、前进快捷按钮、回主页快捷按钮和个人喜好快捷按钮组成。其中,

浏览器地址编辑框用于显示当前工作区文件的地址;单击后退或前进快捷按钮可以根据浏览

的次序后退或前进,且通过单击按钮右侧的下拉列表按钮,打开浏览次序列表,用户还可以

选择重新打开用户在此之前或之后浏览的页面;单击回主页快捷按钮,将返回系统默认主页;

单击个人喜好快捷按钮,可以将当前页面设置为个人喜好页面。

智能仪表课程设计 实验指导书

65 / 91

图 3-2 主窗口界面

(3)系统工具栏。系统工具栏位于系统菜单下方,由快捷工具按钮组成,单击此处按

钮等同于选择相应菜单命令。

(4)工作区。工作区位于 Altium Designer 界面的中间,是用户编辑各种文档的区域。

在无编辑对象打开的情况下,工作区将自动显示为系统默认主页,主页内列出了常用的任务

命令,单击即可快捷启动相应工具模块。

(5)工作面板窗口。Protel DXP 为用户提供了大量的工作区面板窗口,如文件管理面

板、项目管理面板、器件库面板等,分别位于 Altium Designer 界面的左右俩侧和下部。用

户可以以用工作区面板右上部分的小按钮移动、修改或修剪面板,单击相应的面板标签还可

以显示、隐藏或切换工作面板窗口。面板窗口有弹出/隐藏、锁定和浮动三种状态。

3.2.3 Altium designer 文件类型

Altium Designer 中共有 PCB 项目、FPGA 项目、嵌入式系统项目和集成元件库 4 种项

目类型。 在电路设计过程中,一般先建立一个项目文件,该文件扩展名为“.Prj***”(其中

“***”是由所建项目的类型决定)。该文件只是定义项目中的各个文件之间的关系,并不将各

个文件包含于内。在印制电路板设计过程中,首先要建立一个 PCB 项目文件,有了 PCB 项

目文件这个联系的纽带,同一项目中不同文件可以不必保存在同一文件夹中,建立的原理图、

PCB 图等文件都以分立文件的形式保存在计算机中。在查看文件时,可以通过打开 PCB 项

目文件的方式看见与项目相关的所有文件,也可以将项目中的单个文件以自由文件的形式单

独打开。

为便于管理和查阅,建议设计者在开始某一项设计时,首先为该项目单独创建一个文件

夹,将所有与该项设计有关的文件都存放在该文件夹下。Projects 面板中打开的项目文件可

智能仪表课程设计 实验指导书

66 / 91

以生成一个项目组,因此也就有了项目组文件。它们不必保存在同一路径下,可以方便地打

开、一次调用前次工作环境和工作文档。项目组的文件格式为“*.PrjGap”。

还有一些其他的文件类型可用于各种不同需要的设计任务中,下面列出一些文件类型。

原理图文件的扩展名为:*.SchDoc。

PCB 文件的扩展名为:*.PcbDoc。

原理图元件库文件的扩展名为:*.SchLib。

PCB 元件封装库文件的扩展名为:*.PcbLib。

VHDL TestBench 文件的扩展名为:*.VHDTST。

VHDL 库文件的扩展名为:*.VHDLIB。

VHDL 模型文件的扩展名为:*.VHDMDL。

CUPL PLD 文件的扩展名为:*.PLD。

C 语言源文件的扩展名为:*.C。

C++语言文件的扩展名为:*.CPP。

Delphi 语言宏文件的扩展名为:*.pas 或*.bas。

数据库链接文件的扩展名为:*.DBLink。

项目输出文件的扩展名为:*.OUTJOB。

CAM 文件的扩展名为:*.CAM。

电路仿真模型文件的扩展名为:*.DML。

电路仿真网络表文件的扩展名为:*.Nsx。

电路仿真子电路模型文件的扩展名为:*.ckt。

EDIF 文件的扩展名为:*.EDIF。

EDIF 库文件的扩展名为:*.EDIFLIB。

ProtelD 的网络表文件的扩展名为:*.NET。

文本文件的扩展名为:*.Txt。

元件的信号完整性模型库文件的扩展名为:*.lib。

仿真的波形文件的扩展名为:*.sdf。

3.3 原理图绘制

原理图设计是整个电路设计的基础,它决定了后面工作的进展,为印制电路板的设计提

供元件、连线依据。只有正确的原理图才有可能生成一张具备指定功能的 PCB 板。一般地

说,绘制一个原理图的工作包括:设置图纸大小,规划总体布局,在图纸上放置元件,进行

布线,对各元件以及布线进行调整,然后进行电气检查,最后保存并打印输出。一般步骤如

下:

(1) 启动 Altium Designer 原理图编辑器。

(2) 设置原理图图纸大小以及版面。绘制原理图前,必须根据实际电路的复杂程度来设

置图纸的大小,设置图纸的过程实际上是建立工作平面的过程,用户可以设置图纸方向、网

格大小以及标题栏等。

(3) 在图纸上放置元件。根据实际电路的需要,从元件库里取出所需的元件放置到工作

平面上。设计者可以根据元件之间的走线等关系,对元件在工作平面上的位置进行调整、修

改,并对元件的编号、封装进行定义和设定,为下一步工作打好基础。

(4) 对所放置的元件进行布局布线。该过程实际就是画图的过程。设计者可利用 Altium

Designer 提供的各种工具、命令进行布线,将工作平面上的元件用具有电气意义的导线、符

号连接起来,构成一个完整的原理图。

智能仪表课程设计 实验指导书

67 / 91

(5) 对布局布线后的元件进行调整。在这一过程,设计者利用 Altium Designer 的各种功

能对所绘制的原理图作进一步的调整和修改,以保证原理图的美观和正确。

(6)电气检查。布线完成后,还需要设置 Project Options 来编辑当前项目,根据 Altium

Designer 提供的错误检查报告重新修改原理图。

(7) 保存文档和报表输出。此阶段可利用报表工具生成各种报表,如网络表、元件清单,

此时也可设置打印参数并进行打印,从而为生成印制电路板做好准备。

图 3-3 原理图设计步骤

3.3.1 原理图设计工具栏

Altium Designer 的工具栏有 Schematic Standard Tools 工具栏、Wiring 工具栏、Utilities

工具栏和混合信号仿真工具栏。其中 Utilities 实用工具栏包括多个子菜单,即 Drawing Tools

子菜单、Alignment Tools 子菜单、Power Sources 子菜单、 Digital Devices 子菜单、 Simulation

Sources 子菜单、Grids 子菜单等。充分利用这些工具会极大地方便原理图的绘制,下面就

介绍几个主要工具栏的打开与关闭。

1. Schematic Standard 工具栏(原理图标准工具栏)

打开或关闭原理图标准工具栏可执行菜单命令 View\Toolbars\Schematic Standard,如图

3-4 所示。

图 3-4 原理图标准工具栏

2. Wiring 工具栏(走线工具栏)

打开或关闭走线工具栏可执行菜单命令 View\Toolbars\Wiring,如图 3-5 所示。

3. Utilities 工具栏(多用工具栏)

该工具栏如图 3-6 所示,包含多个子菜单选项。

智能仪表课程设计 实验指导书

68 / 91

图 3-5 走线工具栏 图 3-6 多用工具栏

4.Drawing Tools 绘图工具栏,如图 3-7 所示。

(2)Alignment Tools 元件位置排列子菜单,如图 3-8 所示。

(3)Power Sources 电源及接地子菜单,如图 3-9 所示。

图 3-7 绘图工具栏 图 3-8 元件位置排列子菜单 图 3-9 电源及接地子菜单

(4)Digital Devices 常用元件子菜单,如图 3-10 所示。

(5)Simulation Sources 信号仿真源子菜单,如图 3-11 所示。

(6)Grids 网格设置子菜单,如图 3-12 所示。

图 3-10 常用元件子菜单图 图 3-11信号仿真源子菜单图 图 3-12网格设置子菜单

3.3.2 图样的放大与缩小

设计者在绘图的过程中,需要经常查看整张原理图或只看某一个部分,所以要经常改变

显示状态,缩小或放大绘图区。

1.通过菜单放大或缩小图纸显示

Altium Designer 提供了 View 菜单来控制图形区域的放大与缩小,可以在不执行其他命

令时使用这些命令,否则使用键盘操作。

下面介绍菜单中主要命令的功能。

(1) Fit Document 命令 该命令把整张电路图缩放在窗口中,可以用来查看整张原理图。

(2) Fit All Objects 命令 该命令使绘图区中的图形填满工作区。

(3) Area 命令 该命令放大显示用户设定的区域。这种方式是通过确定用户选定区域中

智能仪表课程设计 实验指导书

69 / 91

对角线上的两个角的位置,来确定需要进行放大的区域。首先执行此菜单命令,然后移动十

字光标到目标的左上角位置,再拖动鼠标,将光标移动到目标的右下角适当位置,单击鼠标

左键加以确认,即可放大所框选的区域。

(4)Selected Objects 该命令可以放大所选择的对象。

(5) Around Point 命令 该命令要用鼠标选择一个区域,指向要放大范围的中心,按左键

确定一中心,再移动鼠标展开此范围,单击鼠标左键,即完成定义,并将该范围放大至这个

窗口。

(6) 采用不同的比例显示命令 View 菜单命令提供了 50%、100%、200%和 400%共四

种显示方式。

(6) Zoom In 与 Zoom Out 命令 用于放大或缩小显示区域。也可以在主工具栏中选择放

大,选择缩小。

(7) Pan 命令 移动显示位置。在设计电路时,经常要查看各处的电路,所以有时需要

移动显示位置,这时可执行此命令。在执行本命令之前,要将光标移动到目标点,然后执行

Pan 命令,目标点位置就会移动到工作区的中心位置显示。也就是以该目标点为屏幕中心,

显示整个屏幕。

(8) Refresh 命令 刷新画面。在滚动画面、移动元件等操作时,有时会造成画面显示含

有残留的斑点或图形变形问题,这虽然不影响电路的正确性,但不美观。这时,可以通过执

行此菜单命令来更新画面。

2.通过键盘实现图纸的缩放

当系统处于其他绘图命令下时,设计者无法用鼠标去执行一般的命令显示状态,此时要

放大或缩小显示状态,必须采用功能键来实现。

(1) 按 Page Up 键,可以放大绘图区域。

(2) 按 Page Down 键,可以缩小绘图区域。

(3) 按 Home 键,可以从原来光标下的图纸位置,移位到工作区中心位置显示。

(4) 按 End 键,对绘图区的图形进行刷新,恢复正确的显示状态。

(5) 移动当前位置 将光标指向原理图编辑区,按下鼠标右键不放,光标变为手状,拖

动鼠标即可移动查看的图纸位置。

3.3.3 设置图样大小

1.Template(样板)区域设置

该区域用来设置当前文档或所有打开的文档所使用的模板文件,可以直接在 File Name

所对应的输入框内输入模板文件名。

2. Standard Style(标准图样尺寸)栏

设计者通常应用的都是标准图样,此时可以直接应用标准图样尺寸设置版面。

将光标移至“Standard Style”,点中按钮将该选项激活,然后设计者可以根据所设计的电路

原理图的大小选择适用的标准图样号。例如,我们选择 A4,然后单击下面的【OK】按钮,

即可。

为方便设计者,系统提供了多种标准图样尺寸选项:

公制:A0、A1、A2、A3、A4。

英制:A、B、C、D、E。

Orcad 图样:orcad A、orcad B、orcad C、orcad D、orcad E。

其他:Letter、Legal、Tabloid。

3.Options(选项栏)

智能仪表课程设计 实验指导书

70 / 91

在这一选项里,设计者可以进行图样方向、标题栏、边框等的设定。

(1)Orientation(图样方向)

用鼠标左键单击“Options”选项栏中的“Orientation”窗口的按钮激活下拉窗口,将出

现图 3-13 所示的两个选项。

图 3-13 Orientation图样方向设定 图 3-14 Title Block标题栏类型

选择“Landscape”则图样水平放置,选择“Portrait”则图样垂直放置。

(2)Title Block(标题栏类型)

该复选项用来切换是否在图纸上显示标题栏。当选中复选项是,则显示标题栏;否则,不显

示标题栏。 用鼠标左键单击“Options”选项栏中“Title Block”窗口的按钮激活下拉窗口,

将出现如图 3-14 所示的两个选项。其中“Standard”代表标准型标题栏。“ANSI”代表美国

国家标准协会模式标题栏。

(3)Show Reference Zone(参考边框显示)

该复选项用来设定是否显示索引区。

(4)Show Border(图样边框显示)

该选项用来设置是否显示边框线。选中则显示,否则不显示。

(5)Show Template Graphics(模板图形显示)

该选项用来设置是否显示样板内的图形、文字及专用字符串等。通常,为了显示自定义的标

题区块或公司商标之类才选中该项。

(6)Border Color(边框颜色)

该选项用来设定边框线的颜色,安装时默认为黑色。在右边的颜色框中用鼠标左键单击一下,

系统将会弹出“Choose Color(选择颜色)”对话框,可通过它来选取新的边框颜色。

(7)Sheet Color(工作区颜色)

该选项用来设定图纸的颜色,安装时默认为白色。要变更底色时,请在该栏右边的颜色框上

用鼠标单击,打开选择颜色对话框,然后选取出新的底色。

4.Custom Style(自定义图样尺寸)栏

如果设计者需要根据自己的特殊要求,设定非标准的图样格式,Altium Designer6 还提

供了“Custom Style”选项以供选择。 我们可以用鼠标左键单击“Use Custom Style”前的

复选框,使它前面的方框里出现“√”符号,即表示选中“Custom Style”。

在“Custom Style”栏中有 5 个设置框,其名称和意义如表 3-1 所示。

表 3-1 “Custom Style”栏中各设置框的名称和意义

5.Grids(图样栅格)

该选项用来设置网格的属性。Grids 栏包括两个选项:“Snap”的设定和“Visible”的设

智能仪表课程设计 实验指导书

71 / 91

定。

(1)Snap(光标移动距离)

该项设置可以改变光标的移动间距。Snap 设定主要决定光标位移的步长,即光标在移

动过程中,以设定为基本单位做跳移,单位是 mil(密尔,1000 密尔=1 英吋=25.4 毫米)。

如当设定 Snap=10 时,十字光标在移动时,均以 10 个长度单位为基础。此设置的目的是使

设计者在画图过程上更加方便的对准目标和引脚。

(2)Visible(可视栅格)

该选项可用来设置可视化栅格的尺寸。可视栅格的设定只决定图样上实际显示的栅格的

距离,不影响光标的移动。如当设定 Visible=10 时,图样上实际显示的每个栅格的边长为

10 个长度单位。

注意:锁定栅格和可视栅格的设定是相互独立的,两者不互相影响。

6.Electrical Grid(电气节点)

如果用鼠标左键选中“Electrical Grid”设置栏中“Enable”左面的复选框,使复选框中

出现“√”表明选中此项。则此时系统在连接导线时,将以箭头光标为圆心以“Grid”栏中

的设置值为半径,自动向四周搜索电气节点。当找到最接近的节点时,就会把十字光标自动

移到此节点上,并在该节点上显示出一个红色“×”。

如果设计者没有选中此功能,则系统不会自动寻找电气节点。

7.Change System Font(改变系统字型)

用鼠标左键单击 “Sheet Options”设置栏中的“Change System Font”按钮,界面上将

出现字体设置窗口,设计者可以在此处设置元器件引脚号的字型、字体和字号大小等。

3.3.4 元件库管理器

绘制电路原理图时,在放置元件之前,必须先将该元件所在的元件库载入,否则元件无

法放置。但如果一次载入过多的元件库,将会占用较多的系统资源,影响计算机的运行速度。

所以,一般的做法是只载入必要而常用的元件库,其他特殊的元件库当需要的再载入。

浏览元器件库可以执行菜单命令 Design\Browse Library,系统将弹出如图 3-15 所示的元

件库管理器。在元件库管理器中,从上至下各部分功能说明如下:

1. 3 个接钮的功能为:

(1)【Libraries...】 用于“装载/卸载元件库”。

(2)【Search...】 用于查找元件。

(3)【Place...】 用于放置元件。

2.接下来是一个下拉列表框,在其中可以看到已添加到当前开发环境中的所有集成库。

3.再下面的一个下拉列表框用来设置过滤器参数。用于设置元件显示的匹配项的操作

框。“*”表示匹配任何字符。

智能仪表课程设计 实验指导书

72 / 91

图 3-15 元件库管理器 图 3-16 Available Libraries对话框

4.该框为元件信息列表,包括元件名、元件说明及元件所在集成库等信息。

5.该框为所选元件的原理图模型展示。

6.该框为所选元件的相关模型信息,包括其 PCB 封装模型,进行信号仿真时用到的仿

真模型,进行信号完整性分析时用到的信号完整性模型。

7.该框为所选元件的 PCB 模型展示。

3.3.5 元件库的加载

单击【Libraries„】按钮,系统将弹出如 “Available Libraries”对话框;也可以直接执

行菜单命令 Design\Add/Remove Library。在该对话框中,可以看到有 3 个选项卡:

1.“Project”选项卡 显示与当前项目相关联的元件库。

(1)在该选项中单击【Add Library】按钮,即可向当前工程中添加元件库,。添加元件

库的默认路径为 Altium Designer6 安装目录下 Library 文件夹的路径,里面按照厂家的顺序

给出了元器件的集成库,用户可以从中选择自己想要安装的元件库,然后单击【打开】按钮,

就可以把元件库添加到当前工程中了。

(2)在该选项卡中选中已经存在的文件夹,然后单击【Remove】按钮,就可以把该元

件库从当前工程项目中删除。

2.“Installed”选项卡

显示当前开发环境已经安装的元件库。任何装载在该选项卡中的元件库可以被开发环境

中的任何工程项目所使用。

(1)使用【Move Up 】和【Move Down】按钮,可以把列表中的选中的元件库上移或

下移,以改变其在元件库管理器中的显示顺序。

(2)在列表中选中某个元件库后,单击【Remove】按钮就可以将该元件库从当前开发

智能仪表课程设计 实验指导书

73 / 91

环境移除。

(3)想要添加一个新的元件库,则可以单击【Install】按钮。用户可以从中寻找自己想

加载的元件库,然后单击【打开】按钮,就可以把元件库添加到当前开发环境中了。

3.3.6 元件查找

元件库管理器为设计者提供了查找元件的工具。即在元件库管理器中,单击【Search„】

按钮,系统将弹出如图 3-17 所示的“Libraries Search”对话框,执行菜单命令 Tools\Find

Component 也可弹出该对话框。在该对话框中,可以设定查找对象,以及查找范围,可以查

找的对象为包含在“*.IntLib”文件中的元件。该对话框的操作、使用方法如下:

图 3-17 查找元件库对话框

(1) Scope 操作框,该操作框用来设置查找的范围。当选中“Available Libraries”单选

项时,则在已经装载的元件库中查找,并且在 Path 操作框中选择搜索库的正确路径;当选

中“Libraries on Path”单选项时,则在制定的目录中进行查找。

(2) Path 操作框,该操作框用来设定查找的对象的路径,该操作框的设置只有在选中

“Libraries on Path”时有效。“Path”设置查找的目录,选中“Include Subdirectories”复选

框,则包含在指定目录中子目录也进行搜索。

“File Mask”可以设定查找对象的文件匹配域,“.”表示匹配任何字符串。

(3)为了查找某个元件,在最上面的文本框中输入元件名称,点击 Search 按钮则开始

搜索,找到所需的元件后,点击位于最上方的【Stop】按钮停止搜索。

(4)从搜索结果中可以看到相关元件及其所在的元件库。可以将元件所在的元件库直

接装载到元件库管理器中以便继续使用;也可以直接使用该元件而不装载其所在的元件库。

3.3.7 放置元器件

在原理图中放置元件的方法主要介绍下列两种:

1.通过输入元件名放置元件

如果确切知道元件的名称,最方便的做法是在“Place Part”对话框中输入元件名后放置

元件。具体操作步骤如下。

(1)执行菜单命令 Place\Part 或直接单击连线工具栏上的按钮,即可打开如图 3-18 所

智能仪表课程设计 实验指导书

74 / 91

示的 “Place Part”对话框。可放置的对象有下列三种情况:

图 3-18 Place Part对话框 图 3-19 Placed Parts History对话框

图 3-20 浏览元件库对话框

1)放置最近一次放置过的元件,即“Physical Component”所指示的元件,点击【OK】

按钮即可。

2)放置历史元件(以前放置过的元件)。点击对话框中【History】按钮,打开图 3-19

所示的历史元件列表“Placed Parts History”对话框,从中选择目标元件后单击“Placed Parts

History”对话框的【OK】按钮,再单击“Place Part”对话框的【OK】按钮即可放置前次放

置的元器件。

3)放置指定库中的元件。点击【History】之后的省略号按钮,打开如图 3-20 所示的浏

览元件库对话框“Browse Libraries”对话框,从指定库中选择目标元件后首先点击“Browse

Libraries”对话框的【OK】按钮,再单击“Place Part”对话框的【OK】按钮即可放置选中

的元器件。(其中 Mask 区域用来设置过滤条件,以便从元件库中精确定位目标元件)。

(2)在图 3-18 所示的对话框中“Designator”编辑框输入当前元件的序号(例如 Q1)。

当然也可以不输入序号,即直接使用系统的默认值“Q?”,等到绘制完电路全图之后,

通过执行菜单命令 Tools\Annotate,就可以轻易地将原理图中所有元件的序号重新编号。假如

现在为这个元件指定序号(例如 Q1),则在以后放置相同形式的元件时,其序号将会自动增

加(例如 Q2、Q3、Q4 等等)。

智能仪表课程设计 实验指导书

75 / 91

(3)元件注释 在 Comment 编辑框中可以输入该元件的注释。

(4)输入封装类型 在图 3-18 中的“Footprint”框中输入元件的封装类型。设置完毕后,

单击对话框中的【OK】按钮,屏幕上将会出现一个可随鼠标指针移动的元件符号,拖动鼠

标将它移到适当的位置,然后单击鼠标左键使其定位即可。完成放置一个元件的动作之后,

单击右键,系统会再次弹出“Place Part”对话框,等待输入新的元件编号。假如现在还要继

续放置相同形式的元件,就直接单击【OK】按钮,新出现的元件符号会依照元件封装自动

地增加流水序号。如果不再放置新的元件,可直接单击【Cancel】按钮关闭对话框。

2.从元件管理器的元件列表中选取放置

下面以放置一个 555 定时器电路为例,说明从元件库管理面板中选取一个元件并进行放

置的过程。首先在原理图编辑平面上找到“Libraries”面板标签并单击左键,就会弹出元件

管理器,首先在元件管理器的“Libraries”栏的下拉列表框中选取“Motorola Analog Timer

Circuit .IntLib”,然后在元件列表框中找到“MC1455U”,并选定它。然后单击【Place

MC1455U】按钮,此时屏幕上会出现一个随鼠标指针移动的元件图形,将它移动到适当的

位置后单击鼠标左键使其定位即可。也可以直接在元件列表中用鼠标左键双击“MC1455U”

将其放置到原理图中,如图 3-21 所示。

图 3-21 放置的定时器 MC1455U元件 图 3-22 Digital Objects工具栏

3.使用常用数字工具栏放置元件

系统还提供了 Digital Objects(常用数字元件)工具栏,如图 3-22 所示。常用数字元件

工具栏为设计者提供了常用规格的电阻、电容、与非门、寄存器等元件,使用该工具栏中的

元件按钮,设计者可以方便地放置这些元件,放置这些元件的操作与前面所讲的元件放置操

作类似。Digital Objects 工具栏可以通过执行菜单命令 View\Toolbars\Digital Objects 来打开

或关闭。

4.放置电源和接地元件

电源和接地元件可以使用 Power Objects 工具栏上对应的命令来选取,如图 3-23 所示。

该工具栏可以通过菜单命令 View\Toolbars\Power Objects 来打开或关闭。

智能仪表课程设计 实验指导书

76 / 91

图 3-23 Power Objects工具栏 图 3-24 Power Port对话框

根据需要可按下该工具栏中的某一电源按钮,这时光标变为十字状,并拖着该按钮的图

形符号,移动鼠标到图纸上合适的位置单击左键,即可放置这一元件。在放置过程中和放置

后设计者都可以对其进行编辑。

电源元件还可以通过执行菜单命令 Place\Power Port 或原理图绘制工具栏上的按钮来调

用。在放置电源元件的过程中,按 Tab 键,将会出现如图 3-24 所示的“Power Port”对话框。

对于已放置了的电源元件,在该元件上双击,或在该元件上单击右键弹出快捷菜单,使用快

捷菜单的“Properties”命令,也可以调出“Power Port”对话框。

在对话框中可以编辑电源属性,在“Net”编辑框可修改电源符号的网络名称;单击

“Color”的颜色框,可以选择显示元件的颜色;单击“Orientation”选项后面的字符,会弹

出一个选择旋转角度的对话框,如图 3-25 所示,设计者可以选择旋转角度;单击“Style”

选项后面的字符,会弹出一个选择符号样式的对话框,如图 3-26 所示,设计者可以选择符

号样式;确定放置元件的位置可以修改“Location”的 X、Y 的坐标数值。

图 3-25 选择旋转角度 图 3-26 选择符号样式

3.3.8 调整元件位置

设计者都希望自己绘制的原理图美观且便于阅读,元件的布局是关键的操作。元件位置

的调整就是利用 Altium Designer 系统提供的各种命令将元件移动到合适的位置,并旋转为

合适的方向,使整个编辑平面元件布局均匀。

1.选择元器件

在进行元件位置调整前,应先选择元件,下面介绍最常用的几种选择元件的方法。

(1)通过快捷方式选取对象

1)点击鼠标,选取单个对象:在目标对象(包括元件、导线、总线等)上单击鼠标左

键,目标对象周围将出现一个虚线框,并且其顶点上有绿色矩形块标记。

2)选取多个对象:在按下 Shift 键的同时多次单击鼠标左键,就可以选择多个对象。

3)拖拽鼠标 使用该操作可以选取一个区域内的所有对象,视区域大小不同,可选取单

个或多个对象,具体操作方法如下:在原理图图纸上按住鼠标左键,光标变成十字状,继续

按住鼠标左键并移动,可以看见拖出了一个虚线框,移动光标到合适位置处松开鼠标,即可

选中矩形框中的所有元件。

同时,也可以使用工具栏上的区域选取工具来进行区域选取。

(2)使用菜单中的选择元件命令

在主菜单 Edit 的下拉命令中,有几个是选择元件的命令。

1) Inside Area 区域选取命令,用于选取规划区域内的对象。

2) Outside Area 区域外选取命令,用于选取区域外的对象。

3) A11 选取所有元件的命令,用于选取图纸内所有元件。

4)Connection 选取连线命令,用于选取指定的导线。使用该命令时,只要相互连接的

导线就都被选中。执行该命令后,光标变成十字状,在某一导线上单击鼠标左键,则该导线

智能仪表课程设计 实验指导书

77 / 91

以及与该导线有连接关系的所有导线都被选中。

5)Toggle Selection,切换式选取。执行该命令后,光标变为十字状,在某一元件上单

击鼠标,则可选中该元件,再单击下一元件,又可以选中下一元件,这样可连续选中多个元

件。如果元件以前已经处于选中状态,单击该元件可以取消选中。

2.取消元件选择

已经选中对象后,想取消对象的选中状态,可以通过菜单项和工具栏工具来实现。

(1)单击鼠标左键解除对象的选取状态

1)解除单个对象的选取状态

如果只有一个元件处于选中状态,这时只需在图纸上非选中区域的任意位置单击鼠标左

键即可。当有多个对象被选中时,如果想解除个别对象的选取状态,这时只需将光标移动到

相应的对象上,然后单击鼠标左键即可。此时其他先前被选取的对象仍处于选取状态。接下

来你可以再解除下一个对象的选取状态。

2)解除多个对象的选取状态

当有多个对象被选中时,如果想一次解除所有对象的选取状态,这时只需在图纸上非选中区

域的任意位置单击鼠标左键即可。

3)使用标准工具栏上解除命令

在标准工具栏上有一个解除选取图标,单击该图标后,图纸上所有带有高亮标记的被选对象

全部取消被选状态,高亮标记消失。

4)使用菜单中相关命令实现

执行菜单命令 Edit\DeSelect 可实现解除选中的元件。Edit\DeSelect 有 5 个下拉命令。

(1) Edit\DeSelect\Inside Area 将选框中所包含的元件的选中状态取消。

(2) Edit\DeSelect\Outside Area 将选择框外所包含的元件的选中状态取消。

(3) Edit\DeSelect\All On Current Document 取消当前文档中所有元件的选中状态。

(4) Edit\DeSelect\All Open Documents, 取消所有已打开文档中元件的选中状态。

(5)Toggle Selection 切换式取消元件的选中状态。在某一选中元件上单击鼠标,则元件

的选中状态被取消。

3.元件的移动

Altium Designer 提供了两种移动方式:一是不带连接关系的移动。即移动元件时,元件

之间的连接导线就断开了;二是带连接关系的移动,即移动元件的同时,跟元件相关的连接

导线也一起移动。

(1)通过鼠标拖拽实现 首先用前面介绍过的选取对象的方法选择单个或多个元件,然

后把光标指向已选中的一个元件上,按下鼠标左键不动,并拖拽至理想位置后松开鼠标,即

可完成移动元件操作。

(2)使用菜单命令实现 菜单 Edit 的子项 Move 下包含跟移动元件相关的命令,如图

3-27 所示。

图 3-27 “移动”菜单命令

智能仪表课程设计 实验指导书

78 / 91

执行菜单 Edit\Move 中各个移动命令,可对元件进行多种移动,分述如下。

1) Drag 当元件连接有线路时,执行该命令后,光标变成十字状。在需要拖动的元件

上单击,元件就会跟着光标一起移动,元件上的所有连线也会跟着移动,不会断线。执行该

命令前,不需要选取元件。

2) Move 用于移动元件。但该命令只移动元件,不移动连接导线。

3) Move Selection 与 Move 命令相似,只是它们移动的是已选定的元件。另外,这个

命令适用于多个元件一起同时移动的情况。

4) Drag Selection 与 Drag 命令相似,只是它们移动的是已选定的元件。另外,这个命

令适用于多个元件一起同时移动的情况。

5) Move To Front 这个命令是平移和层移的混合命令。它的功能是移动元件,并且将

它放在重叠元件的最上层,操作方法同 Drag 命令。

6) Bring To Front 将元件移动到重叠元件的最上层。执行该命令后,光标变成十字状,

单击需要层移的元件,该元件立即被移到重叠元件的最上层。单击鼠标右键,结束层移状态。

7) Send To Back 将元件移动到重叠元件的最下层。执行该命令后,光标变成十字状,

单击要层移的元件,该元件立即被移到重叠元件的最下层。单击鼠标右键,结束该命令。

8) Bring To Front Of 将元件移动到某元件的上层。执行该命令后,光标变成十字状。

单击要层移的元件,该元件暂时消失,光标还是十字状,选择参考元件,单击鼠标,原先暂

时消失的元件重新出现,并且被置于参考元件的上面。

9)Send to Back Of 将元件移动到某元件的下层,操作方法同 Bring To Front Of 命令。

4.元件的旋转

元件的旋转实际上就是改变元件的放置方向。Altium Designer 提供了很方便的旋转操

作,操作方法如下:

(1)首先在元件所在位置单击鼠标左键选中元件,并按住鼠标左键不放。

(2)按 Space 键,就可以让元件以 90°旋转,这样就可以实现图形元件的旋转。

设计者还可以使用快捷菜单命令“Properties”来实现。让光标指向需要旋转的元件,按鼠

标右键,从弹出的快捷菜单中选择 Properties 命令,然后系统弹出“Component Properties”

对话框。此时可以操作“Orientation”选择框设定旋转角度,

5.复制\剪贴\删除

Altium Designer 提供的复制、剪切、粘贴和删除功能跟 Windows 中的相应操作十分相

似,所以比较容易掌握,下面就这 4 项功能做简要介绍:

(1)复制 选中目标对象后,执行菜单 Edit 中的 Copy 命令,将会把选中的对象复制到

剪切板中。该命令等价与工具栏快捷工具的功能。

(2)剪切 选中目标对象后,执行菜单中 Edit 中的 Cut 命令,将会把选中的对象移入

剪切板中。该命令等价与工具栏快捷工具的功能。

(3)粘贴 执行菜单 Edit 中的 Copy 命令,把光标移到图纸中,可以看见粘贴对象呈浮

动状态随光标一起移动,然后在图纸中的适当位置单击鼠标左键,就可把剪切板中的内容粘

贴到原理图中。该命令等价于工具栏快捷工具的功能。

(4)删除 删除元件可通过菜单 Edit 中的 Clear 或 Delete 命令实现。

1)Clear 命令的使用方法:选中目标对象后,执行菜单 Edit 中的 Clear 命令,将会把选

中的对象从原理图中删除。

2)Delete 命令的使用方法:执行菜单 Edit 中的 Delete 命令后,光标变成十字状,在想

要删除的元件上单击鼠标左键,即可删除一个元件。

提示:复制\剪切\粘贴命令也可以通过功能热键来实现,而且与 Windows 系统命令完全

一致。

智能仪表课程设计 实验指导书

79 / 91

3.3.9 编辑元件属性

绘制原理图时,往往需要对元件的属性进行重新设置,下面介绍如何设置元件属性。

在将元件放置在图纸之前,此时元件符号可随鼠标移动,如果按下 Tab 键就可以打开如

图 3-28 的“Component Properties(元件属性)”对话框,可在此对话框中编辑元件的属性。

图 3-28 Component Properties对话框

如果已经将元件放置在图纸上,则要更改元件的属性,可以执行命令 Edit\Change 来实

现。该命令可将编辑状态切换到对象属性编辑模式,此时只需将鼠标指针指向该对象,然后

单击鼠标左键,即可打开“Component Properties”对话框。另外,还可以直接在元件的中心

位置双击元件,也可以弹出“Component Properties”对话框(常用此种方法)。然后设计者

就可以进行元件属性编辑操作。

1. Properties(属性)操作框 该操作框中的内容包括以下选项:

● Designator 元件在原理图中的序号,选中其后面的 Visible 复选框,则可以显示该

序号,否则不显示。

● Comment 该编辑框可以设置元件的注释,如前面放置的元件注释为 MC1455U,可

以选择或者直接输入元件的注释,选中其后面的 Visible 复选框,则可以显示该注释,否则

不显示。

● Don't Annotate Component 选中该复选框,可以使元件的序号不会重复。

● 对于有多个相同的子元件组成的元件,由于组成部分一般相同,如 74LS04 具有 6

个相同的子元件,一般以 A、B、C、D、E 和 F 来表示,此时可以选择按钮来设定。

● Library Ref 在元件库中所定义的元件名称。

● Library 显示元件所在的元件库。

● Description 该编辑框为元件属性的描述。

● Unique Id 设定该元件在本设计文档中的 ID,是唯一的。

● Sub-Design 在该编辑框,可以输入一个连接到当前原理图元件的子设计项目文件。

智能仪表课程设计 实验指导书

80 / 91

子设计项目可以是一个可编程的逻辑元件,或者是一张子原理图。单击后面的浏览按钮,就

可以定位该子文件。

2.Graphical 属性操作框 该操作框显示了当前元件的图形信息,包括图形位置、旋转角度、

填充颜色、线条颜色、引脚颜色,以及是否镜像处理等编辑。

● 设计者可以修改 X、Y 位置坐标,移动元件位置。Orientation 选择框可以设定元件

的旋转角度,以旋转当前编辑的元件。设计者还可以选中 Mirrored 复选框,将元件镜像处

理。

● Show Hidden Pins 是否显示元件的隐藏引脚,选择该选项可以显示元件的隐藏引

脚。

● Local Colors 选中该选项,可以显示颜色操作,即进行填充颜色、线条颜色、引脚

颜色设置。

● Lock Pins 选中该选项,可以锁定元件的引脚,此时引脚无法单独移动。

3.元件参数列表(Parameters list)

在图 3-28 对话框的右侧为元件参数列表,其中包括一些与元件特性相关的参数,设计

者也可以添加新的参数和规则。如果选中了某个参数左侧的复选框,则会在图形上显示该参

数的值。

4.元件的模型列表(Models list)

在图 3-28 所示对话框的右下侧为元件的模型列表,其中包括一些与元件相关的引脚类

别和仿真模型,设计者也可以添加新的模型。对于用户自己创建的元件,掌握这些功能是十

分必要的。通过下方的【Add】按钮可以增加一个新的参数项;Remove 按钮可以删除已有

参数项;Edit 按钮可以对选中的参数项进行修改。

在 Models list 编辑框中,单击【Add】按钮,系统会弹出对话框,在该对话框的下拉列

表中,选择 Footprint 模式,即可添加元件封装。

3.3.10 连接线路

当所有电路元件、电源和其他对象放置完毕后,就可以进行原理图中各对象间的连线。

连线的主要目的是按照电路设计的要求建立网络的实际连通性。

电路中一个元件引脚要与另一个元件引脚用导线连接起来,可以按下面的操作步骤进

行。

1.执行菜单命令 Place\Wire。此操作也可用下面方法代替:用鼠标左键单击“Wiring”工具

栏中的按钮。

2.此时光标变成了十字状,系统进入连线状态,将光标移到元件一的第 1 引脚,会自动出现

一个红色“×”,单击鼠标左键,确定导线的起点。然后开始画导线。

3.移动鼠标拖动导线线头,在转折点处单击鼠标左键确定,每次转折都需要单击鼠标左键。

4.当到达导线的末端时,再次单击鼠标的左键确定导线的终点即完成。当一条导线的绘制完

成后,整条导线的颜色变为蓝色。

5.画完一条导线后,系统仍然处于“画导线”命令状态。将光标移动到新的位置后,重复上

面 1~4 步操作,可以继续绘制其他导线。 Altium Designer 为设计者提供了四种导线模式:

90°走线、45°走线、任意角度走线和自动布线。在画导线过程中,按下 Shift+Space 键可

以在各种模式间循环切换。

当切换到:90°模式(或 45°模式)时,按 Space 键可以进一步确定是以 90°(或 45°)

线段开始,还是以 90°(或 45°)线段结束。当使用 Shift+Space 键切换导线到任意模式(或

自动模式)时,再按 Space 键可以在任意模式与自动模式间切换。

智能仪表课程设计 实验指导书

81 / 91

6.如果对某条导线的样式不满意,如导线宽度、颜色等,设计者可以用鼠标单击该条导线,

此时将出现“Wire”对话框,设计者可以在此对话框中重新设置导线的线宽和颜色等。

3.4 PCB 设计

3.4.1 印刷电路板结构

一块完整的印制电路板主要包括绝缘基板、铜箔、孔、阻焊层、文字印刷等部分。下面

来具体介绍印制板的基本组成部分。

1. 层(Layer)

印制电路板上的“层”不是虚拟的,而是印制材料本身实际存在的层。PCB 板包含许

多类型的工作层,在计算机软件中是通过不同的颜色来区分的的。下面介绍几种常用的工作

层面。

(1)信号层(Signal Layer)

信号层主要用于布铜导线。对于双面板来说就是顶层(Top Layer)和底层(Bottom Layer)。

Altium Designer 提供了 32 个信号层,包括顶层(Top Layer)、底层(Bottom Layer)和 30

个中间层(Mid Layer),顶层一般用于放置元件,底层一般用于焊锡元件,中间层主要用于

放置信号走线。

(2)丝印层(Silkscreen)

丝印层主要用于绘制元件封装的轮廓线和元件封装文字,以便用户读板。Altium Designer

提供了顶丝印层(Top Overlayer)和底丝印层(Bottom Overlayer),在丝印层上做的所有标

示和文字都是用绝缘材料印制到电路板上的,不具有导电性。

(3)机械层(Mechanical Layer)

机械层主要用于放置标注和说明等,例如尺寸标记、过孔信息、数据资料、装配说明等,

Altium Designer 提供了 16 个机械层 Mechanicall1~Mechanicall16。

(4)阻焊层和锡膏防护层(Mask Layers)

阻焊层主要用于放置阻焊剂,防止焊接时由于焊锡扩张引起短路,Altium Designer 提供了

顶阻焊层(Top Solder)和底阻焊层(Bottom Solder)两个阻焊层。锡膏防护层主要用于安

装表面粘贴元件(SMD),Altium Designer 提供了顶防护层(TopPaste)和底防护层(Bottom

Paste)两个锡膏防护层。

2. 焊盘

焊盘用于将元件管脚焊接固定在印制板上,完成电气连接。它可以单独放在一层或多层

上,对于表面安装的元件来说,焊盘需要放置在顶层或底层单独放置一层,而对于针插式元

件来说焊盘应是处于多层(Multi Layer)。通常焊盘的形状有以下三种,即圆形( Round )、

矩形( Rectangle )和正八边形( Octagonal )。

3. 过孔(Via)

过孔用于连接不同板层之间的导线,其内侧壁一般都由金属连通。过孔的形状类似与圆形焊

盘,分为多层过孔、盲孔和埋孔 3 中类型。多层过孔:从顶层直接通到底层,允许连接所

有的内部信号层。盲孔:从表层连到内层。埋孔:从一个内层连接到另一个内层。

4. 导线(Track)

导线就是铜膜走线,用于连接各个焊盘,是印制电路板最重要的部分。与导线有关的另外一

种线,常常称之为“飞线”,即预拉线。飞线是导入网络表后,系统根据规则生成的,用来

指引布线的一种连线。导线和飞线有着本质的区别,飞线只是一种在形式上表示出各个焊盘

智能仪表课程设计 实验指导书

82 / 91

间的连接关系,没有电气的连接意义。导线则是根据飞线指示的焊盘间的连接关系而布置的,

是具有电气连接意义的连接线路。

3.4.2 元件封装

在了解元件封装的概念之前,先来认识一下元件实物、元件符号和元件封装三个概念。

1. 元件实物、元件符号、元件封装

(1)元件实物

元件实物是指组装电路时所用的实实在在的元件,如图 3-29 所示的电阻、电容、二极管、

三极管。

图 3-29 常见电子元件

(2).元件符号

元件符号是指在画电路原理图时用元件的表示图形,是在电路图中代表元件的一种符

号,如图 3-30 所示的电阻、电容、二极管、三极管的符号。图 3-30 电阻、电容、二极管、

三极管的符号

图 3-30 电阻、电容、二极管、三极管的符号

(3)元件封装

元件封装是指实际元件焊接到印刷电路板时的焊接位置与占用空间大小,包括了实际元

件的外型尺寸,所占空间位置以及各管脚之间的间距等,如图 3-31 所示的电阻、电容、二

极管、三极管的封装。

智能仪表课程设计 实验指导书

83 / 91

图 3-31电阻、电容、二极管、三极管封装

2 元件封装的分类

元件封装是一个空间的概念,对于不同的元件可以有相同的封装,同样一种封装可以用

于不同的元件。依据安装方式可以分为两大类,即针插式元件封装和表面粘贴式元件封装。

(1)针插式元件封装

该类元件安装时把元件相应的针脚插入焊盘孔中,元件安装在顶面,而焊接在底面。它们的

封装焊盘都是处于多层的(Multi-layer),是穿越顶层和底层之间的。设计时焊盘板层的属

性要设置成 Multi -Layer。

(2)表面粘着式封装

表面封装元件(Surface-Mounting Device)简称 SMD,又称贴片式元件。贴片式元件焊盘没

有孔,直接安装在顶面或者底面。封装的焊盘是处于顶层或者底层。

3 搜索放置元件的封装

搜索元件封装时,经常会遇到两种情形,一种情形是已经知道该元件封装在哪个库中,

那么可以按照前面讲述的元件库加载方法直接加载该元件库,并选为当前库,然后在

“Libraries”工作面板搜索关键字栏中直接输入该封装相关信息。例如现在要在当前库中查

找“DIP-8”这个封装,具体步骤如下:

1)调出元件封装管理器,点击【„】按钮,选中 Footprints(封装)浏览方式。

2)在搜索关键字栏中输入“DIP-8”,“*”表示匹配任何字符,当不知道元件封装的完

整名称时,最好加上。

另一种情形是不知道该封装在那个库中,这也是在设计 PCB 时经常会遇到的情形。这

时可以在元件封装管理器上方点击【search】按钮,弹出如上图 4-38 所示“搜索元器件库”

对话框,对话框各部分含义如下:

(1)空白区:输入该元件封装的相关信息。

(2) Option 选项:“Search in”选择搜索“Componets(元件)、Footprints(封装)、3DModels

模型”等。“Search type”选择搜索类型。

(3) Scop 选项:用来设置查找的范围。“Available Libraries”,对已经添加到设计项目

的库进行组件的搜索; “Libraries on path”,指定对一个特定的目录下的所有组件库进行搜

索。

(4) Path 选项:设定查找对象的路径。该选项只有在选中“Libraries on path”时有

效。“Path”编辑框设置查找的目录,选中“Include Subdirectories”则包含指定目录中子目

录也进行搜索。如果单击右侧的按钮,则系统会弹出浏览文件夹,可以设置搜索路径。“File

Mask”可以设定查找对象的文件匹配域,“*”表示匹配任何字符串。

设置完成后,点击【Search】按钮即可开始查找。查找到后即可按照下述方法将该元件

封装放置到 PCB 图中。

智能仪表课程设计 实验指导书

84 / 91

3.4.3 PCB 设计流程

在使用 Altium Designer 设计 PCB 时,一般可以分为如图 3-32 所示几个步骤。

图 3-32 PCB 设计流程

1. 设计电原理图

该步的主要工作是使用原理图编辑器绘制电路原理图,并编译生成网络表。

2. 创建 PCB 文档

通过创建 PCB 文档,调出 PCB 编辑器,在 PCB 编辑环境完成设计工作。

3. 规划电路板

绘制印制电路板图之前,设计者还应首先对电路板进行规划,包括:定义电路板的尺寸

大小及形状、设定电路板的板层以及设置参数等,这是一项极其重要的工作,是电路板设计

的一个基本框架。

4. 装入元件封装库及网络表

要把元器件放置到印制电路板上,需要先装载所用元器件的封装库,否则在将原理图信

息导入到 PCB 时调不出元件封装,导致出现错误。

5. 元件布局

布局,就是将元件摆放在印制板中的合适位置。这里的“适当位置”包含两个意思,一

是元件所放置的位置能使整个电路板符合电气信号流向设计及抗干扰等要求,而且看上去整

齐美观;二是元件所放置的位置有利于布线。

6. 设置布线规则

对于有特殊要求的元件、网络标号,一般在布线前需要设置布线规则,比如安全间距、

导线宽度、布线层等。

7. 布线

布线,就是布铜导线,实现各个焊盘之间的电气连接。该操作既可以自动布线也可以手

工布线,Altium Designer 自动布线功能十分强大,如果元件布局合理、布线规则设置得当,

自动布线的成功率接近 100%;若自动布线无法完全解决或产生布线冲突时,可进行手工布

线加以调整。

8. 生成报表以及打印输出

完成电路板的布线后,保存 PCB 图,然后利用各种图形输出设备,输出 PCB 图。按照

上述流程设计出 PCB 图后,即可将该文档交给印制电路板生产单位进行制作。

3.4.4 PCB 设计基本原则

PCB 设计的好坏对电路板抗干扰能力影响很大,因此,在进行 PCB 设计时,必须遵循

PCB 设计的一般原则,并应符合抗干扰设计的要求。为了设计出性能优良的 PCB,应遵循

下面讲述的一般原则。

1. 布局原则

智能仪表课程设计 实验指导书

85 / 91

首先,要考虑 PCB 尺寸大小。PCB 尺寸过大时,印制线条长,阻抗增加,抗噪声能力

下降,成本也增加;过小,则散热不好,且邻近线条易受干扰。在确定 PCB 尺寸后,再确

定特殊元件的位置。最后,根据电路的功能单元,对电路的全部元器件进行布局。在确定特

殊元件的位置时要遵守以下原则:

(1)尽可能缩短高频元器件之间的连线,设法减少它们的分布参数和相互间的电磁干

扰。易受干扰的元器件不能相互挨得太近,输入和输出元件应尽量远离。

(2)某些元器件或导线之间可能有较高的电位差,应加大它们之间的距离,以免放电

引出意外短路。带高电压的元器件应尽量布置在调试时手不易触及的地方。

(3)重量超过 15g 的元器件、应当用支架加以固定,然后焊接。那些又大又重、发热

量多的元器件,不宜装在印制板上,而应装在整机的机箱底板上,且应考虑散热问题。热敏

元件应远离发热元件。

(4)对于电位器、可调电感线圈、可变电容器、微动开关等可调元件的布局应考虑整

机的结构要求。若是机内调节,应放在印制板上方便于调节的地方;若是机外调节,其位置

要与调节旋钮在机箱面板上的位置相适应。

(5)应留出印制扳定位孔及固定支架所占用的位置。

根据电路的功能单元.对电路的全部元器件进行布局时,要符合以下原则:

(1)按照电路的流程安排各个功能电路单元的位置,使布局便于信号流通,并使信号

尽可能保持一致的方向。

(2)以每个功能电路的核心元件为中心,围绕它来进行布局。元器件应均匀、整齐、

紧凑地排列在 PCB 上.尽量减少和缩短各元器件之间的引线和连接。

(3)在高频下工作的电路,要考虑元器件之间的分布参数。一般电路应尽可能使元器

件平行排列。这样,不但美观.而且装焊容易.易于批量生产。

(4)位于电路板边缘的元器件,离电路板边缘一般不小于 2mm。电路板的最佳形状为

矩形。电路板面尺寸大于 200×150mm 时,应考虑电路板所能承受的机械强度。

2. 布线原则

在 PCB 设计中,布线是设计 PCB 的重要步骤,布线有单面布线、双面布线和多层布

线。为了避免输入端与输出端的边线相邻平行而产生反射干扰和两相邻布线层互相平行产生

寄生耦合等干扰而影响线路的稳定性,甚至在干扰严重时造成电路板根本无法工作,在 PCB

布线工艺设计中一般考虑以下方面:

(1)连线精简原则

连线要精简,尽可能短,尽量少拐弯,力求线条简单明了。

(2)安全载流原则

铜线宽度应以自己所能承载的电流为基础进行设计,铜线的载流能力取决于线宽和线厚(铜

箔厚度)。当铜箔厚度为 0.05mm、宽度为 1~15mm 时,通过 2A 的电流,温度不会高于 3℃,

因此导线宽度为 1.5mm 可满足要求。对于集成电路,尤其是数字电路,通常选 0.02-0.3mm

导线宽度。当然,只要允许,还是尽可能用宽线,尤其是电源线和地线。

(3) PCB 抗干扰原则

印制电路板的抗干扰设计与具体电路有着密切的关系,涉及的知识比较多。下面仅就一

些抗干扰设计说明如下:

电源线设计原则:根据印制线路板电流的大小,要尽量加租电源线宽度,减少环路电阻。

同时、使电源线、地线的走向和数据传递的方向一致,这样有助于增强抗噪声能力。

地线设计的原则:数字地与模拟地分开;接地线应尽量加粗,若接地线用很细的线条,

则接地电位随电流的变化而变化,使抗噪性能降低,如有可能,接地线线宽应在 2~3mm 以

上。

智能仪表课程设计 实验指导书

86 / 91

另外铜膜导线的拐弯处应为圆角或斜角(因为高频时直角或尖角的拐角处会影响电气性

能),双面板两面的导线应互相垂斜交或者弯曲走线,尽量避免平行走线,减少寄生耦合等。

3. 焊盘

焊盘中心孔要比器件引线直径稍大一些。焊盘太大易形成虚焊。焊盘外径 D 一般不小

于(d+1.2)mm,其中 d 为引线孔径。对高密度的数字电路,焊盘最小直径可取(d+1.0)mm。

以上是一些设计 PCB 的基本原则,当然这很大程度上还与设计者的经验有关。

3.4.5 PCB 文档创建

虽然利用向导可以生成一些标准规格的电路板,当更多的时候,需要自己规划电路板。

在实际设计的 PCB 板都有严格的尺寸要求,这就需要认真的规划,准确的定义电路板的物

理尺寸和电气边界。

手动规划电路板的一般步骤如下:

(1)创建空白的 PCB 文档

执行菜单 Files\New\PCB,如图 3-33 所示,启动 PCB 编辑器。新建的 PCB 板文件默认名称

为 PCB1.Pcbdoc,此时在 PCB 编辑区会出现空白的 PCB 图纸,如图 3-34 所示。

图 3-33 创建新的 PCB板文件 图 3-34 新建的空白 PCB板文件

(2)设置 PCB 物理边界

PCB 板物理边界就是 PCB 板的外形。执行菜单 Design\Board Shape,子菜单中包含以下

几个选项:

Redefine Board Shape:重新定义 PCB 板外形。

Move Board Vertices:移动 PCB 板外形顶点。

Move Board Shape:移动 PCB 板外形。

Define from Selected objects:从选中物体定义 PCB 板外形。

Auto-Position Sheet:自动定位图纸。

下面为新建的PCB板绘制物理边界。将当前的工作层切换到Mechanical1(第一机械层),

执行菜单命令 Design\Board Shape\ Redefine Board Shape,光标呈十字形状,系统进入编辑

PCB 板外形状态,绘制一个封闭的矩形。如果要调整 PCB 板的物理边界,可以执行 Move

Board Vertices 命令,将鼠标移到板子边缘需要修改的地方拖动。

(3)设置 PCB 板电气边界

PCB 板的电气边界用于设置元件以及布线的放置区域范围,它必须在 Keep-Out-Layer

智能仪表课程设计 实验指导书

87 / 91

(禁止布线层)绘制。规划电气边界的方法与规划物理边界的方法完全相同,只不过是要在

Keep-Out-Layer(禁止布线层)上操作。方法是:首先将 PCB 编辑区的当前工作层切换为

Keep-Out-Layer,然后执行 Place\Keep Out\Track 命令绘制一个封闭图形即可。

3.4.6 导入网络表

正确装载元件封装库后即可导入网络表,将原理图的信息导入到印制电路板设计系统

中。操作步骤如下:

1. 使用从原理图到 PCB 板自动更新功能,执行菜单 Design\Import Changes From*.Prjpcb,

如图 3-35 所示,这时将弹出“Engineering Chang Order(工程改变顺序)”对话框。

图 3-35 在 PCB编辑环境下更新 PCB板

2. 点击对话框中【Validate Changes】按钮,系统将检查所有的更改是否都有效。如果有效,

将在右边 Check 栏对应位置打勾;如果有错误,Check 栏将显示红色错误标识。一般的错误

都是由于元件封装定义错误或者设计 PCB 板时没有添加对应元件封装库造成的。

3. 点击击【Execute Changes】按钮,系统将执行所有的更改操作,如果 ECO 存在错误,则

装载不能成功。

3.4.7 元件布局与手动布线

导入网络表后,所有元件已经更新到 PCB 板上,但是元件布局不够合理。合理的布局

是 PCB 板布线的关键,如果 PCB 板元件布局不合理,将可能使电路板导线变的非常复杂,

甚至无法完成布线操作。Altium Designer 提供了两种元件布局方法,一种是手工布局,一种

是自动布局。

手工布局的操作方法是:用鼠标左键单击需要调整位置的对象,按住鼠标左键不放,将

该对象拖到合适的位置,然后释放即可。如果需要旋转或者改变对象方向,可按空格键、X

键和 Y 键。布局的原则按照前面的 PCB 设计基本原则进行。

智能仪表课程设计 实验指导书

88 / 91

图 3-36 示例

布线就是放置导线将板上的元器件连接起来,实现所有网络的电气连接。本例中由于是

单面 PCB 板设计,故只在底层布线。具体的操作步骤如下:

1.切换当前层为底层(Bottom Layer)。点击工作区底部的“Bottom Layer”标签。如图 3-37

所示。

图 3-37 切换当前层为 Bottom Layer

2.调出 PCB 工作面板,执行菜单 View\Workspace panels\PCB\PCB,调出如图 3-38 所示左

边工作面板。

3.选择网络。在 PCB 工作面板网络选择区点击+6V 网络,这时连接+6V 网络的所有焊盘都

突出显示。

图 3-38 PCB工作面板和+6V网络

4.执行菜单命令 Place\Interactive Routing 后,光标将变成十字形状,表示处于导线放置模

智能仪表课程设计 实验指导书

89 / 91

式。

5.放置导线的起点。将光标放在 R1 的 2 号焊盘上,单击鼠标左键或按键盘【ENTER】键

确定导线的起点。

6.移动光标到 R3 的 2 号焊盘,按键盘【SPACE】键可以切换要放置的导线的 Horizontal(水

平)、Vertical(垂直)或 45°放置模式。注意:如果设计 PCB 双面板,此时可按“*”键,

使布线在顶层和底层之间切换,同时自动放置一个过孔。

7.按下键盘【Tab】键可弹出导线属性对话框,修改线宽,如图 3-39 所示。

图 3-39导线属性对话框

8.将光标放在 R3 的 2 号焊盘上,单击鼠标左键或按键盘【ENTER】键,此时第一段导线

变为蓝色,表示它已经放在底层了,如图 3-40 所示。

图 3-40放置导线

9.依次再连接 R4 的 2 号焊盘、R2 的 2 号焊盘以及外接电源的+6V 焊盘。连接好后效果如

图 3-41 所示。

智能仪表课程设计 实验指导书

90 / 91

图 3-41 +6V网络

10.完成了第一个网络的布线后,紧接着再按照上述方法完成 GND、NetC1_2、NetC2_2 、

OUT1 以及 OUT2 网络。完成后如图 3-42 所示。

图 3-42 完成手动布线的 PCB板