alla kategorier

Vagn 0 punkt

Kundvagn 0 punkt

Mfr # Kvantitet
LäMNA (0)

Välj språk

Aktuellt språk

Svenska

  • 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
  • मराठी
HembloggPIC16F877A: Pinout, Datablad, Programmering och Projekt

ELEKTRONISKA KOMPONENTER I LAGER.
SNABB CITAT.

Integrerade kretsar, kraftenheter och passiva komponenter
Omedelbar inköpssupport

FÅ OFFERT NU

PIC16F877A: Pinout, Datablad, Programmering och Projekt

Tid: 2026/08/25

Bläddra: 814

PIC16F877A är en 8-bitars Flash mikrokontroller från Microchip utformad för inbyggd styrning och övervakning. Finns i 40- och 44-pin paket, stöder den klockfrekvenser upp till 20 MHz och tillhandahåller 33 I/O-pinnar för att ansluta sensorer, strömbrytare, displayer, larm, motorer och kommunikationsmoduler. Program kan utvecklas i C med hjälp av MPLAB X IDE och XC8-kompilatorn, och sedan laddas via In-Circuit Serial Programming (ICSP) med en kompatibel programmerare som en PICkit. PIC16F877A förblir i produktion, även om Microchip listar PIC16F18877 som den nyare enheten. Denna artikel förklarar dess pinout, specifikationer, praktisk testning, programmering, verkliga resultat, vanliga problem och alternativ.

Katalog

PIC16F877A Microcontroller

Figur 1. PIC16F877A Mikrokontroller

PIC16F877A Mikrokontroller Pinout

 PIC16F877A Microcontroller Pinout

Figur 2. PIC16F877A Mikrokontroller Pinout

Pin
Pin namn
Huvudfunktioner
1
MCLR/VPP
Aktiv-låg masteråterställningsingång och programmeringsspänning ingång.
2
RA0/AN0
Port A digital I/O och ADC analog ingångskanal 0.
3
RA1/AN1
Port A digital I/O och ADC analog ingångskanal 1.
4
RA2/AN2/VREF−/CVREF
Digital I/O, ADC kanal 2, låg ADC referens ingång och komparator referens utgång.
5
RA3/AN3/VREF+
Digital I/O, ADC kanal 3 och hög ADC referens ingång.
6
RA4/T0CKI/C1OUT
Digital I/O, Timer0 extern klockinput och Komparator 1 utgång. RA4 använder en öppen dränering utgång.
7
RA5/AN4/SS/C2OUT
Digital I/O, ADC kanal 4, aktiv-låg SPI Slave Select ingång och Komparator 2 utgång.
8
RE0/RD/AN5
Port E digital I/O, aktiv-låg Parallell Slave Port läs kontroll och ADC kanal 5.
9
RE1/WR/AN6
Port E digital I/O, aktiv-låg Parallell Slave Port skriv kontroll och ADC kanal 6.
10
RE2/CS/AN7
Port E digital I/O, aktiv-låg Parallell Slave Port chip select och ADC kanal 7.
11
VDD
Positiv strömförsörjningsanslutning.
12
VSS
Jordanslutning.
13
OSC1/CLKI
Kristall, resonator eller extern klock input.
14
OSC2/CLKO
Kristall eller resonator utgång. I RC-läge, CLKO ger en fjärdedel av oscillatorns frekvens.
15
RC0/T1OSO/T1CKI
Port C digital I/O, Timer1 oscillator utgång och Timer1 extern klocka in.
16
RC1/T1OSI/CCP2
Digital I/O, Timer1 oscillator ingång och CCP2 fånga, jämföra eller PWM-anslutning.
17
RC2/CCP1
Digital I/O och CCP1 fånga, jämföra eller PWM-anslutning.
18
RC3/SCK/SCL
Digital I/O, SPI klocka ingång/utgång och I²C klocka ingång/utgång.
19
RD0/PSP0
Port D digital I/O och Parallel Slave Port databit 0.
20
RD1/PSP1
Port D digital I/O och Parallel Slave Port databit 1.
21
RD2/PSP2
Port D digital I/O och Parallel Slave Port databit 2.
22
RD3/PSP3
Port D digital I/O och Parallel Slave Port databit 3.
23
RC4/SDI/SDA
Digital I/O, SPI dataingång och I²C data ingång/utgång.
24
RC5/SDO
Digital I/O och SPI data utgång.
25
RC6/TX/CK
Digital I/O, USART asynkron överföring och synkron klocka ingång/utgång.
26
RC7/RX/DT
Digital I/O, USART asynkron mottagning och synkron data ingång/utgång.
27
RD4/PSP4
Port D digital I/O och Parallel Slave Port databit 4.
28
RD5/PSP5
Port D digital I/O och Parallel Slave Port databit 5.
29
RD6/PSP6
Port D digital I/O och Parallel Slave Port databit 6.
30
RD7/PSP7
Port D digital I/O och Parallel Slave Port databit 7.
31
VSS
Jordanslutning.
32
VDD
Positiv strömförsörjningskoppling.
33
RB0/INT
Port B digital I/O och extern avbrott ingång.
34
RB1
Port B digital I/O.
35
RB2
Port B digital I/O.
36
RB3/PGM
Digital I/O och lågspännings ICSP programmeringsaktiveringsingång.
37
RB4
Digital I/O med avbrott-på-förändring kapabilitet.
38
RB5
Digital I/O med avbrott-på-förändring kapabilitet.
39
RB6/PGC
Digital I/O, avbrott-på-förändring, ICSP programmeringsklocka och felsökningsklocka.
40
RB7/PGD
Digital I/O, avbrott-på-förändring, ICSP programmeringsdata och felsökningsdata.

