Beranda > Elektronika > Belajar Bahasa C untuk Mikrokontroller 8051

Belajar Bahasa C untuk Mikrokontroller 8051

Bahasa Pemrograman C udah 30 tahun dipake manusia untuk membuat berbagai aplikasi yang berhubungan dengan komputer,mulai tahun 60-an si pencipta bahasa C….mrxxx saya lupa tuh…namanya dan hingga sekarang terus dipake untuk menciptakan program aplikasi baru misal operasi sistem komputer, mesin CNC,dan masih banyak lagi deh…..mungkin pembaca tau sendiri juga..

pada tutorial ini Saya mengajak pembaca mengenal bahasa pemrograman  C …namun pemrograman untuk perangkat keras..mikrokontroller…tipe 8051- sya kompile menggunakan SDCC dan KEIL compiler jangan lupa header filenya di sesuaikan dengan program Kompiler masing-masing.

Sebelum membaca tutorial+program yang saya tuliskan pada artikel ini, pengunjung harap membaca dasar-dasar pemrograman C untuk mikrokontroller keluarga 8051- cari di blog saya ini untuk mendapatkan filenya ( dlm bentuk PDF ) silahkan menikmati- bila ada yg kurang jelas silahkan diskusikan…..

bila pembaca beltul-betul ingin mencobanya (tidak hanya membaca) silahkan mengunjungi web site http://laros-edu.net untuk melihat perangkat pendukung praktikum-dengan harga terjangkau…

light at PORT 1

#include <reg8252.h>

void time (void)
{
unsigned int i;

for(i=0; i<0xffff;i++);

}

void main()
{
unsigned char a,rotate;

while(1)
{
a = 0x01;
P1=~a;
time();
for(rotate=1;rotate<8;rotate++)        //Right Rotate
{
a = a*2;
P1 = ~a;
time();
}

a = 0x80; //data hexa jika di ubah jadi biner…  11110000
P1=~a;
time();
for(rotate=1;rotate<8;rotate++)        //Right Rotate
{
a = a/2;
P1 = ~a;   //komplemen  kalau di assembler pake perintah CPL
time();
}
}
}

Rotate Blink….

#include <reg8252.h>
#include <stdio.h>

void time (void)
{
unsigned int i;

for(i=0; i<0xffff;i++);
}

void rotate_left()
{
unsigned char a,rotate;

a = 0x01;
P1=~a;
time();
do
{
a  *=2;
P1 = ~a;
time();
}while(a<0x80);
}

void rotate_right()
{
unsigned char a,rotate;
a = 0x80;
P1=~a;
time();
do
{
a /=2;
P1 = ~a;
time();
}while(a > 0x01);
}
void blink()
{
do
{
P1=0xff;
time();
P1=0x00;
time();
}while(1);
}
void main(void)
{
while(1)
{
if(INT1 == 0)
{
if (INT0 == 1)
rotate_right();
else
rotate_left();
}
else
blink();
}

}

  1. Arianto W
    Februari 26, 2011 pukul 1:02 am

    Saat ini saya belajar menggunakan bahasa C untuk pemrograman AT89S2051. Saya menggunakan SC51 evaluation software. Kalau dari tampilan sebetulnya saya tertarik pada Keil-C Evaluation tetapi sayangnya tidak bisa dipakai di AT89S2051 karena program ditempatkan mulai alamat 0800H. Apakah ada cara lain memakai Keil-C untuk pemrograman AT89S2051? Terima kasih atas nasehatnya.

    Salam,
    Arianto W

  1. No trackbacks yet.

Tinggalkan komentar