ATMEL 89s51
IC Mikrokontroller AT89s51
Penggunaan IC AT 89S51 memiliki beberapa keuntungan dan keunggulan, antara lain tingkat kendala yang tinggi, komponen hardwere eksternal yang lebih sedikit, kemudahan dalam pemrograman. Dan hemat dari segi biaya. IC AT 89S51 memiliki program internal yang mudah untuk dihapus dan diprogram kembali secara berulang – ulang. Pada pesawat ini IC AT 89S51 berfungsi sebagai sentral control dari segala aktivitas pesawat. Mulai dari timer untuk mengontrol lamanya elektroda bekerja. Pada pesawat ini IC AT 89S51 ini juga dimanfaatkan sebagai pengubah suhu sensor suhu untuk dikonversikan dalam satuan kadar mineral yang ditampilkan dalam display berupa seven segment.
Gambar 5.5 IC AT 89S51
Beberapa fungsi dari kaki pin pada IC mikrokontroler AT89S51 yaitu :
- Port 0
Port 0 adalah 8 bit open drain bi-directional port I/O. pada saat sebagai port output, tiap pin dapat dilewatkan ke-8 input TTL. Ketika logika satu dituliskan pada port 0, maka pin-pin ini dapat digunakan sebagai input yang berimpendansi tinggi. Port 0 dapat dikonfirmasikan untuk demultiplex sebagai jalur data/addres bus selama membaca ke program eksternal dan memori data. Pada mode ini P0 mempunyai internal Pullup. Port 0 juga enerima kode bytre selama pemograman Flash. Dan mengeluarkan kode byte selama verifikasi program.
- Port 1
Port 1 adalah 8 bit bi-directional port I/O dengan internal Pullup. Port 1 mempunyai output yang dapat dihubungkan dengan 4 TTl input. Ketika logika ‘1’ dituliskan ke port 1, pin ini di pull hight dengan menggunakan internal pullup dan dapat digunakan sebagai input. Port 1 juga menerima addres bawah selama pemrograman Flash dab verifikasi.
- Port 2
Port 2 adalah 8 bit bi directional port I/O dengan Pullup. Port 2 output buffer dapat melewatkan empat TTL input. Ketika logika satu dituliskan ke port 2, maka mereka dipull hight dengan internal Pullup dan dapat digunakan sebagai input.
- Port 3
Port 2 adalah 8 bit bi directional port I/O dengan Pullup. Output buffer dari Port 3 dapat dilewati empat input TTL. Ketika logika satu dituliskan keport 3, maka mereka akan dipull hight dengan internal pullup dan dapat digunakan sebagai input. Port 3 juga mempunyai berbagai macam fungsi/fasilitas. Port 3 juga menerima beberapa sinyal kontrol untuk pemrograman Flash dab verifikasi.
- RST
Input reset. Logika hight pada pin ini akan mereset siklus mesin (IC).
- ALE/PROG.
Pulsa output Addres Latch Enable digunakan untuk lantching byte bawah dari addres selama mengakses ke eksternal memory. Pin ini juga merupakan input pulsa program selama pemrograman Flash. Jika dikehendaki, operasi ALE dapat didisable dengan memberikan setting bit 0 dari SFR pada lokasi 8EH. Dengan Bit Set, ALE disable, tidak akan mempengaruhi jika mikrokontroler pada mode eksekusi eksternal.
- PSEN
Program Store Enable merupakan sinyal yang digunakan untuk membaca program memory eksternal. Ketika 8951 mengeksekusi kode dari program memory eksternal, PSEN diaktifkan dua kali setiap siklus mesin.
- EA/VPP
Eksternal Acces Enable, EZ harus diposisikan ke GND untuk mengaktifkan divais untuk mengumpankan kode dari program memory yang dimulai pada lokasi 0000h sampai FFFFh. EA harus diposisikan ke VCC untuk eksekusi program internal. Pin ini juga menerima tegangan pemrograman 12 volt (Vpp) selama pemrograman Flash.
- XTAL1
Input untuk oscillator inverting amplifier dan input untuk inte rnal clock untuk pengoperaian rangkaian.
- XTAL2
Output dari inverting oscillator amplifier.
Pemrograman Bahasa Assembly
Bahasa assembly menggantikan kode – kode biner dari bahasa mesin dengan “mnemonik” yang mudah diingat, misalnya sebuah instruksi penambahan dalam bahasa mesin disajikan dengan kode “10110011” yang dalam bahasa assembly dapat disajikan danam mnemonik ADD sehingga mudah diingat dibanding sederetan angka 0 atau 1.
Tidak hanya itu, perintah penambahan membutuhkan suatu operan baik berupa data langsung maupun suatu lokasi memori yang menyimpan data yang bersangkutan. Dengan demikian kode untuk ADD bisa berbeda – beda tergantung kebutuhan atau jenis operannya. Instruksi lainnya rata – rata juga membutuhkan operan dalam bentuk yang berbeda – beda. Bagian ni ada baiknya diawali dengan beberapa definisi, antara lain :
1. Program Bahasa Assembly
Sebuah program yang terdiri dari label – label, mnemonik, dan lain sebagainya.
2. Program bahasa mesin
Sebuah program yang mengandung kode – kode biner yang merupakan instruksi – instruksi yang biasa dipahami prosesor.
3. Assembler
Suatu program yang dapat menerjemahkan program bahasa assemble keprogram bahasa mesin.
4. Linker
Suatu program yang dapat menggabungkan program – program object relocatable (modul - modul) dan menghasilkan suatu program object absolut yang dapat dijalankan oleh prosesor.
5. Segmen
Suatu unit memori, kode atau data
6. Modul
Mengandung satu atau lebih segemen atau sebagai segmen.
7. Program
Merupakan modul absolut tunggal, menyatakan semua segmen absolut dan relocatable dari modul – modul yang terlibat.
Format Program Bahasa Assembly
Program bahasa assembly berisikan :
1. Instruksi – instruksi mesin
2. Pengarah – pengarah assembler
3. Kontrol – kontrol assembler
4. Komentar – komentar
Instruksi – instruksi mesin merupakan mnemonik yang menyatakan suatu instruksi yang bisa dijalankan (misalnya MOV). Pengarah assembler merupakan instruksi keprogram assembler yang mendefinisikan struktur program, simbol – simbol, (menentukan) mode – mode assembler dan aliran assembler langsung (missal STITLE). Komentar perlu dituliskan agar program mudah dibaca, tidak harus perintruksi bisa juga sekumpulan instruksi yang mengerjakan suatu operasi.
Baris – baris program yang mengandung instuksi mesin atau pengarah assembler harus mengikuti aturan program assembler ASM51. masing – masing baris batas beberapa field yang dipisahkan dengan spasi atau tabulasi.
1. Label
Sebuah label mewakili alamat dari suatu nstruksi (data) yang mengikat. Label ini digunakan sebagai operan pada instruksi – instruksi percabangan. (Misal : SJMP TERUS)
2. Mnemonik
Mnemonik instruksi atau pengarah assembler dimasukan dalam “mnemonik field” yang mengikuti “label mnemonik”. Mnemonik instruksi misalnya : ADD, MOV, INC, dan lain – lain.
3. Operan
Operan ditulis setelah mnemonik, bisa berupa alamat atau data yang digunakan instruksi yang bersangkutan. Bisa juga berupa label yang mewakili alamat data atau berupa simbol yang mewakili data konstan.
4. Komentar
Komentar harus diwakili dengan titik koma (;). Sebuah garis akan dianggap sebagai komentar jika diawali dengan titik koma.
5. Simbol – simbol assembler khusus
Simbol – simbol assambler khusus digunakan untuk mode – mode pengalamatan melalui register. Simbol – simbol ini mencakup A, R0 s/d R7, DPTR, C, PC dan AB. Juga tanda dolar yang dapat digunakan untuk menunjuk nilai pecahan program saat itu.
6. Pengalamatan tak langsung
Beberapa instruksi menggunakan operan berupa register yang menyimpan alamat data yang disimpan. Dalam hal ini digunakan tanda “at” yang dapat digunakan bersama dengan R0, R1, DPTR atau PC tergantung dari instruksi yang digunakan.
7. Data langsung
Data – data langsung yang diawali tanda poud dan menyatu dengan instruksi yang bersangkutan.
8. Alamat data
Banyak instruksi – instruksi yang mengakses lokasi – lokasi memori menggunakan pengalamatan langsung dan membutuhkan alamat memori dan internal (00h hingga 7Fh) atau alamat SFR (80h hingga FFh) pada operan.
9. Alamat Bit
Salah satu kelebihan dari mikrokontroller 51 adalah kemampuannya bisa mengakses alamat – alamat perbit tanpa menggunakan cara khusus. Instruksi yang melibatkan lokasi yang teralamati bit harus menyediakan alamat bit dalam memori data internal (00h hingga 7Fh) atau alamat bit di ruang SFR (80h hingga FFh).
10. Alamat Kode
Suatu Alamat kode digunakan dalam operan instruksi lompatan, termasuk lompatan relatif (SJMP dan lompatan bersyarat), lompatan dan call far (LJMP, LCALL).
11. Jump dan Call Jump
ASM51 membolehkan kita untuk menggunakan mnemonik JMP atau CALL yang umum; mnemonik JMP digunakan sebagai wakil dari SJMP, AJMP atau LJMP, sedangkan mnemonik CALL mewakili ACALL atau LCALL.