Bu eğitimde 4x4 (16 tuşlu) tuş takımını ATMEGA32A mikrodenetleyiciyle arayüzleyeceğiz. Tuş takımının elektronik projelerinde kullanılan en önemli giriş cihazlarından biri olduğunu biliyoruz. Tuş takımı, bir elektronik sisteme komut veya talimat vermenin en kolay yollarından biridir.
Gerekli Bileşenler
Donanım: ATMEGA32, güç kaynağı (5v), AVR-ISP PROGRAMMER, JHD_162ALCD (16 * 2LCD), 100uF kapasitör, 100nF kapasitör, 10KΩ direnç (8 adet).
Yazılım: Atmel studio 6.1 veya Atmel studio 6.2, progisp veya flash magic.
Devre Şeması ve Çalışma Açıklaması
ATMEGA32'nin PORTB devresinde veri portu LCD'sine bağlanır. Burada, PORTC'yi normal bir iletişim portu olarak kullanmak istiyorsa, sigorta baytlarını değiştirerek PORTC ve ATMEGA'daki JTAG iletişimini devre dışı bırakmayı unutmamak gerekir. 16x2 LCD'de arka ışık varsa 16 pim vardır, arka ışık yoksa 14 pim olacaktır. Arka ışık pimlerine güç verebilir veya bırakabilirsiniz. Şimdi 14 pimde 8 veri pini (7-14 veya D0-D7), 2 güç kaynağı pini (1 ve 2 veya VSS ve VDD veya gnd ve + 5v), kontrast kontrolü için 3. pin (karakterlerin ne kadar kalın olması gerektiğini VEE kontrol eder) gösterilmiştir) ve 3 kontrol pini (RS & RW & E).
Devrede, sadece iki kontrol pini aldığımı gözlemleyebilirsiniz, bu esneklik sağlar, kontrast biti ve READ / WRITE sık kullanılmadığından toprağa kısa devre yapılabilir. Bu, LCD'yi en yüksek kontrast ve okuma moduna getirir. Karakterleri ve verileri buna göre göndermek için sadece ENABLE ve RS pinlerini kontrol etmemiz gerekiyor.
LCD için yapılan bağlantılar aşağıda verilmiştir:
PIN1 veya VSS toprağa
PIN2 veya VDD veya VCC ila + 5v güç
Zemine PIN3 veya VEE (yeni başlayanlar için en iyi maksimum kontrastı verir)
PIN4 veya RS (Kayıt Seçimi) uC'nin PD6'sına
PIN5 veya RW (Okuma / Yazma) zemine (LCD'yi okuma moduna geçirerek kullanıcı için iletişimi kolaylaştırır)
UC'nin PD5'ine PIN6 veya E (Etkinleştir)
UC'nin PIN7 veya D0 ila PB0'ı
UC'nin PIN8 veya D1 ila PB1'i
UC'nin PIN9 veya D2 ila PB2'si
UC'nin PIN10 veya D3 ila PB3'ü
UC'nin PIN11 veya D4 ila PB4'ü
UC'nin PIN12 veya D5 ila PB5'i
UC'nin PIN13 veya D6 ila PB6'sı
UC'nin PIN14 veya D7to PB7'si
Devrede 8 bit iletişim (D0-D7) kullandığımızı görebilirsiniz ancak bu zorunlu değildir, 4 bit iletişim (D4-D7) kullanabiliriz ancak 4 bit iletişim programı ile biraz karmaşık hale gelir. Bu nedenle, yukarıdaki tablonun sadece gözleminden, 10 pin LCD'yi 8 pinin veri pini ve kontrol için 2 pini olan denetleyiciye bağlıyoruz.
Şimdi klavyeden bahsedelim, tuş takımı çoklamalı tuşlardan başka bir şey değildir. Kontrol sisteminin pin kullanımını azaltmak için düğmeler çok katlı bir biçimde bağlanmıştır.
Bir 4x4 tuş takımımız olduğunu düşünün, bu tuş takımında 16 düğmemiz var, normal durumlarda 16 düğmenin arabirimine 16 denetleyici pinine ihtiyacımız var, ancak bu kontrol sistemi açısından iyi değil. Bu pin kullanımı butonların multipleks formda bağlanmasıyla azaltılabilir.
Örneğin, 16 düğmemiz olduğunu ve onu bir tuş takımı oluşturmak için bir denetleyiciye bağlamak istediğimizi düşünün, bu tuşlar şekilde gösterildiği gibi düzenlenmiştir:
Bu düğmeler, şekilde gösterildiği gibi ortak sütunlarla bağlanır:
Şekilde gösterildiği gibi, her dört düğmenin işaretlenmemiş uçları bir sütun oluşturmak üzere birlikte sürüklenir ve bu nedenle 16 anahtar için dört sütunumuz vardır.
Yukarıdaki sütun bağlantılarını unutursak ve her dört düğmenin ortak işaretli uçlarını bir sıra oluşturmak için birbirine bağlarsak:
Şekilde gösterildiği gibi, 16 tuş için şekilde gösterildiği gibi dört sıraya sahip olacağız.
Şimdi ikisi birlikte görüldüğünde aşağıdaki devre gibi bir şey elde ederiz:
Burada, denetleyicinin pin kullanımını azaltmak için 16 anahtarı çoklanmış biçimde bağladık. Bağlı 16 tuşun ilk durumu ile karşılaştırıldığında, denetleyicide 16 iğneye ihtiyacımız vardı, ancak şimdi çoklamadan sonra 16 anahtarı bağlamak için yalnızca 8 pin denetleyiciye ihtiyacımız var.
Normalde bu, bir tuş takımının içinde sunulan şeydir:
Yukarıdaki şekilde gösterildiği gibi, yukarıdaki tuş takımında 16 tuş vardır ve bu tuşların her biri, çoklanmış düğme konfigürasyonunda bir düğmeyi temsil etmektedir. Ayrıca yukarıdaki şekilde gösterildiği gibi multipleks bağlantıyı simgeleyen 8 pinli bağlantı vardır.
Şimdi çalışmak için:
Buradaki tuş takımında dört sütun ve dört sıra vardır, basılan düğmenin tanımlanması için çapraz referans yöntemini kullanacağız. Burada önce tüm sütunları veya tüm satırları vcc'ye bağlayacağız, yani eğer satırlar ortak vcc'ye bağlıysa, sütunları denetleyiciye girdi olarak alacağız.
Şimdi, şekilde gösterildiği gibi birinci düğmeye basılırsa:
Bundan sonra, aşağıdaki şekilde gösterildiği gibi devreden bir akım geçer:
Yani bir düğmeye basmak için yüksek C1 var. Şu anda, güç ve giriş bağlantı noktalarını değiştireceğiz, yani sütunlara güç vereceğiz ve satırları girdi olarak alacağız, Bununla, aşağıdaki şekilde gösterildiği gibi bir güç akışı olacaktır:
Yani sıra için yüksek R1 var.
Şu an itibariyle, birinci durumda C1 yüksek ve ikinci durumda R1 yüksek, bu nedenle düğmenin matris konumuna, dolayısıyla "bir" sayısına sahibiz.
İkinci butona basılırsa kolon olarak C1 olur ancak ortak kolonda aldığımız yüksek mantık 'R2' olur. Böylece C1 ve R2'ye sahip olacağız, dolayısıyla ikinci düğmenin matris konumunu elde edeceğiz.
Programı bu şekilde yazacağız, sekiz pim tuş takımını sekiz pimli denetleyiciye bağlayacağız. Ve başlangıç için, dört sıra tuş takımına güç sağlamak için denetleyicinin dört pinine güç veriyoruz, bu sırada diğer dört pin giriş olarak alınır. Düğmeye basıldığında ilgili sütun pimi yukarı çekilir ve böylece kontrolör pimi yukarı çekilir, bu, girişi güç ve giriş gücü olarak değiştirecek şekilde algılanacaktır, bu nedenle girişler olarak satırlarımız olacaktır.
Bununla kullanıcı tarafından düğmeye basıyoruz. Bu matris adresleri karşılık gelen numaraya yönlendirilir ve bu numara LCD'de gösterilir.
Avr mikrodenetleyici ile tuş takımı arayüzünün çalışması aşağıda verilen C kodunda adım adım anlatılmıştır. Ayrıca şunları da kontrol edebilirsiniz: 8051 mikro denetleyici ile tuş takımı arabirimi.