Reparera Design möbel

LED indikering. LED-indikatorer med sju segment. Vad finns i sjusegmentsindikatorn

Tillåter dig inte att direkt slå på/av LED-indikatorn eller kamerablixten; vissa telefoner har det här alternativet.

Hur man programmatiskt blinkar flerfärgade lampor, hur man skriver din egen "Ficklampa" eller vilka andra LED-lampor som kan styras - du kommer att lära dig om detta nedan.

Allt började när jag, när jag utforskade filsystemet på min HTC Desire med ES Explorer, av misstag stötte på intressanta kataloger: /sys/class/leds/blue, /sys/class/leds/flashlight, etc.
Vad mer är blått?! Jag såg bara en orange och grön indikator. Men det mest intressanta är att inuti dessa kataloger fanns en ljusstyrkefil med skrivbehörighet! Vilket jag direkt utnyttjade.

Faktum är att detta inte är en enkel fil, utan ett gränssnitt för att arbeta med en LED-drivrutin. Så, genom att skriva ett positivt tal till filen /sys/class/leds/blue/brightness, kommer vi att slå på den blå indikatorn på telefonfodralet, genom att skriva 0 - vi kommer att stänga av den. På samma sätt med de bärnstensfärgade och gröna indikatorerna. Genom att slå på två lysdioder tillsammans får vi nya färger: bärnsten + blå = lila; grön + blå = aqua.

Hur är det nu programmerat?
public void ledControl(Strängnamn, int ljusstyrka) (

Prova (

FileWriter fw = new FileWriter("/sys/class/leds/" + namn + "/ljusstyrka" );

fw.write(Integer.toString(ljusstyrka));

fw.close();

) fånga (Undantag e) (

// LED-kontroll är inte tillgänglig

}

}


// Slå på den lila indikatorn

ledControl("amber" , 255 );

ledControl("blå" , ​​255 );


// Gör skärmen mörkare

ledControl("lcd-bakgrundsbelysning" , 30 );


// Stäng av knappens bakgrundsbelysning

ledControl("knapp-bakgrundsbelysning" , 0 );


// Organisera en ficklampa med medium ljusstyrka

ledControl("ficklampa" , 128 );

Ett exempelprogram med källkoder kan laddas ner.

Slutsats
Allt! Nu lyser telefonen som en julgran. Koden har bara testats på HTC Desire som kör Android 2.2, men kommer troligen att fungera på andra enheter. Skriv till mig om fokus kommer att fungera eller inte på din telefon.

Du har säkert redan sett de "åtta" indikatorerna. Detta är en LED-indikator med sju segment, som tjänar till att visa siffror från 0 till 9, såväl som decimalkomma ( D.P.- Decimalkomma) eller kommatecken.

Strukturellt är denna produkt en sammansättning av lysdioder. Varje lysdiod i monteringen lyser upp sitt eget skyltsegment.

Beroende på modell kan monteringen bestå av 1 - 4 sjusegmentsgrupper. Till exempel består ALS333B1-indikatorn av en grupp med sju segment, som endast kan visa en siffra från 0 till 9.

Men KEM-5162AS LED-indikator har redan två sju-segmentsgrupper. Den är tvåsiffrig. Följande bild visar olika LED-indikatorer med sju segment.

Det finns också indikatorer med 4 sjusegmentsgrupper - fyrsiffriga (bilden - FYQ-5641BSR-11). De kan användas i hemgjorda elektroniska klockor.

Hur indikeras sjusegmentindikatorer på diagrammen?

Eftersom sjusegmentsindikatorn är en kombinerad elektronisk enhet, skiljer sig dess bild på diagrammen lite från dess utseende.

Man behöver bara vara uppmärksam på att varje stift motsvarar ett specifikt teckensegment som det är anslutet till. Det finns också en eller flera terminaler på en gemensam katod eller anod, beroende på enhetens modell.

Funktioner av sju-segmentindikatorer.

