- Gerekli Bileşenler:
- Devre şeması:
- 8051 Mikrodenetleyici:
- 16x2 LCD:
- EM-18 RFID Okuyucu:
- Çalışma ve Kod açıklaması:
Radyo Frekansı Tanımlama (RFID), bir RFID kartında veya etiketinde depolanan bilgileri okumak için radyo frekansını kullanır. Bu projede 8051 mikrodenetleyicili EM-18 RFID okuyucu Arayüzü ve 16 * 2 LCD ekran üzerinde RFID kart numarasını görüntüleyeceğiz. Bu kablosuz RF Tanımlama, RFID Tabanlı Katılım Sistemi, güvenlik sistemleri, oylama makineleri vb. Gibi birçok sistemde kullanılmaktadır. Bu proje aynı zamanda 16 * 2 LCD ile 8051 mikrodenetleyicinin uygun bir arabirimi olarak hizmet edecektir.
Gerekli Bileşenler:
- 8051 mikrodenetleyici
- EM-18 RFID okuyucu
- 16 * 2 LCD ekran
- RFID kartları / etiketleri
- Potansiyometre
- Atlama telleri
Devre şeması:
8051 Mikrodenetleyici:
8051 mikrodenetleyici, 128 byte on chip RAM, 4K byte on chip ROM, iki zamanlayıcı, bir seri port ve 4 adet 8bit porta sahip 8 bitlik bir mikrodenetleyicidir. 8052 mikro denetleyici, mikro denetleyicinin bir uzantısıdır. Aşağıdaki tablo 8051 aile üyesinin karşılaştırmasını göstermektedir.
Özellik |
8051 |
8052 |
ROM (bayt cinsinden) |
4K |
8K |
RAM (bayt) |
128 |
256 |
Zamanlayıcılar |
2 |
3 |
G / Ç pimleri |
32 |
32 |
Seri port |
1 |
1 |
Kaynakları kes |
6 |
8 |
16x2 LCD:
16 * 2 LCD, gömülü uygulamalar için yaygın olarak kullanılan bir ekrandır. İşte 16 * 2 LCD ekranın pimleri ve çalışması hakkında kısa açıklama. LCD'nin içinde çok önemli iki kayıt vardır. Veri kaydı ve komut kaydıdır. Komut kaydı temiz ekran, evde imleç vb. Komutları göndermek için kullanılır, veri kaydı 16 * 2 LCD'de görüntülenecek verileri göndermek için kullanılır. Aşağıdaki tablo 16 * 2 lcd'nin pin açıklamasını göstermektedir.
Toplu iğne |
Sembol |
G / Ç |
Açıklama |
1 |
Vss |
- |
Zemin |
2 |
Vdd |
- |
+ 5V güç kaynağı |
3 |
Vee |
- |
Kontrastı kontrol etmek için güç kaynağı |
4 |
RS |
ben |
Komut kaydı için RS = 0, Veri kaydı için RS = 1 |
5 |
RW |
ben |
Yazma için R / W = 0, okumak için R / W = 1 |
6 |
E |
G / Ç |
etkinleştirme |
7 |
D0 |
G / Ç |
8 bit veri yolu (LSB) |
8 |
D1 |
G / Ç |
8 bit veri yolu |
9 |
D2 |
G / Ç |
8 bit veri yolu |
10 |
D3 |
G / Ç |
8 bit veri yolu |
11 |
D4 |
G / Ç |
8 bit veri yolu |
12 |
D5 |
G / Ç |
8 bit veri yolu |
13 |
D6 |
G / Ç |
8 bit veri yolu |
14 |
D7 |
G / Ç |
8 bit veri yolu (MSB) |
15 |
Bir |
- |
Arka ışık için + 5V |
16 |
K |
- |
Zemin |
Aşağıdaki tablo, sık kullanılan LCD komut kodlarını göstermektedir.
Kod (onaltılık) |
Açıklama |
01 |
Ekranı temizle |
06 |
İmleci artır (sağa kaydırma) |
0A |
Ekran kapalı, imleç açık |
0C |
Ekran açık, imleç kapalı |
0F |
Ekran açık, imleç yanıp sönüyor |
80 |
İmleci 1. satırın başına zorla |
C0 |
İmleci 2. satırın başına zorla |
38 |
2 satır ve 5 * 7 matris |
EM-18 RFID Okuyucu:
EM-18 RFID okuyucu 125 KHz'de çalışır ve çip üzerinde bir anten ile birlikte gelir ve 5V güç kaynağı ile çalıştırılabilir. Ağırlık çıkışı ile birlikte seri çıkış sağlar. Aralık 8-12cm civarındadır. seri iletişim parametreleri 9600bps, 8 veri biti, 1 durdurma bitidir. Uygulamaları arasında Kimlik Doğrulama, e-paralı yol fiyatlandırması, toplu taşıma için e-bilet, katılım sistemleri vb. Bulunmaktadır. Tüm RFID Projelerini buradan kontrol edin.
EM-18 RFID okuyucu tarafından sağlanan çıktı 12 haneli ASCII formatındadır. 12 haneden ilk 10 hane kart numarasıdır ve son iki rakam kart numarasının XOR sonucudur. Son iki hane, hata kontrolü için kullanılır.
Örneğin kart numarası 0200107D0D62 okuyucudan okunduğunda kart üzerindeki kart numarası aşağıdaki gibi olacaktır.
02 - önsöz
00107D0D = 1080589 ondalık olarak.
62, (02 XOR 00 XOR 10 XOR 7D XOR 0D) için XOR değeridir.
Dolayısıyla karttaki numara 0001080589'dur.
Çalışma ve Kod açıklaması:
Komple C programı ve gösteri video bu proje için bu projenin sonunda verilir. Kod küçük anlamlı parçalara bölünmüş ve aşağıda açıklanmıştır.
8051 mikrodenetleyici ile 16 * 2 LCD arabirimi için, 8051 mikrodenetleyiciye 16 * 2 lcd'nin bağlı olduğu pinleri tanımlamamız gerekir. 16 * 2 lcd'nin RS pini P3.7'ye, 16 * 2 lcd'nin RW pini P3.6'ya ve 16 * 2 lcd'nin E pini P3.5'e bağlanır. Veri pinleri 8051 mikro denetleyicinin 1. portuna bağlanır.
sbit rs = P3 ^ 7; sbit rw = P3 ^ 6; sbit en = P3 ^ 5;
Daha sonra programda kullanılan bazı fonksiyonları tanımlamamız gerekiyor. Gecikme işlevi, belirtilen zaman gecikmesini oluşturmak için kullanılır. Cmdwrt işlevi, 16 * 2 lcd ekrana komut göndermek için kullanılır. datawrt işlevi, verileri 16 * 2 lcd ekrana göndermek için kullanılır. Rxdata işlevi, seri bağlantı noktasından veri almak için kullanılır.
void delay (unsigned int); void cmdwrt (işaretsiz karakter); void datawrt (işaretsiz karakter); char rxdata (void);
Kodun bu bölümünde 8051 mikro denetleyiciyi seri iletişim için yapılandıracağız.
TMOD kaydı, zamanlayıcı 1, mod 2 (otomatik yeniden yükleme) için 0x20 ile yüklenir. SCON kaydı, 8 veri biti, 1 durdurma biti için 0x50 ile yüklenir ve alma etkinleştirilir. TH1 kaydı, saniyede 9600 bitlik baud hızı için 0xfd ile yüklenir. Zamanlayıcıyı başlatmak için TR1 = 1 kullanılır.
TMOD = 0x20; SCON = 0x50; TH1 = 0xfd; TR1 = 1;
Kodun bu bölümünde 16 * 2 lcd'ye komutlar gönderiyoruz. Komutları böyle berrak ekran, artım imleç olarak, 1 başlangıcı imleci zorlamak st bazı bazı belirli bir zaman gecikmesi sonrası birer 16 * 2 lcd ekran birine gönderilir hattı.
için (i = 0; i <5; i ++) {cmdwrt (cmd); gecikme (1); }
Kodun bu bölümünde EM-18 RFID okuyucunun çıktısını 8051 mikrodenetleyicinin seri arayüzü üzerinden alıyoruz ve bir değişken içerisinde saklıyoruz. Sayım , alınan bayt sayısını takip etmek için kullanılır. Tüm 12 bayt veri alındıktan sonra, bunu 16 * 2 lcd ekranda göstermemiz gerekiyor. Bu işlem, farklı kartları okumak için sonsuza kadar tekrarlanır.
while (1) {sayım = 0; cmdwrt (0xC2); while (sayı <12) {input = rxdata (); count ++; } for (i = 0; i <12; i ++) {datawrt (girdi); gecikme (1); } gecikme (100); }
Kodun bu bölümünde 16 * 2 lcd ekrana komutlar gönderiyoruz. Komut, 8051 mikro denetleyicinin 1. bağlantı noktasına kopyalanır. RS, komut yazma için düşük yapılır. Yazma işlemi için RW düşük yapılır. Komut yazma işlemini başlatmak için etkinleştirme (E) pinine yüksekten düşüğe darbe uygulanır.
void cmdwrt (işaretsiz karakter x) {P1 = x; rs = 0; rw = 0; en = 1; gecikme (1); en = 0; }
Kodun bu bölümünde 16 * 2 lcd ekrana veri gönderiyoruz. Veriler, 8051 mikro denetleyicinin 1. portuna kopyalanır. RS, komut yazma için yüksek yapılır. Yazma işlemi için RW düşük yapılır. Veri yazma işlemini başlatmak için etkinleştirme (E) pinine yüksekten düşüğe darbe uygulanır.
void datawrt (işaretsiz karakter y) {P1 = y; rs = 1; rw = 0; en = 1; gecikme (1); en = 0; } Ayrıca, tüm RFID projelerimizi diğer mikro denetleyicilerle birlikte kontrol edin.