Étape 5: Assembler le code.
Le code consiste essentiellement à déterminer quand quelqu'un a tourné la molette et puis fait détection du signal (détermination des transitions de bas-haut) jusqu'à ce que le recul de cadran à son état initial. Après le décompte du nombre de fois qu'il mesure une transition de signal, il puis clignote la LED en conséquence.
Par exemple, si vous composez 3, le commandant de bord comptera trois transitions de bas-haut et puis clignoter une LED 3 fois.
La LED, que vous avez peut-être déduit, n’est pas nécessaire pour que cela fonctionne et est juste là pour vous donner des commentaires visibles. Vous pouvez remplacer n’importe quel périphérique de sortie que vous jugez nécessaires.
*********************
Voici un code :
*********************
CPU = 16F877
MHZ = 20
CONFIG 16254
mot de var clicker
startcountin var mot
countclicks var mot
repvar var mot
mot de clacker var
largefig var mot
principal :
countclicks = 0
repvar = 0
"active/désactive les valeurs
haute B2
rctime B2, 1, startcountin
countclicks = 0
Si startcountin > 10 puis goto countmeup
' vérifie si le cadran a été transformée et va à la sous-routine s’il a
Goto principal
'================
countmeup :
haute B1
rctime B1, 1, clacker
« Jeux de compare la valeur
Goto countmeuploop
'================
countmeuploop :
haute B1
rctime B1, 1, clicker
' valeur de comptage des contrôles
largefig = clacker + 100
' définit une valeur pour le seuil qui sera plus grand
« à 0 mais moins que les valeurs possibles de broche-haut
Si largefig < puis clicker
countclicks = countclicks + 1
endif
' ajoute 1 valeur chaque fois qu’un faible à élevée transition est enregistré
haute B2
rctime B2, 1, startcountin
Si startcountin < 10 puis
Si countclicks > 0 then
Goto clin
d’autre
Goto principal
endif
endif
' vérifie si le cadran a reculé de nouveau à son état initial
"si elle a un numéro a été composé, il va à la routine de LED
« dans le cas contraire, si aucun numéro a été composé, il va au principal
clacker = clicker
"réinitialise la valeur de comparaison à la valeur actuelle de la broche
Goto countmeuploop
' ne s’arrête à tous dans cette routine !
'================
feu clignotant :
repvar = repvar + 1
' compte chaque répétition de cette routine
haute B3
faire une pause 1000
faible B3
faire une pause 1000
« clignote la LED
Si repvar = countclicks then
repvar = 0
Goto principal
endif
"si les répétitions égal au nombre de fois que la LED devrait clignoter
« puis il va revenir à la routine principale
feu clignotant Goto