收藏 分享(赏)

《基于MSP430单片机原理及应用》课件第三章 .ppt

上传人:bubibi 文档编号:22658994 上传时间:2024-06-24 格式:PPT 页数:180 大小:8.19MB
下载 相关 举报
《基于MSP430单片机原理及应用》课件第三章 .ppt_第1页
第1页 / 共180页
《基于MSP430单片机原理及应用》课件第三章 .ppt_第2页
第2页 / 共180页
《基于MSP430单片机原理及应用》课件第三章 .ppt_第3页
第3页 / 共180页
《基于MSP430单片机原理及应用》课件第三章 .ppt_第4页
第4页 / 共180页
《基于MSP430单片机原理及应用》课件第三章 .ppt_第5页
第5页 / 共180页
亲,该文档总共180页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、基于MSP430单片机原理及应用第三章 MSP430单片机片内及片外模块西安电子科技大学出版社南京航空航天大学金城学院3.1通用I/O端口3.2中断系统3.3定时器3.4通用串行通信模块3.5串行外设接口协议SPI模式3.5串行外设接口协议SPI模式3.6内部集成电路协议I2C模式3.7比较器A3.8MSP430模数转换模块3.9MSP430数模转换模块目录目录西安电子科技大学出版社南京航空航天大学金城学院3.1 通用I/O端口3.1.1端口P1和P23.1.2端口P3、P4、P5和P63.1.3端口应用目录目录西安电子科技大学出版社南京航空航天大学金城学院3.1.1端口P1和P2端口P1和P

2、2具有输入/输出、中断和外部模块功能,这些功能可以通过各自7个控制寄存器的设置来实现。(1)输入/输出方向寄存器PxDIRPxDIR寄存器中的每一位选择相应管脚的输入输出方向。当管脚被设置为其它功能时,方向寄存器中对应的值应被设置为该管脚所实现功能要求的方向值。Bit=0:管脚为输入方向Bit=1:管脚为输出方向通用通用I/OI/O端口端口西安电子科技大学出版社南京航空航天大学金城学院(2)输入寄存器PxINPxIN寄存器中的每一位反映当前IO口的信号的输入值,当I/O管脚被配置为普通IO口时功能时,对应的这些寄存器只能被读。Bit=0:输入为低Bit=1:输入为高(3)输出寄存器PxOUT当

3、I/O管脚配置为普通IO口并且为输出方向时,PxOUT寄存器中的每一位就对应着相应管脚的电平输出状态。Bit=0:输出为低Bit=1:输出为高通用通用I/OI/O端口端口西安电子科技大学出版社南京航空航天大学金城学院(4)中断使能寄存器PxIEPxIE寄存器的每一位使能与对应的引脚相联系。Bit=0:Px口中断关闭Bit=1:Px口中断使能(5)中断触发沿选择寄存器PxIES如果允许Px口的某个引脚中断,还需定义该引脚的中断触发沿。Bit=0:上升沿使相应标志位置位Bit=1:下升沿使相应标志位置位通用通用I/OI/O端口端口西安电子科技大学出版社南京航空航天大学金城学院(6)中断标志寄存器P

4、xIFG该寄存器有8个标志位,它们含有相应引脚是否有待处理的中断信息,即相应引脚是否有中断请求。Bit=0:没有中断请求Bit=1:有中断请求(7)功能选择寄存器PxSELPxSEL寄存器中的每一位选择对应管脚的功能普通I/O功能或者外围模块功能。Bit=0:普通I/O口功能Bit=1:外围模块功能通用通用I/OI/O端口端口西安电子科技大学出版社南京航空航天大学金城学院3.1.2端口P3、P4、P5和P6这些端口无中断能力,其余功能与P1和P2口一样,能实现输入/输出功能和外围模块功能。每个端口有4个寄存器供用户使用。用户可通过这4个寄存器对它们进行访问和控制。每个端口的4个寄存器分别为:功

5、能选择寄存器PxSEL、输入/输出方向寄存器PxDIR、输入寄存器PxIN、输出寄存器PxOUT。具体用法同P1、P2端口。通用通用I/OI/O端口端口西安电子科技大学出版社南京航空航天大学金城学院3.1.3端口应用端口是单片机中最常用的外设资源。一般在程序的初始化阶段对端口进行配置,配置时,先配置功能选择寄存器PxSEL;若为I/O端口功能,则继续配置方向寄存器PxDIR;若为输入,则继续配置中断使能寄存器PxIE;若允许中断,则继续配置中断触发沿选择寄存器PxIES。通用通用I/OI/O端口端口西安电子科技大学出版社南京航空航天大学金城学院3.2 中断系统3.2.1中断分类3.2.2中断向

