• Tidak ada hasil yang ditemukan

Perancangan Sistem Pengendalian Pintu Air Pada Bendungan Berbasis Mikrokontroler AT89S51 Dan PC

N/A
N/A
Protected

Academic year: 2016

Membagikan "Perancangan Sistem Pengendalian Pintu Air Pada Bendungan Berbasis Mikrokontroler AT89S51 Dan PC"

Copied!
61
0
0

Teks penuh

(1)

PERANCANGAN SISTEM PENGENDALIAN PINTU AIR PADA BENDUNGAN BERBASIS MIKROKONTROLER AT89S51 DAN PC

SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar Sarjana Sains

KIKI VALERY S. SIMAMORA NIM. 060801002

DEPARTEMEN FISIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA

MEDAN 2011

(2)

Judul : PERANCANGAN SISTEM PENGENDALIAN PINTU AIR PADA BENDUNGAN BERBASIS

MIKROKONTROLLER AT89S51 DAN PC

Kategori : SKRIPSI

Nama : KIKI VALERY S. SIMAMORA

Nomor Induk Mahasiswa : 060801002

Program Studi : SARJANA (S1) FISIKA

Departemen : FISIKA

Fakultas : MATEMATIKA DAN ILMU PENGETAHUAN ALAM

(FMIPA) UNIVERSITAS SUMATERA UTARA

Diketahui/Disetujui oleh Departemen Fisika FMIPA USU

Ketua, Pembimbing,

Dr. Marhaposan Situmorang Dr. Bisman P M.Eng.Sc

(3)

PERNYATAAN

PERANCANGAN SISTEM PENGENDALIAN PINTU AIR PADA BENDUNGAN BERBASIS MIKROKONTROLLER AT89S51 DAN PC

SKRIPSI

Saya mengakui bahwa skripsi ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing- masing disebutkan sumbernya

Medan, ... Maret 2011

(4)

PENGHARGAAN

Puji dan syukur saya panjatkan kehadirat Tuhan Yesus Kristus yang telah

memberikan kasihNya yang luar biasa, sehingga saya bisa menyelesaikan skripsi ini dengan baik.

Tidak lupa juga saya mengucapkan terima kasih kepada Dr. Bisman Perangin-angin M.Eng.Sc yang telah membimbing dan mengarahkan saya dalam penyelesaian skripsi ini. Ucapan terima kasih juga saya berikan kepada Ketua Departemen DR. Marhaposan Situmorang, Dekan dan Pembantu Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara, semua Dosen dan Seluruh Staf pada Departeman Fisika.

Dan juga terima kasih secara khusus untuk kedua orangtuaku, S.P Simamora, dan H.L.Tobing, abangku Daniel dan Valentino, adikku Thalia serta kakak iparku Ellen yang selama ini telah memberikan semangat dan motivasi dan kasih sayang selama

penyelesaian skripsi ini. Untuk teman seperjuanganku, Rini, Osma, Yanti, Elfrida, Elisda, Gina, Mardiah, Leo dan juga teman-teman stanbuk 2006, juga abang Brian, Victor dan Yudhi yang telah memberikan ide, dukungan, dan solusi.

(5)

ABSTRAK

Telah dirancang sebuah alat yang dapat mendeteksi ketinggian air serta mengendalikan pintu air pada sebuah bendungan. Pengendalian pintu air ini dilakukan berdasarkan level ketinggian air. Dalam perancangan ini digunakan 8 (delapan) level untuk melihat level ketinggian air tersebut. Untuk dapat mendeteksi ketinggian air, maka digunakan sensor yang terdiri dari dua lempeng besi, dimana salah satu lempeng dihubungkan ke transistor. Transistor disini digunakan sebagai pengkondisi sinyal, dengan menggunakan prinsip transistor sebagai saklar, maka sensor dapat memberikan sinyal yang siap diolah pada mikrokontroller. Hasil output dari sensor inilah yang akan dibandingkan pada

mikrokontroller agar dapat dikendalikan pada PC. Agar mikrokontroller dan PC dapat berkomunikasi maka digunakan sebuah penghubung komunikasi serial yaitu RS 232. Untuk dapat membuka dan menutup pintu air sesuai dengan level yang diharapkan maka digunakan motor stepper. Sehingga pintu dapat bergerak membuka dan menutup sesuai perintah yang diberikan.

ABSTRACT

(6)

DAFTAR ISI

Halaman

Persetujuan i

Pernyataan ii

Penghargaan iii

1.5 Sistematika Penulisan 4

Bab 2 Landasan Teori 5

2.1 Bendungan 5

2.1.1 Pengertian Bendungan 5

2.1.2 Fungsi Bendungan 6

2.2 Transistor 7

2.3 Transitor NPN sebagai saklar 7

2.3.1 Transistor Saklar Tertutup 9

2..3.2 Transistor Saklar Terbuka 9

2.3.3 Perhitungan Transistor Sebagai Saklar 10

2.4 Mikrokontroller AT89S51 11

2.4.1 Konstruksi Mikrokontroller AT89S51 11

2.4.2 Instruksi MCS 51 14

2.4.3 Register Fungsi Khusus 18

2.5 Interfacing 20

2.5.1 Serial Port DB 9 20

2.5.2 Komunikasi Serial Pada Mikrokntroller AT89S51 21

2.5.3 Baud Rate Serial Pada Mikrokontroller AT89S51 23

2.5.4 RS 232 26

(7)

3.4 Rangkaian Pengkondisi Sinyal 40

3.5 Rangkaian Konverter RS 232 41

3.6 Rangkaian Mikrokontroller AT89S51 42

3.7 Rangkaian Driver Motor Stepper 43

3.8 Rangkaian Lengkap 44

Bab 4 Pengujian Sistem dan Analisa Program 47

4.1 Pengujian Sistem Hardware 47

4.1.1 Pengujian Rangkaian Mikrokontroller AT89S51 47

4.1.2 Pengujian Rangkaian Sensor 49

4.1.3 Pengujian Motor Stepper 50

4.2 Pengujian Software 53

4.2.1 Analisa Program Pada PC menggunakan Visual Basic 6.0 53

Bab 5 Kesimpulan dan Saran 59

5.1 Kesimpulan 59

(8)

DAFTAR TABEL

Halaman

Tabel 2.1 Instruksi Aritmatika 14

Tabel 2.2 Data Transfer 16

Tabel 2.3 Percabangan Program 17

Tabel 2.4 Mode Serial vs Baud Rate 25

Tabel 2.5 Penentuan nilai TH1 pada Pembangkit Baud Rate 25

Tabel 2.6 Pin Pada DB 9 27

Tabel 2.7 Arah Perputaran Motor 36

(9)

DAFTAR GAMBAR

Halaman

Gambar 2.1 Bendungan Pada PLTA Tangga Siguragura 7

Gambar 2.2 Kurva Karakteristik dan Garis Beban Transistor 8

Gambar 2.3 Transistor Saklar Tertutup 9

Gambar 2.4 Transistor Saklar Terbuka 9

Gambar 2.5 Susunan Pin Pada Mikrokontroller AT89S5112

Gambar 2.6 Diagram Blok Port Serial 22

Gambar 2.7 Komunikasi sinkron dan Komunikasi Asinkron 23

Gambar 2.8 Konfigurasi Pin DB 9 26

Gambar 2.9 Bentuk Fisik IC MAX 232 28

Gambar 2.10 Tampilan Visual Basic 6.0 29

Gambar 2.11 Window Property 30

Gambar 2.12 Window Form 31

Gambar 2.13 Window Project 31

Gambar 2.14 Tool Bar 32

Gambar 2.15 Konstruksi Motor Stepper Bipolar 33

Gambar 2.16 Konstruksi Motor Stepper Unipolar 33

Gambar 3.1 Diagram Blok Rangkaian 37

Gambar 3.2 RancanganTampak Dari Samping 38

Gambar 3.3 Lempeng Tembaga Sebagai Pendeteksi Ketinggian Air 39

Gambar 3.4 Rangkaian Sensor Sebagai Saklar Otomatis 41

Gambar 3.5 Rangkaian Konverter Level RS 232 42

Gambar 3.6 Sistem Minimum Mikrokontroller AT89S51 43

Gambar 3.7 Driver Motor Stepper 44

Gambar 3.8 Rangkaian Lengkap 46

Gambar 4.1 Rangkaian Mikrokontroller AT89S51 46

Gambar 4.2 Rangkaian Sensor 49

(10)

ABSTRAK

Telah dirancang sebuah alat yang dapat mendeteksi ketinggian air serta mengendalikan pintu air pada sebuah bendungan. Pengendalian pintu air ini dilakukan berdasarkan level ketinggian air. Dalam perancangan ini digunakan 8 (delapan) level untuk melihat level ketinggian air tersebut. Untuk dapat mendeteksi ketinggian air, maka digunakan sensor yang terdiri dari dua lempeng besi, dimana salah satu lempeng dihubungkan ke transistor. Transistor disini digunakan sebagai pengkondisi sinyal, dengan menggunakan prinsip transistor sebagai saklar, maka sensor dapat memberikan sinyal yang siap diolah pada mikrokontroller. Hasil output dari sensor inilah yang akan dibandingkan pada

mikrokontroller agar dapat dikendalikan pada PC. Agar mikrokontroller dan PC dapat berkomunikasi maka digunakan sebuah penghubung komunikasi serial yaitu RS 232. Untuk dapat membuka dan menutup pintu air sesuai dengan level yang diharapkan maka digunakan motor stepper. Sehingga pintu dapat bergerak membuka dan menutup sesuai perintah yang diberikan.

ABSTRACT

(11)

BAB I PENDAHULUAN

1.1 Latar Belakang Masalah

Bendungan adalah konstruksi yang dibangun untuk menahan laju air menjadi

waduk, danau, atau tempat rekreasi. Sering kali bendungan juga digunakan untuk

mengalirkan air ke sebuah pembangkit listrik tenaga air. Salah satu fungsi bendungan

