Sistem Minimum (Sismin) Mikrokontroler Adalah rangkaian elektronik minimum yang diperlukan untuk beroperasinya IC mikrokontroler. Sismin ini kemudian bisa dihubungkan dengan rangkaian lain untuk menjalankan fungsi tertentu. Suatu sismin bisa saja ditambahkan dengan rangkaian pelengkap lainnya sehingga menjadi suatu sistem yang lebih lengkap dan memiliki fungsi lebih banyak.
Untuk Membuat Rangkaian Sismin Atmel 89S diperlukan beberapa komponen yaitu: IC mikrokontroler AT89S 1 XTAL 12 MHz atau 11.0592 MHz 2 kapasitor kertas 33 pF 1 kapasitor elektrolit 10 uF 1 resistor 10 Kohm
Selain itu tentunya diperlukan power suply yang bisa memberikan tegangan 5V DC
Bahasa Assembly adalah Bahasa komputer yang kedudukannya di antara bahasa mesin dan bahasa level tinggi misalnya bahasa C atau Pascal. Bahasa C atau Pascal dikatakan sebagai bahasa level tinggi karena memakai kata-kata dan pernyataan yang mudah dimengerti manusia, meskipun masih jauh berbeda dengan bahasa manusia sesungguhnya. Bahasa mesin adalah kumpulan kode biner yang merupakan instruksi yang bisa dijalankan oleh komputer. Sedangkan bahasa Assembly memakai kode Mnemonic untuk menggantikan kode biner, agar lebih mudah diingat sehingga lebih memudahkan penulisan program. Program yang ditulis dengan bahasa Assembly terdiri dari label; kode mnemonic dan lain sebagainya, pada umumnya dinamakan sebagai program sumber (Source Code) yang belum bisa diterima oleh prosesor untuk dijalankan sebagai program, tapi harus diterjemahkan dulu menjadi bahasa mesin dalam bentuk kode biner. Program sumber dibuat dengan program editor biasa, misalnya Notepad pada Windows atau SideKick pada DOS, selanjutnya program sumber diterjemahkan ke bahasa mesin dengan menggunakan program Assembler. Hasil kerja program Assembler adalah “program objek” dan juga “assembly listing”.
Program Objek berisikan kode kode bahasa mesin, kode-kode bahasa mesin inilah yang diumpankan ke memori-program prosesor. Dalam dunia mikrokontroler biasanya program objek ini diisikan ke UV EPROM, dan khusus untuk mikrokontroler buatan Atmel, program ini diisikan ke dalam Flash PEROM yang ada di dalam chip AT89C51 atau AT89C2051. Assembly Listing merupakan naskah yang berasal dari program sumber, dalam naskah tersebut pada bagian sebelah setiap baris dari program sumber diberi tambahan hasil terjemahan program Assembler. Tambahan tersebut berupa nomor memori-program berikut dengan kode yang akan diisikan pada memori-program bersangkutan. Naskah ini sangat berguna untuk dokumentasi dan sarana untuk menelusuri program yang ditulis. Yang perlu diperhatikan adalah setiap prosesor mempunyai konstruksi yang berlainan, instruksi untuk mengendalikan masing-masing prosesor juga berlainan, dengan demikian bahasa Assembly untuk masing-masing prosesor juga berlainan, yang sama hanyalah pola dasar cara penulisan program Assembly saja.
Konstruksi Program Assembly
Program sumber dalam bahasa Assembly menganut prinsip 1 baris untuk satu perintah, setiap baris perintah tersebut bisa terdiri atas beberapa bagian (field), yakni bagian Label, bagian mnemonic, bagian operand yang bisa lebih dari satu dan terakhir bagian komentar. Untuk membedakan masing-masing bagian tersebut dibuat ketentuan sebagian berikut:
1.Masing-masing bagian dipisahkan dengan spasi atau TAB, khusus untuk operand yang lebih dari
satu masing-masing operand dipisahkan dengan koma.
2.Bagian-bagian tersebut tidak harus semuanya ada dalam sebuah baris, jika ada satu bagian yang
tidak ada maka spasi atau TAB sebagai pemisah bagian tetap harus ditulis.
3.Bagian Label ditulis mulai huruf pertama dari baris, jika baris bersangkutan tidak mengandung
Label maka label tersebut digantikan dengan spasi atau TAB, yakni sebagai tanda pemisah antara
bagian Label dan bagian mnemonic.
Label mewakili nomor memori-program dari instruksi pada baris bersangkutan, pada saat menulis instruksi JUMP, Label ini ditulis dalam bagian operand untuk menyatakan nomor memori-program yang dituju. Dengan demikian Label selalu mewakili nomor memori-program dan harus ditulis dibagian awal baris instruksi. Disamping Label dikenal pula Symbol, yakni satu nama untuk mewakili satu nilai tertentu dan nilai yang diwakili bisa apa saja tidak harus nomor memori-program. Cara penulisan Symbol sama dengan cara penulisan Label, harus dimulai di huruf pertama dari baris instruksi.
Mnemonic (artinya sesuatu yang memudahkan diingat) merupakan singkatan perintah, dikenal dua macam mnemonic, yakni manemonic yang dipakai sebagai instruksi mengendalikan prosesor, misalnya ADD, MOV, DJNZ dan lain sebagainya. Ada pula mnemonic yang dipakai untuk mengatur kerja dari program Assembler misalnya ORG, EQU atau DB, mnemonis untuk mengatur kerja dari program Assembler ini dinamakan sebagai ‘Assembler Directive’.
Operand adalah bagian yang letaknya di belakang bagian mnemonic, merupakan pelangkap bagi mnemonic. Kalau sebuah instrksi di-ibaratkan sebagai kalimat perintah, maka mnemonic merupakan subjek (kata kerja) dan operand merupakan objek (kata benda) dari kalimat perintah tersebut.
Tergantung pada jenis instruksinya, operand bisa berupa berbagai macam hal. Pada instruksi JUMP operand berupa Label yang mewakili nomor memori-program yang dituju misalnya LJMP Start, pada instruksi untuk pemindahan/pengolahan data, operand bisa berupa Symbol yang mewakili data tersebut, misalnya ADD A,#Offset. Banyak instruksi yang operandnya adalah register dari prosesor, misalnya MOV A,R1. Bahkan ada pula instruksi yang tidak mempunyai operand, misalnya RET.
Komentar merupakan bagian yang sekedar sebagai catatan, tidak berpengaruh pada prosesor juga tidak berpengaruh pada kerja program Assembler, tapi bagian ini sangat penting untuk keperluan dokumentasi.
Assembler Directive
Seperti sudah dibahas di atas, bagian Mnemonic dari sebuah baris perintah bisa merupakan instruksi untuk prosesor, maupun berupa Assembler Directive untuk mengatur kerja dari program Assembler. Mnemonic untuk instruksi prosesor, sangat tergantung pada prosesor yang dipakai, sedangkan mnemonic untuk Assembler Directive tergantung pada program Assembler yang dipakai. Meskipun demikian, terdapat beberapa Assembler Directive yang umum, yang sama untuk banyak macam program Assembler.
Assembler Directive yang bersifat umum tersebut, antara lain adalah
ORG – singkatan dari ORIGIN, untuk menyatakan nomor memori yang dipakai setelah perintah itu, misalnya ORG $1000 maka memori berikutnya yang dipakai Assembler adalah $1000. ORG berlaku untuk memori program maupun memori-data. Dalam hal penomoran memori, dikenal tanda $ sebagai awalan untuk menyatakan nomor memori dari baris bersangkutan. Misalnya :
ORG 1000
LJMP $+1000
Operand $+$500 mempunyai arti nomor memori-program bersangkutan ditambah dengan $500, karena instruksi LJMP ini terletak persis di bawah ORG $1000 maka nomor memori-program baris ini adalah $1000, sehingga operand $+$500 bernilai $1500 dan instruksi ini indentik dengan LJMP $1500
EQU – singkatan dari EQUATE, dipakai untuk menentukan nilai sebuah Symbol.
Misalnya Angka88 EQU 88 memberi nilai 88 pada Symbol Angka88, atau CR EQU $0D mempunyai makna kode ASCII dari CR (Caarriage Return) adalah $08.
DB – singkatan dari DEFINE BYTE, dipakai untuk memberi nilai tertentu pada memori-program. Nilai tersebut merupakan nilai 1 byte, bisa berupa angka ataupun kode ASCII. DB merupakan Assembler Directive yang dipakai untuk membentuk teks maupun tabel.
ORG $0200
STRING DB ‘Atmel AT89C2051’
PANJANG EQU $-STRING
ORG $0200 memerintahkan program Assembler agar bekerja mulai dari memori-program nomor $0200, instruksi selanjutnya memerintahkan program Assembler agar mengisi memori-program nomor $0200 dan berikutnya dengan tulisan ‘Atmel AT89C2051’’ (yang diisikan adalah kode ASCII dari ‘A’, ‘t’ dan seterusnya), PANJANG dari STRING bisa dihitung dengan cara PANJANG EQU $-STRING, yakni selisih dari nomor memori-program baris bersangkutan dikurangi dengan nomor awal memori-program yang diisi STRING.
DW – singkatan dari DEFINE WORD, dipakai untuk memberi nilai 2 byte ke memori-program pada baris bersangkutan. Assembler Directive ini biasa dipakai untuk membentuk suatu tabel yang isinya adalah nomor-nomor memori-program.
DS – singkatan dari Define Storage, Assembler Directive ini dipakai untuk membentuk variable. Sebagai variabel tentu saja memori yang dipakai adalah memori-data (RAM) bukan memori-program (ROM). Hal ini harus benar-benar dibedakan dengan Assembler Directive DB dan DW yang membentuk kode di memori-program. Dan karena DS bekerja di RAM, maka DS hanya sekedar menyediakan tempat di memori, tapi tidak mengisi nilai pada memori bersangkutan.
Dalam program Bahasa Assembly terdapat 2 Jenis yang kita tulis dalam Program: 1. Assembly Directive (yaitu merupakan kode yang menjadi arahan bagi assembler/compiler untuk menata program)
2. Instruksi (yaitu kode yang harus dieksekusi oleh CPU mikrokontroler dengan melakukan operasi tertentu sesuai dengan daftar yang sudah tertanam dalam CPU)
Daftar Assembly Directive :
Assembly Directive >Keterangan
EQU >Pendefinisian konstanta
DB >Pendefinisian data dengan ukuran satuan 1 byte
DW >Pendefinisian data dengan ukuran satuan 1 word
DBIT >Pendefinisian data dengan ukuran satuan 1 bit
DS >Pemesanan tempat penyimpanan data di RAM
ORG >Inisialisasi alamat mulai program
END >Penanda akhir program
CSEG >Penanda penempatan di code segment
XSEG >Penanda penempatan di external data segment
DSEG >Penanda penempatan di internal direct data segment
ISEG >Penanda penempatan di internal indirect data segment
BSEG >Penanda penempatan di bit data segment
CODE >Penanda mulai pendefinisian program
XDATA >Pendefinisian external data
DATA >Pendefinisian internal direct data
IDATA >Pendefinisian internal indirect data
BIT >Pendefinisian data bit
#INCLUDE >Mengikutsertakan file program lain
Daftar Instruksi :
Instruksi >Keterangan Singkatan
ACALL >Absolute Call
ADD >Add
ADDC>Add with Carry
AJMP >Absolute Jump
ANL >AND Logic
CJNE >Compare and Jump if Not Equal
CLR >Clear
CPL >Complement
DA >Decimal Adjust
DEC >Decrement
DIV >Divide
DJNZ >Decrement and Jump if Not Zero
INC >Increment
JB >Jump if Bit Set
JBC >Jump if Bit Set and Clear Bit
JC >Jump if Carry Set
JMP >Jump to Address
JNB >Jump if Not Bit Set
JNC >Jump if Carry Not Set
JNZ >Jump if Accumulator Not Zero
JZ >Jump if Accumulator Zero
LCALL >Long Call
LJMP >Long Jump
MOV >Move from Memory
MOVC >Move from Code Memory
MOVX >Move from Extended Memory
MUL >Multiply
NOP >No Operation
ORL >OR Logic
POP >Pop Value From Stack
PUSH >Push Value Onto Stack
RET >Return From Subroutine
RETI >Return From Interrupt
RL >Rotate Left
RLC >Rotate Left through Carry
RR >Rotate Right
RRC >Rotate Right through Carry
SETB >Set Bit
SJMP >Short Jump
SUBB >Subtract With Borrow
SWAP >Swap Nibbles
XCH >Exchange Bytes
XCHD >Exchange Digits
XRL >Exclusive OR Logic
1. Masukan Kabel Power Sumber ( In Put ) Pada Terminal WATT & 10 A, Sesuai Petunjuk Pada Watt
Meter Digital Yang Bertuliskan “ POWER SOURCE “.
2. Masukan Kabel Beban ( Out Put ) Pada Terminal COM & V, Sesuai Petunjuk Pada Watt Meter
Digital Yang Bertuliskan “ LOAD “.
3. Setelah Kabel In Put ( Power Source ) & Out Put ( Load ) Terpasang, Hidupkan Watt Meter Digital
Dengan Menggeser Tombol Pada Posisi ON.
4. Tekan Tombol Pilihan Watt 1 ( 2000 W ) atau Watt 2 ( 6000 W – X10 W) Tergantung Dari Beban
Yang Akan Di Ukur.
5. Apabila Pada Layar Tidak Tertulis Nol Maka Perlu Di Setting Watt Zero Adjust Agar Tampilan
Pada Layar Bernilai Nol.
6. Masukan Kabel In Put ( Power Source ) Pada Stop Kontak Agar Beban / Load Dapat Bekerja.
7. Lihat Hasil Tampilan Pada Layar, Apabila Menggunakan Batas Ukur Yang Watt 1 ( 2000 W )
Maka Tampilan Pada Layar Merupakan Hasil Pengukuran Daya Pada Beban / Load.
8. Apabila Menggunakan Batas Ukur Yang Watt 2 ( 6000 W ), Maka Hasil Pada Layar Di Kalikan 10
Baru Ketahuan Hasilnya.
9. Apabila Sudah Selesai Dalam Pengukuran Daya, Matikan Watt Meter Digital Dengan Menggeser
Tombol Pada Posisi OFF.
Gb. Timer
* ) Cara Pemakaian Timer / Setting Timer :
1. Knop Disamping Timer ( Warna Putih ) Harus Di Geser Ke Bawah Sehingga Yang Terlihat Gambar
Simbol Jam Artinya Timer Dapat Bekerja.
2. Kontak – Kontak Hitam Kecil Yang Disamping Tulisan Angka 24 Jam Harus Di Turunkan Untuk
Dapat Menseting Waktu ON.
3. Misalkan Disetting Untuk Menghidupkan Lampu Pada Out Put Timer ( Timer ON Jam 18 – 6 )
Kontak – Kontak Kecil Hitam Kita Turunkan Dari Mulai Jam 18 – Jam 6 Pagi.
4. Setelah Disetting Kita Coba Masukan In Put Timer Pada Stop Kontak Sedangkan Out Put Timer
( Stop Kontak Yang Di Bawah Pewaktu ) Kita Hubungkan Pada Lampu.
5. Coba Kita Putar Timer ( Searah Jarum Jam ) Pastikan Pada Saat Jam 18 Sudah Sampai Pada Tanda
Segitiga Hitam, Indikator Lampu Merah Harus Menyala & Out Put Timer Yang Kita Hubungkan
Pada Lampu Juga Harus Sudah Menyala.
6. Setelah Di Putar Sampai Jam 6 Sudah Tepat Pada Tanda Segitiga Hitam, Indikator Lampu Merah
Harus Mati & Out Put Timer Yang Kita Hubungkan Pada Lampu Juga Harus Mati.
7. Untuk 1 Kontak Hitam Menandakan Waktu Selama 15 Menit, Karena Tiap 1 Jam Kontak Hitamnya
Ada 4 Kontak, Sehingga Untuk 24 Jam Ada 96 Kontak Hitam.
* ) Cara Mengecek Baik – Buruknya Timer :
1. Knop Disamping Timer ( Warna Putih ) Harus Di Geser Ke Atas Sehingga Yang Terlihat Gambar
Simbol Garis Vertikal Artinya Timer Selalu Terhubung Dengan Out Put.
2. Kontak – Kontak Hitam Kecil Yang Disamping Tulisan Angka 24 Jam Boleh Di Turunkan / Di
Naikan Tidak Masalah.
3. Coba Masukan In Put Timer Pada Stop Kontak Sedangkan Out Put Timer
( Stop Kontak Yang Di Bawah Pewaktu ) Kita Hubungkan Pada Lampu.
4. Setelah In Put Timer Di Masukan Pada Stop Kontak Maka Indikator Lampu Merah Harus Menyala
& Out Put Timer Yang Kita Hubungkan Pada Lampu Juga Harus Sudah Menyala.
5. Kalau In Put Timer Sudah Di Aliri Arus & Lanpu Indikator Merah Tidak Nyala & Juga Out Putnya
Tidak Nyala Ada Kemungkinan Timernya Rusak.
Gb. Multimeter Digital
* ) Cara Pengukuran Dioda Menggunakan Multimeter Digital :
Atur Jangkah Pada Pilihan Simbol Dioda.
Bila Pada Layar Belum Tampil Gambar Simbol Dioda Maka Dapat Diatur Dengan Menekan Tombol SELECTSampai Muncul Simbol Dioda.
Hubungkan Probe HITAM Pada Catoda & Probe MERAH Pada Anoda.
Pastikan Bahwa Pada Layar Menunjukan Drop Tegangan Maju Dioda ( Forward )
Apabila Pengukuran Di balik ( Probe HITAM Pada Anoda & Probe Merah Pada Catoda ) Maka Pada Layar Akan Tercatat “ OL “ ( Reverse )
Setelah Selesai Dalam Melakukan Pengukuran, Lepaskan Probe Dari Dioda Yang Diukur.
* ) Cara Pengukuran Resistansi Resistor Menggunakan Multimeter Digital :
Atur Jangkah Pada Pilihan Simbol Ohm ( Ω ).
Bila Pada Layar Belum Tampil Gambar Simbol Ohm ( Ω ) Maka Dapat Diatur Dengan Menekan Tombol SELECT Sampai Muncul Simbol Ohm ( Ω ).
Hubungkan Probe HITAM & Probe MERAH Pada Resistor Yang Akan Diukur Resistansinya ( Probe Di Bolak – Balik Tidak Masalah )
Setelah Probe Terhubung Maka Di Layar Akan Tampil Hasil Dari Resistansi Resistor.
* ) Cara Pengukuran Teganagan AC Menggunakan Multimeter Digital :
Atur Jangkah Pada Pilihan V ( Volt ).
Setelah Pilih Jangkah Pada Posisi Volt Tinggal Pilih Simbol Arus AC Dengan Cara Menekan Tombol SELECT Sampai Muncul Simbol Arus AC.
Hubungkan Probe HITAM & Probe MERAH Pada Rangkaian Yang Akan Diukur Tegangannyanya Secara Paralel ( Probe Di Bolak – Balik Tidak Masalah Karena Pengukuran Tegangan Bolak – Balik / AC )
Hasil Pengukuran Akan Tampil Pada Display / Layar Multimeter Digital.
Gb. Multimeter Analog
* ) Cara Pengukuran Dioda Menggunakan Multimeter Analog :
Tiap Kali Jangkah Di Pindah Pada Posisi Ohm ( x1, x10, x100, x1K / 10K ) Maka Harus Selalu Melakukan Calibrasi Agar Pengukuran Resistansinya Akurat.
Cara Melakukan Calibrasi Pada Pengukuran Resistansi, Probe Merah & Hitam Kita Hubungkan Maka Jarum Akan Menyimpang Ke Posisi NOL ( NOL Untuk OHM Meter Kebalikan Dari Yang Lainnya ).
Apabila Jarum Belum Sampai Pada Posisi Nol Maka Knop ADJ Untuk Ohm Meter Dapat Di Putar Untuk Mengatur Jarum Supaya Tepat Pada Posisi Nol.
Kalau Knop ADJ Ohm Meter Sudah Di Putar – Putar Tetap Tidak Mau Sampai Pada Posisi Nol Berarti Batu Baterai Yang Ada Pada Multimeter Harus Di Ganti.
Hubungkan Probe HITAM & Probe MERAH Pada Resistor Yang Akan Diukur Resistansinya ( Probe Di Bolak – Balik Tidak Masalah )
Setelah Probe Terhubung Maka Di Layar Multimeter Jarum Akan Bergerak Yang Menunjukan Nilai Resistansi ( Nilai Skala Resistansi Berada Pada Posisi Paling Atas ).
* ) Cara Pengukuran Teganagan AC Menggunakan Multimeter Analog :
Atur Jangkah Pada Posisi ACV ~
( Pilih Skala Yang Menandakan Batas Maximal Pengukuran ).
Usahakan Pengukuran Pada Skala Yang Paling Besar Supaya Jarum Multimeter Menyimpangnya Tidak Over Apabila Nilai Tegangan Belum Di Ketahui.
Hubungkan Probe HITAM & Probe MERAH Pada Rangkaian Yang Akan Diukur Tegangannyanya Secara Paralel ( Probe Di Bolak – Balik Tidak Masalah Karena Pengukuran Tegangan Bolak – Balik / AC )
Hasil Pengukuran Dapat Di Lihat Pada Layar Multimeter Analog Pada Skala Warna Merah
( Khusus Untuk Pengukuran ACV ) Dengan Tidak Mengindahkan Jangkah Pada Posisi Skala
Maximal Berapa Agar Pembacaan Hasil Pengukuran Tidak Salah.
Gb. Osiloscope
Gb. Tampilan Depan Osiloscope
Gb. Cara Menghubungkan Probe Untuk Kalibrasi Osiloscope
* ) Cara Kalibrasi Osiloscope :
Masukan Kabel Power Pada Socket In Put 220 V Yang Terdapat Pada Bagian Belakang Osiloscope.
Masukan Socket Probe Osiloscope Pada Chanel 1 ( X ) atau Chanel 2 ( Y ).
Masukan Kabel Power ( Steker ) Pada Stop Kontak.
Atur MODE Pada Chanel 1 ( X ) atau Chanel 2 ( Y ).
Atur COUPLING Pada AC / DC & SOURCE Pada Chanel 1 ( X ) atau Chanel 2 ( Y ).
Hidupkan Osiloscope Dengan Menekan Tombol Power & Lampu Indikatorpun Akan Menyala.
Kalau Di Layar Osiloscope Belum Ada Tampilan Garis Horisontal Maka Atur HOLDOFF Pada Posisi AUTO & Pada LEVEL Tombol LOCK Di Tekan.
Setelah Ada Tampilan Garis Horisontal Pada Layar Osiloscope Atur Focus & Intensitas Cahaya Agar Tampilan Gelombang Enak Di Lihat.
Hubungkan Ujung Probe Osiloscope Pada Calibrasi ( CAL ), Maka Pada Layar Akan Tampil Gambar Gelombang ( Gelombang Kotak ).
Atur Posisi Vertikal & Horisontal Gelombang Agar Mudah Dalam Melakukan Penghitungan ( Perioda, frekuensi & Volt Peak to Peak ) Untuk PengKalibrasian Osiloscope.
Atur Volt / Div Pada Posisi 1 V & Time / Div Pada 0,5 mS ( .5 mS ).
Tinggi Gelombang Harus 2 Div Karena Pada Kalibrasi Tercatat 2 Vpp, Kalau Tidak Sampai 2 Vpp Atur Variable Pada Chanel 1 ( X ) atau Chanel 2 ( Y ) Untuk Mengatur Tinggi Gelombang Agar Mencapai 2 Vpp.
Panjang 1 Gelombang Penuh Harus 2 Div Horisontal.
Untuk Menghitung Perioda Menggunakan Rumus :
T = Div Horisontal x Time / Div
= 2 Kotak x 0,5 mS
= 2 x 0,5 . 10-3
= 1 . 10-3 S
Untuk Menghitung Frekuensi Menggunakan Rumus :
F = 1
T
= 1
1 . 10-3
= 1000
1
= 1000 Hz ( 1 KHz )
UntukMenghitungVoltPeak to Peak Menggunakan Rumus :
Vpp = Div Vertikal x Volt / Div
= 2 Kotak x 1 V
= 2 Vpp
Karena Pada Kalibrasi ( CAL ) Tertulis 2 Vpp & 1 KHz Maka Untuk Penghitungan Di Atas Menandakan Osiloscope Sudah Sesuai Dalam Pengkalibrasian.