- Požadované komponenty:
- Schéma zapojenia:
- Mikrokontrolér 8051:
- 16 x 2 LCD:
- Čítačka RFID EM-18:
- Pracovné a vysvetlenie kódu:
Rádiofrekvenčná identifikácia (RFID) využíva vysokofrekvenčnú frekvenciu na čítanie informácií uložených na karte RFID alebo štítku. V tomto projekte sa chystáme na čítačku Interface EM-18 RFID s mikrokontrolérom 8051 a zobrazením čísla RFID karty na 16 * 2 LCD displeji. Táto bezdrôtová RF identifikácia sa používa v mnohých systémoch, ako je dochádzkový systém založený na RFID, bezpečnostné systémy, hlasovacie prístroje atď. Tento projekt bude slúžiť aj ako správne prepojenie 16 * 2 LCD s mikrokontrolérom 8051.
Požadované komponenty:
- Mikrokontrolér 8051
- Čítačka RFID EM-18
- 16 * 2 LCD displej
- RFID karty / štítky
- Potenciometer
- Prepojovacie vodiče
Schéma zapojenia:
Mikrokontrolér 8051:
Mikrokontrolér 8051 je 8-bitový mikrokontrolér, ktorý má 128 bajtov na čipovej RAM, 4K bajtov na čipovej ROM, dva časovače, jeden sériový port a štyri 8bitové porty. Mikrokontrolér 8052 je rozšírením mikrokontroléra. Nasledujúca tabuľka zobrazuje porovnanie 8051 členov rodiny.
Funkcia |
8051 |
8052 |
ROM (v bajtoch) |
4K |
8K |
RAM (bajty) |
128 |
256 |
Časovače |
2 |
3 |
I / O piny |
32 |
32 |
Sériový port |
1 |
1 |
Prerušiť zdroje |
6 |
8 |
16 x 2 LCD:
16 * 2 LCD je široko používaný displej pre zabudované aplikácie. Tu je krátke vysvetlenie pinov a práce s 16 * 2 LCD displejom. Vo vnútri LCD sa nachádzajú dva veľmi dôležité registre. Sú to dátový register a príkazový register. Register príkazov sa používa na odosielanie príkazov, ako je jasný displej, kurzor doma atď., Register údajov sa používa na odosielanie údajov, ktoré sa majú zobrazovať na displeji LCD 16 * 2. V nasledujúcej tabuľke je uvedený popis kolíka 16 * 2 LCD.
Pripnúť |
Symbol |
I / O |
Popis |
1 |
Vss |
- |
Uzemnenie |
2 |
Vdd |
- |
+ 5V napájanie |
3 |
Vee |
- |
Napájanie na kontrolu kontrastu |
4 |
RS |
Ja |
RS = 0 pre príkazový register, RS = 1 pre dátový register |
5 |
RW |
Ja |
R / W = 0 pre zápis, R / W = 1 pre čítanie |
6 |
E |
I / O |
Povoliť |
7 |
D0 |
I / O |
8-bitová dátová zbernica (LSB) |
8 |
D1 |
I / O |
8-bitová dátová zbernica |
9 |
D2 |
I / O |
8-bitová dátová zbernica |
10 |
D3 |
I / O |
8-bitová dátová zbernica |
11 |
D4 |
I / O |
8-bitová dátová zbernica |
12 |
D5 |
I / O |
8-bitová dátová zbernica |
13 |
D6 |
I / O |
8-bitová dátová zbernica |
14 |
D7 |
I / O |
8-bitová dátová zbernica (MSB) |
15 |
A |
- |
+ 5 V pre podsvietenie |
16 |
K |
- |
Uzemnenie |
Nasledujúca tabuľka zobrazuje často používané kódy príkazov LCD.
Kód (hex) |
Popis |
01 |
Jasná obrazovka displeja |
06 |
Prírastok kurzora (pravý posun) |
0A |
Displej vypnutý, kurzor zapnutý |
0C |
Displej zapnutý, kurzor vypnutý |
0F |
Displej zapnutý, kurzor bliká |
80 |
Posuňte kurzor na začiatok 1. riadku |
C0 |
Posuňte kurzor na začiatok druhého riadku |
38 |
2 riadky a matica 5 * 7 |
Čítačka RFID EM-18:
Čítačka RFID EM-18 pracuje na frekvencii 125 KHz a je vybavená anténou na čipu a môže byť napájaná z napájacieho zdroja 5 V. Poskytuje sériový výstup spolu s výstupom weigandu. Rozsah je okolo 8-12cm. parametre sériovej komunikácie sú 9600 bps, 8 dátových bitov, 1 stop bit. Medzi jeho aplikácie patrí autentifikácia, stanovenie cien e-mýta na ceste, e-cestovný lístok pre verejnú dopravu, dochádzkové systémy atď. Všetky projekty RFID nájdete tu.
Výstup poskytovaný čítačkou RFID EM-18 je v 12-miestnom formáte ASCII. Z 12 číslic je prvých 10 číslic číslo karty a posledné dve číslice sú XOR výsledkom čísla karty. Posledné dve číslice sa používajú na kontrolu chýb.
Napríklad číslo karty je 0200107D0D62 načítané z čítačky, potom bude číslo karty na karte uvedené nižšie.
02 - preambula
00107D0D = 1080589 v desatinnom formáte.
62 je hodnota XOR pre (02 XOR 00 XOR 10 XOR 7D XOR 0D).
Preto je číslo na karte 0001080589.
Pracovné a vysvetlenie kódu:
Kompletný program v jazyku C a demonštrácia Video pre tento projekt je uvedený na konci tohto projektu. Kód je rozdelený na malé zmysluplné bloky a je vysvetlený nižšie.
Pre rozhranie 16 * 2 LCD s mikrokontrolérom 8051 musíme definovať kolíky, na ktorých je 16 * 2 lcd pripojený k mikrokontroléru 8051. RS pin 16 * 2 lcd je pripojený k P3.7, RW pin 16 * 2 lcd je pripojený k P3.6 a E pin 16 * 2 lcd je pripojený k P3.5. Dátové kolíky sú pripojené k portu 1 mikrokontroléra 8051.
sbit rs = P3 ^ 7; sbit rw = P3 ^ 6; sbit en = P3 ^ 5;
Ďalej musíme definovať niektoré funkcie, ktoré sa v programe používajú. Funkcia Delay sa používa na vytvorenie zadaného časového oneskorenia. Funkcia Cmdwrt sa používa na zasielanie príkazov na 16 * 2 LCD displej. funkcia datawrt sa používa na zasielanie dát na 16 * 2 lcd displej. Funkcia Rxdata sa používa na príjem dát zo sériového portu.
neplatnosť oneskorenia (unsigned int); void cmdwrt (nepodpísaný znak); void datawrt (nepodpísaný znak); char rxdata (neplatné);
V tejto časti kódu budeme konfigurovať mikrokontrolér 8051 na sériovú komunikáciu.
Register TMOD je načítaný ako 0x20 pre časovač 1, režim 2 (automatické opätovné načítanie). Register SCON je načítaný 0x50 pre 8 dátových bitov, 1 stop bit a príjem povolený. Register TH1 je načítaný s 0xfd pre prenosovú rýchlosť 9600 bitov za sekundu. TR1 = 1 sa používa na spustenie časovača.
TMOD = 0x20; SCON = 0x50; TH1 = 0xfd; TR1 = 1;
V tejto časti kódu zasielame príkazy na 16 * 2 lcd. Príkazy, ako je jasný displej, prírastok kurzora vynútiť kurzor na začiatok 1 prvom riadku sú odosielané do 16 * 2 LCD displej jeden po druhom po nejaký nejaký nastaveného času oneskorenia.
pre (i = 0; i <5; i ++) {cmdwrt (cmd); oneskorenie (1); }
V tejto časti kódu prijímame výstup RFID čítačky EM-18 cez sériové rozhranie mikrokontroléra 8051 a ukladáme ho do premennej. Počet sa používa na sledovanie počtu prijatých bajtov. Po prijatí všetkých 12 bajtov dát ich musíme zobraziť na 16 * 2 lcd displeji. Tento proces sa večne opakuje, aby sa mohli prečítať rôzne karty.
while (1) {count = 0; cmdwrt (0xC2); while (pocet <12) {input = rxdata (); počet ++; } for (i = 0; i <12; i ++) {datawrt (vstup); oneskorenie (1); } oneskorenie (100); }
V tejto časti kódu zasielame príkazy na 16 * 2 lcd displej. Príkaz sa skopíruje na port 1 mikrokontroléra 8051. RS je nízka pre zápis príkazu. RW je nastavený na nízku hodnotu pre operáciu zápisu. Na aktiváciu (E) pinu sa použije vysoký až nízky impulz na spustenie operácie zápisu príkazu.
void cmdwrt (unsigned char x) {P1 = x; rs = 0; rw = 0; en = 1; oneskorenie (1); en = 0; }
V tejto časti kódu zasielame údaje na 16 * 2 lcd displej. Dáta sa skopírujú na port 1 mikrokontroléra 8051. RS je vysoko pre zápis príkazov. RW je nastavený na nízku hodnotu pre operáciu zápisu. Na zapnutie (E) pinu sa použije vysoký až nízky impulz na spustenie operácie zápisu údajov.
void datawrt (nepodpísané char y) {P1 = y; rs = 1; rw = 0; en = 1; oneskorenie (1); en = 0; } Skontrolujte tiež všetky naše projekty RFID s inými mikrokontrolérmi.