adalah untuk menstabilkan aliran air pada bidang pertanian atau sering juga disebut

irigasi. Disamping itu dapat juga digunakan sebagai pengendalian banjir dan reklamasi

(digunakan untuk mencegah masuknya air ke suatu daerah yang seharusnya dapat

tenggelam).

Selama ini pada bendungan- bendungan yang ada, pintu air digunakan untuk

mengatur ketinggian air dalam bendungan masih digunakan cara manual untuk menjaga

supaya air dalam bendungan tetap stabil atau air tidak kurang dan tidak melebihi batas

yang sudah ada. Oleh karena itu, petugas penjaga pintu air harus siap siaga setiap saat.

Tapi sangat tidak mungkin petugas itu setiap saat ada untuk menjaga pintu air. Oleh

karena itu, penulis akan merancang sebuah sistem yang dapat mengendalikan pintu air

pada bendungan. Sehingga dapat meringankan pekerjaan serta memudahkan dalam

pengawasan terhadap ketinggian air yang berada pada bendungan tersebut. Alat ini sangat

berguna sebagai pengganti kerja dari seorang operator dalam mengatur buka tutup pintu

air, sehingga operator tersebut dapat mengendalikan pintu air tanpa harus bersiap siaga

setiap saat dengan mengatur level ketinggian air yang stabil.

Alat ini akan setiap saat mengawasi dan menstabilkan ketinggian air pada

bendungan. Pada perancangan alat ini digunakan sensor berupa saklar otomatis yang akan

mendeteksi ketinggian air pada bendungan tersebut. Sensor ini terdiri dari dua lempeng

besi dan sebuah transistor yang berfungsi sebagai saklar otomatis. Dua lempeng besi

(12)

berfungsi sebagai pendeteksi level ketinggian air. Setelah menghasilkan data digital, data

digital inilah yang diolah pada mikrokontroller sebagai pembanding data yang akan

dikirimkan ke PC sehingga kita dapat mengendalikan level ketinggian yang kita inginkan.

Dalam hal ini digunakan mikrokontroller AT89S51 dengan pertimbangan harga

yang murah dan memiliki fitur dasar yang cukup lengkap untuk suatu pemrosesan

input-output. Data yang dibaca oleh mikrokontroller kemudian digunakan untuk mengetahui

ketinggian air pada rancangan bendungan tersebut. Setelah mengetahui ketinggian air,

selanjutnya mikrokontroller akan mengirimkan sinyal kepada PC untuk menerima

perintah yang akan diberikan oleh PC. Namun PC tersebut tidak dapat langsung

menerima sinyal yang diberikan oleh mikrokontroller, maka diperlukan sebuah

penghubung. Dalam hal ini digunakan IC MAX 232. Yang merupakan antarmuka antara

PC dengan Mikrokontroller yang dilakukan secara serial. Apabila air melewati batas yang

diharapkan, maka mikrokontroller akan memerintahkan pintu air agar membuka sehingga

air pada bendungan akan berkurang. Demikian sebaliknya, apabila air kurang dari batas

ketinggian yang diharapkan, maka mikrokontroller akan memerintahkan pintu air agar

menutup sehingga air pada bendungan akan bertambah. Demikian seterusnya sehingga

ketinggian air menjadi stabil atau berada pada level ketinggian yang diharapkan.

1.2 Tujuan Penelitian

Merancang suatu alat yang dapat mengendalikan pintu air pada bendungan secara

otomatis serta dapat mengatur level ketinggian air sesuai dengan level yang

(13)

1.3 Batasan Masalah

Adapun batasan dari permasalahan yang akan di bahas dalam penelitian ini

adalah:

1. Pada alat ini, sensor yang digunakan berupa dua lempeng besi.

2. Perancangan alat ini difokuskan untuk mengatur ketinggian air pada level yang

telah ditentukan, dalam hal ini digunakan 8 (delapan) level yang akan mendeteksi

ketinggian air.

3. Yang digunakan sebagai sistem kendali adalah Mikrokontroler AT89S51 dan PC.

4. Alat ini hanya mendeteksi ketinggian air, dan tidak menghitung volume air yang

berada dalam bendungan.

1.4 Manfaat Penelitian

Manfaat yang diharapkan dari penelitian ini adalah:

1. Alat pengendalian pintu air ini dapat digunakan secara otomatis dan dapat

mengendalikan pintu air dalam jarak yang jauh.

2. Pada bidang pertanian, diharapkan dapat mendukung sistem irigasi.

3. Sebagai informasi bagaimana dasar membangun sebuah instrumen yang mampu

mengendalikan level ketinggian air secara otomatis dengan menggunakan PC

sebagai sistem utama.

4. Membantu dalam sistem irigasi, sehingga tidak bekerja lagi secara manual

melainkan secara otomatis.

1.5 Sistematika Penulisan

(14)

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 dan cara kerja dari rangkaian Teori pendukung itu antara lain

tentang prinsip kerja sensor berupa transistor yang berfungsi sebagai

saklat otomatis berbasis Mikrokontroller AT89S51 dan PC.

BAB III. PERANCANGAN ALAT DAN PROGRAM

Pada bagian ini akan dibahas perancangan dari alat, yaitu diagram blok

dari rangkaian, skematik dari masing-masing rangkaian dan diagram alir

dari program yang akan diisikan ke mikrokontroler AT89S51 dan PC.

BAB IV. PENGUJIAN DAN PEMBAHASAN SISTEM

Pada bab ini akan dibahas hasil analisa dari rangkaian dan sistem kerja

alat, penjelasan mengenai program-program yang digunakan untuk

mengaktipkan rangkaian, penjelasan mengenai program yang diisikan ke

mikrokontroler AT89S51 dan PC.

BAB V. KESIMPULAN DAN SARAN

Bab ini merupakan penutup yang meliputi tentang kesimpulan dari

pembahasan yang dilakukan dari tugas akhir ini serta saran apakah

rangkaian ini dapat dibuat lebih efisien dan dikembangkan perakitannya

(15)

BAB II

LANDASAN TEORI

2.1 Bendungan

2.1.1 Pengertian Bendungan

Bendungan atau dam adalah konstruksi yang dibangun untuk menahan laju menjad kembali ke Inggris dan Belanda di abad pertengahan, seperti terlihat pada nama-nama dari banyak kota tua di sana. Pembangunan bendungan paling awal terjadi di

Mesopotamia dan Timur Tengah. Bendungan di Mesopotamia digunakan untuk mengontrol tingkat air dikarenakan pengaruh cuaca di sekitar sungai Eufrat dan Tigris yang bisa sangat tidak terduga.

Seringkali bendungan juga digunakan untuk mengalirkan air ke sebuah

Pembangkit Listrik Tenaga Air (PLTA). Bendungan Penadah Air Tangga (Tangga Intake Dam) yang terletak di Tangga dan berfungsi untuk membendung air yang telah dipakai PLTA Siguragura untuk dimanfaatkan kembali pada PLTA Tangga.

Gambar 2.1 Bendungan pada PLTA Tangga Siguragura

Bendungan ini merupakan bendungan busur pertama di Indonesia. Stasiun Pembangkit Tangga memiliki 4 unit Generator. Total kapasitas tetap dari keempat generator tersebut adalah 223 MW. Tipe bendungan ini adalah beton massa berbentuk busur dengan ketinggian 82 meter.

2.1.2 Fungsi Bendungan

(16)

navigasi, menciptakan penampungan air untuk memasok kebutuhan air bagi industri, menghasilkan listrik tenaga air, menciptakan area rekreasi, wilayah bagi perikanan, habitat untuk ikan dan binatang liar, menahan aliran air di musim hujan untuk mengurangi risiko banjir di hilir, ataupun untuk mencegah aliran limbah dari pabrik ataupun pertambangan untuk mengalir ke sungai. Kebanyakan dam juga memiliki bagian yang disebut pintu air untuk membuang air yang tidak diinginkan secara bertahap atau berkelanjutan.

Beberapa bendungan dapat juga berfungsi sebagai jembatan bagi pejalan kaki ataupun kendaraan di seberang sungai. Ketika penggunaan bendungan dikombinasikan dengan sumber tenaga yang sifatnya sebentar-sebentar (intermittent power source) seperti angin atau matahari, waduk dapat berfungsi sebagai tempat penyimpanan air terpompa untuk memfasilitasi pengurangan beban dasar dari jaringan tenaga listrik. Beberapa bendungan melayani semua tujuan ini tetapi beberapa bendungan serbaguna melayani lebih dari satu tujuan. Berikut adalah fungsi bendungan secara umum:

1. Sebagai Pembangkit: Listrik tenaga air adalah sumber utama listrik di dunia.

banyak negara memiliki sungai dengan aliran air yang memadai, yang dapat

dibendung.

2. Untuk Menstabilkan aliran air / irigasi: Bendungan sering digunakan untuk

mengontrol dan menstabilkan aliran air, untuk pertanian tujuan dan irigasi.

Mereka dapat membantu menstabilkan atau mengembalikan tingkat air danau

dan laut pedalaman. Mereka menyimpan air untuk minum dan kebutuhan

manusia secara langsung

3. Untuk Pencegahan banjir: Bendungan diciptakan untuk pengendalian banjir

4. Untuk Reklamasi: Bendungan (sering disebut tanggul-tanggul atau tanggul)

digunakan untuk mencegah masuknya air ke suatu daerah yang seharusnya

dapat tenggelam, sehingga para reklamasi untuk digunakan oleh manusia

5. Untuk Air pengalihan: Bendungan yang digunakan untuk tujuan hiburan

2.2 Transistor

(17)

Transistor bipolar terdiri dari dua jenis, yaitu tipe NPN dan PNP dan pada perancangan alat pengendalian pintu air ini digunakan transistor bipolar tipe NPN.

2.3 Transistor NPN Sebagai Saklar