6、量表3.2.3中断相关寄存器的设置3.2.4中断的优先级别3.2.5中断的处理过程3.2.6可屏蔽中断程序设计目录目录西安电子科技大学出版社南京航空航天大学金城学院中断是MSP430微处理器的一大特色,有效地利用中断可以简化程序和提高执行效率。MSP430的几乎每个外围模块都能够产生中断,为MSP430针对事件(即外围模块产生的中断)进行的编程打下基础。MSP430在没有事件发生时进入低功耗模式,事件发生时,通过中断唤醒CPU,事件处理完毕后,CPU再次进入低功耗状态。由于CPU的运算速度和退出低功耗的速度很快,所以在应用中,CPU大部分时间都处于低功耗状态。这是MSP430能够如此节省电能的

7、重要原因之一。3.2.1中断分类MSP430的中断分为3种:系统复位、不可屏蔽中断、可屏蔽中断。系统复位指向中断向量表(表3-1)的最高地址0 xFFFE。非屏蔽中断和可屏蔽中断根据能否被SR寄存器中的全局中断使能位GIE禁用来区分,非屏蔽中断不受GIE的控制,具备独立的中断使能;可屏蔽中断除了受本身的中断使能控制,还接受GIE控制。中断系统中断系统西安电子科技大学出版社南京航空航天大学金城学院(1)系统复位也称不可屏蔽中断(Nonmaskableinterrupts)-不能被总控位GIE和其分控位IE位屏蔽的中断,其中断向量为0 xFFFEH。(2)不可屏蔽中断NMI-不能被总控位GIE屏蔽

8、,但能被自己的分控位IE位屏蔽的中断。不可屏蔽的中断源有以下三种:当配置为NMI模式时,RST/NMI引脚的一个边沿。上电时,RST/NMI引脚配置为复位模式。在看门狗控制寄存器WDTCTL中选择RST/NMI引脚的功能。如果RST/NMI引脚被设置为复位功能,RST/NMI引脚处于低电平时CPU将一直保持复位状态。当转为高电平时,CPU从存储在复位向量OFFFEH中的地址开始运行,RSTIFG将被置位。如果RST/NMI引脚被用户软件配置为不可屏蔽中断,且NMIIE位被置位时,由WDTNMIES选择的信号边沿到来产生NMI中断。RST/NMI的标志位NMIIFG将会被置1。中断系统中断系统西

9、安电子科技大学出版社南京航空航天大学金城学院振荡器失效。振荡器错误信号对晶振失效的情形发出警告。置位OFIE将能够使振荡器发生错误时产生一个NMI中断。NMI中断服务程序可以检查OFIF位来判断NMI中断是否由振荡器引起。FLASH存储器的非法访问中断允许时,对FLASH存储器进行了非法访问。在FLASH存取冲突发生时,ACCVIFG位将会被置1。如果ACCVIE位为1时,就产生一个NMI中断。NMI中断服务程序可以检查ACCVIFG位来判断NMI中断是否由FLASH存取冲突引起。(3)可屏蔽中断-能被总控位GIE和自己的分控位IE位屏蔽的中断。中断系统中断系统西安电子科技大学出版社南京航空航

10、天大学金城学院MSP430具备大量的可屏蔽中断,由具有中断能力的外设所产生,比如,定时器、ADC、DMA、UART、WDT、I/O、比较器等都具备中断功能,每一个可屏蔽中断源可以通过中断使能位单独禁止,也可以通过状态寄存器(SR)中的总中断使能位(GIE)禁止。不同的可屏蔽中断优先级可根据中断向量表决定,G2系列的MSP430中断向量表如表3-1所示。可屏蔽中断的中断向量表从0 xFFFA地址开始向低地址扩展,地址越高的中断向量表所对应的中断优先级越高。多个中断请求发生时,MSP430选择拥有最高优先级的中断响应。响应中断时,MSP430会将不可屏蔽中断控制位SRGIE复位,因此,一旦响应了中

11、断,即使有优先级更高的可屏蔽中断出现,MSP430也不会中断当前响应的中断,去响应另外的中断。SRGIE复位不影响不可屏蔽中断,所以仍可以接受不可屏蔽中断的中断请求。中断系统中断系统西安电子科技大学出版社南京航空航天大学金城学院GIE在状态寄存器SR(StatusRegister)中的位置及设置规则如下:GIE:可屏蔽中断屏蔽位(GeneralInterruptEnableBit)置位1:允许所有可屏蔽中断复位0:禁止所有可屏蔽中断159876543210保留VSCG1SCG0OSCOFFCPUOFFGIENZC中断系统中断系统西安电子科技大学出版社南京航空航天大学金城学院3.2.2中断向量表

