Intel 8255 Programmable Peripheral Interface (PPI) var en nøkkelkomponent i å bygge bro mellom mikroprosessorer og eksterne enheter i de tidlige dagene av digitale systemer. Med allsidige I/O-porter, flere driftsmoduser og enkel programmering muliggjorde 8255 pålitelig kommunikasjon med skjermer, sensorer og kontrollere, noe som gjorde den nyttig i både utdanning og industri.

8255 Oversikt over programmerbart perifert grensesnitt (PPI)
Intel 8255 PPI-brikken er en mye brukt I/O-brikke designet for å koble mikroprosessorer til eksterne enheter. Den fungerer som en kommunikasjonsbro for eksterne enheter som ADC-er, DAC-er, tastaturer og skjermer. Den støtter både direkte og avbruddsdrevet I/O, og gir fleksibilitet i systemdesign. Med tre 8-bits toveis porter (A, B, C) leverer den 24 konfigurerbare I/O-linjer. Dens kostnadseffektivitet og kompatibilitet med prosessorer som Intel 8085/8086 gjorde den til en stift i tidlige datasystemer, treningssett og industrielle kontrollere.
Funksjoner av 8255 PPI-brikke
• Programmerbart grensesnitt – Konfigurerbart via programvareinstruksjoner for å tilpasse seg enheter som skjermer, sensorer og inngangsmoduler.
• Tre 8-bits porter – Port A, B og C gir 24 linjer som kan fungere som inngang eller utgang.
• Flere driftsmoduser –
Modus 0: Enkel inngang/utgang uten håndtrykk.
Modus 1: Strøk I/O med håndtrykksignaler for synkronisert kommunikasjon.
Modus 2: Toveis dataoverføring med håndtrykk (kun på port A).
• Bitsett/tilbakestilling (BSR) – Port C-bits kan stilles inn individuelt eller slettes for kontroll-/statusapplikasjoner.
• Fleksibel gruppering – Porter kan deles inn i 8-biters eller 4-biters grupper.
• TTL-kompatibilitet – Enkel integrasjon med standard digitale IC-er.
• Uavhengige kontrollregistre – Hver port kan fungere separat, i forskjellige moduser eller retninger.
Pinout av 8255 PPI-brikke

| Pin nr. | Gruppe | Signal | Beskrivelse |
|---|---|---|---|
| 1–8 | Havn A | PA0–PA7 | 8-biters generell I/O-port |
| 9–16 | Havn C | PC0–PC7 | Del inn i PC0–PC3 (nedre) og PC4–PC7 (øvre); brukt som I/O- eller håndtrykklinjer |
| 17–24 | Havn B | PB0–PB7 | 8-biters generell I/O-port |
| 25 | Kontroll | CS' | Sjetongvalg (aktiv lav) |
| 26 | Strøm | Vcc | +5 V forsyning |
| 27 | Kontroll | RD' | Les aktivere |
| 28 | Kontroll | WR' | Aktiver skriving |
| 29 | Kontroll | TILBAKESTILL | Tilbakestiller alle porter til inngangstilstand |
| 30–37 | Databuss | D0–D7 | Overfører data/kommandoer mellom CPU og 8255 |
| 38–39 | Adresser Pins | A0, A1 | Velg interne registre/porter: 00=Port A, 01=Port B, 10=Port C, 11=Kontroll |
| 40 | Bakken | GND | Referanse til bakken |
Arkitektur av 8255 PPI-brikke

