Dasar pemrogaman Assembly dengan Software pada sistem mikroprosessor ATMEL AT89S51


Tadi pas gugling nemuin Artikel ginian yang mungkin bermanfaat bagi saya juga kalian semua, Langsung aja yah gak usah panjang Lebar ini itu, males ngetiknya.. hheee
Teknologi sebagai alat bantu untuk mempermudah pekerjaan manusia merupakan faktor yang sangat penting bagi kehidupan manusia. Peran teknologi disamping sebagai penghasil daya(power) yang besar juga sebagai peminimalisir angka kecelakaan kerja bagi aktifitas manusia seperti buruh pabrik, lalulintas, transportasi, dan sebagainya.
Perkembangan teknologi diawali dengan penemuan-penemuan kecil yang masih bersifat analog. Kemudian berkembang pesat baik kualitas maupun kuantitasnya, hingga akhirnya menghasilkan suatu teknologi yang saat ini mendominasi kehidupan yaitu teknologi era digitalisasi dan otomatisasi.
Perkembangan teknologi di Indonesia saat ini masih tergolong sangat lambat pertumbuhannya bila dilihat dari segi produksi, namun bila dilihat dari segi konsumsinya Indonesia dapat digolongkan salah satu negara berkembang yang cukup tinggi akan konsumsi teknologi.
Yang menjadi faktor lambatnya pertumbuhan produksi teknologi di Indonesia salah satunya adalah karena kurangnya penguasaan akan element teknologi itu sendiri. Kurangnya sumber daya manusia yang berkompeten dalam teknologi serta kurangnya dukungan modal juga menjadi penyebabnya.
Melihat permasalahan diatas perlu adanya suatu penyelenggaraan pendidikan yang berbasis teknologi sebagai salah satu solusi untuk menciptakan sumber daya manusia yang kompeten dan unggul dalam bidang teknologi. Oleh karena itu melalui laporan ini penulis akan memberi beberapa dasar teori dan aplikasinya dalam penguasaan teknologi microkontroler berbasis otomatisasi. Jika pembaca mengalami kesulitan dalam mengaplikasikan bahan ajaran dari laporan ini, saya membuka forum diskusi sebagai media komunikasi dengan penulis melalui alamat email hsbn89@student.undip.ac.id.

Pengertian Microprosesor dan Microkontroler
Mikrokontroler adalah sebuah chip yang dapat melakukan pemrosesan data secara digital serta pengontrolan rangkaian elektronik sesuai dengan perintah bahasa assembly yang diberikan pada IC tersebut. Perbedaan antara mikroprosesor dan mikrokontroler yaitu mikroprosesor merup CPU tanpa memori dan I/O pendukung sebuah komputer, sedangkan mikrokontroler terdiri dari CPU, memori, I/O dan unit pendukung lain spt ADC yang terintregrasi didalamnya. Penggunaan mikrokontroler menjadi tren pada desain teknologi elektronika, karena chip ini dapat mereduksi sistem digital diskrit dengan perangkat lunak yang diprogram dan disisipkan dalam chip tersebut. Mikroprosesor dikembangkan kearah perangkat berbasis komputer sedangkan mikrokontroler lebih banyak ke sistem instrumentasi elektronik.
Pemrograman Bahasa Assembly untuk IC AT89S51
Untuk berinteraksi dengan perangkat keras yang meliputi memberi perintah maupun pengaturan perangkat dapat digunakan suatu bahasa pemrograman dasar tingkat rendah yaitu bahasa pemrograman Assembly. Assembly merupakan bahasa dasar mesin, meskipun saat ini telah banyak bahasa pemrograman tingkat tinggi yang lebih sederhana dan mudah dipahami namun semua bahasa tersebut sesungguhnya juga merupakan pengembangan dari bahasa assembly. Agar kita dapat menguasai lebih mendalam akan interaksi antara user (manusia) dengan mesin maka pada kuliah microprosesor dan microkontroler di gunakan bahasa assembly sebagai bahasa pemrograman sistem microkontroler. Struktur dasar dari bahasa assembly terdiri atas :
Label – Mnemonic (OPcode) – Operand 1 – Operand 2 – Komentar
misalnya,       mulai : mov P0,#13 ; pengisian data 13
Keterangan :
  1. Label, Kode yang ditentukan sendiri oleh pemrogram. jika lebih dari 2 kata, harus digabung (tidak boleh dipisah) diakhiri dengan tanda ( : )
    contoh, mulai : panjangbola :
  2. Mnemonic (opcode), kode perintah yang akan melakukan aksi tiap operand
    contoh, mov sjmp
  3. Operand 1 (operand tujuan/target), data yang akan diproses oleh Mnemonic
    contoh, P0 A
  4. Operand 2 (operand asal), data yang akan dipindahkan ke operand tujuan
    contoh, #13 #110001010B
  5. Komentar, dapat ditulis dengan menggunakan tanda ( ; ) dan tidak akan dieksekusi oleh hardware.
    Contoh, ; ————————— INI ADALAH PROGRAM LED ————–
