一、中斷概念
??內(nèi)核與外設(shè)之間的主要交互方式有兩種:輪詢和中斷。
??輪詢的方式貌似公平,但實(shí)際工作效率很低,且不能及時(shí)響應(yīng)緊急事件;
??中斷系統(tǒng)使得內(nèi)核具備了應(yīng)對(duì)突發(fā)事件的能力。在執(zhí)行CPU當(dāng)前程序時(shí),由于系統(tǒng)中出現(xiàn)了某種急需處理的情況,CPU暫停正在執(zhí)行的程序,轉(zhuǎn)而去執(zhí)行另外一段特殊程序來(lái)處理出現(xiàn)的緊急事務(wù),處理結(jié)束后,CPU自動(dòng)返回到原來(lái)暫停的程序中去繼續(xù)執(zhí)行。這種程序在執(zhí)行過(guò)程中由于外界的原因而被中間打斷的情況,稱為中斷。
????中斷服務(wù)函數(shù):內(nèi)核響應(yīng)中斷后執(zhí)行的相應(yīng)處理程序。也就是中斷發(fā)生后要做什么。
????中斷向量:中斷服務(wù)程序的入口地址。每個(gè)中斷源都對(duì)應(yīng)一個(gè)固定的入口地址。當(dāng)內(nèi)核響應(yīng)中斷請(qǐng)求時(shí),就會(huì)暫停當(dāng)前的程序執(zhí)行,然后跳轉(zhuǎn)到該入口地址執(zhí)行代碼。
????中斷號(hào):在C語(yǔ)言對(duì)51進(jìn)行編程時(shí),中斷向量被映射為中斷號(hào),也就是我們不需要去背中斷向量,只需要記住中斷號(hào)對(duì)應(yīng)哪個(gè)中斷源就好。
?記憶技巧:外部中斷和定時(shí)中斷交叉,先外部再定時(shí)器,先0后1,最后一個(gè)是串口。
二、中斷過(guò)程
三、中斷控制系統(tǒng)(類似STM32的NVIC)
51單片機(jī)的中斷系統(tǒng)和STM32最大的區(qū)別51的中斷不能嵌套,必須執(zhí)行完當(dāng)前中斷服務(wù)函數(shù)才能執(zhí)行下一個(gè)中斷服務(wù)函數(shù)。
使用這個(gè)中斷系統(tǒng)時(shí),用戶需要明確每個(gè)中斷源的功能,適當(dāng)?shù)卦O(shè)置優(yōu)先級(jí),編寫(xiě)對(duì)應(yīng)的中斷服務(wù)函數(shù)。根據(jù)應(yīng)用的需要,用戶可能還需要控制中斷的使能和禁止,并在中斷服務(wù)例程中恰當(dāng)?shù)靥幚碇袛鄻?biāo)志位。
四、中斷相關(guān)寄存器
4.1 IE寄存器
4.2 IP寄存器(不重要,我寫(xiě)了好幾屆省賽真題都沒(méi)用到這個(gè)寄存器)
4.3 TCON寄存器
4.4 TMOD寄存器(只能字節(jié)尋址)
什么叫做只能字節(jié)尋址?
舉個(gè)例子就能明白,例如我們想控制TCON的外部中斷0觸發(fā)方式,我們可以直接IT0=0;
而我們想設(shè)置TMOD的GATE,我們不能直接GATE=0;,而必須TMOD=0x**;也就是不能直接對(duì)某一位進(jìn)行操作,而必須對(duì)整個(gè)寄存器進(jìn)行操作,所以我們一定要學(xué)會(huì)位操作!
4.5 SCON寄存器(串口設(shè)置相關(guān))
五、中斷編寫(xiě)
5.1 中斷初始化&中斷服務(wù)函數(shù)
推薦在寫(xiě)這兩個(gè)函數(shù)的時(shí)候有一個(gè)自己的規(guī)范
例如:
void Init_IT0() // 外部中斷0初始化
{
}
void Interrupt_IT0() interrupt 0 // 外部中斷0服務(wù)函數(shù)
{
}
5.2 特殊編程格式
A. 中斷函數(shù)沒(méi)有返回值,也不能帶參數(shù)。
B. 函數(shù)名后面要跟一個(gè)關(guān)鍵字 interrupt,說(shuō)明這是一個(gè)中斷服務(wù)函數(shù)。
C. 在關(guān)鍵字 interrupt 后面要跟上中斷號(hào),說(shuō)明這個(gè)中斷服務(wù)函數(shù)是為那個(gè)中斷源服務(wù)的。
六、外部中斷應(yīng)用
外部中斷編寫(xiě)重點(diǎn):
1.外部中斷觸發(fā)方式:高電平觸發(fā)or下降沿觸發(fā)
2.外部中斷開(kāi)關(guān)
3.總開(kāi)關(guān)
編寫(xiě)中斷服務(wù)函數(shù)的規(guī)則之一就是少做事情,一定不能在中斷中進(jìn)行延時(shí)操作文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-797401.html
未完待續(xù)…文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-797401.html
到了這里,關(guān)于第十五屆藍(lán)橋杯單片機(jī)組備賽——中斷系統(tǒng)與外部中斷應(yīng)用的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!