| Funksjonell blokk | Beskrivelse |
|---|---|
| Databussbuffer | Fungerer som et grensesnitt mellom CPU-ens toveis databuss (D7–D0) og den interne 8-bits databussen til 8255. Den lagrer og overfører data midlertidig mellom CPU og interne registre eller porter. |
| Logikk for lese-/skrivekontroll | Administrerer all kommunikasjon mellom CPU og 8255. Den tolker kontrollsignaler som RD, WR, A0, A1, CS og RESET for å bestemme operasjonstypen (lese, skrive eller kontrollere) og velger riktig port eller kontrollregister. |
| Kontrolllogikk (dekoder) | Dekoder kontrollordet sendt av CPU-en for å konfigurere portene i forskjellige moduser (modus 0, 1 eller 2) eller i Bit Set/Reset (BSR)-modus. Den bestemmer hvordan hver port skal fungere - som inngang, utgang eller håndtrykk. |
| Gruppe A-kontroll | Kontrollerer port A (8 biter: PA7–PA0) og øvre port C (4 biter: PC7–PC4). Den støtter modus 0, 1 og 2, noe som tillater enkel I/O, håndtrykk I/O og toveis dataoverføring |
| Gruppe B-kontroll | Kontrollerer port B (8 biter: PB7–PB0) og nedre port C (4 biter: PC3–PC0). Den støtter modus 0 og 1, noe som tillater grunnleggende inngang/utgang eller håndtrykkkontrollerte operasjoner. |
| Havn A | En 8-bits I/O-port som kan fungere som inngang eller utgang avhengig av moduskonfigurasjonen. Støtter modus 0–2 under Gruppe A-kontroll. |
| Havn B | En annen**8-bits I/O-port** for dataoverføring. Opererer under gruppe B-kontroll og støtter modus 0 og 1. |
| Havn C | En delt 8-biters port delt inn i to 4-biters grupper: Øvre (PC7–PC4) og Nedre (PC3–PC0). Disse kan fungere som uavhengige I/O-porter, kontrolllinjer eller håndtrykksignaler. Individuelle bits kan også styres ved hjelp av Bit Set/Reset (BSR)-modus. |
| Intern databuss (8-biters) | Kobler sammen alle interne blokker i 8255, overfører data og kontrollinformasjon mellom CPU, kontrolllogikk og porter. |
| Strømforsyning | Brikken fungerer med en +5V DC-forsyning og GND-tilkobling for å drive hele kretsen. |
Driftsmodus og arbeidsprinsipp for 8255 PPI-brikke
Intel 8255 fungerer som et programmerbart grensesnitt mellom CPU og eksterne enheter, og oversetter bussoperasjoner til parallelle dataoverføringer. Driften styres av initialiseringstrinn og valgbare moduser:
Tilbakestill tilstand
Ved oppstart eller tilbakestilling er alle porter (A, B og C) som standard i inngangsmodus for å unngå å skade eksterne enheter med utilsiktede utganger.
Initialisering
CPU-en må sende et kontrollord som konfigurerer hver port som inngang/utgang og velger en av de fire driftsmodusene. Inntil dette er gjort, forblir portene inaktive.
Driftsmoduser
Bit Set/Reset (BSR)-modus
• Gjelder kun port C.
• Gjør det mulig å stille inn eller slette individuelle bits for kontroll-/statusoppgaver.
Modus 0 – Enkel I/O
• Grunnleggende inngang/utgang uten håndtrykk.
• Brukes til enkle overføringer som lysdioder, brytere og skjermer.
Modus 1 – Strøket I/O
• Legger til håndtrykksignaler (STB, ACK, IBF, OBF) via port C.
• Sikrer synkronisert CPU-perifer ↔ dataoverføring.
Modus 2 – Toveis I/O
• Kun tilgjengelig på port A.
• Støtter toveis overføring med håndtrykkkontroll, nyttig for høyhastighets- eller asynkrone enheter.
Lese-/skriveoperasjoner
• Skriving: CPU-en plasserer data på systembussen, og 8255 dekoder adresselinjene (A0, A1) for å lede den til riktig ports utgangslås.
• Lese: Eksterne enheter legger data på portlinjer, som 8255 låser og gjør tilgjengelig for CPU-en under en lesekommando.
Synkronisering
• I modus 0 skjer dataoverføringer direkte uten håndtrykk.
• I modus 1 og 2 koordinerer håndtrykksignaler fra port C beredskap og aksept, og forhindrer tap av data under høyhastighets eller asynkrone overføringer.
Grensesnitthensyn for 8255 PPI-brikke
Når du designer systemer med 8255, sikrer forsiktig grensesnitt pålitelighet og forhindrer skade på både brikken og eksterne enheter:
• Standard inngangstilstand – Ved tilbakestilling er alle porter som standard innganger. Dette unngår konflikter, men betyr også at utdata er inaktive inntil de er konfigurert. CPU-en må alltid sende et kontrollord for å definere retning og modus riktig før han prøver å kommunisere.
• Utgangsstasjonsgrenser – 8255s porter kan bare hente eller senke begrenset strøm (noen få milliampere). Direkte kjøring av tung last som lamper, solenoider eller releer er utrygt. I stedet brukes ofte buffer- eller driver-IC-er som ULN2803 (Darlington-array) eller åpne kollektorporter som 7406. Disse gir høyere strømkapasitet og beskytter PPI.
• Motorstyring – For DC-motorer eller trinnmotorer skal 8255-portene ikke kobles direkte. I stedet må utganger rutes gjennom transistortrinn eller H-bro driverkretser. Dette arrangementet tillater toveis strømflyt samtidig som PPI isoleres fra induktive spenningstopper.
• AC-lastbytte – Grensesnitt med AC-apparater krever isolasjon for sikkerhets skyld. Mekaniske releer eller solid-state-releer (SSR) som drives gjennom buffertrinn sørger for at 8255 kun håndterer styresignaler, mens den faktiske høyspenningsbelastningen kobles sikkert eksternt.
• Port C-restriksjoner – Port Cs biter er ikke alltid fritt brukbare som generell I/O. I modus 1 og 2 er flere pinner (f.eks. STB, ACK, IBF, OBF) automatisk reservert for håndtrykkkontroll. Du må ta hensyn til disse reserverte linjene for å unngå konflikter når du blander generell I/O med håndtrykk.
Fordeler med 8255 PPI Chip
• CPU-kompatibilitet – 8255 fungerer sømløst med prosessorer som Intel 8085, 8086 og deres kompatible. Designet samsvarer med standard bussprotokoller, noe som gjør integreringen enkel uten ekstra limlogikk.
• Fleksibel portkonfigurasjon – Med tre 8-bits porter (A, B, C) kan brukere konfigurere dem som inngang, utgang eller en blanding avhengig av applikasjonen. Muligheten til å bytte mellom enkel I/O (modus 0) og håndtrykkstyrt kommunikasjon (modus 1 og 2) gjør at den samme brikken kan håndtere en rekke oppgaver.
• Enkeltforsyningsdrift – 8255 opererer fra en standard +5 V-forsyning, og er enkel å drive i TTL-baserte systemer. Ingen spesielle regulatorer eller flere spenningsnivåer er nødvendig, noe som forenkler kortdesignet.
• Pålitelig parallell dataoverføring – Brikken gir stabil og forutsigbar 8-bits parallell kommunikasjon, noe som reduserer tidsusikkerheter. Denne påliteligheten gjør den egnet for å kjøre displayer, lese sensorer og administrere styresignaler i faktiske systemer.
• Pedagogisk verdi – Fordi den er veldokumentert og allment tilgjengelig, har 8255 vært et viktig undervisningsverktøy i mikroprosessorlaboratorier og opplæringssett. Du kan raskt forstå I/O-grensesnittkonsepter gjennom praktiske eksperimenter med denne enheten.
Bruksområder for 8255 PPI-brikke
• Utdanningssystemer – Opplæringssett og laboratorietavler inkluderer ofte 8255 for å demonstrere perifere grensesnittkonsepter. Du kan øve på å programmere forskjellige moduser og observere faktisk interaksjon med eksterne enheter.
• Skjermkontroll – Brikken driver visuelle utgangsenheter som syv-segments LED-er, LCD-moduler og alfanumeriske paneler. Med sine flere I/O-linjer kan den oppdatere skjermer eller sende kontrollkommandoer til fører-IC-er.
• Tastaturgrensesnitt – Matrix-tastaturer i tidlige terminaler og personlige datamaskiner ble ofte skannet med 8255. Ved å konfigurere noen linjer som raddrivere og andre som kolonnesensorer, oppdaget den effektivt tastetrykk.
• Motorkontroll – Trinnmotorer og DC-motorer kan styres når 8255 er paret med transistortrinn, Darlington-matriser eller H-broer. Dette gjorde det nyttig i robotikk, posisjoneringssystemer og automatiseringsprosjekter.
• Datainnsamling – Når den var koblet til ADC-er (analog-til-digital-omformere) og DAC-er (digital-til-analog-omformere), ga 8255 et komplett grensesnitt for måle- og kontrolloppgaver. Dette gjorde det mulig for mikroprosessorer å håndtere signaler i vitenskapelig og industrielt utstyr.
• Industriell automasjon – 8255 ble brukt til å kontrollere trafikksignaler, heislogikk og prosessovervåkingspaneler. Dens evne til pålitelig å administrere flere innganger og utganger gjorde den til en rimelig løsning for innebygde kontrollsystemer.
• Retro-Computing – Klassiske maskiner som IBM PC/XT- og MSX-datamaskiner brukte 8255 for perifere grensesnitt. Den ble også brukt i skrivere og utvidelseskort, og sementerte sin plass i tidlig personlig datamaskinhistorie.
8255 PPI Chip Sammenligning med andre PPI-er
8255 mot 8155