Instruksi – instruksi Mnemonic yang sering digunakan pada sistem microkontroler diantaranya adalah sebagai berikut :
  1. Intruksi pemindahan data ( MOV )
    instruksi (MOV) digunakan untuk memindahkan data dari satu tempat ke tempat lain, atau juga digunakan untuk memindahkan data dari satu pin microcontroler ke pin yang lain. Contoh : mov P3, #11001100B
    keterangan :
    instruksi diatas digunakan untuk memindahkan data biner 11001100 ke port 3 pada sistem microcontroler.
  2. Instruksi lompatan
    ada beberapa macam instruksi lompatan diantaranya :
    SJMP (Short Jump), melompat ke alamat / label untuk alamat kode yang pendek.
    AJMP (Absolut Jump), sama dengan SJMP hanya jarak lompatannya lebih jauh.
    ACALL, Instruksi memanggil subrutin ke sebuah label/sub program.
    RET (Return), digunakan untuk menghentikan subrutin dan melanjutkan ke instruksi berikutnya.
  3. Instruksi operasi bit
    SETB (Set Bit), digunakan untuk mengisi alamat bit dengan nilai 1
    contoh, SETB P0.0 ; bit P0.0 diisi dengan nilai 1
    CLR (Clear), Mengosongkan / mengubah alamat bit dengan nilai 0
    contoh, CLR P0.0 ; bit P0.0 dikosongkan dengan nilai 0
  4. Instruksi lompatan bersyarat
    CJNE (Compare and Jump if Not Equal)
    Membandingkan nilai sebuah register dengan suatu data/register lain dan akan melompat ke alamat/label yang dituju jika belum sama nilainya.
    Contoh, CJNE R0,#100,mulai         JB (Jump if Bit Set)
    Melakukan lompatan menurut isi (nilai) sebuah bit. Yang di cari adalah nilai “1″ pada bit yang diamati nilainya. Jika bit bernilai “0″ akan melanjutkan instruksi berikutnya, namun jika bit bernilai “1″ akan melompat ke alamat yang ditentukan.
    Contoh, mulai : JB P0.0, eksekusi     SJMP mulai     JNB (Jump if Not Bit Set)
    Kebalikan dari JB, yang dicari adalah nilai NOL (0) pada bit yang dialamati.
    DJNZ (Decrement and Jump if Not Zero)
    Mengurangi nilai sebuah register /alamat tertentu dengan nilai 1 dan jika hasilnya sudah NOL (0) maka instruksi selanjutnya akan dijalankan
    contoh DJNZ R4, mulai
  5. Instruksi aritmatika
    INC (Increment)
    menambahkan “1″ angka dari register/data yang dituju dan hasilnya disimpan pada register tersebut.
    Contoh INC A ADD
    Menambahkan isi Akumulator dengan sebuah nilai dan hasilnya disimpan kembali akumulator tersebut.
    DEC (Decrement)
    Mengurangi “1″ angka dari register yang dituju dan hasilnya disimpan pada register tersebut.
  6. Instruksi geser
    RR (Rotate Right), Menggeser ke kanan perbit isi akumulator
    RL (Rotate Left), Menggeser ke kiri perbit isi akumulator
