- Potrebne komponente:
- Kružni dijagram:
- 8051 Mikrokontroler:
- LCD od 16x2:
- EM-18 RFID čitač:
- Objašnjenje rada i koda:
Identifikacija radio frekvencije (RFID) koristi radio frekvenciju za čitanje podataka pohranjenih na RFID kartici ili oznaci. U ovom projektu idemo na Interface EM-18 RFID čitač s mikrokontrolerom 8051 i prikazati broj RFID kartice na LCD zaslonu 16 * 2. Ova bežična RF identifikacija koristi se u mnogim sustavima poput RFID sustava za prisustvo, sigurnosnih sustava, glasačkih strojeva itd. Ovaj će projekt također poslužiti kao pravilno povezivanje 16 * 2 LCD-a s mikrokontrolerom 8051.
Potrebne komponente:
- 8051 mikrokontroler
- Čitač RF-EM-18
- LCD zaslon od 16 * 2
- RFID kartice / oznake
- Potenciometar
- Žice kratkospojnika
Kružni dijagram:

8051 Mikrokontroler:
8051 mikrokontroler je 8-bitni mikrokontroler koji ima 128 bajta čip RAM-a, 4K bajta čip ROM-a, dva tajmera, jedan serijski port i četiri 8-bitna porta. 8052 mikrokontroler je produžetak mikrokontrolera. Tablica u nastavku prikazuje usporedbu 8051 člana obitelji.
|
Značajka |
8051 |
8052 |
|
ROM (u bajtovima) |
4K |
8K |
|
RAM (bajtovi) |
128 |
256 |
|
Tajmeri |
2 |
3 |
|
I / O igle |
32 |
32 |
|
Serijski priključak |
1 |
1 |
|
Izvori prekida |
6 |
8 |
LCD od 16x2:
LCD 16 * 2 široko je korišten zaslon za ugrađene aplikacije. Evo kratkog objašnjenja o pinovima i radu LCD zaslona 16 * 2. Unutar LCD-a nalaze se dva vrlo važna registra. Oni su registar podataka i registar naredbi. Registar naredbi koristi se za slanje naredbi poput jasnog prikaza, pokazivača kod kuće itd., Registar podataka koristi se za slanje podataka koji će se prikazati na LCD-u 16 * 2. Ispod tablice prikazan je pin opis 16 * 2 lcd.
|
Prikvači |
Simbol |
I / O |
Opis |
|
1 |
Vss |
- |
Prizemlje |
|
2 |
Vdd |
- |
+ 5V napajanje |
|
3 |
Vee |
- |
Napajanje za kontrolu kontrasta |
|
4 |
RS |
Ja |
RS = 0 za registar naredbi, RS = 1 za registar podataka |
|
5 |
RW |
Ja |
R / W = 0 za pisanje, R / W = 1 za čitanje |
|
6 |
E |
I / O |
Omogućiti |
|
7 |
D0 |
I / O |
8-bitna sabirnica podataka (LSB) |
|
8 |
D1 |
I / O |
8-bitna sabirnica podataka |
|
9 |
D2 |
I / O |
8-bitna sabirnica podataka |
|
10 |
D3 |
I / O |
8-bitna sabirnica podataka |
|
11 |
D4 |
I / O |
8-bitna sabirnica podataka |
|
12 |
D5 |
I / O |
8-bitna sabirnica podataka |
|
13 |
D6 |
I / O |
8-bitna sabirnica podataka |
|
14 |
D7 |
I / O |
8-bitna sabirnica podataka (MSB) |
|
15 |
A |
- |
+ 5V za pozadinsko osvjetljenje |
|
16 |
K |
- |
Prizemlje |
Tablica u nastavku prikazuje često korištene kodove LCD naredbi.
|
Šifra (hex) |
Opis |
|
01 |
Jasan zaslon |
|
06 |
Kursor za povećanje (pomak udesno) |
|
0A |
Zaslon isključen, pokazivač uključen |
|
0C |
Zaslon uključen, pokazivač isključen |
|
0F |
Zaslon uključen, pokazivač treperi |
|
80 |
Prisiliti kursor na početak 1. st linije |
|
C0 |
Prisilite kursor na početak 2. retka |
|
38 |
2 retka i matrica 5 * 7 |
EM-18 RFID čitač:
EM-18 RFID čitač radi na 125 KHz, isporučuje se s ugrađenom čipskom antenom i može se napajati napajanjem od 5 V. Pruža serijski izlaz zajedno s weigand izlazom. Raspon je oko 8-12 cm. parametri serijske komunikacije su 9600 bps, 8 podatkovnih bitova, 1 zaustavni bit. Njegova primjena uključuje provjeru autentičnosti, cijene cestarina s e-cestarinama, e-karte za javni prijevoz, sustave pohađanja itd. Ovdje provjerite sve RFID projekte.
Izlaz koji pruža EM-18 RFID čitač je u 12-znamenkastom ASCII formatu. Od 12 znamenki, prvih 10 znamenki je broj kartice, a posljednje dvije znamenke su XOR rezultat broja kartice. Posljednje dvije znamenke koriste se za provjeru pogrešaka.


