alle kategorier

Vogn 0 punkt

Indkøbskurv 0 punkt

MFR -del # Antal
INDSEND (0)

Vælg sprog

Nuværende sprog

Dansk

  • English
  • Deutsch
  • Italia
  • Français
  • 한국의
  • русский
  • Svenska
  • Nederland
  • español
  • Português
  • polski
  • Suomi
  • Gaeilge
  • Slovenská
  • Slovenija
  • Čeština
  • Melayu
  • Magyarország
  • Hrvatska
  • Dansk
  • românesc
  • Indonesia
  • Ελλάδα
  • Български език
  • Afrikaans
  • IsiXhosa
  • isiZulu
  • lietuvių
  • Maori
  • Kongeriket
  • Монголулс
  • O'zbek
  • Tiếng Việt
  • हिंदी
  • اردو
  • Kurdî
  • Català
  • Bosna
  • Euskera
  • العربية
  • فارسی
  • Corsa
  • Chicheŵa
  • עִבְרִית
  • Latviešu
  • Hausa
  • Беларусь
  • አማርኛ
  • Republika e Shqipërisë
  • Eesti Vabariik
  • íslenska
  • မြန်မာ
  • Македонски
  • Lëtzebuergesch
  • საქართველო
  • Cambodia
  • Pilipino
  • Azərbaycan
  • ພາສາລາວ
  • বাংলা ভাষার
  • پښتو
  • malaɡasʲ
  • Кыргыз тили
  • Ayiti
  • Қазақша
  • Samoa
  • සිංහල
  • ภาษาไทย
  • Україна
  • Kiswahili
  • Cрпски
  • Galego
  • नेपाली
  • Sesotho
  • Тоҷикӣ
  • Türk dili
  • ગુજરાતી
  • ಕನ್ನಡkannaḍa
  • मराठी
HjemBlogPIC16F877A: Pinout, datablad, programmering og projekter

ELEKTRONISKE KOMPONENTER PÅ LAGER.
HURTIGE CITATER.

Integrerede kredsløb, strømenheder og passive komponenter
Øjeblikkelig sourcing support

FÅ TILBUD NU

PIC16F877A: Pinout, datablad, programmering og projekter

Tid: 2026-08-25

Gennemse: 894

PIC16F877A er en 8-bit Flash mikrokontroller fra Microchip designet til indlejrede kontrol- og overvågningsopgaver. Den fås i 40- og 44-benede pakker, understøtter klokfrekvenser op til 20 MHz og giver 33 I/O pins til tilslutning af sensorer, kontakter, display, alarmer, motorer og kommunikationsmoduler. Programmer kan udvikles i C ved hjælp af MPLAB X IDE og XC8-kompilatoren, hvorefter de kan indlæses via In-Circuit Serial Programming (ICSP) med en kompatibel programmer, såsom en PICkit. PIC16F877A forbliver i produktion, selvom Microchip listePIC16F18877 som den nyere enhed. Denne artikel forklarer dens pinout, specifikationer, praktisk testning, programmering, virkelige resultater, almindelige problemer og alternativer.

Katalog

PIC16F877A Microcontroller

Figur 1. PIC16F877A Mikrokontroller

PIC16F877A Mikrokontroller Pinout

 PIC16F877A Microcontroller Pinout

Figur 2. PIC16F877A Mikrokontroller Pinout

