While using 8085 especially at a different baud-rate , DTE being the micro-controller, DCE being any modem/or a Display device coupled with RS232 db9 or db25 port.
I can understand SBUF can Store upto 8 bit of data when its full, it gives A TI high ie it hires a transmitter interrupt,
But Iam confused whether this SBUF (mentioned in program) bleongs to the DTE or DCE,
Suppose there is a program,To transmit at baudrate 4800,
ORG 00H; 00 MOV SCON #50H; 01H MOV TMOD #20H; 02H MOV TH1,-6; 03H MOV A,#'Y'; 04H CALL PRINT; 05H MOV A,#'E'; 06H CALL PRINT; 07H MOV A,#'S'; 08H CALL PRINT; 09H CLR TI; 0AH SJMP 03H;


Also during transmission of 'Y' to the receiver of the DCE, REN flag must be enabled, there is a need for both the sides to understand the tranmission of data(first 8bit has taken place, which this program seriouly misses) and we use TI for that , but can we address both ends SBUF in a single program?


2 Answers 2


The second line of your print subroutine should be

P1:  JNB TI, P1

so you don't keep stuffing the character into SBUF. You should only place a new character in SBUF after the UART says it is ready for a new character.

(Disclaimer: I haven't worked with an 8085 UART for a long time.)


The SBUF register is continuously monitored by the 8 bit SCON registers.
The bit configuration is given as follows:
SMO SCON.7 # SM0 and SM1 decides the mode of operation of SM1 SCON.6 the SCON SM2 SCON.5 REN SCON.4 TB8 SCON.3 RB8 SCON.2 TI SCON.1 RI SCON.0

Considering the mode 1 case:

As soon as the data is transferred into the 8 bit SBUF register,is it appended with the stop bit and the start bit,the data before sending issues a Clear to Send Request Through the RS232 standards,after ACK the signal is sent to the DCE end and is stored in the SBUF at DCE.

1)During trasmission from the DTE the TI flag represent overflooding of the SBUF,also it indicates Transmission complete.

2)At the receiver the RTS (Request to Send ) enables the synchronization among DCE and DTE hence making it to receive the Data.

Hence so to say separate SBUF are needed at both the DCE and the DTE each is controlled by the UART standard set by RS232 Ports

The SBUF TI and RI Flags were designed accordingly for transmission of the bit-by-bit data in my program I am loading a whole ASCII value into the SBUF simultaneously which turns the TI flag high almost instantaneously, Hence it is advice sable to use bit-by-bit transmission, or using a extra delay while working with strings.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.