PIC 16F877 ma wiele cech, które sprawiają, że ten mikrokontroler jest świetny zarówno dla początkujących, jak i profesjonalistów.

PIC16F877A zawiera wszystko, co ma PIC16F877 i zawiera wewnętrzny oscylator zegarowy, lepiej działający moduł przetwornika analogowo-cyfrowego(ADC), i więcej!

Ten artykuł omówi cechy mikrokontrolera PIC16F877 i wprowadzi Cię do portu wejścia/wyjścia i prostego połączenia. Pomoże Ci to zrozumieć te urządzenia układu i jak z nich korzystać.

1.PIC 16F877 Przegląd

PIC16F877 oznacza, że ten mikrokontroler PIC może wykonywać kilka zadań z pomocą oprogramowania.

Projekt PIC 16F877 jest do wykorzystania jako samodzielny lub jako dodatek do obwodów innych urządzeń. Na przykład płytek RAMPS i Arduino. Może też pracować samodzielnie. Ale, jeśli chcesz, aby robił to bez problemów, musisz mieć oscylator kryształowy (częstotliwość).

PIC 16F877 jest urządzeniem w pełni statycznym, co oznacza, że pracuje z ograniczoną ilością pamięci flash i RAM. Ponadto ma doskonałą elastyczność działania, jest tani i najczęściej spotykany w układach.

16F877 1

(Mikrokontroler)

2. Cechy PIC 16F877

16F877 2

 (Microchip)

Ogólne cechy PIC16F877 to;

- Oszczędność energii tryb STOP, co oznacza, że można zatrzymać PIC16F877 bez usuwania go z obwodu

- High-speed PWM (Pulse Width Modulation) moduł może generować do 256 poziomów wyjściowych i ma wbudowany zegar programowalny Prescaler

- Jeden wewnętrzny regulator napięcia dla obwodu I/O i zintegrowany oscylator (kryształ lub rezonator ceramiczny)

- Jeden moduł komparatora w układzie

- Konwerter analogowo-cyfrowy o rozdzielczości 12 bitów, mogący konwertować do czterech analogowych kanałów wejściowych jednocześnie

- Obsługuje zewnętrzne przerwania używane do wybudzania urządzenia z trybu uśpienia lub w innym celu.

- Osiem różnych trybów oszczędzania energii

16F877 3

(Rozmontowany mikrokontroler)

- Moduł komparatora analogowego

- Do 23 pinów I/O

- Jeden tryb SPI i cztery moduły UART (jeden full-duplex)

- Kontroler przerwań z maksymalnie 14 źródłami przerwań

- Timer Watchdog, który generuje przerwanie, gdy upłynie czas jego działania

- Układ generujący reset po włączeniu zasilania

- Programowalny detektor zaniku napięcia (BOD)

- Wewnętrzny kalibrowany oscylator, który pozwala wewnętrznemu obwodowi RC pracować jako źródło zegara

- Programowanie szeregowe w obwodzie oraz możliwość debugowania w obwodzie poprzez interfejs debugWIRE

16F877 4

 (Mikrokontroler)

Główne/kluczowe cechy PIC 16F877 to:

Częstotliwość pracy zegarów wewnętrznych do 20 MHz

Posiada pięć (A-E) podstawowych portów wejścia/wyjścia 

8 10-bitowych kanałów wejściowych \C 

Posiada PSP jako komunikację równoległą

PIC16F877A posiada 8KB pamięci Flash

Dwa interfejsy komunikacji szeregowej: 2-przewodowa magistrala Inter-Integrated Circuit () oraz SMBus

368 poziomów bajtów pamięci danych z 256 poziomami (14 bitów) pamięci danych EEPROM

Posiada trzy timery tj. jeden 16-bitowy oraz 2 8-bitowe, pracujące w trybie timera lub licznika

Dodatkowe funkcje

- Jest programowalny w języku C.

- Mikrokontroler pracuje na wewnętrznym oscylatorze 16MHz.

- PIC16F877A jest konfigurowalny jako master lub slave i dostarczany z modułem SPI.

3. Schematy pinów mikrokontrolera PIC16F877A:

Układy PIC16F877 występują w różnych konstrukcjach i typach. Na przykład 40-PIN DIP, 44-PIN TQFP i 44-PIN QFN. Różnice te wynikają z ich różnorodnego wykorzystania i zastosowań. Poniższy obrazek przedstawia techniki i piny PIC16F877A.

16F877 5

(Diagram pinów układu PIC 16877)

ŹRÓDŁO; Microchip Datasheetspdf.com 

4. Wprowadzenie do opisów portów wejścia/wyjścia

