BAB 2 LANDASAN TEORI Dalam bab ini penulis akan membahas

advertisement
BAB 2
LANDASAN TEORI
Dalam bab ini penulis akan membahas tentang komponen - komponen yang
digunakan dalam seluruh unit alat ini. Agar pembahasan tidak melebar dan
menyimpang dari topik utama laporan ini, maka setiap komponen hanya di bahas
sesuai fungsi nya pada masing- masing unit nya.
2.1 Mikrokontroler
Dalam merancang aplikasi elektronika digital dibutuhkan sebuah alat/komponen
yang dapat menghitung, mengingat, dan mengambil pilihan dan digunakan
sebagai otaknya. Kemampuan ini dimiliki oleh sebuah komputer, namun tidaklah
efisien jika harus menggunakan komputer hanya untuk keperluan tersebut. Untuk
itu komputer dapat digantikan dengan sebuah mikrokontroler. Mikrokontroler
sebenarnya adalah pengembangan dari mikroprosesor, namun dirancang khusus
untuk keperluan instrumentasi sederhana.
2.1.1 Mikrokontroler ATMega8
Mikrokontroler dapat dianalogikan sebagai sebuah sistem komputer yang dikemas
dalam sebuah chip, artinya di dalam sebuah IC mikrokontroler sebetulnya sudah
terdapat kebutuhan minimal agar mikroprosesor dapat bekerja, yaitu meliputi
mikroprosesor, ROM, RAM, I/O dan clock seperti halnya yang dimiliki oleh
sebuah PC.
4
Mengingat kemasannya yang berupa sebuah chip dengan ukuran yang
relatif lebih kecil, tentu saja spesifikasi dan kemampuan yang dimiliki oleh
mikrokontroller akan menjadi lebih rendah bila dibandingkan dengan sistem
komputer seperti PC baik dilihat dari segi kecepatannya. Tidak seperti system
komputer, yang mampu menangani berbagai macam program aplikasi (misalnya
pengolah kata, pengolah angka dan lain sebagainya), mikrokontroler hanya bisa
digunakan untuk satu aplikasi tertentu saja.
Meskipun dari sebuah kemampuan lebih rendah tetapi mikrokontroler
memiliki kelebihan yang tidak bisa diperoleh pada sistem komputer yaitu,dengan
kemasannya yang kecil dan kompak membuat mikrokontroller menjadi lebih
fleksibel dan praktis digunakan terutama pada sistem-sistem yang relatif tidak
terlalu kompleks atau tidak memerlukan bahan komputasi yang tinggi.
2.1.2 Arsitektur Mikrokontroler ATMega8
Mikrokontroller jenis AVR merupakan keluarga mikrokontroller RISC (Reduced
Instruction Set Computing) keluaran Atmel. Konsep arsitektur AVR pada
mulanya dibuat oleh dua orang mahasiswa di Norwegian institute of Technology (
NTH ) yaitu Alf-Egil Bogen dan Vegard Wollan. Mikrokontroler kemudian
dikembangkan lebih lanjut oleh Atmel. Seri pertama AVR yang dikeluarkan
adalah mikrokontroler 8 bit AT90S8515, dengan konfigurasi pin yang sama
dengan mikrokontroler 8051, termasuk address dan data bus yang termultipleksi.
Mikrokontroler
instruksinya
dikurangi
AVR
dari
menggunakan
segi
teknologi
ukurannya
dan
RISC
dimana
kompleksitas
set
mode
pengalamatannya. Pada awal era industri komputer, bahasa pemograman masih
5
mengunakan kode mesin dan bahasa assembly. Untuk mempermudah dalam
pemograman pada desainer komputer kemudian mengembangkan bahasa
pemograman tingkat tinggi yang mudah dipahami manusia. Namun akibatnya,
intruksi yang ada semakin kompleks dan membutuhkan lebih banyak memori.
Dan tentu saja siklus eksekusi instruksinya menjadi semakin lama.
Dalam AVR dengan arsitektur RISC 8 bit, semua instruksi berukuran 16
bit sebagian besar dieksekusi dalam 1 siklus clock. Berbeda dengan MCS-51 yang
instruksinya bervariasi antara 8 bit sampai dengan 32 bit dan dieksekusi selama 1
sampai 4 siklus mesin membutuhkan 12 periode clock. Dalam pengembangannya
, AVR dibagi menjadi beberapa varian yaitu AT908xx, ATMega, AT86RFxx dan
ATTiny. Pada dasarnya yang membedakan masing-masing varian adalah
kapasitas memori dan beberapa fitur tambahan saja. Mikrokontroler ATMega8
merupakan mikrokontroler keluarga AVR 8bit.
Gambar 2.1 Mikrokontroler ATMega8
Beberapa tipe mikrokontroler yang berkeluarga sama dengan ATMega8
ini antara lain ATMega8535, ATMega16, ATMega32, ATmega328, dll. Yang
membedakan antara mikrokontroler yang disebutkan antara lain adalah, ukuran
memori, banyaknya GPIO (pin input/output), peripherial (USART, timer, counter,
dll). Dari segi ukuran fisik, ATMega8 memiliki ukuran fisik lebih kecil
6
dibandingkan dengan beberapa mikrokontroler disebutkan diatas. Namun untuk
segi memori dan periperial lainnya ATMega8 tidak kalah dengan yang lainnya
karena ukuran memori dan periperialnya relatif sama dengan ATMega8535,
ATMega32, dll, hanya saja jumlah GPIO lebih sedikit dibandingkan
mikrokontroler yang lainnya.
2.1.3 Fitur Mikrokontroler ATMega8
Pada mikrokontroler ATMega8 ini terdapat beberapa fitur didalamnya diantaranya
ialah fitur perangkat dan fitur spesial. Adapun yang dimaksud dari kedua fitur
tersebut ialah:
2.1.3.1 Fitur Perangkat
1. Mempunyai dua buah Timer/Counter (pencacah) 8-bit dengan Prescale
yang terpisah (berbeda-beda satu dengan yang lain), juga terdapat mode
pembanding (Compare).
2. Memiliki satu buah Timer/Counter (pencacah) 16bit dengan Prescale yang
terpisah, mode pembanding dan mode Capture.
3. Mencacah (counter) secara berkala (real time).
4. Mempunyai tiga saluran (channel) PWM (Pulse Width Modulation).
5. Terdapat delapan saluran ADC (Analog to Digital Converter) pada
kemasan/ paket TQFP (Thin Quad Flat Pack) dan QFN (Quad Flat Nolead)/ MLF (Micro Lead Frame) dan bisa mencapai 10-bit dengan akurasi
yang tinggi.
6. Enam saluran ADC pada kemasan PDIP (Plastic Dual Inline Package),
bisa mencapai 10-bit dengan akurasi tinggi.
7
7. Memiliki antarmuka serial dua kabel (two-wire) berorientasi byte.
8. Dapat
diprogram
dengan
komunikasi
Serial
USART
(Universal
Synchronous and Asynchronous serial Receiver and Transmitter).
9. Memiliki
antarmuka
SPI
(Serial
Peripheral
Interface)
dengan
tingkat Master/ Slave.
10. Mempunyai Watchdog (monitoring) Timer dengan osilator yang terpisah
di dalam Chip.
11. Memiliki Analog Comparator (pembanding analog) di dalam Chip.
2.1.3.2 Fitur Spesial
1. Terdapat Reset dengan Power-on, dan pendeteksi brown-out
Brown-out adalah kondisi ketidakstabilan power supply (sumber
tegangan) seperti kadang menyala, kadang tidak, kadang tegangan naik,
kadang turun, tetapi dengan waktu yang cepat sehingga kadang kita tidak
menyadarinya. Biasanya jika terdapat peristira ini lampu akan redup,
bahkan bisa hidup dan mati. Peristiwa ini bisa merusak perangkat jika
dibiarkan terus menerus.
2. Memiliki kalibrasi untuk osilator internal
Disamping menduukung osilator external, ATmega8 juga memiliki
osilator internal dan memiliki kalibrasi khusus yang terdapat didalamnya
3. Mempunyai sumber interrupt eksternal dan internal
Pin INT merupakan sistem interrupt dan memiliki sumber interrupt
eksternal dan internal
8
4. Terdapat lima mode sleep, yaitu:
 Idle
 ADC Noise Reduction
 Power-safer
 Power-down
 Standby