12、每个中断向量在中断向量表里面占据一个2Byte空间的表项,这个2Byte的空间用来存储对应中断服务函数的首地址,CPU根据中断向量表里的地址跳转到中断服务函数。仔细观察中断向量表可以看到,一些中断向量对应于多个中断源。例如,地址为0 xFFEAh的Timer_A3中断,当TACCR1中断标志位CCIFGs置位或者TAIFG置位都会跳转到该向量。又如具备中断功能的P1和P2端口,端口中的任意一个管脚发生中断都会跳转到对应的中断向量。这种中断就叫做多源中断。对于多源中断,中断源中任意一个中断发生都会跳转到公用的中断向量表,这时需要通过中断标志位区别具体的中断源。表3-1为MSP430F15x,MS

13、P430F16x,MSP430F161x系列中断向量表。中断系统中断系统西安电子科技大学出版社南京航空航天大学金城学院表3-1MSP430F15x、MSP430F16x、MSP430F161x系列中断向量表中断源中断标志系统中断中断向量优先级上电WDTIFG复位0FFFEh15外部复位KEYV最高看门狗FLASH口令NMINMIIFG不可屏蔽中断0FFFCh14晶体振荡器故障OFIFGFLASH存储器非法访问ACCVIFGTimer_B7TBCCR0CCIFG可屏蔽中断0FFFAh13Timer_B7TBCCR1toTBCCR6CCIFGs,TBIFG可屏蔽中断0FFF8h12比较器ACAIF

14、G可屏蔽中断0FFF6h11看门狗定时器WDTIFG可屏蔽中断0FFF4h10USART0接收URXIFG0可屏蔽中断0FFF2h9USART0发送UTXIFG0可屏蔽中断0FFF0h8I2C发送/接收I2CIFG中断系统中断系统西安电子科技大学出版社南京航空航天大学金城学院ADC12ADC12IFG可屏蔽中断0FFEEh7Timer_A3TACCR0CCIFG可屏蔽中断0FFECh6Timer_A3TACCR1and可屏蔽中断0FFEAh5TACCR2CCIFGs,TAIFGI/O端口P1P1IFG.0toP1IFG.7可屏蔽中断0FFE8h4USART1接收URXIFG1可屏蔽中断0FFE

15、6h3USART1发送UTXIFG1可屏蔽中断0FFE4h2I/O端口P2P2IFG.0-P2IFG.7可屏蔽中断0FFE2h1DAC12DAC12_0IFGDAC12_1IFG可屏蔽中断0FFE0h0DMADMA01FGDMA1IFG最低DMA2IFG中断系统中断系统西安电子科技大学出版社南京航空航天大学金城学院3.2.3中断相关寄存器的设置如3.1.1节所述,MSP430F169端口P1和P2的全部8位都可实现外部事件的中断处理。每一个I/O位都可独立编程。P1与P2完全相同,对P1和P2模块分配一个单独向量。引脚P1.0至P1.7和P2.0至P2.7可用作中断源,向量包含因中断事件引发装

16、入PC的存储器地址。P1和P2口分别有7个寄存器用于控制I/O引脚:输入寄存器输出寄存器方向寄存器(PxDIR)中断标志寄存器(PxIFG)中断触发沿选择寄存器(PxIES)中断使能寄存器(PxIE)功能选择寄存器(PxSEL)中断系统中断系统西安电子科技大学出版社南京航空航天大学金城学院在进行中断操作时,不仅需要设置功能选择寄存器PxSEL和方向选择寄存器PxDIR,还需要设置其中3个与中断相关的寄存器:(1)中断标志寄存器PxIFG中断标志寄存器有8个标志位,它们含有相应引脚是否有待处理的中断信息,即相应相应引脚是否有中断请求。位76543210R/WPxIFG.7PxIFG.6PxIFG

17、.5PxIFG.4PxIFG.3PxIFG.2PxIFG.1PxIFG.0初始值00000000PxIFG.y=0:y引脚无中断申请PxIFG.y=1:y引脚有中断申请中断系统中断系统西安电子科技大学出版社南京航空航天大学金城学院(2)中断触发沿选择寄存器PxIES有些中断不设置中断标志,这类中断只要中断条件满足(边沿到达),就会一直向MCU发出中断申请。这种中断有其特殊性,不产生中断标志,因此不能被“挂起”。如果由于等待的时间过长而得不到响应,则可能会因为中断条件结束(边沿取消)而失去一次服务机会。如果允许Px口的某个引脚中断,还需定义该引脚的中断触发沿。位76543210R/WPxIES.

18、7PxIES.6PxIES.5PxIES.4PxIES.3PxIES.2PxIES.1PxIES.0初始值00000000PxIES.y=0:y引脚上升沿作为中断申请PxIES.y=1:y引脚下降沿作为中断申请中断系统中断系统西安电子科技大学出版社南京航空航天大学金城学院(3)中断使能寄存器PxIEPxIE寄存器的每一位使能与对应的引脚相联系。中断允许使能寄存器清“0”是为了防止未开通使用的中断源由于意外情况向CPU申请中断。位76543210R/WPxIE.7PxIE.6PxIE.5PxIE.4PxIE.3PxIE.2PxIE.1PxIE.0初始值00000000PxIE.y=0:禁止响应y

