⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 plj100.asm

📁 频率计的程序
💻 ASM
📖 第 1 页 / 共 4 页
字号:
        MOV     A,R0
        MOV     R4,A
        MOV     A,R1
        MOV     R5,A
        MOV     A,R3
        MOV     R7,A
        MOV     A,R0
        ADD     A,R3
        MOV     R6,A
        MOV     R1,A
LP05:    MOV     @R1,#00H
        INC     R1
        LCALL   wdt_dog
        DJNZ    R3,LP05
        MOV     A,R7
        ADD     A,R7
        MOV     R2,A
        MOV     B,#04H
        MUL     AB
LP10:   PUSH    ACC
        MOV     A,R2
        MOV     R3,A
        MOV     A,R4
        MOV     R1,A
        CLR     C
        ;================
         push   acc
        mov     49h,a
        mov      4ah,r6
        lcall   dspla
        mov    a,49h
        mov   r6,4ah
        pop    acc
        CLR     C
LP20:    MOV     A,@R1
        RLC     A
        MOV     @R1,A
        INC     R1
        DJNZ    R3,LP20
NEXT:   MOV     A,R6
        MOV     R0,A
        MOV     A,R5
        MOV     R1,A
        MOV     A,R7
        MOV     R3,A
        CLR     C
LP3:    MOV     A,@R0
        SUBB    A,@R1
        PUSH    ACC
        INC     R0
        INC     R1
        DJNZ    R3,LP3
        MOV     A,R7
        MOV     R3,A
        JC      SMALL
        MOV     A,R4
        MOV     R0,A
        INC     @R0
        MOV     A,R6
        ADD     A,R7
        DEC     A
        MOV     R0,A
LP4:    POP     ACC
        MOV     @R0,A
        DEC     R0
        DJNZ    R3,LP4
        SJMP    NEXT
SMALL:  POP     ACC
;=====================
       DJNZ    R3,SMALL
        POP     ACC
        DEC     A
        JNZ     LP10
          ;===========
        push   acc
        mov     49h,a
        mov      4ah,r6
        lcall   dspla
        mov    a,49h
        mov   r6,4ah
        pop    acc
        ;==================
I504:   MOV     A,R6
        ADD     A,R7
        DEC     A
        MOV     R0,A
        MOV     R2,A
        MOV     A,@R0
        JB      0E7H,ADD1
        MOV     A,R6
        MOV     R1,A
        MOV     A,R7
        MOV     R3,A
        CLR     C
LP5:    MOV     A,@R1
        RLC     A
        MOV     @R1,A
        INC     R1
        DJNZ    R3,LP5
        MOV     A,R2
        MOV     R0,A
        MOV     A,R7
        MOV     R3,A
        ADD     A,R5
        DEC     A
        MOV     R1,A
LP6:    CLR     C
        MOV     A,@R0
        SUBB    A,@R1
        JC      RETURN
        JNZ     ADD1
        DEC     R0
        DEC     R1
        DJNZ    R3,LP6
        LCALL   wdt_dog
ADD1:   MOV     A,R4
        MOV     R1,A
        MOV     A,R7
        MOV     R3,A
        SETB    C
LP71:    MOV     A,@R1
        ADDC    A,#00H
        MOV     @R1,A
        INC     R1
        DJNZ    R3,LP71
RETURN:  MOV    A,R4
        MOV   R0,A
        MOV   A,R7
        MOV   R3,A
        RET
;===============================================
;=============================
;====================================
TIM1:   RETI
KEY:    ;4BH为功能寄存器,0/为频率测量,1/为计数器,2/为计数器停止
        ;4CH为显示寄存器,0/为8位显示,1/为4-5位显示
        SETB    KEY1
        SETB    KEY2
        SETB    KEY3
        SETB    KEY4
        SETB    ADRA
        SETB    ADRB
        JB      adra,PDNX1;计数键
        JB      key4,TTRW;频率键
        LCALL   DELAY10
        JB      adra,PDNX1
        JB      key4,TTRW
        MOV     KEYFUN,#00H
        MOV     GDIG,#08H;100m
        SETB   KEY_BZ
        RET
TTRW:   LCALL   DELAY10
        JB      adra,PDNX1;频率
        MOV     KEYFUN,#00H
        MOV     GDIG,#04H;123
        SETB    F_FLAG
         SETB   KEY_BZ
        RET
PDNX1:   JB     KEY4,PDNX2;计数键
         LCALL  DELAY10
         JB     KEY4,PDNX2
         MOV    KEYFUN,#01H
         SETB    C_FLAG
         SETB   KEY_BZ
         RET
PDNX2:   JB   KEY3,PDNX4
         LCALL  DELAY10
         JB     KEY3,PDNX4
