复制成功
  • 图案背景
  • 纯色背景
  •   |  注册
  • /
  • 不知道取什..

    上传于:2013-02-09

    粉丝量:29

    该威廉希尔app下载贡献者很忙,什么也没留下。

    

    MSP430系列16位超低功耗单片机原理与实践

    下载积分:200

    内容提示: 本文由 455371934 贡献 ppt 威廉希尔app下载可能在 WAP 端浏览体验不佳。建议您优先选择 TXT或下载源文件到本机查看。 MSP430 系列 16 位超低功 耗单片机原理与实践 参考资料 ?谢兴红等。MSP430 单片机基础与实践。北京航空航天大学出版社2008 ?曹 磊 。 MSP430 单 片 机 C 程 序 设 计 与 实 践 。 北 京 航 空 航 天 大 学 出 版 社 2007 ?www.ti.com.cn ?www.lierda.com ?www.microcontrol.cn/bbs/Boards.asp ?www.mcu430.cn 概述 MSP430 单片机结构 MSP430 指令系统与程序设计 MSP430 单片机的片上外设 MSP430 单片机接口应用...

    威廉希尔app下载格式:PDF| 浏览次数:40| 上传日期:2013-02-09 22:00:01| 威廉希尔app下载星级:
    本文由 455371934 贡献 ppt 威廉希尔app下载可能在 WAP 端浏览体验不佳。建议您优先选择 TXT或下载源文件到本机查看。 MSP430 系列 16 位超低功 耗单片机原理与实践 参考资料 ?谢兴红等。MSP430 单片机基础与实践。北京航空航天大学出版社2008 ?曹 磊 。 MSP430 单 片 机 C 程 序 设 计 与 实 践 。 北 京 航 空 航 天 大 学 出 版 社 2007 ?www.ti.com.cn ?www.lierda.com ?www.microcontrol.cn/bbs/Boards.asp ?www.mcu430.cn 概述 MSP430 单片机结构 MSP430 指令系统与程序设计 MSP430 单片机的片上外设 MSP430 单片机接口应用 概述 单片微型计算机 单片机的概念 单片机的特点 单片机的应用 MSP430 系列单片机 MSP430 系列单片机的特点 MSP430 系列单片机命名规则 MSP430 系列单片机选型 单片微型计算机单片机的概念 微处理器的发展一方面是朝着面向数据运算、 信息处理等功能的系统机方向发展。 系统机 以速度快、功能强、存储量大、软件丰富、 输入/输出设备齐全为主要特点采用高级语 言编程适用于数据运算、文字信息处理、 人工智能、网络通信等场合。 另一方面在一些应用领域中如智能化仪 器仪表、电讯设备、自动控制设备、汽车乃 至家用电器等要求的运算、控制功能相对 并不很复杂但对体积、成本、功耗等的要 单片机的特点 小巧灵活、成本低、易于产品化它能方便 地组装成各种智能式控制设备以及各种智能 仪器仪表。 面向控制能针对性地解决从简单到复杂的 各类控制任务因而能获得最佳性能价格比。 抗干扰能力强适应温度范围宽在各种恶 劣环境下都能可靠地工作这是其他机型无 法比拟的。 单片机的应用 MSP430 系列单片机 特点 特点 超低功耗 强大的处理能力 高性能模拟技术及丰富的片上设 系统工作稳定 方便高效的开发环境 MSP430 系列单片机命名 规则 MSP430 F 14 9 A I PM MSP430 单片机结构 MSP430 单片机结构概述 MSP430 系列产品 无 LCD 驱动系列产品 有 LCD 驱动系列产品 MSP430 CPU结构和特点 MSP430存储器和地址空间 程序存储器 数据存储器 外围模块寄存器 MSP430 单片机结构 MSP430 单片机结构 16位 CPU 通过总线连接到存储器和外围模块 MSP430 结构 (冯· 诺伊曼结构)。 通过 JTAG接口进行实时嵌入式仿真处理。 多种低功耗工作模式。 8/16 位数据宽度数据处理更为有效。 硬件乘法器。 丰富的片上外设。 MSP430 系列单片机主要功能部件 CPUMSP430 系列单片机的 CPU 和通用微处理器基 本相同只是在设计上采用了面向控制的结构和指 令系统。 MSP430 的内核 CPU 结构是按照精简指令集 (RISC)和高透明的宗旨而设计的使用的指令有硬 件执行的内核指令和基于现有硬件结构的仿真指令。 这样可以提高指令执行速度和效率增强了 MSP430 的实时处理能力。 存储器存储程序、数据以及外 围模块的运行控制 存储器 信息。 有程序存储器和数据存储器。 对程序存储器 访问总是以字形式取得代码 而对数据可以用字或 字节方式访问。 其中 MSP430 各系列单片机的程序存 储器有 ROM、OTP、EPROM 和 FLASH 型。 MSP430 Roadmap MSP430X11X 系列 MSP430X12X 系列 MSP430X13X 系列 MSP430X14X 系列 MSP430F15X/F16(1)X 系列 MSP430F15X/F16(1)X 系列 MSP430X41X 系列 MSP430F43X 系列 MSP430F44X 系列 MSP430 CPU 的主要特征 精简指令集高度正交化 寄存器资源丰富 寄存器操作为单周期 16 位地址总线 常数发生器 直接的存储器到存储器访问 MSP430 CPU 内部寄存器—PC/R0 MSP430 CPU 内部寄存器—SP/R1 MSP430 CPU 内部寄存器—SR/R2 MSP430 CPU 内部寄存器—CG1/R2 and CG2/R3 在 16 个寄存器中 R2 与 R3 为常数发生器 利用 CPU 的 27 条内核指令配合常数发生器可以生 成一些简洁高效的模拟指令。 MSP430 存储器结构和地址空间 01000H 0FFFH 0C00H 09FFH BSL 存储单元字节地址 MSP430 存储器结构和地址空间 MSP430 中断向量表 MSP430 单片机的中断系统 中断类型 系统复位 POR Power On Reset上电复位 由 Brownout 复位电路产生 由 RST/NMI 引脚产生 PUC Power Up Clear上电清除 由 POR 信号产生 看门狗溢出 看门狗安全键值出错 FLASH 安全键出错 非可屏蔽中断——不能使用全局中断使位 GIE屏蔽 MSP430 单片机的中断系统 GIE、CPUOFF、 中断响应过程 中断请求 将当前指令执行完 PUSH PC PUSH SR 如果有多个中断 发生选择最高 优先级的中断 如果是单源中断 则清除中断标志 否则中断标志保 持置位状态 OSCOFF、 SCG1、C、 N、 V、 Z 清零 SCG0 不变 中断向量地址中 的内容装入 PC 开始执行中断服 务程序 POP SR POP PC 返回程序流程 MSP430F149 Flash ROM 512B 512B 256B 128B 128B MSP430 8 位外围模块寄存器 MSP430 16 位外围模块寄存器 MSP430 特殊功能寄存器SFR MSP430 特殊功能寄存器SFR MSP430 特殊功能寄存器SFR MSP430 硬件乘法器 MSP430 指令系统与程序设计 指令系统概述 寻址方式 指令系统介绍 数据传送类指令 数据运算类指令 逻辑操作指令 位操作指令 跳转与程序流程的控制类指令 程序设计 MSP430 单片机软件开发流程 MSP430 开发系统 MSP430 电路板 带 JTAG 或 BSL 端口 仿真器 并口/USB 口 或 BSL 编程器 IAR Embedded Workbench for MSP 430简称 EW430 指令系统概述 MSP430 系列单片机非完全意义的 RISC 处 理器 采用指令正交技术 只有27条内核指令以及24条仿真指令 指令长度不固定 源操作数有7种寻址方式 目的操作数有 4 种寻址方式 指令周期数有变化 RISC 和 CISC CISC Complex Instruction Set Computer), 寻址方式 7 种寻址方式 指令集 指令集 指令集 MSP430 开发流程 硬件准备 编写源代码 仿真调试 修改程序 软件不满意 修改硬件 硬件不满意 满意 满意 结束 程序设计 MSP430 开发调试过程 1、建立工程项目 2、编写源代码 3、将源代码添加到项目文件 4、选择器件 5、选择仿真方式 6、编译下载代码到芯片 7、仿真调试 C 语言程序设计 1数据类型 C 语言程序设计 2结构化程序设 三种程序结构顺序、分支、 三种程序结构顺序、分支、循环 计 主要语句类型 主要语句类型 条件语句 开关语句 循环语句 C 语言程序设计 2结构化程序设 条件语句 计 语句表达形式有 3 种(a、b、 c) a if(条件表达式) 语句 b if(条件表达式) 语句 1 else 语句 2 c if(条件表达式) 语句 1 else if(条件表达式) C 语言程序设计 2结构化程序设 开关语句 计 switch(表达式) { case 常量表达式 1:语句 1 break; case 常量表达式 2:语句 2 break; case 常量表达式 3:语句 3 break; „„ default: 语句 d C 语言程序设计 2结构化程序设 循环语句 计 while(条件表达式) 语句 当条件满足时就反复执行后面的语句 一直执行到条件不满足时。以软件延时程 序为例说明该语句是如何执行的。 void delay(long n) { while(n!=0)n--; } C 语言程序设计 2结构化程序设 循环语句 计 do 语句 while条件表达式 先执行一次循环体的语句再判断条件是 否满足以决定是否再执行循环体。 下面 的程序将数组 BUFF[20]中的全部数据相加。 int x=0; char i=0; do{ x =BUFF[i] + x; i=i+1; C 语言程序设计 2结构化程序设 循环语句 计 for([初值设定表达式][循环条件表达 式][条件更新表达式])语句 for 语句常用于需固定循环次数的循环。 下面的程序段同样实现将数组 BUFF[20]中 的全部数据相加的功能。 int x=0; char i=0; for(i=0;i<20;i++) x =BUFF[i] + x; C 语言程序设计 2结构化程序设 goto 语句 goto 语句 计 goto 语句常用于跳转到一个固定的地址标 号。其中固定的地址标号是一个带“ ” 的标志符。比如 „„ MM„„ „„ goto MM „„ C 语言程序设计 2结构化程序设 返回语句 计 return(表达式  该语句主要用于函数的返回参数。 “表达 式”为返回值。 函数类型 函数名形式参数表 形式参数说明 { 局部变量定义 函数体语句 } [存储变量类型] interrupt [中断矢量变量] 函数类型 函数名 形式参数表 形式参数说明 { 局部变量定义 函数体语句 } C 语言程序设计 (3)函数的定义 与调用 C 语言程序设计 (3)函数的定义与调 用 MSP430 开发环境IAR Embedded Workbench for MSP430 Company Information Company Name Address Country Email Phone URL IAR Systems IAR Systems AB SE-750 23 Uppsala Strandbodgatan Sweden info@iar.se +1 46 18 167800 http ://www.iar.com/locations Company Overview IAR Systems is the world's leading provider of software tools for embedded systems that enable large and small companies to develop premium products based on 8-, 16-, and 32-bit microcontrollers. IAR Embedded Workbench? IAR Embedded Workbench? - Build and debug your application IAR Embedded Workbench is a set of development tools for building and debugging embedded applications using assembler, C and C++. It provides a completely integrated development environment including a project manager, editor, build tools and debugger. IAR Embedded Workbench for MSP430 provides extensive support for all MSP430 devices, hardware debug systems and RTOSs, and EW for MSP430 EW for MSP430 EW for MSP430 EW for MSP430 EW for MSP430 EW for MSP430 EW for MSP430 EW for MSP430 EW for MSP430 EW for MSP430 EW for MSP430 MSP430 单片机片上外设 时钟模块 低功耗结构 MSP430 各种端口 定时器 FLASH 存储器模块 比较器 A MSP430 系列通用串行通信模块 MSP430 的 A/D 转换模块 MSP430 单片机应用 MSP430 常用接口设计 键盘接口 LED 显示接口 液晶显示接口 时钟模块 慢速外 设 时钟输入源 时钟输入源 LFXT1CLK 低频时钟源 XT2CLK 高频时钟源 DCOCLK 数字控制 RC 振荡器 数字控制 RC 振荡器 CPU 和 系统 快速外 设 时钟输出信号: 时钟输出信号: ACLK 辅助时钟 MCLK 主系统时钟 MCLK 主系统时钟 SMCLK 子系统时钟 SMCLK 子系统时钟 振荡器控制逻辑 LFXT1 振荡器控制 逻辑 XT2 振荡器控 XT2 振荡器控 制逻辑 DCO 振荡器 DCO 振荡器 控制逻辑 DCO 频率的调节 基础时钟模块工作方式和相关寄 存器设置 例 1 设 MCLK = XT2, SMCLK = DCOCLK将 MCLK 由 P5.4 输出。 MSP430X14X 中引脚 P5.4和 MCLK 复用 。 实现上述功能的程序如下 #include <msp430x14x.h> void main(void) { unsigned int i; WDTCTL = WDTPW + WDTHOLD; // 停止看门狗 P5DIR |= 0x10; // P5.4 输出 P5SEL |= 0x10; // P5.4 用作 MCLK 输出 BCSCTL1 &= ~XT2OFF; // XT2 有效 do { IFG1 &= ~OFIFG; //清除振荡器失效标志 for (i = 0xFF; i > 0; i--); // 稳定时间 根据实际连接情况确定 ACLK、 SMCLK 和 MCLK 时钟源。 ACLK: LFTX1 (32768) MCLK: DCOCLK 或者 DCOCLK 或者 LFTX1 或者 LFTX1 SMCLK: DCOCLK或者 DCOCLK 或者 LFTX1 或者 LFTX1 ACLK: 0 MCLK: DCOCLK SMCLK: DCOCLK ACLK: LFTX1 (高频模式) (高频模式 高频模式) MCLK: DCOCLK 或者 DCOCLK 或者LFTX1(高频模式) 或者 LFTX1(高频模式 高频模式) SMCLK: DCOCLK 或者 DCOCLK 或者LFTX1(高频模式) 或者 LFTX1(高频模式 高频模式) ACLK 只能来源于 LFXT1。 ACLK 只能来源于 LFXT1。 只能来源于 LFXT1 MSP430X11X1 内部只有 LFXT1 和 DCO 没有 XT2 内部只有 LFXT1 XT2。 MSP430X11X1 内部只有 LFXT1 和 DCO没有 XT2。 LFXT1 只有工作于高频模式才需要外接电容 LFXT1 只有工作于高频模式才需要外接电容。 只有工作于高频模式才需要外接电容。 低功耗 使用内部时钟发生器DCO无需外接任何 元件 选择外接晶体或陶瓷谐振器可以获得最低 频率和功耗 采用外部时钟信号源 瞬间响应特性 MSP430 工作模式/状态 MSP430 工作模式 为了充分利用 CPU 低功耗性能 可以让 CPU 工作于突发状态 为了充分利用 CPU 低功耗性能可以让 CPU 工作于突发状态。 工作于突发状态。 低功耗性能 在通常情况下根据需要使用软件将 CPU 设定到某一种低功耗工作模式下 设定到某一种低功耗工作模式下 在通常情况下根据需要使用软件将 CPU 设定到某一种低功耗工作模式下 在需要时使用中断将CPU 从休眠状态中唤醒 从休眠状态中唤醒 在需要时使用中断将 CPU 从休眠状态中唤醒完成工作之后又可以进入相应的休眠状态。 系统响应中断的过程 硬件自动中断服务 PC 入栈 入栈 SR 入栈 入栈 中断向量赋给 PC 中断向量赋给 PC GIE、CPUOFF、OSCOFF和 SCG1 清除 GIE、CPUOFF、OSCOFF 和 SCG1 清除 IFG 标志位清除单源中断标志 标志位清除 标志位清除 单源中断标志 执行中断处理子程序 SR 出栈恢复原来的标志 SR 出栈恢复原来的标志 出栈 PC出栈 PC 出栈 执行 RETI 指令中断返回 低功耗 0 转变为低功耗 3 例系统初始化完毕之后工作于低功耗模式 0中断事件触 发到活动模式中断处理结束后进入到低功耗模式 3。 主程序 „..初始化操作开始 „„ „„初始化完毕 BIS #GIE+CPUOFFSR ; 主程序中设置低功耗模式 0 ;„„„; 程序在这里停止 ; 中断子程序 „„中断处理开始 „„ „„;中断处理结束 BIS #GIE+CPUOFF+SCG1+SCG00SP 设置 SR 为 低功耗模式 3 RETI中断返回 系统进入低功耗模式 3。 „„ 低功耗原则 一般的低功耗原则 最大化 LPM3 的时间 用 32KHz 晶振作为 的时间 晶振作为 ACLK 时钟 DCO 用于 时钟 用于 CPU 激活后的突发短暂运行 最大化 的时间 晶振作为 时钟 用于 激活后的突发短暂运行 用接口模块代替软件驱动功能。 用接口模块代替软件驱动功能。 用中断控制程序运行 用可计算的分支代替标志位测试产生的分支 用快速查表代替冗长的软件计算 在冗长的软件计算中使用单周期的 CPU 寄存器 在冗长的软件计算中使用单周期的 寄存器 避免频繁的子程序和函数调用 尽可能直接用电池供电 将不用的 FETI 输入端连接到 输入端连接到 VSS 将不用的 输入端连接到 JTAG 端口 端口 TMS、 TCK 和 TDI 不要连接到 不要连接到 VSS 端口 、 和 不要连接到 CMOS 输入端不能有浮空节点 将所有输入端接适当的电平 输入端不能有浮空节点 输入端不能有浮空节点 不论对于内核还是对于各外围模块 选择尽可能低的运行频率 不论对于内核还是对于各外围模块选择尽可能低的运行频率如果不影响功能应设计自 动关机 设计外设时的常规原则 超低功耗嵌入式实时时钟 MSP430 外接 MSP430 外接 32768Hz 晶体 32768Hz 晶体 MSP430 CPU 工作 于突发状态 运行期间电流消耗 250uA 在 1S 时间段内程序运行 时间仅为 100us LPM3 电流 为 0.80uA 平均电流LPM3 电流 电流+ 平均电流LPM3 电流+工作期间电流 0.80uA+250uA× 0.80uA+250uA×100us/1000000us =0.80 uA +0.030uA =0.83uA MSP430 的端口 类型丰富 P1P2 P3P4P5P6 S 和 COM (MSP430X4XX) I/O 功能丰富 中断能力 其他片内外设功能 驱动液晶 寄存器丰富 P1 与 P2 各有 7 个寄存器 P3、P4、P5、P6 有四个寄存器 端口数据输出特性 低电平输出特性 高电平输出特性 定时器 看门狗定时器 定时器 A 定时器 B 看门狗定时器 16 位增计 数器 写5AH 读69H 启、停控 制 看门狗定时器应用举例 #include <msp430x14x.h> void main(void) { WDTCTL = WDT_MDLY_32;// 定时周期为32ms IE1 |= WDTIE; // 使能 WDT 中断 P1DIR |= 0x01; // P1.0 输出 _EINT(); // 系统中断允许 for (;;) { _BIS_SR(CPUOFF); // 进入 LPM0 _NOP(); } } // 看门狗中断服务子程序 #pragma vector= WDT_VECTOR __interrupt void watchdog_timer (void) { P1OUT ^= 0x01; // P1.0 取反 } 定时器 Timer_A 特性 16 位的定时/计数器4 种操作模式 时钟源可选 3 个捕获/比较寄存器 支持多捕捉/比较、PWM 输出、内部定时 异步输入/输出锁存 中断向量寄存器提供快速 Timer_A 中断译码功 能 定时器 Timer_A 结构 定时器 A 功能模块 计数器部分输入的时钟源具有 4 种选择所 计数器部分 选定的时钟源又可以 1、2、4 或 8 分频作为计 数频率Timer_A 可以通过选择 4 种工作模式 灵活的完成定时/计数功能 捕获/比较器 比较器 用于捕获事件发生的时间或产 捕获 比较器 生时间间隔 捕获比较功能的引入主要是为 了提高I/O 端口处理事务的能力和速度。 不同 的MSP430单片机 Timer_A模块中所含有的 捕获/比较器的数量不一样每个捕获/比较器 的结构完全相同输入和输出都决定于各自 定时器 A 中断 CCR0 中断 CCR1CCRx 和定时器中断 定时器工作模式 停止模式 停止模式用于定时器暂停 并不发生复位 所有寄存器现行的内容在停止模式结束后都 可用。 当定时器暂停后重新计数时 计数器 将从暂停时的值开始以暂停前的计数方向计 数。例如停止模式前Timer_A 工作于增/ 减计数模式并且处于下降计数方向停止模 式后Timer_仍然工作于增/减计数模式 从 暂停前的状态开始继续沿着下降方向开始计 数。 如果不能这样则可通过 TACTL 中的 CLR 控制位来清除定时器的方向记忆特性。 增计数模式 捕获/比较寄存器 CCR0 用作 Timer_A 增计 数模式的周期寄存器因为 CCR0 为 16 位 增计数模式的 寄存器所以该模式适用于定时周期小 计数过程 于 65 536 的连续计数情况。计数器TAR 可以增计数到CCR0的值 当计数值与 CCR0的值相等(或定时器值大于CCR0的 增计数模式 值)时定时器复位并从 0 开始重新计数。 的中断标志 位设置 连续计数模式 在需要 65 536 个时钟周期的定时应用场 合常用连续计数模式。 定时器从当前值 计数到0FFFFH 后又从 0 开始重新计数 计数器的 计数过程 标志位 设置 连续计数模式的典型应用 产生多个独立的时序信号 利用捕获比较寄存器捕获各种 产生多个独立的时序信号 其他外部事件发生的定时器数据 产生多个定时信号 产生多个定时信号通过中断处理程序在相应的比较寄存器CCRx上加上 一个时间差来实现。 这个时间差是当前时刻 既相应的CCRx中的值 一个时间差来实现。这个时间差是当前时刻 中的值 到下一次中断发生时刻所经历的时间 增/减计数模式 需要对称波形的情况经常可以使用增/减 计数模式 该模式下 定时器先增计数 计数器的 计数过程 到 CCR0 的值然后反向减计数到 0。计 数周期仍由 CCR0 定义它是 CCR0 计数 器数值的 2 倍。 标志位 设置 增/减计数模式 增/减计数模式与比较输出模式结合可产生带 减计数模式与比较输出模式结合可产生带 死区的 PWM 死区的 捕获/比较模块 捕获模式 当 CCTLx 中的 CAPx=1该模块工作在捕 获模式。这时如果在选定的引脚上发生 设定的脉冲触发沿上升沿、下降沿或 任意跳变 则 TAR 中的值将写入到 CCRx 中。 测量软件程序所用时间 测量硬件事件之间的时间 每个捕获\比较寄存器能被软件用于时间 测量系统频率 标记。可用于各种目的 当捕获完成后中断标志位 CCIFGx 被置 位。 输出单元 每个捕获/比较模块包含一个输出单元 用于产生输出信号 输出单元的结 构 输出单元时 序 输出模式 输出模式 0 输出模式输出信号 OUTx 由 每个捕获/比较模块的控制寄存器 CCTLx 中的 OUTx 位定义并在写入该寄存器后立即更新。 最终位 OUTx 直通。 输出模式 1 置位模式输出信号在 TAR 等 于 CCRx 时置位并保持置位到定时器复位或 选择另一种输出模式为止。 输出模式 2 PWM 翻转/复位模式输出在 输出模式 输出模式 4 翻转模式输出电平在 TAR 的 值等于 CCRx 时翻转输出周期是定时器周期 的 2 倍。 输出模式 5 复位模式输出在 TAR 的值等 于 CCRx 时复位并保持低电平直到选 择另一 种输出模式。 输出模式 6 PWM 翻转/置位模式输出电 平在 TAR 的值等于 CCRx 时翻转当 TAR 值等 增计数模式输出实例 连续计数模式下的输出波形 增/减计数模式下的输出实例 增/减计数模式下的输出实例 增/减计数模式与比较输出模式相结合可支持带死区的 PWM Timer_A 实现 PWM PWM 信号示 意 Timer_A 产生 PWM Timer_A 实现 PWM 举例 例 设 ACLK = TACLK = LFXT1 = 32768, MCLK = SMCLK = DCOCLK = 32×ACLK = 1.048576Mhz利用 Timer_A 输出周期为 512 /32768 = 15.625ms、占空比分别为 75%和 25%的 PWM 矩形波 #include <msp430x14x.h> void main(void) { WDTCTL = WDTPW +WDTHOLD; TACTL = TASSEL0 + TACLR; // ACLK, 清除 TAR CCR0 = 512-1; // PWM 周期 CCTL1 = OUTMOD_7; CCR1 = 384; //占空比 384/512=0.75 // CCTL2 = OUTMOD_7; CCR2 = 128; //占空比 128/512=0.25 P1DIR |= 0x04; // P1.2 输出 P1SEL |= 0x04; // P1.2 TA1 P2DIR |= 0x01; // P2.0 输出 P2SEL |= 0x01; // P2.0 TA2 TACTL |= MC0; // Timer_A 增计数模式 for (;;) { _BIS_SR(LPM3_bits); // 进入 LPM3 _NOP(); } } PWM 信号 调整 PWM 信 号 占空比 PWM 信号经滤 波输出 TIMER_B Timer_B 和 Timer_A 共同的特征 4 种工作模式 具有可选 可配置的计数器输入时钟源 有多个独立可配置捕获/比较模块 有多个具有 8 种输出模式的可配置输出单元 中断功能强大中断可能源自于计数器的溢 Timer_B 与 Timer_A 不同之处 Timer_B 计数长度为 8 位10 位12 位和 16 位可编程 而 Timer_A 的计数长度固定为16 位。 Timer_B 中没有实现 Timer_A 中的 SCCI 寄存器位的功 能。 Timer_B 在比较模式下的捕获/比较寄存器功能与 Timer_A 不同 增加了比较锁存器 有些型号芯片中的 Timer_B 输出实现了高阻输出 比较模式的原理稍有不同在 Timer_A 中CCRx 寄 存器中保存与 TAR 相比较的数据而在 Timer_B 中 CCRx 寄存器中保存的是要比较的数据但并不直接 与定时器 TBR 相比较而是将 CCRx 送到与之相对应 FLASH 存储器模块 主要特点 编程可以使用位、字节和字操作 可以通过 JTAG、BSL 和 ISP 进行编程 1.8~3.6V 工作电压2.7~3.6V 编程电压 100K 的擦除/编程周期 数据保持时间从 10 年到 100 年不等 可编程次数从 100 到 100,000 次 60K 空间编程时间<5 秒 保密熔丝烧断后不可恢复 不能再对 JTAG进 行任何访问。 部分容量的 FLASH 段与地址的 对应关系 FLASH 存储器的结构框图 FLASH 存储器的主要功能部件 控制寄存器控制 FLASH 存储器的擦除与写 入 FLASH 存储器阵列存储体 地址数据锁 存器擦除与编程时执行锁存操 作 编程电压发生器产生编程电压 擦除操作 选择适当的时钟源和分频因子为时序发生 器提供正确时钟输入 如果 Lock=1则将它复位 监视 BUSY 标志位只有当 BUSY=0 时才可以执 行下一步否则一直监视 BUSY。 如果擦除一段则设置 ERASE=1。 如果擦除多段则设置 MERAS=1 如果整个 FLASH 全擦除则设置RASE=1 同 时 MERAS=1。 FLASH 编程操作 选择适当的时钟源以及合适的分频因子 如果 Lock=1将它复位 监视 BUSY 位直到BUSY=0 是才可进入下一 步 如果写入单字或单字节 则将设置 WRT=1 如果是块写或多字、 多字节顺序写入则将 设置 WRT=1BLKWRT=1 将数据写入选定地址时启动时序发生器在 时序发生器的控制下完成整个过程 比较器 Comparator_A 的结构 比较器 A 的功能 比较器 A 的主要功能是指出两个输入电 压 CA0 和 CA1 的大小关系然后设置输 出信号CAOUT 的值。 如果 CA0>CA1 则 CAOUT1 否则 CAOUT0。 参与比较的两个电压 CA0 和 CA1可以是 外部或者内部基准电压。任何组合都是 可能的。 两个外部输入比较 每个外部输入与0.5VCC或0.25VCC比较 每个外部输入与内部基准电压比较 比较器 A 的中断 比较器 A 响应中断的条件为 有中断源比较器模块有比较结果输出。 有中断源比较器模块有比较结果输出。 设置中断标志CAIES 选择比较器输出的上升沿或下降沿使 设置中断标志 中断标志 CAIFG置位。 置位。 中断允许比较器 A 中断允许CAIE 置位 、系统总中断允许 中断允许 中断允许 置位 、系统总中断允许  、 GIE 置位 置位 中断响应后因为比较器 A 具有独立中断向量是单源中断硬件 中断响应后 具有独立中断向量是单源中断 会自动清除中断标志位 CAIFG 比较器 A 应用举例 电压检测P2.3 输入的未知电压接到比 较器 A 正端片内参考电压 0.25Vcc 接到 比较器 A 负端如果未知电压大于 #include "msp430x14x.h" void main (void) 0.25VccP1.0置位否则 P1.0 复位。 { WDTCTL = WDTPW + WDTHOLD; // 停止看门狗 P1DIR |= 0x01; // P1.0 输出 CACTL1 = CARSEL + CAREF0 + CAON; // 0.25 Vcc = comp CACTL2 = P2CA0; // P2.3 = +comp while (1) { if ((CAOUT & CACTL2)) P1OUT |= 0x01; // CAOUT 1, 置位 P1.0 else P1OUT &= ~0x01; // 否则复位 } } USART 模块结构 UART 异步模式特点 异步模式包括线路空闲/地址位通信协议 两个独立移位寄存器输入移位寄存器和输 出移位寄存器 传输 7 位或 8 位数据 可采用奇校验或偶校验 或者无校验 从最低位开始的数据发送和接收 可编程实现分频因子为整数或小数的波特率 独立的发送和接收中断 通过有效的起始位检测将 MSP430 从低功耗唤 UART 异步模式下的硬件结构 SPI 同步模式下的硬件结构 SPI 同步模式特点 支持3线或4线SPI操作 支持主机模式与从机模式 接收和发送有单独的移位寄存器 接 收和发送有独立的缓冲器 接收和发送有独立的中断能力 时钟的极性和相位可编程 主模式的时钟频率可编程 7 位或 8 位字符长度 ADC12 的结构 组成 SAR 核、 核 采样时钟电路、 采样时钟电路、 参考电压发生器、 参考电压发生器、 采样保持电路、 采样保持电路、 采样时间定时电路、 采样时间定时电路、 多路模拟信号选择器、 多路模拟信号选择器、 转换结果存储控制器、 转换结果存储控制器、 转换结果缓冲器。 ADC12 主要特点 12 位转换精度 1 位非线性微分误差 1 位非线性积 分误差 有多种时钟源提供给 ADC12模块而且模块本身内 置时钟发生器 内置温度传感器 Timer_A/Timer_B 硬件触发器 配置有 8 路外部通道与 4 路内部通道 内置参考电源并且参考电压有 6 种组合 模数转换有 4 种模式 16 字转换缓存 ADC12 转换模式 单通道单次转换 序列通道单次转换 单通道多次转换 序列通道多次转换 ADC12 应用举例 使用外部参考源 时钟 #include "msp430x44x.h" void main(void) { WDTCTL = WDTPW+WDTHOLD; P6SEL |= 0x01; // 使能 A/D 通道 A0 ADC12CTL0 = ADC12ON+SHT0_2; // 打开 ADC12, 设置采样 ADC12CTL1 = SHP; // 使用采样时钟 ADC12MCTL0 = SREF_2; // Vr+ = VeREF+ (外部) ADC12CTL0 |= ENC; // 使能转换 while (1) { ADC12CTL0 |= ADC12SC; // 开始转换 while ((ADC12IFG & ADC12BUSY)==0); _NOP(); } } ADC12 应用举例 使用内部参考源 #include "msp430x44x.h" void main(void) { unsigned int i; WDTCTL = WDTPW+WDTHOLD; P6SEL |= 0x01; // 使能 A/D 通道 A0 ADC12CTL0 = ADC12ON+SHT0_2+REFON+REF2_5V; ADC12CTL1 = SHP; ADC12MCTL0 = SREF_1; // Vr+=Vref+ for ( i=0; i<0x3600; i++) // 为参考源启动提供延迟 { } ADC12CTL0 |= ENC; // 使能转换 while (1) { ADC12CTL0 |= ADC12SC; // 开始转换 while ((ADC12IFG & BIT0)==0); _NOP(); } } DAC12 的结构 DAC12 的主要特征 8 位、 12 位分辨率 可编程的时间对能量消耗 内部或外部参考电压 支持无符号和有符号数据输入 具有自校验功能 二进制或者二的补码形式 多路 DAC 同步更新 可直接存储器存取 MSP430 的外部接口 本 TXT 由“文库宝”下载:http://www.mozhua.net/wenkubao

    关注我们

  • 新浪微博
  • 关注微信公众号

  • 打印威廉希尔app下载
  • 复制文本