Ang display ay isang napakahalagang bahagi ng anumang Embedded System Application dahil tinutulungan nito ang mga gumagamit na malaman ang katayuan ng system at ipinapakita rin ang output o anumang mensahe ng babala na nilikha ng system. Mayroong maraming mga uri ng pagpapakita na ginagamit sa electronics tulad ng 7-segment display, LCD display, TFT touchscreen display, LED display atbp.
Nag-interfaced na kami ng 16x2 LCD sa ARM7-LPC2148 sa aming nakaraang tutorial. Ngayon sa tutorial na ito makikipag-ugnay kami sa isang 7-segment na Display sa ARM7-LPC2148. Bago pumunta sa detalye, makikita natin kung paano makontrol ang 7-segment na module upang maipakita ang anumang bilang ng character.
7-Segment na Pagpapakita
Ang 7 mga pagpapakita ng segment ay kabilang sa pinakasimpleng mga yunit ng pagpapakita upang maipakita ang mga numero at character. Karaniwan itong ginagamit upang ipakita ang mga numero at may mas maliwanag na pag-iilaw at mas simpleng konstruksyon kaysa sa dot matrix display. At dahil sa mas maliwanag na pag-iilaw, ang output ay maaaring matingnan mula sa mas malaking distansya kaysa sa LCD. Tulad ng ipinakita sa imahe sa itaas ng isang 7-segment na display, binubuo ito ng 8 LEDs, ang bawat LED na ginamit upang maipaliwanag ang isang segment ng yunit at ang 8thLED na ginamit upang maipaliwanag ang DOT sa 7 segment na display. Ginagamit ang 8thLED kapag ginamit ang dalawa o higit pang 7-segment na mga module, halimbawa upang ipakita (0.1). Ang isang solong module ay ginagamit upang ipakita ang solong digit o character. Upang maipakita ang higit sa isang digit o character, maraming 7-segment ang ginagamit.
Mga Pin ng 7-Segment Display
Mayroong 10 mga pin, kung saan 8 mga pin ang ginamit upang mag-refer sa a, b, c, d, e, f, g at h / dp, ang dalawang gitnang pin ay karaniwang anode / cathode ng lahat ng kanyang LED. Ang mga karaniwang anode / cathode na ito ay panloob na naikli kaya kailangan nating kumonekta sa isang COM pin lamang
Depende sa koneksyon inuri namin ang 7-Segment sa dalawang uri:
Karaniwang Cathode
Sa ito ang lahat ng mga Negatibong terminal (cathode) ng lahat ng 8 LEDs ay konektado magkasama (tingnan ang diagram sa ibaba), na pinangalanan bilang COM. At lahat ng mga positibong terminal ay naiwan nang nag-iisa o nakakonekta sa mga microcontroller pin. Kung gumagamit kami ng microcontroller itinakda namin ang lohika MATATAAS upang maipaliwanag ang partikular at itakda ang LOW upang i-OFF ang LED.
Karaniwang Anode
Sa ito ang lahat ng mga positibong terminal (Anode) ng lahat ng 8 LEDs ay konektado magkasama, na pinangalanan bilang COM. At lahat ng mga negatibong termal ay naiwan nang nag-iisa o nakakonekta sa mga pin ng microcontroller. Kung gumagamit kami ng microcontroller itinakda namin ang LOW ng lohika upang maipaliwanag ang partikular at itakda ang Mataas na lohika upang i-OFF ang LED.
Kaya depende sa halaga ng pin, ang isang partikular na segment o linya ng 7 segment ay maaaring i-on o I-off upang ipakita ang nais na numero o alpabeto. Halimbawa upang maipakita ang 0 digit dapat nating itakda ang mga pin na ABCDEF bilang TAAS at G lamang ang mababa. Tulad ng mga ABCDEF LEDs ay ON at G ay OFF ang form na ito ng 0 digit sa 7-segment na module. (Ito ay para sa karaniwang cathode, para sa karaniwang anode ay nasa kabaligtaran ito).
Ipinapakita ng talahanayan sa ibaba ang mga halaga ng HEX at kaukulang digit ayon sa mga LPC2148 na pin para sa karaniwang pagsasaayos ng cathode.
Digit |
Mga Halaga ng HEX para sa 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 |
MAHALAGA: Sa talahanayan sa itaas nabigyan ko ang mga halaga ng HEX ayon sa mga pin na ginamit ko sa LPC2148, suriin ang circuit diagram sa ibaba. Maaari mong gamitin ang anumang mga pin na gusto mo ngunit baguhin ang mga halaga ng hex alinsunod dito.
Upang matuto nang higit pa tungkol sa pagpapakita ng 7-segment, dumaan sa link. Suriin din ang mga interface ng 7-segment na display sa iba pang mga microcontroller:
- 7 Segment ng Display Interfacing kasama ang Raspberry Pi
- 7 Segment ng Display Interfacing sa PIC Microcontroller
- 7 Segment ng Display Interfacing kasama si Arduino
- 7 Segment Display Interfacing na may 8051 Microcontroller
- 0-99 Counter gamit ang AVR Microcontroller
Mga Materyal na Kinakailangan
Hardware
- ARM7-LPC2148
- Pitong Module ng Display ng Segment (Single Digit)
- Breadboard
- Mga Koneksyon sa Mga Wires
Software
- Keil uVision5
- Flash Magic
Diagram ng Circuit
Para sa interfacing 7-segment sa LPC2148, walang panlabas na sangkap ang kinakailangan tulad ng ipinakita sa circuit diagram sa ibaba:
Ipinapakita ng talahanayan sa ibaba ang mga koneksyon sa circuit sa pagitan ng 7-Segment module at LPC2148
Pitong Mga module ng Mod ng Segment |
LPC2148 Mga Pin |
A |
P0.0 |
B |
P0.1 |
C |
P0.4 |
D |
P0.5 |
E |
P0.6 |
F |
P0.7 |
G |
P0.8 |
Karaniwan |
GND |
Programming ARM7 LPC2148
Natutunan namin kung paano i-program ang ARM7-LPC2148 gamit ang Keil sa aming nakaraang tutorial. Gumagamit kami ng parehong Keil uVision 5 dito upang isulat ang code at lumikha ng hex file, at pagkatapos ay i-upload ang hex file sa LPC2148 gamit ang flash magic tool. Gumagamit kami ng USB cable upang i-power at i-upload ang code sa LPC2148
Ang kumpletong code na may paliwanag sa Video ay ibinibigay sa pagtatapos ng tutorial na ito. Narito ipinapaliwanag namin ang ilang mahahalagang bahagi ng code.
Una kailangan naming isama ang header file para sa LPC214x series microcontroller
# isama
Susunod na itakda ang mga pin bilang output
IO0DIR = IO0DIR-0xffffffff
Itinatakda nito ang mga pin na P0.0 hanggang P0.31 bilang output ngunit gagamitin namin ang mga pin (P0.0, P0.1, P0.4, P0.5, P0.6, P0.7, at P0.8) lamang.
Pagkatapos itakda ang ilang mga pin sa LOGIC HIGH o LOW ayon sa numerong digit na ipapakita. Dito ipapakita ang mga halaga mula sa (0 hanggang 9). Gumagamit kami ng isang array na binubuo ng mga halagang HEX para sa mga halagang 0 hanggang 9.
unsigned int a = {0xf3,0x12,0x163,0x133,0x192,0x1b1,0x1f1,0x13,0x1f3,0x1b3};
Patuloy na ipapakita ang mga halaga habang inilagay ang code habang loop
habang (1) { para sa (i = 0; i <= 9; i ++) { IO0SET = IO0SET-a; // nagtatakda ng mga kaukulang pin na TAAS na pagkaantala (9000); // Calls delay function IO0CLR = IO0CLR-a; // Nagtatakda ng mga kaukulang pin na Mababa } }
Narito ang IOSET at IOCLR ay ginagamit upang itakda ang mga pin na TAAS at Mababa ayon sa pagkakabanggit. Tulad ng ginamit naming PORT0 na mga pin kaya mayroon kaming IO0SET & IO0CLR .
Para sa loop ay ginagamit upang madagdagan ang i sa bawat pag-ulit at sa bawat oras na ako increment, 7 segment din increment ang digit na kung saan ay ipinapakita dito.
ang pagpapaandar na pagpapaandar ay ginagamit upang makabuo ng oras ng pagkaantala sa pagitan ng SET & CLR
void delay (int k) // Function para sa paggawa ng pagkaantala { int i, j; para sa (i = 0; i
Ang kumpletong code at gumaganang paglalarawan ng video ay ibinibigay sa ibaba. Suriin din dito ang lahat ng mga kaugnay na proyekto na 7-Segment na Display.