PURPIC, de draagbare PICkit2-kloon (5 / 9 stap)

Stap 5: PIC 12F508 geannoteerde broncode; Als iemand een probleem monteren heeft zoals gepost, gelieve te becommentariëren

lijst van p = 12F508; lijst richtlijn processor definiëren
#include; specifieke variabele definities van processor

__CONFIG _MCLRE_OFF, _CP_ON, _WDT_OFF & _IntRC_OSC

; '__CONFIG' richtlijn wordt gebruikt om configuratie word binnen .CATPart bestand insluiten.
; De lables na de richtlijn bevinden zich in de respectieve Inc-bestand.
; Zie de respectieve data sheet voor meer informatie over configuratie word.

; *** VARIABELE DEFINITIES
cblock 07h
qw1
qw2
Temp
test
teller
counter2
on_counter
off_counter
endc

; PINOUT
; pin 1 is macht
; pin 8 is grond
; pin 5 is niet aangesloten
knop equ 3; pin 4, naar de knop. interne pullup is ingesteld
uitgang equ 4; pin 3, aan de P-FET; Er is geen interne pullup op deze pin.
Ik moet heb een fysieke pullup op de P-FET-poort,
; in het geval de PIC moesten brownout of anders storing.
LED equ 1; pin 6, Hallo = aan, Lo = off
LBI equ 5; pin 2, lage batterij indicator output van de LT1308 gaat hier.
Als u de biasing weerstanden op 825K en 67K instelt
; het setpoint is 2.9V. Zie LT1308 gegevensblad voor de details.
; deze pin ook beschikt niet over een interne pullup. Ik herinner me om dit op de pcb. :)

;**********************************************************************
ORG 0X3FF; Processor resetten vector

; Interne RC kalibratie waarde wordt door Microchip geplaatst op de locatie 0x3FF
; Als een movlw k, waar de k een letterlijke waarde.

ORG 0X000; codering begint hier
movwf OSCCAL; Update inschrijven bij fabriek cal waarde

initialiseren
movlw b "00000000"
; 7:lo_enable wakker; 6:lo_enable zwak pullups; 5:lo_timer klokbron is interne
; 4:hi_timer klokbron ingeschakeld op dalende rand; 3:lo_prescaler Selecteer timer (vs WDT)
2-0:prescaler (p22)
optie

Start
oproep duidelijk; instellen tristate en output van I/O pinnen naar standaard/OFF staat
btfss GPIO, knop; status van de knop controleren
goto op; als ingedrukt, goto op
slaap; zoniet, goto slaap
NOP
Op
BSF GPIO, LED, LED inschakelen
BCF GPIO, uitgang; P-FET inschakelen
Bel DD; vertraging Debounce
btfss GPIO, knop; knopstatus controleren
goto $-1; wachten tot het wordt vrijgegeven voordat u verdergaat met de hoofdlus
oproep DD
lus
btfss GPIO, LBI; deze controles de lage batterij-Indicator
goto LB_shutdown; als laag, trok vervolgens goto lage batterij afsluiten

btfsc GPIO, knop; zo lang als de knop niet is ingedrukt, de PIC blijft in "lus".
goto lus
afsluiten; als de knop is ingedrukt, alles uitgeschakeld wordt en de PIC gaat slapen.
; Dit apparaat begint aan het begin van de code als het wakker, FYI
Bel duidelijk zijn;
oproep DD
btfss GPIO, knop
goto $-1
oproep DD
slaap
NOP
; Subroutines;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
wissen
movlw b '101000'
Tris GPIO
movlw b "010000"
movwf GPIO
keren; dit apparaat hoeft eigenlijk niet een "terugkeer" commando.
; Dit is een pseudo-opdracht, die is eigenlijk samengesteld als de opdracht "retlw 0".
; Plaatst die gewoon betekent dat het letterlijke 0 in de W-accumulator wanneer knalt.
DD
movlw.100
movwf qw2
goto dsub.2
DSUB.2
decfsz qw1
goto $-1
decfsz qw2
goto $-3
terugkeer
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
LB_shutdown; Dit is de afsluitprocedure fancy-broek
LB.1
clrf teller
LB.2
btfss GPIO, LBI
goto LB.3
BSF GPIO, LED
goto lus
LB.3
goto $+ 1; slechts enkele extra vertraging
goto $+ 1
goto $+ 1
goto $+ 1
goto $+ 1
goto $+ 1
goto $+ 1
goto $+ 1
decfsz teller, f
goto $+ 2
goto shutdown_kewl
movf teller, w
movwf qw2
movlw b "000010"
xorwf GPIO, f
oproep DLB
movwf temp
decfsz temp, f
goto LB.2
goto afsluiten

