msm6242 problem
sir,
i've worked a lot on this but still i'm not getting the results where i'm wrong ?
data is there on chip data pins i checked with oscilloscope but when i read it its not giving why pls help me here is the code pls suggest me the solution
org 0000h
main:
call INIT_MT
LOOP:
CALL FINE1
CALL DISPLAY_TIME
SJMP LOOP
INIT_MT:
PUSH ACC
PUSH 00H
PUSH 01H
MOV R0,#0D0H
MOV A,#00000001B ;; HOLD=1
CALL TWRITE
CALL WAIT250US
$RTC1:MOVX A,@R0
JB ACC.1,$RTC1 ;CHECK FOR BUSY BIT
JB ACC.1,$RTC1
MOV R0,#0F0H
MOV A,#00000101B ;24 HR MODE,RESET=1
CALL TWRITE
CALL WAIT250US
MOV A,#00000100B ;24 HR MODE RESET=0
CALL TWRITE
;CALL WAIT250US
MOV R0,#0D0H
$RTC2:CALL WAIT250US
CALL TWRITE
JB ACC.1,$RTC2 ;CHECK FOR BUSY
JB ACC.1,$RTC2
MOV R1,#50H ;HR10 REG ADDRESS
MOV A, #00000001B ; SET HR10 = 1
CALL TWRITE
CALL WAIT250US
MOV R1,#40H ;HR1 REG ADDRESS
MOV A,#00000010B ;SET HR1 = 2
CALL TWRITE
CALL WAIT250US
MOV R1,#40H ;MIN10 ADDRESS
MOV A, #00000100B ;SET MIN10 = 4
CALL TWRITE
CALL WAIT250US
MOV R1,#30H ;MIN1 ADDRESS
MOV A,#00000101B ;SET MIN1 =5
CALL TWRITE
RET
FINE1:
MOV R1,#060H ;READ DAY1 REG
LCALL READRTC
ANL A,#0FH ;ONLY LOWER BYTE
MOV 3FH,A
MOV R1,#070H ;READ DAY10 REG
LCALL READRTC
ANL A,#03H ;ONLY LOWER 2 BITS
MOV 3EH,A
MOV R1,#020H ;READ MIN1 REG
LCALL READRTC
ANL A,#0FH ;LOWER BYTE ONLY
MOV 3DH,A
MOV R1,#030H ;READ MIN10 REG
LCALL READRTC
ANL A,#07H ;LOWER 3 BITS
MOV 3CH,A
MOV R1,#040H ;;HOUR1 REG
LCALL READRTC
ANL A,#0FH
MOV 3BH,A
MOV R1,#050H ;HOUR10 REG READ
LCALL READRTC
ANL A,#03H
MOV 3AH,A
MOV R1,#080H ;MONTH1 REG READ
LCALL READRTC
ANL A,#0FH
MOV 39H,A
MOV R1,#090H MONTH10 REG READ
LCALL READRTC
ANL A,#01H
MOV 38H,A
MOV R1,#0A0H ;READ YEAR1 READ
LCALL READRTC
ANL A,#0FH
MOV 37H,A
MOV R1,#0B0H ;READ YEAR1 REG
LCALL READRTC
ANL A,#0FH
MOV 36H,A
RET
;AS PER TIMING DIAGRAM TWRITE AND READRTC FUNCTIONS ARE WRITTEN
TWRITE:
clr CS0
clr CS1
nop
nop
nop
nop
SETB CS1
nop
setb CS0
nop
clr CS0
nop
CLR TWR
MOVX @R1,A
CALL WAIT250US
NOP
SETB TWR
nop
nop
CLR CS1
RET
READRTC:
clr CS1
clr CS0
nop
nop
nop
nop
SETB CS1
nop
setb CS0
nop
nop
nop
CLR CS0
nop
CLR TRD
NOP
MOV A,@R1
nop
CALL WAIT250US
SETB TRD
nop
nop
CLR CS1
RET
WAIT250US:MOV 34H,#07DH
DF1: DJNZ 34H,DF1
RET