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

📄 plj100.asm

📁 频率计的程序
💻 ASM
📖 第 1 页 / 共 4 页
字号:
                 MOV       TL0,#058H
                 MOV       TH1,#0fdH
                 MOV       TL1,#0fdH
                 CLR     LBJDQ
                MOV      R0,#BCD1
                MOV      R6,#40
PLJK:           MOV      A,#00H
                MOV      @R0,A
                INC      R0
                DJNZ     R6,PLJK
                CLR       CLRD
                 CLR       START
                 MOV      KDIG,#0FFH
                 MOV      DS_TIME,#20
                 CLR      CLRD;计数器清零
                 NOP
                 MOV     GDIG,#04H
                 MOV     FYDIG,#00H
                 MOV     LBDIG,#00H
                 ;================
                 MOV       KEYFUN,#00H
                 MOV       XSDIG,#00H
                 CLR       JS_BZ
                 CLR       KEY_BZ
                 CLR      FY_BZ
                 CLR      LB_BZ
                 ;================
                 SETB     START;启动计数器
                SETB      TR0
                 SETB      TR1
                 SETB      ET0
                 SETB      EA
                 SETB      ES
                 CLR       EX1
                 CLR       EX0
                 SETB     RECE_BZ
                 CLR      RECE_1
                 CLR      RECE_2
                 CLR      RECE_3
                 CLR      RECE_4
                 CLR      RECE_5
                 CLR      SEND_BZ
                 RET
;===========================================
;=============看门狗电路====================
WDT_DOG:   MOV   B,A
           MOV   A,#01EH
           MOV   0A6H,A
           NOP
           MOV   A,#0E1H
           MOV   0A6H,A
           MOV   A,B
           RET
;===========================================
DELAY10:   NOP
DELAY5:    MOV  R6,#0FFH
           LCALL  wdt_dog
           DJNZ  R6,$
           RET
DELAY101:  MOV   R3,#6
IUR:       LCALL  DELAY5
           DJNZ  R3,IUR
           RET
;===========================================


/*


RD_TX:           PUSH      ACC
                 PUSH      DPH
                 PUSH      DPL
                 PUSH      00H
                 PUSH      B
                 PUSH      PSW
                 JBC       RI,RECEDATA
                 JBC       TI,KTH
KTH:             POP       PSW
                 POP       B
                 POP       00H
                 POP       DPL
                 POP       DPH
                 POP       ACC
                 RETI
RECE_END:        LJMP     KTH
RECEDATA:        JNB      RECE_BZ,RECE_END
RECE_READ:      MOV      A,SBUF
                CLR      C
                SUBB     A,#33H;40H为起始数据
                JNZ      RECE_END
                SETB     RECE_1
                clr      ea
                clr      tr0
                mov     sbuf,#33h
                CLR     9DH
                clr   ri
S99:            LCALL   wdt_dog
                jnb     ti,S99
                clr     ti
                CLR    RI
               ; MOV    RECEDATA2,#0FFH
kjh10:        ;    lcall   wdt_dog
              ;  MOV    A,RECEDATA2
              ;  JZ     FDS
              ;  DEC    RECEDATA2
                LCALL   DELAY40
               ; JNB    RI,kjh10
               ; jnb     ri,KJH
FDS:           ; MOV     A,SBUF
               ; clr      ri
               ; CJNE    A,#3FH,SENDD1
                ;LJMP     SENDC9
SENDD1:         LCALL    SENDRD;回传读数据
TTY:            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
                clr     ri
                MOV      DS_TIME,#60
                CLR      CLRD
                SETB      START
                MOV      TH0,#0FBH
                MOV      TL0,#18H
               lcall   wdt_dog
               LJMP     RECE_END
*/ 

 RD_TX:           PUSH      ACC
                 PUSH      DPH
                 PUSH      DPL
                 PUSH      00H
                 PUSH      B
                 PUSH      PSW
                 JBC       RI,RECEDATA
                 JBC       TI,KTH
KTH:             POP       PSW
                 POP       B
                 POP       00H
                 POP       DPL
                 POP       DPH
                 POP       ACC
                 RETI
RECE_END:       CLR  RECE_1
                CLR  RECE_2
                CLR  RECE_3
                CLR  RECE_4
                CLR  RECE_5
                LJMP     KTH