Trots den uppenbara enkelheten i denna del har den också sina egna särdrag.

För det första kommer sjusegments LED-indikatorer med en gemensam anod och en gemensam katod. Denna funktion bör beaktas när du köper den för en hemgjord design eller enhet.

Här är till exempel pinouten för den 4-siffriga indikatorn som vi redan känner till FYQ-5641BSR-11.

Som du kan se kombineras anoderna på lysdioderna för varje siffra och matas ut till ett separat stift. Katoderna för lysdioder som tillhör teckensegmentet (t.ex. G), sammankopplade. Mycket beror på vilken typ av anslutningsdiagram indikatorn har (med en gemensam anod eller katod). Om du tittar på kretsscheman för enheter som använder sjusegmentindikatorer kommer det att bli tydligt varför detta är så viktigt.

Förutom små indikatorer finns det stora och till och med mycket stora. De kan ses på offentliga platser, vanligtvis i form av väggur, termometrar och informatörer.

För att öka storleken på siffrorna på displayen och samtidigt upprätthålla tillräcklig ljusstyrka för varje segment, används flera lysdioder, kopplade i serie. Här är ett exempel på en sådan indikator - den passar i din handflata. Detta FYS-23011-BUB-21.

Ett segment av den består av 4 lysdioder kopplade i serie.

För att belysa ett av segmenten (A, B, C, D, E, F eller G) måste du lägga på en spänning på 11,2 volt (2,8V för varje lysdiod). Du kan göra mindre, till exempel 10V, men ljusstyrkan kommer också att minska. Undantaget är decimalkomma (DP), dess segment består av två lysdioder. Den behöver bara 5 - 5,6 volt.

Tvåfärgsindikatorer finns också i naturen. Till exempel är röda och gröna lysdioder inbyggda i dem. Det visar sig att det så att säga finns två indikatorer inbyggda i höljet, men med lysdioder i olika färger. Om du lägger spänning på båda LED-kretsarna kan du få ett gult sken från segmenten. Här är ett kopplingsschema för en av dessa tvåfärgade indikatorer (SBA-15-11EGWA).

Om du ansluter stift 1 ( RÖD) och 5 ( GRÖN) till "+" strömförsörjning genom nyckeltransistorer kan du ändra färgen på de visade siffrorna från rött till grönt. Och om du ansluter stift 1 och 5 samtidigt blir glödfärgen orange. Så här kan du leka med indikatorer.

Hantering av sjusegmentsindikatorer.

För att styra sjusegmentsindikatorer i digitala enheter används skiftregister och avkodare. Till exempel är en mycket använd avkodare för att styra indikatorer i serierna ALS333 och ALS324 en mikrokrets K514ID2 eller K176ID2. Här är ett exempel.

Och för att kontrollera moderna importerade indikatorer används vanligtvis skiftregister 74HC595. I teorin kan displaysegmenten styras direkt från mikrokontrollerns utgångar. Men en sådan krets används sällan, eftersom detta kräver att man använder en hel del stift på själva mikrokontrollern. Därför används skiftregister för detta ändamål. Dessutom kan strömmen som förbrukas av lysdioderna i teckensegmentet vara större än strömmen som den ordinarie utsignalen från mikrokontrollern kan ge.

För att styra stora sjusegmentsindikatorer, såsom FYS-23011-BUB-21, används specialiserade drivrutiner, till exempel en mikrokrets MBI5026.

Vad finns i sjusegmentsindikatorn?

Nåväl, lite välsmakande. Vilken elektronikingenjör som helst skulle inte vara det om han inte var intresserad av "insidan" av radiokomponenter. Detta är vad som finns inuti ALS324B1-indikatorn.

De svarta rutorna på basen är LED-kristaller. Här kan du se guldbyglarna som kopplar kristallen till en av terminalerna. Tyvärr kommer denna indikator inte längre att fungera, eftersom samma byglar slets av. Men vi kan se vad som döljer sig bakom den dekorativa panelen på resultattavlan.