Pin
Ben navn
Hoved funktioner
1
MCLR/VPP
Aktiv-lav master nulstillingsindgang og programmerings spændingsindgang.
2
RA0/AN0
Port A digital I/O og ADC analog indgang kanal 0.
3
RA1/AN1
Port A digital I/O og ADC analog indgang kanal 1.
4
RA2/AN2/VREF−/CVREF
Digital I/O, ADC kanal 2, lav ADC reference indgang og komparator reference udgang.
5
RA3/AN3/VREF+
Digital I/O, ADC kanal 3 og høj ADC reference indgang.
6
RA4/T0CKI/C1OUT
Digital I/O, Timer0 ekstern klok input og Comparator 1 udgang. RA4 bruger en åben-dræning udgang.
7
RA5/AN4/SS/C2OUT
Digital I/O, ADC kanal 4, aktiv-lav SPI Slave Select indgang og Comparator 2 udgang.
8
RE0/RD/AN5
Port E digital I/O, aktiv-lav Parallel Slave Port læse kontrol og ADC kanal 5.
9
RE1/WR/AN6
Port E digital I/O, aktiv-lav Parallel Slave Port skrive kontrol og ADC kanal 6.
10
RE2/CS/AN7
Port E digital I/O, aktiv-lav Parallel Slave Port chip select og ADC kanal 7.
11
VDD
Positiv strømforsyningsforbindelse.
12
VSS
Jordforbindelse.
13
OSC1/CLKI
Krystal, resonator eller ekstern klok indgang.
14
OSC2/CLKO
Krystal eller resonator udgang. I RC-tilstand, CLKO udgang en fjerdedel af oscillatorens frekvens.
15
RC0/T1OSO/T1CKI
Port C digital I/O, Timer1 oscillator output og Timer1 ekstern klokke input.
16
RC1/T1OSI/CCP2
Digital I/O, Timer1 oscillator input og CCP2 capture, compare eller PWM forbindelse.
17
RC2/CCP1
Digital I/O og CCP1 capture, compare eller PWM forbindelse.
18
RC3/SCK/SCL
Digital I/O, SPI klokke input/output og I²C klokke input/output.
19
RD0/PSP0
Port D digital I/O og Parallel Slave Port data bit 0.
20
RD1/PSP1
Port D digital I/O og Parallel Slave Port data bit 1.
21
RD2/PSP2
Port D digital I/O og Parallel Slave Port data bit 2.
22
RD3/PSP3
Port D digital I/O og Parallel Slave Port data bit 3.
23
RC4/SDI/SDA
Digital I/O, SPI data input og I²C data input/output.
24
RC5/SDO
Digital I/O og SPI data output.
25
RC6/TX/CK
Digital I/O, USART asynkron transmission og synkron klokke input/output.
26
RC7/RX/DT
Digital I/O, USART asynkron modtagelse og synkron data input/output.
27
RD4/PSP4
Port D digital I/O og Parallel Slave Port data bit 4.
28
RD5/PSP5
Port D digital I/O og Parallel Slave Port data bit 5.
29
RD6/PSP6
Port D digital I/O og Parallel Slave Port data bit 6.
30
RD7/PSP7
Port D digital I/O og Parallel Slave Port data bit 7.
31
VSS
Jordforbindelse.
32
VDD
Positiv strømforsyningsforbindelse.
33
RB0/INT
Port B digital I/O og ekstern interrupt input.
34
RB1
Port B digital I/O.
35
RB2
Port B digital I/O.
36
RB3/PGM
Digital I/O og lavspændings ICSP programmeringsaktiveringsinput.
37
RB4
Digital I/O med interrupt-on-change funktionalitet.
38
RB5
Digital I/O med interrupt-on-change funktionalitet.
39
RB6/PGC
Digital I/O, interrupt-on-change, ICSP programmeringsklokke og debugging klokke.
40
RB7/PGD
Digital I/O, interrupt-on-change, ICSP programmeringsdata og debugging data.

Både VDD-ben og begge VSS-ben skal forbindes. PORTB-ben understøtter softwarekontrollerede svage pull-ups, mens RB4–RB7 understøtter interrupt-on-change. Analoge ben skal konfigureres korrekt, før de bruges som digital I/O.

PIC16F877A bestillingsbare delenumre og pakker

Temperatursuffikset identificerer driftsområdet: I betyder industriel, mens E betyder forlænget. Pakke koden efter skråstregen identificerer enten P for PDIP eller PT for TQFP.

Bestillingsbart delenummer
Pakke type
Ben antal
Drifts temperatur
PIC16F877A-I/P
PDIP
40
−40 °C til +85 °C, industriel
PIC16F877A-I/PT
TQFP
44
−40 °C til +85 °C, industriel
PIC16F877A-E/P
PDIP
40
−40 °C til +125 °C, forlænget
PIC16F877A-E/PT
TQFP
44
−40 °C til +125 °C, forlænget

