<acronym id="xonnx"></acronym>
      <td id="xonnx"></td>
    1. <pre id="xonnx"></pre>

      1. 專注電子技術學習與研究
        當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

        msp430G2553定時器中斷控制LED每秒進行亮熄變化

        作者:佚名   來源:本站原創   點擊數:  更新時間:2014年08月31日   【字體:

         ///////////////////////////////////////////////////////////////////

        //   msp430G2553的定時器中斷控制LED每秒鐘進行亮熄變化
        ///////////////////////////////////////////////////////////////////
        #include "msp430G2553.h"
        void led_init();
        void timer_init();
        void delay(int);
        //----------------------------------
        void led_init()
        {
          P1DIR|=(1<<6); //P1.6為LED
        }
        //--------------------------
        void timer_init()
        {
          TACCR0 =2500;  //計到2500,約20ms
          TACTL |= TASSEL_2+ID_3+MC_1;
         //TASSEL_x計數器時鐘源選擇,x=0,外時鐘TACLK,1選ACLK,2選SMCLK,3選外部時鐘
        // ID_x是分頻選擇,x=0不分頻,1是2分頻,2是4分頻,3是8分頻后(125K)
        // MC_x是計數模式,x=0,停止,1是up到CCR0,2是連續到滿0xffff,3增減計數,先增到CCR0,再減到0 
          TACCTL0 |= CCIE;                             // CCR0 interrupt enabled
        }
        //--------定時器中斷函數------------
        #pragma vector=TIMER0_A0_VECTOR
        __interrupt void Timer_A(void)
        {
          //TACCTL0&=~ CCIE; //關中斷
          static int cc=0;
          cc+=1;
          if(cc==50)  //1s=1000ms=20*50 定時
          {
           P1OUT^=(1<<6); //P1.6 LED取反
           cc=0;
          }
        }
         
        //************主函數***************************
        void main()
        {
         
          WDTCTL = WDTPW + WDTHOLD;          // Stop WDT
          BCSCTL1 = CALBC1_1MHZ;
          DCOCTL = CALDCO_1MHZ; 
          BCSCTL2 |=SELM_1+DIVM_1;
          led_init();
          timer_init();  
           _BIS_SR(GIE);              //開總中斷
          while(1);
        }
        關閉窗口

        相關文章

        欧美性色欧美精品视频,99热这里只有精品mp4,日韩高清亚洲日韩精品一区二区,2020国自产拍精品高潮