Selasa, 07 Mei 2013

lampu merah menggunakan proteus

bismillah. . .
pada kesempatan kali ini saya akan mencoba mendokumentasikan apa yang baru sara pelajari malam ini, yaitu program lampu merah menggunakan simulasi di proteus. karena saya masih dalam tahap pembelajaran, bagi agan-agan yang sudah mahir diharapkan pengertian nya, saya disini hanya mendokumentasikan apa yang telah saya pelajari *terkesan seperti pengantar halaman buku*

oke disini saya menggunakan mikro ATMega 8535 sebagai pengatur nyala lampu led dan diprogram didalam code Vision AVR menggunakan bahasa C.
berikut sekilas tentang rancangan yang ada di proteus :
kurang mirip seperti lampu merah ya?
hahahah
yang penting ada 4 simpang kan
sedangkan program di code Vision AVR nya adalah :
#include <mega8535.h>
#include <delay.h>

// Declare your global variables here
void utara ();
void selatan ();
void timur ();
void barat ();

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

// Input/Output Ports initialization
// Port A initialization
PORTA=0x00;
DDRA=0x07;

// Port B initialization
PORTB=0x00;
DDRB=0x07;

// Port C initialization
PORTC=0x00;
DDRC=0x07;

// Port D initialization
PORTD=0x00;
DDRD=0x07;


while (1)
      {
       
      // Place your code here
        utara();
        delay_ms(100);
        barat();
        delay_ms(100);
        selatan();
        delay_ms(100);
        timur();
        delay_ms(100);
      };
}

void utara (void)
{
PORTA=0b00000001;
delay_ms(100);
PORTA=0b00000011;
delay_ms(500);
PORTA=0b00000100;
delay_ms(800);
PORTA=0b00000001;
delay_ms(100);
}

void selatan (void)
{
PORTC=0b00000001;
delay_ms(100);
PORTC=0b00000011;
delay_ms(500);
PORTC=0b00000100;
delay_ms(800);
PORTC=0b00000001;
delay_ms(100);
}

void barat (void)
{
PORTB=0b00000001;
delay_ms(100);
PORTB=0b00000011;
delay_ms(500);
PORTB=0b00000100;
delay_ms(800);
PORTB=0b00000001;
delay_ms(100);
}


void timur (void)
{
PORTD=0b00000001;
delay_ms(100);
PORTD=0b00000011;
delay_ms(500);
PORTD=0b00000100;
delay_ms(800);
PORTD=0b00000001;
delay_ms(100);
}

Senin, 13 Agustus 2012

Fungsi






            Suatu fungsi adalah suatu bagian dari program yang dimaksudkan untuk mengerjakan suatu tugas tertentu dan letaknya dipisahkan dari bagian program yang menggunakannya.

Tujuan penggunaan fungsi :
  1. Program menjadi terstruktur
  2. Dapat mengurangi pengulangan kode program.

Fungsi dapat diimplementasikan dalam tiga bentuk :
  1. Pendeklarasian fungsi sebagai prototype fungsi.
  2. Pendefinisian fungsi.
  3. pemanggilan fungsi dari program lain.

1.   Prototipe Fungsi
      Prototipe fungsi merupakan model dari sebuah fungsi yang berguna untuk mendeklarasikan cirri-ciri fungsi, meliputi :
  1. nama fungsi
  2. tipe nilai balik fungsi.
  3. jumlah dan tipe argument.

Bentuk umum :   jenis_data nama fungsi (jenis_data, jenis_data,…);
Prototype fungsi tidak perlu dituliskan bila suatu fungsi terletak di atas fungsi yang memanggilnya.

      Contoh :    long kuadrat(long);
                        int maks(int a, int b);
                        void garis( );
                        long nilai(int,int);

2.   Pendefinisian Fungsi
      Mendefinisikan fungsi adalah menyusun perintah-perintah yang akan dilakukan fungsi itu sesuai dengan tugas yang akan dilakukannya.

Bentuk umum :
                      [jenis data] nama_fungsi ([jenis_data arg1], jenis data ag2],…)
                     {
                           [deklarasi variable];
                           [kode program];
                           [pernyataan return];
                       } 
  
3.   Pemanggilan Fungsi
      Fungsi-fungsi yang telah didefinisikan dapat dipanggil dari bagian-bagian fungsi lain. Pada saat sebuah fungsi dipanggil, alur eksekusi program akan berpindah ke fungsi yang dipanggil itu. Setelah selesai mengeksekusi fungsi, kendali program akan dikembalikan kepada fungsi yang memanggil, dan alur eksekusi program dilanjtukan pada pernyataan setelah pemanggilan fungsi tersebut.
Bentuk umum :
                Nama_fungsi( [jenis_data arg1], [jenis data ag2],…);  
    Nama fungsi( );       


contoh program yang menggunakan fungsi sederhana :

# include<stdio.h>
int wiralfi (int a,int b);
main()
{
int hasil;
hasil=wiralfi(2,3);
printf("hasil penjumlahan nya adalah %d",hasil);

}
int wiralfi(int a,int b)
{
int C;
C=a+b;
return (C);
}

Filtering pada Image menggunakan HPF





clc;
close all;
 
   % High Pass Filter Design
  
    % a)
    HighpassFilter = Fspecial('laplacian');
   
    % b) fft of highpass filter
    HighpassFilterSpectrum = fftshift(fft2(HighpassFilter,intRows,intCols));
   
    % c)    figure('Name', 'Highpass Filter', 'NumberTitle', 'off', 'MenuBar', 'none');
    colormap(gray);
    subplot(1,2,1);
    imagesc(log10(1+abs(HighpassFilterSpectrum)));
    title('Log Magnitude');
    subplot(1,2,2);
    imagesc(angle(HighpassFilterSpectrum));
    title('Phase');
   
    % d) Filtering
    imgLennaFiltered = HighpassFilterSpectrum .* imgLennaSpectrum;
    figure('Name', 'Highpass Filtered Image', 'NumberTitle', 'off', 'MenuBar', 'none');
    colormap(gray);
    subplot(2,2,1);
    imagesc(log10(1+abs(imgLennaFiltered)));
    title('Log Magnitude');
    subplot(2,2,2);
    imagesc(angle(imgLennaFiltered));
    title('Phase');
   
    % e) Inverse FFT
    subplot(2,2,3);
    imgLennaHighpassFiltered = abs(ifft2(imgLennaFiltered));
    imgLennaHighpassFiltered = circshift(imgLennaHighpassFiltered,[-1.*floor(length(HighpassFilter)/2) -1.*floor(length(HighpassFilter)/2)]);
    imagesc(imgLennaHighpassFiltered);
    title('Inverse FFT of Highpass Filtered Image');