Intel 8155 kombinerer flere funksjoner i én pakke: den tilbyr en liten blokk med statisk RAM, en programmerbar tidtaker og generelle I/O-porter. Dette gjorde den egnet for kompakte systemer der det var behov for minne og tidskontroll. Derimot fokuserer 8255 helt på programmerbar I/O, uten innebygd minne eller timing. Den enklere designen gjorde den billigere og enklere å programmere når applikasjonen ikke krevde integrert RAM eller tidtakere.
8255 mot 8259

8259 Programmable Interrupt Controller tjener et helt annet formål: å administrere maskinvareavbrudd for å hjelpe CPU-en med å reagere raskt på eksterne hendelser. Mens 8255 håndterer parallell I/O-dataoverføring, koordinerer 8259-koordinatene avbruddssignaler. I mange mikroprosessorbaserte systemer ble de to brikkene brukt sammen, 8255 for grensesnitt med enheter som tastaturer og skjermer, og 8259 for å administrere avbruddsforespørslene generert av disse enhetene.
8255 vs. moderne GPIO-utvidere

Dagens systemer bruker ofte I²C eller SPI-baserte GPIO-utvidere (som MCP23017 eller PCF8574). Disse enhetene gir ekstra I/O-pinner med færre tilkoblinger, sparer kortplass og reduserer antall pinner på CPU-en. Imidlertid opererer de serielt, noe som kan være tregere sammenlignet med den direkte parallelle tilgangen til 8255. Mens 8255 krever flere busslinjer, tillater dens parallelle struktur raskere overføringer og gjør den svært verdifull i utdanningsmiljøer, der direkte kontroll av individuelle pinner og forståelse av busstiming er viktig for læring.
Feilsøking og vanlige problemer
Arbeid med 8255 kan noen ganger føre til systemfeil hvis designreglene ikke følges nøye. Vanlige problemer og løsninger inkluderer:
• Ikke-initialiserte porter – Etter tilbakestilling går alle porter som standard til inngangsmodus. Hvis CPU-en ikke sender et riktig kontrollord, forblir utgangene inaktive eller oppfører seg uforutsigbart. Programmer alltid kontrollregisteret før du prøver å lese eller skrive data.
• Feil kontrollord – Feilkonfigurerte kontrollord kan tilordne feil retninger eller moduser til porter, og låse forventede signaler. Krysssjekk kontrollordverdier mot dataarktabeller for å sikre riktige bitinnstillinger.
• Håndtrykkfeil – I modus 1 og 2 gir port C nødvendige håndtrykksignaler (STB, ACK, IBF, OBF). Manglende, feilkoblede eller feiltolkede tilkoblinger fører til stoppede eller tapte overføringer. Kontroller nøye både ledningene og forventningene til det logiske nivået til tilkoblede enheter.
• Overbelastningsutganger – Hver portpinne kan bare håndtere små strømmer. Direkte kjøring av lysdioder er mulig med motstander, men motorer, releer og lamper krever eksterne buffertrinn som transistormatriser eller driver-IC-er. Hvis du ignorerer denne grensen, risikerer du permanent skade på brikken.
• Busskonflikter – Hvis flere enheter prøver å drive systembussen samtidig, kan det oppstå datakorrupsjon eller maskinvareskade. Riktig bussvoldgift og bruk av aktiveringssignaler (RD', WR', CS') forhindrer dette problemet.
• Feilsøkingsverktøy – Når problemene vedvarer, hjelper testutstyr med å isolere feil. Logiske analysatorer kan bekrefte timing og kontrollere signaler, mens oscilloskop kan sjekke om problemet oppstår på grunn av støyende maskinvareledninger eller feil programvareinitialisering.
Konklusjon
Intel 8255 PPI er fortsatt en hjørnestein i mikroprosessorgrensesnittet. Selv om den i stor grad er erstattet av moderne GPIO-utvidere og innebygd mikrokontroller I/O, fortsetter den å tjene som et aktivt undervisningsverktøy. Dens klarhet i å demonstrere parallell dataoverføring, portkonfigurasjon og håndtrykk gjør den uvurderlig for alle.
Ofte stilte spørsmål [FAQ]
Hva er kontrollordet i 8255 og hvorfor er det viktig?
Kontrollordet er en 8-bits instruksjon sendt av CPU-en for å konfigurere 8255s porter og moduser. Uten den forblir alle porter i standard inngangstilstand. Den definerer om hver port fungerer som inngang eller utgang og velger mellom modus 0, 1, 2 eller Bit Set/Reset.
Kan 8255 drive motorer eller releer direkte?
Nei. 8255-utgangene kan bare hente eller senke noen få milliampere, noe som er utilstrekkelig for motorer eller reléer. Eksterne driverkretser, som transistormatriser eller H-broer, må brukes for å håndtere høyere strøm på en sikker måte.
Hvorfor brukes 8255 fortsatt i undervisningen i dag?
8255 gir en klar, praktisk måte å lære om mikroprosessor-I/O, kontrollord og parallell dataoverføring. Den enkle arkitekturen hjelper elevene med å forstå kjernekonsepter før de går videre til moderne mikrokontrollere.
Hva skjer hvis du bruker port C i håndtrykkmodus?
I modus 1 og 2 er noen Port C-linjer reservert for håndtrykksignaler (som STB, ACK, IBF, OBF). Disse pinnene kan ikke brukes som generell I/O i disse modusene, noe du må ta hensyn til for å unngå konflikter.
Hvordan skiller 8255 seg fra moderne GPIO-utvidere?
I motsetning til I²C/SPI-utvidere som bruker seriell kommunikasjon, fungerer 8255 med en parallellbuss, noe som muliggjør raskere overføringer, men krever flere pinner. Dette gjør 8255 mindre plasseffektiv, men verdifull for faktisk kontroll og læring av busstiming.