19、引脚上的中断PxIE.y=1:允许响应y引脚上的中断中断系统中断系统西安电子科技大学出版社南京航空航天大学金城学院综上所述,作为外部中断申请的端口P1和P2引脚,应设置下列相应寄存器:设置功能选择寄存器PxSEL.y对应位为0(基本I/O功能);设置方向选择寄存器PxDIR.y对应位为0(输入);设置PxIES.y选择中断源有效信号类型是上升还是下降沿;设置PxIE.y打开分中断允许位;设置GIE=1打开总中断允许位。注意:在中断程序中,由于端口的8个引脚共用一个中断向量,当有多个引脚做中断源时,需利用PxIFG判断产生中断的中断源引脚;在中断子程序中应清除PxIFG相应的中断标志位。中断系统

20、中断系统西安电子科技大学出版社南京航空航天大学金城学院还有一些特殊功能的寄存器用来设置内部中断:中断使能寄存器1和2、中断标志寄存器1和2,寄存器各位的含义如下:(1)中断使能寄存器1和2Address765432100hUTXIE0URXIE0ACCVIENMIIEOFIEWDTIErw-0rw-0rw-0rw-0rw-0rw-0rw-0rw-0WDTIE:看门狗定时器中断使能OFIE:振荡器默认中断使能NMIIE:不可屏蔽中断使能ACCVIE:Flash存储器访问违规中断使能URXIE0:USART0:UART和SPI接收中断使能UTXIE0:USART0:UART和SPI发送中断使能中断

21、系统中断系统西安电子科技大学出版社南京航空航天大学金城学院Address7654321001hUTXIE1URXIE1rw-0rw-0URXIE1:USART1:UART和SPI接收中断使能UTXIE1:USART1:UART和SPI发送中断使能(2)中断标志寄存器1和2Address7654321002hUTXFG0URXIFG0NMIIFGOFIFGWDTIFGrw-0rw-0rw-0rw-0rw-0rw-0rw-0rw-0WDTIFG:设置看门狗定时器属性或(设置看门狗定时器溢出(看门狗模式)或者违反安全密钥重置电源,或RST/NMI引脚复位模式复位条件)。中断系统中断系统西安电子科技大

22、学出版社南京航空航天大学金城学院OFIFG:振荡器故障标志设置NMIIFG:设置RST/NMI引脚URXIFG0:USART0:UART和SPI接收标志UTXIFG0:USART0:UART和SPI发送标志Address7654321003hUTXIFG1URXIFG1rw-0rw-0URXIFG1:USART1:UART和SPI接收标志UTXIFG1:USART1:UART和SPI发送标志中断系统中断系统西安电子科技大学出版社南京航空航天大学金城学院3.2.4中断的优先级别在MSP430中,不同的中断有各自固定的中断优先级。当有多个中断同时请求时,MSP430CPU将响应优先级最高的中断请求

23、。在MSP430中,中断优先级仅用于裁决同时产生的中断请求。如果在某一中断服务子程中置位GIE(即允许嵌套),则任何中断请求均将中断正在执行的中断服务子程(中断嵌套),而不管中断的优先级如何。即在允许嵌套的情况下,低优先级的中断请求可以中断高优先级的中断服务子程的运行,同级的中断也可以相互嵌套。如图3-4所示,越靠近CPU/NMIRS,中断优先级越高。中断系统中断系统西安电子科技大学出版社南京航空航天大学金城学院图3-4中断优先级排列顺序图中断系统中断系统西安电子科技大学出版社南京航空航天大学金城学院3.2.5中断的处理过程微控制器使用过程中一些突发的程序跑飞问题,很多时候都是由于没有正确地处

24、理中断造成的。中断发生的先决条件是对中断使能位使能,非屏蔽中断要求其独立的中断使能开启;可屏蔽中断要求全局中断使能和自身中断使能同时启用。当中断请求到达,CPU从接受中断请求到开始执行中断服务函数的第一条指令需要56个CPU周期。前面介绍过MSP430有两种CPU,分别是CPU和CPUX。其中CPU处理过程耗费6个CPU周期,而CPUX处理过程耗费5个CPU周期。中断请求接收后,会按照以下顺序处理:CPU执行完当前指令。中断和CPU一般不是同步的或者CPU正在执行的指令不是单周期指令,所以CPU先处理完当前指令;指向下一条CPU指令的PC被压栈;中断系统中断系统西安电子科技大学出版社南京航空航

