Q
quad
Guest
MOV A,#90H
MOV DPTR,#FF13H // LOAD CTRL WORD(90H) TO CONTROL REG(FF13) PA-
IN,PB-OUT,PC-OUT
MOVX @DPTR,A
MOV R1,#0Fh //COUNTER VALUE
MOV A,R1
MOV R2,A //R2 STORES THE CTR VALUE OF EACH ITERATION OF THE
PROGRAM
REPEAT: MOV DPTR,#FF11H
MOV A,R2 // MOVE ACC VALUE TO PORT B(FF11 - O/P PORT)
MOVX @DPTR,A
MOV DPTR,#FF10H
MOVX A,@DPTR // GET VALUE ON PORT A AND MOVE TO ACC
ADD A,#30H // CONVERT ACC VALUE TO HEXA
MOV TMOD,#20H
MOV TH1,#FDH
MOV TL1,#00H // MOVE ACC CONTENTS TO SERIAL PORT
MOV TCON,#40H
MOV SCON,#58H
MOV SBUF,A
HERE: JNB TI,HERE
CLR TI // TI = SCON.1
DEC R2
CJNE R2,#0,REPEAT // REPEAT FOR CTR VALUES STARTING FROM "OF" TO
"00"
PROBLEM: output comes on hyperterminal only for the first time.
Subsequent counter values are not getting printed. Anything to be
changed in tcon,scon,tmod? Or some clk freq to be changed, delay
given? Or anything else to be reset or cleared? Please clarify
Thanks
Quad
MOV DPTR,#FF13H // LOAD CTRL WORD(90H) TO CONTROL REG(FF13) PA-
IN,PB-OUT,PC-OUT
MOVX @DPTR,A
MOV R1,#0Fh //COUNTER VALUE
MOV A,R1
MOV R2,A //R2 STORES THE CTR VALUE OF EACH ITERATION OF THE
PROGRAM
REPEAT: MOV DPTR,#FF11H
MOV A,R2 // MOVE ACC VALUE TO PORT B(FF11 - O/P PORT)
MOVX @DPTR,A
MOV DPTR,#FF10H
MOVX A,@DPTR // GET VALUE ON PORT A AND MOVE TO ACC
ADD A,#30H // CONVERT ACC VALUE TO HEXA
MOV TMOD,#20H
MOV TH1,#FDH
MOV TL1,#00H // MOVE ACC CONTENTS TO SERIAL PORT
MOV TCON,#40H
MOV SCON,#58H
MOV SBUF,A
HERE: JNB TI,HERE
CLR TI // TI = SCON.1
DEC R2
CJNE R2,#0,REPEAT // REPEAT FOR CTR VALUES STARTING FROM "OF" TO
"00"
PROBLEM: output comes on hyperterminal only for the first time.
Subsequent counter values are not getting printed. Anything to be
changed in tcon,scon,tmod? Or some clk freq to be changed, delay
given? Or anything else to be reset or cleared? Please clarify
Thanks
Quad