BAB II LANDASAN TEORI Temperatur merupakan salah satu informasi yang sangat penting dalam menentukan kondisi cuaca pada sebuah daerah. Temperatur juga merupakan salah satu kunci penting dalam dunia pertanian atau perkebunan, industri makanan, industri elektronika dan lain-lain. Pengukuran temperatur secara manual dapat dilakukan dengan termometer standart, namun tidak ada alat yang dapat mengatur agar temperatur tetap dalam kondisi stabil, apalagi temperatur harus dipantau terus menerus. Sehingga dibutuhkan alat pengukur temperatur yang disertai dengan sistem kontrolnya. Yang artinya, temperatur dalam sebuah ruangan dapat diukur secara otomatis, dan dapat dijaga secara otomatis pula, serta hasil data temperatur dapat ditampilkan pada display. Berikut adalah gambaran umum sistem kendali temperatur ruangan. Gambar 2.1. Blok Diagram Sistem Kendali Temperatur Ruangan Secara Umum Universitas Sumatera Utara 2.1. PERANGKAT KERAS 2.1.1. Sensor LM35 Sensor adalah piranti yang menghasilkan sinyal keluaran yang sebanding dengan parameter yang diindera (sensing). Sensor LM35 adalah sensor temperatur semiconductor-junction yang tegangan out putnya sebanding dengan temperatur dalam derajat Celcius (0 C). LM35 memiliki kelebihan dibandingkan sensor suhu berpresisi Kelvin, dimana pemakai tidak perlu mengambil nilai tegangan konstan yang besar untuk mendapatkan skala celcius yang tepat. LM35 memiliki keadaaan default yaitu akurasi ±¼ 0 C pada temperatur ruang dan ±3/ 4 0 C pada range maksimum –55 sampai +150 0 C. LM35 memiliki faktor skala linier +10.0 mV/0C, ini berarti untuk tiap kenaikan satu derajat celcius pada suhu sekitar tegangan output akan naik 10 mV. Tegangan kerja dari LM35 adalah 4 sampai 30 Volt dengan kuat arus sebesar 60 µA. Gambar 2.2. Sensor Temperatur LM35DZ Adapun beberapa kelebihan dari LM35 dari sensor temperatur lain adalah: 1.Hasil pengukuran lebih akurat dibandingkan dengan menggunakan thermistor. 2.Rangkaian sensor tertutup dan tidak bergantung (tidak terpengaruh) pada oksidasi. 3.LM35 menghasilkan tegangan keluaran lebih besar dibandingkan dengan thermocouple dan tegangan keluaran tidak perlu diperbesar. Universitas Sumatera Utara 2.1.2. Mikrokontroler Mikroprosesor adalah CPU komputer, untuk dapat menggunakan secara umum, masih diperlukan : . Memory ( RAM , ROM ) dan juga decoder memory . I / O dan decoder I / O . Piranti khusus ( Interupsi, timer, counter, etc ) . Clock generator Mikrokontroler didesain sebagai True Computer a chip, jadi mikrokontroler sudah mempunyai piranti – piranti tambahan untuk membangun suatu sistem komputer digital. Mikrokontroler dirancang dengan instruksi yang bisa mengakses piranti terprogram dan dioptimalkan untuk instruksi bit dan byte, sementara computer PC di desain dengan instruksi untuk mengakses data multi byte. Mikrokontroler merupakan suatu komponen elektronika yang di dalamnya terdapat rangkaian mikroprosesor, memori (RAM atau ROM) dan I/O, rangkaian tersebut terdapat dalam level chip atau biasa disebut single chip mikrokomputer. Pada mikrokontroler telah terdapat komponen-komponen mikroprosesor dengan bus-bus internal yang saling berhubungan. Komponen-komponen tersebut adalah RAM, ROM, timer, komponen I/O paralel dan serial, dan interupsi kontroler. Adapun keunggulan dari mikrokontroler adalah adanya sistem interupsi. Sebagai perangkat kontrol penyesuaian, mikrokontroler sering disebut juga untuk menaikkan respon semangat eksternal (interupsi) di waktu yang nyata. Perangkat tersebut harus melakukan hubungan switching cepat, menunda satu proses ketika adanya respon eksekusi yang lain. Universitas Sumatera Utara 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 RAM dan ROM-nya besar. Sedangkan pada mikrokontroler ROM dan RAM-nya terbatas. 2.1.2a. Mikrokontroler AT89S51 Mikrokontroler AT89S51 hanya memerlukan tambahan 3 kapasitor, 1 resistor dan 1 kristal serta catu daya 5 Volt. Kapasitor 10 mikro-Farad dan resistor 10 Kilo Ohm dipakai untuk membentuk rangkaian reset. Dengan adanya rangkaian reset ini mikrokontroler AT89S51 secara otomatis direset begitu rangkaian menerima catu daya. Kristal dengan frekuensi maksimum 24 MHz dan kapasitor 33 piko-Farad dipakai untuk melengkapi rangkaian oscilator pembentuk clock yang menentukan kecepatan kerja mikrokontroler. Memori merupakan bagian yang sangat penting pada mikrokontroler. Mikrokontroler memiliki dua macam memori yang sifatnya berbeda. Read Only Memory (ROM) yang isinya tidak berubah meskipun IC kehilangan catu daya. Sesuai dengan keperluannya, dalam susunan MCS-51 memori penyimpanan program ini dinamakan sebagai memori program. Random Access Memori (RAM) isinya akan sirna begitu IC kehilangan catu daya, dipakai untuk menyimpan data pada saat program bekerja. RAM yang dipakai untuk menyimpan data ini disebut sebagai memori data. Universitas Sumatera Utara Ada berbagai jenis ROM. Untuk mikrokontroler dengan progam yang sudah baku dan diproduksi secara massal, program diisikan ke dalam ROM pada saat IC mikrokontroler dicetak di pabrik IC. Untuk keperluan tertentu mikrokontroler menggunakan ROM yang dapat diisi ulang atau Programble-Eraseable ROM yang disingkat menjadi PEROM atau PROM. Dulu banyak dipakai UV-EPROM (Ultra Violet Eraseable Progamble ROM) yang kemudian dinilai mahal dan ditinggalkan setelah ada flash PEROM yang harganya jauh lebih murah. Memori Data yang disediakan dalam chip AT89S51 sebesar 128 byte, meskipun hanya kecil saja tapi untuk banyak keperluan memori kapasitas itu sudah cukup. Sarana Input/Ouput yang disediakan cukup banyak dan bervariasi. AT89S51 mempunyai 32 jalur Input/Ouput. Jalur Input/Ouput paralel dikenal sebagai Port 1 (P1.0..P1.7) dan Port 3 (P3.0..P3.5 dan P3.7). AT89S51 dilengkapi UART (Universal Asyncronous Receiver/Transmiter) yang biasa dipakai untuk komunikasi data secara seri. Jalur untuk komunikasi data seri (RXD dan TXD) diletakan berhimpitan dengan P3.0 dan P3.1 di kaki nomor 10 dan 11, sehingga kalau sarana input/ouput yang bekerja menurut fungsi waktu. Clock penggerak untaian pencacah ini bisa berasal dari oscillator kristal atau clock yang diumpan dari luar lewat T0 dan T1. T0 dan T1 berhimpitan dengan P3.4 dan P3.5, sehingga P3.4 dan P3.5 tidak bisa dipakai untuk jalur input/ouput parelel kalau T0 dan T1 dipakai. AT89S51 mempunyai enam sumber pembangkit interupsi, dua diantaranya adalah sinyal interupsi yang diumpankan ke kaki INT0 dan INT1. Kedua kaki ini berhimpitan dengan P3.2 dan P3.3 sehingga tidak bisa dipakai sebagai jalur input/output parelel kalau INT0 dan INT1 dipakai untuk menerima sinyal interupsi. Universitas Sumatera Utara Port1 dan 2, UART, Timer 0,Timer 1 dan sarana lainnya merupakan register yang secara fisik merupakan RAM khusus, yang ditempatkan di Special Functoin Regeister (SFR). IC mikrokontroler AT89S51 ditunjukkan pada gambar di bawah ini: Gambar 2.3. IC Mikrokontroler AT89S51 Deskripsi pin-pin pada mikrokontroler AT89S51 : Pin 1 sampai 8 Ini adalah port 1 yang merupakan saluran/bus I/O 8 bit dua arah. Dengan internal pull-up yang dapat digunakan untuk berbagai keperluan. Pada port ini juga digunakan sebagai saluran alamat pada saat pemrograman dan verfikasi. Pin 9 Merupakan masukan reset (aktif tinggi), pulsa transisi dari rendah ke tinggi akan me-reset mikrokontroler ini. Pin 10 sampai 17 Ini adalah port 3 merupakan saluran/bus I/O 8 bit dua arah dengan internal pull-up yang memiliki fungsi pengganti. Bila fungsi pengganti tidak dipakai, maka ini dapat digunakan sebagai port paralel 8 bit serbaguna. Selain itu sebagian dari port 3 dapat berfungsi sebagai Universitas Sumatera Utara sinyal control pada saat proses pemrograman dan verifikasi. Adapun fungsi penggantinya seperti pada tabel 2.2. Tabel 2.1. Fungsi pengganti dari port 3 BIT NAMA FUNGSI ALTERNATIF P3.0 RXD Untuk menerima data port serial P3.1 TXD Untuk mengirim data port serial P3.2 INTO Interupsi eksternal 0 P3.3 INT1 Interupsi eksternal 1 P3.4 TO Input eksternal waktu/pencacah 0 P3.5 T1 Input eksternal waktu/pencacah 1 P3.6 WR Jalur menulis memori data eksternal P3.7 RD Jalur membaca memori data eksternal Pin 18 dan 19 Ini merupakan masukan ke penguat osilator berpenguat tinggi. Pada mikrokontroler ini memiliki seluruh rangkaian osilator yang diperlukan pada serpih yang sama (on chip) kecuali rangkaian kristal yang mengendalikan frekuansi osilatir. Karenanya pin 18 dan 19 sangat diperlukan untuk dihubungkan dengan kristal. Selain itu XTAL 1 dapat juga sebagai input untuk inverting oscillator amplifier dan input ke rangkaian internal clock sedangkan XTAL 2 merupakan output dari inverting oscillator amplifier. Pin 20 Merupakan ground sumber tegangan yang diberi symbol GND Universitas Sumatera Utara Pin 21 sampai 28 Ini adalah port 2 yang merupakan saluran/bus I/O 8 biit dua arah dengan internal pull-up. Saat pengambilan data dari program memori eksternal atau selama mengakses data memori eksternal yang menggunakan alamat 16 bit, port 2 berfungsi sebagai saluran/bus alamat tinggi (A8 – A15). Sedangkan pada saat mengakses ke data memori eksternal yang menggunakan alamat bit 8 bit , port 2 mengeluarkan isi dari P2 pada Special Function Register. Pin 29 Program Store Enable (PSEN) merupakan sinyal pengontrol untuk mengakses program memori eksternal masuk ke dalam bus selama proses pemberian/pengambilan instruksi (fetching). Pin 30 Address Latch Enable (ALE)/ PROG merupakan penahan alamat memori eksternal (pada port 1) selama mengakses ke memori eksternal. Pena ini juga sebagai pulsa/ sinyal input pemrograman (PROG)selama proses pemrograman. Pin 31 External Access Enable (EA) merupakan sinyal kontrol untuk pembacaan memori program. Apabila diset rendah (L) maka mikrokontroler akan melaksanakan seluruh instruksi dari memori program eksternal, sedangkan apabila diset tinggi (H) maka mikrokontroler akan melaksanakan instruksi dari memori program internal ketika isi program counter kurang dari 4096. ini juga berfungsi sebagai tegangan pemrograman (Vpp = +12 V) selama proses pemrograman. Universitas Sumatera Utara Pin 32 sampai 39 Ini adalah port 0 yang merupakan saluran/bus I/O 8 bit open collector, dapat juga digunakan sebagai multipleks bus alamat rendah dan bus data selama adanya akses ke memori program eksternal. Pada saat proses pemrograman dan verifikasi, port 0 digunakan sebagai saluran/bus data. Eksternal pull-ups diperlukan selama proses verifikasi. Pin 40 Berfungsi sebagai VCC 2.1.2b. Instruksi Dasar Assembler 1. Kode Instruksi Mikrokontriler AT89S51 Mikrokontroler AT89S51 mempunyai 256 kode instruksi. Seluruh instruksi dapat dikelompokkan dalam 4 bagian yang meliputi instruksi 1 byte sampai 4 byte. Semua instruksi tersebut dapat dibagi menjadi lima kelompok menurut fungsinya, yaitu: 1. Instruksi Pemindah Data 2. Instruksi Aritmatika 3. Instruksi Logika dan Manipulasi Bit 4. Instruksi Percabangan 5. Instruksi Stack, I/O, dan Kontrol 2. Instruksi Pemindahan Data Bagian instruksi ini hanya menyalin data suatu lokasi memori (sumber) ke lokasi tertentu (tujuan), tanpa terjadi perubahan isi data dari sumber. Selain lokasi memori, data juga dapat dipindahkan dari suatu register ke register lain, pemindahan (penyalinan) antar muka-register dan antar muka-memori. Universitas Sumatera Utara 3. Instruksi Aritmatika Instruksi ini melaksanakan operasi aritmatika yang meliputi penjumlahan, pengurangan, penambahan satu (increment), pengurangan satu(decrement), perkalian dan pembagian. 4. Instruksi Logika dan Manipulasi Bit Instruksi ini berhubungan dengan operasi-operasi logika pada accumulator dan manipulasi bit. Macam dan instruksi ini adalah AND, OR, XOR, perbandingan, pergeseran dan komplemen data. 5. Instruksi Percabangan Instruksi ini mengubah urutan normal pelaksanaan suatu program. Dengan instruksi ini program yang sedang dilaksanakan akan mencabang ke suatu alamat tertentu. Instruksi ini dibedakan atas percabangan bersyarat (misalnya CJNE) dan percabangan tanpa syarat (misalnya ACALL). 6. Instruksi Stack, I/O, dan Kontrol Instruksi ini mengatur penggunaan stack, membaca/menulis port I/O, serta pengontrolanpengontrolan. 2.1.3. ADC ( Analog to Digital Converter ) ADC adalah suatu rangkaian yang dapat mengubah tegangan analog menjadi data digital. Input tegangan analog deferensial dapat meningkatkan common mode rejection dan pengaturan offset tegangan input nilai nol. Tegangan referensi dapat diatur untuk mendekodekan berapapun tegangan input pada resolusi 8 bit. ADC yang dipakai adalah jenis ADC 0804 yang merupakan resolusi 8 bit,merupakan 20 pin dan waktu konversi 100 mikrosecond. Universitas Sumatera Utara WR : ( input ) pin ini digunakan untuk memulai konversi tegangan analog menjadi data digital, dengan memberikan pulsa logika ” 0 ” pada pin ini. INT: ( output ) pin ini digunakan sebagai indikator apabila ADC talah selesai menkonversikan tegangan analog menjadi digital, dengan mengeluarkan logika ” 0 “ Vin : Tegangan analog input deferensial, input Vin (+) dan Vin (-) merupakan tegangan deferensial yang akan mengambil nilai selisih dari kedua input. Dengan memanfaatkan input Vin maka dapat dilakukan offset tegangan nol pada ADC Vref : Tegangan referensi dapat diatur sesuai dengan input tegangan pada Vin (+) dan Vin (), Vref = Vin/2 Clock : Clock untuk ADC dapat diturunkan dari clock CPU atau RC eksternal dapat ditambahkan untuk memberikan generator dari dalam. Clock IN menggunakan schmitt triger. CS : agar ADC dapat aktif melakukan konversi data maka input Chip Select harus diberi logika low. Data output akan berada pada kondisi three state apabila CS mendapatkan logika high. RD : agar data ADC dapat dibaca oleh sistem mikroprocesor maka pin RD harus diberi logika low. IC ADC 0804 dianggap dapat memenuhi kebutuhan dari rangkaian yang akan dibuat. IC jenis ini bekerja secara cermat dengan menambahkan sedikit komponen sesuai dengan spesifikasi yang harus diberikan dan dapat mengkonversikan secara cepat suatu masukan tegangan. Hal-hal yang juga perlu diperhatikan dalam penggunaan ADC ini adalah tegangan maksimum yang dapat dikonversikan oleh ADC dari rangkaian pengkondisi sinyal, resolusi, pewaktu eksternal ADC, tipe keluaran, ketepatan dan waktu konversinya. Universitas Sumatera Utara Beberapa karakteristik penting ADC : 1. Waktu konversi 2. Resolusi 3. Ketidaklinieran 4. Akurasi Ada banyak cara yang dapat digunakan untuk mengubah sinyal analog menjadi sinyal digital yang nilainya proposional. Jenis ADC yang biasa digunakan dalam perancangan adalah jenis successive approximation convertion atau pendekatan bertingkat yang memiliki waktu konversi jauh lebih singkat dan tidak tergantung pada nilai masukan analognya atau sinyal yang akan diubah. Dalam gambar 2.6 memperlihatkan diagram blok ADC tersebut. Gambar 2.4. Diagram Blok ADC Secara singkat prinsip kerja dari konverter A/D adalah semua bit-bit diset kemudian diuji, dan bilamana perlu sesuai dengan kondisi yang telah ditentukan. Dengan rangkaian yang paling cepat, konversi akan diselesaikan sesudah 8 clock, dan keluaran D/A merupakan nilai analog yang ekivalen dengan nilai register SAR. Universitas Sumatera Utara Apabila konversi telah dilaksanakan, rangkaian kembali mengirim sinyal selesai konversi yang berlogika rendah. Sisi turun sinyal ini akan menghasilkan data digital yang ekivalen ke dalam register buffer. Dengan demikian, keluaran digital akan tetap tersimpan sekalipun akan di mulai siklus konversi yang baru. IC ADC 0804 mempunyai dua masukan analog, Vin (+) dan Vin (-), sehingga dapat menerima masukan diferensial. Masukan analog sebenarnya (Vin) sama dengan selisih antara tegangan-tegangan yang dihubungkan dengan ke dua pin masukan yaitu Vin= Vin (+) – Vin (-). Kalau masukan analog berupa tegangan tunggal, tegangan ini harus dihubungkan dengan Vin (+), sedangkan Vin (-) digroundkan. Untuk operasi normal, ADC 0804 menggunakan Vcc = +5 Volt sebagai tegangan referensi. IC ADC 0804 memiliki generator clock internal yang harus diaktifkan dengan menghubungkan sebuah resistor eksternal (R) antara pin CLK OUT dan CLK IN serta sebuah kapasitor eksternal (C) antara CLK IN dan ground digital.Untuk sinyal clock ini dapat juga digunakan sinyal eksternal yang dihubungkan ke pin CLK IN. ADC 0804 memilik 8 keluaran digital sehingga dapat langsung dihubungkan dengan saluran data mikrokomputer. Masukan (chip select, aktif rendah) digunakan untuk mengaktifkan ADC 0804. Jika berlogika tinggi, ADC 0804 tidak aktif (disable) dan semua keluaran berada dalam keadaan impedansi tinggi. Masukan (write atau start convertion) digunakan untuk memulai proses konversi. Untuk itu harus diberi pulsa logika 0. Sedangkan keluaran (interrupt atau end of convertion) menyatakan akhir konversi. Pada saat dimulai konversi, akan berubah ke logika 1. Di akhir konversi akan kembali ke logika 0. Universitas Sumatera Utara Mode Operasi ADC0804 a. Mode Operasi Kontinyu Agar ADC0804 dapat dioperasikan pada mode operasi kontinyu (proses membaca terus menerus dan tanpa proses operasi jabat tangan), maka penyemat CS dan RD ditanahkan, sedangkan penyemat WR dan INTR tidak dihubungkan kemanapun. Prinsip kerja operasi kontinyu ini yaitu ADC akan memulai konversi ketika INTR kembali tidak aktif (logika ‘1’). Setelah proses konversi selesai, INTR akan aktif (logika ‘0’). Untuk memulai konversi pertama kali WR harus ditanahkan terlebih dahulu, hal ini digunakan untuk mereset SAR. Namun pada konversi berikutnya untuk mereset SAR dapat menggunakan sinyal INTR saat aktif (logika ‘0’) dan mulai konversi saat tidak aktif (logika ‘1’). Ketika selesai konversi data hasil konversi akan dikeluarkan secara langsung dari buffer untuk dibaca karena RD ditanahkan. Saat sinyal INTR aktif, sinyal ini digunakan untuk me-reset SAR. Saat INTR kembali tidak aktif (logika ‘1’) proses konversi dimulai kembali. b. Mode Operasi Hand-Shaking ADC0804 dioperasikan pada mode hand shaking . Agar ADC dapat bekerja, CS harus berlogika ‘0’. Ketika WR berlogika ‘0’, register SAR akan direset, sedangkan ketika sinyal WR kembali ‘1’, maka proses konversi segera dimulai. Selama konversi sedang berlangsung, sinyal INTR akan tidak aktif (berlogika ‘1’), sedangkan saat konversi selesai ditandai dengan aktifnya sinyal INTR (logika ‘0’). Universitas Sumatera Utara Setelah proses konversi selesai data hasil konversi tetap tertahan pada buffer ADC. Data hasil konversi tersebut akan dikeluarkan dengan mengirim sinyal RD berlogika ‘0’. Setelah adanya sinyal sinyal RD ini, maka sinyal INTR kembali tidak aktif. 2.1.4. LCD (Liquid Crystal Display) Kegunaan LCD banyak sekali dalam perancangan suatu sistem dengan menggunakan mikrokontroler. LCD(Liquid Crystal Display) dapat berfungsi untuk menampilkan suatu nilai hasil sensor ,menampilkan teks, atau menampilkan menu pada aplikasi mikrokontroler.Pada praktek proyek ini,LCD yang digunakan adalah LCD 16 x 2 yang artinya lebar display 2 baris 16 kolom dengan 16 Pin konektor. Adapun konfigurasi dan deskripsi dari pin-pin LCD antara lain: VCC ( pin 1) Merupakan sumber tegangan +5V GND 0V ( pin 2) Merupakan sambungan ground VEE (pin 3) Merupakan input tegangan Kontras LCD RS Register Select (pin 4) Merupakan register pilihan 0 = Register Perintah, 1 = Register Data R/W (pin 5) Merupakan read select , 1 = Read, 0 = Write Enable Clock LCD (pin 6) Merupakan masukan logika 1 setiap kali pengiriman atau pembacaan data Universitas Sumatera Utara D0 – D7 ( pin 7 – pin 14) Merupakan Data Bus 1 – 7 ke port Anoda (pin 15) Merupakan masukan Tegangan positif backlight Katoda (pin 16) Merupakan masukanTegangan negatif backlight Gambar 2.5 . LCD 2 X16 Display karakter pada LCD diatur oleh pin EN, RS dan RW: Jalur EN dinamakan Enable. Jalur ini digunakan untuk memberitahu LCD bahwa sebuah data sedang dikirimkan. Untuk mengirimkan data ke LCD, maka melalui program EN harus dibuat logika low “0” dan set pada dua jalur kontrol yang lain RS dan RW. Ketika dua jalur yang lain telah siap, set EN dengan logika “1” dan tunggu dan berikutnya di set EN ke logika low “0” lagi. Jalur R/W adalah jalur kontrol Read/ Write. Ketika R/W berlogika low (0), maka informasi pada bus data akan dituliskan pada layar LCD. Ketika R/W berlogika high ”1”, maka program akan melakukan pembacaan memori dari LCD. Sedangkan pada aplikasi umum pin R/W selalu diberi logika low “0”. Gambar 2.6. Rangkaian skematik konektor yang dihubungkan dari LCD ke Mikrokontroler Universitas Sumatera Utara 2.2. Perangkat Lunak ( Bahasa BASIC Menggunakan BASCOM- 8051 ) Bascom-8051 adalah program BASIC compiler berbasis windows untuk mikrokontroler keluarga 8051seperti AT89C51, AT89C2051, dan yang lainya. BASCOM-8051 merupakan pemrograman dengan bahasa tingkat tinggi BASIC yang dikembangkan dan dikeluarkan oleh MCS Elektronik. Kita akan membahas penggunaan karakter, tipe data, variable, konstanta, opersai-operasi aritmatika dan logika, array, dan control program. 2.2.1. Karakter BASCOM Dalam program BASCOM, karakter dasarnya terdiri atas karakter alphabet (A-Z dan a-x), karakter numeric (0-9), dan karakter special(lihat tabel: Karakter Nama Blank ‘ Apostrophe * Asterik (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) Tabel 2.2 Karakter Spesial Universitas Sumatera Utara 2.2.2. Tipe Data Setiap variable dalam BASCOM memiliki tipe data yang menunjukan daya tampungnya. Hal ini berhubungan dengan penggunaan memori mikrontroler. Berikut adalah tipe data pada BASCOM berikut keterangannya. Tipe Data Ukuran (byte) Range Bit 1/8 - Byte 1 0-255 Integer 2 -32,768-32,767 Word 2 0-65535 Long 4 -214783648-+2147483647 Single 4 - String Hingga 254 - Tabel 2.3 Tipe Data 2.2.3. Variabel Variable dalam sebuah pemrograman berfungsi sebagai tempat penyimpanan data atau penampungan data sementara, misalnya menampung hasil perhitungan, menampung data hasil pembacaan register, dan lainya. Variable merupakan pointer yang menunjukan pada alamat memori fisik dan mikrontroler. Dalam BASCOM , ada beberapa aturan dalam penamaan sebuah varibel: a. Nama variable maksimum terdiri atas 32 karakter. b. Karakter bias berupa angka atau huruf. Universitas Sumatera Utara c. Nama variabel harus dimulai dengan huruf. d.variabel tidak boleh menggunakan kata-kata yang digunakan oleh BASCOM sebagai perintah, pernyataan, internal register, dan nama operator (AND ,OR, DIM, dan lain-lain). Sebelum digunakan, maka varibel 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 tombol 11 as integer Dim tombol 12 as word Dim tombol 13 as word Dim tombol 14 as word Dim kas as string*10 2.2.4. Alias Dengan menggunakan alias, variabel yang sama dapat diberikan nama yang lain. Tujuannya adalah mempermudah proses pemrograman. Umumnya, alias dipergunakan untuk mengganti nama variabel yang telah baku, seperti port mikrokontroller. LEDBAR alias P1 Tombol1 alias P0.1 Tombol alias P0.2 Universitas Sumatera Utara Dengan deklarasi seperti diatas, perubahan pada tombol akan mengubah kondisi P0.1. selain mengganti nama port, kita dapat pula menggunakan alias untuk mengakeses bit tertentu dari sebuah variabel yang telah dideklarasikan. 2.2.5. Konstanta Dalam BASCOM, selain variabel kita mengenal pula konstanta. Konstanta merupakan variablel pula. Perbedaanya 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 muda 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 Cara lain yang paling mudah: Const Cybte = &HF Const Cint = -1000 Const Csingle =1.1 Const Cstring = “ test” Universitas Sumatera Utara 2.2.6. Array Dengan array, kita bias 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 sebesra 65535. Proses pendeklarasian sebuah array hampir sama dengan variabel, namun perbedaannya kita mengikutkan jumlah elemennya. Berikut adalah contoh pemakaian array: Dim kelas (10) as byte Dim C as Integer For C = 1 to10 a (c) = c p1 =a (C) next Program diatas membuat sebuah array dengan nama ‘kelas’ yang berisi 10 elemen (1-10) dan kemudian seluruh elemennya diisikan dengan nilai c yang berurutan. Untuk membacanya, kita menggunakan indeks dimana elemen disimpan. Pada program diatas, elemen-elemen arraynya dikeluarkan ke port 1 dari mikrokontroler. Universitas Sumatera Utara 2.2.7. Operasi-Operasi Dalam BASCOM Pada bagian ini akan dibahas tentang cara menggabungkan, memodifikasi, membandingkan, atau mendapatkan informasi tentang sebuah pernyataan dengan menggunakan operatoroperator yang tersedia di BASCOM dan bagaimana sebuah pernyataan terbentuk dan dihasilkan dan operator-oprerator berikut: a.Oprator Aritmatika Operator digunakan dalam perhitungan. Operator aritmatika meliputi + (tambah), (kurang), / (bagi), dan * (kali). b. Oprator Relasi operator berfungsi membandingkan nilai sebuah angka. Hasilnya dapat digunakan untuk membuat keputusan sesuai dengan program yag kita buat. Operator relasi meliputi: operaotor Relasi Pernyataan = Sama dengan X=Y <> Tidak sama dengan X<>Y < Lebih kecil dari X<Y > Lebih besar dari X>Y <= Lebih kecil atau sama dengan X<=Y >= Lebih besar atau sama dengan X>=Y Tabel 2.4. Tabel Operator Relasi c. Operator Logika operator digunakan untuk menguji sebuah kondisi atau memanipulasi bit dan operasi bolean. Dalam BASCOM, ada empat buah logika, yaitu AND ,OR, NOT, dan XOR. do X = 100 Cls Universitas Sumatera Utara Lcd "namaku Satih" Lowerline Lcd "nilaiku selalu";x Cls Lcd "<<<< Hebat >>>>" For x=1 to 16 Shiflcd left next for x=1 to 32 shiftlcd right Waims 200 next x = 100 cls lcd hex x loop. Penjelasan Programnya sebagai berikut: a.Dim x As Byte pernyataan di atas merupakan pendeklarasian variable xdengan ukuran byte. b.Config LCD = 16*2 oleh karena itu, konfigurasi yang dapat kita lakukan adalah mendeklarsikannya delisting program yang kita buat seperti dikonrolkan 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 2 x 16, maka LCD memiliki 2 baris dan kolom. Universitas Sumatera Utara e.X =100 Lcd “namaku Satih” Lowerline Lcd “ nilaiku selalu”:x Ketika kita menjalankan perintah diatas, maka keluaranya adalah Namaku Satih Nilaiku selalu 100 Contoh di atas menunjukan bahwa kita dapat menampilkan isi sebuah varibel menggunakan LCD hanya dengan menulis. f.ShiftLCD left/right a. Perintah digunakan untuk menggeser tampilan LCD ke kiri atau ke kanan sebanyak 1 langkah. Perintah berguna untuk menampilkan kalimat yang panjang dan membuat animasi di LCD. b.Lcdhex x Perintah berfungsi mengirim isi sebuah variable ke LCD dalam format hexadecimal. Jika kita menjalankan program, maka hasilnya 64. Universitas Sumatera Utara