Enkel Sequencer (9 / 16 steg)
Steg 9: Programmera chip
CPU = 16F877
MHZ = 20
CONFIG = 16254
SI con A0
SCK con A1
RCK con A2
Abit var byte(9)
nDur var word(8)
nP var word(8)
räknaren var byte
SättVärde var byte
noteDuration var ordet
notePause var ordet
"flytta registret adress bitar
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
"längd array pins
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 array pins
nP(0) = B0
nP(1) = B1
nP(2) = B2
nP(3) = B3
nP(4) = B4
nP(5) = B5
nP(6) = B6
nP(7) = B7
räknare = 0
SättVärde = % 00000000
viktigaste:
för counter = 0-7
HÖG nDur(counter)
paus 1
RCTIME nDur (counter), 1, noteDuration
SättVärde = abit(counter)
GOSUB out595
Pausa noteDuration
HÖG nP(counter)
paus 1
RCTIME nP (counter), 1, notePause
SättVärde = abit(8)
GOSUB out595
Pausa notePause * 3
Nästa
räknare = 0
gå till största
out595:
SHIFTOUT SI, SCK, LSBPRE, [setValue\8]
pulsout RCK, 8
Returnera