Kul med PIC församling - episod 24 (4 / 5 steg)
Steg 4: programvara
Programvaran länk nedan. Medan det är måltavlan för 12F683, är det lätt portas till större versioner av bilden. Det kräver oftast ändra namn som TRISIO till TRISA och GPIO att PORTA. Du måste också ändra raden som identifierar den PIC versionen (lista =) och INCLUDE-filen men de är intuitivt förändringar. Den __CONFIG linjen kan också behöva tweaking bara för att en eller två av de etiketter som används är stavat fel i några av inkluderade filer. Se bara till att PIC du använder har en PIN-kod som gör att externa avbryta indata (vanligtvis märkt EXT eller INT). Som vi sett tidigare, 16F688 (14-polig PIC) kan användas med samma fysiska pin anslutningar som 12F683 om du vill ha mer I/O pins.
Prov mjukvaran är söt uppriktig och är inställd att avbryta på raden CLK fallande kanter. Avbrottshanterare kontrollerar status för DT linjen för att bestämma riktningen för axeln rotation och uppdateras en enkel räknare därmed. Med tanke på att exempel programvaran använder bara en 8-bitars minnesplats för räknaren, är spänna från + 127 till nummer -128. Disken har inte sparats i EEPROM så kommer det alltid att återställa till noll när strömmen slås på. Växeln att växla sitt tillstånd varje gång det trycks. Det har initierats för att "off". Status för räknaren och status för växeln visas på LCD-skärmen.
Rotary switch kan du känna varje klick när den är aktiverad så att du kan förvänta dig att se Visa antal förändras med varje klick. I verkligheten, eftersom programvaran avbryts endast på fallande kanten av raden CLK ändras räkningen varje andra klick. Den mellan klick är stigande kanten av raden CLK när rotera i den medurs riktningen. När du går moturs att samma kant blir fallande kanten. Du kan se denna effekt genom att bara flytta axeln fram och tillbaka genom ett enda klick.