Transistor Microsoft Visual Basic 6.0

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

Transistor merupakan alat semikonduktor yang dipakai sebagai penguat, sebagai sirkuit pemutus dan penyambung switching dan dapat juga sebagai stabilisasi tegangan. Pada umumnya transistor memiliki 3 terminal dasar, yaitu basis, kolektor dan emitor. Transistor merupakan salah satu jenis komponen aktif yang banyak digunakan, baik dalam rangkaian analog, maupun digital. Transistor yang paling banyak digunakan adalah transistor bipolar. Dinamakan bipolar karena kanal konduksi utamanya menggunakan dua polaritas pembawa muatan yaitu elektron dan lubang, untuk membawa arus listrik. 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 Daerah mati merupakan daerah kerja saat transistor mendapat bias arus basis IB = 0, maka arus kolektor dengan basis terbuka menjadi arus bocor dari basis ke emitor ICEO. Hal yang sama dapat terjadi pada transistor hubungan kolektor- basis. Jika arus emitor sangat kecil IE = 0, emitor dalam keadaan terbuka dan arus mengalir dari kolektor ke basis ICBO.

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 VccRc. Keadaan seperti ini menyerupai saklar dalam kondisi tertutup On. Berikut adalah gambaran transistor dalam kondisi jenuh ekivalen dengan saklar tertutup: NPN Rc Rb Vs Ic V CE = 0 Ib Rc V = 0 Tertutup C E C E Vcc Vcc 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 Rc Rb Vs Ic = 0 V CE = V CC Ib = 0 Rc V = V CC Terbuka C E C E Vcc Vcc Gambar 2.4 Transistor Saklar Tertutup

2.3.3 Perhitungan Transistor Sebagai Saklar

Perhitungan secara teori untuk menentukan kondisi transistor sebagai saklar sebagai berikut: • 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 alatkomponen 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 instrumentasi sederhana. Mikrokontroler seri MCS-51 termasuk sederhana, murah dan mudah didapat dipasaran. Salah satu mikrokontroler seri MCS-51 adalah mikrokontroler AT89S51.

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 EPROMErasable 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 IO InputOutput 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 timercounter 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: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 VCC P0.0 AD0 P0.1 AD1 P0.2 AD2 P0.3 AD3 P0.4 AD4 P0.5 AD5 P0.6 AD6 P0.7 AD7 EA VPP ALE PROG PSEN P2.7 A15 P2.6 A14 P2.5 A13 P2.4 A12 P2.3 A11 P2.2 A10 P2.1 A9 P2.0 A8 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 RST RXD P3.0 TXD P3.1 INT 0 P3.2 INT 1 P3.3 T0 P3.4 T1 P3.5 WR P3.6 RD P3.7 XTAL 2 XTAL 1 GND A T 89S 51 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 inputoutput 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 inputoutput dua arah delapan bit dengan internal pull up. Pin 10-17 P3.0-P3.7Port inputoutput 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 IO luar. RD pin 17 Berfungsi sebagai sinyal kendali baca, saat prosesor akan membaca data dari memori IO 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

Pengalamatan adalah pengelompokkan berdasarkan orientasi lokasi memori, tipe- tipe instruksi adalah pengelompokkan berdasarkan fungsi instruksi. Beberapa fungsi pada instruksi MCS-51 yang akan digunakan yaitu Aritmatika, Transfer data,dll. Pada 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 AB; B = sisa AB 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 : ADD A, 7FH ;a diisi dengan a+isi dri memori lokasi 7FH ;pengalamatan langsung 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 MOVdest,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 Mov R1,A ;R1 berisi 40h 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 klasikawal 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 destsource lompat sejauh rel CJNE A,data,rel Bila Adata 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 relactive. 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 CJNE R1,040h,LABEL1 ;bandingkan R1 dengan 40h, jika ;tak sama lompat ke LABEL1 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 Acc atau akumulator yang menempati lokasi E0h digunakan sebagai register untuk penyimpanan data sementara, dalam program, instruksi mengacunya sebagai register A. • 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 darike 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 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 AT89C5255, 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 kontrol dan status untuk sistem interupsi, pencacahpewaktu 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

