Kamis, 05 Mei 2016

Rangkian LED Animasi 10x10

Langkah-langkah membuat rangkian 10x10 proteus8


Buat Rangkaian Animasi LED pada Gambar di bawah ini  pada  proteus

 Sekarang cari lah komponen yang kita butuhkan untuk membuat rangkaian led rangkaian yang kita butuhkan adalah 
  • Atmega 2560

  • Led Blue dan Led Green
  • Led yellow dan  Led Red
  • Ground
Buka program Codevision AVR


Buat New project, File a New project


Selanjutnya akan muncul kotak dialog sebagai berikut






Lalu setelah muncul kotak dialog diatas klik Yes, setelah itu akan muncul kotak dialog Pilih AVR Chip Type AT90, ATtiny,ATmega,FPSLIC


setelah selesai maka akan muncul Code wizard AVR




 Ubah Tab “Chip” dengan nama ATmega2560



 Kemudian buka tab Ports

Buat keseluruhan Port (A,B,C,D) Bit 0-7 sebagai Output



Bila sudah , maka di generate, Save and Exit . (Save nya sebanyak 3 kali , dan beri nama project yang sama setiap kali kita membuat project , maka akan di dapat sebuah kode-kode berupa program C)

Di bawah ini merupakan kode bahasa C yang kita dapatkan, namun kita harus menambahkan coding  untuk animasi LED kita, yaitu pada bagian

Di bawah ini merupakan kode bahasa C yang kita dapatkan, namun kita harus menambahkan coding  untuk animasi LED kita, yaitu pada bagian
While (1)
{
//place your code here
}
Dan tambahkan pula kode #include<delay.h> dibawah kode #include<mega8535.h>



Masukkan kode berikut di dalam while

