Tuş takımları, çeşitli elektronik ve gömülü projelerde kullanılan yaygın olarak kullanılan giriş cihazlarıdır. Rakamlar ve albhabetler şeklinde girdiler almak ve daha sonraki işlemler için bunları sisteme beslemek için kullanılırlar. Bu eğitimde 4x4 matris tuş takımını 8051 mikro denetleyici ile arayüzleyeceğiz.
4X4 Matrix Tuş Takımı
Tuş takımını mikro denetleyiciyle arayüzlemeden önce, ilk olarak nasıl çalıştığını anlamamız gerekir. Matrix tuş takımı, birbirine bağlı Push düğmelerinden oluşur. Bizim durumumuzda olduğu gibi, dört satırın her birinde 4 basma düğmesi bulunan 4X4 matris tuş takımını kullanıyoruz. Ve butonların terminalleri şemaya göre bağlanır. İlk satırda, 4 butonun bir terminali birbirine bağlıdır ve 4 butondan oluşan diğer terminal 4 sütunun her birini temsil eder, her satır için aynı şey geçerlidir. Böylece bir mikro denetleyiciye bağlanacak 8 terminal elde ediyoruz.
8051 mikro denetleyiciyle (AT89S52) tuş takımı arabirimi
Öncelikle, KEYPAD üzerinden beslenecek verileri görüntülemek için bir LCD modülü arayüzüne ihtiyacımız var, bu nedenle KEYPAD ile arayüz oluşturmadan önce lütfen "8051 Mikroişlemci ile LCD Arayüzü" makalesini okuyun.
Yukarıdaki devre şemasında gösterildiği gibi, Tuş Takımı ile arayüz oluşturmak için, tuş takımının 8 terminalini mikrodenetleyicinin herhangi bir portuna (8 pin) bağlamamız gerekir. Tuş takımı terminallerini 8051'in 1. Portuna bağladığımız gibi. Herhangi bir düğmeye basıldığında, düğmenin yerini almamız gerekir, bu da karşılık gelen SIRA ve SÜTUN no. Düğmenin yerini aldığımızda, karakteri buna göre yazdırabiliriz.
Şimdi soru, basılan düğmenin yerini nasıl elde edeceğidir? Bunu aşağıdaki adımlarda açıklayacağım ve ayrıca koda bakmanızı istiyorum:
1. Önce tüm Satırları Mantık düzeyi 0'a ve tüm sütunları Mantık düzeyi 1'e yaptık.
2. Bir düğmeye bastığımızda, o düğmeye karşılık gelen sütun ve satır kısalır ve ilgili sütunu mantık düzeyi 0 yapar. Çünkü bu sütun, Mantık düzeyinde 0 olan satıra bağlanır (kısaltılır). Böylece, sütun no. Main () işlevine bakın.
3. Şimdi Satır numarasını bulmamız gerekiyor, bu yüzden her bir sütuna karşılık gelen dört işlev oluşturduk. Birinci sütunun herhangi bir düğmesine basıldığında olduğu gibi, satır numarasını bulmak için satır_finder1 () işlevini çağırırız.
4. row_finder1 () fonksiyonunda, mantık seviyelerini tersine çevirdik, yani artık tüm Satırların 1 ve sütunların 0 olduğu anlamına gelir. Şimdi basılan düğmenin satırı 0 olmalıdır, çünkü düğmeye basılan sütuna bağlanmıştır (kısaltılmıştır) ve tüm sütunlar 0 mantıkta. Bu yüzden tüm satırları 0 için taradık.
5. Dolayısıyla, Satırı mantık 0'da bulduğumuzda, bu basılan düğmenin sırasıdır. Şimdi sütun no (2. adımda var) ve satır no var ve hayır yazdırabiliriz. bu düğmenin lcd_data işlevini kullanarak.
Her düğmeye basıldığında aynı prosedür izlenir ve biz (1) 'i sürekli olarak düğmenin basılı olup olmadığını kontrol etmek için kullanıyoruz.