專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

新唐M051外部中斷1使用程序

作者:huqin   來源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2014年09月01日   【字體:

共享一個(gè)新唐M051單片機(jī)的外部中斷1的使用程序:

#include "SmartM_M0.h"

#define DEBUGMSG       printf
/****************************************
*函數(shù)名稱:KeyIntInit
*輸    入:無
*輸    出:無
*功    能:按鍵中斷初始化
******************************************/
VOID KeyIntInit(VOID)
{
    P3_PMD=0xFFFF;        //準(zhǔn)雙向模式
 P3_DOUT=0xFF;        //輸出高電平
 P3_MFP = (P3_MFP & (~P33_EINT1_MCLK)) | EINT1;  //P3.2引腳設(shè)置為外部中斷
 
 DBNCECON &= ~ICLK_ON;  //禁用時(shí)鐘?
 DBNCECON &= DBCLK_HCLK;//防反彈計(jì)數(shù)器時(shí)鐘源為 HCLK
 DBNCECON |= SMP_256CK;        //設(shè)置防反彈采樣周期選擇
             
 P3_DBEN |= DBEN3;         //使能P3.2防反彈功能
  
 P3_IMD &= IMD3_EDG;    
 P3_IEN |= IF_EN3;         //設(shè)置外部中斷0為下降沿觸發(fā)
 NVIC_ISER |= EXT_INT1;
}
/****************************************
*函數(shù)名稱:main
*輸    入:無
*輸    出:無
*功    能:函數(shù)主體
******************************************/
INT32 main(VOID)
{                        
  PROTECT_REG          //ISP下載時(shí)保護(hù)FLASH存儲(chǔ)器
  (
   PWRCON |= XTL12M_EN;       //默認(rèn)時(shí)鐘源為外部晶振
   while((CLKSTATUS & XTL12M_STB) == 0);    //等待12MHz時(shí)鐘穩(wěn)定 
  
   CLKSEL0 = (CLKSEL0 & (~HCLK)) | HCLK_12M;//設(shè)置外部晶振為系統(tǒng)時(shí)鐘 
  )
  UartInit(12000000,9600);       //波特率設(shè)置為9600bps
  KeyIntInit();          //按鍵中斷初始化
  DEBUGMSG("Init ok\r\b");
  while(1);
}
/****************************************
*函數(shù)名稱:__KEYISR
*輸    入:無
*輸    出:無
*功    能:按鍵中斷服務(wù)函數(shù)
******************************************/
VOID EINT1_IRQHandler(VOID)
{
  DEBUGMSG("Key int\r\n");       //打印按鍵中斷信息
  P3_ISRC = P3_ISRC;                        //寫1清空 
}       
關(guān)閉窗口