while (1)
      {
      // Place your code here
      PORTA=0b00000001;
      delay_ms(20);
      PORTA=0b00000011;
      delay_ms(20);
      PORTA=0b00000111;
      delay_ms(20);
      PORTA=0b00001111;
      delay_ms(20);
      PORTA=0b00011111;
      delay_ms(20);
      PORTA=0b00111111;
      delay_ms(20);
      PORTA=0b01111111;
      delay_ms(20);
      PORTA=0b11111111;
      delay_ms(20);
      PORTC=0b00000001;
      delay_ms(20);
      PORTC=0b00000011;
      delay_ms(20);
      PORTC=0b00000111;
      delay_ms(20);
      PORTC=0b00001111;
      delay_ms(20);
      PORTC=0b00011111;
      delay_ms(20);
      PORTC=0b00111111;
      delay_ms(20);
      PORTC=0b01111111;
      delay_ms(20);
      PORTC=0b11111111;
      delay_ms(20);
      PORTD=0b00000001;
      delay_ms(20);
      PORTD=0b00000011;
      delay_ms(20);
      PORTD=0b00000111;
      delay_ms(20);
      PORTD=0b00001111;
      delay_ms(20);
      PORTD=0b00011111;
      delay_ms(20);
      PORTD=0b00111111;
      delay_ms(20);
      PORTD=0b01111111;
      delay_ms(20);
      PORTD=0b11111111;
      delay_ms(20);
      PORTB=0b00000001;
      delay_ms(20);
      PORTB=0b00000011;
      delay_ms(20);
      PORTB=0b00000111;
      delay_ms(20);
      PORTB=0b00001111;
      delay_ms(20);
      PORTB=0b00011111;
      delay_ms(20);
      PORTB=0b00111111;
      delay_ms(20);
      PORTB=0b01111111;
      delay_ms(20);
      PORTB=0b11111111;
      delay_ms(20);
      PORTE=0b00000001;
      delay_ms(20);
      PORTE=0b00000011;
      delay_ms(20);
      PORTE=0b00000111;
      delay_ms(20);
      PORTE=0b00001111;
      delay_ms(20);
      PORTE=0b00011111;
      delay_ms(20);
      PORTE=0b00111111;
      delay_ms(20);
      PORTE=0b01111111;
      delay_ms(20);
      PORTE=0b11111111;
      delay_ms(20);
      PORTG=0b010000;
      delay_ms(20);
      PORTG=0b010000;
      delay_ms(20);
      PORTG=0b000001;
      delay_ms(20);
      PORTG=0b000011;
      delay_ms(20);
      PORTG=0b000111;
      delay_ms(20);
      PORTH=0b00000001;
      delay_ms(20);
      PORTH=0b00000011;
      delay_ms(20);
      PORTH=0b00000111;
      delay_ms(20);
      PORTH=0b00001111;
      delay_ms(20);
      PORTH=0b00011111;
      delay_ms(20);
      PORTH=0b00111111;
      delay_ms(20);
      PORTH=0b01111111;
      delay_ms(20);
      PORTH=0b11111111;
      delay_ms(20);
      PORTF=0b00000001;
      delay_ms(20);
      PORTF=0b00000011;
      delay_ms(20);
      PORTF=0b00000111;
      delay_ms(20);
      PORTF=0b00001111;
      delay_ms(20);
      PORTF=0b00011111;
      delay_ms(20);
      PORTF=0b00111111;
      delay_ms(20);
      PORTF=0b01111111;
      delay_ms(20);
      PORTF=0b11111111;
      delay_ms(20);
      PORTK=0b00000001;
      delay_ms(20);
      PORTK=0b00000011;
      delay_ms(20);
      PORTK=0b00000111;
      delay_ms(20);
      PORTK=0b00001111;
      delay_ms(20);
      PORTK=0b00011111;
      delay_ms(20);
      PORTK=0b00111111;
      delay_ms(20);
      PORTK=0b01111111;
      delay_ms(20);
      PORTK=0b11111111;
      delay_ms(20);
      PORTL=0b00111111;
      delay_ms(20);
      PORTL=0b01111111;
      delay_ms(20);
      PORTL=0b11111111;
      delay_ms(20);
      PORTL=0b00000001;
      delay_ms(20);
      PORTL=0b00000011;
      delay_ms(20);
      PORTL=0b00000111;
      delay_ms(20);
      PORTL=0b00001111;
      delay_ms(20);
      PORTL=0b00011111;
      delay_ms(20);
      PORTL=0b00111111;
      delay_ms(20);
      PORTL=0b01111111;
      delay_ms(20);
      PORTL=0b11111111;
      delay_ms(20);
      PORTL=0b00111111;
      delay_ms(20);
      PORTL=0b01111111;
      delay_ms(20);
      PORTL=0b11111111;
      delay_ms(20);
      PORTJ=0b00000001;
      delay_ms(20);
      PORTJ=0b00000011;
      delay_ms(20);
      PORTJ=0b00000111;
      delay_ms(20);
      PORTJ=0b00001111;
      delay_ms(20);
      PORTJ=0b00011111;
      delay_ms(20);
      PORTJ=0b00111111;
      delay_ms(20);
      PORTJ=0b01111111;
      delay_ms(20);
      PORTJ=0b11111111;
      delay_ms(20);

      //nyala semua, kedip2
      PORTA=0b00000000;
      PORTC=0b00000000;
      PORTD=0b00000000;
      PORTB=0b00000000;
      PORTE=0b00000000;
      PORTG=0b000000;
      PORTH=0b00000000;
      PORTF=0b00000000;
      PORTK=0b00000000;
      PORTL=0b00000000;
      PORTJ=0b00000000;
      delay_ms(100);
      PORTA=0b11111111;
      PORTC=0b11111111;
      PORTD=0b11111111;
      PORTB=0b11111111;
      PORTE=0b11111111;
      PORTG=0b111111;
      PORTH=0b11111111;
      PORTF=0b11111111;
      PORTK=0b11111111;
      PORTL=0b11111111;
      PORTJ=0b11111111;
      delay_ms(100);
      PORTA=0b00000000;
      PORTC=0b00000000;
      PORTD=0b00000000;
      PORTB=0b00000000;
      PORTE=0b00000000;
      PORTG=0b000000;
      PORTH=0b00000000;
      PORTF=0b00000000;
      PORTK=0b00000000;
      PORTL=0b00000000;
      PORTJ=0b00000000;
      delay_ms(100);
      //nyala per lampu (biru)
      PORTA=0b01000001;
      PORTC=0b00010000;
      PORTD=0b00010001;
      PORTB=0b00000100;
      PORTE=0b01000001;
      PORTG=0b000100;
      PORTH=0b00010001;
      PORTF=0b00000100;
      PORTK=0b01000001;
      PORTL=0b00010000;
      PORTJ=0b00010001;
      delay_ms(50);
      PORTA=0b00000000;
      PORTC=0b00000000;
      PORTD=0b00000000;
      PORTB=0b00000000;
      PORTE=0b00000000;
      PORTG=0b000000;
      PORTH=0b00000000;
      PORTF=0b00000000;
      PORTK=0b00000000;
      PORTL=0b00000000;
      PORTJ=0b00000000;
      delay_ms(50);
      //merah
      PORTA=0b11100011;
      PORTC=0b00111000;
      PORTD=0b00111001;
      PORTB=0b10001110;
      PORTE=0b11100011;
      PORTG=0b001110;
      PORTH=0b00111001;
      PORTF=0b10001110;
      PORTK=0b11100011;
      PORTL=0b00111000;
      PORTJ=0b00111001;
      delay_ms(50);
      PORTA=0b00000000;
      PORTC=0b00000000;
      PORTD=0b00000000;
      PORTB=0b00000000;
      PORTE=0b00000000;
      PORTG=0b000000;
      PORTH=0b00000000;
      PORTF=0b00000000;
      PORTK=0b00000000;
      PORTL=0b00000000;
      PORTJ=0b00000000;
      delay_ms(10);
      //kuning
      PORTA=0b11110111;
      PORTC=0b01111101;
      PORTD=0b01111101;
      PORTB=0b11011111;
      PORTE=0b11110111;
      PORTG=0b011110;
      PORTH=0b01111101;
      PORTF=0b11011111;
      PORTK=0b11110111;
      PORTL=0b01111101;
      PORTJ=0b01111101;
      delay_ms(10);
      PORTA=0b00000000;
      PORTC=0b00000000;
      PORTD=0b00000000;
      PORTB=0b00000000;
      PORTE=0b00000000;
      PORTG=0b000000;
      PORTH=0b00000000;
      PORTF=0b00000000;
      PORTK=0b00000000;
      PORTL=0b00000000;
      PORTJ=0b00000000;
      delay_ms(10);
      //hijau or semua
      PORTA=0b11111111;
      PORTC=0b11111111;
      PORTD=0b11111111;
      PORTB=0b11111111;
      PORTE=0b11111111;
      PORTG=0b111111;
      PORTH=0b11111111;
      PORTF=0b11111111;
      PORTK=0b11111111;
      PORTL=0b11111111;
      PORTJ=0b11111111;
      delay_ms(10);
      PORTA=0b00000000;
      PORTC=0b00000000;
      PORTD=0b00000000;
      PORTB=0b00000000;
      PORTE=0b00000000;
      PORTG=0b000000;
      PORTH=0b00000000;
      PORTF=0b00000000;
      PORTK=0b00000000;
      PORTL=0b00000000;
      PORTJ=0b00000000;
      delay_ms(10);
      PORTA=0b11111111;
      PORTC=0b11111111;
      PORTD=0b11111111;
      PORTB=0b11111111;
      PORTE=0b11111111;
      PORTG=0b111111;
      PORTH=0b11111111;
      PORTF=0b11111111;
      PORTK=0b11111111;
      PORTL=0b11111111;
      PORTJ=0b11111111;
      delay_ms(10);
      PORTA=0b00000000;
      PORTC=0b00000000;
      PORTD=0b00000000;
      PORTB=0b00000000;
      PORTE=0b00000000;
      PORTG=0b000000;
      PORTH=0b00000000;
      PORTF=0b00000000;
      PORTK=0b00000000;
      PORTL=0b00000000;
      PORTJ=0b00000000;
      delay_ms(10);
      PORTA=0b11111111;
      PORTC=0b11111111;
      PORTD=0b11111111;
      PORTB=0b11111111;
      PORTE=0b11111111;
      PORTG=0b11111;
      PORTH=0b11111111;
      PORTF=0b11111111;
      PORTK=0b11111111;
      PORTL=0b11111111;
      PORTJ=0b11111111;
      delay_ms(10);
      }
}