Både VDD-stift och båda VSS-stift måste vara anslutna. PORTB-stift stödjer programvarukontrollerade svaga pull-up-motstånd, medan RB4–RB7 stödjer avbrott-på-förändring. Analog-kapabla stift måste vara korrekt konfigurerade innan de används som digital I/O.

PIC16F877A Beställningsbara artikelnummer och förpackningar

Temperatursuffixet identifierar driftintervallet: I betyder industriell, medan E betyder utvidgad. Paketkoden efter snedstrecket identifierar antingen P för PDIP eller PT för TQFP.

Beställningsbart artikelnummer
Pakettyp
Stiftantal
Driftstemperatur
PIC16F877A-I/P
PDIP
40
−40 °C till +85 °C, industriell
PIC16F877A-I/PT
TQFP
44
−40 °C till +85 °C, industriell
PIC16F877A-E/P
PDIP
40
−40 °C till +125 °C, utvidgad
PIC16F877A-E/PT
TQFP
44
−40 °C till +125 °C, utvidgad

Alla fyra versioner tillhandahåller samma 8K × 14-ords programminne, 368 byte SRAM, 256 byte EEPROM och 33 I/O-stift. Dessa specifikationer anges därför en gång istället för att upprepas i tabellen.

PIC16F877A Arkitektur och Arbetsprincip

PIC16F877A Arkitektur

PIC16F877A använder en 8-bitars RISC CPU med Harvard-arkitektur. Dess 14-bitars programbuss och 8-bitars databuss är separata, vilket gör att CPU:n kan hämta instruktioner samtidigt som den får åtkomst till data. Den innehåller 8K × 14-bitars Flash programminne, 368 byte RAM och 256 byte data EEPROM.

Den 13-bitars programräknaren väljer instruktioner, medan den åtta nivåer djup hårdvarustacken lagrar returadresser för subrutiner och avbrott. ALU, W-register och STATUS-register bearbetar data. PORTA till PORTE tillhandahåller 33 I/O-stift.

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

Figur 3. PIC16F877A Arkitektur Blockdiagram

PIC16F877A Instruktionscykel

