Anda di halaman 1dari 13

BAB VIII PORT SERIAL MIKROKONTROLLER

BAB VI
PORT SERIAL
MIKROKONTROLLER
6.1. KOMUNIKASI SERIAL DENGAN UART
AVR ATMega8535 memiliki 4 buah register I/O yang berkaitan dengan
komunikasi memakai UART yaitu UART I/O !ata Register "U!R# UART $aud Rate
Register "U$RR# UART %tatus Register "U%R# dan UART &ontrol Register "U&R#'
6.2. REGISTER-REGISTER PORT SERI
6.2.1. REGISTER DATA I/O UART (UDR)
(roses )engiriman data se*ara serial da)at dimulai setelah U!R diberi karakter
data' (ada sisi )enerima UART memiliki buffer sehingga U!R da)at diba*a ketika
sebuah data baru sedang digeser masuk'
6.2.2. REGISTER BAUD RATE UART (UBRR)
U$RR digunakan untuk menentukan clock yang dibangkitkan oleh baud rate
generator' +ilai baud rate ditentukan dengan mengisi U$RR sesuai )ersamaan 8',

,
- ,.
=
baud
fclock
UBRR
"8',#
Misal diinginkan baud rate sebesar /.00 b)s' !engan kristal ,,'05/'100 23 maka
register U$RR akan bernilai 4,'
,55
SISTEM EMBEDDED MIKROKONTROLLER ATMEGA8535 DENGAN BAHASA BASIC
6.2.3. REGISTER STATUS UART (USR)
Register U%R menyim)an berbagai flag status se)erti interu)si overflow dan
framing error' %usunan bit register U%R ditun5ukkan dalam gambar 8','
bit 4 . 5 4 3 1 , 0
R6& T6& U!R7 87 OR 9 9 9
Gambar 6.1. Register status UART
(en5elasan bit9bit register U%R adalah sebagai berikut
,' R6& "Receive Complete# : bernilai , otomatis setelah UART menerima
sebuah karakter se*ara lengka)
1' T6& "Transmit Complete# : bernilai , 5ika sebuah karakter telah selesai
digeser keluar dari register geser kirim
3' U!R7 "UART Data Register Empty# : bernilai , 5ika U!R kosong
4' 87 "Framing Error# : bernilai , 5ika %to) $it tidak diterima dengan benar
yaitu 5ika %to) $it terba*a 0
5' OR "Overrun# : bernilai , 5ika ada karakter yang di)indahkan dari register
geser terima ke U!R sebelum karakter yang diterima sebelumnya diba*a'
6.2.4. REGISTER KONTROL UART (UCR)
Register U&R mengendalikan berbagai ;ungsi )enerima dan )engirim serta
interu)sinya' %usunan bit register U&R ditun5ukkan dalam gambar 8'1'
bit 4 . 5 4 3 1 , 0
R6&I7 T6&I7 U!RI7 R67+ T67+ &2R/ R6$8 T6$8
Gambar 6.2. Register kendali UART
,5.
BAB VIII PORT SERIAL MIKROKONTROLLER
(en5elasan bit9bit register U&R adalah sebagai berikut
,' R6&I7 "Receive Complete nterrupt Enable# : 5ika bernilai , UART akan
membangkitkan interu)si ketika sebuah karakter selesai diterima
1' T6&I7 "Transmit Complete nterrupt Enable# : bernilai , setelah karakter terkirim
dan membangkitkan interu)si
3' U!RI7 "UART Data Register Empty nterrupt Enable# : 5ika bernilai , sebuah
interu)si ter5adi ketika U!R kosong "bit U!R7 bernilai ,#
4' R67+ "Receiver Enable# : 5ika bernilai , )enerima UART diakti;kan dan )in R<!
men5adi )in in)ut yang terhubung ke UART
5' T67+ "Transmitter Enable# : 5ika bernilai , )engirim UART diakti;kan dan )in
T<! men5adi )in out)ut dari )engirim UART
.' &2R/ "!"#it C$aracters# : 5ika bernilai , ukuran karakter yang dikirim men5adi /9
bit dan bit ke9/ berada )ada bit R6$8 dan T6$8
4' R6$8 "Receive Data #it %# : 5ika &2R/ bernilai , bit ini adalah bit ke9/ dari data
yang diterima
8' T6$8 "Transmit Data #it %# : 5ika &2R/ bernilai , bit ini adalah bit ke9/ dari data
yang dikirim 5adi T6$8 harus diisi sebelum )engiriman'
6.3. INISIALISASI USART
!alam )roses inisialisasi maka ada bebera)a buah register yang )erlu ditentukan
nilainya yaitu =
,' U$RR "U%ART $aud Rate Register#'
1' U&%R$ "U%ART &ontrol and %tatus Register $#'
3' U&%R& "U%ART &ontrol and %tatus Register &#'
,54
SISTEM EMBEDDED MIKROKONTROLLER ATMEGA8535 DENGAN BAHASA BASIC
U$RR meru)akan register ,. bit yang ber;ungsi untuk melakukan )enentuan
ke*e)atan transmisi data yang akan digunakan' U$RR dibagi men5adi dua yaitu
U$RR2 dan U$RR> se)erti )ada gambar 8'3
Gambar 6.3. Register U$RR
$it )enyusunnya da)at di5elaskan sebagai berikut =
a' UR%7> meru)akan bit )emilih antara akses U$RR dan U&%R&' 2al ini
disebabkan karena keduanya menem)ati lokasi yang sama' Untuk akses U$RR
maka bit ini bernilai 0'
b' U$RR?,,''0@ meru)akan bit )enyim)an konstanta ke*e)atan komunikasi
serial'U$RR2 menyim)an 4 bit tertinggi data seting baud rate dan U$RR>
menyim)an 8 bit sisanya' !ata yang dimasukkan ke U$RR2 dan U$RR>
dihitung menggunakan rumus sesuai tabel 1'1' U16 meru)akan bit )ada register
U&%RA'
Tabel .', Rumus )enghitungan nilai U$RR untuk berbagai mode o)erasi
Mode o)erasi Rumus nilai U$RR
Asinkron mode ke*e)atan normal "U16 A 0#
Asinkron mode ke*e)atan ganda "U16 A ,#
%inkron
U&%R$ meru)akan register 8 bit )engatur aktiBasi )enerima dan )engirim U%ART'
Memiliki kom)osisi se)erti gambar 8'4'
,58
BAB VIII PORT SERIAL MIKROKONTROLLER
Gambar 6.4. Register U&%R$
$it )enyusunnya da)at di5elaskan sebagai berikut =
a' R6&I7 mengatur aktiBasi interu)si )enerimaan data serial' $ernilai aCal 0
sehingga )roses )enerimaan data berdasar )ada sistem )ooling' Dika bernilai ,
maka 5ika bit R6& )ada U&%RA bernilai , interu)si )enerimaan data serial
akan dieksekusi'
b' T6&I7 mengatur aktiBasi interu)si )engiriman data serial' $ernilai aCal 0' Dika
bernilai , maka 5ika bit T6& )ada U&%RA bernilai , interu)si )engiriman data
serial akan dieksekusi'
*' U!RI7 mengatur aktiBasi interu)si yang berhubungan dengan kondisi bit
U!R7 )ada U&%RA' $ernilai aCal 0' Dika bernilai , maka interu)si akan ter5adi
5ika bit U!R7 bernilai ,'
d' R67+ meru)akan bit aktiBasi )enerima serial ATM7EA8535' $ernilai aCal 0'
Dika bernilai , maka )enerima data serial diakti;kan'
e' T67+ meru)akan bit aktiBasi )engirim serial ATM7EA8535' $ernilai aCal 0'
Dika bernilai , maka )engirim data serial diakti;kan'
;' U&%F1 bersama dengan bit U&%F, dan U&%F0 di register U&%R& menentukan
ukuran karakter serial yang dikirimkan'
(ada saat aCal maka ukuran karakter diset )ada 8 bit' !etail nilai bit9bit ini
se)erti )ada tabel .'1'
Tabel 6.2 (enentuan ukuran karakter
,5/
SISTEM EMBEDDED MIKROKONTROLLER ATMEGA8535 DENGAN BAHASA BASIC
U&%F?1''0@ Ukuran karakter dalam bit
000 5
00, .
0,0 4
0,, 8
,00 G ,,0 Tidak di)ergunakan
,,, /
U&%R& meru)akan register 8 bit yang di)ergunakan untuk mengatur mode dan
ke*e)atan komunikasi serial yang dilakukan' Memiliki kom)osisi se)erti gambar .'5'
Gambar 6.5. Register U&%R&
$it )enyusunnya da)at di5elaskan sebagai berikut =
a' UR%7> meru)akan bit )emilih akses antara U&%R& dan U$RR' $ernilai aCal ,
sehingga se*ara normal akan selalu mengakses register U&%R&'
b' UM%7> meru)akan bit )emilih mode komunikasi serial antara sinkron dan
asinkron' $ernilai aCal 0 sehingga modenya asinkron' Dika bernilai , maka
modenya sinkron'
*' U(M?,''0@ meru)akan bit9bit )engatur )aritas' $ernilai aCal 00 sehingga )aritas
tidak di)ergunakan' !etail nilainya da)at dilihat )ada tabel .'3'
Tabel .'3 (enentuan mode )aritas
U(M?,''0@ Mode )aritas
00 Tidak akti;
0, Tidak digunakan
,0 (aritas gena)
,, (aritas gan5il
,.0
BAB VIII PORT SERIAL MIKROKONTROLLER
d' U%$% meru)akan bit )emilih ukuran bit sto)' $ernilai aCal 0 sehingga 5umlah
bit sto) yaitu , bit' Dika bernilai 0 maka 5umlah bit sto) yaitu 1 bit'
e' U&%F, dan U&%F0 meru)akan bit )engatur 5umlah karakter serial'
;' U&(O> meru)akan bit )engatur hubungan antara )erubahan data keluaran dan
data masukan serial dengan *lo*k sinkronisasi' 2anya berlaku untuk mode
sinkron' Untuk mode asinkron bit ini diset 0'
6.4. MENGIRIM DATA MELALUI PORT SERIAL
(roses )engiriman data serial dilakukan )er byte data dengan menunggu register
U!R yang meru)akan tem)at data serial akan disim)an men5adi kosong sehingga sia)
ditulis dengan data yang baru' (roses ini menggunakan bit yang ada )ada register
U&%RA yaitu bit U!R7 "U%ART !ata Register 7m)ty#' $it U!R7 meru)akan
indikator kondisi register U!R' Dika U!R7 bernilai , maka register U!R telah kosong'
6.5. MENERIMA DATA MELALUI PORT SERIAL
(roses )enerimaan data serial diakukan dengan menge*ek nilai bit R6& "U%ART
Re*eiBe &om)lete# )ada register U&%RA' R6& akan bernilai satu 5ika ada data yang
sia) diba*a di bu;;er )enerima dan bernilai nol 5ika tidak ada data )ada bu;;er
)enerima' Dika )enerima U%ART dinonakti;kan maka bit ini akan selalu bernilai nol'
,.,
SISTEM EMBEDDED MIKROKONTROLLER ATMEGA8535 DENGAN BAHASA BASIC
6.6. RANGKAIAN SERIAL MIKROKONTROLLER
Rangkaian berikut digunakan untuk inter;a*ing >ed dengan )ort serial'
Rangkaian tersebut sebagai konBerter dari serial ke )ararel' $erikut adalah rangkaian
serial led driBer yang akan kita hubungkan )ada )ort serial' Rangkaian >ed !riBer
%erial menggunakan Mi*ro*ontroller ATM7EA8535 yang dihubungkan ke )ort serial
dengan menggunakan I& R%131 Rangkaian %erial >7! !riBer ini akan mendeteksi
setia) )engiriman data karakter dari )ort serial *om)uter'
V C C
U 1
A T M E G A 8 5 3 5
3
1 2
1 3
2
1 6
1 7
1 8
1 9
1 1
1 0
8
7
6
3 6
3 5
3 4
3 3
3 2
3 7
1
4
5
9
1 4
1 5
2 0 2 1
4 0
3 9
3 8
3 1
3 0
2 9
2 8
2 7
2 6
2 5
2 4
2 3
2 2
P B 2 ( I N T 2 / A I N 0 )
X T A 2
X T A 1
P B 1 ( T 1 )
P ! 2 ( I N T 0 )
P ! 3 ( I N T 1 )
P ! 4 ( O C 1 B )
P ! 5 ( O C 1 A )
G N !
V C C
P B 7 " S C # )
P B 6 " M I S O )
P B 5 ( M O S I )
P A 4 ( A ! C 4 )
P A 5 ( A ! C 5 )
P A 6 ( A ! C 6 )
P A 7 ( A ! C 7 )
A R E $
P A 3 ( A ! C 3 )
P B 0 ( X C # / T 0 )
P B 3 ( O C 0 / A I N 1 )
P B 4 ( S S )
R E S E T
P ! 0 ( R X ! )
P ! 1 ( T X ! )
P ! 6 ( I C P ) P ! 7 ( O C 2 )
P A 0 ( A ! C 0 )
P A 1 ( A ! C 1 )
P A 2 ( A ! C 2 )
A G N !
A V C C
P C 7 ( T O S C 2 )
P C 6 ( T O S C 1 )
P C 5
P C 4
P C 3
P C 2
P C 1 ( S ! A )
P C 0 ( S C )
T X 1
R 1
C 1 2 2 % $
C 3 1 0 0 & $
+ C 8
1 ' $ 1 6 V
V C C
V C C
+ C 5
1 ' $ 1 6 V
S ( 1
1
2
V C C
C 2 2 2 % $
X 1
R S T
U 6
M A X 2 3 2
1 3
8 1 1
1 0
1
3
4
5
2 6
1 2
9 1 4
7
1
6
1
5
R 1 I N
R 2 I N T 1 I N
T 2 I N
C )
C 1 -
C 2 )
C 2 -
V ) V -
R 1 O U T
R 2 O U T T 1 O U T
T 2 O U T
V
C
C
G
N
!
+
C 9
1 ' $ 1 6 V
R X 1
* 6
+ E A ! E R 3
1
2
3
V C C
+ C 4
1 ' $ 1 6 V
Gambar 6.6. 2asil )emasangan kom)onen rangkaian serial mikrokontroller
,.1
BAB VIII PORT SERIAL MIKROKONTROLLER
6.7. PEMROGRAMAN PORT SERIAL MIKROKONTROLLER
6.7.1.PEMROGRAMAN MENGIRIM DATA
%etelah membuat rangkaian serial mikrokontroller dan menghubungkan ke
kom)uter maka sekarang saatnya Anda membuat )rogram yang digunakan untuk
mengirim data serial'
(rogram sebagai berikut ini
'--------------------------------------------------------
'Program Bab 8.1 Serial Port Kirim data
'--------------------------------------------------------
'--------------------------------------------------------
'DEKLARASI HEADER
'--------------------------------------------------------
$regfile !8"#"def.dat!
'--------------------------------------------------------
'DEKLARASI $RI%AL
'--------------------------------------------------------
$&r'(tal 1)******
'--------------------------------------------------------
'DEKLARASI Ba+drate
'--------------------------------------------------------
$ba+d ,-**
'--------------------------------------------------------
'R+ti. +tama
'--------------------------------------------------------
Pri.t !Selamat Data.g /a( I(0a.to!
E.d

,.3
SISTEM EMBEDDED MIKROKONTROLLER ATMEGA8535 DENGAN BAHASA BASIC
6.7.2.PEMROGRAMAN MENGIRIM DAN MENERIMA DATA
%etelah membuat dan men5alankan )rogram mengirim data serial maka sekarang
saatnya Anda membuat )rogram kedua yang digunakan untuk )rogram mengirim dan
menerima data serial'
(rogram sebagai berikut ini
'--------------------------------------------------------
'Program Bab 8.) Serial Port
'--------------------------------------------------------
'--------------------------------------------------------
'DEKLARASI HEADER
'--------------------------------------------------------
$regfile !8"#"def.dat!
'--------------------------------------------------------
'DEKLARASI $RI%AL
'--------------------------------------------------------
$&r'(tal 1)******
'--------------------------------------------------------
'DEKLARASI Ba+drate
'--------------------------------------------------------
$ba+d ,-**
'--------------------------------------------------------
'DEKLARASI 1ARIABEL
'--------------------------------------------------------
Dim Data1 A( Stri.g 2 "*
Pri.t !Selamat Data.g /a( I(0a.to!
'--------------------------------------------------------
'R+ti. +tama
'--------------------------------------------------------
Do
Pri.t !%e3a. Sembara.g tombol!
I.4+t Data1
Pri.t !%+.gg+ 1** m(!
5aitm( 1**
Pri.t Data1
Loo4
,.4
BAB VIII PORT SERIAL MIKROKONTROLLER
E.d
6.7.3. PEMROGRAMAN MENJALANKAN LED DENGAN KOMPUTER
%etelah membuat dan men5alankan )rogram )rogram mengirim dan menerima
data serial maka sekarang saatnya Anda membuat )rogram ketiga yang digunakan
untuk mengeser >7! dengan terminal kom)uter'
(rogram sebagai berikut ini
'--------------------------------------------------------
'Program Bab 8.# Serial Port
'--------------------------------------------------------
'--------------------------------------------------------
'DEKLARASI HEADER
'--------------------------------------------------------
$regfile !8"#"def.dat!
'--------------------------------------------------------
'DEKLARASI $RI%AL
'--------------------------------------------------------
$&r'(tal 1)******
'--------------------------------------------------------
'DEKLARASI Ba+drate
'--------------------------------------------------------
$ba+d ,-**
'--------------------------------------------------------
'DEKLARASI 1ARIABEL
'--------------------------------------------------------
Dim Data1 A( B'te
Dim A A( B'te
'--------------------------------------------------------
'DEKLARASI S6B R6%I7
'--------------------------------------------------------
De&lare S+b Kiri89
De&lare S+b Ka.a.89
De&lare S+b Kedi489
De&lare S+b Diam89
,.5
SISTEM EMBEDDED MIKROKONTROLLER ATMEGA8535 DENGAN BAHASA BASIC
'--------------------------------------------------------
'DEKLARASI P:R% /IKR:K:7%R:LLER
'--------------------------------------------------------
$o.fig Port& :+t4+t
Pri.t !Selamat Data.g /a( I(0a.to!
'--------------------------------------------------------
'R6%I7 6%A/A
'--------------------------------------------------------
Do
Pri.t !Pili; %ombol Beri3+t i.i!
Pri.t !1. <e(er Kiri Led!
Pri.t !). <e(er Ka.a. Led!
Pri.t !#. Led Ber3edi4!
I.4+t Data1
Pri.t !%+.gg+ 1** m(!
5aitm( 1**
E.able I.terr+4t(
Sele&t $a(e Data1
$a(e 1 = $all Kiri89
$a(e ) = $all Ka.a.89
$a(e # = $all Kedi489
$a(e El(e = $all Diam89
E.d Sele&t
Pri.t !A.da /emili; 7o! > Data1
Loo4
E.d
'--------------------------------------------------------
' S+b R+ti. <e(er Kiri
'--------------------------------------------------------
S+b Kiri89
Led 1
?or A * %o @
Rotate Led A Left A 1
Port& Led
5aitm( 1**
7eBt
E.d S+b
'--------------------------------------------------------
' S+b R+ti. <e(er Ka.a.
'--------------------------------------------------------
S+b Ka.a.89
Led 1)8
?or A * %o @
,..
BAB VIII PORT SERIAL MIKROKONTROLLER
Rotate Led A Rig;t A 1
Port& Led
5aitm( 1**
7eBt
E.d S+b
'--------------------------------------------------------
' S+b R+ti. Ber3edi4
'--------------------------------------------------------
S+b Kedi489
?or A * %o )
Port& )""
5aitm( "*
Port& *
7eBt
E.d S+b
'--------------------------------------------------------
' S+b R+ti. Led Padam
'--------------------------------------------------------
S+b Diam89
Port& )""
E.d S+b
,.4

Anda mungkin juga menyukai