Alle fire versioner tilbyder den samme 8K × 14-ords programhukommelse, 368 bytes SRAM, 256 bytes EEPROM og 33 I/O ben. Disse specifikationer er derfor angivet én gang i stedet for at blive gentaget i tabellen.

PIC16F877A arkitektur og arbejdsprincip

PIC16F877A arkitektur

PIC16F877A bruger en 8-bit RISC CPU med Harvard arkitektur. Den har en 14-bit programbus og en 8-bit databus, der er adskilt, hvilket giver CPU'en mulighed for at hente instruktioner, mens den tilgår data. Den indeholder 8K × 14-bit Flash programhukommelse, 368 bytes RAM og 256 bytes data EEPROM.

Den 13-bit programtæller vælger instruktioner, mens det otte-niveau hardware stack gemmer returadresser for subrutiner og interrupts. ALU, W register og STATUS register behandler data. PORTA til PORTE giver 33 I/O ben.

PIC16F877A Architecture Block Diagram. Source: Microchip PIC16F87XA Data Sheet, Figure 1-2.

Figur 3. PIC16F877A arkitektur blokdiagram

PIC16F877A instruktion cyklus

Oscillatorens klokke opdeles i fire faser, Q1 til Q4. Derfor kører instruktionens klokke ved , og en instruktion cyklus varer. Ved 20 MHz svarer dette til 200 ns. En to-trins pipeline henter den næste instruktion, mens den udfører den tidligere. De fleste instruktioner tager én cyklus, mens grene kræver to cyklusser, da pipelinen skal tømmes.

 PIC16F877A Instruction Cycle

Figur 4. PIC16F877A instruktion cyklus

Interrupt og perifer betjening

Når en aktiveret interruption opstår, gemmer CPU'en returadressen på hardware-stakken, nulstiller det globale interrupt aktiveringsbit og hopper til adresse 0004h. Interrupt rutinen tjekker og nulstiller det relevante flag, før RETFIE genopretter normal udførelse. Firmware skal gemme vigtige registre som W, STATUS og PCLATH når det er nødvendigt.

Timere, ADC, CCP/PWM, USART, SPI, I²C, komparatore og Parallel Slave Port styres gennem specielle funktionsregistre. Disse perifere enheder kan fungere sammen med CPU'en, sætte statusflager og generere interrupts, når de er aktiveret.

PIC16F877A tekniske specifikationer

Specifikation
PIC16F877A
CPU-arkitektur
8-bit RISC
Maksimal klokfrekvens
20 MHz
Maksimal ydeevne
5 MIPS
Programhukommelse
8K × 14-bit ord
SRAM
368 bytes
Data EEPROM
256 bytes
I/O Pins
33
Drifts spænding
4.0–5.5 V
ADC
10-bit, 8 kanaler
Timere
To 8-bit og en 16-bit
CCP/PWM moduler
2 moduler, PWM opløsning op til 10 bit
Kommunikations grænseflader
USART, SPI og I²C
Interrupt kilder
15
Komparatore
2
Pakke muligheder
40-pin PDIP og 44-pin overflademonterede pakker
Drifts temperatur
−40°C til +85°C eller −40°C til +125°C, afhængigt af modellen

PIC16F877A minimumskredsløb og testprocedure

 PIC16F877A minimum operating circuit, ICSP header and RD0 test LED

Figur 5. PIC16F877A minimum drift kredsløb, ICSP-header og RB0 test LED

Figur 5 viser de minimum forbindelser, der kræves for at betjene og programmere en 40-pin PIC16F877A. Begge VDD-pins, 11 og 32, forbinder til den regulerede +5 V skinne, mens VSS-pins 12 og 31 forbinder til jord. En separat 100 nF keramisk kondensator skal placeres tæt på hvert VDD-VSS par. Den valgfrie 4.7–10 µF kondensator nær J2 giver yderligere strømforsyning filtrering. RB0 test LED matcher programmeringseksemplet i C6.

MCLR/VPP pin er trukket op til +5 V gennem en 10 kΩ modstand. En 20 MHz parallel-kut krystal forbinder mellem OSC1 på pin 13 og OSC2 på pin 14. Hver oscillator pin forbinder til jord gennem en belastningskondensator. De illustrerede 22 pF værdier er startværdier; de endelige værdier skal følge krystaltillverkerens belastningskondensator specifikation. Oscillator konfigurationen skal være indstillet til HS.

