Stap 5: Monteren de code.
De code is in wezen het bepalen wanneer iemand het wiel heeft gedraaid en doet vervolgens randdetectie op het signaal (laag-hoog overgangen bepalen) tot de wijzerplaat terugdeinst in de oorspronkelijke toestand. Na leverde het aantal keren dat het meet de overgang van een signaal, knippert het dan de LED dienovereenkomstig.
Bijvoorbeeld, als u een nummer 3, zal de PIC tellen drie laag-hoog overgangen en vervolgens knipperen een LED 3 keer.
De LED, zoals u kan hebben geconcludeerd, is niet nodig voor dit om te werken en is er gewoon u zichtbaar om feedback te geven. U kunt vervangen door een uitvoerapparaat dat u nodig achten.
*********************
Hier is wat code:
*********************
CPU = 16F877
MHZ = 20
CONFIG 16254
Clicker var woord
startcountin var woord
countclicks var woord
repvar var woord
clacker var woord
largefig var woord
belangrijkste:
countclicks = 0
repvar = 0
' sets/resets waarden
hoge B2
rctime B2, 1, startcountin
countclicks = 0
Als startcountin > 10 dan goto countmeup
' gecontroleerd als wijzerplaat is ingeschakeld en naar de subroutine gaat als er
goto belangrijkste
'================
countmeup:
hoge B1
rctime B1, 1, clacker
' sets waarde vergelijken
goto countmeuploop
'================
countmeuploop:
hoge B1
rctime B1, 1, clicker
' controles tellen waarde
largefig = clacker + 100
' Hiermee stelt u een waarde voor de drempel die grotere zullen
' 0 of meer doch minder dan mogelijke pin-hoge waarden
Als largefig < clicker vervolgens
countclicks = countclicks + 1
endif
' 1 meerwaarde telkens een lage tot hoge overgang is opgenomen
hoge B2
rctime B2, 1, startcountin
Als startcountin < 10 vervolgens
Als countclicks > 0 then
goto knipperen
anders
goto belangrijkste
endif
endif
' controles om te zien als het wiel heeft terugdeinsden terug naar de oorspronkelijke toestand
' als er een nummer is gekozen gaat het naar de LED-routine
' anders, als geen nummer is gekozen het gaat tot belangrijkste
clacker = clicker
' de vergelijkingswaarde opnieuw in op de huidige waarde van de pin
goto countmeuploop
' geen rust AT alle in deze routine!
'================
Blinker:
repvar = repvar + 1
' telt elke herhaling van deze routine
hoge B3
onderbreken van 1000
lage B3
onderbreken van 1000
' de LED knippert
Als repvar = countclicks then
repvar = 0
goto belangrijkste
endif
' als de herhalingen gelijk aan het aantal keren dat de LED moet knipperen
' dan gaat het terug naar de belangrijkste routine
goto blinker