kisi kisi mikrokontroller

of 45 /45
Cara Kerja Mikrokontroler Prinsip kerja mikrokontroler adalah sebagai berikut: Berdasarkan nilai yang berada pada register Program Counter, mikrokontroler mengambil data pada ROM dengan alamat sebagaimana yang tertera pada register Program Counter. Selanjutnya isi dari register Program Counter ditambah dengan satu (Increment) secara otomatis. Data yang diambil pada ROM merupakan urutan instruksi program yang telah dibuat dan diisikan sebelumnya oleh pengguna. Instruksi yang diambil tersebut diolah dan dijalankan oleh mikrokontroler. Proses pengerjaan bergantung pada jenis instruksi, bisa membaca, mengubah nilai-nilai pada register, RAM, isi Port,atau melakukan pembacaan dan dilanjutkan dengan pengubahan data. Program Counter telah berubah nilainya (baik karena penambahan otomatis pada langkah 1, atau karena pengubahan-pengubahan pada langkah 2). Selanjutnya yang dilakukan oleh mikrokontroler adalah mengulang kembali siklus ini pada langkah 1. Demikian seterusnya hingga power dimatikan. PERKEMBANGAN MIKROPROSESOR DAN MIKROKONTROLER Komputer hadir 50 tahun terakhir, namun efeknya sangat besar dalam mengubah kehidupan manusia. Kemampuan chip mikroprosesor : 1. Melakukan komputasi sangat cepat. 2. Dapat bekerja sendiri dengan program. 3. Memory untuk menyimpan banyak data. Perkembangan zaman memperluas kebutuhan akan komputer munculnya chip mikrokontroler. Mikroprosesor dan mikrokontroler adalah suatu IC yang hanya bisa bekerja bila diisi suatu program yang sesuai untuk menjalankannya. Mikroprosesor salah satu piranti yang di gunakan sebagai CPU dalam sistem komputer (single chip CPU ). Mikrokontroler merupakan IC yang di dalamnya terdapat CPU, RAM, ROM, I/O Port, dll (single chip computer). Komputer satu chip yang memiliki kemampuan untuk diprogram dan digunakan untuk tugas yang berorientasi kontrol. Alasan adanya mikrokontroler: – kebutuhan pasar (market need) – perkembangan teknologi baru dimana mikrokontroler mempunyai kemampuan komputasi yang sangat cepat, bentuk yang semakin mungil, dan harga yang semakin murah.

Embed Size (px)

Transcript of kisi kisi mikrokontroller

Cara Kerja MikrokontrolerPrinsip kerja mikrokontroler adalah sebagai berikut:Berdasarkan nilai yang berada pada register Program Counter, mikrokontroler mengambil data pada ROM dengan alamat sebagaimana yang tertera pada register Program Counter. Selanjutnya isi dari register Program Counter ditambah dengan satu (Increment) secara otomatis.Data yang diambil pada ROM merupakan urutan instruksi program yang telah dibuat dan diisikansebelumnya oleh pengguna.Instruksi yang diambil tersebut diolah dan dijalankan oleh mikrokontroler. Proses pengerjaan bergantung pada jenis instruksi, bisa membaca, mengubah nilai-nilai pada register, RAM, isi Port,atau melakukan pembacaan dan dilanjutkan dengan pengubahan data.Program Counter telah berubah nilainya (baik karena penambahan otomatis pada langkah 1, atau karena pengubahan-pengubahan pada langkah 2). Selanjutnya yang dilakukan oleh mikrokontroler adalah mengulang kembali siklus ini pada langkah 1. Demikian seterusnya hingga power dimatikan.

PERKEMBANGAN MIKROPROSESOR DAN MIKROKONTROLERKomputer hadir 50 tahun terakhir, namun efeknya sangat besar dalam mengubah kehidupan manusia.

Kemampuan chip mikroprosesor :

1. Melakukan komputasi sangat cepat.2. Dapat bekerja sendiri dengan program.3. Memory untuk menyimpan banyak data.

Perkembangan zaman memperluas kebutuhan akan komputer munculnya chip mikrokontroler. Mikroprosesor dan mikrokontroler adalah suatu IC yang hanya bisa bekerja bila diisi suatu program yang sesuai untuk menjalankannya. Mikroprosesor salah satu piranti yang di gunakan sebagai CPU dalam sistem komputer (single chip CPU ). Mikrokontroler merupakan IC yang di dalamnya terdapat CPU, RAM, ROM, I/O Port, dll (single chip computer).

Komputer satu chip yang memiliki kemampuan untuk diprogram dan digunakan untuk tugas yang berorientasi kontrol. Alasan adanya mikrokontroler: kebutuhan pasar (market need) perkembangan teknologi baru dimana mikrokontroler mempunyai kemampuan komputasi yang sangat cepat, bentuk yang semakin mungil, dan harga yang semakin murah.

Kemampuan tinggi, bentuk kecil, konsumsi daya rendah, dan harga murah mikrokontroler banyak digunakan. Digunakan untuk mainan anak-anak, perangkat elektronik rumah tangga, perangkat pendukung otomotif, peralatan industri, peralatan telekomunikasi, peralatan medis dan kedokteran, dan pengendali robot serta persenjataan militer.

Keunggulan alat-alat yang berbasis mikrokontroler (microcontroller-based solutions) : Kehandalan tinggi (high reliability) dan kemudahan integrasi dengan komponen lain (high degree of integration) Ukuran yang semakin dapat diperkecil (reduced in size) Penggunaan komponen dipersedikit (reduced component count) yang juga akan menyebabkan biaya produksi dapat semakin ditekan.

Penggunaan komponen dipersedikit (reduced component count) yang juga akan menyebabkan biaya produksi dapat semakin ditekan (lower manufacturing cost) Waktu pembuatan lebih singkat (shorter development time) sehingga lebih cepat pula dijual ke pasar sesuai kebutuhan (shorter time to market) Konsumsi daya yang rendah (lower power consumption).

Perkembangan Mikroprosesor : Intel 4004 4 bit Memori 4096 lokasi 45 instruksi Teknologi P-channel MOSFET 50 KIP (kilo instructions per seconds) Versi 8 bit: 404 - Intel 8008 (1971) 8-bit Memori 16kbyte 48 instruksi 50 KIP - Intel 8080 (1973) Motorola MC6800 8 bit Memori 64 kbyte 500 KIP Kompatibel dengan TTL - Intel 8085 (1977) 8-bit 769.230 instructions per seconds 246 instruksi Internal clock generator Sistem kontrol internal Frekuensi clock lebih tinggi Zilog Z-80 - Intel 8086, 8088 (1978) 16-bit 2,5 MIP Memori 1Mbyte 200 kilo instruksi (CISC) - Intel 80286 16-bit Memori 16 Mbyte 4 MIP Lebih cepat 8 kali - Intel 80386 Data 32-bit, alamat 32-bit Memori 4 Gbyte Varian: 80386SX, 80386SLC, 80386EX Koprosesor 80387 - Intel 80486 Gabungan prosesor dan koprosesor 50 MIP - ntel Pentium (1993) Frekuensi 60 MHz, 66 MHz, 120 MHz, 133 MHz, 233 MHz 150 MIP RISC (Reduced Instruction Set Computer) - Pentium Pro (1995) 150 MHz, 166 MHz Pentium II Pentium III Pentium 4 dst.

Perkembangan Mikrokontroler : 1970-an, Motorola 6800, dikembangkan hingga sekarang menjadi 68HC05, 68HC08, 68HC11, 68HC12, dan 68HC16. Zilog Z80-nya, dikembangkan hingga kini menjadi Z180, dan diadopsi oleh mikroprosesor Rabbit. Intel 8051, arsitektur 8051 kemudian diadopsi oleh vendor lain seperti Phillips, Siemens, Atmel, dan vendor-vendor. Basic Stamps, PIC dari Microchip, MSP 430 dari Texas Instrument, dll. Perkembangan chip pintar lain DSP prosesor Application Spesific Integrated Circuit (ASIC).