ICSP-headeren forbinder som følger:

ICSP signal
PIC16F877A forbindelse
MCLR/VPP
Pin 1
VDD Target/Sense
+5 V skinne
VSS
Jord
PGD
RB7, pin 40
PGC
RB6, pin 39
PGM/AUX
RB3, pin 36

For høj spænding ICSP, anvendes pins 1–5, og LVP konfigurationsbit skal være deaktiveret. Hvis lav spændingsprogrammering anvendes, skal RB3/PGM forblive tilsluttet og kan ikke bruges som en normal udgang. Kun én kilde skal strømme kredsløbet ad gangen: enten J2 eller PICkit.

RB0 på pin 33 driver test LED'en gennem en 470 Ω strømbegrænsende modstand. Forbind RB0 til modstanden, forbind modstanden til LED-anoden, og forbind LED-katoden til VSS. LED'en tændes, når RB0 er høj.

Foreslået testprocedure

• Med strømmen frakoblet, inspicér ledningerne, kondensatorforbindelser, krystal, LED polaritet og IC orientering.

• Tjek, at +5 V skinnen ikke er kortsluttet med jord.

• Anvend en reguleret, strømlimitert +5 V strømforsyning. Bekræft, at begge VDD-VSS par modtager den korrekte spænding.

• Forbind ICSP programmøren og vælg PIC16F877A. Konfigurer FOSC = HS og, for høj spænding ICSP, LVP = OFF.

• Programér og verificer C6 eksemplet, som konfigurerer RB0 som en udgang og ændrer tilstanden hver 500 ms.

• Anvend strøm og observer LED'en. Et gentaget blink er den forventede indikation for, at strøm, nulstilling, oscillator, programmering og RB0 output kredsløbene arbejder sammen.

Bemærk: Dette er kun en foreslået verificeringsprocedure. Ingen fysisk test eller målte resultater er hævdet. Enhver rapporteret test skal identificere kortet, firmware, strømforsyning, instrumenter, probeindstillinger og målte værdier.

PIC16F877A programmering med MPLAB og XC8

PIC16F877A kan programmeres i C ved hjælp af MPLAB X IDE og MPLAB XC8 compileren. MPLAB X administrerer projektet og programmeringsværktøjet, mens XC8 genererer HEX-filen.

Dette eksempel har fokus på MPLAB X IDE v6.35 og MPLAB XC8 v4.00. Ingen lokal compilation eller hardware-test blev udført under forberedelsen af dette eksempel, så der kræves ikke succesfuld bygning eller målte resultater. Disse var de nuværende officielle versioner pr. august 2026. Hvis PICkit 3 bruges, bemærk at MPLAB X v6.20 er dens sidste understøttede version.

• Installer MPLAB X IDE og MPLAB XC8.

• Vælg File > New Project > Microchip Embedded > Standalone Project.

• Vælg PIC16F877A, den tilsluttede programmer, og XC8.

• Opret en main.c kildefil og indtast det følgende program.

• Byg projektet, og vælg derefter Make og Program Device.

Tilslut test LED'en som følger:

RB0 (pin 33) → 330 Ω–1 kΩ modstand → LED anode → LED katode → VSS

#include

#define _XTAL_FREQ 20000000UL

#pragma config FOSC = HS

#pragma config WDTE = OFF

#pragma config PWRTE = ON

#pragma config BOREN = ON

#pragma config LVP = OFF

#pragma config CPD = OFF

#pragma config WRT = OFF

#pragma config CP = OFF

void main(void)

{

PORTBbits.RB0 = 0;

TRISBbits.TRISB0 = 0;

while (1)

{

PORTBbits.RB0 = 1;

__delay_ms(500);

PORTBbits.RB0 = 0;

__delay_ms(500);

}

}

Til ICSP programmering, tilslut MCLR/VPP, RB6/PGC, RB7/PGD, VDD og VSS. Indstillingen FOSC = HS og _XTAL_FREQ værdi skal matche den installerede 20 MHz krystal.