Pada penggunaan transistor sebagai switching tegangan nol volt pada Vbe transistor jenis NPN berarti mengaktipkan 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 (Gambar 2.3). Transistor dapat juga difungsikan sebagai saklar dengan mengatur arus basis Ib sehingga transistor dalam keadaan jenuh (saturasi) atau keadaan mati (cut-off).

Gambar 2.2 Kurva Karakteristik dan Garis Beban Transistor

Daerah aktif

Transitor dapat bekerja pada daerah aktif jika transistor mendapat arus basis (IB) > 0. Tetapi jika lebih kecil dari arus basis maksimalnya, keluaran arus kolektor akan berubah-ubah sesuai dengan perubahan pemberian arus basisnya.

Daerah jenuh (Saturasi)

Transistor dapat bekerja pada daerah jenuh jika transistor mendapat arus basis (IB) lebih besar dari arus basis maksimalnya. Hal ini menimbulkan keluaran arus kolektor tidak dapat bertambah lagi.

Daerah mati (Cut Off)

(18)

2.3.1 Transistor Saklar Tertutup

Dengan mengatur Ib > Ic / β kondisi transistor akan menjadi jenuh seakan

kolektor dan emitor terhubung (short circuit). Arus mengalir dari kolektor ke emitor tanpa hambatan dan Vce ≈ 0. Besar arus yang mengalir dari kolektor ke emitor sama dengan Vcc/Rc. Keadaan seperti ini menyerupai saklar dalam kondisi tertutup (On). Berikut adalah gambaran transistor dalam kondisi jenuh ekivalen dengan saklar tertutup:

NPN

Gambar 2.3 Transistor Saklar Tertutup 2.3.2 Transistor Saklar Terbuka

Dengan mengatur Ib = 0 atau tidak memberi tegangan pada bias basis atau basis diberi tegangan mundur terhadap emitor maka transistor akan dalam kondisi mati (cut-off), sehingga tak ada arus mengalir dari kolektor ke emitor ( Ic ≈ 0 ) dan Vce ≈ Vcc. Keadaan ini menyerupai saklar pada kondisi terbuka (off). Berikut adalah gambaran transistor dalam kondisi mati ekivalen dengan saklar terbuka:

NPN

Gambar 2.4 Transistor Saklar Tertutup 2.3.3 Perhitungan Transistor Sebagai Saklar

(19)

Kondisi Jenuh atau Saturasi

Vce = Vcc – Ic . Rc……….. (2.1)

Karena kondisi jenuh Vce = 0V (keadaan ideal), maka:

Ic = Vcc / Rc……… (2.2)

Menentukan tahanan basis Rb untuk memperoleh arus basis pada keadaan jenuh

adalah:

Rb = (Vi – Vbe) / Ib jenuh

Sehingga besar arus basis Ib jenuh:

Ib jenuh > Ic / β

Kondisi Mati atau Cutt Off

Vce = Vcc – Ic . Rc…... (2.3)

Karena kondisi mati Ic = 0 (kondisi Ideal) maka:

Vce = Vcc – 0 . R c

Vce = Vcc……….. (2.4)

Besar arus basis Ib:

Ib = Ic / β

Ib = 0/β = 0

2.4 Mikrokontroller AT89S51

Dalam merancang aplikasi elektronika digital dibutuhkan sebuah alat/komponen yang dapat menghitung, mengingat, dan mengambil pilihan dan digunakan sebagai otaknya. Kemampuan ini dimiliki oleh sebuah komputer, namun tidaklah efisien jika harus menggunakan komputer hanya untuk keperluan tersebut. Untuk itu komputer dapat digantikan dengan sebuah mikrokontroler. Mikrokontroler sebenarnya adalah

pengembangan dari mikroprosesor, namun dirancang khusus untuk keperluan

(20)

2.4.1 Konstruksi Mikrokontroller AT89S51

Mikrokontroler AT89S51 adalah mikrokontroler keluaran ATMEL.Inc.

Mikrokontroler ini kompatibel dengan keluaran mikrokontroler 80C51. Mikrokontroller AT89S51 terdiri dari 40 pin dan sudah memiliki memory flash didalamnya, sehingga sangat praktis untuk digunakan. Beberapa kemampuan (fitur) yang dimiliki adalah sebagai berikut :

• Memiliki 4K Flash EPROM yang digunakan untuk menyimpan program.

Flash EPROM(Erasable Programmable Read Only Memory) dapat ditulis dan dihapus sebanyak 1000 kali (menurut manual).

• Memiliki internal RAM 128 byte.

RAM (Random Access Memory), suatu memori yang datanya akan hilang bila catu padam, diakses secara random, tidak sekuensial, artinya dialamat mana saja dapat dicapai secara langsung dengan cepat.

4 buah 8-bit I/O (Input/Output) port

Port ini berfungsi sebagai terminal input dan output. Selain itu, dapat digunakan

sebagai terminal komunikasi paralel, serta komunikasi serial (pin10 dan 11).

• Dua buah timer/counter 16 bit.

• Tegangan operasi dinamis dari 2,7 volt hingga 6 volt.

• Operasi clock dari 0 hingga 24 MHz

• Program bisa diproteksi, sehingga tidak dapat dibaca oleh orang lain.

• Menangani 6 sumber interupsi.

Ada kemampuan Idle mode dan Down mode

Berikut adalah gambar susunan pin pada Mikrokontroller AT89S51:

(21)

Gambar 2.5 Susunan Pin pada Mikrokontroller AT89S51

Keterangan fungsi-fungsi masing-masing pin adalah sebagai berikut :

Pin 40 Vcc, Masukan catu daya +5 volt DC

Pin 20 Gnd, Masukan catu daya 0 volt DC

Pin 32-39 P0.0-P0.7, Port input/output delapan bit dua arah yang juga dapat berfungsi sebagai bus data dan bus alamat bila mikrokontroler menggunakan memori luar (eksternal).

Pin 1-8 P1.0-P1.7, Port input/output dua arah delapan bit dengan internal pull up.

Pin 10-17 P3.0-P3.7Port input/output delapan bit dua arah, selain itu Port 3 juga memiliki alternativef fungsi sebagai :

RXD (pin 10) Port komunikasi input serial TXD (pin 11) Port komuikasi output serial

INT0 (pin 12) Saluran Interupsi eksternal 0 (aktif rendah) INT1 (pin 13) Saluran Interupsi eksternal 1 (aktif rendah) T0 (pin 14) Input Timer 0

T1 (pin 15) Input Timer 1

WR (pin 16) Berfungsi sebagai sinyal kendali tulis, saat prosesor akan menulis data ke memori I/O luar. RD (pin 17) Berfungsi sebagai sinyal kendali baca, saat

prosesor akan membaca data dari memori I/O luar.

Pin 9 RESET, Pin yang berfungsi untuk mereset mikrokontroller

AT89S51 ke keadaan awal.

Pin 30 ALE (Address Latch Enable), berfungsi menahan sementara

alamat byte rendah pada proses pengalamatan ke memori eksternal. Pin 29 PSEN (Program Store Enable), Sinyal pengontrol yang berfungsi

untuk membaca program dari memori eksternal.

Pin 31 EA, Pin untuk pilihan program, menggunakan program internal

atau eksternal. Bila ‘0’, maka digunakan program eksternal. Pin 19 X1, Masukan ke rangkaian osilator internal. Sumber osilator

eksternal atau quartz crystal kristal dapat digunakan.

Pin 18 X2, Masukan ke rangkaian osilator internal, koneksi quartz crystal atau tidak dikoneksikan apabila digunakan eksternal osilator.

2.4.2 Instruksi MCS-51

(22)

table-tabel perlu dijelaskan arti dari simbol-simbol yang digunakan pada mnemonics sebagai berikut :

Rn Register serbaguna R0 sd R7 di register bank yang diseleksi oleh PSW.

Direct 8 bit alamat internal RAM (0-127) atau SFR (128-255)

@Rn lokasi internal RAM yang alamatnya ditunjukkan oleh R0 atau R1 (pengalamatan tak langsung dengan R0 sd R7). Perhatikan; tidak untuk R2, R3, R4, R5, R6, dan R7

#Data konstanta 8 bit

#Data 16 konstanta 16 bit

Addrl1 alamat 11 bit (untuk akses memori hingga 2K)

Addr16 alamat 16 bit (untuk akses memori hingga 64K)

Rel 8 bit offset relative bertanda (2’S complement), digunakan untuk SJMP, lompat dalam jangkauan 128 (mundur) hingga +127 (maju)

Instruksi-instruksi diperlihatkan disajikan pada table 2.5, yang menunjukkan ragam pengalamatan yang dapat digunakan dengan masing-masing instruksi.

Tabel 2.1 Instruksi Aritmatika

Mnemonic Diskripsi

ADD A, <source> A=A+<source

ADDC A, <source> A=A+<source>+C

SUBB A, <source> A=A-<source>-C

INC A A=A+1

INC <source> <source>=<source>+1

DEC A A=A-1

DEC <source> <source>=<source>-1

INC DPTR DPTR=DPTR+1

MUL AB AB = A X B

DIV AB A = Hasil A/B; B = sisa A/B

DA A Decimal Adjust

Source (sumber) adalah operand dengan ragam pengalamatan; register direct, indirect atau immediate. Contoh program penjumlahan pada ragam pengalamatan untuk instruksi aritmatika seperti berikut ini :

(23)

ADD A, @R1 ;a diisi dengan a+isi dari memori yang alamatnya ;

disimpan di R1 (pengalamatan tak langsung)

ADD A, R7 ;a diisi dengan a+isi dari R7

ADD A, #127 ;a diisi dengan a+127 (pengalamatan segera)

Untuk penggunaan kristal 12 MHz, kebanyakan instruksi aritmatik dieksekusi dalam 1 µs kecuali instruksi INC DPTR yang memerlukan waktu 2 µs dan instruksi-instruksi perkalian dan pembagian yang memerlukan waktu 4 µs.