Perkembangan Mikrokontrollerintel 4004

intel 8048

Intel 4004 adalah mikropprosesor pertama yang dibuat tahun 1971, sedangkan Intel 8048 adalah single chip microprosesor yang pertama, dilempar kepasaran ditahun 1976 dan ini yang merupakan cikal bakal dari mikrokontroler. Keluarga dari 8048 adalah 8021, 8022, 8048, 8049 yang hingga saat ini masih digunakan pada alat-alat kedokteran modern dan digunakan pada keyboard IBM PC untuk scanning tombol-tombolnya.. Versi 8748 memiliki EPROM 1 Kbyte untuk menyimpan programnya. Keluarga mikrokontroler pertama ini dikenal dengan nama MCS-48.Generasi kedua mikrokontroler 8 bit adalah keluarga mikrokontroler 8051 di tahun 1980, dengan nama MCS-51 dan diklaim sebagai standart mikrokontroler untuk industri yang menguasai lebih dari 60% pasar mikrokontroler dan menjadi inti bagi terciptanya mikrokontroler produk lainnya. Generasi ketiga adalah mikrokontroler 16 bit, seri MCS-96 yang dapat melakukan operasi 16 bit serta penambahan kemampuan dan kecepatan proses yang ditingkatkan. Kini jutaan chip telah digunakan diseluruh dunia untuk pengendalian proses-proses dan instrumentasi.Seri MCS-51 sederhana, murah dan mudah didapat dipasaran, cukup untuk aplikasi sederhana bagi para pecinta elektronik maupun aplikasi di industri. Chip ini kemudian dikembangkan menjadi beberapa seri dengan berbagai kemampuan (fitur), seperti pada 8031, 80C31, 8051AH dan 8751.Beberapa perusahaan membuat varian nya yaitu suatu chip yang kompatibel dengan bahasa dan fitur 8051 ditambah dengan kemampuan dan kemudahan khusus. Perusahaan tersebut antara lain; AMD, Atmel, Dallas, Matra, OKI, Philips, Siemens, ISS. Produk Philips memberikan tambahan adanya ADC dan generator PWM, sedangkan Dallas mempercepat detak (clock) dan siklus mesin, Atmel membuat mikrokontroler yang menggunakan memory Flash didalamnya dan harganya relatif murah, Atmel juga membuat mikrokontroler kecil, 20 pin yaitu AT89C2051.

at89s205.Saat ini ada banyak mikrokontroler didunia, tetapi di Indonesia yang banyak digunakan untuk ekperimental (diantaranya digunakan untuk lomba robot) adalah produk Atmel Seri MCS51 seperti AT89S51, AT89S2051, seri AVR seperti ATMega8, ATMega16, AT902313, AT8535 dan seterusnya. Pilih mana?, ini harus melihat kebutuhan. Misalnya digunakan untuk pengajaran - sekolah, maka lebih baik diberikan seri MCS51 saja, sebab dapat berlaku seperti mikroprosesor atau mikrokontroler serta masih mengandung filosopi dasar mikroprosesor, sedangkan seri AVR dengan banyak kemudahannya bisa dipilih untuk aplikasi - cepat. Untuk harga yang paling murah dan mudah didapat, saat ini adalah AT89S2051, sekitar 15rb/buah, jumlah pin 20, mudah memprogramnya, sangat cocok untuk pemula.

PERBEDAAN ANTARA MIKROPROSESOR DAN MIKROKONTROLER

Sobat blogger yang berbahagia, pembahasan untuk sesi sistem mikroprosesor kita akhiri dulu dan sekarang kita beralih ke sesi sistem mikrokontroler. Pada pertemuan yang pertama untuk sesi sistem mikrokontroler kali ini kita akan bahas tentang perbedaan antara mikroprosesor dan mikrokontroler. Sebenarnya mikroprosesor dan mikrokontroler dikembangkan dari satu ide dasar yang sama dan dibuat oleh orang yang sama. Lalu apa perbedaan diantara keduanya ?, Nah untuk mengetahuinya ikuti dan simak uraian berikut ini.

1.Mikroprosesor Mikroprosesor dalam perkembangan komputer digital disebut sebagai Central Processing Unit (CPU) yang bekerja sebagai pusat pengolah danpengendalian pada sistem komputer mikro. Sebuah mikroprosesor tersusun dari tiga bagian penting yaitu : Arithmetic Logic Unit (ALU), Register Unit (RU), dan Control Unit (CU) seperti terlihat pada Gambar 1 di bawah ini.

Gambar 1. Blok Diagram Mikroprosesor

Untuk membangun fungsi sebagai komputer mikro, sebuah mikroprosesor harus dilengkapi dengan memori, biasanya memori program yang hanya bisa dibaca (Read Only Memory=ROM) dan memori yang bisa dibaca dan ditulisi (Read Write Memory=RWM), decoder memori, osilator, dan sejumlah peralatan input output seperti port data seri dan paralel. Pokok dari penggunaan mikroprosesor adalah untuk mengambil data, membentuk kalkulasi, perhitungan atau manipulasi data, dan menyimpan hasil perhitungan pada peralatan penyimpan atau menampilkan hasilnya pada sebuah monitor atau cetak keras.

2.Mikrokontroler Mikrokontroler adalah komputer mikro dalam satu chip tunggal. Mikrokontroler memadukan CPU, ROM, RWM, I/O paralel, I/O seri, counter-timer, dan rangkaian clock dalam satu chip tunggal seperti terlihat pada Gambar 2 di bawah ini.

Gambar 2. Blok Diagram Mikrokontroler

Sama halnya dengan mikroprosesor, mikrokontroler adalah piranti yang dirancang untuk kebutuhan umum. Penggunaan pokok dari mikrokontroler adalah untuk mengontrol kerja mesin atau sistem menggunakan program yang disimpan pada sebuah ROM. Untuk melihat perbedaan konsep diantara mikroprosesor dan mikrokontroler di bawah ini ditunjukan tabel perbandingan konfigurasi, arsitektur, dan set instruksi diantara mikroprosesor Z-80 CPU dengan mikrokontroler 8051.Tabel 1. Perbandingan konfigurasi, arsitektur, dan set instruksi

Sebagai catatan dari tabel ini, jika dilakukan perbandingan bukanlah berarti menunjukkan bahwa yang satu lebih baik dari yang lainnya. Kedua rancangan tersebut memiliki penekanan dan tujuan yang berbeda.

3.Survey Mikrokontroler Seperti halnya sebuah mikroprosesor, mikrokontroler juga berkembang dalam rancangan dan aplikasinya. Mikrokontroler berdasarkan jumlah bit data yang dapat diolah dapat dibedakan dalam :-Mikrokontroler 4 Bit-Mikrokontroler 8 Bit-Mikrokontroler 16 Bit-Mikrokontroler 32 Bit

a. Mikrokontroler 4 Bit Mikrokontroler 4 bit merupakan mikrokontroler dengan jumlah bit data terkecil. Mikrokontroler jenis ini diproduksi untuk meminimalkan jumlah pin dan ukuran kemasan.

Tabel 2. Mikrokontroler 4 bit

b. Mikrokontroler 8 Bit Mikrokontroler 8 bit merupakan mikrkontroler yang paling banyak digunakan untuk dalam pekerjaan-pekerjaan perhitungan skala kecil. Dalam komunikasi data, Data ASCII serial juga disimpan dalam ukuran 8 bit. Kebanyakan IC memori dan fungsi logika dibangun menggunakan data 8 bit sehingga interface bus data menjadi sangat mudah dibangun. Penggunaan mikrokontroler 8 bit jauh lebih banyak dibandingkan dengan mikrokontroler 4 bit. Aplikasinya juga sangat pariatif mulai dari aplikasi kendali sederhana sampai kendali mesin berkecepatan tinggi.

