- Komponen yang Dibutuhkan:
- Diagram Sirkuit:
- 8051 Mikrokontroler:
- LCD 16x2:
- Pembaca RFID EM-18:
- Penjelasan Kerja dan Kode:
Radio Frequency Identification (RFID) menggunakan frekuensi radio untuk membaca informasi yang disimpan dalam kartu atau tag RFID. Dalam proyek ini kita akan melihat antarmuka EM-18 RFID reader dengan mikrokontroler 8051 dan menampilkan nomor kartu RFID pada layar LCD 16 * 2. Identifikasi RF nirkabel ini digunakan di banyak sistem seperti Sistem Kehadiran Berbasis RFID, sistem keamanan, mesin pemungutan suara, dll. Proyek ini juga akan berfungsi sebagai antarmuka yang tepat dari LCD 16 * 2 dengan mikrokontroler 8051.
Komponen yang Dibutuhkan:
- 8051 mikrokontroler
- Pembaca RFID EM-18
- Layar LCD 16 * 2
- Kartu / tag RFID
- Potensiometer
- Kabel jumper
Diagram Sirkuit:
8051 Mikrokontroler:
Mikrokontroler 8051 adalah mikrokontroler 8 bit yang memiliki RAM on chip 128 byte, ROM on chip 4K byte, dua timer, satu port serial dan empat port 8bit. Mikrokontroler 8052 merupakan perpanjangan dari mikrokontroler. Tabel di bawah ini menunjukkan perbandingan 8.051 anggota keluarga.
Fitur |
8051 |
8052 |
ROM (dalam byte) |
4K |
8K |
RAM (byte) |
128 |
256 |
Timer |
2 |
3 |
Pin I / O |
32 |
32 |
Port serial |
1 |
1 |
Sumber interupsi |
6 |
8 |
LCD 16x2:
16 * 2 LCD adalah layar yang banyak digunakan untuk aplikasi tertanam. Berikut adalah penjelasan singkat tentang pin dan cara kerja layar LCD 16 * 2. Ada dua register yang sangat penting di dalam LCD. Mereka adalah register data dan register perintah. Register perintah digunakan untuk mengirim perintah seperti clear display, cursor di home dll, register data digunakan untuk mengirim data yang akan ditampilkan pada LCD 16 * 2. Tabel di bawah ini menunjukkan deskripsi pin 16 * 2 lcd.
Pin |
Simbol |
I / O |
Deskripsi |
1 |
Vss |
- |
Tanah |
2 |
Vdd |
- |
+ Catu daya 5V |
3 |
Vee |
- |
Catu daya untuk mengontrol kontras |
4 |
RS |
saya |
RS = 0 untuk register perintah, RS = 1 untuk register data |
5 |
RW |
saya |
R / W = 0 untuk menulis, R / W = 1 untuk membaca |
6 |
E |
I / O |
Memungkinkan |
7 |
D0 |
I / O |
Bus data 8-bit (LSB) |
8 |
D1 |
I / O |
Bus data 8-bit |
9 |
D2 |
I / O |
Bus data 8-bit |
10 |
D3 |
I / O |
Bus data 8-bit |
11 |
D4 |
I / O |
Bus data 8-bit |
12 |
D5 |
I / O |
Bus data 8-bit |
13 |
D6 |
I / O |
Bus data 8-bit |
14 |
D7 |
I / O |
Bus data 8-bit (MSB) |
15 |
SEBUAH |
- |
+ 5V untuk lampu latar |
16 |
K |
- |
Tanah |
Tabel di bawah ini menunjukkan kode perintah LCD yang sering digunakan.
Kode (hex) |
Deskripsi |
01 |
Hapus tampilan layar |
06 |
Kursor kenaikan (shift kanan) |
0A |
Tampilan mati, kursor hidup |
0C |
Tampilan hidup, kursor mati |
0F |
Tampilan aktif, kursor berkedip |
80 |
Memaksa kursor ke awal 1 st baris |
C0 |
Memaksa kursor ke beginningof 2 nd baris |
38 |
2 baris dan matriks 5 * 7 |
Pembaca RFID EM-18:
Pembaca RFID EM-18 beroperasi pada 125 KHz dan dilengkapi dengan antena on-chip dan dapat didukung dengan catu daya 5V. Ini memberikan keluaran serial bersama dengan keluaran weigand. Kisarannya sekitar 8-12cm. Parameter komunikasi serial adalah 9600bps, 8 bit data, 1 stop bit. Aplikasinya meliputi Autentikasi, harga e-toll road, e-ticketing untuk transportasi umum, sistem kehadiran, dll. Periksa semua Proyek RFID di sini.
Output yang disediakan oleh pembaca RFID EM-18 dalam format ASCII 12 digit. Dari 12 digit pertama 10 digit adalah nomor kartu dan dua digit terakhir adalah hasil XOR dari nomor kartu tersebut. Dua digit terakhir digunakan untuk pemeriksaan kesalahan.
Misal nomor kartu adalah 0200107D0D62 dibaca dari reader maka nomor kartu pada kartu akan menjadi seperti di bawah ini.
02 - pembukaan
00107D0D = 1080589 dalam desimal.
62 adalah nilai XOR untuk (02 XOR 00 XOR 10 XOR 7D XOR 0D).
Maka nomor pada kartu tersebut adalah 0001080589.
Penjelasan Kerja dan Kode:
Program C lengkap dan Video demonstrasi untuk proyek ini diberikan di akhir proyek ini. Kode tersebut dibagi menjadi beberapa bagian kecil yang berarti dan dijelaskan di bawah ini.
Untuk interface LCD 16 * 2 dengan mikrokontroler 8051, kita harus menentukan pin yang dihubungkan dengan mikrokontroler 8051 LCD 16 * 2. Pin RS LCD 16 * 2 terhubung ke P3.7, pin RW 16 * 2 lcd terhubung ke P3.6 dan pin E LCD 16 * 2 terhubung ke P3.5. Pin data dihubungkan ke port 1 mikrokontroler 8.051.
sbit rs = P3 ^ 7; sbit rw = P3 ^ 6; sbit en = P3 ^ 5;
Selanjutnya kita harus mendefinisikan beberapa fungsi yang digunakan dalam program. Fungsi penundaan digunakan untuk membuat penundaan waktu tertentu. Fungsi cmdwrt digunakan untuk mengirim perintah ke layar lcd 16 * 2. fungsi datawrt digunakan untuk mengirim data ke layar lcd 16 * 2. Fungsi rxdata digunakan untuk menerima data dari port serial.
batal penundaan (unsigned int); void cmdwrt (unsigned char); void datawrt (unsigned char); char rxdata (kosong);
Pada bagian kode ini kita akan mengkonfigurasi mikrokontroler 8.051 untuk komunikasi serial.
Register TMOD dimuat dengan 0x20 untuk timer 1, mode 2 (auto reload). Register SCON dimuat dengan 0x50 untuk 8 bit data, 1 stop bit dan terima diaktifkan. Register TH1 dimuat dengan 0xfd untuk baud rate 9600 bit per detik. TR1 = 1 digunakan untuk memulai pengatur waktu.
TMOD = 0x20; SCON = 0x50; TH1 = 0xfd; TR1 = 1;
Di bagian kode ini, kami mengirimkan perintah ke 16 * 2 lcd. Perintah seperti tampilan yang jelas, kursor kenaikan, memaksa kursor ke awal 1 st baris dikirim ke layar satu 16 * 2 lcd per satu setelah beberapa beberapa ditentukan waktu tunda.
untuk (i = 0; i <5; i ++) {cmdwrt (cmd); penundaan (1); }
Pada bagian kode ini kami menerima output dari pembaca RFID EM-18 melalui antarmuka serial mikrokontroler 8051 dan disimpan dalam sebuah variabel. Hitungan digunakan untuk melacak jumlah byte yang diterima. Setelah semua 12bytes data diterima, selanjutnya kita harus menampilkannya pada layar lcd 16 * 2. Proses ini diulang selamanya untuk membaca kartu yang berbeda.
sedangkan (1) {count = 0; cmdwrt (0xC2); while (hitung <12) {input = rxdata (); hitung ++; } untuk (i = 0; i <12; i ++) {datawrt (input); penundaan (1); } penundaan (100); }
Di bagian kode ini, kami mengirimkan perintah ke layar lcd 16 * 2. Perintah tersebut disalin ke port 1 dari 8051 mikrokontroler. RS dibuat rendah untuk penulisan perintah. RW dibuat rendah untuk operasi tulis. Pulsa tinggi ke rendah diterapkan pada pin pengaktifan (E) untuk memulai operasi penulisan perintah.
batal cmdwrt (unsigned char x) {P1 = x; rs = 0; rw = 0; en = 1; penundaan (1); en = 0; }
Pada bagian kode ini, kami mengirimkan data ke layar lcd 16 * 2. Data tersebut disalin ke port 1 dari 8051 mikrokontroler. RS dibuat tinggi untuk penulisan perintah. RW dibuat rendah untuk operasi tulis. Pulsa tinggi ke rendah diterapkan pada pin pengaktifan (E) untuk memulai operasi penulisan data.
batal datawrt (unsigned char y) {P1 = y; rs = 1; rw = 0; en = 1; penundaan (1); en = 0; } Juga, periksa semua proyek RFID kami dengan mikrokontroler lainnya.