Data didalam memori internal dapat dinaikkan atau diturunkan (increment atau decrement), tanpa melalui akumulator , demikian juga pada DPTR yang digunakan untuk menghasilkan pengalamatan 16 bit di memori eksternal. Instruksi MUL AB mengalikan dengan data yang ada pada register B dan meletakkan hasil 16 bit ke dalam register A dan B. Register A berisi lo-byte dan register B berisi hi-byte. Bila hasilnya lebih besar dari 255 (0FFh), maka bit OV set, sedangkan bit C selalu akan diclearkan (‘0’). Instruksi DIV AB membagi isi akumulator dengan data dalam register B dan meletakkan hasil bagi (quotient) 8 bit dalam akumulator, dan sisanya (remainder) 8 bit dalam register B. Operasi DIV akan membuat bit-bit CY dan OV menjadi ‘0’.

MOV adalah proses move (pindahkan) data dari sumber ke tujuan yang

sebenarnya adalah proses mengcopy, artinya data di sumber tidak berubah. Proses data transfer yang lain adalah PUSH dan POP, XCH dan XCHD seperti yang diperlihatkan pada tabel 2.6.

Tabel 2.2 Data Transfer

Mnemonic ARTI

MOV <dest>,<source> <dest>=<source>, memori int

MOV DPTR,#data 16 Dptr = data16

MOVC A,@A+<base-reg>

A = isi dilokasi A+<base-reg>

MOVX <dest>,<source> <dest>=<source>,data mem

PUSH direct Simpan data ke memori stack

POP direct Ambil data dari memori stack

MOV<dest>,<source> adalah copy data dari source ke destination, atau sumber ke tujuan, semua memori internal dan SFR dapat berlaku sebagai source dan sebagian besar dapat berlaku sebagai destination. Ragam pengalamatan dari kedua operand bisa semua kombinasi, berikut contoh proses transfer data.

;keadaan awal isi RAM dengan alamat 30h adalah ;40h, lokasi 40h berisi 10h, P1 berisi 11001010b Mov R0,#30h ;R0 berisi 30h

Mov A,@R0 ;A berisi 40h

(24)

Mov B,@R1 ;B berisi 10h

Mov @R1,P1 ;RAM lokasi 40h berisi 11001010b

Mov P2,P1 ;P2=P1=11001010b

Program asembler bersifat sekuensial, seperti pada program basic klasik(awal mula basic), dan biasanya diperlukan pencabangan untuk tujuan tertentu, yaitu lompat ke lokasi instruksi dengan alamat tertentu. Pencabangan ini terdiri dari: pelaksanaan

subrutin, pencabangan tanpa syarat dan bersyarat. Subrutin adalah penggal program yang sering digunakan, tanpa harus menulis ulang perintahnya. Proses ACALL dan LCALL menggunakan memori stack untuk menyimpan data-data alamat yang ditinggalkan sebelum melaksanakan subrutin, agar apabila kembali melaksanakan subrutin, mikrokontroller ingat lokasinya kembali. Berikut tabel pencabangan program.

Tabel 2.3 Pencabangan Program

Mnemonic ARTI

ACALL addr11 <dest>=<source>, memori int

LCALL addr16 Dptr = data16

RET A = isi dilokasi A+<base-reg>

SJMP rel Lompat maju atau mundur sejauh rel

JMP @A+DPTR Lompat ke alamat a+dptr

CJNE

<dest-byte>,<scr-byte>,rel Bila <dest>#<source> lompat sejauh rel

CJNE A,#data,rel Bila A#data lompat sejauh rel

DJNZ direct, rel Direct= direct-1,bila #0 lompat sejauh

rel

NOP No Operation, tidak ada operasi

Pencabangan bersyarat adalah lompat ke alamat tertentu bila persyaratan

terpenuhi. Secara umum perintahnya adalah : CJNE <dest-byte>,<src-byte>, rel; artinya Compare destination byte dan source byte, Jump if Not Equal along rel(active). Source byte adalah A, yang dibandingkan dengan destination byte berupa direct memory atau immediate constant. Source dapat juga berupa direct Rn atau indirect @Rn yang dibandingkan dengan immediate constant.

START :

CJNE A,#040h, LABEL1 ;bandingkan dengan 40h, jika tak ;sama lompat ke LABEL1

CJNE A,P1,LABEL1 ;bandingkan a dengan P1, jika tak

;sama lompat ke LABEL1

(25)

CJNE @R1,#0CCh,LABEL1 ;bandingkan indirect R1 dengan ;CCh,jika tak sama lompat ke ;LABEL1

LABEL1: --- ---

Instruksi DJNZ direct, rel, adalah : Decrement Jump if Not Zero, artinya kurangi satu dahulu data di direct, kemudian bila isinya nol, maka lomatlah ke rel. Biasanya instruksi ini digunakan untuk pencacah. Berikut contoh penggunaan instruksi tersebut ;

START :

Mov R0,#5 ;isi R0 dengan 5

Mov R1,#40h ;isi R1 dengan 40h

LOOP:

Mov @R1,#0AAh ;isi memori di <R1> dengan AAh

Inc R1 ;R1=R1+1

DJNZ R0,LOOP ;R0=R0-1, jika belum 0 kembali ke LOOP

Sjmp $ :usai

Perintah diatas adalah mengisi memori lokasi 40h,41h,42h,43h dan 44h dengan data AAh, disini R0 digunakan sebagai pencacah sebanyak 5 kali, sedangkan R1 digunakan sebagai pointer memori dengan alamat awal 40h. Perintah SJMP $ memerintahkan mikrokontroller untuk melompat ke tempat yang sama, artinya looping ditempat.

Instruksi NOP adalah tidak memerintahkan MCU mengerjakan apa-apa, proses ini hanya menunda kerja mikrokontroller, karena satu instruksi NOP memakan 1 mikrodetik, sehingga beberapa perintah NOP bisa digunakan untuk proses penundaan atau delay.

2.4.3 Register Fungsi Khusus ( Special Function Register )

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. Pengguna 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 non-aktif dari bit-bit baru ini akan selalu ‘0’ dan nilai aktifnya adalah ‘1’. Berikut akan dijelaskan secara singkat SFR-SFR beserta fungsinya:

Akumulator

(26)

Register B

Register B (lokasi F0h) 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 D0h) mengandung informasi status program.

Stack Pointer

Register SP atau Stack Pointer (lokasi 81h) 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 diinisialisasi 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 masing-masing berada dilokasi 83h dan 82h,

bersama-sama membentuk register yang mampu menyimpan alamat 16-bit. Dapat dimanipulasi sebagai register 16-bit atau ditulis dari/ke port, untuk masing-masing Port 0,Port 1, Port2 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 transmisi data serial. Sedangkan pada saat data disalin dari SBUF, maka sebenarnya data tersebut berasal dari penyangga penerima.

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

(27)

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 kontrol dan status untuk sistem interupsi, pencacah/pewaktu dan port serial.

2.5 INTERFACING

Agar mikrokontroller dan PC dapat berkomunikasi maka dibutuhkan sebuah antarmuka yang dapat digunakan sebagai penghubungnya. Dalam perancangan alat ini digunakan metode parallel DB 25 dan metode serial DB 9. Dalam perancangan alat ini digunakan metode komunikasi serial DB 9.

2.5.1 Serial Port DB 9

Komunikasi serial adalah pengiriman data secara serial (data dikirim satu persatu secara berurutan), sehingga komunikasi serial jauh lebih lambat daripada komunikasi parallel. Serial port lebih sulit ditangani karena peralatan yang dihubungkan ke serial port harus berkomunikasi dengan menggunakan transmisi serial, sedang data yang ada pada computer diolah secara parallel. Oleh karena itu data dari dan ke serial port harus dikonversikan ke dan dari bentuk parallel untuk bias digunakan. Dengan menggunakan bantuan sebuah hardware.

Selain itu kelebihan dari komunikasi serial ialah pengiriman data dapat dilakukan lebih jauh disbanding pengiriman secara parallel, karena serial port mengirimkan logika “1” dengan kisaran tegangan -3 Volt hingga -25 Volt dan logika 0 dengan kisaran +3 Volt hingga +25 Volt sehingga kehilangan daya karena panjangnya kabel bukan masalah utama. Bandingkan dengan port parallel yang memiliki kemungkinan lebih besar kesalahan dalam hal pengiriman data karena port paralel menggunakan level TTL berkisar dari 0 Volt untuk logika “0” dan +5 Volt untuk logika “1”.

2.5.2 Komunikasi serial Pada Mikrokontroller AT89S51

(28)

Pada kenyataannya register SBUF terdiri dari dua buah register yang memang menempati alamat yang sama yaitu 99H. Register tersebut adalah Transmit Buffer

Register yang bersifat write only (hanya dapat ditulis) dan Receive Buffer Register yang

bersifat read only (hanya dapat dibaca). Pada proses penerimaan data dari Port Serial, data yang masuk ke dalam Port Serial akan ditampung pada Receive Buffer Register terlebih dahulu dan diteruskan ke jalur bus internal pada saat pembacaan register SBUF sedangkan pada proses pengiriman data ke Port Serial, data yang dituliskan dari bus internal akan ditampung pada Transmit Buffer Register terlebih dahulu sebelum dikirim ke Port Serial.

SBUF Receive Buffer Register

(read only)

SHIFT REGISTER

SBUF Transmit Buffer Register

(write only)

Bus Internal 89s51 D

Clk RXD (P3.0) TXD

(P3.1)

Baud rate clok (receive)

Baud rate clok (transmit)

Gambar 2.6 Diagram blok port serial

Port Serial 89S51 dapat digunakan untuk komunikasi data secara sinkron maupun asinkron. Komunikasi data serial secara sinkron adalah merupakan bentuk komunikasi data serial yang memerlukan sinyal clock untuk sinkronisasi di mana sinyal clock tersebut akan tersulut pada setiap bit pengiriman data sedangkan komunikasi asinkron tidak

(29)

Gambar 2.7 Komunikasi Sinkron dan Komunikasi Asinkron 2.5.3 Baud Rate Serial Pada Mikrokontroller AT89S51

