6 BAB II DASAR TEORI 2.1 Port Serial Secara Umum Komunikasi serial ialah pengiriman data secara serial (data dikirim satu persatu secara berurutan), sehingga komunikasi serial jauh lebih lambat daripada komunikasi paralel.. Serial port lebih sulit ditangani karena peralatan yang dihubungkan ke serial port harus berkomunikasi dengan menggunakan transmisi serial, sedang data di komputer diolah secara paralel. Oleh karena itu data dari dan ke serial port harus dikonversikan ke dan dari bentuk paralel untuk bisa digunakan. Menggunakan hardware, hal ini bisa dilakukan oleh Universal Asyncronous Receiver Transmimeter (UART), kelemahannya kita butuh software yang menangani register UART yang cukup rumit dibanding pada parallel port.Kelebihan dari komunikasi serial ialah panjang kabel jauh dibanding parallel. Pada UART, kecepatan pengiriman data (baud rate) dan fase clock pada sisi transmitter dan pada sisi receiver harus sinkron. Untuk itu diperlukan diperlukan sinkronisasi antara transmitter dan receiver. Hal ini dilakukan oleh bit ‘Start’ dan bit ‘Stop’. Kecepatan transmisi (baudrate) dapat dipilih bebas dalam rentang tertentu. Baudrate yang umum dipakai adalah 600, 1200, 2400, dan 9600 bps (bit per sekon). 7 2.1.1 Karekteristik Sinyal Serial Port Standar sinyal komunikasi serial yang banyak digunakan ialah standar RS232. Standar ini hanya menyangkut komunikasi data antara komputer (Data Terminal Equipment – DTE) dengan alat – alat pelengkap komputer (Data Circuit-Terminating Equipment – DCE). Standarad RS232 inilah yang biasa digunakan pada serial port IBM PC Compatibel. Standar sinyal serial RS232 memiliki ketentuan level tegangan sebagai berikut: 1. Logika ‘1’ disebut ‘mark’ terletak antara -3 volt hingga -25 volt. 2. Logika ‘0’ disebut ‘space’ terletak antara +3 volt hingga +25 volt. 3. Daerah tegangan antara -3 volt hingga +3 volt adalah invalid level, yaitu daerah tegangan yang tidak memiliki level logika pasti sehingga harus dihindari. Demikian juga level tegangan lebih negatif dari -25 volt atau lebih positif dari +25 volt juga harus dihindari karena dapat merusak line driver pada saluran RS232. 2.1.2 Konfigurasi Serial Port. Gambar 2.1 Port Serial 8 Gambar diatas adalah gambar konektor c DB 9. Pada komputer IBM PC Compatibel biasanya kita dapat menemukan dua konektor DB 9 yang bisanya dinamakan COM1 dan COM2. Tabel 2.1 Konfigurasi pin dan nama sinyal konektor serial DB 9 Keterangan mengenai fungsi saluran RS232 pada konektor DB9 adalah sebagai berikut: 1. Received Line Signal Detect Pada saluran ini DCE memberitahukan ke DTE bahwa pada terminal masukan ada data masuk. 2. Receive Data Digunakan DTE untuk menerima data dari DCE. 3. Transmitted Data Digunakan DTE untuk mengirimkan data ke DCE. 4. Data terminal Ready Pada saluran ini DTE memberitahukan kesiapan terminalnya. 5. Signal Ground Saluran Ground. 9 6. DCE Ready Sinyal aktif pada saluran ini menunjukkan bahwa DCE sudah siap. 7. Reques To Send Pada saluran ini DCE diminta mengirim data oleh DTE. 8. Clear to Send Pada saluran ini memberitahukan bahwa DTE boleh mulai mengirimkan data. 9. Ring Indicator Pada saluran ini DCE memberitahu ke DTE bahwa sebuah stasiun menghendaki hubungan dengannya. 2.1.3 Pengalamatan Port Serial Alamat standar serial port adalah sebagaimana tampak dalam Tabel dibawah. Hal ini masih dengan catatan bahwa mungkin ada komputer yang memiliki alamat port dan IRQ yang berbeda dengan alarnat di bawah ini, misalnya pada komputer PS/2 yang menggunakan Micro Channel Bus. Tabel 2.2 Beberapa Alamat Port Pada PC ADDRESS 000H-00FH 010H-01FH 020H-023H 040H-043H 060H-064H 080H-083H 0A0H-0AFH 0E0H-0FFH 1F0H-1F8H 200H-20FH 210H-217H 220H-24FH 278H-27FH PORT Direct Memoy Acces Controller #1 Angka test dari pabrik 8259 Interupt Controller 8253 Timer Programable Peripheral Interface Direct Memory Acces Controller Page Register Nonmasable Comprosessor Usage At Fixed Disket Interface Game Controller Expantion Unit Kosong (Reserved) LPT 3 COM 4 10 2E8H-2EFH 0F0H-2F7H 300H-30FH 320H-32FH 378H-37FH 380H-38CH 3A0H-3A9H 3B0H-3BBH 3BCH-3BFH 3C0H-3CFH 3D0H-3DFH 3E0H-3E7H 3F0H-3F7H 3F8H-3FFH 2.2 Kosong (Reserved) COM 2 Protype Card At Fixed Disk Interface LPT 2 SDLC/Secondary Bisyne Interface Primary Bi-Syne Interface Monocrome DISPLAY LPT 1 EGA display Controller Color/Grafik Display COM 3 Floppy Disk Contrroller COM 1 Konverter Logika RS-232 Jika peralatan yang kita gunakan menggunakan logika TTL maka sinyal serial port harus kita konversikan dahulu ke pulsa TTL sebelum kita gunakan, dan sebaliknya sinyal dari peralatan kita harus dikonversikan ke logika RS-232 sebelum di-inputkan ke serial port. Konverter yang paling mudah digunakan adalah MAX232. Di dalam IC ini terdapat Charge Pump yang akan membangkitkan +10 Volt dan -10 Volt dari sumber +5 Volt tunggal. Dalam IC DIP (Dual In-line Package) 16 pin (8 pin x 2 baris) ini terdapat 2 buah transmiter dan 2 receiver. Gambar 2.2 IC MAX 232 2.3 Mikrokontroller Mikrokontroler, sebagai suatu terobosan teknologi mikroprosesor dan mikrokomputer, hadir memenuhi kebutuhan pasar (market need) dan teknologi baru. 11 Sebagai teknologi baru, yaitu teknologi semikonduktor dengan kandungan transistor yang lebih banyak namun hanya membutuhkan ruang yang kecil serta dapat diproduksi secara masal (dalam jumlah banyak) membuat harganya menjadi lebih murah (dibandingkan mikroprosesor). Sebagai kebutuhan pasar, mikrokontroler hadir untuk memenuhi selera industri dan para konsumen akan kebutuhan dan keinginan alat-alat bantu bahkan mainan yang lebih baik dan canggih. Adapun kelebihan dari mikrokontroller adalah sebagai berikut : 1. Penggerak pada mikrokontoler menggunakan bahasa pemograman assembly dengan berpatokan pada kaidah digital dasar sehingga pengoperasian sistem menjadi sangat mudah dikerjakan sesuai dengan logika sistem (bahasa assembly ini mudah dimengerti karena menggunakan bahasa assembly aplikasi dimana parameter input dan output langsung bisa diakses tanpa menggunakan banyak perintah). Desain bahasa assembly ini tidak menggunakan begitu banyak syarat penulisan bahasa pemrograman seperti huruf besar dan huruf kecil untuk bahasa assembly tetap diwajarkan. 2. Mikrokontroler tersusun dalam satu chip dimana prosesor, memori, dan I/O terintegrasi menjadi satu kesatuan kontrol sistem sehingga mikrokontroler dapat dikatakan sebagai komputer mini yang dapat bekerja secara inovatif sesuai dengan kebutuhan sistem. 3. Sistem running bersifat berdiri sendiri tanpa tergantung dengan komputer sedangkan parameter komputer hanya digunakan untuk download perintah instruksi atau program. Langkah-langkah untuk download komputer dengan mikrokontroler sangat mudah digunakan karena tidak menggunakan banyak perintah. 12 4. Pada mikrokontroler tersedia fasilitas tambahan untuk pengembangan memori dan I/O yang disesuaikan dengan kebutuhan sistem. 5. Harga untuk memperoleh alat ini lebih murah dan mudah didapat. 2.3.1 Mikrokontroler AT89S51 Gambar 2.3 Mikrokontroler AT89S51 Mikrokontroler AT89S51 memiliki pin berjumlah 40 dan umumnya dikemas dalam DIP (Dual Inline Package). Masing-masing pin pada mikrokontroler AT89S51 mempunyai kegunaan sebagai berikut: Port 0 Port 0 merupakan port dua fungsi yang berada pada pin 32-39 dari AT89S51. Dalam rancangan sistem sederhana port ini sebagai port I/O serbaguna. Untuk rancangan yang lebih komplek dengan melibatkan memori eksternal jalur ini dimultiplek untuk bus data dan bus alamat. 13 Port 1 Port 1 disediakan sebagai port I/O dan berada pada pin 1-8. Beberapa pin pada port ini memiliki fungsi khusus yaitu P1.5 (MOSI), P1.6 (MISO), P1.7 (SCK) yang digunakan untuk jalur download program. Port 2 Port 2 ( pin 21-28 ) merupakan port dua fungsi yaitu sebagai I/O serbaguna, atau sebagai bus alamat byte tinggi untuk rancangan yang melibatkan memori eksternal. Port 3 Port 3 adalah port dua fungsi yang berada pada pin 10-17, port ini memiliki multi fungsi, seperti yang terdapat pada tabel berikut ini : Tabel 2.3 Fungsi Port pada Mikrokontroler AT89S51 Bit Nama P3.0 RXD Fungsi Alternatif Port input serial P3.1 TXD Port output serial P3.2 INT0 P3.3 INT1 P3.4 T0 P3.5 T1 P3.6 WR P3.7 RD Interupsi eksternal 0 Interupsi eksternal 1 Input Eksternal waktu/pencacah 0 Input Eksternal waktu/pencacah 1 Jalur menulis memori data eksternal Jalur membaca memori data eksternal 14 PSEN (Program Store Enable) PSEN adalah sebuah sinyal keluaran yang terdapat pada pin 29. Fungsinya adalah sebagai sinyal kontrol untuk memungkinkan mikrokontroler membaca program (code) dari memori eksternal. Biasanya pin ini dihubungkan ke pin OE EPROM. Jika eksekusi program dari ROM internal atau dari flash memori (ATMEL AT89SXX), maka PSEN berada pada kondisi tidak aktif (high). ALE (Address Latch Enable) Sinyal output ALE yang berada pada pin 30 fungsinya sama dengan ALE pada microprocessor INTEL 8085, 8088 atau 8086. Sinyal ALE dipergunakan untuk demultiplek bus alamat dan bus data. Sinyal ALE membangkitkan pulsa sebesar 1/6 frekuensi oscillator dan dapat dipakai sebagai clock yang dapat dipergunakan secara umum. EA (External Access) Masukan sinyal EA terdapat pada pin 31 yang dapat diberikan logika rendah (ground) atau logika tinggi (+5V). Jika diberikan logika tinggi maka mikrokontroler akan mengakses program dari ROM internal (EPROM/flash memori). Jika diberi logika rendah maka mikrokontroler akan mengakses program dari memori eksternal. RST (Reset) Input reset pada pin 9 adalah reset master untuk AT89S51. Pulsa transisi dari tinggi selama 2 siklus ke rendah akan mereset mikrokontroler. Oscillator Oscillator yang disediakan pada chip dikemudikan dengan XTAL yang dihubungkan pada pin 18 dan pin 19. Diperlukan kapasitor penstabil sebesar 30 15 pF. Besar nilai XTAL sekitar 3 MHz sampai 33 MHz. XTAL1 adalah input ke pembalikan penguat osilator (inverting oscillator amplifier) dan input ke clock internal pengoperasian rangkaian. Sedangkan XTAL2 adalah output dari pembalikan penguat osilator. Power AT89S51 dioperasikan pada tegangan supply +5v, pin Vcc berada pada nomor 40 dan Vss (ground) pada pin 20. 2.4 Limit Swich Limit Switch adalah sensor peraba yang bersifat mekanis dan mendeteksi sesuatu setelah terjadi kontak fisik. Umumnya limit switch digunakan untuk mengetahui ada tidaknya suatu obyek di lokasi tertentu. Limit switch akan aktif jika mendapatkan sentuhan atau tekanan dari suatu benda fisik.Penggunaan sensor ini biasanya juga digunakan untuk membatasi gerakan maksimum sebuah mekanik. Contohnya pada penggerak lengan di mana limit switch akan aktif dan memberikan masukan pada CPU untuk menghentikan gerak motor di saat lengan sudah ditarik maksimum. Sensor ini juga seringkali digunakan untuk sensor cadangan bilamana sensor yang lain tidak berfungsi. Gambar 2.4 Limit Swich 16 2.5 Motor DC Motor listrik termasuk kedalam kategori mesin listrik dinamis dan merupakan sebuah perangkat elektromagnetik yang mengubah energi listrik menjadi energi mekanik. Motor DC/arus searah, sebagaimana namanya, menggunakan arus langsung yang tidak langsung/direct-unidirectional. Motor DC digunakan pada penggunaan khusus dimana diperlukan penyalaan torsi yang tinggi atau percepatan yang tetap untuk kisaran kecepatan yang luas. Keuntungan utama motor DC adalah kecepatannya mudah dikendalikan dan tidak mempengaruhi kualitas pasokan daya. Motor DC ini dapat dikendalikan dengan mengatur: • Tegangan dinamo – meningkatkan tegangan dinamo akan meningkatkan kecepatan. • Arus medan – menurunkan arus medan akan meningkatkan kecepatan. Motor DC tersedia dalam banyak ukuran, namun penggunaannya pada umumnya dibatasi untuk beberapa penggunaan berkecepatan rendah, penggunaan daya rendah hingga sedang, seperti peralatan mesin dan rolling mills, sebab sering terjadi masalah dengan perubahan arah arus listrik mekanis pada ukuran yang lebih besar. Juga, motor tersebut dibatasi hanya untuk penggunaan di area yang bersih dan tidak berbahaya sebab resiko percikan api pada sikatnya. Motor DC juga relatif mahal dibanding motor AC. 17 2.6 Sistem Digital 2.6.1 Sistim Bilangan Digital Banyak sistem-sistem bilangan yang digunakan pada teknologi digital. Yang paling umum adalah sitem-sistem biner, desimal, biner, oktal dan heksa desimal. Sistim bilangan biner dan sistem bilangan heksa desimal yang paling sering dipergunakan dalam bilangan digital. 1. Bilangan Biner Pada sistem biner hanya ada dua simbol atau nilai digit yang mungkin, 0 dan 1. Meskipun demikian, dasar-dasar system ini dapat digunakan untuk menyatakan setiap kuantitas yang dapat dinyatakan dalam desimal atau sistem bilangan lain. Meskipun pada umumnya, akan memerlukan digit-digit bilangan biner yang lebih banyak untuk menyatakan suatu kuantitas tertentu. Sistem biner merupakan suatu sistem nilai-posisional, dimana tiap-tiap digit biner mempunyai nilainya sendiri atau bobot yang dinyatakan sebagai pangkat 2. 26 25 24 23 22 21 20 2-1 2-2 2-3 2-4 2-5 2-6 0 0 1 0 1 1 1 0 1 0 0 0 0 (0 x 26 ) + (0 x 25 ) + (1 x 24) + (0 x 23) + (1 x 22) + (1 x 21) + (0 x 20 ) + (0 x 2-1) + (1 x 2-2) + (0 x 2-3) + (0 x 2-4 ) + (0 x 2-5 ) + (0 x 2-6) 18 2. Bilangan Heksadesimal Sistem heksa desimal menggunakan dasar 16. Jadi memiliki 16 kemungkinan simbol digit. Sistem ini menggunakan digit-digit 0-9 plus huruphurup A,B,C,D,E dan F sebagai ke enambelas digitnya. Tabel 2.4 Hubungan bilangan heksadesimal, desimal dan biner Heksadesimal 0 1 2 3 4 5 6 7 8 9 A B C D E F Desimal 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Biner 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1101 3. Mengubah Bilangan Biner Ke Heksadesimal Konversi antara heksadesimal dan biner dilakukan dengan cara menggrupgrupkan dari empat bitnya contoh : 01110100110 = 0011 3 = 1010 A 0110 6 3A6 2.7 Visual Basic Visual basic pada dasarnya sebuah bahasa pemrograman komputer. Bahasa pemrograman adalah perintah-perintah atau intruksi yang dimengerti untuk melakukan tugas-tugas tetentu. Visual Basic kini seakan-akan menjadi 19 panduan bagi para software developer, dan menjadi salah satu bahasa yang wajib dipelajari oleh berbagai kalangan, jika mereka ingin sukses di dunia komputer. Visual Basic merupakan salah satu bahasa pemrograman paling terkenal tetapi juga paling mudah dan menyenangkan. Walaupun anda tidak memiliki keahlian pemrograman sebelumnya, jika anda mampu menjelajahi Windows dengan baik. Anda segera dapat dengan mudah mengembangkan aplikasi dengan visual basic. Bahkan keahlian dasar yang dibutuhkan di dalam visual basic hanyalah mengklik mose, mengatur jendela, dan memilih-milih menu saja. Kesimpulannya, Visual basic adalah sebuah sarana pembuat program yang lengkap namun mudah. Siapapun yang mampu menggunakan windows, IA pasti bisa membuat program dengan Visual Basic. Anda hanya perlu tahu menggunakan mouse, memanipulasi jendela, serta logika pemograman untuk membuat sebuah aplikasi Visual Basic. Gambar 2.5 Ruang Lingkup Visual Basic 2.7.1 Operasi Input Port dan Output Port pada Visual Basic Dalam mengakses hardware, PC memerlukan perintah atau komando khusus. Baik itu mengambil data hardware (read) maupun mengeluarkan data dari 20 hardware(write). Perintah untuk operasi ini merupaka perintah yang berhubungan langsung dengan hard ware. Sehingga diperlukan ketelitian ujntuk mengunakannya. Operasi dapat juga disebut sebagai operasi input port (read) dan output Port (write). Berikut akann dibahas operasi input/output port pada pemprograman visual basic. 2.7.2 Masalah Fungsi dan Outport pada Visual Basic Visual Basic tidak meyertakan fungsi operasi akses terhadap port perangkat keras (hardware) secara langsung, seperti fungsi INP dan Output pada Qbasic ataupun fungsi import dan outport pada Turbo C. Karena akses perangkat keras yang unum seperti eybord, mouse,harddisk, dan disk drive dan lain-lain sudah sisertakan di Visual basic. Hal ini duirasa sangatkrusial bagi para pengguna PC dan sebagai pemrograman yang sering berhubungan dengan perangkat keras. Tanpa fungsi ini tentu tidak dilakukan akses pembacaan maupun akses pengiriman terhadap alat keluaran (device ) yang kita buat. Cara mengatasi hal ini adalah dengan carea menggunakan Dynamically Linked Libtary (DLL). DLL membuat visual basic dapat melakukan fungsi yang dibuatr pada bahasa pemprograman lain, seperti visual C++ ataupun Borland Delphi yang membuat fungsi akses port I/O (fungsi membaca dan menulis pada hardware) seperti pada C++, fungsi output untuk menulis fungsi input untuk membaca Port I/O. Bila diperhatikan, Teknik DLL hampir sama dengan teknik penggunaan File header padqa turbo C, seperti kenyataan <#include stdio.h> dimana pada saat program dijalankan program terlebihdahu mebaca fungsi-fungsi yang tersimpan pada file tersebuat. 21 2.7.3 Tipe-tipe Data Tipe-tipe data yang terdapat pada Visual Basic diantaranya : 1. Integer Tipe data numeric yang berupa bilangan bulat (tanpa pecahan). Kisaran mulai daari –32.768 hingga 32.767. 2. Byte Tipe data yang berupa nilai ulat positif ( tanpa pecahan ). Kisarannya mulai dari 0-255. 3. Decimal Tipe data yang digunakan untuk menyimpan nilai desimal (pecahan) dengan ketetapan hingga 28 angka desimal. 4. Boolean Tipe data yang hanya memiliki dua buah nilai yaitu TRUE atau FALSE ( Benar atau Salah). Tipe data ini biasanya digunakan untuk memilih salah satu dari dua pilihan seperti ya/tidak, pria/wanita dan sebagainya. 5. String Tipe data yang memiliki nilai alfanumerik, yaitu nilai yang bisa berupa huruf, angka atau karakter khusus. Contohnya : “ Cintaku”.”123.45,”,”Tekan tombol” 6. Single Tipe data numeric yang memiliki kisaran nilai mulai daari –3.402823E+38 hingga 3.402823E+38. Tipe data ini juga sering disebut Single Precision atau bilangan berpresisi tunggal. 7. Double 22 Tipe data numeric yang memiliki kisaran nilai yang sangat besar, mulai dari 1.79769313486232E+308. Tipe data ini juga sering disebut Double Precision atau bilangan berpresisi ganda. 8. Date Tipe data yang digunakan untuk menyimpan nilai tanggal dan jam. Nilainya berkisar dari 1 januari 100 hingga 31 Desember 9999. 9. Currency Tipe data yang digunakan untuk menyempan nilai uang (dalam dollar atau dalam jenis mata uang yang digunakan komputer anda )> Tipe data ini memiliki nilai yang berkisar mulai dari 922.337.23.685.477,5808 sampai 922.337.203.685.477,5807. 10. Long Tipe data numeric yang mirip dengan integer, hanya saja kisarnnya jauh lebih besar yaitu dari –2.147.483.647. Tipe data ini membutuhkan memori yang cukup besar, jadi gunakan apabila perlu saja. 11. Object Tipe data yang menyimpan objek seperti form, kontrol, dan sebagainya. 12. Variant Tipe data yang bisa berisi segala macam tipe data yang berbeda. Biasanya digunakan jika anda tidak mengetahui jenis data yang digunakan. Secara otomatis Visual Basic menugaskan tipe data ini pada setiap kontrol yang dibuat kedalam 23 aplikasi. Anda bisa tetap menggunakan tipe data ini atau mengubahnya agar memakai tipe data tertentu. 2.7.4 Loop dan Kondisi 1. If If digunakan untuk membandingkan suatu kondisi tertentu. Jka kondisi tersebut benar, maka akan dijalankan ekspresi tertentu. Tetapi jika kondisi tersebut salah, ekspresi didalam If tidak akan dijalankan, dan blok If akan dilompati. Sintaks dari pernyataan If adalah sebagai berikut : If ( kondisi ) Then … ekspresi … End If Keterangan : • Kondisi : kondisi yang dibandingkan kebenarannya. • Ekspresi : kode-kode program yang akan dijalankan jika kondisi memenuhi syarat ( bernilai True ). 2. If Else Kondisi If Else sebenarnya hampir sama dengan If, hanya saja pada If Else Anda bisa menentukan ekspresi lain yang akan dieksekusikan jika kondisi yang dibandingkan oleh If tidak memenuhi syarat. Sintaks dari pernyataan If adalah sebagai berikut: 24 If ( kondisi ) Then … ekspresi-1… Else …ekspresi-2… End If • Kondisi = Kondisi yang dibandingkan. • Ekspresi –1 = kode-kode program yang dijalankan jika kondisi yang dibandingkan oleh If memenuhi syarat (bernilai True). • Ekspresi-2 = kode-kode program yang akan dijalankan jika kondisi yang dibandingkan olleh If tidak memenuhi syarat (bernilai False). 3. Select Case Selact Case digunakan untuk melakukan pemilihan kondisi yang jumlahnya banyak atau bertingkat-tingkat. Walaupun pernyataan If juga dapat digunakan untuk melakukan pemilihan banyak kondisi tetapi hasil program tidak akan seselektif dengan menggunakan Select Case. Sintaks dari pernyataan Select Case adalah sebagai berikut : Select Case ekspresi Case nilai : …ekspresi-1… Case nilai : …ekspresi-2… Case nilai : …ekspresi-3… End Selec