SIMULASI ALAT KONTROL ATAP OTOMATIS BERBASIS
MIKROKONTROLER AT89S51
LAPORAN TUGAS AKHIR
WIWIK SARASWATI
072408043
PROGRAM STUDI D3 FISIKA INSTRUMENTASI DEPARTEMEN FISIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA
SIMULASI ALAT KONTROL ATAP OTOMATIS BERBASIS
MIKROKONTROLER AT89S51
LAPORAN TUGAS AKHIR
Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh Ahli Madya
WIWIK SARASWATI
072408043
PROGRAM STUDI D3 FISIKA INSTRUMENTASI DEPARTEMEN FISIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA
PERSETUJUAN
Judul : SIMULASI ALAT KONTROL ATAP OTOMATIS
BERBASIS MIKROKONTROLER AT89S51
Kategori : LAPORAN PROYEK
Nama : WIWIK SARASWATI
Nomor Induk Mahasiswa : 072408043
Program Studi : D3 FISIKA INSTRUMENTASI
Departemen : FISIKA
Fakultas : MATEMATIKA DAN ILMU PENGETAHUAN
ALAM UNIVERSITAS SUMATERA UTARA
Medan, Juni 2010
Diketahui oleh :
Ketua Program Studi
D3 Fisika Instrumentasi Pembimbing
Drs.Syahrul Humaidi,M.Sc
PERNYATAAN
SIMULASI ALAT KONTROL ATAP OTOMATIS BERBASIS MIKROKONTROREL AT89S51
TUGAS AKHIR
Saya mengakui bahwa laporan proyek ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan disumbernya.
Medan, Juni 2010
WIWIK SARASWATI
072408043
Puji dan syukur penulis panjatkan kehadirat Allah SWT atas berkat dan
karunia-Nya serta perlindungan-Nya penulis dapat menyelesaikan Laporan Tugas
Akhir ini.Dan tak lupa pula shalawat dan salam kepada Nabi besar Muhammad SAW.
Laporan Tugas Akhir ini merupakan hasil kerja dari Proyek yang penulis buat
dengan judul SIMULASI ALAT KONTROL ATAP OTOMATIS BERBASIS
MIKROKONTROLER AT89S51, meskipun dalam proses penulisan banyak menemui
hambatan dan rintangan namun dengan usaha maksimal yang dilakukan penulis serta
bantuan dari berbagai pihak, akhirnya laporan Tugas Akhir ini dapat selesai.
Pada kesempatan ini penulis mengucapkan terima kasih kepada :
1. Bapak Prof. Dr. Eddy Marlianto, M.Sc , Dekan Fakultas Matematika dan Ilmu
Pengetahuan Alam, Universitas Sumatera Utara Medan.
2. Bapak Dr. Sutarman, M.Sc , Pudek I Fakultas Matematika dan Ilmu Pengetahuan
Alam, Universitas Sumatera Utara Medan.
3. Bapak Dr. Marhaposan Situmorang, M.Sc , Ketua Departemen Fisika Universitas
Sumatera Utara Medan.
4. Bapak Drs. Syahrul Humaidi, M.Sc , Ketua Program Studi D3 Fisika
Instrumentasi Universitas Sumatera Utara Medan.
5. Bapak Ir. Junaidi selaku Dosen Pembimbing Proyek ini yang banyak memberi
masukan baik dalam pembuatan proyek maupun dalam penyusunan laporan ini.
6. Seluruh Dosen yang telah memberikan ilmu pengetahuan selama perkuliahan,
yang membuka cakrawala berfikir.
7. Ayahanda Gondo Winarno dan kakanda Sarmiaty yang telah banyak memberikan
dorongan baik moriil maupun materi.
8. Rekan – rekan di Fisika Instrumentasi, Sri Wulandari Ritonga, Andika Siregar
yang telah banyak membantu dalam penyelesaian laporan Tugas Akhir ini.
9. Ibu Toeti Tjiptono dan Seluruh keluarga yang telah memberikan penulis tempat
Penulis Menyadari bahwa dalam penulisan laporan ini masih banyak kekurangan,.
Oleh karena itu penulis mengharapkan kritik dan saran yang membangun guna
kesempurnaan laporan ini.
Akhir kata semoga laporan ini dapat bermanfaat dan menambah wawasan yang
berguna bagi pembaca.
Medan, Juni 2010
ABSTRAK
Kemajuan ilmu pengetahuan dan teknologi telah mendorong manusia untuk
berusaha mengatasi segala permasalaha yang timbul di sekitarnya serta meringankan
pekerjaan yang ada. Salah satu teknologi yang berkembang saat ini adalah
mikrokontroler. Mikrokontroler merupakan keluarga mikroprosesor yaitu sebuah chip
yang dapat melakukan pemrosesan data secara digital sesuai dengan perintah bahasa
assembly yang diberikan. Dengan memanfaatkan mikrokontroler ini dapat diciptakan
suatu alat secerdas komputer tetapi dengan biaya yang relatife lebih murah daripada
komputer. Seiring dengan berkembangnya mikrokontroler, maka saat inni
mikrokontroler banyak diaplikasikan pada instrument – instrument yang berhubungan
dengan kehidupan sehari – hari. Salah satunya digunakan pada simulasi alat kontrol
atap buka tutup otomatis berbasis mikrokontroler AT89S51 yang difungsikan sebagai
tempat penjemuran pakaian otomatis. Pada simulasi alat kontrol atap otomatis ini
selain menggunakan mikrokontroler AT89S51 juga menggunakan sensor air dan
sensor LDR. Sensor air digunakan untuk mendeteksi air atau hujan. Apabila sensor air
terkena air maka atap akan tertutup dan atap terbuka kembali setelah sensor kering.
sekitar. Ketika sensor LDR menerima sedikit cahaya maka atap akan tertutup dan atap
DAFTAR ISI
Halaman
Persetujuan
Pernyataan
Penghargaan……… I
Abstrak……… III
Daftar Isi………... IV
Daftar Tabel……… VII
Daftar Gambar……… VIII
BAB I PENDAHULUAN
1.1.Latar Belakang Masalah……...………... 1
1.2.Rumusan Masalah………... 1
1.3.Tujuan Penulisan….…..……….. 2
1.4.Batasan Masalah..………..……….. 2
1.5.Sistematika Penulisan……...………... 2
BAB II LANDASAN TEORI 2.1. Perangkat Keras………... 4
2.1.1. Mikrokontroler AT89S51...……….. 4
2.1.3. SFR (Register Fungsi Khusus)Keluarga 51……….….… 7
2.1.4. Gambar IC Mikrokontroler AT89S51………...…… 9
2.2. Perangkat Lunak……….. 12
2.2.1. Instruksi – Instruksi AT89S51……… 12
2.2.2. Software 8051 Editor, Assembler,Simulator (IDE)….……… 15
2.2.3. Software Downloader……….…….. 16
2.3. Komponen……… 17
2.3.1. Transistor……….………. 17
2.3.2. Light Dependent Resistance ……….….... 17
2.3.3. Dioda……… 20
2.3.4. Relay……….……… 22
2.3.5. Transformator (Trafo)………... 22
2.3.6. Sensor Air……… ………... 23
2.3.7. IC (Integrated Circuit)…………...………. 24
2.3.8. Motor Stepper………. 24
BAB III PERANCANGAN ALAT DAN PROGRAM 3.1. Diagram Blok………..……… 27
3.2. Rangkaian Power Supplay (PSA)…….……….…………. 28
3.3. Rangkaian Driver Motor Stepper………...………. 28
3.4. Rangkaian Saklar (Keypad)………..……….. 30
3.6. Rangkaian Sensor Cahaya………..……… 32
3.7 Rangkaian Sensor Air………. 33
3.8. Flowchart………...……… 35
BAB IV PENGUJIAN ALAT DAN PROGRAM 4.1. Pengujian Rangkaian Power Supplay (PSA)………. 37
4.2. Pengujian Rangkaian Driver Motor Stepper……….. 37
4.3. Pengujian Rangkaian Mikrokontroler AT89S51……… 39
4.4. Pengujian Rangkaian Tombol………...………..… 41
4.5. Pengujian Program………..……….... 42
BAB V KESIMPULAN DAN SARAN 5.1. Kesimpulan……….… 45
5.2. Saran……….……... 45
DAFTAR TABEL
DAFTAR GAMBAR
Gambar 2.1. Diagram Blok Mikrokontroler ………... 5
Gambar 2.2. IC Mikrokontroler AT89S51.………. 10
Gambar 2.3. Editor 8051 Editor,Assembler,Simulator……… 15
Gambar 2.4. ISP_Flash Programmer 3.a……….. 16
Gambar 2.5. Transistor sebagai Switching.……….. 17
Gambar 2.6. Simbol LDR ……… 19
Gambar 2.7. Grafik LDR ………. 20
Gambar 2.8. Putaran motor dengan satu pulsa ……… 25
Gambar 2..9. Putaran motor dengan banyak pulsa ……….……. 25
Gambar 2.10. Variable reluctance ……… 26
Gambar 3.1. Diagram Blok Rangkaian……… 27
Gambar 3.2. Rangkaian Power Supplay (PSA)……….…... 28
Gambar 3.3. Rangkaian Driver Motor Stepper………...….. 29
Gambar 3.4. Rangkaian Sakelar (keypad)…...……….. 30
Gambar 3.5. Rangkaian Mikrokontroler AT89S51………... 32
Gambar 3.6. Rangkaian Sensor Cahaya……….………... 32
Gambar 3.7. Rangkaian Sensor Air……….…….……….... 33
Gambar 3.8. Bentuk Sensor Air pada PCB………….………. 34
ABSTRAK
Kemajuan ilmu pengetahuan dan teknologi telah mendorong manusia untuk
berusaha mengatasi segala permasalaha yang timbul di sekitarnya serta meringankan
pekerjaan yang ada. Salah satu teknologi yang berkembang saat ini adalah
mikrokontroler. Mikrokontroler merupakan keluarga mikroprosesor yaitu sebuah chip
yang dapat melakukan pemrosesan data secara digital sesuai dengan perintah bahasa
assembly yang diberikan. Dengan memanfaatkan mikrokontroler ini dapat diciptakan
suatu alat secerdas komputer tetapi dengan biaya yang relatife lebih murah daripada
komputer. Seiring dengan berkembangnya mikrokontroler, maka saat inni
mikrokontroler banyak diaplikasikan pada instrument – instrument yang berhubungan
dengan kehidupan sehari – hari. Salah satunya digunakan pada simulasi alat kontrol
atap buka tutup otomatis berbasis mikrokontroler AT89S51 yang difungsikan sebagai
tempat penjemuran pakaian otomatis. Pada simulasi alat kontrol atap otomatis ini
selain menggunakan mikrokontroler AT89S51 juga menggunakan sensor air dan
sensor LDR. Sensor air digunakan untuk mendeteksi air atau hujan. Apabila sensor air
terkena air maka atap akan tertutup dan atap terbuka kembali setelah sensor kering.
sekitar. Ketika sensor LDR menerima sedikit cahaya maka atap akan tertutup dan atap
BAB I
PENDAHULUAN
1.1. Latar Belakang Masalah
Bagi sebagian orang, pekerjaan merupakan suatu prioritas yang tidak dapat
ditinggalkan. Hal ini dapat kita lihat pada karyawan yang bekerja di kantor yang tidak
dapat mengontrol keadaan rumahnya.
Dengan memanfaatkan mikrokontroler ini dapat diciptakan suatu alat secerdas
komputer tetapi dengan biaya yang relatife lebih murah daripada komputer. Pada
umumnya orang sering disibukkan dengan pekerjaannya biasanya akan lupa dengan
apa yang ada dirumahnya dan akan merasa tidak tenang saat hujan tiba-tiba saja turun
karena tidak ada yang mengangkat pakaiannya yang dijemur diluar rumah. Oleh
karena itu, simulasi alat kontrol atap otomatis akan sangat membantu. Dengan alat ini
kita bisa meninggalkan jemuran pakaian kita tanpa takut apabila tiba-tiba hujan turun.
Karena simulasi alat ini akan membuka dan menutup atap secara otomatis sesuai
dengan keadaan lingkungan sekitar.
1.2. Rumusan Masalah
Berdasarkan uraian diatas, penulis tertarik untuk mengangkat dan merancang
sebuah simulasi alat kontrol atap otomatis yang diaplikasikan sebagai tempat untuk
penjemuran pakaian yang berbasis mikrokontroler AT89S51. Dimana pada
perancangan ini akan dirumuskan masalah:
1. Bagaimana prinsip kerja alat kontrol atap buka tutup otomatis ini bekerja.
2. Program apa yang diberikan untuk dapat membuka atau menutup atap
secara otomatis.
3. Bagaimana sensor air mengubah tegangan menjadi suatu nilai rendah atau
tinggi yang bisa dibaca oleh mikrokontroler.
4. Bagaimana prinsip,kerja motor driver.
1. Sebagai salah satu syarat untuk dapat menyelesaikan program Diploma tiga
(D3) Fisika Instrumentasi FMIPA Universitas Sumatera Utara.
2. Mengaplikasikan berbagai teori pendukung yang telah didapat di bangku
perkuliahan menjadi sebuah karya nyata berupa sebuah alat.
3. Memanfaatkan mikrokontroler AT89S51 sebagai tempat pemrosesan data
untuk mengontrol atap otomatis.
1.4. Batasan Masalah
Mengingat keterbatasan kemampuan penulis dan waktu pelaksanaan
pembuatan proyek, maka dibuat batasan masalah sebagai berikut :
1. Membahas tentang Mikrokontroler AT89S51 sebagai basis dalam
rangkaian.
2. Membahas tentang LDR sebagai sensor intensitas cahaya.
3. Membahas tentang sensor air sebagai sensor pendeteksi hujan.
4. Membahas tentang bahasa assembly sebagai pemrograman alat.
1.5. Sistematika Penulisan
Untuk memudahkan pembahasan dan pemahaman maka penulis membuat
sistematika pembahasan bagaimana sebenarnya prinsip perancangan atap otomatis ini.
BAB I. PENDAHULUAN
Dalam bab ini berisikan mengenai latar belakang, rumusan masalah,
tujuan penulisan, batasan masalah, serta sistematika penulisan.
BAB II. LANDASAN TEORI
Dalam bab ini dijelaskan tentang teori pendukung yang digunakan
untuk pembahasan cara kerja dari rangkaian teori pendukung itu antara
lain komponen, perangkat keras, perangkat lunak.
BAB III. PERANCANGAN ALAT DAN PROGRAM
Pada bab ini akan dibahas perancangan dari alat, yaitu diagram blok
dari rangkaian, skematik dari masing – masing rangkaian.
BAB IV. ANALISA RANGKAIAN DAN SISTEM KERJA ALAT
Pada bab ini akan dibahas hasil analisa dari rangkaian dan sistem kerja
BAB V. KESIMPULAN DAN SARAN
Bab ini berisi tentang mengenai kesimpulan yang didapat setelah
merakit proyek ini dan saran yang diberikan demi kesempurnaan dan
BAB II
LANDASAN TEORI
2.1 Perangkat Keras
2.1.1 Mikrokontroler AT89S51
Mikrokontroler sebagai suatu terobosan teknologi mikrokontroler dan
mikrokomputer hadir memenuhi kebutuhan pasar (market need) dan teknologi baru.
Sebagai teknologi baru, yaitu teknologi semikonduktor dengan kandungan transistor
yang lebih banyak namun hanya membutuhkan ruang kecil serta dapat diproduksi
secara massal (dalam jumlah banyak) sehingga harga menjadi lebih murah
(dibandingkan mikroprosesor). Sebagai kebutuhan pasar, mikrokontroler hadir untuk
memenuhi selera industri dan para konsumen akan kebutuhan dan keinginan alat – alat
bantu dan mainan yang lebih canggih.
Ilustrasi yang mungkin bisa memberikan gambaran yang jelas dalam
penggunaan mikrokontroler adalah aplikasi mesin tiket dalam arena permainan yang
saat ini terkenal di Indonesia. Jika kita sudah selesai bermain, maka akan diberikan
suatu nilai, nilai inilah yang menentukan berapa jumlah tiket yang bisa diperoleh dan
jika dikumpulkan dapat ditukar dengan berbagai macam hadiah. Sistem tiket ini
ditangani dengan mikrokontroler, karena tidak mungkin menggunakan PC yang harus
dipasang disamping atau dibelakang mesin permainan yang bersangkutan.
Selain sistem tiket, kita juga dapat menjumpai aplikasi mikrokontroler dalam
bidang pengukuran jarak jauh atau yang dikenal dengan sistem telemetri. Misalnya
pengukuran disuatu tempat yang membahayakan manusia, maka akan lebih nyaman
jika dipasang suatu sistem pengukuran yang bisa mengirimkan data lewat pemancar
dan diterima oleh stasiun pengamatan dari jarak yang cukup aman dari sumbernya.
Sistem pengukuran jarak jauh ini jelas membutuhkan suatu sistem akuisisi data
sekaligus sistem pengiriman data secara serial (melalui pemancar), yang semuanya itu
Tidak seperti sistem komputer, yang mampu menangani berbagai macam
program aplikasi (misalnya pengolahan kata, pengolahan angka dan lain sebagainya),
mikrokontroler hanya bisa digunakan untuk satu aplikasi tertentu saja. Perbedaan
lainnya terletak pada perbandingan RAM dan ROM-nya. Pada sistem komputer RAM
dan ROM-nya besar. Sedangkan pada mikrokontroler ROM dan RAM-nya terbatas.
Pada mikrokontroler AT89S51 ROM atau flash PEROM berukuran 2 kilo byte,
sedangkan RAM-nya berukuran 128 byte.
Mikrokontroler AT89C51/52 mempunyai 40 kaki, 32 kaki diantaranya adalah
untuk keperluan port paralel. Satu port paralel terdiri dari 8 kaki, dengan demikian 32
kaki tersebut membentuk 4 buah port, yang masing-masing dikenal sebagai port 0,
port 1, port 2, port 3. Data dapat dengan mudah dimasukkan diolah dan dikeluarkan
dari port-port tersebut dengan instruksi-instruksi yang sederhana
Secara umum arsitektur mikrokontroler AT89C51/52 seperti pada blok gambar
dibawah ini, Mikrokontroler 89C51 adalah mikrokontroler dengan arsitektur MCS51
seperti 8031 dengan memori Flash PEROM (Programmable and Erasable Read Only
Memory)
Gambar 2.1 diagram blok mikrokontroler
Mikrokontroler AT89S51 hanya memerlukan tambahan 3 kapasitor, 1 resistor
dan 1 kristal serta catu daya 5 volt. Kapasitor 10 mikroFarad dan resistor 10 kilo Ohm
dipakai untuk membentuk rangkaian reset. Dengan adanya rangkaian reset ini
AT89S51 otomatis direset begitu rangkaian menerima catu daya. Kristal dengan
frekuensi maksimum 24 MHz dan kapasitor 30 pikoFarad dipakai untuk melengkapi
rangkaian oscillator pembentuk clock yang menentukan kecepatan kerja
mikrokontroler.
Memori merupakan bagian yang sangat penting pada mikrokontroler.
Mikrokontroler memiliki dua macam memori yang sifatnya berbeda. Read Only
Memory (ROM) yang isinya tidak berubah meskipun IC kehilangan catu daya. Sesuai
dengan keperluannya, dalam susunan MCS-51 memori penyimpanan program ini
dinamakan sebagai memori program. Random Access Memori (RAM) isinya akan
sirna begitu IC kehilangan catu daya, dipakai untuk menyimpan data pada saat
program bekerja. RAM yang dipakai untuk menyimpan data ini disebut sebagai
memori data.
Ada berbagai jenis ROM. Untuk mikrokontroler dengan program yang sudah
baku dan diproduksi secara manual, program diisikan ke dalam ROM pada saat IC
mikrokontroler dicetak di pabrik IC. Untuk keperluan tertentu mikrokontroler
menggunakan ROM yang dapat diisi ulang atau Programable-Eraseable ROM yang
disingkat menjadi PEROM atau PROM. Dulu banyak dipakai UV-EPROM (Ultra
Violet Eraseable Programble ROM) yang kemudian dinilai mahal dan ditinggalkan
setelah ada flash PEROM yang harganya jauh lebih murah.
Jenis memori yang dipakai untuk Memori Program AT89S51 adalah Flash
PEROM, program untuk mengendalikan mikrokontroler diisikan ke memori itu lewat
bantuan alat yang dinamakan sebagai AT89S51 Flash PEROM Programmer.
Memori data yang disediakan dalam chip AT89S51 sebesar 128 byte,
meskipun hanya kecil saja tapi untuk banyak keperluan memori kapasitas itu sudah
cukup. Sarana Input/Output yang disediakan cukup banyak dan bervariasi. AT89S51
mempunyai 32 jalur Input/Output paralel dikenal sebagai Port 1 (P1.0 … P1.7) dan
AT89S51 dilengkapi UART (Universal Asyncronous Receiver/Transmitter)
yang biasa dipakai untuk komunikasi data secara seri. Jalur untuk komunikasi data seri
(RXD dan TXD) diletakkan berhimpitan dengan P3.0 dan P3.1 di kaki nomor 10 dan
11, sehingga kalau sarana input/output yang bekerja menurut fungsi waktu. Clock
penggerak untaian pencacah ini bisa berasal dari oscillator Kristal atau clock yang
diumpan dari luar lewat T0 dan T1. T0 dan T1 berhimpitan dengan P3.4 dan P3.5,
sehingga P3.4 dan P3.5 tidak bisa dipakai untuk jalur input/output paralel kalau T0
dan T1 dipakai.
AT89S51 mempunyai enam sumber pembangkit interupsi, dua diantaranya
adalah sinyal interupsi yang diumpankan ke kaki INT0 dan INT1. Kedua kaki ini
berhimpitan dengan P3.2 dan P3.3 sehingga tidak bisa dipakai sebagai jalur
input/output paralel kalau INT0 dan INT1 dipakai untuk menerima sinyal interupsi.
Port 1 dan 2, UART, Timer 0, Timer 1 dan sarana lainnya merupakan register
yang secara fisik merupakan RAM khusus, yang ditempatkan di Speciall Function
Register (SFR).
2.1.3 SFR (Register Fungsi Khusus) pada keluarga 51
Tidak semua alamat pada SFR digunakan, alamat – alamat yang tidak
digunakan diimplementasikan pada chip. Jika dilakukan usaha pembacaan pada
alamat – alamat yang tidak terpakai tersebut akan menghasilkan data acak dan
penulisannya tidak menimbulkan efek sama sekali. Penggunaan perangkat lunak
sebaiknya jangan menuliskan ‘1’ pada lokasi – lokasi ‘tak bertuan’ tersebut, karena
dapat digunakan untuk mikrokontroler generasi selanjutnya.Dengan demikian,nilai–
nilai reset atau nonaktif dari bit–bit baru ini akan selalu ‘0’ dan nilai aktifnya ‘1’.
Akumulator
ACC atau akumulator yang menempati lokasi E 0h digunakan sebagai register
untuk penyimpanan data sementara, dalam program, instruksi mengacunya sebagai
register A (bukan ACC). Digunakan dalam Operasi Aritmatik (Add A,#05H), Operasi
Logika (Anl A,#05H), Akses Memori Eksternal (Movx A,@DPTR)dan digunakan
Register B
Register B (lokasi D 0h) digunakan selama operasi perkalian dan pembagian,
untuk instruksi lain dapat diperlakukan sebagai register scratch pad (“papan
coret-coret”) lainnya.
Program status word (PSW)
Register psw (lokasi D 0h) mengandung informasi status program.
Stack Pointer
Register SP atau Stack pointer (lokasi 8 1h) merupakan register dengan
panjang 8-bit, digunakan dalam proses simpan menggunakan instruksi PUSH dan
CALL. Walau Stack bisa menempati lokasi dimana saja dalam RAM, register SP akan
selalu diinisialisasikan ke 07h setelah adanya reset, hal ini menyebabkan stack
berawal di lokasi 08h.
Data pointer
Register data pointer atau DPTR mengandung DPTR untuk byte tinggi (DPH)
dan byte rendah (DPL) yang amsing – masing berada dilokasi 83h dan 82h, bersama –
sama membentuk register yang mampu menyimpan alamat 16-bit. Dapat
dimanipulasikan sebagai register 16-bit atau ditulis dari/ke port, untuk masing –
masing Port 0, Port 1, Port 2 dan Port 3.
Serial data Buffer
SBUF atau serial Data Buffer (lokasi 99h) sebenarnya terdiri dari dua register
yang terpisah, yaitu register penyangga pengirim (transmit buffer ) dan penyangga
penerima (receive buffer). Pada saat data disalin ke SBUF, maka data sesungguhnya
dikirim ke penyangga pengirim dan sekaligus mengawali transimisi data serial.
Sedangkan pada saat data disalin dari SBUF, maka sebenarnya data tersebut berasal
Time Register
Pasangan register (TH0, TL0) dilokasi 8Ch dan 8Ah (TH1,TL1) dilokasi 8Dh
dan 8Bh serta (TH2,TL2) dilokasi CDh dan CCh merupakan register – register
pencacah 16-bit untuk masing – masing Timer 0, Timer 1 dan Timer 2.
Capture register
Pasangan register (RCAP2H, RCAP21) yang menempati lokasi CBh dan CAh
merupakan register capture untuk mode Timer 2 capture. Pada mode ini, sebagai
tanggapan terjadinya suatu transisi sinyal di kaki (pin) T2EX (pada AT89S52/55),
TH2 dan TL2 disalin masing – masing ke RCAP2H dan RCAP2L. timer 2 juga
memiliki mode isi ulang – otomatis 16-bit dan RCAP2H serta RCAP2L digunakan
untuk menyimpan nilai isi-ulang tersebut.
Kontrol Register
Register – register IP, IE, TMOD, TCON,T2CON,T2MOD,SCON dan PCON
berisi bit – bit control dan status untuk sistem interupsi, pencacah/pewaktu dan port
serial.
Berikut ini merupakan spesifikasi dari IC AT89S51 :
1. Kompatible dengan produk MCS-51
2. Empat Kbyte In-Sistem Reprogammable Flash Memory
3. Daya tahan 1000 kali baca/tulis
4. Tegangan kerja 4,0 volt sampai 5,5 volt
5. Fully Static Operation : 0 Hz sampai 33 MHz
6. Tiga level kunci memori program
7. 128 x 8 – bit RAM internal
8. 32 jalur input/output (I/O)
9. Dua 16 bit Timer/Counter
10.Enam sumber interrupt
11.Jalur serial dengan UART
2.1.4 Gambar IC Mikrokontroler AT89S51
Gambar 2.2. IC Mikrokontroler AT89S51
Deskripsi pin – pin pada mikrokontroler AT89S51 :
Vcc (Pin 40)
suplai tegangan
GND (pin 20)
Ground
Port 0 (Pin 39 – Pin 32)
Port 0 dapat berfungsi sebagai I/O biasa, low order multiplex address/data
ataupun penerima kode byte pada saat flash programming. Pada fungsi sebagai I/O
biasa port ini dapat memberikan output sink ke delapan buah TTL atau dapat diubah
sebagai input dengan memberikan logika 1 pada port tersebut. Pada fungsi sebagai
low order multiplex address/data, port ini akan mempunyai internal pull up. Pada saat
flash programming diperlukan eksternal pull up, terutama pada saat verifikasi
program.
Port 2 (pin 21 – Pin 28)
Port 2 berfungsi sebagai I/O biasa atau high order address, pada saat
mengakses memori secara 16 bit. Pada saat mengakses memori 8 bit, port ini akan
mengelurkan isi dari P2 special function register. Port ini mempunyai internal pull up
dan berfungsi sebagai input dengan memberikan logika 1. Sebagai output, port ini
dapat memberikan output sink ke keempat buah input TTL.
Port 3 (pin 10 – pin 17)
Port 3 merupakan 8 bit port I/O dua arah dengan internal pull-up. Port 3 juga
Table 2.1 Fungsi pin pada Port 3
Nama pin Fungsi
P3.0 (pin 10) RXD (Port input serial)
P3.1 (pin 11) TXD (Port output serial)
P3.2 (pin 12) INT0 (interrupt 0 eksternal)
P.3.3 (pin 13) INT1 (interrupt 1 eksternal)
P3.4 (pin 14) T0 (input eksternal timer 0)
P3.5 (pin 15) T1 (input eksternal timer 1)
P3.6 (pin 16) WR (menulis untuk eksternal data
memori)
P3.7 (pin 17) RD (untuk membaca eksternal data
memori)
RST (Pin 9)
Reset akan aktif dengan meberikan input high selama 2 cycle.
ALE/PROG (Pin 30)
Address latch Enable adalah pulsa output untuk me-latch byte bawah dari
alamat selama mengakses memori eksternal. Selain itu, sebagai pulsa input program
(PROG) selama memprogram Flash.
PSEN (Pin 29)
Program store enable digunakan untuk mengakses memori program eksternal.
EA (Pin 31)
Pada kondisi low, pin ini akan berfungsi sebagai EA yaitu mikrokontroler akan
menjalankan program yang ada pada memori eksternal setelah sistem direset. Jika
kondisi high, pin akan berfungsi untuk menjalankan program yang ada pada memori
internal. Pada saat flash programming, pin ini akan mendapat tegangan 12 volt.
Xtal1 (Pin 19)
Input untuk clock internal
Xtal2 (Pin 18)
Konfigurasi pin AT89S51 berbentuk kemasan DIP (Dual In-line Package).
mikrokontroler dipacu pada frekuensi 12 MHz dengan memasang rangkaian osilator
dengan kristal 12 MHz melalui kapasitor 33 pf pada kaki 18 (XTAL 1) dan kaki 19
(XTAL 2). Osilator yang digunakan adalah rangkaian osilator yang sudah terdapat
pada mikrokontroler,dan hanya menambahkankristal dan kapasitor sebagai penentu
frekuensi yang digunakan. Kristal yang digunakan adalah 12 Mhz.
Karena Frekuensi Kristal = 12MHz
T = 1/f
T = 1/12MHz = 8,333333333-8
T= 8,333333333 - 8 x 1000000 = 0,083333333 µdetik
sehingga satu periode gelombang kotak adalah :
satu periode =0,083333333/2 = 0,04166 µdetik
2.2 Perangkat Lunak
2.2.1 Instruksi – Instruksi AT89S51
Bahasa yang digunakan untuk memprogram IC mikrokontroler AT89S51 adalah
bahasa assembly untuk MCS-51 merupakan jumlah instruksi, pada bahasa ini hanya
ada 51 instruksi. Dari instruksi, yang sering digunakan orang hanya 10 instruksi,
instruksi tersebut adalah :
1. Instruksi MOV
Perintah ini merupakan perintah untuk mengisikan nilai ke alamat atau
register tertentu. Pengisian nilai dapat secara langsung atau tidak langsung.
Contoh pengisian nilai secara langsung
MOV R0,#20h
Perintah diatas berarti : isikan nilai 20 heksadesimal ke register 0 (R0).
Tanda # sebelum bilangan menunjukkan bahwa bilangan tersebut adalah nilai.
Contoh pengisian nilai secara tidak langsung
MOV 20h,#80h
…………
…………
Perintah diatas berarti : isikan nilai yang terdapat pada alamat 20 heksadesimal
ke register 0 (R0).
Tanpa tanda # sebelum bilangan menunjukkan bahwa bilangan tersebut adalah
alamat.
2. Instruksi DJNZ
Decreament Jump If Not Zero (DJNZ) ini merupakan perintah untuk
mengurangi nilai register tertentu dengan 1 dan lompat jika hasil
pengurangannya belum nol.
meneruskan ke perintah pada baris berikutnya.
3. Instruksi ACALL
Instruksi ini berfungsi untuk memangggil suatu rutin tertentu.
Contoh :
Instruksi RETURN (RET) ini merupakan perintah untuk kembali ke
rutin pemanggil setelah instruksi ACALL dilaksanakan.
5. Instruksi JMP (JUMP)
Instruksi ini merupakan perintah untuk lompat ke alamat tertentu.
Contoh:
Loop:
……….
……….
JMP Loop
6. Instruksi JB (JUMP IF BIT)
Instruksi ini merupakan perintah untuk melompat ke alamat tertentu,
jika pin yang dimaksud berlogika high (1).
Contoh :
Loop:
JB P1.0,Loop
………
7. Instruksi JNB (JUMP IF NOT BIT)
Instruksi ini merupakan perintah untuk lompat ke alamat tertentu, jika
pin yang dimaksud berlogika low (0).
Contoh :
Loop:
JNB P1.0,Loop
…………
8. Instruksi CJNE (COMPARE JUMP IF NOT EQUEL)
Instruksi ini berfungsi untuk membandingkan nilai dalam suatu register
dengan suatu nilai tertentu.
Jika nilai R0 tidak sama dengan 20h, maka program akan lompat ke rutin
Loop.
Jika nilai R0 sama dengan 20h, maka program akan melanjutkan instruksi
9. Instruksi DEC (DECREMENT)
Instruksi ini merupakan perintah untuk mengurangi nilai register yang
dimaksud dengan 1. contoh :
MOV R0,#20h R0 = 20h
……..
DEC R0 R0 = R0 – 1
…….
10.Instruksi INC (INCREMENT)
Instruksi ini merupakan perintah untuk menambahkan nilai register
yang dimaksud dengan 1.
Contoh:
MOV R0,#20h R0 = 20h
………….
INC R0 R0 = R0 + 1
………….
2.2.2 Software 8051 Editor, Assembler, Simulator (IDE)
Instruksi-instruksi yang merupakan bahasa assembly tersebut dituliskan pada
sebuah editor, yaitu 8051 Editor, Assembler, Simulator.
Setelah program selesai ditulis, kemudian di save dan kemudian di assembler
(dicompile). Pada saat di assemble akan tampil pesan peringatan dan kesalahan. Jika
masih ada kesalahan atau peringatan,itu berarti ada kesalahan dalam penulisan
perintah atau ada nama subrutin yang sama, sehingga harus diperbaiki terlebih dahulu
sampai tidak ada pesan kesalahan lagi.
Software ini berfungsi untuk mengubah program yang kita tuliskan ke dalam
bilangan heksadesimal inilah yang akan dikirimkan ke mikrokontroler.
2.2.3 Software Downloader
Untuk mengirimkan bilangan-bilangan heksadesimal ini ke mikrokontroler
digunakan software ISP-Flash Programer 3.0a yang dapat di download dari internet.
Tampilannya seperti gambar di bawah ini.
Gambar 2.4 ISP-Flash Programmer 3.a
Cara menggunakannya adalah dengan meng klik open file untuk mengambil
file heksadesimal dari hasil kompilasi 8051 IDE, kemudian klik write untuk
2.3. KOMPONEN 2.3.1. Transistor
Semua transistor memiliki 3 buah kaki sambungan atau terminal. Transistor
daya rendah dibuat dengan kemasan dari bahan plastik atau logam. Dimana kemasan
transistor yang terbuat dari plastik memiliki salah satu sisi permukaaan yang
berbentuk datar, sedangkan yang terbuat dari logam memiliki sebuah tonjolan (tag)
pada pinggiran bawah nya (rim). Fitur – fitur ini dimaksudkan untuk membantu
pemakai mengidentifikasikan kaki – kaki terminal. Terminal – terminal nya diberi
label c, b, dan e yang merukan singkatan dari collector, basis dan emitor. Ada 2 jenis
transistor berdasarkan arus inputnya (BJT) dan tegangan inputnya (FET).
Berikut ulasan 2 transistor tersebut:
1. BJT (Bipolar junction Transistor)
Transistor jenis ini merupakan transistor yang mempunyai 2 dioda,
terminal positif dan negatife nya berdempet sehingga ada 3 terminal.
Perubahan arus listrik dalam jumlah kecil pada terminal basis dapat
menghasilkan perubahan arus listrik dalam jumlah besar pada terminal
kolektor. Prinsip inilah yang mendasari penggunaan transistor sebagai penguat
elektronik.
2. FET (Field Effect Transistor)
Transistor FET dibagi menjadi 2 macam, yaitu junction FET
(JFET)dan Insulated Gate FET (IGFET) atau juga dikenal dengan sebutan
metal oxide silikon FET (MOSFET). Berbeda dengan MOSFET terminal gate
dalam JFET membentuk sebuah dioda dengan kanal (materi semiconductor
antara Source dengan drain). Dari sebuah fungsi, hal ini membuat N-chanel
JFET menjadi sebuah versi solid state dari tabung vakum yang juga
membentuk sebuah dioda antara grade dan katode.
Untuk menggunakan sebuah BJT kita harus menyambungkan nya sedemikian rupa
sehingga:
1. Terminal emitter BJT adalah terminal dengan polaritas paling negatife.
3. Terminal basis lebih positif 0,7 volt atau sedikit lebih besar dari terminal
emitor nya.
Dengan kondisi – kondisi ini kita dapat mengetahui bahwa :
1. Arus yang relatife kecil mengalir menuju basis.
2. Arus dengan nilai yang jauh lebih besar mengalir menuju kolektor.
3. Arus basis dan arus kolektor mengalir keluar dari transistor melalui emitor.
Transistor sebagai switching
Disamping sebagai penguat, transistor juga sering digunakan sebagai
switching untuk mengontrol suatu beban dengan arus kecil,medium, atau arus besar
dengan aplikasi – aplikasi industri.
Gambar 2.5 Transistor sebagai Switching
Pada penggunaan transistor sebagai switching tegangan nol volt pada Vbe
transistor jenis NPN berarti mengaktifkan transistor tersebut sebagai saklar dengan
keadaan terbuka, sedangkan memberi tegangan ≥0,7 volt untuk transistor silikon dan
≥ 0,3 volt untuk transistor germanium pada Vbe transistor akan memfungsikan transistor itu sebagai saklar dengan keadaan tertutup. Sedangkan pada transistor jenis
PNP tegangan nol justru akan membuat transistor tersebut bekerja sebagai saklar
dalam keadaan tertutup. Pada keadaan transistor sebagai saklar tertutup maka arus Ic
dari transistor itu akan mengalir melalui Rc melalui ground, sedangkan pada keadaan
2.3.2 LDR (light dependent resistor)
Adalah jenis resistor yang berubah hambatannya karena pengaruh
cahaya. Bila cahaya gelap,nilai tahanannya semakin besar, sedangkan bila
cahayanya terang nilainya menjadi semakin kecil. Sebuah LDR terdiri dari
sebuah piringan bahan semikonduktor dengan dua buah elektroda pada
permukaannya. Dalam gelap atau dibawah cahaya yang redup, bahan piringan
hanya mengandung elektron bebas dalam jumlah yang relatife sangat kecil.
Hanya tersedia sedikit elektron bebas untuk mengalirkan muatan listrik, hal ini
berarti bahwa bahan bersifat sebagai konduktor yang buruk untuk arus listrik.
Dengan kata lain nilai tahanan bahan sangat tinggi. Dibawah cahaya cukup
terang,lebih banyak elektron dapat melepaskan diri dari atom-atom bahan
semikonduktor ini. Terdapat lebih banyak elektron bebas yang dapat
mengalirkan muatan listrik. Dalam keadaan ini,bahan bersifat sebagai
konduktor yang baik. Tahanan listrik bahan rendah. Semakin terang cahaya
yang mengenai bahan, semakin banyak elektron bebas yang tersedia, dan
semakin rendah pula tahanan listrik bahan. Sensor Cahaya light dependent
resistors (LDR) merupakan komponen elektronik yang peka terhadap
pencahayaan. Jika mendapat cahaya terang maka nilai tahanannya mengecil
sebesar (+ 250kΩ), jika mendapat cahaya yang gelap maka nilai tahanannya
akan membesar sebesar (+ 1MΩ) atau bisa mencapai beberapa mega ohm.
Gbr 2.7. Bentuk grafik LDR
2.3.3 Dioda
Dioda merupakan sambungan bahan p-n yang berfungsi sebagai penyearah.
Komponen ini memberikan resistansi yang sangat rendah terhadap aliran arus pada
satu arah dan resistansi yang tinggi terhadap aliran arus, pada arah yang berlawanan.
Karakteristik ini memungkinkan dioda untuk digunakan dalam aplikasi yang menuntut
rangkaian untuk memberikan tanggapan yang berbeda sesuai dengan arah arus yang
mengalir didalamnya.
Sebuah dioda ideal akan melewatkan arus tak terhingga pada satu arah dan
sama sekali tidak melewatkan arus pada arah yang sebaliknya. Sebagai tambahan,
dioda akan mulai mengalirkan arus apabila tegangan terkecil sekalipun diberikan.
Jika bahan semikonduktor tipe p dijadikan lebih positif daripada bahan tipe n
melampaui nilai ambang tegangan majunya (sekitar 0,6 volt jika bahannya silikon dan
0,2 volt jika bahannya germanium). Dioda akan melewatkan arus dengan bebas. Jika
sebaliknya, bahan tipe p dijadikan lebih negatife daripada bahan tipe n, tidak akan ada
arus yang mengalir kecuali tegangan yang diberikan melebihi tegangan maksimum
atau breakdown yang dapat diterima oleh perangkat.
Bahan tipe p menjadi sisi katoda sedangkan bahan tipe n menjadi sisi anoda.
Tanpa potensial eksternal, elektron-elektron dari bahan tipe n akan menyeberang ke
dalam daerah tipe p dan mengisi sebagian dari hole-hole yang kosong. Tindakan ini
tidak terdapat pembawa muatan bebas. Zona ini dikenal dengan daerah serapan
(deplesion religion). Dalam kondisi bias maju, dioda akan melewatkan arus dengan
bebas, diode bertindak seperti sakelar yang tertutup. Dalam kondisi bias mundur,
dioda melewatkan arus dalam jumlah yang dapat diabaikan,dioda bertindak seperti
sebuah sakelar yang terbuka.
Fungsi paling umum dari dioda adalah untuk memperbolehkan arus listrik
mengalir dalam suatu arah (disebut kondisi bias maju) dan untuk menahan arus dari
arah sebaliknya (disebut kondisi bias mundur). Karenanya, dioda dapat dianggap
sebagai versi elektronik dari
menunjukkan kesearahan hidup-mati yang sempurna (benar-benar menghantar saat
bias maju dan menyumbat pada bias mundur), tetapi dioda mempunyai karakteristik
listrik tegangan-arus taklinier kompleks yang bergantung pada teknologi yang
digunakan dan kondisi penggunaan. Kebanyakan dioda digunakan karena karakteristik
satu arah yang dimilikinya. Beberapa jenis dioda juga mempunyai fungsi yang tidak
ditujukan untuk penggunaan penyearahan.
Jenis-jenis dioda dibagi menjadi lima jenis berdasarkan fungsinya, yaitu :
1. Dioda penyearah
Dioda yang difungsikan sebagai penyearah tegangan bolak balik
menjadi tegangan searah dan biasanya digunakan pada rangkaian power
supplay.
2. Dioda foto (fotovoltage)
Digunakan untuk mengubah energi cahaya menjadi energi listrik searah.
3. Dioda laser
Digunakan untuk membangkitkan sinar laser tahap rendah, dan cara
kerjanya mirip LED.
4. Dioda pemancar cahaya (LED)
Adalah dioda yang memancarkan cahaya bila dipanjar maju. Led
dibuat dari semikonduktor campuran seperti gallium arsenide fosfida (GaAsP)
,gallium fosfida (GAP), gallium indium fosfida dan gallium aluminium
arsenide. Dioda pemancar cahaya menghasilkan cahaya ketika arus
melewatinya. Led dapat digunakan sebagai indikator serba guna. Sebuah led
kecerahan maksimum meskipun arus sekecil 5A pun masih bisa menghasilkan
cahaya yang jelas nampak. Jatuh tegangan maju sebuah led rata-rata adalah
1,5volt, sehingga pasokan tegangan 2volt dapat menyalakan sebagian besar led
dengan kecerahan maksimum. Sebuah led yang tipikal memiliki kemasan
berbentuk kubah yang terbuat dari bahan plastik, dengan pinggiran yang
menonjol (rim) pada bagian bawah kubah. Terdapat dua buah kaki terminal
dibagian bawah kubah. Biasanya kaki katoda lebih pendek dari kaki anoda.
Cara lain untuk membedakan kaki katoda dengan anoda adalah dengan
memperhatikan bagian rim. Rim dibuat berbentuk datar pada sisi yang
berdekatan dengan kaki katoda.
5. Dioda zener
Dioda zener digunakan untuk regulasi tegangan
2.3.4 Relay
Relay adalah sebuah saklar yang dikendalikan oleh arus. Relay memiliki
sebuah kumparan tegangan rendah yang dililitkan pada sebuah inti. Relay biasanya
hanya sebuah kumparan akan tetapi memiliki beberapa kontak. Relay elektromekanis
berisi kontak diam dan kontak bergerak yang dipasangkan pada plunger. Kontak
ditujuk sebagai normaly open (NO) dan normaly close (NC). Kontak normaly open
akan membuka ketika tidak ada arus mengalir pada kumparan, tetapi tertutup
secepatnya setelah kumparan menhantarkan arus atau diberi tenaga. Kontak normaly
close akan tertutup ketika kumparan tidak diberi daya dan terbuka ketika kumparan
diberi daya. Masing-masing kontak biasanya digambarkan sebagai kontak yang
nampak dengan kumparan yang tidak diberi daya.
2.3.5 Transformator (trafo)
Transformator atau trafo adalah komponen yang digunakan untuk mentransfer
sumber energi atau tenaga dari suatu rangkaian AC ke rangkaian lainnya. Perpindahan
atau transfer energi tersebut bisa menaikkan atau menurunkan energi yang ditransfer,
hal ini disesuaikan dengan kebutuhan. Untuk menaikkan tegangan dibutuhkan
step-down. Tanpa transformator, distribusi daya listrik yang luas menjadi tidak praktis.
Transformator dapat membangkitkan daya pada tegangan yang cocok, menaikkan
sampai tegangan yang sangat tinggi untuk transmisi jarak jauh dan kemudian
menurunkan pada distribusi yang praktis.prinsip kerja transformator didasarkan pada
induksi bersama. Dimana induksi bersama terjadi ketika medan magnet disekitar satu
penghantar memotong melintang penghantar yang lain, yang menginduks ikan
tegangan didalamnya. Efek ini dapat ditingkatkan untuk membentuk penghantar –
penghantar menjadi lilitan dan kumparan pada inti magnet bersama.
Trafo daya biasanya menunjuk pada transformator yang lebih besar yang
digunakan untuk merubah level tegangan dan arus untuk memenuhi persyaratan
rangkaian. Sebagian besar transformator daya dirancang beroperasi pada frekuensi 50
Hz sampai dengan 60 Hz. Transformator ini berfungsi sebagai pensupply daya untuk
mengubah tegangan jala – jala menjadi tegangan lain yang dibutuhkan.
Menurut pemakaiannya trafo dapat dibagi menjadi 3 jenis yaitu:
1. Trafo filter berfungsi memfilter atau menyaring sinyal.
2. Trafo MF biasa terdapat pada pesawat radio berfungsi sebagai kopel atau
menghubungkan antar frekuensi.
3. Trafo daya atau trafo input/output digunakan untuk menyesuaikan impedansi.
2.3.6 Sensor Air
Sensor air yang dibuat sebenarnya merupakan PCB yang jalurnya dirancang
sedemikian rupa sehingga letak jalur-jalurnya rapat. Ketika air jauh ke atas sensor,
maka resistor di basis transistor akan mendapat tegangan 5V. Hal ini akan
menyebabkan transistor C945 akan aktif. Ketika transistor ini aktif, logika outputnya
yang dihubungkan pada input IC 7408 (merupakan IC dengan 4 gerbang AND) akan
menjadi 0. Sebaliknya ketika sensor air dalam keadaan kering, maka 5V tidak
terhubung pada resistor di basis transistor. Sehingga basis transistor tidak mendapat
tegangan. Hal ini menyebabkan transistor tidak aktif (transistor akan aktif bila
tegangan di basisnya lebih besar dari 0,6V). Karena transistor ini tidak aktif, maka
Keempat output dari sensor air ini dihubungkan ke sebuah IC 7408. Dengan
demikian, ketika salah satu saja sensornya menghasilkan logika 0, maka ouput dari IC
7408 akan 0. Logika ini akan dikirimkan ke mikrokontroler untuk mengindikasikan
adanya air pada sensor air. IC 7408 ini dapat menghemat penggunaan pin ada
mikrokontroler dan mempermudah program yang dibuat.
2.3.7 IC (Integrated Circuit)
IC adalah rangkain elektronik lengkap yang dimasukkan dalam 1 chip silikon.
Didalam 1 buah Ic bisa berisi puluhan, ratusan bahkan ribuan komponen elektronika
(transistor, diode, resistor, kapasitor dan lainnya) yang bersama – sama sebagai
penghantar listrik yang bekerjanya disesuaikan dengan fungsi IC tersebut.
Berikut jenis IC dari segi bentuk dan fungsinya dalam peralatan elektronika.
1. IC power Adaptor atau regulator
IC jenis ini digunkan sebagai komponen utama pada rangkaian power
adaptor pada sub rangkaian regulator. Fungsi dari IC ini adalah untuk
menstabilkan tegangan.
2. IC Digital
IC digital merupakan IC yang banyak digunakan dalam elektronika. I
jenis ini memiliki suatu titik elektronis yang berupa kaki IC. IC jenis ini
memiliki dua keadaan logika, yaitu logika nol (rendah) atau logika satu
(tinggi). Suatu titik elektronis mewakili satu binary digit atau biasa disingkat
dengan bit. Binary berarti sistem bilangan yang mengenal dua angka yaitu nol
dan satu.
2.3.8 Motor Stepper
Motor stepper adalah motor listrik yang dikendalikan dengan pulsa-pulsa
digital, bukan dengan memberikan tegangan yang terus-menerus. Deretan pulsa
pulsa yang ditentukan. Satu pulsa menghasilkan satu kenaikan putaran atau step, yang
merupakan bagian dari satu putaran penuh. Oleh karena itu, perhitungan jumlah pulsa
dapat diterapkan untuk mendapatkan jumlah putaran yang diinginkan. Perhitungan
pulsa secara otomatis menujukkan besarnya putaran yang telah dilakukan, tanpa
memerlukan informasi balik(feedback).
Gbr 2.8. Putaran motor dengan satu pulsa
Gbr 2.9. Putaran motor dengan banyak pulsa
Ketepatan kontrol gerak motor stepper terutama dipengaruhi oleh jumlah step
tiap putaran; semakin banyak jumlah step, semakin tepat gerak yang dihasilkan. Untuk
ketepatan yang lebih tinggi, beberapa driver motor stepper membagi step normal
menjadi setengah step(half step) atau mikro step. Pada motor stepper umumnya
tertulis spesifikasi Np (= pulsa / rotasi). Sedangkan kecepatan pulsa diekspresikan
sebagai pps (= pulsa per second) dan kecepatan putar umumnya ditulis sebagai ω (=
rotasi / menit atau rpm). Kecepatan putar motor stepper (rpm) dapat diekspresikan
menggunakan kecepatan pulsa (pps) sebagai berikut.
Oleh karena 1 rotasi = 360°, maka tingkat ketelitian motor stepper dapat diekspresikan
Variable Reluctance (VR) motor stepper jenis ini memiliki bentuk rotor yang
unik yaitu berbentuk silinder dan pada semua unitnya memiliki gerigi yang memiliki
hubungan dengan kutub-kutub stator. Rotor pada magnet tipe ini tidak menggunakan
magnet permanent. Stator terlilit oleh lilitan sehingga pada saat teraliri arus, stator
akan menghasilkan kutub magnet. Jumlah gerigi pada rotor akan menentukan langkah
atau step motor. Perbedaan motor stepper berjenis PM dengan VR yaitu motor
berjenis VR memiliki torsi yang relatif lebih kecil dibanding dengan motor stepper
berjenis PM. Hal lain yang dapat dilihat adalah sisa kemagnetan sangat kecil sehingga
pada saat motor stepper tidak dialiri arus maka ketika diputar tidak ada torsi yang
melawan. Sudut langkah motor stepper berjenis VR ini bervariasi yaitu sekitar sampai
dengan 30°. Motor stepper berjenis VR ini memiliki torsi yang kecil. Sering
ditemukan pada printer dan instrumen-instrumen pabrik yang ringan yang tidak
membutuhkan torsi yang besar.
Gbr 2.10. Variable Reluctance
Seperti pada gambar diatas, motor mempunyai 3 pasang kutub stator (A, B, C)
yang diset terpisah 15 derajat. Arus dialirkan ke kutub A melalui lilitan motor yang
menyebabkan tarikan magnetik yang menyejajarkan gigi rotor kekutub A. jika kita
memberi energi kekutub B maka akan menyebabkan rotor berputar 15 derajat sejajar
kutub B. proses ini akan berlanjut kekutub C dan kembali kekutub A searah dengan
BAB III
PERANCANGAN ALAT DAN PROGRAM
3.1.Diagram Blok
Secara garis besar, digram blok rangkaian dari “ Simulasi Alat Kontrol Atap
Otomatis” ini adalah sebagai berikut :
Gambar 3.1. Diagram blok Rangkaian
Pada alat ini terdapat empat buah sensor air yang masing-masing dihubungkan
ke P0.0, P0.1, P0.2, P0.3. selain itu, terdapat juga LDR yang digunakan sebagai sensor
cahaya yang dihubungkan ke P0.4. sementara itu, terdapat juga tiga tombol, antara
lain : tombol auto dihubungkan P1.7, tombol buka manual dihubungkan ke P1.3 dan
tombol tutup manual dihubungkan ke P1.5. Tombol-tombol ini digunakan sebagai
input instruksi agar alat dapat membuka atau menutup atap baik itu secara otomatis
maupun manual, sesuai dengan keinginan si pengguna. Sementara itu, pada P2.4,
P2.5, P2.6, P2.7 dihubungkan rangkaian driver motor yang akan menggerakkan motor
Tombol auto
Driver motor Motor stepper
Vreg
stepper untuk menutup ataupun membuka atap sesuai dengan hasil pengolahan data
yang dilakukan mikrokontroler AT89S51.
3.2.Rangkaian Power Supplay (PSA)
Rangkaian PSA yang dibuat terdiri dari dua keluaran, yaitu 5 volt dan 12 volt,
keluaran 5 volt digunakan untuk menghidupkan seluruh rangkaian, sedangkan
keluaran 12 volt digunakan untuk menghidupkan motor stepper. Rangkaian tampak
seperti gambar di bawah ini,
Gambar 3.2 Rangkaian Power Supplay (PSA)
Trafo CT merupakan trafo stepdown yang berfungsi untuk menurunkan
tegangan dari 220 volt AC menjadi 12 volt AC. Kemudian 12 volt AC akan
disearahkan dengan menggunakan dua buah dioda, selanjutnya 12 volt DC akan
diratakan oleh kapasitor 2200 μF. Regulator tegangan 5 volt (LM7805CT) digunakan agar keluaran yang dihasilkan tetap 5 volt walaupun terjadi perubahan pada tegangan
masukannya. LED hanya sebagai indikator apabila PSA dinyalakan. Transistor PNP
TIP 32 disini berfungsi untuk mensupplay arus apabila terjadi kekurangan arus pada
rangkaian, sehingga regulator tegangan (LM7805CT) tidak akan panas ketika
rangkaian butuh arus yang cukup besar. Tegangan 12 volt DC langsung diambil dari
keluaran 2 buah dioda.
3.3.Rangkaian Driver Motor Stepper
Untuk mengendalikan perputaran motor stepper dibutuhkan sebuah driver.
Driver ini berfungsi untuk memutar motor stepper searah dengan jarum jam atau
berlawanan arah dengan jarum jam. Rangkaian ini dihubungkan ke port 2 dari
high secara bergantian ke port 2. Sedangkan untuk memutar motor ke arah sebaliknya,
maka logika high yang diberikan secara bergantian tersebut harus berlawanan arah
dengan sebelumnya. Dengan demikian maka rangkaian ini sudah dapat dikendalikan
oleh mikrokontroler AT89S51.
Gambar 3.3 Rangkaian Driver Motor Stepper
Pada rangkaian diatas, apabila salah satu rangkaian I dihubungkan ke
mikrokontroler diberi logika high dan input pada rangkaian lain diberi logika low,
maka kedua transistor tipe PNP TIP 122 pada rangkaian I akan aktif. Hal ini akan
membuat kolektor dari kedua transistor tipe PNP TIP 122 pada rangkaian I akan
mendapat tegangan 0 volt dari ground. Kolektor dari transistor tipe PNP TIP 122 yang
berada di sebelah kiri atas diumpankan ke basis dari transistor tipe PNP TIP 122
sehingga basis dari transistor TIP 122 mendapatkan tegangan 0 volt yang
menyebabkan transistor aktif (transistor tipe PNP akan aktif jika tegangan pada basis
lebih kecil dari 4,34 volt). Aktifnya transistor PNP TIP 122 ini akan mengakibatkan
kolektornya terhubung ke emitor sehingga kolektor mendapatkan tegangan 15 volt
dari Vcc.
Kolektor dari transistor TIP 122 dihubungkan ke kumparan akan mendapatkan
tegangan 6 volt. Hal ini akan mengakibatkan kumparan menimbulkan medan magnet.
Medan magnet inilah yang akan menarik motor untuk mengubah kea rah kumparan
yang menimbulkan medan magnet tersebut. Sedangkan rangkaian II, III dan IV karena
pada inputnya diberi logika low, maka kumparannya tidak menimbulkan medan
magnet, sehingga motor tidak tertarik oleh kumparan – kumparan tersebut.
Demikian seterusnya untuk menggerakkan motor agar berputar maka harus
masing rangkaian. Dengan demikian perputaran motor stepper sudah dapat
dikendalikan melalui mikrokontroler, sehingga proses buka dan tutup atap dapat diatur
melalui program yang ada pada mikrokontroler.
3.4.Rangkaian Sakelar (Keypad)
Pada alat ini dipakai dua jenis sakelar yaitu limit switch dan touch switch
(tombol). Limit switch digunakan sebagai pemberi informasi posisi atap, sedangkan
touch switch (tombol) digunakan sebagai tombol operasional alat. Gambar dari
rangkaian sakelar ini adalah sebagai berikut:
P1.3
P1.5
P1.7
P0.6
P0.7
Gambar 3.4 Rangkaian saklar
Ketika sakelar terbuka, P1.3 s.d. p1.7 akan bernilai 1 (high). Sedangkan ketika
sakelar tertutup, pin akan terhubung langsung dengan ground yang akan
mengakibatkan tegangannya menjadi 0 V. Ini akan memberikan logika 0 (low) pada
mikrokontroler.
3.5.Rangkaian Minimum AT89S51
Rangkaian ini berfungsi sebagai pusat kendali dari seluruh system yang ada.
Kompoen utama dari rangkaian ini adalah IC mikrokontroler AT89S51. Pada IC inilah
semua program diisikan, sehingga rangkaian dapat berjalan sesuai dengan yang
Gambar 3.5 Rangkaian mikrokontroller AT89S51
Pin 31 External Access Enable (EA) diset high (H). Ini dilakukan karena
mikrokontroller AT89S51 tidak menggunakan memori eskternal. Pin 18 dan 19
dihubungkan ke XTAL 12 MHz dan capasitor 30 pF. XTAL ini akan mempengaruhi
kecepatan mikrokontroller AT89S51 dalam mengeksekusi setiap perintah dalam
program. Pin 9 merupakan masukan reset (aktif tinggi). Pulsa transisi dari rendah ke
tinggi akan me-reset mikrokontroller ini. Pin 32 sampai 39 adalah Port 0 yang
merupakan saluran/bus I/O 8 bit open collector dapat juga digunakan sebagai
multipleks bus alamat rendah dan bus data selama adanya akses ke memori program
eksternal. Pin 1 sampai 8 adalah port 1. Pin 21 sampai 28 adalah port 2. Dan Pin 10
sampai 17 adalah port 3. Pin 17 yang merupakan P3.7 dihubungkan dengan transistor
dan sebuah LED. Ini dilakukan hanya untuk menguji apakan rangkaian minimum
mikrokontroller AT89S51 sudah bekerja atau belum. Dengan memberikan program
sederhana pada mikrokontroller tersebut, dapat diketahui apakah rangkaian minimum
tersebut sudah bekerja dengan baik atau tidak. Jika LED yang terhubug ke Pin 17
sudah bekerja sesuai dengan perintah yang diberikan, maka rangkaian minimum
tersebut telah siap digunakan. Pin 20 merupakan ground dihubungkan dengan ground
pada power supplay. Pin 40 merupakan sumber tegangan positif dihubungkan dengan
3.6. Rangkaian Sensor Cahaya
Gambar 3.6 Rangkaian sensor cahaya
LDR atau Light Dependent Resistor adalah salah satu jenis resistor yang nilai
hambatannya dipengaruhi oleh cahaya yang diterima olehnya. LDR dibuat dari
Cadmium Sulfida yang peka terhadap cahaya. Seperti yang telah diketahui bahwa
cahaya memiliki dua sifat yang berbeda yaitu sebagai gelombang elektromagnetik dan
foton/partikel energi (dualisme cahaya). Saat cahaya menerangi LDR, foton akan
menabrak ikatan Cadmium Sulfida dan melepaskan elektron. Semakin besar intensitas
cahaya yang dating, semakin banyak electron yang terlepas dari ikatan. Sehingga
hambatan LDR akan turun saat cahaya meneranginya.
LDR akan mempunyai hambatan yang sangat besar saat tak ada cahaya yang
mengenainya (gelap). Dalam kondisi ini hambatan LDR mampu mencapai 1 M Ohm.
Akan tetapi saat terkena cahaya, hambatan LDR akan turun secara drastis, hingga
kira-kira 250 Ohm.
Pada saat LDR dikenai cahaya, besar tegangan yang diumpankan ke transistor
adalah:
��= 100�Ω
250Ω+ 100�Ω× 5� = 4,98 ����
Tegangan tersebut akan mengaktifkan transistor C945. Pada saat aktif,
kolektornya akan mendapatkan tegangan 0 Volt dari ground. Tegangan 0 volt inilah
yang merupakan sinyal low (0) yang diumpankan ke mikrokontroler AT89S51.
Pada saat tidak ada cahaya yang mengenai LDR, tegangan yang diumpankan
ke transistor adalah:
Tegangan tersebut belum dapat mengaktifkan transistor C945. Dengan
demikian tegangan kolektor-emitornya berkisar antara 4,5 V – 5 V. Tegangan inilah
yang merupakan sinyal high (1) yang diumpankan pada mikrokontroler AT 89S51.
3.7.Rangkaian Sensor Air
Sensor air yang dibuat sebenarnya merupakan PCB yang jalurnya dirancang
sedemikian rupa sehingga letak jalur-jalurnya rapat. Sehingga ketika tetesan air
mengenai jalur-jalur tersebut, jalur tersebut akan terhubung layaknya sebuah sakelar.
Ketika air jauh ke atas sensor, maka resistor di basis transistor akan mendapat
tegangan 5V. Hal ini akan menyebabkan transistor C945 akan aktif. Ketika transistor
ini aktif, logika outputnya yang dihubungkan pada input IC 7408 (merupakan IC
dengan 4 gerbang AND) akan menjadi 0. Sebaliknya ketika sensor air dalam keadaan
kering, maka 5V tidak terhubung pada resistor di basis transistor. Sehingga basis
transistor tidak mendapat tegangan. Hal ini menyebabkan transistor tidak aktif
(transistor akan aktif bila tegangan di basisnya lebih besar dari 0,6V).
Karena transistor ini tidak aktif,outputnya akan bernilai 1. Keempat output dari
sensor air ini dihubungkan ke sebuah IC 7408. Dengan demikian, ketika salah satu
saja sensornya menghasilkan logika 0, maka ouput dari IC 7408 akan 0.Logika ini
akan dikirimkan ke mikrokontroler untuk mengindikasikan adanya air pada sensor air.
Gambar 3.8 Bentuk sensor air pada PCB
Ketika tetesan air mengenai jalur tersebut, basis transistor akan mendapat
tegangan sekitar 4,5 V – 5 V. Hal ini akan mengakibatkan transistor aktif. Ketika
aktif, transistor tersebut akan memberikan logika 0 (low) pada mikrokontroler.
Sebaliknya, dalam keadaan kering jalur – jalur tembaga pada PCB tersebut tidak
terhubung. Hal ini akan meng-off kan transistor dan akan mengirimkan logika 1(high)
3.8.Flowchart
aktif tidak tertekan ditekan
tidak tertekan tidak tertekan tidak tertekan
ditekan ditekan tertekan
tidak ditekan tidak ditekan
Program diawali dengan start, yang berarti bahwa rangkaian diaktifkan.
Selanjutnya program akan mengecek kondisi hujan (sensor air), jika tidak ada sinyal
dari sensor ini, maka program akan mengecek sensor cahaya, seterusnya program akan
terus mengecek kondisi dari semua sensor.
Jika salah satu dari keadaan hujan, keadaan gelap. Keadaan terang mengirim
sinyal ke mikrokontroler, maka program akan memerintahkan motor untuk berputar
membuka atap. Dan jika salah satu dari ke 5 sensor berada pada keadaan hujan dan
gelap maka sensor akan mengirimkan sinyal, maka program akan memerintahkan
motor untuk berputar menutup atap. Selanjutnya program akan kembali ke rutin awal
untuk kembali mengecek kondisi dari masing – masing sensor. Hal ini dapat kita lihat
BAB IV
PENGUJIAN ALAT DAN PROGRAM
4.1. Pengujian Rangkaian Power Supplay (PSA)
Pengujian pada bagian rangkaian power supplay ini dapat dilakukan dengan
mengukur tegangan keluaran dari rangkaian ini dengan menggunakan voltmeter
digital. Dari hasil pengujian diperoleh tegangan keluaran pertama sebesar 5,1 volt.
Tegangan ini dipergunakan untuk mensupplay tegangan ke seluruh rangkaian.
Mokrokontroler AT89S51 dapat bekerja pada tegangan 4,0 sampai dengan 5,5 volt,
sehingga tegangan 5,1 volt ini cukup untuk mensupplay tegangan ke mikrokontroler
AT89S51. Dengan demikian rangkaian ini sudah dapat bekerja dengan baik.
Sedangkan tegangan keluaran kedua adalah sebesar 12,3 volt.
4.2. Pengujian Rangkaian Driver Motor Stepper
Pengujian pada rangkaian jembatan H ini dilakukan dengan menghubungkan
input rangkaian driver motor stepper ini dengan rangkaian mikrokontroler At89S51
dan menghubungkan output dari rangkaian driver motor stepper ini dengan motor
stepper, kemudian memberikan program sebagai berikut :
mov a,#11h
buka:
jb limit_buka,bukalagi
ret
bukalagi:
rl a
acall delay
sjmp buka
Program diawali dengan memberikan nilai 11h pada accumulator (a),
kemudian program akan memasuki rutin buka atap. Nilai a diisikan ke port 0,
sehingga sekarang nilai port 0 adalah 11h. ini berarti P0.0 dan p0.4 mendapatkan
logika high sedangkan yang lainnya logika low, seperti table di bawah ini.
P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0
0s 0 0 1 0 0 0 1
Progarm dilanjutkan dengan memanggil rutin tunda. Lamanya tunda akan
mempengaruhi kecepatan perputaran motor. Semakin lama tunda, maka perputaran
motor akan semakin lambat. Perintah berikutnya adalah Rl a, perintah ini akan
memutar nilai yang ada pada accumulator (a), seperti tampak pada table di bawah ini,
0 0 0 1 0 0 0 1
Rl
0 0 1 0 0 0 1 0
Dst………
Nilai pada accumulator (a) yang awalnya 11h, setelah mendapat perintah Rl a,
maka nilai pada accumulator (a) akan berubah menjadi 22h. kemudian program akan
melihat apakah kondisi sensor buka atap dalam keadaan high (1) atau low (0). Jika
high (1), nilai yang ada pada accumulator (a), akan kembali diisikan port 0, maka nilai
di port 0 akan berubah menjadi 22h, ini berarti P0.1 dan P0.5 mendapatkan logika
high sedangkan yang lainnya mendapatkan logika low, seperti table di bawah ini,
0 0 1 0 0 0 1 0
Sebelumnya telah dibahas bahwa P0.0, P0.1, P0.2, dan P0.3 dihubungkan ke
masukan driver motor stepper, dengan program diatas maka P0.0, P0.1, P0.2, dan P0.3
akan mendapatkan nilai high (1). Hal ini menyebabkan motor stepper akan berputar
membuka atap. Hal yang sama juga berlaku ketika motor berputar kearah sebaliknya,
perbedaannya hanya pada perintah rotate. Jika pada perintah berlawanan arah jarum
jam digunakan rotate left (Rl), maka pada perintah searah jarum jam digunakan
perintah rotate right (Rr). Perputaran perintah rr diperlihatkan pada table berikut ,
1 0 0 0 1 0 0 0
Rr
0 1 0 0 0 1 0 0
Dst…………..
4.3. Pengujian Rangkaian Mikrokontroler AT89S51
Untuk mengetahui apakah rangkaian mikrokontroler AT89S51 telah bekerja
dengan baik, maka dilakukan pengujian. Pengujian bagian ini dilakukan dengan
memberikan program sederhana pada mikrokontroler AT89S51. Programnya adalah
sebagai berikut :
tutuplagi:
mov p0,a
rr a
acall delay
sjmp tutup
mov r7,#40
tnd:
mov r6,#150
djnz r6,$
djnz r7,tnd
ret
Program diatas bertujuan untuk menutup atap yang terhubung ke P3.1 selama
± 0,012 detik. Perintah mov p0,a akan menyebabkan driver motor bergerak. Perintah
rr a menyebabkan motor menggerakkan atap ke kanan. Acall delay akan menyebabkan
atap ini menutup selama beberapa saat. Perintah Sjmp tutup akan menjadikan program
tersebut berulang.
Lamanya waktu tunda dapat dihitung dengan perhitungan sebagai berikut :
Kristal yang digunakan adalah Kristal 12 MHz, sehingga 1 siklus mesin membutuhkan
waktu = 12 / 12 Mhz = 1 mikrodetik
Mnemonic Siklus Waktu Eksekusi
Mov Rn,#data 2 2 x 1 �� = 2 ��
Djnz 2 2 x 1 �� = 2 ��
Ret 1 1 x 1 �� = 1 ��
delay:
mov r7,#40
tnd:
djnz r6,$ 150 x 2 = 300 x 40 =1200 + 4 + 3 = 1207 ��
djnz r7,tnd
ret
Jadi waktu yang dibutuhkan untuk mengerjakan program diatas adalah 1207
mikrodetik atau 0,012007 detik dan dapat dibulatkan menjadi 0,012 detik.
Jika program tersebut diisikan ke mikrokontroler AT89S51, kemudian
mikrokontroler dapat berjalan sesuai dengan program yang diisikan, maka rangkaian
minimum mikrokontroler AT89S51 telah bekerja dengan baik.
4.4. Pengujian Rangkaian Tombol
Pengujian rangkaian ini dapat dilakukan dengan menekan tombol, kemudian
mengukur tegangan output dari rangkaian tersebut. Dari hasil pengujian didapatkan
pada saat tombol tidak ditekan, maka output dari rangkaian ini adalah 4,9 volt. Ketika
terjadi penekanan tombol, maka output dari rangkaian ini adalah 0 volt. Dengan
demikian rangkaian ini telah berfungsi dengan baik.
Pengujian selanjutnya adalah dengan menghubungkan rangkaian tombol ini
dengan rangkaian mikrokontroler yang telah diberi program sebagai berikut :
Jb p3.0
Setb p3.7
...
Program di atas akan menungu adanya sinyal low yang dikirimkan tombol,
dimana tombol tersebut dihubungkan dengan P3.0. program akan terus menunggu
sampai ada sinyal low yang dikirimkan oleh tombol dan sensor. Jika ada sinyal low
yang dikirimkan oleh tombol dan sensor, maka program akan menghidupkan LED
4.5. Pengujian Program
Limit_buka bit p3.0 ;limit_buka terhubung ke P3.0
Limit _tutup bit p3.1 ;limit_tutup terhubung ke P3.1
Sak_buka bit p3.2 ; sak_buka terhubung ke P3.2
Sak_tutup bit p3.3 ; sak_tutup terhubung ke P3.3
Status bit p3.4 ; status terhubung ke P3.4
Merah bit p3.7 ; merah terhubung ke P3.7
Hijau bit p3.6 ; hijau tehubung ke P3.6
Cek_status: ; label
Jb status,manual ; tombol status ditekan?jka tidak ke manual
Auto: ; label
Mov r0,p0 ; isikan nilai 0h ke p0
Hujan_terang: ; label
Cjne r0,#00h,cerah ;
Acall tutuplimit ; panggil routine tutuplimit
Sjmp cek_status ; kembali ke routine cek_status
Cerah: ; label
Cjne r0,#01h,hjan_gelap ;
Acall bukalimit ; panggil routine bukalimit
Sjmp cek_status ; kembali ke routine cek_status
Hujan_gelap: ; label
Cjne r0,#02h,mendung ;
Acall tutuplimit ; panggil routine tutuplimit
Sjmp cek_status ; kembali ke routine cek_status
Mendung: ; label
Cjne r0,#03h,cek_status ;
Acall tutuplimit ; panggil routine tutplimit
Manual: ; label
Jb sak_buka,cek_tutup ; tombol sak_buka ditekan? Jika tidak ke routine
cek_tutup
Acall buka ; panggil routine buka
Sjmp cek_status ; kembali ke routine cek_status
Cek_tutup: ; label
Jb sak_tutup,cek_status ;tombol sak_tutp ditekan?jka tidak ke routine
cek_status
Acall tutup ; panggil routine tutup
Sjmp cek_status ; kembali ke routine cek_status
Bukalimit: ; label
Setb hijau ; atur buffer hijau
Clr merah ; kosongkan merah
Mov p0,#00h ; isikan nilai 00h ke p0
Mov a,#11h ; isikan nilai 11h ke a
Buka: ; label
Jb limit_buka,bukalagi ;tombol limit_buka ditekan?jika tidak ke routine
bukalagi
Ret ;kembali ke routine pemanggil
Bukalagi: ;label
Mov p0,a ; isikan nilai a ke p0
Rl a ; putar kiri nilai pada alamat a
Acall delay ; panggil routine delay
Sjmp buka ; kembali ke routine buka
Tutuplimit: ; label
Setb merah ; atur buffer merah
Clr hijau ; kosongkan hijau
Mov a,#11h ; isika 11h ke a
Tutup: ; label
Jb limit_tutup,tutuplagi ;tombol limit_tutup ditekan?jka tidak kembali ke routine
tutuplagi
Ret ; kembali ke routine pemanggil
Tutuplagi: ; label
Mov p0,a ; isikan nilai a dengan p0
Rr a ;putar kanan nilai pada alamat a
Acall delay ; panggil routine delay
Sjmp tutup ; kembali ke routine tutup
Delay: ; label
Mov r7,#40 ; isikan nilai 40h ke r7
Dly: ; label
Mov r6,#150 ; isikan nilai 150h ke r6
Djnz r6,$ ; kurangi nilai pada r6 sampai 0
Djnz r7,Dly ; jika r6 = 0 kurangi 1 nilai pada r7 dan kembali kurangi
r6 sampai 0
Ret ; kembali ke routine pemanggil