Google+ Facebook Twitter mail SC

Friday, 25 October 2013

Tagged Under:

RUNNING MENGGUNAKAN IC ATMEGA 16

By: Rifza On: 19:00
  • Share The Gag

  • Menggunakan software Proteus Dan Code Vision
    KETERANGAN :                                     
    1.       8 LED
    2.       IC Atmega 16
    3.       Ground
    Arsitektur ATMEGA16
    Mikrokontroler ini menggunakan arsitektur Harvard yang memisahkan memori program dari memori data, baik bus alamat maupun bus data, sehingga pengaksesan program dan data dapat dilakukan secara bersamaan (concurrent).
    Secara garis besar mikrokontroler ATMega16 terdiri dari :
    1. Arsitektur RISC dengan throughput mencapai 16 MIPS pada frekuensi 16Mhz.
    2. Memiliki kapasitas Flash memori 16Kbyte, EEPROM 512 Byte, dan SRAM 1Kbyte
    3. Saluran I/O 32 buah, yaitu Port A, Port B, Port C, dan Port D.
    4. CPU yang terdiri dari 32 buah register.
    5. User interupsi internal dan eksternal
    6. Port antarmuka SPI dan Port USART sebagai komunikasi serial
    7. Fitur Peripheral
        • Dua buah 8-bit timer/counter dengan prescaler terpisah dan mode compare
        • Satu buah 16-bit timer/counter dengan prescaler terpisah, mode compare, dan mode capture
        • Real time counter dengan osilator tersendiri
        • Empat kanal PWM dan Antarmuka komparator analog
        • 8 kanal, 10 bit ADC
        • Byte-oriented Two-wire Serial Interface
        • Watchdog timer dengan osilator internal
    SCRIPTING :
    Code Vision AVR
    #include <mega16.h>
    #include <delay.h>

    // Declare your global variables here

    void main(void)
    {
    // Declare your local variables here

    // Input/Output Ports initialization
    // Port A initialization
    // Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
    // State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
    PORTA=0x00;
    DDRA=0xFF;

    // Port B initialization
    // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
    // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
    PORTB=0x00;
    DDRB=0x00;

    // Port C initialization
    // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
    // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
    PORTC=0x00;
    DDRC=0x00;

    // Port D initialization
    // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
    // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
    PORTD=0x00;
    DDRD=0x00;

    while (1)
          {
          // Place your code here
          PORTA.0=0;
          delay_ms(200);
          PORTA.0=1;
          delay_ms(200);
          PORTA.0=0;
          delay_ms(0);
          PORTA.1=1;
          delay_ms(200);
          PORTA.1=0;
          delay_ms(0);
          PORTA.2=1;
          delay_ms(200);
          PORTA.2=0;
          delay_ms(0);
          PORTA.3=1;
          delay_ms(200);
          PORTA.3=0;
          delay_ms(0);
          PORTA.4=1;
          delay_ms(200);
          PORTA.4=0;
          delay_ms(0);
          PORTA.5=1;
          delay_ms(200);
          PORTA.5=0;
          delay_ms(0);
          PORTA.6=1; 
          delay_ms(200);
          PORTA.6=0;
          delay_ms(0);
          PORTA.7=1;
          delay_ms(200);
          PORTA.7=0;
          delay_ms(0);
          PORTA.7=1;
          delay_ms(200);
          PORTA.0=1;
          delay_ms(200);
          PORTA.0=0;
          delay_ms(0);
          PORTA.1=1;
          delay_ms(200);
          PORTA.1=0;
          delay_ms(0);
          PORTA.2=1;
          delay_ms(200);
          PORTA.2=0;
          delay_ms(0);
          PORTA.3=1;
          delay_ms(200);
          PORTA.3=0;
          delay_ms(0);
          PORTA.4=1;
          delay_ms(200);
          PORTA.4=0;
          delay_ms(0);
          PORTA.5=1;
          delay_ms(200);
          PORTA.5=0;
          delay_ms(0);
          PORTA.6=1;
          PORTA.0=1;
          delay_ms(200);
          PORTA.0=0;
          delay_ms(0);
          PORTA.1=1;
          delay_ms(200);
          PORTA.1=0;
          delay_ms(0);
          PORTA.2=1;
          delay_ms(200);
          PORTA.2=0;
          delay_ms(0);
          PORTA.3=1;
          delay_ms(200);
          PORTA.3=0;
          delay_ms(0);
          PORTA.4=1;
          delay_ms(200);
          PORTA.4=0;
          delay_ms(0);
          PORTA.5=1;
          delay_ms(200);
          PORTA.0=1;
          delay_ms(200);
          PORTA.0=0;
          delay_ms(0);
          PORTA.1=1;
          delay_ms(200);
          PORTA.1=0;
          delay_ms(0);
          PORTA.2=1;
          delay_ms(200);
          PORTA.2=0;
          delay_ms(0);
          PORTA.3=1;
          delay_ms(200);
          PORTA.3=0;
          delay_ms(0);
          PORTA.4=1;
          delay_ms(200);
          PORTA.0=1;
          delay_ms(200);
          PORTA.0=0;
          delay_ms(0);
          PORTA.1=1;
          delay_ms(200);
          PORTA.1=0;
          delay_ms(0);
          PORTA.2=1;
          delay_ms(200);
          PORTA.2=0;
          delay_ms(0);
          PORTA.3=1;
          delay_ms(200);
          PORTA.0=1;
          delay_ms(200);
          PORTA.0=0;
          delay_ms(0);
          PORTA.1=1;
          delay_ms(200);
          PORTA.1=0;
          delay_ms(0);
          PORTA.2=1;
          delay_ms(200);
          PORTA.0=0;
          delay_ms(200);
          PORTA.0=1;
          delay_ms(200);
          PORTA.0=0;
          delay_ms(0);
          PORTA.1=1;
          delay_ms(200); 
          PORTA.0=0;
          delay_ms(200);
          PORTA.0=1;
          delay_ms(200);
          PORTA.0=1;
          delay_ms(150);
          PORTA.1=1;
          delay_ms(150);
          PORTA.2=1;
          delay_ms(150);
          PORTA.3=1;
          delay_ms(150);
          PORTA.4=1;
          delay_ms(150);
          PORTA.5=1;
          delay_ms(150);
          PORTA.6=1;
          delay_ms(150);
          PORTA.7=1;
          delay_ms(150);  
          PORTA.0=0;
          delay_ms(0);
          PORTA.1=0;
          delay_ms(0);
          PORTA.2=0;
          delay_ms(0);
          PORTA.3=0;
          delay_ms(0);
          PORTA.4=0;
          delay_ms(0);
          PORTA.5=0;
          delay_ms(0);
          PORTA.6=0;
          delay_ms(0);
          PORTA.7=0;
          delay_ms(0); 
              
          }
    }
    Keterangan Scripting
    PORTA.0=0 berarti port dalam posisi mati.
    PORTA.0=1 berarti port dalam posisi hidup.
    Delay_ms berarti jeda untuk membuat led kelap-kelip.
    CARA KERJA RANGKAIAN :
    1.       Delapan Led menyala secara bergantian, misal dari kanan ke kiri.

    2.       Pada saat led ke delapan led akan menyala dan menyimpan daya.

    3.       Led mulai pertama akan menyala  secara bergantian dan pada saat sampai ke led ke tujuh maka led akan menyala dan menyimpan daya seperti led ke delapan

    4.       Led akan menyala lagi secara berurutan, pada led ke enam led akan menyala dan menyimpan daya. Led menyala bersama dengan led ke tujuh dan ke delapan.

    5.       Led akan menyala lagi secara berurutan, pada led ke lima led akan menyala dan menyimpan daya.

    6.       Led akan menyala lagi secara berurutan, pada led ke empat led akan menyala dan menyimpan daya.

    7.       Led akan menyala lagi secara berurutan, pada led ke tiga akan menyala dan menyimpan daya.

    8.       Led akan menyala lagi secara berurutan, pada led ke dua akan menyala dan menyimpan daya.

    9.       Led akan menyala lagi secara berurutan, pada led kesatu akan menyala dan menyimpan daya.

    10.   Semua led akan menyala bersama dan memiliki jeda.


    11.   Semua led akan mati dan memulai dari awal tadi.

    1 comments:

    1. kl bisa disertai link youtube-nya donk biar bisa liat

      ReplyDelete