'0'/> 1707

Senin, 23 September 2013

0 TUGAS 1 BAHASA ASSEMBLY

Bahasa assembly / rakitan (bahasa Inggrisassembly language) adalah bahasa pemrograman komputer tingkat rendah. Bahasa rakitan merupakan notasi untuk bahasa mesin yang dapat dibaca oleh manusia dan berbeda-beda tergantung dari arsitektur komputer yang digunakan. Bahasa mesin adalah pola bit-bit (serangkaian nomor-nomor biner) tertentu yang merupakan kode operasi mesin. Bahasa mesin dibuat lebih mudah dibaca dan ditulis dengan cara mengganti pola bit-bit menjadi julukan-julukan yang disebut mnemonics.
Berbeda dengan bahasa pemrograman tingkat tinggi, bahasa rakitan biasanya memiliki hubungan 1-1 dengan instruksi bahasa mesin. Misalnya, tiap julukan (mnemonic) yang ditulis di program dengan bahasa rakitan akan diterjemahkan menjadi tepat satu kode operasi yang dapat dimengerti langsung oleh komputer. Pada bahasa tingkat tinggi, satu perintah dapat diterjemahkan menjadi beberapa kode operasi dalam bahasa mesin. Proses pengubahan bahasa rakitan ke bahasa mesin dilakukan olehassembler, dan proses balikannya dilakukan oleh disassembler.
Setiap arsitektur komputer memiliki bahasa mesin yang berbeda-beda sehingga bahasa rakitannya pun berbeda-beda.
Berikut merupakan contoh bahasa rakitan:
mov  al, 0x61
yang berarti pindahkan (mov = move) nilai heksadesimal 61 (= 97 dalam desimal) ke register prosesor bernama "al". Adalah lebih mudah mengingat ini dari bahasa mesin:
10110000 01100001
Untuk membuat program Assembly di butuhkan Software Assembly yaitu Tasm.exe dan Tlink.exe. serta Editor yang digunakan untuk menuliskan kode program yaitu bisa menggunakan DOS dan notepad. Pada peletakan program yang akan kita buat harus dijadikan satu folder dengan software tasm dan tlink tersebut.

Tahap pembuatan sebuah program assembly adalah sebagai berikut :

1. Masuk ke under Dos melalui klik starmenu, klik run ketikkan cmd

atau dari start -> program -> acssessoris -> Command Promt

1. Ketikkan cd\ maka anda akan di bawa ke drive C, lalu pastikan di drive C anda telah tersedia folder TASM yang berisi software tasm dan tlink
2. Ketikkan Cd Tasm, maka sekarang anda sudah berada pada folder tasm
3. Pada posisi C:/Tasm> ketikkan “notepad namafile.asm”, dengan begitu maka akan terbuka sebuah window notepad yang bernama “namafile.asm” yang siap ditulisi program

Mulailah menuliskan sebuah program yang ingin anda buat, ada dua jenis program assembly yang bisa anda gunakan dan terapkan saat menulis program yaitu program COM dan program EXE, perbedaan dari keduannya adalah sebagai berikut

* PROGRAM COM :

- Lebih pendek dari file EXE

- Lebih cepat dibanding file EXE

- Hanya dapat menggunakan 1 segmen

- Ukuran file maksimum 64 KB (ukuran satu segment)

- sulit untuk mengakses data atau procedure yang terletak pada segment yang lain.

-100h byte pertama merupakan PSP(Program Segment Prefix) dari program

tersebut.

- Bisa dibuat dengan DEBUG

* PROGRAM EXE :

- Lebih panjang dari file COM

- Lebih lambat dibanding file COM

- Bisa menggunakan lebih dari 1 segmen

- Ukuran file tak terbatas sesuai dengan ukuran memory.

- mudah mengakses data atau procedure pada segment yang lain.

- Tidak bisa dibuat dengan DEBUG

contoh listing program yang di tulis pada notepad dengan tipe program EXE, listingnya adalah sebagai berikut

