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

📄 程序调试成功.txt

📁 是读卡机的部分程序
💻 TXT
字号:
;======EQU=======================================
 RDD EQU P1.2
 RCP EQU P1.3
 RDD1 EQU P2.1
 RCP1 EQU P2.2
 RDD2 EQU P2.3
 RCP2 EQU P2.4
 KEY2 EQU P3.2
 GREEN EQU P1.1
 RED EQU P1.0
 EMMF EQU P2.0     ;1=MF  0=EM

;=================equ===manchester====================
MBLK    EQU     30H
TLL     EQU     31H
TLH     EQU     32H
THL     EQU     33H
THH     EQU     34H
TDL     EQU     35H
TDL1    EQU     36H
TD_LS   EQU     37H
WIE_LS  EQU     38H
BLK1    EQU     50H
WIE_ADR EQU     50H
OK      BIT     7FH
FEED    BIT     7DH
REED    BIT     7CH
RD_ERA  BIT     7BH
WIE_ST  BIT     7AH
WIE_END BIT     79H
OUT     EQU     P3.7
;=======ORG========================================
 ORG   0000H
 LJMP  STAR
 ORG   0030H
;=============STAR=================================
STAR:JB EMMF,abc
     CLR GREEN
     SETB RED       ;初始时绿灯亮,红灯灭
 WIE:JNB KEY2,JMF
 GJK:JB RDD,WIE_1   ;进门状态
     CLR RDD1
     LCALL TWIE
     SETB RDD1
WIE_1:JB RCP,WIE
     CLR RCP1
     LCALL TWIE
     SETB RCP1
     JMP WIE
 JMF: JB KEY2,GJK
      LCALL DL10MS
      JB KEY2,GJK
  JR: CLR RED          ;出门状态
       SETB GREEN
       LCALL DL10MS
       JNB KEY2,JR
 WIE11:JNB KEY2,STAR2
  GJK2:JB RDD,WIE_22
       CLR RDD2
       LCALL TWIE
       SETB RDD2
WIE_22:JB RCP,WIE11
       CLR RCP2
       LCALL TWIE
       SETB RCP2
       JMP WIE11
STAR2:JB KEY2, GJK2
      LCALL DL10MS
      JB KEY2, GJK2
  JG: CLR GREEN          ;出门状态
      SETB RED
      LCALL DL10MS
      JNB KEY2,JG
      JMP STAR


;=======MAIN==================================
abc:clr green
    setb red
    jmp main



;================manchester change  wiegand=============================
 main:jnb key2,zzza 
  zzzb:MOV R7,#0FDH
      MOV R0,#02H
      CLR A
STR1: MOV @R0,A
      INC R0
      DJNZ R7,STR1

      MOV TLL,#28
      MOV TLH,#56
      MOV THL,#64
      MOV THH,#112
      MOV TDL,#180
      MOV TDL1,#50
      MOV MBLK,#04
      LCALL RD_M
      JNB OK,MAIN
      CLR OK
      MOV R0,#BLK1
      MOV R1,#BLK1+8
      MOV R7,#08H
MAINA1:MOV A,@R0
      INC R0
      MOV R2,A
      MOV A,@R1
      INC R1
      CJNE A,02H,MAIN
      DJNZ R7,MAINA1
      LCALL RD_AA
 
      jb  rd_era,main
      lcall output_32
 MAINA3A:MOV TD_LS,#10H
MAINA3: CLR OK
	MOV MBLK,#04
	cpl dog_rst
	LCALL RD_M
	cpl dog_rst
	JB OK,MAINA3b
	
	DJNZ TD_LS,MAINA3
mainc4:	JMP MAIN	

maina3b:MOV R0,#BLK1
	MOV R1,#BLK1+8
	MOV R7,#08H
MAINAg: MOV A,@R0
	INC R0
	MOV R2,A
	MOV A,@R1
	INC R1
	CJNE A,02H,mainc4
	DJNZ R7,MAINAg
	CPL DOG_RST
       sjmp MAINA3A     
      sjmp main
      
 zzza:jb key2,zzzb
      lcall dl10ms
      jb key2,zzzb
zzzc: clr red
      setb green
      lcall dl10ms
      jnb key2,zzzc
      jmp zzzP
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ZZZW:JNB KEY2,ZZZM
 
 ZZZP: MOV R7,#0FDH
      MOV R0,#02H
      CLR A
