Upload
harshit-dubey
View
216
Download
0
Embed Size (px)
Citation preview
7/25/2019 code of RFID for Atmega 16
1/6
#define F_CPU 1000000UL#include#include
#define USART_BAUDRATE 9600#define BAUD_PRESCALE (((F_CPU / (USART_BAUDRATE * 16UL))) - 1)
int i;unsigned char card[12];int tags[10][3]={{2,3,1},{2,2,1},{3,3,0},{6,2,1},{1,7,6},{4,5,4},{9,6,0},{5,2,0},{8,4,8},{2,4,3}};
unsigned int usart_getch(){
while ((UCSRA & (1
7/25/2019 code of RFID for Atmega 16
2/6
if((PINB&0b00010000)==0)z=3;
PORTB = 0Xfd;_delay_ms(5);if((PINB&0b10000000)==0)z=4;if((PINB&0b01000000)==0)z=5;if((PINB&0b00100000)==0)z=6;if((PINB&0b00010000)==0)z=7;
PORTB = 0b11111011;_delay_ms(5);if((PINB&0b10000000)==0)z=8;
}return(z);
}
void enq(int size,int map[][size],int curr,int a[],int *i,int f[]){
int z=0;for(z;z
7/25/2019 code of RFID for Atmega 16
3/6
}}
int rf(){
usart_init();//PORTB = 3;//_delay_ms(50);getcard_id();
//PORTB=card[12];//_delay_ms(2000);
for(i=0;i
7/25/2019 code of RFID for Atmega 16
4/6
while(1){
dest=keypad();PORTB=dest;
_delay_ms(1000);f_arr(size,map,dest,curr,f);int ndiff,cdiff;next=curr;while(next!=dest){
next=f[curr];cdiff=curr-prev;ndiff=next-curr;if(cdiff==ndiff){
//PORTA=0b01111111;PORTA=0xff;
_delay_ms(1000);PORTA=0b00000000;
}
else if(cdiff+ndiff==0){
//PORTA=0b10111111;
PORTA=0xff;_delay_ms(1000);PORTA=0b00000000;
_delay_ms(1000);PORTA=0xff;
_delay_ms(1000);PORTA=0b00000000;
}else if (cdiff==3 || cdiff==-1){
if(ndiff>0){
//PORTA=0b11011111;
PORTA=0xff;_delay_ms(1000);PORTA=0b00000000;
_delay_ms(1000);PORTA=0xff;
_delay_ms(1000);PORTA=0b00000000;
_delay_ms(1000);PORTA=0xff;
_delay_ms(1000);PORTA=0b00000000;
}else
{//PORTA=0b11101111;PORTA=0xff;
_delay_ms(1000);PORTA=0b00000000;
_delay_ms(1000);PORTA=0xff;
_delay_ms(1000);PORTA=0b00000000;
_delay_ms(1000);
7/25/2019 code of RFID for Atmega 16
5/6
PORTA=0xff;_delay_ms(1000);PORTA=0b00000000;
_delay_ms(1000);PORTA=0xff;
_delay_ms(1000);PORTA=0b00000000;
}}else if(cdiff==-3 || cdiff==1){
if(ndiff>0){
//PORTA=0b11101111;PORTA=0xff;
_delay_ms(1000);PORTA=0b00000000;
_delay_ms(1000);PORTA=0xff;
_delay_ms(1000);PORTA=0b00000000;
_delay_ms(1000);PORTA=0xff;
_delay_ms(1000);
PORTA=0b00000000;_delay_ms(1000);PORTA=0xff;
_delay_ms(1000);PORTA=0b00000000;
}else{
//PORTA=0b11011111;PORTA=0xff;
_delay_ms(1000);PORTA=0b00000000;
_delay_ms(1000);
PORTA=0xff;_delay_ms(1000);PORTA=0b00000000;
_delay_ms(1000);PORTA=0xff;
_delay_ms(1000);PORTA=0b00000000;
}}prev=curr;curr=next;int x;x=rf();
while(x!=curr){
if(x!=prev){
curr=x;next=x;f_arr(size,map,dest,curr,f);break;
}
7/25/2019 code of RFID for Atmega 16
6/6
x=rf();}if(curr==dest){
//PORTA=0b11110111;PORTA = 0b11111111;
_delay_ms(5000);PORTA = 0b00000000;
}}
}}