BAB I DASAR-DASAR MIKROPROSESOR
Pada Bab I mempelajari tentang te ntang dasar-dasar mikroprosesor meliputi teknologi mikrop mikropros rosesor esor,, perkem perkemban bangan gan mikrop mikropros roseso esor, r, diagra diagram m CPU 8085, 8085, arsitek arsitektur tur mikroprosesor 8085. Mikroprosesor (disingkat p atau up! adala" sebua" #entral pro#essing unit (CPU! elektronik komputer $ang terbuat dari transistor mini dan sirkuit lainn$a di atas atas sebua sebua" "
sirk sirkui uitt
teri terint nteg egra rasi si semik semikon ondu dukt ktor or..
%ebe %ebelu lum m
berk berkem emba bang ngn$ n$aa
mikroprosesor, CPU elektronik terbuat dari tabung &akum, transistor indi&idual dan dari sirkuit terintegrasi '' terpisa". %istem %istem minimu minimum m adala" adala" penerap penerapan an mikrop mikropros rosesor esor pada pada suatu suatu rangka rangkaian ian digital, dengan komponen minimal se"ingga sistem mikroprosesor dapat bekerja. %istem minimum Intel 8085 merupakan merupakan rangkaian rangkaian digital digital dengan dengan kon)igurasi kon)igurasi minima minimall (meng (menggun gunaka akan n kompon komponen en paling paling sediki sedikit!, t!, $ang $ang dapat dapat membu membuat at IC mikrokontroler Intel 8085 dapat digunakan sebagai sistem mikroprosesor. *alam sistem minimum minimum diperlukan diperlukan perangkat-perang perangkat-perangkat kat seperti + mikroproseso mikroprosesor, r, unit memori, unit masukan dan keluaran, dan rangkaian pendukung lain. Tujuan Khusus Ma"asisa Ma"asisa mampu menjelaskan menjelaskan perkembang perkembangan an dan teknologi, teknologi, arsitektur, arsitektur,
)ungsi masing-masing blok diagram serta menjelaskan #ara kerja mikroprosesor 8085. 1.1 Teknologi Mikroprosesor Mikroprosesor adala" suatu #"ip IC ( Integrated Circuit ! $ang di dalamn$a
terkandung rangkaian U ( Arithmetic ( Arithmetic Logic Unit ! rangkaian CU (Control (Control Unit ! dan egister. Mikroprosesor disebut juga dengan CPU ( Central Processing Unit !. !. Mikr Mikrop opro rose seso sorr adal adala" a" gabu gabung ngan an / kata kata $ait $aitu u mikr mikro o dan dan pros proses esor or.. adi adi,, mikroprosesor adala" sebua" alat $ang berukuran ke#il $ang digunakan untuk mempro memproses ses data data digita digitall se#ara se#ara aritmat aritmatika ika dan logika. logika. %elain %elain beruku berukuran ran ke#il, ke#il, mikroprosesor memiliki kemampuan komputasi $ang lebi" renda" dibandingkan dengan dengan komputer komputer $ang digunakan. digunakan. Cara kerja sebua" Mikroprose Mikroprosesor sor diara"kan diara"kan ole" ole" suatu suatu progra program m dalam dalam kode-k kode-kod odee ba"asa ba"asa mesin mesin $ang $ang tela" tela" dimasu dimasukka kkan n
1
terlebi" da"ulu ke dalam sebua" memori. *i dalam Mikroprosesor minimal terdiri dari rangkaian digital, register, pengola" logika aritmatika, rangkaian sekuensial. Berikut adala" karakteristik penting dari mikroprosesor+ 1. Ukuran Ukuran bus data internal internal (intern (internal al data bus bus si2e!+ si2e!+ umla" umla" saluran saluran $ang $ang terdapat dalam mikroprosesor $ang men$atakan jumla" bit $ang dapat ditrans)er antar komponen di dalam mikroprosesor. /. Ukuran Ukuran bus data eksternal eksternal (e3tern (e3ternal al data bus si2e!+ si2e!+ umla" umla" saluran saluran $ang $ang digunakan untuk trans)er data antar komponen antara mikroprosesor dan komponen-komponen komponen-komponen di luar mikroprosesor. 4. Ukuran Ukuran alamat alamat memori memori (memor$ (memor$ address address si2e!+ si2e!+ umla" umla" alamat memori memori $ang dapat dialamati ole" mikroprosesor se#ara langsung. . 6e#epatan 6e#epatan #lo#k #lo#k (#lo#k (#lo#k speed!+ speed!+ ate ate atau ke#epat ke#epatan an #lo#k untuk untuk menuntun menuntun kerja mikroprosesor. mikroprosesor. 5. 7itur-)itur 7itur-)itur spesial spesial (spe#ial (spe#ial )eatures!+ )eatures!+ 7itur k"usu k"ususs untuk untuk mendukun mendukung g aplikasi tertentu seperti )asilitas pemrosesan )loating point, multimedia dan sebagain$a. *alam *alam penerap penerapan, an, terdap terdapat at tiga tiga penger pengertia tian n $ang $ang "arus "arus dibeda dibedakan kan $aitu $aitu Mikroproseso Mikroprosesor, r, Mikrokomp Mikrokomputer uter dan Mikrokont Mikrokontroler roler.. %angat %angat sering dan suda" menjad menjadii "al $ang $ang biasa biasa penger pengertian tian dari dari mi#ro# mi#ro#ont ontrol roller ler,, mi#ro# mi#ro#omp ompute uterr dan mi#ropro#essor sering bertukar dan disala" artikan. Bagaimanapun, ketiga istila" tersebut sangat berbeda dan sangat penting untuk mengerti tentang pengertian $ang sesunggu"n$a. Mi#ropr Mi#ropro#e o#essor ssor adala" adala" CPU atau Central Central Pro#ess Pro#essing ing Unit Unit $ang $ang terdap terdapat at dalam satu #"ip. CPU di desain dengan (M%I%I! #"ips $ang terintegrasi dengan jumla" medium ataupun besar. Mikroprossesor adala" suatu #"ip
$ang
didalamn$a didalamn$a terkandung terkandung rangkaian U (arit"meti#-lo (arit"meti#-logi# gi# unit!, unit!, rangkaian rangkaian CU (#ontrol unit!, dan register. Mikrokompu Mikrokomputer ter adala" interkoneksi interkoneksi antara mikroproses mikroprosesor or (CPU! dengan memori memori utama (main memor$! dan antar muka input-outp input-output ut (I9 inter)a#e! inter)a#e! $ang dila dilaku kuka kan n
deng dengan an
meng menggu guna naka kan n
sist sistem em
inte interk rkon onek eksi si
bus. bus.
ika ika
sebu sebua" a"
mi#ropro#ess mi#ropro#essor or dengan dengan peralatan peralatan perip"eral perip"eral pendukung pendukungn$a n$a seperti #ir#uit board, board, I9 perip"eral, Memor$ (program ataupun data! di letakkan bersama dalam suatu tempat seperti komputer ke#il $ang di k"usus di gunakan untuk akuisisi dan aplikasi pro#ess #ontrol, maka $ang seperti itu di sebut sebagai mi#ro#omputer. adi bila kita mendesain rangkaian dengan mi#ropro#essor $ang terkenal seperti
2
terlebi" da"ulu ke dalam sebua" memori. *i dalam Mikroprosesor minimal terdiri dari rangkaian digital, register, pengola" logika aritmatika, rangkaian sekuensial. Berikut adala" karakteristik penting dari mikroprosesor+ 1. Ukuran Ukuran bus data internal internal (intern (internal al data bus bus si2e!+ si2e!+ umla" umla" saluran saluran $ang $ang terdapat dalam mikroprosesor $ang men$atakan jumla" bit $ang dapat ditrans)er antar komponen di dalam mikroprosesor. /. Ukuran Ukuran bus data eksternal eksternal (e3tern (e3ternal al data bus si2e!+ si2e!+ umla" umla" saluran saluran $ang $ang digunakan untuk trans)er data antar komponen antara mikroprosesor dan komponen-komponen komponen-komponen di luar mikroprosesor. 4. Ukuran Ukuran alamat alamat memori memori (memor$ (memor$ address address si2e!+ si2e!+ umla" umla" alamat memori memori $ang dapat dialamati ole" mikroprosesor se#ara langsung. . 6e#epatan 6e#epatan #lo#k #lo#k (#lo#k (#lo#k speed!+ speed!+ ate ate atau ke#epat ke#epatan an #lo#k untuk untuk menuntun menuntun kerja mikroprosesor. mikroprosesor. 5. 7itur-)itur 7itur-)itur spesial spesial (spe#ial (spe#ial )eatures!+ )eatures!+ 7itur k"usu k"ususs untuk untuk mendukun mendukung g aplikasi tertentu seperti )asilitas pemrosesan )loating point, multimedia dan sebagain$a. *alam *alam penerap penerapan, an, terdap terdapat at tiga tiga penger pengertia tian n $ang $ang "arus "arus dibeda dibedakan kan $aitu $aitu Mikroproseso Mikroprosesor, r, Mikrokomp Mikrokomputer uter dan Mikrokont Mikrokontroler roler.. %angat %angat sering dan suda" menjad menjadii "al $ang $ang biasa biasa penger pengertian tian dari dari mi#ro# mi#ro#ont ontrol roller ler,, mi#ro# mi#ro#omp ompute uterr dan mi#ropro#essor sering bertukar dan disala" artikan. Bagaimanapun, ketiga istila" tersebut sangat berbeda dan sangat penting untuk mengerti tentang pengertian $ang sesunggu"n$a. Mi#ropr Mi#ropro#e o#essor ssor adala" adala" CPU atau Central Central Pro#ess Pro#essing ing Unit Unit $ang $ang terdap terdapat at dalam satu #"ip. CPU di desain dengan (M%I%I! #"ips $ang terintegrasi dengan jumla" medium ataupun besar. Mikroprossesor adala" suatu #"ip
$ang
didalamn$a didalamn$a terkandung terkandung rangkaian U (arit"meti#-lo (arit"meti#-logi# gi# unit!, unit!, rangkaian rangkaian CU (#ontrol unit!, dan register. Mikrokompu Mikrokomputer ter adala" interkoneksi interkoneksi antara mikroproses mikroprosesor or (CPU! dengan memori memori utama (main memor$! dan antar muka input-outp input-output ut (I9 inter)a#e! inter)a#e! $ang dila dilaku kuka kan n
deng dengan an
meng menggu guna naka kan n
sist sistem em
inte interk rkon onek eksi si
bus. bus.
ika ika
sebu sebua" a"
mi#ropro#ess mi#ropro#essor or dengan dengan peralatan peralatan perip"eral perip"eral pendukung pendukungn$a n$a seperti #ir#uit board, board, I9 perip"eral, Memor$ (program ataupun data! di letakkan bersama dalam suatu tempat seperti komputer ke#il $ang di k"usus di gunakan untuk akuisisi dan aplikasi pro#ess #ontrol, maka $ang seperti itu di sebut sebagai mi#ro#omputer. adi bila kita mendesain rangkaian dengan mi#ropro#essor $ang terkenal seperti
2
8088 ataupun ba"kan dengan 8085 di tamba" dengan ::P9M sebagai tempat pen$impanan sumber data program, M sebagai tempat pen$impanan &ariabel dan antarmuka #"ips I9 (sebagai perantara untuk berkomunikasi dengan dunia luar! berarti kita termasuk dalam golongan mi#ro#omputer desainer, karena sistem tersebut termasuk dalam golongan sistem mi#ro#omputer. Bila semua komponen pen$usun mikrokomputer di kumpulkan menjadi satu, dan di masukkan di dalam satu #"ip sili#on, maka #"ip tersebut di sebut dengan mikrokont mikrokontroller roller.. adi Mikrokontr Mikrokontroler oler adala" #"ip $ang didalamn$a didalamn$a terkandung terkandung sistem sistem interk interkone oneksi ksi antara antara Mikrop Mikropros roseso esor, r, M, M, 9M, 9M, I9 inter)a inter)a#e, #e, dan beberapa perip"eral. Mikrokontroler disebut juga 9n-#"ip-Perip"eral. 'e3as Instruments adala" perusa"aan semi#ondu#tor pertama $ang membuat mi#ro#ontroller dengan 'M% 1000 series. 'M% 1000 series mi#ro#ontroller, suda" mempun$ai M, 9M dan I9 $ang #ukup dan di gunakan untuk aplikasi microwav microwavee oven controller controller , industrial industrial timer dan kalkulator kalkulator. %ekarang %ekarang ban$ak ban$ak beredar jenis-jenis mikrokontroler $ang di produksi ole" berbagai ma#am perusa"aan seperti+ Intel dengan 808 dan 8051, Motorola dengan ;8
dengan sistem I%C (edu#ed Instru#tion %et Computer!. Perbeaan !ikroprossesor" !ikroko!pu#er an !ikrokon#roler$ a. Dari segi s#ruk#urn%a$ %tru %trukt ktur ur utam utamaa dari dari mikr mikrop opro rose seso sorr adal adala" a" U U (arit (arit"m "met eti#i#-lo logi gi## unit unit!, !, rangkaian CU (#ontrol unit!, dan register-register. %truktur utama dari mikrokontroler adala" Mikroprosesor, M, 9M, I9 inter)a#e, dan beberapa perip"eral. %truktur %truktur utama dari mikrokomp mikrokomputer uter adala" mikroproseso mikroprosesor, r, mikrokont mikrokontroler roler,, memori utama dan I9 inter)a#e. b. Dari segi &ungsin%a$ Mikroprosesor ber)ungsi sebagai pengola"an data, pengontrol )ungsi prosesor dan sebagai media pen$impanan sementara. Mikrokontro Mikrokontroler ler ber)ungsi ber)ungsi sebagai sebagai interkoneks interkoneksii antara mikroproseso mikroprosesor, r, M, 9M, I9 inter)e#e dan beberapa perip"eral. Mikrokomputer ber)ungsi sebagai interkoneksi antara mikroprosesor dengan memori utama dan sebagai antar muka input output. 1.' Perke!bangan Mikroprosesor
3
%ejara" Perkembangan Mikropro#essor dimulai+ Mikroprosesor ( bi#. Pada ta"un 1?@1 mun#ul mi#ropro#essor pertama Intel, Mi#ropro#essor 00 ini digunakan pada mesin kalkulator Busi#om. Mikroprosesor ini merupakan kontroler $ang dapat deprogram pada satu serpi", dikemas dalam sebua" serpi *ual in ine Pa#kage (*IP! 1; pin, mengalamati 0?; lokasi memori bit. %et instruksi terdiri dari 5 instruksi. 6emudian IA': mengeluarkan &ersi baru dari 00 $aitu IA': 00 $ang dikemas dalam serpi" *IP / pinberoperasi dengan ke#epatan lebi" tinggi, lebar ord dan memori tidak beruba". Mikroprosesor ) bi#. Pada ta"un 1?@/ mun#ul mi#ropro#essor 8008 $ang berkekuatan / kali lipat
dari penda"ulun$a $aitu 00.
Mikroprosesor
8008 merupakan
&ersi
mikroprosesor 8 bit dengan kelebi"an+ 1. Mengalamati ukuran memori e3panded (1; 6b$te! /. %et intruksin$a terdiri dari 8 instruksi. Pada ta"un 1?@4, IA': mengeluarkan IA': 8080, Motorolla #orporation memperkenalkan mikroprosesor 8 bit MC;800 diikuti
periusa"aan lain
memperkenalkan mikroprosesor 8 bit. 6eistimeaan 8080 dibandingkan 8008 adala"+ - Mempun$ai lebi" ban$ak alamat memori. - Mengeksekusi operasi penamba"an 10 kali lebi" #epat. - 6ompatibel dengan '', se"ingga membuat antarmuka menjadi lebi" muda" dan mura". - Mengalamati memori ; 6b$te, empat kali lebi" ban$ak dari 8008. Pada ta"un 1?@@, IA': mengeluarkan &ersi terbari 8080, $aitu 8085 "an$a membutu"kan #atu da$a 5 >olt. 6eunggulan 8085 dibandingkan 8080, adala"+ 1. 8085 dapat mengeksekusi instruksi lebi" #epat /. %et intruksin$a terdiri dari @ instruksi 4. Internal #lo#k generator . %istem #ontroller internal 5. 7rekensi #lo#k lebi" tinggi Mikroprosesor Moern Pada ta"un 1?@8, IA': mengeluarkan mikroprosesor 808; dan ta"un
berikutn$a 8088. ang membedakan 808; dari 8088 adala" pada 808; terdapat 1; bit bus data sedangkan pada 8088 "an$a 8 bit bus data.
4
1. 6eduan$a mikroprosesor 1; bit $ang dapat mengeksekusi instruksi dalam aktu 00 ns. /. Memori sebesar 1 M B$te, 1; kali lebi" ban$ak dari 8085. 4. %et intruksi semakin ban$ak. Penamba"an jumla" memori pada 808;8088 mendorong mun#uln$a ban$ak aplikasi kompleks untuk mikroprosesor. Pengembangan set intruksi men#akup pembagian dan perkalian $ang tidak terdapat pada mikroprosesor sebelumn$a. umla" instruksi $ang semakin ban$ak dan kompleks, membuat mikroprosesor ini masuk dalam CI%C (Compleks Instruction Set Computer !. Mikroprosesor 1; bit berkembang terutama akibat kebutu"an akan sistem memori $ang lebi" besar. 6etenaran keluarga Intel melambung pada ta"un 1?81, ketika IBM memutuskan untuk menggunakan mikroprosesor 8088 dalam komputer pribadin$a serta didukung sistem operasi $ang dibuat ole" Mi#roso)t (*9%!. plikasi-aplikasi seperti spreads"eet, ord pro#essor, spelling #"e#ker, dan kamus berbasis komputer sangat membutu"kan ban$ak memori. *alam aktu singkat, memori 1 MB$te menjadi kurang memadai untuk database $ang besar dan aplikasin$a. *engan alasan tersebut pada ta"un 1?84 Intel mengeluarkan Intel 80/8; $ang merupakan &ersi dari 808;. 6arakteristik 80/8; adala"+ - Merupakan arsitektur mikroprosesor 1; bit - Mengalamatkan memori 1; Mb$te - Penamba"an instruksi untuk mengatur tamba"an memori 15 Mb$te - Clo#k speed meningkat, eksekusi beberapa instruksi menjadi /50 ns dengan &ersi asli 8 M<2.
Mikroprosesor *' Bi#
%eiring dengan perkembangan ke"idupan manusia, aplikasi-aplikasi mulai memerlukan mikroprosesor dengan ke#epatan $ang lebi" tinggi, memori $ang lebi" besar, dan jalur data $ang lebi" lebar. Ini men$ebabkan pada ta"un 1?8;, Intel memproduksi Intel 8048;, $ang merupakan pen$empurnaan dari 80/8;. Intel 48; adala" sebua" prosesor $ang memiliki /@5.000 transistor $ang tertanam diprosessor tersebut $ang jika dibandingkan dengan 00 memiliki 100 kali lipat lebi" ban$ak dibandingkan dengan 00 6arakteristik 8048;+ - Merupakan mikroprosesor )ungsional 4/ bit pertama
5
- Mempun$ai bus data 4/ bit dan bus alamat 4/ bit - Mengalamatkan memori Db$te Mikroprosesor 4/ bit dibutu"kan karena ukuran dari bus datan$a $ang bisa mentrans)er bilangan real ()loating point presisi tunggal! $ang membutu"kan memori 4/ bit. 6eban$akan ba"asa pemrograman tingkat tinggi, spreads"eet, serta sistem manajemen database menggunakan bilangan real untuk pen$impanan data.
Pada ta"un 1?8? Intel mengeluarkan Intel 808; $ang merupakan gabungan dari 8048; sebagai prosesor dan 8048@ sebagai numeri# #opro#essor serta 8 6b$te #a#"e memor$ s$stem dalam satu paket terpadu. Mikroprosesor 808; tidak ban$ak berbeda dengan 8048;, namun ada juga perbedaan subtansialn$a, $aitu struktur internaln$a dibuat se"ingga setenga" instruksin$a dieksekusi dalam astu #lo#k. 6arena 808; tersedia dalam &ersi 50 M<2, maka kira-kira setenga" dari instruksin$a dieksekusi pada /5 ns. Pro#essor $ang pertama kali memuda"kan berbagai aplikasi $ang tadin$a "arus mengetikkan #ommand-#ommand menjadi "an$a sebua" klik saja, dan mempun$ai )ungsi komplek matematika se"ingga memperke#il beban kerja pada pro#essor. >ersi lain dari 808;+ - 808;*E/, ;; M<2 double #lo#ked - 808;*E4, 100 M<2 tirple #lo#ked, memiliki e3panded #a#"e 1; 6B$te
Mikroprosesor Pen#iu!
Mikroprosesor Pentium $ang dilun#urkan pada // Maret 1??4 mirip dengan mikroprosesor 8048; dan 808;. Pro#essor generasi baru $ang mampu menangani berbagai jenis data seperti suara, bun$i, tulisan tangan, dan )oto. Mikroprosesor ini sebelumn$a diberi label P5 atau 8058;, tetapi Intel memutuskan untuk tidak menggunakan label ini karena sulit untuk mematenkan angka $ang terlalu ban$ak. 6arakteristik Pentium+
6
-
Pentium mengeksekusi dua instruksi $ang tidak saling tergantung, se#ara simultan karena terdiri dari dua prosesor integer internal bebas (prosesor integer kembar!, $ang disebut teknologi superskalar.
-
Menggunakan #oprosesor )loating internal untuk menangani data )loating point.
Mikroprosesor Pen#iu! Pro
*iperkenalkan pada ta"un 1??5. Pada aaln$a Pentium Pro#esor diberi nama P;. Pentium Pro#esor mengandung 5,5 juta transis tor, tiga modul integer, juga unit )loating point untuk meningkatkan kinerja ban$ak so)tare. %atu peruba"an mendasar pada Pentium Pro#esor adala" ba"a Pentium Pro#esor menggunakan tiga mesin eksekusi se"ingga dapat mengakses tiga instruksi dalam aktu bersamaan. Pro#essor $ang diran#ang untuk digunakan pada aplikasi ser&er dan orkstation, $ang dibuat untuk memproses data se#ara #epat.
Mikroprosesor Pen#iu! II Pro" 1++, Pro#essor Pentium II merupakan pro#essor $ang menggabungkan Intel MME
$ang diran#ang se#ara k"usus untuk mengola" data &ideo, audio, dan gra)ik se#ara e)isien. 'erdapat @.5 juta transistor terintegrasi di dalamn$a se"ingga dengan pro#essor ini pengguna PC dapat mengola" data dan menggunakan internet dengan lebi" baik. Mikroprosesor Pen#iu! II eon" 1++) Pro#essor $ang dibuat untuk kebutu"an pada aplikasi ser&er. Intel saat itu
ingin memenu"i strategin$a $ang ingin memberikan sebua" pro#essor unik untuk sebua" pasar tertentu. Mikroprosesor In#el eleron" 1+++ Pro#essor Intel Celeron merupakan pro#essor $ang dikeluarkan sebagai pro#essor $ang ditujukan untuk pengguna $ang tidak terlalu membutu"kan kinerja pro#essor $ang lebi" #epat bagi pengguna $ang ingin membangun sebua" s$stem #omputer dengan budget ("arga! $ang tidak terlalu besar. Pro#essor Intel Celeron ini memiliki bentuk dan )orm )a#tor $ang sama dengan pro#essor Intel jenis Pentium, tetapi "an$a dengan instruksi-instruksi $ang lebi" sedikit, / #a#"e-n$a
7
lebi" ke#il, ke#epatan (#lo#k speed! $ang lebi" lambat, dan "arga $ang lebi" mura" daripada pro#essor Intel jenis Pentium. Mikropro/esor In#el Pen#iu! III" 1+++ Pro#essor Pentium III merupakan pro#essor $ang diberi tamba"an @0
instruksi baru $ang se#ara dramatis memperka$a kemampuan pen#itraan tingkat tinggi, tiga dimensi, audio streaming, dan aplikasi-aplikasi &ideo serta pengenalan suara. Mikroprosesor In#el Pen#iu! III eon" 1+++ Intel kembali meramba" pasaran ser&er
dan
orkstation
dengan
mengeluarkan seri Eeon tetapi jenis Pentium III $ang mempun$ai @0 perinta" %IM*. 6eunggulan pro#essor ini adala" ia dapat memper#epat pengola"an in)ormasi dari s$stem bus ke pro#essor , $ang juga mendongkrak per)orma se#ara signi)ikan. Pro#essor ini juga diran#ang untuk dipadukan dengan pro#essor lain $ang sejenis. Mikroprosesor In#el Pen#iu! (" '000 Pro#essor Pentium I> merupakan produk Intel $ang ke#epatan prosesn$a
mampu menembus ke#epatan "ingga 4.0; D<2. Pertama kali keluar pro#essor ini berke#epatan 1.5D<2 dengan )orma)a#tor pin /4, setela" itu intel meruba" )orm)a#tor pro#essor Intel Pentium menjadi pin @8 $ang dimulai dari pro#essor Intel Pentium berke#epatan 1.4 D<2 sampai $ang terbaru $ang saat ini mampu menembus ke#epatann$a "ingga 4. D<2. Mikroprosesor In#el eon" '001 Pro#essor Intel Pentium Eeon merupakan pro#essor Intel Pentium $ang
ditujukan k"usus untuk berperan sebagai #omputer ser&er. Pro#essor ini memiliki jumla" pin lebi" ban$ak dari pro#essor Intel Pentium serta dengan memor$ / #a#"e $ang lebi" besar pula. Mikroprosesor In#el I#aniu!" '001 Itanium adala" pro#essor pertama berbasis ; bit $ang ditujukan bagi
pemakain pada ser&er dan orkstation serta pemakai tertentu. Pro#essor ini suda" dibuat dengan struktur $ang benar-benar berbeda dari sebelumn$a $ang didasarkan pada desain dan teknologi IntelFs :3pli#itl$ Parallel Instru#tion Computing (:PIC!. Pada ta"un /00/ dikeluarkan Intel Itanium / Pro#essor $aitu
8
Itanium / adala" generasi kedua dari keluarga Itanium. 'a"un /004, Intel Pentium M Pro#essor, C"ipset 855, dan Intel P9GI::%% /100 adala" komponen dari Intel Centrino. Intel Centrino dibuat untuk memenu"i kebutu"an pasar akan keberadaan sebua" komputer $ang muda" dibaa kemana-mana. 'a"un /00, Intel Pentium M @45@5@55 pro#essor " dilengkapi dengan #"ipset 855 dengan )itur baru /Mb / Ca#"e 00M<2 s$stem bus dan ke#o#okan dengan soket pro#essor dengan seri-seri Pentium M sebelumn$a. *ikembangkan selanjutn$a Intel :@5/0:@4/0 C"ipsets, $aitu @4/0@5/0 dapat digunakan untuk dual pro#essor dengan kon)igurasi 800M<2 7%B, **/ 00 memor$, and PCI :3press perip"eral inter)a#es. '00 $ In#el Pen#iu! ( E2#re!e Ei#ion *.,*345 %ebua" pro#essor $ang ditujukan untuk pasar pengguna komputer $ang menginginkan sesuatu $ang lebi" dari komputern$a, pro#essor ini menggunakan kon)igurasi 4.@4D<2 )reHuen#$, 1.0;;D<2 7%B, :M;', /MB / #a#"e, dan <$per'"reading. '00 $ In#el Pen#iu! D )'06)*06)(0 Pro#essor berbasis ; bit dan disebut dual #ore karena menggunakan / bua" inti, dengan kon)igurasi 1MB / #a#"e pada tiap #ore, 800M<2 7%B, dan bisa beroperasi pada )rekuensi /.8D<2, 4.0D<2, dan 4./D<2. Pada pro#essor jenis ini juga disertakan dukungan <$per'"reading. '007 $ In#el ore ' 8ua 87700 Pro#essor untuk t$pe desktop dan digunakan pada orang $ang ingin kekuatan lebi" dari komputer $ang ia miliki memiliki / bua" #ore dengan kon)igurasi /.D<2 dengan 8MB / #a#"e (sampai dengan MB $ang dapat diakses tiap #ore!, 1.0;D<2 7ront-side bus, dan t"ermal design poer ( '*P ! '007 $ In#el 8ua-/ore eon *'106*''0 Pro#essor $ang digunakan untuk tipe ser&er dan memiliki / bua" #ore dengan masing-masing memiliki kon)igurasi /.14 dan /.D<2, berturut-turut, dengan 8MB / #a#"e (dapat men#apai MB $ang diakses untuk tiap #ore!, 1.0;D<2 7ront-side bus, dan t"ermal design poer ('*P! 1.* Diagra! P9 )0) Mikroprosesor 8085 merupakan mikroprosesor seder"ana dan dikemas dalam
bentuk *IP (*ual Inline Pa#kage! dengan jumla" pen$emat seban$ak 0 bua". Mikroprosesor 8085 memiliki jumla" Bus lamat seban$ak 1; bit dengan demikian dapat mengakses memori se#ara langsung seban$ak /1; alamat memori
9
atau seban$ak ;5545 alamat, sering disebut sebagai ;6 3 8 Bit atau ;6B$te memori se#ara langsung. umla" Bus *ata adala" 8 bit, dengan demikian dapat meng"ubungi perip"eral dengan lebar data (*ata Pat" Gidt"! 8 bit. Mikroprosesor ini tidak memiliki bus alamat 1; bit se#ara terpisa", melainkan bus alamat b$te terenda" (lo signi)i#ant b$te! $aitu 0..@ dimultiplek dengan Bus *ata *0..*@.
Dambar 1.1 C"ip IC Mikroprosesor 8085
Dambar 1./ *iagram Pin Mikroprosesor 8085data s"eet 8085J Deskripsi Pin )0)$ A) - A1 :Ou#pu# * S#a#e; ddress BusK ang paling signi)ikan 8 bit dari alamat memori atau 8 bit dari
alamat I9, 4 stated mode
10
'epi turun ()alling edge! : adala" set untuk menjamin aktu setup dan "old untuk in)ormasi alamat. : juga dapat digunakan untuk strobe in)ormasi status. : tidak perna" 4 stated. S0" S1 :Ou#pu#; *ata Bus %tatus, mengkodekan status bus #$#le+ %1 %0 0 0 <' 0 1 GI': 1 0 :* 1 1 7:'C< %1 dapat digunakan sebagai status ad&an#ed G. G. RD :Ou#pu# *s#a#e; :*+ mengindikasikan pemili"an memori atau peralatan I9 untuk diba#a dan *ata Bus tersedia untuk trans)er data. =R :Ou#pu# *s#a#e; GI':+ mengindikasikan data pada data bus ditulis ke memori atau peralatan I9. *ata adala" set pada tepi naik (trailing edge! G. 4 stated selama mode :Inpu#; ika ead$ set selama siklus ba#a atau tulis, menunjukkan ba"a memori atau perip"eral adala" siap untuk mengirim atau menerima data. ika ead$ lo, CPU akan menunggu sampai ead$ "ig" sebelum men$elesaikan siklus ba#a atau tulis. 4O
akan akan mele melepa pask skan an
penggunaan bus segera pen$elesaian siklus mesin saat ini. Proses internal dapat berlanjut. Prosesor dapat mengembalikan bus "an$a setela"
11
la$anan interupsi. IA' diakti)kan dan dinonakti)kan ole" perangkat lunak.
(dan (dan
memiliki memiliki aktu $ang sama! * selama siklus Instruksi setela" IA' diterima. diterima.
12
SID :Inpu#; %erial input data line '"e data on t"is line is loaded into a##umulator bit @
"ene&er a IM instru#tion is e3e#uted. SOD :ou#pu#; %erial output data line. '"e output %9* is set or reset as spe#i)ied b$ t"e %IM instru#tion. @//" 5 &olt suppl$. @ss" Dround e)eren#e. 1.( Deskripsi ungsional )0) Mikr Mikrop opro roses sesor or 8085 8085 adal adala" a" 8 bit bit paral paralel el #ent #entra rall pro# pro#es essor sor,, "an$ "an$aa
membutu"kan #atu da$a tunggal 5 &olt dengan #lo#k speed adala" 4,/ M<2, terdiri dari CPU, sebua" #"ip #"ip M I9, sebua" 9M atau P9MI9. 8085 menggunakan menggunakan multiple3ed *ata Bus. ddress adala" kombinasi antara "ig"er "ig"er 8 bit ddres ddresss Bus dan loer loer 8 bit ddress ddress*a *ata ta Bus. Bus. %elama %elama siklus siklus pertama address dikirim, loer 8 bits di-lat#"ed ke perip"erals ole" ddress at#" :nable (:!. %elama siklus mesin rest, data Bus digunakan untuk memor$ atau data I9. 8085 8085 men$ed men$ediak iakan an signal signal *, G, I9Mem I9Memor$ or$ dan #ontro #ontroll Interru Interrupt pt #knoledge signal (IA'! untuk bus.
<' <', GI':, :*, 7:'C<. %1 men$ men$at atak akan an seba sebaga gaii G G pada pada bus bus tran trans) s)er ers. s. 8 bit bit %B %B dari dari addr addres esss dimu dimult ltip iple leks ks deng dengan an data data stat status us.. : : digu diguna naka kan n seba sebaga gaii stro strobe be untu untuk k memasukkan setenga" loer address ke memor$ atau perip"eral address lat#". In#errup# an Serial I6O 8085 mempun$ai 5 interrupt input+ IA', %'5.5, %';.5, %' @.5, and 'P. IA'. :%'' inputs, 5.5, ;.5. @.5, adala" programmable mask. 'P, :%' :%'' ' adala" nonmaskabl nonmaskable. e. Interupsi Interupsi :%' :%'' ' men$ebabk men$ebabkan an eksekusi eksekusi
13
internal %' (men$impan program #ounter di dalam sta#k dan lompat ke alamat :%''! jika interrupts enabled dan jika interrupt mask tidak set. Aonmaskable 'P men$ebabkan internal eksekusi %' tidak bergantung keadaan interrupt enable or masks. Interrupts dikelompokkan pada tingkat prioritas, 'P "ig"est priorit$, %' @.5, %' ;.5, %' 5.5, IA' loest priorit$. Mikroprosesor Intel 8085 mempun$ai kemampuan kerja dengan ke#epatan pelaksana instruksi sebesar 1,4s dan membutu"kan arus maksimum sebesar 1@0m. Pen$emat masukan memerlukan arus sebesar kurang dari 10 dan kapasitansi 10 p7.
saluran alamat (8- 15 !. 8 jalur saluran alamat sebagai loer. Men$ediakan ; register serba guna (B, C, *, :, <, ! %ebua" register Program Counter (PC! 1; bit %ebua" register %ta#k Pointer (%P! 1; bit :nam bua" register serbaguna (general purpose register! $ang dapat
dijadikan pasangan register $aitu+ BC, *:, dan <. ?. Membutu"kan signal poer suppl$ 5> dan beroperasi pada 4./ M<= single p"ase #lo#k. 10. Memiliki /; instruksi 11. Men$ediakan )asilitas untuk masukan dan keluaran serial 1/. Mendukung adan$a permintaan interupsi. 'ersedia 5 bua" masukan interupsi. 14. 'erdiri dari 0 pins *IP (*ual in line pa#kage!.
1. Arsi#ek#ur Mikroprosesor 1..1 Moel Mikroprosesor Mikroprosesor adala" IC digital $ang mempun$ai sejumla" saluran data
(*ata Bus!, sejumla" saluran alamat (ddress Bus!, sejumla" saluran #ontrol (Control Bus! dan saluran sumber da$a (Poer %uppl$!. %uatu mikroprosesor ideal mempun$ai sejumla" A saluran masukan dan M saluran keluaran.
14
ada dua tingkatan tegangan pada saluran masukan dan keluaran $aitu logika nol (0Q! atau logika satu (1Q!. %in$al pada saluran masukan adala" data masukan ke mikroprosesor dapat berasal dari sit#", sensor, ke$board, *C, mouse, s#anner atau peralatan lainn$a. %aluran keluaran dapat di"ubungkan dengan *C, digital displa$, penggerak, printer, monitor, alarm dan peralatan keluaran lainn$a. *idalam mikroprosesor disimpan program merupakan kumpulan serangkaian instruksi berurutan menentukan bagaimana data masukan diproses dan in)ormasi apa $ang dikirimkan ke saluran keluaran. rsitektur mikroprosesor memiliki beberapa sistem BU% ditunjukkan pada Dambar 1.4.
Dambar 1.4 rsitektur Mikroprosesor 8085 ikipedia+ IntelR8085J 1..' Sis#e! B9S
15
Bus merupakan jalur peng"ubung antar alat pada komputer $ang digunakan sebagai media dalam proses meleatkan data pada suatu proses. Merupakan sekumpulan kabel sebagai alat transportasi in)ormasi kesemua peralatan dalam sistem. In)ormasi tersebut dapat berupa data, perinta" atau alamat. Bus ini bisa dianggap sebagai sebua" pipa, dimana pipa atau saluran tersebut digunakan untuk mengirimkan dan menerima in)ormasi antar alat $ang di"ubungkann$a. BU% sebagai alat transportasi data dari terminal satu ke terminal lain di dalam CPU. alur utama aliran data antara prosessor ke komponen lainn$a (seperti sound #ard, &ideo #ard, memor$! pada mainboard. 6arakteristik bus adala"+ 1. umla" interupsi mementukan ban$ak perangkat
independen
$ang
melakukan I9. /. Ukuran bus data eksternal berakibat pada ke#epatan operasional I9. 4. Ukuran bus alamat menentukan ban$ak memori $ang ditunjuk board ekspansi. . 6e#epatan #lo#k maksimum $ang dapat diakomodasi bus berakibat pada kinerja. In#erkoneksi Bus #eriri ari$ 1. Da#a bus, mentrans)er instruksi dari dan ke prosesor. Bus ini bersi)at dua ara". /. Aress bus ( Memory bus!, bertugas mentrans)er alamat memori $ang akan digunakan ole" prosesor dalam proses tulisba#a data. Bus ini bersi)at satu ara". 4. on#rol bus (Command bus!, mentrans)er sin$al urutan dan sinkronisasi $ang berasal dari unit kontrol kepada semua komponen "ardare. Bus ini bersi)at dua ara". . Poer Suppl%" sebagai pen$edia #atu da$a. Bus Da#a *ata Bus+ digunakan untuk mengirimmenerima data dalam bentuk biner
antara mikroprosesor dan unit e3ternal lain seperti memor$. umla" Bus *ata adala" 8 bit, dengan demikian dapat meng"ubungi perip"eral dengan lebar data (*ata Pat" Gidt"! 8 bit. *ata Bus t$pi#all$ terdiri dari 8 ires, se"ingga memiliki / 8 kombinasi digit biner. *ata bus digunakan untuk transmit SdataS, $aitu in)ormasi "asil arit"matika antara memor$ dan mikroprosessor. Bus data adala" bi-dire#tional. Ukuran data bus menentukan berapa arit"meti# dapat dilakukan. ika "an$a menggunakan 8 bit
16
maka ukuran number terbesar adala" 11111111 (/55 de#imal!. *ata Bus juga membaa instruksi dari memor$ ke mikroprosesor. %aluran data dapat berupa sebagai saluran data masukan dan keluaran, se"ingga setiap saluran data bersi)at dua ara" (Bidire#tional!.
%aluran data
tersebut agar dapat ber)ungsi sebagai bus data masukan dan keluaran dapat digunakan three state buffer untuk meng"asilkan saluran dua ara". *ata ord 8 bit disebut b$te, sedangkan ord bit disebut nible. Aress Bus :Bus Ala!a#; %uatu mikroprosesor ideal mempun$ai memori dalam (Internal Memor$!
untuk men$impan data dan program. Proses pen$impanan in)ormasi dalam memori disebut penulisan memori dan proses pengambilan in)ormasi dari memori disebut pemba#aan memori. %etiap lokasi memori mengandung sebua" kata memor$ (memor$ ord! $ang ukurann$a ditentukan ole" lebar jalur data mikroprosesor. lamat din$atakan dengan bilangan "e3ade#imal.
(MPU
O
Mi#ropro#essor
Unit!. %elain itu
bus kontrol
perip"eral M:M, M:MG, I9, dan I9G belum terpisa" sepenu"n$a dan "arus dibangkitkan dari sin$al kontrol * (pen$emat 4/!, G (pen$emat 41!, I9M (pen$emat 4!. gar siap dijadikan sebagai MPU diperlukan beberapa komponen tamba"an $aitu rangkaian bus demultiple3er (pemisa"an bus *0..*@ dan 0..@! dan rangkaian dekoder sin$al kontrol. on#rol Bus Mikroprosesor
mempun$ai
saluran
kontrol,
dipergunakan
untuk
mensinkronkan #ara kerja mikroprosesor dengan #ara kerja komponen-komponen di luar mikroprosesor. 6ontrol Bus adala" jalur $ang mempun$ai )ungsi spesi)ik untuk koordinasi dan 6ontrolling operasi mikroprosesor. 7ungsi tidak dapat berjalan dengan benar tanpa signal kontrol. %aluran kontrol dapat dibagi menjadi+
17
1. %aluran kontrol masukan $ang mempun$ai ara" pana" dari luar ke dalam mikroprosesor /. %aluran kontrol keluaran mempun$ai ara" pana" dari mikroprosesor ke luar mikroprosesor. %aluran kontrol dapat akti)
mikroprosesor tidak akan dapat bekerja. Catu da$a untuk setiap mikroprosesor berbeda, tetapi $ang terpenting diper"atikan adala" e)isiensi da$a $ang digunakan (da$a "emat!. Mikroprosesor 8085 memerlukan da$a 5 >olt. Berbagai sin$al dalam sebua" mikroprosesor dapat diklasi)ikasikan sebagai+ 1. Poer suppl$ dan 7rekuensi sin$al+ %in$al $ang membantu dalam pen$ediaan listrik dan meng"asilkan )rekuensi ber"ubungan dengan tipe ini. Pin seperti >## dan ground diklasi)ikasikan jenis ini. /. lamat sin$al+ %in$al $ang terkait dengan multipleks bus alamat renda" dan tinggi. 'ermasuk jenis sin$al ini adala" ddress 4. %in$al data+ %in$al $ang terkait dengan data bus. . 6ontrol dan %tatus %in$al+ %in$al $ang terkait dengan unit aktu dan kontrol seperti <9*, G, G dan lain-lain. 5. %in$al Interrupt, seperti 'P, %' 5,5 ;. %in$al I9 serial+ %in$al-sin$al ini digunakan untuk memberikan serial data input dan output. 6ategori %in$al ini adala" %I*, %9*. @. #knoledgement %in$al+ %in$al seperti IA', <* bertindak sebagai sin$al penerimaan untuk mikroprosesor 8085. 1.7 Blok Diagra! Mikroprosesor Mikroprosesor se#ara umum terdiri dari+ U (rit"meti# ogi# Unit!,
Control and 'iming Unit, dan rra$ egister (egister arik!. Blok diagram ditunjukkan pada Dambar 1.. 7ungsi utama Mikroprosesor adala" sebagai unit Register #seluru" $ 'emor $ang mengendalikan kerja sistem mikroprosesor. T Arithmac Logic Unit (ALU)
Timing an !ontro" Unit
%R & A !%
18 #*
Dambar 1. Blok *iagram Mikroprosesor dengan Memor$ dan I9 Mikroprosesor terdiri dari beberapa bagian+ 1. egister, ber)ungsi untuk sebagai tempat pen$impanan sementara data, alamat, kode instruksi dan bit status berbagai operasi mikroprosesor. 7ungsin$a "ampir sama dengan piranti memori mikroprosesor dengan perbedaan ba"a+ memori berada diluar mikroprosesor sedangkan register berada didalam mikroprosesor. Memori diidenti)ikasi dengan alamat sedangkan register diidenti)ikasi dengan nama register ole" mikroprosesor. /. U (rit"mati# and ogi# Unit!, ber)ungsi untuk mengerjakan perinta"O perinta" logika dan operasi aritmetika dalam memproses data. 4. 'iming and Control Unit, ber)ungsi untuk mengambil dan mendekodekan instruksi dari memori program dan membangkitkan sin$al kendali $ang diperlukan ole" bagian lain dari mikroprosesor untuk melaksanakan instruksi tersebut. 'iming T Control Unit ber)ungsi sebagai pembangkit daur-aktu untuk antarmuka dengan perip"eral pada bus alamat, data dan kontrol. %elain itu mengendalikan bus-bus tamba"an lainn$a seperti interupsi, *M dan lain sebagain$a. . Memori digunakan untuk men$impan data baik $ang digunakan sebagai program maupun sebagai pen$impan data $ang diproses ole" CPU. *ua tipe memori $ang dikenal adala" M (andom ##ess Memor$! dan 9M (ead 9nl$ Memor$!. 6edua jenis memori ini jika digunakan pada sistem
berbasis
mikroprosesor
umumn$a
diletakkan
pada
ruang
pengaksesan $ang berbeda.
dataprogram
di
dalam
pen$impanan $aitu+
-
@ola#ile S#orage" Berkas data atau program akan "ilang jika listrik
padam. - ?on @ola#ile S#orage. Berkas data atau program tidak akan "ilang sekalipun listrik dipadamkan. Berdasarkan Pengaksesan memor$ terbagi menjadi dua $aitu+
19
RAM :RA?DOM AESS MEMOR>;. Bagian dari main
memor$, $ang dapat kita isi dengan data atau program dari diskette atau sumber lain. *imana data-data dapat ditulis maupun diba#a pada lokasi dimana saja didalam memori.
M bersi)at
>9'I: ROM :READ O?<> MEMOR>;. Memori $ang "an$a dapat diba#a. Pengisian 9M dengan program maupun data, dikerjakan ole" pabrik. 9M biasan$a suda" ditulisi program maupun data dari pabrik dengan tujuan-tujuan k"usus. Misal+ *iisi penterjema" (interpreter! dalam ba"asa basi#. adi 9M tidak termasuk sebagai memori $ang dapat kita pergunakan untuk program-program $ang kita buat. 9M bersi)at
A9A >9'I: 'ipe ain dari 9M C"ip $aitu + P9M (Programable ead 9nl$ Memor$! merupakan sebua" #"ip memor$ $ang "an$a dapat diisi data satu kali saja. %ekali saja program dimasukkan ke dalam sebua" P9M, maka program tersebut akan berada pada P9M seterusn$a. Berbeda "aln$a dengan M, pada P9M data akan tetap ada alaupun komputer dimatikan. Perbedaan mendasar antara P9M dan 9M (ead 9nl$ Memor$! adala"
ba"a
P9M
diproduksi
sebagai
memor$
kosong,
sedangkan 9M tela" diprogram pada aktu diproduksi. Untuk menuliskan data pada #"ip P9M, dibutu"kan P9M Programmer atau P9M BurnerF :P9M (:rasable Programable ead 9nl$ Memor$!. enis k"usus P9M $ang dapat di"apus dengan bantuan sinar ultra
&iolet. %etela" di"apus, :P9M dapat diprogram lagi. ::P9M (:le#tri#all$ :rasable Programable ead 9nl$ Memor$!. ::P9M "ampir sama dengan :P9M, "an$a saja untuk meng"apus datan$a memerlukan arus listrik. ::P9M adala" tipe k"usus dari P9M (Programmable ead-9nl$ Memor$! $ang bisa di"apus dengan memakai perinta" elektris. %eperti juga tipe P9M lainn$a, ::P9M dapat men$impan isi datan$a, ba"kan saat listrik suda" dimatikan.
20
Sis#e! Kerja Me!ori . %istem operasi kerja memori, prinsipn$a terdiri dari dua $aitu
operasi ba#a dan operasi tulis. Bila prosesor melakukan perinta" ba#a ke memori maka prosesor mengirimkan alamat data $ang akan diakses, kemudian mengirimkan sin$al kendali read (ba#a! $ang memerinta"kan pada memori untuk mengeluarkan data pada alamat $ang ditunjukkan pada bus data. 9perasi tulis $aitu bila prosesor akan men$impan data, in)ormasi, instruksi atau kode operasi ke memori. *alam operasi tulis data, mikroprosesor terlebi" da"ulu mengirimkan
alamat melalui
bus
alamat ke
memori,
$ang
menunjukkan lokasi alamat data pada memori $ang akan ditulis. %elanjutn$a sin$al write (tulis! dikirimkan $ang memberikan perinta" kepada memori untuk men$ediakan tempat pada memori untuk data $ang ada pada bus data dengan alamat sesuai $ang ditunjukkan pada bus alamat. %iklus kerja memori diperli"atkan pada gambar berikut.
Gambar 1.5 Diagram siklus waktu operasi baca dari memori Penjelasan gambar 1.5 adala" sebagai berikut+ Mikroprosesor menempatkan alamat data $ang akan diba#a pada bus
alamat. Mikroprosesor memberikan pulsa sin$al kendali ba#a (akti) renda"!. %aat sin$al kendali akti) renda", data pada bus data siap diambil
diba#a. *ata sa"i" siap diba#a ole" mikroprosesor Prosesor mengambil data dari bus data %in$al kendali kembali pada le&el tinggi.
21
Dambar 1.;. *iagram siklus aktu operasi tulis pada memori Penjelasan dari gambar 1.; adala" sebagai berikut+ Mikroprosesor memberikan data $ang akan ditulis pada memori pada bus data. Mikroprosesor selanjutn$a memberikan alamat lokasi data pada
memori untuk data $ang akan ditulis pada memori ke bus alamat. Prosesor kemudian memberikan sin$al kendali tulis (akti) renda"!. %aat sin$al kendali pada posisi renda", data otomatis ditulis pada memori dengan alamat lokasi pada alamat $ang ditunjukkan bus
alamat. %in$al kendali kembali ke posisi le&el tinggi. Memori siap menerima instruksi selanjutn$a. 5. Unit Masukan dan 6eluaran Perantara antara mikroprosesor dengan dunia luar merupakan tugas dari unit masukan dan keluaran pada suatu sistem mikroprosesor. 'anpa unit masukan dan keluaran maka data $ang diola" "an$a berputar-putar dalam sistem mikroprosesor, tanpa ada keluaran $ang dapat diterima lingkungan luar sistem mikroprosesor. 'eknik masukan dan keluaran pada sistem mikroprosesor dapat dibedakan menjadi dua sistem $aitu+ %istem Paralel, *ata masukankeluaran dikirimkan dalam bentuk
1. /. 4. . 5.
delapan bit paralel. %istem %erial, *ata masukankeluaran dikirim se#ara bit per bit
berurutan melalui satu jalur. Beberapa )ungsi lain dari mikroprosesor, antara lain+ Mengambil instruksi dan data dari memori. Meminda" data dari dan ke memori. Mengirim sin$al kendali dan mela$ani sin$al interupsi. Men$ediakan peaktuan untuk siklus kerja sistem mikroprosesor. Mengerjakan )ungsi O )ungsi operasi logika dan aritmatika.
1., on#oh
22
Mikroprosesor 8085 memiliki jumla" Bus lamat seban$ak 1; bit dengan demikian dapat mengakses memori se#ara langsung seban$ak /1; alamat memori atau seban$ak ;5545 alamat, sering disebut sebagai ;6 3 8Bit atau ;6B$te memori se#ara langsung. Conto" #ontrol bus adala" saluran eadAot rite terdiri dari satu bit. %aluran #ontrol ini ber)ungsi untuk in)ormasi menulisrite (data disimpan ke memori! atau memba#aread (data diambil dari memori!, ogika 1 N ead, ogika 0 N Grite. %e#ara umum, mikroprosesor berisi + - unit aritmetikalogika (U!, - register, - bus internal, serta unit kendali, seperti terli"at pada Dambar berikut ini
Dambar 1.@ rsitektur umum mikroprosesor egister dan U di"ubungkan dengan bus internal dalam mikroprosesor se"ingga register dan memori (melalui bus data! dapat mensuplai data ke U dan menerima "asiln$a. *alam #onto" ini, terdapat / bua" register, dan B, $ang digunakan untuk
se#ara temporer men$impan "asil komputasi. Bus internal E dan digunakan untuk mentrans)er data sebagai operand
$ang akan diola" U. Bus internal digunakan untuk mentrans)er "asil operasi U ke register
atau memori (melalui bus data!. egister M (Memor$ ddress! berisi in)ormasi alamat memori $ang akan diakses. Unit kendali mengendalikan semua operasi dalam mikroprosesor. Per"atikan kepala pana" $ang menunjukkan ara" aliran
data. %ebagai #onto", kita "endak menjumla"kan data dari suatu lokasi di memori dengan data dari register serta men$impann$a di register B.
23
egister M diisi dengan alamat memori $ang akan diba#a, lalu register di"ubungkan ke bus E, bus data di"ubungkan ke bus , dan bus = di"ubungkan dengan register B, kemudian U melakukan operasi penjumla"an. Instruksi $ang dijalankan ole" mikroprosesor ada di memori, berupa urutan data-data biner $ang merupakan ba"asa mesin mikroprosesor. pa $ang dilakukan ole" mikroprosesor tergantung dari instruksi $ang diberikan tersebut. Misaln$a instruksin$a adala" operasi menjumla"an isi register B dengan isi suatu memori dan "asiln$a disimpan di dalam register B lagi, maka operasi $ang akan dijalankan adala" ole" mikroprosesor adala"+ Mem(PC! V M PC 1 V PC B Mem(M! V B 1.) Rangku!an
1. %uatu mikroprosesor mempun$ai A saluran masukan dan M saluran keluaran $ang dapat di"ubungkan ke peralatan di luar mikroprosesor. /. Mikroprosesor adala" IC digital $ang mempun$ai sejumla" saluran data (*ata Bus!, sejumla" saluran alamat (ddress Bus!, sejumla" saluran #ontrol (Control Bus! dan saluran sumber da$a (Poer %uppl$!. 4. *ata Bus+ digunakan untuk mengirimmenerima data dalam bentuk biner antara mikroprosesor dan unit e3ternal lain seperti memor$. %aluran data dapat berupa sebagai saluran data masukan dan keluaran, se"ingga setiap saluran data bersi)at dua ara" (Bidire#tional!. . Control Bus adala" jalur $ang mempun$ai )ungsi spesi)ik untuk koordinasi dan #ontrolling operasi mikroprosesor. 5. Proses pen$impanan in)ormasi dalam memori disebut penulisan memori dan proses pengambilan in)ormasi dari memori disebut pemba#aan memori. %etiap lokasi memori mengandung sebua" kata memor$ (memor$ ord! $ang ukurann$a ditentukan ole" lebar jalur data mikroprosesor. ;. %e#ara umum, mikroprosesor berisi + - unit aritmetikalogika (U!, - register, - bus internal, serta unit kendali. 1.+
1. elaskan pengertian sistem BU% pada mikroprosesorW /. pa $ang dimaksud 'ri-state logi#W
24
4. pa saja klasi)ikasi interrupt 8085W . pa saja
BAB II MODE< PEMO3RAMA? MIKROPROSESOR )0) Pada bab ini menjelaskan tentang model pemograman mikroprosesor 8085.
Pemba"asan meliputi )ungsi register, mode pengalamatan dan )ungsi intruksi pada mikroprosesor 8085. Perangkat sistem minimum merupakan rangkaian elektronik $ang terdiri dari sistem internal ( software! dan sistem eksternal (hardware!. Mikroprosesor "an$a dapat memproses jika diberikan instruksi kepadan$a $ang disebut dengan program. %ebua" program adala" rangkaian logika dari instruksi. %etiap instruksi menunjukkan beberapa aksi seperti meminda"kan data dari suatu register ke register lainn$a atau men$impan data
dalam
sebua" memori.
%ebua"
mikroprosesor tanpa sebua" program adala" sebua" perangkat elektronika $ang mati. %ebua" program berarti sebua" ke"idupan bagi mikroprosesor.
dan )ungsi instruksi mikroprosesor 8085. '.1 Analisis Regis#er Dan ungsin%a %etiap mi#roprosessor selalu memiliki apa $ang di namakan registerQ,
sebagaimana namann$a, mi#roprosessor
dingunakan untuk pengola"an data
digital se#ara luas. rtin$a adala", sesuatu $ang akan dikerjakan ole"
25
mi#roprosessor "arus dalam bentuk sin$al sin$al digital dalam )ormat urutan bit bit $ang di namakan bit data. Mi#roprosessor tidak mengola" bit-bit se#ara satu persatu melainkan sekaligus dalam )ormat b$teQ ataupun ordQ. B$te adala" kumpulan dari 8 bua" bit sedangkan ord adala" kumpulan dari 1; bua" bit atau kumpulan / bua" b$te. Mi#roprosessor $ang lebi" baru dapat mengola" data dalam )ormat 4/ bit atau / ord. 6"usus mi#roprosessor
8085 mengola" data dalam )ormat b$te. *alam
tugasn$a b$te $ang akan diola" di tempatkan pada register-register
untuk
membantu pemrosesan data. Untuk lebi" mendekati artin$a, sebua" register dapat disamakan dengan sebua" &ariable. 'entu saja sebua" register berada dalam #"ip mi#roprosessor tersebut. *alam penjelasan sebelumn$a kita menjelaskan register mikroprosesor 8085 menga#u pada operasi data internal. In)ormasi $ang sama diulang di sini se#ara singkat untuk memberikan kesinambungan dan konteks ke set instruksi dan memungkinkan pemba#a $ang lebi" memili" untuk )okus aaln$a pada aspek pemrograman mikroprosesor. Model pemrograman 8085 meliputi enam register, satu akumulator, dan satu register bendera, seperti $ang ditunjukkan pada Dambar /.1. %elain itu, memiliki dua 1;-bit register+ sta#k pointer dan program #ounter. Mereka digambarkan se#ara singkat sebagai berikut.
Dambar /.1 Model Pemograman 8085 Regis#er
26
Mi#roprosessor 8085 dalam pemrogamann$a menggunakan 11 bua" register $aitu
register , B, C, *, :, <, , M, 7, PC, dan register %P.
Mikroprosesor 8085 memiliki enam register umum untuk men$impan data 8-bit, dan diidenti)ikasi sebagai B, C, *, :, <, dan seperti $ang ditunjukkan pada gambar /.1. egister "ingga register 7 (di lambangkan dengan sebua" "uru) dalam register 8 bit, sedangkan register PC dan register %P adala" register 1; bit!. egister 8 bit dapat dijadikan register 1; bit dengan #ara men$atukan / bua" register 8 bit $ang bersesuaian. Programmer dapat menggunakan register ini untuk men$impan atau men$alin data ke dalam register dengan menggunakan instruksi #opi data. Pasangan register $ang bersesuaian itu adala" + 1. egister dengan register 7 $ang disebut dengan register P%G ( program status ord !. /. egister B dengan register C 4. egister * dengan register : . egister < dengan register Pasangan register ini dalam sebutann$a "an$a menggunakan nama register B, * dan <. Conto"n$a dalam perinta" EI <, @000 dimaksudkan mengisi register < dengan angka @0" dan dengan 00" untuk menunjukkan alamat @000" di memori. egister 8 bit selalu di pakai untuk menempatkan data
8 bit $ang akan
diproses, begitu juga "aln$a dengan pasangan register digunakan untuk menempatkan data 1; bit $ang akan diproses. 6arena pasangan register adala" gabungan dari / bua" register maka data 1; bit $ang di simpan pada pasangan register ini dapat di ola" se#ara 8 bit-8bit. Aku!ula#or kumulator adala" sebua" register 8-bit $ang merupakan bagian dari
aritmatikalogika unit (U!, register ini digunakan untuk men$impan data 8-bit $ang akan dioperasikan se#ara
aritmatika dan logika pada unit U.
operasi disimpan dalam akumulator. egister atau disebut juga sebagai a##umulator di karenakan di register inila" tempat berlangsungn$a proses aritmatika dan logika, juga merupakan pusat pengola"an data. Peminda"an data dari register ke memor$ "arus melalui register ini juga kebalikann$a dan dari
27
memor$ ke memor$ juga "arus melalui register ini. Begitu pula dari port inputoutput "arus melalui register ini da"ulu. Perinta" logika seperti A reg, AI data, 9 reg, 9I data, E reg, EI data, , C, dan perinta" aritmatika ** reg, *C reg, *I data, %UB reg, %UI data, CMP reg serta CPI data, semua perinta"-perinta" tersebut di laksanakn di register (artin$a "asil dari perinta" tersebut juga di letakkan di register !. Regis#er B" " D" E" 4 an < egister-register ini digunakan untuk
pemakaian umum sebagai tempat
men$impan data 8 bit atau sebagai &ariable 8 bit. Pengisian data 8 bit di lakukan pada perinta" M>I reg, data. Pengisian data 1; bit di lakukan melalui pasangan register dengan perinta" EI preg, data. Preg adala" pasangan register dengan "an$a menuliskan register pertamann$a saja dan data $ang di masukkan adala" data 1; bit ( angka "eksa!. Conto" + M>I B, /0 mengisi reg. B dengan data /0 < atau B N /0 < EI B, /000 mengisi pasangan register BC dengan data /000 < atau M>I , 0 EI <, 8000
reg. B N/0 dan reg.C N 00 reg N 0 (setiap data adala" "eksadesimal! reg < N 80 dan reg N00
Regis#er M :Me!ori; egister ini disebut register memori karena ia berisi data $ang terletak di
memori $ang alamatn$a di tunjukan ole" pasangan register <. Conto" + EI <, 8000 menggunakan pasangan reg. < sebagai penunjuk M9> , M
alamat memori 8000 mengisi reg. dengan data $ang ada di memori
M>I M, 0"
8000 atau reg, X M (<! atau reg, X M (8000! mengisi memori $ang alamatn$a ditunjukan ole" pasangan reg. < $aitu 8000" artin$a data pada memori 8000" adala" 0" dan di lambangkan
dengan s$mbol operasi (<! X 0" atau MX 0". %eperti di #onto"kan di atas, register M ini sebelum digunakan maka "arus mengisi pasangan register < terlebi" da"ulu sebagai penunjuk alamatn$a. Men$iapkan register atau pasangan register dengan mengisikan data terlebi" da"ulu sebelum nantinn$a akan dipakai diistila"kan sebagai proses inisialisasi atau persiapan. Inisialisasi sebaikn$a di laksanakan pada aal program.
28
Melalui reg. M ini maka proses peminda"an data atau register dengan memori dapat langsung tanpa melalui register , $aitu dengan perinta" M9> M, reg atau M9> reg, M dimana register disini adala" register 8 bit $ang datann$a akan diisikan ke memori atau register $ang akan diisi dengan data dari memori. Regis#er lags :Regis#er Benera; egister 7lag berisi status program $ang baru saja di laksanakan. egister
7lag meliputi + =ero (=!, Carr$ (C!, %ign (%!, Parit$ (P!, dan u3ilarr$ Carr$ (C!. Posisi bit mereka dalam register bendera ditunjukkan pada Dambar /./. b, S
b7 C
b
b( b* b' b1 b0 A P > Dambar /./ Posisi bit register 7lag 7lag sangat penting dalam proses pengambilan keputusan mikroprosesor.
6ondisi (set atau reset! dari bendera diuji melalui instruksi perangkat lunak. %ebagai #onto", instruksi C (ump i) Carr$! dilaksanakan untuk menguba" urutan dari program ketika C )lag diatur. Pema"aman men$eluru" bendera sangat penting dalam menulis program ba"asa assembl$. %tatus atau kondisi $ang diterangkan melalui register )lag din$atakan melalui kondisi bit-bit tertentu, $aitu+ $aitu polaritas suatu angka, apaka" data $ang baru saja diola" Sign$ adala" data negatip atau positip. %ign suatu data ditentukan ole" bit M%B-n$a (bit ke-8! dari data tersebut. Bila bit tersebut berlogika 1 berarti data tersebut negatip, bila nol berarti positip. Conto" + data Cero$
:7"Q adala" negatip dan @:"Q adala" positip. bit $ang menerangkan ba"a data "asil pelaksanaan suatu perinta" adala" 00Q (nol!. Bila bit ini bernilai 1 berarti data "asil adala"
00Q (nol! dan bila bernilai 0 berarti data tidak 00Q. Pari#%$ menerangkan jumla" bit data $ang bernilai 1 berjumla" genap atau ganjil. Bila bit-bit data memiliki nilai 1 $ang berjumla" ganjil maka bit parit$ ini akan direset menjadi 0 dan bila jumla" bit data $ang bernilai 1 adala" genap maka bit parit$ akan diset 1. Conto" + @7Q adala" data dengan parit$ ganjil 47Q adala" data dengan parit$ genap 0Q adala" data dengan parit$ ganjil Au2iliar% /arr% a#au hal& /arr%$ adala" bit $ang menunjukan terjadin$a #arr$ dari "asil penjumla"an bit ke4 pada a##umulator dengan bit ke-4 data lainn$a. 29
on#oh $ M>I , 08 *I 88
:D. *ata
program singkat ini adala" menjumla"kan a##umulator dengan data 88, prosesn$a+ 0000 1000 N 1000 1000 N 1001 0000 N menunjukkan adann$a #arr$ dari "asil penjumla"an
08 < 88 < ?0 < bit ke-4
dari kedua data tersebut $ang di sebut dengan "al) #arr$ atau au3iliar$ #arr$. arr% a#au borro$ bit pada reg. )lag $ang menunjukkan in)ormasi adan$a bit simpanan (#arr$! atau terjadin$a bit pinjaman (borro! dari "asil pelaksanaan suatu perinta" aritmatika. %eperti biasann$a bit #arr$ ini di anggap berada sebela" kiri data (di kiri bit M%B!. adi bit #arr$ atau borro ini di anggap sebagai bit ke-? dari suatu data "asil. Conto" + M>I , 77 reg. N 1 1111 1111 N 77 < *I 01 data N 0000 0001 N 01 < I , 00 reg . N 1 0000 0000 N 00 < %UI 01 data N 0000 0001 N 01 <
1 atau data "asil adala"
bilangan negatip dan juga paritin$a genap. 6e-5 kondisi $ang di jelaskan di atas di tunjukkan ole" reg. 7lag melalui kondisi bit-bit n$a $ang tela" di tentukan. %etiap kondisi di jelaskan melalui sebua" bit, "al ini berarti ada 5 bit $ang digunakan pada reg. )lag sedangkan 4 bit lainn$a tidak berguna atau dapat di abaikan. Bit-bit $ang di abaikan ini bisa saja ber"arga 1 atau 0 se"ingga data reg. )lag ini bisa beruba"-uba" akibat peruba"an bit-bit $ang tak berguna. 'etapi register )lag tidakla" sama dengan register $ang lainn$a. egister ini tidak di gunakan untuk men$impan data ole" pemrogram atau tidak bisa dan tidak bole" di jadikan sebagai sebua" &ariable seperti la$akn$a register-register lainn$a. egister )lag "an$ala" sebagai indikasi kepada kita bagaimana status jalann$a suatu pengola"an data se#ara digital. Ba"kan register
30
)lag ini tidak perna" di pakai dalam pembuatan pemrograman, melainkan sebagai ba$angan latar belakang untuk dapat lebi" mema"ami jalann$a suatu program. *engan #onto"-#onto" program pada pemakaian perinta"-perinta" pemrogram kelak anda akan lebi" mema"ami mengapa register )lag ini disebut sangat penting tetapi tidak perna" di gunakan saat kita menulis program. Pemam)aatan in)ormasi $ang ditunjukkan ole" register )lag ini adala" langsung dalam bentuk perinta"-perinta" bers$arat dimana s$arat-s$arat $ang diminta adala" status $ang di tunjukkan ole" bit-bit $ang 5 tadinn$a. Beberapa perinta" bers$arat $ang tergantung kepada bit-bit status $ang berada pada register )lag adala"+ Bi# S#a#us
%IDA
=:9
PI'
C
Perin#ah
Penjelasan
:!ne!oni/ ; M lamat
melompat kesuatu alamat program bila bit signN
P lamat CM lamat M P = lamat A= lamat C= lamat CA= lamat = A= : lamat 9 lamat C9 lamat C: lamat :
1 (minusnegatip! bila bit signN 0 ( positip ! memanggil subrutin bila sign N 0 kembali ke program pemanggil bila signN 1 kembali bila data positip melompat ke alamat bila data N 00 (=N1! melompat bila bit data Y 00 (=N0! memanggil subrutin bila data N 00 memanggil subrutin bila data Y 00 kembali kepemanggil bila data N 00 kembali bila data Y 00 melompat bila parit$ data genap melompat bila parit$ data ganjil memanggil subrutin bila parit$ data adala" ganjil memanggil subrutin bila parit$ data adala" genap kembali ke pemanggil bila parit$ data adala"
9 C lamat AC lamat CC lamat CAC lamat C AC
genap kembali bila parit$ ganjil melompat bila terjadi #arr$ melompat bila tidak ada #arr$ memanggil subrutin bila ada #arr$ memanggil subrutin bila tidak terjadi #arr$ kembali keprogram pemanggil bila terjadi #arr$ 6embali ke program pemanggil bila tidak terjadi #arr$
Regis#er Progra! oun#er :P; egister 1;-bit ini berkaitan dengan urutan eksekusi instruksi. egister ini
adala" pointer memori. okasi memori memiliki 1;-bit alamat, dan itula"
31
sebabn$a disebut register 1;-bit. Mikroprosesor menggunakan register ini untuk urutan pelaksanaan instruksi. 7ungsi dari program #ounter adala" untuk menunjuk ke alamat memori dari mana b$te berikutn$a $ang akan diambil. 6etika b$te (kode mesin! sedang diambil, program #ounter bertamba" satu untuk menunjuk ke lokasi memori berikutn$a. egister ini berisi alamat program $ang akan di jalankan mulai dari 0000 < sampai 7777 < atau memiliki 1; bit data untuk menunjukkan suatu alamat memori. 6erjann$a register ini lebi" jelas bila kita menggunakan menu step. %etela" melaksanakan suatu baris program isi register PC menunjukkan alamat baris program berikutn$a $ang akan di laksanakan. Pada pelaksanaan perinta" panggilan (perinta" C bers$arat atau tidak! maka isi register PC disimpan di sta#k (memori $ang di tunjukkan register %P! se"ingga isi register %P akan berkurang /, karena isi reg. PC $ang 1; bit membutu"kan dua memori untuk men$impann$a. 6emudian nantinn$a saat perinta" kembali (perinta" :' bers$arat ataupun tidak! maka isi register PC $ang disimpan tadi di sta#k akan di kembalikan se"ingga setela" melaksanakan perinta" :' tersebut maka program pemanggiln$a (baris di baa" perinta" C $ang memanggil subrutin itu sebelumnn$a! dan "arga register %P akan kembali lagi seperti sebelum perinta" C itu dijalankan. S#a/k Poin#er :SP; %ta#k pointer juga merupakan register 1;-bit digunakan sebagai pointer
memori. Ini menunjuk ke sebua" lokasi memori dalam G memori, $ang disebut sta#k. al dari sta#k adala" dide)inisikan dengan memuat 1;-bit alamat dalam sta#k pointer. Ini model pemrograman $ang digunakan untuk memeriksa bagaimana register terpengaru" setela" eksekusi instruksi. %ebagai register penunjuk alamat tumpukan (arti bebas dari sta#k pointer! adala" menunjukan alamat memori dimana suatu data dapat di simpan se#ara beurutan dari memori $ang tertinggi "ingga ke renda" (menumpuk data!. 'entu saja dapat diambil kembali bila diperlukan. egister %P ini "an$ala" menunjukan alamat memori pen$impan $ang tela" ditentukan ole" program set-up pada saat komputer di"idupkan. egister ini sebenarnn$a k"usus di pakai pada perinta" PU%< register dan P9P register dimana register $ang dimaksudkan adala" pasangan register. Untuk pemakaian PU%< dan P9P ini sebenarn$a kita tidak perlu mengeta"ui dimana
32
atau kemana data akan di simpan atau di tumpuk ole" program atau berapa "arga register %P ini. Prinsip tumpukan disini disebut I79 (last in )irst out! maksudn$a data $ang terak"ir disimpan merupakan data $ang pertama sekali akan terambil bila data-data tumpukan itu akan diambil. *e)ault "arga register %P ini ("arga $ang akan di tentukan sendiri ole" komputer pada saat pertama sekali di "idupkan! diletakkan pada alamat memori tertinggi karena prinsip bekerjann$a adala" meng"itung turun. rtin$a semakin ban$ak data $ang di simpan di memori sta#k ini maka "arga register %P ini akan semakin renda". '.' Moe Pengala!a#an :Aressing Moe; Instruksi M9> B, atau M>I , 8/< adala" untuk men$alin data dari
sumber ke tujuan. *alam instruksi ini sumber bisa register, port input, atau 8-bit data (00< untuk 77
ddressing
Mode
(Mode
Pengalamatan!.
Mode
Pengalamatan
mikroprosesor 8085 adala"+ 1. Immediate addressing Mode. /. egister addressing Mode. 4. egister Indire#t ddressing Mode . *ire#t addressing Mode. 5. Impli#it addressing Mode. '.'.1 I!!eia#e Aressing Moe *ata berada dalam instruksi. oad data langsung untuk tujuan $ang diberikan.
*alam "al ini jenis mode pengalamatan operand ditentukan dalam instruksi itu sendiri. Conto"+ M>I , data + oad data langsung ke register $ang dituju. '.'.'. Regis#er Aressing Moe *ata disediakan melalui register. Mode pengalamatan jenis ini, instruksi
menentukan nama dari register di mana data tersedia dan op#ode menentukan nama (atau! alamat dari register $ang operasi akan dilakukan. Conto"+ M9> , B 9p#ode adala" M9>. ika intruksi di atas dijalankan, isi egister B dipinda"kan ke register .
33
Conto" lain+ A B %UB < Pada eksekusi instruksi di atas isi dari register B di A* kan dengan isi register (akumulator!. ika kita mengeksekusi instruksi ini isi dari register < akan dikurangi dari isi akumulator. '.'.* Regis#er Inire/# Aressing Moe Ini adala" pengalamatan #ara tidak langsung. *alam mode ini instruksi
menentukan nama dari register di mana alamat data $ang tersedia. Conto"+ M9> , M %UB M *C M Per"atikan instruksi M9> , M. Instruksi ini akan meminda"kan isi dari lokasi memori, $ang alamatn$a dalam pasangan register < ke akumulator. M meakili lamat di pasangan register <. adi, ketika M9> , M dieksekusi, isi alamat $ang ditentukan dalam pasangan register < dipinda"kan ke akumulator.
< /0
05
18
okasi memori /00/< /004< /00< 18 /005<
'.'.( Dire/# Aressing Moe *alam mode ini, alamat data (operand! $ang ditentukan dalam instruksi.
da perbedaan $ang "alus antara mode pengalamatan langsung (*ire#t! dan mode pengalamatan segera (Immediate!. *alam mode pengalamatan immediate data itu sendiri ditetapkan dalam instruksi, tetapi dalam mode pengalamatan dire#t alamat data $ang ditentukan dalam instruksi. *igunakan untuk menerima data dari perangkat luar untuk disimpan dalam akumulator atau mengirim data $ang disimpan dalam akumulator ke perangkat
34
luar. Menerima data dari port 00<
(IA 00
akumulator atau mengirim data dari akumulator ke port 01< (9U' 01
melakukan operasi. Mereka beroperasi "an$a pada isi dari akumulator. Conto"+ CM CM #omplements isi akumulator. ika dieksekusi isi akumulator diputar ke kiri satu bit melalui #arr$ ika dieksekusi isi akumulator diputar ke kanan satu bit melalui #arr$. '.* ungsi Ins#ruksi6Perin#ah Perinta" $ang digunakan pada mikroprosessor 8085 ini #ukup ban$ak dan
#ukup sulit untuk meng"a)al seluru" perinta" tersebut satu-persatu. Aamun dengan mengelompokann$a kedalam )ungsi-)ungsi $ang bersamaan maka kita akan sangat tertolong untuk lebi" #epat mengenal setiap perinta". Bila perinta" perinta" dikelompokkan berdasarkan )ungsinn$a $ang bersamaan maka ada + 1. /. 4. . 5. ;. @.
'rans)er )un#tion ()ungsi peminda"an! Initial )un#tion ()ungsi pengisian! ogi# )un#tion ()ungsi logika! rit"matik )un#tion ()ungsi aritmatika! Inter#"ange )un#tion ()ungsi pertukaran! %etting )un#tion ()ungsi penetapan! umping )un#tion ()ungsi lompatan!
'.*.1 Trans&er un/#ion :perin#ah pe!inahan; ang dimaksudkan dengan peminda"an adala" mengisi suatu register atau
memori dengan suatu data $ang diambil dari tempat asaln$a tanpa menguba" data $ang berada di tempat asaln$a tersebut. Perinta"-perinta" $ang termasuk ke dalam kelompok ini adala" + M9> reg/, reg1 %' lamat
peminda"an data dari register 1 ke register / peminda"an isi reg. ke memori pada alamat $ang di
* lamat
tunjukan kebalikan perinta" %', $aitu meminda"kan data dari
35
%'E preg
memori $ang di tunjukan ke reg. sama "aln$a seperti %', "an$a saja alamat memorin$a tidak di tunjukan se#ara langsung melainkan di tunjukan ole" pasangan register $ang di tunjukan pada preg
*E preg
(pasangan register! meminda"kan data dari memori $ang di
IA P9'
pasangan register ke reg. mengambil data dari port $ang nomorn$a di tunjukan ke
9U' P9' <* lamat
reg. mengeluarkan data dari reg. ke port keluaran peminda"an data 1; bit dari memori $ang alamat
tunjukan
ditunjukkan ke pasangan register <. lamat $ang ditunjukkan akan mengisi reg. lalu alamat berikutn$a %<* lamat PU%< preg
akan mengisi reg. < kebalikan dari perinta" <*. men$impan isi pasangan register ke memori $ang alamat n$a ditunjukkan ole" reg.%P. isi register $ang di sebutkan akan disimpan di memori $ang ditunjukkan ole" reg.%P dikurangi
P9P preg
satu alamat,
ssedangkan
isi
pasangann$a
disimpan di baa"n$a. meminda"kan kembali data $ang tela" disimpan dengan perinta"
pus"
sebelumn$a
dan
meletakkan
kepada
pasangan register $ang ditunjukkan. %etela" perinta" P9P ini dilakasanakan maka reg.%P akan bertamba" / alamat. Per"atikan ba"a setela" perinta" pus" dijalankan maka alamat %P akan berkurang / "ingga setiap kali data disimpan maka data terus bertumpuk ke baa". alu bila perinta" P9P dijalankan maka alamat %P akan naik / terus dan data diambil mulai dari alamat baa". rtin$a adala" tidak mungkin terjadi tumpang tindi" pen$impanan karena setiap kali men$impan %P akan turun, begitu pula tidak akan perna" ada pengambilan data pada alamat $ang sama karena setiap pengambilan dengan perinta" P9P alamat %P bertamba" /. Conto" 1+
36
EI *,8000 K mengisi pasangan *: N 8000 M>I , 5? K mengisi reg , N 5? %'E * K sekarang memori pada 8000J N 5? EI B, ?000K mengisi pasangan BC N ?000 *E B K%ekarang isi reg. sama dengan isi memori ?000 IA 51 K mengambil data dari port 51 < M>I , @8 K mengisi reg. N @8 9ut 50 K mengeluarkan data@8 ke port keluaran 50 <. Conto" /+ M>I ,/; %' @000 M>I ,8? %' @001 <* @000 Conto" 4+ EI <, ;@8? %<* @000 Conto" + EI %P,700/ EI B,/05 PU%< B
K reg. N /; K memori @000 N /; ( M @000 N /; ! K reg. N8? K memori @001 N 8? ( M @001 N 8? ! K reg.< sekarang berisi 8? reg. berisi /; K reg.< N ;@ dan reg. NN 8? K M@000 N 8? dan M @001 N ;@ K mengisi reg. %P N 700/ K mengisi reg. B N /0 reg C N 5 K men$impan isi BC ke sta#k M7001 N /0 M 7000N 5
reg. %P sekarang N 7000 Praktekn$a dalam instruksi PU%< dan P9P, kita tidak perlu menetapkan isi register %P lagi karena program tela" menetapkan se#ara de)ault "arga %P pada memor$ $ang aman pada daera" tertinggi, se"ingga bila kita ingin men$impan data #ukup menggunakan perinta" pus" saja. Conto" 5+ EI %P, 010 K menetapkan alamat tumpukan aal EI B, 010/ K reg.B N01 reg.CN 0/ EI *, 040 K reg.* N04 reg.:N 0 EI <, 050; K reg.< N05 reg.N 0; PU%< B K M007 N 01 M00: N 0/ PU%< * K M00* N 04 M00C N 0 PU%< < K M00B N 05 M00 N 0; EI B, 0000 K menggosongkan isi register EI *, 0000 K B, C, *, :, < dan N 00 < EI <, 0000 P9P < Kmengembalikan data $ang disimpan di sta#k ke P9P * registern$a kembali. P9P B eg.B N 01 C N 0/ * N 04 : N 0
< N 05
N 0;
Per"atikan pada perinta" pus", isi pasangan register $ang disebut disimpan pada alamat %P-1, sedangkan isi pasangann$a pada %P-/ dan "arga %P akan
37
berkurang / dan terus berkurang /. i"at saja "arga register %P setela" perinta" PU%< terak"ir akan ber"arga 00 <. urutan pengambilan data ( perinta" P9P! terli"at terbalik urutan pasangann$a registern$a, kalau saat men$impan register BC ada pertama maka saat pengambilan maka register BC adala" terak"ir. Conto" ;+ EI %P 010 K alamat aal tumpukan PU%< B K M007 X reg B M00: X reg C PU%< * K M00* X reg * M00C X reg : P9P B K reg.B X M00* reg. C X M00C P9P * K reg.* X M007 reg. : X M00: Per"atikan #onto" ini ba"a pengambilan data disimpan ke pasangan register mana saja $ang kita
ke"endaki.
perinta" pus" dan pop untuk saling menukarkan dua bua" isi pasangan register dengan #ara seperti
#onto" di atas $aitu dengan menempatkan urutan
pen$impanan dan pengambilan $ang sama. ang penting li"atla" ba"a kita tidak perlu mengeta"ui "arga %P untuk men$impan
maupun mengambil data melainkan terus memper"atikan urutan
pen$impanan dan pengambilann$a. '.*.' ungsi Pengisian :Ini#ial un/#ion; 7ungsi pengisian adala" memasukkan suatu data se#ara langsung ke suatu
tempat, baik ke register ataupun ke memori. Prinsip data langsung ini dikenal sebagai Immediate $ang ditandai dengan "uru) I di ak"ir mnemoni# perinta". Conto"+ M>I reg, data + dimaksudkan untuk mengisi register dengan data 8 bit. EI preg, data + dimaksudkan untuk mengisi pasangan register dengan data 1; bit. '.*.* ungsi
berdasarkan bit-bit data se#ara terpisa", se"ingga dalam menganalisa perinta" ini kita "arus menguraikan data dalam bentuk biner. Conto"+ A reg+ Melakukan proses A* antara isi register dengan isi register 9I data+
$ang disebutkan. Melakukan proses 9 antara isi register dengan data 8 bit $ang
E reg+
disebutkan. Melakukan proses :E9 antara register dengan isi register $ang disebutkan.
38
+
Menggeser isi register ke kanan 1 bit, bit %B akan dimasukkan ke #arr$ sedangkan isi #arr$ $ang sebelumn$a dimasukkan ke bit M%B.
'.*.(.Ari#h!a#i/ un/#ion :ungsi Ari#!a#ika; 7ungsi aritmatika $ang dimiliki ole" mikroprosessor 8085 ini "an$ala" proses
penjumla"an
dan
pengurangan,
tetapi
memiliki
beberapa
#ara
dalam
pelaksanaann$a. Perinta"-perinta" $ang termasuk ke dalam kelompok ini adala" + menjumla"kan isi reg, dengan isi register $ang disebutkan.
AD regK
penjumla"an akan disimpan kembali ke reg.. Conto"+ M>I , 05 M>I B, @4 ** B K 05 @4 N @8 reg . N @8 M>I C,8@ ** C K @8 8@ N 77 reg. N 77 menjumla"kan isi reg. dengan isi register $ang disebutkan dan menjumla"kann$a lagi dengan bit #arr$ sebelum perinta" ini
SBB regK
dijalankan. #onto" + %'C K set #arr$ N 1 M>I , 05 M>I B, @4 *C B K 05 @4 1 N @? reg. N @? C$ N 0 M>I C, 8@ *C C K @? 8@ 0 N 00 reg. N 00 C$ N 1 menjumla"kan isi reg. dengan data 8 bit $ang disebutkan. Conto"+ M>I , 0@ *I /4 K 0@ /4 N / reg. N / mengurangi reg dengan isi register $ang disebutkan. Conto"+ M>I , /4 M>I *, 0 %UB * K /4 O 0 N 1 7 reg N 1 7 mengurangi reg dengan isi register $ang disebutkan dan
S9I a#aK
dikurangi lagi dengan bit #arr$ sebelum perinta" ini dilaksanakan. Conto" + %'C M>I , /@ M>I :, /@ %BB : K /@ O /@-1 N 77 reg . N 77 C$ N 1 mengurangi isi reg. dengan data 8 bit dan meletakkan "asiln$a
ADI a#aK
S9B regK
kembali ke reg.
39
Conto"+ M>I , 0@ %UI 08
K
0@
O
08
N
77
reg N 77 C$ N 1 mengurangi isi reg dengan data 8 bit dan mengurangin$a lagi SBI a#aK dengan bit #arr$ sebelumn$a Conto" + %'C M>I , 0@ %BI 08 K 0@
O
08
O
1
N
7:
reg N 7: C$ N 1 I?R regK menamba"kan isi register $ang disebutkan dengan 1 dan meletakkann$a kembali ke register tersebut. Conto" + M>I B, 88 IA B K 88
1
N
8?
reg. B N 8? mengurangi isi register $ang disebutkan dengan 1 DR regK Conto" + M>I C, 00 *C C K 00 O 1 N 77 reg.C N 77 menjumla"kan isi pasangan register $ang disebutkan dengan isi DAD regK pasangan register < dan meletakkan "asiln$a ke pasangan register
I? regK
D regK
MP regK
<. Conto" + EI <, /0/8 EI B, 04/1 ** B K /0/8 04/1 N /4?< reg. < N /4? menamba"kan isi pasangan register $ang disebutkan dengan 1. Conto" + EI B, 8000 IAE B K reg BC N 8000 1 N 8001 mengurangi isi pasangan register $ang disebutkan dengan 1. Conto" + EI *, ?0;@ *CE * K reg. *: N ?0;@ O 1 N ?0;; membandingkan isi reg. dengan isi register $ang disebutkan. 6arena "an$a membandingkan maka isi reg. ataupun isi register bandingann$a tidak mengalami peruba"an isidatan$a. Perinta" ini "an$a mempengaru"i bit-bit status pada reg. 7lag dan untuk dipakai bersama perinta"-perinta" bers$arat. Proses perbandingan
40
$ang dilakukan sama dengan proses pengurangan pada perinta" %UB reg. Conto" + M>I , 04 M>I B, 01 M>I C, 0 M>I *, 04 CMP B
K 04 O 01 N 0/ +kondisi bit status )lag+ %ignN0 (positip !, 2eroN0 (tidak nol !, parit$N0 (ganjil!, #arr$ + 0 CMP C K 04 O 0 N77+kondisi bit status )lag+ sign + 1 ( negati) ! 2ero + 0 parit$ + 1 (ganjil ! #arr$ + 1 (pinjaman! CMP * K 04 O 04 N 00 sign + 0 (positip ! 2ero + 1 ( "asil N 0 ! parit$ + 0(genap ! #arr$ + 0 membandingkan isi reg. dengan data 8 bit $ang disebutkan. PI a#aK Conto" + M>I , 04 CPI 01 K"asil sama dengan #onto" perinta" CMP reg di atas CPI 0 CPI 04 Perinta" CMP reg dan CPI data selalu digunakan diikuti dengan perinta" bers$arat seperti $ang dijelaskan pada pemba"asan register 7lag. '.*. ungsi Per#ukaran :E2/hange un/#ion; Pertukaran di maksudkan sebagai peminda"an data dari tempat pertama ke
tempat ke dua sedangkan data di tempat dua dipinda"kan ketempat pertama. 7ungsi pertukaran ditunjukkan untuk pertukaran isi register 1; bit dengan register 1; bit lainn$a. Perinta"-perinta" $ang termasuk kedalam kelompok ini adala"+ pertukaran isi antara pasangan reg.< dengan :D.*: 43K Conto"+ EI *, 80?0 EI <,0B0 EC
keadaan
atau "arga $ang di inginkan. Perinta" $ang termasuk kelompok ini
adala"+ ST :Se# arr%; K
41
%et bit Carr$ menjadi 1. *engan perinta" ini kita bias memastikan ba"a Carr$ sekarang ini adala" 1. Perinta" ini tela" kita li"at pada pemakaian sebelumn$a. M :o!ple!en arr%; + *igunakan untuk meng-in&erskan bit #arr$ sebelumn$a. Perinta" ini digunakan setela" perinta" %'C untuk memastikan ba"a Bit #arr$ adala" 0 (nol!. MA :o!ple!en A//u!ula#or!+ *igunakan untuk meng-in&ers-kan bit-bit reg. Conto"+ M>I ,;@ CM
Kin&ers 8 bit reg. menjadi reg. N ?8
DI :Disable In#erup#;+ Perinta" $ang bertujuan untuk men$uru" perangkat keras agar tidak
memperdulikan setiap unterrupt $ang datang selama perinta" ini tela" di laksanakan "ingga di jumpai perinta" :I EI :E?AB
program lainn$a $ang alamat program ali"ann$a disebutkan dengan perinta" )ungsi lompatan atau tela" di tetapkan sesuai aturan. Pengali"an program dari jalurn$a di sebabkan karena 4 "al, $aitu+ 1. Mengulang kembali menjalankan baris program $ang tela" dijalankan sebelumn$a /. Meleati daera" program $ang tak di inginkan 4. Menjalankan program bagian (subrutin! *ua "al pertama di laksanakan ole" perinta" MP alamat sedangkan "al $ang terak"ir $ang lebi" tepat di sebut panggilan karena si)atn$a sebagai sisipan $ang berarti setela" melaksanakan program bagian maka jalann$a program akan kembali ke program utama, perinta" $ang di pakai adala" #all alamatQ
42
6edua perinta" MPQdanQCQini terdiri dari dua bagian $aitu $ang tak bers$arat
dan
bers$arat.
%uda"
pasti
perinta"-perinta"
bers$arat
selalu
ber"ubungan dengan status $ang di miliki ole" reg.7lag. Perinta" bers$arat ini tela" disebutkan pada pemba"asan tentang reg.)lag. Perinta" tak bers$arat tersebut adala"+ MP A
selanjutn$a program akan menjalankan baris program $ang alamatn$a disebutkan pada perinta
Conto"+ MP @01/ A<< ala!a#+
+menjalankan baris program pada alamat aal @01/ memanggil program bagian $ang beralamat aal seperti $ang
diberikan. Conto"+ A<< OA +men$isipkan program bagian $ang berada pada alamat aal 977 (program pada 977 adala" program *ela$! RET
+perinta" $ang digunakan
untuk kembali ke program utama. Perinta"
kembali ini tidak memerlukan petunjuk alamat karena se#ara otomatis akan kembali ke baris program di baa" baris program pemanggiln$a pada program utama.
maka program bagian akan dijalankan pada ak"ir
program bagian saat perinta" kembali (:'! dijalankan maka isi reg PC $ang di simpan di sta#k (tumpukan! akan dikembalikan. Isi reg PC ini menunjukkan alamat baris perinta" di baa" perinta" panggilan tadin$a. 6etiga perinta" di atas adala" perinta" pengali" jalann$a program $ang tidak memerlukan s$arat apapun dalam pelaksanaann$a. Cara bekerja perinta" bers$arat ataupun tidak "an$a dibedakan ole" pemakaian kondisi status. alann$a pelaksanaan perinta" tetap sama. '.*.) 9?3SI KE
Coded *e#imal!. Perinta" ini digunakan bersama pada perinta" aritmatika $ang ditujukan untuk memproses data dalam bentuk de#imal bukan "eksa de#imal. Conto"+
43
M>I , 1B *
K eg. N 1B Kngka 1B "eksadesimal menjadi /1 BC*. B(
'.( on#oh Misaln$a, setela" penamba"an dua angka, jika jumla" di akumulator lebi"
besar dari delapan bit, )lip-)lop menggunakan indikasi #arr$ $ang disebut bendera Carr$ (C! diset menjadi 1. 6etika "asil operasi aritmatika adala" nol, maka =ero (=! )lag diatur ke satu. Dambar pertama menunjukkan sebua" register 8-bit, $ang disebut register bendera, berdekatan dengan akumulator. Aamun, tidak digunakan sebagai register. ima posisi bit dari delapan bit $ang digunakan untuk men$impan output )lip-)lop. Bendera disimpan dalam 8-bit register, se"ingga programmer dapat memeriksa )lag-)lag ini (kondisi data! dengan mengakses register melalui instruksi. Mari kita memba"as dengan sebua" #onto" Immediate ddressing Mode.. Per"atikan instruksi ini+ *I 4< Instruksi ini menamba"kan data langsung, 4< ke akumulator. 4< adala" data, < merupakan nilai
register $aitu register , B, C, *, :, <, , M, 7, PC, dan register %P. /. Mode Pengalamatan mikroprosesor 8085 adala"+ a. Immediate addressing Mode. b. egister addressing Mode. #. egister Indire#t ddressing Mode d. *ire#t addressing Mode. e. Impli#it addressing Mode. 4. 7ungsi intruksi+ a. b.
'rans)er )un#tion ()ungsi peminda"an! Initial )un#tion ()ungsi pengisian!
44
#. d. e. ). g.
ogi# )un#tion ()ungsi logika! rit"matik )un#tion ()ungsi aritmatika! Inter#"ange )un#tion ()ungsi pertukaran! %etting )un#tion ()ungsi penetapan! umping )un#tion ()ungsi lompatan!
'.7 Per#an%aan 1. elaskan arti instruksi %' /000< /. elaskan arti instruksi *E *, jelaskan mode pengalamatann$a. 4. elaskan arti perinta" berikut ini+ M>I , /@ *I 4; *
BAB III TEK?IK PE?9
program, teknik bekerja dalam memori, peran )lag register, program tetap dan tidak tetap, teknik pen$aringan data, program bagian, program dela$ dan program menggunakan tabel. %ebagian besar dari pemrograman adala" intuisi dan kreati&itas. %eringkali terjadi beberapa ruang memori terbatas dan menginginkan ke#epatan $ang lebi" tinggi, akan sulit untuk mengoptimasikan semua parametern$a. %ebelum mengenal program sangat penting untuk mengeta"ui kondisi ini pertama kali $aitu menganalisa masala" sebelum memulain$a. Tujuan Khusus
45
Ma"asisa mampu menerapkan perangkat programmer seperti )lo#"art dan instruksi set 8085 pada program sesunggu"n$a untuk membuat sebua" program $ang dapat men$elesaikan masala" dengan pemrograman seder"ana. *.1 Tahapan Penulisan Progra! %e#ara k"usus sebua" program diartikan sebagai suatu kesatuan dari urutan
perinta"Operinta" $ang disusun sedemikian rupa untuk meujudkan )ungsin$a. Masala"n$a adala" perinta" apa $ang akan pertama sekali ditulis atau kita "arus memulai dari mana dalam men$usun program untuk meme#a"kan masala" kita . %e#ara umum ada 4 ta"ap untuk pembuatanmen$usun program + 1. Pen$usunan lgoritma /. Pembuatan 7lo#"art 4. Pembuatan program (baris program! %ebua" program $ang utu" dapat dibagi menjadi 4 bagian $aitu bagian inisialisasi, inti program dan pen$elesaian. Inisialisasi $aitu, barisObaris program $ang mempersiapkan segala register $ang akan digunakan, juga data atau memori $ang akan digunakan bila diperlukan. Bagian ini men#akup barisObaris aal program dan menggunakan perinta"Operinta" pada kelompok pengisian (inisial! dan kelompok peminda"an. In#i progra! adala" bagian plaksanaan proses pengola"an data. Pada bagian inila" $ang menunjukkan )ungsi program tersebut. Bagian ini meman)aatkan data pada bagian inisialisasi.penguba"an bagian ini akan menguba" )ungsi keseluru"an program, sedangkan penguba"an bagian inisialisasi "an$ala" masala" data bukan proses. Misaln$a suatu program penjumla"an tidak akan beruba" )ungsin$a bila kita "an$a mengganti dataOdata $ang
akan dijumla"kan.
Bagian ketiga,
pen%elesaian progra!
adala"
peman)aatan "asil proses ke bagian $ang diinginkan, misaln$a apaka" akan disimpan ke memori atauka" di register $ang ditentukan lalu program di"entikan. Bagian inisialisasi, persiapan register, data atau memori saat program bekerja. ,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Program pengola"an data, pelaksanaan program seperti $ang diinginkan.
+++++++++++++++++++++++++++ +++++++++++++++++++++++++++
)ungsi
Pen$impanan "asil ke register atau memori lalu meng"entikan program.
*.1.1 Pe!bua#an Algori#!a
46
Berikut adala" lgoritma program penjumla"an data 8 bit se#ara desimal. *ata diletakkan pada egister B dan egister C dan "asil penjumla"an diletakkan di egister *. Algori#!a $ 1. /. 4. . 5. ;.
Mengisi eg. B dan eg.C dengan data $ang akan dijumla"kan. Meminda"kan eg. B ke eg. Menjumla"kan eg. dengan eg. C Menguba" "asil ke bentuk desimal Men$impan "asil ke eg.* %elesai
*ari algoritma di atas, baris ke-1 dan ke-/ adala" proses inisialisasi, lalu baris ke-4 dan ke- adala" inti program, baris ke-5 dan ke-; adala" ta"ap pen$elesaian. Berikut ini #onto" lainn$a sebua" algoritma $ang meng"itung ban$akn$a data ganjil pada memori ?000 "ingga memori ?010.
Pengisian alamat aal memori ke penunjuk egister M Mengisi egister C N 11 untuk ban$ak data dari ?000 sampai ?010 dan
egister * N 00 sebagai register peng"itung. 4. Mengambil data dari penunjuk egister M . Deser egister ke kanan se"ingga bit %B masuk ke C 5. Bila Carr$ menjadi 0 maka program melompat ke langka" @ ;. Aaikkan isi egister * 1 angka, data ganjil di "itung @. Aaikkan penunjuk egister M 1 alamat , untuk data berikutn$a 8. 6urangi egister C dengan 1, kurangi "itungan jumla" data sampai 00 ?. Bila egister C belum sampai 00 maka ulangi ke langka" 4 10. Program selesai dan "asil tela" berada di egister * Per"atikan baik-baik pen$usunan algoritma di atas, lompatan dari langka" ? ke langka" 4 menunjukkan ba"a langka" 4 termasuk ke bagian inti program. *.1.' Pe!bu#an Diagra! Alir lo/har# 7lo#"art program penjumla"an 8 bit algoritman$a di atas, ditunjukkan pada m-"ai
Dambar 4.1 di baa" ini+ . /ata 1 ! / ata 2 A / .
A /A !
A esima" / A hesa / A
se"esai
47
Dambar 4.1 7lo#"art program penjumla"an data 8 bit
7lo#"art pogram peng"itung ban$akn$a data bilangan ganjil $ang algoritman$a dijelaskan di depan. m-"ai
L 9000
!11 : 00
A / 'L L. !arr
tidak
! 1;
/ 1
tidak
L / L 1
! / !peng"itung 1 Dambar 4./ 7lo#"art program ban$akn$a data bilangan ganjil 7lo#"art $ang diterjema"kan sebagai diagram alir adala" suatu #ara $ang
mengelompokkan
bagian-bagian
program
dalam
beberapa
lambang
dan
< dengan 1; meng"ubungkan setiap lambang lambang lainn$a menggunakan tanda
48
se"esai
pana" dimana ara" pana" menunjukkan aliran jalann$a program. %etip lambang menunjukkan proses $ang dikerjakan ole" perinta"-perinta" se#ukupn$a. ambang dapat diisi dengan )ungsi $ang diterjema"kan. Pembuatan sebua" )lo#"art lebi" praktis dari pada pembutan sebua" lgoritma alaupun maksudn$a sama. *engan 7lo#"art aliran jalann$a program dapat lebi" jelas keli"atann$a se#ara utu". *.1.* Pe!bua#an Progra! :Progra!!ing; Untuk meujudkan sebua" program $ang diinginkan, selain kemampuan
pen$usunan algoritma dan )lo#"art maka kemampuan pema"aman perinta" $ang ada merupakan sala" satu s$arat $ang paling mutlak. Untuk pen$elesaian algoritma dan )lo#"art, pengeta"uan umum tentang perinta" suda" bisa men#ukupi tidak demikian "aln$a dengan pembuatan listing programn$a. Pada bagian ini kita di"aruskan mengerti benar setiap perinta" $ang kita gunakan $aitu meliputi )ungsi perinta", #ara kerjan$a dan "al-"al $ang di pengaru"i ole" perinta" tersebut. Conto" 1 + Perinta" 7ungsi Cara kerja 7ormat Pengaru"
*C reg mengurangi isi register dengan 1 mengurangi isi register dengan
1
dan
mengisikann$a kembali ke register tersebut. eg eg O 1 Pada 7lag 2ero dan isi register tersebut =N0 register masi" berisi =N1 register kosong (nol!
Conto" / + Perinta" 7ungsi
CMP eg membandingkan isi eg dengan register $ang
Cara kerja
disebutkan mengurangi isi eg dengan isi register $ang disebutkan, "asiln$a "an$ala" peruba"an status eg
7ormat Pengaru"
7lag. Isi kedua reg tidak beruba" eg O eg E ---------Z status 7lag tidak menguba" eg dan eg E, mempengaru"i
seluru" bit status eg. 7lag. Pengaru" suatu perinta" memang tidak begitu jelas pada saat pemograman dan penulisan listing program. 6en$ataan ini menimbulkan ba"a sebua" program tela" diperkirakan akan melakukan )ungsin$a dengan baik berdasarkan dengan urutan baris-barisn$a. Aamun pada ken$ataann$a saat diesksekusi atau
49
diloading ke mikroprosesor maka tejadi pen$impangan $ang tak diinginkan. Conto"n$a proses pengurangan antara nilai $ang ke#il dengan nilai $ang besar akan mempengaru"i nilai bilangan status Carr$ dan %ign. Biasan$a kita akan beranggapan ba"a "asil pengurangan pastila" minus atau negati). 'etapi anggapan ini sala", "asil tersebut bisa saja positi). Coba )ikirkan[ *engan membagi perinta" berdasarkan )ungsin$a seperti $ang dijelaskan dimuka maka kita akan lebi" muda" untuk menjumpai perinta" $ang kita perlukan. %eperti dijelaskan juga didepan ba"a bagian pertama suatu program adala" bagian persiapan atau inisialisasi, karenan$a kita bisa menggunakan perinta" inisialisasi pada baris pertama program. %ebelum berali" ke bagian proses maka kita "arus meli"at apaka" proses $ang kita kerjakan, logika atau aritmatika atau "an$a proses peminda"an biasa. Untuk proses pengujian, pada )lo#"art dilambangkan dengan bela" ketupat, maka kita "arus meli"at pada )ungsi UMPIAD $ang bers$arat. Pili" sala" satu $ang kita perlukan sesuai status $ang diinginkan. Untuk menutup program, kita menggunakan perinta" %' atau <'. Program ini akan meng"entikan program dan menampilkan seluru" kondisi register lalu siap menerima perinta" menu utama. Bila kita tidak ingin meli"at penampilan kondisi seluru" register setela" program selesai maka kita dapat menggunakan perinta" MP 050 menggantikan perinta" %'.
Conto" program penjumla"an desimal 8 bit. A9. 1 / 4 5 ; @
Mnemoni#s M>I B, data1 M>I C, data/ M9> , B ** C * M9> *, %'
P:A:%A Pemasukan data $ang akan dijumla"kan %ala" satu data "arus dipinda"kan ke eg Baru dilakukan penjumla"an Menguba" kedalam )ormat desimal Peminda"an "asil ke tempatn$a (eg. *! %elesai. Meli"at "asil pada seluru" register.
Berikut ini program peng"itung ban$akn$a bilangan ganjil+ B:
Ulang
MA:M9AIC EI <, ?000" M>I C,10" M>I *, 00 M9> , M
P:A:%A Persiapan alamat aal blok memori Ban$akn$a alamat data %et aal peng"itung data ganjil mbil data $ang akan diuji ke eg. Pinda"kan Bit %B datab ke Carr$
50
lompat
AC lompat IA * IA *C C A= ulang %'
Bila C$ N 0 berarti datan$a genap dan tak di"itung tetapi bila C$ N1 data di"itung Menaikkan penunjuk alamat berikutn$a paka" data masi" adaW 6alau masi" ada ulangi kembali pengujian data ganjil Bila data seluru"n$a tela" diuji maka program di"entikan
Untuk tamba"an per"atikan bentuk listing programn$a. Pada #onto" pertama listing menggunakan nomor urut sedangkan pada #onto" kedua menggunakan nomor B:. 'entang nomor urut anda suda" mengeta"uin$a, sedangkan B: adala" pen$ebutan
alamat baris
program
untuk
lebi"
muda"
mengingatn$a. Perinta" AC lompatF berarti lompat kealamat baris program $ang ditandai dengan tulisan lompatF bila tidak terjadi Carr$ atau C$ N 0. Bagi progamer pemula sebenarn$a kebenaran program bukanla" satu-satun$a tujuan tetapi dapat menjelaskan alur jalann$a program dan maksud setiap baris program dengan benar. Ba"kan sa$a selalu mengeta"ui sesuatu $ang baru pada saat program $ang sa$a buat tidak berjalan dengan baik, dan memang inila" naman$a pengalaman. %esorang progammer adala" orang $ang mema"ami teoritis dan #ukup ban$ak membuat dan menjalankan program buatann$a sendiri untuk mendapatkan pengalaman. *.' Teknik Bekerja Dala! Blok Me!ori %ebua" mikroprosesor tidakla" memiliki arti tanpa adan$a dukungan
perangkat memori. Memori adala" s$arat utama untuk meman)aatkan kepintaran mikroprosesor. Mikroprosesor selalu identik dengan so)tare atau pemrograman, sedangkan
so)tare
butu"
tempat
pen$impan,
karenan$a
memori
sebagaiperangkat pen$impan seeola"-ola" menjadi satu dengan mikroprosesor. Galaupun pada mikroprosesor se#ara internal memiliki memori-memori pen$impan data $ang dikenal sebagai register, namun sebenarn$a register tidak ditujukan untuk men$impan data tetapi "an$a sebagai tempat data sementara $ang membantu dalam melaksanakan kerjan$a. 6ebutu"an akan perangkat memori adala" "al $ang ajib karena memang didesain "arus bekerja dengan perangkat tersebut.
51
mikroprosesor menunjukkan sala" satu kelebi"ann$a, dan ini ditentukan ole" ban$akn$a pin ddress $ang dimiliki ole" P tersebut. Conto"n$a, sebua" #"ip P 8085 memiliki 1; pin ddress atau disebut juga 1; bit address, ini sama dengan / b$te (1 b$teN8 bit!. Ini menerangkan ba"a P 8085 dapat memproses memori seban$ak / 1; (dua pangkat enam belas! memori. %atu kilo dalam bilangan biner adala" / 1; 3 / 10 sama dengan ; kilo memori. Bila sebua" memori berisi bit-bit data $ang pada P 8085 menggunakan 8 bit data atau 1 b$te, maka jumla" total seluru" memori $ang bias diproses P 8085 adala" ; 6b$te. Misalkan / 6b$te memori menggunakan :P9M sedangkan sisan$a sebesar 0 6b$te memori menggunakan M, maka kita "an$a bisa bekerja menulis program pada memori M saja $ang sebesar 0 6b$te ini. Pada trainer set Midi#om, memori :P9M diletakkan pada memori terbaa" $aitu mulai alamat 0000 sampai 5777 sedangkan memori M dimulai pada alamat ;000 sampai 7777. Per"atikan jumla" dari ;000 sampai 7777 dapat dibagi menjadi 10 bagian $aitu ;000-;777, @000-@777, 8000-8777, ?000-?7777, 000777, B000-B777, C000-C777, *000-*777, :000-:777dan memori 70007777, setiap bagian terpisa" 1000 < b$te. Bila kita tulis 1000 < dalam )ormat biner$ maka menjadi 1 0000 0000 0000B atau sama dengan / 1/ b$te atau menjadi kb$te memori. adi jelasla" sekarang ba"a memori dari ;000 sampai 7777 berjumla" 0 kb$te. Untuk memproses memori atau data $ang dimiliki ole" memori dikenal / #ara $aitu #ara langsung dan tidak langsung. Cara langsung $aitu menggunakan perinta" $ang meng"aruskan kita menuliskan alamat memori $ang akan kita proses. Perinta" $ang umum digunakan adala" * alamatF dan %' alamatF. %edangkan #ara tidak langsung $aitu menggunakan pasangan register untuk menunjukkan alamat memori $ang akan diproses. Perinta" $ang umum digunakan adala" EI reg, *E reg, dan %'E reg serta perinta" peminda"an $ang menggunakan register M. Conto" + Mengisi blok alamat 8000 sampai 8005 dengan data 00 < (mengosongkan memori!. angsung+ M>I ,00 %' 8000 %' 8001 %' 800/
'ak langsung+ M>I B, 0; EI <, 8000 M>I , 00 M9> M,
52
%' 8004 IAE < %' 800 *C B %' 8005 A= %'1 %' 1 %epintas #ara langsung terli"at sangat seder"ana dibandingkan #ara tak langsung $ang keli"atann$a sedikit kompleks bagi pemula. Cobala" "itung berapa b$te memori $ang dipakai ole" masimg-masing program diatas. Perinta" M>I menggunakan / memori, %' 4 memori jadi #ara langsung menggunakan /0 memori (1 1 memori, IAE 1 memori, *C 1 memori dan A= 4 memori, total memori #ara tak langsung adala" 14 memori. %ekarang bagaimana kalau diminta untuk mengosongkan memori seban$ak 50 atau /00 memori, apa $ang terjadi dengan #ara langsung, dan bagaimana dengan #ara $ang tak langsungW Untuk #ara langsung, penamba"an memori $ang akan diproses berarti menamba" baris program. 'idak "aln$a demikian pada #ara tak langsung. 6ita "an$a perlu menguba" perinta" M>I B,0;Q dengan M>I B,4/Q atau M>I B, 77Q atau menjadi "arga berapa saja antara nilai 00 < O 77 <. *an sekarang terbukti ba"a bukan "an$a pemakaian memori $ang lebi" "emat, tetapi juga programn$a menjadi lebi" )leksibel dan praktis. Berikut #ara tak langsung $ang sama dengan program diatas+ M>I B, 0; M>I *, 0; EI *, 8000 EI B, 8000 M>I , 00 M>I , 00 %'E * %'E B IAE * IAE B *C B *C * A= A= %' %'
EI B, 800; E *C C %'E B A= %'
Untuk memproses memori dalam jumla" sedikit (satuan! dapat digunakan #ara langsung, tetapi kalau memori $ang akan diproses "ingga pulu"an keatas maka #ara tidak langsung ajib dilakukan. Bekerja dengan sejumla" memori tentun$a "arus ditentukan batas alamat memori terenda" dan batas $ang tertinggi. Pelajarila" teknik-teknik berikut ini dalam mengola" blok memori. Program berikut memperli"atkan beberapa #ara untuk meminda"kan data dari blok memori 8000 O 8007 ke memori ?000 O ?007. EI <, 8000 EI *, 8000 EI *, ?000 EI B, ?000 M>I B, 10 M>I <, 10
53
M9> , M %'E * IAE < IAE * *C B A= %'
*E * %'E * IAE * IAE B *C < A= %'
EI *, 8000 EI <, 8000 EI <, 8000 EI <, ?000 EI *, ?000 EI *, ?000 *E * M9> ,M M9> ,M M9> M, %'E * %'E * IAE < IAE < IAE < IAE * IAE * IAE * M9> , : M9> , M>I , 10 CPI 10 CPI 10 CMP A= A= A= %' %' %' Program berikut memperli"atkan / #ara untuk saling menukarkan data antara blok memori 8000 O 8007 dengan ?000 O ?007 (maksudn$a isi memori 8000 dan ?000 saling dipertukarkan, begitu pula dengan memori 8001 dan ?001 dan seterusn$a!. Per"atikan #onto" berikut ini, ba"a pemakaian perinta" CPI tern$ata dapat meng"emat pemakaian sebua" register. Menggunakan register see)isien mungkin adala" penting.
EI <, 8000 EI *, ?000 M>I B,10 M9> C,M *E * M9> M, M9> ,C %'E * IAE < IAE * *C B A= %'
EI *, 8000 EI B, ?000 *E * M9> , *E B %'E * M9> , %'E B IAE * IAE B M9> ,: CPI 10 A= %'
*.* Peran Pen#ing Regis#er lag
54
'idak seperti register $ang lainn$a, reg.7lag tidak digunakan untuk pen$impanan data, namun demikian register ini men$impan 5 in)ormasi $ang sangat penting bagi programmer. Aamun begitu pun sangat jarang data register 7lag ini diambil atau diola", ba"kan kita tidak perlu mengeta"ui isi register 7lag ini alaupun kita menggunakan in)ormasi $ang ada padan$a. paka" bedan$a "asil dari perinta" *C dengan %UI 01W Conto"+ "itungla" ban$akn$a bilangan $ang lebi" besar dari 05 pada blok memori 8000-8007, "asiln$a di reg.B. Perinta" $ang mempengaru"i register 7lag akan menguba" pengaru" dari perinta"
sebelumn$a.
6arenan$a
per"atikanla"
perinta"
apa
saja
$ang
mempengaru"i register 7lag dan status apa saja $ang dapat mempengaru"in$a pada reg.7lag. Baris $ang bertanda \\ diatas disebut juga baris kritis. rtin$a adala" penguba"an baris tersebut dapat menguba" dan membalikkan )ungsi dari keseluru"an program.
EI <, 8000 M>I C, 10 M>I B,00 M>I , 05 CMP M ACP\\ IA B IAE < *C C A= %'
Per"atikan baris bertanda \\, baris tersebut berisi tersebut berisi / perinta" $ang sepintas akan memberikan "asil $ang sama. Ingatla" bagaimana prosesor
menetapkan
negatip
dan
positip.
6ebiasaann$a kita akan menggunakan P, tetapi ini keliru $ang benar adala" AC.
Conto" bila perinta" AC tersebut diganti dengan perinta" C maka sekarang $ang di"itung bukan lagi $ang lebi" besar dari 05 melainkan $ang berada antara nilai 00 sampai 05. Program-program $ang memiliki )ungsi berlaanan selalu memiliki baris program kritis dan kita "an$a perlu menguba" baris ini saja untuk mendapatkan )ungsi kebalikann$a. *.( Progra! Te#ap :i2e; Dan Progra! leksibel Program 1, / dan 4 adala" program penjumla"an de#imal 1 b$te. Pada
program 1, data $ang dijumla"kan ditetapkan langsung di dalam program se"ingga bila ingin menguba" data kita "arus menguba" program tersebut. Program /, data $ang diproses diambil dari memori, dengan demikian kita "an$a
55
menguba" isi memori bila ingin menguba" data tanpa menguba" program. Program 4 "ampir sama dengan program / "an$a data diambil langsung dari reg.B dan reg.C. Program / dan 4 disebut program )leksibel sedangkan program 1 disebut program tetap ()i3ed!. Program )leksibel adala" program $ang data-data utaman$a berada diluar program, tentu saja kita "arus terlebi" da"ulu mengisi data-data sebelum melaksanakan program. Program )leksibel inila" $ang akan digunakan sebagai program sub rutin. Program 1 M>I , 05 M>I B, 08 ** B * %'
Program / * 8000 M9> B, * 8001 ** B *
Program 4 M9> ,B ** C * %' %' 1
*. Teknik Pen%aringan Da#a Pen$aringan data termasuk sala" satu pengola"an data. Bentuk $ang termasuk
kelompok pen$aringan data adala" pemili"an data $ang diinginkan dari sejumla" data tanpa bertujuan merusak data asli. %eperti penentuan data ganjil dan genap, pengambilan data diantara "arga tertentu atau penentuan positip atau negatip. Pen$aringan data termasuk ta"ap pertama dalam pengola"an data karenan$a data $ang diinginkan tidak bole" beruba". Conto" berikut adala" memperli"atkan pen$aringan data berdasarkan data utu" $ang disaring dan menggunakan perinta" aritmatika CPI. Conto" 1+ Meng"itung data $ang ber"arga 40 O 4? (CII #ode untuk tombol angka 0 - ?! pada blok memori ?000 O ?077. I B, 00 M9> ,M CPI 40 C CPI 4 AC IA B IA A= %'
Inisialisasi blok #ara tak langsung reg. peng"itung set aal N 00 Pengambilan data Uji batas baa" pen$aringan *ata di baa" "arga tak di"itung Uji batas atas pen$aringan *ata di atas "arga di"itung *ata dalam range di"itung Aaikkan penunjuk alamat %uda" "abisW Belum, ulangi 'ampilkan isi seluru" register untuk meli"at "asil program
56
Conto" /+ Meng"itung jumla" data ] 50, ] 40, ]10 pada blok memori ?000-?077. I B, 00 M9> ,M CPI 50 AC IA B CPI 40 AC IA C CPI 10 AC IA * IA A=
Inisialisasi aal blok %et peng"itung aal N 00 Pengambilan data Uji data ]50 *ata Z 50 tidak di"itung lagi
per"itungan data %' %elesai 'eknik pen$aringan data lainn$a dapat menggunakan perinta" logika AI, dipakai bila memungkinkan kita melakukan pen$aringan bit data. Conto" 4+ Pen$aringan data ganjil atau genap. EI <,?000 Inisialisasi blok #ara tak langsung EI B, 0000 al "itungan M9> ,M Pengambilan data AI 01 Men$aring bit %B A= Bit %BN1 berarti data ganjil IA B Bit %BN0 berarti data genap MP
57
/. 7ungsi $ang diinginkan merupakan sebua" program $ang panjang ataupun kompleks. %$arat-s$arat program bagian adala"+ 1. Bersi)at program )leksibel /. lur program berak"ir dengan perinta" return (:'! aln$a sebua" program bagian adala" program tetap $ang melaksanakan )ungsin$a
se#ara
lengkap.
6emudian
program
ini
di"ilangkan
bagian
inisialisasin$a dan menukar perinta" %' 1 dengan perinta" return. Aantin$a dalam pelaksanaan, inisialisasi ditulis diprogram utama baru kemudian dilakukan pemanggilan ter"adap subrutin $ang sesuai. Program bagian lebi" di kenal sebagai subrutin atau sub program $ang pada ak"ir jalann$a program ini ajib menggunakan perinta" kembali (perinta" :' return!. Program di mana perinta" panggilan dijalankan disebut program utama atau main program. Program bagian dianggap selesai bila tela" di temukan dan dijalankan perinta" kembali (:' atau &ariasi bers$aratn$a! lalu jalann$a program selanjutn$a akan di kembalikan ke program utama. Pada program utama, setela" program bagian mengembalikan jalann$a program ke program utama maka program akan menjalankan baris perinta" $ang berada di baa" perinta" panggilan $ang baru dijalankan, terli"at bagaimana alur jalann$a program seperti di tunjukan ole" tanda pana".
=rogram Utama
=rogram .agian
.aris =rogram 8000 .aris =rogram >>>>>>>>>, >>>>>>>> >>>>>>>>>, >, >>>>>>>>>, >>>>>>>> !a"" 8000 >, '*? A. >>>>>>>> Dambar 4.4 lur jalann$a program sub program >>>>>>>>> >, >>>>>>>>> >>>>>>>> *., Progra! Penuna =ak#u :Dela%; > *alam plikasi-aplikasi mikroposesor seringkali diperlukan program $ang RT 1 >>>>>>>> > dapat meng"asil kan inter&al aktu dengan panjang tertentu. Misaln$a aplikasi R%T
mikroposesor untuk mengontrol skalar pembangkit pulsa $ang mempun$ai )rekuensi dan durasi tertentu. *an mengatur aktu pada proses pengiriman atau penerimaan data $ng di laksanakan se#ara regular (periodik!. Untuk meng"asil kan inter&al aktu dapat di lakukan beberapa #ara,$aitu+
58
%e#ara "ardare. *engan monostable multi&ibrator+ 6ombinasi "ardare dan so)tare dengan menggunakan programmable
timer $ang )leksible. %eperti rangkain terintregrasi 8/54K %e#ara so)tare,dengan membuat program dela$ (subrutin dela$! Metoda "ardare $aitu dengan menggunakan monostable multi&ibrator. Peran#ang lebi" men$ukai penggunaan programmable timer, meskipun "argan$a relati) ma"al tetapi sangat muda" meran#an inter)a#en$a. Pada pemakaian mikroposesor $ang lebi" seder"ana, pemili"an metoda so)tare adala" $ang paling tepat untuk membuat inter&al aktu. ati"an-lati"an #ara membuat inter&al aktu dengan metoda so)tare, $aitu dengan membuat program deka$. Pada program dela$, mikroposesor diguakan sebua" #ounter (peng"itung!. Pemakain mikroposesor tersebut mempun$ai re)erensi #lo#k $ang stabil. 6euntungan pemakaian subrutin dela$ untuk meng"asilkan inter&al aktu adala" sistem tidak memerlulukan tamba"an "ardare meskipun se#ara keseluru"an pelaksanaan program tidak menjadi lebi" lambat. Program *ela$ adala" program $ang tidak melaksanakan pekerjaan berarti, program ini $ang dipentingkan bukan )ungsin$a tetapi aktu $ang di"abiskan selama menjalankan program tersebut. Conto"+ PU%< B P9P B PU%< B P9P B Program di atas men$impan data ke %ta#k dan mengambiln$a kembali, tidak ada $ang beruba"
setela" program ini dijalankan, "an$a aktu $ang dibutu"kan
untuk mengeksekusi program ini adala" ' selama program ini dilaksanakan. Program dela$ tentun$a dipakai untuk menunda aktu pelaksanaan antara satu pekerjaan dengan pekerjaan berikutn$a, karenan$a program ini berada diantara program jadi tidak menggunakan perinta" pen$elesaian atau %' 1. Bila program dela$ ini sering dipakai maka lebi" baik menjadikann$a menjadi sebua" subrutin $aitu dengan menamba"kan perinta" :' diak"ir perinta". 'entu saja penamba"an perinta" :' ini menamba" aktu tundan$a sebesar '. *alam midi#om ada rutin program dela$ $ang beralamat 977. utin ini mengambil data dari pasangan register *: sebagai data $ang menunjukkan laman$a
59
penundaan aktu. *engan demikian sebelum memanggil rutin dela$ ini kita "arus mengisi register *: dengan "arga $ang kita perlukan. Conto"+ EI *, 0100 Kmenentukan laman$a aktu dela$ C 977 Kmemanggil rutin dela$ midi#om *.) Progra! Menggunakan Tabel Program look up table adala" peman)aatan tabel data dalam pembuatan
program, data-data $ang akan diproses diambil melalui memori $ang sebelum program dijalankan suda" terlebi" da"ulu diisi. Bandingkanla" penggunaan kedua program pada #onto" berikut ini. Progra! 1. M>I , 00 9U' 50 C *ela$ IA MP Progra! '. EI <, 8000 M9> , M 9U' 50 C *ela$ IAE < M9> , CPI 10 A= MP Program 1 diatas adala" menampilkan proses Up-Counter (Biner$ Counter! pada indikator :* $ang berada pada port 50. Proses Up-Counter didapat langsung melalui program. Program / juga menampilkan suatu data pada indikator :*, data $ang akan ditampilkan diambil dari blok memori 8000 O 8007 $aitu seban$ak 10 < data atau 1; data. Program 1 lebi" ban$ak menampilkan data ber&ariasi, lebi" ban$ak dari program / dengan "an$a menggunakan baris program singkat dan juga pemakaian memori $ang lebi" sedikit. %edangkan program / membutu"kan memori $ang lebi" ban$ak selain untuk programn$a juga untuk data $ang akan ditampilkann$a, semakin ban$ak datan$a maka semakin ban$ak memori $ang digunakann$a. enis program 1 ini disebut program linier dan jelas ba"a untuk mendapatkan sejumla" data $ang bersi)at linier lebi" praktis mendapatkann$a langsung melalui program. enis program / ini dsebut ook-up-table karena datadata $ang akan diproses diambil melalui memori $ang sebelum program
60
dijalankan suda" terlebi" da"ulu diisi. *ata $ang diisi ke memori diurut la$akn$a sebua" tabel $ang akan diba#a. %elain kekurangann$a seperti $ang disebutkan di atas, kelebi"ann$a adala" &ariasi peruba"an data dapat kita lakukan dengan sangat muda" tanpa perlu menguba" programn$a, juga data $ang ditampilkan dapat sesuka kita dan tentu saja ini tidak dapat dilakukan melalui pemrograman. 6esimpulann$a, bila diperlukan data linier, maka #oba mendapatkann$a dengan pemrograman, tetapi bila tampak terlalu sulit dan datan$a tidak terlalu ban$ak maka gunakanla" program look!up table. alankan #onto" program berikut ini dan per"atikan serta bandingkan antara pemrograman dan look-up-table dalam menampilkan tampilan. * 8000 M>I , 00 E 9U' 50 CMC C *ela$ 9U' 50 9U' 50 C C C *ela$ MP C *ela$ CMC MP C MP Bagaimana pendapat dengan program di atasW %ekarang isila" data-data setiap baris berikut ini se#ara berurut mulai memori 8000 "ingga data selesai (#onto", baris1+ data 00 ke memori 8000, data 18 ke 8001, data / ke 800/ "ingga 11 data pada memori 800 kemudian uba"la" baris program CPI 10 (pada program / di atas! sesuai jumla" data setiap baris (#onto", baris1+ ada 11 data (desimal!, maka menjadi CPI 0B! lalu jalankan program / diatas. Baris1 + 00 , 18 , / , / , 81 , 00 , 81 , / , / , 18 , 00 Baris/ + 00 , 18 , 4C , @: , 77 , 00 , 77 , @: , 4C , 18 , 00 Baris4 + 00 , 18 , / , / , 81 , 00 , 81 , C4 , :@ , 77 , @: 4C , 18 , 00 Bagaimana pendapat anda dengan "asiln$aW angan lupa mengganti perinta" C *ela$F[ 'entu saja anda bisa membuat kreasi anda sendiri. Program look-up-table menjelaskan kepada kita apa itu program, apa itu data dan pentingn$a memori sebagai pen$impan data.
*.+ Rangku!an 1. %e#ara umum ada 4 ta"ap untuk pembuatanmen$usun program+
-
Pen$usunan lgoritma Pembuatan 7lo#"art Pembuatan program (baris program!
61
/. Untuk memproses memori atau data $ang dimiliki ole" memori dikenal / #ara $aitu #ara langsung dan tidak langsung. Cara langsung $aitu menggunakan perinta" $ang meng"aruskan kita menuliskan alamat memori $ang akan kita proses. Cara tidak langsung $aitu menggunakan pasangan register untuk menunjukkan alamat memori $ang akan diproses. Untuk memproses memori dalam jumla" sedikit (satuan! dapat digunakan #ara langsung, tetapi kalau memori $ang akan diproses "ingga pulu"an keatas maka #ara tidak langsung ajib dilakukan. 4. Program bagian dikenal sebagai rutin, prosedur atau subrutin adala" suatu teknik $ang membagi sebua" program menjadi bagian-bagian $ang lebi" ke#il $ang menjalankan )ungsin$a sendiri-sendiri. *.10 Per#an%aan
1. Buatla" program untuk meng"itung data positip dan negatip pada blok memori ?000"-?077".
BAB I@ A?A
pemograman
I9,
dan
#onto"
aplikasi
pemrograman
I9.
Umumn$a
mikroprosesor digunakan sebagai pengontrolan (sistem otomasi!. %in$al $ang akan dikontrol tentu saja bisa berupa sin$al digital ataupun sin$al analog. Untuk pengontrolan analog tentu saja mikroprosesor $ang bekerja dengan digital input
62
output, maka dalam bekerjan$a memerlukan peralatan perantara (inter)a#e!. Inter)a#e ini ber)ungsi menguba" sin$al analog $ang akan dikontrol atau dip roses menjadi bentuk digital. Inter)a#e $ang digunakan adala" nalog to *igital Con&erter (*C! dan *igital to nalog Con&erter (*C!. Baik digital input output maupun analog input output mikroprosesor menggunakan sebua" #"ip Perip"eral Input 9utput (PI9!. Per"itungan dan #onto" program $ang digunakan dalam buku ini menga#u pada pemakaian trainer set Midi#om u#ass Aulle $ang digunakan di Politeknik k"ususn$a Politeknik Aegeri "okseumae. Tujuan Khusus Ma"asisa mema"ami komponen input output (I9 de&i#e! $ang digunakan
pada mikroprosesor. (.1 Progra!!able Peripheral In#er&a/e :PPI )'; Intel 8/55 (atau i8/55! #"ip Programmable Perip"eral Inter)a#e adala"
sebua" #"ip perangkat aaln$a dikembangkan untuk mikroprosesor Intel 8085, dan dengan demikian adala" anggota dari sebua" arra$ besar #"ip tersebut, $ang dikenal sebagai 6eluarga MC%-85. C"ip ini kemudian juga digunakan dengan Intel 808; dan keturunann$a. Ia kemudian dibuat (kloning! ole" produsen lain. ersatile Inter)a#e dapter! dan M9% 'eknologi CI (Comple3 Inter)a#e dapter! semua dikembangkan untuk keluarga ;50/. C"ip seperti lainn$a adala" Inter)a#e Perip"eral Programmable /;55 dari keluarga /;50 %igneti#s dari mikroprosesor, ;8/0 PI9 (Perip"eral Input9utput! dari keluarga ;800 Motorola, Gestern *esign Center ;5C/1 G*C, sebua" ;5/0 $ang disempurnakan, dan ban$ak lainn$a. '"e 8/55 se#ara luas digunakan tidak "an$a di ban$ak komputer mikromikrokontroler terutama sistem =-80 komputer berbasis ruma", seperti %>-4/8 dan M%E, tapi juga dalam board sistem $ang paling dikenal asli IBM-PC, PCE',PC. Aamun, paling sering )ungsionalitas 8/55 ditaarkan sekarang tidak diimplementasikan dengan #"ip 8/55 sendiri lagi, tetapi tertanam dalam sebua" #"ip >%I $ang lebi" besar sebagai sub )ungsi. C"ip 8/55 sendiri masi" dibuat,
63
dan kadang-kadang digunakan bersama dengan sebua" kontroler mikro untuk memperluas kemampuan I9. (.1.1 ungsi Pin PPI )' PPI 8/55 dari IA': adala" #"ip paralel $ang seder"ana. PPI memiliki
registetr #ontrol dan tiga port terpisa" $ang dapat dialamti, disebut Port , Port B, Port C. *iakses tidakn$a PPI ditentukan pada sin$al C%, dan ara" akses sesuai dengan sin$al * dan G. Pin 0 dan 1 menetukan register mana $ang dialamati. 8 bit bu))er tristate / ara" digunakan untuk perantara 8/55 dengan s$stem data bus. *ata dikirim atau diterima ole" bu))er tergantung kepada instruksi input atau output ole" CPU. In)ormasi #ontrol dan status juga dikirim leat bu))er data bus.
Dambar .1 Pin 8/55 Dambar dibaa" ini memperli"atkan dua bua" group kontrol port, $aitu group dan group B.
64
7
6
5
4
3
2
1
0
Dambar ./ 7ormat Control Gord data s"eet 8/55J 6ontrol group mengontrol mode trans)er data (dari atau ke! 8 bit port dan bit dari port C upper. %edangkan kontrol group B mengontrol mode trans)er data (dari atau ke! 8 bit port B dan bit dari port C loer. 6ontrol data $ang dituliskan dari kontrol register akan menentukan karakteristik pengoperasian PPI. Pada gambar tersebut terli"at *5-*@ digunakan untuk mengontrol grup B. *@ menentukan port C loer (PC0-PC4!, logi#1 diprogram untuk masukan sedangkan logi# 0 diprogram sebagai keluaran. *; menentukan port B (PB0PB@!, logi#1 diprogram untuk masukan sedangkan logi# 0 diprogram sebagai keluaran. *5 digunakan untuk memili" mode port B $ang diinginkan, $akni mode 0 atau mode 1. *1 sampai * digunakan untuk mengontrol grup . * menentukan port C upper (PC-PC@!, logi# 1 diprogram sebagai masukan dan logi# 0 dipogram sebagai keluaran. *4 menentukan port (P0-P@!, logi#1 diprogram untuk masukan sedangkan logi# 0 diprogram sebagai keluaran. *1 dan */ menentukan mode untuk group K bila 00 berarti mode 0, bila 01 berarti mode 1, dan bila 1E berarti mode /. Mode 0 dinamakan simple inputoutput. Bila diprogram sebagai keluaran, data $ang ada di port keluaran akan dita"an, 65
sedangkan bila diprogram sebagai port masukan, masukan ini tidak dita"an. %edangkan *0 adala" mode set )lag. *0 ini "arus selalu berlogik 1 agar PPI dapat beroperasi. PPI 8/55 adala" IC $ang diran#ang untuk membuat port masukan dan keluaran paralel, IC ini mempun$ai / bit I9 $ang terorganisir menjadi 4 port 8 bit (/ jalur! dengan nama Port , Port B, dan Port C. Port dan port B dapat digunakan sebagai 8-bit inputoutput port. Port C dapat digunakan sebagai port 8 bit inputoutput atau sebagai dua -bit inputoutput port atau untuk meng"asilkan sin$al jabat tangan ("ands"ake! untuk port dan B. 'iga port selanjutn$a dikelompokkan sebagai berikut+ 1. Drup terdiri dari bagian port dan port C bagian atas /. Drup B terdiri dari port B dan bagian baa" port C. *elapan baris data (*0-*@! $ang tersedia (dengan data bu))er 8-bit! untuk memba#amenulis data ke port atau kontrol register di baa" status *Q (pin 5! dan GQ(pin 4;!, adala" sin$al akti) renda" untuk memba#a dan menulis operasi masing-masing alamat. 6on)igurasi dari / jalur I9 ini bisa digunakan untuk masukan, keluaran, ataupun bidire#tional (dua ara"!. Pada I9 $ang dikontrol se#ara so)tare akan lebi" muda" bila dibandingkan dengan pengontrolan se#ara "ardare. Untuk memili" port 8/55 digunakan dua bua" address pin, $aitu 1 dan 0, dengan kombinasi sebagai berikut+ 1N0K 0N0K NNZ memili" port 1N0K 0N1K NNZ memili" port B 1N1K 0N0K NNZ memili" port C 1N1K 0N1K NNZ memili" Control Gord ( CG ! %in$al kontrol SC%S (pin ;! digunakan untuk mengakti)kan #"ip 8/55. C% "arus dibuat renda" pada saat pemba#aan atau penulisan pada PPI ini, $aitu, ketika C% N ^0^, 8/55 diakti)kan. Input :%:' (pin 45! ter"ubung ke sistem (seperti 8085, 808;, dll! reset se"ingga ketika sistem di-reset, semua port diinisialisasi sebagai jalur input. %in$al reset bila akti) akan membersi"kan seluru" register internal PPI dan membuat PPI ber)ungsi dalam mode masukan (mode input!.
66
perangkat input atau 8/55 atau keduan$a karena keduan$a 8/55 dan perangkat $ang ter"ubung akan mengirimkan data. egister kontrol atau logika kontrol atau register #ontrol ord adala" 8-bit register $ang digunakan untuk memili" mode operasi dan inputoutput status port. Pemili"an kon)igurasi port masukan atau keluaran pada IC 8/55 ini dilakukan dengan #ara mengirim #ontrol ord melalui *@ sd *0 pada saat 1 dan 0 masing-masing berlogik 1. da / mode operasi 8/55+ 1. Inputoutput mode /. Bit setreset mode 'abel .1 'abel kebenaran operasi 8/55 1
0
*
G:
C%
6eterangan
0
0
0
1
0
Port ke bus data
0
1
0
1
0
Port B ke bus data
1
0
0
1
0
Port C ke bus data
0
0
1
0
0
Bus data ke port
0
1
1
0
0
Bus data ke port B
1
0
1
0
0
Bus data ke port C
1
1
1
0
0
Bus data ke bus kontrol
E
E
E
E
E
Bus data t"ree state
1
1
0
1
0
Ilegal
E
E
1
1
0
Bus data t"ree state
(.1.' Pengoperasian PPI )'.
Pengoperasian PPI 8/55 ditentukan ole" mode inputoutput. Mode operasi PPI 8/55 dioperasikan dalam 4 mode+ 1. Mode 0 /. Mode 1 4. Mode / Moe 0 *alam mode ini, port dapat digunakan untuk inputoutput operasi seder"ana
tanpa "ands"akingstrobe. ika kedua port dan B diinisialisasi dalam mode 0, kedua bagian port C dapat digunakan bersama baik sebagai port 8-bit tamba"an, atau sebagai port -bit se#ara terpisa". 6arena dua bagian dari port C adala" independen, mereka dapat digunakan seperti $ang setenga" diinisialisasi sebagai
67
port input sementara setenga" lainn$a diinisialisasi sebagai output port. 7itur Inputoutput mode 0 adala" sebagai berikut+ 1. 9p are lat#"ed. /. Ip are bu))ered not lat#"ed. 4. Port tidak memiliki kemampuan "ands"ake atau interupsi. Moe 1 6etika kita ingin menggunakan port atau port B untuk input dan output jabat tangan (strobed!, maka port "arus diinisialisasi dalam mode 1 (port dan port B dapat dinisialisasi untuk operasi dalam mode $ang berbeda, $aitu, untuk misaln$a, port dapat beroperasi dalam mode 0 dan port B dalam mode 1!. Beberapa pin dari port C di)ungsikan sebagai jalur strobe. Untuk port B di mode ini (terlepas dari apaka" bertindak sebagai port input atau output!, PC0, PC1 dan PC/ ber)ungsi sebagai jalur strobe.
ika port
diinisialisasi sebagai mode 1 port input, maka PC4, PC, PC5 sebagai sin$al strobe. PC; dan PC@ digunakan sebagai inputoutput. Mode 1 $ang mendukung "ands"aking memiliki )itur berikut+ 1. *ua port $aitu port dan B dapat digunakan sebagai 8-bit I9 port. /. %etiap port menggunakan tiga jalur port # sebagai sin$al strobe dan tersisa dua sin$al dapat ber)ungsi sebagai I9 port. 4. *idukung Interrupt logika . Input dan 9utput data terkun#i (at#"ed! Moe '
Pada mode ini "an$a port B $ang dapat digunakan (output port!. Masing-masing jalur pada port C (PC0 - PC@! dapat di-setreset sesuai dengan perinta" pada #ommand ord register. 'ida ada e)ek $ang terjadi pada mode input-output. Bit bit indi&idual port C dapat disetreset dengan mengirim sin$al 9U' ke register #ontrol.
68
or!a# Moe Inpu#6Ou#pu#
1. Dambar ini menunjukkan )ormat kontrol ord dalam mode inputoutput. Mode ini dipili" dengan membuat *@ N ^1^. /. *0, *1, *4, * adala" masing-masing untuk loer port C, port B, upper port C dan port . 6etika *0 atau *1 atau *4 atau * adala" S%:'S, port $ang bersangkutan bertindak sebagai port input. Untuk misaln$a, jika *0 N * N ^1 ^, loer port C dan port bertindak sebagai port input. ika bit ini S:%:'S, maka port $ang bersangkutan bertindak sebagai port output. Misaln$a, jika N *1 N *4 ^0 ^, maka port B dan port C upper bertindak sebagai port output. 4. */ digunakan untuk pemili"an mode untuk grup B (Port B dan Port C oer!. 6etika */ N ^0 ^, mode 0 dan ketika */ N ^1^, mode 1. . *5, *; digunakan untuk pemili"an mode untuk kelompok (Upper Port C dan Port !. 7ormatn$a adala" sebagai berikut+ D7 D !oe 0 0 0 0 1 1 1 3 / on#oh$ ika port B dan upper port C dinisialisasi sebagai port input dan loer port C dan
Port sebagai 9utput (semua dalam mode !!, tentukan status #ontrol ord. 1. 6arena inputouput mode, D, F G1G. /. Pili" Mode bit+ D'" D" D7 se!ua G0G untuk operasi mode 0. 4. Port B akan dioperasikan sebagai input port, maka D1 F G1G. . Upper port C sebagai input port, maka, D* F G1G. 5. Port dioperasikan sebagai output port, maka, D( F G0G. ;. oer port C sebagai output port, maka D0 F G0G. 7ormat Mode Input9utput, maka #ontrol ord adala" H)A :he2;H BSR !oe &or!a#
1. Dambar menunjukkan )ormat #ontrol ord dalam B% mode. Mode ini dipili" dengan membuat D,FG0G . /. D0 digunakan untuk bit setreset. *0N ^1^, port C %:', n *0 N ^0^, port C RESET. 4. *1, */, *4 digunakan untuk memili" port C bit tertentu $ang nilain$a dapat
diuba" dengan menggunakan bit *0 sebagaimana disebutkan di atas. *, *5, *; tidak digunakan. Pemili"an bit C port dilakukan sebagai berikut+ 69
'abel ./ Pemili"an Port C D* 0 0 0 0 1 1 1 1
D' 0 0 1 1 0 0 1 1
D1 0 1 0 1 0 1 0 1
Bi#6pin o& por# sele/#e PC0 PC1 PC/ PC4 PC PC5 PC; PC@
on#oh$ ika bit ke 5 (PC5! port C adala" %:', tentukan status #ontrol ord.
1. %in#e it is B% mode, D, F G0G. /. %in#e *, *5, *; are not used, assume t"em to be ^ 0G. 4. PC5 "as to be sele#ted, "en#e, D* F G1G" D' F G0G" D1 F G1G. . PC5 "as to be set, "en#e, D0 F G1G. 7ormat untuk mode B%, maka #ontrol ord adala" H0B :he2;H. (.' Analog #o Digi#al oner#er :AD; an Digi#al #o Analog oner#er :DA; Mikroprosesor 8085 bekerja dengan 8 bit data. *engan tegangan re)erensi
$ang dimiliki *C*C _ 10 >olt rentang tegangan sebesar /0 &olt, dengan 8 bit data berarti memiliki /55 le&el, maka ketelitian $ang dimiliki *C*C+ /0 > pp/55 le&el N @8,41 m>le&el (.'.1 AD Dan DA Paa Mii/o!
Midi#om memang dibuat untuk mempelajari #ara bekerjan$a mi#roprosessor dalam )ungsin$a untuk
pengontrolan. 6arenan$a ia dilengkapi dengan
kelengkapan pengontrolan untuk mempermuda" bagi $ang memakain$a. Pengontrolan disini ditujukan untuk menguasai sistem otomatisasi. 6arena memang pada s$stem inila" ke"andalan dan kelebi"an $ang dimiliki setiap mi#roprosessor. %in$al $ang akan dikontrol tentu saja bisa berupa sin$al Osin$al digital ataupun sin$al-sin$al analog dan untuk mengantisipasi "al ini maka midi#om dilengkpai )asilitas untuk memproses sin$al-sin$al tersebut. Untuk pengontrolan dan pemrosesan sin$al-sin$al digital atau disebut dengan digital input output. Midi#om dilengkapai sebua" port input beserta simulasin$a
70
memakai saklar, juga port output beserta indikatorn$a memakai lampu :*.
adala" 8 bit *C*C. 6arena midi#om bekerja dengan 8 bit data. 6emudian $ang k"usus lagi adala" ba"a tegangan re)erensi $ang dimiliki *C*C pada midi#om adala" _ 10 &olt. aitu memiliki rentang tegangan sebesar /0 &olt, mulai dari 10 &olt sampai -10 &olt. Mulaila" kita meng"itung ketelitian $ang dimiliki *C*C ini. *engan 8 bit data berarti kita memiliki /55 le&el. Berdiri mulai dari le&el terenda" $aitu -10 sampai le&el tertinggi 10 &olt dibagi menjadi /55 le&el. Ini berarti ketelitian setiap le&el adala"+
N @8,41 m>le&el . pabila terjadi peruba"an tegangan di baa" le&el tersebut maka tidak dapat dipastikan terdeteksi ole" midi#om. on#oh$ Pada le&el tegangan .000 &olt midi#om mendeteksi sin$al ini dalam "arga 44 <. Bila terjadi kenaikan le&el tegangan mulai dari .000 &olt sampai dengan ,0@@ &olt maka midi#om masi" tetap mendeteksin$a sebagai nilai 44
<. %etela"
mengeta"ui resolusin$a maka kita meli"at kembali kon&ersin$a dalam "arga
71
"eksa de#imal. Masi" ingat dengan istila" sign atau bilangan positi) atau negati&e pada midi#om ini. Benar bila anda berkata ba"a bilangan $ang memiliki bit M%B bernilai satu berarti itu menunjukkan le&el negati&e. adila" bilangan $ang bermulai 80 < sd 77 < adala" bilangan $ang menunjukkan le&el negati&e sedangkan bilangan 00 < sd @7 < adala" bilangan $ang menunjukkan le&el positi). 6emudian, bilangan manaka" $ang paling negati) dan paling positi) li"atla" kur&a di baa" ini+
Le@e" Tegangan (?)
10
on@ersi esa esima" 80
&&
00
7&
Dambar .4 6ur&a 6on&ersi Ailai 'egangan 6e N resolusi 3 le&el N @8,41 m> 3 1/@ N ?,?;1 &olt ang kita dapat tern$ata "arga tertinggi adala" ?,?;1&olt. Begitu juga "aln$a dengan "arga negati&e adala" -?,?;1 &olt. alu #obala" li"at+ @8,41 + / N 4? m& (setenga" resolusi!. Bagaimana "asiln$a bila "arga maksimum kita $ang ?,?;1 &olt ditamba"kan dengan "arga
72
setenga" resolusiW adi kesala"an *C maupun *C adala" setanga" resolusi atau setenga" bit. (.'.* Ter!inal Penghubung Inpu#6Ou#pu# AD6DA Untuk ber"ubungan dengan alat-alat $ang dikontrol maka diesediakan pin-pin
output untuk pengkabelan. Pin output untuk digital output port 50 terletak di atas lampu led indi#ator. %edangkan pin output port 50 terletak di atas lampu led indekator. %edangkan pin output untuk analog input output terletak dibagian paling atas ditandai dengan pin anin (pin ad# input analog input! dan anout (pin da# analog output!. %elain itu digunakan juga pin bersaman$a $aitu ADA* (analog ground! $ang terletak di sebela" pin ground. Conto"+ untuk mendeteksi sin$al analog, maka "ubungkan pin out AIA ke sin$al $ang dideteksi. Begitu juga untuk mengontrol suatu alat serial kontrol temperature, maka "ubungan pin out A9U' ke input alat $ang dikontrol lalu di"ubungkan ADA* ke ground alat $ang dikontrol. (.* Pe!ogra!an Analog Inpu# Ou#pu# 6arena input output menggunakan PI9 8/55 $ang sama untuk digital dan
analog maka kita "an$a dapat menggunakan se#ara bergantian untuk memilikin$a, kita "arus memberikan perinta" kepada PI9 8/55 terlebi" da"ulu, tentu saja melalui pemograman dan ini disebut inisialisasi port. Inisialisasi digital $aitu + M>I ,/ 9U' 54 Untuk inisialisasi analog $aitu + M>I , / 9U' 54 M>I , 08 9U' 54 M>I ,0 9U' 5/ Untuk inisialisasi normal (reset PI9 8/55 ! $aitu K M>I , 00 9U' 5/ Conto" 1+ M>I , / 9U' 54 M>I , 08 9U' 54 M>I ,0
+ inisial pemakaian *C *C
73
9U' 5/ IA 51
+ mengambil le&el input *C AIA dan meletakkan "arga
"e3a a di reg. , mengulang
kembali data dari *C MP alankan program di atas, gunakan perinta" step. %etela" menjalan perinta" IA 51 maka li"atla" nilai di register . Dunakan sebua" poer suppl$ _ 5 & dan multimeter digital. turla" tegangan poersupl$ pada tegangan 5>, kemudian "ubungkan suppl$ ke pin AIA lalu ground poer suppl$ ke pin ADA* midi#om. alankanla" program #onto" di atas, berapa "arga register W Uba" "arga tegangan suppl$ menjadi ; >olt berapa nilai register W %ekarang pinda"kan kabel dari pin poer suppl$ ke pin O poer suppl$, lalu set pada tegangan -5> dan -;>. alankan program dengan menu step, setela" sampai In 51 li"atla" nilai register . uba" "arga tegangan suppl$ lalu jalankan step sampai IA 51
berikutn$a. Begitula" selanjutn$a sampai anda mema"ami
pemakaian dan per"itungan *C berikut. Bahasan $
Untuk ; & "arga reg. adala" N @;,5 de#imal 0 < Untuk -5 & "arga reg. adala" N -;4,@5 de#imal N 0 O 0 < N 00 < O 0 < N C9 < Untuk O ; & "arga reg. adala" N - @;,5 de#imal N 0 O <
on#oh ' $
N B4 < M>I ,/ 9U' 54 M>I ,08 9U' 54 M>I , 0 9U' 5/ * ?000 9U' 50 %' 1
+ inisialisasi pemakaian *C*C
+ mengambil data "eksa dari memor$ K mengeluarkan nilai "eksa ke output + ( *C ! dan mengeluarkan le&el analog ke pin A9U'
74
Untuk kemuda"an isila" memor$ ?000 dengan 0, lalu jalankan program #onto" / di atas. Ukurla" tegangan output pada pin A9U' dengan &oltmeter. paka" benar N 5 &olt. Uba"la" memor$ ?000 dengan data *, C9 atau B4 lakukanla" "al $ang sama seperti "al di atas. paka" kesimpulan anda W. 6esala"an ke#il bisa saja tejadi pada *C ini. 6arena adan$a tegangan keluaran alaupun kita mengeluarkan le&el 00 dari reg. ke *C di atas. %e#ara teroritis "arga ourput 00 &olt tapi ken$ataaann$a bisa saja berada pada le&el -50 m& sampai /0 m&. *engan demikian "arga-"arga berikutn$a akan bera#u ke tegangan aal ini. Misaln$a pada nilai 00 < le&el output *C adala" -0 m& maka nilai 01 < le&el output *C adala" (-0 m& @8 m& ! N 48 m&. Ingatla", ba"a bilangan negati&e adala" komplemen ke dua dari bilangan positi) .
(.( DA SEBA3AI S9MBER SI?>A< Untuk per#obaan ini diperlukan sebua" osiloskop untuk meli"at sin$al $ang
di"asilkan ole" midi#om melalui bantuan *C.
10 ?BB
0 -----------------------------------------------------------------------------------------5? ----------------------------------------------------------------------------
Dambar .4 Bentuk sin$al segi empat %in$al segi empat diatas adala" sin$al $ang akan kita keluarkan dan kita tampilkan ke osiloskop melalui *C. Progra! 1 + inisialisasi M>I ,0 Kmengeluarkan le&el 5 & 9U' 50 M>I C,77 Kaktu tunda atau lebar pulsa positi) *C C A= M>I ,C9 Kmengeluarkan le&el -5 & 9U' 50 Kaktu tunda atau lebar pulsa negati) M>I C,77 *C C A= K ulangi le&el 5 > MP
75
6arena kita akan sering mengggunakan program inisialisasi pemakaian analog input output, maka baikn$a program inisialisasi tersebut dibuat menjadi subrutin, $aitu dengan mmenamba"kan perinta" :' diak"ir program inisialisasi tersebut seperti berikut, dan tulisla" program berikut dialamat ?000 <. ?000 M>I , / K inisialisasi 9U' 54 M>I ,08 9U' 54 M>I , 0 9U' 5/ :' 'ulisla" program 1, jangan lupa memanggil program inisialisasi. alankanla" program tersebut dengan perinta" D9Q. Ukurla" sin$al A9U' dengan osiloskop. Bagaimana tampilan $ang adaW Cobala" menguba" "arga aktu tunda atau lebar pulsa dengan menguba" "arga reg. C. alankan kembali program. i"atla" gambar sin$al berikut ini + 5 >------------------------------------------------------------------------------------------------------------------------------------------------------------5 > --------------------------------------------------------------------------Dambar .5 %in$al gigi gergaji %in$al gigi gergaji diatas adala" sin$al $ang akan kita tampilkan. Progra! '+ C inisialisasi M>I , C9 K le&el aal -5 > 9U' 50 K keluarkan le&el M>I C, 77 *CC A= IA K menaikkan le&el se#ara llinier CPI ,1 K le&el maksimum 5 > A= K bila mmen#apai maksimum maka MP Proses terulang kembali Per"atikanla" program /, ban$akn$a Up- Counter, kita "an$a memper"atikan le&el aal dan ak"irn$a saja. 'entu saja anda bisa menguba" amplitudon$a dengan #ara tersebut atau menguba" )rekuensin$a dengan menguba" "arga aktu tunda. *engan program 4 ini, gunakan &oltmeter digital untuk mengukur tegangan keluaran A9U'. alankan program diatas, gunakan tombol ( ! untuk menaikkan le&el. 'egangan atau tombol ( ! untuk menurunkan le&el tegangan dan tombol "ome seperti biasan$a kita gunakan untuk men$elesaikan program.
Progra! * +
C inisialisasi
76
M>I B,00 M>I ,00 9U' 50 C 9771 M9> , C CPI 1 A= IA B M9> ,B MP CPI 9 A= *C B M9> , B MP CPI 97
K pen$impanan le&el al 00 K le&el aal 0 &olt K keluarkan le&el ke *C K tunggu tombol ditekan K ambil kode %CII tombol K uji penekanan tombol ( ! Ktombol ( !berarti le&el dinaikkan
K uji penekanan tombol ( ! Ktombol ( ! berarti le&el diturunkan
K uji penekanan tombol ho!e Bila bukan ulangi penekanan tombol.
A= MP 050
K selesai
(. Dasar Pengon#rolan Mo#or S#epper Motor stepper termasuk sala" satu motor *C $ang operasionaln$a dibidang
roboti# suda" lama dikenal. Motor *C $ang umum menggunakan belitan $ang disatukan $ang di#atu dari dua kabel positi) dan negati). Peruba"an polaritas kabel akan menguba" gerakan motor ke ara" $ang berlaanan (seperti motor pemutar pita rekaman!. ain "aln$a dengan stepper $ang terdiri dari belitan $ang terpisa" pen#antuann$a melalui kabel tersendiri untuk men#atu setiap belitan, karenan$a pada dasarn$a stepper ini memiliki ; bua" kabel untuk men#atu gerakann$a. gera kann$a. *ua bua" kabel pen#atu adala" kabel bersama $ang disatukan dan di"ubungkan ke #atu #atu tegang tegangan an pengge penggerak rak berpol berpolari aritas tas positi positip. p. 6on)ig 6on)igura urasi si motor motor stepper stepper ini terli"at pada gambar dibaa" ini.
L1
L2 L3
L4 L4
L1
L2 L3
L4 L4
77
Dambar .; Motor stepper unipolar dengan #ommon $ang digabung 'abel .4 Pergerakan motor stepper Ao 1 / 4
1 0 1 1 0
/ 0 0 1 1
4 1 0 0 1
1 1 0 0
Biasan$a kabel moteor stepper terpisa" menjadi 4 kabel dan 4 kabel. *engan mengukur "arga ta"anan antar kabel maka kita dapat menemukan kabel $ang akan disatukan (kabel bersama!. *C. 6arena kedua kabeln$a di"ubu di"ubungk ngkan an ke positi positip p poer poer maka maka kini kini tingga tinggall kabel kabel lagi. lagi. Per"at Per"atika ikanla nla" " gambar motor stepper dan tabel pergerakan di atas, ada lilitan $ang kutubkutubn$a ter"ubung pada kabel $ang kini kita ba"as. Untuk menggerakkan stepper stepper maka maka setiap setiap lilitan lilitan "arus "arus mendap mendapat at #atuan #atuan tegang tegangan an seperti seperti $ang $ang di tunjukkan ole" tabel diatas. Bit 0 men$atakan kabel tersebut tidak ter"ubung ke positip maupun negatip atau ground, sedangkan bit 1 men$atakan kabel ter"ubung ter"ubung ke polaritas negatip ataupun ground. Per"atikan lagi urutan lilitan $ang sengaja disilang pen$usunann$a $aitu 1, 4, / lalu l. *C dan memakai memakai arus arus listrik listrik $ang $ang #ukup #ukup besar besar, karena karenann$ nn$aa stepper stepper ini tidak tidak dapat dapat dikendalika dikendalikan n langsung langsung menggunak menggunakan an komponen komponen IC atau langsung langsung di#atu ole"
78
komputer. 6ita "arus menggunakan suatu perangkat pembantu untuk mengatasi "al ini $ang disebut *I>:F. *ri&er adala" alat bantu $ang menaikan le&el tegangan dan arus sin$al penggerak sesuai dengan beban $ang dikendalikan. (..1 Pengon#rolan Dengan Mii/o! 6on)igurasi "ubungan antara motor stepper dengan dri&er dan poer suppl$
ter"adap mikrokomputer diperli"atkan di atas $ang terdiri dari 4 bagian $aitu moto motorr step steppe perr seba sebaga gaii alat alat $ang $ang diko dikont ntro rol, l, modu modull dri& dri&er er 1/ >*C >*C sebag sebagai ai pengggerak stepper dan alat pengontrol gerakan stepper. lat pengontrol bisa "an$a berupa rangkaian ke#il ing #ounter biasa, tetapi kita akan menggunakan midi#om sebagai alat pengontroln$a karena kita akan meman)aatkan kelebi"ankelebi"an mikroprosesor dalam menangani setiap pengontrolan. ang perlu dikerjakan midi#om sangat seder"ana, $aitu memberikan bit-bit pengontrol sebagaimana ditunjukkan ole" tabel. Pekerjaaan ini tentu saja sama "aln$a dengan membuat membuat program sebua" ing #ounter dengan dengan data 44<, seperti berikut ini+
M>I , 44 9U' 50 EI *, *, 0050 C 977 CC MP
+ data aal posisi bit penggerak + keluarkan bit kontrol ke dri&er + perlambatan penggerak motor + bergerak ke kanan ataupun ke kiri + ulangi terus pergerakan
Bila peralatan tela" disusun seperti kon)igurasi di atas, maka jalankanla" program ing #ounter di atas, bila memakai perinta" C maka stepper akan bergerakberputar ke kanan, sebalikn$a bila tidak menggunakan perinta" C maka akan bergerak ke kiri. bila stepper tidak berputar dan "an$a berdetak-detak saja atau pergerakann$a tidak stabil maka #obala" tukar tempat posisi 4 dan , bila sala" juga tukar posisi 1 dan /, bila tidak mau juga periksala" modul dri&ern$a. (. ' Karak#eris#ik Karak#eris#ik S#epper
motor motor stepperW Ini "an$ala" "an$ala" aal kerja kita untuk untuk beranjak kepada kepada kelebi"an kelebi"an motor stepper dari motor *C umum$a. Motor *C $ang umum juga bisa bergerak
79
ke kiri atau ke kanan, lalu apa bedan$aW
6elebi"an motor stepper adala"
ketelitian posisi putarann$a $aitu dapat ber"enti seketika dengan tepat pada sudut $ang kita inginkan. ndai motor *C umum $ang sedang berputar kita balikan polaritasn$a, maka pasti masi" tersisa beberapa putaran sebelum ia berputar kebalikann$a. M>I ,44 + data aal pergerakan C 9771 + tunggu ada tombol $ang ditekan 9U' 50 + kirim bit kontrol ke dri&er CC + ara" pergerakan ke kanan atau ke kiri MP + ulangi terus alankan program diatas, sebelumn$a tandaila" posisi aal putaran stepper, kemudian etela" menjalankan program di atas tekanla" sembarang tombol, stepper akan bergerak memutar setiap kita tekan sembarang tombol.
6etelitian stepper
N
N
@,5derajatstep
%emakin ke#il derajat setiap step gerakan itu berarti semakin tinggi ketelitian stepper tersebut dalam mengontrol pergerakann$a. Ban$akn$a step untul satu putaran (4;00! menujukkkan juga ban$akn$a posisi $ang dapat kita #apai. motor stepper dengan @,50 sama dengan memiliki 8 posisi selama satu putaran, sedangkan stepper dengan 1,/ 0 memiliki 400 posisi selama satu putaran. alankanla" program berikut ini, namun sebelumn$a isila" memori pada alamat ?000 < dengan ban$akn$a step selama 1 putaran, #onto" bila ban$akn$a step selama 1 putaran adala" 8 step maka isila" memori ?000 < dengan angka 40 < atau bila "an$a / step isila" dengan 18 < pada memori tersebut. 'ulisla" program berikut pada alamat memori dibaa" ?000 <. Program ini "an$ala" program re&isi dari program sebelumn$a, disini dilengkapi dengan indikator gerakan $ang menampilkan setiap gerakan stepper
80
dalam bentuk tampilan di la$ar seban$ak step setiap 1 putaran, setela" satu putaran maka tampilan akan diulangi lagi. Ingatla" pada rutin 97:: $ang menampilkan kode %CII $ang berada di reg C terdekat dengann$a. nda bisa saja menguba" karakter apa $ang akan digunakan untuk dijadikan tampilan indikator gerakan di la$ar dengan menguba" isi reg C tersebut dengan kode %CII karakter $ang anda inginkan.
M>I B, 44 M>I C,9C C 977 M>I C,@7 * ?000 IA M9> :, M9> , B 9U' 50 C M9> B, C 977: *C : A= MP
+ Inisialisasi bit kontrol + besi"kan la$ar, kursor di kiri atas + Inisialisasi karakter penampil gerakan + ambil data ban$akn$a step satu putaran + tamba" 1 agar "itungan looping benar + data gerakan disimpan ke reg : + ambil bit kontrol dan bergerak ke kanan + ara" gerakan ke kanan +posisi bit kontrol disimpan di reg B + tampilkan karakter tanda pergerakan + mengulangi seban$ak step 1 putaran + ulangi dari aal lagi
(..* Pengon#rolan Dengan ' Buah Mo#or S#epper *ikarenakan sebua" motor stepper dapat kita gerakkan "an$a dengan
menggunakan bit pengontrol maka kita sebenarn$a dapat pula menggerakkan dua bua" stepper sekaligus menggunakan 8 bit kontrol karena kita memiliki port output 8 bit. *engan program sebelumn$a kita dapat kita dapat meli"at ba"a port 50 $ang terdiri dari 8 bit dapat kita kelompokkan menjadi bit %B dan bit M%B.dengan menggunakan program sebelumn$a kita meli"at antara bit %B ataupun bit M%B sebagai pengontrol sebua" stepper atau 8 bit tersebut untuk menggerakkan / bua" stepper dengan ara" dan ke#epatan $ang sama tentun$a. on#oh. Program berikut ini menunjukkan bagaimana kita bisa menggerakkan / bua" stepper sekaligus dengan ara" $ang berlaanan tetapi dengan ke#epatan $ang sama.
81
M>I ,44
Kmengisi data kontrol aal ke memori pen$impan data kontrol stepper 1 dan /
%' 7000 %' 7001 9U' 50 * 7000
Kkirimkan data kontrol aal ke dri&er Kmengambil data stepper 1,menguba"n$a untuk pergerakan berikutn$a (ke kanan!
C %' 7000 AI 97 M9> B, * 70001
K men$impan kembali data kontrol stepper 1 K stepper satu di gerakkan ole" bit %B K bit %B untuk stepper 1 disimpan di B Kmengambil data stepper /, menguba"n$a untuk pergerakan
%' 7001 AI 70 9 B
berikutn$a C (ke kiri! K men$impan kembali data kontrol stepper / K bit M%B untuk menggerakkan stepper / K bit %B dan M%B disatukan untuk menggerakkan kedua stepper sekaligus
9U' 50 EI *,0010 C 977 MP
K perlambatan pergerakan stepper K ulangi terus
%e#ara teknisn$a untuk menggerakkan sebua" stepper kita "arus menggeser 8 bit data (pemakaian perinta" C atau C!.karenan$a kita tidak bisa menggunakan data bersama untuk stepper 1 dan /.*ata pengontrol steper 1 diletakkan di suatu memori(7000
82
stepper sebelum di keluarkan ke port 50 dan menggerakan stepper. Pemakaian reg. * dan reg.: sebagai pen$impanm tempat kontrol $ang bersesuaian untuk masingmasing stepper jelas diperlukan. %tepper 1 $ang digerakkan ole" bit sebela" kanan terminal 50 ( bit %B! "an$a memiliki bit %B itu saja pada register * sedangkan bit M%B n$a sengaja dikosongkan untuk tempat bit M%B stepper /. adi perinta" AI 07 dan AI 70 di maksudkan untuk men$aring bit $ang bersesuaian $ang di pakai setiap stepper. Maksudn$a alaupun bit pengontrol stepper 1 dan 8 bit $ang di ambil dari memori 7000 namun $ang di pakai "an$a bit %B n$a saja, jadi untuk di tampilkan bit M%Bn$a tidak perlu disertakan. Cobala" pelajari dan per"atikan kembali program tersebut. Untuk membuat program lebi" menarik, maka anda bisa menggambarkan menun$a di la$ar lengkap dengan in)ormasi tombol-tombol $ang digunakan dan )ungsin$a. *emikianla" ba"asan kita sementara tentang pemakaian midi#om untuk pengontolan motor stepper, semoga anda dapat mema"amin$a dan dapat mengembangkan$a untuk aplikasi $ang lain. (.7 Rangku!an 1. Programmable Perop"eral Inter)a#e (PPI 8/55! digunakan untuk memberikan
/.
4.
akses CPU untuk parallel programmable I9. Mode kerja PPI 8/55 dioperasikan dalam 4 mode+ - Mode 0+ Basi# I9 - Mode 1+ %trobed I9 - Mode /+ *ire#tional Bus gar mikroprosesor dapat mengakses sin$al input analog maka diperlukan *C (nalog to *igital Con&erter!, sedangkan untuk mengontrol peralatan analog diperlukan *C (*igital to nalog Con&erter!.
(., Per#an%aan 1. Berapaka" "arga tegangan keluaran *C bila data "e3a $ang dikeluarkan
adala" ?/ <, atau berapaka" "arga tegangann$a $ang terdeteksi ole" midi#om bila "asil kon&ersi *C adala" ?/< (maksudn$a sama!. /. Berapa pula "arga tengangan untuk nilai "e3a n$a 4
83
tombolJuntuk stepper/.Program ini sengaja di pisa" menjadi satu program utama dan satu subrutin atau anda bisa saja men$atukann$a.
BAB @ MIKROPROSESOR )0))
Pada bab ini dijelaskan gambaran umum mikroprosesor 8088 berupa arsitektur, blok diagram dan #ara kerja mikroprosesor 8088. Mikroprosesor 8088 adala" multipurpose mikroprosesor
$ang
diimplementasikan dengan teknologi A-#"annel, depletion load, sili#on gate (
84
sejumla" instruksi program dan data, sedangkan s$stem eksternal berupa perangkat keras $ang terdiri dari 9M (ead 9nl$ Memor$!, M (andom ##es Memor$!, bu))er, mikroprosesor, I9 de&i#e dan peralatan lain $ang menunjang. %istem minimum adala" penerapan mikroprosesor pada suatu rangkaian digital, dengan komponen minimal se"ingga sistem mikroprosesor dapat bekerja. Mikroprosesor bekerja dalam s$stem minimum artin$a tidak menggunakan IC #o prosesor 808@ untuk meng"itung )loating point a"mad setiaan, /005J Tujuan Khusus Ma"asisa mampu menjelaskan arsitektur, )ungsi masing-masing blok diagram
serta menjelaskan #ara kerja mikroprosesor 8088. .1 Mikroprosesor )0))
Mikroprosesor 8088 mulai diperkenalkan ole" Intel Corporation pada ta"un 1?@8. Mikroprosesor ini mengaali sejara" perkembangan mikroprosesor Intel selanjutn$a, seperti 8018;, 80/8;, 8048;, 808;, Intel Pentium I, sampai /00; + Intel Luad-#ore Eeon E4/10E4//0. %emua instruksi $ang terdapat pada mikroprosesor
8088
sepenu"n$a
dapat
dijalankan
pada
mikroprosesor-
mikroprosesor Intel tersebut. 6arena itu, untuk mema"ami peran#angan "ardare dan so)tare pada PC sekarang, ada baikn$a jika nda lebi" da"ulu mema"ami peran#angan "ardare dan so)tare pada mikroprosesor 8088 ini. Mikroprosesor 8088 mempun$ai 8 bit jalur data dan /0 bit jalur alamat. alur data memiliki pin $ang sama dengan jalur alamat, artin$a pada saat tertentu digunakan sebagai jalur data dan pada saat $ang lain digunakan sebagai jalur alamat. 6arena satu pin memiliki dua )ungsi, $aitu sebagai jalur data dan jalur alamat maka digunakanla" sistem time multiple3ing, $aitu penggunaan jalur $ang sama untuk )ungsi dan aktu $ang berbeda, se"ingga tidak bisa data dan alamat dikirim pada saat $ang bersamaan. Mikroprosesor 8088 dibuat dalam bentuk IC dengan kaki seban$ak 0 pin (jenis *IP 0!. da dua mode $ang dapat digunakan pada mikroprosesor 8088, $aitu mode minimum dan mode maksimum. Pena $ang menjadi penentu penggunaan mode adala" pena MAME. Mode minimum biasan$a digunakan untuk sistem $ang seder"ana $ang umumn$a menggunakan prosesor pada satu PCB. %edangkan
85
mode maksimum umumn$a digunakan untuk sistem $ang lebi" kompleks $ang menggunakan multi I9 dan memori $ang terpisa" serta dapat pula digunakan dengan #o-prosesorn$a (#o-prosesor untuk 8088 adala" 808@!. Mikroprosesor 8088 mampu mengalamati memori sampai 1 MB. Memori ini digunakan untuk men$impan kode biner dari instruksi $ang akan dijalankan ole" P, selain itu memori juga digunakan untuk men$impan data se#ara sementara. *engan tamba"an unit I9 memungkinkan P 8088 untuk menerima data dari luar (operasi input! ataupun mengirim data keluar (operasi output!.
Dambar 5.1 *iagram Pin Mikroprosesor 8088
86
Dambar 5./ *iagram peaktuan siklus *G ketika terjadi operasi I9 dan Memori ole" P 8088 .' Kon&igurasi Pena JP )0)) Dambar di atas memperli"atkan diagram peaktuan $ang menunjukkan siklus ba#a tulis ketika terjadi operasi I9 dan Memori ole" P. %eluru" penjelasan tentang pena-pena pada mikroprosesor 8088 ini akan selalu menga#u pada diagram peaktuan tersebut. Pena pada P 8088 ada $ang tidak dipengaru"i ole" peruba"an mode baik mode maksimum ataupun mode minimum dan ada pula pena $ang ber)ungsi "an$a pada saat mode maksimum. Pena $ang tidak dipengaru"i ole" peruba"an mode baik mode maksimum ataupun mode minimum, diantaran$a adala"+ 1. Bus alamat (*0-*@, 8-15, dan 1;%4-1?%;!. Mikroprosesor 8088 mempun$ai /0 pin jalur alamat se"ingga dapat menjangkau / /0 (1 MB$te! lokasi memori. Pena-pena ini "an$a ber)ungsi pada saat '1 (li"at diagram peaktuan!. Pada saat '/ sampai ' ada sebagian pin $ang ber)ungsi sebagai data dan juga sebagai status. /. Bus data (*0-*@!. Mikroprosesor 8088 mempun$ai jalur data seban$ak 8 pin dan bisa digunakan se#ara bidere#tional (dua ara"!.
87
/5; b$te. Pin-pin ini ber)ungsi sebagai jalur data "an$a pada saat '/-'. Pada saat '1 ber)ungsi sebagai jalur alamat. 4. 6ontrol ba#a (*!. %in$al ini akti) renda". ika pena ini berlogi# nol berarti P sedang melaksakan pemba#aan data. %in$al ini akti) dipertenga"an '/ dan kembali tidak akti) dipertenga"an '. . Clo#k (C6!. aitu masukan sin$al detak $ang diberikan dari luar untuk mensinkronkan segala kegiatan pada P. Miroprosesor 8088 dapat bekerja pada )rekuensi #lo#k ,@@ M<2 atau 8 M<2 untuk &ersi turbo. 5. 6ontrol aktu tunggu (:*!. %in$al :* ini disampel pada sisi naik '/. ika sin$al :* ini berlogi# 0 berarti akan disisipkan 'G'ait antara '4 dan '.
atau
operasi-operasi
$ang
sedang
berlangsung,
diantaran$a pengambilan instruksi, memba#a memori, menulis memori, dan operasi-operasi $ang lain. %in$al ini dikeluarkan pada saat keadaan '/-'. *e)inisi dari status % dan %4 ditunjukkan pada 'abel berikut ini.
88
'abel 5.1 %in$al %tatus %
%4
ang dijangkau saat terjadi siklus bus
0
0
:3tra segment (:%!
0
1
%ta#k segment (%%!
1
0
Code segment (C%!
1
1
*ata segment (*%!
10. Catu da$a (>CC dan DA*!. Mikroprosesor 8088 membutu"kan >## N 5> $ang masi" bisa bertoleransi sebesar _ 10c dari 5 >. %in$al $ang ber)ungsi "an$a pada mode minimum (mode maksimum tidak digunakan! adala"+ 1. %in$al tulis (G!. %in$al ini akti) renda". ika sin$al ini berlogi# 0, berarti P sedang melaksanakan operasi tulis data ke unit memori atau I9. %in$al ini akti) pada saat '/-'. /. %in$al kontrol memori dan I9 (I9M!. ika pena ini berlogika 0, berarti saat ini pada siklus bus sedang berlangsung operasi inputoutput. ika pena ini berlogi# 1, berarti saat ini pada siklus bus sedang berlangsung operasi memori. 4. ddress at#" :nable (:!. %in$al ini digunakan sebagai pena"an alamat $ang baru masuk dalam suatu proses siklus mesin. %in$al ini dapat digunakan untuk dimultipleks dengan alamat, data, dan status. %in$al ini mengeluarkan logi# 1 pada saat #lo#k '1. . Pengiriman dan penerimaan data (*'!. ika sin$al ini berlogi# 1, ara" data adala" dari P menuju keluar. ika sin$al ini berlogi# 0 maka ara" data dari luar menuju P. 5. *ata :nable (*:A!. %in$al ini biasan$a digunakan untuk mengSonSkan bu))er (lat#"! $ang di"ubungkan kebus data. ;. Interrupt #knoledge ( IA' !. %in$al ini se#ara k"usus digunakan sebagai tanggapan ter"adap suatu instruksi IA'. @.
89
1. %tatus siklus bus (%0, %1, %/!. %in$al ini merupakan keluaran $ang akan diberikan ole" IC lain $ang ber)ungsi sebagai bus kontroler. /. 6un#i (9C6!. %in$al ini akan mengeluarkan logika 0 selama pelaksanaan instruksi 9C6 se"ingga akan men#ega" prosedur lain menjangkau sistem. 4. %tatus antrian (L%0, L%1!. %in$al ini akan memberita"u in)ormasi apa $ang tela" dipinda"kan dan in)ormasi apa $ang ada dalam antrian seaktu terjadi siklus #lo#k sebelumn$a. . o#al Bus Control (L D'1 dan L D'0!. %in$al ini menggantikan )ungsi <9* dan <* pada mode minimum. .* Arsi#ek#ur In#ernal JP )0)) rsitektur internal P 8088 dibagi menjadi dua bagian, $aitu BIU (Bus
Inter)a#e Unit! dan :U (:3e#ution Unit!. BIU ber)ungsi untuk menjalankan operasi bus seperti menjemput instruksi, memba#a data dan menulis ke memori, menerima input dan mengeluarkan output ke unit peri)eral. *ari BIU ini, di"asilkan bus data seban$ak 8 bit. Untuk menjalankan )ungsin$a, BIU memiliki register segment, register komunikasi internal, pointer instruksi, antrian kode objek instruksi, bus alamat, dan bus kontrol logika. :U ber)ungsi untuk menterjema"kan dan menjalankan instruksi. .( Regis#er )0)) Mikroprosesor 8088 mempun$ai kelompok register internal $aitu register
data (general purpose register!, register penunjuk instruksi (intru#tion pointer register!, , register segment (segment register!, serta )lag register. .(.1 Regis#er Da#a :3eneral Purpose Regis#er; . egister data pada P 8088 dibagi menjadi kelompok register $ang
semuan$a ber)ungsi untuk pen$impanan data se#ara sementara. 6eempat kelompok register ini adala" register E, BE, CE. dan *E. egister E, BE, CE, dan *E merupakan register data 1; bit. egister 1; bit dari kelompok ini mempun$ai suatu #iri k"as, $aitu dapat dipisa" menjadi / bagian dimana masingmasing bagian terdiri dari 8 bit, $aitu register data < dan (untuk E!, B< dan B (untuk BE!, C< dan C (untuk CE!, dan *< dan * (untuk *E!. k"iran < menunjukkan
90
%elain ber)ungsi sebagai pen$impan data serba guna $ang dapat digunakan se#ara bebas ole" pemogram, register-register tersebut memiliki juga )ungsi)ungsi lainn$a se#ara k"usus, $aitu+ Regis#er A :A//u!ula#or; biasan$a digunakan pada operasi aritmatika (perkalian dan pembagian!, dan operasi I9 1; bit. Regis#er B :Base; biasan$a digunakan untuk menunjukkan suatu alamat o))set dari suatu segment, men$impan basis alamat dari data sebagai re)erensi dari instruksi translate (E'!. Regis#er :oun#; biasan$a digunakan untuk menunjukkan ban$akn$a looping $ang akan terjadi, sebagai register pen#a#a" se#ara impli#it dalam beberapa instruksi. Regis#er D :Da#a; biasan$a digunakan untuk menampung sisa "asil pembagian 1; bit serta pada operasi I9 se#ara tidak langsung (1; bit! .(.' Regis#er Penunjuk an Regis#er Ineks :Ineks an Poin#er Regis#er;. Pointer register men#akup register base, register indek, program #ounter dan
sta#k pointer. Droup pointer dan indek terdiri dari register IP, %P, BP, %I dan *I. Mikroprosesor 8088 mempun$ai dua bua" register pointer (register %P dan BP! serta dua bua" register indeks (register %I dan *I!. SP :S#a/k Poin#er; digunakan untuk mengalamati sta#k. *ata $ang terdapat pada %P (%ta#k Pointer! memungkinkan pemogram untuk menjangkau lokasi memori dari sta#k segment. %ta#k pointer $ang berpasangan dengan sta#k segment (%% + %P! digunakan untuk menunjukkan alamat dari sta#k M (andom ##ess Memor$!. %ta#k M ini biasan$a digunakan untuk men$impan in)ormasi $ang ber"ubungan dengan operasi sta#k, seperti isi PC, alamat kembali (return address! pada instruksi C, dan akumulator. Pen$impanan in)ormasi pada sta#k M menggunakan sistem I79 (ast In 7irst 9ut!, artin$a data $ang terak"ir dimasukkan (PU%
91
DI :Des#ina#ion Ineks; se#ara normal digunakan untuk mengalamati data tujuan
dan instruksi string, juga digunakan untuk men$impan o))set suatu operand selama berlangsungn$a suatu operasi string. IP :Ins#ru/#ion Poin#er; register penunjuk instruksi merupakan register 1; bit $ang ber)ungsi untuk menunjukkan lokasi instruksi berikutn$a $ang akan dijalankan. egister IP ini berpasangan dengan C% (#ode segment! dimana penulisann$a adala" sebagai berikut C% + IPJ. adi lokasi alamat $ang ditunjuk bergantung pada #ode segment $ang terdapat pada segment register. .(.* Regis#er Seg!en# :Seg!en# Regis#er;. Mikroprosesor 8088 meng"asilkan /0 bit alamat se"ingga dapat menjangkau
1 MB lokasi memori (/ /0 N 1085@; B$te atau disingkat 1 MB!. Aamun pada P 8088 register $ang tersedia "an$a 1; bit (/ 1; N ; 6B!, se"ingga register indek dan pointer tidak #ukup lebar untuk mengalamati keseluru"an memori se#ara langsung. Untuk menjangkau alamat 1 MB, maka memori pada P 8088 menggunakan segmen. %egmen memori adala" sebua" blok memori seban$ak ; 6B $ang dialamati ole" register k"usus $ang disebut register segmen. %egment-segment register ini adala"+ Code %egment (C%!, *ata %egment (*%!, %ta#k %egment (%%!, dan :3tra %egment (:%!. S :oe seg!en#; digunakan untuk men$impan kode program. egister ini terutama diuba" dengan instruksi jump, #all, atau return. lamat dari instruksi selanjutn$a
$ang akan dilaksanakan ole 8088 dibangkitkan dengan
menamba"kan isi dari instru#tion pointer dengan isi dari C% 3 1;. DS :Da#a seg!en#; digunakan untuk men$impan data program. ES :E2#ra seg!en#; digunakan untuk men$impan segment data tamba"an"an$a untuk operasi string. SS :S#a/k seg!en#; memori $ang bdigunakan untuk sta#k men$impan alamat kembalin$a interupsi dan subrutin. 6eempat register diatas menunjuk kelokasi masing-masing segment. 6arena register segment "an$a terdiri dari 1; bit, sedangkan memori $ang dapat dijangkau seban$ak /0 bit, maka unit BIU (Bus Inter)a#e Unit! akan menamba" bit lagi pada %B. %ebagai #onto", jika register :%N/@/1<, maka register akan menunjuk kelokasi /@/10<. %etiap segment "an$a dapat menampung ; 6B lokasi memori, se"ingga jika C%N000<, maka lokasi memori untuk Code %egment dimulai dari 0000< sampai 7777< (; 6B!.
92
%etiap kali #atu da$a di"idupkan, P berada dalam keadaan sembarang dimana semua register berisi data $ang tidak dapat diramalkan.
"an$a 1/ bit, $aitu ? bit untuk status dan 4 bit untuk kontrol. *iagram blok )lag register adala" sebagai berikut+ E E E E 97 *7 I7 '7 %7 =7 E 7 b15 b1 b14 b1/ b11 b10 b? b8 b@ b; b5 b
E P7 E C7 b4 b/ b1 b0
&-ngsi masingmasing register terse-t aa"ah+
jika berlogik 1 berarti terdapat #arr$ atau borro pada M%B (Most C7 %igni)i#ant Bit! $ang terjadi selama operasi aritmatika. ika berlogik (Carr$ 7lag! 0 berarti tidak terdapat #arr$ atau borro. P7 (Parit$ 7lag!
jika berlogik 1 berarti 8 bit terenda" meng"asilkan paritas genap dan jika mang"asilkan paritas ganjil P7 akan berlogik 0 jika berlogik 1 berarti terdapat #arr$ pada bit ke pada register
7
dan bila tidak akan berlogi# 0. egister ini biasan$a digunakan pada
(u3illar$ operasi BC*, seperti perinta" . =7 (=ero 7lag!, jika berlogi# 1 Carr$ 7lag! maka operasi aritmatika meng"asikan sisa 0, jika berlogi# 1 maka tidak meng"asilkan 0 %7 jika digunakan bilangan bertanda bit ini akan bernilai 1. %edangkan (%ign 7lag! bila %7 berlogik 0 berarti bilangan diperlakukan sebagai bilangan tidak bertanda. Bilangan bertanda dibagi menjadi bilangan positi) (! dan bilangan negati) (-!. Pada bilangan bertanda, bit terak"ir (bit ke-1;! diperlakukan sebagai tanda (! atau tanda(-!. ika bit terak"ir
93
tersebut bernilai 1 berarti bilangan tersebut negati) dan jika bit terak"ir bernilai 0 berarti bilangan tersebut positi) jika berlogik 1 berarti berada pada keadaan single step. 6eadaan ini '7 ('ra#e 7lag! digunakan pada program *ebug jika berlogik 1 berarti Maskable Interrupt eHuest dapat dilakukan. I7 (Interrupt ika berlogik 0 maka permintaan interupsi tidak dapat dipenu"i ole" 7lag!
CPU
jika terjadi 9&er 7lo pada operasi aritmatika, bit ini akan bernilai 97 (9&er 7lo 1. *an jika tidak terjadi 9&er 7lo pada operasi aritmatika, bit ini 7lag! *7
akan bernilai 0 jika berlogik 1 berarti pada instruksi string nilai register akan
(*ire#tion diturunkan se#ara otomatis dan jika berlogik 0 maka akan dinaikkan 7lag!
se#ara otomatis
E
'idak digunakan
. Ala!a# Rela#i& an Ala!a# Absolu# *idalam suatu segment, alamat dimulai dari 0000< sampai 7777< (;6B!.
lamat ini disebut juga alamat relati)o))set. %edangkan alamat absolut dari 0000< sd 7777< adala" 00000< sd 77777<. Berikut kita li"at #ara pengkon&ersian alamat relati) kealamat absolut. Pengkon&ersian dapat dilakukan dengan menggeser nilai segment seban$ak bit kekiri dan kemudian dijumla"kan dengan nilai o))set. tau #ara $ang lebi" seder"ana adala" dengan mengalikan nilai segment dengan / pangkat (10
145@< + /;8< 145;< + /@8< 145@0< 145;0< /;8< /@8< RRRRRRRRRR RRRRRRRRRR lamat absolut + 15?*8< 15?*8< Pada kedua #onto" diatas terli"at jelas alamat relati) 145@< + /;8< sebenarn$a menunjukkan lokasi $ang sama didalam memori (alamat absolutn$a! dengan alamat relati) 145;< + /@8< $ang disebabkan adan$a o&erlapping. .7 3enera#or lo/k 9n#uk Mikroprosesor )0))
94
'idak seperti 8085, mikroprosesor 8088 tidak mempun$ai pembangkit #lo#k sendiri, ia "arus diberi #lo#k dari luar. Miroprosesor 8088 dapat bekerja pada )rekuensi #lo#k ,@@ M<2 atau 8 M<2 (untuk &ersi turbo!. Mikroprosesor 8088 juga membutu"kan sin$al sinkronisasi reset ter"adap #lo#k. Untuk memenu"i pers$aratan diatas, tersedia dipasaran IC $ang tela" diran#ang sebagai generator #lo#k $aitu IC 8/8 (nda dapat saja menggunakan pembangkit-pembangkit #lo#k $ang lain, asalkan sesuai dengan spesi)ikasi #lo#k untuk 8088!. Dambar dibaa" ini memperli"atkan pena-pena dari IC 8/8.
Dambar 5.4 Pin IC 8/8 rti pena-penan$a adala" sebagai berikut+ >##
Catu da$a 5>
DA*
Dround
E1TE/
Masukan untuk #r$stal eksternal
9%C
C6
PC6
6eluaran osilator $ang mempun$ai )rekuensi $ang sama dengan )rekuensi #r$stal %in$al #lo#k untuk dikirimkan keP.%in$al ini mempun$ai )rekuensi /4 dari )rekuensi #r$stal dengan siklus kerja 44c %in$al ini mempun$ai )rekuensi ` dari )rekuensi $ang dikeluarkan pena C6, dan memiliki siklus kerja 50c Pena ini merupakan penentu re)erensi untuk #lo#k. ika pena ini
7 C
berlogi# 1, maka #lo#k mendapat sumber dari pena :7I, sedangkan jika berlogi# 0 mendapat sumber dari pena 9%C
:7I
C%AC
Masukan )rekuensi eksternal $ang digunakan untuk sebagai sumber #lo#k %inkronisasi #lo#k $ang digunakan untuk sinkronisasi beberapa IC 8/8. ika menggunakan #r$stal pena ini dibuat 0
95
:%
*igunakan untuk sin$al meng"asilkan reset *igunakan
:%:'
meng"asilkan
sin$al
reset
untuk
P
setela"
disinkronisasi da"ulu dengan :% dan C6 %in$al ini ber)ungsi untuk memberita"ukan P ba"a unit I9 dan
:*
memori siap untuk mengirim atau menerima data
:A1 dan *1
%in$al ini digunakan untuk membangkitkan keadaan tunggu ke P
:A/ dan %ama dengan pena :A1 dan *1, sin$al ini digunakan untuk */
membangkitkan keadaan tunggu ke P %inkronisasi untuk memili" tipe masukan $ang diberikan pada IC
%AC
8/8
Untuk membangkitkan sin$al #lo#k pada IC 8/8 ini ada / #ara, #ara pertama $aitu dengan memasang #r$stal pada masukan E1 dan E/ serta dengan memberikan logi# 0 pada pena 7C. Cara $ang kedua adala" dengan memberikan )rekuensi eksternal pada pena :7I dan pena 7C dibuat 1. ., on#oh Aplikasi Progra!!ing$ Membuat suatu program dengan instruksi mesin untuk melakukan kalkulasi+ *E N E BE O CE, dimana data untuk register E diambil dari memori
dengan alamat 000@, data untuk register BE adala" 1/4<, data untuk register CE diambil dari top-o)-sta#k "asil kalkulasi terak"ir "arus ada di register *E. Progra!$
M9>
E,000@J
M9>
BE,1/4
P9P
CE
**
E,BE
%UB
E,CE
M9>
*E,E
ika %%N*%N0770 dan %PN777@, dimana isi memori+ 0770+0000 0770+7770
00 11 // 44 55 ;; @@ O 88 ?? BB CC ** :: 77 00 11 // 44
55
;; @@ O
88 ?? BB CC **
:: 77
96
maka isi dari register E, BE, CE, dan *E setela" program selesai dieksekusi adala"+ E N1/4(
CE
N88@@(
BE
*E
N 1/4(
N 1/4(
.) Rangku!an 1. da dua mode $ang dapat digunakan pada mikroprosesor 8088, $aitu mode
/.
minimum dan mode maksimum. rsitektur internal P 8088 dibagi menjadi dua bagian, $aitu BIU (Bus Inter)a#e Unit! dan :U (:3e#ution Unit!. BIU ber)ungsi untuk menjalankan operasi bus seperti menjemput instruksi, memba#a data dan menulis ke memori, menerima input dan mengeluarkan output ke unit peri)eral. :U
ber)ungsi untuk menterjema"kan dan menjalankan instruksi. 4. %in$al status digunakan untuk mendeteksi suatu keadaan atau operasi $ang sedang berlangsung, diantaran$a pengambilan instruksi, memba#a memori, .
menulis memori, dan operasi-operasi $ang lain. Mikroprosesor 8088 mempun$ai kelompok register internal $aitu register data (general purpose register!, register penunjuk instruksi (intru#tion pointer
5.
register!, register segment (segment register!, serta )lag register. 'idak seperti 8085, mikroprosesor 8088 tidak mempun$ai pembangkit #lo#k sendiri, ia "arus diberi #lo#k dari luar. Miroprosesor 8088 dapat bekerja pada )rekuensi #lo#k ,@@ M<2 atau 8 M<2 (untuk &ersi turbo!. Mikroprosesor 8088 juga membutu"kan sin$al sinkronisasi reset ter"adap #lo#k.
.+ Per#an%aan
1. egister tra#ing *iberikan suatu program+ 0700+0100 M9>
BE,000@
0700+0104 M9>
E,BEJ
0700+0105 **
E,BE
0700+010@ PU%<
E
0700+0108 PU%<
BE
0700+010? =
0111
0700+010B A*
<,B
0700+010* =
010?
97
0700+0107 M9>
BEJ,E
0700+0111 M9>
BE1J,E
0700+011 dimana isi memori sebelum program dijalankan adala"+ 0770+0000 00 01 0/ 04 0 05 0;
0@ 08
0?
0 0B 0C
0* 0:
1@ 18
1?
1 1B 1C
1* 1:
07 0770+0010 10 11 1/
14 1 15 1;
17 dan isi register sebelum program dijalankan adala"+ EN0000 BEN0000 CEN0000 *EN0000 %PN001@ BPN0000 %IN0000 *IN0000 *%N0770 :%N0770 %%N0770 C%N0700 IPN0100 A> UP :I P A= A P9 AC 'entukan isi dari register E, BE, IP, %P, dan =7 setiap kali suatu instruksi selesai dieksekusi. /. %etela" semua instruksi dijalankan, tentukan isi memori. 4. Berikan #onto" instruksi 5 t$pe addressing mode $ang ada pada 8088. . elaskan alasan diperlukann$a segmentasi pada uP8088. 5. elaskan jenis-jenis bus $ang ada beserta )ungsin$a pada uP8088.
DATAR P9STAKA
98
1J o"n U))enbe#k, Mi#ro#omputer and Mi#ropro#essor '"e 8080, 8085, and =80 Programming, Inter)a#ing and 'roubles"ooting, Prenti#e
TAKARIR 1. Mikroprosesor$ adala" suatu #"ip IC ( Integrated Circuit ! $ang di
dalamn$a terkandung rangkaian U ( Arithmetic Logic Unit ! rangkaian CU (Control Unit ! dan egister. Mikroprosesor disebut juga dengan CPU (Central Processing Unit !. Mikrokomputer '. Mikroko!pu#er$
adala"
interkoneksi
antara
mikroprosesor (CPU! dengan memori utama (main memor$! dan antar
99
muka input-output (I9 inter)a#e! $ang dilakukan dengan menggunakan sistem interkoneksi bus. *. Mikrokon#roler adala" #"ip $ang didalamn$a terkandung sistem interkoneksi antara Mikroprosesor, M, 9M, I9 inter)a#e, dan beberapa perip"eral. (. P9 :en#ral Pro/essing 9ni#;$ Aama lain mikroprosesor $aitu suatu unit sebagai pusat pengola"an data. . Mikroprosesor )0)$ Mikroprosesor ini termasuk keluarga mikroprosesor 8 bit data. 7. Ari#!a#ika olatile 1(. PROM :Progra!!able ROM;$ Memori $ang "an$a dapat diisi satu kali saja 1. EPROM :Erasable PROM;$ P9M $ang dapat dengan bantuan sinar mata"ari. 17. EEPROM:Ele/#ri/all% EPROM;$ memori $ang dapat di"apus dengan perinta" sin$al listrik. 1,. B%#e$ 6umpulan dari 8 bua" bit. 1). =or$ 6umpulan dari 1; bua" bit (/ b$te!. 1+. A//u!ula#or$ egister 8 bit $ang merupakan bagian dari U, digunakan untuk men$impan data 8 bit dan untuk melakukan operasi aritmatika dan logis.
100
'0. Regis#er Benera$ egister $ang berisi status program $ang dijalankan. '1. Inisialisasi$ Baris program $ang mempersiapkan segala register $ang akan
digunakan ''. Progra!$ sebagai satu kesatuan dari urutan perinta"-perintaj" $ang disusun sedemikian rupa untuk meujudkan )ungsin$a. '*. Sub ru#in$ suatu teknik $ang membagi sebua" program menjadi bagian bagian $ang lebi" ke#il untuk menjalankan )ungsin$a sendiri-sendiri. '(. PPI )'$ C"ip Programmable Perip"eral Inter)a#e. '. I6O ei/e$ 6omponen input output di luar mikroprosesor. '7. AD :Analog #o Digi#al oner#er;$ membantu mengakses sin$al input analog. ',. DA :Digi#al
#o Analog
oner#er;$
Membantu
nikroprosesor
mengontrol suatu peralatan $ang bekerja se#ara analog. '). Mikroproseor )0))$ Mikroprosesor ini termasuk keluarga mikroprosesor 8 bit dan 1; bit $aitu lebar bus data internal 1; bit, sedangkan lebar memori eksternal "an$a 8 bit.
PE?9R9S
?o
Daar Ka#a
4ala!an
1
Mikroprosesor
1, /,4
/
Mikrokomputer
/
4
Mikrokontroler
4
Mikroprosesor 8085
8
5
Central Pro#essing Unit (CPU!
1
;
ritmatika ogi# Unit (U!
1, /1, //
@
Control Unit (CU!
1, /1, //
8
egister
1, /1
?
%istem Bus
1;
101
10
>olatile
//
11
Aon >olatile
//
1/
9M
//
14
M
//
1
P9M
/4
15
:P9M
/4
1;
::P9M
/4
1@
B$te
/?
18
Gord
/?
1?
##umulator
41
/0
egister Bendera
44
/1
Inisialisasi
5
//
Program
5
/4
%ub rutin
5?, ;?
/
PPI 8/55
@5
/5
I9 de&i#e
@5
/;
*C
85
/@
*C
85
/8
Mikroprosesor 8088
?1
102