ImageVerifierCode 换一换
格式:DOCX , 页数:40 ,大小:1.24MB ,
资源ID:29877252      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/29877252.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(MSP430定时器A的使用含OUTMOD模式详解及运用doc.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

MSP430定时器A的使用含OUTMOD模式详解及运用doc.docx

1、MSP430定时器A的使用含OUTMOD模式详解及运用doc第四讲定时器A的使用MSP430F413芯片中含有TimerA3模块,如图1-2所示。其常用的外引线有三条:TACLK、 TA1 和 TA2。TACLK :定时器_A输入时钟(48脚),与P1.6和ACLK输出共用同一引脚。TA1 :定时器_A的第一通道输入、输出引脚(51脚)。捕获方式:CCI1A输入;比较方式:OUT1输出。TA2 :定时器_A的第二通道输入、输出引脚(45脚)。捕获方式:CCI2A输入;比较方式:0UT2输出。1定时器A功能及结构定时器A基本结构是一个十六位计数器,由时钟信号驱动工作,结构框图如图 4-1所示。T

2、PSSEL1 TPSSELOC CM 11 CCM10CCJ?A OCCIZB 0C4M 6VCC &图4-1定时器A结构图定时器A具有多种功能,其特性如下:(1) 输入时钟可以有三种选择,可以是慢时钟(ACLK)、快时钟(SMCLK与单片机主时 钟同频)和外部时钟。(2) 能产生的定时中断、定时脉冲和 PWM (脉宽调制)信号,没有软件带来的误差。(3)不仅能捕获外部事件发生的时间,还可选择触发脉冲沿(由上升沿或下降沿触发)。定时器A功能模块主要包括:(1计数器部分:输入的时钟源具有 4种选择,所选定的时钟源又可以1、2、4或8分频 作为计数频率,Timer_A可以通过选择4种工作模式灵活的

3、完成定时/计数功能。(2)捕获/比较器:用于捕获事件发生的时间或产生时间间隔,捕获比较功能的引入主要是为了提高I/O端口处理事务的能力和速度。不同的MSP430单片机,Timer_A模块中所含有的捕 获/比较器的数量不一样,每个捕获/比较器的结构完全相同,输入和输出都取决于各自所带控制 寄存器的控制字,捕获/比较器相互之间完全独立工作。(3) 输出单元:具有可选的8种输出模式,用于产生用户需要的输出信号,支持 PWM输 出。2定时器工作模式(1停止模式:停止模式用于定时器暂停,并不发生复位,所有寄存器现行的内容在停止 模式结束后都可用。当定时器暂停后重新计数时,计数器将从暂停时的值开始以暂停前

4、的计数方 向计数。例如,停止模式前,Timer_A工作于增/减计数模式并且处于下降计数方向,停止模式 后,Timer_仍然工作于增/减计数模式,从暂停前的状态开始继续沿着下降方向开始计数。如果 不需这样,则可通过TACTL中的CLR控制位来清除定时器的方向记忆特性。(2)增计数模式:捕获/比较寄存器CCR0用作Timer_A增计数模式的周期寄存器,因为 CCR0为16位寄存器,所以该模式适用于定时周期小于 65536的连续计数情况。计数器TAR可 以增计数到CCR0的值,当计数值与CCR0的值相等(或定时器值大于CCR0的值)时,定时器复 位并从0开始重新计数。增计数模式的计数过程如图 4-2

5、所示。通过改变CCR0值,可重置计数 周期。图4-2增计数模式示意图(3)连续计数模式:在需要65536个时钟周期的定时应用场合常用连续计数模式。定时器(4)增/减计数模式需要对称波形的情况经常可以使用增/减计数模式,该模式下,定时器先增计数到 值,然后反向减计数到0。计数周期仍由CCRO定义,它是CCRO计数器数值的2倍 计数过程如图4-4所示。图4-4增/减计数模式3增计数模式应用举例增计数最大值存储器在CCR0,该值计算方法如下:选用辅助时钟时,ACLK频率 周期T=1/32768,若选用250ms中断,贝U CCR0值应为:0.25N 0.25 32768 =8192T转换成十六进制数

6、后N=2000 ( H)MSP430F413单片机定时器A构成的时钟小系统程序清单如下:/*文件名称:MSP413C语言定时程序*文件说明:用MSP430F413定时器A作为定时中断源。*/#i nclude /*文件说明:LCD模块*#defi ne LCD_IN_USE 10/* 数据定义七段译码表*/const un sig ned char NUM_LCD17=0xd7, 0x06, 0xe3, 0xa7, 0x36, 0 40xb5, 0xf5, 0x07, 0xf7, 0xb7, /5 90x77, 0xf4, 0xd1,0xe6, 0xf1, / A E0x71, 0x00; /

7、 F,全熄unsigned char cd_BufLCD_IN_USE; /自定义显示缓冲区,用于要显示的数据un sig ned int con t,y0,y1,y2;*void init_LCD(void)char tmpv;BTCTL = BT_fLCD_DIV32;P5SEL = 0xfc;LCDCTL = LCDON+LCD4MUX+LCDP1;for (tmpv = 0;tmpv10;tmpv+)LCDMEMtmpv = 0x00;/* LCD 清零模块*/void cl_LCD(void)char tmpv;for (tmpv = 0;tmpv10;tmpv+) LCDMEMtm

8、pv = 0x00; /clear LCD void lcd_Display(void) char tmpv; lcd_Buf0=y2/10; lcd_Buf2=16;lcd_Buf3=y1/10; lcd_Buf5=16;lcd_Buf1=y2%10;lcd_Buf4=y1%10;lcd_Buf6=y0/10; lcd_Buf7=y0%10; lcd_Buf8=16; lcd_Buf9=16;for(tmpv=0;tmpvLCD_IN_USE-1;tmpv+)LCDMEMtmpv = NUM_LCDl cd_Buftmpv; / 更新 /* *定时器 A 中断服务程序*/ #pragma v

9、ector=TIMERA0_VECTOR_interrupt void Timer_A(void ) /interruptTIMERA0_VECTOR void Timer_A (void) cont=cont+1;if(cont=4)cont=0;y0=y0+1; /秒加 1if(y0=60)y0=0; y1=y1+1; /60 秒为 if(y1=60)y1=0; y2=y2+1; /60 分为 if(y2=24)y2=0 ; /24 小时再清零 cl_LCD(); lcd_Display();_NOP();void init_TA(void) /初始化定时器 ATACCR0 = 0x200

10、0;TACTL = TASSEL0 + TACLR; / ACLK, 清零 TarTACCTL0 = CCIE; / 中断使能 CCR0TACTL |= MC0; / 设置增模式启动定时器 A /*主程序*/void main(void)WDTCTL = WDTPW +WDTHOLD;SCFQCTL |= SCFQ_4M;init_LCD();init_TA() ;_EINT();cont=0; y0=0; y1=0; y2=0;for (;)_BIS_SR(CPUOFF);_NOP();/ 关 WDT/ 设定主时钟为 4MHz/ 使能中断/关 CPU/ 调试程序使用4输出单元定时器A的输出单

11、元输出模式有8种,增计数模式下输出模式如图4-5所示。IKMt IB特f就览PW kP/KP图4-5输出模式示意图各模式说明如下:(1输出模式0输出模式:输出信号 OUTx由每个捕获/比较模块的控制寄存器 CCTLx 中的OUTx位定义,并在写入该寄存器后立即更新。最终位 OUTx直通。(2) 输出模式1置位模式:输出信号在TAR等于CCRx时置位,并保持置位到定时器复 位或选择另一种输出模式为止。(3) 输出模式2 PWM翻转/复位模式:输出在TAR的值等于CCRx时翻转,当TAR的 值等于CCR0时复位。(4) 输出模式3 PWM置位/复位模式:输出在TAR的值等于CCRx时置位,当TAR

12、的 值等于CCR0时复位。(5) 输出模式4翻转模式:输出电平在TAR的值等于CCRx时翻转,输出周期是定时器 周期的2倍。(6) 输出模式5复位模式:输出在TAR的值等于CCRx时复位,并保持低电平直到选择 另一种输出模式。(7) 输出模式6 PWM翻转/置位模式:输出电平在TAR的值等于CCRx时翻转,当TAR 值等于CCR0时置位。(8) 输出模式7 PWM复位/置位模式:输出电平在TAR的值等于CCRx时复位,当TAR 的值等于CCR0时置位。选用增计数模式、输出模式7产生的PWM输出波形如图4-6所示。5.输出单元应用举例例1. Timer_A用增模式在P1.2/2.0产生两路PWM

13、输出。CCRO计数值为512,通过设定 CCR1和CCR2值,定义两路输出脉宽。使用32kHz ACLK作为TACLK,定时器周期为15.625ms, P1.2 占空比为 75%、P2.0 占空比为 25%。ACLK = TACLK = LFXT1 = 32768Hz, MCLK = SMCLK =DCO = 32xACLK = 1.048576Mhz。外部晶振接于 XIN 和 XOUT。#i nclude void mai n(void)WDTCTL = WDTPW +WDTHOLD;TACTL = TASSEL0 + TACLR;CCR0 = 512;CCTL1 = OUTMOD_7;CC

14、R1 = 384;CCTL2 = OUTMOD_7;CCR2 = 128;P1DIR |= 0x04;P1SEL |= 0x04;P2DIR |= 0x01;P2SEL |= 0x01;TACTL |= MC0;for (;)_BIS_SR(LPM3_bits);_NOP();第五讲 直流电机控制与电动小车制作一、直流电机驱动电路工作原理1)直流电机转向原理直流电机一般采用H桥驱动电路,如图5-1所示。同步改变对角开关管通断状态,就改变了流过电机的电流方向,也就改变了直流电机的转动 方向,达到了控制正、反转的目的。电路工作状态表如表 5-1所示。表5-1H桥电机控制状态表PWMAB电机运行状态

15、0XX停转100停转101反转110正转111停转注:“ 0代表低电平;“1代表高电平。由表5-1可知,H桥电路将电机转动方向控制转化为 A、B两端的电平控制,便于与单片机 接口实现电机转向控制。2)直流电机转速控制原理控制直流电动机所加电压即可控制电机转速。直接调整图 5-1中直流电机所加电压VDD虽然可调整电机转速,但其主要缺点是效率低。为了提高效率,通常采用占空比可调矩形波控制电 机转速,即PWM (脉冲宽度调制)波调速。PWM信号示意如图5-2所示,图中T为设定的脉冲周期,在驱动电机过程中确定不变;t为脉冲的高电平时间,占空比d = t /To将其加于图5-1 电路的PWM端,电机转速

16、与PWM信号占空比成正比。图5-2PWM信号示意图PWM波产生方法有多种,本设计中为了简化电路,直接使用单片机内定时器 A产生PWM控制电机转速。3)电机驱动专用芯片L293D简介图5-1 所示H桥电路仅是原理电路,要转化为实用电路还要做许多工作,因此实际应用中 很少采用。L293D是集成电路芯片,片内含有双 H桥驱动器,引脚图如图5-3所示。输入小电流控制 信号,输出高电压、大电流驱动信号。用逻辑电平控制、驱动感性负载(比如继电器, 直流电机和步进电机等)。通过改变芯片控制端的输入电平,即可以对电机进行正反转操作。芯片具有 1.2A峰值输出电流通道,使用简易便。其额定工作电流为1A,最大可达

17、1.5A,Vss电压最小4.5V, 最大可达36V; Vs电压最大值也是36VoL293D是16引脚塑料封装,中间的4个引脚是短路的(为了散热),L293D的Vss和Vs电 源端可分别接入芯片电源和电机驱动电源。L293D功能示意图如图5-4所示(对应20引脚芯片)。表5-2引脚和输出引脚的逻辑关系EN A( B)IN1 ( IN3)IN2( IN4)电机运行情况HHL正转HLH反转H同 IN2(IN4)同 IN1 (IN3)快速停止LXX停止H-桥电路的输入量可以用来设置电机转动方向,使能信号可以用于脉宽调整( PWM),实现电机转速控制。L293D将2个H-桥电路集成到1片芯片上,这就意味

18、着用1片芯片可以同时 控制2个直流电机。每1个直流电机需要3个控制信号EN1、IN1、IN2,其中EN1是使能信号, IN1、IN2为电机转动方向控制信号,IN1、IN2分别为1,0时,电机正转,反之,电机反转。 选用一路PWM连接EN1引脚,通过调整PWM的占空比可以调整电机的转速。4)直流电机驱动电路驱动电路如图5-5所示,单片机PIO端口线P1.0、P1.1驱动光电隔离器中发光二极管,控 制光电三极管。输入为高电平时,三极管饱和导通,反之截止。当 P1.0为高电平、P1.1位低电平时,L293D的IN4为高、IN3为低电平,OUT4为高、OUT3位低电平,电机正转;反之,当 P1.0位低