Versionsinformation: Microchip Technology Inc., MPLAB X IDE, v6.35, udgivet 24. juli 2026; og MPLAB XC8 Compiler, v4.00, udgivet 8. juli 2026. Tilgået 24. august 2026.

Udgivne PIC16F877A Projekt Case Studies

Følgende case studier opsummerer resultater rapporteret af uafhængige forskere.

Udgivet Solar-Tracking Studie

Manju og Katoch (2014) udviklede en PIC16F877A enkeltakse soltracker ved brug af tre LDR'er, en gearmotor, spændings- og strømføling, et LCD og RS-232 kommunikation.

Under en en-dags test på NIT Hamirpur den 19. februar 2014, registrerede forskerne ni timelige sammenligninger under strålingsniveauer på 96.423–810.295 W/m². De opsummerede de målte effektlæsningsresultater som 4.6388 W for det faste panel og 5.5071 W for trackeren, og rapporterede en forbedring på 18.7167%.

Dette tredjepartsresultat var baseret på en dag og inkluderede ikke usikkerhed, gentagne dags test eller trackerens driftsenergi. Da øjeblikkelige effektlæsningsresultater blev lagt til i stedet for energien blev målt i watt-timer, bør den rapporterede forbedring ikke tolkes som en universel daglig energigevinst.

Udgivet Remote Temperature-Monitoring Studie

Gharghan (2017) udviklede et PIC16F877A temperatur-overvågningssystem ved hjælp af en LM35 sensor, LCD, buzzer og SmartG100 GSM modem. Controlleren målte periodisk temperaturen og sendte SMS advarsler for presserende forhold.

Den publicerede sammenligning med et digitalt termometer rapporterede en gennemsnitlig absolut fejl på 0.205°C og en R² værdi på 0.987. Ved at bruge målte aktieve og dvale-strømme, beregnede studiet en gennemsnitlig strøm på 3.087 mA med sin dvale/vække-algoritme, sammenlignet med 315.138 mA under kontinuerlig drift. For et 1.000 mAh batteri, anslog forskeren cirka 324 timers drift i stedet for tre timer.

Disse tredjepartsfund blev ikke gengivet her. Artiklen rapporterede ikke klart antallet af patienter eller SMS-leveringsforsøg, og den estimerede batterilevetid blev beregnet i stedet for bekræftet gennem en fuldstændig afladetest. Prototypen demonstrerer teknisk gennemførlighed, men udgør ikke klinisk validering.

PIC16F877A Funktioner og Anvendelser

• Analog sanse: Den otte-kanals, 10-bit ADC kan overvåge temperatur, lys, tryk, spænding og andre analoge signaler.

• PWM og motor kontrol: To CCP/PWM moduler kan regulere motorhastighed, LED lysstyrke, pumper, blæsere og ventiler gennem passende driverkredsløb.

• Seriel kommunikation: USART, SPI og I²C grænseflader understøtter kommunikation med computere, sensorer, GSM eller GPS moduler, EEPROM'er og realtid ure.

• Display interfacing: Dens 33 delte funktion I/O pins kan tilsluttes LCD'er, syv-segment displays, tastaturer, kontakter, LED'er og buzzere.

• Datastyring: Den 256-byte EEPROM bevarer indstillinger, kalibreringsværdier og små optegnelser efter strømmen er fjernet.

• Timing: Tre hardware timere og interrupt funktioner understøtter forsinkelser, pulsmåling, hændelses tælling og hurtige svar på eksterne hændelser.

• Systembeskyttelse: Watchdog-timeren, brown-out reset, power-up timer og MCLR input hjælper controlleren med at genoprette sig fra program- eller forsyningsspændingsfejl.

Disse funktioner passer til vandniveau controllere, alarmer, datalogger, temperatur controllere og små automatiseringssystemer. Motorer, relæer og andre højstrømslaster kræver eksterne drivere. PIC16F877A har heller ikke indbygget Wi-Fi, Bluetooth eller USB.

Almindelige problemer og løsninger for PIC16F877A

