东南大学MCU第三四次实验

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

东南大学自动化学院

实验报告

课程名称: MCU技术及课程设计

第二次实验

实验三:定时器输出PWM波形

实验四:LED数码管的使用

院(系):自动化专业:自动化

姓名:学号:

实验室:实验组别:

同组人员:实验时间:2015 年5 月7 日评定成绩:审阅教师:

实验三:定时器输出PWM波形

一、实验目的与要求

1.实验目的

(1)学习MP430单片机的时钟原理和定时器使用方法。

(2)认识学习PWM波形的作用及原理。

2.实验要求

编写程序输出1s周期的PWM波形,产生两路PWM波形从引脚P1.2和P1.3分别输出。CCR0中的值定义了PWM信号的周期,CCR1,CCR2中的值定义了PWM信号的占空比。定时使用32.768KHz的ACLK作为输入时钟源,P1.2上的占空比为75%,P1.3上的占空比为25%。

二、实验原理

1)Timer_A定时器模块框图如图3-1所示。

由图3-1可知,Timer_A模块可以有三种时钟源输入。分别是ACLK,SMCLK,TAxCLK。时钟源的选择通过TASSEL信号来完成。被选择的时钟源可以直接送给TIMER模块,或者通过ID信号进行2,4,8分频。选择的时钟信号还可以通过TAIDEX信号进一步做2,3,4,5,6,7或者8分频。当TACLK信号被设置的时候,TIMER的时钟分频逻辑被复位。

图3-1Timer_A模块框图

2)TimerA控制寄存器TA0CTL详细定义如图3-2所示。

图3-2TimerA控制寄存器TA0CTL

3)定时器中断的中断向量中包含一个独立中断和若干个共源中断,Timer_A模块的中断分类如图3-3所示。

图3-3Timer_A模块的中断向量分类图

1)独立中断源的中断处理

TA0CCTL0=CCIE;//CCR0中断使能

#pargmavector=TIMER0_A0_VECTOR//中断向量定义,可查询头文件得到

__interruptvoidTIMER0_A0_ISR(void)

{

//添加中断处理代码

}

2)共源中断向量寄存器TAxIV

图3-4共源中断向量寄存器TAxIV

共源中断程序switch处理方式:

#pragma vector=TIMER0_A0_VECTOR//共源中断入口

__interruptvoid TIMER0_A0_ISR(void)

{

switch(__even_in_range(TA0IV,14))//共源中断处理

{

case0:fun_no();break;//Nointerrupt

case2:fun_CCR1();break;//CCR1interrupt

case4:fun_CCR2();break;//CCR2interrupt

case6:fun_CCR3();break;//CCR3interrupt

case8:fun_CCR4();break;//CCR4interrupt

case10:fun_CCR5();break;//CCR5interrupt

case12:fun_CCR6();break;//CCR6interrupt

case14:fun_overflow();break; //overflow

default:fun_default();break;//default

}

}

3)PWM原理PWM技术的三个要素,具体如图3-5所示,PWM频率计算见图3-6。

(1)Frequency时钟频率

(2)Dutycycle占空比

(3)Amplitude信号幅度

图3-5PWM计数三要素示意图

图3-6PWM频率计算示意图

4)实验箱I/O硬件电路如图3-7所示。

图3-7实验箱I/O口P1的硬件电路图

三、实验步骤

1. 将PC与开发板相连;

2. 建立CCS工程;

3. 选择对该工程进行编译链接,生成.out 文件。然后选择,将程序下载到实验板中。

程序下载完毕之后,可以选择全速运行程序,也可以选择单步调试程序,选择F3 查看具体函数。也可以程序下载之后,按下,软件界面恢复到原编辑程序的画面。再按下实验板的复位键,运行程序。

4. 将示波器输入端分别接开发板的P1.2和P1.3端口查看输出波形。

四、实验现象

P1.2输出75%的PWM波形,P1.3输出25%的PWM波形。

五、实验代码

#include

void main(void)

{

WDTCTL=WDTPW+WDTHOLD;

P1DIR|=BIT2+BIT3;

P1SEL|=BIT2+BIT3;

TA0CCR0=32768;

TA0CCTL1=OUTMOD_7;

TA0CCR1=24576; //75%

TA0CCTL2=OUTMOD_7;

TA0CCR2=8192; //25%

TA0CTL=TASSEL0+MC_1+TACLR;

LPM3;

}

六、预习思考

(1)430时钟系统产生的ACLK、MCLK和SMCLK各自用于什么场合?系统复位时三种时钟输出的默认值为多少?

答:ACLK可由软件选作各个外设模块的时钟信号,一般用于低速外设模块;MCLK主要用于CPU和系统;SMCLK可由软件选作各个外设模块的时钟信号,主要用于高速外设模块。

系统复位时ACLK的频率典型值是32768Hz,即32KHz,MCLK和SMCLK的频率在0.8MHz~1.5MHz,即819.2KHz~1536KHz。

相关文档
最新文档