毕业论文老师的批注,老师批注这上面那个蓝色的字,表中的金额数字用分为符号,这个什么意思啊

毕业论文指导意见_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
毕业论文指导意见
阅读已结束,下载文档到电脑
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,方便使用
还剩12页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢毕业论文统一格式要求_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
毕业论文统一格式要求
阅读已结束,下载文档到电脑
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,方便使用
还剩10页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢中医专业毕业论文格式及范文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
中医专业毕业论文格式及范文
阅读已结束,下载文档到电脑
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,方便使用
还剩9页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢当前位置: >>
毕业论文重要
11.1 单片机简介绪论众所周知,计算机的发展经历了从电子管、晶体管、集成电路到大(超大) 规模集成电路共四个阶段。现在广泛使用的微型计算机(Microcomputer)是大 规模集成电路技术发展的产物,因此它属于第四代计算机。随着大规模集成技术 的不断发展,导致微型机向两个方面发展:一个是向高速
度、高性能的高档方向 发展;另一个是向稳定、可靠、小而廉价的单片机方向发展。 单片机因将其主要组成部分集成在一个芯片上而得名, 集体说就是把中央处 理器 CPU (Central Processing Unit) 随机存储器 RAM 、 (Random Access Memory) 、 只读存储器 ROM(Read Only Memory) 、中断系统、定时器/计数器以及 I/O (Input/Output)口电路等主要微型机部件,集成在一块芯片上。虽然单片机只 是一个芯片,但从组成和功能上看,它已具有了计算机系统的属性,为此称它为 单片微型计算机 SCMC(Single Chip MicroComputer) ,简称单片机。单片机主要 应用于控制领域,用以实现各种测试和控制功能,为了强调其控制属性,也可以 把单片机称为微控制器 MCU(MicroController Unit) 。 单片机具有以下特点: 1)受集成度限制,片内存储器容量小,一般 ROM 小于 4/8K,RAM 小于 256 字节,但可在外部扩展,通常 ROM、RAM 可分别扩展到 64K 字节。 2)可靠性好。芯片本身是按工业测控环境要求设计的,其抗工业噪声干扰优于 一般通用 CPU;程序指令及常数、表格固化在 ROM 中不易破坏;许多信号 通道均在一个芯片内,故可靠性高。 3)易扩展。片内具有计算机正常运行所必需的部件。芯片外部有许多供扩展用 的三总线及并行、串行输入/输出管脚,很容易构成各种规模的计算机应用系 统。 4)控制功能强。为了满足工业控制要求,一般单片机的指令系统中均有丰富的 条件分支转移指令、I/O 口的逻辑操作及位处理功能。一般来说,单片机的逻 辑控制功能及运行速度均高于同一档次的微处理器。-1- 5)一般单片机内无监控程序或系统通用管理软件,只放置有用户调试好的应用 程序。 单片机技术已经渗透到人类生活的方方面面,单片机的应用非常广泛: 1. 工业自动化方面 自动化能使工业系统处于最佳状态、提高经济效益、改善产品质量和减轻 劳动强度。因此,自动化技术广泛应用于机械、电子、电力、石油、化工、纺织、 食品等轻重工业领域中,而在工业自动化技术中,无论是过程控制技术、数据采 集和测控技术,还是生产线上的机器人技术,都需要有单片机参与。 2. 仪器仪表方面 现代仪器仪表的自动化和智能化要求越来越高,对此最好使用单片机来实 现,而单片机的使用又将加速仪器仪表向数字化、智能化、多功能化和柔性化方 向发展。 3. 家用电器方面 家用电器产品的一个重要发展趋势是不断提高其智能化程度, 智能化家电将 给我们带来更大的舒适和方便,进一步改善我们的生活质量,把我们的生活变得 更加丰富多彩,而家电智能化进一步提高就需要有单片机的参与。 4. 信息和通信产品方面 信息和通信产品的自动化和智能化程度很高,这当然离不开单片机的参与。 例如计算机的外部设备(键盘、打印机、磁盘驱动器等)和自动化办公设备(传 真机、复印机、考勤机、电话机等)中,都有单片机在其中发挥着作用。 5. 军事装备方面 科技强军、国防现代化离不开计算机,在现代化的飞机、军舰、坦克、大炮、 导弹火箭和雷达等各种军用装备上,都有单片机深入其中。 在生活和生产的各个领域中, 凡是有自动控制要求的地方都会有单片机的身 影出现;从简单到复杂,从空中到地下,凡是能想象到的地方几乎都有使用单片 机的需求。单片机的应用有利于产品的小型化、多功能化和智能化,有助于提高 劳动效率, 减轻劳动强度, 提高产品质量, 改善劳动环境, 减少能源和材料消耗, 保证安全等。但是,单片机应用的意义绝不仅限于它的广阔范围以及所带来的经 济效益上,更重要的意义还在于:单片机的应用正从根本上改变着传统的控制系-2- 统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分控制功 能,现在已能使用单片机通过软件(编程序)方法实现了。这种以软件取代硬件 并能提高系统性能的控制系统“软化”技术,称之为微控制技术。微控制技术是 一种全新的概念,是对传统控制技术的一次革命。随着单片机应用的推广普及, 微控制技术必将不断发展、日益完善和更加充实。1.2MSP430F135 单片机简介TI 公司的 MSP430F135 单片机是一种超低功耗的混合信号控制器。它具有16 位 RISC 结构,CPU 的 16 个寄存器和常数发生器使 MSP430F135 微控制器能 达到最高的代码率;灵活的时钟源可以使器件达到最低的功率消耗;数字控制的 振荡器(DCO)可使器件从低功耗模式迅速唤醒,在少于 6μs 的时间内激活到活 跃的工作方式。 MSP430F135 具有以下特点: 1. 低电压、超低功耗。MSP430F135 单片机在 1.8~3.6V 电压、1MHz 的时 钟条件下运行,耗电电流(在 0.1~400μA 之间)因不同的工作模式而不同;具有 16 个中断源,并且可以任意嵌套,使用灵活方便;用中断请求将 CPU 唤醒只要 6μs,可编制出实时性特别高的源代码;可将 CPU 置于省电模式,以用中断方式 唤醒程序。 2. 强大的处理能力。MSP430F135 单片机为 16 位 RISC 结构,具有丰富的 寻址方式(7 种源操作数寻址、4 种目的操作数寻址) 、简洁的 27 条内核指令以 及大量的模拟指令;大量的寄存器以及片内数据存储器都可参加多种运算;还有 高效的查表处理方法;有较高的处理速度,在 8MHz 晶体驱动下,指令周期为 125μs。这些特点保证了可编制出高效率的源程序。 3. 系统工作稳定。上电复位后,首先由 DCOCLK 启动 CPU,以保证程序 从正确的位置开始执行,保证晶体振荡器有足够的起振及稳定时间。然后软件可 设置适当的寄存器的控制来确定最后的系统时钟频率。如果晶体振荡器在用作 CPU 时钟 MCLK 时发生故障,DCO 会自动启动,以保证系统正常工作;如果程 序跑飞,可用看门狗将其复位。 4. 丰富的片内外设。MSP430F135 单片机含有看门狗(WDT) 、定时器 A 和定时器 B(Timer_A、Timer_B) 、比较器、串口 0 和 1(USART0、1) 、12 位-3- ADC、端口 1~6(P1~P6)以及基本定时器(Basic Timer) 。其中,看门狗可以使 程序失控时迅速复位;比较器进行模拟电压的比较,配合定时器可以设计为 A/D 转换器;串行通信接口可用于异步或同步(软件选择 UART/SPI 模式) ;定时器 具有捕捉/比较功能,可用于事件计数、时序发生、PWM 等;具有 6×8 条 I/O 口线,其中 2×8 条 I/O 口线具有中断能力;12 位 200kbps 的硬件 A/D 转换器, 自带采样保持,多种转换方式。JTAG 引脚单独引出,不与 I/O 口线复用;片内 含有 FLASH 存储器,方便开发与调试; 5. 方便高效的开发环境。因为 MSP430F135 单片机内有 JTAG 调试接口, 还有可电擦写的 FLASH 存储器,因此采用先下载到 FLASH 内,再在器件内通 过软件控制程序的运行, JTAG 接口读取片内信息供设计者调试使用的方法进 由 行开发。这种方式只需要一台 PC 机和一个 JTAG 调试器,而不需要仿真器和编 程器。开发语言有汇编语言和 C 语言。 6. 工业级的产品。MSP430F135 单片机为工业级的,运行环境温度为 -40~+85° C。1.3单片机开发系统简介对一个微型计算机应用系统,从提出任务、定型生产到投入使用的过程称作对微型计算机进行开发。这一开发过程所具有的明显特点是:微型计算机产品的 软硬件是不可分割的。 与一般微机应用系统相同,单片机应用也必须要有开发工具,只不过单片机 集成度更高,硬件设计和调试相对来说更容易一些。为了体现单片机的快速性和 实时性,许多控制系统都采用汇编语言来编程。但是当程序量较大时,使用汇编 语言编程会给设计工作带来更大的工作量,导致软件设计工作的效率大大降低, 所以在一些对于实时性要求不高的系统,常用较为简单的 C 语言进行编程。对于 MSP430F135 系列单片机,提供与标准 C 语言基本兼容的 C 编译软件是拓展大容 量程序空间的最好方法。这里使用的是 IAR 公司的集成调试环境 Embedded Workbench 和 C 语言调试器 C-SPY,使用方法后面将作具体介绍。1.4课题背景及设计任务在中央空调的应用过程中, 如何对系统中各工作部件进行控制使其协调工作-4- 是实现自动温控的重要问题。这一问题直接影响到空调系统的控温性能、运行的 可靠性、连续性,所以空调各工作部件的控制已成为空调应用中迫切需要解决的 问题。本系统主要用于空调控制系统中控制模块的控制,它采用 MSP430F135 单 片机为控制核心,利用其通信功能实现遇手抄器模块的信息交换,通过各 I/O 管 脚来控制空调的压缩机、冷却/冻水泵及冷却风扇的动作,并能够对各传感器进 行错误检测和数据处理,已达到空调各部件协调稳定的工作。通过学习明确了解 自己通过软件编程应完成的功能,即利用 MSP430F135 单片机对各参数进行数据 检测,并对其进行保存,随时准备发送给手抄器模块,同时随时准备接收手抄器 模块对系统各部件的控制命令,确保空调控制系统安全、可靠、连续的运行。 在上述系统中,本次设计主要完成控制系统控制模块软件的设计。在熟悉硬 件电路及接口技术的基础上, 通过软件编程实现其控制任务。 主要的子程序包括: 通信子程序、存储器子程序、故障检测子程序、控制子程序及中断程序等,且要 通过调试。基于以上控制任务,通过阅读本文,熟悉并初步了解 MSP430F135 单 片机的结构特点、C 语言应用,了解其调试环境及调试方法等基本知识。在此基 础上,进一步熟悉硬件电路及相关接口技术,更好地完成以下任务: 1)熟悉并掌握 MSP430F135 单片机的工作原理及接口技术。 2)用 C 语言完成程序的编制,并通过调试。 3)与硬件结合,完成软-硬件开发。 4)完成程序的源程序解析语句(中文) 。 5)熟悉 Embedded Workbench 和 C-SPY 开发调试系统的使用方法和技巧。-5- 22.1 系统结构系统工作原理该控制系统由传感器(检测元件) 、压缩机和水泵及风扇的阀门(执行机构) 和通信模块(通信装置)三部分组成。该系统通过 I/O 端口连接到各传感器进行 各参数(包括模拟量和开关量)的检测,并由 MSP430F135 单片机进行简单的数 据处理,然后保存到存储器中,以供手抄器模块查询和调用。手抄器模块根据从 控制模块得到的数据进行分析和判断,给出动作命令,通过通信接口发送至控制 模块,控制模块则根据所接收到的命令对空调各部件进行动作控制。如果控制模 块没有接收到任何命令, 则控制模块维持在检测数据――刷新存储器――故障检 测的循环中,接收到命令后则通过调用子程序来实现。 系统结构图如图 2-1 所示:手 抄 器 模 块 系 统动作或查 询命令 各所测参数信 息及状态信息MSP430F135开关量 检测传 感器经光电耦合模拟量 检测传 感器接滤波电容 及上拉电阻( 控 制 模 块 )经驱动电路单 片 机 系 统压缩机、 泵类、 风扇等空调机 组部件图 2-1系统结构框图-6- 2.2硬件实现该系统的主体是 MSP430F135 单片机。由于该单片机片内资源丰富,含有 6个 8 位 I/O 接口,一个 12 位 A/D 转换器,一个通用串行通信模块 USART;而该 系统中共有开关量输入信号 9 个,模拟量输入信号 8 个以及 10 个输出信号,故 系统的片内资源完全可以满足要求,则不需要在片外扩展。P0 口及 P2.0 口可用 于连接开关量输入信号,P6 口可用于连接 8 个模拟量输入信号,10 个输出信号 则可用 P4 口、P3.7 及 P5.0 口进行连接。片内的通用串行通信模块 USART 可用 于与手抄器模块系统进行通信和信息交换。由于输出信号中有六个为继电器输 出,所以在相应的接口中应加入驱动电路,以便能驱动继电器,实现其输出控制 功能。在温度和其他参数检测时,为了保证所得数据的精度,须在口线与传感器 的连接之间加入光电隔离单元。 2.2.1 A/D 转换器A/D 转换器接口是数据采集系统向前通道的一个环节。数据采集和转换系统 从一个或几个信号源中采集模拟信号,并将这些信号转换为数字形式,以便输入 计算机。MSP430F135 单片机中含有 ADC12 模块能够实现 12 位精度的模数转换, 具有高速和通用的特点。它的内核是一个带有采样与保持功能的 12 位转换器, 内部有参考电压发生器并且有两种参考电压值可供选择, 采样与转换过程中所需 要的时钟信号源可以选择,其转换结果又专门的桶型缓存。其操作可以通过相关 的控制寄存器来实现,控制寄存器大致可分为 4 类:转换控制类、中断控制类、 存储控制类及存储器控制类。 2.2.2 串行通信模块MSP430F135 单片机中含有串行通信模块 USART 模块,用户对它的使用是通 过在硬件原理的理解下,在一系列寄存器设置之后,由硬件自动实现数据的移进 和移出,完成串行通信的功能,同时还能实现两种通信协议,即 UART 异步通信 协议和 SPI 同步通信协议;在异步模式下,所传递的数据是以异步帧格式来发送 的。异步帧格式由 1 位起始位、7 位或 8 位数据位、校验位(可奇/可偶/可无) 、 1 为地址位(地址位模式时)和 1 位或 2 位停止位组成。USART 模块包含这样一 些部分:波特率部分、接收部分、发送部分和接口部分等。-7- 1) 波特率的产生。MSP430F135 单片机的波特率发生器使用一个分频计数器 和一个调整器,分频因子 N 由送到分频计数器的时钟(BRCLK)频率和所需的波 特率来决定,那么波特率=BRCLK/N。 2)控制寄存器的设置。在通信过程中,所需要设置的寄存器有控制 USART 模块基本操作的 UXCLT 控制寄存器,控制数据发送操作的 UXTCTL 控制寄存器,控 制数据接收操作的 URCTL 控制寄存器,用于选择波特率的 UXBR0、UXBR1 寄存器, 波特率调整控制寄存器 UXMCTL 以及接收、发送数据缓存 URXBUF、UTXBUF。 2.2.3 各种端口MSP430F135单片机中有P1到P6六个端口以及COM口和S端口。 在本系统中仅使 用P1到P6端口,下面对这些端口做简单介绍。 1)端口P1和P2。这两个端口可通过7个控制寄存器对每个端口操作,对它们 的访问需用字节指令以绝对模式进行访问。它们的每条I/O口都可以独立编程; 可有各种输入、输出以及不同中断条件的组合;8条引脚都可实现外部事件的中 断处理。 2)端口P3、P4、P5和P6。这些端口没有中断能力,其余功能与P1和P2一样, 能实现输入/输出功能和外围模块功能。每个端口有4个寄存器供用户使用,用户 可通过这四个寄存器对它们进行访问和控制。 2.2.4 时钟模块MSP430F135单片机的时钟由高速晶体、低速晶体以及数字控制振荡器DCO等 部件构成。不同的基础时钟模块产生相同的结果:输出三种不同频率时钟ACLK (辅助时钟) 、MCLK(主系统时钟)和SMCLK(子系统时钟) ,送给各种不同需求 的模块。系统中各模块选择时钟源非常灵活,例如:在硬件定时器中,可以选择 TBCLK(外部引脚信号) 、ACLK(辅助时钟) 、MCLK(主时钟)或者INCLK(外部时 钟)作为输入时钟源。对于系统中运算部分,需要相对准确的时钟系统作为模数 转换硬件模块的时钟源, 可选用低频振荡器产生的ACLK。 对于系统中的运算部分, 由于程序的执行要求时间尽可能短,而对频率的准确度没有要求,所以用DCO产 生MCLK作为系统的主时钟。-8- 33.1软件设计与实现MSP430F135的C语言应用简介鉴于本系统对于实时性要求不是很高,故在本系统中使用C语言编程能在完成要求的基础上,提高设计效率,加快开发进度。MSP430系列单片机使用的C语 言称为C430。 C430具有C语言的标准特性,由于MSP430系列单片机在数据存储上有一定的 特殊性,如它的空间有限,它本身的结构是16位的,因此C430处理的数据类型与 普通环境下的C语言表达的数据类型稍有不同,以适应MSP430系列单片机的硬件 特点。C430支持所有的ANSIC-C基本数据类型。程序变量存储在存储器低端地址 的底部。实际上是存放在单片机片内RAM区。 1. 枚举类型。用enum关键字,可以使声明的每一个对象具有适合它的值所 需的最短整数类型,包括char、short、int或long。 2. 字符类型。在默认情况下,C430认为char类型是无符号的。但是允许用 户将它变为有符号的。不过,C430的库函数是以char类型为无符号来编译生成目 标文件的。 3. 浮点类型。 C430的浮点计算有效数字大约为7位十进制数。 对于C430来说, float、double和long double数据类型并没有什么区别。 4. 特殊功能寄存器变量(sfr变量) 。直接定位于片内空间,sfrb定位取值 范围为0x00―0xFF;sfrw定位取值范围为0x100―0x1FF,并且sfrb类型可以有取 值范围为1字节的符号名。在上述地址范围内的寄存器可以用符号名来寻址,而 且不必为此分配存储器空间。 5. 位域。表达式中的位域可以具有与基本类型相同的数据类型。如有符号 或无符号的char、short、int或long类型。具有基本类型char、short和long的 位域是对ANSIC-C整数类型位域的扩展。 位域变量封装在位域定义类型的元素中, 各元素从LSB开始分配。 6. 指针。C430的指针分为代码指针和数据指针,由2字节组成,可以指向 0x0000―0xFFFF范围内的存储器。-9- 3.23.2.1软件流程图主程序流程图主程序主要完成系统的初始化、I/O口的检测以及对各子程序的调用。其流 程图如图3-1所示。开始 初始化I/O 口初始化 USART 初始化 ADC12 初始化 Timer 初始化手抄器 模块命 令? NY回送 类命令控制 类命令设置状态压缩机 75%运 行命令压缩机 100%运 行命令启动 命令关机 命令A/D、I/O 读75%负载 阀通电100%负载 阀通电刷新存储器 50%负载 阀断电 有无故 障? Y 置故障 标志位 清故障 标志位 N 延时参数 3 延时参数 3 75%负载 阀断电结束结束图 3-1主程序流程图- 10 - 启动命令关机命令回送类命令延时 2ms压缩机 25%负载阀通 电,其余负载阀断电读相应数据/状态 存储器启动冷冻水泵 延时 30s 延时 2min 关闭压缩机 启动冷却水泵 延时参数 32 延时参数 27 结束 调用通讯子程序关闭冷冻水泵启动冷却风扇延时参数 32延时参数 18关闭冷却水泵延时参数 32 压缩机 Y 接触器通电 关闭冷却风扇 延时参数 19 结束压缩机 Δ 方式工作 25%负载运行延时参数 20压缩机 50%负载运行图 3-1 续 主程序流程图结束- 11 - 3.2.2通信子程序本系统使用异步通信方式实现与手抄器模块系统的数据、信息交换。其程序 流程图如图3-2所示。开始开始向缓冲区输出字符 UART 是否有 中断请求? 发送数据 YN缓冲区是否为 空?N调用中断程序 (所接收数据存于指定位置)Y 结束 结束a. 发送通信程序流程图 图 3-2b. 接收通信程序流程图 通信子程序3.2.3A/D转换子程序MSP430F135具有8路外接12位A/D,并且有内部参考电压。具有多种形式A/D 操作模式,可以大大减轻控制A/D操作过程的软件开销。本系统采用序列通道单 次转换。其程序流程图如图3-3所示。 3.2.4 延时子程序本系统中,延时程序应用较多。例如:故障检测时,有故障检测延时;各部 件加载运行时间延时等。延时子程序流程图如图3-4所示。- 12 - 开始开始转换转换序列是 否结束?NY 结束图 3-3A/D 转换子程序流程图开始设置延时时间延时时间减 1延时时间是否 为“0”?NY结束图 3-4延时子程序流程图- 13 - 3.3编程中的重点和难点在初步完成系统流程图的绘制基础上,逐步开始编制程序。一方面通过查找资料,了解相关程序的视线,另一方面,具体问题具体分析,针对所用芯片不同 以及相应接口的是用进一步完成程序的编制。 设计软件时所追求的目标: 易理解、 易维护性,编制的程序力求简单易懂,更改也要求非常方便,这在程序完善过程 中非常重要;可测试性,要求所编制的程序能够很方便的进行测试,以了解它的 性能和缺陷,这在调试过程中非常重要;准确性,要求程序可以有的放矢,能够 真正解决问题;可靠性,要求程序可以在运行参数发生变化或者工作环境恶劣、 干扰严重等条件下可靠的运行,这是衡量一个程序成功与否的一个重要因素。 因此,为了达到以上要求,软件编程要遵循以下原则: 1)软件结构清晰、简捷、流程合理。 2)各功能程序实现模块化、子程序化。这样,既便于调试、链接,又便于 移植、修改。 3)运行状态实现标志化管理。各个功能程序运行状态、运行结果以及运行 要求都设置状态标志一边查询,程序的转移、运行、控制都可通过状态标志条件 来控制。 4)经过调试、修改后的程序应进行规范化。 5)实现全面的软件抗干扰设计。 由于 MSP430 在硬件结构上的限制,对该系统编程还应遵循以下准则: 1)MSP430 的位域类型的执行是很慢的,所以应当在仅仅为了节省数据存储 空间时才使用位域方式。如果用户必须使用位域存储,可以用 unsigned char 或 unsigned int 的位屏蔽操作来代替位域操作。 2)在模块之外不使用的变量应当声明为 static,这样在编译时有可能使这 些变量分配在寄存器中暂存,从而提高了代码效率。 3)尽可能使用 unsigned 数据类型。 4)程序设计中应该使用 ANSIC-C 原型函数。 5)因为单片机对 16 位数据操作效率最高,所以尽量使用 16 位数据。 6)只要有可能就应该使用 auto 类型而不用 static 类型。 7)C 程序调用汇编子程序的方法也是提高代码效率的有效手段。- 14 - 下面以 A/D 转换程序编制为例来具体介绍软件编程实现。 此时采用软件延时 的方法:单片机启动 A/D 转换后,根据该转换芯片所需的转换时间,进行软件延 时(为保险起见,通常延时时间应略大于 A/D 转换所需要的时间) 。延时之后, A/D 转换也结束了,于是便可以读出结果数据。这种方法可靠性比较高,不用增 加硬件连接,但占用单片机运行的时间,因此多用在处理任务较少或者实时性要 求不高的系统中。 程序可分为:1)关闭看门狗定时器;2)定时器、A/D 转换器初始化;3) 启动 A/D 转换;4)读出转换结果,准备下一次转换。其程序段如下: P6SEL = 0xFF; // 设置 P6 口为 ADC 转换模式 ADC12CTL0 &=~ ENC; // 在改变设置前停止 A/D 转换 ADC12MCTL0 = 0x10; // 参考电压为:AVss, Vref;输入通道 A0 ADC12MCTL1 = 0x10; // 参考电压为:AVss, Vref;输入通道 A0 ADC12MCTL2 = 0x10; // 参考电压为:AVss, Vref;输入通道 A0 ADC12MCTL3 = 0x10; // 参考电压为:AVss, Vref;输入通道 A0 ADC12MCTL4 = 0x11; // 参考电压为:AVss, Vref;输入通道 A1 ADC12MCTL5 = 0x11; // 参考电压为:AVss, Vref;输入通道 A1 ADC12MCTL6 = 0x11; // 参考电压为:AVss, Vref;输入通道 A1 ADC12MCTL7 = 0x11; // 参考电压为:AVss, Vref;输入通道 A1 ADC12MCTL8 = 0x12; // 参考电压为:AVss, Vref;输入通道 A2 ADC12MCTL9 = 0x12; // 参考电压为:AVss, Vref;输入通道 A2 ADC12MCTL10 = 0x12; // 参考电压为:AVss, Vref;输入通道 A2 ADC12MCTL11 = 0x12; // 参考电压为:AVss, Vref;输入通道 A2 ADC12MCTL12 = 0x13; // 参考电压为:AVss, Vref;输入通道 A3 ADC12MCTL13 = 0x13; // 参考电压为:AVss, Vref;输入通道 A3 ADC12MCTL14 = 0x13; // 参考电压为:AVss, Vref;输入通道 A3 ADC12MCTL15 = 0x13 + EOS; // 参考电压为:AVss, Vref;输入通道 A3 // 转换序列结束(EOS 被置位) ADC12CTL1 = CONSEQ_1 + SHP; //第一个转换结果保存在 ADC12MEM0 // 时钟源:ADC12 内置时钟发生器 // 转换模式:序列通道单次转换模式 ADC12CTL1|=ADC12DIV_7; // ADC12 时钟源分频设置 ADC12CTL0=MSC+REF2_5V+REFON+ADC12ON+ADC12OVIE +ADC12TOVIE; // ADC12CTL0 控制寄存器设置,0x009C; //内部参考电压发生器关闭 // ADC12 可以进行转换 // 转换时间溢出中断允许 // 溢出中断允许 ADC12CTL0 |= SHT1_15 + SHT0_15; ADC12IE = 0x8888; // ADC 中断允许 ADC12CTL0 |= ENC; // 允许转换 _EINT(); // 使能所有中断- 15 - _NOP(); _NOP(); _NOP(); _NOP(); ADC12CTL0 |= ADC12SC; ……// 执行空操作// 开始新一轮转换除中断方式的 A/D 转换外,还有软件延时和查询方式的 A/D 转换两种方法, 此处不作具体介绍。 在完成各个子程序编制,且通过编译的情况下,把程序连贯起来调试,假如 初始化及相应的连接,通过不断修改,反复调试,直至成功通过编译、链接调试 即算完成程序的设计。3.4系统开发调试环境3.4.1 开发调试环境特点 MSP430 系列单片机的开发软件较多, 但常用的是 IAR 公司的集成开发环境: IAR Embedded Workbench 嵌入式工作台以及调试器 C-SPY。IAR Embedded Workbench 为开发不同的目标处理器的项目提供强有力的开发环境, 并为每一种 目标处理器提供工具。Embedded Workbench 使用项目模式来组织应用程序。它 有以下特点: (1)通用性:可以在 Windows 环境下运行;具有分层的项目表示;直观的 用户界面;工具与编辑器全集成;全面的超文本帮助。 (2)编辑器:可以同时编辑汇编和 C 语言源文件;汇编程序和 C 语言程序 的句法用文本格式和颜色区别显示;具有强有力的搜索和置换命令,而且可以多 个文件搜索;可从出错列表直接跳转到出错的相关文件的相关语句;可以设置在 出错语句前标志;具有圆括号匹配功能;自动缩进功能,可以设置自动缩进的空 格;每个窗口的多级取消和恢复。 3.4.2 开发环境的使用指南 IAR Embedded Workbench 的使用: ①安装完 IAR Embedded Workbench 后,双击图标打开 IAR Embedded Workbench 软件。 ②在该环境下建立一个项目。 单击 File, New 后, 选择 Project, “确定” 单击 ,- 16 - 选择目标 CPU、输入项目名称(例如:430demo) ,单击“确定”保存到所选择 的路径。此时可以看到,在 430demo 项目下有一个 Debug 目标,但没有源文件, 单击 File,New 后,选择 Source/Text 选项,单击“确定”进入源程序编辑界面, 在这里进行源程序的编辑。源程序编辑好之后,保存为所需要的名称(例如: 430led.c),然而此时的项目 430demo 与源程序 430led.c 是孤立的,没有联系。单 击 Project,Files 后,选择所编辑的汇编源程序,单击“Add”按钮将源文件加入 组中,在组里的文件框就可以看到所选的文件出现在里面,这样 430demo 项目 中就有了 430led.c 程序。 ③编译、连接之后产生的目标代码就是 430led.c 编译后的代码,单击 Done 按钮后,可以看到项目管理窗口;单击 Project,compile 或按 Ctrl+F9 键,或单 击“编译”按钮进行文件编译,如果文件中有错误,就会出现错误提示,任意单 击某一个错误提示,系统会自动给出有错误的语句行。源文件编译通过之后,将 生成目标代码,这时可以单击 Project,Make,或按 F9 键,或单击“连接”按钮, 进行连接已生成目标代码,如果有错误会出现错误提示。在修改错误之后,直到 编译连接完全通过之后,最后对所编程序进行调试,以验证设计的正确。 3.4.3 调试环境使用指南 在 IAR Embedded Workbench 中可以方便地进入 C-SPY 调试环境, 但必须在 设计程序通过了 Make( “编译”“连接”,生成目标代码之后。进入 C-SPY 调 、 ) 试环境非常方便, 可以在 Embedded Workbench 中单击 Project, Debugger; 也可以 在快捷按钮中单击“C-SPY”按钮; 在 C-SPY 环境中,可以打开调试程序所需的若干窗口:源程序窗口、寄存 器窗口、观察窗口、特殊功能寄存器窗口等,可以非常方便地调试用户所设计的 程序。 1. 存储器窗口。 存储器窗口是调试程序常用的窗口。 此窗口的打开方式为: C-SPY 快捷键按钮中的 Memory, 或菜单栏中的 Memory windows 按钮。 MSP430 系列的存储器为线性统一地址,小模式下地址范围为 0000H~0FFFFH。在此窗口 可以观察其存储器的全部内容,而且可有 3 种数据格式:8 位、16 位、32 位。 2. 源程序窗口。源程序窗口是调试程序必不可少的,一般默认为打开。如 果没有打开,单击 Windows\Source 以打开。其中的蓝色指示为即将执行的指令- 17 - 语句条。随着程序运行,此蓝色指示条随程序流程而改变。 3. 寄存器窗口。 寄存器窗口是调试程序另一个常用的窗口。 其打开方式为: 单击 Window 窗口菜单中的 Register,或单击快捷键按钮中的 Register Window。 其中:R0~R2 分别是前三个 PC(程序计数器) 、SP(堆栈指针) 、SR(状态寄存 器) 、R3 为常数发生器,模拟指令使用,这里用户看不到;R4~R15 为用户使用, 可以查看与修改; CYCLES 为程序执行所用的机器周期数, 通过它可以方便地知 道执行代码的时间。 4. 特殊功能寄存器窗口。特殊寄存器窗口也是调试程序一个常用窗口。其 打开方式为:单击 Window 窗口菜单中的 SFR。这个窗口有一些选项,可以打开 与之相关的特殊功能寄存器。 5. 观察窗口。单击 Window 窗口菜单中的 Watch,可以打开观察窗口。这 里可查看用户想知道的变量的值,左边是变量名称,右边是变量的数值。如果观 察窗口已经有变量存在,可在下面的虚线框内右击,再单击 Add,然后输入变量 名称;或直接在源程序中要观察的变量处右击,再击 Quick Watch。观察窗口中 不想查看的变量名称也可以方便删除,在不想查看的变量处右击,再单击 Remove。 C-SPY 有多种方式调试程序:单步、断点、连续、运行到光标等。 1. 单步方式。 单步运行程序一定要使之处与非实时状态, 单击 CONTROL, 再取消 REALTIME,这样就能单步运行程序了。单步执行可单击“单步”按钮, 或依次单击 EXECUTE,STEP 或按 F2 键,执行之后,SP 的内容发生了变化, 而且是红色,表示刚刚改变;而源程序指示到下一句,表示将要执行的语句,PC 的内容也要发生变化。 2. 断点方式。首先设置断点,将光标条移到要设置断点的语句处。然后按 F5 键或依次单击 CONTROL, TOGGLE BREAKPOINT 或单击 “断点运行” 按钮, 设置断点的语句条就会用醒目的红色显示。 3. 连续方式。使用连续运行方式,程序运行到断点处就停下来。连续运行 方式的操作是,按 F4 键或“连续运行”按钮,或依次单击 EXECUTE,GO。 4. 运行到光标。运行到光标处时要先取消断点:与设置断点一样按 F5 键。 取消断点之后,将光标移到想要运行的语句条,再单击“运行到光标”按钮或依- 18 - 次单击 EXECUTE,GO TO CURSOR。 对于 C 语言的调试,还提供了一个非常方便的手段:除了使用 Watch(观 察窗口)外,Locals(局部变量观察窗口)的使用也能给调试带来方便。在调试 是打开 Locals 窗口,最初时总是主程序中用到的变量。注意:窗口中的变量值 是随机的,随后程序会给它们赋予需要的值。而当程序执行到子程序时,该窗口 的内容会发生改变,变为正在执行的子程序中的变量及其值。因此,使用 Locals 窗口对 C 语言程序进行调试是相当方便的。3.5软件抗干扰微机系统的可靠性是由多种因素决定的, 其中系统的抗干扰性能是系统可靠性的重要指标。随着微机在工业测控中应用越来越广泛。抗干扰技术是计算机应 用系统研制中不可忽视的一个重要内容。 软件抗干扰属于微机系统自身防御行为。 采用软件抗干扰的最根本的前提条 件是:系统中抗干扰软件不会因干扰而损坏。还应包括:在干扰作用下,微机系 统硬件部分不会受到任何破坏,或易破坏部分设置有监测状态可供查询;程序去 不会受干扰侵害;RAM 区的重要数据不被破坏,或虽被破坏但可以重新建立。 1. 控制状态失常的软件对策 为了确保系统安全可以采取下述软件抗干扰措施: 1)软件冗余。对于条件控制系统,对控制条件的一次采样、处理控制输出 改为循环地采样、处理控制输出。 2)设置当前输出状态寄存单元。当干扰侵入到输出通道成输出状态破坏时, 系统能及时查询寄存单元的输出状态信息,及时纠正输出状态。 3)设自检程序。在计算机内部的特定部位或某些内存单元设状态标志,再 开机后,运行过程中不断循环测试,以保证系统中信息存储、传输、运算的可靠 性。 2. 程序运行失常的软件策略 系统受到干扰侵害,致使 PC 值改变,造成程序运行失常,导致: 1)程序飞出。 2)数据区及工作寄存器中数据破坏。 对于程序运行失常的软件对策主要是发现失常状态后及时引导系统恢复原- 19 - 始状态。其相应对策有: 1)看门狗定时器:使用看门狗定时器来监视程序运行状态。定时器的定时 时间稍大于程序正常运行一个周期的时间, 而在程序运行过程中执行一次定时器 时间常数刷新,这样,只要程序运行正常,定时器不会出现定时中断,而当定时 器失常,不能刷新定时器时间常数而导致定时中断,利用定时中断服务程序将系 统复位。 2)设立软件陷阱:程序失控,微机偏离预定的执行过程,从而无法完成原 设定的任务,甚至会使整个系统瘫痪。为了防止上述情况,在软件设计时,可采 用设立软件陷阱的方法加以克服。 具体的做法实在 ROM 或 RAM 中, 每隔一些指令, 执行几次 NOP 指令(即把连续的几个单元置成 00) 。当出现程序失控时,只要失 控的程序运行至软件陷阱中的任何一个,都会被捕获,连续进行几个 NOP 操作。 执行完后,程序自动恢复正常,继续执行后面的程序,从而保证程序不会跑飞。- 20 - 4系统调试在整个设计系统的设计与调试过程中, 遇到不少困难和问题。 通过阅读书本, 查阅资料,在导师和同学的帮助下,不断克服困难,解决问题。 首先,在了解硬件电路过程中,由于使用的事 MSP430F135 单片机为一款 16 位单片机, 作者从未接触过, 而且也缺乏单片机应用系统的实际操作、 设计经验, 所以在设计初期感到力不从心,遇到很多困难。在查阅大量资料以及在导师的帮 助下,系统地了解了 MSP430F135 单片机的硬件结构、系统原理以及接口技术等 相关理论,尤其是在系统中应用到的各个 I/O 端口、时钟系统、A/D 转换器、看 门狗定时器以及通用串行通信模块 USART0 等部件更为熟悉,对其控制寄存器的 设置及应用都有较深的理解。在了解单片机本身的基础上,了解其外部电路也是 个重要的过程,各个参数如何采集,各个端口如何连接,如何实现抗干扰都是需 要熟悉的问题。 由于 MSP430F135 单片机片内含有 8 路 12 位 A/D 转换器 (P6 口) , 故系统中开关量输入信号应连接在 P6 口;可能引起中断的输入信号应该连接在 具有中断能力的 P1 或 P2 口。 硬件知识的充实为软件设计打下了坚实的基础, 但是软件编程也决非是轻而 易举的事情。软件设计要使软件结构清晰、简捷、流程合理,功能程序实现模块 化、子程序化,对经过调试、修改后的程序进行规范化,并要对软件进行全面的 优化,尽量提高代码效率,同时要实现全面的软件抗干扰设计。从刚开始接触感 觉困难,无从下手,然后查找资料,了解系统工作过程,完成流程图的设计,逐 步完成了程序的编制。 软件的调试和仿真中也存在不少的问题。 在编制程序时, 经常遇到的错误有: “Failed to open #include file ‘name’” (编译器不能打开#include 文件) , 解决此类问题一般只需更改文件的路径;Undeclared identifier :’name’(引用未声明的标识符),一般对该标志符进行定义便可以解决这个问题;‘,’or ‘;’ expected (在声明的末尾遗漏了“, ”或“; ) ” ,解决这类问题可以重新阅读 程序,对遗漏的符号加以补充;Old-system type of function declrator(使用了老的功能符号) ,此类问题在于使用的子函数前没有类型声明符;在编程过 程中还遇到形形色色的问题,在查阅资料和导师的帮助下,最终都得到了解决。- 21 - 在编制好的程序通过了编译、链接之后进入 C-SPY 调试过程中,常因参数设置不 合 理 而 失 败 。 例 如 , 弹 出 “ Could not find the target (or target not supported)!” (找不到调试系统(或系统不兼容) )错误提示框,再重新设置调 试“驱动选项”为软件模拟(Simulator)后,可以得到解决;弹出“Unable to open file ‘f:\IAR\430\icc430\ ****.xcl” (不能打开****.xcl 文件)错误 提示框,须重新设置****.xcl 文件路径才能解决该问题。 尽管系统可以运行,但还存在不少问题,有待于进一步改进。考虑到程序量 比较大,所需采集的信息量也较多,可以考虑采用程序存储器和数据存储器容量 更大的 MSP430F149 单片机;程序本身比较繁琐,有待于进一步精简优化,可考 虑对于实时性要求较高的故障处理子程序用代码效率较高的汇编语言编写;当 然,在对系统软、硬件进行优化的同时,还要考虑经济性和合理性。 以上是设计与调试过程中的经验总结。通过本次设计,自己亲自动手,深刻 的体会到理论与实践结合的重要性。在以前的学习过程中不够重视这一点,缺乏 实际应用能力的锻炼。在整个系统的设计调试过程中学到了很多东西,也提高了 分析问题、 解决问题的能力以及独立思考的能力, 同时, 通过对系统的软件设计, 还改变了自己的设计观念,建立了模块化、子程序化设计程序思想。- 22 - 5结论经过两个多月的辛勤努力,从课题分析出发到掌握硬件原理、接口技术、电 路分析,在掌握了 MSP430F135 单片机 C 语言应用及熟悉开发调试环境的基础上, , 成功完成了空调控制系统控制模块软件的设计,并且通过了调试,基本上完成了 自己的设计任务。 在整个设计中,自己从初步接触单片机编程开始,在熟悉了 MSP430F135 单 片机的特点和 C 语言在 MSP430F135 单片机上的应用和开发调试环境后,逐步完 成整个程序的编制与调试,并且了解了单片机应用系统软、硬件开发的全过程。 通过本次设计,自己亲自动手,深刻体会到理论与实践相结合的重要性。由 于缺乏实际动手能力的培养,设计过程中走了不少弯路,发现了不少问题。在今 后的学习和工作中要不断加强实践动手能力的培养,并不断提高自己分析问题、 解决问题的能力以及独立思考的能力。 总之,在整个设计过程中,在老师的指导下受益匪浅。- 23 - 致谢感谢导师郑伟旗老师的关心、指导和教诲。郑老师追求真理、献身科学、严 以律己、宽以待人的崇高品质对学生将是永远的鞭策。 作者在毕业设计期间的工作自始至终都是在郑老师全面、 具体的指导下进行 的。在郑老师的指导下,逐步提高自己的思考能力、动手能力等各方面能力,同 时取得了很大的进步。郑老师渊博的学识、敏锐的思维、民主而严谨的作风,使 学生受益匪浅,终生难忘。 感谢我的学友和朋友们对我的关心和帮助。- 24 - 参考文献[1] 李广弟主编.单片机基础-2 版(修订版).北京:北京航空航天大学出版社, ] 魏小龙编著.MSP430 系列单片机接口技术及系统设计实例. 北京:北京航空 航天大学出版社,] 胡大可编著. MSP430 系列单片机 C 语言程序设计与开发.北京:北京航空航 天大学出版社,] 胡大可编著. MSP430 系列 FLASH 超低功耗 16 位单片机. 北京:北京航空航 天大学出版社,] 胡大可主编. MSP430 系列超低功耗 16 位单片机原理与应用. 北京:北京航 空航天大学出版社,] 李朝亲主编.单片机原理及接口技术.北京:北京航空航天大学出版社, ] 赵亮, 侯国锐编著.单片机C语言编程与实例.北京: 人民邮电出版社, ] 李兰友, 王勇才, 傅景义主编.单片机应用开发十例.北京: 电子工业出版社, ] 陈伟人主编.单片微型计算机原理及其应用.北京: 清华大学出版社, ]万福军主编.单片机原理系统设计与开发应用.北京:中国科学技术出版社, ]谭浩强编著.C程序设计(第二版).北京:清华大学出版社,]The TI Company. MSP430x13x USER’S GUIDE. ]西安工业学院学位评定委员会编.学位论文规范.西安:西安工业学院, 1998.5- 25 - 附 录 A开 题 报 告随着科学技术的发展,人们对生活质量的要求日益提高,空调已经被越来 越多的家庭拥有。在各类建筑中,特别是智能建筑,中央空调的需求越来越多, 其安全性、可靠性也有进一步高要求,在保证安全可靠前提下,其自动化程度也 是一个重要方面,如何实现各子系统与中央控制器的联系并进行信息的交换,如 何使各类风机、泵类协调工作,如何使系统具有自诊断、简单故障自处理等都是 空调控制系统应该解决的问题。 空调控制系统主要由硬件及软件两部分组成, 其软件可以分为手抄器模块软 件与控制模块软件。其控制模块用于控制空调系统的动作,并进行数据检测及执 行手抄器模块的各种命令。 在压缩机开机卸载时有其遵循的原则, 开机原则为 “先 启先停,能不启则不启” ,卸载原则为: “先卸载运行时间长的压缩机,能不停机 则不停机” 。压缩机运行时还须防止频繁启停,应该设定压缩机再次启动间隔时 间及最少运行时间,以上时间均由手抄器模块设定,由控制模块来执行。该系统 还具有故障自诊断功能,在所有故障点都具有时间可调的检测延时,流量开关保 护时,系统全停;温度传感器故障时,系统全停;高低压保护时、压缩机故障时 只停相应的压缩机,不停水泵;水温过低、防冰保护时,压缩机全停,但是不停 水泵;流量开关保护结束时面板复位无效,须面板重新启动方能开机,其他故障 消除是可以使用面板复位键重新开机。在压缩机启动后,其 25%负载阀通电,判 断参数,如负载不足,则 25%负载阀断电,50%负载阀通电,再延时,再判断, 如负载不足则启动 75%负载阀,直至 100%负载阀通电;断电顺序为 100%负载阀 ―75%负载阀―50%负载阀―25%负载阀,在压缩机关闭过程中应先把压缩机 25% 负载阀通电而其他负载阀断电,然后才可以关闭主接触器。所有以上的动作都与 手抄器模块的处理有关,如何实现手抄器模块、控制模块的联系是设计中的重要 部分,鉴于使用的单片机是一款带有串行通信接口的 16 位单片机,则设计通讯 协议就成为了重点。- 26 - 在时间安排方面,我计划用两周时间来了解该系统的任务、功能特点及查找 相关资料等准备工作;两周时间完成主程序的流程图及主程序整体框架;中间时 间段设计程序,并同时进行软件的测试及功能的完善;最后一个月时间完成程序 的校验、完成论文,如果时间允许则进行一些改进,争取达到更好的效果。 该系统控制模块软件部分各设定参数、采集量较多,数据处理较为复杂,特 别是与手抄器模块通讯问题尤为重要,故程序较为繁琐;而且该系统使用的是一 款全新的 16 位单片机 MSP430F135,需要一定的时间了解和熟悉单片机的情况, 故工作量比较大。设计期间我一定会理清思路,合理安排时间,大量查阅资料, 尽快掌握单片机的使用并把系统运行过程搞清楚;在程序设计方面,我会画好流 程图,把程序按照功能分为几个部分,然后各个击破,一定要在毕业设计期间把 空调控制系统控制模块软件部分按质按量完成; 同时我还会积极与硬件及手抄器 模块软件设计的同学进行交流,全面了解该系统,一方面可以帮助自己对控制模 块软件应完成的功能有更多地了解,同时也可以对设计系统有一个全面地了解, 增加自己的知识能力。吴文军 2004 年 4 月 5 日- 27 - 附 录 B中 期 报 告毕业设计已经过半,为了更好地完成设计和安排设计时间,有必要对前半 段时间的设计做一个总结,对后半段做一个计划。 空调控制系统在现实社会中运用越来越广泛,对其安全性、可靠性、自动化 程度以及其人性化设计也提出了进一步的要求。在空调系统中,如何实现手抄器 模块与控制模块的通信, 如何使系统各部分协调工作, 如何充分利用系统的资源, 如何实现系统的故障自诊断、简单故障自处理成为空调控制系统中的重要问题。 在设计中,主要需要完成的程序有:主程序,通信程序,故障检测程序,存储器 刷新程序,开关机程序以及制冷运行程序。 在前期工作中,通过查阅各种资料以及在老师的帮助下,对系统设计的要求 有了进一步的了解,我明白了控制模块软件的设计任务就是要联系手抄器模块, 执行手抄器模块所给的命令、对数据进行采集并进行简单处理、以及进行数据的 存储和刷新,以备手抄器模块调用并能给手抄器模块以分析判断的依据。同时我 也对 MSP430F135 这款 16 位单片机进行了全面的学习, 熟悉了单片机的内外设原 理及其使用方法,并对该单片机的 C 语言系统有了相当的了解,可以熟练地对该 单片机进行 C 语言编程。同时,还熟悉了该单片机的开发环境 IAR Embedded Workbench 以及其调试环境 C-SPY,已经利用该环境完成部分子程序的设计及其 调试。已经完成的程序有:主程序,通讯程序,开关机程序以及制冷运行程序。 该设计至今为止已完成了总设计量的 60%,根据实际情况, 预计余下部分可在 5 月底完成。 在前期设计中,遇到了较多的问题,特别是在编好程序准备进入到调试环境 时,遇到了参数设置方面较多的问题。通过老师悉心教导和同学热心帮助以及个 人努力,终于将问题逐一攻破。如: 1. 编辑好程序以后,在编译、链接通过之后,欲进入调试环境 C-SPY 时, 弹出错误提示框“Could not find the target (or target not supported)!”- 28 - 开始时,总以为是调试环境安装错误,重新安装之后,仍不能解决问题,后来在 老师的指导下, 通过更改 IAR Embedded Workbench 中 Project, Opinion, Category 中 C-SPY 选项的 Set up, Driver 项 (即把 Flash Emulation Tool 改为 Simulator) , 顺利地进入到 C-SPY 调试界面。 2. 在程序编译、链接之后,欲进入调试环境 C-SPY 时,弹出错误信息框 “Unable to open file ‘f:\IAR\430\icc430\ msp430f149c.xcl’” 。在查阅 各种资料之后,明白了可以通过更改 IAR Embedded Workbench 中 Project, Opinion,Category 中的 XLINK 选项中的 Include, XCL file name 中的 Override default 项 ( 即 把 $TOOLKIT_DIR$\icc430\msp430f149c.xcl 改 为$TOOLKIT_DIR$\icc430\msp430f135c.xcl) ,改正后运行正确。 3. 其他问题。在设计中还碰到许许多多的小问题,在查阅大量资料以及在 老师的帮助下,都一一得到了解决。现在我能够自己解决在设计中遇到的大部分 问题, 但在今后的设计中肯定还会碰到很多更加复杂的问题, 我会大量查找资料, 积极向老师、同学请教,力争把设计做得更好。 在后期的设计中,我计划在 5 月 15 日之前完成故障检测程序、存储器刷新 程序的设计和调试,5 月 25 日之前把所有的程序加在一起进行完整程序的调试, 并进行必要的修改和完善。在剩下的时间中可以准备毕业论文,并可以利用这段 时间多于设计手抄器模块软件和系统硬件部分的同学进行交流, 这样有利于更深 刻地了解系统,对完善系统也会有帮助。 毕业设计的时间已过去一半多了,虽然前期的工作还比较顺利,但是在后期 的工作中还要继续努力, 不可放松, 因为还有更多的困难和更大的挑战在等着我。 虽然各子程序已经大部分编辑、调试完成,但是整个控制模块程序的调试仍是一 个很复杂的过程, 在这个期间, 我会戒骄戒躁, 以清醒的头脑去理顺复杂的程序, 以达到更好的效果。吴文军 2004 年 5 月 9 日- 29 - The Introduction of MSP430x13x and MSP430x14xThe Texas Instruments MSP430 series is an ultralow-power microcontroller family consisting of several devices featuring different sets of modules targeted to various applications. The microcontroller is designed to be battery operated for use in extended-time applications. The MSP430 achieves maximum code efficiency with its 16-bit RISC architecture, 16-bit CPU-integrated registers, and a constant generator. The digitally-controlled oscillator provides wake-up from low-power mode to active mode in less than 6μs. The MSP430x13x and the MSP430x14x series are microcontroller configurations with two built-in 16-bit timers, a fast 12-bit A/D converter, one or two universal serial synchronous/asynchronous communication interfaces (USART), and 48 I/O pins. Typical applications include sensor systems that capture analog signals, convert them to digital values, and process and transmit the data to a host system. The timers make the configurations ideal for industrial control applications such as ripple counters, digital motor control, EE-meters, hand-held meters, etc. The hardware multiplier enhances the performance and offers a broad code and hardware-compatible family solution. Processing unit The processing unit is based on a consistent and orthogonal CPU and instruction set. This design structure results in a RISC-like architecture, highly transparent to the application development and notable for its ease of programming. All operations other than program-flow instructions are consequently performed as register operations in conjunction with seven addressing modes for source and four modes for destination operand. CPU The CPU has sixteen registers that provide reduced instruction execution time. This reduces the register-to-register operation execution time to one cycle of the processor frequency. Four of the registers are reserved for special use as program counter, stack pointer, status register,- 30 - and constant generator. The remaining registers are available as general-purpose registers. Peripherals are connected to the CPU using a data address and control bus, and can be easily handled with all memory manipulation instructions. Operating modes and interrupts The MSP430 operating modes provide advanced support of the requirements for ultralow-power and ultralowenergy consumption. This goal is achieved by intelligent management during the different operating modes of modules and CPU states and is fully supported during interrupt event handling. An interrupt event awakes the system from each of the various operating modes and returns, using the RETI instruction, to the mode that was selected before the interrupt event occurred. The different requirements on CPU and modules―driven by system cost and current consumption objectives―require the use of different clock signals: ? Auxiliary clock ACLK, sourced by LFXT1CLK (crystal frequency) and used by the peripheral modules. ? Main system clock MCLK, used by the CPU and system. ? Subsystem clock SMCLK, used by the peripheral modules. Any of these clock sources―LFXT1CLK, XT2CLK, or DCOCLK―can be used to drive the MSP430 system. LFXT1CLK is defined by connecting a low-power, low-frequency crystal to the oscillator, by connecting a high-frequency crystal to the oscillator, or by applying an external clock source. The high-frequency crystal oscillator is used if control bit XTS is set. The crystal oscillator may be switched off if LFXT1CLK is not required for the current operating mode. XT2CLK is defined by connecting a high-frequency crystal to the oscillator or by applying an external clock source. Crystal oscillator XT2 may be switched off using the XT2Off control bit if not required by the current operating mode. When DCOCLK is active, its frequency is selected or adjusted by software. DCOCLK is inactive or stopped when it is not being used by the CPU or peripheral modules. The dc generator can be stopped when SCG0 is reset and DCOCLK is not required. The dc generator determines the basic DCO frequency, and can be set by one external resistor or- 31 - adjusted in eight steps by selection of integrated resistors. Low-power consumption capabilities The various operating modes are handled by software by controlling the operation of the internal clock system. This clock system provides a large combination of hardware and software capabilities to run the application while maintaining the lowest power consumption and optimizing system costs. This is accomplished by: ? Use of the internal clock (DCO) generator without any external components. ? Selection of an external crystal or ceramic resonator for lowest frequency and cost. ? Selection and activation of the proper clock signals (LFXT1CLK, XT2Off, and/or DCOCLK) and clock predivider function. Control bit XT2Off is embedded in control register BCSCTL1. ? Application of an external clock source. The control bits that most influence the operation of the clock system and support fast turn-on from low power operating modes are located in the status register SR. Four bits control the CPU and the system clock generator: SCG1, SCG0, OscOff, and CPUOff.CPUOff, SCG1, SCG0, and OscOff are the most important bits in low-power control when the basic function of the system clock generator is established. They are pushed to the stack whenever an interrupt is accepted and saved for returning to the operation before an interrupt request. They can be manipulated via indirect access to the data on the stack during execution of an interrupt handler so that program execution can resume in another power operating mode after return-from-interrupt. CPUOff: Clock signal MCLK, used with the CPU, is active when the CPUOff bit is reset or stopped when set. SCG1: Clock signal SMCLK, used with peripherals, is enabled when the SCG1 bit is reset or stopped when set. OscOff: Crystal oscillator LFXT1 is active when the OscOff bit is reset.- 32 - The LFXT1 oscillator can be inactive only when the OscOff bit is set and it is not used for MCLK. The setup time to start a crystal oscillation requires special consideration when the off option is used. Mask-programmable devices can disable this feature and the oscillator can never be switched off by software. SCG0: The dc generator is active when the SCG0 bit is reset. The DCO can be inactive only if the SCG0 bit is set and the DCOCLK signal is not used as MCLK or SMCLK. The dc current consumed by the dc generator defines the basic frequency of the DCOCLK. When the current is switched off (SCG0=1) the start of the DCOCLK is slightly delayed. This delay is in the microsecond range. DCOCLK: Clock signal DCOCLK is stopped if not used as MCLK or SMCLK. There are two situations when the SCG0 bit can not switch the DCOCLK signal off: The DCOCLK frequency is used as MCLK (CPUOff=0 and SELM.1=0), or the DCOCLK frequency is used as SMCLK (SCG1=0 and SELS=0). If DCOCLK is required for operation, the SCG0 bit can not switch the dc generator off. Oscillator and system clock Three clocks are used in the system―the main system (master) clock (MCLK) used by the CPU and the system, the subsystem (master) clock (SMCLK) used by the peripheral modules, and the auxiliary clock (ACLK) originated by LFXT1CLK (crystal frequency) and used by the peripheral modules. Following a POR the DCOCLK is used by default, the DCOR bit is reset, and the DCO is set to the nominal initial frequency. Additionally, if either LFXT1CLK (with XT1 mode selected by XTS=1) or XT2CLK fails as the source for MCLK, DCOCLK is automatically selected to ensure fail-safe operation. SMCLK can be generated from XT2CLK or DCOCLK. ACLK is always generated from LFXT1CLK. Crystal oscillator LFXT1 can be defined to operate with watch crystals (32,768 Hz) or with higher-frequency ceramic resonators or crystals. The crystal or ceramic resonator is connected across two terminals. No external components are required for watch-crystal- 33 - operation. If the high-frequency XT1 mode is selected, external capacitors from XIN to VSS and XOUT to VSS are required, as specified by the crystal manufacturer. The LFXT1 oscillator starts after application of VCC. If the OscOff bit is set to 1, the oscillator stops when it is not used for MCLK. Crystal oscillator XT2 is identical to oscillator LFXT1, but only operates with higher-frequency ceramic resonators or crystals. The XT2 oscillator is off after application of VCC, since the XT2 oscillator control bit XT2Off is set. The crystal or ceramic resonator is connected across two terminals. External capacitors from XT2IN to VSS and XT2OUT to VSS are required as specified by the crystal manufacturer. If bit XT2Off is set to 1, the XT2 oscillator stops when it is not used for MCLK or SMCLK. Clock signals ACLK, MCLK, and SMCLK may be used externally via port pins. Different application requirements and system conditions dictate different system-clock requirements, including: ? High frequency for quick reaction to system hardware requests or events. ? Low frequency to minimize current consumption, EMI, etc. ? Stable peripheral clock for timer applications, such as real-time clock (RTC). ? Start-stop operation that can be enabled with minimum delay. Interrupt vector addresses The interrupt vectors and the power-up starting address are located in the address range 0FFFFh C 0FFE0h. The vector contains the 16-bit address of the appropriate interrupt-handler instruction sequence. Flash memory ? Flash memory has n segments of main memory and two segments of information memory (A and B) of 128 bytes each. Each segment in main memory is 512 bytes in size. ? Segments 0 to n may be erased in one step or each segment may be individually erased. ? Segments A and B can be erased individually, or as a group with segments 0Cn. Segments A and B are also called information- 34 - memory. ? A security fuse bur no further access to JTAG is possible afterwards ? Internal generation of the programming/erase voltage: no external VPP has to be applied, but VCC increases the supply current requirements. ? Program and erase timing is controlled by hardware in the flash memory C no software intervention is needed. ? The control hardware is called the flash-timing generator. The input frequency of the flashCtiming generator should be in the proper range and should be maintained until the write/program or erase operation is completed. ? During program or erase, no code can be executed from flash memory and all interrupts must be disabled by setting the GIE, NMIIE, ACCVIE, and OFIE bits to zero. If a user program requires execution concurrent with a flash program or erase operation, the program must be executed from memory other than the flash memory (e.g., boot ROM, RAM). In the event a flash program or erase operation is initiated while the program counter is pointing to the flash memory, the CPU will execute JMP $ instructions until the flash program or erase operation is completed. Normal execution of the previously running software then resumes. ? Unprogrammed, new devices may have some bytes programmed in the information memory (needed for test during manufacturing). The user should perform an erase of the information memory prior to first use. Digital I/O There are six 8-bit I/O ports implemented―ports P1 through P6. Ports P1 and P2 use seven control registers, while ports P3, P4, P5, and P6 use only four of the control registers to provide maximum digital input/output flexibility to the application. ? All individual I/O bits are independently programmable. ? Any combination of input, output, and interrupt conditions is possible. ? Interrupt processing of external events is fully implemented for all- 35 - eight bits of ports P1 and P2. ? Read/write access to all registers using all instructions is possible. The seven control registers are: ? Input register 8 bits at ports P1 through P6 ? Output register 8 bits at ports P1 through P6 ? Direction register 8 bits at ports P1 through P6 ? Interrupt edge select 8 bits at ports P1 and P6 ? Interrupt flags 8 bits at ports P1 and P6 ? Interrupt enable 8 bits at ports P1 and P6 ? Selection (port or module) 8 bits at ports P1 through P6 Each one of these registers contains eight bits. Two interrupt vectors are implemented: one commonly used for any interrupt event on ports P1.0 to P1.7, and another commonly used for any interrupt event on ports P2.0 to P2.7. Ports P3, P4, P5, and P6 have no interrupt capability. Watchdog Timer The primary function of the Watchdog Timer (WDT) module is to perform a controlled system restart after a software upset has occurred. A system reset is generated if the selected time interval expires. If an application does not require this watchdog function, the module can work as an interval timer, which generates an interrupt after a selected time interval. The Watchdog Timer counter (WDTCNT) is a 15/16-bit up-counter not directly accessible by software. The WDTCNT is controlled using the Watchdog Timer control register (WDTCTL), which is an 8-bit read/write register. Writing to WDTCTL in either operating mode (watchdog or timer) is only possible when using the correct password (05Ah) in the high-byte. If any value other than 05Ah is written to the high-byte of the WDTCTL, a system reset PUC is generated. The password is read as 069h to minimize accidental write operations to the WDTCTL register. The low-byte stores data written to the WDTCTL. In addition to the Watchdog Timer control bits, there are two bits included in the WDTCTL that configure the NMI pin. USART0 AND USART1 There is a USART peripherals implemented in the MSP430x14x:- 36 - USART0 and USART1; but only one in the MSP430x13x configuration: USART0. The universal synchronous/asynchronous interface is a dedicated peripheral module used in serial communications. The USART supports synchronous SPI (3- or 4-pin), and asynchronous UART communication protocols, using double-buffered transmit and receive channels. Data streams of 7 or 8 bits in length can be transferred at a rate determined by the program, or by an external clock. Two dedicated interrupt vectors are assigned to each USART module―one for the receive and one for the transmit channels. Flash memory, control register FCTL1 All control bits are reset during PUC. PUC is active after application of VCC, application of a reset condition to the RST/NMI pin, expiration of the Watchdog Timer, occurrence of a watchdog access violation, or execution of an improper flash operation. Any write to control register FCTL1 during erase, mass erase, or write (programming) will end in an access violation with ACCVIFG=1. In an active segment-write mode the control register can be written if the wait mode is active (WAIT=1). The bits of control register FCTL1 are:EraseMEras0128h, bit1 Erase a segment 0: No segment erase will be started. 1: Erase of one segment is enabled. The segment to be erased is defined by a dummy write into any address within the segment. The erase bit is automatically reset when the erase operation is completed. 0128h, bit2 Mass erase, Segment0 to Segmentn are erased together 0: No erase will be started. 1: Erase of Segment0 to Segmentn is enabled A dummy write to any address in Segment0 to Segmentn starts mass erase. The MEras bit is automatically reset when the erase- 37 - operation is completed. WRT 0128h, bit6 Bit WRT should be set for a successful write operation, access violation occurs and ACCVIFG is set An if bit WRT is reset and write access to the flash memory is performed. SEGWRT 0128h, bit7 Bit SEGWRT may be used to reduce total programming time. Segment-write bit SEGWRT is useful when larger sequences of data have to be programmed. After completion of programming of one segment, a reset and set sequence has to be performed to enable access to the next segment. The WAIT bit must be high before executing the next write instruction. 0: No segment write accelerate is selected. 1: Segment write is used. This bit needs to be reset and set between segment borders. flash memory, timing generator, control register FCTL2 The timing generator produces all the timing signals necessary for write, erase, and mass erase from the selected clock source. One of three different clock sources may be selected by control bits SSEL0 and SSEL1 in control register FCTL2. The selected clock source should be divided to meet the frequency requirements specified in the recommended operating conditions. The flash-timing generator is reset with PUC. It is also reset if the emergency exit bit EMEX is set. Control register FCTL2 may not be written to if the BUSY otherwise, an access violation will occur(ACCVIFG=1). The control bits are:FN0 to FN5SSEL0,SSEL1012Ah, bit0 012Ah, bit5 These six bits determine the division rate of the clock signal.The division rate is 1 to 64, depending on the value of FN5 to FN0 plus one. 012Ah, bit0 Determine the clock source- 38 - 0: ACLK 1: MCLK 2: SMCLK 3: SMCLK1 flash memory control register FCTL3 There are no restrictions on modifying this control register. The control bits are reset or set (WAIT) by a PUC, but key violation bit KEYV is reset with a POR.BUSY012Ch, bit0 The BUSY bit shows if an access to the flash memory is correct (BUSY=0), or if an access violation has taken place. The BUSY bit should be tested before each write and erase cycle. 0: Flash memory is not busy. 1: Flash memory is busy. Flash It remains in busy state if segment-write function is in wait mode. KEYV 012Ch, bit1 Key violated 0: Key 0A5h (high byte) was not violated.1: Key 0A5h (high byte) was violated. Violation occurs when a write access to register. FCTL1, FCTL2, or FCTL3 is executed and the high byte is not equal to 0A5h. If these curity key is violated, bit KEYV is set and a PUC is performed. ACCVIFG 012Ch, bit2 Access-violation interrupt flag The access-violation interrupt flag is set only when a write or erase operation is active. Access violation can only happen if the flash-memory module is written or read while it is busy. An instruction can be fetched during write, erase, and mass erase, but not during segment write. When the access-violation interrupt-enable bit is set, the interrupt-service request is accepted and the program continues at the NMI interrupt-vector address. Reading the control registers will not set the ACCVIFG bit. WAIT 012Ch, bit3 In the segment-write mode, the WAIT bit indicates that the flash memory is prepared to receive the (next) data for programming .The WAIT bit is read only, but a write to WAIT bit is allowed. 0: Segment-write operation is started and programming is in- 39 - progress. 1: Segment write operation is active and programming of data has been completed. Lock 012Ch, bit4 The lock bit may be set during any write, erase of a segment, or mass erase request.The active sequence is completed normally. In segment-write mode, the SEGWRT and WAIT bits are reset and the mode ends in the regular manner. The software or hardware controls the lock bit. If an access violation occurs during segment-write mode, the ACCVIFG and LOCK bits may be set. 0: Flash memory may be read, programmed, erased, and mass erased. 1: Flash memory may be read but not programmed, erased, and mass-erased. A current program, erase, or mass-erase operation will complete normally. The access-violation interrupt flag ACCVIFG is set when the flash-memory module is accessed while the lock bit is set. EMEX Emergency exit,The emergency exit should only be used if a flash memory write or erase operation is out of control. 0: No function.1: Stops the active operation immediately and shuts down all internal parts in the flash memory controller. Current consumption immediately drops back to the active mode level. All bits in control register FCTL1 are reset. Since the EMEX bit is automatically reset by hardware, the software always reads EMEX as 0.- 40 - MSP430x13x、MSP430x14x单片机简介TI公司的MSP430系列是一种超低功耗的单片机,它们针对不同的应用而由 不同的模块组成。 这些微控制器被设计为可用电池工作,而且可以有很长使用 时间的应用。MSP430系列具有16位RISC结构,CPU中的16个寄存器和常数发生 器使它们可以达到最高的代码效率。数字控制的振荡器(DCO)可使器件在少于 6μ s的时间内从低功耗模式迅速激活到活跃的工作方式。MSP430x13x和 MSP430x14x系列含有两个内置的16位定时器,一个12位高速A/D 转换器,一个 或两个同步/异步串行通信接口(USART)和48个输入/输出管脚。典型的应用包 括捕获传感器系统的模拟信号,将它们转换成有用的数字信号,进行简单处理并 把数据送到主系统中。定时器的设计完全满足工业控制的需要,例如:波纹计数 器,数控机床,手持标尺器等。硬件乘法器的使用大大提高了系统的性能并增加 了代码段和硬件兼容性。 处理单元 处理单元以正交设计的CPU和指令设置为基础的。 CPU的这种RISC结构是本 着高透明和精简指令集的宗旨来设计的。 所有操作的程序流程都可以归结为寄存 器的七种源操作数寻址和四种目的操作数寻址。 处理器 CPU含有十六个寄存器,这大大减少了指令的执行时间。这让寄存器到寄存 器操作的执行时间减少到一个机器周期。 四个特殊寄存器分别用于: 程序计数器, 堆栈指针,状态寄存器和常数发生器,其余的寄存器是通用寄存器.外围设备通 过数据线和控制总线与CPU连接到一起, 并能像对所有存储器一样通过指令对其 进行处理。 工作模式和中断 MSP430系列单片机的工作模式支持低电压和超低功耗。在不同的工作模式 下,这个目标是通过对单片机各组件和CPU的智能管理来实现的。任何一个中断 事件可以将系统从各种低功耗模式中唤醒, 而RETI指令又可使系统回到中断前的 状态。控制其时钟系统能方便的使其构成低功耗应用系统,使用不同的时钟可以 实现不同的低功耗模式:- 41 - ?辅助时钟ACLK,由LFXT1CLK(晶振频率)分频而得,可作为外围模块的 时钟信号。?系统主时钟MCLK,用于CPU和系统。子系统时钟 SMCLK,主要用于各 外围模块。?外部的时钟源的使用。LFXT1CLK , XT2CLK 或 DCOCLK 中 任 何 一 个 时 钟 源 都 能 用 来 驱 动 MSP430 系统。LFXT1CLK 是由低频、低功耗时钟晶体产生的低频时钟源,或 由高频晶体谐振器产生的高频时钟源以及外接时钟源。 .如果控制位 XTS 被置位, 则高频晶体谐振器工作。如果当前工作模式不需要 LFXT1CLK,晶体振荡器可 能被停止工作。 XT2CLK由晶体振荡器或者外接的时钟信号产生。如果当前工作模式下 XT2Off控制位不被置位,则晶体振荡器XT2将被关闭。当DCOCLK工作的时候, 它的频率由软件选定或调整。当它不被CPU或外围设备使用的时候, DCOCLK是 不工作的。 当SCG0被复位的时候,直流发生器被停止, 而且DCOCLK 也不需要。 DCO基础频率由内部直流发生器决定,并能通过选择外部电阻或选择八个中某个 片内电阻的方法设定和调整。 低功耗能力 各种不同的运行模式由软件控制内部时钟系统来选择。 这种运用硬件和软件 功能组合的时钟系统能够优化系统并保证系统的低功耗能力。 这是通过以下几方 面实现的: ? ? ? 使用没有任何的外部成份的内置时钟(DCO)发生器。 选择外部晶体或陶瓷振荡器作为低频发生器。 根据不同的动作选择适当的时钟信号 (LFXT1CLK,XT2Off及DCOCLK)。 在BCSCTL1控制寄存器中加入XT2Off控制位。 ? 外部的时钟源应用。 状态寄存器SR的控制位主要影响时钟系统和CPU的状态。 四个控制CPU和系 统时钟发生器的控制位是:SCG1,SCG0,OscOff和CPUOff。- 42 - 当系统时钟发生器的基本功能确定时,CPUOff,SCG1,SCG0和OscOff是实 现低功耗的最重要控制位。它们在系统处理任何一个中断之前被压栈保护,以 保证系统能够回到处理中断之前的状态。它们能被中断程序通过修改其在堆栈 中的数据而间接更改,因此在中断返回之后可以在新的能耗模态下运行。 CPUOff:当CPUOff位被复位时,CPU使用的时钟信号是MCLK信号。 SCG1: 当SCG1位被复位时,外围设备使用的时钟信号是SMCLK信号。 OscOff: 当OscOff位被复位时, 晶振LFXT1工作。 只有当OscOff位置位时, LFXT1 晶振不工作而且也没有产生MCLK。当关闭选项被选中时,晶振起振时间 需要特别的注意。 SCG0: 当SCG0位被复位的时候, 直流发生器工作。 只有当SCG0位被置位时DCO 才停止工作而且DCOCLK信号不再作为MCLK和SMCLK使用。此时的直 流发生器能耗是以DCOCLK为基础频率计算的。在SCG0位被复位时 (SCG0=1),DCOCLK启动时将有稍微地延迟。这种延迟是微秒级的。 DCOCLK: 如果时钟信号DCOCLK不作用MCLK或SMCLK,该信号将被停止。 有两种情况SCG0控制位关闭DCOCLK信号:DCOCLK频率被用作 MCLK(CPUOff=0和SELM.1=0)信号或者SMCLK (SCG1=0 和 SELS=0)信号。如 果DCOCLK是操作所必需的,则不能通过SCG0位关闭直流发生器.晶振和系统时钟 系统中使用了三个时钟――主系统时钟(MCLK) 用于CPU和系 统, 子系统时钟(SMCLK)用于外围模块以及辅助时钟(ACLK)用于产 生LFXT1CLK (水晶频率)和用于外围模块。 在POR中,默认使用DCOCLK,DCOR位被复位,DCO是初始频 率。另外,如果LFXT1CLK (若已选择XT1方式,XTS=1) 或XT2CLK 作为MCLK故障,则自动选择DCOCLK以保证系统的正常工作。 SMCLK可由XT2CLK或DCOCLK产生。ACLK始终由LFXT1CLK产 生。 LFXT1由标准高频晶体(32,768 Hz)或高频陶瓷谐振器产生。晶体 或陶瓷谐振器是通过两个管脚连接。它们不需要任何外设使晶振工 作。如果选择高频的XT1方式,则从XIN到VSS和XOUT到VSS需要外 接电容,晶振厂商也有相同的规定。VCC工作(上电)之后LFXT1 振动器开始工作。如果OscOff位被置于1,则当它不用做MCLK时振 动器停止工作。- 43 - 晶振XT2和振动器LFXT1一样, 但是只能由陶瓷谐振器或标准晶 体产生。晶体或陶瓷谐振器是通过两个管脚连接。晶振厂商也规定从 XIN到VSS和XOUT到VSS需要外接电容。如果晶振控制位XT2Off置 位,则在VCC撤销之后XT2振动器停止工作。如果XT2Off位置于1, 则当XT2不再作为MCLK或SMCLK使用时,振动器停止工作。 时钟信号ACLK,MCLK和SMCLK可以通过管脚被外部设备使 用。不同的应用和不同的系统条件要求使用不同的系统时钟,包括: ? 高频用于提高系统硬件的运行速度以及对事件处理的快速性。 ? 低频用于降低系统功耗,EMI等等。 ? 恒定的外部时钟用于计数器,例如实时时钟(RTC)。?降低启停操作最小时延。中断矢量地址 中断向量的地址位于地址范围 0FFFFhC0FFE0h, 该向量包括中断处理程序 入口的16位地址。 Flash存储器 ? FLASH存储器由n段主存储器和2段各为128字节的信息存储器组成。每段主 存储器每段为 512字节。 ? ? 第0到第n段存储器可在整段擦除,也可以每段单独擦出。 A和B能被单独擦除也可以与第0到第n段存储器一起擦除。存储器A和B也被 称为信息存储器。 ? ? 直接烧制之后是不可能复原的;但是通过JTAG接口后是可能的。 编程/擦除电压的产生:不使用系统外部的VPP,而是通过增加VCC当前的电 压来实现。 ? 存储器的编程和擦除时间是由flash存储器内部的硬件来完成,并不需要通过 软件来完成。控制存储器的编程和擦除时间的硬件叫做时序发生器。时序发 生器的输入频率应该保证有一定的精度, 并且应该保持到编程/擦除操作完成 之后。 ? 在存储器编程或擦除的过程中,不能有任何对flash存储器的操作,而且所有 的中断一定要被屏蔽,即将GIE,NMIIE,ACCVIE和OFIE位清零。如果一 个用户程序与flash存储器编程或擦除操作同时运行时,这个程序只有通过除 flash存储器之外的存储器运行(例如,ROM,随机存取存储器)。当flash存储- 44 - 器编程或擦除操作开始时,PC指向flash存储器,CPU将运行JMP $指令直到 flash存储器编程或擦除操作结束。此时,各程序回到保存之前的状态运行。 在未编程新器件的信息存储器中可能有一些字节已编程 (为满足制造过程中 的测试需要)。使用者最好在第一次使用之前先对信息存储器进行擦除。 数字输入/输出端口 该单片机中有6个8位I/O口―从P1到P6。 P1和P2口有七个寄存器用于引脚控 制,而端口P3,P4,P5和P6每个端口只有四个寄存器供用户使用。 ? ? ? ? 所有的I/O都可独立编程。 可有各种输入、输出以及不同中断条件的组合。 P1和P2口的8条引脚都可实现外部事件的中断。 可以通过指令实现口与寄存器之间的读、写操作。七个控制寄存器是: ? ? ? ? ? ? ? 输入寄存器 8位 从P1到P6 输出寄存器 8位 从P1到P6 方向选择寄存器 8位 从P1到P6 中断触发沿选择寄存器 8位 从P1到P6 中断标志寄存器 8位 从P1到P6 中断使能寄存器 8位 从P1到P6 功能选择(I/O口或外围模块功能)寄存器 8位 从P1到P6这些寄存器均为八位寄存器。使用了二个中断矢量:一个用于P1.0 到P1.7口 上的任何中断事件,另一个用于P2.0到P2.7任何中断事件。P3,P4,P5 和P6口 没有中断能力. 看门狗定时器 看门狗定时器 (WDT)的主要功能是在软件发生故障时使系统重新启动。如 果WDT超过WDT所定时的时间, 即发生系统复位。 如果系统不需要看门狗功能, 也可将它当定时器使用,当到达WDT所定时的时间时能产生中断。 看门狗定时器的计数器(WDTCNT)是一个15/16位增计数器,它不能直接用 软件访问,需要经看门狗定时器控制寄存器WDTCTL对WDTCNT进行访问, WDTCTL是一个8位可读/写寄存器。 要写入WDTCTL时, 必须写入正确的口令才- 45 - 能实现写操作,高字节为口令,口令为05Ah。如果除了05Ah之外的任何口令被 写到WDTCTL的高字节中,则将导致系统复位。为了减少对WDTCTL寄存器读 的错误操作,WDTCTL的高字节始终为069h,低位字节储存的为WDTCTL的值。 除了看门狗定时器控制位之外, WDTCTL中还有两个位是用来控制NMI引脚功能 的。 USART0 和 USART1 在MSP430x14x中有两个USART模块: USART0 和 USART1;但是在 MSP430x13x中却只有一个USART模块: USART0。 通用串行同步/异步通信接口 是广泛用于通信的一个外围设备。USART模块可以实现两种通信协议:UART 异步通信协议和SPI同步通信协议。长度为7位或8位的数据流能按有程序或外部 时钟设定的波特率来传送。UASRT模块是用两个独立的中断向量――一个用于 接收中断事件,一个用于发送中}

我要回帖

更多关于 批注变成蓝色 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信