- Kinakailangan ang Mga Bahagi:
- Diagram ng Circuit:
- 8051 Microcontroller:
- 16x2 LCD:
- EM-18 RFID Reader:
- Paggawa at pagpapaliwanag ng Code:
Ang Pagkilala sa Frequency ng Radio (RFID) ay gumagamit ng dalas ng radyo upang mabasa ang impormasyong nakaimbak sa isang RFID card o tag. Sa proyektong ito pupunta kami sa Interface EM-18 RFID reader na may 8051 microcontroller at ipakita ang numero ng RFID card sa 16 * 2 LCD display. Ang wireless RF Identification na ito ay ginagamit sa maraming mga sistema tulad ng RFID Base Attendance System, security system, voting machine atbp Ang proyektong ito ay maglilingkod din bilang isang tamang interfacing ng 16 * 2 LCD na may 8051 microcontroller.
Kinakailangan ang Mga Bahagi:
- 8051 microcontroller
- EM-18 RFID reader
- 16 * 2 LCD display
- Mga card / tag ng RFID
- Potensyomiter
- Jumper wires
Diagram ng Circuit:
8051 Microcontroller:
Ang 8051 microcontroller ay isang 8 bit microcontroller na mayroong 128 bytes ng sa chip RAM, 4K bytes ng sa chip ROM, dalawang timer, isang serial port at apat na 8bit port. Ang 8052 microcontroller ay isang extension ng microcontroller. Ipinapakita ng talahanayan sa ibaba ang paghahambing ng 8051 mga miyembro ng pamilya.
Tampok |
8051 |
8052 |
ROM (sa bytes) |
4K |
8K |
RAM (bytes) |
128 |
256 |
Mga timer |
2 |
3 |
I / O mga pin |
32 |
32 |
Serial port |
1 |
1 |
Nakagambala ang mga mapagkukunan |
6 |
8 |
16x2 LCD:
Ang 16 * 2 LCD ay isang malawakang ginagamit na display para sa mga naka-embed na application. Narito ang maikling paliwanag tungkol sa mga pin at pagtatrabaho ng 16 * 2 LCD display. Mayroong dalawang napakahalagang rehistro sa loob ng LCD. Ang mga ito ay data register at command register. Ginagamit ang command register upang magpadala ng mga utos tulad ng malinaw na display, cursor sa bahay atbp. Ginagamit ang rehistro ng data upang magpadala ng data na ipapakita sa 16 * 2 LCD. Ipinapakita sa ibaba ng talahanayan ang paglalarawan ng pin ng 16 * 2 lcd.
Pin |
Simbolo |
Ako / O |
Paglalarawan |
1 |
Vss |
- |
Lupa |
2 |
Vdd |
- |
+ 5V power supply |
3 |
Vee |
- |
Suplay ng kuryente upang makontrol ang kaibahan |
4 |
Ang RS |
Ako |
RS = 0 para sa rehistro ng utos, RS = 1 para sa pagrehistro ng data |
5 |
RW |
Ako |
R / W = 0 para sa pagsusulat, R / W = 1 para basahin |
6 |
E |
Ako / O |
Paganahin |
7 |
D0 |
Ako / O |
8-bit data bus (LSB) |
8 |
D1 |
Ako / O |
8-bit data bus |
9 |
D2 |
Ako / O |
8-bit data bus |
10 |
D3 |
Ako / O |
8-bit data bus |
11 |
D4 |
Ako / O |
8-bit data bus |
12 |
D5 |
Ako / O |
8-bit data bus |
13 |
D6 |
Ako / O |
8-bit data bus |
14 |
D7 |
Ako / O |
8-bit data bus (MSB) |
15 |
A |
- |
+ 5V para sa backlight |
16 |
K |
- |
Lupa |
Ipinapakita ng talahanayan sa ibaba ang madalas na ginagamit na mga LCD code ng utos.
Code (hex) |
Paglalarawan |
01 |
I-clear ang display screen |
06 |
Palakihin na cursor (kanang paglipat) |
0A |
Ipakita, naka-on ang cursor |
0C |
Ipakita ang, naka-off ang cursor |
0F |
Ipakita ang, pagkurap ng cursor |
80 |
Pilitin ang cursor sa simula ng 1 st line |
C0 |
Pilitin ang cursor sa simula ng linya ng 2 nd |
38 |
2 linya at 5 * 7 matrix |
EM-18 RFID Reader:
Ang EM-18 RFID reader ay nagpapatakbo ng 125 KHz at may kasamang on-chip antena at maaari itong patakbuhin ng 5V power supply. Nagbibigay ito ng serial output kasama ang weigand output. Ang saklaw ay sa paligid ng 8-12cm. serial parameter ng komunikasyon ay 9600bps, 8 data bits, 1 stop bit. Kasama sa mga aplikasyon nito ang Pagpapatotoo, pagpepresyo sa e-toll road, e-ticketing para sa pampublikong transportasyon, mga sistema ng pagdalo atbp Suriin ang lahat ng mga Proyekto ng RFID dito.
Ang output na ibinigay ng EM-18 RFID reader ay nasa 12 digit na ASCII format. Sa 12 na numero ng unang 10 na numero ay numero ng card at ang huling dalawang digit ay ang XOR na resulta ng numero ng card. Ginamit ang huling dalawang digit para sa pag-check ng error.
Halimbawa, ang numero ng kard ay 0200107D0D62 na binasa mula sa mambabasa kung gayon ang numero ng kard sa card ay magiging tulad sa ibaba.
02 - paunang salita
00107D0D = 1080589 sa decimal.
Ang 62 ay halaga ng XOR para sa (02 XOR 00 XOR 10 XOR 7D XOR 0D).
Samakatuwid ang numero sa card ay 0001080589.
Paggawa at pagpapaliwanag ng Code:
Ang kumpletong programa ng C at pagpapakita ng Video para sa proyektong ito ay ibinibigay sa pagtatapos ng proyektong ito. Ang code ay nahahati sa maliit na makahulugang mga tipak at ipinaliwanag sa ibaba.
Para sa 16 * 2 LCD na nakikipag-ugnay sa 8051 microcontroller, kailangan nating tukuyin ang mga pin kung saan ang 16 * 2 lcd ay konektado sa 8051 microcontroller. Ang RS pin na 16 * 2 lcd ay konektado sa P3.7, ang RW pin na 16 * 2 lcd ay konektado sa P3.6 at ang E pin ng 16 * 2 lcd ay konektado sa P3.5. Ang mga data pin ay konektado sa port 1 ng 8051 microcontroller.
sbit rs = P3 ^ 7; sbit rw = P3 ^ 6; sbit en = P3 ^ 5;
Susunod kailangan nating tukuyin ang ilang mga pagpapaandar na ginagamit sa programa. Ginagamit ang pagkaantala ng pagpapaandar upang lumikha ng tinukoy na pagkaantala ng oras. Ang pagpapaandar ng Cmdwrt ay ginagamit upang magpadala ng mga utos sa pagpapakita ng 16 * 2 lcd. Ang pagpapaandar ng datawrt ay ginagamit upang magpadala ng data sa 16 * 2 lcd display. Ginagamit ang pagpapaandar ng Rxdata upang makatanggap ng data mula sa serial port.
walang bisa ang pagkaantala (unsigned int); walang bisa cmdwrt (unsigned char); walang bisa ang datawrt (unsigned char); char rxdata (walang bisa);
Sa bahaging ito ng code ay mai - configure namin ang 8051 microcontroller para sa serial na komunikasyon.
Ang rehistro ng TMOD ay puno ng 0x20 para sa timer 1, mode 2 (auto reload). Ang rehistro ng SCON ay puno ng 0x50 para sa 8 data bits, 1 stop bit at natanggap na pinagana. Ang rehistro ng TH1 ay na-load ng 0xfd para sa rate ng baud na 9600 bits bawat segundo. Ginagamit ang TR1 = 1 upang simulan ang timer.
TMOD = 0x20; SCON = 0x50; TH1 = 0xfd; TR1 = 1;
Sa bahaging ito ng code, nagpapadala kami ng mga utos sa 16 * 2 lcd. Ang mga utos tulad ng malinaw na pagpapakita, pagtaas ng cursor, pilitin ang cursor sa simula ng 1 st line ay ipinadala sa 16 * 2 lcd display isa-isa pagkatapos ng ilang tinukoy na pagkaantala ng oras.
para sa (i = 0; i <5; i ++) {cmdwrt (cmd); antala (1); }
Sa bahaging ito ng code natatanggap namin ang output ng EM-18 RFID reader sa pamamagitan ng serial interface ng 8051 microcontroller at nakaimbak sa isang variable. Bilang ay ginagamit upang subaybayan ang bilang ng mga bytes na natanggap. Sa sandaling natanggap ang lahat ng 12bytes ng data, susunod na ipakita namin ito sa 16 * 2 lcd display. Ang prosesong ito ay inuulit magpakailanman upang mabasa ang iba't ibang mga kard.
habang (1) {count = 0; cmdwrt (0xC2); habang (bilang <12) {input = rxdata (); bilangin ++; } para sa (i = 0; i <12; i ++) {datawrt (input); antala (1); } pagkaantala (100); }
Sa bahaging ito ng code, nagpapadala kami ng mga utos sa pagpapakita ng 16 * 2 lcd. Ang utos ay nakopya sa port 1 ng 8051 microcontroller. Ang RS ay ginawang mababa para sa pagsulat ng utos. Ang RW ay ginawang mababa para sa operasyon ng pagsusulat. Ang mataas hanggang mababang pulso ay inilapat upang paganahin ang (E) pin upang simulan ang operasyon ng pagsulat ng utos.
walang bisa cmdwrt (unsigned char x) {P1 = x; rs = 0; rw = 0; tl = 1; antala (1); tl = 0; }
Sa bahaging ito ng code, nagpapadala kami ng data sa 16 * 2 lcd display. Ang data ay nakopya sa port 1 ng 8051 microcontroller. Ang RS ay ginawang mataas para sa pagsulat ng utos. Ang RW ay ginawang mababa para sa operasyon ng pagsusulat. Ang mataas hanggang mababang pulso ay inilapat upang paganahin ang (E) pin upang simulan ang pagpapatakbo ng pagsulat ng data.
void datawrt (unsigned char y) {P1 = y; rs = 1; rw = 0; tl = 1; antala (1); tl = 0; } Gayundin, suriin ang aming lahat ng mga proyekto sa RFID sa iba pang mga microcontroller.