Oscillatorns klocka är uppdelad i fyra faser, Q1 till Q4. Därför körs instruktionsklockan på , och en instruktionscykel varar. Vid 20 MHz, motsvarar detta 200 ns. En tvåstegs pipeline hämtar nästa instruktion medan den exekverar den föregående. De flesta instruktioner tar en cykel, medan grenar kräver två cykler eftersom pipelinen måste rensas.

 PIC16F877A Instruction Cycle

Figur 4. PIC16F877A Instruktionscykel

Interrupt och perifer drift

När en aktiverad interrupt inträffar lagrar CPU:n returadressen på hårdvarustacken, rensar den globala interruptaktiveringsbiten och hoppar till adress 0004h. Interruptrutinen kontrollerar och rensar den relevanta flaggan innan RETFIE återställer normal körning. Firmware måste spara viktiga register såsom W, STATUS och PCLATH vid behov.

Timers, ADC, CCP/PWM, USART, SPI, I²C, komparatorer och parallell slavport styrs genom speciella funktionsregister. Dessa periferienheter kan fungera parallellt med CPU:n, ställa in statusflaggor och generera interrupts när de är aktiverade.

PIC16F877A Tekniska specifikationer

Specifikation
PIC16F877A
CPU-arkitektur
8-bitars RISC
Maximal klockfrekvens
20 MHz
Maximal prestanda
5 MIPS
Programminne
8K × 14-bitars ord
SRAM
368 byte
Data EEPROM
256 byte
I/O-pinnar
33
Driftsäkerhet
4,0–5,5 V
ADC
10-bit, 8 kanaler
Timers
Två 8-bitars och en 16-bitars
CCP/PWM-moduler
2 moduler, PWM-upplösning upp till 10 bitar
Kommunikationsgränssnitt
USART, SPI och I²C
Interruptkällor
15
Komparatorer
2
Paketalternativ
40-pins PDIP och 44-pins ytmonterade paket
Drifttemperatur
−40°C till +85°C eller −40°C till +125°C, beroende på modell

PIC16F877A Minimikrets och testprocedur

 PIC16F877A minimum operating circuit, ICSP header and RD0 test LED

Figur 5. PIC16F877A minimalkrets, ICSP-header och RB0 test-LED

Figur 5 visar de minimala anslutningar som krävs för att driva och programmera en 40-pins PIC16F877A. Båda VDD-pinnarna, 11 och 32, ansluts till den reglerade +5 V-skens, medan VSS-pinnar 12 och 31 ansluts till jord. En separat 100 nF keramisk kondensator måste placeras nära varje VDD–VSS-par. Den valfria 4,7–10 µF-kondensatorn nära J2 ger ytterligare strömfilter. RB0-test-LED matchar programmeringsexemplet i C6.

MCLR/VPP-pinnen dras upp till +5 V genom en 10 kΩ resistor. En 20 MHz parallellskuren kristall ansluts mellan OSC1 på pin 13 och OSC2 på pin 14. Varje oscillatorpin ansluts till jord genom en belastningskondensator. De illustrerade 22 pF-värdena är startvärden; de slutliga värdena bör följa kristillverkarens specifikation för belastningskapacitans. Oscillatorns konfiguration måste ställas in på HS.

ICSP-headern ansluts enligt följande:

ICSP-signal
PIC16F877A-anslutning
MCLR/VPP
Pin 1
VDD Målet/Sens
+5 V-sken
VSS
Jord
PGD
RB7, pin 40
PGC
RB6, pin 39
PGM/AUX
RB3, pin 36

För högspänning ICSP används pinnar 1–5 och LVP-konfigurationsbiten bör inaktiveras. Om lågspänningsprogrammering används måste RB3/PGM förbli ansluten och kan inte användas som en normal utgång. Endast en strömkälla bör driva kretsen åt gången: antingen J2 eller PICkit.

RB0 på pin 33 driver test-LED:n genom en 470 Ω strömbegränsande resistor. Anslut RB0 till resistorn, anslut resistorn till LED-anoden och anslut LED-katoden till VSS. LED:n tänds när RB0 är hög.

