Siedmiosegmentowe wyświetlacze są ważnymi jednostkami wyświetlającymi w elektronice i są szeroko stosowane do wyświetlania liczb od 0 do 9. Może również wyświetlać niektóre alfabety znaków, takie jak A, B, C, H, F, E itp. W tym samouczku nauczymy się jak połączyć 7-segmentowy wyświetlacz z mikrokontrolerem 8051. Używamy mikrokontrolera AT89S52 z serii 8051.
Przed przystąpieniem do współpracy powinniśmy zapoznać się z wyświetlaczem 7-segmentowym. To najprostsza jednostka do wyświetlania liczb i znaków. Składa się tylko z 8 diod LED, z których każda służy do oświetlania jednego segmentu jednostki, a ósma dioda LED służy do podświetlania DOT na wyświetlaczu 7-segmentowym. Możemy odnieść się do każdego segmentu jako LINII, ponieważ widzimy, że w jednostce znajduje się 7 wierszy, które służą do wyświetlania liczby / znaku. Możemy odnieść się do każdej linii / segmentu „a, b, c, d, e, f, g”, a dla znaku kropki użyjemy „h”. Jest 10 pinów, w których 8 pinów jest używanych do odniesienia a, b, c, d, e, f, g i h / dp, dwa środkowe piny są wspólną anodą / katodą wszystkich diod LED. Te wspólne anody / katody są wewnętrznie zwarte, więc musimy podłączyć tylko jeden pin COM.
Istnieją dwa typy wyświetlaczy 7-segmentowych: ze wspólną anodą i ze wspólną katodą:
Wspólna anoda: W tym przypadku wszystkie ujemne zaciski (katoda) wszystkich 8 diod LED są połączone razem (patrz schemat poniżej), nazywane COM. Wszystkie dodatnie zaciski są pozostawione same.
Wspólna katoda: W tym przypadku wszystkie dodatnie zaciski (anody) wszystkich 8 diod LED są połączone razem, nazywane COM. I wszystkie ujemne termiki pozostają w spokoju.
Schemat obwodu i wykład roboczy
Tutaj używamy wspólnego typu anody 7-segmentowej, ponieważ musimy podłączyć diody LED odwrotnie. Ponieważ wiemy, że mikrokontroler nie zapewnia wystarczającej mocy, aby świecić diodą LED, musimy podłączyć katodę diody do pinu mikrokontrolera, a anodę diody do zasilania. Możesz zrozumieć tę koncepcję logiki negatywnej w tym artykule „Połączenie diod LED z mikrokontrolerem 8051”. Powinieneś także przeczytać ten artykuł, aby zrozumieć podstawowe połączenie mikrokontrolera, takiego jak kryształ i obwód resetowania.
Jak pokazano powyżej, schemat obwodu do połączenia 7-segmentowego wyświetlacza z mikrokontrolerem 8051, podłączyliśmy a, b, c, d, e, f, g, h do pinów 2.0 do 2.7, co oznacza, że podłączamy 7 segmentów do portu 2 mikrokontrolera. Teraz przypuśćmy, że chcemy wyświetlić 0, to musimy zaświecić wszystkie diody poza diodą LED, która należy do linii „g” (patrz schemat powyżej), więc piny od 2.0 do 2.6 powinny mieć 0 (powinny wynosić 0, aby WŁĄCZYĆ diodę jako na logikę ujemną), a styki 2.7 i 2.8 powinny mieć stan 1 (powinno wynosić 1, aby WYŁĄCZYĆ diodę LED zgodnie z logiką ujemną). Tak więc diody LED podłączone do pinów 2.0 do 2.6 (a, b, c, d, e, f) będą WŁĄCZONE, a diody podłączone do 2.7 i 2.8 (g i h) będą wyłączone, co utworzy „0” w 7 człon. Potrzebujemy więc wzoru bitowego 11000000 (pin 8 jest najwyższym bitem, więc zaczynając od P2.7 do P2.0), a kod HEX dla binarnego 11000000 to „C0”. Podobnie możemy obliczyć dla wszystkich cyfr. W tym miejscu należy zauważyć, że opcja „kropka / h” jest zawsze WYŁĄCZONA,więc za każdym razem musimy dać LOGIC „1”. Poniższa tabela zawiera wszystkie liczby przy zastosowaniu segmentu wspólnej anody 7.
Cyfra do wyświetlenia |
hgfedcba |
Kod szesnastkowy |
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 |
Objaśnienie kodu
Stworzyliśmy funkcję ms_delay, aby zapewnić opóźnienie w milisekundach, opóźnienie to jest zwykle dostarczane w dowolnym programie mikrokontrolera, aby mikrokontroler mógł zakończyć swoje wewnętrzne działanie.
Następnie stworzyliśmy tablicę kodów szesnastkowych od 0 do 9 (patrz tabela powyżej), a na koniec wysłaliśmy kody szesnastkowe do portu 2, który jest podłączony do segmentu wspólnej anody 7. W ten sposób liczby są wyświetlane na 7-segmentowym wyświetlaczu.
Teraz mamy tylko 4 porty w mikrokontrolerze, a co jeśli chcemy pokazać dane w więcej niż czterech 7 segmentach? Aby rozwiązać ten problem, pojawia się technika multipleksowania. Musimy multipleksować wiele jednostek 7-segmentowych. Przeczytaj także interfejs 7-segmentowy wyświetlacz z mikrokontrolerem AVR.