Tabel 3. Mikrokontroler 8 bit

c. Mikrokontroler 16 Bit Keterbatasan-keterbatasan yang ada pada mikrokontroler 8 bit berkaitan dengan semakin kompleknya pengolahan data dan pengendalian serta kecepatan tanggap (respon), disempurnakanlah dengan menggunakan mikrokontroler 16 bit. Salah satu solusinya adalah dengan menaikkan kecepatan clock, dan ukuran data. Mikrokontroler 16 bit digunakan untuk mengatur tangan robot, dan aplikasi Digital Signal Processing (DSP).

Tabel 4. Mikrokontroler 16 Bit

Pulse Width Modulation (PWM) atau modulasi lebar pulsa sangat bermanfaat untuk mengontrol kecepatan motor listrik sebagai penggerak peralatan mesin industri.

d. Mikrokontroler 32 Bit Mikrokontroler 32 bit ditargetkan untuk aplikasi Robot, Instrumen cerdas, Avionics, Image Processing, Telekomunikasi, Automobil, dan sebagainya. Program-program aplikasinya bekerja dengan sistem operasi.

adapun perbedaan mikrokontroler dengan mikroprosesor adalah:perbedaan yang cukup penting antara Mikroprosesor dan Mikrokontroler. Jika Mikroprosesor merupakan CPU(Central Processing Unit)tanpa memori dan I/O pendukung dari sebuah komputer, maka Mikrokontroler umumnya terdiri dari CPU, Memori , I/O tertentu dan unit pendukung, misalnyaAnalog to Digital Converter(ADC)yang sudah terintegrasi di dalam mikrokontroler tersebut.kelebihan mikrokontroler:Mikrokontroler ialah telah tersedianya RAM dan peralatan I/O Pendukung sehingga ukuran board mikrokontroler menjadi sangat ringkas. Terdapat berbagai jenis mikrokontroler dari berbagai vendor yang digunakan secara luas? di dunia. Diantaranya yang terkenal ialah dari Intel, Maxim, Motorolla , dan ATMEL. Beberapa seri mikrokontroler yang digunakan secara luas ialah 8031, 68HC11, 6502 , 2051 dan 89S51. Mikrokontroler yang mendukung jaringan komputer seperti DS80C400 tampaknya akan menjadi primadona pada tahun-tahun mendatangDASAR-DASAR MIKROKONTROLLER AT89S51(BAG-1)Mikrokontroler tipe AT89S51 merupakan mikrokontroler keluarga MCS-51 dengan konfigurasi yang sama persis dengan AT89C51 yang cukup terkenal, hanya saja AT89S51 mempunyai fitur ISP (In-System Programmable Flash Memory). Fitur ini memungkinkan mikrokontroler dapat diprogram langsung dalam suatu sistem elektronik tanpa melalui Programmer Board atau Downloader Board. Mikrokontroler dapat diprogram langsung melalui kabel ISP yang dihubungkan dengan paralel port pada suatu Personal Computer.Adapun fitur yang dimiliki Mikrokontroler AT89S51 adalah sebagai berikut :1. Sebuah CPU (Central Processing Unit) 8 bit yang termasuk keluarga MCS51.2. Osilator internal dan rangkaian pewaktu, RAM internal 128 byte (on chip).3. Empat buah Programmable port I/O,masing-masing terdiri atas 8 jalur I/O4. Dua buah Timer Counter 16 bit.5. Lima buah jalur interupsi (2 interupsi external dan 3 interupsi internal )6. Sebuah port serial dengan kontrol serial full duplex UART.7. Kemampuan melaksanakan operasi perkalian, pembagian dan operasi Boolean (bit)8. Kecepatan pelaksanaan instruksi per siklus 1 microdetik pada frekuensi clock 12 MHz9. 4 Kbytes Flash ROM yang dapat diisi dan dihapus sampai 1000 kali10. In-System Programmable Flash MemoryDengan keistimewaan diatas, pembuatan alat menggunakan AT89S51 menjadi lebih sederhana dan tidak memerlukan IC pendukung yang banyak. Sehingga mikrokontroler AT89S51 ini mempunyai keistimewaan dari segi perangkat keras. Adapun blok diagram dari mikrokontroler 89S51 diperlihatkan pada Gambar 1.1.

Gambar 1.1. Blok diagram dari mikrokontroler 89S51Konfigurasi Pin Mikrokontroler AT89S51Susunan pin mikrokontroler AT89S51 diperlihatkan pada Gambar 1.2.

Gambar 1.2. Konfigurasi Pin AT89S51Mikrokontroler AT89S51 memiliki pin berjumlah 40 dan umumnya dikemas dalam DIP (Dual Inline Package). Masing-masing pin pada mikrokontroler AT89S51 mempunyai kegunaan sebagai berikut:Port 0Port 0 merupakan port dua fungsi yang berada pada pin 32-39 dari AT89S51. Dalam rancangan sistem sederhana port ini sebagai port I/O serbaguna. Untuk rancangan yang lebih komplek dengan melibatkan memori eksternal jalur ini dimultiplek untuk bus data dan bus alamat.Port 1Port 1 disediakan sebagai port I/O dan berada pada pin 1-8. Beberapa pin pada port ini memiliki fungsi khusus yaitu P1.5 (MOSI), P1.6 (MISO), P1.7 (SCK) yang digunakan untuk jalur download program.Port 2Port 2 ( pin 21-28 ) merupakan port dua fungsi yaitu sebagai I/O serbaguna, atau sebagai bus alamat byte tinggi untuk rancangan yang melibatkan memori eksternal.Port 3Port 3 adalah port dua fungsi yang berada pada pin 10-17, port ini memiliki multi fungsi, seperti yang terdapat pada tabel 1.1 berikut ini :BIT NAME BIT ADDRESS ALTERNATE FUNCTIONP3.0 RXD B0h Receive data for serial portP3.1 TXD B1h Transmit data for serial portP3.2 INT0 B2h External interrupt 0P3.3 INT1 B3h External interrupt 1P3.4 T0 B4h Timer/counter 0 external inputP3.5 T1 B5h Timer/counter 1 external inputP3.6 WR B6h External data memory write strobeP3.7 RD B7h External data memory read strobePSEN (Program Store Enable)adalah sebuah sinyal keluaran yang terdapat pada pin 29. Fungsinya adalah sebagai sinyal kontrol untuk memungkinkan mikrokontroler membaca program (code) dari memori eksternal. Biasanya pin ini dihubungkan ke pin EPROM. Jika eksekusi program dari ROM internal atau dari flash memori (ATMEL AT89SXX), maka berada pada kondisi tidak aktif (high).ALE (Address Latch Enable)Sinyal output ALE yang berada pada pin 30 fungsinya sama dengan ALE pada microprocessor INTEL 8085, 8088 atau 8086. Sinyal ALE dipergunakan untuk demultiplek bus alamat dan bus data. Sinyal ALE membangkitkan pulsa sebesar 1/6 frekuensi oscillator dan dapat dipakai sebagai clock yang dapat dipergunakan secara umum.EA(External Access)Masukan sinyal terdapat pada pin 31 yang dapat diberikan logika rendah (ground) atau logika tinggi (+5V). Jika diberikan logika tinggi maka mikrokontroler akan mengakses program dari ROM internal (EPROM/flash memori). Jika diberi logika rendah maka mikrokontroler akan mengakses program dari memori eksternal.RST (Reset)Input reset pada pin 9 adalah reset master untuk AT89S51. Pulsa transisi dari tinggi selama 2 siklus ke rendah akan mereset mikrokontroler.OscillatorOscillator yang disediakan pada chip dikemudikan dengan XTAL yang dihubungkan pada pin 18 dan pin 19. Diperlukan kapasitor penstabil sebesar 30 pF. Besar nilai XTAL sekitar 3 MHz sampai 33 MHz. XTAL1 adalah input ke pembalikan penguat osilator (inverting oscillator amplifier) dan input ke clock internal pengoperasian rangkaian. Sedangkan XTAL2 adalah output dari pembalikan penguat osilator.

