亚洲春色中文字幕久久久-三上亚,91精品国产亚一区二区三区,久久久九色综合亚洲成色777,涩涩视频下载,国产午夜亚洲精品午夜鲁丝片,国产精品A一区二区三区腾讯导航,影音先锋色情AV在线看片,蜜臀国产在线视频,极品少妇高潮啪啪无码吴梦梦 ,精品人妻无码一区二区三区手机版

標題: 煩請詳解一下單片機匯編延時程序的計算方法? [打印本頁]

作者: bokubo    時間: 2020-6-28 02:26
標題: 煩請詳解一下單片機匯編延時程序的計算方法?
ORG   0000H           ;
LJMP  MAIN            ;轉主程序
ORG   0003H           ;INT0中斷服務入口地址
LJMP  L1              ;轉INT0高優先級中斷服務程序
ORG   0013H           ;INT1中斷服務入口地址
LJMP  L2              ;轉INT1高優先級中斷服務程序
ORG   0100H           ;設置主程序起始地址
MAIN: SETB EA         ;CPU開放中斷
          SETB EX0        ;允許外部中斷0中斷
          SETB EX1        ;允許外部中斷1中斷
          SETB PX0        ;外部中斷0設置為高優先級
          SETB IT0        ;設置外部中斷0為跳沿觸發方式
          SETB IT1        ;設置外部中斷1為跳沿觸發方式
          MOV SP,#70H     ;設置堆棧為70H
          MOV A,#0FFH     ;將0FFH賦值給累加器
  FR: MOV P1,A        ;將累加器的值給P1
          ACALL DELAY1S   ;調用1秒延時子程序
          CPL A           ;對累加器值取反
          SJMP FR         ;循環
  L1: PUSH ACC        ;將累加器的值暫時存于堆棧
      MOV A,#80H      ;將80H賦值給A
      MOV P1,A        ;將累加器的值給P1
          ACALL DELAY1S   ;調用1秒延時子程序
LOOP1:RR A            ;累加器循環右移
          MOV P1,A        ;將累加器的值給P1
          ACALL DELAY1S   ;調用1秒延時子程序
          JB P1.0,N2      ;P1.0判斷為1則跳轉N2
          AJMP LOOP1      ;循環
  L2: PUSH ACC        ;將累加器的值暫時存于堆棧
      MOV A,#7FH      ;將7FH賦值給A
          MOV P1,A        ;將累加器的值給P1
          ACALL DELAY1S   ;調用1秒延時子程序
LOOP2:RR A            ;累加器循環右移
          MOV P1,A        ;將累加器的值給P1
          ACALL DELAY1S   ;調用1秒延時子程序
          JNB P1.0,N2     ;P1.0判斷不為1則跳轉N2
          AJMP LOOP2      ;循環
   N2:POP ACC         ;從堆棧取出累加器的值
      RETI            ;中斷返回
DELAY1S:MOV R5,#10    ;1秒延時子程序
DELAY0 :MOV R6,#200   
DELAY1 :MOV R7,#123                           
DELAY2:DJNZ R7,DELAY2
       DJNZ R6,DELAY1
           DJNZ R5,DELAY0
           RET                          
          END





以上程序全文,想知道最后的一秒延時子程序是怎么實現的,那個延時一秒的計算是怎么算出來的


作者: hsl32    時間: 2020-6-28 08:18
這個是精確補償的吧。以前我都是算個大概:(DJNZ R7,DELAY2)2個機器周期 x 123 x 200 x 10 =1000000us這里應該是6MHz的晶振,一個機器周期是2us。精確計算,要把每條指令所用的時間也要算進去。
作者: bokubo    時間: 2020-6-28 11:45
hsl32 發表于 2020-6-28 08:18
這個是精確補償的吧。以前我都是算個大概:(DJNZ R7,DELAY2)2個機器周期 x 123 x 200 x 10 =1000000us這 ...

謝謝,我明白了




歡迎光臨 (http://www.denmoz.com/bbs/) Powered by Discuz! X3.1