Microcontroller PART II

by Unknown , at 09.10 , has 0 komentar


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?.
Microcontroller PART II
About
Microcontroller PART II - written by Unknown , published at 09.10, categorized as mikrokontroll . And has 0 komentar
0 komentar Add a comment
Bck
Cancel Reply