Intel 8255 Programmable Peripheral Interface (PPI) var en nyckelkomponent för att överbrygga mikroprocessorer med externa enheter under de digitala systemens tidiga dagar. Med mångsidiga I/O-portar, flera driftlägen och enkel programmering möjliggjorde 8255 tillförlitlig kommunikation med displayer, sensorer och styrenheter, vilket gjorde den användbar inom både utbildning och industri.

8255 Översikt över programmerbart perifert gränssnitt (PPI)
Intel 8255 PPI-chippet är ett allmänt använt I/O-chip som är utformat för att ansluta mikroprocessorer till externa enheter. Den fungerar som en kommunikationsbrygga för kringutrustning som ADC:er, DAC:er, tangentbord och skärmar. Den har stöd för både direkt och avbrottsdriven I/O och ger flexibilitet i systemdesignen. Med tre 8-bitars dubbelriktade portar (A, B, C) levererar den 24 konfigurerbara I/O-linjer. Dess kostnadseffektivitet och kompatibilitet med processorer som Intel 8085/8086 gjorde den till en stapelvara i tidiga datorsystem, träningskit och industriella styrenheter.
Funktioner hos 8255 PPI-chip
• Programmerbart gränssnitt – Konfigurerbart via programvaruinstruktioner för att anpassa sig till enheter som displayer, sensorer och ingångsmoduler.
• Tre 8-bitarsportar – Portarna A, B och C har 24 linjer som kan fungera som in- eller utgång.
• Flera driftlägen –
Läge 0: Enkel in-/utgång utan handskakning.
Läge 1: Strobed I/O med handskakningssignaler för synkroniserad kommunikation.
Läge 2: Dubbelriktad dataöverföring med handskakning (endast på port A).
• Bitset/Reset (BSR) – Port C-bitar kan ställas in eller rensas individuellt för kontroll-/statusapplikationer.
• Flexibel gruppering – Portar kan delas upp i 8-bitars eller 4-bitars grupper.
• TTL-kompatibilitet – Enkel integration med vanliga digitala integrerade kretsar.
• Oberoende kontrollregister – Varje port kan fungera separat, i olika lägen eller riktningar.
Pinout på 8255 PPI-chip

| Stift nr. | Grupp | Signal | Beskrivning |
|---|---|---|---|
| 1–8 | Hamn A | PA0–PA7 | 8-bitars I/O-port för allmänt bruk |
| 9–16 | Hamn C | PC0–PC7 | Dela upp i PC0–PC3 (nedre) och PC4–PC7 (övre); används som I/O- eller handskakningslinjer |
| 17–24 år | Hamn B | PB0–PB7 | 8-bitars I/O-port för allmänt bruk |
| 25 | Styrning | CS" | Markerval (aktiv låg) |
| 26 | Strömförsörjning | Vcc | +5 V matning |
| 27 | Styrning | RD" | Läsaktivera |
| 28 | Styrning | WR" | Aktivera skrivning |
| 29 | Styrning | ÅTERSTÄLLA | Återställer alla portar till ingångsläge |
| 30–37 | Databuss | D0–D7 | Överför data/kommandon mellan CPU och 8255 |
| 38–39 | Adress-PIN-koder | A0, A1 | Välj interna register/portar: 00=Port A, 01=Port B, 10=Port C, 11=Kontroll |
| 40 | Jord | GND | Referens till grund |
Arkitektur för 8255 PPI-chip

