1 IAKAAN PAN TIMUR ks,11 tl?i2 r- / Teknik Antormuko don Pemrogromon rtti krokontrolar AIB9552 Urmon Penarbi+ ANDI Yogyokorto3 Teknik Anlormuko don Pe...
- Ed. l. - Yogyokorto:ANDI, 17 t6 15 14 13 t2 il x * 518 hlm.; 16 x 23 Cm. lo 9 8 7 6 s 4 ISBN:978 -979 - 29 - 0435 - 2 l. Judul l. Kind of Hordwore
to 09
08
(t"*og^L^l;^nbitu
meraih cita dan asa)
W;d, \zlustika 5""
($or.d, y gou'll {;nd w ag) ^ DDC'21 : 0O4.64
Kata Pengantar
T'ITA PENGANIAR
Puji dan syukur penulis panjarka, kepada Allah SWT yang relal.r memberikan petunjuk dan kekuatan Nya sehingga penuris bisa menyelesaikan buku ini. Perkembangan teknologi di bidang mikrokontrorer begitu pesat sejak diciptakannya mikrokontroler pertama oleh lnter Corporatio,. Berbagai tipe dan keluarga mikrokontroler banyak dibuat oreh perusahaan-perusahaan semi,
konduktor dengan berbagai fasilitas dan kelebihan. Aplikasi prikrokontroler pun begitu luas, dari mulai kalkulator saku, perangkat auclio-video, sisrem kendali di dunia industri sampai pesawar mang angkasa.
Di dunia pendidikan' remtama di poriteknik ataupu, perguruan
tinggi, mikrokontroler adalah salah satu mata kuriah yang banyak dipelajari mahasiswa. Bahkan tidak sedikit mal.rasiswa yang mengambil tugas akhir dengan membuat sistem berbasis mikrokontroler.
Tentu saja hal ini memerlukan literatur yang cukup memadai agar para mahasiswa bisa dengan mudah mempelajari dan mendalami mikrokontroler. Buku ini ditulis untuk melengkapi buku-buku tenrang mikrokontroler yang telah terbit. Buku ini berusaha memberikan i,formasi yang lengkap mengenai mikrokonrroler AT89s52, sebuah mikrokontroler keluarga g051 yang dikeluarkan oleh Atmei Corporation, baik itu secara reori maupun contoh aplikasi. Sehingga, diharapkan buku ini bisa digunakan oleh para mahasiswa atau siapa saja yang ingin mernpelajari dan rnendalami mikrokontorer AT89s52 secara khusus maupun mikrokonrroler keluarga g05l secara umum. Buku ini terdiri atas 11 bab, dengan Bab 1-4 membahas rentang reori arsitektur hardware dan instruksi i,struksi yang dimiliki oleh mikrokontroler AT89s52. Bab 5 memberikan penjelasan mengenai bagai-ma,a menggunakan port-port untuk menyalakan LED, motor DC dan membaca saklar. Bab 6 me*rbahas tentang bagaimana mikrokontroler A"fg9S52 mengendalikan berbagai macam alat peraga (dispray) yang banyak digunakan, seperti display 7 segmen, dot matriks, LCD karakter dan LCD grafik crenga, berbagai teknik hardware dan software nya. Bab 7 dan bab g mc,jc.laska, bagaimana menggunakan fasilitas inrerr.ral yang clirniliki oleh A'l'u()S52, yairtr
Timer, port serial dan interupsi. Bab 9 menjelaskan bagaimana ATB9S52 merrbaca atau rnembangkitkan sinyal analog dengan ADC dan DAC. Bab l0 menjelaskan bagaimana rnembangun jaringan milcrokontroler dengan menggunakan standar RS-485. Bab 11, bab terakl-rir buku ini, menl'elaskan bagaimana menggunakan software pengembangan dan membuat perangkat pemrograman AT89S52 yang dirancang dan dikernbangkan sendiri oleh penulis. Semua contoh aplikasi yang ada
di buku ini, hardware maupun
software,
telah dicoba dan diuji oleh penulis. Software dirancang deng,an mengikuti prinsip-prinsip pemrograman sebagai berikut
l.
Pemenuhan algoritma, yaitu bagairnana membuat sebuah program agar berjalan sesuai dengan algoritma yar.rg telair ditentukan
2.
Penanganan kesalal.ran (error handl), di mana sebuah program harus mampu meresponss dan mer.rangani error yang mungkin terjadi pada saat program dijalankan, sehingga sistem tidak menjadr hang.
3.
Optimalisasi program (coding optimizing), yaitu bagaimana menghemat penggunaan memorj program, menyederhanakan program, dan lain-lain.
tidak hanya pada bagaimana aplikasi itu bekerja, tetapi juga renrang teori yang mendasari aplikasi tersebut dan l)enjelasar.r mengenai sebuah aplikasi
bagaimana sebuah rangkaian atau software' dirancang. Seperti pada Bab 10, st.lrclum membahas bagaimana membuat software untuk RS-485, buku ini rncrnberikan penjelasan terlebih dahulu renrang apa itu RS-485 dan bagair)rana merancang protokol RS-485. Sehingga para pembaca bisa der.rgan rrruclah untlrk mengembangkan conroh contoh aplikasi yang ada di buku
It,hih lar.rjut, menjadi sebuah aplikasi yang lebih canggih dan
dapat
,ligtrna kan.
llrlitr ini juga menggunakan software,software pendukung yang
dibuat
,,r'rrtlir.i olch penulis menggunakan bahasa pemrograman Delphi 6.0. Pembaca
r,rrrg ingirr rnt'nclalarni atau mengembangkan software-software ini disaranl.:rrr rrrrlrrk rrrt'rrPclajari pernrograman DeJphi melalui buku,buku yang sudah .rtl,r. Sr'rrrrrl s()ur'(('t.rlt' nya clisertakan dalarn CD pendukung buku ini. Bagi l,r'nrlrrr';r )';rrrH lrrrrvir ingirr rncnggunakannya cukup menjaiankan software r',rrr1i
rrrtl:rlr j;rrlt (lilr.r,rt,) yirng iugu tcr(lupat clalarn CD pendukur-rg.
kelemahan yang melekar di buku ini. Karena pada dasarnya tidak ada karya vang "terbaik", yang ada adalah karya yang "lebih baik". Hari ini harus lebih baik daripada hari kenarin, dan hari esok harus lebih baik daripatla hari ini.
oleh karena iru, saran dan kritik dari pembaca sangar diharapkan oleh penulis untuk lebih menyempurnakan dan mtlengkapi isi buku ini.
Terakhir, pe^ulis mengucapkan terima kasih kepacra penerbit ANDI yang telah bersedia menerbitkan buku ini. Dan juga kepacla teman-teman kerja penulis yang selalu memberikan dorongan agar penulis segera menyelesaikan buku ini. Semoga buku ini bermanfaat bagi kemajuan teknologi Indonesia.
ry
KATA PENGANTAR
VII
DAFTAR ISI BAB
1
BAB 2
PENDAHULUAN
1
ARSITEKTUR MIKROKONTROLER 8051 ........... 2.1 PENJELASAN FLINGSI KAKI-KAKI 2.2 REGISTER FTINGSI K}IUSUS 2.2.1 Akumulator dan Register B .................
lebih kecil' tegar-rgan kerjanya yang tabung hampa karena ,ku'u'"']yu yang
ANTARMUKA DENGAN SINYAL ANALOG 9.1 ANTARMUKA DENGAN ADC............
401
9.2 PEMBANGKITAN SINYAL ANALOG 9.2.1 Mengatur Kecepatan Motor DC dengan DAC ... 9.2.2 Membangkitkan Musik dengan DAC R 2R ....... 9.2.3 Mikrokontroler yang Bisa Berbicara ..................
415
iebihrcndah,konsurnsidayanyayanglebihkecildan'tenttisaia'harganya membawa kepada Penemuan yorg lout lebih murah' Transistor kernuclian 'irtJg*rert yang berisi dar:i circuit (iC), sebuah perangkat semikonduktor yar.rg tletnbentuk suatu b"bJrrpu buah fransistor samPai jutaan transisror oper:asional (op-amp) sarnpai ,ongkoiu,.t dertgan fr.rngsi terteutu, dar.i penguat I)ari transisror inilah lahir per'r"goloh ,irryul digitui 6igitot signal .ptrrce'sso.r)'
416
mikrokontr:oler'
422
berbagai peralatan elektronik' Mikrokontroler telah banyak ciigunakan di
AI-A.T PENGEMBANGAN .....,.... 1 1.1 PROGRAMMER 2.15 ............. 11.1.1 Instalasi Pro6lrammer 2.15 ............ 11.1.2 Cara Menggunakan Programmer 2.15 1
1.2 ANTARMUKA PROGRAMMER .............. 11.2.1 Rangkaian Antarmuka (FP-S100X) 11.2.2 Sistem Minimum AT89S52 11.2.3 Rangkaian Catu Daya ...........
DAFTAR PUSTAKA
439
453 453 455 460
Rancangan Hardware
10.2.2 Protokol Jaringan dan Rancangan Software
392
453
10.2 JARINGAN RS.485 DENGAN AT89S52
10.2.i
384
402
10.1.1 Spesifikasi Dasar RS-485 ............^..... 10.1.2 Topologi Jaringan RS-485
11
PENDAHUTUAN
339
BAB IO RS-485: IARINGAN MIKROKONTROLER 10.1 TINIAUAN STANDAR RS-485
BAB
BAB I
338
8.1
BAB 9
AT89S52
461 ......
465 497
497
p"t*gkut audio-video' pengendali mesin-mesin contoh sebtrah tape mobil industri sampai pesawat;a"g tngku'u' Sebag'ai cli clarlamnya' Mikro
dari peralatatr rumah tan88a,
tuner FM'
kaset' mengendaiikan kontroler akan menge"aulittun pemutaran LCD' mengatur volunre suara ke melalui mernberikan inlbrrnasi ke pen''akai digital' speaker dan mengendalikan equaliser
Sebuahkomputermikromemilikitigakomponetrutama:urritpengolalrpusat input/output (1/O) untuk (CPlJ=cetttral processing t"'-'r)' '-t"''"ori clan sistem luar' CPU' yang mengatur sistem keria dihubungkal.r dengan
i"'"t'gkut
511
ko,,p..t".mikro'clibangunolehsebuahlr-rikrolrrosesor:.N{emoriterdiriatas RAM untuk metryirnpan clata' IIEPROM untuk menf i'pu' program dan perangkat luar misalnya sebuah Sistern I/O bisa dihubungkan dengan pada aplikasinya. Apabila cPU, keyboard dar.r sebuah mo,itor, bergantu.g maka sisrem I/o dibuat clalarn sebuarr clrip semikonduktor,
513
i rr i
497 499 511
5i5 5t7
r,emori cran (
lah yang, di rranlakan n.rikrokontroier'
olehTntel corporariolr pada akhir it,ilt,r;rsi lx.t.tun)il nrikrokontrolcr clilltrat 8051' keIVlilirrlkt.lrlrtllot.ylrrrg clirratrrakalr st.lragai kcltrarga
Ieknik Antarmulo dan Pemrograman Mikrokontroler AI89552
B/\B 2 AR'ITEKTUR
membuar dan mengembangkan 8051 seperti philips Semiconductor, Atmel corporation, Dallas Semiconductor, dan lain-lain. Selain itu berkembang juga mikrokontroler keluarga lain, seperti Motorola dengan seri 6gHC-nya, Atmel dengan AVR-nya, Microchip dengan plC-nya dan masih banyak lagi.
Mikrokontroler tidak hanya rerdiri
internal ataupun sistem i/o, tetapi juga dilengkapi denga, fasilitas lain (on-chip facilities) seperri timer, port serial, pencacah (countel, kendali interupsi, pengubah analog ke digital (ADC=analog-to-digital converter) dan digital ke analog (DAC=digitat-toanalog convertet) bergantung pada untuk apiikasi apa mikrokontroler tersebut dirancang. Mikrokontroler generasi terbaru bisa dilengkapi dengan port uSB, koneksi LAN, penggerak (drivel LCD, anrarrnuka untuk koneksi ke hard disk araupun dekoder mp3.
Perangkat htnak (software) pun berkembang pesat. pada awalnya bahasa pemrograman mikrokontroler memakai bahasa assembler (bahasa tjngkat rendah), kini para perancang sisrem berbasis mikrokontroler telah banyak
mengunaka, bahasa tingkat tinggi seperti bahasa c, BASIC araupun pascal. Dengan menggunakan bahasa pemrograman tingkat tinggi ini para perancang lebih cepat mengembangkan aplikasinya karena beberapa baris perintah dalam bahasa assembler bisa digantikan dengan hanya satu baris perintah bahasa tingkat tinggi. Kelemahannya adalah, memori program bisa lebih
besar bila dibandingkan dengan bahasa assembler. Selain itu, tidak semua bahasa assembler bisa dengan mudah direrjemahkan ke bahasa tingkat tinggi, sehingga rnasih tetap dibutuhkan baris program yang ditulis dengan bahasa
assembler dalam program bahasa tingkat tinggi (inJine assembler). Mikrokontroler generasi terbaru telah dirancang agar lebih sesuai dengan bahasa tingkat tinggi karena bagaimanapun bahasa tingkat tinggi lebih ,,bisa dibaca".
MIKROKONTROTER BO5I
aras rnemori
Intel Corporation, keluarga rrikrokontroler 8051 (MCS-51) telah berkembang pesat baik dari sisi perangkat keras uraupun peranpikat lunaknya, rnulai dari pengernbang,an dan penarnbahall fasilitas internal sampai bal-rasa pemrogramanuya. Namun, tetaplah diperlukan
Sejak diperkenalkan oleh
pengetahuan tentang mikrokontroler 805 1 standar sebelum mengembang,kan aplikasi berbasis mikrokontroler versi pengembangan.
Mikrokontroler B05i standar adalah mikrokontroler B bit dengan fasilitas sebagai berikut:
1. 2. 3. 4.
Merniliki 4x8 bit port I/O RAM internal 128 bytes
Memiliki 2 buah Timcr Sebuah port serial
Kendali interupsi dengan 5 buah sumber interupsi Bisa mengalamati memori program sampai 64 Kbyte (KB) dan tnemoti data sampai 64 KB secara terpisah.
7.
Register-register fungsi khusus (SER=specral firnction registet's) seperti akumulator, regisrer I\. stack pointer (SP), data pointer (DPI'R)' P0, Pl, P2 dan P3 untuk mengakses port I/O, buffer data serial, register timer dan register kendali (untuk port serial, Timer dan interupsi).
805i adalah sebuah CP[J yang bertugas untuk membaca memori program dan menjalankan perintah yang tersimpan di clalarnnya. CPU ini disusun oleh sebuah unit aritmatika dan logika (ALU= Jantung dari mikrokontroler
der.rgan SFR yaitu register A (A(.i('i ar-<'uatularol. re5iister B, PSW (program status wor$ dan stack pointer arit hntt,t
(Sl'),
hic logic unir) yang terhubung
rllrr l(r bit (lrunter
lr
pointer)'
8051
[l bit, Ittrs d;rta illternal dan rcgister-reg,ister
yang
Program (PC) serta DPTR (data
Ieknik Antarmuka dan Pemrograman Mikrokontroler
AT89SS2
dimilikinya juga memiliki lebar data 8 bit (walaupun DPTR adalah register bit, namun pada dasarnya adalah 2 buah register 8 bit yang digabungkan). rtl o
:
FlJ
i7
FI .ll - F]
16
.?
Jr*erFtl
Dn*rF2
-7'------E-|
I
t JLJT lr
v_!J]
LI _t
Selain itu, ALU juga bisa menangani I bit data sebaik menangani 8 bit data. Sehingga, operasi-operasi bit bisa dilakukan dengan cepat. Bab ini akan menjelaskan arsitektur 8051 standar diawali dengan penielasan fungsi kaki-kakj 8051, SFR, struktur memori, operasi port, port serial, Timer dan interupsi.
-+J----
I
vcc
Arsitektur i,likrokontroler 8051
il
\ LilchFll llilchPll
I I
Eeg ALBIEI
RAftI
I
E,)I
fu
I\,1
,\
lr.Otr
P1
,tt.J:1
Fl.t
Pr:r,J
p1
P{,.1 r.qtrlr
F1.lr
F!-12
P1.r
P{i.:l tLl\'tt
F1..i
Pt:r-{ rACgt
P1.6
F,0.5
Fl.7
Prl.8 r.6,ta,r
FlrT
Ptr?
R1.
€&\Pp
I
E
I I I
I
I I
t{L(
Statk
il
Foirder
iF"*'l
t
I I
Pq.al*u dur
LE T FJT
K*rtlJi
Alixur
TIUIF'l
r ALU
PSW
lltt 1..]-J
J*
Eogun
r
E*l
5LL]IC IIl'1Dt TTIO
IETIF
Trf,:lIl
TI]]
Trn
Euf{rr
tr
IE
FerurnLeh
Blc k Irilerr4,s1 Poll
na]
tt
i.{f,l
ELE.,Ffi= F''5Efl
lllll r F'l r lrll Fr-I,{
Pll1
tAlii
P2.d
t{1ir
Ptiiat!,
-1
rTlrPJ ,TEi P-..6 rEf,t Ft^;
P14 tAlg'
*.1
{T{L:
P3:l i4l(r,
(TAtl
P?-1t,A9i
ul
t
I
*l
P?"il
lAlli
Gsmbor 2.2 Susunon Koki
DlP40
DFTR
Lif EhF
LalEh
Drirer P
DriurP:
H
Oiilatu
!* t'.
i4tSi
Ccude: Hagruu
Lutr:1'si
I
iAtql
Pi,:t r&i!
durTirer
)
F.egister
PD
iT'lti Pr.l ilnTiir F.l.!
F+g TI.TF;
I I
fi:fir
rAf4l
AI PI
Gombor 2.1 Blok Diogrom Mikrokontroler B05l
ALU, seperti tersirat dari namanya, bisa melakukan operasi-operasi aritmatika dan lbgika. operasi penjumlahan, pengurangan, perkaliarl dan pembagian bisa dilakukan oleh ALU. operasi logika yang bisa dilakukan oleh ALU di antaranya AND, oR, exclusive-oR, putar bit, kornplemen dan rain, lain. ALU bisa juga melakukan instruksi cabang bersyarat, menyediakan jalur data dan sebagai register sementara untuk pemindahan dara di clalam cl;Lj.
2.1
PENJETASAN FUNGSI KAKI-KAKI
Seperti telah dijelaskan di atas, 8051 standar mempunyai 40 kaki yang bisa dikemas dalam kemasan DIP40 atau PLCC44 dengan 32 kaki dipakai sebagai
port-porr multiguna, kaki untuk sumber tegangan, kristal, dan kaki-kaki untuk kendali (pembacaan memori). Berikut adalah penjelasan fungsi kakikaki mikrokontroler 8051 standar.
1.
P1.0
-
P1.7 (Port 1)
Port 1 merupakan port 8. bit dua arah (input/output) dengan pull up internal. Buffer output Port 1 bisa menangani sampai 4 masukan TTL. Ketika data FFH dikirirn ke Port 1 maka Port I bisa meniadi port rnasukan. Port I bisa diakses sebagai port (P1) atau diakses per bit (P1.0 I'l .7). Sctt'lah rcst't I) I ukan rnt'n jatli port masukan.