SDCC Tutorial FOR INTERFACE only April 18, 2007
Posted by kwoksundip in interface.add a comment
Pemrograman mikrokontroller dapat dilakukan menggunakan bahasa tingkat rendah (assembler), ataupun bahasa tingkat tinggi ( C, Basic, Pascal) , Dengan tersediannya Freeware SDCC kita dapat memprogram mikrokontroller AT89XX menggunakan bahasa C tanpa harus membeli C compiler yang harganya relatif mahal , Selain itu SDCC juga mempunyai optimisasi yang bagus sehingga tidak kalah dengan compiler komersial lainnya, dan cukup layak untuk kita gunakan, pemrograman dengan bahasa C akan sangat memudahkan kita dibandingkan menggunakan bahasa assembly karena program yang kita buat akan sangat mudah untuk dibaca, dan pembuatan algoritma sangat mudah untuk dilakukan
SDCC Merupakan open source , retargetable, optimizing C compiler yang pertama kali dikembangkan oleh Sandeep Dutta untuk mikrokontroller/mikroprosesor 8-bit, SDCC mendukung beberapa arsitektur mikrokontroller/mikroprosessor 8-bit antara lain: Intel MCS-51,Zilog Z80, Atmel AVR, Microchip PIC, Freescale (Motorola) HC08. Disini kita akan bahas penggunaan SDCC untuk MCS-51 Family yang cukup banyak dipakai saat ini
Pemrograman dengan bahasa C lebih mudah di bandingkan menggunakan bahasa assembly (bahasa mesin), SDCC merupakan C compiler gratis (freeware) sehingga anda tidak perlu mengeluarkan biaya untuk membeli compiler komersial yang harganya cukup mahal, dari segi code yang dihasilkan optimasi sdcc sangat bagus
Sebelumnya anda sudah harus mengerti pemrogramman dasar menggunakan bahasa C untuk PC
Sebelum anda bereksperimen dengan SDCC maka sebelumnya anda harus menginstall SDCC pada komputer anda.
langkah – langkah Instalasi SDCC :
1. Download Win 32 SDCC Setup file pada situs sdcc.sourceforge.net
2. Jalankan file setup yang telah anda download tadi
3. Ikuti langkah yang mucul pada dialog yang muncul, dan gunakan nilai defaultnya, terakhir ketika installer menanyakan untuk menambah path ke system path, pilih Yes sehingga anda akan dapat meng-compile dari sembarang folder
Seriall With C April 15, 2007
Posted by kwoksundip in interface.add a comment
o, y niy gw kasih sedikit tutorial buat interface terutama buat interface secara serial.niy listingnya
#include <at89×51.h>
void init_intser()
{
EA=1;
ES=1;
PS=1; //prioritas tinggi
}
volatile char terima;
volatile bit status=0;
void IntSerial ()interrupt 4 using 1 //interupsi serial
{
ES=0;
RI=0; //flag interupt dinolkan
status=1;
terima=SBUF;
ES=1;
}
void Init_Serial(char baud )
{
TMOD=0×20; //timer 1 mode 2 (autoreload)
PCON=0×0 ; // SMOD =0
SM0=0;
SM1=1; //mode 1
REN=1; //terima dibolehkan
TH1=baud; //kecepatan 9600 bps (nilai reload)
TL1=baud; //nilai awal timer
TR1=1; // timer dijalankan
}
void KirimChar(char datanya)
{
ES=0;
SBUF=datanya; // kirim melalui port serial
while(!TI) // tunggu sampai semua bit
{;} // terkirim
TI=0;
ES=1;
}
void KirimTeks(char *teks) //Fungsi untuk mengirim teks ke
{
char i=0; //port serial pada mode 1.
while(teks[i]!=0) //dari pada menggunakan fungsi printf()
{
KirimChar(teks[i]); // atau printf_small standard lebih baik
i++;
}
}
/* fungsi tunda 1 milidetik (kira-kira) */
void tunda1ms()
{
int i;
for(i=0;i<100;i++)
;
}
/* fungsi tunda n milidetik */
void tunda(int n)
{
int i;
for (i=0; i<n;i++)
tunda1ms();
}
void LedPutKir( )
{
volatile unsigned char dLed=0×01;
char i;
for(i=0;i<8;i++)
{
P1=dLed;
dLed=((dLed<<1) | (dLed>>7)); //putar kiri 1 bit
tunda(1000);
}
}
void LedPutKan( )
{
volatile unsigned char dLed=0×80;
char i;
for(i=0;i<8;i++)
{
P1=dLed;
dLed=((dLed>>1) | (dLed<<7));
tunda(1000);
}
}
void LedKedip4()
{
volatile unsigned char dLed=0×0f;
char i;
for(i=0;i<8;i++)
{
P1=dLed;
dLed=((dLed >>4) | (dLed<<4));
tunda(1000);
}
}
void main()
{
init_intser();
Init_Serial(0xfd); // inisialisasi port serial
while(1)
{
KirimTeks(“Pilihan: \n”);
KirimTeks(” 1. Putar Kiri \n”);
KirimTeks(” 2. Putar Kanan \n”);
KirimTeks(” 3. Putar Kedip4 \n”);
KirimTeks(“Tekan angka didepan pilihan: \n”);
while (!status);
status=0;
KirimTeks(“Pilihan Anda: “);
KirimChar(terima);KirimChar(‘\n’);
switch(terima)
{
default:
case ‘1′: LedPutKir();break;
case ‘2′: LedPutKan();break;
case ‘3′: LedKedip4();break;
}
}
}
waa banyak banget ya,. ni program untuk kirim n terima data pada led. Jadi user dikasih pilihan untuk ngejalanin led biar bisa putar kiri,putar kanan,putar kedip. LO tinggal milih doank.
Program ini bs pake hyperterminal atoyg lain. Klo gw siy lbh cenderung peke hyperterminal,lbh gampang siy……..
plajari tuh yakhan gampang to?Nek gak phm tanya ama yg bs.Ok Coy