Étape 9: Programmer la puce
CPU = 16F877
MHZ = 20
CONFIG = 16254
Con SI A0
SCK con A1
RCK con A2
Abit var byte(9)
nDur var word(8)
nP var word(8)
octet de var Counter
setValue var octets
noteDuration var mot
notePause var mot
« décaler des bits d’adresse Registre
Abit(0) = % 10000000
Abit(1) = % 01000000
Abit(2) = % 00100000
Abit(3) = % 00010000
Abit(4) = % 00001000
Abit(5) = % 00000100
Abit(6) = % 00000010
Abit(7) = % 00000001
Abit(8) = % 00000000
' pins tableau de durée
nDur(0) = D0
nDur(1) = D1
nDur(2) = D2
nDur(3) = D3
nDur(4) = D4
nDur(5) = D5
nDur(6) = D6
nDur(7) = D7
"suspendre les goupilles de tableau
nP(0) = B0
nP(1) = B1
nP(2) = B2
nP(3) = B3
nP(4) = B4
nP(5) = B5
nP(6) = B6
nP(7) = B7
compteur = 0
setValue = % 00000000
principal :
for compteur = 0 à 7
HAUTE nDur(counter)
faire une pause 1
RCTIME nDur (compteur), 1, noteDuration
setValue = abit(counter)
GoSub out595
pause noteDuration
HAUTE nP(counter)
faire une pause 1
RCTIME nP (compteur), 1, notePause
setValue = abit(8)
GoSub out595
faire une pause notePause * 3
prochaine
compteur = 0
Goto principal
out595 :
SHIFTOUT SI, SCK, LSBPRE, [setValue\8]
pulsout RCK, 8
Retour