东南大学MCU第三四次实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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。