Baud rate clok berkaitan erat dengan frekuensi kristal yang digunakan dan pada mode 1,2 dan 3 juga di tentukan oleh bit SMOD pada PCON register. Baud rate clok tiap mode ditentukan sebagia berikut

• Mode 0 adalah 1/12 frekuensi kristal

• Mode 2, untuk SMOD = 0 adalah 1/64 frekuensi kristal

• Mode 2, untuk SMOD =1 adalah 1/32 frekuensi kristal

• Mode 1 dan 3 untuk SMOD = 0 adalah 1/32 dari timer overflow

• Mode 1 dan 3 untuk SMOD = 1 adalah 1/16 dari timer overflow

PCON tidak dapat di akses secara bit, sehingga pengaturan bit SMOD dapat dilakukan dengan perintah dibawah ini, dalam hal ini SMOD di clearkan MOV A, PCON ; ambil nilai PCON

CLR Acc.7 ; clear bit 7

MOV PCON,A ; kembali ke PCON

Baud rate dari Port Serial 89C51 dapat diatur pada Mode 1 dan Mode 3, namun pada Mode 0 dan Mode 2, baud rate tersebut mempunyai kecepatan yang permanen yaitu untuk Mode 0 adalah 1/12 frekwensi osilator dan Mode 2 adalah 1/64 frekwensi osilator.

Dengan mengubah bit SMOD yang terletak pada Register PCON menjadi set (kondisi awal pada saat sistem reset adalah clear) maka baud rate pada Mode 1, 2 dan 3 akan berubah menjadi dua kali lipat.

Pada Mode 1 dan 3 baud rate dapat diatur dengan menggunakan Timer1. Cara yang biasa digunakan adalah Timer Mode 2 (8 bit auto reload) yang hanya menggunakan register TH1 saja. Pengiriman setiap bit data terjadi setiap Timer 1 overflow sebanyak 32 kali sehingga dapat disimpulkan bahwa:

(30)

Baud rate (jumlah bit data yang terkirim tiap detik) =

32 1

lowx

TimerOverf …… (2.5)

Apabila diinginkan baud rate 9600 bps maka timer 1 harus diatur agar overflow setiap

32 9600

1

x detik

Timer 1 overflow setiap kali TH1 mencapai nilai limpahan (overflow) dengan frekwensi sebesar fosc/12 atau periode 12/fosc. Dari sini akan ditemukan formula

fosc

Dengan frekwensi osilator sebesar 11,0592 MHz maka TH1 adalah 253 atau 0FDH. Selain variabel-variabel di atas, masih terdapat sebuah variabel lagi yang menjadi pengatur baud rate serial yaitu Bit SMOD pada Register PCON. Apabila bit ini set maka faktor pengali 32 pada formula 3.1 akan berubah menjadi 16. Oleh karena itu dapat disimpulkan formula untuk baud rate serial untuk Mode 1 dan Mode 3 adalah:

xK

Tabel 2.5 memberikan bermacam nilai pada TH 1 pada pembangkit baud reat komunikasi data serial melalui port serial pada metode 1 dan 3, penggunaan kristal 12 MHz hanya di perbolehkan hingga kecepatan 4800 bps saja. Penggunaan kecepatan 4800 untuk

(31)

Tabel 2.4 Mode Serial vs baud rate

Mode Baud rate

0 1/12 fosc

1 SMOD = 0 SMOD = 1

2 1/32 fosc 1/32 fosc

3

Table.2.5 penentuan nilai TH1 pada pembangkit Baud rate:

BPS Kristal SMOD TH1 reload REAL BPS ERROR

4800 12 1 -13(F3h) 4807 0.16%

2400 12 0 -13(F3h) 2404 0.16%

2400 12 1 -26(E6h) 2404 0.16%

1200 12 1 -26(E6h) 1202 0.16%

1200 12 1 -56(CCh) 1202 0.16%

19200 11.059 1 -3(FDh) 19200 0%

9600 11.059 0 -3(FDh) 9600 0%

BPS Kristal SMOD TH1 reload REAL BPS ERROR

9600 11.059 1 -6(Fah) 9600 0%

4800 11.059 0 -6(Fah) 4800 0%

4800 11.059 1 -12(F4h) 4800 0%

2400 11.059 0 -12(F4h) 2400 0%

2400 11.059 1 -24(E8h) 2400 0%

1200 11.059 0 -24(E8h) 1200 0%

1200 11.059 1 -48(D0h) 1200 0%

2.5.4 Standar RS 232

Dalam hal interfacing secara serial antara PC dengan Mikrokontroller AT89S51 disini digunakan gerbang interkoneksi dari dan ke komputer melalui sinyal level RS 232. Standar RS 232 ditetapkan oleh Industry Association and Telecomunication Industry

Association pada tahun 1962 jauh sebelum IC TTL popular, oleh karena itu level

(32)

• Logika “0” (Low) antara tegangan +3 V s/d +25 V

• Logika “1” (High) antara tegangan -3 V s/d -25 V

• Tegangan rangkaian terbuka tidak boleh lebih dari 25 V (dengan acuan ground)

• Arus hubungan singkat rangkaian tidak boleh lebih dari 500 mA.

Gambar 2.8 Konfigurasi Pin DB 9

(33)

Komunikasi pada RS 232 dengan PC adalah komunikasi asinkron. Dimana sinyal

clocknya tidak dikirim bersamaan dengan data. Masing-masing data disinkronkan

menggunakan clock internal pada tiap-tiap sisinya. Format transmisi satu byte pada RS

232 adalah 8 bit, sebelum data tersebut ditransmisikan maka akan diawali oleh start bit

dengan logika “0” (0 Volt) kemudian 8 bit data akan diakhiri oleh satu stop bit dengan

logika “1” (5 Volt).

2.5.5 IC MAX 232

Untuk dapat berkomunikasi antara mikrokontroller dengan komputer, maka diperlukan suatu penyetaraan level tegangan. Besarnya level tegangan komunikasi serial (Level Tegangan RS232) adalah -25 s.d -3 V untuk logika high (1) dan +3 s.d +25 V untuk logika low (0). Hal ini sangat berbeda dengan level tegangan pada mikrokontroller (Level Tegangan TTL/CMOS) dimana untuk logika high (1) level tegangannya adalah 5 V dan untuk logika low (0) level tegangannya adalah 0 V. Oleh karena itu diperlukan sebuah pengantarmuka yang dapat menyamakan level tegangan dari komunikasi serial pada komputer dengan mikrokontroller, yaitu IC RS232 produksi MAXIM yang disebut MAX232.

Gambar 2.9 Bentuk Fisik IC MAX232

MAX232 adalah saluran driver/receiver ganda yang termasuk pembangkit tegangan kapasitip yang menyediakan level tegangan RS232 dari sebuah sumber tegangan 5V. Setiap receiver pada IC MAX232 ini mengkonversikan level tegangan RS232 ke level tegangan TTL/CMOS sebesar 5 V.

Dan setiap receiver ini mempunyai ambang batas sebesar 1.3 V, dan histeresis sebesar 0.5 V, serta dapat menerima masukan level tegangan ±30 V. Sedangkan untuk setiap driver pada IC MAX232 ini mengkonversikan level tegangan masukan

(34)

pasang konvertor TTL ke RS232 dan kebalikannya. Pada aplikasinya yang digunakan biasanya hanya satu pasang saja.

2.6 Microsoft Visual Basic 6.0

Microsoft Visual Basic adalah sebuah aplikasi yang digunakan untuk

pengembangan dengan memanfaatkan keistimewaan konsep- konsep antar muka grafis dalam Microsoft Windows. Aplikasi yang dihasilkan Visual Basic dapat digunakan sebagai tampilan pada PC yang berhubungan dengan piranti lain seperti mikrokontroller.

Untuk menjalakan program Visual Basic dari Windows Xp, pilih Start, All Program kemudian pilih Microsoft Visual Basic 6.0, selanjutnya double klik pada ikon Visual Basic 6.0. Lalu akan ditampilkan pembuka Visual Basic 6.0, seperti gambar berikut ini:

Property Project

Form ToolBar ToolBox

Gambar 2.10 Tampilan Visual Basic 6.0

(35)

manual. Setelah objek diletakkan diform, maka semua atribut objek tersebut akan disimpan sebagai suatu kode program yang dapat langsung dijalankan. Dalam gambar 2.10 terdapat beberapa jendela window yang aktif, diantaranya :

1. Windows property

Windows property dalam Visual Basic merupakan mekanisme normal yang akan menjelaskan atribut- atribut dari objek. Setiap objek Visual Basic memiliki property tertentu yang settinggnya mengontrol tampilan dan ulah dari objek dalam suatu aplikasi.

Gambar 2.11 Window Property Gambar 2.12

Beberapa property terbatas pada nilai-nilai tertentu contoh, Property Visible hanya bias

diatur dengan True atau False saja.

2. Windows Form

Sebuah Form adalah area tampilan yang berhubungan dengan sebuah jendela yang akan terlihat ketika aplikasi berjalan. Ketika memulai sebuah proyek baru, Visual Basic menciptakan sebuah form kosong dan memberinya judul Form1. Dalam Form inilah ditempatkan control untuk keperluan aplikasi.

(36)

3. Windows Project

Pada dasarnya Project adalah sekumpulan Form, Module, Class dan file sumber yang membentuk sebuah aplikasi. Jadi windows Project merupakan Windows yang

menampilkan listing semua file pembentuk Project. File Form berisi Deskripsi dari form dan kode- kode yang berhubungan dengannya.

Gambar 2.14 Windows Project

Sedangkan Modul berisi deklarasi dan Prosedure. File class memuat karakteristik- karakteristik tertentu dalam Class, meliputi Property dan Metodenya. Dua tombol yang terdapat pada sisi atas windows Project digunakan untuk menampilkan window Form (View Form) dan menampilkan window kodenya (Tombol View Code).

4. ToolBar

