Stap 4: Software
Hieronder vindt u de link van de software. Terwijl het wordt gericht voor de 12F683, is het eenvoudig geport naar grotere versies van de PIC. Meestal vereist het te wijzigen in namen, zoals TRISIO TRISA, en GPIO naar PORTA. U zult ook moeten veranderen de regel waarmee de PIC-versie (lijst =) en het INCLUDE-bestand, maar die zijn intuïtieve veranderingen. De __CONFIG lijn wellicht ook tweaken alleen maar omdat een of twee van de gebruikte etiketten zijn anders gespeld in sommige van de INCLUDE-bestanden. Zorg enkel ervoor dat de foto die u een PIN-code waarmee een externe Interrupt invoer heeft (meestal het label EXT of INT). Zoals we hebben gezien voordat, de 16F688 (14-pins PIC) kan worden gebruikt met de dezelfde fysieke pin-verbindingen als de 12F683 als u meer I/O pinnen wilt.
De monster-software is vrij eenvoudig en is ingesteld om te onderbreken op de dalende randen van de CLK-lijn. De interrupt handler controleert de status van de DT-regel om te bepalen van de draairichting van de schacht en een eenvoudige teller aan deze wijzigingen aangepast. Gezien het feit dat de software in het volgende voorbeeld is het gebruik van slechts één 8-bits geheugenlocatie voor de teller, wordt het bereik loopt van +127 naar-128. De teller is niet opgeslagen in EEPROM, zodat het zal altijd weer op nul gezet wanneer de stroom wordt ingeschakeld. De schakelaar schakelt de staat telkens wanneer die deze wordt ingedrukt. Het is geïnitialiseerd "off". De status van de teller en de status van de schakelaar worden weergegeven op het LCD-scherm.
De roterende schakelaar kunt u elke klik voelen als deze ingeschakeld zodat je verwachten zou te zien van de telling van de weergave wijzigen met elke klik. In werkelijkheid, omdat de software alleen op de dalende rand van de CLK-lijn onderbroken is, verandert de telling elke tweede klik. Het is de stijgende rand van de CLK-lijn tussen Klik wanneer draaien in de richting van de klok. Wanneer gaan linksom dat dezelfde rand de dalende rand wordt. Door de as heen en weer door middel van een muisklik punt net te verplaatsen, kunt u dat effect zien.