Każdy port mikrokontrolera jest związany z dwoma rejestrami. Na przykład port C; jego rejestry to PORTC i TRISC. Rejestr TRISC określa, czy port jest wyjściowy czy wejściowy. Ponadto, można przypisać wartości do każdego pinu niezależnie.

Programując mikrokontrolery, używaj kompilatorów do pracy z oprogramowaniem. Najlepszym kompilatorem dla PIC16877A jest MPLAB XC8 COMPILER.  

- Konfiguracja PORT A pełni funkcję analogowego portu wejściowego, cyfrowego I/O, lub wyjścia PWM. Port A posiada sześć pinów, które są od pinu #2 do #7; oznaczone jako RA0 do RA5.

- Konfiguracja PORT B pełni funkcje wejścia cyfrowego, wejścia analogowego, przechwytywania wejścia timera, porównywania wyjścia timera, wejścia PWM. Port B posiada 8 pinów, tj. od pinu #33 do #40; Oznaczone jako RBO do RB7 

- Konfiguracja PORT C to moduł licznika/timera (wejście lub wyjście), UART, oraz SPI. Port C posiada również 8 pinów. Pierwsze 4 są od pinu #15 do #18, a pozostałe 4 są od pinu #23-#26. Piny te to RCO do RC7

 (Ilustracje portów PIC16F877A)

ŹRÓDŁO: Theengineeringprojects.com

- Konfiguracje PORT D to piny wejścia cyfrowego, wejścia analogowego oraz wyjścia timera. Port D posiada również 8 pinów. Pierwsze 4 znajdują się od pinu #19-#22, a pozostałe od pinu #27-#30. Te piny to RD0 do RD7.

- PORT E służy do fabrycznej rezerwacji miejsca. Posiada on trzy piny #8-#10, które są RE0 do RE2.

- VDD i VSS to piny zasilające, natomiast MCLR to pin master clear.

- PIC16F877A posiada do 18 pinów GPIO, które pozwalają na konfigurację sterownika jako wejście lub wyjście za pomocą powiązanych rejestrów.

- Oprócz pinów GPIO, na górnej powierzchni PIC16F877A znajduje się kilka innych dedykowanych pinów.

- VDD to pin dodatniego napięcia zasilania, natomiast VSS to pin odniesienia masy.

- PIC16F877A posiada 23 piny I/O, podzielone na dwa banki; bank A i bank B.

- Każdy pin I/O posiada unikalny bit, który po przypisaniu może funkcjonować jako wejście lub wyjście.

5. Od teorii do praktyki - Migające diody LED przy użyciu PIC16F877A

                                                        (Schemat układu PIC16F877A)

Powyższy schemat pokazuje jak połączyć diody LED z PIC16F877A. Podkreśla również krytyczne piny mikrokontrolera, które będą potrzebne podczas łączenia. Dla szybkiego połączenia; 

Najpierw podłącz 5v do pin#1 MSLR i dodaj do niego rezystor 10k Ohm.

Podłącz również 5v do pinu #11(VDD). Z drugiej strony, podłącz 5v do pinu #32(VSS).

Zapewnij masę na VSS(pin#12). Następnie podłącz piny #13(OSC1) i #14(OSC2) do oscylatora kryształowego 16MHz.

Następnie podłącz 2 kondensatory o wartości 33pF do masy. Teraz podłącz pin #31(VSS) do masy.

Na koniec podłącz diodę LED i rezystor 10k Ohm do pinu #21(RD2) aby umożliwić wgranie programu.

 (Electronic Components)

Aby błysnąć diodami LED przy użyciu PIC16F877A, podłącz diody LED pomiędzy PORTD i masę. Ponieważ potrzebujemy migać tylko jedną diodę LED, możemy połączyć ją z rezystorem 10k Ohm. Musimy skonfigurować PORT-D jako wyjście, ustawiając go na przejście z wysokiego na niskie, używając zatrzasku wyjściowego do zapalenia diody LED.

Możemy ustawić PORT-D na przejście low-to-high poprzez zapis 0x01 do rejestru Data Direction Register (DDRB). Aby ustawić PORT-D na stan wysoki, musimy zapisać 0x00 do rejestru DDRB, a to spowoduje włączenie diody LED.

Podsumowanie

W tym artykule poznaliśmy PIC 16F877, jego cechy oraz port wejścia/wyjścia w PIC16F877A. Mamy nadzieję, że Ci się podobało!

Jeśli jesteś zainteresowany mikrokontrolerem PIC, możesz również przeczytać inne nasze artykuły. Ponadto, jeśli masz jakiekolwiek pytania dotyczące PIC16F877, nie krępuj się skontaktować z nami.