ToolBar merupakan kumpulan tombol- tombol yang mempunyai tugas untuk pengaksesan terhadap aplikasi yang berada dibawah kendalinya dengan cepat. Dan ToolBox berisi kontrol- kontrol atau objek- objek yang akan ditempelkan pada form sebagai element program aplikasi.

(37)

2.7 Motor Langkah (Stepper)

Pada dasarnya prinsip kerja motor stepper sama dengan motor DC, yaitu

membangkitkan medan magnet untuk memperoleh gaya tarik ataupun gaya tolak menolak dengan menggunakan catu tegangan DC pada lilitan/kumparannya. Motor stepper

menggunakan gaya tarik untuk menarik fisik kutub magnet yang berlawanan sedekat mungkin ke posisi kutub magnet yang dihasilkan oleh kumparan.

Dilihat dari lilitannya motor stepper terbagi menjadi 2 jenis yaitu :

a.

Motor stepper bipolar memiliki empat kabel masukan. Namun untuk menggerakan motor stepper tipe ini lebih rumit jika dibandingkan dengan menggerakan motor stepper tipe unipolar. Sebagai gambaran dapat dilihat konstruksi motor stepper bipolar pada gambar berikut :

Motor Stepper Bipolar

Gambar 2.16 Konstruksi Motor Stepper Bipolar

Untuk motor stepper dengan lilitan bipolar, diperlukan sinyal pulsa yang berubah-ubah dari positif ke negatif dan sebaliknya. Jadi pada setiap terminal lilitan (A & B) harus dihubungkan dengan sinyal yang mengayun dari positif ke negatif dan sebaliknya. Karena itu dibutuhkan rangkaian pengendali yang lebih kompleks daripada rangkaian pengendali untuk motor unipolar.

b. Motor Stepper Unipolar

(38)

Gambar 2.17 Konstruksi Motor Stepper Unipolar

Rangkaian pengendali motor stepper unipolar lebih mudah dirancang karena hanya memerlukan satu switch pada setiap lilitannya. Agar motor ini berputar, tegangan positif diberikan pada terminal center tap, kemudian tegangan positif diberikan secara bergantian dan berurutan terus- menerus pada keempat terminal masing-masing lilitan. Oleh karena itu, pada alat ini digunakan motor stepper jenis unipolar.

Pada motor stepper ini, suplai tegangan yang dibutuhkan adalah V = 12 volt dan sudut rotasi 1,80 per step. Maka dalam satu putaran penuh (3600) terjadi 3600/1,80= 200 step (Np). Kecepatan pulsa diekspresikan sebagai pps (= pulsa per second) dan kecepatan putar umumnya ditulis sebagai ω (= rotasi / menit atau rpm). Kecepatan putar motor stepper (rpm) dapat dihitung menggunakan rumus pada kecepatan pulsa (pps) sebagai berikut.

[

rotasi menit

]

Np pps

/ 60

= ω

pps Np

60

=

ω ... (2.7)

Np = step/putaran (pulsa/rotasi) pps = pulsa per detik

Torsi yang dapat dihasilkan oleh motor stepper dapat dihitung berdasarkan perbandingan daya kerja motor terhadap kecepatan putarannya. Atau dapat dirumuskan sebagai berikut:

ω

τ = P (2.8)

dengan P adalah daya kerja motor dalam satuan watt dan ω adalah kecepatan perputaran motor dalam satuan rotation per minute (rpm).

(39)

r F.

=

τ ... (2.9) dengan F adalah gaya berat yang bekerja terhadap motor dan r adalah jarak sumbu putar pada motor. Gaya berat yang bekerja terhadap motor dapat dituliskan dengan:

F = m.g (Newton) ... (2.10)

dengan,

m = massa (kg) dan

g = percepatan gravitasi (m/s2).

Motor stepper dapat diatur posisinya dengan akurat pada posisi tertentu dan dapat berputar kearah yang diinginkan dengan memberi pulsa-pulsa digital dengan pola seperti pada table 2.8 dibawah ini. Untuk memutar motor stepper adalah dengan memberi pulsa ke koil secara berurutan dari koil 1 ke koil 2, dan seterusnya. Arah putaran motor stepper tergantung urutan pulsa yang diberikan ke koil, apabila diinginkan putaran dengan arah yang berlawanan, maka urutan pulsa yang dimasukkan ke koil pun digeser berlawanan pula.

Motor stepper dapat diatur posisinya dengan akurat pada posisi tertentu dan dapat berputar kearah yang diinginkan dengan memberi pulsa-pulsa digital dengan pola seperti pada table 2.4 dibawah ini. Untuk memutar motor stepper adalah dengan memberi pulsa ke koil secara berurutan dari koil 1 ke koil 2, dan seterusnya. Arah putaran motor stepper tergantung urutan pulsa yang diberikan ke koil, apabila diinginkan putaran dengan arah yang berlawanan, maka urutan pulsa yang dimasukkan ke koil pun digeser berlawanan pula.

Tabel 2.7 Arah Perputaran Motor

Putaran

Searah jarum jam Berlawanan arah jarum jam

koil 1 koil 2 koil 3 koil 4 koil 1 koil 2 koil 3 koil 4

step 1 1 0 0 0 0 0 0 1

step 2 0 1 0 0 0 0 1 0

step 3 0 0 1 0 0 1 0 0

step 4 0 0 0 1 1 0 0 0

(40)

kondisi off, yakni tidak mendapatkan arus. Pada tabel juga ditunjukkan, untuk membalik putaran motor stepper cukup membalik urutan pemberian pulsa pada lilitan. Untuk memperlambat atau mempercepat putaran motor stepper, dengan mengatur waktu urutan pemberian pulsa, akan tetapi, pemberian waktu pulsa jika terlalu lamban akan

(41)

BAB III

PERANCANGAN ALAT DAN PROGRAM

3.1 Diagram Blok Rangkaian

Secara umum pada perancangan sistem pengendalian pintu air ini, terdiri dari 7 blok. Adapun diagram blok dari sistem yang dirancang adalah seperti yang diperlihatkan pada gambar 3.1. berikut ini:

Gambar 3.1 Diagram Blok Rangkaian

Sensor setiap saat akan membaca level ketinggian air. Dalam hal ini digunakan 8 (delapan) level ketinggian air. Data yang dihasilkan oleh sensor akan dikondisikan pada pengkondisi sinyal, sehingga menghasilkan data digital yang akan dibandingkan oleh mikrokontroller. Pada perancangan sistem ini, mikrokontroller adalah otak dari keseluruhan sistem kerja alat ini. Data yang diberikan pada mikrokontroller akan

dikirimkan ke PC yang berfungsi sebagai input sekaligus output dari data yang diberikan. Agar mikrokontroller dapat berkomunikasi dengan PC maka digunakanlah MAX 232 sebagai penghubungnya. Setelah level ketinggian air ditampilkan pada PC, kemudian kita dapat mengatur level ketinggian air sesuai dengan yang kita inginkan. Melalui PC kita kirimkan data level ketinggian air yang kita inginkan ke mikrokontroller AT89S51. Kemudian mikrokontroller akan memerintahkan motor stepper melalui driver motor

PC DRIVER

MOTOR STEPPER MIKROKONTROLLER

AT89S51 MAX 232

MOTOR STEPPER PENGKONDISI

SINYAL SENSOR

(42)

stepper untuk membuka dan menutup pintu air sehingga ketinggian air sampai pada level yang telah kita tentukan.

3.2 Fungsi Sistem Mekanik

Gambar sistem mekanik alat ditunjukkan pada gambar 3.2 berikut ini:

Gambar 3.2 Rancangan Tampak Dari Samping = pintu air pada bendungan

= lempeng tembaga sebagai sensor

= level ketinggian air = bendungan air atau wadah

= motor stepper untuk membuka-tutup pintu air 3.3 Perancangan Sensor Pendeteksi Ketinggian Air

Pada perancangan alat ini, pendeteksian air dilakukan dengan menggunakan elektroda berupa lempeng tembaga. Lempeng tembaga diberi jarak 1 cm dengan lempeng tembaga lainnya. Misalkan salah satu lempengan diberi label lempeng A dan diberi tegangan 5 volt , sedangkan pasangannya diberi label lempeng B. Bila lempeng A dan lempeng B dihubungkan dengan air, maka lempeng B akan menghasilkan tegangan sekitar 1,5 volt. Dan bila lempeng A dan lempeng B tidak terhubung, maka lempeng B tidak akan memiliki tegangan atau 0 volt. Prinsip inilah yang digunakan untuk

mendeteksi ketinggian air. Dengan memposisikan 8 (delapan) pasang lempeng dengan Pintu Air

Motor Stepper

Level Ketinggian Air

Wadah/ Bendungan Leaga

30 Cm

Arah aliran

(43)

jarak 1cm dari bawah ke atas, maka kita dapat mendeteksi ketinggian air dengan 8 level. Berikut adalah gambarannya:

Gambar 3.3 Lempeng Tembaga Sebagai Pendeteksi Ketinggian Air

Pada gambar 3.3 diatas, Output tegangan yang dihasilkan kedelapan pasang lempeng tembaga ini, tidak bisa digunakan langsung sebagai data digital yang akan dibaca oleh mikrokontroller. Oleh karena itu digunakan transistor dengan prinsip transistor sebagai saklar, sehingga dapat dihasilkan data digital 5 volt (High) dan 0 volt (Low).

3.4 Rangkaian Pengkondisi Sinyal

Pada alat ini, sensor yang digunakan untuk mendeteksi ketinggian air digunakan sepasang lempeng tembaga yang dihubungkan pada transistor yang bekerja sebagai saklar otomatis. Pada sepasang lempeng tembaga salah satunya (lempeng A) dihubungkan dengan tegangan +5 Volt dan yang lainnya (lempeng B) dihubungkan ke basis transistor, seperti Gambar 3.3 berikut ini.

Transistor 8

5 Volt

1 2 3 4 5 6 7 8 Transistor 7

