色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 定時器0延時程序

          定時器0延時程序

          作者: 時間:2016-11-11 來源:網(wǎng)絡 收藏
          本程序主要實現(xiàn)的是用DA指令進行10進制調整,使得兩位數(shù)碼管循環(huán)顯示0-99,延時1s。

          (1):工作方式0下延時1s

          本文引用地址:http://cafeforensic.com/article/201611/316932.htm

          查詢方式:

          ORG 0000H
          JMP MAIN
          ORG 30H
          MAIN:
          MOV TMOD,#00H ;設置TIMER0工作在MODE0
          MOV R4,#00H ;設置數(shù)碼管顯示初值
          ;SETB EA
          ;SETB ET0

          START:
          MOV R2,#200;延時1s
          MOV P2,R4 ;計數(shù)初值送P2顯示
          LCALL DELAY
          XCH A,R4
          ADD A,#01H
          DA A ;R4送A累加,并做十進制調整
          XCH A,R4 ;調整后回送R4

          ;CJNE R4,#60H,START ;若要顯示60進制,需加判斷語句
          ;MOV R4,#00H
          JMP START



          DELAY:
          SETB TR0
          REINIT:
          MOV TL0,#(8192-5000)%256
          MOV TH0,#(8192-5000)/256 ;定時5ms
          LOOP:JBC TF0,LOOP1 ;TF0是否為1,是則跳到LOOP1,并清除TF0
          SJMP LOOP ;不是則跳到LOOP繼續(xù)查詢TF0溢出標志位狀態(tài)
          LOOP1:
          DJNZ R2,REINIT ;R2不為0繼續(xù)裝入初值,繼續(xù)定時
          CLR TR0
          RET
          END

          中斷方式:

          ORG 0000H
          JMP MAIN
          ORG 000BH;定時器0中斷的入口地址
          JMP INT_0
          ORG 30H
          MAIN:
          MOV TMOD,#00H
          MOV R4,#00H
          SETB EA
          SETB ET0
          MOV TL0,#(8192-5000)%256
          MOV TH0,#(8192-5000)/256
          SETB TR0
          START:
          MOV P2,R4
          MOV R2,#200
          CJNE R2,#0,$
          MOV R2,#200
          XCH A,R4
          ADD A,#01H
          DA A
          XCH A,R4
          JMP START

          INT_0:
          CLR TF0
          MOV TL0,#(8192-5000)%256
          MOV TH0,#(8192-5000)/256
          DEC R2
          RETI
          END

          如果采用方式1的話,只需要重設TMOD為#01H,TH0=0D8H,TL0=0F0H即可。

          (2):定時器0工作方式2延時1s

          由于工作方式2下一次定時的最大時間為256us,所以設定一次循環(huán)的話,寄存器中循環(huán)初值設置最大也達不到延時1s的目的,因此采用了用兩個寄存器來循環(huán)定時。

          查詢方式:

          ORG 0000H
          JMP MAIN
          ORG 30H
          MAIN:
          MOV TMOD,#02H ;工作方式2
          MOV R4,#00H

          START:
          MOV R2,#200 ;延遲50ms
          MOV R3,#20 ;延遲1s
          COUNT:

          MOV P2,R4
          LCALL DELAY
          DJNZ R3,COUNT;循環(huán)定時
          XCH A,R4
          ADD A,#01H
          DA A
          XCH A,R4
          JMP START

          DELAY:
          SETB TR0

          REINIT:
          MOV TL0,#6
          MOV TH0,#6 ;定時250us

          LOOP:JBC TF0,LOOP1
          SJMP LOOP

          LOOP1:
          DJNZ R2,REINIT
          CLR TR0
          RET
          END

          中斷方式:

          ORG 0000H
          JMP MAIN
          ORG 000BH
          JMP INT_0
          ORG 30H
          MAIN:
          MOV TMOD,#02H
          MOV R4,#00H
          SETB EA
          SETB ET0
          MOV TL0,#6
          MOV TH0,#6
          SETB TR0
          START:
          MOV R3,#20
          MOV R2,#200
          LOOP:
          MOV P2,R4
          CJNE R2,#0,$
          MOV R2,#200
          DJNZ R3,LOOP ;循環(huán)定時
          XCH A,R4
          ADD A,#01H
          DA A
          XCH A,R4
          JMP START

          INT_0:
          CLR TF0
          MOV TL0,#6
          MOV TH0,#6
          DEC R2
          RETI
          END

          附圖:



          關鍵詞: 定時器0延時程

          評論


          技術專區(qū)

          關閉