<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

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

          實驗三、單片機的內(nèi)中斷處理

          作者: 時間:2016-11-23 來源:網(wǎng)絡(luò) 收藏
          1、用定時器中斷控制信號燈。

          ORG 0000H

          本文引用地址:http://www.ex-cimer.com/article/201611/320489.htm

          LJMP MAIN

          ORG 000BH ;內(nèi)中斷T0入口地址

          LJMP T0INT

          ORG 02400H

          MAIN: MOV SP,#30H

          MOV A,#00H

          MOV TMOD,#01H

          MOV TH0,#3CH

          MOV TL0,#0B0H

          SETB EA

          SETB ET0

          SETB TR0

          LOOP: LJMP LOOP

          ORG 0340H

          T0INT: MOV TH0,#3CH

          MOV TL0,#0B0H

          MOV P1,A

          CPL A ;亮點閃爍

          RETI

          END

          分析:在本程序中,使用定時器0的中斷方式產(chǎn)生100ms的延時,實現(xiàn)8個LED的亮點閃爍。當給SP、A賦值后,程序員給TMOD、TH0、TL0,將TR0置1,然后執(zhí)行“LOOP: SJMP LOOP”指令,這樣不斷的循環(huán)。

          2、 用定時器中斷和外中斷控制信號燈。

          ORG 0000H

          LJMP MAIN

          ORG 0003H ;外中斷入口地址

          LJMP INT

          ORG 000BH ;內(nèi)中斷入口地址

          LJMP T0INT

          ORG 0100H

          MAIN: MOV SP,#30H

          MOV A,#0FEH

          MOV TMOD,#01H

          SETB EA

          SETB EX0

          SETB IT0

          SETB ET0

          SETB PX0 ;設(shè)置外部中斷0為高優(yōu)先級

          MOV TH0,#3CH

          MOV TL0,#0B0H

          SETB TR0

          LOOP0: LJMP LOOP0

          ORG 0200H ;內(nèi)中斷程序塊

          T0INT: MOV TH0,#3CH

          MOV TL0,#0B0H

          MOV R3,#08H

          MOV P1,A

          LCALL DELAY

          RL A ;亮點流動

          RETI

          ORG 0300H ; 外中斷程序塊

          INT: PUSH ACC

          MOV A,#00H

          MOV R3,#08H

          LOOP1: MOV P1,A

          LCALL DELAY

          CPL A ;亮點閃爍

          DJNZ R3,LOOP1

          POP ACC

          RETI

          ORG 0400H ;延遲程序塊

          DELAY: MOV R0,#0FFH

          D1: MOV R1,#0FFH

          D2: MOV R2,#0FFH

          D3: DJNZ R2,D3

          DJNZ R1,D2

          DJNZ R0,D1

          RET

          END

          分析:程序開始時,使用定時器0的中斷方式產(chǎn)生100ms的延時,實現(xiàn)8個LED的亮點流動。在亮點流動的過程中,如果按下單脈沖鍵,由于將外部中斷0的優(yōu)先級設(shè)置為高優(yōu)先級,所以8個LED的發(fā)光狀態(tài)將改為同時閃爍,閃爍8次恢復(fù)亮點流動(閃爍時間間隔由延時程序完成)。

          3、實驗心得

          計數(shù)器/定時器本質(zhì)上都是是對一個脈沖源進行加1計數(shù)。它的計數(shù)的脈沖源是什么取決了它是計數(shù)器還是定時器;加1計數(shù)器的脈沖源是來自于晶體振蕩器時,為定時狀態(tài);脈沖源是來自于單片機外部,由于外部的的脈沖間隔不一定相等,計數(shù)和時間就沒有明確的關(guān)系密切,所以這時只能是對外部的脈沖進行“計數(shù)”。在實驗中,由于沒有給單片機輸入外部信號,這說明定時/計數(shù)器的計數(shù)脈沖來自于單片機的晶體振蕩,即定時/計數(shù)器工作在定時狀態(tài)下。

          由振蕩頻率來計數(shù),因為一個機器周期包括12個振蕩周期,計數(shù)器加1實際上累加的是機器周期,每一個機器周期,計數(shù)器就加1。根據(jù)振蕩頻率,可以得出計數(shù)脈沖的間隔時間,即計數(shù)器加1的時間間隔。當已知計數(shù)/定時器的差值時,就可得達到定時效果。



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

          評論


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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();