سلام دوستان من ماژول EM-18 را خریدم و راش انداختم ولی با برنامم اصلا جواب نمیده و وقتی تگ و میزنم جواب نمی ده این برناممه اگه میشه کمک کنید
کد:
#include <mega32.h> #include <delay.h> #include <stdio.h> #include <alcd.h> #define up PINB.4 #define down PINB.5 #define okey PINB.6 eeprom unsigned char card1[14],card2[14],card3[14],card4[14],card5[14],card6[14],card7[14],card8[14],card9[14],card10[14]; bit whileflag,key; char cn; char cno[16]; unsigned char buff[14],buffread[14],usartcounter,counter,cardnumber=1,equal,c,i,l; void led_green(void); void led_red(void); void read_card(void); void save_card(void); //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> interrupt [14] void get_data() { buff[usartcounter]=UDR; if(usartcounter==13) { whileflag=1; usartcounter=0; } else if(usartcounter==!13)usartcounter++; } //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> interrupt[2] void saveing() { lcd_clear(); lcd_gotoxy(0,0); lcd_putsf("pass new card"); delay_ms(1000); read_card(); save_card(); //led_green(); } //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> void read_card(void) { for(c=0;c<14;c++)buffread[c]=getchar(); } //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> void save_card(void) { switch (cardnumber) { case 1: for(c=0;c<14;c++) { card1[c]=buffread[c]; } cardnumber=2; lcd_clear(); lcd_gotoxy(0,0); lcd_putsf("card(1) saved"); led_green(); delay_ms(2000); break; case 2: for(c=0;c<14;c++) { card2[c]=buffread[c]; } cardnumber=3; lcd_clear(); lcd_gotoxy(0,0); lcd_putsf("card(2) saved"); led_green(); delay_ms(2000); break; case 3: for(c=0;c<14;c++) { card3[c]=buffread[c]; } cardnumber=4; lcd_clear(); lcd_gotoxy(0,0); lcd_putsf("card(3) saved"); led_green(); delay_ms(2000); break; case 4: for(c=0;c<14;c++) { card4[c]=buffread[c]; } cardnumber=5; lcd_clear(); lcd_gotoxy(0,0); lcd_putsf("card(4) saved"); led_green(); delay_ms(2000); break; case 5: for(c=0;c<14;c++) { card5[c]=buffread[c]; } cardnumber=6; lcd_clear(); lcd_gotoxy(0,0); lcd_putsf("card(5) saved"); led_green(); delay_ms(2000); break; case 6: for(c=0;c<14;c++) { card6[c]=buffread[c]; } cardnumber=7; lcd_clear(); lcd_gotoxy(0,0); lcd_putsf("card(6) saved"); led_green(); delay_ms(2000); break; case 7: for(c=0;c<14;c++) { card7[c]=buffread[c]; } cardnumber=8; lcd_clear(); lcd_gotoxy(0,0); lcd_putsf("card(7) saved"); led_green(); delay_ms(2000); break; case 8: for(c=0;c<14;c++) { card8[c]=buffread[c]; } cardnumber=9; lcd_clear(); lcd_gotoxy(0,0); lcd_putsf("card(8) saved"); led_green(); delay_ms(2000); break; case 9: for(c=0;c<14;c++) { card9[c]=buffread[c]; } cardnumber=10; lcd_clear(); lcd_gotoxy(0,0); lcd_putsf("card(9) saved"); led_green(); delay_ms(2000); break; case 10: for(c=0;c<14;c++) { card10[c]=buffread[c]; } cardnumber=11; lcd_clear(); lcd_gotoxy(0,0); lcd_putsf("card(10) saved"); led_green(); delay_ms(2000); break; case 11: lcd_clear(); lcd_gotoxy(0,0); lcd_putsf("card full !!!"); delay_ms(2000); break; } } //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> interrupt [3] void cleaning() { key=1; lcd_clear(); lcd_gotoxy(0,0); lcd_putsf("select card NO:"); while(key) { if(up==0) { while(up==0); delay_us(30); cn++; if(cn>10)cn=0; delay_us(30); lcd_clear(); lcd_gotoxy(0,1); sprintf(cno,"card = %u",cn); lcd_puts(cno); } if(down==0) { while(down==0); delay_us(30); if(cn<=0)cn=1; cn--; delay_us(30); lcd_clear(); lcd_gotoxy(0,1); sprintf(cno,"card = %u",cn); lcd_puts(cno); } if(okey==0) { while(okey==0); delay_us(30); key=0; } } switch(cn) { case 1: for(c=0;c<14;c++) { card1[c]=0; } cardnumber=1; lcd_clear(); lcd_gotoxy(0,0); lcd_putsf("card(1) earased"); delay_ms(2000); cn=0; break; case 2: for(c=0;c<14;c++) { card2[c]=0; } cardnumber=2; lcd_clear(); lcd_gotoxy(0,0); lcd_putsf("card(2) earased"); delay_ms(2000); cn=0; break; case 3: for(c=0;c<14;c++) { card3[c]=0; } cardnumber=3; lcd_clear(); lcd_gotoxy(0,0); lcd_putsf("card(3) earased"); delay_ms(2000); cn=0; break; case 4: for(c=0;c<14;c++) { card4[c]=0; } cardnumber=4; lcd_clear(); lcd_gotoxy(0,0); lcd_putsf("card(4) earased"); delay_ms(2000); cn=0; break; case 5: for(c=0;c<14;c++) { card5[c]=0; } cardnumber=5; lcd_clear(); lcd_gotoxy(0,0); lcd_putsf("card(5) earased"); delay_ms(2000); cn=0; break; case 6: for(c=0;c<14;c++) { card6[c]=0; } cardnumber=6; lcd_clear(); lcd_gotoxy(0,0); lcd_putsf("card(6) earased"); delay_ms(2000); cn=0; break; case 7: for(c=0;c<14;c++) { card7[c]=0; } cardnumber=7; lcd_clear(); lcd_gotoxy(0,0); lcd_putsf("card(7) earased"); delay_ms(2000); cn=0; break; case 8: for(c=0;c<14;c++) { card8[c]=0; } cardnumber=8; lcd_clear(); lcd_gotoxy(0,0); lcd_putsf("card(8) earased"); delay_ms(2000); cn=0; break; case 9: for(c=0;c<14;c++) { card9[c]=0; } cardnumber=9; lcd_clear(); lcd_gotoxy(0,0); lcd_putsf("card(9) earased"); delay_ms(2000); cn=0; break; case 10: for(c=0;c<14;c++) { card10[c]=0; } cardnumber=10; lcd_clear(); lcd_gotoxy(0,0); lcd_putsf("card(10) earased"); delay_ms(2000); cn=0; break; } } //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> void main (void) { DDRB=0X8F; PORTB=0XF0; DDRD=0X00; PORTD=0XFF; UCSRA=0x00; UCSRB=0x90; UCSRC=0x06; UBRRH=0x00; UBRRL=6; MCUCR=0X00; GICR=0XC0; GIFR=0XC0; lcd_init(16); #asm("sei") resume: while(whileflag==0) { lcd_putsf("Pass Your Card\n>"); //wait for card delay_ms(50); lcd_clear(); lcd_putsf("Pass Your Card\n>>"); delay_ms(50); lcd_clear(); lcd_putsf("Pass Your Card\n>>>"); delay_ms(50); lcd_clear(); for(i=0;i<16;i++) { lcd_putsf("Pass Your Card"); lcd_gotoxy(i,1); lcd_putsf(">>>>"); delay_ms(50); lcd_clear(); } lcd_putsf("Pass Your Card\n <"); delay_ms(50); for(i=16;i>0;i--) { lcd_putsf("Pass Your Card"); lcd_gotoxy(i,1); lcd_putsf("<<<<"); delay_ms(50); lcd_clear(); } lcd_putsf("Pass Your Card\n<<<"); delay_ms(50); lcd_clear(); lcd_putsf("Pass Your Card\n<<"); delay_ms(50); lcd_clear(); lcd_putsf("Pass Your Card\n<"); delay_ms(50); lcd_clear(); } whileflag=0; for(counter=0;counter<14;counter++) { if(card1[counter]==buff[counter])equal++; } if(equal==14) { lcd_clear(); lcd_gotoxy(0,0); lcd_putsf("card (1)"); led_green(); goto resume; } equal=0; for(counter=0;counter<14;counter++) { if(card2[counter]==buff[counter])equal++; } if(equal==14) { lcd_clear(); lcd_gotoxy(0,0); lcd_putsf("card (2)"); led_green(); goto resume; } equal=0; for(counter=0;counter<14;counter++) { if(card3[counter]==buff[counter])equal++; } if(equal==14) { lcd_clear(); lcd_gotoxy(0,0); lcd_putsf("card (3)"); led_green(); goto resume; } equal=0; for(counter=0;counter<14;counter++) { if(card4[counter]==buff[counter])equal++; } if(equal==14) { lcd_clear(); lcd_gotoxy(0,0); lcd_putsf("card (4)"); led_green(); goto resume; } equal=0; for(counter=0;counter<14;counter++) { if(card5[counter]==buff[counter])equal++; } if(equal==14) { lcd_clear(); lcd_gotoxy(0,0); lcd_putsf("card (5)"); led_green(); goto resume; } equal=0; for(counter=0;counter<14;counter++) { if(card6[counter]==buff[counter])equal++; } if(equal==14) { lcd_clear(); lcd_gotoxy(0,0); lcd_putsf("card (6)"); led_green(); goto resume; } equal=0; for(counter=0;counter<14;counter++) { if(card7[counter]==buff[counter])equal++; } if(equal==14) { lcd_clear(); lcd_gotoxy(0,0); lcd_putsf("card (7)"); led_green(); goto resume; } equal=0; for(counter=0;counter<14;counter++) { if(card8[counter]==buff[counter])equal++; } if(equal==14) { lcd_clear(); lcd_gotoxy(0,0); lcd_putsf("card (8)"); led_green(); goto resume; } equal=0; for(counter=0;counter<14;counter++) { if(card9[counter]==buff[counter])equal++; } if(equal==14) { lcd_clear(); lcd_gotoxy(0,0); lcd_putsf("card (9)"); led_green(); goto resume; } equal=0; for(counter=0;counter<14;counter++) { if(card10[counter]==buff[counter])equal++; } if(equal==14) { lcd_clear(); lcd_gotoxy(0,0); lcd_putsf("card (10)"); led_green(); goto resume; } equal=0; if(equal<14) { lcd_clear(); lcd_gotoxy(0,0); lcd_putsf("card not matched"); led_red(); } } //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> void led_green(void) { for(l=0;l<4;l++) { PORTB.0=~PORTB.0; //led delay_ms(500); } PORTB.2=1; delay_ms(1000); //buzer PORTB.2=0; PORTB.3=1; delay_ms(1500); //relay PORTB.3=0; equal=0; } //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> void led_red(void) { for(l=0;l<4;l++) { PORTB.1=~PORTB.1; //led delay_ms(5000); } }
دیدگاه