Gambar 1.3. Konfigurasi Xtal OsilatorPowerAT89S51 dioperasikan pada tegangan supply +5v, pin Vcc berada pada nomor 40 dan Vss (ground) pada pin 20.Organisasi Memoria. Pemisahan Memori Program dan DataSemua divais 8051 mempunyai ruang alamat yang terpisah untuk memori program dan memori data, seperti yang ditunjukkan pada gambar1.1. dan gambar 1.2. Pemisahan secara logika dari memori program dan data, mengijinkan memori data untuk diakses dengan pengalamatan 8 bit, yang dengan cepat dapat disimpan dan dimanipulasi dengan CPU 8 bit. Selain itu, pengalamatan memori data 16 bit dapat juga dibangkitkan melalui register DPTR. Memori program ( ROM, EPROM dan FLASH ) hanya dapat dibaca, tidak ditulis. Memori program dapat mencapai sampai 64K byte. Pada 89S51, 4K byte memori program terdapat didalam chip. Untuk membaca memori program eksternal mikrokontroller mengirim sinyal PSEN ( program store enable ) . Memori data ( RAM ) menempati ruang alamat yang terpisah dari memori program. Pada keluarga 8051, 128 byte terendah dari memori data, berada didalam chip. RAM eksternal (maksimal 64K byte). Dalam pengaksesan RAM Eksternal, mikrokontroller mingirimkan sinyal RD ( baca ) dan WR ( tulis ).

Gambar 1.4. Struktur memori mikrokontroler keluarga MCS51Gambar 1.5. Arsitektur Memori Mikrokontroller 8051b. Memori ProgramGambar 1.5. menunjukkan suatu peta bagian bawah dari memori program. Setelah reset CPU mulai melakukan eksekusi dari lokasi 0000H. Sebagaimana yang ditunjukkan pada gambar 1.6, setiap interupsi ditempatkan pada suatu lokasi tertentu pada memori program. Interupsi menyebabkan CPU untuk melompat ke lokasi dimana harus dilakukan suatu layanan tertentu. Interupsi Eksternal 0, sebagi contoh, menempatai lokasi 0003H. Jika Interupsi Eksternal 0 akan digunakan, maka layanan rutin harus dimulai pada lokasi 0003H. Jika interupsi ini tidak digunakan, lokasi layanan ini dapat digunakan untuk berbagai keperluan sebagai Memori Program.

Gambar 1.6. Peta Interupsi mikrokontroller 8051c. Memori DataPada gambar 1.7. menunjukkan ruang memori data internal dan eksternal pada keluarga 8051. CPU membangkitkan sinyal RD dan WR yang diperlukan selama akses RAM eksternal. Memori data internal terpetakan seperti pada gambar 1.7. Ruang memori dibagi menjadi tiga blok, yang diacukan sebagai 128 byte lower, 128 byte upper dan ruang SFR. Alamat memori data internal selalu mempunyai lebar data satu byte. Pengalamatan langsung diatas 7Fh akan mengakses satu alamat memori, dan pengalamatan tak langsung diatas 7Fh akan mengakses satu alamat yang berbeda. Demikianlah pada gambar 1.7 menunjukkan 128 byte bagian atas dan ruang SFR menempati blok alamat yang sama, yaitu 80h sampai dengan FFh, yang sebenarnya mereka terpisah secara fisik128 byte RAM bagian bawah dikelompokkan lagi menjadi beberapa blok, seperti yang ditunjukkan pada gambar 8. 32 byte RAM paling bawah, dikelompokkan menjadi 4 bank yang masing-masing terdiri dari 8 register. Instruksi program untuk memanggil register-register ini dinamai sebagai R0 sampai dengan R7. Dua bit pada Program Status Word (PSW) dapat memilih register bank mana yang akan digunakan. Penggunaan register R0 sampai dengan R7 ini akan membuat pemrograman lebih efisien dan singkat, bila dibandingkan pengalamatan secara langsung.

Gambar 1.7. Memori data internal

Gambar 1.8. RAM internal 128 byte paling bawahSemua pada lokasi RAM 128 byte paling bawah dapat diakses baik dengan menggunakan pengalamatan langsung dan tak langsung. 128 byte paling atas hanya dapat diakses dengan cara tak langsung, gambar 1.9.

Gambar 1.9. RAM internal 128 byte paling atasd. Special Function RegisterSebuah peta memori yang disebut ruang special function register ( SFR ) ditunjukkan pada gambar berikut. Perhatikan bahwa tidak semua alamat-alamat tersebut ditempati, dan alamat-alamat yang tak ditempati tidak diperkenankan untuk diimplementasikan. Akses baca untuk alamat ini akan menghasilkan data random, dan akses tulis akan menghasilkan efek yang tak jelas.e. AccumulatorACC adalah register akumulator. Mnemonik untuk instruksi spesifik akumulator ini secara sederhana dapat disingkat sebagai A.f. RegisterRegister B digunakan pada saat opersi perkalian dan pembagian. Selain untuk keperluan tersebut diatas, register ini dapat digunakan untuk register bebas.g. Program Status Word.Register PSW terdiri dari informasi status dari program .h. Stack PointerRegister Pointer stack mempunyai lebar data 8 bit. Register ini akan bertambah sebelum data disimpan selama eksekusi push dan call. Sementara stack dapat berada disembarang tempat RAM. Pointer stack diawali di alamat 07h setelah reset. Hal ini menyebabkan stack untuk memulai pada lokasi 08h.i. Data PointerPointer Data (DPTR) terdiri dari byte atas (DPH) dan byte bawah (DPL). Fungsi ini ditujukan untuk menyimpan data 16 bit. Dapat dimanipulasi sebagai register 16 bit atau dua 8 bit register yang berdiri sendiri.

Gambar 1.10. Pemetaan Data Pointer.About these ads

Mikrokontroler adalahmikrokomputer dalam keping tunggal (single chip Microcomputer) yang dapat berdiri sendiri serta memiliki CPU dan dilengkapi dengan memori input output.Mikrokontroler AT89C51adalah mikrokontroler ATMEL yang kompatibel penuh dengan mikrokontroler keluarga MCS-51, membutuhkan daya yang rendah, memiliki performa yang tinggi dan merupakan mikrokomputer 8 bit yang dilengkapi 4 Kbyte EPROM (Erasable and Programable Read Only Memori) dan 128 byte RAM internal. Program memori dapat diprogram ulang dalam sistem atau dengan menggunakan ProgramNonvolately Memory Konvensional.

ArsitekturAT89C51Arsitektur dasar dari mikrokontroler AT89C51 seperti diagram blok berikut ini:

Arsitektur Mikrokontroler AT89C51

Sebagai single chip yaitu suatu system mikroprosesor yang terintegrasi, mikrokontroler AT89C51 mempunyai konfigurasi sebagai berikut:

CPU 8 bit termasuk keluarga MCS-51. 4 Kbyte alamat untuk memory program internal (EEPROM). 128 byte memory data dalam ( Internal Data memory/ RAM). 8 bit program status word (PSW). 8 bit stack pointer ( SP). 32 pin I/O tersusun yaitu port 0-port 3 @ 8 bit. 2 buah timer/ counter 16 bit. Data serial full dupleks. Control register. 5 sumber interrupt. Rangkaian osilator dan clock.

Fungsi Pin Mikrokontroller AT89C51Susunan pin-pin mikrokontroller AT89C51 diperlihatkan pada Gambar di bawah ini dan penjelasan dari masing-masing pin adalah sebagai berikut:

PIN Mikrokontroler AT89C51

Port 0Port 0 merupakan port dua fungsi yang berada pada pin 32-39 dari IC AT 89C51. Merupakan port I/O 8 bit dua arah yang serba guna port ini dapat digunakan sebagai multlipleks bus data dan bus alamat rendah untuk pengaksesan memori eksternal.

