欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 求大神幫忙調試下這個程序 [打印本頁]

作者: 卡卡11    時間: 2015-5-15 18:21
標題: 求大神幫忙調試下這個程序
ORG       1000H
AJUMP     MAIN                           ;轉跳到主程序
ORG       00BH                           ;中斷地址
AJUMP     SERVER                         ;中斷調用
MAIN:     MOV  TMOD ,  40H                 ;初始值
          MOV  TH0 ,  #5BH                ;設置計時值
          MOV  TL0 ,  #20H               
          MOV  TH1 ,  #00H                ;設置計數值
          MOV  TL1 ,  #00H
          MOV  R0 ,   #10                 ;設置1s時間
          MOV  A ,    #00H                ;清空累加器
           MOV 4000H , #05H                ;存放最大值5米
          MOV  4001H , #01H                ;存放最小值1米
MOV 3000H , #00H                ;清空顯示數據
DATE1    ACALL   DATE2                 ;調用顯示程序
          MOV  A ,    3000H               ;取位數據
          SUBB  A ,    4000H               ;與最大值比較
          JC    MIN              ;當小于最大值,在于最小值比較
          SET   P1.1              ;發送高電平控制水泵
          CLR   P1.0              ;開啟發射裝置
          ACALL D1MS
CLR  P1.1              ;停止發送
SET  P1.0              ;關閉發射裝置
AJUMP      HEAR        ;等待1s中斷
MIN:      SUB A       4001H       ;與最小值比較
          JC          HEAR        ;等待采集數據
SET        P1.1        ;關閉水泵
CLR        P1.0        ;開啟發射裝置
          ACALL       D1MS         
          CLR         P1.1          ;停止發送
          SET         P1.0          ;關閉發射裝置
HEAR:     AJMP        HEAR          ;等待1s中斷
AJMP      DATE1         ;重新取數據
********TO中斷程序(T0計時器,T1計數器)******
SERVER:    PUSH    A
           PUSH    B
           PUSH    DPL              
           PUSH    DPH              ;保護現場
           CLR     TR0
           CLR     ET0             ;關中斷
           DEC     R0
   JNZ      R0      T2          ;是否到了1S,否則跳到T2
           CLR     TR1
           CLR     ET1          ;停止計數
           MOV     A ,    TH1      ;將高八位的計數值存放A中
           MOV     B ,    TL1      ;將低八位的計數值存放B中
           MOV     5001H ,B
           CZ      A ,    F0       ;判斷是否大于256
           MOV     5000H , #25
F0:        MOV    B ,      #10
           MOV    A ,      5001H
           DIV    AB
ADDC   A,      5000H
MOV   3000H ,  A          ;存放水位值
MOV   TL1 ,    #00H
MOV   TH1 ,    #00H        ;計數值清零
SETB  TR1
SETB  ET1                 ;啟動計數
    T2:         MOV     TH0,   #5BH        ;設置計時值
                 MOV     TL0    #20H
                 SETB    TR0
                 SETB    ET0                 ;開計時中斷
                 POP     A
                 POP     B
                 POP     DPL
                 POP     DPH                   ;恢復現場
                 RETI                          ;轉到顯示程序
********顯示程序*********
    DATE2:      MOV    A ,   3000H            ;取水位數據
                MOV    B ,  #10              ;分離整數和最小值
                DIV    AB                      ;整數放A,小數放B
          ACALL    CHAIAO                ;調用查表
          ADD     A ,    #80H             ;加小數點代碼
          MOV     P2 ,   A                ;顯示整數的數值
          MOV     A ,    B                ;取小數值
          ACALL   CHABIAO                ;調用查表
          MOV    P0 ,    A                ;顯示小數的數值
RET                             ;返回
TABLE:    DB  3FH,  06H, 5BH,  4FH,  66H    ;0,1,2,3,4,
          DB  6DH,  7DH, 07H,  7FH,  6FH    ;5.6.7.8.9
CHABIAO:  PUSH  DPH                      ;保護現場
          PUSH  DPL
           MOV DPTR ,  #TABLE
MOVC  A,  @A+DPTR
          POP  DPL
          POP  DPH                       ;恢復現場
          RET      
D1MS:     MOV  R7,  #80        ;延時1MS子程序
          DJNZ  R7,  $
          RET
END






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