PPR:     MOV    KEYFUN,#02H
         SETB    H_FLAG
         RET
;================================
PDNX3:   JB  KEY1,PDNX41
         MOV   XSDIG,#01H
         LJMP   PDNX4
PDNX41:  MOV XSDIG,#00H
         LJMP  PDNX4
;=================================
PDNX4:   JB    key1,PDNX5;adra
         LCALL  DELAY10
         JB    key1,PDNX5
         JB     FY_BZ,S5
         MOV    FYDIG,#02H;分压x20
         SETB    FY_BZ
         RET
S5:      MOV    FYDIG,#00H
         CLR    FY_BZ
         RET
PDNX5:   JB    key2,PDNX6;adrb
         LCALL  DELAY10
         JB    key2,PDNX6
         JB    LB_BZ,L5
         MOV   LBDIG,#1
         SETB   LB_BZ
         RET
L5:      MOV   LBDIG,#0
         CLR   LB_BZ
         RET
PDNX6:   RET
;====================================
DSPLA4:    MOV    A,DSPLA_ADD5
           CLR    C
           SUBB   A,#10
           JC     PDF1
           JB     XS_BZ1,PG1
           MOV    DSPLA_ADD5,A
           MOV    A,DSPLA_ADD8
           ADD    A,#10
           MOV    DSPLA_ADD8,A
PG1:       MOV    XSDIG1,#4
           MOV    DSPLA_ADD1,#32
           MOV     A,DSPLA_ADD1
           ADD     A,FYDIG
           MOV      DSPLA_ADD1,A
           MOV     A,DSPLA_ADD1
           ADD     A,LBDIG
           ADD     A,GDIG
           MOV     DSPLA_ADD1,A
           RET
PDF1:      MOV    A,DSPLA_ADD4
           CLR    C
           SUBB   A,#10
           JC     PDF2
           JB     XS_BZ1,PG2
           MOV    A,DSPLA_ADD7
           CLR    C
           ADDC   A,#10
           MOV    DSPLA_ADD7,A
PG2:       MOV    DSPLA_ADD1,#32
           MOV     A,DSPLA_ADD1
           ADD     A,FYDIG
           MOV      DSPLA_ADD1,A
           MOV     A,DSPLA_ADD1
           ADD     A,LBDIG
           ADD     A,GDIG
           MOV     DSPLA_ADD1,A

           MOV    XSDIG1,#4
           RET
PDF2:     MOV    A,DSPLA_ADD3
          CLR    C
          SUBB   A,#10
          JC     PDF3
          JB     XS_BZ1,PG3
          MOV    A,DSPLA_ADD6
          CLR    C
          ADDC   A,#10
          MOV    DSPLA_ADD6,A
PG3:      MOV    DSPLA_ADD1,#32
          MOV     A,DSPLA_ADD1
           ADD     A,FYDIG
           MOV      DSPLA_ADD1,A
           MOV     A,DSPLA_ADD1
           ADD     A,LBDIG
           ADD     A,GDIG
           MOV     DSPLA_ADD1,A

          MOV    XSDIG1,#4
          RET
PDF3:     MOV    A,DSPLA_ADD2
          CLR    C
          SUBB   A,#10
          JC     PDF4
          JB    XS_BZ1,PG4
          MOV    A,DSPLA_ADD5
          ADD    A,#10
          MOV    DSPLA_ADD5,A
PG4:      MOV    DSPLA_ADD1,#32
          MOV     A,DSPLA_ADD1
           ADD     A,FYDIG
           MOV      DSPLA_ADD1,A
           MOV     A,DSPLA_ADD1
           ADD     A,LBDIG
           ADD     A,GDIG
           MOV     DSPLA_ADD1,A
          MOV    XSDIG1,#4
          RET
PDF4:     JB     XS_BZ1,PG5
          MOV    DSPLA_ADD1,#20
          MOV     A,DSPLA_ADD1
           ADD     A,FYDIG
           MOV      DSPLA_ADD1,A
           MOV     A,DSPLA_ADD1
           ADD     A,LBDIG
           ADD     A,GDIG
           MOV     DSPLA_ADD1,A
PG5:      MOV    XSDIG1,#4
          RET
 ;===========================
;=================================
BNBCD:          SETB     GK
                CLR      ADRB
                CLR      ADRA
                MOV      A,P2
                MOV      BCJSQ0,A
                ;========选择2通道====标准频率==
                SETB      ADRB
                CLR       ADRA
                NOP
                MOV      A,P2
                MOV      BCJSQ1,A
                ;========选择3通道====标准频率==
                CLR      ADRB
                SETB     ADRA
                NOP
                MOV      A,P2
                MOV      BCJSQ2,A
                ;========选择4通道====标准频率==
                SETB      ADRA
                SETB      ADRB
                MOV       A,P2
                MOV       BCJSQ3,A
                LCALL    DSPLA
            ;========================================