Software Read51
Software Read51 merupakan salah satu software editor bahasa pemrograman assembly. Dengan menggunakan software ini kita dapat merancang dan membuat pemrograman assembly, C, dll. Pada percobaan yang dilakukan dalam kuliah ini, kita menggunakan Read51 untuk merancang program menggunakan bahasa assembly dimana file program disimpan dalam ekstensi .ASM. Adapun software read51 seperti ditampilkan pada gambar berikut :
Read51 terdiri dari 3 komponen utama yaitu : Jendela Editor (sisi kiri, sebagai tempat dimana kita membuat dan merancang bahasa pemrograman assembly), Jendela Output (terdapat output berupa tampilan LED, berada di sisi kanan) serta jendela build (di sisi bawah, sebagai coment yang menunjukan proses dari software).
1.Memulai membuat file baru
Untuk memulai membuat program ikuti langkah berikut :
Klik menu “File”;
pilih “New File” seperti pada gambar :
setelah dipilih maka akan muncul gambar berikut
Kemudian pilih “Assembly File”, lalu klik tombol “OK”:
Maka akan muncul jendela text editor di sisi kiri, setelah itu kita tinggal menuliskan bahasa pemrograman assembly sesuai rancangan kita.
2.Menyimpan program
Setelah kita membuat halaman editor, langkah selanjutnya adalah menyimpan program kita terlebih dahulu sebelum membuat pemrograman. Kenapa kita harus menyimpan dulu baru kemudian membuat pemrograman? Tidak lain adalah untuk berjaga – jaga agar nantinya jika suatu saat terjadi kerusakan komputer atau tiba-tiba listrik padam data kita telah aman terlebih dahulu. Tips ringan bagi anda disarankan anda menyimpan program anda secara berjangka misalnya setiap 5 menit agar apa yang telah kita ketikkan tidak sia-sia nantinya ketika terjadi kerusakan komputer atau lainnya. Lalu bagaimana cara menyimpan pemrograman kita? Ikutilah langkah berikut :
Langkah pertama klik menu “File”;
Pilih “Save As”; maka akan muncul gambar berikut :
ketikkan nama file yang anda kehendaki pada form “File Name”, kemudian pilih direktori dimana anda ingin menyimpan file tersebut.
Setelah itu tekan tombol “Save”;
Sekarang file anda telah tersimpan dan silahkan membuat program anda.
3.Mengcompile dan Mengconvert file HEX
Setelah anda membuat program yang anda inginkan langkah selanjutnya adalah mengkompile dan mengconvert file program anda ke dalam bentu file berekstensi .HEX . Untuk melakukan ini anda tidak perlu bersusah payah karena Read 51 akan menjalankan prosedure Conver HEX ketika anda mengkompile program anda.
Prosedur Compile penting untuk dilakukan karena prosedur compile merupakan prosedur untuk mengechek program yang anda buat apakah terjadi kesalahan atau tidak. Jika terjadi kesalahan silahkan anda memperbaiki kesalahan tersebut. Sedangkan jika berhasil, maka anda dapat mensimulasikan program anda. Cara mengcompile cukup dengan menekan tombol compile (bergambar palu/ IDE mode / F2) seperti digambarkan dibawah ini
Prosedur Convert HEX merupakan prosedur dimana mengkonversi program yang telah anda buat yang sebelumnya disimpan dalam ekstensi .ASM untuk di konversi ke dalam bentuk file berekstensi HEX. File yang berekstensi HEX inilah yang nantinya akan di upload ke sistem microkontroler yaitu di masukkan ke IC AT89S51 pada sistem minimum.

3.Running Program
Setelah anda mengcompile program anda, selanjutnya adalah menjalankan program yang anda buat yaitu dengan cara mengklik tombol bergambar tanda seru “!” seperti pada gambar berikut :

Setelah dijalankan maka dapat anda lihat hasilnya pada output program yang telah disediakan, tampak seperti pada gambar berikut.

