东南大学MSP实验报告第三,四次解析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
东南大学自动化学院
实验报告
课程名称: MCU技术及综合课程设计
第 3 次实验
实验名称:实验三:定时器输出PWM波形
院(系):自动化学院专业:自动化
姓名:杨淳元学号:08012131
实验室:实验组别:
同组人员:实验时间:2015年5月7日评定成绩:审阅教师:
目录
一、实验目的和要求 (2)
二、实验原理 (2)
三、实验方案与实验步骤 (6)
四、实验设备与器材配置 (7)
五、实验记录 (7)
七、思考题或讨论题 (8)
八、附上源代码 (9)
一、实验目的和要求
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-1 Timer_A 模块框图
2)Timer A 控制寄存器TA0CTL详细定义如图3-2所示。
图3-2 Timer A 控制寄存器TA0CTL
3)定时器中断的中断向量中包含一个独立中断和若干个共源中断,Timer_A模块的中断分类如图3-3所示。
图3-3 Timer_A模块的中断向量分类图
1)独立中断源的中断处理
TA0CCTL0 = CCIE; //CCR0 中断使能
#pargma vector = TIMER0_A0_VECTOR //中断向量定义,可查询头文件得到
__interrupt void TIMER0_A0_ISR(void)
{
//添加中断处理代码
}
2)共源中断向量寄存器TAxIV
图3-4共源中断向量寄存器TAxIV
共源中断程序switch处理方式:
#pragma vector=TIMER0_A0_VECTOR //共源中断入口
__interrupt void TIMER0_A0_ISR(void)
{
switch(__even_in_range(TA0IV,14)) //共源中断处理
{
case 0: fun_no(); break; // No interrupt
case 2: fun_CCR1(); break; // CCR1 interrupt
case 4: fun_CCR2(); break; // CCR2 interrupt
case 6: fun_CCR3(); break; // CCR3 interrupt
case 8: fun_CCR4(); break; // CCR4 interrupt
case 10: fun_CCR5(); break; // CCR5 interrupt
case 12: fun_CCR6(); break; // CCR6 interrupt
case 14: fun_overflow(); break; // overflow
default: fun_default(); break; // default
}
}
3)PWM原理PWM 技术的三个要素,具体如图3-5所示, PWM频率计算见图3-6。
(1) Frequency 时钟频率
(2) Duty cycle 占空比
(3) Amplitude 信号幅度
图3-5 PWM计数三要素示意图
图3-6 PWM频率计算示意图
4)实验箱I/O硬件电路如图3-7所示。
图3-7 实验箱I/O口P1的硬件电路图三、实验方案与实验步骤
四、实验设备与器材配置
MSP430F6638,数据线,电脑。
五、实验记录
设置p1.2和p1.3为输出,并且把这两个端口接上示波器观察现象。P1.2端口输出的是占空比为75%的PWM波形.
P1.3端口输出的是占空比为25%的PWM波形。
六、实验总结
本次试验我学会了利用定时器timerA输出pwm的波形,主要的工作就是设置寄存器计数
值。通过更改控制寄存器能够使用不同的模块,这对今后的程序设计是很重要的启发
七、思考题或讨论题
(1)430时钟系统产生的ACLK、MCLK和SMCLK各自用于什么场合?系统复位时三种时钟输出的默认值为多少?
ACLK为低速时钟,主要为片内一些低速设备提供低速时钟。MCLK一般为CPU提供运行时钟,但是也可以用于其他高速模块(如定时器和数模转换模块)。SMCLK为高速时钟,主要为片内一些高速外设提供高速时钟。
(2)MSP430F6638有哪些定时器模块?其中Timer_A0有多少捕获/比较器?
三个Timer_A,一个Timer_B。
Timer_A0有5个捕获/比较器。
(3)定时器有哪几种工作模式?各种工作模式的特点和定时周期如何计算?其最大定时周期分别是多少?
1)4种,通过设定MC1,MC2实现。
00:停止模式:定时器停止
01:增计数模式:定时器重复从0计数到TAxCCR0
10:连续计数模式:定时器重复从0计数到0FFFFh
11:增\减计数模式:定时器重复从0计数到TAxCCR0,再减计算到0
2)特点如上。定时周期取决于所选择的时钟,周期为计数最大值除以时钟频率。最大定时周期:
增计数模式:(TAxCCR0+1)/时钟源。
连续奇数:10000h/时钟源
增减计数:(2*TAxCCR0+1)/时钟源