BAB II LANDASAN TEORI
2.1 Mikrokontroler AT89C2051 Mikrokontroler ini digunakan pada tegangan yang rendah dengan teknologi mikrokomputer CMOS 8 bit dengan flash EEPROM sebesar 2K . Mikrokontroler punya beberapa kelebihan
1. kompatibel dengan produk seri MCS-51 2. Memory flash sebesar 2k byte 3. 128 x 8 internal RAM 4. jalur I/O sebanyak 15 5. 2 bh Timer / Counter 16 bit 6. 6 Sumber interupsi 7. jalur serial UART yang dapat diprogram 8. mempunyai pembanding analog 9. mempunyai mode standby
2.2.1 Konfigurasi pin-pin AT89C2051 Mikrokontroler AT89C2051 memiliki pin sebanyak 20 seperti ditunjukan gambar Fungsi pin-pin MCU AT89C2051 yaitu 1. VCC Pin ini dihubungkan dengan sumber tegangan 5 volt DC 2. GND Pin ini dihubungkan dengan ground
5
Gambar 2.1 Mikrokontroler AT89C2051
3. Port 1 Port 1 merupakan port I/o 8 bit secara dua arah pin 1.2 sampai dengan p1.7 menyediakan rangkaian dalam pull-up
p 1.0 dan p1.1 membutuhkan
rangkaian luar pull up dan p 1.1 juga bisa sebagai masukan positif AIN0 dan masukan negatif AIN1 4. Port 3 Port 3 memiliki 7 pin yaitu p3.0 sampai p3.5, p3.7. ketujuh pin tersebut adalah pin I/o paralel dengan rangkaian dalam pull-up. Khusus pada pin p3.6 sebagai ouput dari komparator dan bukan sebagai pengakses sperti pada fungsi pin I/O general purpose Pin Port
Fungsi Alternate
P 3.0
RXD port masukan serial
P 3.1
TXD port keluaran serial
P 3.2
INT0 external interrupt 0
P 3.3
INT1 external interupt 1
P 3.4
T0 timer 0 external input
P 3.5
T1 timer 1 external input
Tabel 2.1 Fungsi Alternatif Port 3
6
5. RST Reset input (masukan reset). Semua pin-pin I/O di reset terlebih dahulu selama 1 detik ketika pin ini menuju tinggi. RST tinggi selama dua siklus mesin akan menyebabkan device ini reset. Tiap siklus mesin mengambil 12 osilator (clock cycle) 6. XTAL1 Pin ini merupakan masukan ke inverting amplifier osilator dan masukan ke rangkaian dalam operasi clock 7. XTAL2 Pim ini merupakan keluaran dari inverting amplifer osilator
2.2.2 Special Function Register (SFR) Register dengan fungsi khusus (SFR) terletak pada 128 byte bagian atas memori data internal. Wilayah SFR ini terletak pada alamat 80H-FFH. Registeregister khusus dalam mikrokontroler AT89C2051 yaitu : 1. Accumulator Merupakan register penyimpanan hasil suatu operasi ALU 2. Register B Regsiter ini digunakan untuk proses perkalian dan pembagian 3. Program Status Word Register ini berisi informasi status program seperti ditunjukan berikut
PSW.7 PSW.6 PSW.5 PSW.4 PSW.3 PSW.2 PSW.1 PSW.0
CY
AC
F0
RS1
RS0
OV
-
Tabel 2.2 Program Status Word Keterangan : CY
- Carry Flag
P
7
AC
- Auxiliary Carry Flag untuk operasi BCD
FO
- Flag 0 untuk segala keperluan
RS1
- Selektor bank register bit 1. Set / Clear dibawah komando software untuk menentukan register kerja
RS0
- Selektor bank register bit 0 Set/Clear dibawah komando software untuk menentukan bank register kerja Ada 4 bank yang dapat dipilih untuk digunakan semuanya bersifat addressable yaitu RS1
RS0
Register
0
0
Bank 0
0
1
Bank 1
1
0
Bank 2
1
1
Bank 3
Tabel 2.3 Bank Register
4
0V
- Over flow flag
-
- reserve
P
- Parity flag
Stack Pointer (SP) Merupakan register yang mempunyai lebar 8 bit. Isi register ini ditambah sebelum data disimpan selama instruksi PUSH dan CALL. Pada kondisi reset register SP berada pada posisi alamat 07H sehingga stack akan dimulai pada alamat 08H
5
Data Pointer Register (DPTR) Terdiri dari dua buah register yaitu register byte tinggi (Data Pointer Low, DPL). DPTR
digunakan
untuk
pengalamatan
tidak
memindahkan data dari atau ke memori eksternal (RAM) 6
Register port 1 dan Port 3
langsung
untuk
8
Register-register P1 dan P3 merupakan SFR yang berfungsi sebagai latch dari port 1 dan port 3 7
Control Register Register ini terdiri dari IP, IE, TMOD, TCON, SCON, dan PCON yang berisi kontrol dan status bit untuk sistem interupsi, timer/counter dan serial port 2.2.3 Rangkaian Osilator Jantung dari mikrokontroler AT899C2051 terletak pada rangkaian yang membangkitkan pulsa clock. PIN XTAL1 dan XTAL2 disediakan untuk disambungkan dengan jaringan resonan untuk membentuk sebuah osilator. Penambahan rangkaian eksternal dari osilator ditunjukan seperti pada gambar berikut ini .
Gambar 2.2 Rangkaian osilator 2.2 I2C Bus I2C Bus diperkenalkan oleh philips semikonduktor pada tahun 1980. I2C Bus digunakan untuk memudahkan hubungan pada CPU ke IC di dalam TV. I2C adalah singkatan dari Inter-Integrated Circuit. Maka I2C digunakan untuk menyediakan sebuah komunikasi link antar IC Kelebihan dari I2C bus adalah : 1. Hanya melibatkan dua kabel yaitu serial data line (selanjutnya disebut SDA) dan serial Clock Line (selanjutnya disebut SCL)
9
2. Membuat sistem berorientasi pada software (mudah diupgrade) 3. Setiap IC yang terhubung dalam I2C memiliki alamat yang unik yang dapat diakses secara software dengan master/slave protocol yang sederhana dan mampu mengakomodasi multi master 4. Rating pengiriman data lebih dari 1.25 Mbit/s 5. Membuat sistem yang didesain standar sehingga dapat dihubungkan dengan sistem lain yang juga menggunakan I2C bus 6. Menghemat PCB yang dibutuhkan
2.4 Termometer Digital DS1820 DS1820 adalah Termometer Digital dengan fasilitas 9 bit pengukuran temperatur dan mempunyai fungsi alarm dengan batas bawah dan atas dari titik trigger yang dapat di program ulang. DS1820 berkomunikasi ke sentral Prosesor melalui jalur bus tunggal yang hanya membutuhkan satu jalur data dan ground. IC ini bekeja pada kisaran temperatur -55 0 sampai +125 0 . Gambar di bawah ini menunjukan pin-pin dari IC DS1820. Fungsi dari pin tersebut adalah
Gambar 2.3 Kaki-kaki IC DS1820
10
GND – Ground DQ - Data IN/OUT VDD – Power Supply Voltage Setiap IC DS1820 mempunyai 64 bit kode serial yang unik yang memungkinkan beberapa IC ini berfungsi pada jalur bus yang sama. Hal ini memudahkan satu prosesor mengontrol banyak IC. IC ini dapat diaplikasikan untuk monitoring temperatur gedung, peralatan dan lingkungan industri.
Gambar 2.4 Blok diagram IC DS1820 Gambar diatas menunjukan blok diagram IC DS1820. 64 bit ROM memiiki kode serial yang unik. Scratchpad memory berisi register temperatur 2 byte yang menyimpan keluaran digital dari sensor. DS1820 mengimplementasikan komunikasi satu control signal, 1-wire bus system . Jalur control memerlukan pullup resistor dihubungkan melalui 3 kondisi atau open drain port (DQ). Dalam jalur system Mikroprosesor mengidentifikasikan dan membuat alamat menggunakan kode 64 bit . Sebagaimana disebutkan fungsi utama DS1820 sebagai sensor digital suhu yang mempunyai resolusi keluaran 9 bit dan step 0.5
O
C. Dalam keadaan standby
memiliki rendah daya untuk melakukan pengukuran dan konversi analog ke digital.
11
System harus merubah intruksi T [44h], hasil konversi data didimpan dalam 2 byte suhu register dalam scratchpad memory dan DS1820 kembali ke posisi standby DS1820 mempunyai keluaran dalam derajat celcius. Data tersimpan sebagai 16 bit tambahan dua angka dalam register (lihat gambar 2.3). Tanda S menunjukan suhu positf atau negatif , S = 0 positif dan S = 1 negatif. Tabel 2 memberikan contoh keluaran data digital dan urutan pembacaaan suhu.
Tabel 2.4 Format register temperatur
Tabel 2.5 Hubungan antara temperatur dan data 2.5 RTC DS1302 DS1302 trickle Charge Times keeping Chip berisi sebuah Waktu saat ini dan RAM 31 byte. Dihubungkan dengan microprocessor melalui hubungan serial data. Waktu saat ini yang dimaksud adalah info detik, menit, jam, hari, tanggal, bulan dan tahun. Akhir dari tanggal setiap bulan otomatis diatur sedikitnya 31 hari termasuk koreksi putaran tahun. Pengoperasian jam terdiri dari 24 jam atau 12 jam dengan format AM/PM. Hubungan DS1302 dengan microprosesor menggunakan komunikasi serial singkronisasi. Hanya 3 jalur dibutuhkan untuk berkomunikasi RAM : 1. RST
12
2. I/O 3. SCLK Data bisa ditansfer ke dan dari clock/RAM 1 byte dalam satu waktu atau secara bergiliran sampai 31 byte. DS1302 didesain untuk operasi rendah daya untuk menjaga informasi data dan waktu kurang dari 1 mikrowatt. Komponen utama dari DS1302 terlihat pada gambar berikut :
Gambar 2.5 Blok Diagram IC DS1302
Fungsi pin Vcc1-Vcc1 menyediakan supply daya rendah dan operasi batterei sebagai tenaga cadangan.
Gambar 2.6 IC DS1302
13
SCLK serial clock input digunakan untuk mensinkronkan pergerakan data pada komunikasi serial I/O data input/output adalah jalur data dua arah RST Reset sinyal harus kondisi tinggi ketika membaca atau menulis X1,X2 Menggunakan kristal 32.768 khz
2.6 EEPROM 24C256 24C256 adalah serial Electrically Eraseable Programable Memory EEPROM dengan kapasitas 32K X 8 bits bisa dioperasikan pada rentang tegangan 1,8 – 5,5 V. Biasa dipakai untuk peralatan komunikasi portabel dan akusisi data yang membutuhkan daya rendah. Penulis memilih IC ini pun untuk mendukung agar peralatan berukuran kecil. IC ini tersedia dalam kemasan dual in package , DIP. 24C256 mempunyai kemampuan membaca sampai 64 bytes data dan membaca sampai 256 K, berikut blok diagram dan gambar pin kaki-kakinya.
Gambar 2.7 Blok diagram EEPROM24C256
14
2.7 KONVERTER LOGIKA RS-232 Konverter yang kita gunakan adalah IC MAX232 , sebagaimana kita ketahui peralatan yang kita buat ini menggunakan logika TTL maka sinyal port serial PC harus dikonversikan dulu ke pulsa TTL dan sebaliknya sinyal dari peralatan kita harus dikonversikan dulu ke logika RS-232 . Fungsi-fungsi diatas dapat dilakukan oleh IC MAX232. Di dalam IC ini terdapat charge pump yang akan membangkitkan ;10 volt dan – 10 volt yang sesuai standar RS232 dari sumber 5 volt tunggal, berikut kaki-kakinya.
Gambar 2.8 Bagan IC MAX 232
2.8 Komunikasi RS 232 Untuk mensetup dan mengambil data perekam temperature menggunakan komunikasi serial RS232 pada personal computer. Standar RS232 menguraikan beberapa ketentuan umum mengenai komunikasi data asinkron yaitu informasi dikirim bit per bit dan tidak menggunakan selang waktu tertentu. Transfer dapat dilakukan pada setiap saat dan merupakan tugas dari penerima untuk mendeteksi awal dan akhir suatu informasi atau data yang dikirim oleh pemancar
15
Standar tegangan diperlukan untuk menyiapkan komunikasi data antara dua lingkungan yang berbeda sesuai dengan standar RS232 tegangan dikelompokan atas dua keadaaan state yaitu marking state dan space state. Logika high atau marking state identik dengan tegangan negative sementara logika low atau space state identik dengan tegangan positif.
Gambar 2.9 Bentuk gelombang logika RS232
Aliran bit pada komunikasi asinkron sesuai standar RS 232 dimulai dengan Start bit berupa space state. Dengan adanya space state ini receiver segera dapat mengetahui bahwa ada data yang dikirim oleh transmitter. Selanjutnya transmitter mengirim bit-bit data. Suatu bit berlogika high akan memancarkan marking state sementara bit berlogika rendah akan memancarkan space state sementara bit berlogika rendah akan memancarkan space state. Least Significant Bit dikirim sebagai bit yang pertama. Setelah bit-bit data terkirim. Stop bit dikirim dengan memancarkan mark state. Stop bit menunjukkan bahwa satu byte Pengiriman satu byte data dapat diilustrasikan sebagai berikut Pada penyusunan tugas akhir ini konektor yang digunakan tipe DB9
dikirim.
16
Tabel 2.6 Fungsi Pin port RS232
Gambar 2.10 Konfigurasi Pin Port DB9 RS232
Dari kesembilan pin yang terdapat pada konektor DB9 hanya tiga buah pin yang digunakan yaitu pin 2 untuk Receive Data, pin 3 untuk Transmit Data dan pin 5 untuk signal ground.
2.9 DASAR PEMROGRAMAN DELPHI Pada awal pemrograman Delphi kita dihadapkan pada suatu lingkungan Delphi di mana semua tool yang akan digunakan untuk mendesain dan menjalankan program aplikasi terhubung menjadi satu kesatuan yang memudahkan pengembangan program. Lingkungan ini dinamakan IDE (Integrated Development Environment). IDE terdiri dari toolbar, debugger, editor program dan lain-lain. Semua fasilitas ini akan digunakan pada saat kita membuat program. Berikut adalah tampilan awal saat kita memulai pemograman Delphi.
17
Gambar 2.11 Tampilan awal menu program Delphi
Di dalam tampilan ini kita dapat melihat bahwa menu Delphi terdiri dari Menu dan Toolbar, Object Tree View, Object Inspector serta komponen pallete. Masing-masing bagian ini mempunyai fungsi yaitu sebagai berikut
2.9.1 Menu dan Toolbar Gambar di bawah ini adalah gambar menu utama Delphi dan gambar SpeedBar, Menu utama Delphi berisi tool untuk mengakses lingkungan Delphi. SpeedBar membantu anda untuk menjalankan fungsi-fungsi dengan cepat dan mudah
18
Gambar 2.12 Menu dan Toolbar pada DELPHI
2.9.2 Object TreeView Object TreeView menampilkan sebuah diagram pohon dari komponen visual dan non-visual yang ditempatkan pada sebuah form diagram dari komponen visual dan nonvisual yang ditempatkan pada sebuah form, modul data atau frame. Object Tree View menampilkan komponen logika yang berhubungan yang dikenal dengan istilah hubungan saudara kandung ( misalnya antara sebuah komponen dengan komponen palet yang sama), orangtua-anak (seperti hubungan sebuah form dengan sebuah checkbox ) dan properti dan properti yang berhubungan (seperti dataset ke properti FieldDefs-nya). Beberapa berhubungan secara lengkap, seperti sebuah komponen dataset ke propertinya. Anda dapat membuat hubungan lain dengan dan memasukkan satu komponen di atas yang lain dengan menarik dan memasukkan satu komponen di atas yang lain, hanya jika antarkomponen itu memiliki kemungkinan untuk berhubungan. Sebagai contoh, Anda dapat menarik : 1. Komponen berhubungan yang dapat anda kombinasikan, seperti sebuah check box untuk membuat sebuah hubungan orangtua dan anak 2. Sumber data dari satu tabel atau dataset yang lain 3. Basis data dari satu bagian ke yang lain 4. Dataset (seperti tabel dan query) dari satu basis data ke yang lain. Beberapa titik dalam diagram pohon ditunjukan dengan tanda hitam dan putih. Titik ini melambangkan komponen secara penuh. Contohnya, sebuah datashet mempunyai bagian default yang dihubungkan dengannya. Bagian default dibuat pada runtime. Jika sebuah titik dalam diagram pohon mempunyai tanda pertanyaan merah dalam lingkaran kuning, hal itu berarti item itu tidak didefinisikan secara lengkap
19
atau bermasalah. Contohnya sebuah sumber data milik dataset mempunyai nilai yang muncul dengan pertanyaan merah. Klik dua kali item itu untuk melompat ke tempat dalam kode editor di mana Anda menuliskan sebuah even handler. Jika Anda melakukan klik kanan pada item dalam diagram pohon. Anda akan melihat sebuah terjemahan dari menu konteks komponen. Untuk mengakses menu secara penuh, klik kanan komponen yang sama dalam sebuah form, modul data atau frame. Untuk membuat sebuah diagram pada halaman diagram kode editor, tarik elemen dari object TreeView ke halaman diagram.
2.9.3 Object Inspector
Gambar 2.13 Object Inspector
Object Inspector adalah hubungan antara penampilan visual aplikasi dan kode yang membuat aplikasi berjalan. Object Inspector menghubungkan anda kepada : 1. Pengaturan desain property untuk komponen yang anda tempatkan pada sebuah form ( atau untuk form itu sendiri) 2. Membuat dan membantu Anda mengendalikannya melalui event handler 3. Menyaring property dan event yang kelihatan Object Selector atau daftar kejadian yang ada pada bagian atas Object Inspector adalah daftar menurun yang mengandung semua komponen pada form
20
aktif dan juga menampilkan tipe objek atau kelas dari komponen yang dipilih. Hal ini mengijinkan anda untuk menampilkan properti dan secara event secara cepat untuk komponen yang berbeda pada form ini Anda dapat mengubah ukuran kolom object inspector dengan menarik garis pemisah ke posisi baru. Object Inspector mempunyai dua tab properties dan tab Events. Tab Object Inspector memberikan kemungkinan bagi anda untuk memindahkan tab properti dan tab Events dari object inspector. Untuk mengubah halaman, klik tab property atau Events. Anda dapat menampilkan dan menyaring property dan event dengan kategori. Dengan menyaring properti. Anda dapat mengurangi jumlah properti yang terlihat dalam object inspector.Kitajuga dapat lebih mudah menempatkan aplikasi anda untuk negara. Kita dapat hanya menampilkan property yang diperlukan dengan tidak memilih semua kategori kecuali yang dapat ditempatkan. Tab property menyediakan fasilitas untuk melihat dan mengubah property dari setiap item. Tab Events adalah tab yang berisi event-event yang dapat direspons oleh sebuah objek. Misalnya kita ingin agar sesuatu dilakukan pada saat form ditutup maka kita dapat mengklik tab Events dan menyatakan tindakan tersebut sebagai sebuah prosedur pada event OnClose.
2.9.4 Component Palette Component palette adalah inventori visual dari visual Component Library (VCL). Komponen-komponen visual dibagi menjadi beberapa group. Secara default komponen-komponen dikelompokkan sesuai dengan fungsinya. Penglompokkan ini dinyatakan dengan tab.
Gambar 2.14 Componen Palette
21
Komponen merupakan blok bangunan dari setiap aplikasi Delphi, dan basis dari Visual Component Library dan Borland Component Library untuk lambing program. Setiap halaman tab dalam Component Palette menampilkan sekelompok ikon yang melambangkan komponen yang dapat kita gunakan untuk desain interface aplikasi kita. Untuk menambahkan komponen ke form terbuka klik dua kali ikon itu dan kemudian atur property dan kode event handlernya. Component palette membantu kita untuk menggambar tampilan fitur jendela pop up kecil yang mengandung nama atau deskripsi singkat dari tombol ketika kursor kita berada di atas tombol lebih dari satu detik.
2.9.5 Edit Window Jendela editor ini merupakan tempat untuk menuliskan program yang akan anda dalam Delphi. Editor Delphi mempunyai fasilitas highlight untuk memudahkan dalam menemukan kesalahan. Juga sudah tersedia kerangka program sehingga anda tidak perlu menuliskan seluruh program. Bagian kiri jendela editor adalah Code Explorer. Code Explorer dipakai untuk memudahkan navigasi di dalam file unit. Kita juga dapat mengabaikan mengklik tanda X di pojok kanan atas code explorer tersebut sehongga code explorer tertutup dan jendela editor hanya akan menampilkan editor program.
22
Gambar 2.15 Jendela editor
Untuk menampilkan code explorer adalah dengan memilih menu View, Code Explorer atau klik kanan pada code editor dengan pilih View Explorer. Title bar berisi nama file yang sedang diedit. Dibagian atas jendela terdapat tab-tab yang menyatakan halaman-halaman yang kita buka. Kita dapat membua beberapa file dalam sebuah jendela editor dan juga dapat mengaktivkannya dengan menggunakan tab tersebut. Di bagian kiri bawah terdapat penunjuk baris atau kolom yang berfungsi untuk menunjukkan posisi kursor dalam program. Setelah mengetahui fungsi masing-masing menu komponen dan fasilitas yang ada dalam Delphi kita dapat menempatkan komponen-komponen yang kita butuhkan yang terdapat di dalam component palette sesuai kebutuhan. Berikut ini contoh sebuah form kosong yang belum diberi komponen.
23
Gambar 2.16 Form Kosong
Untuk membuat form kosong ini sebagai papan kendali kita perlu menempatkan tombol-tombol ataupun checkbox yang sesuai. Kita juga dapat memberikan keterangan untuk nama tombol-tombol tesebut sesuai fungsinya sehingga pemakai tidak bingung bila menjalankan program.