Étape 6: réflexions finales : ses plus
J’ai avez fourni le code source sous licence GPL, mais si vous juger utile et souhaitez contribuer à mon fonds de composants puis veuillez envoyer le paiement Paypal de 3 £ pour mandoline
S’amuser et joyeux Noël !
-A
code source commence ici...
P = 10f200 la liste
; V0.01 systématique de fader/clignotement LED
; Rédigé par Andre de Guerin "mandoline
; Registre de W est 0 x 00
; f Registre est 0 x 01
; GPIO 0 à 2 sont sorties
; Notez que ICSP nécessite Vcc externe et n’assume aucune charge sur les broches ICSPCLK/DAT
; Notez que le statut de cadre pour le registre W doit être préservées, utilise 0x1F pour cela
; Notez que j’utilise maintenant une routine de sortie différent pour obtenir 6 sorties à l’aide de 3 broches d’e/s
; Ce code est publié gratuitement sous licence GPL, mais si vous l’aimez et que vous souhaitez
; contribuer au Fonds de composants électroniques de l’auteur s’il vous plaît envoyer le paiement Paypal de £3:)
Initialement écrit comme preuve de concept pour la série 10F20x
; Merci encore à Quasar Electronics pour leur programmeur K182 et MicroBrn, et
; leur personnel de soutien technique extrêmement utile.
; Disposition de circuit:-paires de LED avec une polarité inverse entre chaque combinaison de sorties
; Peut réduire le nombre d’interconnexions en y branchant les LED par paires de série
; c.-à-d.---0-AK-0-AK-0-AK---to début, où 0 y lignes GPIO.
GPIO EQU H « 0006 »; définir GPIO
TMR0 EQU H « 0001 »; définir TMR0
OSCCAL EQU H « 0005 »; définit OSCCAL
BCF OSCCAL, 0; permet GPIO 0 * IMPORTANT *
clrwdt ; clairière essentielle de WDT avant changement de diviseur
démarrage movlw b « 11000100 » ; Aucun sillage sur l’évolution du code pin,
; N’ups de traction, ignorer la minuterie
; Activez le ratio 256:1 sur TMR0 Prédiviseur
option
movlw b « 11001000 »; tous sauf GPIO 3 sont sorties
Tris GPIO
movlw b « 00100100 »
movwf 0 x 10
movlw b « 10010010 »
movwf 0 x 11 ; Remarque, moins enregistreuses sur 10f200
movlw b « 01001001 »
movwf 0 x 12
movlw b « 10010010 »
movwf 0 x 13
movlw b « 01001001 »
movwf 0 x 14
movlw b « 00100100 »
movwf 0 x 15
movlw b « 10010010 »
movwf 0 x 16
movlw b « 01001001 »
movwf 0 x 17
movlw b « 00100100 »; peut avoir un bug dans le registre de routine, mais les œuvres atm
movwf 0 x 18
movlw b « 00010001 »
movwf 0 x 19
movlw b « 10001000 »
movwf 0x1A
movlw b « 01000100 »; génère l’effet de scintillement
movwf 0x1B
movlw b « 00100100 »
movwf 0x1C
movlw b « 10010010 »
movwf 0x1D
movlw b « 01001001 »
movwf 0x1E
movlw b « 11001000 »; tous sauf GPIO 3 sont sorties
Tris GPIO
Goto boucle ; saut inconditionnel à boucle
btfss TMR0, 7; en boucle met en place des sorties afin que seuls les changements d’État sur tmr0 timeout (11111100)
Goto boucle ; effectivement utilisations TMR0 comme une boucle de retard
btfss TMR0, 6
Goto boucle
btfsc TMR0, 5
Maj de Goto
Maj movlw b « 00000000 »; réinitialise TMR0 valeur initiale
movwf TMR0
RLF 0 x 10, f ; Effectuer la MAJ, même si un seul registre est redondant
RLF 0 x 11, f
RLF 0 x 12, f; utilise tous les registres disponibles en ligne à retard
RLF 0 x 13, f
RLF 0 x 14, f
RLF 0 x 15, f; registres utilisables sont 0 x 10 à 0x1E seulement
RLF 0 x 16, f
RLF 0 x 17, f
RLF 0 x 18, f
RLF 0 x 19, f
RLF 0x1A, f
RLF 0x1B, f
RLF 0x1C, f
RLF 0x1D, f
RLF 0x1E, f
movlw b « 11001000 »
btfsc 0 x 10, 3; sortie routine
BSF 0 x 00, 0; permet GPIO bit 0
btfsc 0 x 12, 3
BSF 0 x 00, 1; permet GPIO bit 1
btfsc 0 x 14, 3
BSF 0 x 00, 2; bit GPIO permet 2
Tris GPIO ; déplace l’état actuel du W à GPIO
btfsc 0 x 10, 7
BSF GPIO, 0
btfss 0 x 10, 7; bit essais 0 x 10 7
BCF GPIO, 0; efface GPIO si 0 x 10 bit 7 clear
btfsc 0 x 15, 7
BSF GPIO, 1
btfss 0 x 15, 7
BCF GPIO, 1; Ceci est fait en raison de la double sortie
btfsc 0x1A, 2
BSF GPIO, 2
btfss 0x1A, 2
BCF GPIO, 2; se détache de TRIS de GPIO État si efficacement 3 « sorties »
Reg bsf 0x1F, 7 ; Définit le bit 1E 8 à F
btfss 0 x 10, 0 ; Teste si le bit 0 x 10 0 est 0
BCF 0x1F, 7 ; Efface la 1E bit 8 si pas
Goto boucle
FIN
code hexadécimal commence ici:-
: 020000040000FA
: 1000000005040400C40C0200C80C0600240C3000D7
: 10001000920C3100490C3200920C3300490C340030
: 10002000240C3500920C3600490C3700240C3800A3
: 10003000110C3900880C3A00440C3B00240C3C00A5
: 10004000920C3D00490C3E00C80C0600270AE1074F
: 10005000270AC107270AA1062D0A000C21007003F8
: D 1000600071037203730374037503760377037803 4
: 1000700079037A037B037C037D037E03C80C70063F
: 10008000000572062005740640050600F006060508
: 10009000F0070604F5062605F50726045A06460568
: 0C00A0005A074604FF051007FF04270A5A
: 00000001FF