1、MSP430-20022004-1l概述lMSP430单片机结构lMSP430指令系统与程序设计lMSP430单片机片内外围模块lMSP430单片机应用MSP430-20022004-2概述概述l单片微型计算机v单片机的概念v单片机的特点v单片机的应用lMSP430系列单片机vMSP430系列单片机的特点vMSP430系列单片机的发展与应用lMSP430应用选型vMSP430系列单片机命名规则vMSP430系列单片机选项l思考题与习题MSP430-20022004-3微处理器的发展微处理器的发展l一是朝着面向数据运算、信息处理等功能的系统机方向发展。系统机以速度快、功能强、存储量大、软件丰富、
2、输入/输出设备齐全为主要特点,采用高级语言编程,适用于数据运算、文字信息处理、人工智能、网络通信等场合。l另一方面,在一些应用领域中,如智能化仪器仪表、电讯设备、自动控制设备、汽车乃至家用电器等,要求的运算、控制功能相对并不很复杂,但对体积、成本、功耗等的要求却比较苛刻。为适应这方面的需求,产生了一种将中央处理器、存储器、I/O接口电路以及连接它们的总线都集成在一块芯片上的计算机,即所谓的单片微型计算机,简称单片机(SingleChipMicrocomputer)。单片机在设计上主要突出了控制功能,调整了接口配置,在单一芯片上制成了结构完整的计算机,因此,单片机也称为微控制器(MCU)MSP4
3、30-20022004-4单片机的特点单片机的特点l小巧灵活、成本低、易于产品化,它能方便地组装成各种智能式控制设备以及各种智能仪器仪表。l面向控制,能针对性地解决从简单到复杂的各类控制任务,因而能获得最佳性能价格比。l抗干扰能力强,适应温度范围宽,在各种恶劣环境下都能可靠地工作,这是其他机型无法比拟的。l可以很方便地实现多机和分布式控制。使整个系统的效率和可靠性大为提高。MSP430-20022004-5单片机的应用单片机的应用 l工业控制:单片机的结构特点决定了它特别适用于各种控制系统。它既可以作单机控制器,有可作为多级控制的前沿处理机用于控制系统,应用领域相当广泛。例如:用于各种机床控制
4、、电机控制、工业机器人、各种生产线、各种过程控制、各种检测系统等。在军事工业中:导弹控制、鱼类制导控制、智能武器装置、航天导航系统等。在汽车工业中:点火控制、变速器控制、防滑刹车、排气控制等。l智能化的仪器仪表:单片机用于包括温度、湿度、流量、流速、电压、频率、功率、厚度、角度、长度、硬度、元素测定等和各类仪器仪表中,使仪器仪表数字化、智能化、微型化,功能大大提高。l日常生活中的电器产品:单片机可用于电子秤、录像机、录音机、彩电、洗衣机、高级电子玩具、冰箱、照相机、家用多功能报警器等。l计算机网络与通信方面:单片机可用BITBUS、CAN、以太网等构成分布式网络的系统,还可以用于调制解调器、各
5、种智能通信设备(例如小型背负式通信机、列车无线通信等)、无线遥控系统等。l计算机外部设备:单片机可以用于温氏硬盘驱动器、微型打印机、图形终端、CRT显示器等。MSP430-20022004-6MSP430系列单片机特点系列单片机特点l超低功耗超低功耗 l强大的处理能力强大的处理能力 l高性能模拟技术及丰富的片上外围模块高性能模拟技术及丰富的片上外围模块 l系统工作稳定系统工作稳定 l方便高效的开发环境方便高效的开发环境 MSP430-20022004-7MSP430系列单片机命名规则系列单片机命名规则MSP430-20022004-8第一章习题第一章习题l微处理器的发展方向是什么?l单片机的概
6、念是什么?l单片机和我们通常所用的微型计算机有什么区别和联系?l单片机常见的领用领域有哪些?l如何理解MSP430系列单片机的“单片”解决能力?lMSP430系列单片机最显著特性是什么?l如何理解MSP430系列单片机的低功耗特性?l为什么MSP430系列单片机特别适用于电池供电和手持设备?l如何理解MSP430系列单片机的强大处理能力?在开发环境方面,MSP430系列单片机和传统单片机相比,有哪些显著优势?l构成MSP430系列单片机的各类存储器有什么特点?各自适用于哪些场合?lMSP430系列单片机应用选型的依据是什么?MSP430-20022004-9MSP430单片机结构单片机结构lM
7、SP430单片机结构概述lMSP430系列产品v无LCD驱动系列产品v有LCD驱动系列产品lMSP430 CPU结构和特点lMSP430存储器和地址空间v程序存储器v数据存储器v外围模块寄存器l思考题与习题MSP430-20022004-10MSP430结构结构 l16位CPU通过总线连接到存储器和外围模块。l直接嵌入仿真处理,具有JTAG接口。l能够降低功耗,降低噪声对存储器存取的影响。l16位数据宽度,数据处理更为有效。MSP430-20022004-11MSP430系列单片机包含以下主要功能部件:系列单片机包含以下主要功能部件:lCPU:MSP430系列单片机的CPU和通用微处理器基本相
8、同,只是在设计上采用了面向控制的结构和指令系统。MSP430的内核CPU结构是按照精简指令集和高透明的宗旨而设计的,使用的指令有硬件执行的内核指令和基于现有硬件结构的仿真指令。这样可以提高指令执行速度和效率,增强了MSP430的实时处理能力。l存储器存储器:存储程序、数据以及外围模块的运行控制信息。有程序存储器和数据存储器。对程序存储器访问总是以字形式取得代码,而对数据可以用字或字节方式访问。其中MSP430各系列单片机的程序存储器有ROM、OTP、EPROM和FLASH型。l外围模块外围模块:经过MAB、MDB、中断服务及请求线与CPU相连。MSP430不同系列产品所包含外围模块的种类及数目
9、可能不同。它们分别是以下一些外围模块的组合:时钟模块、看门狗、定时器A、定时器B、比较器A、串口0、1、硬件乘法器、液晶驱动器、模数转换、数模转换、端口、基本定时器、DMA控制器等。MSP430-20022004-12MSP430X11X系列系列 MSP430-20022004-13MSP430X12X系列系列 MSP430-20022004-14MSP430X13X系列系列 MSP430-20022004-15MSP430X14X系列系列 MSP430-20022004-16MSP430F15X/F16(1)X 系列系列 MSP430-20022004-17MSP430F15X/F16(1)
10、X 系列系列MSP430-20022004-18MSP430X41X系列系列 MSP430-20022004-19MSP430F43X系列系列 MSP430-20022004-20MSP430F44X系列系列 MSP430-20022004-21MSP430 CPU的主要特征的主要特征 ln精简指令集高度正交化ln寄存器资源丰富ln寄存器操作为单周期ln16位地址总线ln常数发生器ln直接的存储器到存储器访问MSP430-20022004-22MSP430存储器结构和地址空间存储器结构和地址空间 MSP430-20022004-23本章小结本章小结 l在结构上MSP430系列单片机集成了一部计
11、算机的各个基本组成部分。虽然其工作原理与普通微机并无差异,但MSP430系列单片机在结构上更加突出了体积小、功能强、面向控制的特点,具有很高的性能价格比。lMSP430系列单片机由CPU、存储器和外围模块组成,这些部件通过内部地址总线、数据总线和控制总线相连构成单片微机系统。lMSP430的内核CPU结构是按照精简指令集的宗旨来设计的。具有丰富的寄存器资源、强大的处理控制能力和灵活的操作方式。lMSP430的存储器结构采用了统一编址方式,可以使得对外围模块寄存器的操作象普通的RAM单元一样方便、灵活。MSP430存储器的信息类型丰富,并具有很强的系统外围模块扩展能力。MSP430-200220
12、04-24思考题与习题思考题与习题 l1.MSP430系列FLASH型单片机有什么优势?l2.MSP430X1XX系列单片机的主要特征是什么?l3.MSP430X4XX系列单片机的主要特征是什么?l4.MSP430X1XX和MSP430X4XX系列单片机有什么区别和联系?l5.MSP430F15/16X和其他型号系列单片机相比有哪些特点?l6.MSP430F15X和MSP430F16X有什么区别和联系?l7.单片机和典型微型计算机在结构上有什么区别?l8.MSP430系列单片机内部包含哪些主要功能部件?l9.MSP430系列单片机的CPU有哪些“面向控制”的特性?l10.MSP430系列单片机
13、的CPU寄存器有什么特点?应该如何正确应用?l11.MSP430系列单片机的直接寻址能力为多少字节?l12.MSP430系列单片机CPU状态寄存器的作用是什么?各位的含义是什么?l13.MSP430系列单片机CPU常数发生器的作用是什么?l14.MSP430系列单片机存储器的组织方式是什么?l15.MSP430系列单片机存储器的组织方式与CPU的RISC结构有什么关系?l16.为什么说MSP430系列单片机还有很大的系统外围模块扩展能力?l17.MSP430系列单片机具有怎样的中断处理能力?l18.MSP430系列单片机数据存储器的最低地址是什么?程序存储器的最高地址是什么?l19.程序存储器
14、一般用来存储哪几类信息?各类信息的含义是什么?l20.数据存储器由那些部分组成?这些部分分别用来存储什么类型的数据?l21.外围模块寄存器所对应的存储单元在操作上和普通RAM单元有什么区别和联系?l22.MSP430内部数据总线有那些形式?这么安排有什么好处?l23.MSP430系列FLASH型单片机的串行在线可编程的含义是什么?MSP430-20022004-25MSP430指令系统与程序设计指令系统与程序设计l指令系统概述l寻址方式l指令系统介绍v数据传送类指令v数据运算类指令v逻辑操作指令v位操作指令v跳转与程序流程的控制类指令l程序设计v程序设计基础v汇编语言程序设计vC语言程序设计l
15、思考题与习题MSP430-20022004-26MSP430单片机片内外围模块单片机片内外围模块l时钟模块l低功耗结构lMSP430各种端口l定时器lMSP430液晶驱动模块l硬件乘法器lFLASH存储器模块l比较器AlDMA控制器lMSP430系列通用串行通信模块的异步模式lMSP430系列通用串行通信模块的同步模式lMSP430系列通用串行通信模块的I2C模式lMSP430模数转换模块lMSP430数模转换模块l思考题与习题MSP430-20022004-27MSP430单片机应用单片机应用lMSP430常用接口设计v键盘接口vLED显示接口v液晶显示接口v常用LED驱动功率接口v继电器型
16、驱动接口lMSP430片内外围模块应用v定时器v比较器vSPI同步操作vA/D D/A 和DMAlMSP430单片机应用设计举例v自校准变频电源v超低功耗手持式电子斜度计/加速度计l思考题与习题MSP430-20022004-28时钟模块时钟模块 时钟输入源:时钟输入源:时钟输入源:时钟输入源:LFXT1CLK LFXT1CLK LFXT1CLK LFXT1CLK 低频时钟源低频时钟源低频时钟源低频时钟源 XT2CLK XT2CLK XT2CLK XT2CLK 高频时钟源高频时钟源高频时钟源高频时钟源DCOCL DCOCL 数字控制数字控制数字控制数字控制RCRC振荡器振荡器振荡器振荡器 时钟
17、输出信号时钟输出信号时钟输出信号时钟输出信号ACLKACLK辅助时钟辅助时钟辅助时钟辅助时钟MCLKMCLK主系统时钟主系统时钟主系统时钟主系统时钟SMCLKSMCLK子系统时钟子系统时钟子系统时钟子系统时钟慢速外设慢速外设慢速外设慢速外设CPUCPU和和和和系统系统系统系统快速外设快速外设快速外设快速外设MSP430-20022004-29振荡器控制逻辑振荡器控制逻辑LFXT1LFXT1振荡器控制振荡器控制振荡器控制振荡器控制逻辑逻辑逻辑逻辑XT2XT2振荡器控振荡器控振荡器控振荡器控制逻辑制逻辑制逻辑制逻辑DCODCO振荡器振荡器振荡器振荡器控制逻辑控制逻辑控制逻辑控制逻辑MSP430-2
18、0022004-30DCO频率的调节频率的调节 MSP430-20022004-31基础时钟模块工作方式和相关寄存器设置基础时钟模块工作方式和相关寄存器设置 例1设MCLK=XT2,SMCLK=DCOCLK,将MCLK由P5.4输出。(MSP430X14X中引脚P5.4和MCLK复用)。实现上述功能的程序如下:#include void main(void)unsigned int i;WDTCTL=WDTPW+WDTHOLD;/停止看门狗 P5DIR|=0 x10;/P5.4 输出P5SEL|=0 x10;/P5.4 用作MCLK输出 BCSCTL1&=XT2OFF;/XT2有效do IFG
19、1&=OFIFG;/清除振荡器失效标志for(i=0 xFF;i 0;i-);/稳定时间 while(IFG1&OFIFG)!=0);/如果振荡器失效标志存在 BCSCTL2|=SELM1;/MCLK=XT2 for(;);MSP430-20022004-32根据实际连接情况,确定根据实际连接情况,确定ACLK、SMCLK和和MCLK时钟源。时钟源。ACLK:ACLK:LFTX1(32768)LFTX1(32768)MCLK:MCLK:DCOCLKDCOCLK或者或者或者或者LFTX1LFTX1 SMCLK:SMCLK:DCOCLKDCOCLK或者或者或者或者LFTX1LFTX1 ACLK:A
20、CLK:0 0MCLK:MCLK:DCOCLKDCOCLKSMCLK:SMCLK:DCOCLKDCOCLKACLK:ACLK:LFTX1(LFTX1(高频模式高频模式高频模式高频模式)MCLK:MCLK:DCOCLKDCOCLK或者或者或者或者LFTX1(LFTX1(高频模式高频模式高频模式高频模式)SMCLK:SMCLK:DCOCLKDCOCLK或者或者或者或者LFTX1(LFTX1(高频模式高频模式高频模式高频模式)ACLK ACLK ACLK ACLK只能来源于只能来源于只能来源于只能来源于LFXT1LFXT1LFXT1LFXT1。MSP430X11X1MSP430X11X1MSP430
21、X11X1MSP430X11X1内部只有内部只有内部只有内部只有LFXT1LFXT1LFXT1LFXT1和和和和DCODCODCODCO,没有没有没有没有XT2XT2XT2XT2。LFXT1 LFXT1只有工作于高频模式才需要外接电容。只有工作于高频模式才需要外接电容。只有工作于高频模式才需要外接电容。只有工作于高频模式才需要外接电容。MSP430-20022004-33MSP430F4XX系列时钟模块系列时钟模块 MSP430-20022004-34FLL+工作模式工作模式 在每在每在每在每3232个个个个DCOCLKDCOCLK时钟周期中,调制器通过混合相邻两个时钟周期中,调制器通过混合相
22、邻两个时钟周期中,调制器通过混合相邻两个时钟周期中,调制器通过混合相邻两个DCOCLKDCOCLK周期可以克服周期累加的变化周期可以克服周期累加的变化周期可以克服周期累加的变化周期可以克服周期累加的变化 MSP430-20022004-35FLL+失效控制失效控制 XT2XT2振荡振荡振荡振荡器失效器失效器失效器失效 DCODCO振荡器振荡器振荡器振荡器失效失效失效失效 LFXT1LFXT1振荡器振荡器振荡器振荡器在低频模式在低频模式在低频模式在低频模式(LF)LF)下下下下失效失效失效失效 LFXT1LFXT1振荡器在高振荡器在高振荡器在高振荡器在高频模式频模式频模式频模式(HF)HF)下失
23、效下失效下失效下失效 MSP430-20022004-36调整调整FLL+l保证FLL+锁定位(SCG0在状态寄存器中)并把它置位;关闭反馈环控制 l把新数值装入调整寄存器SCFQCTL(调整位M,乘数N)l将DCO控制位置位,调整器高位置位:SCFI1=OFH,使得芯片以尽可能低的频率工作 l选择DCO+控制位为1或者0 l将控制寄存器SCFI0装入新的数值 l还原或设置FLL+控制位 MSP430-20022004-37FLL+模块应用举例模块应用举例 例1 设:ACLK=LFXT1=32768Hz,令MCLK=SMCLK=DCOCLK=(n+1)ACLK,并将MCLK和ACLK分别通过P
24、1.1和P1.5输出。程序代码如下#include msp430 x44x.hvoid main(void)WDTCTL=WDTPW+WDTHOLD;/停止看门狗 SCFI0|=FN_2;FLL_CTL0=XCAP18PF;SCFQCTL=74;/(74+1)32768=2.45MhzP1DIR=0 x22;/P1.1&P1.5 输出 P1SEL=0 x22;/P1.1&P1.5输出 MCLK&ACLK while(1);内部DCO2.45Mhz,P1.1-MCLK=2.45Mhz,P1.5-ACLK=32khz MSP430-20022004-38低功耗低功耗l使用内部时钟发生器(DCO)无
25、需外接任何元件 l选择外接晶体或陶瓷谐振器,可以获得最低频率和功耗 l采用外部时钟信号源l瞬间响应特性 MSP430-20022004-39MSP430 工作模式状态工作模式状态MSP430-20022004-40为了充分利用为了充分利用为了充分利用为了充分利用CPUCPU低功耗性能,可以让低功耗性能,可以让低功耗性能,可以让低功耗性能,可以让CPUCPU工作于突发状态。工作于突发状态。工作于突发状态。工作于突发状态。在通常情况下,根据需要使用软件将在通常情况下,根据需要使用软件将在通常情况下,根据需要使用软件将在通常情况下,根据需要使用软件将CPUCPU设定到某一种低功耗工作模式下,设定到某
26、一种低功耗工作模式下,设定到某一种低功耗工作模式下,设定到某一种低功耗工作模式下,在需要时使用中断将在需要时使用中断将在需要时使用中断将在需要时使用中断将CPUCPU从休眠状态中唤醒,完成工作之后又可以进入相应的休眠状态。从休眠状态中唤醒,完成工作之后又可以进入相应的休眠状态。从休眠状态中唤醒,完成工作之后又可以进入相应的休眠状态。从休眠状态中唤醒,完成工作之后又可以进入相应的休眠状态。MSP430-20022004-41系统响应中断的过程系统响应中断的过程 l硬件自动中断服务 l执行中断处理子程序 l执行RETI指令(中断返回)PC入栈入栈SR入栈入栈中断向量赋给中断向量赋给PCPCGITG
27、IT、CPUOFFCPUOFF、OSCOFFOSCOFF和和SCG1SCG1清除清除IFG标志位清除(单源中断标志)标志位清除(单源中断标志)SRSR出栈(恢复原来的标志)出栈(恢复原来的标志)出栈(恢复原来的标志)出栈(恢复原来的标志)PCPC出栈出栈出栈出栈 MSP430-20022004-42例:系统初始化完毕之后工作于低功耗模式0,中断事件触发到活动模式,中断处理结束后进入到低功耗模式3。;主程序.;初始化操作开始;初始化完毕BIS#GIE+CPUOFF,SR;主程序中设置低功耗模式0;.;程序在这里停止;;中断子程序;中断处理开始;中断处理结束BIS#GIE+CPUOFF+SCG1+
28、SCG0,0(SP);设置SR为低功耗模式3RETI;中断返回;系统进入低功耗模式3。低功耗低功耗0转变为低功耗转变为低功耗3MSP430-20022004-43低功耗原则低功耗原则 l一般的低功耗原则:l设计外设时的常规原则:最大化最大化LPM3的时间,用的时间,用32KHz晶振作为晶振作为ACLK时钟,时钟,DCO用于用于CPU激活后的突发短暂运行激活后的突发短暂运行用接口模块代替软件驱动功能。用接口模块代替软件驱动功能。用中断控制程序运行用中断控制程序运行用可计算的分支代替标志位测试产生的分支用可计算的分支代替标志位测试产生的分支用快速查表代替冗长的软件计算用快速查表代替冗长的软件计算在
29、冗长的软件计算中使用单周期的在冗长的软件计算中使用单周期的CPU寄存器寄存器避免频繁的子程序和函数调用避免频繁的子程序和函数调用尽可能直接用电池供电尽可能直接用电池供电将不用的将不用的FETI输入端连接到输入端连接到VSSJTAG端口端口TMS、TCK和和TDI不要连接到不要连接到VSSCMOS输入端不能有浮空节点,将所有输入端接适当的电平输入端不能有浮空节点,将所有输入端接适当的电平不论对于内核还是对于各外围模块,选择尽可能低的运行频率,如果不影响功能应设计自不论对于内核还是对于各外围模块,选择尽可能低的运行频率,如果不影响功能应设计自动关机动关机 MSP430-20022004-44超低功
30、耗嵌入式实时时钟超低功耗嵌入式实时时钟 平均电流平均电流平均电流平均电流LPM3LPM3电流电流电流电流+工作期间电流工作期间电流工作期间电流工作期间电流 0.800.80uA+250uAuA+250uA100us/1000000us100us/1000000us =0.80 =0.80 uA+0.030uAuA+0.030uA =0.83 =0.83uAuA MSP430F413MSP430F413通过外接通过外接通过外接通过外接3276832768HzHz晶体晶体晶体晶体 MSP430 CPUMSP430 CPU工作于工作于工作于工作于突发状态突发状态突发状态突发状态 运行期间电流消耗运行
31、期间电流消耗运行期间电流消耗运行期间电流消耗250250uAuA 在在在在1 1S S时间段内程序运行时时间段内程序运行时时间段内程序运行时时间段内程序运行时间仅为间仅为间仅为间仅为100100usus LPM3LPM3电流电流电流电流 为为为为0.800.80uAuAMSP430-20022004-45MSP430的端口的端口l类型丰富类型丰富 l功能丰富功能丰富 l寄存器丰富寄存器丰富 P1,P2,P3,P4,P5,P6,S和COM I/O中断能力其他片内外设功能驱动液晶P1与P2各有7个寄存器P3、P4、P5、P6有四个寄存器MSP430-20022004-46端口数据输出特性端口数据输
32、出特性 低电平输出特性低电平输出特性 高电平输出特性高电平输出特性 MSP430-20022004-47定时器定时器l看门狗定时器l基本定时器l定时器Al定时器BMSP430-20022004-48写:写:5AH读:读:69H1616位增计位增计位增计位增计数器数器数器数器看门狗定时器看门狗定时器启、停控制启、停控制MSP430-20022004-49看门狗定时器应用举例看门狗定时器应用举例#include void main(void)WDTCTL=WDT_MDLY_32;/定时周期为32msIE1|=WDTIE;/使能WDT中断 P1DIR|=0 x01;/P1.0输出 _EINT();/
33、系统中断允许 for(;)_BIS_SR(CPUOFF);/进入 LPM0 _NOP();/看门狗中断服务子程序#pragma vector=WDT_VECTOR_interrupt void watchdog_timer(void)P1OUT=0 x01;/P1.0取反MSP430-20022004-50基本定时器基本定时器l支持软件和各种外围模块工作在低频率、低功耗条件下 产生中断,使中产生中断,使中产生中断,使中产生中断,使中断标志置位断标志置位断标志置位断标志置位 f fLCDLCD信号信号信号信号 控制单元控制单元MSP430-20022004-51定时器定时器A特性特性l输入时钟可
34、以有多种选择,可是慢时钟,快时钟以及外部时钟 l虽然没有自动重载时间常数功能,但产生的定时脉冲或PWM(脉宽调制)信号没有软件带来的误差。l不仅能捕获外部事件发生的时间还可锁定其发生时的高低电平。l可实现串行通讯l完善的中断服务功能l4种计数功能选择l8种输出方式选择l支持多时序控制lDMA使能MSP430-20022004-52定时器定时器A结构结构MSP430-20022004-53定时器定时器A功能模块功能模块l计数器部分计数器部分:输入的时钟源具有4种选择,所选定的时钟源又可以1、2、4或8分频作为计数频率,Timer_A可以通过选择4种工作模式灵活的完成定时/计数功能 l捕获捕获/比
35、较器比较器:用于捕获事件发生的时间或产生时间间隔,捕获比较功能的引入主要是为了提高I/O 端口处理事务的能力和速度。不同的MSP430单片机,Timer_A模块中所含有的捕获/比较器的数量不一样,每个捕获/比较器的结构完全相同,输入和输出都决定于各自所带的控制寄存器的控制字,捕获/比较器相互之间工作完全独立。l输出单元输出单元:具有可选的8种输出模式,用于产生用户需要的输出信号。支持PWM MSP430-20022004-54定时器定时器A中断中断CCR0CCR0中断中断中断中断CCR1CCR1CCRxCCRx和定时器中断和定时器中断和定时器中断和定时器中断 MSP430-20022004-5
36、5定时器工作模式定时器工作模式 MSP430-20022004-56停止模式停止模式l停止模式用于定时器暂停,并不发生复位,所有寄存器现行的内容在停止模式结束后都可用。当定时器暂停后重新计数时,计数器将从暂停时的值开始以暂停前的计数方向计数。例如,停止模式前,Timer_A工作于增/减计数模式并且处于下降计数方向,停止模式后,Timer_仍然工作于增/减计数模式,从暂停前的状态开始继续沿着下降方向开始计数。如果不能这样,则可通过TACTL中的CLR控制位来清除定时器的方向记忆特性。MSP430-20022004-57增计数模式增计数模式l捕获/比较寄存器CCR0用作Timer_A增计数模式的周
37、期寄存器,因为CCR0为16位寄存器,所以该模式适用于定时周期小于65536的连续计数情况。计数器TAR可以增计数到CCR0的值,当计数值与CCR0的值相等(或定时器值大于CCR0的值)时,定时器复位并从0开始重新计数。增计数模式的计数过程增计数模式的中断标志位设置 MSP430-20022004-58改变改变CCR0值重置计数周期增计数方式值重置计数周期增计数方式 新周期大于新周期大于旧周期的响应旧周期的响应 新周期小于新周期小于旧周期的响应旧周期的响应 MSP430-20022004-59连续计数模式连续计数模式 l在需要65536个时钟周期的定时应用场合常用连续计数模式。定时器从当前值计
38、数到0FFFFH后,又从0开始重新计数 计数器的计数器的计数过程计数过程 标志位标志位设置设置MSP430-20022004-60连续计数模式的典型应用连续计数模式的典型应用 产生多个独立的时序信号:利用捕获比较寄存器捕获各种产生多个独立的时序信号:利用捕获比较寄存器捕获各种其他外部事件发生的定时器数据其他外部事件发生的定时器数据产生多个定时信号:通过中断处理程序在相应的比较寄存器产生多个定时信号:通过中断处理程序在相应的比较寄存器CCRx上加上上加上一个时间差来实现。这个时间差是当前时刻(既相应的一个时间差来实现。这个时间差是当前时刻(既相应的CCRx中的值)中的值)到下一次中断发生时刻所经
39、历的时间到下一次中断发生时刻所经历的时间MSP430-20022004-61增增/减计数模式减计数模式 l需要对称波形的情况经常可以使用增/减计数模式,该模式下,定时器先增计数到CCR0的值,然后反向减计数到0。计数周期仍由CCR0定义,它是CCR0计数器数值的2倍。计数器的计数器的计数过程计数过程 标志位标志位设置设置MSP430-20022004-62捕获捕获/比较模块比较模块 MSP430-20022004-63捕获模式捕获模式 l当CCTLx中的CAPx=1,该模块工作在捕获模式。这时如果在选定的引脚上发生设定的脉冲触发沿(上升沿、下降沿或任意跳变),则TAR中的值将写入到CCRx中。
40、l每个捕获比较寄存器能被软件用于时间标记。可用于各种目的 l当捕获完成后,中断标志位CCIFGx被置位。测量软件程序所用时间测量软件程序所用时间测量硬件事件之间的时间测量硬件事件之间的时间测量系统频率测量系统频率 MSP430-20022004-64输出单元输出单元l每个捕获/比较模块包含一个输出单元,用于产生输出信号输出单元的结构输出单元的结构输出单元的结构输出单元的结构 输出单元时序输出单元时序输出单元时序输出单元时序 MSP430-20022004-65输出模式输出模式l输出模式0输出模式:输出信号OUTx由每个捕获/比较模块的控制寄存器CCTLx中的OUTx位定义,并在写入该寄存器后立
41、即更新。最终位OUTx直通。l输出模式1置位模式:输出信号在TAR等于CCRx时置位,并保持置位到定时器复位或选择另一种输出模式为止。l输出模式2PWM翻转/复位模式:输出在TAR的值等于CCRx时翻转,当TAR的值等于CCR0时复位。l输出模式3PWM置位/复位模式:输出在TAR的值等于CCRx时置位,当TAR的值等于CCR0时复位。MSP430-20022004-66输出模式输出模式l输出模式4翻转模式:输出电平在TAR的值等于CCRx时翻转,输出周期是定时器周期的2倍。l输出模式5复位模式:输出在TAR的值等于CCRx时复位,并保持低电平直到选择另一种输出模式。l输出模式6PWM翻转/置
42、位模式:输出电平在TAR的值等于CCRx时翻转,当TAR值等于CCR0时置位。l输出模式7PWM复位/置位模式:输出电平在TAR的值等于CCRx时复位,当TAR的值等于CCR0时置位。MSP430-20022004-67增计数模式输出实例增计数模式输出实例MSP430-20022004-68连续计数模式下的输出波形连续计数模式下的输出波形 MSP430-20022004-69增增/减计数模式下的输出实例减计数模式下的输出实例 MSP430-20022004-70TIMER_A应用实现异步串行通信应用实现异步串行通信lTimer_A具有实现异步串行通信的一些特征 l捕获功能可以捕捉选定输入引脚的
43、状态的变化,它可以选择捕捉上升沿、下降沿、前后沿。如果捕捉到了相应的变化,则定时器计数值将被复制到捕获比较寄存器CCRx中,并会产生相应的中断。在串行通信中正是利用捕获功能的特点来捕捉起始位的信息。l比较功能是借助比较器不断地将CCRx中的设定值与定时器中的计数值相比较,当二者相等时就产生中断,并产生设定的输出,利用比较功能可以获得精确的时间间隔,利用该特性可以构造一个精确的波特率发生器,为串行通信提供时间基准。能够自动检测起始位能够自动检测起始位可以硬件方式产生波特率,范围从可以硬件方式产生波特率,范围从75115200波特波特硬件锁存接收和发送的数据硬件锁存接收和发送的数据 全双工方式全双
44、工方式全双工方式全双工方式 MSP430-20022004-71TIMER_A应用实现异步串行通信应用实现异步串行通信MSP430-20022004-72TIMER_A应用实现异步串行通信应用实现异步串行通信MSP430-20022004-73Timer_A实现实现PWM PWM信号示信号示意意 Timer_A产生产生PWM MSP430-20022004-74Timer_A实现实现PWM举例举例 例:设ACLK=TACLK=LFXT1=32768,MCLK=SMCLK=DCOCLK=32ACLK=1.048576Mhz,利用Timer_A输出周期为512/32768=15.625ms、占空比
45、分别为75%和25%的PWM矩形波:#include void main(void)WDTCTL=WDTPW+WDTHOLD;FLL_CTL0|=XCAP14PF;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|=0 x04;/P1.2 输出 P1SEL|=0 x04;/P1.2 TA1 P2DIR|=0 x01;/P2.0 输出 P2SEL|=0 x01;/P2.
46、0 TA2 TACTL|=MC0;/Timer_A 增计数模式 for(;)_BIS_SR(LPM3_bits);/进入 LPM3 _NOP();MSP430-20022004-75PWM信号信号调整调整PWM信号信号占空比占空比PWM信号经滤波信号经滤波输出输出 MSP430-20022004-76TIMER_BMSP430-20022004-77Timer_B和和Timer_A共同的特征共同的特征 l4种工作模式 l具有可选,可配置的计数器输入时钟源 l有多个独立可配置捕获/比较模块 l有多个具有8种输出模式的可配置输出单元 lDMA使能 l中断功能强大,中断可能源自于计数器的溢出,也可能
47、源自于各捕获/比较模块上发生的捕获事件或比较事件。MSP430-20022004-78Timer_B与与Timer_A不同之处不同之处 lTimer_B计数长度为8位,10位,12位和16位可编程,而Timer_A的计数长度固定为16位。lTimer_B中没有实现Timer_A中的SCCI寄存器位的功能。lTimer_B在比较模式下的捕获/比较寄存器功能与Timer_A不同,增加了比较锁存器 l有些型号芯片中的Timer_B输出实现了高阻输出 l比较模式的原理稍有不同:在Timer_A中,CCRx寄存器中保存与TAR相比较的数据;而在Timer_B中,CCRx寄存器中保存的是要比较的数据,但并
48、不直接与定时器TBR相比较,而是将CCRx送到与之相对应的锁存器之后,由锁存器与定时器TBR相比较。从捕获/比较寄存器向比较锁存器传输数据的时机也是可以编程的,可以是在写入捕获/比较寄存器后立即传输,也可以是由一个定时事件来触发。lTimer_B支持多重的、同步的定时功能;多重的捕获/比较功能;多重的波形输出功能(比如PWM信号)。而且,通过对比较数据的两级缓冲,可以实现多个PWM信号周期的同步更新 MSP430-20022004-79MSP430液晶驱动模块主要特点液晶驱动模块主要特点 l具有显示缓存器 l所需的SEG、COM信号自动产生 l4种驱动方法 l多种扫描频率 l段输出端口可以切换
49、为通常输出端口 l显示缓存器可作为一般存储器 l用ACLK经BasicTimer产生频率 MSP430-20022004-80液晶驱动方法液晶驱动方法 静态静态驱动驱动 2 2MUX MUX 驱动驱动 3 3MUX MUX 驱动驱动 4 4MUX MUX 驱动驱动 MSP430-20022004-81液晶驱动模块功能结构液晶驱动模块功能结构 MSP430-20022004-82液晶显示缓存器和段、公共极输出控制液晶显示缓存器和段、公共极输出控制 l液晶显示缓存器各个位与液晶的段一一对应。存储位置位则可以点亮对应的液晶段,存储位复位液晶段变暗。段、公共极输出控制能够自动从显示缓存器读取数据,送出
50、相应信号到液晶玻璃片上。因为不同器件驱动液晶的段数不同,所以液晶显示缓存器的数量也不一样。数量越大,驱动能力越强,显示的内容就越多。MSP430-20022004-83静态方式显示缓存器中位与液晶段的对应关系静态方式显示缓存器中位与液晶段的对应关系 MSP430-20022004-842MUX方式显示缓存器中位与液晶段的对应关系方式显示缓存器中位与液晶段的对应关系 MSP430-20022004-853MUX方式显示缓存器中位与液晶段的对应关系方式显示缓存器中位与液晶段的对应关系 MSP430-20022004-864MUX方式显示缓存器中位与液晶段的对应关系方式显示缓存器中位与液晶段的对应关