BAB 2 LANDASAN TEORI 2.1 Perangkat Keras 2.1.1 Mikrokontroler

advertisement
BAB 2
LANDASAN TEORI
2.1 Perangkat Keras
2.1.1 Mikrokontroler AT89S52
Mikrokontroler AT89S52 termasuk kedalam keluarga MCS-51 merupakan suatu
mikrokomputer CMOS 8 bit dengan daya rendah, kemampuan tinggi, memiliki 8
Kbyte Flash Programmable and Erasable Read Only Memory (PEROM). Memori
merupakan bagian yang sangat penting pada mikrokontroler. Mikrokontroler memiliki
dua macam memori yang sifatnya berbeda yaitu:
1. 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.
2. Random Access Memory (RAM) yang isinya akan hilang begitu IC kehilangan
catu daya, dipakai untuk menyimpan data pada saat program bekerja. RAM
yang dipakai untuk menyimpan data ini disebut memori data.
Ada berbagai jenis ROM. Untuk mikrokontroler dengan program yang sudah
baku dan diproduksi secara massal, program diisikan ke dalam ROM pada saat IC
mikrokontroler dicetak di pabrik IC. Untuk keperluan tertentu mikrokontroler
Universitas Sumatera Utara
6
menggunakan ROM yang dapat diisi ulang atau Programmable-Eraseable ROM yang
disingkat dengan PEROM. Jenis memori yang dipakai untuk Memori AT89S52
adalah Flash PEROM. Program untuk mengendalikan mikrokontroler diisikan ke
memori itu lewat bantuan alat yang dinamakan sebagai AT89S52 Flash PEROM
Progammer.
Mikrokontroler AT89S52 memerlukan tambahan 3 kapasitor, 1 resistor, 1
kristal dan catu daya 5 volt. Kapasitor 10µF dan resistor 10 Kilo Ohm dipakai untuk
membenuk rangkaian reset. Dengan adanya rangkaian reset ini, AT89S52 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.
Fasilitas yang terdapat dalam mikrokontroler AT89S52 antara lain :
1. Sesuai dengan produk-produk MCS-51.
2. Terdapat memori Flash yang terintegrasi dalam sistem. Dapat ditulis ulang
hingga 1000 kali.
3. Beroperasi pada frekuensi 0 sampai 24 MH.
4. Memiliki 256 x 8 bit RAM internal.
5. Terdapat 32 jalur masukan/keluaran terprogram.
6. Tiga buah 16 bit Timer/Counter.
7. Delapan sumber interupsi.
8. Kanal serial terprogram.
9. Mode daya rendah dan mode daya mati.
Universitas Sumatera Utara
7
Gambar 2.1 IC Mikrokontroler AT89S52
Konfigurasi dan Deskripsi kaki-kaki mikrokontoler AT89S52 adalah sebagai
berikut :
1. VCC (Pin 40)
Sebagai supply tegangan.
2. GND (Pin 20)
Ground.
3. Port 0 (Pin 39 – Pin 32)
Port 0 adalah port dua arah masukan/keluaran 8 bit saluran terbuka. Sebagai
port keluaran, tiap kaki dapat menerima masukan TTL. Ketika logika 1
dimasukkan ke kaki-kaki port 0, kaki-kaki dapat digunakan sebagai masukan
impedansi tinggi. Port 0 juga dapat diatur sebagai bus alamat/data saat
mengakses program dan data dari memori luar. Pada mode ini port 0 memiliki
pull-up internal. Port 0 juga menerima byte-byte kode saat pemrograman Flash
Universitas Sumatera Utara
8
dan mengeluarkan byte kode saat verifikasi. Pull-up eksternal diperlukan saat
memverifikasi program.
4. Port 1 (Pin 1 – Pin 8)
Port 1 adalah port dua arah masukan/keluaran 8 bit dengan pull-up internal.
Sebagai tambahan, P1.0 dan P1.1 dapat diatur sebagai pewaktu/pencacah-2
eksternal masukan pencacah (P1.0/T2) dan pewaktu/pencacah-2 masukan
pemicu (P1.1/T2EX). Port 1 juga menerima byte-byte alamat saat
pemrograman dan verifikasi Flash.
5. Port 2 (Pin 21 – Pin 28)
Port 2 adalah port masukan/keluaran dua arah 8 bit dengan pull-up internal.
Port 2 juga menerima bit-bit alamat dan beberapa sinyal kendali saat
pemrograman dan verifikasi Flash.
6. Port 3 (Pin 10 – Pin 17)
Port 3 adalah port masukan/keluaran dua arah 8 bit dengan pull-up internal.
Port 3 juga menyediakan fasilitas bebagai fungsi khusus dari AT89C51. Port 3
juga menerima beberapa sinyal kendali saat pemrograman dan verifikasi Flash.
Port 3 mempunyai fungsi pin masing-masing, yaitu sebagai berikut :
Bit
Nama
Fungsi Alternatif
P3.0 (pin 10) RXD
Untuk menerima data port serial
P3.1 (pin 11) TXD
Untuk mengirim data port serial
P3.2 (pin 12) INT0
Interrupt eksternal 0
P3.3 (pin 13) INT1
Interrupt eksternal 1
P3.4 (pin 14) T0
Input eksternal pewaktu/pencacah 0
P3.5 (pin 15) T1
Input eksternal pewaktu/pencacah 1
P3.6 (pin 16) WR
Jalur untuk menulis eksternal data memori
P3.7 (pin 17) RD
Jalur untuk membaca eksternal data memori
Universitas Sumatera Utara
9
7. RST (Pin 9)
Merupakan masukan reset (aktif tinggi). Masukan tinggi pada kaki ini selama
dua siklus instruksi mesin akan me-reset perangkat.
8. ALE/PROG (Pin 30)
Address Latch Enable (ALE) adalah pulsa keluaran untuk mengunci bit rendah
dari alamat saat mengakses memori eksternal. Kaki ini juga digunakan sebagai
masukan pulsa (PROG) saat pemrograman Flash.
9. PSEN (Pin 29)
Program Store Enable (PSEN) digunakan untuk mengakses memori program
eksternal.
10. EA/Vpp External Access Enable (Pin 31)
Pada kondisi low, EA akan berfungsi menjalankan program yang ada pada
memori eksternal setelah sistem direset. Jika kondisi high, EA akan berfungsi
menjalankan program yang ada pada memori internal. Pada saat memprogram
Flash, pin ini akan mendapat tegangan 12 V.
11. XTAL1 (Pin 19)
Masukan inverting (pembalikan) penguat osilator dan masukan untuk operasi
rangkaian clock (denyut) internal.
12. XTAL2 (Pin 18)
Keluaran dari inverting (pembalikan) penguat osilator.
Universitas Sumatera Utara
10
2.1.2 Sensor Suhu LM 35
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 besaran fisis suhu ke besaran
tegangan yang memiliki koefisien sebesar 10 mV/oC yang berarti bahwa pada
kenaikan suhu 1oC maka akan terjadi kenaikan tegangan sebesar 10 mV.
a. IC LM 35
b. Rangkaian LM 35
Gambar 2.2 Sensor LM 35
Adapun keistimewaan dari IC LM 35 adalah :
1. Kalibrasi dalam satuan derajat celcius.
2. Linieritas 10 mV/oC.
3. Akurasi 0,5oC pada suhu ruang.
4. Range -55oC – 150oC.
5. Dioperasikan pada catu daya 4 V – 30 V.
6. Arus yang mengalir kurang dari 60 μA.
2.1.3 Analog to Digital Converter (ADC 0804)
Analog to Digital Converter (ADC) adalah sebuah piranti yang dirancang untuk
mengubah sinyal-sinyal analog menjadi bentuk sinyal digital. Tampilan IC ADC 0804
dapat dilihat pada gambar di bawah ini :
Universitas Sumatera Utara
11
Gambar 2.3 Tampilan IC ADC 0804
ADC yang digunakan adalah ADC 0804. ADC ini akan mengubah tegangan
yang merupakan keluaran dari sensor LM 35 menjadi 8 bit data biner. Data keluaran
dari ADC 0804 ini akan dikirim ke mikrokontroler dan diolah untuk kemudian
ditampilkan pada seven segmen.
2.1.4 Seven Segmen
Seven segmen merupakan cacah segmen minimum yang diperlukan untuk
menampilkan angka 0 sampai 9. Sejumlah karakter alfabet juga dapat disajikan
menggunakan tampilan seven segmen ini. Secara khusus, karakter heksadesimal dapat
ditampilkan. Seven segmen terdiri dari LED-LED yang disusun sedemikian rupa yang
jika dinyalakan akan membentuk suatu angka tertentu. Seven segmen terdiri dari 7
buah segmen dan ditambah 1 buah segmen yang berfungsi sebagai desimal point
seperti yang ditunjukkan pada gambar di bawah ini :
Gambar 2. 4 Susunan Seven Segmen
Universitas Sumatera Utara
12
Seven segmen terdiri dari 2 tipe yaitu :
1. Seven Segmen tipe Common Anoda
Pada seven segmen tipe ini, anoda dari setiap LED dihubungkan menjadi satu
kemudian dihubungkan ke sumber tegangan positif dan katoda dari masingmasing LED berfungsi sebagai input pada seven segmen.
Gambar 2.5 Konfigurasi Seven Segmen Tipe Common Anoda
Pada gambar di atas, maka untuk menyalakan salah satu segmen, maka katodanya
diberi tegangan 0V atau berlogika low.
2. Seven Segmen tipe Common Katoda
Pada seven segmen tipe ini, katoda dari setiap LED dihubungkan menjadi satuu
kemudian dihubungkan ke ground dan anoda dari masing-masing LED berfungsi
sebagai input dari seven segmen.
Gambar 2.6 Konfigurasi Seven Segmen Tipe Common Katoda
Pada gambar di atas, maka untuk menyalakan salah satu segmen, maka anodanya
diberi tegangan minimal 3V atau berlogika high.
Universitas Sumatera Utara
13
2.1.5 Relay
Relay merupakan rangkaian yang bersifat elektronis sederhana dan tersusun oleh
saklar, medan elektromagnet (kawat koil), dan poros besi. Relay berfungsi untuk
menghubungkan atau memutus aliran listrik yang dikontrol dengan memberikan
tegangan dan arus tertentu pada koilnya. Rangkaian relay akan bekerja jika mendapat
catu. Arus yang digunakan pada rangkaian adalah arus DC.
Konstruksi dalam suatu relay terdiri dari lilitan kawat (coil) yang dililitkan
pada inti besi lunak. Jika lilitan kawat mendapatkan aliran arus, inti besi lunak kontak
menghasilkan medan magnet dan menarik switch kontak. Switch kontak mengalami
gaya listrik magnet sehingga berpindah posisi ke kutub lain atau terlepas dari kutub
asalnya. Dan relay akan kembali ke posisi semula yaitu normaly ON atau normaly
OFF, bila tidak ada lagi arus yang mengalir padanya, posisi normal relay tergantung
pada jenis relay yang digunakan. Dan pemakaian jenis relay tergantung pada keadaan
yang diinginkan dalam suatu rangkaian. Bentuk fisik dan simbol relay dapat dilihat
pada gambar berikut :
a. Bentuk Fisik Relay
b. Simbol Relay
Gambar 2.7 Bentuk Fisik dan Simbol Relay
Universitas Sumatera Utara
14
Menurut kerjanya relay dapat dibedakan :
1. Normaly Open, saklar akan tertutup bila dialiri arus.
2. Normaly Close, saklar akan terbuka bila dialiri arus.
3. Change Over (CO), relay ini mempunyai saklar tunggal yang normalnya
tertutup yang lama.
Analogi rangkaian relay yang digunakan pada proyek ini adalah saat basis
transistor dialiri arus, maka transistor dalam keadaan tertutup yang dapat
meghubungkan arus dari kolektor ke emiter yang mengakibatkan relay terhubung.
Sedangkan fungsi dioda adalah untuk melindungi transistor dari tegangan induksi
berlebih, dimana tegangan ini dapat merusak transistor. Jika pada basis tidak ada arus
maju, transistor terbuka sehingga arus tidak mengalir dari kolektor ke emiter. Oleh
karena itu relay tidak bekerja karena tidak ada arus yang mengalir pada gulungan
kawat.
2.2 Perangkat Lunak
2.2.1 Bahasa Assembly MCS-51
Bahasa yang digunakan untuk mengisi program ke IC mikrikontroler AT89S52 adalah
bahasa assembly MCS-51. Jumlah instruksi pada bahasa ini hanya ada 51 instruksi.
Dari 51 instruksi , yang sering digunakan hanya 10 instruksi. Instruksi-instruksi
tersebut antara lain :
1. Instruksi MOV
Universitas Sumatera Utara
15
Perintah ini merupakan perintah untuk mengisikan nilai ke alamat atau register
tertentu yang dapat secara langsung atau tidak langsung.
Contoh pengisian secara langsung :
mov R0,#20h
Perintah di atas berarti : isikan nilai 20 Heksadesimal ke register 0 (R0).
Tanda # sebelum bilangan menunjukkan bahwa bilangan tersebut adalah nilai.
Contoh pengisian secara tidak langsung :
mov 20h,#80h
……….
……….
mov R0,20h
Perintah di atas berarti : isikan nilai yang terdapat pada alamat 20 Heksadesimal
ke register 0 (R0). Tanpa tanda # sebelum bilangan menunjukkan bahwa bilangan
tersebut adalah alamat.
2. Instruksi DJNZ
Decreament Jump if Not Zero (DJNZ) ini merupakan perintah untuk mengurangi
nilai register tertentu dengan 1 dan lompat jika hasil pengurangannya belum nol.
Contoh :
mov R0,#80h
Loop:
……….
……….
djnz R0,Loop
……….
R0 – 1, jika belum 0 lompat ke loop, jika R0 = 0, program akan meneruskan ke
perintah pada baris berikutnya.
Universitas Sumatera Utara
16
3. Instruksi ACALL
Instruksi ini berfungsi untuk memanggil suatu rutin tertentu.
Contoh :
……….
Acall tunda
……….
Tunda:
……….
4. Instruksi RET
Instruksi RETURN (RET) ini merupakan perintah untuk kembali ke rutin
pemanggil setelah instruksi ACALL dilaksanakan.
Contoh :
Acall tunda
……….
Tunda
………..
Ret
5. Instruksi JMP (Jump)
Instruksi ini merupakan perintah untuk lompat ke alamat tertentu.
Contoh :
Loop:
……….
……….
jmp Loop
Universitas Sumatera Utara
17
6. Instruksi JB (Jump if bit)
Instruksi ini merupakan perintah untuk lompat ke alamat tertentu, jika pin yang
dimaksud berlogika high (1).
Contoh :
Loop:
jb P1.0,Loop
……….
7. Instruksi JNB (Jump if Not bit)
Instruksi ini merupakan perintah untuk lompat ke alamat tertentu, jika pin yang
dimaksud berlogika low (0).
Contoh :
Loop:
jnb P1.0,Loop
……….
8. Instruksi CJNE (Compare Jump if Not Equal)
Instruksi ini berfungsi membandingkan nilai dalam suatu register dengan suatu
nilai tertentu.
Contoh :
Loop:
……….
cjne R0,#20h,Loop
……….
Jika nilai R0 tidak sama dengan 20h, maka program akan lompat ke rutin Loop.
Jika nilai R0 sama dengan 20h, maka program akan melanjutkan instruksi
selanjutnya.
Universitas Sumatera Utara
18
9. Instruksi DEC (Decrement)
Instruksi ini merupakan perintah untuk mengurangi nilai register yang dimaksud
dengan 1.
Contoh :
mov R0,#20h
R0 = 20h
……….
dec R0
R0 = R0 – 1
……….
10. Instruksi INC (Increament)
Instruksi ini merupakan perintah untuk menambahkan nilai register yang
dimaksud dengan 1.
Contoh :
mov R0,#20h
R0 = 20h
……….
inc R0
R0 = R0 + 1
……….
Universitas Sumatera Utara
19
2.2.2 Software 8051 Editor, Assembler, Simulator (IDE)
Instruksi-instruksi yang berupa bahasa assembly tersebut dituliskan pada sebuah
editor, yaitu 8051 Editor, Assembler, Simulator (IDE). Kemudian instruksi-instruksi
(program-program) tersebut akan di-save dan kemudian di-Assemble (di-Compile).
Pada saat di-Assemble maka akan tampil pesan peringatan dan kesalahan. Jika masih
ada peringatan tersebut, itu berarti masih ada kesalahan dalam penulisan instruksi atau
ada nama subrutin yang sama. Dengan demikian kesalahan-kesalahan tersebut harus
diperbaiki terlebih dahulu. Tampilannya dapat kita lihat pada gambar di bawah ini :
Gambar 2.8 Software 8051 Editor, Assembler, Simulator (IDE)
Software 8051IDE ini berfungsi untuk merubah program yang kita tuliskan ke
dalam bilangan heksadesimal, dimana proses perubahan ini terjadi pada saat kita
meng-Assemble program tersebut. Bilangan heksadesimal hasil proses inilah yang
dikirim ke mikrokontroler.
Universitas Sumatera Utara
20
2.2.3 Software Downloader
Untuk mengirimkan bilangan-bilangan heksadesimal tersebut ke mikrokontroler
digunakan software ISP–Flash Programmer 3.0a sehingga mikrokontroler dapat
menyimpan data.
ISP-Flash Programmmer 3.0a dapat diperoleh dengan
mendownload dari internet. Tampilannya dapat kita lihat gambar di bawah ini :
Gambar 2.9 ISP-Flash Programmer 3.0a
Cara menggunakannya adalah dengan meng-klik Open File untuk mengambil
file heksadesimal dari hasil kompilasi 8051IDE, kemudian meng-klik Write untuk
mengisikan hasil kompilasi tersebut ke mikrokontroler.
Universitas Sumatera Utara
Download