25、天大学金城学院状态寄存器SR压栈。步骤2和步骤3的目的是保护现场,为中断服务函数执行完之后恢复之前运行状态做准备。选择最高优先级的中断进行服务。中断优先级在这个时候就会发挥作用;单源中断标志位会被自动清零,多源中断标志位需要软件清零。因为具备I/O中断功能的P1、P2端口中断标志位属于多源中断标志位,其中断标志位不会自动清零,需要在代码中手动清零;状态寄存器SR被清零,将会终止任何低功耗状态,并且全局中断使能(GIE)被关闭。MSP430在接收了中断后由于SR的清零操作自动关闭全局中断使能,就是说默认状态下是不允许中断嵌套的,若用到中断嵌套的话需要在中断服务函数,打开全局中断;中断向量中存储的

26、中断服务函数地址被装载到PC中开始执行中断服务函数。中断系统中断系统西安电子科技大学出版社南京航空航天大学金城学院中断服务函数的最后一条汇编指令是RETI,表示从中断服务函数中返回。中断返回过程如图3-5所示。MSP430的返回过程比进入过程要快一些,主要是因为返回过程的时候CPU指令已经执行完。返回过程对于CPU需要5个CPU周期,对于CPUX需要3个CPU周期。按照下面的顺序执行返回操作:状态寄存器SR出栈,SR的设置会立即生效。如果响应中断前CPU处于低功耗模式,则仍然恢复低功耗模式。PC指针出栈,接着执行中断前的代码。响应中断时,单中断源标志中断请求的中断请求标志位自动复位。多中断源标

27、志位则需要软件进行复位。在使用中断时,如果某个中断开启,则一定要写中断服务函数,即便中断服务函数为空操作。这个过程是对中断向量赋值,避免中断发生后,程序跑飞。中断处理过程如图3-5所示。中断系统中断系统西安电子科技大学出版社南京航空航天大学金城学院(a)进入中断服务程序执行示意图(b)从中断返回执行顺序示意图图3-5中断处理过程中断系统中断系统西安电子科技大学出版社南京航空航天大学金城学院注意:若有多个中断同时请求,CPU先响应优先级最高的中断请求;当中断发生时,MSP430内部对应有一个标志被置位,中断程序之后,应确保该标志的值已清零,否则被当成又一次的中断申请;对于单一中断标志的中断请求,

28、CPU会自动清零该中断标志;对于有多个中断标志的中断源请求,用户在中断子程中用这些标志判断产生的具体子中断源,中断标志的清零由用户在使用完后编程清零。中断系统中断系统西安电子科技大学出版社南京航空航天大学金城学院3.2.6可屏蔽中断程序设计(1)编程步骤编程前应了解可屏蔽硬中断的响应过程,了解相关的寄存器和引脚与中断响应过程的关系。主程序-做好相关设置:中断源发出中断申请时CPU能够响应的准备工作。主程序流程如图3-6所示。中断程序-处理与中断源有关的关键任务。中断服务子程序流程如图3-7所示。中断系统中断系统西安电子科技大学出版社南京航空航天大学金城学院图3-6主程序流程图3-7中断程序流程

29、中断系统中断系统西安电子科技大学出版社南京航空航天大学金城学院C语言中断程序结构:_interruptvoidintName(void).定义了一个函数名为intName的中断程序结构上与普通函数的区别是:使用了关键字_interrupt;反汇编中断程序返回的语句是RETI,而不是RET。设置中断向量-根据中断源在中断向量表的相应位置,设置中断向量。根据中断源确定中断类型号N,将中断程序的入口地址放在中断向量表0FFE0H+N*2处。参考表3-1MSP430F15x,MSP430F16x,MSP430F161x系列中断向量表。中断系统中断系统西安电子科技大学出版社南京航空航天大学金城学院C语言

30、程序设置中断向量方法:在中断程序前使用#pramavetor=偏址语句,将中断程序的入口地址放到0 xFFE0H+偏址的中断向量表中。#pragmavector=N*2/使用中断类型号计算偏址_interruptvoidintName(void).#pragmavector=PORT1_VECTOR/使用符号表示的中断偏址_interruptvoidintName(void).中断系统中断系统西安电子科技大学出版社南京航空航天大学金城学院(2)中断程序举例中断编程举例(以P1.0上的中断为例),用C语言编写程序。/P1.3接入外部信号,触发中断后驱动P1.0#includeintmain(vo

31、id)WDTCTL=WDTPW+WDTHOLD;P1DIR|=BIT0;/设置P1.0口为输出口P1IE|=BIT3;/P1.3中断使能P1IES|=BIT3;/P1.3高低电平触发P1REN|=BIT3;/使能P1.3内部上拉电阻P1IFG&=BIT3;/清除P1.3口的中断标志寄存器_bis_SR_register(LPM4_bits+GIE);/进入低功耗模式中断系统中断系统西安电子科技大学出版社南京航空航天大学金城学院/端口P1的中断服务程序#pragmavector=PORT1_VECTOR_interruptvoidPort_1(void)P1OUT=BIT0;/驱动P1.0P1I

