BAB 2
TINJAUAN PUSTAKA
2.1.
Perangkat Keras
2.1.1. Mikrokontroler AT89S51 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.
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.
Universitas Sumatera Utara
6
2.1.1.1. Konstruksi 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 AT89S51 otomatis direset begitu rangkaian menerima catu daya. Kristal dengan frekuensi maksimum 24 MHz dan kapasitor 30 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 progam ini dinamakan sebagai memori progam. Random Access Memori (RAM) isinya akan sirna begitu IC kehilangan catu daya, dipakai untuk menyimpan data pada saat progam bekerja. RAM yang dipakai untuk menyimpan data ini disebut sebagai memori data.
Ada berbagai jenis ROM. Untuk mikrokontroler dengan progam yang sudah baku dan diproduksi secara masal, progam 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.
Universitas Sumatera Utara
7
Jenis memori yang dipakai untuk Memori Program AT89S51 adalah Flash PEROM, program untuk mengendalikan mikrokontroler diisikan ke memori itu lewat bantuan alat yang dinamakan sebagai AT89S51 Flash PEROM Programmer. Memori Data yang disediakan dalam chip AT89S51 sebesar 128 byte, meskipun hanya kecil saja tapi untuk banyak keperluan memori kapasitas itu sudah cukup.
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.
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).
Universitas Sumatera Utara
8
2.1.1.2. Gambar IC Mikrokontroler AT89S51 Gambar IC mikrokontroler AT89S51 ditunjukkan pada gambar di bawah ini:
Gambar 2.5. 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 pullup 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 mereset 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
Universitas Sumatera Utara
9
digunakan sebagai port parallel 8 bit serbaguna. Selain itu sebagian dari port 3 dapat berfungsi sebagai sinyal control pada saat proses pemrograman dan verifikasi. Adapun fungsi penggantinya seperti pada tabel 2.1.
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 osilator. 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. 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 20 Merupakan ground sumber tegangan yang diberi symbol GND
Universitas Sumatera Utara
10
Pin 21 sampai 28 Ini adalah port 2 yang merupakan saluran/bus I/O 8 biit dua arah dengan internal pullup. 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 mkrokontroler akan melaksanakan instruksi dari memori program internal ketika isi
Universitas Sumatera Utara
11
program counter kurang dar 4096. ini juga berfungsi sebagai tegangan pemrograman (Vpp = +12 V) selama proses pemrograman.
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.
2.1.2. Sensor Temperatur Sensor adalah piranti yang menghasilkan sinyal keluaran yang sebanding dengan parameter yang diindera (sensing). Pengukuran temperatur merupakan hal yang penting. Pendeteksian temperatur dapat dilakukan dengan menggunakan sensor temperatur. Ada beberapa jenis sensor temperatur yang dapat digunakan dalam pengukuran temperatur, yakni:
2.1.2.1. Termokopel Termokopel adalah sebuah sensor temperatur yang dibentuk dari dua jenis logam berbeda. Lebih tepatnya hubungan sepasang logam yang berbeda jenis. Salah satu logam befungsi sebagai penentu suhu referensi, sedangkan logam pasangannya berfungsi sebagai pengukur suhu aktual. Perbedaan suhu antara dua logam tersebut akan menghasilkan keluaran berupa tegangan.
Universitas Sumatera Utara
12
Gambar 2.2. Sensor Temperatur Termokopel
2.1.2.2. Termistor Termistor adalah sensor temperatur berjenis resistor yang sensitif. Memang semua resistor bila dipengaruhi suhu akan berubah resistansinya. Akan tetapi termistor tersusun atas materi semikonduktor dengan resistivitas yang khusus sensitif terhadap temperatur. Berbeda dengan kebanyakana resistor, resistansi termistor akan berkurang sejalan dengan meningkatnya temperatur. Hal ini disebabkan oleh karakteristik bahan yang menyusun termistor tersebut.
Gambar 2.3. Sensor Temperatur Termistor
2.1.2.3. LM35 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
Universitas Sumatera Utara
13
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.4. Sensor Temperatur LM35DZ
Adapun beberapa kelebihan dari LM35 dari sensor temperatur lain adalah: Hasil pengukuran lebih akurat dibandingkan dengan menggunakan thermistor. Rangkain sensor tertutup dan tidak bergantung (tidak terpengaruh) pada oksidasi. LM35 menghasilkan tegangan keluaran lebih besar dibandingkan dengan thermocouple dan tegangan keluaran tidak perlu diperbesar.
Universitas Sumatera Utara
14
2.1.3. Display Matrix
LED matriks display adalah susunan LED berbentuk matriks yang dirangkai sedemikian rupa yang apabila program dari mikrokontroler dikirim ke display matrix, maka display matrix akan menampilkan sesuai kreasi yang ada pada program. Misalnya karakter atau huruf diam/berjalan. Di kota-kota besar, biasanya display ini sudah digunakan sebagai papan iklan, tampilan informasi harian, juga sebagai pengganti pamflet di toko-toko.Dengan susunan LED 7 baris dan 16 kolom, sehingga jumlah seluruh LED yang digunakan adalah 112. Bagian horizontal terdiri dari 7 baris, karena untuk menampilkan sebuah karakter dibutuhkan 7 baris. Bagian vertikal terdiri dari 16 kolom, sesuai dengan jumlah output dari kedua IC 74LS154 yang digunakan. Adapun tampilan display matrix ditunjukkan pada gambar berikut:
Gambar 2.5. Display Matrix
Adapun komponen-komponen pendukung display matrix ini adalah: •
Transistor C 945
•
Transistor A 733
Universitas Sumatera Utara
15
•
Resistor 330 ohm
•
Resistor 1 Kohm
•
Resistor 4K7 ohm
•
IC Scanning 74 LS154
2.1.4. Analog to Digital Converter (ADC)
Analog to Digital Converter (ADC) adalah sebuah piranti yang dirancang untuk mengubah sinyal-sinyal analog menjadi sinyal - sinyal digital. 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.
Beberapa karakteristik penting ADC : 1. Waktu konversi 2. Resolusi 3. Ketidaklinieran 4. Akurasi
Universitas Sumatera Utara
16
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 memperlihatkan diagram blok ADC tersebut.
Gambar 2.7. 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.
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 dimulai siklus konversi yang baru.
Universitas Sumatera Utara
17
2.2. Perangkat Lunak
2.2.1. Instruksi Dasar Bahasa Assembly 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.2.1.1. 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.
2.2.1.2
Instruksi Aritmatika
Instruksi ini melaksanakan operasi aritmatika yang meliputi penjumlahan, pengurangan, penambahan satu (increment), pengurangan satu(decrement), perkalian dan pembagian.
Universitas Sumatera Utara
18
2.2.1.3. 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.
2.2.1.4. 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 prcabangan bersyarat (misalnya CJNE) dan percabangan tanpa syarat (misalnya ACALL).
2.2.1.5. Instruksi Stack, I/O, dan Kontrol Instruksi ini mengatur penggunaan stack, membaca/menulis port I/O, serta pengontrolan-pengontrolan.
Universitas Sumatera Utara