Port serial pada AT89C52 bersifat
dupleks penuh atau full-duplex,
artinya port serial bisa menerima dan mengirim pada waktu yang bersamaan
(kebalikannya adalah half-duplex).
Port serial pada AT89C52 bisa digunakan dalam 4 mode kerja. Dari ke-4 mode
tersebut, 1 mode diantaranya bekerja secara sinkron dan 3 lainnya bekerja
secara asinkron. Ke-4 mode kerja tersebut adalah :
a)
Mode 0
Mode ini bekerja secara
sinkron, data serial dikirim dan diterima melalui kaki P3.0 (RxD), sedangkan
kaki P3.1 (TxD) dipakai untuk menyalurkan detak pendorong data serial yang
dibangkitkan AT89C52. Data dikirim/diterima 8 bit sekaligus, dimulai dari bit
yang bobotnya paling kecil atau LSB (bit 0) dan diakhiri dengan bit yang
bobotnya paling besar atau MSB (bit 7). Kecepatan pengiriman data (baudrate) adalah 1/12 frekuensi kristal
yang digunakan.
b)
Mode 1
Pada mode ini data dikirim melalui kaki P3.1 (TxD) dan diterima melalui
kaki P3.0 (RxD), secara asinkron (juga pada mode
2 dan 3). Pada mode 1 ini, data
dikirim/diterima 10 bit sekaligus, diawali dengan 1 bit start, disusul dengan 8
bit data yang dimulai dari bit yang bobotnya paling kecil (bit 0), diakhiri
dengan 1 bit stop. Pada AT89C52 yang berfungsi sebagai penerima bit stop adalah
RB8 dalam register SCON. Kecepatan pengiriman data (baudrate) bisa diatur sesuai dengan keperluan. Mode inilah (mode 2
dan 3) yang umum dikenal sebagai UART.
c)
Mode 2
Data dikirim/diterima 11 bit
sekaligus, diawali dengan 1 bit start, disusul dengan 8 bit data yang dimulai
dari bit yang bobotnya paling kecil (bit 0), kemudian bit ke-9 yang bisa diatur
lebih lanjut, diakhiri dengan 1 bit stop. Pada AT89C52 yang berfungsi sebagai
pengirim, bit 9 tersebut berasal dari bit TB8 dalam register SCON. Pada AT89C52
yang berfungsi sebagai penerima, bit 9 ditampung pada bit RB8 dalam register
SCON, sedangkan bit stop diabaikan dan
tidak ditampung. Kecepatan pengiriman data (baudrate)
bisa dipilih antara 1/32 atau 1/64 frekuensi kristal yang digunakan.
d)
Mode 3
Mode ini sama dengan mode 2, hanya saja kecepatan peniriman
data (baudrate) bisa diatur sesuai
dengan keperluan, seperti halnya mode
1.