זיהוי תדרי רדיו (RFID) משתמש בתדר רדיו לקריאת מידע המאוחסן בכרטיס RFID או בתג. בפרויקט זה נעבור לממשק EM-18 קורא RFID עם מיקרו - בקר 8051 ולהציג את מספר כרטיס ה- RFID בתצוגת LCD 16 * 2. זיהוי RF אלחוטי זה משמש במערכות רבות כמו מערכת נוכחות מבוססת RFID, מערכות אבטחה, מכונות הצבעה וכו '. פרויקט זה ישמש גם כממשק תקין של LCD 16 * 2 עם מיקרו-בקר 8051.
רכיבים נדרשים:
- מיקרו-בקר 8051
- קורא RFID EM-18
- 16 * 2 תצוגת LCD
- כרטיסי / תגי RFID
- פוטנציומטר
- חוטי מגשר
תרשים מעגל:
מיקרו-בקר 8051:
מיקרו-בקר 8051 הוא מיקרו-בקר של 8 סיביות אשר כולל 128 בתים של זיכרון RAM, 4K בתים של שבב ROM, שני טיימרים, יציאה טורית אחת וארבע יציאות 8 ביט. מיקרו-בקר 8052 הוא הרחבה של מיקרו-בקר. הטבלה שלהלן מציגה את ההשוואה בין 8051 בני משפחה.
תכונה |
8051 |
8052 |
ROM (בתים) |
4K |
8K |
זיכרון RAM (בתים) |
128 |
256 |
טיימרים |
2 |
3 |
סיכות קלט / פלט |
32 |
32 |
יציאה טורית |
1 |
1 |
להפריע למקורות |
6 |
8 |
LCD 16x2:
16 * 2 LCD הוא תצוגה בשימוש נרחב ליישומים משובצים. הנה ההסבר הקצר על סיכות ועבודה של תצוגת LCD 16 * 2. ישנם שני רושמים חשובים מאוד בתוך ה- LCD. הם רישום נתונים ורישום פקודות. רישום הפקודה משמש לשליחת פקודות כגון תצוגה ברורה, סמן בבית וכו ', רישום נתונים משמש לשליחת נתונים אשר מוצגים על גבי 16 * 2 LCD. להלן הטבלה מציגה את תיאור הסיכה של 16 * 2 lcd.
פִּין |
סֵמֶל |
קלט / פלט |
תיאור |
1 |
Vss |
- |
קרקע, אדמה |
2 |
Vdd |
- |
+ ספק כוח 5V |
3 |
וי |
- |
ספק כוח לשליטה בניגודיות |
4 |
RS |
אני |
RS = 0 לרישום פקודות, RS = 1 לרישום נתונים |
5 |
RW |
אני |
R / W = 0 לכתיבה, R / W = 1 לקריאה |
6 |
ה |
קלט / פלט |
לְאַפשֵׁר |
7 |
D0 |
קלט / פלט |
אוטובוס נתונים של 8 סיביות (LSB) |
8 |
D1 |
קלט / פלט |
אוטובוס נתונים של 8 סיביות |
9 |
D2 |
קלט / פלט |
אוטובוס נתונים של 8 סיביות |
10 |
D3 |
קלט / פלט |
אוטובוס נתונים של 8 סיביות |
11 |
D4 |
קלט / פלט |
אוטובוס נתונים של 8 סיביות |
12 |
D5 |
קלט / פלט |
אוטובוס נתונים של 8 סיביות |
13 |
D6 |
קלט / פלט |
אוטובוס נתונים של 8 סיביות |
14 |
D7 |
קלט / פלט |
אוטובוס נתונים של 8 סיביות (MSB) |
15 |
א |
- |
+ 5 וולט לתאורה אחורית |
16 |
ק |
- |
קרקע, אדמה |
הטבלה שלהלן מציגה קודי פיקוד LCD הנפוצים.
קוד (hex) |
תיאור |
01 |
נקה מסך תצוגה |
06 |
סמן תוספת (משמרת ימינה) |
0 א |
תצוגה כבויה, סמן פועל |
0C |
תצוגה מופעלת, סמן כבוי |
0F |
התצוגה מופעלת, הסמן מהבהב |
80 |
להכריח את הסמן לתחילת 1 st קו |
C0 |
כפה את הסמן לתחילת השורה השנייה |
38 |
2 שורות ומטריקס 5 * 7 |
EM-18 קורא RFID:
קורא RFID EM-18 פועל ב 125 קילוהרץ והוא מגיע עם אנטנה על שבב וניתן להפעיל אותו באמצעות ספק כוח 5V. הוא מספק פלט סדרתי יחד עם פלט weigand. הטווח נע סביב 8-12 ס"מ. פרמטרים של תקשורת טורית הם 9600bps, 8 סיביות נתונים, סיבית עצירה אחת. היישומים שלה כוללים אימות, תמחור כבישים אלקטרוניים, כרטיסים אלקטרוניים לתחבורה ציבורית, מערכות נוכחות וכו 'בדוק את כל פרויקטי ה- RFID כאן.
הפלט שמספק קורא RFID EM-18 הוא בפורמט ASCII בן 12 ספרות. מתוך 12 ספרות 10 הספרות הראשונות הן מספר הכרטיס ושתי הספרות האחרונות הן תוצאת XOR של מספר הכרטיס. שתי הספרות האחרונות משמשות לבדיקת שגיאות.
לדוגמא, מספר הכרטיס הוא 0200107D0D62 הנקרא מהקורא ואז מספר הכרטיס בכרטיס יהיה להלן.
02 - הקדמה
00107D0D = 1080589 בעשרוני.
62 הוא ערך XOR עבור (02 XOR 00 XOR 10 XOR 7D XOR 0D).
מכאן שהמספר בכרטיס הוא 0001080589.
הסבר על עבודה וקוד:
וידאו תכנית והדגמת C המלא עבור פרויקט זה ניתן בסוף הפרויקט הזה. הקוד מחולק לנתחים משמעותיים קטנים ומוסבר להלן.
עבור ממשק 16 * 2 LCD עם מיקרו-בקר 8051, עלינו להגדיר סיכות שעליהן מחובר 16 * 2 lcd למיקרו-בקר 8051. סיכת RS של 16 * 2 lcd מחוברת ל- P3.7, סיכת RW של 16 * 2 lcd מחוברת ל- P3.6 וסיכה E של 16 * 2 lcd מחוברת ל- P3.5. סיכות נתונים מחוברות ליציאה 1 של מיקרו-בקר 8051.
sbit rs = P3 ^ 7; sbit rw = P3 ^ 6; sbit en = P3 ^ 5;
בשלב הבא עלינו להגדיר כמה פונקציות המשמשות בתוכנית. פונקציית עיכוב משמשת ליצירת עיכוב זמן מוגדר. פונקציית Cmdwrt משמשת לשליחת פקודות לתצוגה 16 * 2 lcd. פונקציית datawrt משמשת לשליחת נתונים לתצוגה 16 * 2 lcd. פונקציית Rxdata משמשת לקבלת נתונים מהיציאה הטורית.
עיכוב חלל (int חתום); חלל cmdwrt (char לא חתום); datawrt בטל (char לא חתום); char rxdata (בטל);
בחלק זה של הקוד אנו הולכים להגדיר 8051 מיקרו-בקר לתקשורת טורית.
רישום TMOD נטען עם 0x20 לטיימר 1, מצב 2 (טעינה אוטומטית). SCON register נטען עם 0x50 עבור 8 סיביות נתונים, סיבית עצירה אחת וקבלה מופעלת. רישום TH1 נטען ב- 0xfd לקצב שידור של 9600 ביט לשנייה. TR1 = 1 משמש להפעלת הטיימר.
TMOD = 0x20; SCON = 0x50; TH1 = 0xfd; TR1 = 1;
בחלק זה של הקוד אנו שולחים פקודות ל 16 * 2 lcd. פקודות כגון תצוגה ברורה, סמן תוספת, לאלץ את הסמן לתחילת 1 st הקו נשלח 16 * 2 LCD תצוגה אחד אחד לאחר כמה וכמה עיכוב זמן מוגדר.
עבור (i = 0; i <5; i ++) {cmdwrt (cmd); עיכוב (1); }
בחלק זה של הקוד אנו מקבלים את הפלט של קורא ה- RFID EM-18 דרך ממשק סדרתי של מיקרו-בקר 8051 ומאוחסן במשתנה. ספירה משמשת לעקוב אחר מספר הבתים שהתקבלו. לאחר שהתקבלו כל 12 בייט הנתונים, הבא עלינו להציג אותם בתצוגה 16 * 2 lcd. תהליך זה חוזר על עצמו לנצח על מנת לקרוא קלפים שונים.
ואילו (1) {count = 0; cmdwrt (0xC2); בעוד (ספירה <12) {input = rxdata (); ספירת ++; } עבור (i = 0; i <12; i ++) {datawrt (קלט); עיכוב (1); } עיכוב (100); }
בחלק זה של הקוד אנו שולחים פקודות לתצוגה 16 * 2 lcd. הפקודה מועתקת ליציאה 1 של 8051 מיקרו-בקר. RS מופחת עבור כתיבת פקודה. RW הוא נמוך עבור פעולת כתיבה. דופק גבוה עד נמוך מוחל על סיכת הפעלה (E) להפעלת כתיבת הפקודה.
חלל cmdwrt (char x לא חתום) {P1 = x; rs = 0; rw = 0; en = 1; עיכוב (1); en = 0; }
בחלק זה של הקוד אנו שולחים נתונים לתצוגה 16 * 2 lcd. הנתונים מועתקים ליציאה 1 של 8051 מיקרו-בקר. RS עשוי גבוה לכתיבת פקודות. RW הוא נמוך עבור פעולת כתיבה. דופק גבוה עד נמוך מוחל על סיכת הפעלה (E) להפעלת פעולת כתיבת נתונים.
datawrt בטל (char y לא חתום) {P1 = y; rs = 1; rw = 0; en = 1; עיכוב (1); en = 0; } כמו כן, בדוק את כל פרויקטי ה- RFID שלנו עם מיקרו-בקרים אחרים.