Na primjer, broj kartice je 0200107D0D62 očitan iz čitača, a tada će broj kartice na kartici biti kao dolje.
02 - preambula
00107D0D = 1080589 u decimalu.
62 je XOR vrijednost za (02 XOR 00 XOR 10 XOR 7D XOR 0D).
Stoga je broj na kartici 0001080589.
Objašnjenje rada i koda:

Kompletan C program i demonstracija video za ovaj projekt daje na kraju ovog projekta. Kôd je podijeljen na male značajne dijelove i objašnjen u nastavku.
Za 16 * 2 LCD povezivanje s 8051 mikrokontrolerom, moramo definirati igle na kojima je 16 * 2 lcd povezan s 8051 mikrokontrolerom. RS pin od 16 * 2 lcd spojen je na P3.7, RW pin od 16 * 2 lcd spojen je na P3.6, a E pin od 16 * 2 lcd spojen je na P3.5. Priključci za podatke povezani su na priključak 1 mikrokontrolera 8051.
sbit rs = P3 ^ 7; sbit rw = P3 ^ 6; sbit en = P3 ^ 5;
Dalje moramo definirati neke funkcije koje se koriste u programu. Funkcija odgode koristi se za stvaranje određenog vremenskog kašnjenja. Funkcija Cmdwrt koristi se za slanje naredbi na LCD zaslon 16 * 2. datawrt funkcija koristi se za slanje podataka na 16 * 2 lcd zaslon. Rxdata funkcija koristi se za primanje podataka iz serijskog porta.
odgoda praznine (nepotpisan int); void cmdwrt (nepotpisani znak); void datawrt (nepotpisani znak); char rxdata (praznina);
U ovom dijelu koda konfigurirat ćemo mikrokontroler 8051 za serijsku komunikaciju.
Registar TMOD učitava se s 0x20 za tajmer 1, način 2 (automatsko ponovno učitavanje). Registar SCON učitan je s 0x50 za 8 podatkovnih bitova, 1 zaustavni bit i omogućen prijem. TH1 registar opterećen je 0xfd za brzinu prijenosa od 9600 bitova u sekundi. TR1 = 1 koristi se za pokretanje odbrojavanja.
TMOD = 0x20; SCON = 0x50; TH1 = 0xfd; TR1 = 1;
U ovom dijelu koda šaljemo naredbe na 16 * 2 lcd. Naredbe kao što su jasan prikaz, prirasta pokazivača, prisiliti kursor na početak 1. st linije su poslane na 16 * 2 LCD zaslon jednog po jednog nakon nekog nešto određeno vrijeme odgode.
za (i = 0; i <5; i ++) {cmdwrt (cmd); kašnjenje (1); }
U ovom dijelu koda primamo izlaz EM-18 RFID čitača kroz serijsko sučelje 8051 mikrokontrolera i pohranjeni u varijablu. Brojanje se koristi za praćenje broja primljenih bajtova. Jednom kada se primi svih 12 bajta podataka, sljedeći ih moramo prikazati na 16 * 2 lcd zaslonu. Ovaj se postupak ponavlja zauvijek kako bi se čitale različite kartice.
while (1) {count = 0; cmdwrt (0xC2); while (count <12) {input = rxdata (); brojati ++; } za (i = 0; i <12; i ++) {datawrt (ulaz); kašnjenje (1); } kašnjenje (100); }
U ovom dijelu koda šaljemo naredbe na LCD zaslon 16 * 2. Naredba se kopira na port 1 mikrokontrolera 8051. RS je smanjen za pisanje naredbi. RW je smanjen za operaciju pisanja. Puls visokog do niskog stupnja primjenjuje se na osovinici za omogućivanje (E) za pokretanje operacije pisanja naredbe.
praznina cmdwrt (nepotpisani char x) {P1 = x; rs = 0; rw = 0; en = 1; kašnjenje (1); en = 0; }
U ovom dijelu koda šaljemo podatke na LCD zaslon 16 * 2. Podaci se kopiraju u port 1 mikrokontrolera 8051. RS je visok za pisanje naredbi. RW je smanjen za operaciju pisanja. Puls visokog do niskog stupnja primjenjuje se na osovinici za omogućivanje (E) za pokretanje postupka upisivanja podataka.
void datawrt (nepotpisani znak y) {P1 = y; rs = 1; rw = 0; en = 1; kašnjenje (1); en = 0; } Također, provjerite sve naše RFID projekte s drugim mikrokontrolerima.
