Maker Pro
Maker Pro

8051 counter

Q

quad

Jan 1, 1970
0
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
 
Top