- Požadované komponenty:
- Kruhový diagram:
- Mikrokontrolér 8051:
- 16x2 LCD:
- Čtečka RFID EM-18:
- Pracovní a vysvětlení kódu:
Radiofrekvenční identifikace (RFID) využívá vysokofrekvenční frekvenci ke čtení informací uložených na kartě nebo štítku RFID. V tomto projektu se chystáme na RFID čtečku rozhraní EM-18 s mikrokontrolérem 8051 a zobrazením čísla RFID karty na 16 * 2 LCD displeji. Tato bezdrátová RF identifikace se používá v mnoha systémech, jako je docházkový systém založený na RFID, bezpečnostní systémy, hlasovací automaty atd. Tento projekt bude také sloužit jako správné propojení 16 * 2 LCD s 8051 mikrokontrolérem.
Požadované komponenty:
- 8051 mikrokontrolér
- Čtečka RFID EM-18
- 16 * 2 LCD displej
- RFID karty / štítky
- Potenciometr
- Propojovací vodiče
Kruhový diagram:
Mikrokontrolér 8051:
Mikrokontrolér 8051 je 8bitový mikrokontrolér, který má 128 bajtů paměti RAM na čipu, 4 bajty paměti ROM na čipu, dva časovače, jeden sériový port a čtyři 8bitové porty. Mikrokontrolér 8052 je rozšíření mikrokontroléru. Níže uvedená tabulka ukazuje srovnání 8051 členů rodiny.
Vlastnosti |
8051 |
8052 |
ROM (v bajtech) |
4K |
8 tis |
RAM (bajty) |
128 |
256 |
Časovače |
2 |
3 |
I / O piny |
32 |
32 |
Sériový port |
1 |
1 |
Přerušit zdroje |
6 |
8 |
16x2 LCD:
16 * 2 LCD je široce používaný displej pro vestavěné aplikace. Zde je stručné vysvětlení pinů a fungování 16 * 2 LCD displeje. Uvnitř LCD jsou dva velmi důležité registry. Jedná se o datový registr a příkazový registr. Registr příkazů se používá k odesílání příkazů, jako je jasný displej, kurzor doma atd., Datový registr se používá k odesílání dat, která se mají zobrazit na 16 * 2 LCD. Níže uvedená tabulka zobrazuje popis kolíku 16 * 2 LCD.
Kolík |
Symbol |
I / O |
Popis |
1 |
Vss |
- |
Přízemní |
2 |
Vdd |
- |
+ 5V napájení |
3 |
Vee |
- |
Napájení pro ovládání kontrastu |
4 |
RS |
Já |
RS = 0 pro příkazový registr, RS = 1 pro datový registr |
5 |
RW |
Já |
R / W = 0 pro zápis, R / W = 1 pro čtení |
6 |
E |
I / O |
Umožnit |
7 |
D0 |
I / O |
8bitová datová sběrnice (LSB) |
8 |
D1 |
I / O |
8bitová datová sběrnice |
9 |
D2 |
I / O |
8bitová datová sběrnice |
10 |
D3 |
I / O |
8bitová datová sběrnice |
11 |
D4 |
I / O |
8bitová datová sběrnice |
12 |
D5 |
I / O |
8bitová datová sběrnice |
13 |
D6 |
I / O |
8bitová datová sběrnice |
14 |
D7 |
I / O |
8bitová datová sběrnice (MSB) |
15 |
A |
- |
+ 5 V pro podsvícení |
16 |
K. |
- |
Přízemní |
Níže uvedená tabulka zobrazuje často používané příkazové kódy LCD.
Kód (hex) |
Popis |
01 |
Jasná obrazovka |
06 |
Přírůstkový kurzor (pravý posun) |
0A |
Displej vypnutý, kurzor zapnutý |
0C |
Displej zapnutý, kurzor vypnutý |
0F |
Zobrazení zapnuto, kurzor bliká |
80 |
Posuňte kurzor na začátek 1. řádku |
C0 |
Posuňte kurzor na začátek 2. řádku |
38 |
2 řádky a matice 5 * 7 |
Čtečka RFID EM-18:
Čtečka RFID EM-18 pracuje při 125 KHz a je dodávána s anténou na čipu a může být napájena napájecím zdrojem 5 V. Poskytuje sériový výstup spolu s výstupem weigand. Rozsah je kolem 8–12 cm. parametry sériové komunikace jsou 9600 bps, 8 datových bitů, 1 stop bit. Mezi jeho aplikace patří ověřování, stanovení cen na silnicích s elektronickým mýtem, elektronické jízdenky pro veřejnou dopravu, docházkové systémy atd. Zde zkontrolujte všechny projekty RFID.
Výstup poskytovaný čtečkou RFID EM-18 je ve 12místném formátu ASCII. Z 12 číslic je prvních 10 číslic číslo karty a poslední dvě číslice jsou XOR výsledkem čísla karty. Poslední dvě číslice se používají pro kontrolu chyb.
Například číslo karty je 0200107D0D62 načtené ze čtečky, pak bude číslo karty na kartě uvedeno níže.
02 - preambule
00107D0D = 1080589 v desítkové soustavě.
62 je hodnota XOR pro (02 XOR 00 XOR 10 XOR 7D XOR 0D).
Proto je číslo na kartě 0001080589.
Pracovní a vysvětlení kódu:
Kompletní program v jazyce C a demonstrace Video pro tento projekt je uveden na konci tohoto projektu. Kód je rozdělen na malé smysluplné bloky a je vysvětleno níže.
Pro rozhraní 16 * 2 LCD s mikrokontrolérem 8051 musíme definovat piny, na kterých je 16 * 2 LCD připojeno k mikrokontroléru 8051. Pin RS 16 * 2 lcd je připojen k P3.7, RW pin 16 * 2 lcd je připojen k P3.6 a E pin 16 * 2 lcd je připojen k P3.5. Datové piny jsou připojeny k portu 1 mikrokontroléru 8051.
sbit rs = P3 ^ 7; sbit rw = P3 ^ 6; sbit en = P3 ^ 5;
Dále musíme definovat některé funkce, které se v programu používají. Funkce zpoždění se používá k vytvoření zadaného časového zpoždění. Funkce Cmdwrt se používá k odesílání příkazů na 16 * 2 LCD displej. funkce datawrt se používá k odesílání dat na 16 * 2 LCD displej. Funkce Rxdata se používá k příjmu dat ze sériového portu.
void delay (unsigned int); void cmdwrt (nepodepsaný znak); void datawrt (nepodepsaný znak); char rxdata (void);
V této části kódu budeme konfigurovat mikrokontrolér 8051 pro sériovou komunikaci.
Registr TMOD je načten 0x20 pro časovač 1, režim 2 (automatické opětovné načtení). Registr SCON je načten 0x50 pro 8 datových bitů, 1 stop bit a příjem povolen. Registr TH1 je načten 0xfd pro přenosovou rychlost 9600 bitů za sekundu. TR1 = 1 se používá ke spuštění časovače.
TMOD = 0x20; SCON = 0x50; TH1 = 0xfd; TR1 = 1;
V této části kódu zasíláme příkazy na 16 * 2 LCD. Příkazy, jako je jasné zobrazení, přírůstek kurzoru, vynucení kurzoru na začátek 1. řádku, se po určitém určitém časovém zpoždění pošlou jeden po druhém na 16 * 2 LCD displej.
pro (i = 0; i <5; i ++) {cmdwrt (cmd); zpoždění (1); }
V této části kódu přijímáme výstup RFID čtečky EM-18 přes sériové rozhraní mikrokontroléru 8051 a ukládáme jej do proměnné. Počet se používá ke sledování počtu přijatých bajtů. Jakmile je přijato všech 12 bajtů dat, musíme je zobrazit na displeji LCD 16 * 2. Tento proces se opakuje navždy, aby bylo možné číst různé karty.
while (1) {count = 0; cmdwrt (0xC2); while (počet <12) {input = rxdata (); count ++; } for (i = 0; i <12; i ++) {datawrt (vstup); zpoždění (1); } zpoždění (100); }
V této části kódu zasíláme příkazy na 16 * 2 LCD displej. Příkaz je zkopírován na port 1 mikrokontroléru 8051. RS je nízké pro zápis příkazu. RW je pro operaci zápisu snížen. Na aktivaci (E) pinu je aplikován vysoký až nízký impuls pro spuštění operace zápisu příkazu.
void cmdwrt (nepodepsaný znak x) {P1 = x; rs = 0; rw = 0; en = 1; zpoždění (1); en = 0; }
V této části kódu zasíláme data na 16 * 2 LCD displej. Data se zkopírují na port 1 mikrokontroléru 8051. RS je vysoké pro zápis příkazů. RW je pro operaci zápisu snížen. Na aktivaci (E) pinu je aplikován vysoký až nízký impuls pro spuštění operace zápisu dat.
void datawrt (nepodepsané char y) {P1 = y; rs = 1; rw = 0; en = 1; zpoždění (1); en = 0; } Zkontrolujte také všechny naše projekty RFID s jinými mikrokontroléry.