DLB; vertraging batterij Routine
btfss GPIO, knop; constant controleren van de status van de knop
retlw.1; als deze wordt ingedrukt, dan onmiddellijk pop met letterlijke.1 in de accumulator,
; zodat we dat weten de knop
; werd ingedrukt en de vertraging was weggegaan vroeg... dus we annuleertekenzwenking vandoor
; de macht in plaats van voortzetting van de fancy pants BLINKIE licht afsluiten routine.
goto $+ 1
decfsz qw1
goto DLB
decfsz qw2
goto DLB
retlw.0

shutdown_kewl; fade-out van de LED, in plaats van enkel het uitschakelen
clrf on_counter
movlw.1
movwf off_counter
shutdown_kewl.1
BSF GPIO, LED
oproep on_delay
BCF GPIO, LED
oproep off_delay
INCF off_counter, f
decfsz on_counter, f
goto shutdown_kewl.1
goto afsluiten
on_delay
movf on_counter, w
movwf qw2
goto vervagen
off_delay
movf off_counter, w
movwf qw2
goto vervagen
vervagen
goto $+ 1
goto $+ 1
goto $+ 1
goto $+ 1
goto $+ 1
goto $+ 1
goto $+ 1
goto $+ 1
goto $+ 1
goto $+ 1
goto $+ 1
goto $+ 1
goto $+ 1
goto $+ 1
goto $+ 1
goto $+ 1
goto $+ 1
goto $+ 1
goto $+ 1
goto $+ 1
goto $+ 1
goto $+ 1
goto $+ 1
goto $+ 1
decfsz qw2, f
goto vervagen
terugkeer

EINDE; richtlijn 'end of programma'

Gerelateerde Artikelen

POV Christmas Tree

POV Christmas Tree

Still don't have een boom voor deze vakantie?, maak je geen zorgen hier heb je een kleine, herbruikbare, opvallende boom voor de behoeften van uw vakantie.Dit project startte als een SMD solderen tutorial voor een cursus die ik in de elektronica, gem
Cellphone FM zender Retrofit

Cellphone FM zender Retrofit

Beschrijving van het toevoegen van een zeer korte afstand zender van de FM-Stereo aan een mobiele telefoon of MP3-speler voor gebruik in een auto.Stap 1: Circuit en bestuur Dit project is complexer dan het lijkt. Uitdagingen zijn storingen van de mob
Het gebruik van een LilyTiny kloon CJMCU / Comment programmeur VN-kloon LilyTiny CJMCU

Het gebruik van een LilyTiny kloon CJMCU / Comment programmeur VN-kloon LilyTiny CJMCU

Dans ce tutoriel nous allons apprendre comment utiliser le CJMCU de la carte kloon Sparkfun LilyTiny basée sur le micro-Comptables ATTiny. Cette carte existe sous deux formaten: compatibel pour breadboard et pour e-textiel. Giet cet artikel, j'ai uti
Draagbare gitaarversterker met vervorming / bas versterker - 9v / LM386 IC

Draagbare gitaarversterker met vervorming / bas versterker - 9v / LM386 IC

dit is een echt eenvoudig draagbare gitaar versterker project u in een middag voltooien kan; met de onderdelen moet u bij de hand.  Ik gebruikte een oude surround sound speaker als mijn behuizing, en de spreker gebruikt.  De eenheid heeft ook 5 Tooni
Aan de slag met BTE13-010 - kloon Arduino Mini