Föreslagen testprocedur

• Med strömmen frånkopplad, inspektera ledningarna, kondensatoranslutningar, kristall, LED-polaritet och IC-orientering.

• Kontrollera att +5 V-skens inte är kortsluten till jord.

• Applicera en reglerad, strömbegränsad +5 V-ström. Bekräfta att båda VDD–VSS-paren får rätt spänning.

• Anslut ICSP-programmeraren och välj PIC16F877A. Konfigurera FOSC = HS och för högspänning ICSP, LVP = OFF.

• Programmera och verifiera C6-exemplet, som konfigurerar RB0 som en utgång och ändrar dess tillstånd vart 500 ms.

• Applicera ström och observera LED:n. En upprepande blinkning är den förväntade indikationen på att strömmen, återställning, oscillator, programmering och RB0-utgångskretsar arbetar tillsammans.

Obs: Detta är en föreslagen verifieringsprocedur endast. Ingen fysisk test eller uppmätt resultat görs. Eventuella rapporterade tester ska identifiera kortet, firmware, strömförsörjning, instrument, provinställningar och uppmätta värden.

PIC16F877A Programmering med MPLAB och XC8

PIC16F877A kan programmeras i C med MPLAB X IDE och MPLAB XC8-kompilatorn. MPLAB X hanterar projektet och programmeringsverktyget, medan XC8 genererar HEX-filen.

Detta exempel riktar sig till MPLAB X IDE v6.35 och MPLAB XC8 v4.00. Ingen lokal kompilering eller hårdvarutest utfördes under förberedelsen av detta exempel, så ingen framgångsrik byggnad eller mätt resultat påstås. Dessa var de aktuella officiella versionerna i augusti 2026. Om PICkit 3 används, notera att MPLAB X v6.20 är dess sista stödda version.

• Installera MPLAB X IDE och MPLAB XC8.

• Välj Fil > Nytt projekt > Microchip Embedded > Stående projekt.

• Välj PIC16F877A, den anslutna programmeraren, och XC8.

• Skapa en main.c-källfil och skriv in följande program.

• Bygg projektet, och välj sedan Skapa och programmera enheten.

Anslut test-LED:en som följer:

RB0 (pin 33) → 330 Ω–1 kΩ resistor → LED anode → LED katod → VSS

#include

#define _XTAL_FREQ 20000000UL

#pragma config FOSC = HS

#pragma config WDTE = AV

#pragma config PWRTE = PÅ

#pragma config BOREN = PÅ

#pragma config LVP = AV

#pragma config CPD = AV

#pragma config WRT = AV

#pragma config CP = AV

void main(void)

{

PORTBbits.RB0 = 0;

TRISBbits.TRISB0 = 0;

while (1)

{

PORTBbits.RB0 = 1;

__delay_ms(500);

PORTBbits.RB0 = 0;

__delay_ms(500);

}

}

För ICSP-programmering, anslut MCLR/VPP, RB6/PGC, RB7/PGD, VDD och VSS. FOSC = HS-inställningen och _XTAL_FREQ-värdet måste matcha den installerade 20 MHz-kristallen.

Versionsinformation: Microchip Technology Inc., MPLAB X IDE, v6.35, släppt 24 juli 2026; och MPLAB XC8 Compiler, v4.00, släppt 8 juli 2026. Åtkomst 24 augusti 2026.

Publicerade PIC16F877A Projektfallstudier

Följande fallstudier sammanfattar resultat rapporterade av oberoende forskare.

Publicerad solspårningsstudie

Manju och Katoch (2014) utvecklade en PIC16F877A enkelaxlad solspårare med tre LDR:er, en växlad stegmotor, spännings- och strömövervakning, en LCD och RS-232 kommunikation.

