您的位置 首页 电子

MSP430F149单片机的内部守时器A守时1秒钟完成LED闪耀

includemsp430x14xh********************函数声明******************voidInitClock();********************主函数*

#include “msp430x14x.h”
//********************函数声明******************
void InitClock();
//********************主函数********************
void main(void)
{
WDTCTL = WDTPW + WDTHOLD; // 关看门狗
InitClock(); // 初始化时钟
P1DIR |= BIT0; // 设P1.0为输出
CCTL0 = CCIE; // 使能CCR0中止
CCR0 = 500;
TACTL = TASSEL_2 + MC_1; // 子体系时钟, 增计数模
_BIS_SR(LPM0_bits + GIE); // 低功耗形式0/ 开总中止
}
//*******************************************
函数称号:InitClock
能:初始化时钟函数
数:无
返回值 :无
//********************************************
void InitClock()
{
unsigned int oscdly;
BCSCTL1 &= ~XT2OFF; //清OSCOFF/XT2,使XT2振动器有用
do
{
IFG1 &=~OFIFG; //清OFIFG
oscdly=255;
while(oscdly–); //延时等候
}
while(IFG1 & OFIFG); //直到OFIFG=0停止
DCOCTL |= DCO0 + DCO1 + DCO2; // Max DCO
BCSCTL1 |= RSEL0 + RSEL1 + RSEL2; // XT2on, max RSEL
//这两句设置DCOCTL和BCSCTL1,设置DCO的频率
//一般来说,PUC复位之后,假如没有特定设置体系时钟MCLK,MCU将默
//认DCO振动器发生的频率为体系时钟,不过假如设置BCSCTL2来选定
//MCLK的时钟源的话(如:BCSCTL2 |= SELM_2+SELS;)体系时钟便是由
//XT2振动而来.
//————————————————————-
BCSCTL2 |= SELM_2+SELS; //SMCLK and MCLK uses XT2
//这一句设置BCSCTL2,选定MCLK和SMCLK的时钟源
//留意:ACLK只能来源于LFXT1.能够在BCSCTL1里设置ACLK的分频。
//————————————————————-
}
//*******************************************
函数称号:Timer_A
能:定时器A中止服务子函数
数:无
返回值 :无
//********************************************
#pragma vector=TIMERA0_VECTOR
__interrupt void Timer_A (void)
{
P1OUT ^= BIT0; // 取反P1.0
}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/dianzi/257763.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部