Pada kesempatan ini saya akan mengangkat topik mengenai simulasi pemrograman AT89×51/52 dengan menggunakan IDE (Integrated Development Enviroment) MIDE yang gratis dan berisikan SDCC (Kompiler C gratis), ASEM51 (Asembler gratis) dan 2 buah simulator. Kali ini saya akan mulai dengan penggunaan bahasa C (supaya lebih cepat mengerti algoritmanya dulu, daripada berpusing-pusing ria di bahasa assembly). Sangat disarankan Anda mengerti dasar-dasar pemrograman C terlebih dahulu sebelum membaca artikel ini lebih jauh.
Pertama unduh MIDE dari situsnya : http://www.opcube.com/home.html atau pada saat tulisan ini dibuat versi terbaru dapat diunduh disini.
Install paket MIDE :
Pertama unduh MIDE dari situsnya : http://www.opcube.com/home.html atau pada saat tulisan ini dibuat versi terbaru dapat diunduh disini.
Install paket MIDE :
Buka mide51.exe :
Hal pertama yang perlu dilakukan adalah melakukan sedikit perubahan kecil di pengaturan MIDE:
Pilih Edit-Preference (atau tekan F12)
1. Cari tab C-Compiler dan tambah kan –debug ini dibaris parameter –code-loc 0×0000 –stack-auto –vc.
2. Cari tab Simulator dan pilih JSIM with 8051.DLL
Unduh source code berikut (dalam bahasa C) :
Pilih Edit-Preference (atau tekan F12)
1. Cari tab C-Compiler dan tambah kan –debug ini dibaris parameter –code-loc 0×0000 –stack-auto –vc.
2. Cari tab Simulator dan pilih JSIM with 8051.DLL
Unduh source code berikut (dalam bahasa C) :
http://fandigunawan.googlepages.com/p001.zip
Source code diatas merupakan contoh untuk membuat running LED atau biasanya disebut LED chaser. Jadi LED akan mulai dari ujung sampai diujung satunya dan kembali ke ujung awal. Untuk lebih jelasnya silahkan dijalankan simulasinya.
Kamudian ekstrak ditempat yang namanya tidak ada spasinya, misalnya c:\mide\project. Lalu, buka file p001.c.
Kemudian klik Build-Build (F9), pergilah ke direktori project. cari p001.hex dan rename ke p001.ihx.
Harap diingat : bahwa hasil kompilasi (bahasa mesin) ini disimpan dalam file teks *.hex atau *.ihx. Namun karena JSIM membaca file hasil kompilasi harus berbentuk *.ihx untuk hasil kompilasi dengan SDCC maka kita harus rename dari *.hex ke *.ihx.
Source code diatas merupakan contoh untuk membuat running LED atau biasanya disebut LED chaser. Jadi LED akan mulai dari ujung sampai diujung satunya dan kembali ke ujung awal. Untuk lebih jelasnya silahkan dijalankan simulasinya.
Kamudian ekstrak ditempat yang namanya tidak ada spasinya, misalnya c:\mide\project. Lalu, buka file p001.c.
Kemudian klik Build-Build (F9), pergilah ke direktori project. cari p001.hex dan rename ke p001.ihx.
Harap diingat : bahwa hasil kompilasi (bahasa mesin) ini disimpan dalam file teks *.hex atau *.ihx. Namun karena JSIM membaca file hasil kompilasi harus berbentuk *.ihx untuk hasil kompilasi dengan SDCC maka kita harus rename dari *.hex ke *.ihx.
Kamudian jalankan simulator yang ada pada folder instalasi MIDE dan cari jsim.exe. Double click jsim.exe
Kemudian akan muncul JSIM, klik File- Open dan pilih Files of type : SDC (*.ihx)
Untuk penggunaan yang pertama kali Anda harus memasukkan modul 8051.DLL yang bisa ditemukan di folder instalasi MIDE juga.
Dengan sedikit otak-atik Anda bisa melakukan simulasi dengan bahasa C lengkap dengan petunjuk register, watch register dan memory laiknya tool-tool profesional yang berharga ribuan dollar. Silahkan diotak-atik sendir, saya yakin Anda bisa dengan mudah menguasainya.
Cara yang digunakan untuk stepping yaitu :
• Start (F5)
• Step Into (F11)
• Step Over(F10)
• Step Out (F12)
• Run to Cursor (F8)
Keterangan kode.
Include header file
/*
include header file untuk at89s52/at89c52 : <mcs51/at89×52.h>
include header file untuk at89s51/at89c51 : <mcs51/at89×51.h>
include header file untuk at89s2051/at89c2051 : <mcs51/at89×051.h>
*/
/* Disini saya akan menggunakan at89s52 */
#include <mcs51/at89×52.h>
Fungsi delay
/* Rutin delay */
void delay(void)
{
int i;
for(i = 0; i < 10000; i++)
{
;
}
}
Program utama
void main()
{
/* Port 0 sebagai output */
P0 = 0×00;
/* Set nilai awal P0 */
/* 1111 1110 : 1 mengindikasikan LED mati apabila menggunakan pull up */
P0 = 0xFE;
/*
embedded system tidak boleh keluar dari fungsi main()
*/
for(;;)
{
P0 = (P0 >> 7) | (P0 << 1);
delay();
}
}
Keterangan :
Port 0 merupakan 8 bit pin Input/Output (I/O) dan diinisialisai sebagai 0xFE atau 0b11111110, jadi pin Port 0 yang pertama akan nyala LED nya. Demikian seterusnya akan bergeser dan setelah sampai ujun akan kembali ke pin Port 0 yang pertama.
Kemudian akan muncul JSIM, klik File- Open dan pilih Files of type : SDC (*.ihx)
Untuk penggunaan yang pertama kali Anda harus memasukkan modul 8051.DLL yang bisa ditemukan di folder instalasi MIDE juga.
Dengan sedikit otak-atik Anda bisa melakukan simulasi dengan bahasa C lengkap dengan petunjuk register, watch register dan memory laiknya tool-tool profesional yang berharga ribuan dollar. Silahkan diotak-atik sendir, saya yakin Anda bisa dengan mudah menguasainya.
Cara yang digunakan untuk stepping yaitu :
• Start (F5)
• Step Into (F11)
• Step Over(F10)
• Step Out (F12)
• Run to Cursor (F8)
Keterangan kode.
Include header file
/*
include header file untuk at89s52/at89c52 : <mcs51/at89×52.h>
include header file untuk at89s51/at89c51 : <mcs51/at89×51.h>
include header file untuk at89s2051/at89c2051 : <mcs51/at89×051.h>
*/
/* Disini saya akan menggunakan at89s52 */
#include <mcs51/at89×52.h>
Fungsi delay
/* Rutin delay */
void delay(void)
{
int i;
for(i = 0; i < 10000; i++)
{
;
}
}
Program utama
void main()
{
/* Port 0 sebagai output */
P0 = 0×00;
/* Set nilai awal P0 */
/* 1111 1110 : 1 mengindikasikan LED mati apabila menggunakan pull up */
P0 = 0xFE;
/*
embedded system tidak boleh keluar dari fungsi main()
*/
for(;;)
{
P0 = (P0 >> 7) | (P0 << 1);
delay();
}
}
Keterangan :
Port 0 merupakan 8 bit pin Input/Output (I/O) dan diinisialisai sebagai 0xFE atau 0b11111110, jadi pin Port 0 yang pertama akan nyala LED nya. Demikian seterusnya akan bergeser dan setelah sampai ujun akan kembali ke pin Port 0 yang pertama.