Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
11/25/04 09:00
Read: times


 
#81892 - about wiegand26 receive
i used the ID-12 modual of the Innovations Crop as the reader,and the DATA0 and DATA1 of ID-12 is direct connected to the P14 and P15 of the 51,now i used the followed program to receive the card data from ID-12,but the program seems to work unproperly.
DATA0 EQU P1.4
DATA1 EQU P1.5
public WIEGAND_RXSTART ;global variable
public BYTE_ADDR ;
public RX_EVEN_CHECK
public RX_ODD_CHECK

BIT_VAR segment bit
BYTE_VAR segment data
proc segment code

rseg BIT_VAR
RX_EVEN_CHECK: DBIT 1
RX_ODD_CHECK: DBIT 1
EVEN_FLAG: DBIT 1
TIME_OUT_FLAG: DBIT 1

rseg BYTE_VAR
BYTE_ADDR: DS 6

cseg at 000BH
LJMP TIMER0_INT
rseg proc
WIEGAND_RXSTART:
MOV A,TMOD
ORL A,#01H
MOV TMOD,A
;SETB EA
SETB EVEN_FLAG
CLR TIME_OUT_FLAG
MOV R2,#6
MOV R3,#4
MOV R0,#BYTE_ADDR
MOV TH0,#00H ;65.536ms time-out
MOV TL0,#00H
SETB TR0
WIEGAND_BEGIN:
JB TIME_OUT_FLAG,ERR ;
WIEGAND_1:
JNB DATA0,WIEGAND_2
JB DATA1,WIEGAND_BEGIN
JB TIME_OUT_FLAG,ERR
MOV TH0,#0F8H
MOV TL0,#30H
CLR TIME_OUT_FLAG
SETB TR0
LCALL DELAY25US
MOV C,DATA0
LCALL DELAY175US
JNB DATA1,ERR
LJMP WIEGAND_3
WIEGAND_2:
NOP
JB TIME_OUT_FLAG,ERR
MOV TH0,#0F8H
MOV TL0,#30H
CLR TIME_OUT_FLAG
SETB TR0
LCALL DELAY25US
MOV C,DATA0
LCALL DELAY175US
JNB DATA0,ERR
WIEGAND_3:
JNB EVEN_FLAG,WIEGAND_DATA
MOV RX_EVEN_CHECK,C
CLR EVEN_FLAG
LJMP WIEGAND_1
WIEGAND_DATA:
RLC A
DJNZ R3,WIEGAND_1
ANL A,#00001111B
MOV @R0,A
INC R0
MOV R3,#4
DJNZ R2,WIEGAND_1
ODD:
JNB DATA0,ODD_BIT
JB DATA1,ODD
ODD_BIT:
NOP
LCALL DELAY25US
MOV C,DATA0
MOV RX_ODD_CHECK,C
RET
DELAY25US:
MOV R4,#11
DELAY25US_A:
DJNZ R4,DELAY25US_A
NOP
RET
DELAY175US:
MOV R4,#86
DELAY175US_A:
DJNZ R4,DELAY175US_A
NOP
RET
TIMER0_INT:
SETB TIME_OUT_FLAG
CLR TR0
RETI
ERR:
NOP
;LJMP WIEGAND_START
RET
END


List of 11 messages in thread
TopicAuthorDate
about wiegand26 receive            01/01/70 00:00      
   no need to use timer here            01/01/70 00:00      
      the program i listed is a subroutine.            01/01/70 00:00      
   Feng Shui            01/01/70 00:00      
   no time to look at            01/01/70 00:00      
      now i past the progarm with comment.            01/01/70 00:00      
         minor suggestion            01/01/70 00:00      
            CLR TR0 is in t0 interrupt subroutine            01/01/70 00:00      
               The Odd Bit            01/01/70 00:00      
                  wait for the odd bit!            01/01/70 00:00      
                     Sorry, my fault            01/01/70 00:00      

Back to Subject List