日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀] 51單片機(jī)有兩個(gè)外部中斷申請(qǐng)輸入端:INT0 和 INT1。51單片機(jī)的外部中斷,分為低電平觸發(fā)和下降沿觸發(fā)。在單片機(jī)內(nèi)部,分別由控制位 IT0 和 IT1 來(lái)控制。復(fù)位時(shí),IT0/1 都為 0,即默認(rèn)為低電平觸發(fā)。一般

 

51單片機(jī)有兩個(gè)外部中斷申請(qǐng)輸入端:INT0 和 INT1。
51單片機(jī)的外部中斷,分為低電平觸發(fā)和下降沿觸發(fā)。在單片機(jī)內(nèi)部,分別由控制位 IT0 和 IT1 來(lái)控制。
復(fù)位時(shí),IT0/1 都為 0,即默認(rèn)為低電平觸發(fā)。

一般來(lái)說(shuō),外設(shè)第一次向單片機(jī)申請(qǐng)外部中斷時(shí),單片機(jī)使用那種觸發(fā)方式,并無(wú)什么差別。
但是,返回主程序后,如果外部申請(qǐng)信號(hào)仍然是低電平,就有區(qū)別了。

在采用低電平觸發(fā)時(shí),單片機(jī)執(zhí)行了一條主程序的指令后,就會(huì)又重新進(jìn)入中斷程序。

而采用下降沿觸發(fā)時(shí),即使 INT0/1 引腳仍然是低電平,單片機(jī)也不會(huì)重新進(jìn)入中斷程序。
如果外設(shè)想要申請(qǐng)第二次中斷,必須是先恢復(fù)高電平,重新再送來(lái)一次下降沿才行。

那么,為了避免僅僅來(lái)了一次申請(qǐng),就產(chǎn)生多次中斷的現(xiàn)象,還是應(yīng)該采用下降沿觸發(fā)中斷的方式。

如果非要使用低電平觸發(fā)呢,那必須在退出前,反復(fù)的檢測(cè)中斷輸入端的電平。
只有當(dāng)外設(shè)撤消了中斷申請(qǐng)之后,再退出中斷程序,這才能避免多次的重新中斷。

到底應(yīng)該采用那種觸發(fā)方式,這個(gè)確實(shí)是應(yīng)該根據(jù)外設(shè)的特點(diǎn)來(lái)選取。
但是在多數(shù)場(chǎng)合,采用下降沿觸發(fā)方式,還是比較適用的。
即在復(fù)位后,應(yīng)該先執(zhí)行:

  SETB IT0
SETB IT1

有人在百度知道,提出了一個(gè)問(wèn)題,希望能顯示出低電平觸發(fā)和下降沿觸發(fā)的區(qū)別。

題目的基本內(nèi)容如下。

;單片機(jī)匯編程序題:要求一定是匯編

;AT89C51中P3.2接開(kāi)關(guān)1,P3.3接開(kāi)關(guān)2。
;當(dāng)開(kāi)關(guān)1, 2全都斷開(kāi)時(shí)運(yùn)行主程序,P1口的8個(gè)LED從P1.0~P1.7逐個(gè)點(diǎn)亮并反復(fù)循環(huán)。
;當(dāng)開(kāi)關(guān)1閉合時(shí)進(jìn)入中斷服務(wù)程序P2口的8個(gè)LED閃爍6次。
;開(kāi)關(guān)2起到對(duì)開(kāi)關(guān)1觸發(fā)方式進(jìn)行選擇的作用:
;第一次閉合開(kāi)關(guān)2時(shí)開(kāi)關(guān)1為下降沿觸發(fā)且P0.0連接的LED點(diǎn)亮;
;第二次閉合開(kāi)關(guān)2時(shí)開(kāi)關(guān)1為低電平觸發(fā)且P0.0連接的LED熄滅。
;求一個(gè)用匯編語(yǔ)言編寫的完整程序。

根據(jù)上述題目要求,做而論道畫(huà)出了PROTEUS仿真實(shí)驗(yàn)電路如下:


 

;下列程序,可以滿足要求。
ORG 0000H
LJMP MAIN
ORG 0003H
LJMP X0_INT
ORG 0013H
LJMP X1_INT
;------------------------------------
MAIN:
SETB IT1
MOV SP, #60H
MOV IE, #85H
MOV A, #254
M_LOOP:
MOV P1, A
RL A
CALL DL_500MS
SJMP M_LOOP
;------------------------------------
X0_INT:
PUSH PSW
SETB RS1
MOV R4, #12
SH_6:
XRL P2, #255
CALL DL_500MS
DJNZ R4, SH_6
POP PSW
RETI
;------------------------------------
X1_INT:
CPL IT0
CPL P0.0
RETI
;-------------------------------延時(shí)子程序
DL_500MS:
MOV R5, #9 ;1T
DL1: MOV R6, #128 ;1T
DL2: MOV R7, #215 ;1T
NOP ;1T
DL3: DJNZ R7, DL3 ;2T 2 * 215 = 430 T
DJNZ R6, DL2 ;2T [1+1+430+2] * 128 = 55552 T
DJNZ R5, DL1 ;2T [1+55552+2] * 9 = 499995 T
RET ;2T 1 + 499995 + 2 = 499998 T
;------------------------------------
END

;===============================================

 

 

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