Ekran, kullanıcıların sistemin durumunu bilmelerine yardımcı olduğu ve ayrıca sistem tarafından oluşturulan çıktı veya herhangi bir uyarı mesajını gösterdiği için herhangi bir Gömülü Sistem Uygulamasının çok önemli bir parçasıdır. Elektronikte kullanılan 7 segmentli ekran, LCD ekran, TFT dokunmatik ekran, LED ekran vb. Gibi birçok ekran türü vardır.
Önceki eğitimimizde ARM7-LPC2148 ile 16x2 LCD'yi zaten Arayüzleştirdik. Bugün bu eğiticide , ARM7-LPC2148 ile 7 segmentli bir Ekranın arayüzünü oluşturacağız. Ayrıntılara girmeden önce, herhangi bir sayıda karakteri görüntülemek için 7 segmentli modülü nasıl kontrol edeceğimizi göreceğiz.
7 Segmentli Ekran
7 segmentli ekran, sayıları ve karakterleri görüntülemek için en basit ekran birimleri arasındadır. Genellikle sayıları görüntülemek için kullanılır ve nokta matrisli ekrana göre daha parlak aydınlatmaya ve daha basit yapıya sahiptir. Daha parlak aydınlatma nedeniyle, çıktı LCD'ye göre daha geniş bir mesafeden görüntülenebilir. Yukarıdaki 7 segmentli ekranın görüntüsünde gösterildiği gibi, 8 LED'den oluşur; her bir LED, bir ünite segmentini ve 8thLED, 7 segmentli ekranda DOT'u aydınlatmak için kullanılır. 8thLED, iki veya daha fazla 7 segmentli modül kullanıldığında, örneğin (0.1) görüntülemek için kullanılır. Tek bir rakam veya karakter görüntülemek için tek bir modül kullanılır. Birden fazla rakam veya karakter görüntülemek için birden çok 7 segment kullanılır.
7 Segment Ekran Pimleri
A, b, c, d, e, f, g ve h / dp'yi belirtmek için 8 pinin kullanıldığı 10 pim vardır, iki orta pim ise tüm LED'lerin ortak anot / katotudur. Bu ortak anot / katot dahili olarak kısaltılmıştır, bu nedenle yalnızca bir COM pinini bağlamamız gerekir
Bağlantıya bağlı olarak 7-Segmenti iki tipte sınıflandırıyoruz:
Ortak Katot
Bunda, tüm 8 LED'in tüm Negatif terminalleri (katot) COM olarak adlandırılan birbirine bağlanır (aşağıdaki şemaya bakın). Ve tüm pozitif terminaller tek başına bırakılır veya mikro denetleyici pimlerine bağlanır. Mikrodenetleyici kullanırsak, belirli olanı aydınlatmak için LOW mantığını YÜKSEK ve LED'i KAPALI konuma getirmek için DÜŞÜK ayarını yaparız.
Ortak Anot
Bunda tüm 8 LED'in tüm pozitif terminalleri (Anotlar) COM olarak adlandırılan birbirine bağlanır. Ve tüm negatif termikler tek başına bırakılır veya mikro denetleyici pimlerine bağlanır. Mikrodenetleyici kullanırsak, belirli bir şeyi aydınlatmak için LOW mantığını ve LED'i KAPALI konuma getirmek için Yüksek mantığı ayarlarız.
Bu nedenle, pin değerine bağlı olarak, istenen sayı veya alfabeyi görüntülemek için belirli bir segment veya 7 segmentten oluşan bir çizgi açılabilir veya kapatılabilir. Örneğin 0 hanesini görüntülemek için ABCDEF pinlerini HIGH ve yalnızca G'yi LOW olarak ayarlamalıyız. Şöyle ABCDEF LED'ler AÇIK ve G, KAPALI bu form 0 basamaklı 7 kademeli modülünde. (Bu ortak katot içindir, ortak anot için tam tersidir).
Aşağıdaki tablo HEX değerlerini ve ortak katot konfigürasyonu için LPC2148 pinlerine göre karşılık gelen rakamı göstermektedir.
Hane |
LPC2148 için HEX Değerleri |
Bir |
B |
C |
D |
E |
F |
G |
0 |
0xF3 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
0x12 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
2 |
0x163 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
3 |
0x133 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
4 |
0x192 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
5 |
0x1B1 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
6 |
0x1F1 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
7 |
0x13 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
8 |
0x1F3 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
9 |
0x1B3 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
ÖNEMLİ: Yukarıdaki tabloda LPC2148'de kullandığım pinlere göre HEX değerlerini verdim, aşağıdaki devre şemasını kontrol ediniz. İstediğiniz pimleri kullanabilirsiniz, ancak onaltılık değerleri buna göre değiştirebilirsiniz.
7 segmentli ekran hakkında daha fazla bilgi edinmek için bağlantıya gidin. Ayrıca diğer mikro denetleyicilerle 7 segmentli ekran arayüzlerini kontrol edin:
- Raspberry Pi ile 7 Segment Ekran Arayüzü
- PIC Mikrodenetleyici ile 7 Segment Ekran Arayüzü
- Arduino ile 7 Segment Ekran Arayüzü
- 8051 Mikrodenetleyici ile 7 Segment Ekran Arayüzü
- AVR Mikroişlemcisini kullanarak 0-99 Sayaç
Gerekli malzemeler
Donanım
- ARM7-LPC2148
- Yedi Segment Görüntüleme Modülü (Tek Haneli)
- Breadboard
- Kabloların Bağlanması
Yazılım
- Keil uVision5
- Flaş Büyüsü
Devre şeması
7 segmentli LPC2148 ile arayüz oluşturmak için, aşağıdaki devre şemasında gösterildiği gibi harici bir bileşene gerek yoktur:
Aşağıdaki tablo, 7 Segmentli modül ve LPC2148 arasındaki devre bağlantılarını göstermektedir.
Yedi Segment Modülü Pimi |
LPC2148 Pinleri |
Bir |
P0.0 |
B |
P0.1 |
C |
P0.4 |
D |
P0.5 |
E |
P0.6 |
F |
P0.7 |
G |
P0.8 |
Yaygın |
GND |
Programlama ARM7 LPC2148
Önceki eğitimimizde Keil kullanarak ARM7-LPC2148'i nasıl programlayacağımızı öğrendik. Burada kodu yazmak ve onaltılık dosya oluşturmak için aynı Keil uVision 5'i kullanıyoruz ve ardından onaltılık dosyayı flash sihirli aracı kullanarak LPC2148'e yüklüyoruz. Güç vermek ve kodu LPC2148'e yüklemek için USB kablosu kullanıyoruz
Video açıklamalı tam kod bu eğitimin sonunda verilmiştir. Burada kodun birkaç önemli bölümünü açıklıyoruz.
Öncelikle LPC214x serisi mikrodenetleyici için başlık dosyasını eklememiz gerekiyor
#Dahil etmek
Ardından pimleri çıktı olarak ayarlayın
IO0DIR = IO0DIR-0xffffffff
Bu, P0.0 - P0.31 pinlerini çıkış olarak ayarlar ancak sadece pinleri (P0.0, P0.1, P0.4, P0.5, P0.6, P0.7 ve P0.8) kullanacağız.
Ardından, görüntülenecek sayısal basamağa göre belirli pinleri LOGIC HIGH veya LOW olarak ayarlayın. Burada (0'dan 9'a kadar) değerleri göstereceğiz. 0 ila 9 arasındaki değerler için HEX değerlerinden oluşan bir dizi kullanacağız.
işaretsiz int a = {0xf3,0x12,0x163,0x133,0x192,0x1b1,0x1f1,0x13,0x1f3,0x1b3};
Kod döngü sırasında girildiği için değerler sürekli olarak görüntülenecektir.
while (1) { for (i = 0; i <= 9; i ++) { IO0SET = IO0SET-a; // karşılık gelen pinleri ayarlar YÜKSEK gecikme (9000); // IO0CLR = IO0CLR-a gecikme işlevini çağırır; // Karşılık gelen pinleri LOW olarak ayarlar } }
Burada IOSET ve IOCLR , sırasıyla HIGH ve LOW pinlerini ayarlamak için kullanılır. PORT0 pinlerini kullandığımız için IO0SET & IO0CLR'ye sahibiz .
For döngüsü, her yinelemede i'yi artırmak için kullanılır ve her i arttığında, 7 segment ayrıca üzerinde gösterilen basamağı da artırır.
gecikme fonksiyonu SET ve CLR arasında gecikme süresi oluşturmak için kullanılır
void delay (int k) // Gecikme yapma işlevi { int i, j; için (i = 0; i
Tam kod ve çalışan video açıklaması aşağıda verilmiştir. Ayrıca 7-Segment Display ile ilgili tüm projeleri buradan kontrol edin.