Software AEC-ISP Dowanloder
Setelah selesai membuat dan mengconvert pemrograman ke dalam bentuk file .HEX selanjutnya adalah mengirim/mengupload file HEX tersebut ke dalam IC AT89S51 yang telah terpasang pada sistem minimum. Jalur koneksi yang digunakan untuk mengupload seperti yang telah dijelaskan pada sistem minimum diatas, dan selanjutnya adalah penggunaan software EAC-ISP.exe untuk mengupload file tersebut. Komponen software dasar yang dibutuhkan ketika mengupload adalah harus tersedianya softwareEAC-ISP.exe serta terdapat file sfr51.inc pada direktori dimana program kita akan di upload. Tanpa adanya kedua komponen tersebut kita tidak dapat mengupload program yang telah dibuat.
Untuk mengupload program anda sebelumnya anda harus menempatkan file .HEX yang telah di convert menjadi satu direktori dengan software AEC-ISP.exe serta file sfr51.inc, kemudian silahkan menjalankan software AEC-ISP. Tampilan dari software tersebut adalah seperti pada gambar berikut :
Pada software AEC-ISP terdapat beberapa item menu diantaranya :
  1. Load HEX File to Flash Buffer
  2. Load HEX File to EEPROM Buffer
  3. Display Flash Buffer
  4. Display EEPROM Buffer
  5. Program
  6. Read Flash & EEPROM to Buffer
  7. Save Flash Buffer to Hex File
  8. Save EEPROM Buffer to Hex File
  9. Reset
  10. Setup
  11. Show Scematic
  12. About Us
  13. Exit
Dari menu menu diatas kita cukup memperhatikan beberapa menu saja yaitu menu nomor 1 , 5 , 9 dan 10 karena menu inilah yang nantinya akan digunakan untuk mengirim file .HEX ke sistem microcontroler. Adapun langkah – langkah untuk mengirim program adalah sebagai berikut :
  • Pastikan file HEX telah siap untuk di upload, periksa sambungan Port Pararel (LPT 1) ke sistem minimum.
  • Jalankan software AEC-ISP
  • Pilih menu “Setup” untuk menyeting software AEC-ISP. Setelah dipilih maka akan muncul gambar seperti berikut :
  • setelah muncul gambar diatas, selanjutnya adalah menyeting “Device” dengan item “AT89S51″. Kemudian menyeting menu “Select Printer Port” dengan item “LPT1″ setelah diseting kemudian pilih “Save Setup”.
  • Setelah disimpan setingan tersebut kemudian kita menyeting menu “Reset” menjadi “Low”.
  • Kemudian pilih menu “Load HEX File to Flash Buffer” untuk mengirim file ber HEX yang telah disiapkan tersebut. Maka dipojok bawah akan muncul gambar berikut :
  • Isikan nama file beserta ekstensi HEX seperti yang ditunjukkan diatas. Nama file disarankan tidak melebihi karakter. Kemudian tekan ENTER untuk mengeksekusinya
  • Setelah ditekan, jika berhasil maka akan muncul tampilan berikut.
  • Kemudian kembali ke menu utama dengan cara menekan sembarang tombol pada keyboard.
  • Setelah berada pada menu utama, kemudian pilih menu “Program”, menu inilah yang berfungsi sebagai pengupload file pemrograman HEX kita ke sistem microcontroler. Jika file berhasil di kirim maka akan muncul persentase pengiriman data, namun bila gagal akan muncul pesan error. Jika file gagal di upload ke sistem, silahkan periksa kembali file anda atau sambungan kabel koneksi di LPT1 kemudian cobalah mengirim kembali.
Jika proses download telah selesai maka hardware kita telah diprogram sesuai dengan pemrograman serta fungsinya. melalui bahasa assembly kita dapat menjalankan beberapa peralatan elektronika ataupun sebuah robot. untuk contoh beberapa aplikasi dari bahasa assembly akan kami bahas dalam artikel selanjutnya, jadi silahkan kunjungi website simawa.unnes.ac.id untuk mendapatkan informasi mengenai artikel ini.
Artikel ini didapatkan dari Laboratorium Elektronika dan Instrumentasi (ELINS) Jurusan Fisika, Universitas Negeri Semarang.

Related Posts:

1 Response to "Dasar pemrogaman Assembly dengan Software pada sistem mikroprosessor ATMEL AT89S51"

NO SARA & NO SPAM