Under ett ett-dags test på NIT Hamirpur den 19 februari 2014, registrerade forskarna nio timvisa jämförelser under irradiansnivåer på 96.423–810.295 W/m². De summerade de samplade effektavläsningarna till 4.6388 W för den fasta panelen och 5.5071 W för spåraren, med en rapporterad förbättring på 18.7167%.

Detta tredjepartsresultat baserades på en dag och inkluderade inte osäkerhet, upprepade-dagstester eller spårarens driftenergi. Eftersom omedelbara effektavläsningar lades till istället för att energin mättes i watt-timmar, bör den rapporterade förbättringen inte tolkas som en universell daglig energivinst.

Publicerad fjärrtemperaturövervakningsstudie

Gharghan (2017) utvecklade ett PIC16F877A temperaturövervakningssystem med en LM35-sensor, LCD, buzzer och SmartG100 GSM-modem. Styrenhetens mätte periodiskt temperatur och skickade SMS-varningar vid akuta förhållanden.

Den publicerade jämförelsen med en digital termometer rapporterade ett medel absolut fel på 0.205°C och ett R²-värde på 0.987. Genom att använda uppmätta aktiva och vilolägesströmmar beräknade studien en genomsnittlig ström på 3.087 mA med sin sömn/vakna algoritm, jämfört med 315.138 mA under kontinuerlig drift. För ett 1 000 mAh batteri uppskattade forskaren cirka 324 timmars drift istället för tre timmar.

Dessa tredjepartsfynd reproducerades inte här. Artikeln rapporterade inte tydligt antalet patienter eller SMS-leveransförsök, och den uppskattade batteritiden beräknades snarare än bekräftades genom en komplett urladdningstest. Prototypen visar teknisk genomförbarhet men utgör inte klinisk validering.

PIC16F877A Funktioner och tillämpningar

• Analog mätning: Den åtta-kanals, 10-bitars ADC kan övervaka temperatur, ljus, tryck, spänning och andra analoga signaler.

• PWM och motorstyrning: Två CCP/PWM moduler kan reglera motorspeed, LED-ljusstyrka, pumpar, fläktar och ventiler genom lämpliga drivkretsar.

• Seriell kommunikation: USART, SPI och I²C-gränssnitt stöder kommunikation med datorer, sensorer, GSM- eller GPS-moduler, EEPROM och realtidsklockor.

• Displaygränssnitt: Dess 33 delade funktions-I/O-pinnar kan anslutas till LCD, sju-segmentsdisplayer, knappsatser, brytare, LED och buzzers.

• Datastore: Den 256-byte EEPROM behåller inställningar, kalibreringsvärden och små poster efter att strömmen tagits bort.

• Timing: Tre hårdvaru-timrar och avbrottsfunktioner stöder fördröjningar, pulsmätning, händelseantal och snabba svar på externa händelser.

• Systemskydd: Watchdog-timern, brown-out återställning, strömstart-timer och MCLR-ingång hjälper styrenheten att återhämta sig från program- eller försörjningsspänningsfel.

Dessa funktioner passar för vattennivåkontroller, larm, dataloggar, temperaturkontroller och små automatiseringssystem. Motorer, reläer och andra högströmsbelastningar kräver externa drivrutiner. PIC16F877A har heller ingen inbyggd Wi-Fi, Bluetooth eller USB.

vanliga PIC16F877A problem och lösningar