RECEDATA:      ;ljmp  recedata
                JNB      RECE_BZ,RECE_END
RECE_READ:      JB       RECE_1,RECE_READ1
                MOV      A,SBUF
                CLR      C
                SUBB     A,#33H;
                JNZ      RECE_END
                
                mov      TX_TIME,#200
                SETB     RECE_1
                LJMP     KTH
RECE_READ1:     JB     RECE_2,RECE_READ2
                MOV      A,SBUF
                CLR      C
                SUBB     A,#52H;40H为起始数据
                JNZ      RECE_END
                
                SETB     RECE_2
                LJMP     KTH
RECE_READ2:     JB     RECE_3,RECE_READ3
                MOV      A,SBUF
                CLR      C
                SUBB     A,#00H;40H为起始数据
                JNZ      RECE_END
                
                SETB     RECE_3
              ;  LJMP    SENDD1
                LJMP     KTH
RECE_READ3:     JB     RECE_4,RECE_READ4
                MOV      A,SBUF
                CLR      C
                SUBB     A,#02H;40H为起始数据
                JNZ      RECE_END
                SETB     RECE_4
              ;  LJMP    SENDD1
                LJMP     KTH
RECE_READ4:     JB     RECE_5,RECE_READ5
                MOV      A,SBUF
                CLR      C
                SUBB     A,#87H;40H为起始数据
                
                JNZ      RECE_END
                SETB     RECE_5
                LJMP    SENDD1
                LJMP     KTH
RECE_READ5:                     

              
SENDD1:        LCALL    SENDRD;回传读数据
                 SETB     RT485
                 CLR       EA
              
TTY:            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
                LJMP     RECE_END




WRDATA:        ; MOV      RECE_BYE1,#15
                LJMP     tty
PDERR2:         LCALL     PDERR
                LJMP      TTY
SENDC9:          LCALL  SENDC
                 LJMP   TTY
;=====================================
;入口R2->R6低,r7高
HASCIA:         MOV      A,R2
                ANL      A,#0FH
                ADD      A,#0F6H
                MOV      A,R2
                ANL      A,#0FH
                JNC      AD30
                ADD      A,#07H
AD30:           ADD      A,#30H
                MOV      R6,A
HASCIB:         MOV      A,R2
                ANL      A,#0F0H
                SWAP     A
                ADD      A,#0F6H
                MOV      A,R2
                ANL      A,#0F0H
                SWAP     A
                JNC      AD31
                ADD      A,#07H
AD31:           ADD      A,#30H
                MOV      R7,A
                RET
                ;============
ASCHEX:         MOV      A,R2
                CLR      C
                SUBB     A,#30H
                MOV      R2,A
                SUBB     A,#0AH
                JC       RETY
                MOV      A,R2
                SUBB     A,#07H
                 MOV      R2,A
RETY:            MOV      A,R3
                CLR      C
                SUBB     A,#30H
                MOV      R3,A
                SUBB     A,#0AH
                JC       RETT
                MOV      A,R3
                SUBB     A,#07H
                MOV      R3,A
RETT:           MOV      A,R3
                ANL      A,#0FH
                MOV      R3,A
                MOV      A,R2
                SWAP     A
                ANL      A,#0F0H
                ORL      A,R3
                MOV      R3,A
                RET
;=======================================
DELAY40:        MOV      R5,#10
                LCALL    wdt_dog
	            DJNZ     R5,$
	            RET
sendc:          RET
;=======================================



SENDRD:       ;  CLR       ES
                
                SETB      RT485
                MOV       KKKK,#0
                CLR       RECE_BZ
SEDADD:         MOV       A,#33H
                MOV       SBUF,A
                 ADD       A,KKKK
               MOV       KKKK,A
SEDCOM:         ;LCALL    WDOG
                JNB       TI,SEDCOM
                CLR       TI
                LCALL     DELAY40
                MOV       A,#08H
                MOV       SBUF,A
                ADD       A,KKKK
               MOV       KKKK,A
SEDDAT:         ;LCALL    WDOG
                JNB       TI,SEDDAT
                CLR      TI
                LCALL     DELAY40
                mov      r3,#7
               ;MOV       R0,#MA1_DATAH
	        MOV       R0,#DSPLA_ADD3