Problem
Sandsynlig årsag
Anbefalet løsning
Mikrokontroller starter ikke
Forkert strømforsyning, flydende MCLR eller manglende klokke
Tjek både VDD–VSS par, brug en reguleret strømforsyning, tilføj en 10 kΩ MCLR pull-up og verificer den eksterne oscillator
Programmer kan ikke opdage IC'en
Forkert ICSP-ledning eller stærkt belastede programmeringsben
Tjek MCLR/VPP, RB6/PGC, RB7/PGD, VDD og VSS forbindelse
Program kører med forkert hastighed
Oscillatorindstillingen matcher ikke hardwaren
Vælg den rigtige oscillator konfiguration og sæt _XTAL_FREQ til den faktiske klokfrekvens
PORTA eller PORTE fungerer ikke digitalt
Ben forbliver konfigureret som analoge indgange
Konfigurer ADCON1-registeret til de krævede digitale eller analoge funktioner
RB3 fungerer ikke som GPIO
Lavspændingsprogrammering er aktiveret
Deaktiver LVP konfigurationsbit, når RB3/PGM er nødvendig som normal GPIO
RA4 producerer ikke et højt output
RA4 bruger en åben-dræn output struktur
Tilføj en ekstern pull-up modstand til RA4
ADC-aflæsninger er ustabile
Støjende strømforsyning, dårlig jordforbindelse eller utilstrækkelig erhvervelsestid
Tilføj dekobling, brug en stabil reference, reducer kildemodstand og tillad nok erhvervelsestid
UART-data er korrupte
Forkert baud-hastighed eller oscillatorindstilling
Genberegn SPBRG ved hjælp af den faktiske klokfrekvens og bekræft matchende baud-hastigheder
I²C kommunikation fejler
Manglende pull-up modstande eller forkert pinretning
Tilføj pull-ups til RC3/SCL og RC4/SDA og konfigurer begge ben korrekt
PWM output mangler
CCP eller Timer2 er ikke korrekt konfigureret
Konfigurer CCP-modulet, PR2, Timer2 prescaler og PWM output pin
Tilfældige nulstillinger opstår
Strømfald, elektrisk støj, Watchdog Timer eller ustabil MCLR
Forbedre dekobling, tjek nulstillingsindstillinger og beskyt MCLR mod støj
Motor eller relæ forårsager nulstillinger
Belastningen er tilsluttet direkte til en GPIO pin
Brug en transistor eller MOSFET driver og tilføj en flyback diode over induktive laster
Søvnstrøm er for høj
Eksterne belastninger, flydende indgange eller programmer forbliver tilsluttet
Frakobl unødvendige belastninger, sæt ubrugte ben til definerede niveauer og fjern programmeren under måling

PIC16F877A sammenlignet med alternativer

Funktion
PIC16F877A
PIC16F887
PIC16F18877
ATmega328P
Arkitektur
Klassisk mellemklasse 8-bit PIC
Klassisk mellemklasse 8-bit PIC
Forbedret mellemklasse 8-bit PIC
8-bit AVR
Maksimal klokke- og instruktion rate
20 MHz, 5 MIPS ved 4.0–5.5 V
20 MHz, 5 MIPS ved 4.5–5.5 V; lavere strømforsyningsspændinger kræver lavere klokfrekvenser
32 MHz, 8 MIPS ved 2.5–5.5 V; op til 16 MHz ved 2.3–5.5 V
20 MHz, op til 20 MIPS ved 4.5–5.5 V; 10 MHz ved 2.7–5.5 V; 4 MHz ved 1.8–5.5 V
Programhukommelse
8K × 14-bit ord
8K × 14-bit ord
32K × 14-bit ord
32 KB
SRAM
368 bytes
368 bytes
4.096 bytes
2.048 bytes
EEPROM
256 bytes
256 bytes
256 bytes
1.024 bytes
I/O pins
33
35
Op til 36
23
ADC
10-bit, 8 kanaler
10-bit, 14 kanaler
10-bit ADC med beregning, op til 35 kanaler
10-bit, 6 kanaler i PDIP eller 8 i TQFP/QFN
Intern hovedoscillator
Nej
Ja, op til 8 MHz
Ja, op til 32 MHz
Ja, 8 MHz
Driftsspænding
4.0–5.5 V
2.0–5.5 V
2.3–5.5 V
1.8–5.5 V
Kommunikation
USART, SPI og I²C
EUSART, SPI og I²C
EUSART, to SPI og to I²C moduler
USART, SPI og TWI/I²C
Hovedfordel
Simpel og bredt dokumenteret
Flere ADC kanaler og en intern oscillator
Mere hukommelse og moderne perifere enheder
Omfattende Arduino og AVR support
Hovedbegrænsning
Meget begrænset RAM og ingen intern hovedoscillator
Begrænset hukommelse og ældre arkitektur
Ikke en direkte erstatning for PIC16F877A design
Ikke anbefalet til nye design
Bedst egnet til
Eksisterende boards og læreprojekter
Enkle 40-pin kontrolprojekter
Nye PIC-baserede produkter
Eksisterende Arduino eller AVR projekter