.model small ;merupakan besar memory(pilihannya yaitu ukuran tiny menggunakan 1 segment ( 64KB),small menggunakan data dan code <64KB,medium menggunakan data<64KB dan code >64KB, dan compact menggunakan Data > 64 KB serta Code < 64 KB .stack 100 ;register SS(Stack Segment) menunjukkan letak dari segmen yang digunakan oleh stack .data dataku db “Sistem Informasi” ;menulis karakter yang akan ditampilkan .code ;mulai menulis kode program proses: mov ax,@data ;mengambil segment data mov ds,ax xor bx,bx mov cx,16 ;tampat meletakkan jumlah karakter ulang: mov dl,dataku[bx] ;mengambil karakter dari db mov ah,02 ;servis 02 int 21h ;memprint caracter inc bx ;perintah mengulang loop ulang ;perintah pengulangan mov ax,4c00h int 21h ;menampilkan seluruh karakter end proses ;mengakhiri program Setelah itu simpan progam yang anda buat File> save

* Mulai compile file anda dengan cara :

Pada CMD setelah masuk pada C:\tasm> mulai dengan menulis “Tasm namafile.asm”

* Kemudian ketikan “Tlink namafile.obj”
* Lalu” dir namafile.*”
* Langkah terakhit tuliskan “Namafile” kemudian enter

Diatas merupakan salah satu contoh program EXE yang bertujuan menampilkan karakter yang anda inputkan. Sehingga pada gambar di atas bias anda perhatikan bahwa character ”sistem informasi ” yang kita inputkan telah berhasil dijalankan

Selanjutnya kita akan mencoba membuat program sederhana selanjutnya tapi sekarang dengan tipe program COM

tidak jauh beda saat menjalankannya dengan program EXE yaitu membuat satu lagi file notepad yang saya berinama “com.asm”.

* Setelah itu simpan progam yang anda buat File> save
* Mulai compile file anda dengan cara :

Pada CMD setelah masuk pada C:\tasm> mulai dengan menulis “Tasm com.asm”

* Kemudian ketikan “Tlink/t com.obj”
* Lalu” dir com.*”
* Langkah terakhit tuliskan “com” kemudian enter

Listing program pada program COM dan EXE memiliki perbedaan mencolok hanya pada segment saat menjalankan program seperti pada stack dan org100 yang memiliki fungsi yang sama hanya saja segment saat menjalankannya yang berbeda.
Pemrograman AT89S51 Bahasa Assembly

Active Image
Bahasa Assembly adalah bahasa pemrograman tingkat rendah. Dalam pemrograman komputer dikenal dua jenis tingkatan bahasa, jenis yang pertama adalah bahasa pemrograman tingkat tinggi (high level language) dan jenis yang kedua adalah bahasa pemrograman tingkat rendah (low level language). 
Bahasa pemrograman tingkat tinggi lebih berorientasi kepada manusia yaitu bagaimana agar pernyataan-pernyataan yang ada dalam program mudah ditulis dan dimengerti oleh manusia. Sedangkan bahasa tingkat rendah lebih berorientasi ke mesin, yaitu bagaimana agar komputer dapat langsung mengintepretasikan pernyataan-pernyataan program.
Kelebihan Bahasa Assembly:
1. Ketika di-compile lebih kecil ukuran
2. Lebih efisien/hemat memori
3. Lebih cepat dieksekusi
Kesulitan Bahasa Assembly:
1. Dalam melakukan suatu pekerjaan, baris program relatif lebih panjang dibanding bahasa tingkat tinggi
2. Relatif lebih sulit untuk dipahami terutama jika jumlah baris sudah terlalu banyak
3. Lebih sulit dalam melakukan pekerjaan rumit, misalnya operasi matematis

BAHASA ASSEMBLY MCS-51
Dalam program bahasa assembly terdapat 2 jenis yang kita tulis dalam program yaitu:
1. Assembly Directive (yaitu merupakan kode yang menjadi arahan bagi assembler/compiler untuk menata program)
2. Instruksi (yaitu kode yang harus dieksekusi oleh CPU mikrokontroler)


PENGGUNAAN SOFTWARE
Software untuk membantu memprogram mikrokontroler MCS-51 sudah banyak tersedia. Untuk mempermudah maka dapat dipilih software yang merupakan Integrated Development Environment (IDE) yaitu software yang merupakan editor sekaligus compiler. Bahkan juga ada yang sekaligus debugger dan simulator. Salah satunya yang digunakan pada training di PRASIMAX adalah Read51.
Berikut beberapa cara penggunaan software.
1. User dapat membuat program sistem single file maupun proyek (beberapa file). Klik menu File lalu pilih New File.
2. Ketik program di window editing. Software menyediakan syntax highlighting otomatis, sehingga tiap assembly directive akan diberi warna ungu dan tiap instuksi akan diberi warna biru.
Active Image

3. User dapat langsung mengcompile program dengan sekali klik icon Build (F9). Ketika ada kesalahan maka user dapat langsung ditunjukkan letak dan jenis kesalahan.
Active Image

4. User dapat melakukan simulasi software untuk melihat hasil kerja program. Klik IDE mode (F2).
5. User dapat melakukan debugging, bahkan melihat hasil eksekusi per step (per baris)terhadap kondisi-kondisi register dan memori di mikrokontroler. Klik Step Into (F8).
Active Image

Selanjutnya user dapat melakukan download program ke IC mikrokontroler untuk menguji hasilnya secara real di hardware.

DASAR PEMROGRAMAN ASSEMBLY MENGGUNAKAN SOFTWARE READ51 DAN DOWNLODER AEC-ISP PADA SISTEM MICROPROSESOR ATMEL AT89S51

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 :
o    Pastikan file HEX telah siap untuk di upload, periksa sambungan Port Pararel (LPT 1) ke sistem minimum.
o    Jalankan software AEC-ISP
o    Pilih menu “Setup” untuk menyeting software AEC-ISP. Setelah dipilih maka akan muncul gambar seperti berikut :
o    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”.
o    Setelah disimpan setingan tersebut kemudian kita menyeting menu “Reset” menjadi “Low”.
o    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 :
o    Isikan nama file beserta ekstensi HEX seperti yang ditunjukkan diatas. Nama file disarankan tidak melebihi karakter. Kemudian tekan ENTER untuk mengeksekusinya
o    Setelah ditekan, jika berhasil maka akan muncul tampilan berikut.
o    Kemudian kembali ke menu utama dengan cara menekan sembarang tombol pada keyboard.
o    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.


0 komentar:

Posting Komentar