LANDASAN TEORI
Untuk mendeteksi suhu digunakan sebuah sensor suhu LM 35 yang dapat dikalibrasikan langsung dalam , LM 35 ini difungsikan sebagai basic temperature sensor seperti pada gambar 2.1
IC LM 35 sebagai sensor suhu yang teliti dan terkemas dalam bentuk Integrated Circuit (IC), dimana output tegangan keluaran sangat linear berpadanan dengan perubahan suhu. Sensor ini berfungsi sebagai pengubah dari besaran fisis suhu ke besaran tegangan yang memiliki koefisien sebesar 10 mV /C yang berarti bahwa kenaikan suhu 1 C maka akan terjadi kenaikan tegangan sebesar 10 mV.
IC LM 35 ini tidak memerlukan pengkalibrasian atau penyetelan dari luar karena ketelitiannya sampai lebih kurang seperempat derajat celcius pada temperature ruang. Jangka sensor mulai dari 55C sampai dengan 150C, IC LM35 penggunaannya sangat mudah, difungsikan sebagai kontrol dari indicator tampilan
catu daya terbelah. IC LM 35 dapat dialiri arus 60 m A dari supplay sehingga panas yang ditimbulkan sendiri sangat rendah kurang dari 0 C di dalam suhu ruangan.
LM 35 ialah sensor temperatur paling banyak digunakan untuk praktek, karena selain harganya cukup murah, linearitasnya juga lumayan bagus. LM35 tidak membutuhkan kalibrasi eksternal yang menyediakan akurasi temperatur C. LM35 ruangan dan C pada kisaran -55 C C to pada +150
sedangkan LM35C pada -40 C hingga +110 C, dan LM35D pada kisran 0-100C. LM35D juga tersedia pada paket 8 kaki dan paket TO-220. Sensor LM35 umunya akan naik sebesar 10mV setiap kenaikan 1C (300mV pada 30 C).
Sensor suhu LM35 berfungsi untuk mengubah besaran fisis yang berupa suhu menjadi besaran elektri tegangan. Sensor ini memiliki parameter bahwa setiap
kenaikan 1C tegangan
Pada perancangan kita tentukan keluaran ADC mencapai full scale pada saat suhu 100C, sehingga tegangan keluaran tranduser (10mV/C x 100C) = 1V.
Pengukuran secara langsung saat suhu ruang, keluaran LM35 adalah 0,3V (300mV). Tengan ini diolah dengan mengunakan rangkaian pengkondisi sinyal agar sesuai dangan tahapan masukan ADC. LM35 memiliki kelibihan kelebihan sebagai berikut:
1. Di kalibrasi langsung dalam celsius 2. Memiliki faktor skala linear + 10.0 mV/C 3. Memiliki ketetapan 0,5C pada suhu 25C 4. Jangkauan maksimal suhu antara -55C sampai 150C 5. Cocok untuk applikasi jarak jauh 6. Harganya cukup murah 7. Bekerja pada tegangan catu daya 4 sampai 30Volt 8. Memiliki arus drain kurang dari 60 uAmp 9. Pemanasan sendiri yang lambat ( low self-heating) 10. 0,08C diudara diam 11. Ketidak linearanya hanya sekitar C 12. Memiliki Impedansi keluaran yang kecil yaitu 0,1 watt untuk beban 1 mAmp.
Sensor suhu tipe LM35 merupakan IC sensor temperatur yang akurat yang tegangan keluarannya linear dalam satuan celcius. Jadi LM35 memilik kelebihan
dibandingkan sensor temperatur linear dalam satuan kelvin, karena tidak memerlukan pembagian dengan konstanta tegangan yang besar dan keluarannya untuk
mendapatkan nilai dalam satuan celcius yang tepat. LM35 memiliki impedansi keluaran yang rendah, keluaran yang linear, dan sifat ketepatan dalam pengujian membuat proses interface untuk membaca atau mengotrol sirkuit lebuh mudah. Pin V+ dari LM35 dihubungkan kecatu daya, pin GND dihubungkan ke Ground dan pin Vout- yang menghasilkan tegangan analog hasil pengindera suhu dihubungkan ke vin (+) dan ADC 0840.
Mikrokontroler,
sebagai
suatu
terobosan
teknologi
mikrokontroler
dan
microkomputer, hadir memenuhi kebutuhan pasar (market need) dan teknologi baru. Sebagai teknologi baru, yaitu teknologi semi konduktor dengan kandungan transistor yang lebih banyak namun hanya membutuhkan ruang kecil serta dapat diproduksi secara massal (dalam jumlah banyak) sehingga harga menjadi lebih murah (dibandingkan microprocessor). Sebagai kebutuhan pasar, mikrokontroler hadir untuk memenuhi selera industri dan para konsumen akan kebutuhan dan keinginan alat-alat bantu dan mainan yang lebih canggi serta dalam bidang pendidikan.
Tidak seperti sistem 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. Perbedaan lainnya terletak pada perbandingan RAM dan ROM-nya. Pada sistem komputer perbandingan RAM dan ROM-nya besar, artinya program-program pengguna disimpan dalam ruang RAM yang relatif besar, sedangkan rutin-rutin antar muka
perangkat keras disimpan dalam ruang ROM yang kecil. Sedangkan Pada mikrokontroler, perbandingan ROM dan RAM-nya yang besar artinya program control disimpan dalam ROM yang ukurannya relatif lebih besar, sedangkan RAM digunakan sebagai tempat penyimpanan sederhana sementara, termasuk registerregister yang digunakan pada Microcontroller yang bersangkutan.
Mikrokontroler saat ini sudah dikenal dan digunakan secara luas pada dunia industri. Banyak sekali penelitian atau proyek mahasiswa yang menggunakan berbagai versi mikrokontroller yang dapat dibeli dengan harga yang relatif murah. Hal ini dikarenakan produksi massal yang dilakukan oleh para produsen chip seperti Atmel, Maxim, dan Microchip. Mikrokontroler saat ini merupakan chip utama pada hamper setiap peralatan elektronika canggih. Alat-alat canggih pun sekarang ini pun sangat bergantung pada kemampuan mikrokontroler tersebut. Mikrokontroler AVR memiliki arsitektur RISC 8 bit,dimana 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. Tentu saja itu terjadi karena kedua jenis mikrokontroler tersebut memiliki arsitektur yang berbeda. AVR berteknologi RISC (Reduced Instruction Set Computing), sedangkan seri MCS51 berteknologi CISC (Complex Instruction Set Computing). Secara
umum,AVR dapat dikelompokkan menjadi 4 kelas, yaitu keluarga ATtiny, keluarga AT90Sxx, keluarga ATmega, dan AT86RFxx. Pada dasarnya, yang membedakan masing-masing kelas adalah memori, peripheral, dan fungsinya. Dari segi arsitektur dan instruksi yang digunakan, mereka bisa dikatakan hampir sama. Kapabilitas detail dari ATMega8535 adalah sebagai berikut :
10
1. Sistem mikroprosesor 8 bit berbasis RISC dengan kecepatan maksimal 16 MHz. 2. Kapabilitas memori flash 8 KB, SRAM sebesar 512 byte, dan EEPROM (Electrically Erasable Programmable Read Only Memory) sebesar 512 byte. 3. ADC internal dengan fidelitas 10 bit sebanyak 8 channel. 4. Portal komunikasi serial (USART) dengan kecepatan maksimal 2,5 Mbps. 5. Enam pilihan mode sleep menghemat penggunaan daya listrik.
Konfigurasi pin ATMega8535 bisa dilihat pada gambar 2.4 dibawah ini.
11
AVR ATMega8535 memiliki ruang pengalamatan memori data dan memori program yang terpisah. Memori data terbagi menjadi 3 bagian, yaitu 32 buah register umum, 64 buah register I/O, dan 512 byte SRAM Internal.
Register keperluan umum menempati space data pada alamat terbawah, yaitu $00 sampai $1F. Sementara itu, register khusus untuk menangani I/O dan control terhadap mikrokontroller menempati 64 alamat berikutnya, yaitu mulai dari $20 hingga $5F. Register tersebut merupakan register yang khusus digunakan untuk mengatur fungsi terhadap berbagai peripheral mikrokontroller, seperti control register, timer/conter, fungsi-fungsi I/O, dan sebagainya. Register khusus alamat memori secara lengkap Alamat memori berikutnya digunakan untuk SRAM 512 byte, yaitu pada lokasi $60 sampai dengan $25F.
Data yang dipakai dalam mikrokontroler ATmega8535 dipresentasikan dalam sistem bilangan biner, desimal, dan bilangan heksadesimal. Data yang terdapat di mikrokontroler dapat diolah dengan berbagai operasi aritmatik (penjumlahan, pengurangan, dan perkalian) maupun operasi nalar (AND, OR, dan EOR /eksklusif OR). AVR ATmega8535 memiliki tiga buah timer, yaitu: 1. Timer/counter 0 (8 bit) 2. Timer/ counter 1 (16 bit) 3. Timer/counter 2 (8 bit)
Karena ATmega8535 memiliki 8 saluran ADC maka untuk keperluan konversi sinyal analog menjadi data digital yang berasal dari sensor dapat langsung dilakukan prosesor utama. Beberapa karakteristik ADC internal ATmega8535 adalah :
12
1. Mudah dalam pengoperasian. 2. Resolusi 10 bit. 3. Memiliki 8 masukan analog. 4. Konversi pada saat CPU sleep.
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 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 datadata yang merupakan karakter yang akan ditampilkan pada LCD atau perintah yang mengatur proses tampilan pada LCD saja.
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 fungsi-fungsi tersendiri.
13
a. 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
b. 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 karakter akan hilang.
c. CGROM CGROM adalah memori untuk menggambarkan pola sebuah karakter dan pola tersebut sudah ditentukan 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
didalam pembuatan alat ini adalah Bahasa BASCOM-8051. BASCOM-8051 adalah program BASIC compiler berbasis Windows untuk mikrokontroler keluarga 8051 seperti AT89C51, AT89C2051, dan yang lainnya.
14
BASCOM-8051 merupakan bahasa pemrograman tingkat tinggi ayng menggunakan bahasa BASIC yang dikembangkan dan dikeluarkan oleh MCS Elektronik sebagai perusahaan yang mempunyai hak paten atas software tersebut. Berikut dijelaskan spesifikasi dari BASCOM 8051:
Dalam program BASCOM, karakter dasarnya terdiri atas karakter alphabet (A-Z dan a-z), karakter numeric (0-9), dan karakter special (lihat tabel 2.1).
Tabel 2.1 Karakter Spesial karakter * + , . / : ; < = > \ Nama Blank Apostrophe Asterisk (symbol perkalian) Plus sign Comma Minus sign Period (decimal point) Slash (division symbol) will be handled as\ Colon Double quotation mark Semicolon Less than Equal sign (assignment symbol or relational operator) Greater than Backspace (integer or word division symbol)
15
Setiap variabel dalam BASCOM memiliki tipe data yang menunjukkan daya tampungnya. Hal ini berhubungan dengan penggunaan memori mikrokontroler. Berikut adalah tipe data pada BASCOM berikut keterangannya.
Tabel 2.2 Tipe data BASCOM Tipe Data Bit Byte Integer Word Long Single String Ukuran (byte) 1/8 1 2 2 4 4 hingga byte Range
2.4.1.3 Variabel
Variabel dalam sebuah pemrograman berfungsi sebagai tempat penyimpanan data atau penampungan data sementara, misalnya menampung hasil perhitungan,
menampung data hasil pembacaan register, dan lainnya. Variabel merupakan pointer yang menunjukkan pada alamat memori fisik dan mikrokontroler.
Dalam BASCOM, ada beberapa aturan dalam penamaan sebuah variable: a. Nama variabel maksimum terdiri atas 32 karakter. b. Karakter biasa berupa angka atau huruf. c. Nama variabel harus dimulai dengan huruf.
16
d. Variabel tidak boleh menggunakan kata-kata yang digunkan oleh BASCOM sebagai perintah, pernyataan, internal register, dan nama operator (AND, OR, DIM, dan lain-lain).
Sebelum digunakan, 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 pendeklarasian menggunakan DIM sebagai berikut:
Dim nama as byte Dim tombol1 as integer Dim tombol2 as word Dim tombol3 as word Dim tombol4 as word Dim Kas as string*10
2.4.1.4 Alias
Dengan menggunakan alias, variabel yang sama dapat diberikan nama yang lain. Tujuannya adalah mempermudah proses pemrograman. Umumnya, alias digunakan untuk mengganti nama variabel yang telah baku, seperti port mikrokontroler.
LEDBAR alias P1 Tombol1 alias P0.1 Tombol2 alias P0.2
Dengan deklarasi seperti diatas, perubahan pada tombol akan mengubah kondisi P0.1. Selain mengganti nama port, kita dapat pula menggunakan alias untuk mengakses bit tertentu dari sebuah variabel yang telah dideklarasikan.
17
2.4.1.5 Konstanta
Dalam BASCOM, selain variabel kita mengenal pula constant. Konstanta meruupakan 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. Misalnya, kita akan lebih mudah menulis phi daripada menulis 3,14159867. Sama seperti variabel, agar konstanta bias dikenali oleh program, maka harus dideklarasikan terlebih dahulu. Berikut adalah cara pendeklarasian sebuah konstanta.
Dim A As Const 5 Dim B1 As Const &B1001
18
2.4.1.6 Array
Dengan array, kita 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. Artinya, nilai maksimum sebuah indeks sebesar 65535.
Proses pendeklarasian sebuah array hampir sama dengan variabel, namun perbedaannya kita pun mengikutkan jumlah elemennya. Berikut adalah contoh pemakaian array;
Dim kelas(10) as byte Dim c as Integer
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, kita menggunakan indeks dimana elemen disimpan. Pada program diatas, elemen-elemen arraynya dikeluarkan ke Port 1 dari mikrokontroler.
19
2.5 Software Downloader Untuk mengeksekusi program-program yang telah dimasukkan kedalam IC mikrokontroller dibutuhkan sebuah software yang berfungsi untuk mengkompile program-program yang telah dimasukkan. Software yang digunakan untuk mengkompile program-program yang dimasukkan tersebut digunakan software ISPFlash Programmer 3.0a yang dapat didownload dari internet. Tampilannya seperti gambar di bawah ini
Gambar 2.5 ISP- Flash Programmer Cara menggunakannya adalah dengan meng-klik Open File untuk mengambil file dan kemudian dengan menekan write untuk mengisikan program kedalam IC mikrokontroller.
20
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 + (tambah), - (kurang), / (bagi), dan * (kali). b. Operator Relasi Operator berfungsi membandingkan nilai sebuah angka. Hasilnya dapat digunakan untuk membuat keputusan sesuai dengan program yang kita buat. Operator relasi meliputi:
Relasi Sama dengan Tidak sama dengan Lebih kecil dari Lebih besar dari Lebih kecil atau dengan Lebih besar atau dengan
sama sama
c. Operator Logika Operator digunakan untuk menguji sebuah kondisi atau memanipulasi bit dan operasi bolean. Dalam BASCOM, ada empat buah operator logika, yaitu AND, OR, NOT, dan XOR.
21
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. Operator Fungsi Operasi fungsi digunakan untuk melengkapi operator yang sederhana.
Salah satu kelebihan yang dimiliki oleh compiler BASCOM adalah program yang menyediakan rutin-rutin khusus untuk menampilkan karakter menggunakan LCD. Bahkan, kita pun dapat membuat karakter special dengan fasilitas LCD designer.
Antar muka antara LCD dengan AT89S52 menggunakan mode antarmuka 4 bit. Selain lebih menghemat I/O, mode demikianpun mempermudah proses pembuatan PCB-nya. Program berikut akan menjalankan beberapa perintah yang berkenaan dengan LCD.
$regfile = 8052.dat $crystal = 12000000 dim x as byte config LCD = 16*2 Cursor off do
22
X = 100 Cls Lcd namaku Satih Lowerline Lcd Nilaiku selalu; x Wait 1
Cls Lcd <<<< Hebat >>>> For x=1 to 16 Shiftlcd left next For x=1 to 32 Shiftlcd right Waitms 200 next x = 100 cls lcd hex x loop
a. Dim x As Byte Pernyataan di atas merupakan pendeklarasian variable x dengan ukuran byte. b. Config LCD = 16*2 Oleh karena itu, konfigurasi yang dapat kita lakukan adalah mendeklarasikannya dilisting program yang kita buat seperti dikontrolkan di atas. c. CLS Perintah CLS berfungsi membersihkan atau mengosongkan tampilan LCD. d. Lowerline Perintah berfungsi memindahkan kursor ke baris bawah. Karena LCD yang digunakan adalah LCD 2x16, maka LCD memiliki 2 baris dan kolom.
23
e. X = 100 Lcd namaku Satih Lowerline Lcd Nilaiku selalu; x Ketika kita menjalankan perintah di atas, maka keluarannya adalah: Namaku Satih Nilaiku selalu 100 Contoh di atas menunjukkan bahwa kita dapat menampilkan isi sebuah variabel menggunakan LCD hanya dengan menulis:
f. ShiftLCD left/right Perintah digunakan untuk menggeser tampilan LCD ke kiri atau ke kanan sebanyak 1 langkah. Perintah berguna untuk menampilkan kalimat yang panjang dan mebuat animasi di LCD. g. Lcdhex x Perintah berfungsi mengirim isi sebuah variabel ke LCD dalam format hexadecimal. Jika kita menjalankan program, maka hasilnya 64.