Well actually you've so many methods to do that.
and you can have as many UARTs as you want (depends on available GPIOs)
the very simple and basic which I like is :
suppose you've 2 device to get connect with master. (I am assuming both are programmable)
connect the Master's Tx to Slave1 and Slave2 's Rx directly, choose same Baud rate for all the three devices.
assign unique code/character to each of the slaves, so that when the Master puts out the Unique Code on the Bus, only the called-upon slave returns acknowledge/required data.
this concept is similar to I2C protocol and would be interesting to work with, also with this approach you can have several slave devices and you are not limited only to 2 slaves
I've got this from here :
https://www.8051projects.net/t11828...tiple-serial-port-8051-at89c51.htm#post_11836
you can have other methods also to do this.
Please read the above linked blog THOROUGHLY.