Port 1Port 1 merupakan port I/O yang berada pada pin 1-8. Port ini dapat bekerja dengan baik untuk operasi bit maupun byte, tergantung dari pengaturan pada software

Port 2Port 2 merupakan port I/O serba guna yang berada pada pin 21- 28, port ini dapat juga digunakan sebagai bus alamat byte tinggi untuk rancangan yang melibatkan pengaksesan memori eksternal.

Port 3Port 3 merupakan port I/O yang memiliki dua fungsi yang berada pada pin 10-17, port ini mempunyai multi fungsi, seperi yang terdapat pada tabel berikut:BITNAMABITADDRESFUNGSI ALTERNATIF

P3.0P3.1P3.2P3.3 P3.4 P3.5 P3.6 P3.7RXDTXDINT0INT 1T0T1WRRDB0HB1HB2HB3HB4HB5HB6HB7HPenerima data pada port serialPemancar data pada port serialEksternal interupsi 0Eksternal interuposi 1Input Timer/ counter eksternalInput Timer / counterSinyal pembacaan memori data eksternalSinyal penulisan memori data eksternal

PSEN ( Programable Store Enable)PSEN adalah sebuah sinyal keluaran yang terdapat pada pin 29. Fungsinya adalah sebagai sinyal kontrol untuk memungkinkan mikrokontroller membaca program (code) dari memori eksternal atau dapat dikatakan sebagai sinyal kontrol yang menghubungkan memori program eksternal dengan bus selama pengaksesan.

ALE ( Address Latch Enable)Sinyal output ALE yang berada pada pin3.0 fungsinya sama dengan ALE pada mikroprosesor INTEL 8085 atau 8088. Sinyal ALE dipergunakan untuk demultlipleks bus alamat dan bus data. Dan untuk menahan alamat memori eksternal selama pelaksanaan instruksi.

EA ( External Acces)Maksudnya sinyal EA terdapat pada pin 3.1 yang dapat diberikan logika rendah (ground) atau logika tinggi(+ 5 V ). Jika EA diberikan logika tinggi maka mikrokontroller akan mengakses program dari ROM internal ( EEPROM/ flash memori).Jika EA diberi logika rendah maka mikrokontroller akan mengakses program dari memori eksternal.

RST ( Reset)Input reset pada pin 9 adalah reset master untuk AT89C51. Perubahan tegangan dari rendah ke tinggi akan merest AT 89C51.

OsilatorOsilator yang disediakan pada chip dikemudikan dengan kristal yang dihubungkan pada pin 18 (X2) dan pin 19 (X1) sebesar 12 Mhz.

Osilator Eksternal AT89C51

Power (Vcc)AT89C51 dioperasikan dengan tegangan supply +5v, pin Vcc berada pada pin 40 dan Vss(ground) pada pin 20.

ARSITEKTUR MIKROKONTROLER AT89C51/52/55

A. PendahuluanMikrokontroler merupakan lompatan teknologi mikroprosesor dan mikro-komputer. Mikrokontroler diciptakan tidak semata-mata hanya memenuhi kebutuh-an kalangan industri, namun juga para konsumen untuk pembuatan alat-alat bantu dan mainan yang lebih canggih. Aplikasi lain dari mikrokontroler adalah dalam bidang pengukuran jarak-jauh / telemetri. Sistem telemetri ini jelas memerlukan sistem akuisi data sekaligus sistem pengiriman data secara serial (melalui transmi-ter), yang semua itu bisa diperoleh dari mikrokontroler yang digunakan. Sedikit berbeda dengan sistem komputer (yang dapat menangani berbagai macam program aplikasi), mikrokontroler hanya bisa digunakan untuk aplikasi tertentu saja (hanya satu program saja yang dapat disimpan). Perbedaan lainnya terletak pada perbandingan memori ROM & RAM-nya. Pada sistem komputer perbandingan memori ROM & RAM-nya besar, artinya program-program yang sedang digunakan disimpan dalam RAM yang kapasitasnya relatif besar, sedang rutin-rutin interface hardware disimpan dalam ROM yang kapasitasnya kecil. Untuk mikrokontroler perbandingan memori ROM & RAM-nya yang besar, artinya program kontrol disimpan dalam ROM (bisa Masked ROM atau Flash PEROM) yang ukurannya relatif besar, sedangkan RAM digunakan sebagai tempat penyimpan sementara, ter-masuk register-register yang dipakai pada mikrokontroler yang bersangkutan.

B. Pengenalan Mikrokontroler AT89C51Mikrokontroler, sebagai suatu terobosan teknologi mikroprosesor dan mikrokomputer, hampir memenuhi kebutuhan pasar dan teknologi baru. Teknologi baru, di sini pengertiannya adalah teknologi semikonduktor dengan kandungan transistor yang lebih banyak namun membutuhkan ruang yang kecil serta dapat diproduksi secara massal sehingga harganya menjadi lebih murah. Mikrokontroler hadir untuk memenuhi selera industri dan para konsumen akan kebutuhan dan keinginan alat-alat bantu dan mainan yang lebih baik atau canggih. Ada perbedaan yang cukup penting antara mikroprosesor dengan mikrokontroler. Jika mikroprosesor merupakan CPU (Central Processing Unit) tanpa memori dan I/O pendukung dari sebuah komputer, maka mikrokontroler umumnya terdiri atas CPU, memori, I/O tertentu, dan unit pendukung lainnya, misalnya Analog to Digital Converter (ADC) yang sudah terintegrasi di dalam mikrokontroler tersebut. Kelebihan mikrokontroler adalah telah tersedianya RAM dan peralatan I/O pendukung. Terdapat berbagai jenis mikrokontroler dari berbagai vendor yang digunakan secara luas di dunia ini. Di antaranya yang terkenal adalah dari Intel, Maxim, Motorola, dan ATMEL.