2.1.4 Konfigurasi Pin Pada Mikrokontroler ATMega8
Gambar 2.2 Konfigurasi Pin Mikrokontroler ATMega8
Konfigurasi Mikrokontroler ATMega8 dapat dilihat digambar 2.1 diatas,
Mikrokontroler ATMega8 memiliki 28 pin yang terdiri dari Input/Output, Vcc,
GND,dan AREF. Secara fungsional konfigurasi pin-pin tersebut dapat dijelaskan
sebagai berikut:
1. VCC merupakan pin yang berfungsi sebagai pin masukan atau catu daya.
2. GND merupakan pin ground.
9
3. Port B (PB0 – PB7) merupakan jalur 8 bit yang difungsikan sebagai
input/output.
4. Port C (PC0 – PC6) merupakan jalur data 7 bit yang difungsikan sebagai
input/output data digital.
5. Port D (PD0 – PD7) merupakan jalur data 8bit yang masing-masing pinnya juga dapat difungsikan sebagai input/output.
6. AREF merupakan pin masukan tegangan referensi ADC.
2.1.5 Deskripsi Pin-pin Pada Mikrokontroler ATMega8
Mikrokontroler ATMega8 memiliki 3 buah PORT utama yaitu PORTB, PORTC,
dan PORTD dengan total pin input/output sebanyak 23 pin. PORT tersebut dapat
difungsikan sebagai input/output digital atau difungsikan sebagai periperial
lainnya.
1. PORT B
PORTB merupakan jalur data 8bit yang dapat difungsikan sebagai input/output.
Selain itu PORTB juga dapat memiliki fungsi alternatif seperti yang tertera pada
tabel di bawah ini:
Tabel 2.1 Fungsi Alternatif PORT B pada setiap pin
10
-
ICP1(PB0), berfungsi sebagai Timer Counter 1 input capture pin.
-
OC1A(PB1), OC1B(PB2) dan OC2(PB3) dapat difungsikan sebagai
keluaran PWM (pulse width modulation).
-
MOSI(PB3),
MISO(PB4),
SCK(PB5),
SS(PB2)
merupakan
jalur komunikasi SPI. Selain itu pin ini juga berfungsi sebagai jalur
pemograman serial (ISP). TOSC1(PB6) dan TOSC2(PB7) dapat
difungsikan sebagai sumber clock external untuk timer.
-
XTAL1(PB6) dan XTAL2(PB7) merupakan sumber clock utama
mikrokontroler. Perlu diketahui, jika kita menggunakan clock internal
(tanpa crystal) maka PB6 dan PB7 dapat difungsikan sebagai input/output
digital biasa. Namun jika kita menggunakan clock dari crystal external
maka PB6 dan PB7 tidak dapat kita gunakan sebagai input/output.
2. PORT C
PORTC merupakan jalur data 7bit yang dapat difungsikan sebagai
input/output digital. Fungsi alternatif PORTC antara lain sebagai berikut:
Tabel 2.2 Fungsi Alternatif PORT C pada setiap pin
11
-
ADC 6 channel (PC0,PC1,PC2,PC3,PC4,PC5) dengan resolusi sebesar
10bit. ADC dapat kita gunakan untuk mengubah input yang berupa
tegangan analog menjadi data digital.
-
I2C (SDA dan SDL) merupakan salah satu fitur yang terdapat pada
PORTC. I2C digunakan untuk komunikasi dengan sensor atau device lain
yang memiliki komunikasi data tipe I2C seperti sensor kompas,
accelerometer nunchuck, dll.
-
RESET merupakan salah satu pin penting di mikrokontroler, RESET
dapat digunakan untuk merestart program. Pada ATMega8 pin RESET
digabungkan dengan salah satu pin IO (PC6). Secara default PC6 ini
didisable dan diganti menjadi pin RESET. Kita dapat mendisable fungsi
pin RESET tersebut untuk menjadikan PC6 sebagai pin input/output. Kita
dapat melakukan konfigurasi di fusebit untuk melakukan pengaturannya,
namun saya sarankan untuk tidak merubahnya karena jika pin RESET di
disable maka kita tidak dapat melakukan pemograman melalui jalur ISP.
3. PORT D
PORTD merupakan jalur data 8bit yang masing-masing pin-nya juga dapat
difungsikan sebagai input/output. Sama seperti PORTB dan PORTC, PORTD
juga memiliki fungsi alternatif seperti terlihat pada tabel dibawah ini:
12
Tabel 2.3 Fungsi Alternatif PORT D pada setiap pin
-
USART (TXD dan RXD) merupakan jalur data komunikasi serial dengan
level sinyal TTL. Pin TXD berfungsi untuk mengirimkan data serial,
sedangkan RXD kebalikannya yaitu sebagai pin yang berfungsi untuk
menerima data serial.
-
Interrupt (INT0 dan INT1) merupakan pin dengan fungsi khusus sebagai
interupsi hardware. Interupsi biasanya digunakan sebagai selaan dari
program, misalkan pada saat program berjalan kemudian terjadi interupsi
hardware/software maka program utama akan berhenti dan akan
menjalankan program interupsi.
-
XCK dapat difungsikan sebagai sumber clock external untuk USART,
namun kita juga dapat memanfaatkan clock dari CPU, sehingga tidak perlu
membutuhkan external clock.
-
T0 dan T1 berfungsi sebagai masukan counter external untuk timer 1 dan
timer 0.
-
AIN0 dan AIN1 keduanya merupakan masukan input untuk analog
comparator.
13
2.1.6 Kebutuhan Clock
Sumber clock pada ATMega8 secara garis besar ada 2 buah, yaitu clock internal
dan clock external. Untuk clock internal maksimum clock yang dapat digunakan
adalah 8MHz, sedangkan untuk clock external maksimum clock yang dapat
digunakan adalah sebesar 16MHz. Lebih jelasnya mengenai berbagai macam
sumber clock dapat dilihat pada tabel di bawah ini
Tabel 2.4 Jenis-jenis sumber Clock
Untuk sumber clock external kita dapat menggunakan RC osilator atau
crystal osilator. Namun biasanya yang lebih banyak digunakan adalah osilator tipe
crystal.
2.2 RTC (Real Time Clock) DS1307
Real Time Clock (RTC) DS1307 adalah IC yang dibuat oleh perusahaan Dallas
Semiconductor. RTC (Real Time Clock) DS1307 bekerja dengan daya rendah
(low power), memiliki kalender/jam BCD dan SRAM yang nonvolatile dengan
kapasitas 56 bytes. Alamat dan data dikirim melalui 2 kabel dwi-arah. Jam dan
kalender pada DS1307 menyediakan informasi detik, menit, jam, hari, tanggal,
bulan dan tahun. Banyak hari dalam satu bulan diatur secara otomatis oleh IC ini
14
baik untuk 31 hari maupun kurang. Jam bekerja dalam format 24 jam atau 12 jam
dengan indikator AM/PM. DS1307 dapat mendeteksi secara otomatis catu
dayanya, jika catu daya ke sistem mati, maka secara otomatis DS1307 akan
mengambil catu daya dari baterai (jika dipasang). DS1307 memiliki akurasi
(kadaluarsa) hingga tahun 2100.
Pada sistem komputer chip RTC sering dijumpai pada motherboard PC
(biasanya terletak dekat chip BIOS). Semua komputer menggunakan RTC karena
berfungsi menyimpan informasi waktu terkini dari komputer yang bersangkutan.
RTC dilengkapi dengan baterai sebagai pensuplai daya pada chip, sehingga jam
akan tetap up-to-date walaupun komputer dimatikan. RTC dinilai cukup akurat
sebagai pewaktu (timer) karena menggunakan osilator kristal. Ada beberapa jenis
RTC, yaitu : DS1307, DS1302, DS12C887, DS3234.
Gambar 2.3 RTC (Real Time Clock) DS1307
2.2.1 Konfigurasi pin RTC DS1307
Adapun konfigurasi dari setiap pin pada RTC DS1307 adalah:
1. VCC, GND : Tegangan DC disediakan pada pin ini. Vcc bernilai 5 volt.
Jika diberikan tegangan 5 volt, IC dapat diakses secara penuh baik untuk
15
menulis maupun membaca data. Ketika baterai disambungkan pada IC dan
nilai Vcc dibawah 1.25 Vbat. Proses penulisan dan pembacaan data tidak
dapat dilakukan, namun proses pencacahan waktu tetap berjalan dan tidak
terpengaruh oleh peenurunan Vcc, karena IC akan mengambil sumber
tegangan dari Vbat.
2. Vbat : Digunakan sebagai masukan baterai lithium 3 volt atau sumber
energy yang lain. Tegangan baterai harus berkisar antara 2 volt sampai 3.5
volt. Baterai lithium 48 mA atau lebih besar dapat digunakan lebih dari 10
tahun pada suhu 25oC.
3. SCL (Serial Clock Input) : SCL digunakan untuk sinkronisasi perpindahan
data pada antarmuka serial.
4. SDA (Serial Data Input/Output) : SDA berfungsi sebagai pin masukan dan
keluaran pada antarmuka serial 2 kabel. Pin SDA dan SCL membutuhkan
resistor pull-up sekitar 4K7ohm.
5. SQW/OUT (Square Wave/Output Driver) : Jika diaktifkan, SQWE bit
harus diset ke 1. SQWE akan mengeluarkan gelombang kotak dengan
pilihan
frekuensi
(1Hz,
4kHz,
8kHz,
32kHz).
Pin
SQW/OUT
membutuhkan resistor pull-up eksternal. SQW/OUT dapat bekerja baik
dengan sumber tegangan Vcc maupun dengan kristal 32,768kHz.
2.2.2 Fitur – fitur RTC DS1307
1. Real Time Clock menyimpan data – data detik, menit, jam, tanggal,
bulan, tahun dan tahun valid hingga 2100.
2. 56 byte, battery backed, RAM (Random Access Memory) nonvolatile.
16
3. Antarmuka serial two wire (I2C).
4. Sinyal
keluaran
gelombang
kotak
terprogram
(Programmable
squarewave).
5. Konsumsi daya kurang dari 500nA menggunakan mode baterai
cadangan dengan operasional osilator.
6. Tersedia fitur industri dengan ketahanan suhu antara -40oC hingga
+85oC.
7. Tersedia dalam kemasan 8-pin DIP atau SOIC.
2.2.3 Peta Alamat RTC DS1307
Pemetaan alamat pada RTC DS1307 dimana register-register DS1307
ditempatkan pada lokasi pengalamatan 00h sampai 07h. Sedangkan register register RAM (Random Access Memory) ditempatkan pada lokasi pengalamatan
08h sampai 3Fh.
Khusus alamat 02H, bit-6 LOW untuk siklus jam 00–24 dan HIGH untuk
siklus jam 00–12. Bit-5 HIGH pada saat PM dan LOW pada saat AM atau angka
puluhan jika bit-6 LOW.
Tabel 2.5 Peta Alamat RTC DS1307
17
2.2.4 Register Kontrol RTC DS1307
Register kontrol pada RTC DS1307 digunakan untuk mengontrol operasi pada pin
SQW/OUT.
Tabel 2.6 Register Kontrol Pada RTC DS1307
BIT 7
BIT 6
BIT 5
BIT 4
BIT 3
BIT 2
BIT 1
BIT 0
OUT
X
X
SQWE
X
X
RS1
RS0
1. Bit 7 Output Control (OUT) : Bit 7 adalah keadaan jika pin SQW/OUT di
disable sehingga tidak mengeluarkan clock, bit 7 ini menentukan level
sinyal yang keluar dari pin SQW/OUT. Jika bit 7 ini LOW, maka level pin
SQW/OUT ikut LOW dan jika bit 7 ini HIGH, maka level pin SQW/OUT
ikut HIGH.
2. Bit 4 Square-wave Enable : Digunakan untuk enable/disable keluarnya
clock dari pin SQW/OUT. HIGH berarti enable dan LOW berarti disable.
Frekuensi sinyal clock yang keluar dari pin SQW/OUT ditentukan oleh
kondisi bit 1 dan bit 0.
3. Bit 1 dan 0 Rate Select (RS1, RS0) Digunakan untuk menentukan
frekuensi yang keluar dari pin SQW/OUT. Kombinasi nilai RS0, dan RS1
menghasilkan output gelombang kotak dengan nilai frekuensi masingmasing yang ditunjukkan oleh tabel 2.7
Tabel 2.7 Frekuensi SQW Output
18
2.2.5 Komunikasi I2C Pada RTC DS1307
Untuk membaca data tanggal dan waktu yang tersimpan di memori RTC DS1307
dapat dilakukan melalui komunikasi serial I2C seperti tampak pada gambar
berikut:
Gambar 2.4 Komunikasi serial RTC dengan I2C
Dari gambar 2.4 diatas dapat dilihat DS1307 beropersai sebagai slave pada
bus I2C. Cara Access pertama mengirim sinyal START diikuti device address dan
alamat sebuah register yg akan dibaca. Beberapa register dapat dibaca sampai
STOP condition dikirim.
I2C singkatan dari Inter Integrated Circuit, adalah sebuah protokol untuk
komunikasi serial antar IC, dan sering disebut juga Two Wire Interface (TWI).
Bus yang digunakan untuk komunikasi antara mikrokontroler dan divais periferal
seperti memori, sensor temperatur dan I/O expander. Komunikasi dilakukan
melalui dua jalur: SDA (serial data) dan SCL (serial clock). Setiap divais I2C
memiliki 7-bit alamat yang unik. MSB adalah fix dan ditujukan untuk kategori
divais. Inter Integrated Circuit atau sering disebut I2C adalah standar komunikasi
19
serial dua arah menggunakan dua saluran yang didisain khusus untuk mengirim
maupun menerima data. Divais yang mengirim data sepanjang bus disebut master,
divais yang menerima data disebut slave. Master memulai transmisi dengan
sebuah sinyal start, dan menghentikan transmisi dengan sebuah sinyal stop pada
jalur SDA. Selama sinyal start dan stop, jalur SCL harus dalam keadaan high.
Setelah master memulai pengiriman data dengan sebuah sinyal start,
master menulis satu byte alamat divais kepada slave. Setiap byte data harus
memiliki panjang 8-bit. Slave harus memberikan konfirmasi dari byte data yang
diterimanya dengan sebuah bit acknowledge (ACK). Sinyal Start merupakan
sinyal untuk memulai semua perintah, didefinisikan sebagai perubahan tegangan
SDA dari 1 menjadi 0 pada saat SCL 1. Sinyal Stop merupakan sinyal untuk
mengakhiri semua perintah, didefinisikan sebagai perubahan tegangan SDA dari 0
menjadi 1 pada saat SCL 1. Sinyal dasar yang lain dalam I2C Bus adalah sinyal
acknowledge yang disimbolkan dengan ACK. Setelah transfer data oleh master
berhasil diterima slave, slave akan menjawabnya dengan mengirim sinyal
acknowledge, yaitu dengan membuat SDA menjadi 0 selama siklus clock ke 9.
Pada komunikasi I2C antara DS1307 dan mikrokontroler, data- data jam
dan yang lain dikirim dalam format BCD. Data dikirim per-byte dari
mikrokontroler ke DS1307 secara serial. Setelah menerima satu byte data,
DS1307 sebagai slave akan mengirim sinyal acknowledge ke mikrokontroler.
Sinyal acknowledge adalah tanda bahwa satu byte data telah diterima oleh
DS1307. Awal komunikasi, mikrokontroler akan membangkitkan sinyal start I2C.
Kemudian mikrokontroler akan mengirimkan alamat group dari DS1307 dan kode
untuk menulis ke DS1307 pada LSB-nya dan kode tulis ini diberikan ke DS1307
20
karena mikrokontroler akan menuliskan terlebih dahulu alamat awal pembacaan
register DS1307. Setelah itu, proses pembacaan I2C dimulai. Mikrokontroler
mengirimkan alamat DS1307 beserta kode instruksi baca. Proses pembacaan
dilakukan per-byte dimulai dari register deetik sampai register tahun. Setelah
menerima data 1 byte utuh mikrokontroler akan mengirimkan sinyal acknowledge
ke DS1307. Pada akhir pembacaan register tahun, akan dikirim sinyal
notacknowledge dan diakhiri dengan sinyal stop.
2.3 IC Shift Register 74HC595
Shift register SIPO (Serial In Paralel Out) memiliki pin input serial, pin clock, dan
beberapa pin output. Setiap kali sinyal clock terdeteksi di pin clock, nilai-nilai
pada pin-pin output akan digeser ke kiri (umumnya), dan nilai pin input akan
diselipkan menjadi bit terendah (LSB). Sinyal clock umumnya ditandai dengan
perubahan tegangan naik (rising up) atau turun (rising down) tergantung dari
spesifikasi shift register yang bersangkutan.
Gambar 2.5 IC Shift Register 74HC595
74HC595 adalah IC (integrated circuit, sirkuit elektronika terpadu) dari
keluarga TTL seri 74xx yang berfungsi sebagai Shift Register. Komponen
elektronika ini memiliki register (kumpulan flip-flop) sepanjang 8-bit yang
21
menerima masukan secara serial dan keluaran paralel dalam 8-pin keluaran. Data
masukan disimpan pada register penyimpanan tipe-D sepanjang satu byte (8 bit
D-type storage register). Register penyimpanan ini memiliki keluaran paralel
dengan 3 kondisi (3-state): HIGH, LOW, dan NULL (High-Z, High Impedance).
Sumber detak terpisah disediakan untuk masing-masing register (shift register dan
storage register).
Shift Register memiliki pin kendali SRCLR untuk mereset data di antrian
(direct overriding clear control), pin masukan serial (SER), dan pin keluaran
serial untuk disambungkan dengan IC lainnya (cascading). Dengan adanya pin
keluaran serial ini, data keluaran paralel dapat diekspansi menjadi lebih dari 8-bit.
Shift register clock (SRCLK) maupun storage register clock (RCLK) dipicu pada
sisi positif signal (positive-edge triggered). Bila kedua sumber detak
disambungkan bersama-sama, shift register akan selalu satu pulsa detak lebih
awal dibanding storage register.
2.4 IC ULN2803
ULN2803 adalah chip Integrated Circuit (IC) berupa rangkaian transistor
Darlinton dengan Tegangan Tinggi. Hal ini memungkinkan untuk membuat
antarmuka sinyal TTL dengan beban tegangan tinggi. Chip mengambil sinyal
tingkat rendah (TLL, CMOS, PMOS, NMOS) yang beroperasi pada tegangan
rendah dan arus rendah dan bertindak sebagai relay, menyalakan atau mematikan
tingkat sinyal yang lebih tinggi di sisi yang berlawanan. Secara fisik ULN2803
adalah konfigurasi IC 18-pin dan berisi delapan transistor NPN. Pins 1-8
menerima sinyal tingkat rendah, pin 9 sebagai grounding (untuk referensi tingkat
22
sinyal rendah). Pin 10 adalah COM pada sisi yang lebih tinggi dan umumnya akan
dihubungkan ke tegangan positif. Pins 11-18 adalah output (Pin 1 untuk Pin 18,
Pin 2 untuk 17, dst).
Gambar 2.6 Intergrated Circuit (IC) ULN2803
Di sisi output ULN2803 umumnya berada pada selang nilai 50V/500mA,
sehingga dapat mengoperasikan beban kecil secara langsung. Pada aplikasi lain,
sering digunakan untuk daya kumparan dari satu atau lebih relay yang
memungkinkan tegangan yang lebih tinggi atau arus yang lebih kuat, dikontrol
oleh sinyal tingkat rendah. Dalam aplikasi arus kuat (listrik), ULN2803
menggunakan tingkat rendah (TTL) sinyal untuk mengaktifkan
ataupun
mematikan sinyal tegangan/arus yang lebih tinggi pada sisi output.
2.5 Liquid Crystal Display (LCD)
LCD adalah lapisan dari campuran organik antara lapisan kaca bening dengan
elektroda transparan indium oksida dalam bentuk tampilan seven-segment dan
lapisan elektroda pada kaca belakang. Ketika elektroda diaktifkan dengan medan
listrik (tegangan), molekul organik yang panjang dan silindris menyesuaikan diri
dengan elektroda dari segmen. Lapisan sandwich memiliki polarizer cahaya
vertikal depan dan polarizer cahaya horisontal belakang yang diikuti dengan
23
lapisan reflektor. Cahaya yang dipantulkan tidak dapat melewati molekul-molekul
yang telah menyesuaikan diri dan segmen yang diaktifkan terlihat menjadi gelap
dan membentuk karakter data yang ingin ditampilkan.
Gambar 2.7 LCD (Liquid Cristal Display)
2.5.1 Pengendali/kontroler LCD (Liquid Crystal Display)
Dalam modul LCD (Liquid Cristal Display) terdapat microcontroller yang
berfungsi sebagai pengendali tampilan karakter LCD (Liquid Cristal Display).
Microntroller pada suatu LCD (Liquid Cristal Display) dilengkapi dengan memori
dan register. Memori yang digunakan microcontroler internal LCD adalah :
a. DDRAM (Display Data Random Access Memory) merupakan memori
tempat karakter yang akan ditampilkan berada.
b. CGRAM (Character Generator Random Access Memory) merupakan
memori untuk menggambarkan pola sebuah karakter dimana bentuk dari
karakter dapat diubah-ubah sesuai dengan keinginan.
c. CGROM (Character Generator Read Only Memory) merupakan memori
untuk menggambarkan pola sebuah karakter dimana pola tersebut
24
merupakan karakter dasar yang sudah ditentukan secara permanen oleh
pabrikan pembuat LCD (Liquid Cristal Display) tersebut sehingga
pengguna tinggal mangambilnya sesuai alamat memorinya dan tidak dapat
merubah karakter dasar yang ada dalam CGROM.
2.5.2 Register Kontrol Pada LCD (Liquid Crystal Display)
a. Register perintah yaitu register yang berisi perintah-perintah dari
mikrokontroler ke panel LCD (Liquid Cristal Display) pada saat proses
penulisan data atau tempat status dari panel LCD (Liquid Cristal Display)
dapat dibaca pada saat pembacaan data.
b. Register data yaitu register untuk menuliskan atau membaca data dari atau
ke DDRAM. Penulisan data pada register akan menempatkan data tersebut
ke DDRAM sesuai dengan alamat yang telah diatur sebelumnya.
2.5.3 Konfigurasi Pin Pada LCD
a. Pin data adalah jalur untuk memberikan data karakter yang ingin
ditampilkan
menggunakan
LCD
(Liquid
Cristal
Display)
dapat
dihubungkan dengan bus data dari rangkaian lain seperti mikrokontroler
dengan lebar data 8 bit.
b. Pin RS (Register Select) berfungsi sebagai indikator atau yang
menentukan jenis data yang masuk, apakah data atau perintah. Logika low
menunjukan yang masuk adalah perintah, sedangkan logika high
menunjukan data.
25
c. Pin R/W (Read Write) berfungsi sebagai instruksi pada modul jika low
tulis data, sedangkan high baca data.
d. Pin E (Enable) digunakan untuk memegang data baik masuk atau keluar.
e. Pin VBL berfungsi mengatur kecerahan tampilan (kontras) dimana pin ini
dihubungkan dengan trimpot 5 Kohm, jika tidak digunakan dihubungkan
ke ground, sedangkan tegangan catu daya ke LCD sebesar 5 Volt.
Tabel 2.8 Konfigurasi Pin LCD
No
1
2
3
Simbol
Vss
Vcc
Vee
Level
-
4
5
6
7
8
9
10
11
12
13
14
15
16
RS
R/W
E
DB0
DB1
DB2
DB3
DB4
DB5
DB6
DB7
V+BL
V-BL
H/L
H/L
Fungsi
0 Volt
5+10% Volt
Penggerak LCD
H=Memasukkan Data,L=Memasukkan
Ins
H=Baca, L=Tulis
Enable Signal
H/L
H/L
H/L
H/L
H/L
H/L
H/L
H/L
Data Bus
Kecerahan LCD
2.5.4 Karakteristik LCD
Modul LCD memiliki karakteristik sebagai berikut:
1. Terdapat 16 x 2 karakter huruf yang bisa ditampilkan.
2. Setiap terdiri dari 5 x 7 dot-matrix cursor.
3. Terdapat 192 macam karakter.
26
4. Terdapat 80 x 8 bit display RAM ( maksimal 80 karakter ).
5. Memiliki kemampuan penulisan dengan 8 bit maupun dengan 4 bit.
6. Dibangun oleh osilator lokal.
7. Satu sumber tegangan 5 Volt.
8. Otomatis reset saat tegangan dihidupkan.
9. Bekerja pada suhu 0oC sampai 550C.
2.6 Light Emitting Diode (LED)
LED merupakan keluarga dari Dioda yang terbuat dari Semikonduktor. Cara
kerjanya pun hampir sama dengan Dioda yang memiliki dua kutub yaitu kutub
Positif (P) dan Kutub Negatif (N). LED hanya akan memancarkan cahaya apabila
dialiri tegangan maju (bias forward) dari Anoda menuju ke Katoda. LED terdiri
dari sebuah chip semikonduktor yang di doping sehingga menciptakan junction P
dan N. Proses doping yang dimaksud dalam semikonduktor adalah proses untuk
menambahkan ketidakmurnian (impurity) pada semikonduktor yang murni
sehingga menghasilkan karakteristik kelistrikan yang diinginkan.
Ketika LED dialiri tegangan maju atau bias forward yaitu dari Anoda (P)
menuju ke Katoda (K), Kelebihan Elektron pada N-Type material akan berpindah
ke wilayah yang kelebihan Hole (lubang) yaitu wilayah yang bermuatan positif
(P-Type material). Saat Elektron berjumpa dengan Hole akan melepaskan photon
dan memancarkan cahaya monokromatik (satu warna).
27
Gambar 2.8 Light Emitting Diode (LED)
2.7 Tactile Switch
Tactile Switch merupakan komponen control yang sangat berguna, alat ini dapat
kita jumpai pada panel listrik atau di luar panel listrik. Fungsi tombol tekan adalah
untuk mengontrol kondisi on atau off rangkaian listrik, prinsip kerja tombol tekan
adalah kerja sesaat maksudnya jika tombol kita tekan sesaat maka akan kembali
pada posisi semula. Berdasarkan fungsinya tombol tekan terbagi atas 3 tipe
kontak:
1. Kontak NO (Normally Open = Kondisi terbuka) Tombol jenis ini biasanya
digunakan untuk menghubungkan arus pada suatu rangkaian Kontrol atau
sebagai tombol start. Fungsi mengalirkan arus pada tombol ini terjadi
apabila pada bagian knop nya ditekan sehingga kontaknya saling
terhubung dan aliran listrik akan terputus apabila knopnya dilepas karena
terdapat pegas.
2. Kontak NC (Normally Close = Kondisi Tertutup) Tombol jenis ini adalah
jenis kontak tertutup. Biasanya digunakan untuk memutus arus listrik yaitu
dengan cara menekan knopnya sehingga kontaknya terpisah, namun kalau
28
knop dilepas maka akan kembali pada posisi semula. Tombol jenis ini
digunakan untuk tombol stop.
3. Kontak NO dan NC merupakan gabungan antara kontak NO dan kontak
NC. Mereka berja secara bersamaan dalam satu poros. Jika tombol di
tekan maka kontak NO yang semula terbuka (Open) dan kontak NC yang
terhubung (Close) akan terbalik arah yaitu kontak NO akan menjadi
terhubung (Close) dan kontak NC akan menjadi terbuka (Open). Jika knop
pada tombol dilepaskan maka akan kembali ke posisi semula.
Gambar 2.9 Tactile Switch
2.8 Bahasa Pemograman BASCOM-AVR
Bahasa BASCOM-AVR menggunakan bahasa pemograman BASIC. Bahasa
BASIC adalah bahasa pemograman yang dapat dikatakan bahasa pemograman
berlevel tinggi. Bahasa pemograman berlevel rendah berarti bahasa pemograman
yang berorientasi pada mesin, misalnya bahasa assembly. Sedangkan bahasa
pemograman berlevel tinggi merupakan bahasa pemograman yang berorientasi
pada manusia. Bahasa pemograman berlevel rendah merupakan bahasa
pemograman dengan sandi yang hanya dimengerti oleh mesin, sehingga untuk
29
memprogram dalam bahasa ini diperlukan tingkat kecermatan yang tinggi. Bahasa
pemograman berlevel tinggi relatif mudah digunakan, karena ditulis dengan
bahasa manusia yang lebih mudah dimengerti dan tidak tergantung pada mesin.
Penulisan program dalam bahasa BASCOM-AVR ini tidak mengenal
aturan penulisan dikolam tertentu. Jadi bisa dimulai dari kolom manapun. Namun
demikian, untuk mempermudah dalam pembacaan program dan untuk keperluan
dokumentasi, sebaiknya penulisan program dalam bahasa BASCOM-AVR ini
diatur sedemikian rupa sehingga mudah dibaca. BASCOM AVR menyediakan
pilihan yang dapat mensimulasikan program.
2.8.1 Tipe Data
Tipe data merupakan bagian program yang penting karena tipe data
mempengaruhi setiap instruksi yang akan dilaksanakan komputer. Pemilihan tipe
data yang tepat akan membuat operasi data menjadi lebih efesien dan efektif.
Tabel 2.9 Tipe-Tipe Data Dalam BASCOM-AVR
NO
Tipe
Jangkauan
1.
Bit
0 atau 1
2.
Byte
0 – 225
3.
Integer
-65,535
4.
Word
0 – 65535
5.
Long
-2E+09
6.
Single
1.5x10-45 – 3.4x1038
7.
Double
5.0x10-324 – 1.7x10308
8.
String
>254 byte
30
2.8.2 Variabel
Variabel adalah suatu pengenal (identifier) yang digunakan untuk mewakili suatu
nilai tertentu di dalam proses program yang dapat diubah-ubah sesuai dengan
kebutuhan. Nama dari variable terserah sesuai dengan yang diinginkan namun hal
yang terpenting adalah setiap variabel diharuskan :

Terdiri dari gabungan huruf dan angka dengan karakter pertama harus
berupa huruf, max 32 karakter.

Tidak boleh mengandung spasi atau symbol-simbol khusus seperti : $, ?,
%, #, !, &, *, (, ), -, +, = dan lain sebagainya kecuali underscore.

Panjang sebuaah nama variabel hanya 32 karakter.
Untuk dapat menggunakan variabel, maka variabel tersebut harus dideklarasikan
terlebih dahulu pada program yang dibuat.
2.8.3 Operasi – operasi dalam BASCOM AVR
Bahasa pemograman BASCOM AVR ini dapat digunakan untuk menggabungkan,
membandingkan, atau mendapatkan informasi tentang sebuah pernyataan dengan
menggunakan operator-operator yang tersedia di BASCOM AVR.

Operator aritmatika adalah operator yang digunakan dalam perhitungan
operator aritmatika meliputi + (tambah), - (kurang), / (bagi), dan * (kali).

Operator Relasi berfungsi membandingkan nilai sebuah angka. Hasilnya
dapat digunakan untuk membuat keputusan yang sesuai dengan program
yang kita buat. Operator relasi meliputi:
31
Tabel 2.10 Operasi Relasi

Opertor
Relasi
Pernyataan
=
Sama Dengan
X=Y
<>
Tidak Sama Dengan
X <> Y
<
Lebih Kecil Dari
X<Y
>
Lebih Besar Dari
X>Y
<=
Lebih Kecil Sama Dengan
X <= Y
>=
Lebih Besar Sama Dengan
X >= Y
Operator Logika digunakan untuk menguji sebuah kondisi atau
memanipulasi bit dan bolean. Dalam BASCOM-AVR ada 4 buah operator
logika, yaitu AND, OR, NOT, dan XOR.

Operator fungsi adalah operator yang digunakan untuk melengkapi
operator yang sederhana.
32
Download