Now we will control the LED depending on external input. In this tutorial we will interface a switch to one of the port pin and display its status on LED connected to other port.

Basics

For this tutorial we will a connect a switch to PORT C0 and LED to PORT B0 of Atmega32. W will configure PORT A0 as input to read the switch status and PORT C0 as outputto display the switch status on LED. Initially LED will be ON , when we press switch the LED will be OFF.
Refer the AVR I/O Register Configuration tutorial for basics of GPIO register configuration.

Hook Up

Switch AVRbreakout.png

Code

#include <avr/io.h>
#define LED 0
#define SWITCH 0
int main(void)
{
DDRB |= (1<<LED); // Configure PORTB as output to connect Led
DDRC &= ~(1<<SWITCH); // Configure PORTC as input to connect switch
PORTC |= 0x01; // Enable The PullUps of PORTC.
while(1)
{
if(!PINC)
PORTB &= ~(1<<LED);
else
PORTB |= (1<<LED);
}
return 0;
}

Demo

0 Switch AVR.gif

Downloads

Download the complete project folder from the below link: https://github.com/ExploreEmbedded/AVR-MCU-Breakout-Board/archive/master.zip


Have a opinion, suggestion , question or feedback about the article let it out here!