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

Back to Subject List

Thread Closed: Another thread already exists on this topic

???
10/17/09 08:18
Read: times


 
#169834 - Problem in transmitting 16 bit serially
Hello,
i am facing problem in trasmitting 16 bits through 8052 to pc. i have made two different programs to solve the problem but couldnt do it.

The main program through which i got the idea.


ORG 000H
        JMP     MAIN
ORG 023H
        JMP     SERIAL
ORG 030H
MAIN:
        MOV     SCON,#50H
        MOV     TMOD,#20H
        MOV     TH1,#-24
        SETB    TR1
        SETB    EA
        SETB    ES
        MOV     A,#'A'
        MOV     SBUF,A
        JMP     $

SERIAL:
        JB      RI,RECEIVE
        CLR     TI
        INC     A
        CJNE    A,#'Z'+1,SKIP
        MOV     A,#'A'
SKIP:
        MOV     SBUF,A
RETI
RECEIVE:
        CLR     RI
        MOV     A,SBUF
        CPL     A
        MOV     P1,A
RETI

END

 


This was working correctly and it send character a-z to the pc.

The first program that i made increaments the DPTR register and sends its increamented output to the pc as a 16 bits i used the idea of sending DPL as lower 8 bits and DPH at upper 8 bits.


    
ORG 000H
        JMP     MAIN
ORG 023H
        JMP     SERIAL
ORG 030H
MAIN:
        MOV     SCON,#50H
        MOV     TMOD,#20H
        MOV     TH1,#-24
        SETB    TR1
        SETB    EA
        SETB    ES
        MOV R1,#01
        MOV DPTR,#0000H
        MOV SBUF,DPH
        JMP$

SERIAL:
        CLR     TI
        DJNZ R1,SKIP
        MOV R1,#02
        MOV SBUF,DPL
        INC DPTR
        RETI
        JMP$
SKIP:
        MOV     SBUF,DPH
RETI
END



 


It worked correctly but when using the same program to send the two 8 bits i couldnt got the desired result.



ORG 000H
        JMP     MAIN
ORG 023H
        JMP     SERIAL
ORG 030H
MOV DPTR,#0000H
MAIN:
        INC DPTR
        MOV     SCON,#50H
        MOV     TMOD,#20H
        MOV     TH1,#-24
        SETB    TR1
        SETB    EA
        SETB    ES
        MOV A,#00
        MOV SBUF,'B'
        JZ $
        MOV TMOD,#00
        CLR TR1
        CLR EA
        CLR ES
        JMP$

SERIAL:
        CLR     TI
 
        MOV A,#01
        MOV SBUF,'C'
        RETI

SKIP:
        MOV     SBUF,DPH
RETI
FINISH: RETI
END



 


Thanks


List of 2 messages in thread
TopicAuthorDate
Problem in transmitting 16 bit serially            01/01/70 00:00      
   Duplicate Thread!            01/01/70 00:00      

Back to Subject List