STR1QQ: MOV @R0,A
      INC R0
      DJNZ R7,STR1QQ

      MOV TLL,#28
      MOV TLH,#56
      MOV THL,#64
      MOV THH,#112
      MOV TDL,#180
      MOV TDL1,#50
      MOV MBLK,#04
      LCALL RD_M
      JNB OK,ZZZW
      CLR OK
      MOV R0,#BLK1
      MOV R1,#BLK1+8
      MOV R7,#08H
MAINA1QQ:MOV A,@R0
      INC R0
      MOV R2,A
      MOV A,@R1
      INC R1
      CJNE A,02H,ZZZW
      DJNZ R7,MAINA1QQ
      LCALL RD_AA
 
      jb  rd_era,ZZZW
      lcall output_32QQ
 MAINA3Aqq:MOV TD_LS,#10H
MAINA3qq: CLR OK
	MOV MBLK,#04
	cpl dog_rst
	LCALL RD_M
	cpl dog_rst
	JB OK,MAINA3bqq
	
	DJNZ TD_LS,MAINA3qq
mainc4qq:JMP zzzw

maina3bqq:MOV R0,#BLK1
	MOV R1,#BLK1+8
	MOV R7,#08H
MAINAgqq: MOV A,@R0
	INC R0
	MOV R2,A
	MOV A,@R1
	INC R1
	CJNE A,02H,mainc4qq
	DJNZ R7,MAINAgqq
	CPL DOG_RST
       sjmp MAINA3Aqq        
      
      
      
      sjmp ZZZW

 zzzM:jb key2,zzzW
      lcall dl10ms
      jb key2,zzzW
zzzcC: clr GREEN
      setb RED
      lcall dl10ms
      jnb key2,zzzcC
      jmp MAIN


output_32QQ:push 07h
          push 06h
          mov r7,#4
          mov r6,#8
          mov r0,#50h
          lcall dog_rst
out_put1QQ:mov a,@r0
         inc r0
out_put2QQ:rlc a
         jc out_put3QQ
         clr rdd2
         lcall twie1
         setb rdD2
         lcall twie2
         jmp out_put4QQ
out_put3QQ:clr rcp2
         lcall twie1
         setb rcp2
         lcall twie2
out_put4QQ:lcall dog_rst
         djnz r6,out_put2QQ
         mov r6,#8
         mov a,@r0
         inc r0
         djnz r7,out_put2QQ
         lcall twie2
         
         pop 06h
         pop 07h
         ret
twie1:push 05h
      mov r5,#26h
      djnz r5,$
      pop 05h
      ret
twie2:push 04h
      push 05h
      mov r5,#0
      mov r4,#04h
twie2a:djnz r5,$
      lcall dog_rst
      djnz r4,twie2a
      pop 05h
      pop 04h
      ret






;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 output_32:push 07h
          push 06h
          mov r7,#4
          mov r6,#8
          mov r0,#50h
          lcall dog_rst
out_put1:mov a,@r0
         inc r0
out_put2:rlc a
         jc out_put3
         clr rdd1
         lcall twie1
         setb rdd1
         lcall twie2
         jmp out_put4
out_put3:clr rcp1
         lcall twie1
         setb rcp1
         lcall twie2
out_put4:lcall dog_rst
         djnz r6,out_put2
         mov r6,#8
         mov a,@r0
         inc r0
         djnz r7,out_put2
         lcall twie2
         
         pop 06h
         pop 07h
         ret





;==READ MANCHESTER CODE===========================
;INPUT:MBLK     OUT:OK
RD_M:   LCALL EDGEM
	JB OK,RD_OK
	RET
RD_M0:  CLR OK
	RET
RD_OK:  NOP
RD_M1:  MOV R7,MBLK;MAX BLOCK
	MOV R0,#BLK1;READ TO BLK1_BLK7
	MOV R6,#40H
RD_MA2: JB OUT,RD_MA5
	MOV A,#00H
RD_MA3: CJNE A,TDL1,RD_MA4
	JMP RD_M0
RD_MA4: JB OUT,RD_MAK
	INC A
	JMP RD_MA3
RD_MA5: MOV A,#00H
RDMA5:  CJNE A,TDL1,RD_MA6
	JMP RD_M0
RD_MA6: JNB OUT,RD_MAK
	INC A
	JMP RDMA5
RD_MAK: MOV C,OUT
	CPL C
	MOV A,@R0
	RLC A
	MOV @R0,A
	CJNE A,#7FH,RD_MB0
	MOV R1,TDL
	DJNZ R1,$
	call DOG_RST
	INC R0
	JMP RD_ML0
RD_MB0: MOV R1,TDL
	DJNZ R1,$
	call DOG_RST
	DJNZ R6,RD_MA2
	JMP RD_M0