32、FG&=BIT3;/清除P1.3口的中断标志寄存器中断系统中断系统西安电子科技大学出版社南京航空航天大学金城学院3.3 定时器3.3.1看门狗定时器3.3.216位定时器A目录目录西安电子科技大学出版社南京航空航天大学金城学院3.3.1看门狗定时器WDT的主要功能是当程序发生异常时使系统重启。如果所选择的定时时间到了,则产生系统复位。在应用中如不需要此功能,可配置成通用定时器并且当到达到预定时间时可产生中断。WDT特性包括:8种软件可选的定时时间看门狗工作模式定时器工作模式带密码保护的WDT控制寄存器可选择时钟源允许关闭以降低功耗时钟故障保护定时器定时器西安电子科技大学出版社南京航空航天大学金

33、城学院看门狗定时器原理图如图3-8所示。图3-8看门狗定时器原理图定时器定时器西安电子科技大学出版社南京航空航天大学金城学院3.3.2 16位定时器ATimer_A是一个16位的定时计数器,同时多达7个捕获/比较寄存器。Timer_A支持多路捕获/比较功能,PWM输出以及定时功能。Timer_A也有扩展向量功能。中断可以来自定时器溢出或者任意的捕获/比较寄存器。Timer_A特征包括:4种模式的异步16位定时/计数器;可选择配置的时钟源;多达7个可配置的捕获/比较寄存器;可配置的PWM输出功能;异步输入和同步锁存;对所有Timer_A中断快速响应的中断向量寄存器。定时器定时器西安电子科技大学出

34、版社南京航空航天大学金城学院Timer_A的框图如图3-9所示。图3-9Timer_A框图定时器定时器西安电子科技大学出版社南京航空航天大学金城学院如图3-9,定时器A主要包含的模块如下:(1)16位定时计数器16位定时/计数寄存器,TAR,随着每个时钟信号的上升沿增或者减(取决与操作模式)。TAR可以被软件读或者写。此外,当定时器在溢出时,将产生中断。TAR可以被TACLR位清除。当计数器工作在增/减计数模式时,置位TACLR也可以清除时钟分频器和计数方向。(2)时钟源的选择和分频定时器的时钟TACLK可以选择ACLK,SMCLK或者来自外部的TACLK。时钟源由TASSELx位来选择。选择

35、的时钟源可以直接得到,或者通过IDx位经过2、4、8分频得到。当TACLR置位时,分频器复位。定时器定时器西安电子科技大学出版社南京航空航天大学金城学院(3)定时器模式控制MCx模式说明00停止模式定时器停止01增计数模式定时器重复地从0计数到TACCR010连续计数模式定时器器重复地从0计数到0 x0FFFFH11增减计数模式定时器重复地从0增计数到TACCR0减计数到0增计数模式增计数模式用于计数周期不是0 x0FFFFH的情况。定时器重复的计数到寄存器TACCR0的值,而TACCR0取决与计数周期,正如图3-10所示。定时器的计数周期为TACCR0+1。当定时器的值与TACCR0相等时,

36、定时器重新从零开始计数。当定时器TAR的值大于TACCR0时,再选择增计数模式,定时器TAR立即重新从0开始计数。定时器定时器西安电子科技大学出版社南京航空航天大学金城学院图3-10增计模式下计数过程当定时器计数到TACCR0时,中断标志TACCR0CCIFG置位。当计数器由TACCR0计数到0时,中断标志TAIFG置位。图3-11表示了标志位的置位情况。图3-11增计模式下中断标志位定时器定时器西安电子科技大学出版社南京航空航天大学金城学院当定时器正在运行时改变TACCR0,如果新的计数周期大于或者等于旧的计数周期,定时器将一直计数到新的计数周期。如果新的计数周期小于旧的计数周期,那么定时器

37、TAR即复位回归到0。但是,在定时器回到0之前会多计数一步。连续计数模式在连续计数模式中,定时器重复地计数到0 x0FFFFH,然后从0开始重新计数,如图3-12所示。其它捕获/比较寄存器和捕获/比较寄存器TACCR0工作方式一样。图3-12连续计数模式计数器定时器定时器西安电子科技大学出版社南京航空航天大学金城学院当定时器从0FFFFh计数到0时,中断标志TAIFG置位,图3-13表示了标志位的置位情况。图3-13连续计数模式标志位的置位情况定时器定时器西安电子科技大学出版社南京航空航天大学金城学院连续计数模式可用来产生独立的时间间隔和输出频率。每个时间间隔完成时,产生一个中断。在中断服务子

