BAB 2 TINJAUAN PUSTAKA 2.1. Perangkat Keras 2.1.1. Mikrokontroler AT89S51 Mikrokontroler sebagai suatu terobosan teknologi mikrokontroler dan mikrokomputer, hadir memenuhi kebutuhan pasar (market need) dan teknologi baru. Sebagai teknologi baru, yaitu teknologi semikonduktor dengan kandungan transistor yang lebih banyak namun hanya membutuhkan ruang kecil serta dapat diproduksi secara massal (dalam jumlah banyak) sehingga harga menjadi lebih murah (dibandingkan mikroprosesor). Sebagai kebetuhan pasar, mikrokontroler hadir untuk memenuhi selera industri dan para konsumen akan kebutuhan dan keinginan alat-alat bantu dan mainan yang lebih canggih. Ilustrasi yang mungkin bisa memberikan gambaran yang jelas dalam penggunaan mikrokontroler adalah aplikasi mesin tiket dalam arena permainan yang saat ini terkenal di Indonesia. Jika kita sudah selesai bermain, maka akan diberikan suatu nilai, nilai inilah yang menentukan berapa jumlah tiket yang bisa diperoleh dan jika dikumpulkan dapat ditukar dengan berbagai macam hadiah. Sistem tiket ini ditangani dengan mikrokontroler, karena tidak mungkin menggunakan komputer PC yang harus dipasang di samping (atau di belakang) mesin permainan yang bersangkutan. Selain sistem tiket, kita juga dapat menjumpai aplikasi mikrokontroler dalam bidang pengukuran jarak jauh atau yang dikenal dengan sistem telemetri. Misalnya pengukuran disuatu tempat yang membahayakan manusia, maka akan lebih nyaman jika dipasang suatu sistem pengukuran yang bisa mengirimkan data lewat pemancar dan diterima oleh stasiun pengamatan dari jarak yang cukup aman dari sumbernya. Sistem pengukuran jarak jauh ini jelas membutuhkan suatu sistem akuisisi data sekaligus sistem pengiriman data secara serial (melalui pemancar), yang semuanya itu bisa diperoleh dari mikrokontroler yang digunakan. Universitas Sumatera Utara Tidak seperti sistem komputer, yang mampu menangani berbagai macam program aplikasi (misalnya pengolah kata, pengolah angka dan lain sebagainya), mikrokontroler hanya bisa digunakan untuk satu aplikasi tertentu saja. Perbedaan lainnya terletak pada perbandingan RAM dan ROM-nya. Pada sistem komputer RAM dan ROM-nya besar. Sedangkan pada mikrokontroler ROM dan RAM-nya terbatas. Pada mikrokontroler AT89S51 ROM atau flash PEROM berukuran 2 kilo byte, sedangkan RAM-nya berukuran 128 byte. 2.1.2. Kontruksi AT89S51 Mikrokontrol AT89S51 hanya memerlukan tambahan 3 kapasitor, 1 resistor dan 1 kristal serta catu daya 5 Volt. Kapasitor 10 mikro-Farad dan resistor 10 kilo ohm dipakai untuk membentuk rangkaian reset. Dengan adanya rangkaian reset ini AT89S51 otomatis direset begitu rangkaian menerima catu daya. Kristal dengan frekuensi maksimum 24 MHz dan kapasitor 30 piko-Farad dipakai untuk melengkapi rangkaian oscilator pembentuk clock yang menentukan kecepatan kerja mikrokontroler. Memori merupakan bagian yang sangat penting pada mikrokontroler. Mikrokontroler memiliki dua macam memori yang sifatnya berbeda. Read Only Memory (ROM) yang isinya tidak berubah meskipun IC kehilangan catu daya. Sesuai dangan keperluannya, dalam susunan MCS-51 memori penyimpanan progam ini dinamakan sebagai memori progam. Random Access Memori (RAM) isinya akan sirna begitu IC kehilangan catu daya, dipakai untuk menyimpan data pada saat progam bekerja. RAM yang dipakai untuk menyimpan data ini disebut sebagai memori data. Ada berbagai jenis ROM. Untuk mikrokontroler dengan progam yang sudah baku dan diproduksi secara masal, progam diisikan ke dalam ROM pada saat IC mikrokontroler dicetak di pabrik IC. Untuk keperluan tertentu mikrokontroler mengunakan ROM yang dapat diisi ulang atau Programble-Eraseable ROM yang disingkat menjadi PEROM atau PROM. Dulu banyak dipakai UV-EPROM (Ultra Violet Eraseable Progamble ROM) yang kemudian dinilai mahal dan ditinggalkan setelah ada flash PEROM yang harganya jauh lebih murah. Universitas Sumatera Utara Jenis memori yang dipakai untuk Memori Program AT89S51 adalah Flash PEROM, program untuk mengendalikan mikrokontroler diisikan ke memori itu lewat bantuan alat yang dinamakan sebagai AT89S51 Flash PEROM Programmer. Memori Data yang disediakan dalam chip AT89S51 sebesar 128 byte, meskipun hanya kecil saja tapi untuk banyak keperluan memori kapasitas itu sudah cukup. Sarana Input/Ouput yang disediakan cukup banyak dan bervariasi. AT89S51 mempunyai 32 jalur Input/Ouput. Jalur Input/Ouput paralel dikenal sebagai Port 1 (P1.0..P1.7) dan Port 3 (P3.0..P3.5 dan P3.7). AT89S51 dilengkapi UART (Universal Asyncronous Receiver/Transmiter) yang biasa dipakai untuk komunikasi data secara seri. Jalur untuk komunikasi data seri (RXD dan TXD) diletakan berhimpitan dengan P3.0 dan P3.1 di kaki nomor 10 dan 11, sehingga kalau sarana input/ouput yang bekerja menurut fungsi waktu. Clock penggerak untaian pencacah ini bisa berasal dari oscillator kristal atau clock yang diumpan dari luar lewat T0 dan T1. T0 dan T1 berhimpitan dengan P3.4 dan P3.5, sehingga P3.4 dan P3.5 tidak bisa dipakai untuk jalur input/ouput parelel kalau T0 dan T1 dipakai. AT89S51 mempunyai enam sumber pembangkit interupsi, dua diantaranya adalah sinyal interupsi yang diumpankan ke kaki INT0 dan INT1. Kedua kaki ini berhimpitan dengan P3.2 dan P3.3 sehingga tidak bisa dipakai sebagai jalur input/output parelel kalau INT0 dan INT1 dipakai untuk menerima sinyal interupsi. Port1 dan 2, UART, Timer 0,Timer 1 dan sarana lainnya merupakan register yang secara fisik merupakan RAM khusus, yang ditempatkan di Special Functoin Regeister (SFR). 2.1.3. SFR (Register Fungsi Khusus ) Pada Keluarga 51 Sekumpulan SFR atau Special Function Register yang terdapat pada Mikrokontroler Atmel Keluarga 51 ditunjukan pada tabel 2.1, pada bagian sisi kiri dan kanan dituliskan alamat-alamatnya dalam format heksadesimal. 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 Universitas Sumatera Utara 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: Tabel 2.1. Peta Register Fungsi Khusus – SFR (Special Function Register) Akumulator ACC atau akumulator yang menempati lokasi E 0h digunakan sebagai register untuk penyimpanan data sementara, dalam program, instruksi mengacunya sebagai register A (bukan ACC). Register B Register B (lokasi D 0h) digunakan selama operasi perkalian dan pembagian, untuk instruksi lain dapat diperlakukan sebagai register scratch pad (“papan coret-coret”) lainnya. Program Status Word (PSW) Register PSW (lokasi D 0h) mengandung informasi status program. Universitas Sumatera Utara Stack Pointer Register SP atau Stack Pointer (lokasi 8 1h) merupakan register dengan panjang 8-bit, digunakan dalam proses simpan menggunakan instruksi PUSH dan CALL. Walau Stack bisa menempati lokasi dimana saja dalam RAM, register SP akan selalu 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 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 AT89C52/55), TH2 dan TL2 disalin masing-masing ke RCAP2H dan RCAP2L. Timer 2 juga Universitas Sumatera Utara 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. Berikut ini merupakan spesifikasi dari IC AT89S51 : Kompatible dengan produk MCS-51 Empat K byte In-Sistem Reprogammable Flash Memory Daya tahan 1000 kali baca/tulis Tegangan kerja 4,0 volt sampai 5,5 volt Fully Static Operation : 0 Hz sampai 33 MHz Tiga level kunci memori progam 128 x 8 – bit RAM internal 32 jalur input/output (I/O) Dua 16 bit Timer/Counter Enam sumber interupt Jalur serial dengan UART 2.1.4. Gambar IC Mikrokontroler AT89S51 Gambar IC mikrokontroler AT89S51 ditunjukkan pada gambar 2.1 di bawah ini: Gambar 2.1 IC Mikrokontroler AT89S51 Universitas Sumatera Utara Deskripsi pin-pin pada mikrokontroler AT89S51 : VCC (Pin 40) Suplai tegangan GND (Pin 20) Ground Port 0 (Pin 39 – pin 32) Port 0 dapat berfungsi sebagai I/O biasa, low order multiplex address/data ataupun penerima kode byte pada saat flash progamming Pada fungsi sebagai I/O biasa port ini dapat memberikan output sink ke delapan buah TTL input atau dapat diubah sebagai input dengan memberikan logika 1 pada port tersebut. Pada fungsi sebagai low order multiplex address/data, port ini akan mempunyai internal pull up. Pada saat flash progamming diperlukan eksternal pull up, terutama pada saat verifikasi program. Port 2 (Pin 21 – pin 28) Port 2 berfungsi sebagai I/O biasa atau high order address, pada saat mengakse memori secara 16 bit. Pada saat mengakses memori 8 bit, port ini akan mengeluarkan isi dari P2 special function register. Port ini mempunyai internal pull up dan berfungsi sebagai input dengan memberikan logika 1. Sebagai output, port ini dapat memberikan output sink ke keempat buah input TTL. Port 3 (Pin 10 – pin 17) Port 3 merupakan 8 bit port I/O dua arah dengan internal pull up. Port 3 juga mempunyai fungsi pin masing-masing, yaitu sebagai berikut : Tabel 2.2 Fungsi Pin pada Port 3 Nama pin Fungsi P3.0 (pin 10) RXD (Port input serial) P3.1 (pin 11) TXD (Port output serial) P3.2 (pin 12) INT0 (interrupt 0 eksternal) P3.3 (pin 13) INT1 (interrupt 1 eksternal) P3.4 (pin 14) T0 (input eksternal timer 0) P3.5 (pin 15) T1 (input eksternal timer 1) P3.6 (pin 16) WR (menulis untuk eksternal data memori) P3.7 (pin 17) RD (untuk membaca eksternal data memori) Universitas Sumatera Utara RST (pin 9) Reset akan aktif dengan memberikan input high selama 2 cycle. ALE/PROG (pin 30) Address latch Enable adalah pulsa output untuk me-latch byte bawah dari alamat selama mengakses memori eksternal. Selain itu, sebagai pulsa input progam (PROG) selama memprogram Flash. PSEN (pin 29) Program store enable digunakan untuk mengakses memori progam eksternal. EA (pin 31) Pada kondisi low, pin ini akan berfungsi sebagai EA yaitu mikrokontroler akan menjalankan progam yang ada pada memori eksternal setelah sistem direset. Jika kondisi high, pin ini akan berfungsi untuk menjalankan progam yang ada pada memori internal. Pada saat flash programming, pin ini akan mendapat tegangan 12 Volt. XTAL1 (pin 19) Input untuk clock internal. XTAL2 (pin 18) Output dari osilator. 2.2. Perangkat Lunak 2.2.1. Instruksi – Instruksi AT89S51 Beberapa instruksi yang sering digunakan dalam pemrograman IC mikrokontroler AT89S51 antara lain adalah: 1. Instruksi MOV Perintah ini merupakan perintah untuk mengisikan nilai ke alamat atau register tertentu. Pengisian nilai dapat secara langsung atau tidak langsung. Contoh pengisian nilai secara langsung MOV R0,#20h Perintah di atas berarti : isikan nilai 20 Heksadesimal ke register 0 (R0). Tanda # sebelum bilangan menunjukkan bahwa bilangan tersebut adalah nilai. Contoh pengisian nilai secara tidak langsung Universitas Sumatera Utara MOV 20h,#80h ........... ............ MOV R0,20h Perintah di atas berarti : isikan nilai yang terdapat pada alamat 20 Heksadesimal ke register 0 (R0). Tanpa tanda # sebelum bilangan menunjukkan bahwa bilangan tersebut adalah alamat. 2. Instruksi DJNZ Decreament Jump If Not Zero (DJNZ) ini merupakan perintah untuk mengurangi nilai register tertentu dengan 1 dan lompat jika hasil pengurangannya belum nol. Contoh , MOV R0,#80h Loop: ........... ............ DJNZ R0,Loop ............ R0 -1, jika belum 0 lompat ke loop, jika R0 = 0 maka program akan meneruskan ke perintah pada baris berikutnya. 3. Instruksi ACALL Instruksi ini berfungsi untuk memanggil suatu rutin tertentu. Contoh : ............. ACALL TUNDA ............. TUNDA: ................. 4. Instruksi RET Instruksi RETURN (RET) ini merupakan perintah untuk kembali ke rutin pemanggil setelah instruksi ACALL dilaksanakan. Contoh, ACALL TUNDA Universitas Sumatera Utara ............. TUNDA: ................. RET 5. Instruksi JMP (Jump) Instruksi ini merupakan perintah untuk lompat ke alamat tertentu. Contoh, Loop: ................. .............. JMP Loop 6. Instruksi JB (Jump if bit) Instruksi ini merupakan perintah untuk lompat ke alamat tertentu, jika pin yang dimaksud berlogika high (1). Contoh, Loop: JB P1.0,Loop ................. 7. Instruksi JNB (Jump if Not bit) Instruksi ini merupakan perintah untuk lompat ke alamat tertentu, jika pin yang dimaksud berlogika Low (0). Contoh, Loop: JNB P1.0,Loop ................. 8. Instruksi CJNE (Compare Jump If Not Equal) Instruksi ini berfungsi untuk membandingkan nilai dalam suatu register dengan suatu nilai tertentu. Contoh, Loop: ................ CJNE R0,#20h,Loop ................ Universitas Sumatera Utara Jika nilai R0 tidak sama dengan 20h, maka program akan lompat ke rutin Loop. Jika nilai R0 sama dengan 20h,maka program akan melanjutkan instruksi selanjutnya.. 9. Instruksi DEC (Decreament) Instruksi ini merupakan perintah untuk mengurangi nilai register yang dimaksud dengan 1. Contoh, MOV R0,#20h R0 = 20h ................ DEC R0 R0 = R0 – 1 ............. 10. Instruksi INC (Increament) Instruksi ini merupakan perintah untuk menambahkan nilai register yang dimaksud dengan 1. Contoh, MOV R0,#20h R0 = 20h ................ INC R0 R0 = R0 + 1 ............. 2.3. Motor DC Motor DC adalah suatu mesin yang berfungsi mengubah tenaga listrik arus searah menjadi tenaga gerak atau energi mekanik, dimana tenaga gerak tersebut berupa putaran pada rotor. Fungsi motor ini berdasarkan gejala bahwa suatu medan magnet mengeluarkan gaya pada penghantar berarus. Prinsip kerjanya adalah apabila sebuah kawat penghantar yang dialiri arus diletakkan antara dua buah kutub magnet, maka pada kawat itu akan bekerja suatu gaya yang menggerakkan kawat itu (gaya Lorentz). Setiap konduktor yang mengalirkan arus mempunyai medan magnet disekelilingnya. Kuat medan tergantung pada besarnya arus yang mengalir dalam konduktor tersebut. Pada motor DC, konduktor pengalir arus dililitkan pada alur- alur Universitas Sumatera Utara jangkar. Jika jangkar berputar maka dalam lilitan jangkar motor tersebut dibangkitkan gaya gerak listrik (GGL) yang kemudian diubah menjadi mekanik pada rotor. Arah putaran motor DC tergantung pada arah medan dan arah aliran arus pada jangkar. Jika arah medan atau arah aliran arus pada jangkar dibalik, maka putaran motor akan terbalik. Konstruksi dari motor DC terbagi atas beberapa bagian antara lain: 1) Stator atau bagian yang diam, terdiri dari: Rumah stator (gander) sebagai tempat jalan mengalirnya medan magnet yang dihasilkan oleh kutub- kutub magnet, dan melindungi bagian- bagian mesin lainnya. 2) Rotor yang berputar, terdiri dari jangkar, lilitan jangkar, komutator, dan sikatsikat. Motor arus searah jarang digunakan untuk aplikasi industri umum karena semua sitem utility listrik diperlengkapi dengan perkakas arus bolak- balik. Mekipun demikian, untuk aplikasi khusus, adalah menguntungkan jika mengubah arus bolak- balik menjadi arus searah dengan menggunakan motor dc. Motor arus searah digunakan dimana kontrol torsi dan kecepatan dengan rentang yag lebar diperlukan untuk memenuhi kebutuhan aplikasi. 2.4. Relay Relay adalah suatu rangkaian switch magnetik yang bekerja bila mendapat catu dan suatu rangkaian trigger. Relay memiliki tegangan dan arus nominal yang harus dipenuhi output rangkaian pendriver atau pengemudinya. Arus yang digunakan pada rangkaian adalah arus DC. Konstruksi dalam suatu relay terdiri dari lilitan kawat (coil) yang dililitkan pada inti besi lunak. Jika lilitan kawat mendapatkan aliran arus, inti besi lunak kontak menghasilkan medan magnet dan menarik switch kontak. Switch kontak mengalami gaya listrik magnet sehingga berpidah posisi ke kutub lain atau terlepas dari kutub asalnya. Keadaan ini akan bertahan selama arus mengalir pada kumparan relay. Dan relay akan kembali keposisi semula yaitu normaly ON atau Normaly OFF, bila tidak Universitas Sumatera Utara ada lagi arus yang mengalir padanya, posisi normal relay tergantung pada jenis relay yang digunakan. Dan pemakaian jenis relay tergantung pada kadaan yang diinginkan dalam suatu rangkaian. Menurut kerjanya relay dapat dibedakan menjadi : a. Normaly Open (NO), saklar akan tertutup bila dialiri arus b. Normaly Close (OFF), saklar akan tertutup bila dialiri arus c. Change Over (CO), relay ini mempunyai saklar tunggal yang nomalnya tertutup yang lama, bila kumparan 1 dialiri arus maka saklar akan terhubung ke terminal A, sebaliknya bula kumparan 2 dialiri arus maka saklar akan terhubung ke terminal B. Analogi rangkaian relay yang digunakan pada tugas akhir ini adalah saat basis transistor ini dialiri arus, maka transistor dalam keadaan tertutup yang dapat menghubungkan arus dari kolektor ke emiter yang mengakibatkan relay terhubung. Sedangkan fungsi dioda disini adalah untuk melindungi transistor dari tegangan induksi berlebih, dimana tegangan ini dapat merusak transistor. Jika transistor pada basis tidak ada arus maju, transistor terbuka sehingga arus tidak mengalir dari kolektor ke emiter, relay tidak bekerja karena tidak ada arus yang mengalir pada gulungan kawat. Bentuk relay yang digunakan dan bentuk relay dengan rangkaian driver dapat dilihat pada gambar 2.6. Vcc Dioda VB a. Simbol Tr b. Relay dengan rangkaian driver Gambar 2.2. Simbol Relay dan Rangkaian Driver 2.5. Port Paralel PC Komputer XT/AT buatan IBM atau yang kompetibel pada umumnya menggunakan dua jenis port untuk komunikasi antara komputer dengan dunia luar, Universitas Sumatera Utara port tersebut adalah port parallel dan port serial. Di katakan port parallel karena data yang dikirim tau diterima pada port tersebut dengan sisem paralel (serentak), sedangkan port serial data yang dikirim maupun yang diterima dengan sistem serial (bergantian). Kedua sistem tersebut memiliki kekurangan dn kelebihan masing – masing,pada port parallel data yang ditransmisikan memiliki kecepatan yang tinggi, namun dibutuhkan satu kabel per bitnya, sehingga transmisi data menjadi mahal. Sedangkan sistem serial data di transmisikan secara bergantian, sehingga lebih lambat dri sistem parallel. Namun biaya menjadi lebih murah karena hanya membutuhkan satu kabel untuk trasnmisi datanya. Berikut adalah gambar konektor port parallel DB-25 yang banyak digunakan pada IBM PC XT/AT atau kompatibelnya : Gambar 2.3 Port Parlel DB 25 Pada komputer tertentu kadang kala port paralelnya berupa connector centronix, namun fungsinya tetap sama hanya berbeda bentuk. Gambar 2.4. Port Parlel Centronix Dibawah ini adalah tabel tentang konfigurasi pin dan nama sinyal konektornya parallel standart DB-25 serta fungsi – fungsi dari ke dua puluh lima pin tersebut : Universitas Sumatera Utara Tabel 2.3. Fungsi-Fungsi PIN Port Paralel Pin No Nama Sinyal Sifat Register 1 Strobe Out Control Inverted 2 Data 0 In/Out Data Ya 3 Data 1 In/Out Data 4 Data 2 In/Out Data 5 Data 3 In/Out Data 6 Data 4 In/Out Data 7 Data 5 In/Out Data 8 Data 6 In/Out Data 9 Data 7 In/Out Data 10 Acknowledge In Status 11 Busy In Status 12 Peper Out In Status 13 Select Out Status 14 Auto Line Feed Out Control 15 Error In Status 16 Initialize Out Control 17 Select In Out Control 18-25 Ground Gnd Ya Ya Ya Untuk dapat menggunakan port parallel,kita harus mengetahui alamatnya. Base Address LPT1 biasanya adalah 888 (378h) dan LPT2 biasanya 632 (278h).Alamat tersebut adalah alamat yang umumnya digunakan, tergantung dari jenis komputer. Tepatnya kita bisa melihat pada peta memori tempat menyimpan alamat Universitas Sumatera Utara tersebut, yaitu memori 000.0408h untuk base address LPT1 dan memori 0000.040h untuk base address LPT2. Setelah kita mengetahui alamat port parallel, maka kita dapat menentukan alamat Data Port (CP), dan Status Port (SP).Alamat DP adalah base address dari port parallel tersebut, alamat SP adalah base address +1, dan alamat CP adalah base address +2.Base Address +1 adalah alamat untuk status port dan Base Address +2 adalah alamat untuk control port. Tabel berikut adalah tabel alamat masing – masing port yang umumnya digunakan yaitu : Tabel 2.4. Alamat Pada Port-Port Paralel Nama Port Alamat Register LPT1 DP 378h / 888 LPT1 SP 379h / 889 LPT1 CP 37 Ah / 890 2.6. Register-Register Perangkat Lunak Ketika port pada port pararel, yaitu port data, port status, dan port kontrol, memiliki register prangkat lunak dan masing masing berukuran 8 bit. Susunan bit-bit pada register untuk masing masing port dapat dilihat pada tabel dibawah. Port Data (alamat 0x378): D7 D6 Data 7 Data 6 D5 D4 D3 D2 D1 D0 Data 5 Data 4 Data 3 Data 2 Data 1 Data 0 S4 S3 - - - Port Satus (alamat 0x379): ~S7 S6 S5 Universitas Sumatera Utara ~Busy Ack PE Select Eror - - - port Kontrol (alamat 0x37A): - - - - ~C3 - ~Selet in C2 Init ~C1 ~Auto Feed ~C0 `Strobe Tabel 2.5. Register Perangkat lunak Pada Port Pararel Keterangan : Tanda ~ didepan nama sinyal atau bit berarti bahwa sinyal atau bit yang bersangkutan aktif rendah. Semua keluaran pada Data Port berlogika sebenarnya. Yaitu , menuliskan logika 1 ke salah satu bit pada data port menyebabkan logika 1 pada bit yang bersangkutan. Namun demikian, keluaran-keluaran/SELECT_IN,/AUTO FEED, dan /STROBE pada Control Port berlogika inversi (kebalikan). Artinya, penulisan logika 1 ke salah satu bit pada Control Port menyebabkan logika 0 pada bit yang bersangkutan. Untuk bit bit yang menggunakan logika inversi, hal ini harus diperhatikan agar tidak mengacaukan maksudnya. Untuk itu, bit yang akan dikirimkan tersebut dapat dibalik dengan cara menggunakan fungsi EX-OR (Exclusive OR) sebelum oprasi penulisan. Sebagai contoh, jika diinginkan mengeluarkan 1000 pada nibble rendah dan tidak melakukan inversi, hardwere akan membalik bit 3, membiarkan bit 2 apa adanya, dan membalik bit 1 dan 0. hasil yang muncul pada keluaran adalah 0011 yang jauh dari yang diharapkan. Dengan menggunakan fungsi EX-OR, 1000 sebenarnya dikirimkan ke port sebagai 0011. Hadware kemudian membalik bit 3,1 dan 0 dan keluaranya adalah 1000 sesuai dengan yang diharapkan. Pada port printer terdapat lima bit status (BSY, /ACK, PE (paper empty), SELECT, /ERROR). Sebagai catatan, maksud pemberian nama sinyal ini adalah sesuai dengan namanya logika tinggi pada SELECT menunjukan bahwa printer dalam keadaan online. Logika tinggi pada BSY atau PE menunjukan ke PC bahwa printer dalam keadaan sibuk (busy) atau kehabisan kertas. Logika rendah pada /ACK menunjukan printer menerima suatu data. Logika rendah pada/ERROR menunjukan printer dalam kondisi error. Universitas Sumatera Utara Semua masukan ini dijemput dengan cara membaca 5-bit tertinggi dan Status Port. Namun demikian, perancang asli rangkaian antar muka printer membalik sinyal BSY secara hardware. Artinya, jika logika 0 ada pada masukan BSY, bit sebenarnya harus dibaca sebagai logika 1. 7 0 6 0 5 4 0 3 BUSY /ACK 2 PE 1 0 SELECT /ERROR Gambar 2.5 bit status Sebagai kesimpulan, pada port printer, terdapat minimal 12 keluaran; 8 pada port dan 4 pada nibble rendah Control Port. Ada 5 masukan pada 5 bit tertinggi Status Port. Tiga bit keluaran pada control Port dan satu bit masukan pada Status Port dibalik secara hardware, tetapi hal ini dapat ditangani dengan menggunakan fungsi EX-OR untuk memiliki bit-bit yang dipilih. 2.7. Bahasa Pemograman Visual Basic. Visual Basic merupakan bahasa pemograman yang cukup populer dan mudah untuk dipelajari.Visual Basic juga menyediakan fasilitas yang memungkinkan pemakai menyusun sebuah program dengan memasang objek-objek grafis dalam sebuah grafis dalam sebuah form. Visual Basic berawal dari bahasa pemograman BASIC (Beginners All Purpose Symbolic Instruction Code).Karena bahasa basic mudah dipelajari dan populer maka hampir setiap programmer menguasai bahasa ini. 2.7.1 Memulai Visual Basic Pada bagian ini akan dijelaskan bagaimana cara menjalankan Visual Basic pada system operasi windows.Cara pertama yang dapat dilakukan untuk memulai Microsoft Visual Basic adalah: Klik tombol start pada Taskbar,kemudian pilih program dari tampilan menu utama. Dari tampilan menu yang ada,pilih Visual Basic. Universitas Sumatera Utara 2.7.2 Tampilan Awal Visual Basic Secara otomatis, pada saat pertama kali menjalankan Visual Basic, akan tampil kotak dialog New Project seperti yang terlihat pada ilustrasi gambar. Gambar 2.6. Tampilan awal Visual Basic Pada kotak dialog tersebut terdapat tiga pilihan tabulasi dengan keterangan sebagai berikut : Tabel 2.6. Keterangan Tabulasi Tabulasi Keterangan New Pilihan ini digunakan untuk membuat project baru dengan berbagai macam pilihan Existing Pilihan ini digunakan untuk membuka project yang pernah dibuat sebelumnya dengan menetukan folder sekaligus nama file. Recent Pilihan ini digunakan untuk membuka project yang telah dibuat dan terakhir kali dibuka. Gambar 2.7. Tampilan dasar MS-Visual Basic Universitas Sumatera Utara 2.8. Close Circuit Television CCTV (Closed Circuit Television) merupakan sebuah perangkat kamera video digital yang digunakan untuk mengirim sinyal ke layar monitor di suatu ruang atau tempat tertentu. Hal tersebut memiliki tujuan untuk dapat memantau situasi dan kondisi tempat tertentu. Pada umumnya CCTV seringkali digunakan untuk mengawasi area public. Awalnya gambar dari kamera CCTV hanya dikirim melalui kabel ke sebuah ruang monitor tertentu dan dibutuhkan pengawasan secara langsung oleh operator/petugas keamanan dengan resolusi gambar yang masih rendah. Namun seiring dengan perkembanga teknologi yang sangat pesat seperti saat ini, banyak kamera CCTV yang telah menggunakan sistem teknologi yang modern. Sistem kamera CCTV digital saat ini dapat dioperasikan maupun dikontrol melalui Personal Computer atau Telephone genggam, serta dapat dimonitor dari mana saja dan kapan saja selama ada komunikasi dengan internet maupun akses GPRS. Kamera CCTV dapat dibedakan menjadi beberapa type yaitu kamera Fixed Dome, kamera IP, kamera wireless dan kamera PTZ (Pan/Tilt/zoom). Hal ini disesuaikan dengan kebutuhan dan anggaran. Jika membutuhkan sebuah kamera yang perlu diperhatikan adalah mempelajari spesifikasi kamera CCTV. Biasanya spesifikasi yang diberikan berupa format lensa CCD (Charge Coupled Device) yang memiliki ukuran tipikal (1/2″, 1/3″dan 1/4″), TV Lines yang berkaitan dengan resolusi gambar, LUX yang berkaitan dengan kesensitifan kamera terhadap cahaya, Varifocal lens yang berkaitan dengan pegaturan sudut/jarak pandang kamera dan bisa diatur secara manual, indoor, outdoor, dan lain-lain. Universitas Sumatera Utara