سلام به دوستان عزیز : این پروژه آرم که در واقع دست کاری شده پروزه قبلی است؛ چون این میکرو بر خلاف AVR، حافظه EEPROM نداره با قطع برق هر کارتی ذخیره شده باشد اطلاعاتش میپره اگه بخواهیم که اطلاعاتمون باقی بماند باید یک حافظه خارجی در نظر بگیریم؛ چون من دو تا کارت بیشتر نداشتم واسه همین این برنامه برا دو تا کارت کار میکنه که به راحتی میشه به تعداد بالا تعمیمش داد.
پروژه دربازکن rfid با میکروکنترلر at91sam7x256
شماتیک پروژه rfid با at91sam7x256 :
کد پروژه rfid با at91sam7x256 :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 |
/*IN THE NAME OF ALLAH THE ALL BENEFICENT THE ALL MERCIFUL THE PROJECT CREACTED BY HOSSEIN SHEIKH BEIRAGY IN MONTAZERI UNIVERSITY OF MASHAD IN Tuesday - 2016 25 May*/ #include <AT91SAM7X256.H> #include <delay.h> #define LCD_PORT_B #define LCD_RS 0 #define LCD_E 1 #define LCD_DB0 2 #define LCD_DB1 3 #define LCD_DB2 4 #define LCD_DB3 5 #define LCD_DB4 6 #define LCD_DB5 7 #define LCD_DB6 8 #define LCD_DB7 9 #include <lcd.h> #include<usart.c> #include<string.h> #include<PIO.h> char str[13]={1}; char str2[13]; int i; int main () { *AT91C_PMC_PCER = 1<<2; // تغذیه "پورت ای" را فعال می کند به خاطر اینکه می خوایم مقدار بخوانیم *AT91C_PIOA_PER =0X1; // پایه صفرم از "پورت ای" را فعال می کند *AT91C_PIOA_ODR =0X1; // پایه صفرم از "پورت ای" را ورودی قرار میدهیم *AT91C_PIOA_PER =0X4; // پایه دوم از "پورت ای" را فعال می کند *AT91C_PIOA_OER =0X4; // پایه دوم از "پورت ای" را ورودی قرار میدهیم *AT91C_PIOA_PPUER =0X1; // مقاومت "پول آپ" را برای پایه صفر فعال میکند تا موقعی که شستی فشرده شد و به زمین وصل شد میکرو آسیب نبیند. *AT91C_PMC_PCER = 1<<7; //clk vazifeh janeby usart *AT91C_PIOA_PDR =(1<<5 | 1<<6);//az halat vorody ya khorojy bodan dar miavarad *AT91C_PIOA_ASR =(1<<5 | 1<<6);//faal kardan vazifeh janeby A (usart1) *AT91C_US1_CR =0X24;//reset gheir faaal girandeh(RX) *AT91C_US1_MR =0X1008C0;//tanzimat vorody over ... *AT91C_US1_BRGR =0X138;//9600 *AT91C_US1_CR =1<<4;//faal girandeh //USART_configInt(1,4,__usart_int); //USART_EnableInt(1,3); lcd_init(); lcd_clear(); while(1) { i = (*AT91C_PIOA_PDSR);//MEGDAR I RA BARABAR PORT A MIKONAD i = i & 0X1; //BA PAYEH YEK & MIKONAD PASS BAGIYEH SEFR MISHAVAD lcd_gotoxy(1,1); lcd_putsf("sheikh beiragy"); lcd_gotoxy(1,16); lcd_puts(i); USART_ReadBuffer(1,str,12);// DARYAFT CODE RESHTEIE AZ USART1 BA TOL 12 lcd_gotoxy(2,1); lcd_putsf(str);//NAMAYESH CODE RESHTEIE if(i==0) { // اگر شستی زده شد strcpy(str2,str);// COPY KARDAN MEGDAR STR DAR STR2 lcd_clear(); lcd_gotoxy(1,1); lcd_putsf("sheikh beiragy"); lcd_gotoxy(2,1); lcd_putsf("...SAVED..."); delay_s(2); strcpy(str,".TAKE KART."); lcd_clear(); } if(!strcmp(str2,str)) {// AGAR STR == STR2 lcd_clear(); lcd_gotoxy(1,1); lcd_putsf("...opened..."); *AT91C_PIOA_SODR =0X4; // روشن شدن led open door lcd_gotoxy(2,1); lcd_putsf("...WELCOME..."); lcd_puts(1); lcd_shift_right(2); delay_ms(200); lcd_shift_right(2); delay_ms(200); lcd_shift_right(2); delay_ms(200); lcd_shift_left(2); delay_ms(200); lcd_shift_left(2); delay_ms(200); lcd_shift_left(1); delay_ms(200); strcpy(str,".TAKE KART."); //COPY CARDAN TAKE KART DAR STR *AT91C_PIOA_CODR =0X4; // خاموش شدن led open door lcd_clear(); } } } |
خط 4 تا 20 : تا اینجا هدر فایل ها به برنامه ضمیمه شده و پایه های ال سی دی پیکر بندی شده برای اطلاع بیشتر به پروژه قبلی سر بزنید.
خط 22 تا 24 : تعریف دو کد رشته ای به نام STR (برای نمایش کد کارت) و str2 برای شماره کارتی که ذخیره می شود و تعریف یک متغیر(INT) برای خواندن مقدار پایه صفر از PORTA
فیلم پروژه rfid با at91sam7x256 :
http://www.aparat.com/v/GgchA
مهمان
سلام
فایل usart.c میشه برای من بفرستید
مهمان
سلام
تو پروتوس RFID رو از کجا آوردی؟
مهمان
سلام خسته نباشید ……من برای پروژه کارشناسیم میخوام اینو ارائه بدم ….حتما کار میکنه مهندس جان
مدیر سایت
سلام – لطفا این کار رو نکنید – بنده و نویسنده های دیگه به هیچ وجع راضی نیستن که پروژه های توی سایت به عنوان پروژه دانشجویی به استاد داده شود.
نویسنده این مطلب
سلام حتما کار میکنه ولی برای پروژه کارشناسی سعی کن چیزی رو انتخاب کن که چیزای جدیدی یاد بگیری نه اینکه یک پروژه ساخته شده توسط دیگران رو ارائه بدی