Paso 9: Programar el chip
CPU = 16F877
MHZ = 20
CONFIG = 16254
Con SI A0
Con SCK A1
Con RCK A2
Abit var byte(9)
nDur var word(8)
nP var word(8)
byte de var contador
Valor var byte
noteDuration var palabra
notePause var palabra
' cambio de bits de la dirección de registro
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
«pernos de matriz de duración
nDur(0) = D0
nDur(1) = D1
nDur(2) = D2
nDur(3) = D3
nDur(4) = D4
nDur(5) = D5
nDur(6) = D6
nDur(7) = D7
' pausa clavijas de gama
nP(0) = B0
nP(1) = B1
nP(2) = B2
nP(3) = B3
nP(4) = B4
nP(5) = B5
nP(6) = B6
nP(7) = B7
Contador = 0
Valor = % 00000000
principal:
para contador = 0 a 7
NDur(counter) alta
pausa 1
RCTIME nDur (contador), 1, noteDuration
Valor = abit(counter)
GoSub out595
pausa noteDuration
NP(counter) alta
pausa 1
RCTIME nP (contador), 1, notePause
Valor = abit(8)
GoSub out595
pausa notePause * 3
siguiente
Contador = 0
Goto principal
out595:
SHIFTOUT SI, SCK, LSBPRE, [setValue\8]
pulsout RCK, 8
Volver