Ljushanterare. I samma ögonblick som du får ett e-postmeddelande eller ett meddelande kommer din telefon att försöka fånga din uppmärksamhet med hjälp av den inbyggda indikatorn. Men genom att lysdioden flimrar kommer du aldrig att avgöra vilken exakt händelse som inträffade, och du måste fortfarande plocka upp den. Tills du installerar Light Manager.

Light Manager är ett program för Android som hjälper dig att konfigurera LED-indikatorn för din gadget. Med den här applikationen lär du den att reagera med olika färger på vissa händelser, till exempel när ett nytt meddelande kommer på WhatsApp eller en händelse från din kalender.

Som standard innehåller programmet redan ett antal inställningar för de mest populära evenemangen. Men du kan när som helst radera signaler som är irrelevanta för dig och lägga till det du behöver. För att göra detta, tryck helt enkelt på önskat element så kommer du till menyn för meddelandeinställningar. Här kan du ställa in blinkningsfrekvensen, välja färg på lysdioden och omedelbart kontrollera inställningarna du har gjort i praktiken.

Om programmet som du vill ta emot aviseringar från inte finns i listan kan du lägga till det själv. För att göra detta, växla till Light Manager alternativt driftläge och välj sedan "Lägg till applikation". Du kommer att se en lista över alla program som är installerade på din smartphone. Välj den app du vill ha och lägg till en LED-avisering för den.

Observera att Light Manager inte bara kan rapportera programhändelser utan även olika systemhändelser. Till exempel kan appen meddela dig när ditt batteri är lågt, det inte finns någon nätverkssignal eller att du har aktiverat tyst läge. Det skulle också vara en bra idé att titta närmare på de avancerade inställningarna för programmet, där du kan ställa in frekvensen för signalflimmer, aktivera viloläge (den tid på dagen då Light Manager inte stör dig) och ändra tiden för automatisk avstängning av LED-aktivitet.

Ställa in LED-indikatorn för aviseringar om olika händelser:

Ladda ner Light Manager-appen för Android du kan följa länken nedan.

Utvecklare: MC Koo
Plattform: Android ( Beror på enhet)
Gränssnittsspråk: ryska (RUS)
Status: Full
Root: Behövs inte



Den här artikeln fortsätter serien av mina publikationer om organisationen av dynamisk indikering på PIC-mikrokontroller och LED-indikatorer. Här är länkar till tidigare inlägg:

Funktionstabell för den föreslagna algoritmen (en indikator med en gemensam katod används, den första kolumnen visar registerutgångarna kombinerade med indikatorsiffrorna) enligt anslutningsdiagrammet nedan.

I vart och ett av avbrotten med ett intervall på 2 ms (i detta fall från TMR0-timern) förbereds ett steg av dynamisk indikering (DI) enligt en algoritm som består av fem faser av register- och indikatorstyrning.

2:a fasen: Den positiva kanten vid stift 12 i registret (ST_CP) skriver nolltillståndet för registret till utgångslåset. Här och vidare, före starten av indikeringen, släcks indikatorn med nollpotential på segmenten.

3:e fasen: genom att styra registerstiften 14 (DS - data) och 11 (SH_CP - klocka) skrivs koden för att styra segmenten in i den.

4:e fasen: med ett positivt fall vid stift 12 i registret skrivs data från registret till utgångslåset, och på grund av de positiva nivåerna på bitarna förblir indikatorn avstängd.

5:e fasen: här matas den erforderliga koden till utgångarna på indikatorsiffrorna, och sedan inträffar den faktiska indikeringen.