YIP:            MOV       A,@R0              
                MOV       SBUF,A
                 ADD       A,KKKK
               MOV       KKKK,A
PPPA:          ; LCALL    WDOG
                JNB       TI,PPPA
                CLR       TI
                INC       R0
tyu:           ; lcall     rst_wdog
              ;  jnb       ri,TYU
              ;  clr       ri
                LCALL     DELAY40
                DJNZ      R3,YIP

SEDXSD:         ;LCALL    WDOG                
                ;MOV       A,#00H; XSDIG1
                MOV       A,XSDIG1
                MOV       SBUF,A
                ADD       A,KKKK
               MOV       KKKK,A
	       
SEDSUM:        ; LCALL    WDOG
                JNB       TI,SEDSUM
                CLR       TI
                MOV      A,KKKK
                MOV      SBUF,A 
SEDSUM1:        JNB       TI,SEDSUM1
                CLR        TI
                LCALL     DELAY40
                MOV       TX_TIME,#30
                SETB      RECE_BZ
                CLR       RT485
              
                SETB      ES
                RET


/*



SENDRD:         CLR       ES
                SETB      RT485
                CLR       RECE_BZ
plh:            lcall   wdt_dog
              ;  jnb     ri,plh
                clr   ri
                mov       r3,#9
                MOV       R0,#DSPLA_ADD1
YIP:            MOV       A,@R0
                MOV       SBUF,A
PPPA:           LCALL      wdt_dog
                JNB       TI,PPPA
                CLR       TI
tyu:            lcall     wdt_dog
               ; jnb       ri,TYU
                clr       ri
                INC       R0
                LCALL     DELAY40
                DJNZ      R3,YIP
                mov      sbuf,xsdig1
d888:           lcall    wdt_dog
                jnb      ti,d888        
                clr      ti
                MOV       TX_TIME,#30
                SETB      RECE_BZ
                CLR       RT485
                RET
                ;.........................
SENDTX:         CLR       ES
                SETB      RT485
                CLR       SEND_BZ
                MOV      A,#40H
                MOV      SBUF,A
                JNB       TI,$
                CLR       TI
                LCALL     DELAY40
                MOV      A,ADDH
                MOV      SBUF,A
                JNB       TI,$
                CLR       TI
                LCALL     DELAY40
                MOV      A,ADDL
                MOV      SBUF,A
                JNB       TI,$
                CLR       TI
                LCALL     DELAY40
                MOV      A,#23H
                MOV      SBUF,A
                JNB       TI,$
                CLR       TI
                LCALL     DELAY40
                MOV      A,#23H
                MOV      SBUF,A
                JNB       TI,$
                CLR       TI
                LCALL     DELAY40
                MOV       A,ADDH
                XRL       A,ADDL
                MOV       R2,A
                LCALL     HASCIA
                MOV       A,R7
                MOV       SBUF,A
                JNB       TI,$
                CLR       TI
                LCALL     DELAY40
                MOV       A,R6
                MOV       SBUF,A
                JNB       TI,$
                CLR       TI
                LCALL     DELAY40
                MOV       A,#0DH
                MOV       SBUF,A
                JNB       TI,$
                CLR       TI
                LCALL     DELAY40
                SETB       RECE_BZ
                CLR       RT485
                ;SETB      ES
                RET

*/

PDERR:          CLR      ES
                SETB     RT485
                CLR      RECE_BZ
                MOV      A,#40H
                MOV      SBUF,A
                JNB       TI,$
                CLR       TI
                LCALL     DELAY40
                MOV      A,ADDH
                MOV      SBUF,A
                JNB       TI,$
                CLR       TI
                LCALL     DELAY40
                MOV      A,ADDL
                MOV      SBUF,A
                JNB       TI,$
                CLR       TI
                LCALL     DELAY40
                MOV      A,#2AH
                MOV      SBUF,A
                JNB       TI,$
                CLR       TI
                LCALL     DELAY40
                MOV      A,#2AH
                MOV      SBUF,A
                JNB       TI,$
                CLR       TI
                LCALL     DELAY40
                MOV       A,ADDH
                XRL       A,ADDL
                MOV       R2,A
                LCALL     HASCIA
                MOV       A,R7
                MOV       SBUF,A
                JNB       TI,$
                CLR       TI
                LCALL     DELAY40

⌨️ 快捷键说明

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