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 -55ºC sampai +150°C .
Sensor suhu LM 35 berfungsi untuk mengubah besaran fisis yang berupa suhu menjadi besaran elektris tegangan. Sensor ini memiliki parameter bahwa setiap kenaikan 1ºC 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,5ºC pada suhu 25ºC
d. Jangkauan maksimal suhu antara -55ºC sampai 150ºC
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 120µs. 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 120µs 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. merupakan port paralel 8 bit dua arah yang dapat digunakan untuk berbagai keperluan. merupakan port paralel selebar 8 bit dua arah. Port ini melakukan pengiriman byte alamat bila dilakukan pengaksesan memori eksternal. Saluran masukan serial Saluran keluaran serial Interupsi eksternal 0 Interupsi eksternal 1 Masukan eksternal pewaktu / pencacah 0 Masukan eksternal pewaktu / pencacah 1 Sinyal tanda baca memori data ekstrenal. Sinyal tanda tulis memori data ekstrenal.
Port1 : Port2 :
P3.0 : P3.1 : P3.2 : P3.3 : P3.4 : P3.5 : P3.6 : P3.7 :
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 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.
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
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 Har dwar e 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, DTBASIC Series, dan lain-lain.
Tata Letak
Universitas Sumatera Utara
18
P1.4 (Pin 7 PORT 1) P1.5 (Pin 8 PORT 1) P1.6 (Pin 9 PORT 1) P1.7 (Pin 10 PORT 1)
R1 (J3) R2 (J3) R3 (J3) R4 (J3)
DT-51™ Minimum System v3. dan Petr aFuz
DT-I/O 4x4 Keypad Module
VCC (Pin 1 Port CONTROL) PC.0 (Pin 1 PORT C & PORT 1) PC.1 (Pin 2 PORT C & PORT 1) PC.2 (Pin 3 PORT C & PORT 1) PC.3 (Pin 4 PORT C & PORT 1) PC.4 (Pin 5 PORT C & PORT 1) PC.5 (Pin 6 PORT C & PORT 1) PC.6 (Pin 7 PORT C & PORT 1) PC.7 (Pin 8 PORT C & PORT 1)
VCC (J5) C1 (J3) C2 (J3) C3(J3) C4(J3) R1(J3) R2(J3) R3 (J3) 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 0
B 0
A G1 /G2A /G2B Y1 Y2 Y2 Y3 Y4 Y5 Y6 Y7 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
end
2.7 Blower 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.
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 Bahasa Assembly 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.
2.9.1 Program Sumber Assembly Program-sumber assembly (assembly source program) merupakan kumpulan dari barisbaris 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 Bagian Label 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.
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 Bagian Operand 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
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 Bagian komentar merupakan catatan-catatan penulis program, bagian ini meskipun tidak mutlak diperlukan tapi sangat membantu masalah dokumentasi. Membaca komentarkomentar 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 :
Universitas Sumatera Utara
26 Label/Simbol Start: Kiri:
Delay: Del1: Del2:
Opcode Org Mov Mov Mov Call RL DEC CJNE Sjmp mov mov djnz djnz ret end
Operand
Komentar
0H 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