Om kretsen använder en 4-siffrig indikator måste den ställas in på OK för korrekt funktion. Om du behöver kontrollera 8 bitar används 8 portar på MK, medan de återstående 4 portarna helt enkelt styr bitarna (i fas 4 ska de ha en hög nivå). Det är värt att notera att det i det här fallet är möjligt att använda indikatorer med både OK och OA, förbindande segment eller siffror till registret (av de skäl som anges nedan, i det första fallet är det att föredra att organisera DI segment-för- segment, och i det andra - bit-för-bit).

Med den här metoden kan du ansluta två fyra-bitars indikatorer till PIC16F676 MCU med ett skiftregister, samtidigt som du lämnar så många som fyra lediga portar för användning. Till exempel, för en sådan anslutning använde människor kombinationen av DI och analoga ingångsfunktioner i vissa MK-portar (enligt min mening, ett extremt tveksamt beslut), vilket ledde till en betydande komplikation av kretsen och till vissa begränsningar, som författarna varna om. Med mitt anslutningsschema skulle allt lösas enkelt och vackert - separata ingångar, separata indikationer, plus ytterligare två portar (inklusive MCLR) för knappar.

För att testa denna kontrollmetod föreslås följande enkla krets på PIC12F629 MCU och FYQ3641A-indikatorn, som växelvis visar ordet "test" och siffran 1234 på indikatorn.

Här beslutades att använda en segment-för-segment DI (ett segment slås på i varje ögonblick, och det finns en kod på bitstiften, där i varje bit: 0 - om detta segment ska lysa i en given bit och 1 - annars), där toppströmmar överförs till registret . Varför? Det finns två anledningar till detta: för det första är den maximala belastningskapaciteten för 74HC595-utgångarna 35 mA mot 25 mA för PIC-styrenheter; det andra och viktigaste är att en ström nära gränsen genom utgångsporten på MK teoretiskt kan höja sin utgångspotential till nivån för att byta registeringångar, vilket skulle leda till driftsfel. Och så strömmar på 6-7 mA flödar in i MK-portarna och potentialerna vid utgångarna överstiger absolut inte TTL-nivåerna.

Som nämnts ovan är avbrottsintervallet 2 ms, vilket motsvarar indikatorns uppdateringsfrekvens på 64 Hz och dess glöd är ganska behagligt för ögat.

Denna DI-metod gjorde det bland annat möjligt att halvera antalet strömbegränsande motstånd (R2-R5).

Enheten är monterad på en så kallad "lödfri" brödbräda.

Indikatorn kan bytas ut mot vilken som helst av 3641A-serien.

Kretsen drivs av en stabiliserad källa på 5 V. Jag använde en speciell stabilisatorbräda avsedd för användning med brödbrädan som nämns ovan.

MK-styrprogrammet är skrivet på C-språk och översatt i miljön.

Kod i MikroC, projekt, HEX-fil i applikationen.

För att använda denna anslutningsmetod i kommersiell utveckling, vänligen kontakta mig.

Lista över radioelement

Beteckning Typ Valör Kvantitet NoteraaffärMitt anteckningsblock
DD1 MK PIC 8-bitars

PIC12F629

1 Till anteckningsblock
DD2 Registrera74HC5951 Till anteckningsblock
H.L. IndikatorFYQ36411 Till anteckningsblock
R1 Motstånd

30 kOhm

1 Till anteckningsblock
R2 Motstånd

430 Ohm

1 Till anteckningsblock
R3 Motstånd

430 Ohm

1

Fig.1 Placering av LED-indikatorsegment

LED-indikatorer är det enklaste sättet att visa symbolisk information. Deras design är en uppsättning lysdioder gjorda i form av segment av en viss form. Figur 1 visar den vanligaste segmentlayouten, som låter dig visa siffrorna 0...9 och många andra ytterligare tecken. Inuti höljet har alla lysdioder en gemensam anslutningspunkt. Integrerade tillsammans kan vara anoder (gemensam anod) eller katoder (gemensam katod). De vanligaste glödfärgerna är rött och grönt. Med lika strömförbrukning har röda lysdioder som regel större ljuseffekt. Energiförbrukningen beror på matningsspänning och tillverkningsteknik. Segmentströmmen för moderna indikatorer kan vara mindre än 1 mA.


