Bonjour,
voila je me lance a la programmation de pic ,
je commance avec le cours de bigonoff
Cours sur les PIC® - Part1 (le 16F84)
* Vous désirez apprendre le PIC® 16F84?
* Vous êtes débutants ou vous désirez vous remettre à niveau?
* En cliquant ici,vous pourrez télécharger le cours.
* A partir de la révision 13, utilisation de MPLAB® 6 en remplacement de MPLAB® 5.50 devenu complètement obsolète.
j'ai fais mon 1er montage page 86
j'ai un pic 16f84a
je met ici le code asm pour info meme si je pense pas avoir de problemme puisque c'est le code du cours et la compilation ce passe bien .
j'ai un programmateur px-700Code:;********************************************************************** ; PROGRAMME DE CLIGNOTEMENT D'UNE LED CONNECTEE SUR LE PORTA.2 * ; D'UNE PIC16F84. PROGRAMME D'ENTRAINEMENT AU FONCTIONNEMENT * ; DES PICS. * ; * ;********************************************************************** ; * ; NOM: LED-CLI * ; Date: 09/02/2001 * ; Version: 1.0 * ; Circuit: Platine d'essais * ; Auteur: Bigonoff * ; * ;********************************************************************** ; * ; Fichier requis: P16F84.inc * ; * ;********************************************************************** ; * ; Notes: Ce petit programme permet de faire clignoter une LED * ; sur le port A.2 à une fréquence de 1Hz * ; Ce programme fait partie de la leçon 6 des cours * ; * ;********************************************************************** LIST p=16F84a ; Définition de processeur #include <p16F84a.inc> ; Définitions de variables __CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _HS_OSC ; '__CONFIG' précise les paramètres encodés dans le processeur au moment de ; la programmation. Les définitions sont dans le fichier include. ; Voici les valeurs et leurs définitions : ; _CP_ON Code protection ON : impossible de relire ; _CP_OFF Code protection OFF ; _PWRTE_ON Timer reset sur power on en service ; _PWRTE_OFF Timer reset hors-service ; _WDT_ON Watch-dog en service ; _WDT_OFF Watch-dog hors service ; _LP_OSC Oscillateur quartz basse vitesse ; _XT_OSC Oscillateur quartz moyenne vitesse ; _HS_OSC Oscillateur quartz grande vitesse ; _RC_OSC Oscillateur à réseau RC ;********************************************************************* ; ASSIGNATIONS * ;********************************************************************* OPTIONVAL EQU H'0008' ; Valeur registre option ; Résistance pull-up ON ; Pas de préscaler ;********************************************************************* ; DEFINE * ;********************************************************************* #DEFINE LED PORTA,2 ; Led rouge #DEFINE BOUTON PORTB,2 ; bouton-poussoir ;********************************************************************* ; MACRO * ;********************************************************************* LEDON macro bsf LED endm LEDOFF macro bcf LED endm ;********************************************************************* ; DECLARATIONS DE VARIABLES * ;********************************************************************* CBLOCK 0x00C ; début de la zone variables cmpt1 : 1 ; compteur de boucles 1 cmpt2 : 1 ; compteur de boucles 2 cmpt3 : 1 ; compteur de boucles 3 ENDC ; Fin de la zone ;********************************************************************** ; DEMARRAGE SUR RESET * ;********************************************************************** org 0x000 ; Adresse de départ après reset goto init ; Adresse 0: initialiser ;********************************************************************* ; INITIALISATIONS * ;********************************************************************* init clrf PORTA ; Sorties portA à 0 clrf PORTB ; sorties portB à 0 clrf EEADR ; permet de diminuer la consommation bsf STATUS,RP0 ; sélectionner banque 1 movlw OPTIONVAL ; charger masque movwf OPTION_REG ; initialiser registre option ; Effacer RAM ; ------------ movlw 0x0c ; initialisation pointeur movwf FSR ; pointeur d'adressage indirec init1 clrf INDF ; effacer ram incf FSR,f ; pointer sur suivant btfss FSR,6 ; tester si fin zone atteinte (>=40) goto init1 ; non, boucler btfss FSR,4 ; tester si fin zone atteinte (>=50) goto init1 ; non, boucler ; initialisations spécifiques ; --------------------------- bcf LED ; LED en sortie (banque1) bcf STATUS,RP0 ; repasser banque 0 goto start ; sauter au programme principal ;********************************************************************* ; SOUS-ROUTINE DE TEMPORISATION * ;********************************************************************* ;--------------------------------------------------------------------- ; Cette sous-routine introduit un retard de 500.000 µs. ; Elle ne reçoit aucun paramètre et n'en retourne aucun ;--------------------------------------------------------------------- tempo movlw 2 ; pour 2 boucles movwf cmpt3 ; initialiser compteur3 boucle3 clrf cmpt2 ; effacer compteur2 boucle2 clrf cmpt1 ; effacer compteur1 boucle1 nop ; perdre 1 cycle decfsz cmpt1,f ; décrémenter compteur1 goto boucle1 ; si pas 0, boucler decfsz cmpt2,f ; si 0, décrémenter compteur 2 goto boucle2 ; si cmpt2 pas 0, recommencer boucle1 decfsz cmpt3,f ; si 0, décrémenter compteur 3 goto boucle3 ; si cmpt3 pas 0, recommencer boucle2 return ; retour de la sous-routine ;********************************************************************* ; PROGRAMME PRINCIPAL * ;********************************************************************* start bsf LED ; allumer la LED : on aurait pu écrire ; LEDON (voir les macros) call tempo ; appeler la tempo de 0.5s bcf LED ; éteindre LED (LEDOFF) call tempo ; appeler la tempor de 0.5s goto start ; boucler END ; directive fin de programme
pickit2 detecte bien mon pic , j'efface le pic et je charge le fichier hex generais avec mplab ide , le write et le verify ce passe bien , donc normalement mon pic est pas vide ,
je cable tout cela sur une plaquette d'essaye , je verifie le tout et l'allume mon alimentation stabilise a 5v
voila le led s'allume bien mais ne clignote pas
je sais plus d'ou cela peut venir j'ai essayer avec un autre pic 16f628a
je modifie juste les deux lignes
avec le 16f628a la led ne s'allume meme pasCode:LIST p=16F628a ; Définition de processeur #include <p16F628a.inc> ; Définitions de variables
donc je sais pas ou chercher j'ai essayer de modifier le quarzt de 4.Mhz par un autre rien ne change .
donc je sais que la led marche , mon cablage est minimal avec 3 files , donc en compos il me reste plus que les deux condo de 27pf sur le quarzt pas teste cela peut venir de la , je peut les changer par d'autre condos plus puissant ?
je sais plus ou chercher alors je me remet a vous
merci pour vos idees d'avance
-----