PKK:       MOV      R0,#BCD1
           MOV      R6,#4
PLJK2:     MOV      A,#00H
           MOV      @R0,A
           INC      R0
           DJNZ     R6,PLJK2
           ;===========================
           MOV   R0,#BCJSQ0
           MOV   R7,4
           MOV   R1,#BCD1
           MOV   A,R0
          MOV   R5,A
          MOV   A,R1
          MOV   R6,A
          MOV   A,R7
          MOV   R3,A
          INC   R3
          CLR  A
CLBCD1:    MOV   @R1,A
          INC   R1
          DJNZ  R3,CLBCD1
          MOV   A,R7
          MOV   B,#08
          MUL   AB
          MOV   R3,A
LP01:      MOV   A,R5
          MOV   R0,A
          MOV   A,R7
          MOV   R2,A
          CLR   C
LP11:      MOV   A,@R0
          RLC   A
          MOV   @R0,A
          INC  R0
          DJNZ   R2,LP11
          MOV   A,R6
          MOV   R1,A
          MOV   A,R7
          MOV   R2,A
          INC  R2
LP21:   MOV   A,@R1
       ADDC  A,@R1
       DA    A
       MOV   @R1,A
       INC  R1
       DJNZ   R2,LP21
       DJNZ   R3,LP01
       MOV    A,R6
       MOV   R1,A
       RET
       ;==================
PFG:    MOV    R0,#BCD4
       MOV    A,@R0
       ANL   A,#0F0H
       SWAP   A
       MOV    DSPLA_ADD9,A
       MOV    A,@R0
       ANL   A,#0FH
       MOV   DSPLA_ADD8,A
       DEC   R0
       MOV    A,@R0
       ANL   A,#0F0H
       SWAP   A
       MOV    DSPLA_ADD7,A
       MOV    A,@R0
       ANL   A,#0FH
       MOV   DSPLA_ADD6,A
       DEC   R0
       MOV    A,@R0
       ANL   A,#0F0H
       SWAP   A
       MOV    DSPLA_ADD5,A
       MOV    A,@R0
       ANL   A,#0FH
       MOV   DSPLA_ADD4,A
       DEC   R0
       MOV    A,@R0
       ANL   A,#0F0H
       SWAP   A
       MOV    DSPLA_ADD3,A
       MOV    A,@R0
       ANL   A,#0FH
       MOV   DSPLA_ADD2,A
         RET
;=========================================

txfg:            PUSH      ACC
                 PUSH      DPH
                 PUSH      DPL
                 PUSH      00H
                 PUSH      B
                 PUSH      PSW
                 JBC       RI,RECEDATA9
                 JBC       TI,KTH9
KTH9:             POP       PSW
                 POP       B
                 POP       00H
                 POP       DPL
                 POP       DPH
                 POP       ACC
                 RET
RECE_END9:        LJMP     KTH9
RECEDATA9:        JNB      RECE_BZ,RECE_END9
;RECE_READ:   ;   JB       RECE_1,RECE_READ1
                MOV      A,SBUF
                CLR      C
                SUBB     A,#33H;40H为起始数据
                JNZ      RECE_END9
                SETB     RECE_1
                clr      ea
                mov     sbuf,#33h
                CLR     9DH
S999:           LCALL   wdt_dog
                jnb     ti,S999
                clr     ti
               ; MOV    RECEDATA2,#0FFH
kjh9:           lcall   wdt_dog
               ; MOV    A,RECEDATA2
               ; JZ     FDS9
               ; DEC    RECEDATA2
               ; jnb     ri,KJH9
FDS9:          ;  MOV     A,SBUF
               ; clr      ri
               ; CJNE    A,#3FH,SENDD19
               ; LJMP     SENDC99
SENDD19:         LCALL    SENDRD;回传读数据
TTY9:            SETB     RECE_BZ
                CLR      RECE_1
                CLR      RECE_2
                CLR      RECE_3;
                CLR      RECE_4
                CLR      RECE_5;1
                SETB     RECE_BZ
                SETB     9DH
                SETB     ES
                SETB     EA
                SETB     TR0
                SETB     TR1
                MOV      DS_TIME,#3
                CLR      CLRD
                SETB      START
                MOV      TH0,#0FBH
                MOV      TL0,#18H
                lcall   wdt_dog
                LJMP     RECE_END9
WRDATA9:        ; MOV      RECE_BYE1,#15
                LJMP     tty9
PDERR29:         LCALL     PDERR
                LJMP      TTY9
SENDC99:          LCALL  SENDC
                 LJMP   TTY9
	
           END





⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -