BAB 2 DASAR TEORI 2.1 Perangkat Keras Perangkat keras merupakan bentuk fisik dari alat pengukur suhu dan kelembaban yang terdiri dari modul SHT-11, sistem minimum Atmega8, LCD display M1632. 2.1.1 SHT-11 SHT-11 Module merupakan modul sensor suhu dan kelembaban relatif yang berbasis sensor SHT-11 dari Sensirion. Modul ini dapat digunakan sebagai alat pengindra suhu dan kelembaban dalam aplikasi pengendali suhu dan kelembaban ruangan maupun aplikasi pemantau suhu dan kelembaban relatif ruangan. Spesifikasi dari SHT-11 antara lain: 1. Berbasis sensor suhu dan kelembaban relatif Sensirion SHT-11. 2. Mengukur suhu dari -40 oC hingga +123,8 o C, atau dari -40 oF hingga +254,9 o F dan o C dan kelembaban relatif dari 0 % RH hingga 100 % RH. 3. Memiliki ketetapan (akurasi) pengukuran suhu hingga ± 0,5 o C pada suhu 25 ketepatan (akurasi) pengukuran kelembaban relatif hingga ± 3,5 % RH. 4. Memiliki atarmuka serial synchronous 2-wire, bukan 12 C. 5. Jalur antarmuka telah dilengkapi dengan rangkaian pencegah kondisi sensor lock-up 6. Membutuhkan catu daya +5V DC dengan konsumsi daya rendah 30∝ W. 7. Modul ini memiliki faktor bentuk 8 pin DIP 0,6 sehingga memudahkan pemasangannya. Gambar 2.1 Sensor SHT-11 Untuk menghubungkan sensor 2 wire dengan mikrokontroler, umumnya bentuk rangkaian dapat dilihat seperti Gambar 2.2. Universitas Sumatera Utara Gambar 2.2 Blok diagram umum sensor Tabel 2.1 Konfigurasi pin sensor SHT-11 Pin Name Comment 1 GND Ground 2 DATA Serial Data Bidirectional 3 SCK Serial Clock Input 4 VDD Supply 2.4 – 5.5 V Adapun cara kerja Sensor SHT-11 tersebut, yaitu; Kaki Serial Clock Input (SCK) digunakan untuk mensinkronkan komunikasi diantara mikrokontroller dan SHT-11. Kaki Serial Data (DATA) yang merupakan tristate digunakan untuk mentransfer data masuk dan keluar dari alat. Proses pengukuran dilakukan dengan memberikan logika ‘00000101’ untuk RH dan ‘00000011’ untuk temperatur, lalu controller harus menunggu agar proses pengukuran selesai. Ralat pada sensor Waktu yang dibutuhkan sekitar 500 ms untuk resolusi 14 bit. Suhu sebenarnya Universitas Sumatera Utara Ralat pada sensor Kelembaban relative Gambar 2.3 Akurasi RH dan Temperatur pada berbagai tipe Gambar di atas menampilkan kinerja dari sensor SHT-11, yaitu grafik perbandingan akurasi RH dan Temperatur pada berbagai tipe jenis sensor. Pada sensor SHT-11 terlihat pada grafik akurasi Temperatur untuk suhu yang diukur dari 0 – 50 o C, maka ralat pada sensor sebesar ± 1 o C.Untuk suhu dari -10 – 60 o C, maka ralat pada sensor sebesar 1,4 o C. Dengan demikian dari grafik didapat suhu maksimal sebesar 20,5 o C. Sedangkan pada grafik akurasi RH, besar kelembaban yang diukur dari 20 – 80% RH, ralat pada sensor sebesar ± 5% RH. Dari berbagai tipe sensor pada grafik diatas terlihat hasil yang lebih baik dapat diperoleh jika menggunakan sensor SHT75 dengan resolusi dan kualitas yang lebih baik. 2.1.2 Rangkaian Sistem Minimum AVR ATmega8 Sistem minimum mikrokontroler adalah rangkaian elektronik minimum yang diperlukan untuk beroperasinya IC mikrokontroler. Sistem minimum ini kemudian bisa dihubungkan dengan rangkaian lain untuk menjalankan fungsi tertentu. Di keluarga mikrokontroler AVR, seri 8 adalah salah satu seri yang sangat banyak digunakan. Untuk membuat rangkaian sistem minimum Atmel AVR 8 diperlukan beberapa komponen yaitu: 1. IC mikrokontroler Atmega8 2. Satu XTAL 4 MHz 3. Dua kapasitor yaitu satukapasitor 220µF dan satu kapasitor 100 µF 4. Satu resistor 5. Satu trimpot 6. IC Regulator 7805 7. Atmega8A-PU Universitas Sumatera Utara Selain itu tentunya diperlukan power supply (adaptor) yang bisa memberikan tegangan 5V DC. Rangkaian sistem minimum ini sudah siap untuk menerima sinyal analog (fasilitas ADC) di port A. Gambar rangkaiannya adalah sebagai berikut. Gambar 2.4 Sistem Minimum AVR ATmega8 2.1.2.1 Arsitektur Mikrokontroller AVR Mikrokontroler adalah suatu chip yang dapat digunakan sebagai pengontrol utama sistem elektronika, misalnya sistem pengukur suhu digital, sistem keamanan rumah dan lain sebagainya. Hal ini dikarenakan di dalam chip tersebut sudah ada unit pemroses, memori ROM (Read Only Memori), RAM (Random Access Memory), Input-Output, dan fasilitas pendukung lainnya. Mikrokontroler AVR memiliki arsitektur RISC 8 bit, di mana semua instruksi dikemas dalam kode 16-bit (16-bit word) dan sebagian besar instruksi dieksekusi dalam 1 (satu) siklus clock, berbeda dengan instruksi MCS51 yang membutuhkan 12 siklus clock. Hal ini terjadi karena kedua jenis mikrokontroler tersebut memiliki arsitektur yang berbeda. AVR berteknologi RISC (Reduced Instruksi Set Computing), sehingga eksekusi instruksi dapat berlangsung sangat cepat dan efisien. Sedangkan seri MCS51 berteknoli CISC (Complex Instruktion Set Computing). Pada dasarnya yang membedakan masing-masing kelas adalah memori, peripheral, dan fungsinya. Dari segi arsitektur dan instruksi yang digunakan, mereka bias dikatakan hampir sama. Universitas Sumatera Utara Mikrokontroler AVR sudah menggunakan konsep arsitektur Harvard yang memisahkan memori dan bus untuk data dan program, serta sudah menerapkan single level pipelining. Blok sistem mikrokontroler AVR adalah sebagai berikut : Gambar 2.5 Skematik Blok Sistem Mikrokontroller AVR Berikut adalah feature-feature mikrokontroler seri Atmega8. 1. Memori Flash 8 Kbytes dalam programmable flash 2. Memori EEPROM 512 bytes untuk data yang dapat diprogram saat operasi 3. Memori SRAM 1 bytes untuk data 4. Dua buah Timer / Counter 18 bit dengan kemampuan pembandingan Universitas Sumatera Utara 5. Watchdog Timer dengan osilator internal 6. 6 channel ADC, Empat Saluran 10-bit Akurasi dan Dua Saluran 8-bit Akurasi 7. Lima Mode Sleep: Idle, ADC Noise Reduction, Power-save, Power-down, dan Siaga 8. Antar muka komparator analog 9. Saluran I/O sebanyak 23 buah, yaitu Port A, Port B, Port C, dan Port D. 10. Unit interupsi internal dan eksternal 11. Programmable Serial USART 12. Master / Slave SPI Serial Interface 13. Power-on reset dan Deteksi Programmable Brown-out 14. Internal dikalibrasi RC Oscillator 2.1.2.2 Penjelasan Fungsi PIN Mikrokontroller AVR IC mikrokontroler dikemas (packaging) dalam bentuk yang berbeda. Namun pada dasarnya fungsi kaki yang ada pada IC memiliki persamaan. Gambar salah satu bentuk IC seri mikrokontroler AVR Atmega 8 dapat dilihat pada gambar 2.6 dibawah ini. Gambar 2.6 Pin Atmega 8 Berikut adalah penjelasan fungsi tiap kaki : 1) PORT A Merupakan 8-bit directional port I/O. Setiap pinnya dapat menyediakan internal pull-up resistor (dapat diatur per bit). Output buffer Port A dapat memberi arus 20 mA dan dapat mengendalikan display LED secara langsung. Data Direction Register port A (DDRA) harus disetting terlebih dahulu sebelum Port A digunakan. Bit-bit DDRA diisi 0 jika ingin memfungsikan pin-pin port A yang bersesuaian sebagai input, atau diisi 1 jika sebagai output. Universitas Sumatera Utara 2) PORT B Merupakan 8 bit directional port I/O. Setiap pinnya dapat menyediakan internal pull-up resistor (dapat diatur perbit). Output buffer Port B dapat member arus 20 mA dan dapat mengendalikan display LED secara langsung.Data Direction Register Port B (DDRB) harus disetting terlebih dahulu sebelum Port b digunakan. Bit-bit DDRB diisi 0 jika ingin memfungsikan pin-pin Port B bersesuaian sebagai input, atau diisi 1 jika sebagai output.Pin-pin Port B juga memiliki fungsi alternatif khusus seperti yang dapat dilihat dalam tabel konfigurasi pin Port B Atmega 8 berikut. Tabel 2.2. Konfigurasi pin port B Atmega8 Port Pin Fungsi Khusus PB0 T0 = timer/counter 0 external counter input PB1 T1 = timer/counter 0 external counter input PB2 AIN0 = analog comparator positive input PB3 AIN1 = analog comparator negative input PB4 SS = SPI slave select input PB5 MOSI = SPI bus master output / slave input PB6 MISO = SPI bus master input / slave output PB7 SCK = SPI bus serial clock 3) PORT C Merupakan 8-bit directional port I/O. Setiap pinnya dapat menyediakan internal pull-up resistor (dapat diatur per bit). Output buffer Port C dapat memberi arus 20 mA dan dapat mengendalikan display LED secara langsung.Data Direction Register port C (DDRC) harus disetting terlebih dahulu sebelum Port C digunakan. Bit-bit DDRC diisi 0 jika ingin memfungsikan pin-pin port C yang bersesuaian sebagai input, atau diisi 1 jika sebagai output. Selain itu, dua pin port C (PC6 dan PC7) juga fungsi alternatif sebagai oscillator untuk timer/counter 2. 4) PORT D Merupakan 8-bit directional port I/O. Setiap pinnya dapat menyediakan internal pull-up resistor (dapat diatur per bit). Output buffer Port D dapat member arus 20 mA dan dapat mengendalikan display LED secara langsung. Data Direction Register port D (DDRD) harus disetting terlebih dahulu sebelum Port D digunakan. Bit-bit DDRD diisi 0 jika ingin memfungsikan pin-pin port D yang bersesuaian sebagai input, atau diisi 1 jika sebagai output. Universitas Sumatera Utara Selain itu, pin-pin port D juga memiliki untuk fungsi-fungsi alternatif khusus seperti yang dapat dilihat dalam tabel konfigurasi pin Port D Atmega8 berikut. Tabel 2.3.Konfigurasi Pin Port D Atmega8 Port Pin Fungsi Khusus PD0 RDX (UART input line) PD1 TDX (UART output line) PD2 INT0 ( external interrupt 0 input ) PD3 INT1 ( external interrupt 1 input ) PD4 OCIB (Timer/Counter1 output compareB match output) PD5 OC1A (Timer/Counter1 output compareA matchoutput) PD6 ICP (Timer/Counter1 input capture pin) PD7 OC2 (Timer/Counter2 output compare match output) 5) RESET RST pada pin 9 merupakan reset dari AVR. Jika pada pin ini diberi masukan low selama minimal 2 machine cycle maka system akan di-reset. 6) XTAL1 XTAL1 adalah masukan ke inverting oscillator amplifier dan input ke internal clock operating circuit. 7) XTAL2 XTAL2 adalah output dari inverting oscillator amplifier. 8) Avcc Avcc adalah kaki masukan tegangan bagi A/D Converter. Kaki ini harus secara eksternal terhubung ke Vcc melalui lowpass filter. 9) AREF AREF adalah kaki masukan referensi bagi A/D Converter. Untuk operasionalisasi ADC, suatu level tegangan antara AGND dan Avcc harus dibeikan ke kaki ini. 10) AGND AGND adalah kaki untuk analog ground. Hubungkan kaki ini ke GND, kecuali jika board memiliki anlaog ground yang terpisah. 2.1.3 Modul LCD (Liquid Crystal Display) M1632 M1632 merupakan modul LCD matrix dengan konfigurasi 16 karakter dan 2 baris dengan setiap karakternya dibentuk oleh 8 baris pixel dan 5 kolom pixel (1 baris pixel terakhir adalah Universitas Sumatera Utara kursor). HD44780 ini sudah tersedia dalam Modul M1632 yang dikeluarkan oleh Hitachi, Hyundai dan modul-modul M1632 lainnya. HD44780 sebetulnya merupakan mikrokontroler yang dirancang khusus untuk mengendalikan LCD dan mempunyai kemampuan untuk mengatur proses scanning pada layar LCD yang terbentuk oleh 16 COM dan 40 SEG sehingga mikrokontroler/perangkat yang mengakses modul LCD ini tidak perlu lagi mengatur proses scanning pada layar LCD. Mikrokontroler atau perangkat tersebut hanya mengirimkan data-data yang merupakan karakter yang akan ditampilkan pada LCD atau perintah yang mengatur proses tampilan pada LCD saja. 2.1.3.1 Kaki-kaki Modul M1632 Untuk keperluan antarmuka suatu komponen elektronik dengan mikrokontroler, perlu diketahui fungsi dari setiap kaki yang ada pada komponen tersebut. 1) Kaki 1 (GND) Kaki ini berhubungan dengan tegangan +5 Volt yang merupakan tegangan untuk sumber daya dari HD44780 (khusus untuk modul M1632 keluaran hitachi, kaki ini adalah VCC) 2) Kaki 2 (VCC) Kaki ini berhubungan dengan tegangan 0 volt (ground) dan modul LCD (khusus untuk modul M1632 keluaran hitachi, kaki ini adalah GND) 3) Kaki 3 (VEE/VLCD) Tegangan pengatur kontras LCD, kaki ini terhubung pada V5. Kontras mencapai nilai maksimum pada saat kondisi kaki ini pada tegangan 0 volt. 4) Kaki 4 (RS) Register Select, kaki pemilih register yang akan diakses. Untuk akses ke register data, logika dari kaki ini adalah 1 dan untuk akses ke register perintah, logika dari kaki ini adalah 0. 5) Kaki 5 (R/W) Logika 1 pada kaki ini menunjukkan bahwa modul LCD sedang pada mode pembacaan dan logika 0 menunjukkan bahwa modul LCD sedang pada mode penulisan. Untuk aplikasi yang tidak memerlukan pembacaan data pada modul LCD, kaki ini dapat dihubungkan langsung ke ground. 6) Kaki 6 (E) Enable Clock LCD, kaki ini mengaktifkan clock LCD. Logika 1 pada kaki ini diberikan pada saat penulisan atau pembacaan data. Universitas Sumatera Utara 7) Kaki 7-14 (D0-D7) Data bus, kedelapan kaki modul LCD ini adalah bagian dimana aliran data sebanyak 4 bit atau 8 bit mengalir saat proses penulisan maupun pembacaan data. 8) Kaki 15 (Anoda) Berfungsi untuk tegangan positif dari backlight modul LCD sekitar 4,5 volt (hanya terdapat untuk M1632 yang memiliki backlight). 9) Kaki 16 (Katoda) Tegangna negatif backlight modul LCD sebesar 0 volt (hanya untuk M1632 yang memiliki backlight). 2.1.3.2 Akses ke register Seperti telah dijelaskan sebelumnya, HD44780 yang menjadi pengendali modul M1632 mempunyai dua buah register, yaitu register data dan register perintah. Berikut ini akan dijelaskan bagaimana proses terjadinya penulisan maupun pembacaan data dari kedua register ini. 1) Penulisan Data ke Register Perintah Penulisan data ke register perintah digunakan untuk memberikan perintah-perintah pada Modul M1632 sesuai dengan data-data yang dikirimkan ke register tersebut. Gambar 2.7 menunjukkan proses penulisan data ke register perintah menggunakan mode 4 bit interface. Kondisi RS berlogika 0 menunjukkan akses data ke register perintah. RW berlogika 0 menunjukkan proses penulisan data akan dilakukan. Nibble tinggi (bit7 sampai bit 4) terlebih dahulu dikirimkan dengan diawali pulsa logika 1 pada E Clock, kemudian nibble rendah (bit 3 sampai bit 0) dikirimkan dengan diawalai pulsa logika 1 pada E Clock lagi. Gambar 2.7 Timing penulisan data ke register perintah mode 4 bit interface Universitas Sumatera Utara Built In Routine Kirim_Perintah EQU 433H …………………………… Lcall kirim perintah 2) Pembacaan Data dari Register Perintah Proses pembacaan data dari register perintah ini digunakan untuk membaca status sibuk M1632 dan addres counter saja. RS diatur pada logika 0 untuk akses ke register perintah dan R/W diatur pada logika 1 yang menunjukkan proses pembacaan data. Empat bit nibble tinggi dibaca dengan diawali pulsa logika 1 pada E Clock dan kemudian 4 bit nibble rendah dibaca dengan diawali pulsa logika 1 pada E clock. Gambar 2.8 Timing diagram pembacaan register perintah mode 4 bit interface 3) Penulisan Data ke Register Data Penulisan data ke register data digunakan dalam proses penulisan data karakter yang akan ditampilkan ke LCD (DDRAM) atau proses penulisan data pola karakter ke CGRAM. Proses diawali dengan adanya logika 1 pada RS yang menunjukkan akses ke register data. Kondisi R/W diatur pada logika 0 yang menunjukkan proses penulisan data. Data 4 bit nibble tinggi (bit 7 hingga bit 4) dikirim dengan diawali dngan pulsa logika 1 pada sinyal E Clock dan kemudian diikuti 4 bit bit nibble rendah (bit 3 hingga bit 0) yang juga diawali pulsa logika 1pada sinyal E Clock. Gambar 2.9 Timing diagram penulisan data ke register data mode 4 bit interface Universitas Sumatera Utara 4) Pembacaan Data ke Register Data Pembacaan data dari rd dilakukan untuk membaca kembali data yang tampil pada LCD. Proses dilakukan dengan mengatur RS pada logika 1 yang menunjukkan adanya akses ke rd. Kondisi R/W diatur pada logika tinggi yang menunjukkan adanya proses pembacaan data. Data 4 bit nibble (bit 7 hingga bit 4) dibaca dengan diawali adanya pulsa logika 1 pada E Clock dan dilanjutkan dengan data 4 bit nibble rendah (bit 3 hingga bit 0) yang juga diawali dengan pulsa logika 1 pada E Clock. Gambar 2.10 Timing diagram pembacaan data dari register data mode 4 bit 2.1.3.3 Struktur Memori LCD Modul LCD M1632 memiliki beberapa jenis memori yang digunakan untuk menyimpan atau memproses data-data yang akan ditampilkan pada layar LCD. Setiap jenis memori mempunyai fingsi-fungsi tersendiri. 1. DDRAM DDRAM merupakan memori tempat karakter yang ditampilkan berada. Contohnya, karakter “A” atau 41h yang ditulis pada alamat 00 akan tampil pada baris pertama dan kolom pertama dari LCD. Apabila karakter tersebut ditulis di alamat 40h, karakter tersebut akan tampil pada baris kedua kolom pertama dari LCD. 2. CGRAM CGRAM adalah memori untuk menggambarkan pola sebuah karakter dan bentuk karakter dapat diubah-ubah sesuai keinginan. Akan tetapi isi memori akan hilang saat power supply tidak aktif sehingga pola karaktr akan hilang. 3. CGROM CGROM adalah memori untuk menggambarkan pola sebuah karakter dan pola tersebut sudah dientukan secara permanen dari HD44780 sehingga pengguna tidak dapat mengubah lagi. Oleh karena ROM bersifat permanen, pola karakter tersebut tidak akan hilang walaupun power suplly tidak aktif. Universitas Sumatera Utara 2.2 Perangkat Lunak Perangkat lunak merupakan program yang meliputi bahasa pemrograman CodeVisionAVR Evaluation (CVAVR) untuk pemrograman mikrokontroler Atmega8. 2.2.1 Bahasa basic Menggunakan Code Vision AVR (CVAVR) CodeVisionAVR merupakan sebuah cross-compiler C,Integrated Development Environtment (IDE), dan Automatic Program Generator yang didesain untuk mikrokontroler buatan Atmel seri AVR. CodeVisionAVR dapat dijalankan pada sistem operasi Windows 95, 98, Me, NT4, 2000, dan XP. Cross-compiler C mampu menerjemahkan hampir 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 pada sistem embedded. File object COFF hasil kompilasi dapat digunakan untuk keperluan debugging pada tingkatan C, dengan pengamatan variabel, menggunakan debugger Atmel AVR Studio. IDE mempunyai fasilitas internal berupa software AVR Chip In-System Programmer yang memungkinkan Anda untuk melakukan transfer program kedalam chip mikrokontroler setelah sukses melakukan kompilasi/asembli secara otomatis. Software In-System Programmer didesain untuk bekerja dengan Atmel STK500/AVRISP/AVRProg, Kanda Systems STK200+/300, Dontronics DT006, Vogel Elektronik VTEC-ISP, Futurlec JRAVR dan MicroTronics ATCPU/Mega2000 programmers/development boards. Universitas Sumatera Utara