Super kondensator ficklampan med anpassade laddare och spänning Booster (4 / 7 steg)
Steg 4: Programvaran
http://www.electroniclessons.com/Capcharger.txt
Jag har dock den huvudsakliga källa koden kommenteras nedan så att du kan följa med lätthet =) jag använde min trogna MPLAB ICD2 PIC programmerare för att programmera min bild. Du behöver inte detta programmerare specifikt, men du kommer att kräva en av de 1000-tals PIC programmerare som finns där ute. PIC ICD2 kan köpas via http://www.microchip.com. Du kan också google MPLAB ICD2, och du kommer sannolikt att kunna hitta några erbjudanden. Det är mycket lätt att använda, och du kan använda någon av min källa koder genom att kopiera och klistra in mallarna i jag i min instructables.
Här är kommenterade huvudsakliga källkoden:
***
INITIERA
MOVLW B "1001"; GPIO0 = ADC ingång / GPIO1 = relä aktivera Output / GPIO2 = LED indikator utgång
TRIS GPIO; INITIERA
MOVLW B '01000000'; Set-up analog jag / p konfiguration
MOVWF ADCON0; INITIERA
CLRF GPIO; Rensa alla utgångar (satt till 0v)
MOVLW B '00001000'; Aktivera GPIO2 som en digital i/o
ALTERNATIV. INITIERA
KALLA LOOP3; Ring kort fördröjning
START:
RING FLIMMER; Blinka grön LED tre gånger som indikator
BSF GPIO, 1; Aktivera relä
KALLA LOOP3; Ställ in sex korta förseningar innan skanning (mindre än 400 millisekunder)
KALLA LOOP3
KALLA LOOP3
KALLA LOOP3
KALLA LOOP3
KALLA LOOP3
SKANNING:
MOVLW B '01000001'; Ställ in ADC
MOVWF ADCON0; INITIERA
BSF ADCON0, GO; Ta en ADC läsning
WAITADC:
BTFSC ADCON0, GO; Enkät för behandlingen att slutföra
GÅ TILL WAITADC; Om inte gjort, hålla röstningen
MOVLW B '10000111'; Placera 87H i jämför register (när ADC prov når detta värde, kondensator bank debiteras)
SUBWF ADRES, C; Jämföra instruktion
BTFSC STATUS, C; om ADC läsa mer än 87H, har laddning slutförts.
GÅ TILL NÄSTA; Om laddningen är klar, gå till nästa rutin.
GÅ TILL SCAN; Om inte, ta ett nytt prov
NÄSTA:
RING FLIMMER; Flimmer LED tre gånger
KALLA LOOP3; Ställ in fyra korta förseningar
KALLA LOOP3
KALLA LOOP3
KALLA LOOP3
GÅ TILL NÄSTA; Loop nästa instruktion tills power kopplas
; LOOP3/4 arbete tillsammans som en lång fördröjning rutin
LOOP3:
MOVLW 0X00
MOVWF TEMP1
MOVLW 0XF0
MOVWF TEMP2
LOOP4:
DECFSZ TEMP1
GÅ TILL LOOP4
DECFSZ TEMP2
GÅ TILL LOOP4
RETURNERA
SLUTET
***