BAB II DASAR TEORI DAN KOMPONEN PENDUKUNG Mikrokontroler merupakan sebuah komputer sederhana dalam satu serpih (chip). Mikrokontroler adalah salah satu pengembangan yang penting dalam bidang elektronik sejak penemuan mikroprosesor. Mikrokontroler dapat ditemukan pada piranti elektronik saat ini seperti: DVD, kamera, mesin cuci dan piranti elektronik lainnya. Walaupun kecil mikrokontroler cukup rumit. Untuk memahaminya diperlukan pengetahuan tentang perangkat keras (hardware) maupun perangkat lunak (software), karena mikrokontroler bekerja berdasarkan kedua komponen tersebut. Biasanya dalam sebuah mikrokontroler terdapat ROM (Read-Only Memory) RAM (Read–Acces Memory), beberapa buah bandar keluaran/masukan (I/O PORT) dan beberapa komponen pendukung (peripheral) seperti: pencacah/pewaktu, ADC (Analog-to-Digital Converter), DAC (Digital-to-Analog Converter) dan bandar komunikasi serial. Pada umumnya dalam sebuah mikroprosesor terdapat 3 kompenen utama yaitu: ALU (Arithmetic Logic Unit ) untuk melakukan perhitungan data, sekumpulan pengingat (register) untuk memegang data pengguna dan unit pengendali yang mengatur aliran data dari pengingat (register) ke ALU. Mikrokontroler selain mengandung ketiga komponen tersebut juga sudah tercakup RAM,ROM dan bandar– bandar keluaran /masukan. Berdasarkan komponen dalam mikrokontronler dapat dikatakan bahwa mikrokontroler lebih cepat dari mikroprosesor hal ini disebabkan karena sudah terdapat unit memori dalam serpih (chip) yang sama, oleh karena itu aksesnya lebih cepat. Kekurangannya adalah kemampuan menyimpan data baik di ROM maupun RAM lebih sedikit, tapi dapat ditambah dengan unit memori luar. 2.1 Mikrokontroler PIC16F877A Mikrokontroler PIC dari Microchip merupakan salah satu mikrokontroler yang banyak digunakan oleh peminat elektronika untuk membuat perangkat Universitas Sumatera Utara elektronika. Salah satu alasan kesuksesan PIC adalah karena dukungan yang disediakan oleh Microchip. Dukungan yang disediakan termasuk sebuah software yang dapat digunakan untuk pengembangan dalam lingkungan profesional yaitu MPLAB. MPLAB dapat di download secara gratis dari situs Microchip. Dalam MPLAB sudah termasuk sebuah assembler, linker, debugger, dan simulator. Microchip juga menjual murah in-circuit debugger yang disebut MPLAB ICD2. Website Microchip juga dilengkapi ratusan dokumen pendukung gratis seperti: datasheet, catatan aplikasi dan contoh kode. Selain itu PIC16F877A mempunyai fitur yang lengkap yang membuatnya lebih unggul dari yang lain diantaranya: 1. Menggunakan desain RISC CPU sehingga intruksinya hanya 35 jenis. 2. Semua intruksi dilaksanakan dalam satu siklus selain intruksi percabangan 3. Direct, indirect dan relative addressing mode 4. Dapat menangani 14 buah sumber interupsi 5. Memiliki 8K x 14 word memori program 6. 368 x 8 bit memori data (RAM) 7. Mempunyai EEPROM 256 x 8 bit 8. Dapat beroperasi pada tegangan 2-5 Volt 9. In-Circuit Programing (ICSP) dapat dilakukan melalui 2 buah pena 10. Watchdog Timer (WDT) mempunyai osilator tersediri. 11. Dua buah modul PWM 12. 10 bit multi chanel ADC 13. Universal Synchronous Asynchronous Reciever Transmitter (USART) 14. Timer dalam tiga buah Universitas Sumatera Utara 2.1.1 Pena-pena mikrokontroler PIC16F877A Mikrokontroler PIC16F877A mempunyai 40 pena (pin) seperti yang ditunjukkan pada Gambar 2.1 Gambar 2.1 Konfigurasi Pena PIC16F877A Masing-masing pena mikrokontroler PIC16F877A menpunyai kegunaan sebagai berikut: 1. Bandar A (RA0-RA5) Bandar A adalah bandar masukan/keluaran (I/O) dua arah (bidirectional). Bandar A juga mempunyai fungsi alternatif seperti pada Tabel 2.1 Tabel 2.1 Fungsi Alternatif Bandar A Pena Fungsi Alternatif RA0/AN0 Digital I/O, masukan analog 0 RA1/AN1 Digital I/O, masukan analog 1 RA2/AN2/VREF+ Digital I/O, masukan analog 2, tegangan referensi A/D rendah Universitas Sumatera Utara RA3/AN3/VREF+ Digital I/O, masukan analog 3, tegangan referensi A/D tinggi RA4/T0CK1/C1out Digital I/O, masukan penabuh luar timer0, keluaran camparator 1 RA5/-SS/AN5 Digital I/O, slave select untuk SSP 2. Bandar B (RB0-RB7) Bandar B adalah masukan/keluaran dua arah (bidirectional). Bandar B dapat diprogram secara perangkat lunak untuk internal weak pull-up pada semua masukannya. Bandar B juga punyai fungsi alternatif seperti pada Tabel 2.2 Tabel 2.2 Alternatif Bandar B Pena Fungsi alternatif RB0/INT Digital I/O, external interupt RB1 Digital I/O RB2 Digital I/O RB3/PGM Digital I/O, pena mempukan ICSP tegangan rendah RB4 Digital I/O RB5 Digital I/O RB6/PGC Digital I/O, penabuh ICSP dan in-circuit debugger RB7/PGD Digital I/O, data ICSP, in-circuit debugger 3. Bandar C (RC0-RC7) Bandar C adalah masukan/keluaran (I/O) dua arah (bidirectional). Bandar C juga mempunyai fungsi alternatif seperti pada Tabel 2.3. Universitas Sumatera Utara Tabel 2.3 Fungsi Bandar C Pena Fungsi RC0/T1OSO/T1CK1 Digital I/O, keluran osilator timer1, masukan penabuh luar timer1 RC1/T1OSI,CCP2 Digital I/O,masukan osilator timer1,keluaran PWM2 dan compare2, masukan capture2 RC2/CCP1 Digital I/O,keluaran PWM1 dan compare1, masukan capture1 RC3,SCK,SCL Digital I/O,penabuh SPI, Penabuh I2C RC4/SDI/SDA Digital I/O, masukan data SPI, masukan data I2C RC5/SDO Digital I/O,keluaran data SPI RC6/TX,CK Digital I/O,transmit USART, penabuh USART RC7/RC/DT Digital I/O, receiver USART, data USART 4. Bandar D (RD0-RD7) Bandar D adalah bandar I/O dua arah (bidirectioanal) atau bandar budak ketika dihubungkan dengan bus mikroprosesor. 5. Bandar E (RE0-RE2) Bandar E adalah bandar I/O dua arah (bidirectional). Bandar E juga punyai fungsi alternatif seperti pada Tabel 2.4. Tabel 2.4 Fungsi Bandar E Pena Fungsi RE0/-RD/AN5 Digital I/O, kendali baca untuk bandar budak paralel, masukan analog 5 RE1/-WR/AN6 Digital I/O, kendali tulis untuk bandar budak paralel, masukan analog 6 Universitas Sumatera Utara RE2/-CS/AN7 Digital I/O, memilih untuk bandar budak paralel, masukan analog 7 6. OSC1 dan OSC2 Merupakan masukan untuk sumber penabuh luar, berupa Kristal atau rangkaian RC untuk mengaktifkan osilator yang terdapat pada mikrokontroler PIC16F877A. 7. MCLR /VPP Merupaka masukan untuk reset atau tegangan masukan pada saat memprogram. 8. VDD dan VSS Pena VDD dihubungkan dengan sumber tegangan +5 Volt dan VSS pada ground. 2.1.2 Memori Memori mikrokontroler merupakan sebuah lokasi/tempat menyimpan program yang akan dijalankan dan data yang digunakan program. Memori dapat dianggap sekumpulan blok (cell) atau lokasi yang dikenali dengan alamatnya. Setiap blok menyimpan kata (word). Word adalah sebuah informasi unit logika yang disimpan dalam sebuah blok. Terdapat dua atau tiga jenis memory yang tersedia dalam mikrokontroler : • Nonvolatile program memory. • Volatile RAM (Random Acces Memory). • Optional nonvolatile memori data (EEPROM). Universitas Sumatera Utara 2.1.2.1 Memori Program Memori program dikenal dengan nama yang berbeda–beda, yaitu tempat penyimpan program kendali (control) dan firmware. Nama tidak terlalu penting, asalkan dapat dipahami bahwa memori ini digunakan untuk menyimpan aplikasi perangkat lunak. Kata sifat “ nonvolatile “ menjelaskan kemampuan memori untuk memelihara informasi yang disimpan walupun catu daya dimatikan. Hal ini penting karena setiap catu daya diberikan kepada mikrokontroler, kode aplikasi harus mulai bekerja. Ruang memori program adalah jumlah maksimum kode program yang dapat diprogramkan kedalam mikrokontroler dan berisikan semua kode yang akan dijalankan aplikasi sekaligus berisikan nilai- nilai awal untuk variabel yang digunakan. Memori program biasanya tidak berubah selama program dijalankan dan kode aplikasi disimpan menggunakan peralatan tersendiri. Memori program dalam mikrokontroler PIC16F877A terdiri atas: ° Flash ROM : 8K x 14 bit. ° Memori Stack: 8 x 13 bit. Memori program berupa Flash ROM berukuran word 14 bit dengan kapasitas 8K word (PIC16F873 hanya 4K Word). Memori program diakses hanya oleh Program counter (PC), dan karena itu PC berukuran 13 bit. PC ialah register yang memilihara jalannya urutan program dengan menyimpan alamat intruksi yang sedang dijalankan. Alamat awal program biasanya adalah nol ,dimana intruksi pertama program akan disimpan kecuali penulis program menentukan lain. Setiap intruksi dijalankan, PC akan bertambah satu untuk menunjuk keintruksi selanjutnya. Percabangan dan jump (pelompatan) tidak dilaksanakan dalam satu intruksi. Hal lain yang berhubungan dengan PC adalah stack. Stack tidak termasuk kedalam program maupun data. Stack digunakan menyimpan isi PC bila ada intruksi CALL. Stack yang 8 word digunakan hanya secara internal untuk menyimpan alamat instruksi kembali dari subrutin, tidak dapat digunakan untuk data. Stack berukuran 13 bit, seukuran dengan PC. Stack bersifat LIFO ( Last In First Out ). Universitas Sumatera Utara Karena memori program dalam PIC menggunakan sistim paging (halaman), maka 2 bit (bit 12 dan 11) dari PC yang 13 bit menunjukan nomor halaman dan dan 10 bit lagi menunjukkan alamat dalam halaman yang ditunjuk. Memori program dibagi atas halaman (blok) memori yang berukuran 2 Kilo Word dengan alamat 11 bit dan mikrokontroler PIC16F877A ini dapat mengakses program secara kontinu hanya dalam halaman yang sama. Untuk mengakses program pada halaman yang berbeda, seperti dalam intruksi percabangan CALL dan GOTO, 2 bit atas alamat diambil dari register PCLATH yaitu PCLATH<4:3>. Karena itu harga PCH harus di program untuk menunjuk ke nomor halaman yang diinginkan. Penyesuaian halaman alamat tujuan ini, dilakukan dengan menyetel bit-bit PCLATH<4:3>. Untuk melakukan percabangan ke halaman 1 (alamat 0x800-0xFFF), sebagai contoh, PCLATH<4> direset dan PCLATH<3> disetel sebelum mengajukan instruksi percabangan. Dalam pelaksanaan instruksi RETURN dan RETFIE (return from interrupt and enable interrupt), alamat kembali sepenuhnya diambil (dengan mem-POP-nya) dari stack, sehingga tak perlu penyesuaian halaman. Perlu dicatat bahwa stack hanya 8 tingkat sehingga penggunaan pemanggilan bersarang (nested) harus hati-hati, jangan menyebabkan “stack overflow”. Gambar 2.2 menunjukkan peta memori dan stack dari PIC 16F877A. 2.1.2.2 Memori Data Memori data PIC memakai sistim paging (halaman). Setiap page (halaman) disebut BANK dan setiap BANK memiliki 128 blok memori atau register. PIC16F877A memiliki 4 BANK sehingga jumlah memorinya 512 byte,terbagi atas : RAM : 368 x 8 bit dan EEPROM : 256 x 8 bit. Universitas Sumatera Utara Gambar 2.2 Peta Memori PIC16F877A RAM merupakan memori bersifat volatile sehingga hanya berfungsi menyimpan data sementara. RAM merupakan Special Function Registers (SFRs). SFRs digunakan untuk mengendalikan PIC dan mengakses modul disekelilingnya. Gambar 2.3 menunjukan SFRs dan GFRs. Pengaksesan register file secara langsung sangat sederhana yaitu dengan mencantumkan nomor alamat register dalam instruksinya. Pengaksesan secara taklangsung (terindeks) dilakukan melalui register indeks INDF (register pertama pada setiap BANK), yang sebenarnya bukanlah register fisik. Setiap pengaksesan register INDF sebenarnya mengakses register yang ditunjuk oleh register pemilih register yaitu FSR (File Select Register). Universitas Sumatera Utara 2.1.2.3 Register Khusus ( SFRs ) SFRs adalah register yang ditempatkan di memori data dengan informasi tertentu atau fungsi control untuk mikrokontroler maupun peralatan disekitarnya, serta berguna untuk melihat keadaan bit dari prosesor. SFRs berhubungan dengan inti dari prosesor atau peralatan disekitarnya (peripheral). SFRs dinamai berdasarkan fungsinya, misalnya TMR0 merupakan bagian dari sistim pewaktuan (timer), STATUS memegang bendera (flag) dari prosesor , INTCON digunakan untuk kontrol interup. Beberapa SFRs dapat dibaca dan ditulis sedangkan sebagian lagi hanya dapat dibaca. Program Counter (PC) , register bandar (PORT register) dan register lainnya dipetakan sebagai bagian dari blok SFRs. Register kerja satu satunya yang tidak ditempatkan diblok utama register adalah register yang diakses dengan nama “W”. Lembaran data (datasheet) menyediakan informasi SFRs secara lengkap. SFRs yang umum atau sering digunakan dalam suatu sistim sederhana adalah : STATUS , PCLATH, PCL,FSR, OPTION , INTCON , PORTA , PORTB, PORTC ,TRISA, TRISB, TRISC, TMR0. Universitas Sumatera Utara Gambar 2.3 Peta File Register Universitas Sumatera Utara Beberapa SFRS yang digunakan. 1. STATUS Register STATUS berisi status ALU, status Reset dan bit-bit pemilih memori data. Format register STATUS ditunjukkan pada Gambar 2.4. STATUS (03h, 83h,103h, 183h) Carry/borrow from MSB (ADDWF, ADDLW, SUBWF, SUBLW instruction) 0= No carry-out occured 1= a carry-out occured Pemilih BANK register (for indirect addressing) 0= bank 0, 1 (00 – FFh) 1= bank 2, 3 (100 – 1FFh) Digit Carry/borrow from lower nibble (ADDWF, ADDLW, SUBWF, SUBLW instruction) 0= No carry-out occured 1= a carry-out occured Pemilih BANK register (for direct addressing) 00= bank 0 (00 – 7Fh) 01= bank 1 (80 – FFh) 10= bank 2 (100 – 17Fh) 11= bank 3 (180 – 1FFh) Time Out 0= a WDT time-out occured 1= after power-up, CLRWDT, or SLEEP intruction Zero: aritthmetic or logic ops 0= result is NOT zero 1= result is zero Power-down 0= by exec. of SLEEP 1= after power-up or CLRWDT Gambar 2.4 Format Registes STATUS Pemilih bank memori untuk pengalamatan tak langsung dilakukan melalui RP0:RP1 sedangkan untuk pengalamatan tak langsung dilakukan melalui IRP. Status reset ditunjukkan pada time-out (TO) dan powerdown (PD) menunjukkan penyebab terjadinya time-out atau power down. Status ALU ditunjukkan oleh C, DC dan Z. Zero bit (Z) menunjukkan hasil dari operasi perhitungan atau logika menghasilkan nol, Digit Carry/ Borrow menunjukkan adanya carry atau borrow dari nible terendah sedangkan Carry/Borrow menunjukkan carry dari MSB dalam penjumlahan atau carry pada pengurangan. Universitas Sumatera Utara Pengaksesan atas masing-masing bit ditunjukkan di atas kotak bit dengan notasi: U= tak digunakan, R= Readable, W= Writable, -n= harga pada saat power-on, yaitu -0 = berlogika 0, -1 = berlogika 1, -x = tak tertentu. Jadi dapat juga diartikan bahwa dari harga n dalam notasi ini menunjukkan harga default. 2. PCL dan PCLATH PC terdiri atas 13 bit. Delapan bit terendah dapat ditulis dan dibaca, bit terendah disediakan oleh PCL. Bit tinggi tidak dapat dibaca tapi secara tak langsung dapat ditulis melalui PCLATH. Pada saat kembali dari intruksi RETURN datau RETFIE PCLATH tidak berubah sehinga pemakai harus memulis kembali isi PCLATH. komputasi GOTO dicapai dengan memanfaatkan penambahan offset pada PC (ADDWF, PCL). Pada saat penggunaan komputasi GOTO untuk membaca tabel data harus diperhatikan jangan sampai lokasi penyimpanan data tidak melebihi 256 bit, bila melebihi maka komputasi harus dilakukan dengan mengikut sertakan PCLATH. 3. INDF dan FSR Pengalamatan dengan register INDF akan mengakibatkan pengalamatan tak langsung. Pengalamatan tak langsung dapat dilakukan dengan menggunakan register INDF. Setiap intruksi yang menggunakan register INDF sebenarnya mengakses register yang ditunjuk oleh FSR. Membaca register INDF itu sendiri (FSR=0) berarti membaca pada alamat 00h. INDF dan FSR memungkinkan pemakaian array. 4. PORTC dan TRISC PORTC merupakan bandar 8 bit yang dua arah (bidirectioanal). Arah data ditentukan pada register TRISC. Bila bit TRISC dibuat 1 maka PORTC yang sesuai dengan bit pada TRISC akan berfungsi sebagai masukan dan bila 0 akan berfungsi sebagai keluaran. Universitas Sumatera Utara 5. PORTD dan TRISD PORTD merupakan bandar 8 bit yang dua arah (bidirectioanal). Arah data ditentukan pada register TRISD. Bila bit TRISD dibuat 1 maka PORTC sesuai dengan bit pada TRISD akan berfungsi sebagai masukan dan bila 0 berfungsi sebagai keluaran. 2.1.3 Kumpulan Perintah ( Intruction Set ) Semua mikrokontroler atau mikroprosesor menjalankannya intruksinya dengan bahasa mesin masing–masing. Bahasa mesin terdiri dari kode biner yang menggambarkan/menjelaskan tugas yang harus dilaksanakan mikrokontroler. Kode biner terdiri dari kumpulan bilangan 0 dan 1. PIC medium-end setiap intruksinya terdiri dari 14 bit , oleh karena itu sebuah program dalam bahasa mesin terdiri dari 14 word. Dari tabel instruction set tabel 2.5 dapat dilihat bahwa tabel dibagi atas 5 kolom dan memeliki 35 jenis intruksi. Tabel 2.5 Kumpulan perintah dalam PIC 16F877A Mnemoni Deskripsi Sikl Opcode Byte Oriented File Register Operations 1 ADDWF Add W and f 00 0111 1 ANDWF AND W and f 00 0101 CLRF F Clear f 1 00 0001 CLRW Clear W 1 00 0001 Complement f 1 COMF 00 1001 DECF f,d Decrement f 1 00 0011 DECFSZ Decrement f, Skip if 1(2) 00 1011 INCF f,d Increment f 11 00 1010 INCFSZ Increment f, Skip if 1(2) 00 1111 IORWF Inclusive OR W 1 00 0100 Move f 1 MOVF 00 1000 1 MOVWF Move W to f 00 0000 NOP No Operation 1 00 0000 RLF f,d Rotate Left through 1 00 1101 RRF f,d Rotate Right through 1 00 1100 1 SUBWF Subtract W from f 00 0010 Swap nibbles in f 1 SWAPF 00 1110 XORWF Exclusive OR W 1 00 0110 Bit Oriented File Register Operations BCF f,b Bit Clear f 1 01 00bb Statu C, Z Z Z Z Z Z Z Z C C C, Z - Universitas Sumatera Utara BSF f,b Bit Set f BTFSC Bit Test f, Skip if BTFSS Bit Test f, Skip if Literal and Control Operations ADDLW Add literal and W ANDLW AND literal and W CALL k Call Subroutine CLRWDT Clear Watchdog GOTO k Go to address IORLW k Inclusive OR literal MOVLW Move literal to W RETFIE Return from Interrupt RETLW Return with literal in RETURN Return from SLEEP Go into Standby SUBLW Subtract W from XORLW Exclusive OR literal Kolom pertama menunjukkan 1 01 1(2) 01 1(2) 01 01bb 10bb 11bb - 1 1 2 1 2 1 1 2 2 2 1 1 1 111x 1001 0kkk 0000 1kkk 1000 00xx 0000 01xx 0000 0000 110x 1010 mnemonic 11 11 10 00 10 11 11 00 11 00 00 11 11 dan code C, Z TO,P Z TO,P C, Z operand yang mengikutinya. Terdapat 4 kode operand , yaitu : 1. f untuk file menunjukkan lokasi memori dalam RAM. 2. b untuk bit menunjukkan register tertentu dalam memori data, 3 bit. 3. d untuk destination menunjukkan hasil disimpan di memori data atau dalam W terdiri atas 1 bit,jika 1 maka disimpan dalam register itu sendiri dan jika 0 dalam W. 4. k untuk literal menunjukkan 8 bit data atau 11 bit alamat dalam memori program. Kolom kedua meringkaskan apa yang dilakukan intruksi. Kolom ketiga menunjukkan berapa siklus intruksi dilaksanakan. Hampir semua intruksi dilaksanakan dalam satu siklus , kecuali ada beberapa yang dua siklus seperti intruski percabangan. Kolom keempat memberikan 14 bit opcode yang sebenarnya setiap intruksi. kolom kelima menjelaskan bit dalam register STATUS yang dipengaruhi setiap intruksi. Universitas Sumatera Utara 2.2 LED LED (Light Emitting Diode atau Light Emitting Device) merupakan piranti yang vital dalam teknologi electroluminescent, seperti aplikasi teknologi display (tampilan), sensor, dan lain-lainnya. Teknologi electroluminescent didasarkan pada konsep pancaran cahaya yang dihasilkan oleh suatu piranti sebagai akibat dari adanya medan listrik yang diberikan kepadanya. Pada dekade terakhir ini telah diperoleh kemajuan yang menarik dalam bidang desain piranti LED. LED dimamfaatkan untuk kepentingan produk industri seperti membuat tampilan yang luas/besar, fleksibel, murah dan dapat juga digunakan sebagai layar yang efisien untuk berbagai keperluan seperti, komputer atau layar TV yang dapat ditempelkan pada dinding atau dapat digulung di dalam saku baju. Gambar 2.5 merupakan simbol sebuah LED. Berdasarkan Gambar 2.5 dapat diketahui bahwa sebuah LED merupakan dioda yang memancarkan cahaya. Gambar 2.5. Simbol LED 2.3 Persistence of vision ( kekakuan penglihatan ) Persistence Of Vision (POV) merupakan ketidakmampuan mata manusia untuk melihat perubahan yang cepat. Mata manusia hanya dapat melihat perubahan tidak lebih dari 50 Hz. Penomena Persistence Of Vision dimamfaatkan secara luas dalam bidang penampilan. TV atau layar monitor diperbaharui gambarnya sebanyak 60-80 kali setiap detik. 2.4 Transistor Transistor ditemukan Shcokley pada tahun1951. Penemuan transistor membawa revolusi besar-besaran dalam bidang elektronika. Sebelum tahun1951 Universitas Sumatera Utara peralatan elektronika menggunakan tabung vakum yang membutuh ruang yang besar dan daya yang besar. Penemuan ini membuat industri komputer berubah drastis, yang mana sebelumnya komputer berukuran besar dan sangat mahal. Transistor merupakan komponen semikonduktor yang dapat berfungsi sebagai penguat (amplifier), penyambung/pemutus (switch), stabilasi tegangan, modulasi sinyal, sebagai memori dan berbagai fungsi lainnya. Transistor dapat diibaratkan dapat bekerja sebagai keran arus listrik, dimana berdasarkan arus masukan (transitor bipolar) dan tegangan masukan (FET) dapat mengendalikan keluarannya dengan sangat terkendali. 2.5 ULN 2803 ULN 2803 adalah IC yang didalamnya merupakan susunan transistor yang terpasang secara darlington dan dapat menangani arus sebesar 500 mA. Setiap ULN2803 terdapat delapan buah susunan darlington yang dapat bekerja terpisah sehingga beban yang dapat dipasang pada ULN2803 sebanyak 8 buah. ULN2803 sudah terdapat tahanan masukan sebesar 3,7K sehingga dapat dihubungkan lansung dengan TTL/CMOS tanpa membutuhkan tahanan pembatas arus tambahan. Rangkaian dalam ULN2803 diperlihatkan pada Gambar 2.6 dan pena-penanya diperlihatkan pada Gambar 2.7. Gambar 2.6 Bagan Bagian setiap penggerak dalam ULN2803 Universitas Sumatera Utara Gambar 2.7 Pena-Pena ULN2803 2.6 Decade Counter 4017 (Johnson Counter) Johnson counter merupakan sebuah ring counter. HEF4017B merupakan Johnson counter yang digunakan dalam alat yang dirancang. Gambar 2.8 menunjukkan diagram fungsi dari HEF4017B. Gambar 2.8 Diagram Fungsi HEF4017B HEF4017B mempunyai 10 keluaran (Q0-Q9). Sebuah Master Reset (MR) yang berguna untuk mengembalikan seperti keadaan awal. CP0 merupakan penabuh yang menggeser keluaran satu bit selama CP1 berlogika rendah. Universitas Sumatera Utara