BAB 2
LANDASAN TEORI Landasan teori sangat membantu untuk dapat memahami suatu sistem. Selain dari pada itu dapat juga dijadikan sebagai bahan acuan didalam merencanakan suatu sistem. Dengan pertimbangan hal-hal tersebut, maka landasan teori merupakan bagian yang harus dipahami untuk pembahasan selanjutnya. Pengetahuan yang mendukung perencanaan dan realisasi alat meliputi mikrokontroler ATMega 8A, sensor cahaya LDR, LCD dan program.
2.1.
CAHAYA Cahaya adalah suatu bentuk pancaran energi yang mana mempunyai
kapasitas arau kemampuan untuk merangsag sensasi penglihatan. Cahaya dari kebanyakan sumber adalah tidak terpolarisasi yang berarti bahwa arah dari medan βE dan medan βB adalah acak, bahkan ketika cahaya bergerak dalam arah yang sama. Pada cahaya yang terpolarisasi, gelombang cahayanya mempunyai medan listrik dan medan magnetik yang bersekutu (gambar 2.1). Salah satu dari sekian banyak cara agar cahaya menjadi terpolarisasi adalah dengan menembus sebuah filter polarisasi. Filter polarisasi merupakan lembaranlembaran plastik dengan berjuta-juta molekul memanjang linear yang bersekutu. Apabila cahaya menembus filter polarisasi, gelombang-gelombang cahaya yang medan listriknya sejajar terhadap molekul-molekul tersebutt membentuk arus di dalam molekul dan kemudian diserap. Gelombang-gelombang cahaya yang medan listriknya tegak lurus terhadap molekul-molekul tersebut tidak diserap. Tak terpolarisasi
Terpolarisasi
Gambar 2.1 Cahaya yang tak terpolarisasi dan cahaya yang terpolarisasi
Universitas Sumatera Utara
7
Cahaya merupakan gelombang elektromagnetik yang dapat dilihat dengan mata. Suatu sumber cahaya memancarkan energy, sebagaian dari energy ini diubah menjadi cahaya tampak. Perambatan cahaya di ruang bebas dilakukan oleh gelombang elektromagnetik. Kecepatan rambat ( v ) gelombang elektromagnetik di ruang bebas sama dengan 3 x 108 meter per detik. Jika frekuensi (f) dan panjang gelombang π΄π΄, maka berlaku :
Dimana
ππ =
π£π£
ππ
β¦β¦β¦β¦.1
π΄π΄ adalah panjang gelombang, dengan satuan meter (m)
v adalah kecepatan cahaya, dengan satuan meter per detik (m/s) f adalah frekunsi, dengan satuan hertz ( Hz ) Panjang gelombang cahaya tampak berkisar antara 350 namometer ( nm ) hingga 790 nanometer ( nm ). Yang terdiri atas beberapa daerah warna seperti yang terlihat pada gambar 2.2 berikut ini :
Gambar 2.2 Warna-warna spektrum
Cahaya putih dapat diuraikan menggunakan prisma kaca, sinar-sinarnya dibiaskan sedemikian rupa sehingga terjadi suatu spektrum. Warna-warna spektrum ini dinamakan cahaya satu warna atau cahaya monokrom. Warna-warna tersebut juga tampak pada pelangi, yang terjadi karena pembiasan cahaya oleh titik-titik air hujan.
Universitas Sumatera Utara
8
Selain memiliki warna tertentu, setiap panjang gelombang juga memiliki intensitas. Mata manusia paling peka cahaya dengan panjang gelombang 555 nm, yaitu cahaya berwarna kuning-hijau. Warna- warna yang lain dengan intensitas yang sama lebih redup, seperti yang terlihat pada grafik kepekaan mata gambar 2.3 berikut ini.
Gambar 2.3 Grafik Kepekaan Mata
2.2.LIGHT DEPENDENT RESISTOR ( LDR )
Sebuah light dependent resistor ( LDR ) terdiri dari sebuah piringan bahan semikonduktor dengan dua buah elektroda pada perumukaannya. Biasanya LDR terbuat dari bahan CdS, CdSe, PbS, dan Bi2Se3. Gambar 2.4 menunjukan salah satu bentuk LDR.
Gambar 2.4 Bentuk dan Simbol LDR Dalam gelap atau dibawah cahaya yang redup, bahan piringan hanya mengundang elektron bebas dalam jumlah yang relatif sangat kecil. Hanya tersedia sedikit elektron bebas untuk mengalirkan muatan listrik. Hal ini berarti bahwa bahan
Universitas Sumatera Utara
9
bersifat sebagai konduktor yang buruk untuk mengalirkan arus listrik. Dengan kata lain, nilai tahanan bahan sangat tinggi. Dibawah cahaya yang terang, lebih banyak elektron dapat melepaskan dari atom-atom bahan semikonduktor ini. Terdapat lebih banyak elektron bebas yang mengalirkan muatan listrik. Hal ini disebabkan adanya efek foto elektrik yaitu fenomena quantum elektron dimana elektron-elektron dipancarkan atau dilepas oleh suau bahan setelah menyerap energi dari radiasi gelombang elektromagnetik seperti sinar X atau cahaya tampak. Dalam keadaan ini, bahan bersifat sebagai konduktor yang baik. Tahanan listrik bahan rendah. Semakin terang cahaya yang mengenai bahan, semakin banyak electron bebas yang tersedia, dan semakin rendah pula tahanan listrik bahan. Gambar 2.5 menunjukan grafik hubungan antara intensitas cahaya terhadap resistansi LDR.
LOG (Ohms)
R ON
ILLUMINATION LOG (fc)
Gambar 2.5 Grafik Iluminasi Cahaya 2.2.1. Sensitivitas Sensitivitas suatu LDR berhubungan dengan cahaya yang mengenainya dan hasil output sinyalnya. Resistansi LDR pada suatu tingkat intensitas cahaya tertentu, seperti yang ditunjukan pada gambar 2.6, ditemukan dengan formula berikut :
Dimana
π
π
π»π» = π·π·π»π»
π€π€ ππ
β¦β¦β¦β¦β¦ 2
RH adalah resistansi LDR pada intensitas cahaya level H π₯π₯H adalah data sensitivitas bahan LDR pada intensitas cahaya level H
w adalah lebar celah elektroda
l adalah panjang celah elektroda
Universitas Sumatera Utara
10
Gambar 2.6 Geometri Elektroda Permukaan LDR Pada gambar 2.6 diatas bahwa bagian yang sensitif terhadap perubahan cahaya, dibentuk dalam struktur yang berliku-liku, hal ini dimaksudkan agar resolusi tahananya dapat sekecil mungkin.
2.2.2. Spektrum Respons Seperti halnya mata manusia, sensitivitas LDR juga tergantung dari panjang gelombang cahaya yang mengenainya. Masing-masing jenis material bahan semikonduktor LDR mempunyai grafik spektrum respons sendiri. Gambar 2.7 menunjukan grafik respons suatu jenis LDR yang banyak dipasaran terhadap spektrum panjang gelombang cahaya.
Gambar 2.7 Grafik Respon LDR 2.2.3. Kecepatan Respons Kecepatan respons adalah pengukuran kecepatan saat LDR merespons perubahan cahaya dari terang ke gelap atau dari gelap ke terang. Seperti yang ditunjukkan pada gambar 2.8 Waktu naik didefinisikan sebagai waktu yang
Universitas Sumatera Utara
11
diperlukan konduktansi cahaya pada LDR untuk mencapai 1 β e-1 ( sekitar 63 % ) dari nilai akhirnya. Waktu turun didefinisikan sebagai waktu yang diperlukan konduktansi cahaya pada LDR untuk menurun sampai e-1 ( sekitar 37 % ) dari keadaan teriluminasi, dimana e adalah bilangan Euler yang besarnya 2,718. Pada 1 fc ( footcandela ) iluminasi, waktu respons sekitar 5 msec sampai 100 msec. Untuk kerja kecepatan respons suatu LDR berkaian dengan sifat dari bahan semikonduktor pembentuknya, yaitu sifat carrier lifetime bahan semikonduktor. Pada beberapa semikonduktor, hole-electron berpasang-pasangan pada suatu suhu ruangan. Pembuatan electron dan hole pada bahan semikonduktor akan memerlukan energi. Ketika
electron terbentuk maka
hole pun akan terbentuk. Energi untuk
membangkitkan terbentuknya electron dan hole tersebut dapat berupa energi panas ataupun energi yang dihasilkan dari cahaya yang mengenai bahan semikonduktor tersebut. Pengukuran lamanya waktu untuk berekombinasi kembali antara hole dan electron seperti keadaan sebelumnya setelah energi pembangkitnya hilang dinamakan carrier lifetime. Response Time vs Illumination (Rise Time)
Response Time vs Illumination (Decay Time)
1
0,1
0,5
0,05 0
0 0
0,01
0,1
1
10
100
0 0,01 0,1
1
10 100
Gambar 2.8 Grafik Respons Waktu Kecepatan respons juga dipengaruhi oleh terang redupnya cahaya. Semua jenis material LDR menunjukan kecepatan responsnya lebih tinggi saat level cahaya lebih terang dan kecepatan lebih rendah saat cahaya lebih redup. Penyimpanan LDR di ruang yang gelap akan menyebabkan respons lebih lambat dari pada penyimpanan diruang yang terang.
Universitas Sumatera Utara
12
2.3.
MIKROKONTROLER Mikrontroler merupakan sistem computer yang seluruh atau sebagian besar
elemenya dikemas dalam satu chip IC, sehingga sering juga disebut dengan single chip microcomputer. Mikrokontroler biasa dikelompokkan dalam satu keluarga, masing-masing mikrokontroler mempunyai spesifikasi tersendiri namun masik kompatibel dengan pemrogramannya. Pada saat ini penggunaan mikrokontroler dapat kita temui pada berbagai peralatan, misalnya peralatan yang terdapat dirumah, seperti telepon digital, micromave oven, televisi, mesin cuci, sistem keamanan rumah, PDA,dll. Mikrokontroler dapat kita gunakan untuk berbagai aplikasi mislnya untuk pengendalian, otomasi industry, akuisisi data, telekomunikasi dan lain-lain. Keuntungan menggunakan mikrokontroler yaitu harganya murah, dapat deprogram berulang kali, dan dapat kita program sesuai dengan keinginan kita. Saat ini keluarga mikrokontroler yang ada dipasaran yaitu Intel 8084 dan 8051 (MCS51), Motorola 68HC11, Microchip PIC, Hitachi H8, dan Atmel AVR. 2.3.1. Sejarah Mikrokontroler Mikrokontroler dikembangkan dari mikroprosesor. Berikut ini sejarah perkembangan teknologi mikroprosesor dan mikrokontroler. β’
Tahun 1617, John Napier menemukan sistem untuk melakukan perkalian dan pembagian berdasarkan logaritma.
β’
Tahun 1694, Gottfriend Wilhelm Leibniz membuat mesin mekanik yang dapat melakukan operasi +, - , * , / , dan akar kuadrat.
β’
Tahun 1835, Charles Babbage mengusulkan computer digital pertama didunia menggunakan punched card untuk data dan instruksi, serta program control dengan unit aritmatika dan unit penyimpanan.
β’
Tahun 1850, George Boole mengembangkan symbolic logic termasuk operasi binary ( AND, OR, dll ).
Universitas Sumatera Utara
13
β’
Tahun 1946, Von Neumann menyarankan bahwa instruksi menjadi kode numerik yang disimpan pada memori. Komputer dan semua desain mikrokontroler didasarkan pada komputer Von Neumann.
β’
Tahun 1948, Transistor ditemukan. Dengan dikembangkannya konsep software, pada tahun 1948 mulai adanya perkembangan hardware penting seperti transistor.
β’
Tahun 1959, IC (Intergrated Circuit) pertama dibuat.
β’
Tahun 1971, Intel 4004 dibuat, yang merupakan Mikroprosesor pertama. Terdiri dari 2250 transistor. Kemudian Intel membuat Intel 8008, mikroposesor 8 bit. Semakin besar ukuran bit berarti mikroprosesor dapat memproses lebih banyak data.
β’
Tahun 1972, TMS 1000, buatan Texas Instrumen, Mikrokontroler pertama yang dibuat.
β’
Tahun 1974, beberapa pabrikan IC menawarkan mikroposesor dan pengendalian menggunakan mikroprosesor yang ditawarkan pada saat itu yaitu 8080,8085, Motorola 6800, signetics 6502, Zilog z80,dan Texas Instruments 9900 ( 16 bit ).
β’
Tahun 1978, mikroprosesor 16 bit menjadi lebih umum digunakan yaitu Intel 8086, Motorola 68000 dan Zilog Z8000. Sejak saat pabrikmikroprosesor
terus
mengembangkan
mikroprosesor
itu
dengan
berbagai keistimewaan dan arsitektur. Mikroprosesor yang dikembangkan termasuk mikroprosesor 32 bit seperti Intel Pentium, Motorola Dragon Ball, dan beberapa mikrokontroler yang menggunakan ARM core.
2.3.2. Mikrokontroler ATMEGA 8 ATmega8 adalah low power mikrokontroler 8 bit dengan arsitektur RISC. Mikrokontroler ini dapat mengeksekusi perintah dalam satu periode clock untuk seyiap instruksi. Berikut ini adalah contoh gambar
ATmega8
yang
terdapat
pada gambar 2.9 di bawah ini.
Universitas Sumatera Utara
14
Gambar 2.9. ATMEGA 8 Mikrokontroler ini diproduksi oleh atmel dari seri AVR. Untuk seri AVR ini banyak jenisnya, yaitu ATmega8, ATmega8535, Mega8515, Mega16, dan lainlain. Mikrokontroler ATmega8 ini sangat murah dan mempunyai fasilitas yang sangat memadai untuk mengembangkan berbagai aplikasi. Keuntungan lainya dalam menggunakan ATMEGA8 ini, jika ada perubahan cara kerja sistem maka kita tidak perlu merubah rangkaianya, tetapi hanya dengan merubah Program - program yang lama dengan memasukan program - program atau instruksi yang baru.
2.3.3. Fitur ATMEGA 8 Beberapa fitur dari ATmega8 adalah sebagai berikut : 1. Mikrokontroler AVR 8 bit yang memiliki kemampuan tinggi, dengan daya rendah. 2. Arsitektur RISC dengan throughput mencapai 8 MIPS pada frekuensi 8 Mhz. 3. Memiliki kapasitas Flash Program 8 Kbyte, EEPROM 512 Byte dan SRAM 1 KByte. 4. Saluran I/O sebanyak 22 buah yaitu Port B, Port C, dan Port D. 5. CPU yang terdiri atas 22 buah register. 6. Unit interupsi internal dan eksternal. 7. Port USART untuk komunikasi serial. 8. Fitur Peripheral β’
Tiga buah Timer/Counter dengan kemampuan perbandingan.
Universitas Sumatera Utara
15
-
2 ( dua ) buah Timer/Counter 8 bit dengan Prescaler terpisah dan Mode Compare.
-
1 ( satu ) buah Timer/Counter 16 bit dengan Prescaler terpisah, Mode Compare, dan Mode Capture.
β’
Real Time Counter dengan Osillator tersendiri.
β’
4 channel PWM.
β’
8 Channel, 10 bit ADC.
β’
Byte-oriented Two-wire Serial Interface.
β’
Programmable Serial USART.
β’
Antarmuka SPI.
β’
Watchdog Timer dengan oscillator internal.
β’
On-chip Analog Comparator.
2.3.4. Konfigurasi Pin AVR ATMEGA 8 Konfigurasi kaki (pin) Atmega 8 dapat dilihat pada gambar 2.10 dibawah ini :
Gambar 2.10 Konfigurasi kaki ( pin ) atmega 8 ATmega8 memiliki 28 Pin, yang masing-masing pin nya memiliki fungsi yang berbeda-beda baik sebagai port maupun fungsi yang lainnya. Berikut akan dijelaskan fungsi dari masing-masing kaki ATmega8. 1. VCC merupakan pin yang berfungsi sebagai masukan catu daya. 2. GND merupakan pin Ground. 3. Port B (PB7...PB0) Didalam Port B terdapat XTAL1, XTAL2, TOSC1, TOSC2. Jumlah Port B
Universitas Sumatera Utara
16
adalah 8 buah pin, mulai dari pin B.0 sampai dengan B.7. Tiap pin dapat digunakan
sebagai input maupun output. Port B merupakan
sebuah 8-bit bi-directional I/O dengan internal pull-up resistor. Sebagai input, pin-pin yang terdapat pada port B yang secara eksternal diturunkan, maka akan mengeluarkan arus jika pull-up resistor diaktifkan. Khusus PB6 dapat digunakan sebagai input Kristal (inverting oscillator amplifier) dan input ke rangkaian
clock
internal,
bergantung
pada
pengaturan
Fuse bit yang digunakan untuk memilih sumber clock. Sedangkan untuk
PB7
amplifier)
dapat digunakan sebagai output Kristal (output oscillator bergantung pada pengaturan Fuse bit yang digunakan untuk
memilih sumber clock. Jika sumber clock yang dipilih dari oscillator internal, PB7 dan PB6 dapat digunakan sebagai I/O atau jika menggunakan Asyncronous Timer/Counter2 maka PB6 dan PB7 (TOSC2 dan TOSC1) digunakan untuk saluran input timer. Fungsi- fungsi Port B dapat dilihat lebih mudah seperti pada table di bawah ini : Tabel 2.1 Fungsi khusus Port B Pin PB7 PB6 PB5 PB4 PB3
PB2 PB1 PB0
Fungsi Khusus Merupakan pin masukan clock eksternal TOSC1 ( Timer Oscillator Pin 1 ) Merupakan pin masukan clock eksternal TOSC2 ( Timer Oscillator Pin 2 ) SCK ( SPI Bus Serial Clock ) MISO ( SPI Bus Master Input / Slave Output ) MOSI ( SPI Bus Master Output / Slave Input ) OC2 ( Timer/ Counter2 Output Compare Match Output ) οΏ½οΏ½οΏ½ ( SPI Slave Select Input ) .ππππ OC1 B ( Timer/Counter1 Output Compare B Match Output ) OC1 A ( Timer/Counter1 Output Compare A Match Output ) ICP ( Timer/Counter1 Input Capture Pin )
4. Port C (PC6β¦PC0) Port C merupakan sebuah 7-bit bi-directional I/O port yang di dalam
Universitas Sumatera Utara
17
masing- masing pin terdapat pull-up resistor. Jumlah pin nya hanya 7 buah mulai dari pin C.0 sampai dengan pin C.6. Sebagai keluaran/output port C memiliki karakteristik yang sama dalam hal menyerap arus (sink) ataupun mengeluarkan arus (source). Jika RSTDISBL Fuse diprogram, maka PC6 akan berfungsi sebagai pin I/O. Pin ini memiliki karakteristik yang berbeda dengan pin-pin yang terdapat pada port C lainnya. 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. 5. Port D ( PD7..PD0 ) 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. Fungsi- fungsi Port D dapat dilihat lebih mudah seperti pada table di bawah ini : Tabel 2.2 Fungsi khusus Port B Pin PD7 PD6 PD5 PD4 PD3 PD2 PD1 PD0
Fungsi Khusus AIN1 ( Analog Comparator Negative Input ) AIN0 ( Analog Comparator Positive Input ) T1 ( Timer/Counter1 External Counter Input ) XCK ( USART External Clock Input/Output ) T0 ( Timer/Counter0 External Counter Input ) INT 1 ( External Interrupt 1 Input ) INT 0 ( External Interrupt 0 Input ) TXD ( USART Output Pin ) RXD ( USART Input Pin )
6. AVcc Pin ini berfungsi sebagai supply 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
Universitas Sumatera Utara
18
tetap saja disarankan untuk menghubungkannya secara terpisah dengan VCC. Jika ADC digunakan, maka AVcc harus dihubungkan ke VCC melalui low pass filter. 7. AREF Merupakan pin masukan tegangan referensi ADC.
2.3.5. Blok Diagram ATMEGA 8
Gambar 2.11 Blok Diagram Atmega 8
Universitas Sumatera Utara
19
2.3.6.
Arsitektur Mikrokontroler AVR RISC
Gambar 2.12 Arsitektur Mikrokontroler AVR RISC
Address Bus
Memori Program
Address Bus
CPU Data Bus
Memori Data Data Bus
Gambar 2.13 Arsitektur Harvard
Universitas Sumatera Utara
20
Dari gambar diatas AVR, menggunakan arsitektur Harvard dengan memisahkan antara memori dan bus untuk program dan data untuk memaksimalkan kemampuan dan kecepatan. Instruksi dalam memori program dieksekusi dengan pipelining single level . Dimana ketika satu instruksi dieksekusi, instruksi berikutnya diambil dari memori program. Konsep ini mengakibatkan instruksi dieksekusi setiap clock cycle. CPU terdiri dari 32 x 8 bit general purpose register yang dapat diakses dengan cepat dalam satu clock cycle, yang mengakibatkan operasi Arithmetic Logic Unit (ALU) dapat dilakukan dalam satu cycle. Pada operasi ALU, dua operand berasal dari register, kemudian operasi dieksekusi dan hasilnya disimpan kembali pada reegister dalam satu clock cycle. Operasi aritmatika dan logic pada ALU akan mengubah bit-bit yang terdapat pada Status Register (SREG). Proses pengambilan instruksi dan pengeksekusian instruksi berjalan secara parallel, dapat dilihat pada gambar dibawah ini :
T2
T1
Clk CPU
T3
T4
1 st Instruction Fetch 1 stndInstruction Execute 2 Instruction Fetch Instruction Execute 2 nd rd 3 Instruction Fetch 3 rd Instruction Execute 4th Instruction Fetch Gambar 2.14 Proses pengambilan instruksi dan pengeksekusian instruksi secara parallel
Instruksi 1 : Instruksi 2 :
Fetching 1
Executing 1 Fetching 2
Executing 2
Gambar 2.15 Prinsip kerja Pipelining
Universitas Sumatera Utara
21
2.3.7. General Purpose Register AVR 7
Addr
0 R0 R1 R2 ... R13 R14 R15 R16 R17 ... R26 R27 R28 R29 R30 R31
General Purpose Working Register
$00 $01 $02 $0D $0E $0F $10 $11 $1A
X-register Low Byte
$1B $1C $1D $1E $1F
X-register High Byte Y-register Low Byte Y-register High Byte Z-register Low Byte Z-register High Byte
Gambar 2.16 General Purpose Register AVR
Gambar diatas menunjukkan struktur 32 general purpose register yang terdapat di dalam CPU, masing- masing register ditentukan juga dalam alamat memori data, dipetakan kedalam 32 lokasi pertama data user. Walaupun tidak secara fisik diimplementasikan sebagai lokasi SRAM, namun pengaturan ini memberikan flexsibilitas dalam mengakses register, seperti register pointer X,Y, dan Z dapat diset menuju index dari register file manapun.
2.3.8. Stack Pointer Stack digunakan untuk menyimpan data sementara, untuk menyimpan variable local dan untuk menyimpan return address setelah interrupt dan pemanggilan subrutin. Stack pointer selalu menunjuk ke puncak stack. Stack diimplementasi mulai dari lokasi memori tertinggi ke lokasi memori terendah, sehingga perintah PUSH akan mengurangi Stack Pointer. Bit
15
14
13
12
11
10
9
8
SP 15 SP 7
SP 14 SP 6
SP 13 SP 5
SP 12 SP 4
SP 11 SP 3
SP 10 SP 2
SP 9 SP 1
SP 8 SP 0
7
6
5
4
3
2
1
0
SPH SPL
Gambar 2.17 Stack Pointer
Universitas Sumatera Utara
22
2.3.9. Peta Memori AVR ATmega 8
Gambar 2.18 Peta Memori At mega 8
Memori atmega terbagi menjadi tiga yaitu : 1. Memori Flash Memori flash adalah memori ROM tempat kode-kode program berada. Kata flash menunjukan jenis ROM yng dapat ditulis dan dihapus secara elektrik. Memori flash terbagi menjadi dua bagian yaitu bagian aplikasi dan bagian boot. Bagian aplikasi adalah bagian kode-kode program apikasi berada.
Bagian boot adalah bagian yang digunakan khusus
untuk booting awal yang dapat diprogram untuk menulis bagian aplikasi tanpa melalui programmer/downloader, misalnya melalui USART. 2. Memori Data Memori
data
adalah
memori
RAM
yang
digunakan
untuk
keperluan program. Memori data terbagi menjadi empat bagian yaitu : 32 GPR (General Purphose Register) adalah register khusus yang bertugas untuk membantu eksekusi program oleh ALU (Arithmatich
Logic
Unit), dalam instruksi assembler setiap instruksi harus melibatkan GPR.
Dalam
bahasa
C
biasanya digunakan untuk variabel global
atau nilai balik fungsi dan nilai- nilai yang dapat memperingan kerja ALU. Dalam istilah processor komputer sahari-hari GPR dikenal sebagai
Universitas Sumatera Utara
23
βchace memoryβ. I/O register dan Aditional I/O register adalah register yang difungsikan khusus untuk mengendalikan berbagai pheripheral dalam mikrokontroler seperti pin port, timer/counter, usart dan lainlain. Register ini dalam keluarga mikrokontrol MCS51 dikenal sebagi SFR(Special Function Register). 3. EEPROM EEPROM adalah memori data yang dapat mengendap ketika chip mati (off),
digunakan
untuk
keperluan
penyimpanan
data
yang tahan
terhadap gangguan catu daya.
2.3.10. Status Register ( SREG ) Pada AVR status register mengandung beberapa informasi mengenai hasil dari kebanyakan hasil eksekusi instruksi aritmatik. Informasi ini digunakan untuk altering arus program sebagai kegunaan untuk meningkatkan performa pengoperasian. Register ini di-update setelah operasi ALU (Arithmetic Logic Unit) hal tersebut seperti yang tertulis dalam datasheet khususnya pada bagian Instruction Set Reference. Dalam hal ini untuk beberapa kasus dapat membuang penggunaan kebutuhan instrukasi 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.19 Status Register Atmega 8
Universitas Sumatera Utara
24
β’
Bit 7(I) Merupakan bit Global Interrupt Enable. Bit ini harus di-set agar semua perintah interupsi dapat dijalankan. Untuk perintah interupsi individual akan di jelaskan pada bagian yang lain. Jika bit ini di-reset, maka semua perintah interupsi baik yang individual maupun yang secara umum akan di abaikan. Bit ini akan dibersihkan atau cleared oleh hardware setelah sebuah interupsi di jalankan dan akan di-set kembali oleh perintah RETI. Bit ini juga dapat di- set dan di-reset melalui aplikasi dan intruksi SEI dan CLL.
β’
Bit 6(T) Merupakan bit Copy Storage. Instruksi bit Copy Instructions BLD (Bit Load) and 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 bit di dalam register pada Register File dengan menggunakan perintah BLD.
β’
Bit 5(H) Merupakan bit Half Carry Flag. Bit ini menandakan sebuah Half Carry dalam beberapa operasi aritmatika. Bit ini berfungsi dalam aritmatika BCD.
β’
Bit 4(S) Merupakan Sign bit. Bit ini selalu merupakan sebuah ekslusif di antara Negative Flag (N) dan twoβs Complement Overflow Flag (V).
β’
Bit 3(V) Merupakan
bit
Twoβs
Complement
Overflow
Flag.
Bit
ini
menyediakan fungsi aritmatika dua komplemen. β’
Bit 2(N) Merupakan bit Negative Flag. Bit ini mengindikasikan sebuah hasil negative di dalam sebuah fungsi logika atai aritmatika.
Universitas Sumatera Utara
25
β’
Bit 1(Z) Merupakan bit Zero Flag. Bit ini mengindikasikan sebuah jasil nol β0β dalan sebuah fungsi aritmatika atau logika.
β’
Bit 0(C) Merupakan bit Carry Flag. Bit ini mengindikasikan sebuah Carry atau sisa dalam sebuah aritmatika atau logika.
2.3.11. Timer/Counter 0 Timer/counter 0 adalah sebuah timer/counter yang dapat mencacah sumber pulsa/clock baik dari dalam chip (timer) ataupun dari luar chip (counter) dengan kapasitas 8-bit atau 256 cacahan. Timer/counter dapat digunakan untuk : 1. Timer/counter biasa 2. Clear Timer on Compare Match (selain Atmega 8) 3. Generator frekuensi (selain Atmega 8) 4. Counter pulsa eksternal
2.3.12. Komunikasi Serial Pada Atmega 8 Komunikasi serial merupakan komnikasi yang relative lambat dibandingkan dengan komunikasi paralel. Oleh karena itu, komunikasi serial sering melibatkan interupsi untuk mengetahui apakah pengiriman mampu menerima data yang telah selesai atau yang belum selesai dikirim. Metode yang paling aman untuk proses pengiriman dan penerimaan sata serial adalah dengan menyediakan buffer untuk kedua proses tersebut. Data yang akan dikirim tidak secara langsung diberikan kepada SBUF,melainkan diberikan kepada buffer. Demikian juga dengan pengambilan data yang tidak langsung dari SBUF, melainkan diambil dari buffer, perpindahan keduanya diserahkan kepada prosedur dalam intrupsi serial. Pada mikrokontroler AVR Atmega 8 memiliki Port USART yang terdapat pada Pin 2 dan Pin 3 untuk melakukan komunikasi data antara mikrokontroler dengan mikrokontroler ataupun mikrokontroler dengan komputer. USART dapat
Universitas Sumatera Utara
26
difungsikan sebagai transmisi data sinkron, dan asinkron. Sinkron berarti clock yang digunakan antara transmiter dan receiver satu sumber clock. Sedangkan asinkron berarti transmiter dab receiver mempunyai sumber clock sendiri-sendiri. USART terdiri dalm tiga blok yaitu clock generator, transmiter, dan receiver.
Gambar 2.20 Blok USART β’
Clock Generator Clock generator berhubungan dengan kecepatan transfer data (baud rate), register yang bertugas menentukan baud rate adalah register pasangan.
β’
USART transmiter Usart transmiter berhubungan dengan data pada Pin TX. Perangkat yang sering digunakan seperti register UDR sebagi tempat penampungan data yang akan ditransmisikan. Flag TXC sebagai akibat dari data yang ditransmisikan telah sukses (complete), dan flag UDRE sebagai indikator jika UDR kosong dan siap untuk diisi data yang akan ditransmisikan lagi.
β’
USART receiver Usart receiver berhubungan dengan penerimaan data dari Pin RX. Perangkat yang sering digunakan seperti register UDR sebagai tempat penampung data yang telah diterima, dan flag RXC sebagi indikator bahwa data telah sukses (complete) diterima.
Universitas Sumatera Utara
27
2.4.
ANALOG TO DIGITAL CONVERTER ( ADC )
ADC adalah suatu alat yang mampu untuk mengubah sinyal atau tegangan analog menjadi informasi digital. Resolusi ADC selalu dinyatakan sebagai jumlah bit-bit dalam kode keluaran digitalnya. Misalnya, ADC dengan resolusi n-bit memiliki 2n kode digital yang mungkin dan berarti juga memiliki 2n step level. Jika resolusi ADC semakin tinggi, maka semakin banyak kemungkinan nilai-nilai analog yang bias disajikan. Misalnya ADC dengan resolusi 8 bit menghasilkan bilangan 0 sampai 255 ( 256 bilangan dan 255 step ), dengan demikian tidak mungkin menyajikan semua kemungkinan nilai-nilai analog. Jika sekarang resolusinya menjadi 10 bit maka akan menghasilkan bilangan 0 sampai dengan 1023 ( 1024 bilangan dan 1023 step ). ππππππππππ π·π·π·π·π·π·π·π·π·π·π·π·π·π· οΏ½ π₯π₯ πππ
π
π
π
π
π
256 πππ΄π΄π΄π΄π΄π΄ ππππππππππ π·π·π·π·π·π·π·π·π·π·π·π·π·π· = οΏ½ οΏ½ π₯π₯ 256 πππ
π
π
π
π
π
πππ΄π΄π΄π΄π΄π΄ = οΏ½
Fitur- fitur pada arsitektur ADC mikrokntroler AVR adalah sebagai berikut : β’
Resolusi maksimum 10 bit (dapat dipilih resolusi 8 bit)
β’
0,5 LSB Integral Non Linearity
β’
Akurasi mutlak Β± 2 LSB
β’
Waktu konversi 13 β 260 Β΅s
β’
Pengambilan sampel sampai 15 kilo sampel per detik pada resolusi maksimum
β’
8 kanal masukan single ended termultipleks
β’
7 kanal masukan differensial dan 2 kanal masukan differential dengan opsi penguatan 10x dan 200x
β’
Jangkauan tegangan masukan ADC 0 β VCC
β’
Tegangan referensi 2,56 V internal yang dipilih
β’
Mode konversi tunggal Ada banyak cara yang dapat digunnakan untuk mengubah sinyal analog
menjadi sinyal digital yang nilainya proposional. Jenis ADC yang biasa digunakan
Universitas Sumatera Utara
28
dalam perancangan adalah jenis successive approximation convertion atau pendekatan bertingkat yang memiliki waktu konversi jauhlebih singkat dan tidak tergantung pada nilai masukan analognya atau sinyal yang akan diubah. Diagram blok pengubah sinyal analog ke dalam digital ditunjukkan pada gambar 2.21Berikut ini : Vin
Pembanding -
Mulai Konversi
Analog in
CLK
KENDALI +
Selesai Konversi MSB
V out
Konverter D/A 8 bit
LSB
Register SAR
Register Buffer
Digital Out
D0 D1 D2 D3 D4 D5 D6 D7
Gambar 2.21 Diagram blok ADC
Prinsip kerja rangkaian pada gambar 2.21 tersebut adalah jika sinyal masukan mulai konversi dari unit kendali diberi logika β0β , maka register SAR (Succesive Approximation Register) akan direset. Sehingga keluaran Vout unit DAC (Digital to Analog) menjadi nol. Pada waktu sinyal βmulai konversiβ kembali menjadi tinggi, operasi konversi segera dimulai. Proses konversi diawali dengan pengesetan bit paling berarti (MSB) register SAR oleh kendali. Selanjutnya dta digital dalam register SAR dikonversi ke analog oleh DAC. Hasil konversi Voutoleh unit dibandingkan dengan sinyal masukan Vin oleh unit pembanding. Bila Vout lebih besar dari pada Vin, maka unit pembanding akan mengirimkan sinyal negatif ke unit kendali. Dengan adanya sinyal negatif ini, unit kendali akan mereset bit paling berarti (MSB) register SAR. Sebaliknya, jika Vout lebih kecil dari pada Vin, unit pembanding akan mengirimkan sinyal positif ke unit kendali. Dengan sinyal positif ini, unit kendali tetap mengeset bit paling berarti (MSB). Pada pulsa clock berikutnya unit terkendali akan mengeset bit yang lebih rendah yaitu bit ke 7 register SAR. Kemudian data dikonversikan oleh unit DAC dan hasil konversi Vout dibandingkan dengan sinyal masukan Vin. Sinya hasil
Universitas Sumatera Utara
29
perbandingan akan menentukan unit kendali untuk mengeset dan mereset register SAR. Demikian proses ini berlangsung sampai diperoleh nilai Vin sama dengan nilai Vout. Apabila konversi telah selesai, unit kendali mengirimkan sinyal βselesai konversiβ yang berlogika rendah.
2.5.
PEMROGRAMAN
MIKROKONTROLER
MENGGUNAKAN
CODE VISION AVR ( BAHASA C )
Penggunaan
mikrokontroler
yang
diterapkan
diberbagai
rumah
tangga,otomotif,sampai dengan kendali, membuat mikrokontroler mulai masuk didunia pendididkan. Banyak varian dan type dari mikrokontroler yang dipelajari dan digunakan di dunia pendidikan. Akar dari bahas C adalah dari bahasa BCPL yang dikembangkan oleh Martin Richhards pada tahun 1967. Bahasa ini memberikan ide kepada Ken Thompson yang kemudian mengembangkan bahasa yang disebut dengan B pada tahun 1970. Perkembangan selanjutnya dari bahasa B adalah bahasa C oleh Dennis Ricthie sekitar 1970-an di Bell Telephone Laboratories Inc ( sekarang adalah AT & T Bell Laboratories ). Bahasa C pertama kali digunakan di computer Digital Equipment Corporation PDP-11 yang menggunakan sistem operasi UNIX. C adalah bahasa yang standar, artinya satuan program yang ditulis dengan versi bahas C tertentu akan dapat dikoompilasi dengan versi bahasa C yang lain dengan sedikit modifikasi. Standar bahasa C yang asli adalah standar dari UNIX. Patokan standar UNIX ini diambil dari buku yang ditulis oleh Brian Kerninghan dan Dennis Ritehiie yang berjudul βThe C Programming Languageβ,diterbitkan oleh Prentice Hall tahun 1978. Beberapa alasan mengapa bahasa C banyak digunakan, diantaranya adalah sebagai berikut : 1. Bahasa C hamper tersedia di semua jenis computer. Bahasa C ini merupakan bahasa computer yang tersedia baik di computer mikro, mini maupun computer besar.
Universitas Sumatera Utara
30
2. Kode bahasa C sifatnya portable. Aplikasi yang ditulis dengan bahasa C untuk suatu computer tersebut dapat digunakan di computer lain hanya dengan modifikasi yang sedikit saja. 3. Bahasa C hanya menyediakan sedikit kata-kata kunci. Semakin sedikit kata-kata kunci yang digunakan disuatu bahasa, semakin mudah bagi pemakai untuk mempelajari dan menggunkan bahasa tersebut. 4. Proses executable program bahasa C lebih cepat. Karena philosopi dari bahasa C yang menyediakan sedikit kata-kata kunci, maka konsekuensinya program hasil dari kompilasi bahasa C relative akan lebih cepat prosesnya dibandingkan dengan hasil dari bahasa lain. 5. Dukungan pustaka yang banyak. Telah disebut bahwa keandalan bahasa C dicapai dengan fungsi-fungsi pustakanya. Fungsi-fungsi pustaka ini disediakan oleh versi-versi bahasa C masing-masing atau dapat dibeli dari sumber yang lain. 6. C adalah bahasa yang tersruktur. Bahasa C mempunyai struktur yang baik sehingga mudah untuk dipahami. C disebut bahasa yang terstruktur karena menggunakan fungsi-fungsi sebagai program-program bagiannya. 7. Selain bahasa tingkat tinggi, C juga dianggap sebagai bahasa tingkat menengah. Pada awalnya, bahasa C sudah digunakan untuk membuat program-program perangkat lunak sistem. Yang termasuk program-program perangkat lunak sistem diantaranya adalah sistem operasi, interpreter, compiler, bahasa perakit, bahasa pemrograman dan DBMS ( Database Management System ). Untuk mempunyai kemapuan seperti ini, bahasa C menggunkan kemapuan bahasa tingkat tinggi dan bahasa tinggkat rendah yang menghsilkan bahasa tingkat menengah. Sebagai bahasa tingkat menengah,C menyediakan kemampuan seperti yang disediakan oleh bahasa perakitan untuk operasioperasi bit,byte, alamat-alamat memori, register, BIOS ( Basic Input Ouput System ), DOS ( Disk Operating System ) dan lain sebagainya.
Universitas Sumatera Utara
31
8. Bahasa C adalah compiler. Karena bahasa C sifatnya adalah compiler, maka akan menghasilkan executable program yang banyak dibutuhkan oleh program-program komersial. Ada beberapa program yang dapat digunakan sebagai editor dan compiler untuk mikrokontroler AVR, salah satunya yaitu CodeVision. CodeVision AVR adalah salah satu alat bantu pemrograman yang bekerja dalam lingkungan pengembangan perangkat lunak yang terintegrasi. Code vision AVR ini merupakan cross-compiler C, Integrated Development Environtment (IDE), dan Automatic Program Generator yang didesain untuk mikrokontroler buatan Atmel seri AVR. Cross-compiler C mampu menerjemahkan hamper semua perintah dari bahasa ANSI C, sejauh yang diijinkan oleh arsitektur dari AVR, dengan tambahan beberapa fitur untuk mengambil kelebihan khusus dari arsitektur AVR dan kebutuhan dari sistem embedded. CodeVisionAVR juga mempunyai Automatic Program Generator bernama CodeWizardAVR, yang mengizinkan anda untu menulis, dalam hitungan menit, semua instruksi yang diperlukan untuk membuat beberapa fungsi-fungsi tertentu. Dengan fasilitas ini mempermudah para Programmer pemula untuk belajar pemograman mikrokontroler menggunakan CVAVR. Seperti aplikasi IDE lainnya, CodeVision AVR dilengkapi dengan source code editor, compiler, linker, dan dapat memanggil Atmel AVR Studio untuk debugger nya. Untuk memulai menjalankan CodeVision, buka program CodeVision melalui menu Start|All Program||CodeVision|CodeVision AVR C Compiler atau melalui desktop klik lambang codevision.
Universitas Sumatera Utara
32
Gambar 2. 22 Tampilan Pertama Kali CodeVision dijalankan
2.6.
SOFTWARE DESAIN PCB ( Printed Circuit Board ) Proteus Profesional 7.7 SP2 Pro
Proteus professional merupakan kelompok software yang digunakan untuk membantu para desainer dalam merancang dan mensimulasikan suatu rangkaian elektronika. Software ini memiliki dua fungsi sekaligus dalam satu paket, paket yang pertama sebagai software untuk menggambar skematik dan dapat disimulasikan yang diberi nama ISIS. Paket kedua digunakan sebagai merancang gambar Printed Circuits Board (PCB) yang diberi nama ARES. Secara langsung, pengubahan dari skematik ke PCB dapat dilakukan dalam software Proteus Prof 7.7 ini. Proteus Prof ISIS memiliki versi yang selalu diperbarui, mulai dari versi 7.0 samapai dengan 7.10. setiap kenaikan versi memiliki penambahan akan library komponen yang dapat diambil dan digunakan dalam penggambaran atau perancangan. Sebagai peramcanngan rangkaian elektroonik terlebih dahulu menggunakan ISIS sebagai media yang memudahkan dalam perancangan dan simulasi. Banyaknya library dari Proteus Prof 7.7. ISIS membuat software ini dikatakan software simulasi lengkap, yaitu dari komponen-komponen pasif, Analog, Trasistor, SCR, FET, jenis button atau tombol, jenis saklar atau relay, IC digital IC penguat, IC programmable (mikrokontroler) dan IC memory. Selain diidukung
Universitas Sumatera Utara
33
dengan kelengkapan komponen, juga didukung dengan kelengkapan alat ukur seperti volumeter, Ampere meter, Oscilloscope, Signal Analyzers, serta pembangkit Frekuensi. Kelengkapan fitur yang disediakan ini menjadi Proteus Prof ISIS menjadi satu software simulasi elektronik terbaik.
2.6.1. Fungsi Tiap Fitur Proteus Prof 7.7 Tampilan window Proteus Profesional ISIS 7 seperti dibawah ini, dan memiliki fungsi difitur-fitur nya yang sering digunakan sebagai berikut :
Gambar 2.23 Tampilan window Proteus Profesional 7.7 Tabel 2.3 Nama-Nama Fitur Proteus Profesional dan Kegunaannya Nama Fitur Menu Bar Open Save Data New File Open File Save Togle Grid
Kegunaan Merupakan list menu yang dapat digunakan dalam perancangan atau pengolahan gambar rangkaian. Membuat file baru dengan area gambar baru. Membuka file yang pernah disimpan. Manyimpan file yang telah dibuat. Menampilkan bantuan panduan pada area gambar.
titik-titik
Zoom Sheet
Universitas Sumatera Utara
34
Center at Cursor Zoom in Zoom out Zoom to view sheet Zoom to area
Mini view Component List Pick From Library Componen Mode Meliputi Selection mode Component Mode Terminal Mode
Generator Mode Voltage Probe
Current Probe
Virtual Instrument Mode
Drawing Tool and Text meliputi 2D Graphic line Mode 2D Graphic box Mode 2D Graphic Circle Mode 2D Graphic Arc Mode 2D Graphic Text Mode
Membuat area tengah tampilan gambar dengan bertumpu pada cursor. Memperbesar gambar. Memperkecil gambar. Menampilkan keseluruhan gambar dalam layar monitor. Memperbesar gambar dengan memilih area yang dikehendaki. Menampilkan gambar dalam bentuk tampilan kecil seluruh area gambar. Daftar komponen yang telah diambil dari library. Mengambil komponen pada library yang akan diletakkan pada component list. Memilih dan melakukan aksi pada komponen yang dipilih. Mengambil komponen pada library. Mengambil dan menggunakan terminal yang dibutuhkan dalam rangkaian (VCC,Gnd,Input,Output). Memilih pembangkit pulsa yang akan digunakan. Terminal dengan tampilan nilai dari jalur koneksi komponen dengan menampillkan besaran tegangan. Terminal dengan tampilan nillai dari jalur koneksi komponen dengan menampilkan besaran arus. Mengambil alat ukur yang akan digunakan (CRO,Voltmeter,Ampere meter, AFG, Signal Analyyzer). Membuat garis jalur rangkaian 2D Membuat gambar kotak atau persegi 2D pada area gambar. Membuat gambar lingkaran 2D pada area gambar. Membuat gambar Arc atau garis lengkung 2D pada area gambar. Menambahkan tulisan text 2D pada area gambar.
Universitas Sumatera Utara
35
Rotate And Mirror Rotate Clockwise Rotate Anticlockwise X mirror Y mirror Play and Simulation Operation Play Step Pause Stop
Merotasi obyek searah jarum jam. Merotasi obyek berlawanan dengan arah jarum jam. Mencerminkan obyek kearah X Mencerminkan obyek kearah Y
Menjalankan simulasi rangkaian yang telah dibuat. Menjalankan simulasi secara tahap pertahap. Memberhentikan simulasi rangkaian. Menghentikan simulasi rangkaian.
Universitas Sumatera Utara