38、程序里,将下一个时间间隔的值写入TACCRx寄存器。图3-14显示了两个独立的时间间隔t0和t1写入各自的捕获/比较寄存器的情况。在此应用中,时间间隔由硬件控制,而不是软件,同时也不受中断延时的影响。使用捕获/比较寄存器,最多可以产生7个独立的时间间隔或者输出频率。图3-14连续计数模式的时间间隔定时器定时器西安电子科技大学出版社南京航空航天大学金城学院定时器定时器时间间隔也可以由其它模式产生,那时TACCR0作为计数周期寄存器。由于旧的TACCRx与新的定时周期之和比TACCR0的值大,因此它们的处理会复杂得多。当以前的TACCRx值加上tx比TACCR0值大时,那么必须减去TACCR0的值

39、以获取正确的时间间隔。增减计数模式增减计数模式在定时周期不是0 x0FFFFH且需要产生对称脉冲的情况下使用。在该模式下,定时器重复地增计数到寄存器TACCR0的值,然后反向减计数到0,如图3-15所示。计数周期是TACCR0值的2倍。图3-15增减计数模式定时器定时器西安电子科技大学出版社南京航空航天大学金城学院计数方向是固定的。这就使定时器停止后重新启动,定时器将按照停止时计数器的计数方向重新计数。如果不需要这样,TACLR位必须置位,以清除计数方向。同时TACLR位也将清除TAR的值和TACLK分频器。在增减计数模式下,中断标志TACCR0CCIFG和TAIFG在一个周期内仅置位一次,且

40、相隔1/2个计数周期。当定时器TAR的值从TACCR0-1增计数到TACCR0时,中断标志TACCR0CCIFG置位,当定时器从0 x0001H减计数到0 x0000H时,中断标志TAIFG置位。图3-16表示标志位的置位情况。图3-16增减计数模式标志位的置位定时器定时器西安电子科技大学出版社南京航空航天大学金城学院当计数器正在运行时,改变TACCR0的值,如果定时器正在减计数,则定时器将会继续减到0,定时器减到0后,新的周期才有效。当定时器正在增计数,新的计数周期大于或者等于原来的计数周期,或者比当前的计数值大,定时器会增计数到新的计数周期,再反向计数。当计数器正在增计数,新的计数周期小于

41、当前的计数值,定时器立即开始减计数。但是,在定时器减计数之前有一个额外的计数。增减计数模式的使用增减计数模式支持在输出信号之间有死区时间的应用(见Timer_A输出章节)。例如,为了避免过载情况,驱动一个H桥的两路输出不能同时为高。图3-17展示本例的tdead为:tdead=ttimer(TACCR1TACCR2)其中:Tdead两路同时输出时没有反映的时间Ttimer定时器的时钟周期定时器定时器西安电子科技大学出版社南京航空航天大学金城学院TACCRx捕获/比较寄存器x的值TACCRx寄存器没有缓冲,写入时立即更新。因此,任何需要的死区时间都不会自动保持。图3-17自动模式的输出单元定时器

42、定时器西安电子科技大学出版社南京航空航天大学金城学院(4)捕获/比较模块在目前的Timer_A中,有三个或者五个相同的捕获/比较模块。每个模块都可用于捕获定时器的数据或者产生定时间隔。捕获模式:当CAP=1时,捕获模式被选择。捕获模式用来记录事件发生的时间。它可用于速度的计算或者时间的测量。捕获输入CCIxA和CCIxB由CCISx位选择是与外部的引脚相连还是来自内部的信号。CMx位选择捕获输出信号的触发沿,上升沿、下降沿或者两者都捕获。在所选择的输入信号的触发沿,一次捕获发生。如果一次捕获发生:定时器的值被复制到TACCRx寄存器中断标志CCIFG置位输入信号的电平可以通过CCI位在任意时刻

43、读取。MSP430 x1xx系列设备可能由不同的信号连接CCIxA和CCIxB。可以通过设置器件的datasheet连接这些信号。定时器定时器西安电子科技大学出版社南京航空航天大学金城学院捕获信号和定时器时钟可能是异步的,这将会引起时间竞争。置位SCS位将会在一下定时器时钟内使捕获与定时器时钟同步。建议置位SCS位使捕获信号和定时器时钟同步。图3-18中说明了这一点。图3-18捕获信号(SCS=1)定时器定时器西安电子科技大学出版社南京航空航天大学金城学院定时器定时器在任一捕获/比较寄存器中,当在第一次捕获的值读出之前,第二次捕获发生,将会产生一个溢出逻辑。当这种情况发生时,COV位被置位,如

44、图3-19所示。COV位必须通过软件清除。图3-19捕获循环定时器定时器西安电子科技大学出版社南京航空航天大学金城学院(5)输出单元每个捕获/比较模块都包含一个输出单元。输出单元产生的输出信号为PWM信号。每个输出单元有8个工作模式,可以产生基于EQU0和EQUx的各种信号。输出模式取决于OUTMODx位,如表3-2所述。除模式0外,其它的输出都在定时器时钟上升沿时发生变化。输出模式2、3、6和7不适合输出单元0,因为EQUx=EQU0。表3-2输出模式OUTMODxModeDescription0输出输出信号取决与寄存器CCTLx中的OUTx位。当OUTx更新时输出信号立即更新。1置位输出信

