Ang pitong pagpapakita ng segment ay mahalagang mga unit ng pagpapakita sa Electronics at malawak na ginagamit upang ipakita ang mga numero mula 0 hanggang 9. Maaari rin itong ipakita ang ilang mga alpabeto ng character tulad ng A, B, C, H, F, E atbp. Sa tutorial na ito, matututunan natin kung paano i-interface ang isang 7 segment na display sa 8051 microcontroller. Gumagamit kami ng AT89S52 microcontroller mula sa 8051 series.
Bago mag-interfacing, dapat nating malaman ang tungkol sa 7 segment na pagpapakita. Ito ang pinakasimpleng yunit upang magpakita ng mga numero at character. Binubuo lamang ito ng 8 LEDs, ang bawat LED na ginamit upang mag-iilaw ng isang segment ng yunit at ang ika- 8 LED na ginamit upang mag-ilaw ng DOT sa 7 segment na display. Maaari naming i-refer ang bawat segment bilang isang LINYA, tulad ng nakikita natin na may 7 mga linya sa yunit, na ginagamit upang ipakita ang isang numero / character. Maaari naming i-refer ang bawat linya / segment na "a, b, c, d, e, f, g" at para sa dot character na gagamitin namin ang "h". 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.
Mayroong dalawang uri ng 7 pagpapakita ng segment: Karaniwang Anode at Karaniwang Cathode:
Karaniwang Anode: 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 naiwang nag-iisa.
Karaniwang Cathode: Sa ito ang lahat ng mga positibong terminal (Anode) ng lahat ng 8 LEDs ay konektado magkasama, pinangalanan bilang COM. At lahat ng mga negatibong termal ay naiwang nag-iisa.
Circuit Diagram at Pagwawakas ng Paggawa
Narito ginagamit namin ang karaniwang uri ng anode ng 7 na segment dahil kailangan naming ikonekta ang mga LED sa kabaligtaran. Tulad ng alam natin na ang microcontroller ay hindi nagbibigay ng sapat na lakas upang magaan ang LED kaya kailangan naming ikonekta ang katod ng LED sa microcontroller pin at LED's anode sa power supply. Maaari mong maunawaan ang negatibong konsepto ng lohika sa artikulong ito na "LED Interfacing with 8051 Microcontroller". Dapat mo ring basahin ang artikulong ito upang maunawaan ang pangunahing koneksyon ng microcontroller tulad ng kristal at pag-reset ng circuitry.
Tulad ng ipinakita sa itaas ng circuit diagram para sa interface ng 7 segment na display sa 8051 microcontroller, nakakonekta namin ang a, b, c, d, e, f, g, h sa mga pin 2.0 hanggang 2.7 nangangahulugang kumokonekta kami ng 7 segment sa port 2 ng microcontroller. Ngayon ipagpalagay na nais nating ipakita ang 0, kung gayon kailangan nating mamula sa lahat ng mga LEDs maliban sa LED na kabilang sa linya na "g" (tingnan ang diagram sa itaas), kaya ang mga pin na 2.0 hanggang 2.6 ay dapat na nasa 0 (dapat na 0 upang BUKSIN ang LED bilang bawat negatibong lohika) at ang pin na 2.7 at 2.8 ay dapat na nasa 1 (dapat ay 1 upang TURN OFF ang LED bilang bawat negatibong lohika). Kaya't ang mga LED na konektado sa mga pin 2.0 hanggang 2.6 (a, b, c, d, e, f) ay ON at ang mga LED na konektado sa 2.7 at 2.8 (g at h) ay OFF, na lilikha ng isang "0" sa 7 segment. Kaya kailangan namin ng pattern ng 11000000 (Pin 8 ang pinakamataas na bit kaya nagsisimula mula P2.7 hanggang P2.0), at ang HEX code para sa binary 11000000 ay "C0". Katulad nito maaari nating kalkulahin para sa lahat ng mga digit. Narito dapat nating tandaan na pinapanatili nating laging naka-OFF ang "tuldok / h",kaya kailangan nating bigyan ito ng LOGIC "1" sa bawat oras. Ang isang talahanayan ay ibinigay sa ibaba para sa lahat ng mga numero habang gumagamit ng segment na Karaniwang Anode 7.
Ipakita ang Digit |
hgfedcba |
Hex code |
0 |
11000000 |
C0 |
1 |
11111001 |
F9 |
2 |
10100100 |
A4 |
3 |
10110000 |
B0 |
4 |
10011001 |
99 |
5 |
10010010 |
92 |
6 |
10000010 |
82 |
7 |
11111000 |
F8 |
8 |
10000000 |
80 |
9 |
10010000 |
90 |
Paliwanag sa Code
Nilikha namin ang pagpapaandar ng ms_delay upang maibigay ang pagkaantala sa milliseconds, ang pagka-antala na ito ay karaniwang ibinibigay sa anumang programa ng microcontroller upang makumpleto ng microcontroller ang panloob na operasyon nito.
Pagkatapos ay lumikha kami ng isang hanay ng mga hex code para sa 0 hanggang 9 (tingnan ang talahanayan sa itaas), at sa wakas ay naipadala na namin ang mga hex code sa port 2, na konektado sa karaniwang segment ng anode 7. Kaya sa ganitong paraan ang mga numero ay ipinapakita sa 7 segment na pagpapakita.
Ngayon mayroon kaming 4 na port lamang sa microcontroller at paano kung nais naming ipakita ang data sa higit sa apat na 7 na segment ?? Upang malutas ang problemang ito, magkakaroon ng larawan ang Multiplexing technique. Kailangan naming multiplex ng maramihang mga 7 segment na segment. Basahin din ang pag-interface ng 7 segment na pagpapakita sa AVR microcontroller.