| Funktionellt block | Beskrivning |
|---|---|
| Buffert för databuss | Fungerar som ett gränssnitt mellan CPU:ns dubbelriktade databuss (D7–D0) och den interna 8-bitars databussen i 8255. Den lagrar och överför tillfälligt data mellan CPU:n och interna register eller portar. |
| Läs-/skrivkontrolllogik | Hanterar all kommunikation mellan CPU:n och 8255. Den tolkar styrsignaler som RD, WR, A0, A1, CS och RESET för att bestämma drifttypen (läsa, skriva eller styra) och väljer rätt port eller kontrollregister. |
| Styrlogik (avkodare) | Avkodar kontrollordet som skickas av CPU:n för att konfigurera portarna i olika lägen (läge 0, 1 eller 2) eller i bitinställningsläge (BSR). Den bestämmer hur varje port ska fungera - som ingång, utgång eller handskakning. |
| Grupp A Kontroll | Styr port A (8 bitar: PA7–PA0) och övre port C (4 bitar: PC7–PC4). Den stöder lägena 0, 1 och 2, vilket möjliggör enkel I/O, handskaknings-I/O och dubbelriktad dataöverföring |
| Grupp B-kontroll | Styr port B (8 bitar: PB7–PB0) och nedre port C (4 bitar: PC3–PC0). Den stöder lägena 0 och 1, vilket möjliggör grundläggande in-/utgång eller handskakningsstyrda operationer. |
| Hamn A | En 8-bitars I/O-port som kan fungera som ingång eller utgång beroende på lägeskonfigurationen. Stöder lägena 0–2 under grupp A-kontroll. |
| Hamn B | En annan**8-bitars I/O-port** för dataöverföring. Fungerar under grupp B-kontroll och stöder lägena 0 och 1. |
| Hamn C | En delad 8-bitarsport som är uppdelad i två 4-bitarsgrupper: Övre (PC7–PC4) och Nedre (PC3–PC0). Dessa kan fungera som oberoende I/O-portar, kontrollinjningar eller handskakningssignaler. Enskilda borrkronor kan också styras med hjälp av BSR-läget (Bit Set/Reset). |
| Intern databuss (8-bitars) | Ansluter alla interna block i 8255 och överför data och styrinformation mellan processorn, styrlogiken och portarna. |
| Strömförsörjning | Chipet fungerar med en +5V DC-matning och GND-anslutning för att driva hela kretsen. |
Driftlägen och arbetsprincip för 8255 PPI-chip
Intel 8255 fungerar som ett programmerbart gränssnitt mellan processorn och kringutrustningen och översätter bussåtgärder till parallella dataöverföringar. Dess funktion styrs av initieringssteg och valbara lägen:
Återställ tillstånd
Vid uppstart eller återställning är alla portar (A, B och C) som standard inställda på ingångsläge för att undvika att skada kringutrustning med oavsiktliga utgångar.
Initiering
CPU:n måste skicka ett kontrollord som konfigurerar varje port som ingång/utgång och väljer ett av de fyra driftlägena. Tills detta är gjort förblir portarna inaktiva.
Driftsätt
bitars inställd/återställd (BSR) läge
• Gäller endast port C.
• Gör det möjligt att ställa in eller rensa enskilda bitar för kontroll-/statusuppgifter.
Läge 0 – Enkel I/O
• Grundläggande in-/utgång utan handskakning.
• Används för enkla överföringar som lysdioder, strömbrytare och displayer.
Läge 1 – Strobed I/O
• Lägger till handskakningssignaler (STB, ACK, IBF, OBF) via port C.
• Säkerställer synkroniserad överföring av kringutrustning för CPU ↔.
Läge 2 – Dubbelriktad I/O
• Endast tillgängligt på port A.
• Stöder tvåvägsöverföring med handskakningskontroll, användbart för snabba eller asynkrona enheter.
Läs-/skrivoperationer
• Skriv: CPU:n placerar data på systembussen och 8255 avkodar adresslinjerna (A0, A1) för att dirigera den till rätt ports utgångsspärr.
• Läsa: Externa enheter lägger data på portlinjer, som 8255 låser och gör tillgängliga för CPU:n under ett läskommando.
Synkronisering
• I Mode 0 sker dataöverföringar direkt utan handskakningar.
• I lägena 1 och 2 koordinerar handskakningssignaler från port C beredskap och acceptans, vilket förhindrar dataförlust vid snabba eller asynkrona överföringar.
Att tänka på när det gäller gränssnitt för 8255 PPI-chip
Vid konstruktion av system med 8255 säkerställer noggrann gränssnittshantering tillförlitlighet och förhindrar skador på både chipet och externa enheter:
• Standardingångsläge – Vid återställning har alla portar som standard ingångar. Detta undviker konflikter men innebär också att utdata är inaktiva tills de konfigureras. CPU:n måste alltid skicka ett kontrollord för att korrekt definiera riktning och läge innan du försöker kommunicera.
• Gränser för utmatningsenhet – 8255:s portar kan endast mata eller sänka begränsad ström (några milliampere). Att direkt köra tunga laster som lampor, solenoider eller reläer är osäkert. I stället används ofta buffert- eller drivrutinskretsar som ULN2803 (Darlington-matrisen) eller öppna kollektorgrindar som 7406. Dessa ger högre strömkapacitet och skyddar PPI.
• Motorstyrning – För likströmsmotorer eller stegmotorer bör 8255-portarna inte anslutas direkt. Istället måste utgångar dirigeras genom transistorsteg eller H-brygga drivkretsar. Detta arrangemang möjliggör dubbelriktat strömflöde samtidigt som PPI isoleras från induktiva spänningsspikar.
• Omkoppling av AC-belastning – Gränssnitt med AC-apparater kräver isolering för säkerhets skull. Mekaniska reläer eller halvledarreläer (SSR) som drivs genom buffertsteg säkerställer att 8255 endast hanterar styrsignaler, medan den faktiska högspänningslasten kopplas om säkert externt.
• Begränsningar för port C – bitarna i port C kan inte alltid användas fritt som allmän I/O. I lägena 1 och 2 reserveras automatiskt flera stift (t.ex. STB, ACK, IBF, OBF) för handskakningskontroll. Du måste ta hänsyn till dessa reserverade linjer för att undvika konflikter när du blandar allmän I/O med handskakning.
Fördelar med 8255 PPI-chip
• CPU-kompatibilitet – 8255 fungerar sömlöst med processorer som Intel 8085, 8086 och deras kompatibla. Dess design matchar standardbussprotokoll, vilket gör integrationen enkel utan extra limlogik.
• Flexibel portkonfiguration – Med tre 8-bitarsportar (A, B, C) kan användare konfigurera dem som ingång, utgång eller en blandning beroende på applikation. Möjligheten att växla mellan enkel I/O (läge 0) och handskakningsdriven kommunikation (läge 1 och 2) gör att samma chip kan hantera en mängd olika uppgifter.
• Drift med en enda matning – 8255 drivs från en standard +5 V-källa och är lätt att strömförsörja i TTL-baserade system. Inga speciella regulatorer eller flera spänningsnivåer krävs, vilket förenklar kortdesignen.
• Tillförlitlig parallell dataöverföring – Chippet ger stabil och förutsägbar 8-bitars parallell kommunikation, vilket minskar osäkerheten i tidsinställningarna. Denna tillförlitlighet gör den lämplig för att driva displayer, läsa sensorer och hantera styrsignaler i faktiska system.
• Utbildningsvärde – Eftersom 8255 är väldokumenterad och allmänt tillgänglig har den varit ett viktigt undervisningsverktyg i mikroprocessorlaboratorier och träningskit. Du kan snabbt förstå koncept för I/O-gränssnitt genom praktiska experiment med den här enheten.
Tillämpningar av 8255 PPI-chip
• Utbildningssystem – Utbildningssatser och labbtavlor innehåller ofta 8255 för att demonstrera koncept för perifera gränssnitt. Du kan öva på att programmera olika lägen och observera faktisk interaktion med externa enheter.
• Displaykontroll – Chippet driver visuella utmatningsenheter som sjusegmentslysdioder, LCD-moduler och alfanumeriska paneler. Med sina flera I/O-linjer kan den uppdatera skärmar eller skicka kontrollkommandon till drivrutinskretsar.
• Gränssnitt för tangentbord – Matristangentbord i tidiga terminaler och persondatorer skannades ofta med hjälp av 8255. Genom att konfigurera vissa linjer som raddrivrutiner och andra som kolumnsensorer upptäckte den effektivt tangenttryckningar.
• Motorstyrning – Stegmotorer och likströmsmotorer kan styras när 8255 är ihopparad med transistorsteg, Darlington-arrayer eller H-bryggor. Detta gjorde det användbart i robotik, positioneringssystem och automationsprojekt.
• Datainsamling – När 8255 var ansluten till ADC:er (analog-till-digital-omvandlare) och DAC:er (digital-till-analog-omvandlare) hade den ett komplett gränssnitt för mät- och kontrolluppgifter. Detta gjorde det möjligt för mikroprocessorer att hantera signaler i vetenskaplig och industriell utrustning.
• Industriell automation – 8255 har använts för att styra trafiksignaler, hisslogik och processövervakningspaneler. Dess förmåga att på ett tillförlitligt sätt hantera flera in- och utgångar gjorde den till en lågkostnadslösning för inbyggda styrsystem.
• Retro-Computing – Klassiska maskiner som IBM PC/XT och MSX-datorer använde 8255 för perifert gränssnitt. Det användes också i skrivare och expansionskort, vilket cementerade dess plats i den tidiga persondatorhistorien.
Jämförelse av 8255 PPI-chip med andra PPI:er
9,1 8255 jämfört med 8155

