Az alábbi kapcsolással egy hangfrekvenciás végfok elektronikus készenléti állapotba kapcsolását valamint bekapcsolt állapotban a végfok kivezérlését mutató LED-soros kijelzést valósítom meg. A készenléti és a bekapcsolt állapotok között egy nyomógombbal válthatunk.
A végfok történetesen egy AN17830-as IC-vel készült. Ennek az áramkörnek van egy standby (készenléti mód) kapcsolóbemenete, valamint egy mute (némítás) bemenete. Mindkét bemenet elektronikusan kapcsolja az üzemmódokat, az adatlap szerint a standby bemenetre 0 vagy 5V, a mute bemenetre 0 vagy 3V kapcsolandó. A tapasztalat szerint csak a standby funkciót használva a végkfokon "áthallatszik" a nagyobb bemenő jel, ami zavaró lehet, de ha készenléti állapotban a némítást is aktiváljuk, akkor tényleg csendben van ilyenkor. Amennyiben csak készenléti állapotban akarunk némítani, logikus lenne, hogy a két vezérlőbemenetet párhuzamosan kapcsoljuk, de sajnálatos módon ezek a bemenetek épp ellenfázisban vezérlendőek, így a PIC-en két kimenet lett a célra kialakítva, az egyik közvetlenül, a másik egy ellenállásosztón kb. 3.3V-os értékre leosztva megy az erősítőpanel felé.
Az analóg jelbemeneteken a műveleti erősítőkből látszólag klasszikus invertáló kapcsolások vannak kialakítva, ám ez az egy tápfeszültséges működés és a műveleti erősítő megválasztása miatt a gyakorlatban egy félhullámű egyenirányítóként működik. A CA3260 bemenetei és kimenete is képesek a negatív tápfeszültségen dolgozni, így a negatív félhullámok kb. 5x-ösen felerősítve megjelennek a kimeneten, a pozitív félhullámok helyett a kimenet 0 marad. Egy korábbi kísérletben bebizonyosodott, hogy a CA3260 feszültségkövető üzemmódban is alkalmas lenne a félhullámú egyenirányításra, és bár a katalógusadatok szerint csak -0.5V-ig mehet le a bemenete, a mérések alapján a +/-5V-os tartomány végig használható volt. A "jobb a békesség" jegyében azonban mégis inkább az invertáló kapcsolást választottam, mivel ezzel minden katalógus-határértéken belül marad a közös módusú és az abszolút bemenőfeszültség is a műveleti erősítőkön. Az analóg jelfogadó fokozatok kimenetei a PIC két, analóg bemenetnek konfigurált portlábához csatlakoznak. A soros ellenállások a mérési zaj csökkentése érdekében kerültek a kapcsolásba, ezek nélkül a mért értékek alsó bitjei folyamatosan "zizegtek".
A két LED-sor meghajtását multiplexelve oldottam meg. Így egy kijelölő vezeték, valamint 10 másik portbit kellett az összes LED vezérléséhez. A közös kijelölővezetékre az egyik LED-sor összes anódja, valamint a másik sor összes katódja van kötve. A LED-ek másik lábai párban vannak a 10 portbitre csatlakoztatva, soros áramkorlátozó ellenállásokkal. Ezzel az elrendezéssel elérem, hogy a kijelölő vezeték alacsony állapotában a közös katódos LED-sor ledjei a portbitek 1 állapotával kapcsolhatók be, míg ilyenkor a közös anódos sor LED-jei 0 vagy ellentétes polaritású feszültséget kapnak, így sötétek; a kijelölő vezeték magas állapotában a közös anódos sor LED-jei a portbitek 0 állapotával kapcsolhatók, a másik sor pedig sötét.
A PIC-ben futó program egy pergésmentesítő kódrészlet segítségével érzékeli a nyomógomb megnyomását, aminek hatására egy belső módjelzőt billent át. A módjelző a két lehetséges üzemmódot: a készenléti és az akít módot jelzi a főprogramnak. Készenléti üzemmódban a LED-sorok két legalsó LED-je lassú ütemben, felváltva villognak, a végfok felé "standby on" és "mute on" állapotok kerülnek a megfelelő portbitekre; aktív üzemmódban a két sor legalsó LED-jei folyamatosan világítanak, a sorok efölötti LED-jein a bemenő jel alapján előállított oszlopkijelzés látható.
Az A/D átalakítás Vdd referenciával történik, és az alsó 9 bitet használja. Így tehát a 0-2.5V tartományt mérem, a bemeneti fokozat kb. 5x-ös erősítését figyelembe véve ez (a trimmerpotméterek maximumra állított helyzetében) 500mV-os csúcsértéket jelent.
A csúcsértékmérés a következő elven dolgozik: a bejövő jelből mintát veszek, majd a mintát egy logaritmikus skála alapján besorolom a 0-9 tartományba (azaz, hogy a legalsón kívül még hány LED-nek kell világítania a sorban az adott amplitúdóhoz). Az így kapott értéket összehasonlítom az éppen kijelzett értékkel, és ha kisebb, akkor eldobom. Ha azonban nagyobb, vagy egyenlő, akkor a kijelzést beállítom az aktuális értékre és újraindítom a csúcsértékkijelzés időzítőjének számlálóját. Ha folyamatosan csak a kijelzettnél kisebb értékek jönnek, akkor egy idő után az időzítés lepereg és elkezdem a kijelzett LED-ek számát csökkenteni. A LED-ek számának csökkentésekor szintén egy időzítő segítségével ütemezem a sor visszafutását a 0-ig. A csúcsértékkijelzés időzítése kb. 160ms (azaz egy beütés után eddig látszik a csúcsérték a LED-eken), a sor visszafutásakor a LED-ek kialvása közötti időzítés ennek a negyede. A logaritmikus skála az alábbi feszültségszintekre van kalibrálva (a felső 9 LED): 0dB, -5dB, -10dB, -15dB, -20dB, -25dB, -30dB, -36dB, -42dB.
A végerősítő a beépített kivezérlésjelzővel:
És itt a bemenetválasztó-előerősítő-hangszínszabályozó is: