Paparan adalah bahagian yang sangat penting dari mana-mana Aplikasi Sistem Tertanam kerana ia membantu pengguna mengetahui status sistem dan juga menunjukkan keluaran atau sebarang pesanan amaran yang dihasilkan oleh sistem. Terdapat banyak jenis paparan yang digunakan dalam elektronik seperti paparan 7 segmen, paparan LCD, paparan skrin sentuh TFT, paparan LED dll.
Kami telah Memadankan LCD 16x2 dengan ARM7-LPC2148 dalam tutorial sebelumnya. Hari ini dalam tutorial ini kita akan memaparkan Paparan 7 segmen dengan ARM7-LPC2148. Sebelum melihat secara terperinci, kita akan melihat cara mengendalikan modul 7 segmen untuk memaparkan sebilangan watak.
Paparan 7-Segmen
Paparan 7 segmen adalah antara unit paparan paling mudah untuk memaparkan nombor dan watak. Umumnya digunakan untuk memaparkan nombor dan mempunyai pencahayaan yang lebih terang dan pembinaan yang lebih sederhana daripada paparan dot matrix. Dan kerana pencahayaan yang lebih terang, output dapat dilihat dari jarak yang lebih besar daripada LCD. Seperti yang ditunjukkan dalam gambar paparan 7 segmen di atas, terdiri dari 8 LED, masing-masing LED digunakan untuk menerangi satu segmen unit dan 8thLED digunakan untuk menerangi DOT dalam paparan 7 segmen. 8thLED digunakan apabila dua atau lebih modul 7 segmen digunakan, misalnya untuk memaparkan (0.1). Modul tunggal digunakan untuk memaparkan satu digit atau watak. Untuk memaparkan lebih dari satu digit atau watak, banyak 7 segmen digunakan.
Paparan 7-Segmen
Terdapat 10 pin, di mana 8 pin digunakan untuk merujuk a, b, c, d, e, f, g dan h / dp, kedua pin tengah adalah anod / katod biasa dari semua LEDnya. Anod / katod biasa ini dipendekkan secara dalaman sehingga kita perlu menyambungkan hanya satu pin COM
Bergantung pada sambungan, kami mengelaskan 7-Segmen dalam dua jenis:
Katod biasa
Dalam ini semua terminal Negatif (katod) dari semua 8 LED disambungkan bersama (lihat rajah di bawah), dinamakan sebagai COM. Dan semua terminal positif dibiarkan sahaja atau disambungkan ke pin mikrokontroler. Sekiranya kita menggunakan mikrokontroler kita menetapkan logik TINGGI untuk menerangi yang tertentu dan menetapkan RENDAH untuk mematikan LED.
Anod Biasa
Dalam semua ini, terminal positif (Anod) dari semua 8 LED disambungkan bersama, dinamakan sebagai COM. Dan semua termal negatif dibiarkan atau disambungkan ke pin mikrokontroler. Sekiranya kita menggunakan mikrokontroler kita menetapkan logik RENDAH untuk menerangi logik tertentu dan menetapkan Tinggi untuk mematikan LED.
Jadi bergantung pada nilai pin, segmen atau garis 7 segmen tertentu dapat dihidupkan atau dimatikan untuk memaparkan angka atau abjad yang diinginkan. Contohnya untuk memaparkan 0 digit, kita mesti menetapkan pin ABCDEF sebagai TINGGI dan hanya G sebagai RENDAH. Oleh kerana LED ABCDEF AKTIF dan G MATI ini membentuk 0 digit dalam modul 7 segmen. (Ini untuk katod biasa, untuk anoda biasa berlawanan).
Jadual di bawah menunjukkan nilai HEX dan digit yang sesuai mengikut pin LPC2148 untuk konfigurasi katod biasa.
Digit |
Nilai HEX untuk LPC2148 |
A |
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 |
PENTING: Dalam jadual di atas saya telah memberikan nilai HEX mengikut pin yang telah saya gunakan di LPC2148, periksa rajah litar di bawah. Anda boleh menggunakan pin apa sahaja yang anda mahukan tetapi menukar nilai hex mengikutnya.
Untuk mengetahui lebih lanjut mengenai paparan 7 segmen, buka pautan. Periksa juga antara muka paparan 7 segmen dengan pengawal mikro lain:
- 7 Segmen Paparan Berinteraksi dengan Raspberry Pi
- 7 Segmen Paparan Berinteraksi dengan PIC Microcontroller
- 7 Segmen Paparan Berinteraksi dengan Arduino
- Antaramuka Paparan 7 Segmen dengan Mikrokontroler 8051
- Kaunter 0-99 menggunakan AVR Microcontroller
Bahan yang Diperlukan
Perkakasan
- ARM7-LPC2148
- Modul Paparan Tujuh Segmen (Single Digit)
- Papan roti
- Wayar Penyambung
Perisian
- Keil uVision5
- Magic Flash
Rajah Litar
Untuk menghubungkan 7-segmen dengan LPC2148, tidak diperlukan komponen luaran seperti yang ditunjukkan dalam rajah litar di bawah:
Jadual di bawah menunjukkan sambungan litar antara modul 7-Segmen & LPC2148
Pin Modul Tujuh Segmen |
LPC2148 Pin |
A |
P0.0 |
B |
P0.1 |
C |
P0.4 |
D |
P0.5 |
E |
P0.6 |
F |
P0.7 |
G |
P0.8 |
Biasa |
GND |
Pengaturcaraan ARM7 LPC2148
Kami telah belajar bagaimana memprogram ARM7-LPC2148 menggunakan Keil dalam tutorial kami sebelumnya. Kami menggunakan Keil uVision 5 yang sama di sini untuk menulis kod dan membuat fail hex, dan kemudian memuat naik fail hex ke LPC2148 menggunakan alat sihir kilat. Kami menggunakan kabel USB untuk menghidupkan dan memuat naik kod ke LPC2148
Kod lengkap dengan penjelasan Video diberikan pada akhir tutorial ini. Di sini kami menerangkan beberapa bahagian penting kod tersebut.
Mula-mula kita perlu memasukkan fail tajuk untuk mikrokontroler siri LPC214x
#sertakan
Seterusnya tetapkan pin sebagai output
IO0DIR = IO0DIR-0xffffffff
Ini menetapkan pin P0.0 hingga P0.31 sebagai output tetapi kami akan menggunakan pin (P0.0, P0.1, P0.4, P0.5, P0.6, P0.7, dan P0.8) sahaja.
Kemudian tetapkan pin tertentu pada LOGIC TINGGI atau RENDAH mengikut digit angka yang akan dipaparkan. Di sini kita akan memaparkan nilai dari (0 hingga 9). Kami akan menggunakan array yang terdiri daripada nilai HEX untuk nilai 0 hingga 9.
unsigned int a = {0xf3,0x12,0x163,0x133,0x192,0x1b1,0x1f1,0x13,0x1f3,0x1b3};
Nilai akan dipaparkan secara berterusan kerana kod telah dimasukkan semasa gelung
sementara (1) { untuk (i = 0; i <= 9; i ++) { IO0SET = IO0SET-a; // menetapkan pin yang sesuai kelewatan TINGGI (9000); // Fungsi kelewatan panggilan IO0CLR = IO0CLR-a; // Tetapkan pin yang sepadan RENDAH } }
Di sini IOSET dan IOCLR digunakan untuk menetapkan pin masing-masing TINGGI dan RENDAH. Oleh kerana kami telah menggunakan pin PORT0, maka kami mempunyai IO0SET & IO0CLR .
Untuk gelung digunakan untuk meningkatkan i dalam setiap lelaran dan setiap kali ketika saya bertambah, 7 segmen juga menambah digit yang ditunjukkan di atasnya.
fungsi delay digunakan untuk menjana masa delay antara SET & CLR
penundaan void (int k) // Fungsi untuk membuat kelewatan { int i, j; untuk (i = 0; i
Kod lengkap dan penerangan video kerja diberikan di bawah. Lihat juga semua projek berkaitan Paparan 7-Segmen di sini.