Cara Membuat Program Microcontroller PART II

Buka software codevisionAVR. Buatlah new project. Setelah disimpan, hapus saja semua tetapi sisakan header dan void main() nya saja.
contoh programnya sesuai logika berfikir di postingan sebelumnya:

#include <mega16.h>  // ini library untuk chip ATmega 16.
#include <delay.h>  // ini untuk perintah tundaan.
                    // delay_ms(100); tunda selama 100 millisecond   
                    // delay_us(100); tunda selama 100 microsecond
void main(void)
{
    //pertama kita membuat inisialisasi port   
    DDRC=0xff;   // DDRC=0xff; = DDRC=0b11111111;
                 /*                     |   |   |_ _ _ PORTC.0 = output
                                        |   |_ _ _ _ PORTC.1 sampai PORTC.6 = output 
                                        |_ _ _ PORTC.7 = output 


                     DDR = data direction, untuk mengatur port sebagai input
                           atau dijadikan output */ 
                    
    // setelah inisialisasi selanjutnya kita realisasikan logika berfikirnya                                
    while (1){            // <-------- perulangan tiada henti.             
         
        PORTC=0b00000000;   // matikan semua led
        delay_ms(500);      // tunda 0.5 detik
        PORTC=0b00000001;   // nyalakan led di PORC.0
        delay_ms(500);      // tunda 0.5 detik
        PORTC=0b00000010;   // matikan led di PORC.0 nyalakan led di PORC.1
        delay_ms(500);      // tunda 0.5 detik
        PORTC=0b00000100;   // matikan led di PORC.1 nyalakan led di PORC.2
        delay_ms(500);      // tunda 0.5 detik
        PORTC=0b00001000;   // matikan led di PORC.2 nyalakan led di PORC.3
        delay_ms(500);      // tunda 0.5 detik
        PORTC=0b00010000;   // matikan led di PORC.3 nyalakan led di PORC.4
        delay_ms(500);      // tunda 0.5 detik
        PORTC=0b00100000;   // matikan led di PORC.4 nyalakan led di PORC.5
        delay_ms(500);      // tunda 0.5 detik
        PORTC=0b01000000;   // matikan led di PORC.5 nyalakan led di PORC.6
        delay_ms(500);      // tunda 0.5 detik
        PORTC=0b10000000;   // matikan led di PORC.6 nyalakan led di PORC.7
        delay_ms(500);      // tunda 0.5 detik
        };                 // <------sampai disini program diulangi lg dari while (1)      
};// <------end void main. 

/*
Catatan:
dalam bahasa pemrograman C setiap menulis pernyataan harus diakhiri dengan tanda ” ; ”.
DDR adalah register untuk mengatur i/o sebagai input atau output.
Cara penulisan : DDR<NAMAPORT> atau DDR<NAMA PORT>.<NOMOR PORT>
CONTOH: DDRA=0x0f; ß- artinya (PORTD.0 s/d PORTD.3 = sebagai output.
                            dan PORTD.4 s/d PORTD.7 = sebagai input).
jika ada yang sebagai input, kita tambahkan perintah PORT di bawahnya yang nilainya kebalikan dari DDR, untuk mengaktifkan resistor pull-up internal.
CONTOH: DDRA=0x0f;   CONTOH LAGI:  DDRA.1=0;  lagi : DDRC=0b01001001;
       PORTA=0xf0;                PORTA.1=1;           PORTC=0b10110110;

Perintah PORTC digunakan untuk akses keseluruhan (8 bit PORTC). Jika satu port saja cara penulisan:  PORT<NAMA PORT>.<NOMOR PORT>
CONTOH : PORTA.1=0;  ß- Artinya keluarkan logika 0 di PORTA.1 saja.
        PORTD=0xf0; ß- artinya keluarkan Ob11110000 di PORTD.
                     (PORTD.0 s/d PORTD.3 = 0 dan PORTD.4 s/d PORTD.7 = 1).
Untuk input :
       PIN < NAMA PORT > atau PIN < NAMA PORT >.< NOMOR PORT >
CONTOH:       data=PIND; ß- Artinya variabel data bernilai dari semua PORTD.
              data=PIND.0; ß- artinya variable data bernilai PIND.0 saja.
*/       
  
Build program diatas, kemudian di coba / disimulasikan.
Bagai mana mengubah arah nyalanya led? Misal ini menyala kekanan bagaimana supaya menyala kekiri?.. nah lo.. bingung?.


7 comments:

laura_green said...

Kak.. Saya baru belajar mikro kontroler..
Apa aja sih yg dibutuhin untuk belajar pertama kalinya?
Di campus ga diajarin ttg ini. Jadi sy cari2 sendiri. Makasii kak.

Dan sy jg ga ngerti, fungsi code ini buat apa yah kak?

sh mukti said...

hi laura,
silahkan di baca baca dulu tutorial singkat di blog ini.

di setiap code program sudah saya berikan komentar mengenai fungsi code tersebut.

laura_green said...

Owhh ia siap kak.. Makasii kak ^_^
saya baca2 lagi.. :D

Mafazah said...

permisi k'...
dalam tutorial yang digunakan pada blog ini menggunakan codevisionAVR untuk membuat progmam. sedangkan aplikasi yang saya gunakan dalam praktek mikrokontroler yaitu Bascom. apakah kode program yang digunakan pada codevisionAVR sama dengan aplikasi lain???

trimakasih sebelumnya

sh mukti said...

suntax nya berbeda,
kunjungi www.team-ichibot.com

Anonymous said...

Ka saya mau slp saya disuruh membuat program untuk traffic light pertama menyakan led simpang 2 lalu simpang 4 gimana ya ka caranya

Anonymous said...

Lsp maksudnya ka