Kemudian build program maka akan muncul informasi

Kita Buka Antarmuka Animasi LED yang sudah kita buat pada Proteus dan pada IC microprocessor ATmega2560 kita double click

 Pada Program file , isikan dengan file yang sudah kita buat pada AVR yaitu file hex dan klik OK

Jalankan program yang kita buat dengan menekan tombol play pada proteus , jika berjalan sesuai dengan program yang kita buat maka percobaan berhasil.


Rabu, 04 Mei 2016

Contoh Program Dev C++ Array

Contoh Coding Dev C++ Array



#include <iostream>
#include <string>
using namespace std;

const int MAKSDATA =10;

class ArrayData
{
private:
    string kota [MAKSDATA];
    int jumKota;
    public:
        //Konstruktor
        ArrayData(void):jumKota(0)
        {
        }
       
        //pilih tindakan pada menu
        int pilihMenu()
        {
            char pilihan ;
           
            do
            {
                cout<<"menu:"<<endl;
                cout<<"1. Tambah Data"<<endl;
                cout<<"2. Hapus data"<<endl;
                cout<<"3. Tampilkan data"<<endl;
                cout<<"4.selesai"<<endl;
                cout<<"pilihan(1,2,3, atau 4 dan tenkan Enter):";
                cin>>pilihan;
            }
            while (pilihan<'1'||pilihan>'4');
           
            return pilihan;
        }
       
