欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

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

新唐M051定時器2測試程序

作者:huqin   來源:本站原創   點擊數:  更新時間:2014年09月01日   【字體:

以下是M051單片機的定時器2測試程序 成功。!

#include "SmartM_M0.h"

bool flag = 0; //中斷標志位
/****************************************
*函數名稱:TMR2Init
*輸    入:無
*輸    出:無
*功    能:定時器2初始化
******************************************/
VOID TMR2Init(VOID)
{
    PROTECT_REG
 (
  /* 使能TMR2時鐘源 */
     APBCLK |= TMR2_CLKEN;
  /* 選擇TMR2時鐘源為外部晶振12MHz */ 
  CLKSEL1 = (CLKSEL1 & (~TM2_CLK)) | TM1_12M;  
  /* 復位TMR2 */
  IPRSTC2 |=  TMR2_RST;
  IPRSTC2 &= ~TMR2_RST; 
  /* 選擇TMR2的工作模式為周期模式*/ 
  TCSR2 &= ~TMR_MODE;
  TCSR2 |=  MODE_PERIOD;  
  /* 溢出周期 = (Period of timer clock input) * (8-bit Prescale + 1) * (24-bit TCMP)*/
  /* 溢出周期 = (1/12MHz) * (0 + 1) * (12000*500)=500ms (0.5S)*/
  TCSR2  = TCSR2 & 0xFFFFFF00;  // 設置預分頻值 [0~255]
  TCMPR2 = 12000*500;        // 設置比較值 [0~16777215]
  TCSR2 |= TMR_IE;     //使能TMR0中斷
  NVIC_ISER |= TMR2_INT; 
  TCSR2 |= CRST;      //復位TMR0計數器    
  TCSR2 |= CEN;      //使能TMR0
 )
}
/****************************************
*函數名稱:main
*輸    入:無
*輸    出:無
*功    能:函數主體
******************************************/
INT32 main(VOID)
{
  u8 i =0;
     PROTECT_REG            //ISP下載時保護FLASH存儲器
  (       
   PWRCON |= XTL12M_EN;      //默認時鐘源為外部晶振
   while((CLKSTATUS & XTL12M_STB) == 0);   //等待12MHz時鐘穩定      
   CLKSEL0 = (CLKSEL0 & (~HCLK)) | HCLK_12M; //設置外部晶振為系統時鐘 
   P2_PMD = 0x5555;       //P2口設置為輸出模式
      P2_DOUT= 0x00;        //P2口輸出低電平
  )
  TMR2Init();
    while(1)
  {
   if(flag)
  {
   flag = 0;
   i++;
  }
  if(i>7)
  {
   i = 0;
  }
  P2_DOUT = 1UL<<i;         //P2口輸出相應的電平
  }
}
/****************************************
*函數名稱:TMR2_IRQHandler
*輸    入:無
*輸    出:無
*功    能:定時器2中斷服務函數
******************************************/
VOID TMR2_IRQHandler(VOID)
{
 /* 清除TMR1中斷標志位 */
 TISR2 |= TMR_TIF;
 flag = 1;
}
關閉窗口