RD_ML0: MOV R6,#0FH
RD_ML1: MOV R5,#08H
RD_ML2: JB OUT,RD_ML5
	MOV A,#00H
RD_ML3: CJNE A,TDL1,RD_ML4
	JMP RD_M0
RD_ML4: JB OUT,RD_MLK
	INC A
	JMP RD_ML3
RD_ML5: MOV A,#00H
RDML5:  CJNE A,TDL1,RD_ML6
	JMP RD_M0
RD_ML6: JNB OUT,RD_MLK
	INC A
	JMP RDML5
RD_MLK: MOV C,OUT
	CPL C
	MOV A,@R0
	RLC A
	MOV @R0,A
	MOV R1,TDL
	DJNZ R1,$
	call DOG_RST
	DJNZ R5,RD_ML2
	INC R0
	DJNZ R6,RD_ML1
	SETB OK
	RET
;=====CHECK EDGE_M=====
EDGEM:  MOV R7,#00H
EDGEO:  SETB FEED
	CLR REED
	DJNZ R7,EDGE1
EDGER:  CLR OK
	RET
EDGE1:  mov r5,#00h
edge1b:	call DOG_RST
	nop
	nop
	JB OUT,EDGE1a
	djnz r5,edge1b
	jmp edger
edge1a:	mov r6,#00h
	call DOG_RST
	call DOG_RST
EDGE2:  djnz r6,edge2a
	jmp edger
edge2a:	JB OUT,EDGE2
	MOV A,#0ffh
	clr c
	subb a,r6
	inc a
	mov dpl,a
	call DOG_RST
EDGE3:  CLR C
	SUBB A,TLL
	JC EDGER
	MOV A,DPL
	CLR C
	SUBB A,TLH
	JC EDGEO
	MOV A,DPL
	CLR C
	SUBB A,THL
	JC EDGER
	MOV A,DPL
	CLR C
	SUBB A,THH
	JNC EDGEO
	call DOG_RST

	mov r6,#00h
EDGE4:  djnz r6,edge4a
	jmp edger
edge4a:	JNB OUT,EDGE4
	MOV A,#0ffh
	clr c
	subb a,r6
	mov dpl,a
	CLR C
	SUBB A,TLL
	JC EDGEQ
	MOV A,DPL
	CLR C
	SUBB A,TLH
	JNC EDGEQ
	MOV R1,TDL
	DJNZ R1,$
	SETB OK
	RET
EDGEQ:  CLR OK
	RET




RD_AA:  MOV R0,#BLK1+2
	MOV R1,#BLK1+10H
	MOV R7,#08H
	MOV R6,#08H
	MOV R5,#01H
	MOV R2,#00H
	MOV A,@R0
	INC R0
	ANL A,#0FH
	MOV R2,A
	MOV A,@R0
	INC R0
	MOV R3,A
RD_AA2: MOV A,R3
	RLC A
	MOV R3,A
	MOV A,R2
	RLC A
	MOV R2,A
	DJNZ R5,RD_AA1
	MOV @R1,A
	INC R1
	MOV R5,#05H
	MOV R2,#00H
	DJNZ R7,RD_AA1
	JMP RD_BB1
RD_AA1: DJNZ R6,RD_AA2
	MOV R6,#08H
	MOV A,@R0
	INC R0
	MOV R3,A
	JMP RD_AA2
RD_BB1: MOV R0,#BLK1+10H
	MOV R7,#08H
RD_BB2: MOV A,@R0
	JB P,RD_ERR
	CLR C
	RRC A
	MOV @R0,A
	INC R0
	DJNZ R7,RD_BB2
	MOV R0,#BLK1+10H
	MOV R1,#BLK1
	MOV R7,#04H
RD_BB3: MOV A,@R0
	ANL A,#0FH
	SWAP A
	MOV R2,A
	INC R0
	MOV A,@R0
	ANL A,#0FH
	ORL A,R2
	INC R0
	MOV @R1,A
	INC R1
	DJNZ R7,RD_BB3
	CLR RD_ERA
	RET
RD_ERR: SETB RD_ERA
        ret
DOG_RST:mov 0a6h,#01eh
        mov 0a6h,#0e1h
        ret



 

;=============================================
;==================WIEMANGNAD TIME===========
TWIE:PUSH 05H
      MOV R5,#26H
      DJNZ R5,$
      POP 05H
      RET
;=========================================
;=============DL10MS======================
DL10MS:MOV R7,#2BH
LOOP1:MOV R6,#0B2H
LOOP2:DJNZ R6,LOOP2
       DJNZ R7,LOOP1
       RET
;=========================================


       end

⌨️ 快捷键说明

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