Dasar Mikrokontroler Mikrokontroler AT89S52

yang dimulai dari 0000H sampai FFFFH. Bagaimanapun bila bit 1 telah dikunci lewat program, EA akan secara internal terhubung ke reset. EA seharusnya tersambung juga ke VCC untuk mengeksekusi internal program. Pin ini juga menerima tegangan 12 volt untuk program pengaktifan tegangan VPP selama Flash Programming. k. XTAL1 Yaitu inputan oscilator pembalik dan inputan ke pengoperasian clock internal pada sirkuit. l. XTAL2 Outputan dari oscilator pembalik. m. SFR Sebuah peta pada chip memori area

2.2.2 Dasar Mikrokontroler

Sebuah mikrokontroler memiliki beberapa perlengkapan dasar, antara lain adalah CPU, Alamat, Data, Pengendali, Memori, RAM, ROM, Input Output. a. Central Processing Unit CPU Unit pengelola pusat CPU terdiri atas dua bagian yaiu unit pengendali CU serta unit aritmatika dan logika ALU. Fungsi utama unit pengendali adalah untuk mengambil, mengkode, dan melaksanakan urutan instruksi pada sebuah program yang tersimpan dalam memori. Sedangkan unit aritmatika atau perhitungan bertugas untuk menangani operasi perhitungan maupun boolean dalam program. b. Alamat Sistem berbasis mikroprosesor atau mikrokontroler pada umumnya mempunyai lebih dari satu device peripheral seperti memori, input output, Analog to Digital Converter ADC, dan lain-lain. Masing-masing device ini perlu diberi alamat, sama seperti rumah kita yang mempunyai alamat unik untuk tiap-tiap rumah. Bayangkan apa yang terjadi kalau rumah-rumah itu tidak diberi alamat, pasti kita akan kebingungan untuk menuju ke rumah tertentu. Demikian pula dengan mikrokontroler, supaya dapat mengakses suatu device maka mikrokontroler tersebut harus mengetahui alamat device yang akan diakses. Address decoder akan memberikan alamat untuk tiap device. c. Data CPU mikrokontroler AT89S52 mempunyai lebar bus 8 bit. Pena data 8 bit pada AT89S52 D0, …..D7 ini terletak didalam chip karena jumlah pena luar pada mikrokontroler terbatas. Pena untuk bus data di multipleks dengan alamat A0, …..A7 pada port 0, sehingga sering juga disebut AD0, …..AD7. d. Pengendali Selain bus alamat dan bus data mikroprosesor atau mikrokontroler dilengkapi juga dengan bus pengendali control bus, yang fungsinya untuk menyerempakkan operasi mikroprosesor atau mikrokontroler dengan operasi rangkaian luar. Contoh pena pengendali ini antara lain ALE, PSEN, WR, RD, interupsi dan lain-lain. e. Memori “Kecanggihan” sebuah komputer atau kontroller ditentukan oleh program yang kita buat. Memori digunakan sebagai tempat untuk menimpan program, data dan stack. Program adalah kumpulan instruksi untuk mengerjakan suatu pekerjaan. Data adalah variabel-variabel yang dapat di ubah saat program berjalan. Stack digunakan untuk menyimpan alamat kembali return address dan juga dapat dipakai untuk menyimpan data. Umumnya didalam mikrokontroller tersedia 2 jenis memori yaitu ROM dan RAM Read Only Memory bersifat hanya dibaca dan isinya tidak hilang bila catu daya dimatikan, digunakan untuk menyimpan program. Sedangkan RAM Random-Access Memory bersifat bisa dibaca dan ditulis tetapi isinya bisa hilang bila catu daya dimatikan, digunakan untuk menyimpan data stack. Dengan berkembangannya teknologi batas antara ROM dan RAM kini agak kabur. ROM sekarang bisa ditulisi untuk tipe flash atau EEROM. RAM sekarang juga tidak kehilangaan isinya saat catu daya dimatikan yaitu pada tipe NVRAM Non-Volatile RAM. Memori di dalam Mikrokontroller berukuran terbatas. Untuk itu dan harus tahu persis berapa kebutuhan memori yang digunakan. Kekurangan memori menyebabkan program anda tidak berjalan dengan benar, terlalu banyak memori yang tidak dipakai juga menyebabkan cost yang sia-sia. f. RAM RAM Random Access Memory pada mikrokomputer bisa mencapai ukuran sekian megabyte dan bisa di-upgrade ke ukuran yang lebih besar dan berlokasi di luar chip CPU-nya, sedangkan RAM pada mikrokontroler ada di dalam chip mikrokontroler yang bersangkutan dan ukurannya sangat minim, misalnya 128 byte, 256 byte dan seterusnya dan ukuran yang relatif kecil inipun dirasa cukup untuk aplikasi-aplikasi mikrokontroler. Pada 256 byte bagian bawah, perhatikan Gambar 2.5. 32 byte pertama 00h- 1Fh dikelompokkan menjadi 4 bank dari 8 register. Instruksi pada program mengenalnya dengan sebutan R0 sampai R7. Dua bit pada Program Status Word PSW digunakan untuk memilih bank register yang digunakan. Penggunaan instruksi yang mengakses register akan menghemat kode mesin dibandingkan dengan instruksi yang mengakses lokasi secara langsung direct addressing. 16 byte diatas bank register yaitu pada alamat 20h sampai 2Fh merupakan daerah yang dapat dialamati secara bit. Alamat bit-bit pada daerah ini adalah 00h sampai 7Fh. Pendek kata, untuk RAM internal 256 byte bagian bawah, 32 byte pertama dapar digunakan sebagai bank register, 16 byte berikutnya dapat dialamati perbit, dan sisanya 80 byte dapat digunakan seperti biasa. SFR User Area Bank 1 Bank 0 Bank 3 Bank 2 8 Bytes 78 7F 70 77 68 6F 60 67 58 5F 50 57 48 4F 40 47 38 3F 30 37 28 2F 20 27 18 1F 10 17 08 0F 00 07 SCRATCHPAD AREA BIT ADDRESSABLE SEMENT REGISTER BANKS SP FF 80 7F 00 Gambar 2.5 256 byte RAM Internal Bagian Bawah Lower RAM internal 256 byte atas merupakan tempat register fungsi khusus SFR. Gambar 2.6. menunjukan SFR untuk Mikrokontroller seri 89S52. SFR ini meliputi alamat port, bit status dan kontrol, timer, register, stack pointer, akumularor dan lainnya. Bagian-bagian yang kosong digunakan untuk pengembangan divais Mikrokontroller selanjutnya. SFR User Area 8 Bytes F8 FF F0 F7 E8 EF E0 E7 D8 DF D0 D7 C8 CF C0 C7 B8 BF B0 B7 A8 AF A0 A7 98 9F 90 97 88 8F 80 87 FF 80 7F 00 SP IMOD SBUF DPL IL0 B AOC PSW P E P3 P0 ICON P2 SCON P1 DPH IL1 IHU IH1 PCON BIT ADDRESSABLE Gambar 2.6 256 byte RAM Bagian Atas g. ROM ROM Read Only Memory diisi saat proses produksinya. Informasi yang dituliskan harus dipesan oleh pelanggan sebelum chip diberikan. Dalam sistem mikrokontroler, informasi ini dapat dibaca oleh CPU tetapi tidak dapat dirubah. ROM adalah memori yang paling sederhana, kecil, dan murah. Sifat memori program ini non volatile, artinya tetap akan tersimpan walaupun tidak diberi catu daya. h. Input Output Diagram latch dan IO buffer tiap bit dari Port 0 - Port 3. Port 1,2, dan 3 mempunyai pull-up internal. Sedangkan Port 0, konfigurasi outputnya adalah open drain. Setiap bit IO ini berdiri sendiri, jadi dapat berfungsi sebagai input atau output tanpa tergantung satu sama lain. Port 0 dan 2 tidak dapat dipakai sebagai IO bila digunakan sebagai jalur alamat data. Bila port-port tersebut ingin difungsikan sebagai input, maka bit latch harus berisi 1, yang akan mematikan output driver FET. Sehingga pin-pin Port 1,2, dan 3 akan ditarik ke high oleh pull-up internal, tetapi bila diinginkan dapat juga ditarik ke low dengan sumber external. Port 0 agak berbeda, karena tidak menggunakan pull-up internal. FET pull-up pada output driver P0 lihat gambar 6A hanya digunakan pada saat Port mengeluarkan 1 selama akses memori external, selain keadaan ini FET pull-up tidak aktif. Akibatnya bila bit-bit P0 berfungsi sebagai output maka bersifat open drain. Penulisan logika 1 ke bit latch menyebabkan kedua FET tidak bekerja, sehingga pin dalam keadaan mengambang floating. Pada kondisi ini pin dapat berfungsi sebagai high impedance input. Port 1,2, dan 3 sering disebut dengan quasibidirectional karena mempunyai pull-up internal. Saat berfungsi sebagai input maka mereka akan ditarik ke high dan akan bersifat sebagai sumber arus bila ditarik ke low secara eksternal. Port 0 sering disebut sebagai true-bidirectional, karena bila dikonfigurasikan sebagai input maka pinpinnya akan mengambang. Pada saat reset semua port latch akan berlogika ’1’ diambil dari pustaka no.1,2. Berikut adalah rangkaian bit latch dan IO buffer, dapat dilihat pada Gambar 2.7. Gambar 2.7 Bit Latch Dan IO Buffer

2.3 Motor DC