- 1、本文档共13页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
东南大学_单片机-实验一
实验一 实验二杨阳
一、实验目标:
1. 熟悉FFTB6638实验平台。
2. 熟悉CCS集成开发环境,学习MSP430单片机编程及调试方法。
3. MSP430 IO端口输入、输出操作,按键输入的状态查询、按键的消抖和按键输入的中断获取。
4. 掌握MSP430单片机时钟模块的配置。
二、实验内容:
课堂验收实验:
实验一:
实验内容:
使ACLK频率为16384Hz,并用示波器观测
使SMCLK的频率为2MHz,并用示波器观测
使用按键控制SMCLK的频率在2MHz和16MHz之间切换
关键代码:
UCSCTL3 = SELREF_2;// Set DCO FLL reference = REFO
UCSCTL4 |= SELA_2; // Set ACLK = REFO
UCSCTL0 = 0x0000; // Set lowest possible DCOx, MODx
UCSCTL5 = 0x1000; //set ACLK/2
do {
UCSCTL7 = ~(XT2OFFG + XT1LFOFFG + DCOFFG);
SFRIFG1 = ~OFIFG; // Clear fault flags
}while (SFRIFG1 OFIFG);
__bis_SR_register(SCG0); // Disable the FLL control loop
UCSCTL1 = DCORSEL_2; // Select DCO range 16MHz operation
UCSCTL2 |= 63; // Set DCO Multiplier for 2MHz
// (N + 1) * FLLRef = Fdco, (63 + 1) * 32768 = 2MHz
__bic_SR_register(SCG0); // Enable the FLL control loop
__delay_cycles(63000);
P2IE |= BIT7; P2IFG = ~BIT7;
__enable_interrupt(); while(1);
}
#pragma vector=PORT2_VECTOR
__interrupt void port_2(void)
{
__delay_cycles(5000);
if(P2IN BIT7)
{
__bis_SR_register(SCG0); // Disable the FLL control loop
UCSCTL1 = DCORSEL_5; // Select DCO range 16MHz operation
UCSCTL2 |= 511; // Set DCO Multiplier for 16MHz
// (N + 1) * FLLRef = Fdco, (511 + 1) * 32768 = 16MHz
__bic_SR_register(SCG0); // Enable the FLL control loop
P2IFG =~BIT7;
}
}
实验现象:
1、ACLK=16.39kHz
按键前,SMCLK=2MHz
按键后,SMCLK=16MHz
实验二:
实验内容:试修改PWM的频率为16Hz,占空比为1:2和2:1
关键代码:
#includemsp430f6638.h
void main(void) {
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
P3DIR |= BIT2+BIT3; // P3.2 and P3.3 output
P3SEL |= BIT2+BIT3; // P3.2 and P3.3 options select
TA1CCR0 = 131072-1; // PWM Period
TA1CCTL1 = OUTMOD_7; // CCR1 reset/set
TA1CCR1 = 87381; // CCR1 PWM duty cycle
TA1CCTL2 = OUTMOD_7; // CCR2 reset/set
TA1CCR2 = 43691; // CCR
文档评论(0)