Aan de slag met BTE13-010 - kloon Arduino Mini

Dit is een eenvoudige gids dat je hoe leren zal aan de slag met deze goedkope Arduino mini kloon, die betrekking hebben op alle maatregelen die men doen moet om te laten werken. In principe zijn ze 4...Solderen PIN headers *Bedrading het omhoogCorrec
Draagbare, modulaire elektronica Arduino experimenteurs en reparatie Lab instellen.

Draagbare, modulaire elektronica Arduino experimenteurs en reparatie Lab instellen.

Dit is een modulair, draagbaar lab setup die ik gebruik om te genieten van prototyping en elektronische bouwprojecten met de Arduino. Ik soms overzeese reizen, en dit met mij om mezelf afleiden tijdens de vrije tijd die ik heb. Ik heb gebouwd allerme
Maken van een draagbare barcodescanner met een arduino en een cuecat

Maken van een draagbare barcodescanner met een arduino en een cuecat

rond het begin van de eeuw, was er een bedrijf waarvan bedrijfsmodel opgenomen weggeven van gratis barcodescanners die wedijveren met toetsenborden.    Een relatief eenvoudig mod met deze scanners cuecat verwijderd van de codering en maakte hen gesch
Draagbare Bagh Chal boardgame

Draagbare Bagh Chal boardgame

IntroBagh Chal is een strategische, twee-speler bordspel. Ik raakte geïnteresseerd in het spel, omdat de 2 spelers hebben afzonderlijke doelstellingen, stukken en capaciteiten die vind ik aantrekkelijk.Het ontwerp maakt het spel in een draagbare port
Draagbare kat Scratcher

Draagbare kat Scratcher

Dit is een instructable van het maken van een draagbare scratcher voor uw huisdier.De reden Ik deed dit omdat ik wil mijn meubels vooral de Bank beveiligen door de katten (of honden) krassen en deze instructabl-e uit mijn comfortzone is.Stap 1: De It
Draadloze Hack maakt draagbare platenspeler meer draagbare

Draadloze Hack maakt draagbare platenspeler meer draagbare

Een paar jaar geleden kreeg ik een koele weinig draagbare platenspeler voor xmas. Het is geweldig voor het vervoeren van rond het huis en luisteren naar records, het enige probleem is dat je ergens aan de stekker in het stopcontact moet. Met het weer
Draagbare Snare Drum Cajon

Draagbare Snare Drum Cajon

Aloha! Hier weer om u te voorzien met een ander gemakkelijk instructable. Cajons zijn trommels gemaakt van hout in de vorm van een vak, ze worden gespeeld zittend op hen en vervolgens drummen aan de dunne kant van hout. De Cajon is een ongelooflijk l
Varitone mod op Stratocaster kloon gitaar

Varitone mod op Stratocaster kloon gitaar

dit Instructable is te laten zien hoe ik een mod Varitone gemonteerd op mijn vintage Cruzer Stratocaster kloon. Ik voelde dat dit was de moeite waard als de gitaar speelt goed en heeft een mooie acton en ik zien wilde als ik de Toon zou kunnen verbet
Draagbare workbench

Draagbare workbench

heb ik altijd al mijn spullen tot op de vloer. Dus heb ik besloten om een werkbank. Maar omdat ik niet kon hem in de garage, ik dacht dat ik zou gewoon movabable. Het is heel moeilijk project. Het duurt ongeveer twee dagen te maken. En het is een gro
Draagbare Laptop lader (goedkope en makkelijke)

Draagbare Laptop lader (goedkope en makkelijke)

Laad uw LAPTOP met goedkope 5 volt cellphone batterijpakken! Krijg gekke langdurige macht overal, vliegtuigen, treinen, jungle! Het is ook slechts ongeveer $5 meer dan een reguliere mobiele telefoon oplader. De totale kosten is slechts over $10-$30!U