- Nepieciešamās sastāvdaļas:
- Ķēdes shēma:
- 8051 mikrokontrolleris:
- 16x2 LCD:
- EM-18 RFID lasītājs:
- Darba un koda skaidrojums:
Radiofrekvenču identifikācija (RFID) izmanto radio frekvenci, lai nolasītu informāciju, kas saglabāta RFID kartē vai tagā. Šajā projektā mēs izmantosim saskarni EM-18 RFID lasītājs ar 8051 mikrokontrolleru un parādīsim RFID kartes numuru 16 * 2 LCD displejā. Šo bezvadu RF identifikāciju izmanto daudzās sistēmās, piemēram, uz RFID balstītu apmeklēšanas sistēmu, drošības sistēmās, balsošanas mašīnās utt. Šis projekts kalpos arī kā pareiza 16 * 2 LCD un 8051 mikrokontrollera saskarne.
Nepieciešamās sastāvdaļas:
- 8051 mikrokontrolleris
- EM-18 RFID lasītājs
- 16 * 2 LCD displejs
- RFID kartes / tagi
- Potenciometrs
- Džemperu vadi
Ķēdes shēma:
8051 mikrokontrolleris:
8051 mikrokontrolleris ir 8 bitu mikrokontrolleris, kuram ir 128 baiti mikroshēmas RAM, 4K baiti mikroshēmas ROM, divi taimeri, viens sērijas ports un četri 8 bitu porti. 8052 mikrokontrolleris ir mikrokontrollera paplašinājums. Zemāk esošajā tabulā parādīts 8051 ģimenes locekļa salīdzinājums.
Funkcija |
8051 |
8052 |
ROM (baitos) |
4K |
8 TŪKSTOŠI |
Operatīvā atmiņa (baiti) |
128. |
256. lpp |
Taimeri |
2 |
3 |
I / O tapas |
32 |
32 |
Seriālā osta |
1 |
1 |
Pārtraukt avotus |
6 |
8 |
16x2 LCD:
16 * 2 LCD ir plaši izmantots displejs iegultām lietojumprogrammām. Šeit ir īss paskaidrojums par 16 * 2 LCD displeja tapām un darbību. LCD iekšpusē ir divi ļoti svarīgi reģistri. Tie ir datu reģistrs un komandu reģistrs. Komandu reģistrs tiek izmantots, lai nosūtītu komandas, piemēram, dzidrs displejs, kursors mājās utt., Datu reģistrs tiek izmantots, lai nosūtītu datus, kas jāparāda uz 16 * 2 LCD. Zemāk esošajā tabulā parādīts tapas apraksts 16 * 2 LCD.
Piespraust |
Simbols |
I / O |
Apraksts |
1 |
Vss |
- |
Zeme |
2 |
Vdd |
- |
+ 5V barošanas avots |
3 |
Vee |
- |
Barošanas avots kontrasta kontrolei |
4 |
RS |
Es |
RS = 0 komandu reģistram, RS = 1 datu reģistram |
5 |
RW |
Es |
R / W = 0 rakstīšanai, R / W = 1 lasīšanai |
6 |
E |
I / O |
Iespējot |
7 |
D0 |
I / O |
8 bitu datu kopne (LSB) |
8 |
D1 |
I / O |
8 bitu datu kopne |
9 |
D2 |
I / O |
8 bitu datu kopne |
10 |
D3 |
I / O |
8 bitu datu kopne |
11 |
D4 |
I / O |
8 bitu datu kopne |
12 |
D5 |
I / O |
8 bitu datu kopne |
13 |
D6 |
I / O |
8 bitu datu kopne |
14 |
D7 |
I / O |
8 bitu datu kopne (MSB) |
15 |
A |
- |
+ 5V apgaismojumam |
16 |
K |
- |
Zeme |
Zemāk esošajā tabulā parādīti bieži izmantotie LCD komandu kodi.
Kods (sešstūris) |
Apraksts |
01 |
Notīrīt displeja ekrānu |
06 |
Palielināšanas kursors (labajā maiņā) |
0A |
Displejs izslēgts, kursors ieslēgts |
0C |
Displejs ieslēgts, kursors izslēgts |
0F |
Displejs ieslēgts, mirgo kursors |
80 |
Force kursoru sākums 1. st līnijas |
C0 |
Force kursoru beginningof 2 nd līniju |
38 |
2 līnijas un 5 * 7 matrica |
EM-18 RFID lasītājs:
EM-18 RFID lasītājs darbojas ar 125 KHz frekvenci, tam ir mikroshēmas antena, un to var darbināt ar 5 V barošanas avotu. Tas nodrošina sērijveida izvadi kopā ar weiganda izvadi. Diapazons ir aptuveni 8-12 cm. sērijveida sakaru parametri ir 9600 bps, 8 datu biti, 1 stop bits. Tās lietojumprogrammas ietver autentifikāciju, e-maksas ceļu cenas, e-biļetes sabiedriskajam transportam, apmeklēšanas sistēmas utt. Pārbaudiet visus RFID projektus šeit.
EM-18 RFID lasītāja nodrošinātā izeja ir 12 ciparu ASCII formātā. No 12 cipariem pirmie 10 cipari ir kartes numurs, bet pēdējie divi cipari ir kartes numura XOR rezultāts. Pēdējie divi cipari tiek izmantoti kļūdu pārbaudei.
Piemēram, kartes numurs ir 0200107D0D62, nolasīts no lasītāja, tad kartes numurs kartē būs šāds.
02 - preambula
00107D0D = 1080589 aiz komata.
62 ir XOR vērtība (02 XOR 00 XOR 10 XOR 7D XOR 0D).
Tādējādi kartes numurs ir 0001080589.
Darba un koda skaidrojums:
Pilnīga C programma un demonstrācijas video par šo projektu, ir dota beigās šo projektu. Kods ir sadalīts mazos nozīmīgos gabalos un paskaidrots tālāk.
16 * 2 LCD saskarnei ar 8051 mikrokontrolleru mums jānosaka tapas, uz kurām 16 * 2 lcd ir savienots ar 8051 mikrokontrolleru. RS tapa 16 * 2 lcd ir savienota ar P3.7, RW tapa 16 * 2 lcd ir savienota ar P3.6 un E tapa 16 * 2 lcd ir savienota ar P3.5. Datu tapas ir savienotas ar 8051 mikrokontrollera 1. pieslēgvietu.
sbit rs = P3 ^ 7; sbit rw = P3 ^ 6; sbit lv = P3 ^ 5;
Tālāk mums jānosaka dažas funkcijas, kuras tiek izmantotas programmā. Kavēšanās funkcija tiek izmantota, lai izveidotu noteiktu laika aizkavi. Funkcija Cmdwrt tiek izmantota komandu nosūtīšanai uz 16 * 2 LCD displeju. datawrt funkciju izmanto, lai nosūtītu datus uz 16 * 2 LCD displeju. Rxdata funkciju izmanto, lai saņemtu datus no seriālā porta.
void delay (neparakstīts int); void cmdwrt (neparakstīta char); void datawrt (neparakstīta char); char rxdata (spēkā neesošs);
Šajā koda daļā mēs konfigurēsim 8051 mikrokontrolleru seriālai saziņai.
TMOD reģistrā ir taimeris 1, 2. režīms (automātiskā atkārtota ielāde) ar 0x20. SCON reģistrā ir ielādēts 0x50 8 datu bitiem, 1 stop bits un iespējota saņemšana. TH1 reģistrs tiek ielādēts ar 0xfd, ja datu pārraides ātrums ir 9600 biti sekundē. TR1 = 1 tiek izmantots taimera palaišanai.
TMOD = 0x20; SCON = 0x50; TH1 = 0xfd; TR1 = 1;
Šajā koda daļā mēs sūtām komandas uz 16 * 2 lcd. Komandas, piemēram, skaidru displeju, pieauguma kursoru, piespiest kursoru sākums 1. st līnijas tiek nosūtīti 16 * 2 LCD displejs pa vienam, pēc tam, kad daži izvēlas noteikta laika aizture.
par (i = 0; i <5; i ++) {cmdwrt (cmd); kavēšanās (1); }
Šajā koda daļā mēs saņemam EM-18 RFID lasītāja izvadi caur 8051 mikrokontrollera seriālo saskarni un tiek glabāti mainīgajā. Skaits tiek izmantots, lai izsekotu saņemto baitu skaitu. Kad visi 12 baiti datu ir saņemti, tad mums tas ir jāparāda 16 * 2 lcd displejā. Šis process tiek atkārtots uz visiem laikiem, lai lasītu dažādas kartes.
kamēr (1) {skaits = 0; cmdwrt (0xC2); while (skaits <12) {ievade = rxdata (); skaits ++; } par (i = 0; i <12; i ++) {datawrt (ievade); kavēšanās (1); } kavēšanās (100); }
Šajā koda daļā mēs nosūtām komandas uz 16 * 2 LCD displeju. Komanda tiek kopēta 8051 mikrokontrollera 1. portā. RS ir zems komandu rakstīšanai. RW ir zema rakstīšanas operācijai. Iespējas (E) tapā tiek izmantots augsts vai zems impulss, lai sāktu komandas rakstīšanas darbību.
void cmdwrt (neparakstīta char x) {P1 = x; rs = 0; rw = 0; lv = 1; kavēšanās (1); lv = 0; }
Šajā koda daļā mēs sūtām datus uz 16 * 2 LCD displeju. Dati tiek kopēti 8051 mikrokontrollera 1. portā. RS ir paaugstināts komandu rakstīšanai. RW ir zema rakstīšanas operācijai. Iespējas (E) tapā tiek izmantots augsts vai zems impulss, lai sāktu datu rakstīšanas darbību.
void datawrt (neparakstīta char y) {P1 = y; rs = 1; rw = 0; lv = 1; kavēšanās (1); lv = 0; } Pārbaudiet arī visus mūsu RFID projektus ar citiem mikrokontrolleriem.