19、、P1.1为高电机反转;当P1.0 P1.1电平同时为高或低时,电机停转,实现了电机转 向控制。E2是OUT4、OUT3的使能端,高电平有效。当在 E2端加PWM信号时,可实现调速。高 速转动对应的PWM信号占空比为1 ;次高速占空比为0.75;中速转动占空比为0.5;低速转动 占空比为0.25。路地线标志不同,焊接时不能连接。、直流电机控制系统硬件设计直流电机控制系统电路如图5-6所示,是在时钟小系统基础上加入直流电机驱动电路、 按键和功能选择开关电路。功能选择开关在上是电机驱动功能,在下是时钟计时功能。图5-6直流电机控制系统当开关拨到时钟计时功能时,可以通过秒、分、时三个按键来调节时钟显

20、示固定数字,然后 按确定键,时钟便可以在设定时间的基础上开始计时,另外还可以按左侧的复位键,给时钟清零。当开关拨到电机驱动功能时,电机默认为正转,占空比为 0.5,然后通过按键可分别实现:占空比为1的正转,占空比为0.5的正转,占空比为0.5的反转,占空比为1的反转。注意由于 按键的局限性,实现电机以上四种旋转的情况要长按按键,一旦松手电机将按默认的占空比为 0.5的正传旋转。本系统中使用两套电源供电,其一是单片机系统电源,考虑到时钟的低功耗, 使用3.6伏手机电池供电;其二是直流电机电源,直流电机工作时比较耗电, 所以可大容量电池或5V直流电 源供电。5V直流稳压电源电路如图5-7所示。图5