Mikrokontroller 89S51 mempunyai On Chip Serial Port yang dapat digunakan untuk komunikasi data serial secara Full Duplex sehingga Port Serial ini masih dapat menerima data pada saat proses pengiriman data terjadi. Untuk menampung data yang diterima atau data yang akan dikirimkan, 89S51 mempunyai sebuah register yaitu SBUF yang terletak pada alamat 99H di mana register ini berfungsi sebagai buffer sehingga pada saat mikrokontroler ini membaca data yang pertama dan data kedua belum diterima secara penuh, maka data ini tidak akan hilang. 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 memerlukan sinyal clock sebagai sinkronisasi. Pengiriman data pada komunikasi serial 89S51 dilakukan mulai dari bit yang paling rendah LSB hingga bit yang paling tinggi MSB. 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 112 frekuensi kristal • Mode 2, untuk SMOD = 0 adalah 164 frekuensi kristal • Mode 2, untuk SMOD =1 adalah 132 frekuensi kristal • Mode 1 dan 3 untuk SMOD = 0 adalah 132 dari timer overflow • Mode 1 dan 3 untuk SMOD = 1 adalah 116 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 112 frekwensi osilator dan Mode 2 adalah 164 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: Lama pengiriman setiap bit data = Timer 1 Overflow X 32 ........... 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 fosc12 atau periode 12fosc. Dari sini akan ditemukan formula fosc TH x ] 1 256 [ 12 − = 32 9600 1 x sebagai berikut: 32 ] 1 256 [ 12 9600 x TH x 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 TH x fosc Baudrate ] 1 256 [ 12 − = ……………2.6 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 komunikasi dengan computer, baik suntuk programming atau untuk emulator. Tabel 2.4 Mode Serial vs baud rate Mode Baud rate 112 fosc 1 SMOD = 0 SMOD = 1 2 132 fosc 132 fosc 3 Table.2.5 penentuan nilai TH1 pada pembangkit Baud rate: BPS Kristal SMOD TH1 reload REAL BPS ERROR 4800 12 1 -13F3h 4807 0.16 2400 12 -13F3h 2404 0.16 2400 12 1 -26E6h 2404 0.16 1200 12 1 -26E6h 1202 0.16 1200 12 1 -56CCh 1202 0.16 19200 11.059 1 -3FDh 19200 9600 11.059 -3FDh 9600 BPS Kristal SMOD TH1 reload REAL BPS ERROR 9600 11.059 1 -6Fah 9600 4800 11.059 -6Fah 4800 4800 11.059 1 -12F4h 4800 2400 11.059 -12F4h 2400 2400 11.059 1 -24E8h 2400 1200 11.059 -24E8h 1200 1200 11.059 1 -48D0h 1200

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 tegangan yang ditentukan untuk RS 232 tidak ada hubungannya dengan level tegangan TTL. Beberapa parameter yang ditetapkan oleh EIA Electronics Industry Association antara lain: • Logika “0” Low antara tegangan +3 V sd +25 V • Logika “1” High antara tegangan -3 V sd -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 Tabel 2.6 Pin Pada DB 9 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 TTLCMOS 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 driverreceiver 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 TTLCMOS 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 TTLCMOS menjadi level tegangan RS232. Dalam satu chip MAX232 terdapat dua 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 Dalam pemrograman Visual Basis banyak istilah dan konsep untuk menyebut sesuatu yang membentuk sebuah aplikasi. Istilah- istilah tersebut memiliki arti yang sama dalam lingkungan pemrograman Visual lainnya, seperti misalnya Objek, Property dan Event. Defenisi objek adalah sesuatu yang dapat melakukan hal- hal tertentu. Dalam Visual Basic contoh dari objek adalah, Command Button, Label, List Box, Chek Box, dan lain- lain. Atau dapat dikatakan Objek adalah komponen- komponen yang membuat aplikasi. Dalam lingkungan pengembangan Visual, sekarang objek yang dibuat dapat langsung ditampilkan dilayar. Objek yang dibuat tersebut akan sama hasilnya pada saat program dijalankan, dengan demikian tidak perlu lagi melakukan perubahan kode program secara 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 :