2.1.1Komponen Dasar MikrokontrolerMikrokontroler umumnya terdiri dari dari CPU, memori, I/O tertentu dan unit pendukung lainnya seperti ADC (Analog Digital Converter) yang sudah terintegrasi didalamnya.1.Cental Processing Unit (CPU)CPU terdiri atas dua bagian, yaitu unit pengendali (control unit) serta unit aritmatika dan logika (ALU). Fungsi utama unit pengendali adalah mengambil, mengkodekan, dan melaksanakan urutan instruksi sebuah program yang tersimpan dalam memori. Unit pengendali menghasilkan dan mengatur sinyal pengendali yang diperlukan untuk menyerempakan operasi, aliran, dan instruksi program. Unit aritmatika dan logika berfungsi untuk melakukan proses perhitungan yang diperlukan selama program dijalankan serta mempertimbangkan suatu kondisi dan mengambil keputusan yang diperlukan untuk instruksi-instruksi berikutnya.2.Bus AlamatBus alamat berfungsi sebagai sejumlah lintasan saluran pengalamatan antara alat dengan sebuah komputer. Pengalamatan ini harus ditentukan terlebih dahulu untuk menghindari terjadinya kesalahan pengiriman sebuah instruksi dan terjadinya ketidaksesuaian antara dua buah alat yang bekerja secara bersamaan.3.Bus DataBus data merupakan sejumlah lintasan saluran keluar-masuknya data dalam suatu mikrokontroler. Pada umumnya saluran data yang masuk sama dengan saluran data yang keluar.4.Bus KontrolBus kontrol atau bus pengendali ini berfungsi untuk menyerempakan operasi mikrokontroler dengan operasi rangkaian luar.5.MemoriDi dalam sebuah mikrokontroler terdapat suatu memori yang berfungsi untuk menyimpan data atau program. Ada beberapa jenis memori, di antaranya adalah RAM dan ROM. Ada beberapa tingkatan memori, di antaranya adalah register internal, memori utama, dan memori massal. Register internal adalah memori di dalam ALU. Waktu akses register ini sangat cepat, umumnya kurang dari 100 ns. Memori utama adalah memori yang ada pada suatu sistem. Waktu aksesnya lebih lambat dibanding register internal, yaitu antara 200 sampai 1000 ns. Memori massal dipakai untuk penyimpanan berkapasitas tinggi, biasanya berbentuk disket, pita magnetik, atau kaset.6.Random Access Memory (RAM)RAM merupakan memori yang dapat dibaca dan ditulis. RAM biasanya digunakan untuk menyimpan data sementara atau sering disebut dengan memori data saat program bekerja. Data yang ada pada RAM akan hilang bila catu daya dari RAM dimatikan sehingga RAM hanya dapat digunakan untuk menyimpan data sementara. Teknologi RAM dapat dibagi menjadi dua, yaitu statik dan dinamik. RAM dinamik tersusun oleh sel-sel yang menyimpan data sebagai muatan listrik pada kapasitor. Ada-tidaknya muatan yang ada pada kapasitor dijadikan oleh RAM dinamik sebagai bilangan biner 1 atau 0. Oleh karena kapasitor memiliki kecendrungan alami untuk mengosongkan muatan, RAM dinamik memerlukan pengisian muatan secara periodik untuk memelihara penyimpanan data. Pada RAM statik, nilai biner disimpan menggunakan konfigurasi gate logika flip-flop. RAM statik akan menyimpan data selama aliran daya diberikan padanya.7.Read Only Memory (ROM)ROM merupakan memori yang hanya dapat dibaca. Data yang disimpan di ROM tidak akan hilang meskipun tegangan catu daya dimatikan. Berdasar sifat itu maka ROM sering dipakai untuk menyimpan program. Ada beberapa jenis ROM, diantaranya ROM, PROM, EPROM, dan EEPROM. ROM merupakan memori yang sudah diprogram oleh pabrik. PROM dapat diprogram oleh pemakai tapi hanya dapat ditulis sekali saja. UV-EPROM merupakan PROM yang dapat diprogram atau ditulis beberapa kali dan dapat dihapus dengan sinar ultraviolet. Flash PEROM adalah PROM yang dapat ditulis ulang beberapa kali dan dapat dihapus secara elektrik atau dengan tegangan listrik. UV-EPROM harganya lebih mahal dari Flash PEROM, karena itu Flash PEROM lebih populer dan diminati programmer mikrokontroler.2.1.2Mikrokontroler AT89C51Mikrokontroler AT89C51 adalah mikrokomputer CMOS 8 bit dengan 4KB Flash Programmable dan Erase Read Only Memory (PEROM) yang termasuk dalam keluarga Atmel. Mikrokontroler jenis ini merupakan Chip yang menggunakan teknologi memori non-volatile, mikrokontroler AT89C51 ini kompatibel dengan mikrokontroler standar industri MCS-51 (seperti mikrokontroler 8031 yang terkenal dan banyak digunakan beberapa waktu lalu).AT89C51 mempunyai memori yang terdiri atas : RAM internal sebesar 128 byte dengan alamat 00H-7Fh, dan dapat diakses menggunakan RAM address register. RAM internal ini terdiri atas Register Banks dengan 8 buah register (R0-R7). Memori lain, yaitu 21 buah Special Function Register dimulai dari alamat 80H-FFH. RAM ini beda lokasi dengan Flash PEROM dengan alamat 000H-7FFH.Tabel 1. Alamat RAM InternalSpecial Function Register

RAM Internal

Untuk sekedar perbandingan kapasitas memori, Tabel 2 berikut memperlihatkan kapasitas memori dari mikrokontroler seri AT89XXX.Tabel 2. Kapasitas Memori Mikrokontroler seri AT89XXX.TypeRAMFlash MemoryEEPROM

AT89C51/S518 x 128 byte4 KbyteTidak

AT89C52/S528 x 256 byte4 KbyteTidak

AT89C558 x 256 byte4 KbyteTidak

AT89S538 x 256 byte4 KbyteTidak

AT89S82528 x 256 byte4 Kbyte4 Kbyte

2.1.3Arsitektur Mikrokontroler AT89C51Sebuah mikrokontroler dapat bekerja bila di dalam mikrokontroler tersebut terdapat sebuah program yang berisi instruksi-instruksi yang akan digunakan untuk menjalankan sistem mikrokontroler tersebut. Pada prinsipnya program pada mikrokontroler dijalankan secara bertahap, jadi pada program itu sendiri terdapat beberapa set instruksi dan tiap instruksi itu dijalankan secara bertahap atau berurutan.Beberapa fasilitas yang dimiliki oleh mikrokontroler AT89C51 adalah sebagai berikut:a. Sebuah CPU 8 bit.b. Osilator internal dan rangkaian pewaktu.c. RAM internal 128 byte.d. Flash memori 4 Kbyte.e. Lima buah jalur interupsi (dua buah interupsi eksternal dan tiga buah interupsi internal).f. Empat buah programable port I/O yang masing-masing terdiri dari delapan buah jalur I/O.g. Sebuah port serial dengan kontrol serial full duplex UART.h. Kemampuan untuk melaksanakan operasi aritmatika dan logika.i. Kecepatan dalam melaksanakan instruksi per siklus 1 mikrodetik pada frekuensi 12 MHz.Berdasarkan susunan kaki yang terdapat pada Gambar 2 mikrokontroler AT89C51 di atas dapat dijelaskan sebagai berikut:a. VCCVcc digunakan sebagai catu daya (+) yang dibutuhkan mikrokontroler AT89C51.b. GND GND digunakan sebagai ground .

Gambar 1. Mikrokontroler seri AT89C51c. RST (Reset)Berfungsi sebagai masukan reset. Kondisi high selama 2 siklus mesin selama osilator bekerja akan me-reset mikrokontroler yang bersangkutan.d. ALE/PROG Keluaran ALE atau Address Latch Enable akan menghasilkan pulsa-pulsa untuk mengunci byte rendah (low byte) alamat selama mengakses memori eksternal. Kaki ini juga berfungsi sebagai masukan pulsa program (the program pulse input) atau PROG selama pemrograman flash. Pada operasi normal, ALE akan berpulsa dengan laju 1/6 dari frekuensi kristal dan dapat digunakan sebagai pewaktuan (timing) atau pendetakan (clocking) rangkaian eksternal. Jika dikehendaki, operasi ALE bisa dimatikan dengan cara mengatur bit 0 dari SFR lokasi 8Eh. Jika isinya 1(hight), ALE hanya akan aktif selama dijumpai instruksi MOVX atau MOVC. Selain itu, kaki ini akan secara lemah di-pulled high. Mematikan bit ALE tidak akan ada efeknya jika mikrokontroler mengeksekusi program secara eksternal.

e. Port 0Port 0 merupakan port paralel 8 bit dua arah. Posisi Least Significant Bit (LSB) terletak pada kaki 39 dan Most Significant Bit (MSB) terletak pada kaki 32.

Gambar 2. Bit Port 0Port 0 juga merupakan port keluaran/masukkan (I/O) bertipe open drain bidirectional, dan sebagai port keluaran, masing-masing kaki dapat menyerap arus (sink) delapan masukkan TTL (sekitar 3,8 mA). Pada saat 1 dituliskan ke kaki-kaki Port 0 ini, maka kaki-kaki Port 0 dapat digu-nakan sebagai masukan berimpedansi tinggi. Port 0 juga dapat dikonfi-gurasi sebagai bus alamat/data bagian rendah (low byte) selama proses pengaksesan memori data dan program eksternal. Jika digunakan dalam mode ini Port 0 memiliki pull-up internal. Port 0 juga menerima kode-kode yang dikirimkan kepadanya selama proses pemrograman dan mengeluarkan kode-kode selama proses verifikasi program yang telah ter- simpan dalam flash. Dalam hal ini dibutuhkan pull-up eksternal selama proses verifikasi program.f. Port 1Port 1 merupakan port paralel 8 bit dua arah. Posisi LSB terletak pada kaki 1 dan MSB terletak pada kaki 8.

