You are on page 1of 6

AVR BASED BASIC PROJECTS

This program will show you how can you make led blinking program with atmega16. #include<avr/io.h>// initialize header file #include<util/delay.h>//initialize header file for delay function #define BIT0 0x01//initializing all bits #define BIT1 0x02 #define BIT2 0x04 #define BIT3 0x08 #define BIT4 0x10 #define BIT5 0x20 #define BIT6 0x40 #define BIT7 0x80 #define CHECKBIT(x,b) (x&b)//chech bit when it #define SETBIT(x,b) x=x|b//set bit as 1 #define CLEARBIT(x,b) x=x&(~b)//clear bit as 0 #define TOGGLEBIT(x,b) x=x^b//toggle bit as 1 or 0 int main() { DDRA=0xff;//define data direction register CLEARBIT(PORTA,BIT0); CLEARBIT(PORTA,BIT1); CLEARBIT(PORTA,BIT4); CLEARBIT(PORTA,BIT5); while(1)//initialize loop { _delay_ms(100); SETBIT(PORTA,BIT0);//set Port a and bit 0 _delay_ms(100); SETBIT(PORTA,BIT1);//set PORTA and bit 1 _delay_ms(100); SETBIT(PORTA,BIT4);//set PORTA and Bit 4 _delay_ms(100); SETBIT(PORTA,BIT5);//set PORTA and Bit 5 _delay_ms(100); } return 0; }

For this program simulation is working as there.

The above program has given o/p will find like that. The program for switches using led blinking #include<avr/io.h> #include<util/delay.h> #define BIT0 0x01 #define BIT1 0x02 #define BIT2 0x04 #define BIT3 0x08 #define BIT4 0x10 #define BIT5 0x20 #define BIT6 0x40 #define BIT7 0x80 #define sbit(a,b) a=a|b #define cbit(a,b) a=a&(~b) #define tbit(a,b) a=a^b #define chkbit(a,b) (a&b) int main()

{ sbit(DDRB,BIT0); //led1 as o/p sbit(DDRB,BIT1); //led2 as o/p sbit(DDRB,BIT2); //led3 as o/p sbit(DDRB,BIT3); //led4 as o/p cbit(DDRC,BIT0); //sw1 as i/p cbit(DDRC,BIT1); //sw2 as i/p while(1) { cbit(PORTB,BIT0); //off led1 cbit(PORTB,BIT1); //off led2 cbit(PORTB,BIT2); //off led3 cbit(PORTB,BIT3); //off led4 if(chkbit(PINC,BIT0)) { _delay_ms(100); //delay of 100ms sbit(PORTB,BIT0); //on led1 _delay_ms(100); cbit(PORTB,BIT0); //off led1 sbit(PORTB,BIT1); //on led2 _delay_ms(100); cbit(PORTB,BIT1); //off led2 sbit(PORTB,BIT2); //on led3 _delay_ms(100); cbit(PORTB,BIT2); //off led3 sbit(PORTB,BIT3); //on led4 _delay_ms(100); cbit(PORTB,BIT3); //off led4 } if(chkbit(PINC,BIT1)) { _delay_ms(100); sbit(PORTB,BIT0); sbit(PORTB,BIT1); sbit(PORTB,BIT2); sbit(PORTB,BIT3); _delay_ms(100); cbit(PORTB,BIT0); cbit(PORTB,BIT1); cbit(PORTB,BIT2); cbit(PORTB,BIT3); } } return 0; }

The simulation of the circuit is here.

Now we Program for the motor with switch #include<avr/io.h> #include<util/delay.h> #define BIT0 0x01 #define BIT1 0x02 #define BIT2 0x04 #define BIT3 0x08 #define BIT4 0x10 #define BIT5 0x20 #define BIT6 0x40 #define BIT7 0x80 #define sbit(a,b) a=a|b #define cbit(a,b) a=a&(~b) #define tbit(a,b) a=a^b #define chkbit(a,b) (a&b) int main()

{ sbit(PORTD,BIT0); sbit(PORTD,BIT1); sbit(PORTD,BIT2); sbit(PORTD,BIT3); sbit(PORTC,BIT0); sbit(PORTC,BIT1); cbit(PORTB,BIT0); cbit(PORTB,BIT1); while(1) { if(chkbit(PINB,BIT0)) { _delay_ms(100); sbit(PORTD,BIT0); cbit(PORTD,BIT1); sbit(PORTC,BIT0); _delay_ms(100); cbit(PORTD,BIT0); sbit(PORTD,BIT2); cbit(PORTD,BIT3); sbit(PORTC,BIT1); cbit(PORTC,BIT0); _delay_ms(100); cbit(PORTD,BIT2); cbit(PORTC,BIT1); } if(chkbit(PINB,BIT1)) { _delay_ms(100); sbit(PORTD,BIT0); cbit(PORTD,BIT1); sbit(PORTD,BIT2); cbit(PORTD,BIT3); sbit(PORTC,BIT0); sbit(PORTC,BIT1); _delay_ms(100); cbit(PORTC,BIT0); cbit(PORTC,BIT1); cbit(PORTD,BIT0); cbit(PORTD,BIT2); } } return 0; }

Now the simulation will be here to use

You might also like