; Multipin20.asm - 20 leds sur 5 ports d'un 12F675 list R=DEC #include errorlevel -302 __CONFIG h'3F84' ;÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ 3 defin CBLOCK h'40' i, j ENDC ;÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ 4 macro Bank0: macro bcf STATUS, RP0 endm Bank1: macro bsf STATUS, RP0 endm ;÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ 5 org0 ORG 0 ;÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ 8 inits Bank1 ; Saut en banque 1, init. des deux registres pièges ! clrf ANSEL ; Pas d'analogique (GPIO tout numérique) (675 seult) Bank0 ; Saut en banque 0 movlw 7 ; Comparateurs HS (GPIO tout libre) movwf CMCON ; (pour 675 et 629) ;÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ 9 boucle Debut: Led0: ; Led0 : nom du sous-programme qui allume la led n° 0 Bank1 ; Passage en banque 1 car c'est là que se trouve TRISIO movlw 52 ; On charge le nombre 0011 0100 (en décimal : 52) movwf TRISIO ; dans le registre TRISIO Bank0 ; Retour en banque 0 où se trouve GPIO movlw 1 ; On place le nombre 0000 0000 (en décimal : 1) movwf GPIO ; dans le registre GPIO (sans utiliser bcf ou bsf) call Tempo ; On fait une pause. Led1: Bank1 movlw 52 movwf TRISIO Bank0 movlw 2 movwf GPIO call Tempo Led2: Bank1 movlw 22 movwf TRISIO Bank0 movlw 1 movwf GPIO call Tempo Led3: Bank1 movlw 22 movwf TRISIO Bank0 movlw 32 movwf GPIO call Tempo Led4: Bank1 movlw 21 movwf TRISIO Bank0 movlw 2 movwf GPIO call Tempo Led5: Bank1 movlw 21 movwf TRISIO Bank0 movlw 32 movwf GPIO call Tempo Led6: Bank1 movlw 7 movwf TRISIO Bank0 movlw 32 movwf GPIO call Tempo Led7: Bank1 movlw 7 movwf TRISIO Bank0 movlw 16 movwf GPIO call Tempo Led8: Bank1 movlw 37 movwf TRISIO Bank0 movlw 2 movwf GPIO call Tempo Led9: Bank1 movlw 37 movwf TRISIO Bank0 movlw 16 movwf GPIO call Tempo Led10: Bank1 movlw 38 movwf TRISIO Bank0 movlw 1 movwf GPIO call Tempo Led11: Bank1 movlw 38 movwf TRISIO Bank0 movlw 16 movwf GPIO call Tempo ;÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷NOUVELLES LEDS ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ Led12: Bank1 movlw 35 movwf TRISIO Bank0 movlw 4 movwf GPIO call Tempo Led13: Bank1 movlw 35 movwf TRISIO Bank0 movlw 16 movwf GPIO call Tempo Led14: Bank1 movlw 19 movwf TRISIO Bank0 movlw 4 movwf GPIO call Tempo Led15: Bank1 movlw 19 movwf TRISIO Bank0 movlw 32 movwf GPIO call Tempo Led16: Bank1 movlw 49 movwf TRISIO Bank0 movlw 4 movwf GPIO call Tempo Led17: Bank1 movlw 49 movwf TRISIO Bank0 movlw 2 movwf GPIO call Tempo Led18: Bank1 movlw 50 movwf TRISIO Bank0 movlw 4 movwf GPIO call Tempo Led19: Bank1 movlw 50 movwf TRISIO Bank0 movlw 1 movwf GPIO call Tempo goto Debut ; Boucle sans fin ;÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ 7 ss-prg Tempo: movlw 0xcc movwf i movlw 0xcc movwf j Bis: decfsz i, f goto $+2 decfsz j, f goto Bis goto $+1 nop return ;÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ 10 fin dt "Multipin20.asm" END