Transistor 6 Transistor 5 Transistor 4 Transistor 3 Transistor 2 Transistor 1

(44)

Gambar 3.4 Rangkaian Sensor Sebagai Saklar Otomatis

Dapat kita lihat apabila lempeng A dan lempeng B tidak terhubung, maka tegangan akan dialirkan dari Vc ke Vout, sehingga Vout menjadi +5 Volt. Dan apabila lempeng A dan lempeng B terhubung oleh air, maka akan ada tegangan yang dialirkan pada basis transistor yang cukup untuk mengaktifkan transistor. Apabila transistor aktif maka tegangan dari Vc akan mengalir ke VE

Pada alat ini digunakan 8 (delapan) pasang lempeng tembaga. Jarak sepasang lempeng tembaga dengan lempeng tembaga berikutnya adalah 1 cm, dan dipasang mulai dari dasar wadah sehingga diperoleh 8 (delapan) level ketinggian air. Inilah yang

digunakan sebagai acuan level ketinggian air pada alat. Masing- masing pasangan lempeng tembaga dihubungkan dengan transistor. Sehingga akan dihasilkan 8 (delapan) buah output data digital yang kemudian dihubungkan dengan P2.0 sampai P2.7 pada mikrokontroller.

, dan Vout akan menjadi 0. Vout yang dihasilkan berupa +5 Volt (High) dan 0 (Low) inilah yang digunakan menjadi data digital yang kemudian dapat dibaca oleh mikrokontroller.

3.5 Rangkaian Konverter RS232

Untuk menghubungkan mikrokontroller dengan PC tidak bisa dilakukan secara langsung namun membutuhkan sebuah konverter. Dalam antarmuka mikrokontroller dan PC disini dilakukan secara serial Oleh karena itu diperlukan sebuah port serial, dalam hal ini digunakan port DB9. Dari port DB9 ini kemudian dihubungkan dengan rangkaian konverter. Dalam hal ini digunakan rangkaian konverter RS233 menggunakan IC MAX232. Berikut ini adalah gambarannya:

(45)

Gambar 3.5 Rangkaian Konverter Level RS232

3.6 Rangkaian Mikrokontroler AT89S51

(46)

GND

Gambar 3.6 Sistem Minimum Mikrokontroller AT89S51

Rangkaian mikrokontroller ini terdiri dari 40 pin. Pin 40 dihubungkan pada sumber tegangan +5 volt dan pin 20 dihubungkan ke ground. Rangkaian mikrokontroller ini memiliki 4 port input/output dengan masing-masing saluran 8 bit. Pin 39 sampai pin 32 adalah port 0.

Mulai dari pin 39 sebagai P0.0 sampai pin 32 sebagai P0.7. Pada port 0 ini juga dihubungkan dengan resistor 4k7 sebagai tegangan pull up eksternal. Pada pin 21 sampai pin 28 digunakan sebagai port 2. Pada pin 1 sampai pin 8 digunakan sebagai port 1. Dan pada pin 10 sampai pin 17 digunakan sebagai port 3. Pada pin 9 berfungsi sebagai reset, dihubungkan dengan sebuah kapasitor 10uF yang dihubungkan ke positif dan sebuah resistor 10 Kohm yang dihubungkan ke ground.

3.7 Rangkaian Driver Motor Stepper

Agar pintu dapat bergerak membuka dan menutup pintu, maka digunakan motor stepper. Mikrokontroler tidak dapat langsung mengendalikan putaran dari motor

(47)

Gambar 3.7 Driver Motor Stepper

Driver ini berfungsi untuk memutar motor stepper searah dengan jarum jam atau berlawanan arah dengan jarum jam. Dengan memberikan sinyal high secara bergantian ke input dari rangkaian driver motor stepper tersebut, maka pergerakan motor stepper sudah dapat dikendalikan oleh mikrokontroler. Rangkaian driver motor stepper ini terdiri dari empat masukan dan empat keluaran, dimana masing-masing masukan dihubungkan dengan mikrokontroler dan keluarannya dihubungkan ke motor stepper. Rangkaian ini akan bekerja memutar motor stepper jika diberi sinyal high (1) secara bergantian pada ke- 4 masukannya.

Rangkaian ini terdiri dari 4 buah transistor NPN TIP 122. Masing-masing transistor dihubungkan ke P0.0, P0.1, P0.2 dan P0.3 pada mikrokontroler AT89S51. Basis dari masing- masing transistor diberi tahanan 1 Kohm untuk membatasi arus yang masuk ke transistor. Kolektor dihubungkan dengan kumparan yang terdapat pada motor stepper, kemudian kumparan dihubungkan dengan sumber tegangan 12 volt dan emitor dihubungkan ke ground.

(48)

3.8 Rangkaian Lengkap

(49)

BAB IV

PENGUJIAN SISTEM DAN ANALISA PROGRAM 4.1 Pengujian Sistem Hardware

4.1.1 Pengujian Rangkaian Mikrokontroller AT89S51

Dalam pengujian yang akan dilakukan pada rangkaian mikrokontroller terlebih dahulu kedelapan pin pada Port 0 dihubungkan dengan LED. Penambahan LED disini hanya berguna sebagai pengujian apakah program yang diisikan telah berjalan dengan baik atau tidak. Berikut gambar rangkaian mikrokontroller AT89S51 yang dihubungkan dengan LED:

Gambar 4.1 Rangkaian Mikrokontroller AT89S51

Untuk menghidupkan sebuah LED, maka pin yang terhubung ke LED tersebut harus diberi nilai high (1). Sebaliknya, pin yang mendapat nilai low (0), maka LED nya akan mati. Pengujian dilakukan dengan memberikan program sederhana pada

mikrokontroller AT89S51. Berikut adalah program untuk pengujian rangkaian mikrokontroller AT89S51 :

(50)

Loop:

mov p0,#55h P0 0 1 0 1 0 1 0 1

acall tunda

mov P0,#0AAH P0 1 0 1 0 1 0 1 0

acall tunda

sjmp Loop Short jump to loop

tunda: mov r7,#255 tnd: mov r6,#255 Djnz r6,$ Djnz r7,tnd ret

Program diatas hanya program sederhana yang diisikan kedalam mikrokontroller, dimana program diatas akan menghidupkan LED yang terhubung ke pin P0.0, P0.2, P0.4 dan P0.6 berhenti sesaat lalu menghidupkan LED yang terhubung ke pin P0.1, P0.3, P0.5 dan P0.7 dan berhenti sesaat kemudian kembali lagi menghidupkan LED yang terhubung ke pin P0.0, P0.2, P0.4 dan P0.6.

Demikian seterusnya. Rutin tunda berfungsi sebagai waktu berhenti sesaat sebelum LED lainnya dihidupkan. Dengan mengisikan nilai yang berbeda pada Port 0, maka tampilannya juga berbeda. Pengujian yang sama juga dilakukan pada Port 1, Port 2 dan Port 3. Apabila LED atau mikrokontroller telah berjalan sesuai dengan program yang diisikan kedalamnya maka rangkaian mikrokontroller ini telah berfungsi dengan baik dan siap untuk digunakan.

4.1.2 Pengujian Rangkaian Sensor

Pengujian rangkaian sensor dapat dilakukan dengan cara menghubungkan salah satu lempeng yang ada pada sensor ini. Dalam hal ini yang berfungsi sebagai input sensor adalah lempeng A dan yang berfungsi sebagai output sensor adalah lempeng B. Pada lempeng A akan dihubungkan dengan sumber tegangan +5 Volt dan outputnya akan diumpankan ke kaki basis transistor dimana transistor disini akan digunakan sebagai rangkaian pengkondisi sinyal.

Gambar 4.2 Rangkaian Sensor

A B

+5V +5V

4K7

(51)

Dari hasil pengujian sensor yang dilakukan, maka diperoleh tegangan yang dihasilkan pada kaki basis. Data yang diperoleh ini yang akan dimanfaatkan dengan menggunakan prinsip kerja dari transistor. Berikut data yang diperoleh pada saat pengukuran tegangan basis, sebagai berikut :

Tabel 4.1 Hasil pengukuran Tegangan Basis (VB Karakteristik

)

VB yang dihasilkan Keadaan sensor

Tegangan basis Emitter pada saat

saturasi (IB = 0,2 mA) 1,5 V Logika 0 (Low)

Tegangan basis Emitter pada saat

cut-off (IB = 0 ) 0 V Logika 1 (High)

Saat kedua lempeng terhubung oleh air, maka pada lempeng B dihasilkan tegangan sebesar 1,5 Volt. Tegangan inilah yang cukup untuk mengaktifkan transistor. Sehingga tegangan dari Vc akan mengalir ke VE, dan Vout akan menjadi 0 volt. Kondisi

0 inilah yang dianggap sebagai data high yang akan dikirimkan ke mikrokontroller. Sebaliknya, saat kedua lempeng tidak terhubung oleh air, maka tegangan dilempeng B sebesar 0 volt, sehingga transistor tidak akan aktif maka tidak ada tegangan yang

mengalir dari Vc ke VE dan Vout akan menjadi 5 volt. Sehingga tegangan 5 volt ini yang

digunakan sebagai data low yang akan diolah pada mikrokontroller.

4.1.3 Pengujian Motor Stepper

a. Menentukan Arah Perputaran Motor Stepper

Untuk mengetahui arah perputaran dari motor stepper adalah dengan mengisikan program ke mikrokontroller sebagai berikut :

Putar_kiri :

Mov a,#01H loop :

Mov P0,a RL a

acall tunda_step Sjmp loop tunda_step :

Mov r7,#255 Mov r6,$255 tnd :

(52)

Program diatas akan mengatur gerakan motor stepper agar berputar kearah kiri atau berlawanan dengan putaran jarum jam.

Putar_kanan : Mov a,#01H Loop :

Mov P0,a RR a

acall tunda_step Sjmp loop