        //menampilkan isi array
        void tampilkanData(void)
        {
            cout<<"isi array:";
           
            for (int j=0;j<jumKota;j++)
            {
                cout<<kota[j];
               
                if (j !=(jumKota-1))
                cout<<"-";//beri pemisah antarkota
            }
            cout<<endl; //pindah baris
        }
       
        //menambah data
        bool tambahData (string kotaBaru)
        {
            if(jumKota==MAKSDATA)
            {
                cout<<"Array sudah penuh"<<endl;
                return false; //gagal menambah kota
            }
           
            //cari posisi penyisipan
            int posisi =-1;
            for (int j=0;j <jumKota;j++)
            if(kotaBaru.compare(kota[j])<0)
            {
                posisi =j;
                break;
            }
            if (posisi ==-1)
            {
                //sisipkan di belakang
                kota[jumKota]=kotaBaru;
                jumKota = jumKota+1;
            }
            else //kalau posisi tidak sama dengan -1
            {
                //sisispkan pada posisi
                //a.Geser dulu
                for(int j=jumKota-1;j >=posisi;j--)
                kota[j+1]=kota[j];
               
                //b.sisipkan
                kota[posisi] =kotaBaru;
                jumKota=jumKota+1;
            }
            return true;
        }
        //menghapus data
        bool hapusData(string kotaX)
        {
            //cari posisi penghapusan
            int posisi =-1;
            for(int j=0;j<jumKota;j++)
            {
                if(kotaX.compare(kota[j])==0) //kalau sama
                {
                    posisi=j;
                    break;
                }
            }
            //kalau tidak ditemukan
            if (posisi==-1)
            {
                return false; //gagal menghapus karena data tdk ada
            }
           
            //penghapusan kota
            if(posisi==(jumKota-1))
            {
                //hapus dibagian akhir
                jumKota=jumKota-1;
            }
            else //kalau posisi tidak sama
            //dengan yang terakhir
            {
                //geser ke atas untuk menghapus
                for (int j = posisi+1;j <jumKota; j++)
                kota[j-1]=kota[j];
                jumKota =jumKota -1;
            }
            return true;
        }
    };
   
    int main ()
    {
        int pilihan; //pilihan tindakan
        string kotaX; //kota yang akan dihapus atau ditambahka n
        ArrayData kota; //buat objek
       
        //sisipkan 3 kota.Pastikan kota dalam keadaan urut
        kota.tambahData("Medan");
        kota.tambahData("Pontianak");
        kota.tambahData("Surabaya");
        kota.tampilkanData();
       
    //proses interaksi dengan pemakai
    do
    {
        pilihan=kota.pilihMenu();
        switch (pilihan)
        {
            case'1':
                cout<<"Penambahan data.kota:";
                cin>>kotaX;
                if(!kota.tambahData(kotaX))
                cout<<"gagal menambah data.wadah penuh"
                <<endl;
                break;
                case'2':
                    cout<<"penghapusan data.kota:";
                    cin>> kotaX;
                    if(!kota.hapusData(kotaX))
                    cout<<"Data yang akan dihapus tidak ditemukan"
                    <<endl;
                    break;
                    case'3':
                        kota.tampilkanData();
                    }
                }
                while (pilihan !='4');
               
                return 0;
            }

Hasil Program Dev C++ Array




CONTOH PROGRAM Dev C++ SISTEM ANTRIAN

CONTOH PROGRAM  Dev C++ SISTEM ANTRIAN dengan metode FIFO (First in First Out)

Contoh coding sistem antrian

#include <iostream>
#include <conio.h>
#include <stdlib.h>
#include <windows.h>