Fig.2 Anslutning av indikator för dynamisk indikering

För att markera den önskade symbolen på indikatorn måste du använda 8 stift på mikrokontrollern. En rad kan sparas genom att ta bort H-segmentet när det inte är nödvändigt att visa en punkt (komma). Med ett större antal indikatorer som används kommer antalet I/O-linjer att öka avsevärt. Två indikatorer kräver 16 rader, 3 indikatorer kräver 24 osv. För de flesta tillämpningar är en sådan slösaktig användning av stift helt oacceptabelt. Detta problem kan lösas genom att använda dynamisk display. För att göra detta, istället för att direkt ansluta segmenten till mikrokontrollern, kombineras de i gemensamma grupper, som visas i fig. 2. Kretsen använder en TOT-3361AH-LN-indikator för 3 bekanta platser med gemensamma katoder. Port D används för att styra lysdioderna för segment A...H. Katoderna K0...K2 är direkt anslutna till ledningarna 0...2 i port B, respektive (för indikatorer av andra typer med en total ström på ≥20 mA kommer ytterligare buffertelement att behövas). I början visas symbolen som motsvarar nollbekantheten på indikatorn. I det här fallet är spänningsnivån inställd på låg på linje PB0 och hög på PB1 och PB2 (annars kommer symbolen att visas i alla tre positioner). Efter en viss tid matas nästa symbol i ordningen ut och nu är katoden K1 ansluten till jord (det finns en låg nivå på PB1-linjen, en hög nivå på PB0 och PB2). Därefter visas informationen i indikatorns högsta position (vid PB2 log.0, vid PB0, PB1 log.1), sedan igen vid noll, etc. Vid teckenuppdateringshastigheter ≥ 50 Hz börjar trögheten hos mänsklig syn uppträda. Flimrandet (växlingseffekten) försvinner. Bilden uppfattas kontinuerligt, som om alla symboler ständigt är upplysta. Ett exempel på en dynamisk visningssubrutin ges nedan. Det krävs två parametrar: teckenkoden och positionsnumret där detta tecken ska visas.

