In this Tutorial  you will Know what is push button swritch  and how yo  can use push button with AVR microcontroller in  Atmega32. Here you  will also know about  the use of “if and else” statements in embedded C language on avr studio .
now you have to need know about what is push Button 
Push Button Is a  switch When you press the push button LED will glow and when you release the push button LED will stop blinking.

now we will go to program i hope you read How to make the LED Blink
#include <avr/io.h>
#include <util/delay.h>

int main(void)
{
DDRC |= (1<<PC0); //Nakes first pin of PORTC as Output
DDRD &= ~(1<<PD0);//Makes firs pin of PORTD as Input
while(1) //infinite loop
{
if(PIND & (1<<PD0) == 1) //If switch is pressed
{
PORTC |= (1<<PC0); //Turns ON LED
_delay_ms(3000); //3 second delay
PORTC &= ~(1<<PC0); //Turns OFF LED
}
}
}

Explain

The Data Direction Register which determines whether each pin is input or output, PORT register is the output register which is used to write output to pins and PIN register is the PORT Input Register which is used to read data from input pins. DDRC |= (1<<PC0) and PORTC |= (1<<PC0) sets (makes 1) the 0th bit of the specified registers. DDRD &= ~(1<<PD0) and PORTC &= ~(1<<PC0) resets (makes 0) the 0th bit of the specified registers. PIND & (1<<PD0) reads the 0th bit of the PORTD register.

Circuit Diagram

Push switch Circuit Diagram
Circuit Diagram Description 
As described in the first tutorial 16 MHz crystal is used to provide clock to the Atmega32 microcontroller. 10µF capacitor and 10KΩ resistor is used to provide Power On Reset (POR) during the startup of microcontroller. LED is connected to the first pin of PORTC (PC0) of the microcontroller and a resistor is used to limit current through it. Push Button Switch is connected to the first pin of PORTD (PD0) of the microcontroller and a pull down resistor is provided to make the input LOW whenever the switch remain unpressed.

Proteus simulation video


You can complete  download Atmel Studio files and Proteus files here or click Here

No comments

Theme images by Dizzo. Powered by Blogger.