Problem
Sannolik orsak
Rekommenderad lösning
Mikrokontrollern startar inte
Felaktig ström, svävande MCLR eller saknad klocka
Kontrollera båda VDD–VSS-paren, använd en reglerad strömförsörjning, lägg till en 10 kΩ MCLR pull-up och verifiera den externa oscillatorn
Programmeraren kan inte upptäcka IC:n
Felaktig ICSP-koppling eller överbelastade programmeringsstift
Kontrollera MCLR/VPP, RB6/PGC, RB7/PGD, VDD och VSS-anslutningar
Programmet körs med fel hastighet
Oscillatorinställningen matchar inte hårdvaran
Välj rätt oscillatorkonfiguration och ställ in _XTAL_FREQ till den aktuella klockfrekvensen
PORTA eller PORTE fungerar inte digitalt
Stiften förblir konfigurerade som analoga ingångar
Konfigurera ADCON1-registret för de nödvändiga digitala eller analoga funktionerna
RB3 fungerar inte som GPIO
Lågspänningsprogrammering är aktiverad
Inaktivera LVP-konfigurationsbiten när RB3/PGM behövs som vanlig GPIO
RA4 ger ingen hög utgång
RA4 använder en öppen dräneringsutgångsstruktur
Lägg till ett externt pull-up-motstånd till RA4
ADC-avläsningar är instabila
Bullrig strömförsörjning, dålig jordning eller otillräcklig förvärvningstid
Lägg till avkoppling, använd en stabil referens, minska källimpedansen och ge tillräckligt med förvärvningstid
UART-data är korrupt
Felaktig baudrate eller oscillatorinställning
Beräkna om SPBRG med den aktuella klockfrekvensen och bekräfta matchande baud rates
I²C-kommunikation misslyckas
Saknade pull-up-motstånd eller felaktig pinriktning
Lägg till pull-ups till RC3/SCL och RC4/SDA och konfigurera båda stiften korrekt
PWM-utgång saknas
CCP eller Timer2 är inte korrekt konfigurerad
Konfigurera CCP-modulen, PR2, Timer2-prescaler och PWM-utgångsstift
Slumptalsåterställningar förekommer
Spänningsdippar, elektriskt brus, Watchdog-timer eller instabil MCLR
Förbättra avkoppling, kontrollera återställningsinställningar och skydda MCLR från brus
Motor eller relä orsakar återställningar
Belastningen är ansluten direkt till ett GPIO-stift
Använd en transistor eller MOSFET-drivrutin och lägg till en flyback-diod över induktiva laster
Viloströmmen är för hög
Externa laster, svävande ingångar eller programmeraren förblir ansluten
Koppla bort onödiga laster, ställ oanvända stift till definierade nivåer och ta bort programmeraren under mätning

PIC16F877A jämfört med alternativ

Funktion
PIC16F877A
PIC16F887
PIC16F18877
ATmega328P
Arkitektur
Klassisk mid-range 8-bit PIC
Klassisk mid-range 8-bit PIC
Förbättrad mid-range 8-bit PIC
8-bit AVR
Maximal klock- och instruktionstakt
20 MHz, 5 MIPS vid 4.0–5.5 V
20 MHz, 5 MIPS vid 4.5–5.5 V; lägre drivspänningar kräver lägre klockfrekvenser
32 MHz, 8 MIPS vid 2.5–5.5 V; upp till 16 MHz vid 2.3–5.5 V
20 MHz, upp till 20 MIPS vid 4.5–5.5 V; 10 MHz vid 2.7–5.5 V; 4 MHz vid 1.8–5.5 V
Programminne
8K × 14-bit ord
8K × 14-bit ord
32K × 14-bit ord
32 KB
SRAM
368 byte
368 byte
4,096 byte
2,048 byte
EEPROM
256 byte
256 byte
256 byte
1,024 byte
I/O-stift
33
35
Upp till 36
23
ADC
10-bit, 8 kanaler
10-bit, 14 kanaler
10-bit ADC med beräkning, upp till 35 kanaler
10-bit, 6 kanaler i PDIP eller 8 i TQFP/QFN
Intern huvudoscillator
Nej
Ja, upp till 8 MHz
Ja, upp till 32 MHz
Ja, 8 MHz
Driftspänning
4.0–5.5 V
2.0–5.5 V
2.3–5.5 V
1.8–5.5 V
Kommunikation
USART, SPI och I²C
EUSART, SPI och I²C
EUSART, två SPI och två I²C-moduler
USART, SPI och TWI/I²C
Huvudfördel
Enkel och väl dokumenterad
Fler ADC-kanaler och en intern oscillator
Mer minne och moderna perifera enheter
Omfattande Arduino- och AVR-stöd
Huvudbegränsning
Mycket begränsad RAM och ingen intern huvudoscillator
Begränsat minne och äldre arkitektur
Inte en direkt ersättning för PIC16F877A design
Inte rekommenderad för nya designer
Bäst lämpad för
Befintliga kort och lärprojekt
Enkla 40-pins kontrollprojekt
Nya PIC-baserade produkter
Befintliga Arduino eller AVR projekt