Gambar 3. Bit Port 1Port 1 merupakan port I/O dua arah yang dilengkapi dengan pull-up internal. Penyangga keluaran Port 1 mampu memberikan / menyerap arus empat masukan TTL (sekitar 1,6mA). Jika 1 dituliskan ke kaki-kaki Port 1, maka masing-masing kaki akan di-pulled high dengan pull-up internal sehingga dapat digunakan sebagai masukan. Apabila kaki-kaki Port 1 dihubungkan ke ground (di-pulled low), maka masing-masing kaki akan memberikan arus (source) karena di-pulled high secara internal. Port 1 juga menerima alamat bagian rendah (low byte) selama pemrograman dan verifikasi flash.g. Port 2Port 2 merupakan port paralel 8 bit dua arah. Port ini mengirim byte ala- mat-alamat bila dilakukan pengaksesan memori eksternal. LSB terletak pada kaki 21 dan MSB terletak pada kaki 28.

Gambar 4. Bit Port 2Penyangga keluaran Port 2 mampu memberikan/menyerap arus empat masukan TTL (sekitar 1,6 mA). Jika 1 dituliskan ke kaki-kaki Port 2, maka masing-masing kaki akan di-pulled high dengan pullup internal sehingga dapat digunakan sebagai masukan. Apabila kaki-kaki Port 2 dihubungkan ke ground (di-pulled low), maka masing-masing kaki akan memberikan arus (source) karena di-pulled high secara internal. Port 2 akan memberikan byte alamat bagian tinggi (high byte) selama pengambilan instruksi dari memori program eksternal dan selama pengaksesan memori data eksternal yang menggunakan perintah dengan alamat 16 bit (misalnya: MOVX @ DPTR). Dalam aplikasi ini, jika ingin mengirimkan 1, maka digunakan pull-up internal yang sudah disediakan. Selama pengaksesan memori data eksternal yang menggunakan perintah dengan alamat 8 bit (misalnya: MOVX @Ri), Port 2 akan mengirimkan isi dari SFR P2. Port 2 juga menerima alamat bagian tinggi selama pemrograman dan verifikasi flash.h. Port 3Port 3 merupakan port paralel 8 bit dua arah. LSB terletak pada kaki 10 dan MSB terletak pada kaki 17. Port ini mempunyai beberapa fungsi khusus yaitu:Tabel 3. Fungsi khusus kaki-kaki pada port 3KAKI PORT 3FUNGSI KHUSUS

P3.0RXD (port input serial)

P3.1TXD (port output serial)

P3.2INT0 (interrupt eksternal 0)

P3.3INT1 (interrupt eksternal 1)

P3.4T0 (input eksternal timer 0)

P3.5T1 (input eksternal timer 1)

P3.6WR (perintah write pada memori eksternal)

P3.7RD (perintah read pada memori eksternal)

Port 3 merupakan port I/O dua arah dengan dilengkapi pull-up internal. Penyangga keluaran Port 3 mampu memberikan / menyerap arus empat masukan TTL (sekitar 1,6 mA).

Gambar 5. Bit Port 3Jika 1 dituliskan ke kaki-kaki Port 3, maka masing-masing kaki akan di-pulled high dengan pull-up internal sehingga dapat digunakan sebagai masukan. Apabila kaki-kaki Port 3 dihubungkan ke ground (di-pullup low), maka masing-masing kaki akan memberikan arus (source) karena di-pulled high secara internal.i. PSEN (Program Store Enable) Merupakan sinyal baca untuk memori program eksternal. Saat mikrokontroler keluarga 51 menjalankan program dari memori eksternal, PSEN akan diaktifkan dua kali per siklus mesin, kecuali dua aktivasi PSEN dilompati (diabaikan) saat mengakses memori data eksternal.

Gambar 6. Diagram blok AT89C51j. EA/Vpp (External Access Enable)EA harus selalu dihubungkan ke ground, jika mikrokontroler akan mengeksekusi program dari memori eksternal lokasi 0000h hingga FFFFh. Selain dari itu, EA harus dihubungkan ke Vcc agar mikrokontroler mengakses program secara internal.k. XTAL 1XTAL1 berfungsi sebagai masukan dari rangkaian osilator.l. XTAL 2 XTAL 2 berfungsi sebagai keluaran dari rangkaian osilator.

Mikrokontroler tipe AT89S51 merupakan mikrokontroler keluarga MCS-51 dengan konfigurasi yang sama persis dengan AT89C51 yang cukup terkenal, hanya saja AT89S51 mempunyai fitur ISP (In-System Programmable Flash Memory). Fitur ini memungkinkan mikrokontroler dapat diprogram langsung dalam suatu sistem elektronik tanpa melalui Programmer Board atau Downloader Board. Mikrokontroler dapat diprogram langsung melalui kabel ISP yang dihubungkan dengan paralel port pada suatu Personal Computer.Adapun fitur yang dimiliki Mikrokontroler AT89S51 adalah sebagai berikut :1. Sebuah CPU (Central Processing Unit) 8 bit yang termasuk keluarga MCS51.2. Osilator internal dan rangkaian pewaktu, RAM internal 128 byte (on chip).3. Empat buah Programmable port I/O,masing-masing terdiri atas 8 jalur I/O4. Dua buah Timer Counter 16 bit.5. Lima buah jalur interupsi (2 interupsi external dan 3 interupsi internal )6. Sebuah port serial dengan kontrol serial full duplex UART.7. Kemampuan melaksanakan operasi perkalian, pembagian dan operasi Boolean (bit)8. Kecepatan pelaksanaan instruksi per siklus 1 microdetik pada frekuensi clock 12 MHz9. 4 Kbytes Flash ROM yang dapat diisi dan dihapus sampai 1000 kali10. In-System Programmable Flash MemoryDengan keistimewaan diatas, pembuatan alat menggunakan AT89S51 menjadi lebih sederhana dan tidak memerlukan IC pendukung yang banyak. Sehingga mikrokontroler AT89S51 ini mempunyai keistimewaan dari segi perangkat keras. Adapun blok diagram dari mikrokontroler 89S51 diperlihatkan pada Gambar 1.1.

Gambar 1.1. Blok diagram dari mikrokontroler 89S51Konfigurasi Pin Mikrokontroler AT89S51Susunan pin mikrokontroler AT89S51 diperlihatkan pada Gambar 1.2.

