bonjour
voilà je dois faire un projet avec un pic 16f628 mais l'ensemble ne fonctionne pas
j'ai donc décidé de tester mon pic et sa config avec un simple petit programme d'un chenillard
seulement voilà ca marche pas non plus
j'utilise l'OSC interne sans clk externe et dans mplab en mettant code protect etc... à off j'ai le code de config 3f18
mais rien!!
voici mon petit programme
si quelqu'un sait y jetter un coup d'oeil
merci d'avance
;
;Directive d' assemblage pour MPLAB
;
LIST p=16F628 ; Définition de processeur
#include <p16F628.inc> ; fichier include
__config H'3F18'
;
;Définition des registres temporaires
;
retard1 EQU 0x20 ; le registre temporaire retard1 se trouve à l' adresse 20
retard2 EQU 0x21 ; le registre temporaire retard2 se trouve à l' adresse 21
;--------------
;Programme principal
;-------------
ORG 0
clrw ;
MOVLW 0X07 ;on met 07 dans le registre w
MOVWF CMCON ;on met 07= B'111' dans le registre CMCON qui désactive les entrées en comparateur
; du portA
BSF STATUS,5 ;on met à 1 le 5eme bit du registre status pour accéder
; à la 2eme page mémoire trisb
MOVLW B'00000000' ; on met 00h dans le registre W
MOVWF TRISB ; on met 0h dans le port A il est programmé partiellement en E/S
BCF STATUS,5 ; on remet à 0 le 5eme bit du registre status pour accéder
; à la 1eme page mémoire
movlw D'32' ;
movwf test ;
movlw 0x04 ; on met 1 dans W
movwf PORTB ; on met donc 1 sur le portb
call tempo ; tempo de 255 µs
bcl rlf PORTB,0 ; rotation à gauche
call tempo ;
decfsz test,0 ;
goto bcl ; boucle à l'infini
goto fin ;
;---------------
;temporisation
;------------
tempo
clrw ;
MOVLW 0xFF ; on met ff dans le registre W
MOVWF retard1 ; on met W dans le registre retard1
MOVWF retard2 ; on met W dans le registre retard2
attente
DECFSZ retard1,0 ; on décrémente retard1 et on saute la prochaine instruction si
GOTO attente ; le registre retard1 = 0 sinon retour à tempo
movlw 0xFF ; on recharge retard1
movwf retard1
DECFSZ retard2,0 ; on décrémente retard2 et on saute la prochaine instruction si
GOTO attente ; le registre retard2 = 0 sinon retour à tempo
return
fin
end
-----