Mikrokontroler AT89C51 merupakan salah satu keluarga dari MCS-51 keluaran Atmel. Jenis mikrokontroler ini pada prinsipnya dapat digunakan untuk mengolah data per bit ataupun data 8 bit secara bersamaan.
Sebuah mikrokontroler dapat bekerja bila didalam chip tersebut terdapat sebuah program yang berisikan instruksi-instruksi yang akan digunakan untuk menjalankan sistem tersebut. Instruksi-instruksi dari sebuah program pada tiap jenis mikrokontroler mempunyai beberapa perbedaan, misalnya instruksi untuk mikrokontroler Atmel berbeda dengan instruksi yang digunakan untuk mikrokontroler Motorola.
Pada prinsipnya program pada mikrokontroler dijalankan secara bertahap. Maksudnya, pada program itu sendiri terdapat beberapa set instruksi yang mana tiap instruksi itu dijalankan secara bertahap atau berurutan.
Beberapa fasilitas yang dimiliki mikrokontroler AT89C51 adalah sebagai berikut :
1. Sebuah Central Processing Unit 8 bit.
2. Osilator internal dan rangkaian pewaktu.
3. RAM internal 128 byte.
4. Flash memori 4 Kbyte.
5. Lima buah jalur interupsi (dua buah interupsi eksternal dan tiga buah interupsi internal).
6. Empat buah programmable port I/O yang masing-masing terdiri dari delapan jalur I/O.
7. Dua buah timer/counter 16 bit.
8. Memiliki port serial untuk komunikasi serial.
9. Kemampuan untuk melakukan operasi aritmatika dan operasi logika.
10. Kecepatan dalam melaksanakan instruksi per siklus 1 mikrodetik pada frekuensi 12 MHz.
Penjelasan untuk masing-masing pin mikrokontroler adalah sebagai berikut :
1. Vcc yang digunakan sebagai suplai tegangan.
2. GND digunakan sebagai saluran bumi (ground).
3. Port Input/Output, merupakan saluran untuk menghubungkan keluaran sistem (mengambil data atau mengirimkan data). Terdiri dari 4 port dua arah (Port 0 – Port3) yang memiliki sebuah pengancing (latch), sebuah penggerak keluaran (output driver) serta sebuah penyangga masukan (input buffer) pada masing-masing kaki-kaki port. Selain berfungsi sebagai I/O, beberapa port memiliki fungsi lain seperti port 0 sebagai penyalur data dan alamat byte rendah saat mikrokontroler mengakses program atau data di memori eksternal. Port 2 dapat difungsikan sebagai penyalur alamat byte tinggi saat mikrokontroler mengakses program atau data di memori eksternal. Port 3 mempunyai beberapa fungsi khusus seperti ditunjukkan pada tabel 2.1 berikut ini :
Tabel.2.1. Fungsi khusus port 3
Pin-pin pada port 3 | Fungsi Pengganti |
P3.0 | RXD (port input serial) |
P3.1 | TXD (port ouput serial) |
P3.2 | INT0 (interup eksternal 0) |
P3.3 | INT1 (interup eksternal 1) |
P3.4 | T0 (input eksternal timer 0) |
P3.5 | T1 (input eksternal timer 1) |
P3.6 | WR (perintah write pada memori eksternal) |
P3.7 | RD (perintah read pada memori eksternal) |
4. RST, masukan reset. Kondisi logika ‘1’ selama 2 siklus mesin saat osilator bekerja akan mereset mikrokontroler yang bersangkutan.
5. ALE/PROG, menghasilkan pulsa-pulsa untuk menahan sementara alamat byte rendah (low byte) pada proses pengalamatan ke memori eksternal. Kaki ini juga berfungsi sebagai masukan pulsa program (the program pulse input) atau selama pengisian flash PEROM. Pada operasi normal ALE akan berpulsa dengan laju 1/6 dari frekuensi kristal dan dapat digunakan sebagai pewaktuan (timing) atau pendetakan (clocking) rangkaian eksternal.
6. PSEN (Program Store Enable) merupakan sinyal pengontrol yang berfungsi untuk membaca program dari memori eksternal.
7. EA/Vpp, merupakan pin untuk pilihan program (menggunakan program internal atau eksternal). Dihubungkan ke ground jika mikrokontroler akan mengeksekusi program dari memori eksternal lokasi 0000h hingga FFFFh dan dihubungkan ke Vcc agar mikrokontroler mengakses program secara internal..
8. XTAL 1 sebagai masukan dari ragkaian osilator.
9. XTAL 2 sebagai keluaran dari rangkaian osilator.
II.3.2. Register Fungsi Khusus (Special Function Register)
Register Fungsi Khusus adalah register-register pada mikrokontroler AT89C51 yang memiliki fungsi-fungsi khusus. Register-register ini menempati alamat pada RAM internal pada alamat 80h sampai FFh. Register-register tersebut adalah:
- Register A (Acc, Akumulator)
Register ini menempati lokasi E0h digunakan sebagai register untuk penyimpanan data sementara.
- Register B
Register ini menempati lokasi F0h, digunakan selama operasi perkalian dan pembagian. Untuk instruksi lain dapat diperlakukan sebagai register scratch pad.
- Register Penyimpan Status Program (PSW, Program Status Word)
Register PSW (lokasi D0h) terdiri dari beberapa bit status yang menggambarkan keadaan yang sedang berlangsung dalam CPU. Status yang tersimpan dalam PSW meliputi carry bit, the auxiliary carry (untuk operasi BCD), dua bit pemilih bank register, overflow flag, sebuah bit paritas dan dua flag status yang bisa didefinisikan sendiri.
- Register Penunjuk Tumpukan (SP, Stack Pointer)
Register SP (lokasi 81h) merupakan register 8 bit yang digunakan untuk menunjuk (berisi alamat) ke lokasi memori internal, yang disebut sebagai tumpukan (stack). Biasa digunakan pada program yang melibatkan proses interupsi dan proses PUSH, POP.
- Register Penunjuk Data (DPTR, Data Pointer)
Terdiri dari DPTR untuk byte tinggi (DPH-lokasi 83h) dan byte rendah (DPL-lokasi 82h) bersama-sama membentuk register 16 bit yang berfungsi untuk mengakses kode atau data yang berada di memori luar.
- Port 0, Port 1, Port 2, Port 3
P0, P1, P2, dan P3 masing-masing menempati lokasi 80h, 90h, A0h, dan B0h merupakan pengunci-pengunci (latches) yang digunakan untuk menyimpan data yang akan dibaca atau ditulis dari/ke port.
- Register Penampung Data Serial (SBUF, Serial Buffer)
Register SBUF (lokasi 99h) berfungsi menampung sementara penerimaan/pengiriman data serial dari/ke port serial TXD/RXD.
- Register Pewaktu (Timer Register)
Pasangan register (TH0, TL0) di lokasi 8Ch dan 8Ah, (TH1, TL1) di lokasi 8Dh dan 8Bh serta (TH2, TL2) di lokasi CDh dan CCh merupakan register-register pencacah 16 bit untuk masing-masing Timer 0, Timer 1, Timer 2.
- Register Pengendali (Control Register)
Register-register IP, IE, TMOD, TCON, T2MOD, T2CON, SCON, dan PCON berisi bit-bit kontrol dan status untuk sistem interupsi, pencacah/pewaktu dan port serial.
II.3.3. Set Instruksi Pemrograman
Operan dalam pemrograman mikrokontroler adalah data yang tersimpan di dalam memori, register dan I/O. Instruksi yang dikenal secara umum dikelompokkan menjadi beberapa kelompok yaitu instruksi untuk pemindahan data, aritmetika, operasi logika, pengaturan aliran program dan beberapa hal khusus. Kombinasi dari instruksi dan operan itulah yang membentuk instruksi pengatur kerja mikrokontroler.
Data atau operan bisa berada di tempat yang berbeda sehingga dikenal beberapa cara untuk mengakses data atau operan tersebut yang dinamakan sebagai mode pengalamatan antara lain mode pengalamatan segera, mode pengalamatan langsung, mode pengalamatan tidak langsung, mode pengalamatan register, mode pengalamatan kode tidak langsung.
Secara keseluruhan MCS51 mempunyai 255 macam instruksi. Instruksi tersebut dikelompokkan sebagai berikut:
1. Kelompok Penyalinan Data
Instruksi dasar untuk kelompok ini adalah MOV, kependekan dari move yang artinya memindahkan meskipun lebih tepat dikatakan instruksi ini mempunyai arti menyalin data. Instruksi MOV dibedakan sesuai dengan jenis memori MCS51, pada memori data dituliskan MOV dan pada memori program dituliskan MOVC. Selain itu dikenal juga instruksi MOVX yang dipakai untuk mengakses memori eksternal.
2. Kelompok Instruksi Aritmetik
Instruksi dalam kelompok aritmetik selalu melibatkan akumulator. Yang termasuk dalam kelompok instruksi aritmetik antara lain ADD, SUBB, MUL, DIV, DEC, INC.
3. Kelompok Instruksi Logika
Kelompok instruksi ini dipakai untuk melakukan operasi logika, yaitu operasi AND (instruksi ANL), operasi OR (instruksi ORL), operasi XOR (instruksi XRL), operasi clear (CLR), operasi negasi (instruksi CPL), operasi pergeseran (instruksi RR, RRC, RL, RLC), operasi penukaran data (instruksi SWAP).
4. Kelompok Pengatur Aliran Program
Terdiri dari beberapa kelompok instruksi seperti kelompok instruksi JUMP (LJMP, AJMP, SJMP), kelompok instruksi sub rutin (RET, ACALL, LCALL), kelompok instruksi lompatan bersyarat (JZ, JNZ, JC, JNC, JB, JNB, JBC), kelompok instruksi proses dan test (DJNZ, CJNE).
4 komentar:
Some of the content is very worthy of my drawing, I like your information!
After reading the information, I may have different views, but I do think this is good BLOG!
netting
based on the OpenGL article, the research could be a reference link below
http://repository.gunadarma.ac.id/bitstream/123456789/2885/1/66.pdf
thank you
Request mode pengalaman pada AT89C51 dong.
Post a Comment