Program diatas akan mengatur gerakan roler agar berputar terus ke arah kanan atau searah dengan arah putaran jarum jam. Rutin tunda dengan perintah call step_tunda merupakan lama waktu perputaran motor untuk satu step atau langkah.

Perintah Mov r6,#255 dan Mov r7,#255 masing-masing terdiri dari 2 siklus mesin. Perintah djnz juga terdiri dari 2 siklus mesin. Sedangkan perintah ret terdiri dari 1 siklus mesin. Perintah djnz r6,$ maksudnya adalah mengurangi nilai pada r6 sampai bernilai 0, berarti perintah djnz r6,$ pada program diatas dilakukan sebanyak 255 kali, atau 225 x 2 = 510 µd. Setelah nilai r6 bernilai 0 maka nilai r7 berkurang 1 nilai karena adanya perintah djnz r7, kemudian program akan kembali mengurangi nilai pada r6 sampai bernilai 0 (kembali ke tunda_step) sehingga perintah ini dilakukan sebanyak 255 kali. Dengan demikian dapat diketahui hasilnya adalah (510 x 255 = 65025 µd). Hasil dari perkalian ini kemudian ditambahkan dengan 5 siklus berikutnya (mov r6 = 2 siklus, mov r7 = 2 siklus, dan ret = 1 siklus) sehingga hasil akhir didapatkan (65025 + 5 = 65030 µd). Jadi waktu tunda yang diberikan untuk satu step adalah 65030 µd atau 0,065detik.

b. Menentukan beban maksimum yang dapat digerakkan motor stepper.

Untuk mengetahui beban maksimum yang dapat digerakkan oleh motor stepper ini, maka terlebih dahulu mengitung besar torsi dan gaya berat yang bekerja. Besar torsi pada motor stepper ini adalah :

(53)

τ = 0,4 Nm

l F.

=

τ

Sehingga gaya berat yang bekerja pada motor stepper ini:

l

Pada alat ini berat yang akan digerakkan oleh motor stepper adalah pintu air. Dengan berat maksimum 0,2 kg atau 200 x 10-3kg sehingga motor stepper dapat menggerakkan pintu air. Dan gaya berat yang bekerja untuk menggerakkan pintu sebesar 4 N.

4.2 Pengujian Software

4.2.1 Analisa Program pada PC menggunakan Visual Basic 6.0

Program pada PC menggunakan software Visual Basic 6.0. Pengujian ini

dilakukan dengan menghubungkan dengan semua blok di bagian pemancar dan penerima. Pada blok bagian penerima di hubungkan ke PC, dan semua blok diaktifkan. Kemudian keluaran RS232 pada bagian penerima dihubungkan ke port serial komputer. Jika semua sistem menyala maka pendeteksi sinyal akan menyala sehingga data yang dikirimkan akan diterima untuk ditampilkan pada layar PC. Hasil dari pengujian ini dapat dilihat dari program dibawah ini:

Private Sub Command1_Click()

MSComm1.Output = "6" ‘kirim nilai 6 ke port serial Label11 = "6" ‘tampilkan 6 pada label1 End Sub

Private Sub Command2_Click()

MSComm1.Output = "7" ‘kirim nilai 7 ke port serial Label11 = "7" ‘tampilkan nilai 7 pada label1

End Sub

Private Sub Command3_Click()

MSComm1.Output = "8" ‘kirim nilai 8 ke port serial Label11 = "8" ‘tampilkan nilai 8 pada label1

End Sub

Private Sub Command4_Click()

MSComm1.Output = "a" ‘kirim nilai a ke port seial Label11 = "a" ‘tampilkan a pada label1

(54)

Private Sub Command5_Click()

MSComm1.Output = "1" ‘kirim nilai 1 ke port serial

Label11 = "1" ‘tampilkan nilai 1 pada label1

End Sub

Private Sub Command6_Click()

MSComm1.Output = "2" ‘kirim nilai 2 ke port serial Label11 = "2" ‘tampilkan nilai 2 ke label1

End Sub

Private Sub Command7_Click()

MSComm1.Output = "3" ‘kirim nilai 2 ke port serial Label11 = "3" ‘tampilkan nilai 3 ke label1

End Sub

Private Sub Command8_Click()

MSComm1.Output = "4" ‘kirim nilai 4 ke port serial Label11 = "4" ‘tampilkan nilai 4 ke label1

End Sub

Private Sub Command9_Click()

MSComm1.Output = "5" ‘kirim nilai 5 ke port serial Label11 = "5" ‘tampilkan nilai 5 ke label1

End Sub

Private Sub Form_Load()

MSComm1.PortOpen = True ‘buka komunikasi ke port serial

MSComm1.DTREnable = True ‘aktifkan pengiriman data

MSComm1.RTSEnable = True ‘aktifkan pengiriman data

Timer1.Enabled = True ‘aktifkan timer1

Timer2.Enabled = True ‘aktifkan timer2

End Sub

Pada program diatas memerintahkan untuk komunikasi pada port serial diaktifkan, pengiriman data diaktifkan dan penerimaan data diaktifkan. Program juga akan

mengaktifkan timer 1 dan timer 2.

Private Sub Timer1_Timer()

Label1.Caption = MSComm1.Input ‘input serial dari mikro tampilkan di label1

If Label1.Caption <> "" Then ‘jika label1 tidak kosong, maka

(55)

Program diatas memerintahkan agar input serial dari mikrokontroller agar tampil ke label 1. Jika label 1 tidak kosong, maka isikan label 2 dengan label 1.

If Label2.Caption = "1" Then ‘jika label 2 = 1, maka Picture1.BackColor = &HFF0000 warna picture 1 = Biru tua Picture2.BackColor = &HFFFF80 warna picture 2 = Biru Muda Picture3.BackColor = &HFFFF80 warna picture 3 = Biru Muda Picture4.BackColor = &HFFFF80 warna picture 4 = Biru Muda Picture5.BackColor = &HFFFF80 warna picture 5 = Biru Muda Picture6.BackColor = &HFFFF80 warna picture 6 = Biru Muda Picture7.BackColor = &HFFFF80 warna picture 7 = Biru Muda Picture8.BackColor = &HFFFF80 warna picture 8 = Biru Muda End If

Pada program diatas, jika tulisan pada label 2 adalah 1, maka warna layar 1 akan berwarna biru tua sedangkan warna pada layar 2 sampai dengan 8 akan berwarna biru muda. Maka ketinggian air berada pada level maksimum yaitu level 8.

If Label2.Caption = "2" Then ‘jika label 2 = 2, maka Picture1.BackColor = &HFF0000 warna picture 1 = Biru Tua Picture2.BackColor = &HFF0000 warna picture 2 = Biru Tua Picture3.BackColor = &HFFFF80 warna picture 3 = Biru Muda Picture4.BackColor = &HFFFF80 warna picture 4 = Biru Muda Picture5.BackColor = &HFFFF80 warna picture 5 = Biru Muda Picture6.BackColor = &HFFFF80 warna picture 6 = Biru Muda Picture7.BackColor = &HFFFF80 warna picture 7 = Biru Muda Picture8.BackColor = &HFFFF80 warna picture 8 = Biru Muda

End If

Pada program diatas, jika tulisan pada label 2 adalah 2, maka warna layar 1 dan layar 2 akan berwarna biru tua sedangkan warna pada layar 3 sampai dengan 8 akan berwarna biru muda. Maka ketinggian air berada pada level maksimum yaitu level 7. Begitu seterusnya hingga air berada pada level 1.

If Label2.Caption = "3" Then ‘jika label 2 = 3

Picture1.BackColor = &HFF0000 warna picture 1 = Biru Tua Picture2.BackColor = &HFF0000 warna picture 2 = Biru Tua Picture3.BackColor = &HFF0000 warna picture 3 = Biru Tua Picture4.BackColor = &HFFFF80 warna picture 4 = Biru Muda Picture5.BackColor = &HFFFF80 warna picture 5 = Biru Muda Picture6.BackColor = &HFFFF80 warna picture 6 = Biru Muda Picture7.BackColor = &HFFFF80 warna picture 7 = Biru Muda Picture8.BackColor = &HFFFF80 warna picture 8 = Biru Muda End If

Gambar

Gambar 2.1  Bendungan pada PLTA Tangga Siguragura
Gambar 2.2 Kurva Karakteristik dan Garis Beban Transistor
Gambar 2.3 Transistor Saklar Tertutup
tabel perlu dijelaskan arti dari simbol-simbol yang digunakan pada mnemonics sebagai berikut :
+7

Referensi

Dokumen terkait

Telah dibuat alat elektrik yang dapat mengukur ketinggian permukaan air dengan mikrokontroler AT89S51 yang berfungsi sebagai pengendali utama pada pemrosesan data

Pada penelitian ini dirancang prototype pintu air irigasi otomatis yang mampu mengirimkan informasi ketinggian air dan mampu bekerja membuka menutup pintu air dengan

One of the simplest tests is to apply a known analog input voltage to the converter and use LEDs to display the resulting digital output code as shown in Figure 9. This value of V

Sensor cahaya digunakan untuk mendeteksi benda yang tidak bergerak serta tidak mempunyai suhu panas, bekerja saat pancaran sinar infra red tidak sampai pada potodioda sehingga

Sensor“PING)))™ Ultrasonic Range Finder ”, digunakan untuk mengukur level ketinggian cairan. Sensor jarak ditunjukkan pada Gambar 1.. Gambar 1 Sensor PING Ultrasonik Range

Pada perancangan sistem proteksi kebakaran otomatis pada SPBU berbasis mikrokontroler AT89S51 ini terdiri dari 3 buah sensor pendeteksi kebakaran

Sensor cahaya digunakan untuk mendeteksi benda yang tidak bergerak serta tidak mempunyai suhu panas, bekerja saat pancaran sinar infra red tidak sampai pada potodioda sehingga

Program pada Arduino Uno ATMega328 terdiri dari 4 bagian, yaitu program yang menangani proses kalibrasi sensor SRF04 (2) untuk mendeteksi ketinggian air, program