Chapter II
-
Upload
ahmad-dzikki-fajrul-falah -
Category
Documents
-
view
1 -
download
0
Transcript of Chapter II
-
BAB 2
LANDASAN TEORI
2.1 Sensor Suhu LM 35 Sensor suhu adalah suatu alat untuk mendeteksi atau megukur suhu pada suatu ruangan
atau sistem tertentu yang kemudian diubah keluarannya menjadi besaran listrik, Misalnya
LM 35
LM 35 merupakan sensor temperatur yang paling banyak digunakan untuk
praktek, karena selain harganya cukup murah juga linearitasnya lumayan bagus. LM 35
tidak membutuhkan kalibrasi eksternal yang mennyediakan akurasi C pada
temperatur ruangan dan C pada kisaran -55C sampai +150C .
Sensor suhu LM 35 berfungsi untuk mengubah besaran fisis yang berupa suhu
menjadi besaran elektris tegangan. Sensor ini memiliki parameter bahwa setiap kenaikan
1C tegangan keluarannya naik sebesar 10mV dengan batas maksimal keluaran sensor
adalah 1,5 V pada suhu 150 C.
Pada perancangan, kita tentukan keluaran ADC mencapai full scale pada saat
suhu 100 C, sehingga saat suhu 100 C tegangan keluaran transduser (10mV/Cx100
C) = 1V.
Universitas Sumatera Utara
-
8
Dari pengukuran secara langsung saat suhu ruang, keluaran LM 35 adalah 0.3V
(300mV). Tegangan ini diolah dengan menggunakan rangkaian pengkondisi sinyal agar
sesuai dengan tahapan masukan ADC.
LM35 memiliki kelebihan-kelebihan sebagai berikut:
a. Di kalibrasi langsung dalam celcius
b. Memiliki faktor skala linear + 10.0 mV/C
c. Memiliki ketepatan 0,5C pada suhu 25C
d. Jangkauan maksimal suhu antara -55C sampai 150C
e. Cocok untuk aplikasi jarak jauh
f. Harga yang cukup murah
g. Bekerja pada tegangan catu daya 4 sampai 30 Volt
h. Memiliki arus drain kurang dari 60 Amp
i. Pemanasan sendiri yang lambat (low self-heating)
j. 0,08 C di udara diam
k. Ketidak linearannya hanya sekitar 14 C
l. Memiliki impedansi keluaran yang kecil yaitu 0,1 Watt untuk beban 1
mAmp.
Universitas Sumatera Utara
-
9
Sensor suhu tipe LM 35 merupakan IC sensor temperatur yang akurat yang
tegangan keluarannya linear dalam satuan celcius. Jadi LM 35 memiliki kelebihan
dibandingkan sensor temperatur linear dalam satuan Kelvin, karena tidak memerlukan
pembagian dengan konstanta tegangan yang besar dan keluarannya untuk mendapatkan
nilai dalam satuan celcius yang tepat. LM 35 memiliki impedansi keluaran yang rendah,
keluaran yang linear, dan sifat ketepatan dalam pengujian membuat proses interface
untuk membaca atau mengontrol sirkuit lebih mudah. Pin V+ dari LM 35 dihubungkan
ke catu daya, pin GND dihubungkan ke Ground dan pin Vout yang mengahasilkan
tegangan analog hasil penginderaan suhu sekitar negatif (-) dihubungkan ke Vin (+) dan
ADC 0804.
2.2 Analog To Digital Converter (ADC) 0804 ADC merupakan singkatan dari analog to digital converter, dimana ADC merupakan
jembatan untuk menghubungkan bermacam macam sensor dengan mikrokontroler.
ADC merupakan sebuah interface yang dapat merubah tegangan analog menjadi
digital karena mikrokontroler hanya memiliki masukan berupa data-data digital, maka
agar mikrokontroler dapat membaca tegangan analog, maka ADClah temannya.
Untuk dapat mengukur atau mengkonversi suatu variable fisis yang umumnya
analog dengan suatu piranti digital maka variabel tersebut terlebih dahulu diubah menjadi
variabel digital yang nilainya proporsional terhadap nilai variabel yang diukur . untuk hal
ini digunakan konverter analog ke digital.
Universitas Sumatera Utara
-
10
Sebuah konverter analog ke digital umumnya memerlukan konverter digital
keanalog ( DAC, Digital to Analog Converter) secara internal. Waktu yang digunakan
oleh sebuah ADC menghasilkan kode biner (digital) dalam suatu konversi disebut waktu
konversi. ADC dikatan berkecepatan tinggi jika memiliki waktu konversi yang pendek
atau singkat.
ADC merupakan piranti masukan dimana mikrokontroler mendapatkan data dari
ADC. Cara mendapatkan data dari ADC yaitu ADC memerlukan sinyal write dan read.
Sinyal write digunakan sebagai perintah bagi ADC untuk memulai konversi. Proses
konversi akan dimulai setelah mendapatkan sinyal write ini. Proses ini membutuhkan
waktu yang cukup lama, yaitu sekitar 120s. Selama konversi berlangsung, pin INTR
berada dalam kondisi high, segera setelah konversi selesai pin INTR akan berubah
menjadi low. Ini bertanda bahwa ADC sudah memperoleh data valid yang boleh diambil.
Ada beberapa cara yang dapat dilakukan dalam menangani ADC yaitu:
a) Menghubungkan pin INTR dari ADC dengan pin INTO/INT1 dari
mikrokontroler, dan melakukan pembacaan data ADC didalam prosedur
interupsi.
b) Menyambungkan pin INTR dari ADC ke pin mana saja dari
mikrokontroler dan membuat perintah looping untuk menunggu sampai
pin tersebut berubah menjadi low, baru mengambil data dari ADC.
Universitas Sumatera Utara
-
11
c) Tidak menghubungkan pin INTR dengan mikrokontroler. Dengan
demikian mikrokontroler tidak dapat mengetahui dengan pasti kapan
waktu konversi telah selesai. Untuk dapat memperoleh data valid setelah
sinyal write dikiri, milrokontroler harus menunda pembacaan sampai
waktu paling lama yang mungkin dibutuhkan untuk proses konversi, yaitu
menunggu sampai sekitar 120s atau lebih. Pada gambar 1, pin INTR
tidak dihubungkan kemanapun, jadi hanya cara ketiga yang dapat
dilakukan.
Gambar 1 Menghubungkan ADC0804 dengan 8051 melalui port I/O
Pada rangkaian ini, R2 dan C4 berfungsi sebagai rangkaian clock pada ADC.
Input tegangan analog diberikan oleh VR1. interkoneksi dengan C dilakukan melalui
pin RD (P3.7), WR (P3.6), INTO (P3.2) dan P0. RD dan WR diatur melalui software C,
INTO sebagai indikator konversi data selesai. INTO dapat dihubugkan ke interrupt pada
C. Data hasil konversi dapat dibaca pada DB0-BB7 pada port 0 pada uC.
Universitas Sumatera Utara
-
12
2.3 Mikrokontroler AT89S51 Mikrokontroler adalah gabungan dari sebuah mikroprosesor dan periperalnya, seperti
RAM,ROM (EPROM atau EEPROM) antar muka serial dan paralel, timer dan rangkaian
pengontrol interupsi yang terkait dalam satu IC. Semuanya membentuk suatu sistem
komputer yang lengkap. Perbedaannya dengan komputer adalah mikrokontroler didesain
dengan komponen-komponen yang minimum dan dipakai untuk orientasi kontrol.
Programnya tidak berukuran besar dan disimpan dalam ROM. Akibat perbedaan
aplikasinya dengan mikroprosesor, mikrokontroler juga mempunyai kebutuhan set
intruksi yang berbeda dengan mikroprosesor.
Mikroprosesor biasanya mempunyai set instruksi yang sangat lengkap, sedangkan
mikrokontroler mempunyai set instruksi yang lebih sederhana, terutama dipakai untuk
mengontrol antar muka input dan output yang menggunakan bit tunggal (singgel bit).
Mikrokontroler mempunyai banyak instruksi untuk set dan clear bit secara individual dan
melakukan operasi yang berorientasi 1 bit untuk logika AND, OR, XOR, loncatan
(jumping), percabangan (brancing) dan lain-lain. Set instruksi seperti ini jarang ada pada
mikroprosesor yang biasanya untuk operasi pada byte atau unit data yang lebih besar.
AT89S51 adalah sebuah mikrokontroler 8 bit terbuat dari CMOS, yang
berkonsumsi daya rendah dan mempunyai kemampuan tinggi. Mikrokontroler ini
memiliki 4 Kbyte In-System Flash Programable Memori, Ram sebesar 128 Byte, 32
input/output, watchdog timer,dua buah register data pointer, dua buah 16 bit timer dan
counter, lima buah vektor interupsi, sebuah port serial full-duplex, osilator on-chip, dan
rangkaian clock.
Universitas Sumatera Utara
-
13
AT89S51 dibuat dengan teknologi memori non-volatile dengan kepadatan tinggi
oleh ATMEL. Mikrokontroler ini cocok dengan instruksi set dan pin out 80C51 standar
industri.Flash on-chip memungkinkan memori program untuk di program ulang dengan
program memori nonvolative yang biasa.
Gambar 2 . Mikrokontroller AT89S51
Keterangan
Vcc : Suplai Tegangan GND : Ground atau pentanahan RST : Masukan reset. Kondisi logika '1' selama
siklus mesin saat osilator bekerja dan akan mereset mikrokontroler yang bersangkutan.
Universitas Sumatera Utara
-
14
Fungsi - fungsi Port :
Port0 : Merupakan port paralel 8 bit open drain dua arah. Bila digunakan untuk mengakses memori luar, port ini akan memultipleks alamat memori dengan data.
Port1 : merupakan port paralel 8 bit dua arah yang dapat digunakan untuk berbagai keperluan.
Port2 : merupakan port paralel selebar 8 bit dua arah. Port ini melakukan pengiriman byte alamat bila dilakukan pengaksesan memori eksternal.
P3.0 : Saluran masukan serial P3.1 : Saluran keluaran serial P3.2 : Interupsi eksternal 0 P3.3 : Interupsi eksternal 1 P3.4 : Masukan eksternal pewaktu / pencacah 0 P3.5 : Masukan eksternal pewaktu / pencacah 1 P3.6 : Sinyal tanda baca memori data ekstrenal. P3.7 : Sinyal tanda tulis memori data ekstrenal.
Data digital 8 bit dari ADC diambil oleh mikokontroler melalui Port 2 ( P2.0-P2.7
dihubungkan dengan DB0-DB7 ). Sedangkan data masukan untuk penampil seven
segmen dikeluarkan melalui Port 1 ( P1.0-P1.7 dihubungkan dengan D0-D7 ). Untuk
mengontrol kaki RS dan E pada seven segmen mikrokontroler memanfaatkan kaki P3.6
dan P3.7
Proses pengambilan data dan pengolahan data dapat dilihat dalam gambar 2. Data
yang diambil dari P2 dikalibrasi terlebih dahulu, setelah dikalibrasi data tersebut
kemudian diubah ke dalam kode ASCII supaya tertampil angka 0-100 pada seven
segmen, jika tidak diubah maka yang tertampil adalah angka 0-255.
Universitas Sumatera Utara
-
15
2.4 Power Supply (PSA) Catu daya merupakan bagian yang berfungsi untuk menyediakan daya untuk daya
rangkaian. Ada dua macam catu daya, yaitu catu daya tegangan tetap dan catu daya
variable . Catu daya tegangan tetap adalah catu daya yang tegangan keluarannya tetap
dan tidak bisa diatur. Catu daya variable merupakan catu daya yang tegangan
keluarannya dapa diubah/diatur. Catu daya yang baik selalu dilengkapi dengan regulator
tegangan.Tujuan pemasangan regulator tegangan pada catu daya adalah untuk
menstabilkan tegangan keluaran apabila terjadi perubahan tegangan masukan pada catu
daya. Fungsi lain dari regulator tegangan adalah untuk perlindungan dari terjadinya
hubung singkat pada beban. Salah satu tipe regulator tegangan tetap adalah LM78xx.
Regulator tegangan tipe LM 78xx adalah salah satu regulator tegangan tetap dengan tiga
terminal, yaitu terminal Vin , GND dan Vout. Tegangan keluaran dari regulator LM 78xx
memungkinkan regulator untuk dipakai dalam sistem logika, instrumentasi dan Hifi .
Regulator tegangan LM 78xx dirancang sebagai regulator tegangan tetap, meskipun
demikian dapat juga keluaran dari regulator ini diatur tegangan dan arusnya melalui
tambahan komponen eksternal . Cara pemasangan dari penerapan dari regulator tegangan
tetap LM 78xx pada catu daya dapat dilihat pada Gambar 2.3 berikut.
Gambar 2.4.1 Penerapan regulator tegangan tetap LM 78xx
Universitas Sumatera Utara
-
16
Regulator tegangan tetap LM 78xx dibedakan dalam tiga versi yaitu LM 78xxC,
LM 78lxx dan LM 78Mxx. Arsitektur dari regulator tegangan tersebut sama, yang
membedakan adalah kemampuan mengalirkan arus pada regulator
Perangkat elektronika mestinya dicatu oleh supplay arus searah DC (direct
current) yang stabil agar dapat bekerja dengan baik. Baterai atau accu adalah sumber catu
daya DC yang paling baik. Namun untuk aplikasi yang membutuhkan catu daya yang
tegangan tersebut .
Regulator tegangan tetap LM 78xx dibedakan dalam tiga versi yaitu LM 78xxC, LM
78lxx dan LM 78Mxx. Arsitektur dari regulator tegangan tersebut sama, yang
membedakan adalah kemampuan mengalirkan arus pada regulator tegangan tersebut.
Adaptor adalah sebuah rangkaian transformator yang dapat merubah arus Ac
menjadi arus DC. Dari penguatan inilah selanjutnya disebut power supply atau penguat
catu daya.
Panjang pendeknya gulungan sekunder pada trafo adaptor akan mempengaruhi
besar kecilnya sumber tegangan volt. Sedang besar kecilnya diameter kawat yang
digunakan akan mempengaruhi besar kecilnya arus dalam amper yang diperoleh.
Pada sebuah trafo tenaga yang di tancapkan AC pada primernya , kumparan
sekunder akan timbul arus yang berlawanan (DC). Arus yang keluar akibat imbas ini
sebenarnya secara menyeluruh belum rata. Karena itu perlu disearahkan dan distabilkan.
Kurang tertibnya rangkaian stabilizer akan menyebabkan bunyi derau pada pesawat yang
sedang distel.
Universitas Sumatera Utara
-
17
lebih besar, sumber dari baterai tidak cukup. Sumber catu daya yang besar adalah sumber
arus bolak-balik (alternating current) dari pembangkit tenaga listrik. Untuk itu diperlukan
suatu perangkat catu daya yang dapat mengubah arus AC menjadi arus DC
Banyak peralatan elektronika yang tidak dilengkapi dengan adaptor atau catu daya
tetap, misalnya radio dan tape rekorder kecil. Selain dengan baterai kering, kita dapat
menyediakan catu daya dengan rangkaian penyearah yang tegangan keluarannya tetap
dan stabil, serta biaya murah. Adaptor murah yang dipasaran biasanya tidak dilengkapi
dengan stabilisator dan kemampuan arusnya belum tentu sesuai dengan peralatan kita.
2.5 Keypad 4X4 DT-I/O 4 x 4 Keypad Module merupakan modul keypad berukuran 4 kolom x 4 baris.
Modul ini dapat difungsikan sebagai divais input dalam aplikasi-aplikasi seperti
pengaman digital, data logger, absensi, pengendali kecepatan motor, robotik, dan
sebagainya.
Spesifikasi Hardware
1. Memiliki 16 tombol (fungsi tombol tergantung aplikasi). 2. Memiliki konfigurasi 4 baris (input scanning) dan 4 kolom (output scanning). 3. Kompatibel penuh dengan DT-51 Low Cost Series dan DT-AVR Low Cost Series. Mendukung DT-51 Minimum Sistem (MinSys) ver 3.0, DT-51 PetraFuz, DT-
BASIC Series, dan lain-lain.
Tata Letak
Universitas Sumatera Utara
-
18
P1.4 (Pin 7 PORT 1) R1 (J3) P1.5 (Pin 8 PORT 1) R2 (J3) P1.6 (Pin 9 PORT 1) R3 (J3) P1.7 (Pin 10 PORT 1) R4 (J3) DT-51 Minimum System v3. dan PetraFuz
DT-I/O 4x4 Keypad Module
VCC (Pin 1 Port CONTROL) VCC (J5) PC.0 (Pin 1 PORT C & PORT 1) C1 (J3) PC.1 (Pin 2 PORT C & PORT 1) C2 (J3) PC.2 (Pin 3 PORT C & PORT 1) C3(J3) PC.3 (Pin 4 PORT C & PORT 1) C4(J3) PC.4 (Pin 5 PORT C & PORT 1) R1(J3) PC.5 (Pin 6 PORT C & PORT 1) R2(J3) PC.6 (Pin 7 PORT C & PORT 1) R3 (J3) PC.7 (Pin 8 PORT C & PORT 1) R4(J3) 2.6 Display Seven Segmen
(a)
Universitas Sumatera Utara
-
19
(b)
Gambar 2.6.1 Rangkaian Seven segmen
INPUT SELECTOR ENABLE OUTPUT
C B A G1 /G2A /G2B Y1 Y2 Y2 Y3 Y4 Y5 Y6 Y7 0 0 0 1 0 0 0 1 1 1 1 1 1 1 0 0 1 1 0 0 1 0 1 1 1 1 1 1 0 1 0 1 0 0 1 1 0 1 1 1 1 1 0 1 1 1 0 0 1 1 1 0 1 1 1 1 1 0 0 1 0 0 1 1 1 1 0 1 1 1 1 0 1 1 0 0 1 1 1 1 1 0 1 1 1 1 0 1 0 0 1 1 1 1 1 1 0 1 1 1 1 1 0 0 1 1 1 1 1 1 1 0
Tabel 2.6.1 Tabel kebenaran 74LS138
Pada tabel kebenaran tersebut tampak bahwa seven segmen yang hidup tergantung pada
output dari dekoder 74LS138, yang sedang mengeluarkan logika low 0, sehingga dari 8
buah display tersebut, selalu hanya satu display yang akan dihidupkan. Agar display
tampak nyala secara bersamaan maka ketiga display tersebut harus dihidupkan secara
Universitas Sumatera Utara
-
20
bergantian dengan waktu tunda tertentu. Pada gambar tersebut seven segment common
anoda dikendalikan dengan menggunakan transistor PNP melalui decoder 74LS138,
apabila ada logika low pada basis transistor, maka seven segmen akan menyala dan
sebaliknya akan padam.
Gambar 2.6.2 Modul 7 Segmen tunggal
P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 Display G f e d c b a 1 0 0 0 0 0 0 0 1 1 1 1 0 0 1 1 0 1 0 0 1 0 0 2 0 1 1 0 0 0 0 3 : : : : : : : : 0 0 0 1 0 0 0 A 0 0 0 0 0 1 1 b
Tabel 2.6.2 Data Display 7 Segmen
Pada tabel tersebut tampak bahwa untuk menghidupkan sebuah segmen, harus dikirimkan
data logika low 0 dan sebaliknya untuk mematikan segmen, harus dikirimkan data
logika high 1.
org 0h
start: clr P3.5 ; P3.5 = 0
Universitas Sumatera Utara
-
21
clr P3.6 ; P3.6 = 0
clr P3.7 ; P3.7 = 0
mov P0,#10001000b ; Cetak Karakter 'A'
sjmp start ; Lompat ke start
2.7
end
Dalam ruangan yang tertutup (closed-loop system), suhu adalah salah satu faktor yang
berpengaruh terhadap lingkungannya. Pengontrolan terhadap suhu ruangan yang bekerja
secara otomatis dapat menjaga suhu pada kondisi yang optimum (tidak terlalu panas atau
tidak terlalu dingin) dan dapat menghemat penggunaan energi.Sensor yang dipasang
dalam sistem akan mengindera nilai suhu ruangan secara terus-menerus (real time). Hasil
tersebut sebelum dikirimkan kepada mikrokontroler untuk diolah telah dikonversikan
terlebih dahulu oleh ADC. Suhu hasil penginderaan akan dibandingkan dengan suhu
ambang suhu optimum ruangan yang dapat diatur nilainya batas bawah maupun batas
atasnya melalui masukan keypad, maka perbedaan tersebut yang menjadi indikator
bekerja atau tidaknya blower sebagai pendingin ruangan.
Blower
2.8 Heater (pemanas)
Heater merupakan suatu pemanas yang befungsi untuk memanaskan ruangan atau
lingkungan di sekitar pemanas tersebut. Pada pemanas tipe ini, penulis menngunakan
hair dryer yang memancarkan panas kesekitar inkubator. Pemanas ini tidak dipakai di
dasar inkubator melainkan di belakang dinding inkubator agar panas tersebar keseluruh
ruangan inkubator serta juga di bantu dengan adanya blower diatas inkubator tersebut.
Universitas Sumatera Utara
-
22
2.9 Secara fisik, kerja dari sebuah mikrokontroler dapat dijelaskan sebagai siklus pembacaan
instruksi yang tersimpan di dalam memori. Mikrokontroler menentukan alamat dari
memori program yang akan dibaca, dan melakukan proses baca data di memori. Data
yang dibaca diinterprestasikan sebagai instruksi. Alamat instruksi disimpan oleh
mikrokontroler di register, yang dikenal sebagai program counter. Instruksi ini misalnya
program aritmatika yang melibatkan 2 register. Sarana yang ada dalam program assembly
sangat minim, tidak seperti dalam bahasa pemrograman tingkat atas (high level language
programming) semuanya sudah siap pakai. Penulis program assembly harus menentukan
segalanya, menentukan letak program yang ditulisnya dalam memori-program, membuat
data konstan dan tablel konstan dalam memori-program, membuat variabel yang dipakai
kerja dalam memori-data dan lain sebagainya.
Bahasa Assembly
2.9.1 Program Sumber Assembly
Program-sumber assembly (assembly source program) merupakan kumpulan dari baris-
baris perintah yang ditulis dengan program penyunting-teks (text editor) sederhana,
misalnya program EDIT.COM dalam DOS, atau program NOTEPAD dalam Windows
atau MIDE-51. Kumpulan baris perintah tersebut biasanya disimpan ke dalam file dengan
nama ekstensi *.ASM dan lain sebagainya, tergantung pada program Assembler yang
akan dipakai untuk mengolah program-sumber assembly tersebut. Setiap baris-perintah
merupakan sebuah perintah yang utuh, artinya sebuah perintah tidak mungkin dipecah
dikenali sebagai label atau sering juga disebut sebagai simbol, bagian kedua dikenali
Universitas Sumatera Utara
-
23
sebagai kode operasi, bagian ketiga adalah operand dan bagian terakhir adalah komentar.
Antara bagian-bagian tersebut dipisahkan dengan sebuah spasi atau tabulator.
2.9.2
Label dipakai untuk memberi nama pada sebuah baris-perintah, agar bisa mudah
menyebitnya dalam penulisan program. Label bisa ditulis apa saja asalkan diawali dengan
huruf, biasa panjangnya tidak lebih dari 16 huruf. Huruf - huruf berikutnya boleh
merupakan angka atau tanda titik dan tanda garis bawah. Kalau sebuah baris perintah
tidak memiliki bagian label, maka bagian ini boleh tidak ditulis namun spasi atau
tabulator sebagai pemisah antara label dan bagian berikutnya mutlak tetap harus ditulis.
Dalam sebuah program sumber bisa terdapat banyak sekali label, tapi tidak boleh ada
label yang kembar. Sering sebuah baris perintah hanya terdiri dari bagian label saja, baris
demikian itu memang tidak bisa dikatakan sebagai baris perintah yang sesungguhnya,
tetapi hanya sekedar memberi nama pada baris bersangkutan. Bagian label sering disebut
juga sebagai bagian simbol, hal ini terjadi kalau label tersebut tidak dipakai untuk
menandai bagian program, melainkan dipakai untuk menandai bagian data.
Bagian Label
2.9.3
Bagian Kode Operasi
Kode operasi (operation code atau sering disingkat sebagai OpCode) merupakan bagian
perintah yang harus dikerjakan. Dalam hal ini dikenal dua macam kode operasi, yang
pertama adalah kode operasi untuk mengatur kerja mikroprosesor/mikrokontroler. Jenis
kedua dipakai untuk mengatur kerja program assembler yang sering dinamakan sebagai
assembler directive. Kode operasi ditulis dalam bentuk mnemonic, yakni bentuk
Universitas Sumatera Utara
-
24
singkatan-singkatan yang relatif mudah di ingat, misalnya adalah MOV, ACALL, RET
dan lain sebagainya. Kode operasi ini ditentukan oleh pabrik pembuat
mikroprosesor/mikrokontroler, dengan demikian setiap prosesor mempunyai kode operasi
yang berlainan. Kode operasi berbentuk mnemonic tidak dikenal
mikroprosesor/mikrokontroler, agar program yang ditulis dengan kode mnemonic bisa
dipakai untuk mengendalikan prosesor, program semacam itu diterjemahkan menjadi
program yang dibentuk dari kode operasi kode biner, yang dikenali oleh
mikroprosesor/mikrokontroler. Tugas penerjemahan tersebut dilakukan oleh
programyang dinamakan sebagai Program Assembler. Diluar kode operasi yang
ditentukan pabrik pembuat mikroprosesor/mikrokontroler, ada pula kode operasi untuk
mengatur kerja dari program assembler, misalnya dipakai untuk menentukan letak
program dalam memori (ORG), dipakai untuk membentuk variabel (DS), membentuk
tabel dan data konstan (DB, DW) dan lain sebagainya.
2.9.4
Operand merupakan pelengkap bagian kode operasi, namun tidak semua kode operasi
memerlukan operand, dengan demikian bisa terjadi sebuah baris perintah hanya terdiri
dari kode operasi tanpa operand. Sebaliknya ada pula kode operasi yang perlu lebih dari
satu operand, dalam hal ini antara operand satu dengan yang lain dipisahkan dengan
tanda koma (,). Bentuk operand sangat bervariasi, bisa berupa kode-kode yang dipakai
untuk menyatakan Register dalam prosesor, bisa berupa nomor memori (alamat memori)
yang dinyatakan dengan bilangan atau pun nama label, bisa berupa data yang siap di
operasikan. Semuanya di sesuaikan dengan keperluan dari kode operasi. Untuk
membedakan operand yang berupa nomor memori atau operand yang berupa data yang
Bagian Operand
Universitas Sumatera Utara
-
25
siap di operasikan, dipakai tanda - tanda khusus atau cara penulisan yang berlainan.
Di samping itu operand bisa berupa persamaan matematis sederhana atau persamaan
Boolean, dalam hal semacam ini program Assembler akan menghitung nilai dari
persamaan-persamaan dalam operand, selanjutnya merubah hasil perhitungan tersebut ke
kode biner yang dimengerti oleh prosesor. Jadi perhitungan di dalam operand dilakukan
oleh program assembler bukan oleh prosesor.
2.9.5
Bagian komentar merupakan catatan-catatan penulis program, bagian ini meskipun tidak
mutlak diperlukan tapi sangat membantu masalah dokumentasi. Membaca komentar-
komentar pada setiap baris perintah, dengan mudah bisa dimengerti maksud tujuan baris
bersangkutan, hal ini sangat membantu orang lain yang membaca program.
Pemisah bagian komentar dengan bagian sebelumnya adalah tanda spasi atau tabulator,
meskipun demikian huruf pertama dari komentar sering berupa tanda titik koma (,)
merupakan tanda pemisah khusus untuk komentar.
Untuk keperluan dokumentasi yang intensip, sering sebuah baris yang merupakan
komentar saja, dalam hal ini huruf pertama dari baris bersangkutan adalah tanda titik
koma (,). AT89S51 memiliki sekumpulan instruksi yang sangat lengkap. Instruksi MOV
untuk byte dikelompokkan sesuai dengan mode pengalamatan (addressing modes). Mode
pengalamatan menjelaskan bagaimana operand dioperasikan. Berikut penjelasan dari
berbagai mode pengalamatan. Bentuk program assembly yang umum ialah sebagai
berikut :
Bagian Komentar
Universitas Sumatera Utara
-
26
Label/Simbol Opcode Operand Komentar
Org 0H Start: Kiri: Delay: Del1: Del2:
Mov Mov Mov Call RL DEC CJNE Sjmp mov mov djnz djnz ret end
A, #11111110b R0, #7 P0, A Delay A R0 R0, #0, Kiri Start R1, #255 R2, #255 R2, del2 R1, del1
; Isi Akumulator ; Isi R0 dengan 7 ; Copy A ke P0 ; Panggil Delay
Tabel 2.7.6 Program Assembly
Isi memori adalah bilangan heksadesimal yang dikenal oleh mikrokontroler, yang
merupakan representasi dari bahasa assembly yang telah kita buat. Mnemonic atau
opcode adalah kode yang akan melakukan aksi terhadap operand . Operand adalah data
yang diproses oleh opcode. Sebuah opcode bisa membutuhkan 1,2 atau lebih operand,
kadang juga tidak perlu operand. Sedangkan komentar dapat kita berikan dengan
menggunakan tanda titik koma (;). Berikut contoh jumlah operand yang berbeda beda
dalam suatu assembly.
CJNE R5,#22H, aksi ;dibutuhkan 3 buah operand MOVX @DPTR, A ;dibutuhkan 2 buah operand RL A ;1 buah operand NOP ; tidak memerlukan operand
Program yang telah selesai kita buat dapat disimpan dengan ekstension .asm. Lalu
kita dapat membuat program objek dengan ekstension HEX dengan menggunakan
compiler MIDE-51.
Universitas Sumatera Utara