Jumat, 14 Juli 2017

Aplikasi ATMega32 dengan LED dan PUSH BUTTON



1. Teori [kembali]


LED

     LED (Light Emitting Dioda) adalah dioda yang dapat memancarkan cahaya pada saat mendapat arus bias maju (forward bias). LED (Light Emitting Dioda)  dapat memancarkan cahaya karena menggunakan dopping galium, arsenic dan phosporus. Jenis doping yang berbeda diata dapat menhasilkan cahaya dengan warna yang berbeda. LED (Light Emitting Dioda) merupakann salah satu jenis dioda, sehingga hanya akan mengalirkan arus listrik satu arah saja. LED akan memancarkan cahaya apabil diberikan tegangan listrik dengan konfigurasi forward bias. Berbeda dengan dioda pada umumnya, kemampuan mengalirkan arus pada LED (Light Emitting Dioda) cukup rendah yaitu maksimal 20 mA. Apabila LED (Light Emitting Dioda)  dialiri arus lebih besar dari 20 mA maka LED akan rusak, sehingga pada rangkaian LED dipasang sebuah resistor sebgai pembatas arus. Simbol dan bentuk fisik dari LED (Light Emitting Dioda) dapat dilihat pada gambar berikut.
         LED memiliki kaki 2 buah seperti dengan dioda yaitu kaki anoda dan kaki katoda. Pada gambar diatas kaki anoda memiliki ciri fisik lebih panjang dari kaki katoda pada saat masih baru, kemudian kaki katoda pada LED (Light Emitting Dioda)  ditandai dengan bagian body LED yang di papas rata. Kaki anoda dan kaki katoda pada LED (Light Emitting Dioda) disimbolkan seperti pada gambar diatas. Pemasangan LED (Light Emitting Dioda) agar dapat menyala adalah dengan memberikan tegangan bias maju yaitu dengan memberikan tegangan positif ke kaki anoda dan tegangan negatif ke kaki katoda.

Button Switch

    Push button switch (saklar tombol tekan) adalah perangkat / saklar sederhana yang berfungsi untuk menghubungkan atau memutuskan aliran arus listrik. Sebagai device penghubung atau pemutus, push button switch hanya memiliki 2 kondisi, yaitu On dan Off (1 dan 0).


2.Rangkaian Simulasi [kembali]



Prinsip Keja
Pada aplikasi ini menggunkan ATMega 32, push button dan led. Dimna pushbutton sebagai input yang di hubungkan di port B dan LED sebagai output yang di hubungkan dengan port A. Pada aplikasi ini kita membuat animasi dengan 8 buah LED yang di kontrol dengan PUSH BUTTON dimana kondisi yang kita program seperti tabel berikut ini.

pada tabel terlihat setiap tombol memiki keadan animasi yang berbeda. Dan animasi yang berbeda tersebut kita pogram nantinya.

3.Listing Pogram [kembali]


/*****************************************************
This program was produced by the
CodeWizardAVR V2.05.0 Evaluation
Automatic Program Generator
© Copyright 1998-2010 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com

Project : 
Version : 
Date    : 7/30/2017
Author  : Freeware, for evaluation and non-commercial use only
Company : 
Comments: 


Chip type               : ATmega32
Program type            : Application
AVR Core Clock frequency: 16.000000 MHz
Memory model            : Small
External RAM size       : 0
Data Stack size         : 512
*****************************************************/

#include <mega32.h>   //library ATmega 32
#include <delay.h>      // library delay

// Declare your global variables here

void main(void) //fungsi utama
{
// 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; // untuk melakukan inisialisasi PORT A
DDRA=0xFF;  // untuk melakukan inisialisasi DDR A

// 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; // untuk melakukan inisialisasi PORT B
DDRB=0x00;  // untuk melakukan inisialisasi DDR B

// 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;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=0xFF
// OC0 output: Disconnected
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer1 Stopped
// Mode: Normal top=0xFFFF
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer2 Stopped
// Mode: Normal top=0xFF
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;

// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0x00;
MCUCSR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;

// USART initialization
// USART disabled
UCSRB=0x00;

// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;

// ADC initialization
// ADC disabled
ADCSRA=0x00;

// SPI initialization
// SPI disabled
SPCR=0x00;

// TWI initialization
// TWI disabled
TWCR=0x00;

while (1) //fungsi pengulangan
      {
      // Place your code here 
      // PORTA=PINB;
         if(PINB.0==0)PORTA=0b11100111;  // jika pin 0 pada port B bernilai 0 atau low maka port a                                                                                menghidupkan LED yang telah di tentukan.
         else if(PINB.1==0)PORTA=0b01010101; // jika pin 1 pada port B bernilai 0 atau low maka                                                                                         port a  menghidupkan LED yang telah di tentukan.
         else if(PINB.2==0)PORTA=0b00100100;
         else if(PINB.3==0)
         {
         PORTA=0b01100110;
         delay_ms(100);
         PORTA=0b11111111;
         delay_ms(100);  // waktu delay
         }
         else if(PINB.4==0)
         {
         PORTA=0b01111111;
         delay_ms(100);
         PORTA=0b10011111;
         delay_ms(100);
         PORTA=0b11001111;
         delay_ms(100);
         PORTA=0b11100111;
         delay_ms(100);
         PORTA=0b11110011;
         delay_ms(100);
         PORTA=0b11111001;
         delay_ms(100);
         PORTA=0b11111100;
         delay_ms(100);
         }
         else if(PINB.5==0)
         {
         PORTA=0b11111100;
         delay_ms(100);
         PORTA=0b11111001;
         delay_ms(100);
         PORTA=0b11110011;
         delay_ms(100);
         PORTA=0b11100111;
         delay_ms(100);
         PORTA=0b11001111;
         delay_ms(100);
         PORTA=0b10011111;
         delay_ms(100);
         PORTA=0b00111111;
         delay_ms(100);
         }
         else if(PINB.6==0)
         {
         PORTA=0b01111110;
         delay_ms(100);
         PORTA=0b10111101;
         delay_ms(100);
         PORTA=0b11011011;
         delay_ms(100);
         PORTA=0b11100111;
         delay_ms(100);
         PORTA=0b11011011;
         delay_ms(100);
         PORTA=0b10111101;
         delay_ms(100);
         PORTA=0b01111110;
         delay_ms(100);
         }
         else if(PINB.7==0)
         {
         PORTA=0b10000001;
         delay_ms(100);
         PORTA=0b11000011;
         delay_ms(100);
         PORTA=0b11100111;
         delay_ms(100);
         PORTA=0b11111111;
         delay_ms(100);
         }

      }
}

4.Video Simulasi [kembali]


5.Download Rangkaian dan Pogram [kembali]

Bisa di download disini dan semoga bermanfaat. :)

Tidak ada komentar:

Posting Komentar