- Būtini komponentai:
- Grandinės schema:
- 8051 mikrovaldiklis:
- 16x2 LCD ekranas:
- EM-18 RFID skaitytuvas:
- Darbo ir kodo paaiškinimas:
Radijo dažnio identifikavimas (RFID) naudoja radijo dažnį informacijai, saugomai RFID kortelėje ar etiketėje, nuskaityti. Šiame projekte mes ketiname naudoti sąsajos EM-18 RFID skaitytuvą su 8051 mikrovaldikliu ir rodyti RFID kortelės numerį 16 * 2 LCD ekrane. Šis bevielis radijo dažnio identifikavimas naudojamas daugelyje sistemų, pavyzdžiui, RFID priklausančioje lankomumo sistemoje, apsaugos sistemose, balsavimo mašinose ir kt. Šis projektas taip pat bus tinkamas 16 * 2 skystųjų kristalų ir 8051 mikrovaldiklio sąsaja.
Būtini komponentai:
- 8051 mikrovaldiklis
- EM-18 RFID skaitytuvas
- 16 * 2 LCD ekranas
- RDA kortelės / žymos
- Potenciometras
- Džemperių laidai
Grandinės schema:
8051 mikrovaldiklis:
8051 mikrovaldiklis yra 8 bitų mikrovaldiklis, turintis 128 baitų lusto RAM, 4K baitų lusto ROM, du laikmačius, vieną nuoseklųjį ir keturis 8 bitų prievadus. 8052 mikrovaldiklis yra mikrovaldiklio pratęsimas. Žemiau esančioje lentelėje parodytas 8051 šeimos nario palyginimas.
Funkcija |
8051 |
8052 |
ROM (baitais) |
4K |
8 tūkst |
RAM (baitai) |
128 |
256 |
Laikmačiai |
2 |
3 |
I / O kaiščiai |
32 |
32 |
Nuoseklusis prievadas |
1 |
1 |
Nutraukti šaltinius |
6 |
8 |
16x2 LCD ekranas:
16 * 2 skystųjų kristalų ekranas yra plačiai naudojamas įterptųjų programų ekranas. Čia yra trumpas paaiškinimas apie 16 * 2 skystųjų kristalų ekrano kaiščius ir veikimą. Skystųjų kristalų ekrane yra du labai svarbūs registrai. Jie yra duomenų registras ir komandų registras. Komandų registras naudojamas komandoms siųsti, pvz., Išvalyti ekraną, žymeklį namuose ir pan., Duomenų registras naudojamas duomenims, kurie turi būti rodomi 16 * 2 LCD, siųsti. Žemiau esančioje lentelėje pateikiamas 16 * 2 lcd kaiščių aprašymas.
Smeigtukas |
Simbolis |
I / O |
apibūdinimas |
1 |
Vss |
- |
Žemė |
2 |
Vdd |
- |
+ 5 V maitinimo šaltinis |
3 |
Vee |
- |
Maitinimas, skirtas kontroliuoti kontrastą |
4 |
RS |
Aš |
RS = 0 komandų registrui, RS = 1 duomenų registrui |
5 |
RW |
Aš |
R / W = 0 rašant, R / W = 1 skaitant |
6 |
E |
I / O |
Įgalinti |
7 |
D0 |
I / O |
8 bitų duomenų magistralė (LSB) |
8 |
D1 |
I / O |
8 bitų duomenų magistralė |
9 |
D2 |
I / O |
8 bitų duomenų magistralė |
10 |
D3 |
I / O |
8 bitų duomenų magistralė |
11 |
D4 |
I / O |
8 bitų duomenų magistralė |
12 |
D5 |
I / O |
8 bitų duomenų magistralė |
13 |
D6 |
I / O |
8 bitų duomenų magistralė |
14 |
D7 |
I / O |
8 bitų duomenų magistralė (MSB) |
15 |
A |
- |
+ 5 V apšvietimui |
16 |
K. |
- |
Žemė |
Žemiau esančioje lentelėje pateikiami dažnai naudojami LCD komandų kodai.
Kodas (šešiakampis) |
apibūdinimas |
01 |
Išvalyti ekraną |
06 |
Padidėjimo žymeklis (dešinysis poslinkis) |
0A |
Rodymas išjungtas, žymeklis įjungtas |
0C |
Ekranas įjungtas, žymeklis išjungtas |
0F |
Ekranas įjungtas, žymeklis mirksi |
80 |
Priversti žymeklį pradedant 1 -osios linijos |
C0 |
Priverskite žymeklį į antrosios eilutės pradžią |
38 |
2 eilutės ir 5 * 7 matrica |
EM-18 RFID skaitytuvas:
EM-18 RFID skaitytuvas veikia 125 KHz dažniu, jame yra ant lusto esanti antena ir jis gali būti maitinamas naudojant 5 V maitinimo šaltinį. Ji teikia serijinę išvestį kartu su weigand išvestimi. Diapazonas yra apie 8-12 cm. nuoseklaus ryšio parametrai yra 9600 bps, 8 duomenų bitai, 1 stop bitas. Programa apima autentifikavimą, e. Rinkliavos už kelių kainas, viešojo transporto e. Bilietų pardavimo, lankomumo sistemas ir kt. Čia patikrinkite visus RDA projektus.
EM-18 RFID skaitytuvo išvestis yra 12 skaitmenų ASCII formato. Iš 12 skaitmenų pirmieji 10 skaitmenų yra kortelės numeris, o paskutiniai du skaitmenys yra kortelės numerio XOR rezultatas. Paskutiniai du skaitmenys naudojami tikrinant klaidas.
Pavyzdžiui, kortelės numeris yra 0200107D0D62, nuskaitytas iš skaitytuvo, tada kortelėje esantis kortelės numeris bus toks, koks yra žemiau.
02 - preambulė
00107D0D = 1080589 po kablelio
62 yra XOR reikšmė (02 XOR 00 XOR 10 XOR 7D XOR 0D).
Taigi kortelės numeris yra 0001080589.
Darbo ir kodo paaiškinimas:
Visa C programa ir šio projekto demonstracinis vaizdo įrašas pateikiami šio projekto pabaigoje. Kodas yra padalintas į mažus reikšmingus gabalėlius ir paaiškinamas toliau.
16 * 2 skystųjų kristalų sąsajai su 8051 mikrovaldikliu turime apibrėžti kaiščius, ant kurių 16 * 2 lcd yra prijungtas prie 8051 mikrovaldiklio. RS kaištis 16 * 2 lcd yra prijungtas prie P3.7, RW kaištis 16 * 2 lcd yra prijungtas prie P3.6 ir E kaištis 16 * 2 lcd yra prijungtas prie P3.5. Duomenų kaiščiai yra prijungti prie 8051 mikrovaldiklio 1 prievado.
sbit rs = P3 ^ 7; sbit rw = P3 ^ 6; sbit en = P3 ^ 5;
Toliau turime apibrėžti keletą funkcijų, kurios naudojamos programoje. Vėlavimo funkcija naudojama nurodytam laiko atidėjimui sukurti. „Cmdwrt“ funkcija naudojama komandoms siųsti į 16 * 2 LCD ekraną. datawrt funkcija naudojama duomenims siųsti į 16 * 2 lcd ekraną. Rxdata funkcija naudojama duomenims gauti iš nuoseklaus prievado.
negaliojantis vėlavimas (nepasirašytas int); void cmdwrt (nepasirašyta char); void datawrt (nepasirašyta simbolis); char rxdata (niekinis);
Šioje kodo dalyje mes ketiname konfigūruoti 8051 mikrovaldiklį nuosekliam ryšiui.
TMOD registre yra 0x20 laikmatis 1, 2 režimas (automatinis perkrovimas). SCON registre yra 0x50 už 8 duomenų bitus, 1 stop bitą ir priėmimą. TH1 registras yra įkeltas su 0xfd, kai perdavimo sparta yra 9600 bitų per sekundę. TR1 = 1 naudojamas laikmatiui paleisti.
TMOD = 0x20; SCON = 0x50; TH1 = 0xfd; TR1 = 1;
Šioje kodo dalyje mes siunčiame komandas į 16 * 2 lcd. Komandos pavyzdžiui, ryškus ekranas, prieaugio žymeklio, priversti žymeklį pradedant 1 -osios linijos yra siunčiami į 16 * 2 LCD ekranas vienas po kai kai nurodyta delsa.
už (i = 0; i <5; i ++) {cmdwrt (cmd); vėlavimas (1); }
Šioje kodo dalyje mes gauname EM-18 RFID skaitytuvo išvestį per nuosekliąją 8051 mikrovaldiklio sąsają ir saugome kintamajame. Skaičiavimas naudojamas sekant gautų baitų skaičių. Gavę visus 12 baitų duomenis, mes turime juos rodyti 16 * 2 lcd ekrane. Šis procesas kartojamas amžinai, norint perskaityti skirtingas korteles.
o (1) {skaičius = 0; cmdwrt (0xC2); while (skaičius <12) {input = rxdata (); skaičius ++; } for (i = 0; i <12; i ++) {datawrt (įvestis); vėlavimas (1); } vėlavimas (100); }
Šioje kodo dalyje mes siunčiame komandas į 16 * 2 lcd ekraną. Komanda nukopijuota į 8051 mikrovaldiklio 1 prievadą. RS komandų rašymui yra mažai. RW yra žemas rašymo operacijai. Įjungimo (E) kaiščiui taikomas didelis arba mažas impulsas, kad būtų pradėta komandų rašymo operacija.
negaliojantis cmdwrt (nepasirašytas simbolis x) {P1 = x; rs = 0; rw = 0; lt = 1; vėlavimas (1); lt = 0; }
Šioje kodo dalyje duomenis siunčiame į 16 * 2 lcd ekraną. Duomenys nukopijuojami į 8051 mikrovaldiklio 1 prievadą. RS yra aukštas komandų rašymui. RW yra žemas rašymo operacijai. Įjungimo (E) kaiščiui taikomas didelis arba mažas impulsas, kad būtų galima pradėti rašyti duomenis.
void datawrt (nepasirašyta char y) {P1 = y; rs = 1; rw = 0; lt = 1; vėlavimas (1); lt = 0; } Be to, patikrinkite visus mūsų RDA projektus su kitais mikrovaldikliais.