在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 實驗二、單片機的中斷處理

            實驗二、單片機的中斷處理

            作者: 時間:2016-11-23 來源:網(wǎng)絡(luò) 收藏
            一、

            ORG 0000H

            本文引用地址:http://www.biyoush.com/article/201611/320488.htm

            AJMP MAIN

            ORG 0209H

            MAIN: MOV SP,#50H PC=0209H

            MOV 30H,#1

            MOV 31H,#2

            MOV 32H,#3

            MOV DPTR,#TABLE TABLE=040EH

            MOV A,30H

            LCALL SQR PC=021AH,當(dāng)前指針為021DH,

            mov b,#7 SP=50H

            push b

            MOV R1,A SP=51H,51H=07H

            MOV A,31H

            LCALL SQR PC=0225H,當(dāng)前指針為0228H

            mov b,#3 SP=51H

            push b

            ADD A,R1 SP=52H,52H=03H

            MOV R1,A

            MOV A,32H

            LCALL SQR PC=0231H,當(dāng)前指針為0234H

            pop b SP=52H,B=06H

            ADD A,R1 SP=51H,B=03H

            MOV 33H,A

            ORG 0309H

            LOOP:SJMP LOOP

            ORG 0409H

            SQR: MOVC A,@A+DPTR PC=0409H 第一次調(diào)用:SP=52H,51H=1DH,52H=02H

            第二次調(diào)用:SP=53H,52H=28H,53H=02H

            第三次調(diào)用:SP=54H,53H=34H,54H=02H

            mov b,#6

            RET

            TABLE: DB 00,01,04,09,16,25,36,49,64,81

            END

            二、外中斷INT0的響應(yīng)。

            程序如下:

            ORG 0000H

            LJMP MAIN

            ORG 0003H ;/INT0的入口地址

            LJMP INT

            ORG 0209H

            MAIN: MOV SP,#30H

            MOV A,#0FEH

            SETB EA ;CPU開中斷

            SETB EX0 ;允許/INT0中斷

            SETB IT0 ;設(shè)置INT0的中斷觸發(fā)類型

            LOOP: MOV P1,A

            LCALL DELAY

            RL A ;右移A中的數(shù)據(jù),以實現(xiàn)亮點流動

            LJMP LOOP

            ORG 0309H

            INT: PUSH ACC ;保存現(xiàn)場

            MOV A,#00H

            MOV R3,#08H ;閃爍8次

            LOOP1: MOV P1,A

            CPL A ;將A中的內(nèi)容取反,以實現(xiàn)亮滅

            LCALL DELAY

            DJNZ R3,LOOP1

            POP ACC ;恢復(fù)現(xiàn)場

            RETI

            ORG 0409H

            DELAY: MOV R0,# 100

            D1: MOV R1,#0FFH

            D2: MOV R2,#0FFH

            D3: DJNZ R2,D3

            DJNZ R1,D2

            DJNZ R0,D1

            RET

            END

            分析:在單脈沖鍵按下之前,LED處于一個亮點流動的狀態(tài)。采用中斷方式,當(dāng)按下單脈沖鍵時,LED狀態(tài)改為同時閃爍。閃爍8次再恢復(fù)原來的亮點流動。

            2、同級別的外中斷INT0和INT1的響應(yīng)。

            程序如下:

            ORG 0000H

            LJMP MAIN

            ORG 0003H ;/INT0的入口地址

            LJMP T0INT

            ORG 0013H ;/INT1的入口地址

            LJMP T1INT

            ORG 0209H

            MAIN: MOV SP,#30H

            MOV A,#0FEH

            SETB EA ;CPU開中斷

            SETB EX0 ;允許/INT0中斷

            SETB IT0 ;設(shè)置INT0的中斷觸發(fā)類型

            SETB EX1 ;允許/INT1中斷

            SETB IT1 ;設(shè)置INT1的中斷觸發(fā)類型

            ;SETB PX1 ;設(shè)置/INT1為高優(yōu)先級(將在步驟三中用到)

            LOOP: MOV P1,A

            LCALL DELAY

            RL A ;右移A中的數(shù)據(jù),以實現(xiàn)亮點流動

            LJMP LOOP

            ORG 0309H

            T0INT: PUSH ACC ;保存現(xiàn)場

            MOV A,#00H

            MOV R3,#08H ;閃爍8次

            LOOP1: MOV P1,A

            CPL A ;將A中的內(nèi)容取反,以實現(xiàn)亮滅

            LCALL DELAY

            DJNZ R3,LOOP1

            POP ACC ;恢復(fù)現(xiàn)場

            RETI

            ORG 0409H

            T1INT: PUSH ACC ;保存現(xiàn)場

            MOV A,#55H ;同時亮滅4個

            MOV R4,#08H ;閃爍8次

            LOOP2: MOV P1,A

            CPL A

            LCALL DELAY

            DJNZ R4,LOOP2

            POP ACC ;恢復(fù)現(xiàn)場

            RETI

            ORG 0509H

            DELAY: MOV R0,# 100

            D1: MOV R1,#0FFH

            D2: MOV R2,#0FFH

            D3: DJNZ R2,D3

            DJNZ R1,D2

            DJNZ R0,D1

            RET

            END

            分析:在單脈沖鍵按下之前,LED處于一個亮點流動的狀態(tài)。采用中斷方式,當(dāng)按下INT0的單脈沖鍵時,LED狀態(tài)改為同時閃爍,閃爍8次再恢復(fù)原來的亮點流動;當(dāng)按下INT1的單脈沖鍵時,LED狀態(tài)改為同時亮滅4個,亮滅8次再恢復(fù)原來的亮點流動。當(dāng)同時按下INT0和INT1的當(dāng)脈沖鍵時,單片機先響應(yīng)外中斷INT0,然后再響應(yīng)外中斷INT1。

            3、不同級別的外中斷INT0和INT1的響應(yīng)。

            在步驟二的主程序中加多一條指令:SETB PX1 ;設(shè)置/INT1為高優(yōu)先級

            分析:在單脈沖鍵按下之前,LED處于一個亮點流動的狀態(tài)。采用中斷方式,當(dāng)按下INT0的單脈沖鍵時,LED狀態(tài)改為同時閃爍,閃爍8次再恢復(fù)原來的亮點流動;如果此時按下INT1的單脈沖鍵時,由于INT1的優(yōu)先級比INT0的優(yōu)先級高,所以CPU將響應(yīng)高級中斷請求,即LED狀態(tài)改為同時亮滅4個,亮滅8次后,再返回低級中斷服務(wù)程序。當(dāng)同時按下INT0和INT1的單脈沖鍵時,單片機先響應(yīng)優(yōu)先級高的外中斷INT1,然后再響應(yīng)優(yōu)先級底的外中斷INT0,最后才回到主程序。

            如果將T1INT和T0INT一樣使用R3來作為倒數(shù)器,在軟件中調(diào)試時會出錯。當(dāng)從高級中斷返回低級中斷時,R3的值會變?yōu)镕F,而不是0—8。所以在程序中使用R3和R4兩個寄存器。

            而在實際硬件操作中,很難同時觸發(fā)兩種中斷,不易進(jìn)行觀察。



            關(guān)鍵詞: 單片機中斷處

            評論


            技術(shù)專區(qū)

            關(guān)閉