BAB 2 TINJAUAN PUSTAKA
2.1 PERANGKAT KERAS
2.1.1
Arsitektur Mikrokontroler AT89S51
Arsitektur AT89S51 sudah memiliki beberapa komponen yang pada masa lalu merupakan chip tersendiri, sub komponen tersebut adalah : •
CPU, singkatan dari Central Processing Unit, adalah otak atau unit pemroses pada suatu MCU. Istilah CPU yang salah kaprah dalam dunia PC adalah satu box yang terdiri dari banyak komponen.
•
Internal Oscillator yang memungkinkan pemakai hanya menambahkan sebuah quarz crystal yang biasanya nilainya berkisar antara 6 Mhz hingga 24 Mhz. Meskipun demikian dari datasheet, AT89S51 dapat bekerja dari frekuensi 0 hingga 24 Mhz.
•
Interupt Control, suatu bagian yang mengatur prioritas interupsi dari luar atau dari dalam chip MCU
•
Timer 1 dan Timer 2 adalah bagian yang dapat berfungsi sebagai pencacah pulsa masuk atau menentukan waktu (counter time)
•
RAM adalah memori yang digunakan untuk menyimpan data sementara ( data hilang bila catu daya padam )
Universitas Sumatera Utara
6
•
Flash, adalah jenis memori yang digunakan untuk menyimpan program dan data yang tetap, data pada memori tidak akan hilang bila catu daya padam.
•
Bus Control, digunakan sinyal kendali akses data keluar dari system MCU.
•
I/O Port digunakan untuk menjembatani antara system MCU dengan dunia luarnya dengan cara parallel. I/O bisa sebagai output, misalnya menggerakkan relay, menyalakan lampu, dapat juga sebagai input misalnya mendeteksi saklar, menerima data dari ADC.
•
Serial Port adalah penghubung ke dunia luar MCU dengan cara serial, dengan port serial, MCU dapat berkomunikasi dengan PC yang juga harus melalui serial Port.
AT89S51 sudah memiliki memory flash di dalamnya sehingga sangat praktis digunakan untuk bereksperimen. Beberapa kemampuan fiturnya adalah sebagai berikut : •
Memiliki 4K Flash Perom yang digunakan untuk menyimpan program. Flash dapat ditulis dan dihapus sebanyak 1000 kali (menurut manual)
•
Tegangan operasi dinamis dari 2,7 Volt hingga 6 Volt
•
Operasi clock dari 0 hingga 24 Mhz
•
Program bisa diproteksi, sehinnga tidak bisa dibaca oleh orang lain
•
Memiliki internal RAM 128 byte
•
Memiliki I/O sebanyak 32 line
•
Dua buah timer/counter 16 bit
•
Menangani 6 sumber interupsi
•
Memiliki serial port, untuk komunikasi serial
Universitas Sumatera Utara
7
2.1.2
Kontruksi AT89S51
AT89S51 memiliki pin sebanyak 40, dalam kemasan PDIP maupun PLCC. Keterangan fungsi masing – masing pin adalah sebagai berikut : Pin 40
Vcc, masukan catu daya +5 volt DC
Pin 20
Vss, masukan catu daya 0 volt DC
Pin 32 – 39
P0.0-P0.7, Port input/output delapan bit dua arah yang juga dapat berfungsi sebagai bus data dan bus alamat bila mikrokontroller menggunakan memori eksternal.
Pin 1-8
P1.0-P1.7, port input/output dua arah delapan bit dengan internal pull up
Pin 10-17
P3.0-P3.7, port input/output delapan bit dua arah, selain itu port 3 juga memiliki alternatif fungsi sebagai ;
RXD
(pin 10)
Port komunikasi input serial
TXD
(pin 11)
Port komunikasi output serial
INT0
(pin 12)
Saluran interupsi eksternal 0 (aktif rendah)
INT1
(pin 13)
Saluran interupsi eksternal 1 (aktif rendah)
T0
(pin 14)
Input Timer 0
T1
(pin 15)
Input Timer 1
WR
(pin 16)
Berfungsi sebagai sinyal kendali tulis
RD
(pin 17)
Berfungsi sebagai sinyal kendali baca
Universitas Sumatera Utara
8
Port I/O dari AT89S51 merupakan saluran untuk menghubungkan keluar sistem, misalnya mengambil data atau mengirimkan data, menghidupkan LED atau menerima data dari switch. Port 0 Port 0 berfungsi ganda selain sebagai port masukan/keluaran data byte atau bit secara umum juga dipergunakan untuk fungsi lain yaitu sebagai Alternate Input Function
Port 1 Proses penulisan pada port 1 adalah penulisan akan memberikan data bit melalui internal bus, yang terhubung dengan D pada suatu Delay Flip-flop, disini D Flip flop berfungsi sebagai latch atau gerendel yang menahan data D selama sinyal Clock tidak aktif
Port 2 Port 2 berfungsi ganda yaitu sebagai port I/O biasa, selayaknya port P1, sudah mempunyai resistor ke vcc. Funsi lain adalah sebagai penyalur alamat byte tinggi saat MCU mengakses program atau data di memori luar
Port 3 Port 3 memiliki fungsi ganda, selain sebagai port masukan/keluaran data byte atau bit secara umum, port 3 juga dipergunakan sebagai TxD, Rd dan WR.
Universitas Sumatera Utara
9
Gambar 2.1. IC Mikrokontroler AT89S51
2.2 PERANGKAT LUNAK
2.2.1
Bahasa Assembly MCS-51
Jika ragam pengalamatan adalah pengelompokan berdasarkan orientasi lokasi memori, tipe-tipe instruksi adalah pengelompokan berdasarkan fungsi pada instruksi MCS-51 yaitu : •
Arithmatika
•
Instruksi Logika
•
Transfer Data
•
Manipulasi dan Operasi Boolean
•
Pencabangan
Universitas Sumatera Utara
10
1. Instruksi Aritmatika Instruksi-instruksi menunjukkan ragam pengalamatan yang dapat digunakan dengan masing-masing instruksi. a. Penjumlahan Source (sumber) adalah operand dengan ragam pengalamatan, register indirect, indirect atau immediete. b. Incremental dan Decremental Data didalam memori internal dapat dinaikkan atau diturunkan (Incremental dan Decremental), tanpa melalui akumulator, demikian juga pada DPTR yang digunakan untuk menghasilkan pengalamatan 16 bit di memori eksternal. c. Perkalian Instruksi MUL AB mengalikan akumulator dengan data yang ada pada register B dan meletakkan hasil 16 bit ke dalam register A dan B. Register A berisi lo-byte dan register B berisi hi-byte. Bila hasilnya lebih besar dari 255 (0FFh), maka bit 0V set, sedangkan bit CY selalu akan di clearkan (‘0’). d. Pembagian Instruksi DIV AB membagi isi akumulator dengan data dalam register B dan meletakkan hasil bagi (quotient) 8 bit dalam akumulator dan sisanya (reminder) 8 bit dalam register B. Operasi DIV akan membuat bit-bit CY dan OV menjadi ‘0’. e. Desimal Adjust Instruksi DA A (Decimal Adjust) digunakan untuk operasi arithmatic BCD. Dalam Arithmatic BCD instruksi A DD dan ADDC harus
Universitas Sumatera Utara
11
diikuti oleh sebuah operasi DAA untuk menjadikan hasilnya terdapat pada sistem BCD. 2. Instruksi Logika Instruksi Logika pada MCS-51 adalah melakukan operasi boolean (bit) yang terdiri dari AND, OR, EXOR dan NOT pada bit demi bit dalam suatu bit data di register. a. Operasi AND, OR, dan EXOR Operasi AND, OR dan EXOR (Exclusive OR) adalah operasi bit dengan tabel kebenaran. b. Rotate Instruksi Rotate seperti pada shift register, bit-bit dalam byte register A digeser ke kanan atau ke kiri melalui atau tidak melalui carry. c. SWAP SWAP adalah tukar nibble dari byte akumulator, nibble rendah ditukar dengan nibble tinggi. 3. Data Transfer MOV adalah proses move (pindahkan) data dari sumber ke tujuan yang sebenarnya adalah proses mengcopy, artinya data di sumber tidak berubah. a. Memory Internal MOV adalah copy data dari source ke destination atau sumber ke tujuan, semua memory internal dan SFR dapat berlaku sebagai source dan sebagian besar dapat berlaku sebagai destination.
Universitas Sumatera Utara
12
b. Program Memory MOVC adalah perintah move code bit, mengcopy isi dari program memory (aktivasi dengan PSEN) dilokasi yang ditunjukkan oleh base register yaitu DPTR atau PC. c. Data Memory MOVX adalah perintah move eksternal, digunakan untuk mengcopy isi dari dan ke data memory. d. Proses Stack PUSH (pushing berarti mendorong) dan POP (popping berarti menyembulkan kembali) adalah perintah yang digunakan untuk ‘menyelamatkan’ data karena register yang bersangkutan akan digunakan untuk proses lain, atau untuk mengingat alamat yang ditinggalkannya akibat adanya panggilan sub rutin atau adanya interupsi. e. Pertukaran Data XCH adalah exchange atau pertukaran data antara kumulator dengan byte yang ragam pengalamatannya bisa secara direct, register atau indirect. 4. Pencabangan Program Program Assembler bersifat sekuensial, seperti pada program basic klasik (awal mula basic), dan biasanya diperlukan pencabangan untuk tujuan tertentu, yaitu lompat ke lokasi interupsi dengan alamat tertentu.
Universitas Sumatera Utara
13
2.2.2. Compiler dan Simulator
Ada banyak produk simulator dan kompiler yang informasinya dapat dicari di internet, melalui search engine dengan kata kunci MCS-51, 8051, Compiler atau Simulator, akan muncul banyak situs yang menyediakan simulator atau kompiler. Ada yang garus beli, ada juga yang gratis. Selain ASM 51 dari Metalink, juga terdapat compiler AD 2500, Keil dan Franklin untuk compiler bahasa C. Simulator ada banyak seperti AVSIM (DOS), JSIM, Pds-51, TS Controls. WinAlds dari MicroLogic salah satu produk yang memberikan
fasilitas
multi
compiler,
suatu
komputer
untuk
beberapa
prosesor/microkontroler, disamping itu juga ada fasilitas simulator untuk MCS-51.
Gambar 2.2. 8051 Editor, Assembler, Simulator (IDE)
2.2.3
Pemrograman AT89S51
Pemrograman AT89S51 adalah prosedur mengisi flash memory dengan program yang berupa kode-kode mesin. Sebuah sistem MCU dengan chip AT89S51 sebagai
Universitas Sumatera Utara
14
pengendali utama perlu diambil dari sistem dan diletakkan dalam programmer untuk diisi. Prosedur pengisian flash memory yang juga termuat dalam data sheet akan dijelaskan pada bagian ini. Prosedur pengisian flash, masing-masing pin akan berfungsi sebagai berikut : •
Pin Vcc diberi catu 5 V, XTAL dapat dari 3 hingga 24 MHz, sebaiknya digunakan 12 MHz atau 11.059 MHz.
•
Port P1+port P2.0 hingga P2.3 adalah jalur alamat 12 bit (0000h-0FFFh).
•
Port P0 digunakan sebagai jalur data ( 8 bit ).
•
Pin P2.6,P2.7,P3.6 dan P3.7 digunakan sebagai mode pemrograman.
•
Pin ALE digunakan untuk pulsa pemrograman ( pulsa negatif )
•
Pin EA digunakan untuk level tegangan pemrograman ( 5 V dan 12 V )
•
Pin RST selalu ‘1’.
Mode dari pemrograman AT89S51, dimana masing-masing kombinasi P2.6, P2.7, P3.6 dan P3.7 menentukan masing-masing mode, yaitu: •
Write, berarti menulis kode yang di inputkan ke P0 ke memori lokasi yang di inputkan pada P1 + P2.
•
Read, berarti membaca kode dari P0 di lokasi memori yang di inputkan pada P1 + P2.
•
Lock Bit 1, Lock Bit 2 dan Lock Bit 3 berarti memprogram masing-masing Lock Bit. Fungsi Memprogram lock bit adalah membuat program tidak dapat dibaca.
•
Erase, adalah menghapus isi flash memory secara keseluruhan. Flash hanya dapat diisi kembali setelah dihapus, dan cara penghapusan adalah secara keseluruhan, tidak dapat secara individu per lokasi memory.
Universitas Sumatera Utara
15
•
Read signature, adalah membaca identifikasi dari ic, masing-masing ic memiliki id tergantung jenis, pabrik, dan tegangan pemrograman. Pembacaan signature bisa juga dengan mode read pada alamat 030h.
Gambar 2.3 Isp Flash Programmer
Setelah program selesai ditulis, kemudian di-save dan kemudian di-Assemble (di-compile). Pada saat di-assemble akan tampil pesan peringatan dan kesalahan. Jika masih ada kesalahan atau peringatan, itu berarti ada kesalahan
dalam penulisan
perintah atau ada nama subrutin yang sama, sehingga harus diperbaiki terlebih dahulu sampai tidak ada pesan kesalahan lagi.
Software 8051IDE ini berfungsi untuk merubah program yang kita tuliskan ke dalam bilangan heksadesimal, proses perubahan ini terjadi pada saat peng-compile-an. Bilangan heksadesimal inilah yang akan dikirimkan ke mikrokontroller.
Universitas Sumatera Utara