21、-7直流稳压电源电路三、程序设计1)电机控制程序直流电机变速驱动小系统程序是在时钟小系统程序基础上增加了相应的初始化和电机驱动控制程序。初始化部分加于_EINT()语句之后,电机驱动部分加于定时中断程序中 y0=y0+1语句之后。程序清单如下所示:/*文件名称:MSP413C语言定时和直流电机控制程序*文件说明:用MSP413看门狗定时器作为定时中断源。*#i nclude *文件说明:LCD模块*#defi ne LCD_IN_USE 10/* 数据定义七段译码表*const unsigned char NUM_LCD17=0xd7, 0x06, 0xe3, 0xa7, 0x36, /0 4

22、0xb5, 0xf5, 0x07, 0xf7, 0xb7, /5 90x77, 0xf4, 0xd1, 0xe6, 0xf1, / A E 0x71, 0x00;unsigned char cld_BufLCD_IN_USE; / 自定义显示缓冲区,用于要显示的数据unsigned int cont,y0,y1,y2,s_num;/* LCD 模块初始化*/void init_LCD(void)char tmpv;BTCTL = BT_fLCD_DIV32;/ set LCD 时钟/ 置为外围模块LCDCTL = LCDON+LCD4MUX+LCDP1;for (tmpv = 0;tmpv10

23、;tmpv+)LCDMEMtmpv = 0x00;/clear LCD/* * LCD 清零模块*/ void cl_LCD(void)char tmpv;for (tmpv = 0;tmpv10;tmpv+)/* * 更新 LCD 缓冲区的内容,把数据显示到 LCDvoid lcd_Display(void)char tmpv; lcd_Buf0=y2/10; lcd_Buf1=y2%10; lcd_Buf2=16;lcd_Buf3=y1/10; lcd_Buf4=y1%10;lcd_Buf5=16; lcd_Buf6=y0/10;lcd_Buf7=y0%10; lcd_Buf8=16; l

24、cd_Buf9=16;for(tmpv=0;tmpvLCD_IN_USE-1;tmpv+)LCDMEMtmpv = NUM_LCDl cd_Buftmpv; / 更新 LCDMEM 中的内容 /*WDT 中断服务程序*/ interruptWDT_VECTOR void watchdog_timer(void) cont=cont+1;if(cont=4)cont=0;y0=y0+1;s_num = (y0+7)/7;switch (s_num)case 1:P1OUT = 0x40;/秒加 1/以秒计数为敏感量/高速正转break; case 2:P1OUT = 0x40;CCR1 = 38

25、4; break;case 3:P1OUT = 0x40;CCR1 = 256; break;case 4:P1OUT = 0x40;CCR1 = 128; break;case 5:P1OUT = 0x80;CCR1 = 511; break;case 6:P1OUT = 0x80;CCR1 = 384; break;case 7:P1OUT = 0x80;CCR1 = 256; break;case 8:P1OUT = 0x80;CCR1 = 128; break;default : P1OUT = 0x00; break; if(y0=60)/次高速正转/占空比 384/512=0.75/中速正转/占空比 256/512=0.5/低速正转/占空比 12

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1