Microchip identificerer PIC16F18877 som den nyere enhed til PIC16F877A, men migration kræver firmware, perifere og pinout verificering.




Teknisk referencer

• Microchip Technology Inc. (2013). PIC16F87XA Data Sheet (DS39582C).

• Microchip Technology Inc. (2026). MPLAB XC8 C Compiler Brugerhåndbog for PIC MCU (DS50002737L).

• Microchip Technology Inc. (2021). PIC16(L)F18857/77 Data Sheet (DS40001825F).

• Microchip PIC16F87XA Data Sheet, DS39582C; PIC16F87XA Flash Programming Specification, DS39589B.

• Manju, S., og Katoch, S. S. (2014). “Design af Fotovoltaisk Soltracking System Baseret på Perifer Interface Controller.” International Journal of Current Engineering and Technology, 4(3), 1800–1805.

• Gharghan, S. K. (2017). “Energieffektiv Fjern Temperaturovervågningssystem for Patienter Baseret på GSM Modem og Mikrokontroller.” Journal of Communications, 12(8), 433–442.






Ofte stillede spørgsmål [FAQ]

1. Hvorfor er program hukommelsen angivet som 8K × 14-bit ord i stedet for 8 KB?

PIC16F877A gemmer instruktioner i 14-bit ord. Den giver 8.192 instruktion ord, hvilket svarer til cirka 14,3 KB fysisk Flash lager. Det bør ikke blot beskrives som 8 KB.

2. Kan firmware opdateres uden en ICSP programmør?

Ja, men en kompatibel bootloader skal først installeres gennem ICSP. Bootloaderen kan derefter modtage ny firmware via USART, selvom den bruger en del af den tilgængelige programhukommelse.

3. Hvor præcis er den 10-bit ADC?

Med en 5,0 V reference er den ideelle ADC trin størrelse cirka 4,88 mV. Den faktiske nøjagtighed afhænger også af references stabilitet, elektrisk støj, kildeimpedans, erhvervelses tid og kalibrering.

4. Kan ADC måle spændinger over 5 V?

Ikke direkte. Brug en korrekt beregnet spændingsdeler, buffer eller signalbehandlingskredsløb for at holde ADC indgangen inden for dens reference-spændingsområde. Indgangsbeskyttelse kan også være nødvendig.

5. Kan PIC16F877A køre en RTOS?

En lille planlægger er mulig, men dens 368-byte RAM og otte niveau hardware stak gør en fuld RTOS upraktisk. Timer interrupt og samarbejdende opgaveplanlægning er normalt mere passende.

6. Hvordan kan større mængder data logges?

Den interne 256-byte EEPROM er kun egnet til små indstillinger og optegnelser. Brug ekstern EEPROM, FRAM eller et SD-kort til større logfiler, og anvend slitageafbalancering, når data ofte skrives.

7. Kan PIC16F877A køre PID kontrol algoritmer?

Ja, især for relativt langsomme systemer som temperatur-, hastigheds- og niveau kontrol. Fast-point aritmetik er normalt at foretrække, fordi flydende-point beregninger kræver mere behandlingstid og programhukommelse.

8. Beskytter kodebeskyttelses bits fuldstændigt firmware?

CP og CPD konfiguration bits blokerer normal program og data-hukommelses læsning gennem standard programmeringsværktøjer. Dog garanterer de ikke beskyttelse mod avancerede fysiske udtrækningsmetoder.

Relateret artikel

Online RFQ -indsendelser: Hurtige svar, bedre priser!

RFQ