BAB II TEORI DASAR
2. 1
Sistem Mikrokontroler AT89S52 Mikrokontroller adalah suatu perangkat keras yang memiliki memori dan
peralatan input / output ( I / O ) pendukung di dalamnya. Suatu sistem mikroprosesor atau mikrokomputer memerlukan tempat untuk menyimpan data atau program adalah pada ROM / EPROM. Mikrokontroler ini memiliki 4 buah port I / O, port ini merupakan perantara untuk hubungan data dalam format parallel. Masing – masing port menyediakan data I / O sebesar 8 bit parallel. Perlengkapan dasar dari mikrokontroller ini adalah : a) CPU ( Central Procesing Unit ), unit ini terbagi atas unit pengendali yang berfungsi untuk mengambil, mengkode dan melaksanakan urutan intruksi dari sebuah program yang terdapat di memory, CPU juga mempunyai kemampuan untuk memahami dan menjalankan set intruksi dari kode biner. Unit ini juga mengatur urutan operasi dengan menghasilkan sinyal pengendali, berikutnya adalah unit kontrol yang berfungsi untuk mengendalikan Bus data dan Bus alamat. b) Internal RAM ( Random Access Memory ), RAM yaitu memory yang dapat dibaca atau ditulis. Data dalam RAM akan hilang bila suplay arus dari catu daya dihilangkan. Oleh karena itu , program mikrokontroller tidak disimpan dalam RAM melainkan disimpan dalam EPROM.
c) ROM ( Read Only Memory ). ROM merupakan memory yang hanya dapat dibaca. Data dalam ROM tidak terhapus walaupu aliran catu daya terputus, karena itu memori ini cocok digunakan untuk menyimpan program mikrokontroller. d) Address Bus, alamat apabila suatu alat dihubungkan dengan mikrokontroller, maka harus ditetapkan terlebih dahulu alamat ( address ) dari alat tersebut, hal ini bertujuan untuk menghindarkan terjadinya dua alat yang bekerja secara bersamaan yang mungkin dapat menyebabkan kesalahan. e) Bus data, data dari setiap proses kerja dari dan ke mikrokontroller mempunyai data yang diperlukan untuk proses kerja tersebut, data ini merupakan hasil kombinasi dari bit – bit yang dihasilkan dalam pengoperasian komponen – komponen digital. Kesatuan dari saluran data disebut bus data. f) Pengendali, selain bus alamat dan bus data mikrokontroller juga dilengkapi dengan bus pengendali ( Controll Bus )yang berguna untuk menyerempakkan operasi mikrokontroller dengan operasi rangkain luar. g) Masukkan / keluaran, sering disebut I / O ( Input / Output ). Gunanya yaitu untuk melakukan hubungan dengan piranti luar sistem, alat I / O dapat menerima data dari mikrokontroller dan dapat pula memberi masukkan ke mikrokontroller. Bentuk dari mikrokontroller dapat kita lihat pada gambar 2.1
Gambar 2.1 Mikrokontroller AT89S52
Beberapa keistimewaan yang dimiliki oleh mikrokontroller AT89S52 adalah sebagai berikut :
2.1.1
•
Mikrokontroller 8 bit yang kompatibel dengan produk MCS – 51TM.
•
8 Kbytes ( 8912 byte ) Flash EPROM.
•
Empat buah programmable port I / O, masing – masing terdiri atas 8 bit.
•
Tiga buah timer counter 16 bit.
•
8 buah sumber interupsi.
•
Saluran serial programmable.
•
256 x 8 bit RAM Internal.
•
Operasi statik penuh pada 0 Hz sampai 24 MHz.
•
Pengunci program memori tiga tingkat.
•
Low power idle dan Power down modes.
Fungsi dan Konfigurasi Pin Mikrokontroller AT89S52 mempunyai 40 pin, dimana pin – pin tersebut
memiliki fungsi – fungsi tersendiri seperti ditunjukkan pada gambar 2.2
Gambar 2.2 Susunan Pin Mikrokontroller AT89S52
a) Pin 32 s / d 39 ( Port 0 ) adalah pin parallel I / O 8 – bit dua arah ( bidirectional ) apabila sebagai port output, setiap pin dapat meredam TTL input. Port 0 dapat juga dinyatakan sebagi multipleks bus alamat atau bus data berlogika “ 0 “ selama mengakses program eksternal dan memori data dalam model ini port 0 memiliki internal pullup. Port 0 juga menerima kode byte selama pemrograman flash EPROM dan sebagai output kode byte selama pengetesan program. b) Pin 1 s / d 8 ( Port 1 ) adalah pin pararel I / O 8 – bit dua arah ( bidirectional ) dengan internal pullup, port I juga sebagai output buffer dapat meredam dan menimbulkan empat TTL input. Dalam penambahan pin 1 ( port 1.0 ) dapat juga sebagai timer / counter 2 masukkan pencacah dari luar ( T2 ) pin 1 dan T2 berhimpitan sehingga apabila T2 digunakan maka pin 1 tidak bisa digunakan untuk jalur I / O, sedangkan pin 2 ( port 1.1 ) dapat juga digunakan sebagai timer / counter 2 masukkan trigger ( T2EX ), pin 2 dan T2EX berhimpitan sehingga apabila T2EX digunakan apabila T2EX digunakan maka pin 2 tidak bisa digunakan umtuk jalur I / O. Tabel 2.1 Port 1 Sebagai Fungsi Pengganti Port Pin
Fungsi Pengganti
P1. 0
T2 ( masukkan pencacah dari luar untuk timer / counter2 ) dengan sinyal keluaran clock.
P1. 1
T2EX ( masukkan trigger timer / counter ).
c) Pin 21 s / d 28 ( Port 2 ) adalah port pararel I / O 8 – bit dua arah ( bidirectional ) dengan internal pullup, apabila port 2 berfungsi sebagai
masukkan ( input ) maka port 2 akan memberi masukkan dari luar berlogik “ 0 “ ini diakibatkan adanya internal pullup pada port 2 tersebut. d) Pin 10 / 17 ( port 3 ) adalah port pararel I / O 8 – bit dua arah ( bidirectional ) dengan internal pullup, port 3 termasuk port yang serbaguna karena dapat digunakan untuk transisi data, intrupsi dan timer seperti yang diiperlihatkan Tabel 2.2 Tabel 2.2 Port 3 Sebagai Fungsi Pengganti Port Pin
Fungsi Pengganti
P3. 0
RXD ( serial input port )
P3. 1
TXD ( serial Output port )
P3. 2
INT0 ( external interrupt 0 )
P3. 3
INT1 ( ecternal interrupt 1)
P3. 4
T0 ( timer 0 external input )
P3. 5
T1 ( timer 1 external input )
P3. 6
WR ( external data memory write strobe )
P3. 7
RD ( external data memory read strobe )
e) Pin 40 digunakan sebagai sumber tegangan 5 volt. f) Pin 20 digunakan untuk ground. g) Pin 19 ( XTAL1 ) merupakan pin masukkan ( input ) kerangkain osilator internal tetapi dapat juga sebagai pin untuk external osilator. h) Pin 18 ( XTAL2 ) merupakan pin keluaran ( output ) dari rangkaian osilator internal sama dengan XTAL1, pin ini dapat juga digunakan untuk osilator eksternal.
i) Pin 9 ( Reset ), pin ini berfungsi untuk mereset mikrokontroller AT89C52 dengan pulsa transisi dari rendah ke tinggi, untuk memfungsikan pin ini dihubungkan dengan rangkaian Power on reset. j) Pin 30 ( ALE / PROG : Address Latch Enable / Program ), sinyal pada pin ini berfungsi untuk menahan alamat memori eksternal selama pelaksanaan instruksi. k) Pin 29 ( PSEN : Program Store Enable ), pin ini berlaku sebagai sinyal pengontrol yang mengizinkan program memori eksternal masuk ke dalam bus selama proses pemberian atau pengambilan instruksi. l) Pin 31 ( EA / VPP : External Access Enable ), pin ini dihubungkan pada Vcc untuk menjalankan program internal, apabila dihubungkan dengan ground untuk dapat mengambil kode program dari memori eksternal yang alamatnya dimulai dari 0000H sampai FFFFH.
2.1.2
Konstruksi Mikrokontroller AT89S52 Memori merupakan bagian yang sangat penting bagi mikrokontroller, oleh
karena itu terdapat 2 macam memori yang sifatnya berbeda yaitu : •
ROM ( Read Only Memory )
•
RAM ( Random Acces Memory )
Read only memory ( ROM ) adalah jenis Memory yang isinya tidak berubah meskipun IC kehilangan catu daya, dipakai untuk menyimpan program, begitu di-reset mikrokontroller akan langsung bekerja dengan program dalam ROM tersebut. Sesuai dengan keperluannya, dalam susunan MCS51 memori penyimpanan program ini dinamakan sebagai MEMORI PROGRAM.
Random Acces Memory ( RAM ) isinya akan sirna begitu IC kehilangan catu daya, dipakai untuk menyimpan data pada saat program bekerja. Di samping untuk data, dipakai pula untuk Stack. RAM yang dipakai untuk menyimpan data ini disebut pula sebagai MEMORI DATA. Ada berbagai jenis ROM. Untuk mikrontroller dengan program yang sudah baku dan diproduksi secara missal, program diisikan ke dalam ROM pada saat IC mikrokontroller dicetak di pabrik IC. Untuk keprluan yang jumlahnya tidak banyak biasanya tidak dipakai ROM, tapi dipakai ROM yang bisa di-isi-ulang atau programmable-Eraseable ROM ( Ultra Violet Eraseable Programable ROM )yang kemudian dinilai mahal harganta dan ditinggalkan setelah ada Flash PEROM yang harganya jauh lebih murah. Jenis memori yang dipakai untuk Memori Program AT89S52 adalah Flash ROM, program untuk mengendalikan mikrokontroller diisikan ke memori itu lewat bantuan alat yang dinamakan ISP Programmer. Memori Data yang disediakan dalam chip AT89S52 sebesar 256 byte, meskipun hanya kecil saja tapi untik banyak keperluan memori kapasitas itu sudah mencukupi. AT89S52 dilengkapi UART ( Universal Asynchronous 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 kai nomor 10 dan 11, sehingga kalau sarana UART ini dipakai maka P3.0 dan P3.1 tidak lagi bias dipakai untuk jalur input / output pararel. Timer 0 dan 1 masing – masing adalah untaian pencacah biner 16 bit ( 16 bit binary counter ) di dalam chip yang dipakai sebagai sarana input / output yang bekerja menurut fungsi waktu. Clock penggerak untaian pencacah ini bias berasal dari
oscilator 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 bias dipakai untuk jalur input / output pararel kalau T0 dan T1 dipakai. AT89S52 mempunyai 5 sumber pembangkit interupsi, 2 diantaranya adalah sinyal interupsi yang diumpankan ke kaki INTO dan INTI, kedua kaki ini berhimpitan dengan P3.2 dan P3.3 sehingga tidak bias dipakai sebagai jalur input / output pararel kalau INTO dan INTI dipakai untuk menerima sinyal interupsi. Tiga sumber interupsi yang lain berasal dan sarana komunikasi data seri dan dari sistem Timer 0 dan Timer 1. Port 0. Port 1, Port 2, Port 3, UART, Timer 0, Timer 1 dan sarana lainnya merupakan register yang secara fisik merupakan RAM khusus, yang ditempatkan di Special Function Register ( SFR ).
2.1.3
Timer / Counter Mikrokontroler AT89S52 memiliki 2 buah timer / counter 16 bit yang diatur
melalui perangkat lunak, yaitu timer / counter 0 dan timer / counter 1. Perbedaan antara timer dengan counter terletak pada sumber clock dan aplikasinya, jika timer mempunyai sumber clock dengan frekuensi tertentu yang sudah pasti maka counter mendapat sumber clock dari pulsa yang hendak dihitung jumlahnya. Aplikasi dari counter biasa digunakan untuk aplikasi menghitung jumlah kejadian dalam periode tertentu, sedang timer digunakan untuk aplikasi menghitung lamanya kejadian yang terjadi. Apabila timer / counter diaktifkan pada frekuensi kerja mikrokontroler 12 MHZ, timer akan melakukan penghitungan waktu setiap 1 mikrodetik. Satu siklus pencacahan waktu sebanding dengan satu siklus pelaksanaan instruksi, sedangkan satu
siklus diselenggarakan dalam waktu 1 mikrodetik. Bila di misalkan suatu urutan instruksi telah selesai dilaksanakan dalam waktu 5 mikrodetik pada saat itu juga timer / counter telah menunjukkan periode waktu 5 mikrodetik. Apabila periode waktu telah terlampaui
timer
/
counter
segera
menginsterupsi
mikrokontroler
untuk
memberitahukan bahwa perhitungan periode waktu telah selesai dilaksanakan.
2.1.4
Akumulator Sesuai dengan namanya. akumulator adalah sebuah register yang berfungsi
untuk menampung ( accumulate ) hasil – hasil pengolahan data dari banyak instruksi MCS52. Akumulator biasa menampung data 8 bit ( 1 byte ) dan merupakan register yang paling banyak kegunaannya, lebih dari setengah instruksi – instruksi MCS52 melibatkan akumulator. Instruksi – instruksi berikut memperjelas pengertian di atas : MOV A,#20H ADD A,#30H Instruksi pertama menyimpan nilai 20H ke akumulator, instruksi kedua menambahkan bilangan 30H ke akumulator, hasil penjumlahan sebesar 50H ditampung di akumulator. Stack Pointer Register Salah satu bagian dari memori – data dipakai sebagai Stack, yaitu tempat yang dipakai untuk menyimpan sementara nilai PC sebelum prosesor menjalankan sub – rutin, nilai tersebut akan diambil kembali dari Stack dan akan dikembalikan ke PC saat prosesor selesai menjalankan sub – rutin.
Stack Pointer Register adalah register yang berfungsi untuk mengatur kerja stack, dalam Stack Pointer Register disimpan nomor memori – data yang dipakai untuk operasi stack berikutnya.
2.1.5 Special Function Register ( SFR ) AT89S52 Register khusus ( SFR – Special Function Register ) adalah satu daerah RAM dalam IC keluarga MCS52 yang dipakai untuk mengatur prilaku MCS52 dalam hal – hal khusus, misalnya tempat untuk berhubungan dengan port parallel P1 atau P3, dan sarana input / output lainnya, tapi tidak umum dipakai untuk menyimpan data seperti layaknya memori – data. Meskipun demikian, dalam hal penulisan program SFR diperlakukan persis sama dengan memori – data. Untuk mengisi memori – data nomor 60H dengan bilangan 0FH, Instruksi yang digunakan adalah : MOV 60H,#0FH Sedangkan untuk menyimpan 0FH ke Port 1 yang di SFR menempati memori – data nomor 90H, instruksi yang dipergunakan adalah : MOV 90H,#0FH Membandingkan kedua instruksi di atas bisa dimengerti dalam segi penulisan program SFR diperlakukan persis sama dengan memori – data. Meskipun demikian, dalam menyebut memori – data bisa dipakai dua cara, yakni penyebutan nomor memori secara langsung ( direct memory addressing ) dan penyebutan nomor memori secara tidak langsung ( indirect memory addressing ) lewat
bantuan R0 dan R1. Tapi untuk SFR hanya bisa dipakai penyebutan nomor memori secara langsung saja. Random Access Memory ( RAM ) dalam AT89S52 hanya 256 byte, hanya setengahnya yang dipakai sebagai memori – data biasa, setengahnya lagi dipakai untuk register – register untuk mengatur perilaku MCS52 misalnya sebagai tempat untuk berhubungan dengan port parallel P1 atau P3, dan sarana input / output lainnya, tapi tidak dipakai untuk menyimpan data seperti layaknya memori – data. Nomor memori – data yang disediakan untuk SFR mulai dari 80H sampai dengan FFH, area sebanyak 128 byte ini tidak semuanya dipakai, hal ini digambarkan dalam Denah Special Function Register. Masing – masing register dalam Special Function Register mempunyai nomor dan nama. Dianjurkan agar nomor – nomor yang tidak dipakai jangan dipergunakan, karena bisa mengakibatkan terjadinya sesuatu yang tidak terduga. Sebagian register dalam Special Function Register sudah dibicarakan sebagai Register Dasar, merupakan piranti dasar untuk penulisan program. Register – register dasar tersebut antara lain Akumulator ( ACC ), Stack Pointer Register ( SP ), Program Status Register ( PSW ), Register B, Data Pointer High Byte ( DPH ) dan Data Pointer Low Byte ( DPL ). Di dalam area Special Function Register. Register – register ini diperlakukan sebagai memori dengan nomor yang sudah tertentu. Akumulator merupakan Special Function Register dengan nomorEOH, sehingga semua bit dalam akumulator bisa diberi nomor satu per satu. Dalam penulisan program bit 0 akumulator bisa dituliskan sebagai A. 0, bit 1 akumulator ditulis sebagai A.1 dan seterusnya. Instruksi SETB A.0 mengakibatkan bit 0 dari akumulator menjadi ‘ 1 ’ sedangkan bit – bit lainnya tidak terpengaruh, Instruksi CLR
A.6 mengakibatkan bit 6 dari akumulator menjadi ‘ 0 ’ tapi tidak mempengaruhi bit – bit lainnya. Pengelompokan SFR Selain Register yang berfungsi sebagai register dasar yang sudah dibicarakan diatas, register – register dalam SFR dipakai untuk mengatur input / output dari MCS52 yang dikelompokkan menjadi : •
Register penampung data input / output, misalnya data yang diisikan ke register P1 akan diteruskan ( di–output–kan ) ke Port 1 yang terdapat di kaki IC AT89S52.
•
Register pengatur input / output dan register status input / output, misalnya register SCON dipakai untuk mengatur UART dan dipakai untuk memantau kondisi UART, register TCON dipakai untuk mengatur kerja timer.
Gambar 2.3 SFR AT89S52
2.2
Display LCD 16 x 2 Dalam perancangan ini penulis menggunakan display LCD 16 x 2 untuk
memberikan petunjuk dan menampilkan berapa digit pin yang sudah ditekan. Digunakan display ini karena dapat di pasang dengan mudah serta tampilannya pun lebih bagus karena LCD dapat menampilkan bilangan maupun huruf abjad dengan sempurna.
Gambar 2.4 LCD 16 x 2 2.3
Keypad 3 x 4 Sebuah keypad pada umunya dihubungkan secara matriks ( baris dan kolom ).
Keypad yang dihubungkan dengan rangkaian mikrokontroler adalah jenis keypad kontak mekanis dengan konfigurasi matriks 3 x 4 ( 3 kolom dan 4 baris ) keypad ini berfungsi sebagai piranti data yang diinginkan untuk memasukan nilai yang diminta.
Gambar 2.5 Keypad 3 x 4
2.4
Driver Motor DC Secara umum motor DC berlaku persamaan GGL lawan, yang ada
hubungannya dengan kecepatan sebagai berikut, E b = K m .φ. ω
dengan:
ω = kecepatan motor dalam putaran perdetik ( pps ) E b = GGL lawan yang dibangkitkan oleh jangkar ( volt )
φ = fluks perkutub ( weber ) Motor DC magnet permanen mempunyai medan magnet yang konstan (φ) sehingga kecepatan motor dipengaruhi dan berbanding lurus dengan tegangan belitan jangkar. Kurva tegangan-kecepatan dari suatu motor DC ada saat beban nol terlihat pada Gambar 2.6
Eb Karakteristik linear
Gambar 2.6 Grafik tegangan motor DC
Motor DC mempunyai dua bagian dasar yaitu : 1.
Bagian diam/tetap (stasioner) yang disebut stator. Stator ini menghasilkan medan magnet, baik yang dibangkitkan dari sebuah koil (elektromagnetik) atau magnet permanen. Bagian stator terdiri dari bodi motor yang memiliki magnet
yang melekat padanya. Untuk motor kecil, magnet tersebut adalah magnet permanen sedangkan untuk motor besar menggunakan elektromagnetik. Kumparan yang dililitkan pada lempeng-lempeng magnet disebut kumparan medan. 2.
Bagian berputar / penggerak (pintu masuk dan keluar) ini berupa sebuah koil dimana arus listrik mengalir. Suatu kumparan motor akan berfungsi apabila mempunyai : •
Kumparan medan,berfungsi sebagai pengahsil medan magnet.
•
Kumparan jangkar, berfungsi sebagai pengimbas GGL pada konduktor yang terletak pada laur-alur jangkar.
•
Celah udara yang memungkinkan berputarnya jangkar dalam medan magnet.
2.5
Limit Switch Limit switch adalah sejenis saklar pemutus arus yang terdiri dari kontak NO
dan kontak NC. Limit switch bekerja apabila mendapat tekanan dari suatu proses penggerakan sehingga terjadi perubahan pada kontaknya.
Gambar 2.7 Limit Switch Pada alat tugas akhir ini limit switch digunakan sebagai pembatas putaran motor pada gerakan pintu.
2.6
Buzzer Buzer berfungsi sebagai alarm jika terjadi kesalahan pada system atau proses
penekanan PIN yang diminta.
Gambar 2.8 Buzzer