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

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
08/06/00 23:35
Read: times


 
#4186 - DS1821 SUB-PROGRAM
ORG 0000H
LJMP MAIN
ORG 000BH
AJMP DS1821

CRC EQU 60H
ORG 30H
...
³õʼ»¯³ÌÐò £»´ÓÂÔ
...
; MOV 40H,#02H
; MOV 3FH,#1CH
; MOV 3EH,#0B8H
; MOV 3DH,#01H
; MOV 3CH,#00H
; MOV 3BH,#00H
; MOV 3AH,#00H
...
MAIN: ACALL KEYBOARD £»´ÓÂÔ
ACALL DISPLAY £»´ÓÂÔ
...
ORL PCON.0,#01H
AJMP MAIN

DS1821£ºÑ¹ÈëÐèÒª±£»¤µÄ¹¤×÷¼Ä´æÆ÷
ÅжÏʱ¼ä>1Ã룿·ñÔò³ÌÐòÌø³ö¡£
ACALL RESET1 ;READ SERAIL NUMBER
MOV R7,#33H
ACALL WRBYT
MOV R1,#40H ;RESULT IN 40H 41H 42H 43H 44H 45H
MOV R3,#08H
ACALL RDBYTS
MOV R2,#40H ;PLACE HIGH STRAT ADDRESS
MOV R3,#07H
ACALL CRC4 ;CRC4 CHECK
;READ SCRATCHPAD
MOV R7,#0BEH ;PLACE COMMAND BYTE
ACALL WRBYT
MOV R7,#0BEH ;PLACE COMMAND BYTE
ACALL WRBYT
MOV R1,#50H ;RESULT IN 40H 41H 42H 43H 44H 45H
MOV R3,#08H
ACALL RDBYTS
µ¯À´Ñ¹ÈëµÄ¹¤×÷¼Ä´æÆ÷
RETI
;***********************************************
;CRC4 CHECK R2=LOW ADDRESS,R3=NUMBER OF BYTES
;***********************************************
CRC4: MOV A,R2
MOV R0,A
MOV CRC,#00H
CRC0: MOV A,@R0
DO_CRC: PUSH ACC
PUSH B
PUSH ACC
MOV B,#08H
CRC_LOOP: XRL A,CRC
RRC A
MOV A,CRC
JNC ZERO
XRL A,#18H
ZERO: RRC A
MOV CRC,A
POP ACC
RR A
PUSH ACC
DJNZ B,CRC_LOOP
POP ACC
POP B
POP ACC
INC R0
DJNZ R3,CRC0
RET
RESET1: NOP
SETB P1.0
NOP
NOP
NOP
CLR P1.0
ACALL DE600
ACALL DE60
ACALL DE60
SETB P1.0
ACALL DE30
MOV C,P1.0
;JNC RESET1
ACALL DE60
MOV C,P1.0
JC RESET1
;ACALL DE600
RET
;*********************************
;R0=TIMES DELAY TIME=5+R0*3 us
;*********************************
DELAY: NOP
DJNZ R0,DELAY
DEEND: RET
;*********************************
;DELAY 60us 2+1+2+16*3+2=55
;*********************************
DE60: MOV R0,#10H
ACALL DELAY
RET
;*********************************
;DELAY 50us 2+1+2+13*3+2=46
;*********************************
DE50: MOV R0,#0DH
ACALL DELAY
RET
;*********************************
;DELAY 30us 2+2+1+2+7*3=28
;*********************************
DE30: MOV R0,#07H
ACALL DELAY
RET
;*********************************
;DELAY 600us 2+1+2+148*3+2=550
;*********************************
DE600: MOV R0,#96H
ACALL DELAY
RET
;*********************************
;DELAY 8us 2+1+2+2=7
;*********************************
DE8: NOP
NOP
NOP
RET
;********************************
;WRITE 1
;********************************
WR1: SETB P1.0
ACALL DE8
CLR P1.0
ACALL DE8
NOP
SETB P1.0
SETB P1.0
ACALL DE8
ACALL DE50
ACALL DE30
RET



No replies in thread

Back to Subject List