; Eftersom indikatorn innehåller 3 bekanta platser, är subrutinen; teckenutgång måste anropas med en frekvens ≥ 150 Hz (3 ; förtrogenhet x 50 Hz = 150 Hz). Bytesperioden bör; vara 1/150 Hz = 6667 μs, vilket är vid en frekvens på 1 MHz för AVR; kommer att vara 6667 cykler av generatorns klockfrekvens. Permanent; Det är mest bekvämt att mäta tidsintervall med en löptimer; i tillfällighetsåterställningsläge (CTC-läge). ATmega8 har detta; läge finns för 16-bitars timer-räknare 1 och 8-; bit timer-räknare 2. För dessa ändamål (vid användning av timer-räknare 1) finns det två register; RVV-mellanslag: OCR1AH ​​(hög byte), OCR1AL (låg byte). ; När jämförelsekretsen är aktiverad kommer räkneregistret; TCNT1H:TCNT1L startar efter varje inkommande puls på; enhet öka dess innehåll tills det; värdet är inte lika med det inskrivna värdet; OCR1AH:OCR1AL. För närvarande innehållet i TCNT1H:TCNT1L ; återställs och OCF1A-flaggan sätts i TIMSK RV. Om; förinställ OCIE1A-biten i TIMSK och I-biten i SREG, ; då kommer det att ske en övergång till avbrottshanteraren av en slump; från jämförelsemodul A. Timerräknare 1 finns också; även en andra liknande modul för att jämföra B med register; jämförelser OCR1BH:OCR1BL vars funktion är liknande; beskrivs ovan. .def data = R16 ;register med symbolen code.def pos = R17 ;register med numret på den aktuella indikatorpositionen.def temp = R18 ;register för mellanliggande operationer.dseg .org SRAM_START ;celler i SRAM för visningsbuffert: . byte 3 ;on indicator.cseg .org 0 rjmp initial ;start program.org 0x0006 ;avbrottshanterare för rjmp service_T1COMPA ;match från jämförelsemodul A ; Avbrottsperiod i CTC-läge: T=(OCR1AH:OCR1AL+1) ; /(Fclk/N), där N är prescaler divisionskoefficienten; frekvens vid ingången till timer-räknare 1. Driftläget är inställt; bitar WGM13:WGM10 (WGM10 och WGM11 i kontroll RV TCCR1A, ; WGM12 och WGM13 i TCCR1B), och värdet N specificeras av bitar; CS12:CS10 i register TCCR1A. För period T = 6667 μs; (WGM13:WGM10 = 0100 – klipp CTC), N =1(CS12:CS10 = 001 – ; förskalare inaktiverad) och Fclk=1 MHz – innehållet i OCR1AH:OCR1AL ; = 6667. .org 0x0020 initial: ldi temp,high(RAMEND) ;stackinitiering ut SPH,temp ldi temp,låg(RAMEND) ut SPL,temp . clr pos clr temp ldi temp,1 ;fyll displaybufferten med nummer 1...3 m buffert, temp ldi temp, 2 m buffert+1, temp ldi temp, 3 m buffert+2, temp ut TCCR1A, temp ldi temp ,(1<< WGM12)|(1<< CS10) out TCCR1B,temp ldi temp,high(6667) out OCR1AH,temp ldi temp,low(6667) out OCR1AL,temp ldi temp,1<< OCIE1A out TIMSK,temp sei . service_T1COMPA: ;обработчик прерывания по совпадению OCR1A in temp,SREG ;при входе сохраняем в стеке push temp ;регистры temp, SREG clr temp ldi YH,high(buffer) ;заносим в указатель Y адрес ldi YL,low(buffer) ;буфера индикации buffer add YL,pos ;добавляем к Y смещение, что соответствует adc YH,temp ;ячейке с текущей позицией pos индикатора ld data,Y ;заносим в data кодом символа текущей позиции rcall din_ind ;вызов подпрограммы индикации inc pos ;циклически изменяем номер позиции cpi pos,3 ;индикатора 0->1->2->0, etc. brne PC+2 clr pos pop temp ;vid utgång, återställ från stack out SREG,temp ;registrerar temp, SREG reti ; Subrutin för dynamisk visning; ZH:ZL – index för tabellomvandling; R18 – register för mellanliggande operationer; R16 – teckennummer i konverteringstabellen ind_tabl; när du går in i en subrutin; R17 – positionsnummer vid inmatning av subrutinen (0…2); T-flaggan vid ingången till subrutinen bestämmer; närvaro (T=1) eller frånvaro (T=0) av ett komma din_ind: clr R18 ;rensa hjälpregistret vid ingången ldi ZH,high(2*ind_tabl); ange startadressen för ldi ZL,low(2*ind_tabl) ) i Z-indexet; teckenkonverteringstabeller lägger till ZL,R16 ;lägg till Z-pekaren en offset, adc ZH,R18 ;motsvarande symbolens position i tabellen lpm R16,Z ;extrahera symbolen bld R16,7 från tabellen i R16;skriv in värdet i den mest signifikanta biten av R16 (segment H) clt ;komma, som sänds genom flaggan T ldi R18,0b11111110 sbrc R17,0 ;om den aktuella siffran är 1, så lägger vi in R18 masken ldi R18,0b11111101 ;port B för att slå på katoden K1 sbrc R17,1 ;om den aktuella siffran är 2, lägg sedan i R18 masken ldi R18,0b11111011 ;port B för att slå på katoden K2 tryck R17 ; spara på stacken registret med positionsnumret i R17,PORTB;läs in i bufferten R17 portens nuvarande tillstånd eller R17,0b00000111 och R18,R17 ut PORTB,R17, släck alla segment genom att applicera log.1 till K0. ..K2 ut PORTD,R16; mata ut nästa symbol ut PORTB, R18 till port D; anslut nästa katodpop R17 till jord; återställ registret med positionsnumret från stacken ret ind_tabl:; tabell över några symboler med en gemensam katod; HGFEDCBA HGFEDCBA tecken nummer i table.db 0b00111111, 0b00000110 ; 0,1 0, 1 .db 0b01011011, 0b01001111; 2,3 2, 3 .db 0b01100110, 0b01101101; 4,5 4, 5 .db 0b01111101, 0b00000111; 6,7 6, 7 .db 0b01111111, 0b01101111; 8,9 8, 9 .db 0b01110111, 0b01111100; A,b 10, 11 .db 0b01011110, 0b01011110; C,d 12, 13 .db 0b01111001, 0b01110001; E,F 14, 15 .db 0b01000000, 0b00000000; -,mellanslag 16, 17