45、号在定时器计数到TACCRx时置位,并保持置位直到定时器复位或者另外的输出模式被选择并影响输出为止。定时器定时器西安电子科技大学出版社南京航空航天大学金城学院10翻转/复位输出在定时器计数到 TACCRx 时翻转,在定时器计数到TACCR0时复位。11置位/复位输出在定时器计数到 TACCRx 时置位,在定时器计数到TACCR0时复位。100翻转输出在定时器计数到TACCRx时翻转,输出周期是定时器周期的两倍。101复位输出在定时器计数到TACCRx时复位,并保持复位直到另外的输出模式被选择并影响输出为止。110翻转/置位输出在定时器计数到 TACCRx 时翻转,在定时器计数到TACCR0时置

46、位111复位/置位输出在定时器计数到 TACCRx 时复位,在定时器计数到TACCR0时置位。定时器定时器西安电子科技大学出版社南京航空航天大学金城学院输出举例1:定时器处于增计数模式当定时器计数到TACCRx或者从TACCR0计数到0时,OUTx按选定的输出模式发生变化。如图3-20所示例子,该例使用了TACCR0和TACCR1。图3-20输出举例-定时器处于增计数模式定时器定时器西安电子科技大学出版社南京航空航天大学金城学院输出举例2:定时器处于连续计数模式当定时器计数到TACCRx和TACCR0时,OUTx按选定的输出模式发生变化。如图3-21所示例子,该例使用了TACCR0和TACCR

47、1。图3-21输出举例-定时器处于连续计数模式定时器定时器西安电子科技大学出版社南京航空航天大学金城学院输出举例3:定时器处于增减计数模式当定时器在任意计数方向上等于TACCRx和TACCR0时,OUTx按选定的输出模式发生变化。如图3-22所示例子,该例使用了TACCR0和TACCR1。图3-22输出举例定时器处于增减计数模式定时器定时器西安电子科技大学出版社南京航空航天大学金城学院TACCR0CCIFG拥有Timer_A中断最高的优先级,并且有一个专用的中断向量,如图3-23所示。当进入TACCR0中断服务程序时,TACCR0CCIFG标志自动复位。图3-23捕获/比较TACCR0中断标志

48、定时器定时器西安电子科技大学出版社南京航空航天大学金城学院3.4 通用串行通信模块3.4.1通信系统简介3.4.2MSP430单片机的串行通信功能3.4.3USART模块3.4.4USCI模块目录目录西安电子科技大学出版社南京航空航天大学金城学院3.4.1 通信系统简介现代基于单片机的系统的重要指标就是其通信能力,即和周围环境中其他系统交换信息的能力。通信接口可以更新固件或加载本地参数,还可以在分布处理中交换应用程序的信息。数字设备之间的通信分为并行通信和串行通信。在并行通信系统中,发送的数值的每位都具有独立的信号线,多条线上的逻辑电平共同形成了要发送的信息的值。如图3-24所示。图3-24A

49、SCII字符W并行传输通用串行通信模块通用串行通信模块西安电子科技大学出版社南京航空航天大学金城学院在串行通信系统中,物理发送介质只需要一条信号线。发送器根据发送器和接收器之间指定的速率发送比特序列。要使通信双方同步,还需要一些额外的信息。起始位:加到要发送信息的开头,以识别一个新数据的开始。停止位:加到要发送信息的尾部,表示传输结束。图3-25给出了一个ASCII字符W串行传输的例子。图3-25ASCII字符W串行传输通用串行通信模块通用串行通信模块西安电子科技大学出版社南京航空航天大学金城学院两种传输模式的一般特征如表3-3所示。串行通信比并行通信应用广泛,尤其是目前串行通信的传输速率已大

50、幅提升,更适合大多数应用,因此本章重点介绍串行通信模块。表3-3串行传输和并行传输的优缺点特征并行串行总线每位一条线一条线序列一个字的所有位同步传输序列位序列传输率高低总线长度短距离长、短距离皆可花费高低重要特征要求不同位同步传输同步传输需要起始位和停止位,异步通信需要其他位用来同步通用串行通信模块通用串行通信模块西安电子科技大学出版社南京航空航天大学金城学院两种典型的串行传输模式如下:异步:发送器确定传输速率(波特率),接收器必须知道该速率,并在检测到起始位后立即和发送器同步。异步通信只需要一个发送器、一个接收器和一根线,是实现串行通信最简单、廉价的方式。异步通信中通信设备之间的时钟是相互独

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 继续教育

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:文库网官方知乎号:文库网

经营许可证编号: 粤ICP备2021046453号世界地图

文库网官网©版权所有2025营业执照举报