using namespace std;

char pil;
int jml;
void delay();

struct node
{
   char kar;
   node *next;
};

   node *tail;   //ekor
   node *now;
   node *head;

void clrscr()
{
system("cls");
}

void gotoxy(int x, int y)
{
    HANDLE hConsoleOutput;
    COORD dwCursorPosition;
    cout.flush();
    dwCursorPosition.X = x;
    dwCursorPosition.Y = y;
    hConsoleOutput = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleCursorPosition(hConsoleOutput,dwCursorPosition);
}

void buatnodebaru()
{
  tail=NULL;
  head=NULL;
}

void push(char ch)
{
    now=new node;
    if(head==NULL)
    {
        now->kar=ch;
        now->next=NULL;
        tail=now;
        head=now;
    }
    else
    {
        now->kar=ch;
        now->next=NULL;
        tail->next = now;
        tail=now;
    }
}

void enqueue()
{
    int i;
    char temp;
    gotoxy(1,6);
    cout<<"          ";
    gotoxy(1,8);
    cout<<"        ";
    gotoxy(1,6);
    cout<<"masukkan @ karakter : ";
    cin>>temp;
    gotoxy(1,6);
    cout<<"         ";
    push(temp);

    for(i=1;i<= 75-jml*6;i++)
    {
       gotoxy(i+1,20);cout<<" O";
       gotoxy(i,21); cout<<"=("<<now->kar<<")=";
       gotoxy(i+1,22);cout<<"| |";
       delay();

       if(i!=75-jml*6)
       {
           gotoxy(i+1,20);cout<<"  ";
           gotoxy(i,21);cout<<"      ";
           gotoxy(i+1,22);cout<<"   ";
        }
    }
}

void dequeue()
{
    if(head==NULL)
    {
        gotoxy(1,8); cout<<"antrean kosong !";
        delay();
    }
    else
    {
        jml=jml-1;
        char delete_element=head->kar;
        node *temp;
        temp=head;
        head=head->next;
        delete temp;

        for(int i=69;i<=76;i++)
        {
            gotoxy(i+1,20); cout<<" O";
            gotoxy(i,21); cout<<"=("<<delete_element<<")=";
            gotoxy(i+1,22); cout<<"| |";
            delay();
            gotoxy(i+1,20); cout<<"  ";
            gotoxy(i,21); cout<<"      ";
            gotoxy(i+1,22); cout<<"   ";
        }

        int byk=0;
        while(byk!=jml)
        {
            byk=byk+1;

            for(int i=69-byk*6;i<=75-byk*6;i++)
            {
                gotoxy(i+1,20); cout<<" O";
                gotoxy(i,21); cout<<"=("<<head->kar<<")=";
                gotoxy(i+1,22); cout<<"| |";
                delay();
                if(i!=75-byk*6)
                {
                    gotoxy(i+1,20); cout<<"  ";
                    gotoxy(i,21); cout<<"      ";
                    gotoxy(i+1,22); cout<<"   ";
                }
            }
        }
    }
}

void input()
{
    gotoxy(1,1);cout<<"1.Enqueue";
    gotoxy(1,2);cout<<"2.Dequeue";
    gotoxy(1,3);cout<<"3.Exit";
    do
    {
        gotoxy(1,4);cout<<"masukkan pilihan anda[1/2/3] : ";
        gotoxy(32,4);cin>>pil;
        gotoxy(32,4);cout<<"  ";

        switch(pil)
        {
            case '1':
            {
                if(jml<10)
                {
                    jml=jml+1;
                    enqueue();
                }
                else
                {
                    gotoxy(1,8); cout<<"antrean penuh !";
                    delay();
                    gotoxy(1,8); cout<<"     ";
                }
                break;
            }

            case '2':
            {
                dequeue();
                break;
            }

            case '3':
            {
                exit(1);
                break;
            }
        }
    }while(1);
}

int main()
{
    buatnodebaru();
    jml=0;
    clrscr();
    input();
    getch();
}

void delay()
{
    for(int y=1;y<100;y++)
    for(int x=1;x<100;x++)
    for(int p=1;p<100;p++)
    cout<<"";
}
 
Hasil Program Dev C++





Keterangan Gambar :
 1. Enqueue berfungsi untuk menambahkan antrian
 2. Dequeue berfungsi untuk mengeluarkan antrian
 3. Exit berfungsi untuk keluar dari program