Gambar 1.2. Konfigurasi Pin AT89S51Mikrokontroler AT89S51 memiliki pin berjumlah 40 dan umumnya dikemas dalam DIP (Dual Inline Package). Masing-masing pin pada mikrokontroler AT89S51 mempunyai kegunaan sebagai berikut:Port 0Port 0 merupakan port dua fungsi yang berada pada pin 32-39 dari AT89S51. Dalam rancangan sistem sederhana port ini sebagai port I/O serbaguna. Untuk rancangan yang lebih komplek dengan melibatkan memori eksternal jalur ini dimultiplek untuk bus data dan bus alamat.Port 1Port 1 disediakan sebagai port I/O dan berada pada pin 1-8. Beberapa pin pada port ini memiliki fungsi khusus yaitu P1.5 (MOSI), P1.6 (MISO), P1.7 (SCK) yang digunakan untuk jalur download program.Port 2Port 2 ( pin 21-28 ) merupakan port dua fungsi yaitu sebagai I/O serbaguna, atau sebagai bus alamat byte tinggi untuk rancangan yang melibatkan memori eksternal.Port 3Port 3 adalah port dua fungsi yang berada pada pin 10-17, port ini memiliki multi fungsi, seperti yang terdapat pada tabel 1.1 berikut ini :BIT NAME BIT ADDRESS ALTERNATE FUNCTIONP3.0 RXD B0h Receive data for serial portP3.1 TXD B1h Transmit data for serial portP3.2 INT0 B2h External interrupt 0P3.3 INT1 B3h External interrupt 1P3.4 T0 B4h Timer/counter 0 external inputP3.5 T1 B5h Timer/counter 1 external inputP3.6 WR B6h External data memory write strobeP3.7 RD B7h External data memory read strobePSEN (Program Store Enable)adalah sebuah sinyal keluaran yang terdapat pada pin 29. Fungsinya adalah sebagai sinyal kontrol untuk memungkinkan mikrokontroler membaca program (code) dari memori eksternal. Biasanya pin ini dihubungkan ke pin EPROM. Jika eksekusi program dari ROM internal atau dari flash memori (ATMEL AT89SXX), maka berada pada kondisi tidak aktif (high).ALE (Address Latch Enable)Sinyal output ALE yang berada pada pin 30 fungsinya sama dengan ALE pada microprocessor INTEL 8085, 8088 atau 8086. Sinyal ALE dipergunakan untuk demultiplek bus alamat dan bus data. Sinyal ALE membangkitkan pulsa sebesar 1/6 frekuensi oscillator dan dapat dipakai sebagai clock yang dapat dipergunakan secara umum.EA(External Access)Masukan sinyal terdapat pada pin 31 yang dapat diberikan logika rendah (ground) atau logika tinggi (+5V). Jika diberikan logika tinggi maka mikrokontroler akan mengakses program dari ROM internal (EPROM/flash memori). Jika diberi logika rendah maka mikrokontroler akan mengakses program dari memori eksternal.RST (Reset)Input reset pada pin 9 adalah reset master untuk AT89S51. Pulsa transisi dari tinggi selama 2 siklus ke rendah akan mereset mikrokontroler.OscillatorOscillator yang disediakan pada chip dikemudikan dengan XTAL yang dihubungkan pada pin 18 dan pin 19. Diperlukan kapasitor penstabil sebesar 30 pF. Besar nilai XTAL sekitar 3 MHz sampai 33 MHz. XTAL1 adalah input ke pembalikan penguat osilator (inverting oscillator amplifier) dan input ke clock internal pengoperasian rangkaian. Sedangkan XTAL2 adalah output dari pembalikan penguat osilator.

Gambar 1.3. Konfigurasi Xtal OsilatorPowerAT89S51 dioperasikan pada tegangan supply +5v, pin Vcc berada pada nomor 40 dan Vss (ground) pada pin 20.Organisasi Memoria. Pemisahan Memori Program dan DataSemua divais 8051 mempunyai ruang alamat yang terpisah untuk memori program dan memori data, seperti yang ditunjukkan pada gambar1.1. dan gambar 1.2. Pemisahan secara logika dari memori program dan data, mengijinkan memori data untuk diakses dengan pengalamatan 8 bit, yang dengan cepat dapat disimpan dan dimanipulasi dengan CPU 8 bit. Selain itu, pengalamatan memori data 16 bit dapat juga dibangkitkan melalui register DPTR. Memori program ( ROM, EPROM dan FLASH ) hanya dapat dibaca, tidak ditulis. Memori program dapat mencapai sampai 64K byte. Pada 89S51, 4K byte memori program terdapat didalam chip. Untuk membaca memori program eksternal mikrokontroller mengirim sinyal PSEN ( program store enable ) . Memori data ( RAM ) menempati ruang alamat yang terpisah dari memori program. Pada keluarga 8051, 128 byte terendah dari memori data, berada didalam chip. RAM eksternal (maksimal 64K byte). Dalam pengaksesan RAM Eksternal, mikrokontroller mingirimkan sinyal RD ( baca ) dan WR ( tulis ).

Gambar 1.4. Struktur memori mikrokontroler keluarga MCS51Gambar 1.5. Arsitektur Memori Mikrokontroller 8051b. Memori ProgramGambar 1.5. menunjukkan suatu peta bagian bawah dari memori program. Setelah reset CPU mulai melakukan eksekusi dari lokasi 0000H. Sebagaimana yang ditunjukkan pada gambar 1.6, setiap interupsi ditempatkan pada suatu lokasi tertentu pada memori program. Interupsi menyebabkan CPU untuk melompat ke lokasi dimana harus dilakukan suatu layanan tertentu. Interupsi Eksternal 0, sebagi contoh, menempatai lokasi 0003H. Jika Interupsi Eksternal 0 akan digunakan, maka layanan rutin harus dimulai pada lokasi 0003H. Jika interupsi ini tidak digunakan, lokasi layanan ini dapat digunakan untuk berbagai keperluan sebagai Memori Program.

Gambar 1.6. Peta Interupsi mikrokontroller 8051c. Memori DataPada gambar 1.7. menunjukkan ruang memori data internal dan eksternal pada keluarga 8051. CPU membangkitkan sinyal RD dan WR yang diperlukan selama akses RAM eksternal. Memori data internal terpetakan seperti pada gambar 1.7. Ruang memori dibagi menjadi tiga blok, yang diacukan sebagai 128 byte lower, 128 byte upper dan ruang SFR. Alamat memori data internal selalu mempunyai lebar data satu byte. Pengalamatan langsung diatas 7Fh akan mengakses satu alamat memori, dan pengalamatan tak langsung diatas 7Fh akan mengakses satu alamat yang berbeda. Demikianlah pada gambar 1.7 menunjukkan 128 byte bagian atas dan ruang SFR menempati blok alamat yang sama, yaitu 80h sampai dengan FFh, yang sebenarnya mereka terpisah secara fisik128 byte RAM bagian bawah dikelompokkan lagi menjadi beberapa blok, seperti yang ditunjukkan pada gambar 8. 32 byte RAM paling bawah, dikelompokkan menjadi 4 bank yang masing-masing terdiri dari 8 register. Instruksi program untuk memanggil register-register ini dinamai sebagai R0 sampai dengan R7. Dua bit pada Program Status Word (PSW) dapat memilih register bank mana yang akan digunakan. Penggunaan register R0 sampai dengan R7 ini akan membuat pemrograman lebih efisien dan singkat, bila dibandingkan pengalamatan secara langsung.

Gambar 1.7. Memori data internal

Gambar 1.8. RAM internal 128 byte paling bawahSemua pada lokasi RAM 128 byte paling bawah dapat diakses baik dengan menggunakan pengalamatan langsung dan tak langsung. 128 byte paling atas hanya dapat diakses dengan cara tak langsung, gambar 1.9.

Gambar 1.9. RAM internal 128 byte paling atasd. Special Function RegisterSebuah peta memori yang disebut ruang special function register ( SFR ) ditunjukkan pada gambar berikut. Perhatikan bahwa tidak semua alamat-alamat tersebut ditempati, dan alamat-alamat yang tak ditempati tidak diperkenankan untuk diimplementasikan. Akses baca untuk alamat ini akan menghasilkan data random, dan akses tulis akan menghasilkan efek yang tak jelas.e. AccumulatorACC adalah register akumulator. Mnemonik untuk instruksi spesifik akumulator ini secara sederhana dapat disingkat sebagai A.f. RegisterRegister B digunakan pada saat opersi perkalian dan pembagian. Selain untuk keperluan tersebut diatas, register ini dapat digunakan untuk register bebas.g. Program Status Word.Register PSW terdiri dari informasi status dari program .h. Stack PointerRegister Pointer stack mempunyai lebar data 8 bit. Register ini akan bertambah sebelum data disimpan selama eksekusi push dan call. Sementara stack dapat berada disembarang tempat RAM. Pointer stack diawali di alamat 07h setelah reset. Hal ini menyebabkan stack untuk memulai pada lokasi 08h.i. Data PointerPointer Data (DPTR) terdiri dari byte atas (DPH) dan byte bawah (DPL). Fungsi ini ditujukan untuk menyimpan data 16 bit. Dapat dimanipulasi sebagai register 16 bit atau dua 8 bit register yang berdiri sendiri.

Gambar 1.10. Pemetaan Data Pointer.