Intel 8155 kombinerar flera funktioner i ett paket: den har ett litet block med statiskt RAM-minne, en programmerbar timer och I/O-portar för allmänt bruk. Detta gjorde den lämplig för kompakta system där minnes- och tidsstyrning behövdes. 8255 däremot fokuserar helt på programmerbar I/O, utan inbyggt minne eller timing. Dess enklare design gjorde det billigare och lättare att programmera när applikationen inte krävde integrerat RAM-minne eller timers.
8255 jämfört med 8259

8259 Programmable Interrupt Controller har ett helt annat syfte: att hantera maskinvaruavbrott för att hjälpa CPU:n att reagera snabbt på externa händelser. Medan 8255 hanterar parallell I/O-dataöverföring, avbryter 8259-koordinaterna signaler. I många mikroprocessorbaserade system användes de två kretsarna tillsammans, 8255 för gränssnitt med enheter som tangentbord och skärmar, och 8259 för att hantera de avbrottsbegäranden som genererades av dessa enheter.
8255 jämfört med moderna GPIO-expansionsenheter

Dagens system använder ofta I²C- eller SPI-baserade GPIO-expansionsenheter (t.ex. MCP23017 eller PCF8574). Dessa enheter har ytterligare I/O-stift med färre anslutningar, vilket sparar kortutrymme och minskar antalet stift på CPU:n. De arbetar dock seriellt, vilket kan vara långsammare jämfört med den direkta parallella åtkomsten hos 8255. Även om 8255 kräver fler busslinjer, möjliggör dess parallella struktur snabbare byten och gör den mycket värdefull i utbildningsmiljöer, där direkt kontroll av enskilda stift och förståelse för busstider är viktigt för inlärningen.
Felsökning och vanliga problem
Att arbeta med 8255 kan ibland leda till systemfel om konstruktionsreglerna inte följs noggrant. Vanliga problem och lösningar inkluderar:
• Oinitierade portar – Efter återställning är alla portar som standard i ingångsläge. Om CPU:n inte skickar ett korrekt kontrollord förblir utdata inaktiva eller beter sig oförutsägbart. Programmera alltid kontrollregistret innan du försöker läsa eller skriva data.
• Felaktiga kontrollord – Felkonfigurerade styrord kan tilldela fel riktningar eller lägen till portar, vilket låser ut förväntade signaler. Kontrollera kontrollordsvärden mot databladstabeller för att säkerställa korrekta bitinställningar.
• Handskakningsfel – I lägena 1 och 2 tillhandahåller port C nödvändiga handskakningssignaler (STB, ACK, IBF, OBF). Saknade, felanslutna eller feltolkade anslutningar leder till stoppade eller förlorade överföringar. Kontrollera noggrant både kabeldragningen och förväntningarna på logiknivå för anslutna enheter.
• Överbelastning av utgångar – Varje portstift kan endast hantera små strömmar. Det är möjligt att driva lysdioder direkt med motstånd, men motorer, reläer och lampor kräver externa buffertsteg som transistormatriser eller drivkretsar. Om du ignorerar denna gräns riskerar du permanent skada på chipet.
• Busskonflikter – om flera enheter försöker driva systembussen samtidigt kan data skadas eller maskinvara skadas. Korrekt bussskiljeförfarande och användning av aktiveringssignaler (RD', WR', CS') förhindrar detta problem.
• Felsökningsverktyg – När problem kvarstår hjälper testutrustningen till att isolera fel. Logikanalysatorer kan bekräfta tids- och styrsignaler, medan oscilloskop kan kontrollera om problemet uppstår på grund av bullriga hårdvaruledningar eller felaktig programvaruinitiering.
Slutsats
Intel 8255 PPI är fortfarande en hörnsten i mikroprocessorgränssnittet. Även om den till stor del har ersatts av moderna GPIO-expansionsenheter och inbyggd mikrokontroller-I/O, fortsätter den att fungera som ett aktivt undervisningsverktyg. Dess tydlighet när det gäller att demonstrera parallell dataöverföring, portkonfiguration och handskakning gör den ovärderlig för alla.
Vanliga frågor [FAQ]
Vad är kontrollordet i 8255 och varför är det viktigt?
Kontrollordet är en 8-bitars instruktion som skickas av CPU:n för att konfigurera 8255:s portar och lägen. Utan den förblir alla portar i sitt standardingångsläge. Den definierar om varje port fungerar som ingång eller utgång och väljer mellan lägena 0, 1, 2 eller Bit Set/Reset.
Kan 8255 driva motorer eller reläer direkt?
Nej. 8255-utgångarna kan bara källa eller sänka några milliampere, vilket är otillräckligt för motorer eller reläer. Externa drivkretsar, t.ex. transistormatriser eller H-bryggor, måste användas för att hantera högre ström på ett säkert sätt.
Varför används 8255 fortfarande inom utbildning idag?
8255 är ett tydligt och praktiskt sätt att lära sig mer om mikroprocessor-I/O, styrord och parallell dataöverföring. Dess enkla arkitektur hjälper eleverna att förstå kärnbegrepp innan de går vidare till moderna mikrokontroller.
Vad händer om du använder port C i handskakningslägen?
I lägena 1 och 2 är vissa Port C-linjer reserverade för handskakningssignaler (som STB, ACK, IBF, OBF). Dessa stift kan inte användas som allmän I/O under dessa lägen, vilket du måste ta hänsyn till för att undvika konflikter.
Hur skiljer sig 8255 från moderna GPIO-expansionsenheter?
Till skillnad från I²C/SPI-expansionsenheter som använder seriell kommunikation fungerar 8255 med en parallellbuss, vilket möjliggör snabbare överföringar men kräver fler stift. Detta gör 8255 mindre utrymmeseffektiv men värdefull för faktisk styrning och inlärning av busstiming.