找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 8314|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

MCS-51系列單片機(jī)C語(yǔ)言編程外部中斷程序模板

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:76190 發(fā)表于 2015-4-5 17:10 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式


/*********************************************************************************************
函數(shù)名:外部中斷INT初始化函數(shù)
調(diào)  用:INT_init();
參  數(shù):無(wú)
返回值:無(wú)
結(jié)  果:?jiǎn)?dòng)外部中斷INT1、INT0中斷,設(shè)置中斷方式
備  注:
/**********************************************************************************************/
void INT_init (void){
EA = 1; //中斷總開(kāi)關(guān)
EX1 = 1; //允許外部中斷1中斷   
EX0 = 1; //允許外部中斷0中斷
IT1 = 1; //1:下沿觸發(fā)  0:低電平觸發(fā)
IT0 = 1; //1:下沿觸發(fā)  0:低電平觸發(fā)
}
/**********************************************************************************************/

/*********************************************************************************************
函數(shù)名:外部中斷INT1中斷處理程序
調(diào)  用:[外部引腳INT1中斷處理]
參  數(shù):無(wú)
返回值:無(wú)
結(jié)  果:用戶處理外部中斷信號(hào)
備  注:
/**********************************************************************************************/
void INT_1 (void) interrupt 2  using 2{ //切換寄存器組到2
//用戶函數(shù)內(nèi)容
}
/**********************************************************************************************/
/*********************************************************************************************
函數(shù)名:外部中斷INT0中斷處理程序
調(diào)  用:[外部引腳INT0中斷處理]
參  數(shù):無(wú)
返回值:無(wú)
結(jié)  果:用戶處理外部中斷信號(hào)
備  注:
/**********************************************************************************************/
void INT_0 (void) interrupt 0  using 2{ //切換寄存器組到2
//用戶函數(shù)內(nèi)容
}
/**********************************************************************************************

/*********************************************************************************************
程序名:    外部中斷程序?qū)嵗?br /> 硬件支持:  STC12C2052AD 外部12MHZ晶振
接口說(shuō)明:    
修改日志:  
  NO.1-        
/*********************************************************************************************
說(shuō)明:
兩個(gè)按鍵分別控制LED燈的開(kāi)關(guān)。
INT0接口的按鍵按下時(shí)開(kāi)燈。
INT1接口的按鍵按下時(shí)關(guān)燈。
/*********************************************************************************************/
#include <REG51.h> //51頭文件
sbit  LED  =  P1 ^ 0; //定義LED燈
//注:外部中斷固定與P3.2和P3.3復(fù)用,無(wú)需定義這兩個(gè)接口。
/*********************************************************************************************
函數(shù)名:外部中斷INT初始化函數(shù)
調(diào)  用:INT_init();
參  數(shù):無(wú)
返回值:無(wú)
結(jié)  果:?jiǎn)?dòng)外部中斷INT1、INT0中斷,設(shè)置中斷方式
備  注:
/**********************************************************************************************/
void INT_init (void){
EA = 1; //中斷總開(kāi)關(guān)
EX1 = 1; //允許外部中斷1中斷   
EX0 = 1; //允許外部中斷0中斷
IT1 = 1; //1:下沿觸發(fā)  0:低電平觸發(fā)
IT0 = 1; //1:下沿觸發(fā)  0:低電平觸發(fā)
}
/**********************************************************************************************/

/*********************************************************************************************
函數(shù)名:外部中斷INT1中斷處理程序
調(diào)  用:[外部引腳INT1中斷處理]
參  數(shù):無(wú)
返回值:無(wú)
結(jié)  果:用戶處理外部中斷信號(hào)
備  注:
/**********************************************************************************************/
void INT_1 (void) interrupt 2  using 2{ //切換寄存器組到2
LED = 1; //關(guān)燈
}
/**********************************************************************************************/
/*********************************************************************************************
函數(shù)名:外部中斷INT0中斷處理程序
調(diào)  用:[外部引腳INT0中斷處理]
參  數(shù):無(wú)
返回值:無(wú)
結(jié)  果:用戶處理外部中斷信號(hào)
備  注:
/**********************************************************************************************/
void INT_0 (void) interrupt 0  using 2{ //切換寄存器組到2
LED = 0; //開(kāi)燈
}
/**********************************************************************************************/
/*********************************************************************************************/
void main(void){
INT_init(); //外部中斷初始化
while(1){
  //其他程序

}
}
/*********************************************************************************************/
1. MCS-51通用外部中斷有2種觸發(fā)方式,分別是下降沿觸發(fā)和低電平觸發(fā)。
# 下降沿觸發(fā):電平從高電平狀態(tài)突然降低(即電壓跌落)的過(guò)程中觸發(fā)中斷。
# 低電平觸發(fā):電平處在低電平時(shí)觸發(fā)中斷,具體的電平值因電路不同而有差異。
# 低電平觸發(fā)與下降沿觸發(fā)的區(qū)別是下降沿觸發(fā)是一有跌落馬上觸發(fā),而低電平觸發(fā)是跌落到低電平的閥值時(shí)(一般為0.8V)才觸發(fā)。
2. 當(dāng)進(jìn)入外部中斷處理程序時(shí),系統(tǒng)會(huì)關(guān)閉其他中斷觸發(fā),在中斷處理程序中外部中斷接口只能做I/O接口使用,不可嵌套中斷。
可將其模板下載到本地硬盤,在編寫新程序的時(shí)候復(fù)制、粘貼到工程當(dāng)中,然后根據(jù)情況寫入具體內(nèi)容。


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:79943 發(fā)表于 2015-5-15 10:22 | 只看該作者
當(dāng)進(jìn)入外部中斷
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表