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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 負跳變沿觸發(fā)中斷(匯編程序)

          負跳變沿觸發(fā)中斷(匯編程序)

          作者: 時間:2016-11-18 來源:網(wǎng)絡 收藏
          ;了解8051的timer0中斷的程序寫法,用中斷法產(chǎn)生定時,是燈明一下,暗一下,如果出現(xiàn)外部中斷的時候,在進入外部中斷服務程序

          COUNTEQU9217 ;對于11.0592的晶振來說,延時10ms
          LED1EQUP1.1
          LED2 EQUP1.3 ;作為外部中斷0的顯示來用
          ;
          ORG 0000H
          LJMP RESET ;跳轉到初始化程序中
          ORG 0003H ; INT0(外部中斷0)
          LJMP INT_ET0;跳轉到外部中斷0服務程序中去(此程序中斷就是從這進入的)
          ORG000BH;TIMER0(定時器/計數(shù)器T0)
          LJMPINT_TIMER0;跳轉到定時器/計數(shù)器中斷服務程序中去
          //ORG0013H;外部中斷1
          //RETI;中斷的返回指令
          //ORG001BH;TIMER1(定時器/計數(shù)器T1)
          //RETI
          //ORG0023H;串行口中斷
          //RETI
          ;
          ORG0030H
          RESET: MOVR0,#00H
          DJNZR0,$;剛開始,先進行少量的延時,是各種工作寄存器準備好

          SETBLED1
          SETBLED2

          ;設置定時器中斷
          MOVTMOD,#00000001B
          MOVTH0,#HIGH(65536-COUNT)
          MOV TL0,#LOW(65536-COUNT)
          //MOVTH0,#(65536-COUNT)/256;取高八位數(shù)據(jù)
          //MOVTL0,#255;取底五位(為最大了)
          CLRTF0;先把溢出標志位清零
          SETBTR0;開始計時
          SETBET0;ET0為定時器/計數(shù)器T0溢出中斷允許位
          ;設置外部中斷0
          SETBIT0;設置外部中斷0為跳變言觸發(fā)方式
          CLRIE0
          SETBEX0
          SETBEA
          MOVIP,#00000001B;設置PX0為高優(yōu)先級中斷(外部中斷0)
          MOVR1,#00H;作為定時器累加器使用

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

          LOOP:SJMPLOOP ;在此等待
          ;
          ;IE0=1

          INT_ET0://CLRLED2
          CPLTR0
          //CPLLED1
          ACALLDELAY
          CLRIE0
          CPLLED2
          RETI

          ;TF0=1
          INT_TIMER0:
          INCR2;使R1自增一
          CLRTF0;CLEAR TF0 AGAIN
          MOVTH0,#(65536-COUNT)/256;取高八位數(shù)據(jù)
          MOVTL0,#255;取底五位(為最大了)

          CJNER2,#10,L0;不相等則轉移指令,這個數(shù)可以進行調(diào)節(jié)
          CPLLED1 ;取反指令
          MOVR2,#00H
          L0: RETI

          ;延時子程序,12M晶振延時約R4
          DELAY: ;大約值:2us*256*256*2=260ms,也可以認為為250ms
          PUSH PSW ;現(xiàn)場保護指令(有時可以不加)
          MOV R4,#4
          L3:MOV R2 ,#00H
          L1: MOV R3 ,#00H
          L2: DJNZ R3 ,L2 ;最內(nèi)層循環(huán):(256次)2個周期指令(R3減一,如果比1大,則轉向L2)
          DJNZ R2 ,L1 ; 中層循環(huán):256次
          DJNZ R4 ,L3 ;外層循環(huán):2次

          POP PSW
          RET

          END



          評論


          技術專區(qū)

          關閉
          看屁屁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); })();