Microchip identifierar PIC16F18877 som den nyare enheten för PIC16F877A, men migrering kräver firmware-, perifer- och pinout-verifiering.




Tekniska referenser

• Microchip Technology Inc. (2013). PIC16F87XA Datablad (DS39582C).

• Microchip Technology Inc. (2026). MPLAB XC8 C Compiler Användarguide för PIC MCU (DS50002737L).

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

• Microchip PIC16F87XA Datablad, DS39582C; PIC16F87XA Flash Programmeringsspecifikation, DS39589B.

• Manju, S., och Katoch, S. S. (2014). "Design av Fotovoltaisk Solenergi Spårningssystem Baserat på Perifer Interface Controller." International Journal of Current Engineering and Technology, 4(3), 1800–1805.

• Gharghan, S. K. (2017). "Energi-Effektivt Fjärrtemperaturövervakningssystem för Patienter Baserat på GSM Modem och Mikrokontroller." Journal of Communications, 12(8), 433–442.






Vanliga frågor [FAQ]

1. Varför listas programminnet som 8K × 14-bitars ord istället för 8 KB?

PIC16F877A lagrar instruktioner i 14-bitars ord. Det tillhandahåller 8 192 instruktioner ord, vilket motsvarar cirka 14,3 KB av fysiskt Flash-lagringsutrymme. Det bör inte beskrivs helt enkelt som 8 KB.

2. Kan firmware uppdateras utan en ICSP programmerare?

Ja, men en kompatibel bootloader måste först installeras via ICSP. Bootloadern kan sedan ta emot ny firmware via USART, även om det använder en del av det tillgängliga programminnet.

3. Hur noggrant är 10-bit ADC?

Med en 5,0 V referens är den ideala ADC-stegstorleken cirka 4,88 mV. Den faktiska noggrannheten beror också på referensens stabilitet, elektriskt brus, källimpedans, förvärvstid och kalibrering.

4. Kan ADC mäta spänningar över 5 V?

Inte direkt. Använd en korrekt beräknad spänningsdelare, buffert eller signalbehandlingskrets för att hålla ADC-ingången inom dess referensspänningsområde. Ingångsskydd kan också krävas.

5. Kan PIC16F877A köra en RTOS?

En liten schemaläggare är möjlig, men dess 368-byte RAM och åtta nivåers hårdvarustack gör en full RTOS opraktisk. Timeravbrott och samarbetsuppgiftsschemaläggning är vanligtvis mer lämpliga.

6. Hur kan större mängder data loggas?

Den interna 256-byte EEPROM är endast lämplig för små inställningar och poster. Använd extern EEPROM, FRAM eller ett SD-kort för större loggar, och tillämpa slitageutjämning när data skrivs ofta.

7. Kan PIC16F877A köra PID-kontrollalgoritmer?

Ja, särskilt för relativt långsamma system som temperatur-, hastighets- och nivåkontroll. Fixed-point aritmetik är vanligtvis att föredra eftersom flyttalsberäkningar kräver mer bearbetningstid och programminne.

8. Säkerställer kodskyddbitarna fullständig säkerhet för firmware?

CP- och CPD-konfigurationsbitarna blockerar normal läsning av program- och dataminne genom standardprogrammeringsverktyg. Emellertid garanterar de inte skydd mot avancerade fysiska extraktionsmetoder.

Relaterad artikel

Online RFQ -inlägg: Snabba svar, bättre priser!

RFQ