Lab Elektronika Industri
Mikrokontroler - 1
PORT SERIAL MIKROKONTROLER ATMEL AT89C51 I. FISIK AT89C51 Mikrokontroler AT89C51 umumnya mempunyai kemasan 40 pin seperti gambar berikut. AT89C51 telah dilengkapi sarana komunikasi data secara serial yang full duplex. Artinya mampu bertukar data secara dua arah pada saat yang bersamaan. Jadi pada saat bersamaan bisa mengirim sekaligus menerima data serial. Komunikasi serial bisa dilakukan baik secara sinkron ataupun tak sinkron. Secara sinkron yaitu komunikasi data dengan sekaligus mengirimkan clock sedang secara tak sinkron jika komunikasi data tidak dibarengi dengan sinyal clock. Penerimaan data (receive data) dilakukan lewat P3.0 atau RxD yaitu pin 10 dan pengiriman data (transmit data) lewat P3.1 atau TxD yaitu pin 11. Penerimaan dan pengiriman data dilakukan dengan mengakses register SBUF di register fungsi khusus di alamat 99H. Ketika terjadi penulisan 1 byte data ke SBUF pada saat itu juga proses pengiriman secara serial dimulai. Sebaliknya, apabila proses penerimaan data 1 byte telah selesai, data yang diterima bisa dibaca dari register SBUF juga. Terdapat 4 mode untuk mengatur komukasi serial yaitu mode 0 hingga mode 3. Mode 0 adalah mode sinkron sedang mode 1 hingga mode 3 adalah tak-sinkron atau UART (Universal Asinchronous Receiver Transmitter). Mode 0 : Adalah mode sinkron. Data dikirim dan diterima lewat RxD di P3.0 sedangkan TxD di P3.1 sebagai saluran clock yang dibangkitkan dari AT89C51. Data dikirim atau diterima setiap 8 bit (1 byte) mulai dari bit 0 diakhiri pada bit 7. Kecepatan transfer data (baudrate) adalah 1/12 frekuensi kristal yang dipakai. Mode 1 : Adalah mode tak-sinkron. Data diterima lewat RxD di P3.0 dan dikirim lewat TxD di P3.1. Jumlah bit yang ditransfer sebesar 10 bit, yaitu 1 bit start, 8 bit data dimulai dari D0 hingga D7 dan diakhiri 1 bit stop. Kecepatan komunikasi (baudrate) bisa diatur. Mode 2 : Adalah mode tak-sinkron. Data diterima lewat RxD di P3.0 dan dikirim lewat TxD di P3.1. Jumlah bit yang ditransfer sebesar 11 bit, yaitu 1 bit start, 8 bit data dimulai dari D0 hingga D7, bit 9 yang penggunaannya bisa diatur dan diakhiri 1 bit stop. Kecepatan komunikasi (baudrate) bisa dipilih sebesar 1/32 atau 1/64 frekuensi kristal yang dipakai. Mode 3 : Seperti mode 2 tetapi baudrate-nya bisa diatur sesuai keperluan seperti mode 1.
II. REGISTER KONTROL PORT SERIAL SCON – Serial Control Register
: 98H
Reset SCON = 00H
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
SM0
SM1
SM2
REN
TB8
RB8
TI
RI
Keterangan:
Iwan B Pratama 9/19/2006
Lab Elektronika Industri
Mikrokontroler - 2
Simbol
Posisi
Nama dan kegunaan
SM0
SCON.7
Pengatur mode serial port bit 0 (lihat tabel di bawah)
SM1
SCON.6
Pengatur mode serial port bit 1 (lihat tabel di bawah)
SM2
SCON.5
Mengaktifkan serial komunikasi pada mode 2 dan 3. Jika SM2 = 1, RI tidak akan diset (=1) jika data bit9 yang diterima (RB8) adalah 0. Pada mode 1, jika SM2 = 1, RI tidak akan diset (=1) jika data yang diterima tidak mengandung stop bit yang benar. Pada mode 0, SM2 harus dibuat = 0.
REN
SCON.4
Mengaktifkan penerimaan data serial. REN harus diatur dengan software. REN harus diset = 1 untuk bisa menerima data serial dan dibuat = 0 untuk mematikan penerimaan data serial.
TB8
SCON.3
Data bit9 yang akan dikirimkan pada mode 2 dan 3 yang pengisiannya diatur dengan software.
RB8
SCON.2
Pada mode 2 dan 3, RB8 adalah data bit9 yang diterima. Pada mode 1 jika SM2 = 0, RB8 adalah bit stop yang diterima. Pada mode 0, RB8 tidak digunakan
TI
SCON.1
Tanda (flag) interupsi yang dihasilkan ketika satu proses pengiriman telah selesai. TI harus dinolkan dulu dengan software untuk pengiriman berikutnya.
RI
SCON.0
Tanda (flag) interupsi yang dihasilkan ketika satu proses penerimaan telah selesai. RI harus dinolkan dulu dengan software untuk penerimaan berikutnya.
SM0
SM1
Mode
Keterangan
Baudrate
0
0
Mode 0 (sinkron)
Register geser
1/12 Ffrekuensi kristal
0
1
Mode 1 (tak-sinkron)
UART – 8 bit
diatur dengan timer
1
0
Mode 2 (tak-sinkron)
UART – 9 bit
1/32 atau 1/64 frek. kristal
1
1
Mode 3 (tak-sinkron)
UART – 9 bit
diatur dengan timer
III. PENGATURAN BAUDRATE Mode 0 Mode 2
1
: Baudrate adalah tetap yaitu 12 frekuensi kristal. : Baudrate tergantung nilai SMOD di register PCON yang mengikuti persamaan: Baudrate Mode 2 =
2 SMOD x Frekuensi kristal 64
SMOD
Baudrate
SMOD
Baudrate
0
1 x Frekuensi kristal 64
1
1 x Frekuensi kristal 32
PCON – Power Control Register
: 87H
Reset PCON = 00H
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
SMOD
-
-
-
GF1
GF0
PD
IDL
Keterangan: Simbol
Posisi
Nama dan kegunaan
SMOD
PCON.7
Pengatur baudrate pada mode 1 komunikasi serial
-
PCON.6
Tidak digunakan (jangan diisi apapun)
-
PCON.5
Tidak digunakan (jangan diisi apapun)
-
PCON.4
Tidak digunakan (jangan diisi apapun)
GF1
PCON.3
Bit flag untuk keperluan sembarang
GF0
PCON.2
Bit flag untuk keperluan sembarang
Iwan B Pratama 9/19/2006
Lab Elektronika Industri
Mikrokontroler - 3
PD
PCON.1
Bit untuk Power Down. Jika diset = 1 akan mengaktifkan operasi power down
IDL
PCON.0
Bit untuk Idle. Jika diset = 1 akan mengaktifkan operasi idle
Mode 1 & 3 : Pengaturan baudrate ditentukan dari laju overflow pada Timer 1. Dalam hal ini Timer 1 dan SMOD digunakan untuk mengatur baudrate mengikuti persamaan berikut: 2 SMOD Baudrate Mode 1 & 3 = x Laju overflow Timer 1 32 Timer 1 bisa diaktifkan pada sembarang mode 0 hingga 3, tetapi interupsi Timer 1 sebaiknya digunakan. Tetapi kebanyakan aplikasi menggunakan Timer 1 mode 2 yaitu pencacah 8 bit isi ulang. Dalam hal ini nilai isi ulang dimasukkan ke register TH1, sehingga persamaan mengikuti:
Baudrate Mode 1 & 3 =
2 SMOD Frekuensi Kristal x 12 x [256 - TH1] 32
Contoh: baudrate 1200 bit per second (bps) dan kristal memakai 12MHz dan SMOD = 0, maka
12 x 10 6 20 x 1200 = 32 12 x [256 - TH1]
sehingga TH1 = 26,04 ≈ 26
Tetapi karena Timer/Counter adalah pencacah naik, maka data yang diisikan ke TH1 adalah -26. Instruksi yang dipakai adalah: MOV TH1, #-26 atau MOV TH1, #0E6H Dalam hitungan diatas ada pembulatan, sehingga baudrate yang terjadi terdapat kesalahan. Tetapi jika memakai kristal 11,0592 MHz, hitungan di atas akan menghasilkan TH1 = 24 pas. Tabel berikut adalah hitungan baudrate untuk berbagai keperluan yang umum: Mode Serial
Baudrate
F xtal
Timer 1
SMOD C/T
Mode
TH1
0
2 M bps
24 MHz
-
-
-
-
0
1 M bps
12 MHz
-
-
-
-
2
750 K bps
24 MHz
1
-
-
-
2
375 K bps
12 MHz
1
-
-
-
1&3
1200 bps
11,0592 MHz
0
0
2
-24 (E8H)
1&3
9600 bps
11,0592 MHz
0
0
2
-3 (FDH)
1&3
19200 bps
11,0592 MHz
1
0
2
-3 (FDH)
III. PENGATURAN BAUDRATE DENGAN TIMER 2 Untuk AT89C52 dan AT89C55 mempunyai timer tambahan yaitu Timer 2. Timer ini juga bisa dipakai untuk mengatur baudrate. Agar timer 2 bisa dipakai sebagai pengatur baudrate harus dibuat TCLK = 1 dan/atau RCLK = 1 yang berada pada register fungsi khusus T2CON. Dengan cara ini dapat dibuat baudrate yang berbeda untuk pengiriman dan penerimaan data serial. Timer 2 bisa dioperasikan pada mode 0 hingga mode 3, dan baudrate ditentukan dari persamaan : Baudrate Mode 1 & 3 =
1 x Laju overflow Timer 2 16
Pada banyak aplikasi, timer 2 dipakai dalam mode 2 yaitu pencacah 16bit isi ulang dan sumber clock pencacah dari 1/12 frekuensi kristal dengan membuat C/T2 = 0. Hitungan baudrate :
Iwan B Pratama 9/19/2006
Lab Elektronika Industri
Mikrokontroler - 4
Baudrate Mode 1 & 3 =
Frekuensi Kristal 32 x [65536 - (RCAP2H, RCAP2L)]
Karena pencacah adalah 16 bit, maka pengisi bit isi ulang juga 16bit. Data pengisi 16 bit dimasukan ke register RCAP2H berisi byte tinggi dan register RCAP2L berisi byte rendah. Contoh: baudrate 250K bps, dan frekuensi kristal 24 MHz, maka nilai isi ulang adalah -3. Jadi RCAP2H = FFH dan RCAP2L = FDH. Selanjutnya pengaturan komunikasi serial dilakukan dengan mengatur register : SCON : mengatur mode komunikasi serial seperti telah di jelaskan di atas. T2MOD : mengatur mode Timer 2 T2CON : kontrol pada Timer 2 T2CON – Timer 2 Control Register
: 0C8H
Reset TMOD = 00H
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
TF2
EXF2
RCLK
TCLK
EXEN2
TR2
C/ T2
CP/ RL2
Simbol
Posisi
Nama dan kegunaan
TF2
T2CON.7
Tanda (flag) timer 2 yang akan diset 1 oleh hardware ketika overflow dan harus di-clear software. TF2 tidak di-set jika salah satu dari RCLK = 1 atau TCLK = 1
EXF2
T2CON.6
Tanda (flag) eksternal Timer 2 yang di-set jika suatu capture atau isi ulang disebabkan oleh transisi negatif pada pin T2EX dan EXEN2 = 1. Jika interupsi Timer 2 aktif dan EXF2 = 1, maka CPU akan lompat ke rutin interupsi Timer 2. EXF2 harus di-clear dengan software.
RCLK
T2CON.5
Tanda (flag) clock Receive bagi port serial. Jika RCLK = 1, pulsa overflow Timer 2 digunakan untuk clock terima serial dan baudrate kirim diatur oleh Timer 1 pada komunikasi serial mode 1 dan 3. Jika RCLK = 0, overflow Timer 1 yang dipakai untuk clock terima serial.
TCLK
T2CON.4
Tanda (flag) clock Transmit bagi port serial. Jika TCLK = 1, pulsa overflow Timer 2 digunakan untuk clock kirim serial dan baudrate kirim diatur oleh Timer 1 pada komunikasi serial mode 1 dan 3. Jika TCLK = 0, overflow Timer 1 yang dipakai untuk clock kirim serial.
EXEN2
T2CON.3
Tanda (flag) aktif eksternal Timer 2. Jika diset EXEN2 = 1 menyebabkan terjadi capture atau pengisian ulang counter saat ada transisi negatif pada pin T2EX dan Timer 2 tidak digunakan untuk clock serial. Jika EXEN2 = 0 menyebabkan Timer 2 akan mengabaikan kondisi pin T2EX.
TR2
T2CON.2
Kontrol start/stop Timer 2. Jika diset TR2 = 1, Timer 2 akan memulai cacahan.
C/ T2
T2CON.1
Pemilih sumber clock Timer 2. Jika C/ T2 = 0, clock dari 1/12 Osc dan jika
C/ T2 = 1, clock dari eksternal di pin T2 pada transisi negatif. T2CON.0
CP/ RL2
Tanda (flag) capture atau isi ulang. Jika CP/ RL2 = 1, capture terjadi pada transisi negatif pin T2EX apabila EXEN2 = 1. Jika CP/ RL2 = 0, isi ulang terjadi pada transisi negatif pin T2EX jika EXEN2 = 1 atau jika terjadi overflow di Timer 2. Jika salah satu RCLK = 1 atau TCLK = 1, bit flag ini akan diabaikan dan menjadi mode isi ulang ketika Timer 2 overflow.
Timer 2 juga bisa dioperasikan kedalam 3 mode operasi seperti terlihat pada tabel di bawah. RCLK + TCLK
CP/ RL2
TR2
Mode operasi
0
0
1
Pencacah 16 bit isi ulang
0
1
1
Pencacah 16 bit capture
1
X
1
Pembangkit baudrate
X X T2MOD – Timer 2 Mode Register
bit7
bit6
bit5
0 : 0C9H
bit4
Timer 2 mati Reset TMOD = X xx00H
bit3
bit2
bit1
bit0
Iwan B Pratama 9/19/2006
Lab Elektronika Industri
-
Mikrokontroler - 5
-
-
-
-
-
T2OE
Simbol
Posisi
T2OE
T2MOD. 1
Bit yang meng-enable output Timer 2
DCEN
T2MOD. 0
Jika bit DCEN = 1 mengatur Timer 2 sebgai pencacah naik/turun
DCEN
Nama dan kegunaan
IV. LEBIH LANJUT PORT SERIAL a. Port Serial Mode 0 Mode 0 adalah mode komunikasi serial sinkron. Data dikirim dan diterima melalui RxD (P3.0) sedang TxD (P3.1) sebagai saluran clock. Data dikirim/diterima sebanyak 8 bit dengan bit bobot terrendah (LSB, least significant bit) lebih dahulu. Baudrate adalah tetap sebesar 1/12 frekuensi kristal (Osc.). Pengiriman dimulai ketika terdapat operasi pemindahan data ke register SBUF. Ketika akan mengiriman sebaiknya bit TI di-clear = 0 oleh software dan akan diset TI = 1 oleh hardware jika satu byte (8 bit) data telah selesai dikirimkan. Dengan cara ini kita tahu bahwa pengiriman data satu byte telah selesai dengan memantau bit TI ini. Penerimaan data dimulai saat bit REN = 1 dan RI = 0. Jika data yang diterima telah komplit maka bit RI akan diset = 1 oleh hardware sebagai tanda bahwa penerimaan satu byte data telah selesai. Selanjutnya bit RI perlu di-clear lagi oleh software untuk bisa dilakukan penerimaan data berikutnya. b. Port Serial Mode 1 Mode 1 adalah mode tak-sinkron. Data diterima melalui RxD (P3.0) dan dikirim melalui TxD (P3.1) dengan susunan: 1 bit start, diikuti 8 bit data yang dimulai dari bit berbobot terrendah (LSB) dan diakhiri 1 bit stop. Jadi data dikirim dan diterima seluruhnya adalah 10 bit.
Iwan B Pratama 9/19/2006
Lab Elektronika Industri
Mikrokontroler - 6
Saat penerimaan, bit stop yang diterima akan masuk ke bit RB8 di register SCON. Baudrate ditentukan berdasarkan laju limpahan Timer 1 atau oleh Timer 1, Timer 2 atau keduanya (satu untuk krim dan satu untuk terima) pada AT89C52/55. Pengiriman data dimulai saat terjadi penulisan ke register SBUF. Rangkaian data yang dimulai dari 1 bit start dan 8 bit data diakhiri 1 bit stop akan dikirmkan. Apabila pengiriman data telah komplit maka bit TI akan diset = 1 oleh hardware. Sehingga bit TI dipakai untuk memantau apakah pengiriman data telah selesai, dan perlu di-clear ke 0 oleh software agar dapat memantau pengiriman berikutnya. Penerimaan data dimulai saat ada transisi negatif di RxD sebagai tanda start bit yang diikuti 8 bit data yang ditangkap oleh register SBUF dan diakhiri 1 stop bit yang masuk ke bit RB8 di register SCON. Jika penerimaan satu data telah selesai maka bit RI akan diset ke 1 oleh hardware. Bit RI dipakai untuk memantau proses penerimaan data telah selesai dan harus diclear ke 0 oleh software untuk proses penerimaan data berikutnya. c. Port Serial Mode 2 Mode 2 adalah mode tak-sinkron. Data diterima melalui RxD (P3.0) dan dikirim melalui TxD (P3.1) dengan susunan: 1 bit start, diikuti 8 bit data yang dimulai dari bit berbobot terrendah (LSB), ditambah 1 bit TB8 dan diakhiri 1 bit stop. Jadi data dikirim dan diterima seluruhnya adalah 11 bit. Saat penerimaan, bit TB8 yang dikirimkan akan diterima dan masuk ke bit RB8 di register SCON. Baudrate dipilih sebesar 1/32 atau 1/63 frekuensi kristal tergantung bit SMOD di register PCON. Pengiriman data dimulai saat terjadi penulisan ke register SBUF. Rangkaian data yang dimulai dari 1 bit start dan 8 bit data ditambah 1 bit TB8 diakhiri 1 bit stop sebanyak 11 bit akan dikirmkan. Apabila pengiriman data telah komplit maka bit TI akan diset = 1 oleh hardware. Bit TI dipakai untuk memantau apakah pengiriman data telah selesai, dan perlu di-clear ke 0 oleh software agar dapat memantau pengiriman berikutnya. Penerimaan data dimulai saat ada transisi negatif di RxD sebagai tanda start bit yang diikuti 8 bit data yang ditangkap oleh register SBUF ditambah 1 bit TB8 yang masuk ke bit RB8 di register SCON dan diakhiri 1 bit stop. Jika penerimaan satu data telah selesai maka bit RI akan diset ke 1 oleh hardware. Bit RI dipakai untuk memantau proses penerimaan data telah selesai dan harus di-clear ke 0 oleh software untuk proses penerimaan data berikutnya. d. Port Serial Mode 3 Mode 3 adalah mode tak-sinkron. Data diterima melalui RxD (P3.0) dan dikirim melalui TxD (P3.1) dengan susunan: 1 bit start, diikuti 8 bit data yang dimulai dari bit berbobot terrendah (LSB), ditambah 1 bit TB8 dan diakhiri 1 bit stop. Jadi data dikirim dan diterima seluruhnya adalah 11 bit. Saat penerimaan, bit TB8 yang dikirimkan akan diterima dan masuk ke bit RB8 di register SCON. Baudrate ditentukan berdasarkan laju limpahan Timer 1 atau oleh Timer 1, Timer 2 atau keduanya (satu untuk krim dan satu untuk terima) pada AT89C52/55. Pengiriman data dimulai saat terjadi penulisan ke register SBUF. Rangkaian data yang dimulai dari 1 bit start dan 8 bit data ditambah 1 bit TB8 diakhiri 1 bit stop sebanyak 11 bit akan dikirmkan. Apabila pengiriman data telah komplit maka bit TI akan diset = 1 oleh hardware. Bit TI dipakai untuk memantau apakah pengiriman data telah selesai, dan perlu di-clear ke 0 oleh software agar dapat memantau pengiriman berikutnya.
Iwan B Pratama 9/19/2006
Lab Elektronika Industri
Mikrokontroler - 7
Penerimaan data dimulai saat ada transisi negatif di RxD sebagai tanda start bit yang diikuti 8 bit data yang ditangkap oleh register SBUF ditambah 1 bit TB8 yang masuk ke bit RB8 di register SCON dan diakhiri 1 bit stop. Jika penerimaan satu data telah selesai maka bit RI akan diset ke 1 oleh hardware. Bit RI dipakai untuk memantau proses penerimaan data telah selesai dan harus di-clear ke 0 oleh software untuk proses penerimaan data berikutnya.
V. APLIKASI PORT SERIAL a. Inisialisasi port serial Misalkan port serial akan dipakai untuk UART dengan baudrate 2400 bps menggunakan Timer 1. Sehingga empat 4 register perlu diinisialisasi yaitu SMOD, TMOD, TCON dan TH1. Isi keempat register adalah sbb: SCON TMOD TCON TH1
SM0
SM1
SM2
REN
TB8
RB8
TI
RI
hexa
0
1
0
1
0
0
0
0
50H
GATE
C/~T
M1
M0
GATE
C/~T
M1
M0
hexa
0
0
1
0
0
0
0
0
20H
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
0
1
0
0
0
0
0
0
setb TR1
1
1
1
1
0
0
1
1
0F3H
Register SCON dengan SM0 = 0 dan SM1 = 1 untuk mengatur port serial pada mode 1 yaitu mode UART 8 bit dengan pengaturan baudrate berdasar laju limpahan Timer 1. Bit REN = 1 untuk mengaktifkan port serial agar bisa menerima data serial. Register TMOD dibuat bekerja pada mode 2 yaitu counter 8 bit isi ulang. Jika kristal dipakai 12MHz dan bit SMOD = 0, maka nilai isi ulang TH1 adalah:
2400 =
11,0592 x 10 6 20 x 32 12 x [256 - TH1]
sehingga [256 - TH1] = 12
atau TH1 = -12 atau 0F4H
Programnya adalah sbb: ;-------------------------------------------------------------------------------; Inisialisasi Port Serial ;-------------------------------------------------------------------------------ORG 0H MOV SCON, #52H ;Port serial mode 1 (8 bit UART) baudrate dg Timer 1 MOV TMOD, #20H ;Timer 1 mode 2 (8 bit isi ulang) MOV TH1, #0F4H ;nilai isi ulang TH1 = 0F4H untuk baudrate 2400 bps SETB TR1 ;Aktifkan Timer 1 untuk menghasilkan baudrate ......... ......... (program selanjutnya)
Untuk pengiriman data serial: ;-------------------------------------------------------------------------------; Memulai pengiriman data serial ;-------------------------------------------------------------------------------Ulang: CLR TI ;Reset TI untuk memantau pengiriman serial MOV SBUF, @R0 ;Segera memulai pengiriman isi memori di alamat R0 JNB TI, $ ;Tunggu pengiriman selesai DJNZ R0, Ulang ;Cek untuk pengiriman data berikutnya .......... ......... (program selanjutnya)
Untukk penerimaan data serial: ;-------------------------------------------------------------------------------; Memulai penerimaan data serial ;-------------------------------------------------------------------------------Ulang: JNB RI, $ ;Tunggu penerimaan 1 byte data selesai MOV A, SBUF ;Pindahkan data yang diterima ke akumulator A
Iwan B Pratama 9/19/2006
Lab Elektronika Industri
Mikrokontroler - 8
CLR RI DJNZ R0, Ulang .......... ......... (program selanjutnya)
;Reset RI untuk memantau penerimaan serial berikutnya ;Cek untuk pengiriman data berikutnya
b. Terima dan Kirim serial dengan komputer lewat port serial RS232 Program ini akan menerima data dari komputer dan mengenalinya untuk menghidupkan 8 LED di port 1. Data dari komputer dimasukkan lewat keyboard. Jika data yang diterima dari komputer adalah “A” maka 4 led kiri menyala, jika data “B” maka 4 led kanan menyala, jika “H” maka 8 led akan menyala dan jika “S” maka 8 led akan mati dan mengirimkan pesan ke komputer :”Lab Elektronika Industri FTI UAJY”.
Dalam rangkaian ini ditambahkan chip ICL232 (MAX232) yang digunakan untuk konversi dari level TTL di mikrokontroler (0V dan 5V) ke level RS232 di serial port COM komputer (+10V dan -10V). ;---------------------------------------------------------------------; Program terima dan kirim data serial ;---------------------------------------------------------------------ORG 0H
Ulang:
MOV MOV MOV
SCON, #50H TMOD, #20H TH1, #0F4H
;Port serial mode 1 (8 bit UART) baudrate dg Timer 1 ;Timer 1 mode 2 (8 bit isi ulang) ;nilai isi ulang TH1 = 0F4H untuk baudrate 2400 bps
JNB MOV CLR
RI, $ A, SBUF RI
;Tunggu penerimaan 1 byte data selesai ;Pindahkan data yang diterima ke akumulator A ;Reset RI untuk memantau penerimaan serial berikutnya
CJNE A, #’S’, Led4kiri MOV P1, #0FFH
Kirim:
MOV MOV CLR CLR MOVC MOV JNB
; ;8 led mati terus kirim pesan
DPTR, #Kalimat;Alamat penunjuk Kalimat R0, #35 ;Jumlah huruf yang dikirim A TI A, @A + DPTR SBUF, A TI, $
Iwan B Pratama 9/19/2006
Lab Elektronika Industri
Mikrokontroler - 9
INC DPTR DJNZ R0, Kirim AJMP Ulang Led4kiri:
CJNE A, #’A’, Led4kanan MOV P1,#0FH AJMP Ulang
Led4kanan:
CJNE A, #’B’, Led8nyala MOV P1, #0F0H AJMP Ulang
Led8nyala:
MOV P1, #00H AJMP Ulang
;--------------------------------------------------------------------------; Data pesan ;--------------------------------------------------------------------------Kalimat: DB ‘Lab Elektronika Industri FTI UAJY’, 13, 10 END
Iwan B Pratama 9/19/2006