BAB II DASAR TEORI 2.1 Mikrokontroler AVR ATmega8 AVR merupakan salah satu jenis mikrokontroler yang didalamnya terdapat berbagai macam fungsi. Perbedaannya dengan mikrokontroler yang pada umumnya digunakan seperti MCS 51 adalah AVR tidak perlu menggunakan oscillator eksternal karena di dalamnya sudah terdapat internal oscillator. Selain itu kelebihan dari AVR adalah memiliki Power-On Reset, yaitu tidak perlu adanya tombol reset dari luar karena cukup hanya dengan mematikan power supply, maka secara otomatis AVR akan melakukan reset. Untuk beberapa jenis AVR terdapat beberapa fungsi khusus seperti ADC, EEPROM sekitar 128 bytes sampai dengan 512 bytes. Dalam hal ini yang digunakan adalah AVR ATmega8, perbedaannya dengan AVR AtmegaL hanyalah terdapat pada besarnya tegangan yang diperlukan untuk bekerja. Untuk ATmega8 tipe L dapat bekerja pada tegangan antara 2,7Vdc - 5,5Vdc, sedangkan untuk ATmega8 hanya dapat bekerja pada tegangan 4,5Vdc – 5,5Vdc. Berikut adalah gambar dari blok diagram untuk ATmega8. 6 7 Gambar 2.1 Konfigurasi Pin Mikrokontroler ATmega8 8 Gambar 2.2 Blok Diagram Fungsional ATmega8 ATmega8 memiliki pin yang masing-masing pin-nya memiliki fungsi yang berbeda -beda baik sebagai port ataupun sebagai fungsi yang lain. Berikut akan dijelaskan tentang kegunaan dari masing-masing kaki ATmega8. 9 a. VCC Merupakan sumber tegangan untuk digital sebesar + 5 Volt. b. GND Merupakan ground untuk semua komponen. c. Port B Tabel 2.1 Fungsi Dari P in-P in Pada Port B Port Pin PB7 Fungsinya XTAL2 (Chip Clock Oscillator pin 2) TOSC2 (Timer Oscillator pin 2) PB6 XTAL1 (Chip Clock Oscillator pin1 or External clock input) TOSC1 (Timer Oscillator pin 1) PB5 SCK (SPI Bus Master clock Input) PB4 MISO (SPI Bus Master Input/Slave Output) PB3 MOSI (SPI Bus Master Output/Slave Input) OC2 (Timer/Counter2 Output Compare Match Output) PB2 SS (SPI Bus Master Slave select) OC1B (Timer/Counter1 Output Compare Match B Output) PB1 OC1A (Timer/Counter1 Output Compare Match A Output) PB0 ICP 1 (Timer/Counter1 Input Capture Pin) · PB7 (XTAL2 / TOSC2) XTAL2: Chip Clock Oscillator Pin 2 . Digunakan sebagai pin clock untuk osilator kristal atau frekuensi rendah kristal osilator. Ketika digunakan sebagai pin clock , pin tidak dapat digunakan sebagai pin I/O. TOSC2: Timer Oscillator pin 2. Digunakan hanya jika in ternal dikalibrasi RC osilator dipilih sebagai sumber clock chip, dan asinkron timer diaktifkan oleh pengaturan yang benar dalam ASSR. Ketika bit AS2 di 10 ASSR diatur (satu) untuk mengaktifkan clock asinkron dari Timer/Counter2 , pin PB7 diputus dari port, dan menjadi output penguat pembalik osilator . Sebuah kristal Osilator tersambung ke pin ini, dan pin tidak dapat digunakan sebagai I/O. Jika PB7 digunakan sebagai pin pewaktu maka DDB7, PORTB7 dan PINB7 semua akan dibaca 0 · PB6 (XTAL1 / TOSC1) XTAL1: Chip Clock Oscillator Pin 1. Digunakan untuk semua sumber clock internal chip kecuali RC osilator dikalibrasi. Ketika digunakan sebagai pin clock, pin tidak dapat digunakan sebagai pin I/O. TOSC1: Timer Oscillator Pin 1. Digunakan hanya jika internal dikalibrasi RC osilator dipilih sebagai sumber clock chip, dan asinkron timer diaktifkan oleh pengaturan yang benar dalam ASSR. Ketika bit AS2 di ASSR diatur (satu) untuk me ngaktifkan clock asinkron dari Timer/Counter2 , pin PB6 diputus dari port, dan menjadi masukan dari penguat inverting osilator . Dalam mode ini, osilator kristal tersambung ke pin ini, dan pin tidak dapat digunakan sebagai pin I/O. Jika PB6 digunakan sebagai pin pewaktu, DDB6, PORTB6 dan PINB6 semua akan dibaca 0. · PB5 (SCK) SCK: Master Clock Output, Slave Clock masukan pin untuk saluran SPI. Ketika SPI diaktifkan sebagai Slave, pin ini dikonfigurasi sebagai masukan terlepas dari pengaturan DDB5. Ketika SPI difungsikan sebagai master, arah data pin ini dikontrol oleh DDB5. Ketika pin dipaksa oleh SPI untuk menjadi masukan, pull-up masih bisa dikontrol oleh bit PORTB5. 11 · PB4 (MISO) MISO: Master Data Input, Slave data output pin untuk saluran SPI. Ketika SPI difungsikan sebagai master, pin ini dikonfigurasi sebagai masukan terlepas dari pengaturan DDB4. Ketika SPI diaktifkan sebagai Slave, arah data pin ini dikontrol oleh DDB4. Ketika pin dipaksa oleh SPI untuk menjadi masukan, pull-up masih bisa dikontrol oleh bit PORTB4 · PB3 (MOSI) MOSI : SPI Master Data Output, Slave data masukan untuk saluran SPI. Ketika SPI diaktifkan sebagai slave , pin ini dikonfigurasi sebagai masukan terlepas dari pengaturan DDB3. Ketika SPI difungsikan sebagai master, arah data pin ini dikontrol oleh DDB3. Ketika pin dipaksa oleh SPI untuk menjadi masukan, pull-up masih bisa dikontrol oleh bit PORTB3. OC2, Output Compare Match Output (counter keluaran yang membandingkan persamaan keluaran). Pin PB3 dapat berfungsi sebagai keluaran eksternal untuk Timer/Counter2 pembanding kesamaan . Pin PB3 harus dikonfigurasi sebagai keluaran (set DDB3 (satu)) untuk melayani fungsi ini. Pin OC2 juga merupakan pin keluaran untuk fungsi timer mode PWM. · PB2 (SS/OC1B) SS: Slave Select Input. Ketika SPI diaktifkan sebagai slave, pin ini dikonfigurasi sebagai input terlepas dari pengaturan DDB2. Sebagai sebuah slave , SPI diaktifkan ketika pin ini bersinyal rendah. Ketika SPI difungsikan sebagai master, arah data pin ini dikontrol oleh DDB2. Ketika 12 pin dipaksa oleh SPI untuk menjadi masukan, pull-up masih bisa dikontrol oleh bit PORTB2. OC1B , Output Compare Match B Output. Pin PB2 dapat berfungsi sebagai keluaran eksternal untuk Timer/Counter1 pembanding kesamaan B. Pin PB2 harus dikonfigurasi sebagai keluaran (DDB2 set (satu)) untuk melayani fungsi ini. Pin OC1B juga merupakan pin keluaran untuk fungsi timer mode PWM. · PB1 (OC1A) OC1A, Output Compare Match A Output. Pin PB1 dapat berfungsi sebagai keluaran eksternal untuk Timer/Counter1 pembanding kesamaan A. Pin PB1 harus dikonfigurasi sebagai keluaran (DDB1 set (satu)) untuk melayani fungsi ini. Pin OC1A juga merupakan pin keluaran untuk fungsi timer mode PWM. · PB0 (ICP1) ICP1 - Timer/Counter1 Input Capture. Pin PB0 dapat bertindak sebagai penerima masukan Timer/Counter1 . Di dalam Port B terdapat XTAL1, XTAL2, TOSC1, TOSC2. Jumlah Port B adalah 8 buah pin mulai dari pin B.0 sampai dengan pin B.7. Tiap pin dapat digunakan sebagai input dan juga output. Port B merupakan sebuah – bit bi-directional I/O port dengan internal pull-up resistor. Sebagai masukan, pin-pin yang terdapat pada port B yang secara eksternal diturunkan, maka akan mengeluarkan arus jika pull-up resistor diaktifkan. Jika ingin menggunakan tambahan kristal, maka cukup menggunakan kaki dari krisal 13 ke kaki pada pin port B. Namun jika tidak digunakan, maka cukup dibiarkan saja. Penggunaan kegunaan dari masing-masing kaki ditentukan dari clock fuse setting-nya d. Port C Tabel 2.2 Fungsi Dari P in-P in Pada Port C Port Pin P C6 PC5 Fungsinya RESET (Reset pin ) ADC5 (ADC Input Channel 5) SCL (Two-wire Serial Bus Clock Line) PC4 ADC4 (ADC Input Channel 4) SDA (Two -wire Serial Bus Data Input/Output Line) PC3 ADC3 (ADC Input Channel 3) PC2 ADC2 (ADC Input Channel 2) PC1 ADC1 (ADC Input Channel 1) P C0 ADC0 (ADC Input Channel 0) · PC6 (RESET) RESET, Reset Pin : Ketika Fuse RSTDISBL diprogram, fungsi pin ini sebagai normal I/O pin, dan bagian akan harus bergantung pada Power-on Reset dan Reset Brown-out sebagai sumber resetnya. Ketika fuse RSTDISBL adalah unprogrammed, sirkuit reset terhubung ke pin, dan pin tidak dapat digunakan sebagai pin I/O. Jika PC6 digunakan sebagai pin reset, DDC6, PORTC6 dan PINC6 semua akan dibaca 0. · PC5 (SCL) SCL, Two -wire Serial Bus Clock Line : Apabila bit TWEN di TWCR diatur (satu) untuk mengaktifkan Two -wire Serial Interface, pin PC5 14 terputus dari port dan menjadi clock Serial I/O pin untuk Two -wire Serial Interface. Dalam mode ini, ada spike filter pada pin untuk menekan lonjakan lebih pendek dari 50 ns pada sinyal masukan, dan pin didorong oleh pengendali terbuka dengan keterbatasan slew-rate. PC5 juga dapat digunakan sebagai input ADC Channel 5. input ADC channel 5 menggunakan daya digital. · PC4 (SDA) SDA, Two -wire Serial Bus Data Input/Output Line : Apabila bit TWEN di TWCR diatur (satu) untuk mengaktifkan Two-wire Serial Interface, PC4 pin diputus dari port dan menjadi data serial I/O pin untuk Two -wire Serial Interface. Dalam mode ini, ada filter pada pin untuk menekan lonjakan lebih pendek dari 50 ns pada sinyal input, dan pin didorong oleh pengendali terbuka dengan keterbatasan slew-rate. PC4 juga dapat digunakan sebagai input ADC Channel 4. ADC input channel 4 menggunakan daya digital. · PC3 (ADC3) PC3 juga dapat digunakan sebagai input ADC Channel 3. ADC input channel 3 menggunakan daya analog. · PC2 (ADC2) PC2 juga dapat digunakan sebagai input ADC Channel 2. ADC input channel 2 menggunakan daya analog. · PC1 (ADC1) PC2 juga dapat digunakan sebagai input ADC Channel 1. ADC input channel 1 menggunakan daya analog. 15 · PC0 (ADC0) PC2 juga dapat digunakan sebagai input ADC Channel 0. ADC input channel 0 menggunakan daya analog. Port C merupakan sebuah 7-bit bi-directional I/O port yang didalamnya masing-masing pin terdapat pull-up resistor. Jumlah pin-nya hanya buah mulai darin pin C.0 sampai dengan pin C.6. Sebagai keluaran, port C memiliki karakteristik yang sama dalam hal kemampuan menyerap arus [sink] ataupun mengeluarkan arus [ source]. e. Port D Tabel 2.3 Fungsi Dari P in-P in Pada Port D Port Pin Fungsinya PD7 AIN1 (Analog Comparator Negativ e Input) PD6 AIN0 (Analog Comparator Positive Input) PD5 T1 (Timer/Counter 1 External Counter Input) PD4 XCK (USART External Clock Input/Output) T0 (Timer/Counter 0 External Counter Input) PD3 INT1 (External Interrupt 1 Input) PD2 INT0 (External Interrupt 0 Input) PD1 TXD (USART Output Pin ) PD0 RXD (USART Input Pin) · PD7 (AIN1) AIN1, Analog Comparator Negative Input. Konfigurasi port sebagai masukan dengan internal pull-up tidak diaktifkan untuk menghindari fungsi port digital yang mengganggu fungsi komparator Analog. 16 · PD6 (AIN0) AIN0, Analog Comparator Positive Input. Konfigurasi port sebagai masukan dengan internal pull-up tidak diaktifkan untuk menghindari fungsi port digital yang mengganggu fungsi komparator Analog. · PD5 (AIN1) T1, sumber counter Timer/Counter1. · PD4 (XCK and T0) XCK, USART clock eksternal. T0, sumber counter Timer/Counter0. · PD3 (INT1) INT1, External Interrupt source 1. Pin PD3 dapat berfungsi sebagai sumber interupsi eksternal. · PD2 (INT0) INT0, External Interrupt source 0. P in PD2 dapat berfungsi sebagai sumber interupsi eksternal. · PD1 (TXD) TXD, Transmit Data (Pin data keluaran untuk USART). Ketika USART Transmiter diaktifkan, pin ini dikonfigurasi sebagai keluaran apapun nilai DDD1. · PD0 (RXD) RXD, Receive Data (Pin data masukan untuk USART). Ketika USART Receiver diaktifkan pin ini dikonfigurasi sebagai masukan tanpa nilai DDD0. Ketika USART pin ini menjadi masukan, pull-up masih bisa dikontrol oleh bit PORTD0 17 Port D merupakan 8-bit bi-directional I/O dengan internal pull-up resistor. Fungsi dari port ini sama dengan port-port yang lain. Hanya saja pada port ini tidak terdapat kegunaan-kegunaan yang lain. Pada port ini hanya berfungsi sebagai masukan dan keluaran saja atau biasa disebut dengan I/O f. Reset / PC6 Jika RSTDISBL Fuse diprogram, maka PC6 akan berfungsi sebagai w in I/O. Untuk diperhatikan juga bahwa pin ini memiliki karakteristik yang berbeda dengan pin-pin yang terdapat pada port C. Namun jika RSTDISBL Fuse tidak diprogram, maka pin ini akan berfungsi sebagai input reset. Dan jika level tegangan yang masuk ke pin ini rendah dan pulsa yang ada lebih pendek dari pulsa minimum, maka akan menghasilkan suatu kondisi reset meskipun clock-nya tidak bekerja. g. AVCC Pada pin ini memiliki fungsi sebagai pemberi tegangan untuk ADC. Untuk pin ini harus dihubungkan secara terpisah dengan VCC karena pin ini digunakan untuk analog saja. Bahkan jika ADC pada AVR tidak digunakan, tetap saja disarankan untuk menghubungkan secara terpisah dengan VCC. Cara menghubungkan AVCC adalah me lewati low-pass filter setelah itu dihubungkan dengan VCC. h. AREFF Merupakan pin referensi analog jika menggunakan ADC. 18 Pada AVR status register mengandung beberapa informasi mengenai hasil dari kebanyakan hasil eksekusi instruksi aritmatik. Informasi ini dapat digunakan untuk mengubah arus program sebagai peningkat performa pengoperasian. Perlu diketahui bahwa register ini di-update setelah semua operasi ALU (Arithmetic Logic Unit). Hal tersebut seperti yang telah tertulis dalam data sheet khususnya pada bagian Instuction Set Reference. Dalam hal ini untuk beberapa kasus dapat membuang kebutuhan penggunaan instruksi perbandingan yang telah didedikasikan serta dapat menghasilkan peningkatan dalam hal kecepatan dan kode yang lebih sederhana dan singkat. Register ini tidak secara otomatis tersimpan ketika memasuki sebuah rutin interupsi dan juga ketika menjalankan sebuah perintah setelah kembali dari interupsi. Namun hal tersebut harus dilakukan melalui software. Berikut adalah gambar Status Register. Gambar 2.3 Status Register ATmega8 Akan dijelaskan kegunaan dari masing-masing bit yang terlihat diatas : a. Bit 7 (I) Merupakan bit Global Interrupt Enable. Bit ini harus di-set supaya semua perintah interupsi dapat dijalankan. Untuk fungsi interupsi individual akan dijelaskan pada bagian yang lain. Jika bit ini di-reset, maka semua perintah interupsi baik yang individual maupun yang secara umum akan diabaikan. Bit ini akan dibersihkan atau cleared oleh hardware setelah sebuah interupsi 19 dijalankan dan akan di-set kembali oleh perintah RETI. Bit ini juga dapat diset dan di-reset melalui aplikasi dengan instruksi SEI dan CLI.. b. Bit 6 (T) Merupakan bit Copy Storage. Instruksi bit Copy Instructions BLD (Bit Load) dan BST (Bit Store) menggunakan bit ini sebagai asal atau tujuan untuk bit yang telah dioperasikan. Sebuah bit dari sebuah register dalam register file dapat disalin ke dalam bit ini dengan menggunakan instruksi BST, dan sebuah bit di dalam bit ini dapat disalin ke dalam sebuah bit di dalam register pada register file dengan menggunakan perintah BLD. c. Bit 5 (H) Merupakan bit Half Carry Flag. Bit ini menandakan sebuah Half Carry dalam beberapa operasi aritmatika. Bit ini berfungsi dalam aritmatika BCD. d. Bit 4 (S) Merupakan sign bit. Bit ini selalu merupakan sebuah eksklusif di antara Negative Flag (N) dan Two’s Complement Overflow Flag (V). S = N + V . e. Bit 3 (S) Merupakan bit Two’s Complement Overflow Flag. Bit ini menyediakan fungsi aritmatika dua komplemen f. Bit 2 (N) Merupakan bit Negative Flag. Bit ini mengindikasikan sebuah hasil negative di dalam sebuah fungsi logika atau aritmatika g. Bit 1 (Z) Merupakan bit Zero Flag. Bit ini mengindikasikan sebuah hasil nol “0” dalam sebuah fungsi aritmatika atau logika 20 h. Bit 0 (C) Merupakan bit Carry Flag. Bit ini mengindikasikan sebuah Carry atau sisa dalam sebuah fungsi aritmatika dan logika. 2.2 Pe rangkat Lunak BASCOM Pada tahun 1995 MCS mulai menjual BASCOM-LT, compiler BASIC untuk Windows 3.1. Itu adalah aplikasi Windows pertama yang menawarkan solusi lengkap dan terjangkau: editor, compiler, simulator dan pemrogram. BASCOMLT adalah 8.051 BASIC compiler. Untuk menggunakan layar LCD sangat sederhana, hanya satu baris konfigurasi untuk menentukan pin yang digunakan. Dan ketika Anda membutuhkan layar LCD yang berbeda, Anda hanya bisa mengubah baris CONFIG . Ketika windows 95 menjadi lebih merupakan standar industri, dengan versi 32 bit. Jadi BASCOM-LT ditulis ulang untuk sebagian besar dan juga mendukung untuk array dan floating point (single) pun ditambahkan. Banyak perbedaan varian 8051 membuat tidak mungkin untuk mendukung semua chip tetapi file DAT yang mudah untuk ditambahkan oleh pengguna. Ketika meluncurkan chip Atmel AVR, compiler 8051 ditulis ulang sekali lagi untuk mendukung chip AVR yang kuat. Hasilnya adalah B ASCOM-AVR. 2.2.1 Compiler BASCOM -AVR Compiler program yang digunakan adalah BASCOM-AVR. BASCOMAVR adalah program BASIC compiler berbasis Windows untuk mikrokontroler ATmeg48, ATmega dan yang lainnya. BASCOM-AVR merupakan 21 pemprograman dengan bahasa tingkat tinggi BASIC yang dikembangkan dan dikeluarkan oleh MSC Elecktronik. Gambar 2.4 Tampilan Compiler BASCOM-AVR 2.2.2 Karakter Dalam BASCOM Dalam program BASCOM, karakter dasarnya terdiri atas karakter alphabet (A-Z dan a-z), karakter numeric (0-9), dan karakter special. Tabel 2.4 Karakter Spesial Karakter Nama Blank ‘ Apostrophe 22 * Asterisk (symbol perkalian) + Plus sign , Comma*+,-_/: ? – Minus sign ? Period (decimal point) / Slash (division symbol) will be handled as\ : Colon “ Double quatation mark ; Semicolon < Less than = Equal sign (assignment symbol or relational operator) > Greater than \ Backspace (integer or word division symbol ) ! ?? 2.2.3 Tipe Data Setiap variabel dalam BASCOM memiliki tipe data yang menunjukan daya tampungnya. Hal ini berhubungan dengan penggunaan memori mikrokontroler. Berikut adalah tipe data pada BASCOM berikut keterangannya. Tabel 2.5 Tipe Data BASCOM Tipe Data Ukuran (byte) Range Bit 1/8 - Byte 1 0 – 255 Integer 2 -32,768 - +32,767 World 2 0 – 65535 Long 4 -214783648 -+2147483647 Single 4 - String Hingga 254 byte - 23 2.2.4 Variabel Variabel dalam sebuah pemograman berfungsi sebagai tempat penyimpan data atau penampungan data sementara, misalnya menampung hasil perhitungan, menampung data hasil pembacaan register, dan lainnya. Variabel merupakan pointer yang menunjukan pada alamat memori fisik dan mikrokontroler. Dalam BASCOM, ada beberapa aturan dalam penamaan sebuah variabel : a. Nama variabel maksimum terdiri atas 32 karakter. b. Karakter biasa berupa angka atau huruf. c. Nama variabel harus dimulai dengan huruf. d. Variabel tidak boleh menggunakan kata-kata yang digunakan oleh BASCOM, sebagai perintah, pernyataan, internal register, dan nama operator ( AND, OR, DIM, dan lain-lain ). Sebelum digunaka n, maka variabel harus dideklarasikan terlebih dahulu. Dalam BASCOM, ada beberapa cara untuk mendeklarasikan sebuah variabel. Cara pertama adalah menggunakan pernyataan ‘DIM’ diikuti nama tipe datanya. Contoh pe ndeklarasian menggunakan DIM sebagai berikut : Dim Siklus_ke As Word Dim Langkah As Byte Dim A As Byte Dim Off_time(6)as Byte Dim P As Byte 2.2 .5 Alias Dengan menggunakan alias, variabel yang sama dapat diberikan nama yang lain. Tujuannya adalah mempermudah proses pem programan. Umumnya alias 24 digunakan untuk mengganti nama variabel yang telah baku, seperti port mikrokontroler. LEDBAR alias P 1 Tombol1 alias P0.1 Tombol2 alias P0.2 Dengan deklarasi seperti diatas, perubahan pada tombol akan mengubah kondisi PO.1. Selain mengganti nama port, kita dapa t pula menggunakan alias untuk mengakses bit tertentu dari sebuah variabel yang telah dideklarasikan. Dim LedBar as byte Led1 as LedBar.0 Led2 as LedBar.1 Led3 as LedBar.2 2.2.6 Konstanta Dalam BASCOM, selain variabel kita mengenal pula konstanta. Konstanta merupakan variabel pula. Perbedaannya dengan variabel biasa adalah nilai yang dikandung tetap. Dengan konstanta, kode program yang kita buat akan lebih mudah dibaca dan dapat mencegah kesalahan penulisan pada program kita. Sama seperti variabel, agar konstanta bias dikenali oleh program, maka harus dideklarasikan terlebih dahulu. Berikut adalah cara pedeklarasian sebuah konstanta. Dim A As Const 5 Dim B1 As Const & B1001 Cara lain yang paling mudah : Const Cbyte = &HF Const Cint = -1000 Const Csingle = 1.1 Const Cstring = “test” 25 2.2.7 Array Dengan array, bisa menggunakan sekumpulan variabel dengan nama dan tipe yang sama. Untuk mengakses variabel tertentu dalam array, kita harus menggunakan indeks. Indeks harus berupa angka dengan tipe data byte, integer, atau word. Proses pendeklarasian sebuah array hampir sama dengan variabel, namun perbedaannya mengikutkan jumlah elemennya. Berikut adalah contoh pemakaian array; Dim kelas (10) as byte Dim c as integer For C = 1 To 10 a(c) = 1 To 10 p1 = a(c) Next Program diatas membuat sebuah array dengan nama ‘kelas’yang berisi 10 elemen (1-10) dan kemudian seluruh elemennya diisikan dengan nilai c yang berurutan. Untuk membacanya, menggunakan indeks dimana elemen disimpan. Pada progra m diatas, elemen-elemen array dikeluarkan ke port 1 dari mikrokontroler. 2.2.8 Operasi-operasi Dalam BASCOM Pada bagian ini akan dibahas tentang cara menggabungkan, memodifikasi, membandingkan, atau mendapatkan informasi tentang sebuah pernyataan dengan menggunakan operator-operator yang tersedia di BASCOM dan bagaimana sebuah pernyataan terbentuk dan dihasilkan dari operator-operator berikut : a. Operator Aritmatika Operator digunakan dalam perhitungan. Operator aritmatika meliputi 26 +( tambah) , - ( kurang), / (bagi), dan * ( kali). b. Operator Relasi Operator berfungsi membandingkan nilai sebuah angka. Hasilnya dapat digunakan untuk membuat keputusan sesuai dengan program yang dibuat. Operator relasi meliputi : Tabel 2.6 Operator Relasi Operator = <> < > <= >= Relasi Sama dengan Tidak sama denga n Lebih kecil dari Lebih besar dari Lebih kecil atau sama dengan Lebih besar atau sama dengan Pernyataan X=Y X = <> Y X<Y X>Y X <= Y X >= Y c. Operator Logika Operator digunakan untuk menguji sebuah kondisi atau memanipulasi bit dan operasi bolean. Dala m BASCOM, ada empat buat operator logika, yaitu AND, OR, NOT, dan XOR. Operator logika bias pula digunakan untuk menguji sebuah byte dengan pola bit tertentu, sebagai contoh : Dim A As Byte A = 63 And 19 PPRINT A A = 10 or 9 PRTINT A Output 16 11 d. Operasi Fungsi Operasi fungsi digunakan untuk melengkapi operator yang sedehana. 27 2.3 Software Downloader ( Khazama AVR Programmer) Khazama AVR Programmer merupakan software yang difungsikan sebagai pengirim bilangan-bilangan heksadesimal ke IC ATmega8 dengan melalui rangkaian mikrokontroler yang telah dirancang. Gambar 2.5 Menu Pemilihan AVR Gambar 2.6 Menu View Khazama 28 Cara menggunakannya adalah dengan cara meng-klik menu IC AVR terlebih dahulu di open File -> AVR -> Mega dan lalu pilih IC AVR yang digunakan, contoh ATmega8 atau ATmega48. Setelah AVR menu dipilih maka masukan File Program yang telah dirancang di Software BASCOM-AVR melalui View -> View Flash Hex Data atau View EEPROM Hex Data . Jika program mikrokontroler telah terprogram di AVR Khazama maka software sudah siap untuk di inject ke IC dengan mengklik “Auto Program” di software AVR khazama 2.4 Regulator Tegangan Regulator tegangan menggunakan IC LM 78XX, yaitu regulator tegangan positif dengan 3 terminal yang dapat diperoleh dalam berbagai tegangan tetap sehingga dapat digunakan dengan jelajahan penerapan yang lebar. Seri ini dapat diperoleh dalam kemasan TO-3 aluminium yang dilengkapi dengan pembatas arus untuk membatasi arus keluaran puncak pada harga yang aman. Selain itu uj ga dilengkapi pengaman bagi daerah aman untuk transistor akhir guna membatasi borosan (disipasi) daya internal. Apabila borosan daya internal menjadi terlampau bagi benaman panas yang dikenakan, maka rangkaian penindas termik mengambil alih dan mencegah IC menjadi terlampau panas. Karakteristik dari regulator 78XX : • arus keluaran maksimal 1 A, • pengamanan pembebanan lebih termik secara internal, • tidak diperlukan komponen eksternal tambahan, • terdapat pengaman daerah aman untuk transistor keluara n, 29 • pembatas arus hubung singkat, • dapat diperoleh dalam kemasan TO-3 aluminium. Gambar 2. 7 (a) Simbol IC 78XX (b) Koneksi Pin 78XX 2.5 Transistor Transistor adalah komponen aktif dengan arus, tegangan atau daya keluarannya dikendalikan oleh arus masukan. Didalam system komunikasi, tranistor digunakan sebagai penguat sinyal. Di dalam untai elektronis komputer transistor digunakan untuk saklar elektronis laju tinggi. Transistor terdiri dari 3 terminal yaitu basis, kolektor dan emitor. Ada dua jenis transistor yaitu pnp dan npn seperti terlihat Gambar 2.14. Gambar 2.8 (a) Simbol Transistor PNP (b) Simbol Transistor NPN 30 Penggunaan transistor sebagai saklar yaitu dengan memanfaatkan daerah jenuh (saturasi) dan daerah mati (cut off) transistor. Ketika transistor pada daerahjenuh, maka arus mengalir tanpa halangan dari kolektor menuju emitor, sedangkan arus kolektor jenuh. Kondisi ini menyerupai saklar pada kondisi tertutup (ON). Untuk membuat kondisi transistor konduksi diperlukan arus basis. Gambar 2.9 (a) Transistor Kondisi ON (b) Ekuivalen Saklar Tertutup Pada kondisi transistor non konduktif (cut off) akan menyerupai saklar pada kondisi terbuka (OFF). Konduksi non konduktif diperoleh dengan cara tidak memberikan bias pada basis atau dengan cara memberi tegangan balik emitor pada basis. Gambar 2.10 (a) Transistor Kondisi OFF (b) Ekuivalen Saklar Terbuka 31 2.6 Saklar 2.6 .1 Saklar Tekan (push button) Tombol tekan (push button ) merupakan komponen mekanis yang dapat digunakan sebagai sarana untuk memberikan logika data. Tombol ini hanya memberikan kondisi sesaat dalam menentukan logika data. Jadi setelah penekanan dalam memberi logika, maka kondisi saklar kembali ke posisi semula. Gambar 2.11 Push Button 2.6 .2 Saklar Geser (Toggle Switch) Saklar adalah sebuah perangkat yang digunakan untuk memutuskan jaringan listrik, atau untuk menghubungkannya. Jadi saklar pada dasarnya adalah alat penyambung atau pemutus aliran listrik. Selain untuk jaringan listrik arus kuat, saklar berbentuk kecil juga dipakai untuk alat komponen elektronika arus lemah. Secara sederhana, saklar terdiri dari dua bilah logam yang menempel pada suatu rangkaian, dan bisa terhubung atau terpisah sesuai dengan keadaan sambung (on) atau putus (off) dalam rangkaian itu. Material kontak sambungan umumnya dipilih agar supaya tahan terhadap korosi. Kalau logam yang dipakai terbuat dari bahan oksida biasa, maka saklar akan sering tidak bekerja. Untuk mengurangi efek korosi ini, paling tidak logam kontaknya harus disepuh dengan logam anti korosi dan anti karat. Pada dasarnya saklar tombol bisa diaplikasikan untuk sensor 32 mekanik, karena alat ini bisa dipakai pada mikrokontroller untuk pengaturan rangkaian pengontrolan. Gambar 2.12 Saklar Geser (Toggle Switch) 2.7 Penampil Seven Segment Penampil seven segment paling banyak digunakan pada aplikasi mikrokontroler yang digunakan untuk menampilkan bilangan BCD yaitu pengubahan bilangan biner ke bentuk desimal. Penampil seven segment terdiri dari 7 buah LED dan menge nai macamnya ada dua buah seven segment yaitu common anoda dan common katoda. Untuk menyalakan seven segment common anoda (CA) tegangan di katoda lebih rendah dari pada di anoda sedangkan pada common katoda (CC) tegangan di anoda harus lebih tinggi dari pa da tegangan di katoda. Seven segment ini digunakan sebagai output counter pada mikrokontroler dan dapat juga menampilkan karakter / alfanumerik sesuai dengan keinginan. Gambar 2.13 : Penampil Seven Segment Gambar 2.13 Penampil Seven Segment 33 Seven segment terdiri dari 2 common yaitu common anoda dan common katoda. Gambar 2.14 Schematic Diagram Common Anoda Gambar 2.15 Schematic Diagram Common Katoda 2.8 Relay Relay merupakan saklar elektronis yang kerjanya berdasarkan perubahan medan magnet. Dalam relay terdapat kumparan, bilamana kumparan tersebut dialiri arus listrik maka akan menimbulkan medan magnet yang akan menggerakkan saklar mekanis. Biasanya relay digerakkan oleh bantuan transistor, yang akan mengaktif-tidakkan relay. Jadi yang dikontrol disini adalah transistornya seperti yang dibahas pada transistor sebagai saklar LS2 CENTRE 1 2 3 RB 2 TRA RELAY 1 V IN 5 T1 4 T2 3 VCC Gambar 2.16 Relay Mekanis 34 2.9 Resistor Variabel Nilai resistansi resistor jenis ini dapat diatur dengan tangan, bila pengaturan dapat dilakukan setiap saat oleh operator (ada tombol pengatur) dinamakan potensiometer dan apabila pengaturan dilakukan dengan obeng dinamakan trimmer potensiometer (trimpot). Tahanan dalam potensiometer dapat dibuat dari bahan carbon dan ada juga dibuat dari gulungan kawat yang disebut potensiom eter wirewound. Untuk digunakan pada voltage yang tinggi biasanya lebih disukai jenis wirewound. Gambar 2.17 Resistor Variabel 2.10 Kristal Dalam pesawat radio, kristal banyak digunakan pada pembangkit frekuensi tinggi (osilator) agar frekuensi osilator dapat dipertahankan stabil, disamping frekuensi yang stabil, suatu osilator kristal mempunyai bandwidth yang sangat sempit. Kristal yang dipakai dalam pesawat radio kebanyakan adalah sekeping potongan kristal quartz. Frekuensi resonansinya tergantung pada ketebalan kepingannya, misalnya untuk 7 MHz ketebalannya sekitar 0.9 mm. Seperti kita ketahui bersama bahwa suatu kristal quartz dapat memberikan efek piezoelectric . Material piezoelectric yang lain adalah garam Rochelle atau 35 nama kimianya Kalium Natrium Tartrat, kristal semacam ini kebanyakan digunakan untuk microphon e atau untuk speaker headphone. Untuk membuat kristal dengan frekuensi yang tinggi (di atas 20 MHz) agak sulit membuat ketebalan yang akurat. Biasanya untuk frekuensi tinggi digunakan kristal dengan frekuensi dibawah, selanjutnya pada osilator diberikan filter sehingga menghasilkan output harmonicnya. Kristal yang bekerja pada frekuensi sesuai ketebalan kepingan kristal disebut kristal fundamental dan kristal yang bekerja 3 atau 5 kalinya disebut overtone. Disamping penggunaannya sebagai osilator, microphone dan speaker, kristal juga digunakan sebagai filter. Kristal filter terdiri atas suatu rangkaian kristal berupa ladder filter atau rangkaian lattice filter. Gambar 2.18 Kristal 2.11 Universal Serial Bus (USB) Universal Serial Bus adalah standar bus serial untuk perangkat penghubung, biasanya kepada komputer namun juga digunakan di peralatan lainnya seperti konsol permainan, ponsel dan PDA. Sistem USB mempunyai desain yang asimetris, yang terdiri dari pengontrol host dan beberapa peralatan terhubung yang berbe ntuk pohon dengan menggunakan peralatan hub yang khusus. 36 Desain USB ditujukan untuk menghilangkan perlunya penambahan expansion card ke ISA komputer atau bus PCI, dan memperbaiki kemampuan plug-and-play (pasang-dan-mainkan) dengan memperbolehkan peralatan- peralatan ditukar atau ditambah ke sistem tanpa perlu me reboot komputer. Ketika USB dipasang, ia langsung dikenal sistem komputer dan memroses device driver yang diperlukan untuk menjalankannya. USB dapat menghubungkan peralatan tambahan komputer seperti mouse, keyboard , pemindai gambar, kamera digital, printer, hard disk, dan komponen networking. USB kini telah menjadi standar bagi peralatan multimedia seperti pemindai gambar dan kamera digital. USB adalah host-centric bus di mana host/terminal induk memulai semua transaksi. Paket pertama/penanda (token) awal dihasilkan oleh terminal untuk menjelaskan apakah paket yang mengikutinya akan dibaca atau ditulis dan apa tujuan dari perangkat dan titik akhir. Paket berikutnya adalah data paket yang akan melaporkan apakah data atau penanda sudah diterima dengan baik atau pun titik akhir gagal menerima data dengan baik. Setiap proses transaksi pada USB terdiri atas: · Paket token/sinyal penanda (Header yang menjelaskan data yang mengikutinya) · Pilihan paket data (termasuk tingkat muatan) dan · Status paket (untuk acknowledge/pemberitahuan hasil transaksi dan untuk koreksi kesalahan) 37 Nomor kaki (dilihat pada soket): Gambar 2.19 Pin USB Tabel 2.7 Penetapan Pin USB Penetapan kaki Kaki 1 2 3 Fungsi (4.75–5.25 V) VBUS DD+ 4 Shell GND Shield 2.12 Infra Merah (Infra-Red Light) Sebenarnya cahaya infra merah adalah cahaya biasa yang mempunyai spectrum di bawah sinar tampak. Manusia tidak mampu melihat cahaya ini karena panjang gelombang cahaya ini adalah 950nm, dibawah spektrum sinyal tampak. Ini menjadi salah satu alasan kenapa sinyal infra merah dipilih dalam penggunaan remote control, pemakai bisa merasakan efeknya, akan tetapi tidak bisa melihatnya. Alasan lainnya adalah IR LED (Infra Red Light Emmiting Diode) mudah dibuat dan sangat murah. Meskipun manusia tidak mampu melihat sinar infra merah, bukan berarti tidak bisa membuatnya menjadi tampak. Sebuah video kamera atau digital foto dapat 38 "melihat"nya, sebagaimana diperlihat pada gambar dibawah ini. Kamera mampu menerima cahaya infra merah dengan baik Gambar 2.20 Infra Merah 2.13 Penerima Sinyal Infra-Merah (IR) Sebenarnya banyak konsep rangkaian yang digunakan, tetapi yang paling umum digunakan adalah seperti dibawah. Gambar 2.21 Blok Diagram Penerima IR Pada gambar di atas dapat dilihat blok diagram dari Penerima IR. Blok diagram diatas telah dibuat menjadi hanya 1 komponen saja. Gelombang sinar infra merah diambil oleh diode dete ktor infra merah pada sisi paling kiri dari diagram di atas. Sinyal ini lalu diperkuat dan dibatasi levelnya. Pembatas level (limiter) bekerja sebagaimana yang akan mengatur rangkaian agar memperoleh level pulsa yang konstan, tergantung kuat lemah sinyal dan banyaknya gangguan noise. Hanya sinyal AC yang akan diteruskan ke Blok BPF (Band Pass Filter). 39 BPF ini diatur pada frekuensi tertentu. Umumnya antara 30kHz hingga 60kHz. lebih lazim lagi adalah 37,9kHz. Gambar 2.22 Penerima Remote (IR Remote Control) 2.14 Rangkaian Power Supply Rangkaian power supply yang dibuat oleh perancang terdiri dari transformator, rangkaian penyearah, filter dan regulator. Gambar 2.23 Rangkaian Power Supply Jenis transformator yang digunakan adalah transformator CT. Jenis transformer ini akan mengubah tegangan 220 V AC pada sisi primer menjadi dua buah tegangan 12 V AC yang berbeda fase sebesar 180° pada sisi sekundernya. Selain kedua tegangan tersebut pada sisi sekunder dari transformer tedapat terminal CT yang digunakan sebagai ground (GND). 40 Selain transformator CT, untuk menghasilkan tegangan simetris maka diperlukan rangkaian penyearah jembatan yang terdiri dari 4 buah dioda 1N4001. Penyearah jembatan ini akan mengubah tegangan AC menjadi tegangan DC. Dioda 1N4001 memiliki kemampuan menghantar arus sebesar 1 Ampere. Tegangan DC yang dihasilkan oleh penyearah jembatan berupa tegangan DC dengan riak (ripple) yang relatif besar. Untuk mengurangi riak (ripple) pada tegangan DC diperlukan suatu penapis (filter ). Rangkaian penapis (filter) berupa rangkaian kapasitor yang dipasang sebelum dan sesudah IC regulator. Kapasitor yang digunakan sebagai filter memiliki nilai 1000 µF / 35 V. Sementara untuk menjaga tegangan agar berada pada nilai tegangan yang dikehendaki maka diperlukan IC regula tor tegangan. Untuk tegangan sebesar 12V yang dihasilkan oleh rangkaian penyearah dan filter kemudian diturunkan level tegangannya dengan menggunakan IC LM7809 untuk mengurangi level tegangannya dari 12V ke 9V, dan dari tegangan 9V diturunkan lagi ke tega ngan 5V maka digunakan IC regulator LM7805. Pada IC LM7809 disamping digunakan untuk menurunkan tegangan, IC regulator tersebut pun untuk mencegah panas yang terjadi pada komponen LM7805.