AVR:s I/O-portlinjer har symmetriska belastningsegenskaper. De tillåter lika in- och utströmmar upp till 20 mA. Därför kan indikatorer med både en gemensam anod och en gemensam katod användas med lika stor framgång. Dessutom utför stift för att ansluta segment mycket ofta ytterligare funktioner för pollingknappar. I fig. 2, till exempel, är SBN-knappen ansluten till linjen för segment A genom det strömbegränsande motståndet RN. Periodvis konfigureras PD0 som en ingång för att läsa knappens status. I detta fall fungerar det interna pull-up-motståndet som ett belastningsmotstånd.


Fig.3 Minska antalet mikrokontrollerstift
a - med hjälp av ett skiftregister
b - använda indikatorer med olika LED-anslutningsmönster

Antalet stift kan reduceras avsevärt om hjälpmikrokretsar används tillsammans med mikrokontrollern. Figur 3a visar till exempel hur ett 74HC164 skiftregister eller liknande används för detta ändamål. Denna anslutning frigör 6 I/O-linjer. I vissa fall kan det vara motiverat att använda sjusegmentskodavkodare och räknare av olika slag. Dessutom finns det ytterligare en möjlighet att spara baserad på användningen av z-state portlinjer. Kretsen i fig. 3b liknar kretsen i fig. 2, med det enda undantaget att en tresiffrig indikator med en gemensam anod HG2 dessutom är parallellkopplad med indikatorn med en gemensam katod HG1. Linjerna PB0...PB2 utför samtidigt omkoppling av anoderna A0...A2 på HG2-indikatorn respektive katoderna K0...K2 hos HG1. När information visas vid nollpositionen för HG2 (anod A0), genereras en hög spänningsnivå på ledningen PB0. På linjerna för port D ställs log.0 i de segment som måste belysas och z-tillstånd i de segment som måste släckas. När det lägsta tecknet HG1 (katod K0) är aktivt måste en låg spänningsnivå finnas på ledningen PB0, och ett logiskt värde matas ut till port D där den logiska 1-nivån på ledningarna motsvarar upplysta segment och z-tillståndet att släckas. Om tecken matas ut till andra indikatorpositioner än A0 och K0, måste PB0 kopplas om till ett högimpedansläge. Naturligtvis kommer utgångsprogrammet med ett sådant omkopplingsschema att vara märkbart mer komplicerat än det som visas i fig. Symboltabellen kommer att visa sig vara mycket större eftersom det för det första är nödvändigt för var och en av dem, förutom PORTD-värdet, kommer det också att vara nödvändigt att lagra innehållet i DDRD-registret, genom vilket motsvarande rader måste vara överförs till z-tillståndet (inställt för inmatning). Och för det andra kommer symbolerna för HG1 att motsvara andra, omvända PORTD-värden i förhållande till indikatorn med en gemensam katod HG2.