je cherche un petit programme qui va faire clignoter un del avec PIC16F877 un fichier .hex
-----
je cherche un petit programme qui va faire clignoter un del avec PIC16F877 un fichier .hex
BONJOUR sdow.
En espérant pour toi que qq voudra bien répondre à ton
143 éme message.
Mais un bonjour et merci aurait probablement été appréciés !
Cordialement
bonjour,
c'est un peu trivial , mais il faut plus d'info, comme le montage electronique du PIC , pour savoir comment le configurer et surtout sur quel PIN tu veux faire clignoter la LED , quelle frequence de quartz ... ou osc interne ( je sais plus 'il y en a un sur le 877 )
voila
le 877 ne dispose pas d'un oscillateur interneje sais plus 'il y en a un sur le 877 )
bonjour
J’ai déjà posé une question. J'ai acheté un top2048, alors je cherche un petit programme pour tester mon programmateur voir comment il marche, mais j'ai pas trouvé comment programmer mes pic j'ai acheté un osc de 20 Mhz je veux juste voir clignoter ma led OK
Bsr sdow..
Je n'y connais pas grand chose en pic.
Mais faire clignoter une led, me semble bien que c'est le
premier exercice que propose n'importe quel tutoriel de PIC.
Par curiosité j'ai demandé à Mr Google de ce qu'il pensait de cette demande "faire clignoter une led avec un pic 16F877".
C'est fou ce qu'il peut etre bavard ce mr Google !!
Cordialement
Voir le Zip K2000 à 8 leds, il est décrit en pic16F84 mais le prog est compilé avec l'option Pic16F876 donc le hex est full compatible avec le 877
osc en mode RC mettre une 2,2K sur OscIn comme le 84
Seul les bits de config serait à changer 0x3F3b mais le 3ffb du 84 fonctionne aussi en 877.
http://perso.orange.fr/pat.deaubonne/
Le code que tu m'avait proposé ne marche pas avec mon pic . finalement, j’ai regardé mon pic et mon pic est 16f877A est la même chose
le code est pour un osc RC
verifie ta config , si tu as un quartz il faudra configurer en quartz
ne pas oublier mclr au +5v avec une 10k
pareil 876 et 877, la seul différence c'est le nombre de broches!
je viens de tester sur un pic16F876 ca fonctionne !
Mettre 2.2k sur oscin et +5V, et 1K sur Mclr et +5
les leds ; anodes sur RB et cathode au moins avec une res de 100ohms est préférable.
Pic16F877
osc in = Pin 13
mclr = pin 1
RB0-RB7 = pin 33 à 40
Voila mon problème la configuration*??? le logiciel que j'ai est http://www.top2048.com/gb/tops/topwinen10.exe.
est-ce que quelquen peu m’expliquer quoi faire dans ce logiciel pour programmer correctement. il y a tellement de chose à cocher. merci
je connais pas ce logiciel...
Je l'ai charger par curiosité.
Il cherche un prog USB que je n'ai pas !
Sélectionner Microchip et le Pic choisi
Les bits de config sont présents, se fier à la valeur affichées , les cases a cochées ne sont pas forcément dans le sens ou l'on pense .
mettre la valeur FFFB pour l'osc RC avec la resistance comme deja décrit.
Voila si ça peux aider, je ne peux pas en dire plus sur ce soft et matériel que je ne connais pas.
salut
voila le code pour une 628 mais je ne sais pas quelle pine fait clignoter ma del
include "hwreg-p16f628.h"
// 16f628 config
// enable internal oscillator FOSC2,FOSC1,FOSC0 = 100
// disable watchdog WDT = 0
// enable power up timer PWRTE = 0
// use MCLR as RA5 MCLRE = 0
// disable brown-out detect BODEN = 0
// low voltage prog disabled LVP = 0
// data memory not protected CPD = 1
// code memory not protected CP1,CP0,CP1,CP0 = 1111
//
// see section 14.1 of PIC16F26X ref manual
// microchip document name 40300b.pdf
pragma cpu_config 0x3F10
proc main()
long j
byte k, k2
// set all ports to output
TRISA = 0
TRISB = 0
PORTA = 0
PORTB = 0
// set PORTA to digital I/O instead of analog
CMCON = 7
while 1 do
PORTA = 0
for k=0 while k<5 step k+=1 do
for j=0 while j<5000 step j+=1 do
k2 = 0
done
PORTA = PORTA ^ 1
done
for j=0 while j<20000 step j+=1 do
k2 = 0
done
done
endproc
proc intserv()
endproc
Clignote Led sur PORTA bits 0 (pin 17 du pic16F628)
Code:include "hwreg-p16f628.h" // 16f628 config // enable internal oscillator FOSC2,FOSC1,FOSC0 = 100 // disable watchdog WDT = 0 // enable power up timer PWRTE = 0 // use MCLR as RA5 MCLRE = 0 // disable brown-out detect BODEN = 0 // low voltage prog disabled LVP = 0 // data memory not protected CPD = 1 // code memory not protected CP1,CP0,CP1,CP0 = 1111 // // see section 14.1 of PIC16F26X ref manual // microchip document name 40300b.pdf pragma cpu_config 0x3F10 proc main() long j; // set all ports to output TRISA = 0; TRISB = 0; PORTA = 0; PORTB = 0; // set PORTA to digital I/O instead of analog CMCON = 7 PORTA = 0; while (1) { PORTA = PORTA ^ 1; j=0 ; while (j<100000) { j+=1; } } endproc proc intserv() endproc
j'ai pas encore reussi a faire clignoter ma led.
quand je met ma led au Vss la pine 17 devient aussi a niveau bas et quant je met ma led au Vdd ma pine devient niveau haut ???? pourquoi elle ne veux pas clignoter
vérifier;
si le programmateur fonctionne bien.
si la led n'est pas en courtcircuit
si le mclr est bien à 5V
si l'horloge fonctionne.
si les bits de config sont bien programmés
le programmeur fonction bien quand je click sur Read je peut voire exactement le code envoyer.
mon probleme est qu'est ce que il faut faire avec 16f628.inc
et il faut que je click sur quoi : fosc0 fosc1 fosc2 wdten pwrte mclre boden lvp cpd cp0,cp1
pour le code suivant
;***************************** ****************************** ***********
; Programme d'initiation aux PIC 16F628 : chenillard type K2000 *
; avec variation de la vitesse selon deux manières différentes : *
; Une manière logicielle, et une manière Hardware avec *
; potentiomètre externe *
;***************************** ****************************** ***********
; *
; NOM: K2000 *
; Date: 09/03/2006 *
; Version: 1.0 *
; Circuit: Platine d'essais *
; Auteur: Paul HERIN *
; *
;***************************** ****************************** ***********
; *
; Fichier requis: P16F628.inc *
; *
;***************************** ****************************** ***********
LIST p=16f628 ; Définition de processeur
#include <p16F628.inc> ; Définitions de variables
__config H'3F32'
; configuration permettant notemment de commander la fréquence d'horloge
;par une résistance externe et d'enlever le watchdog. cf MPLAB / Configure/ Configuration Bits
;***************************** ****************************** **********
; DEFINE *
;***************************** ****************************** **********
; on définit
#DEFINE LED PORTB,4 ; Led 1
#DEFINE LED2 PORTA,3 ; Led 2
#DEFINE LED3 PORTA,1 ; Led 3
#DEFINE LED4 PORTA,0 ; Led 4
#DEFINE LED5 PORTB,0 ; Led 5
#DEFINE LED6 PORTB,1 ; Led 6
#DEFINE BOUTON PORTB,2 ; bouton-poussoir
;***************************** ****************************** **********
; DECLARATIONS DE VARIABLES *
;***************************** ****************************** **********
CBLOCK 0x20 ; début de la zone variables
cmpt1 : 1 ; compteur de boucles 1
cmpt2 : 1 ; compteur de boucles 2
cmpt3 : 1 ; compteur de boucles 3
vitesse : 1 ; vitesse de défilement
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 H'0008' ; charger masque
movwf OPTION_REG ; initialiser registre option
movlw B'11100000'
movwf TRISA ; on met le port A comme sortie
movlw B'00000100'
movwf TRISB ; on met le port B en sortie à part le port contenant le bouton
movlw B'00000000'
movwf VRCON ; on désactive la référence de tension
movlw 2
movwf vitesse ; on se place sur la petite vitesse
movlw 0x07
movlw CMCON ; on désactive les comparateurs
; Effacer RAM
; ------------
movlw 0x0c ; initialisation pointeur
movwf FSR ; pointeur d'adressage indirec
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
movfw vitesse ; 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 *
;***************************** ****************************** **********
vlent ; sous programme définissant la vitesse lente
movlw B'10'
movwf vitesse
return
vrapide ; sous programme définissant la vitesse rapide
movlw B'01'
movwf vitesse
return
task
bsf LED ; allumer la LED
bcf LED2 ; éteindre LED
bcf LED3
bcf LED4
bcf LED5
call tempo ; appeler la tempo de 0.5s
bcf LED
bsf LED2
call tempo
bcf LED2
bsf LED3
call tempo
bcf LED3
bsf LED4
call tempo
bcf LED4
bsf LED5
call tempo
bcf LED5
bsf LED6
call tempo
bcf LED6
bsf LED5
call tempo
bcf LED5
bsf LED4
call tempo
bcf LED4
bsf LED3
call tempo
bcf LED3
bsf LED2
call tempo
return
start
btfss PORTB,2
call vrapide ; à faire si le bouton est enfoncé (l'entrée passe à 0)
btfsc PORTB,2
call vlent ; à faire si le bouton est relaché
call task
goto start ; boucler
END ; directive fin de programme
C'est juste des définitions l'include est dans le prog , il n'y a rien a faire de plus, le fichier doit être présent c'est tout.mon probleme est qu'est ce que il faut faire avec 16f628.inc
Tu declare "__config H'3F32'"et il faut que je click sur quoi : fosc0 fosc1 fosc2 wdten pwrte mclre boden lvp cpd cp0,cp1
ca signifie ;
WD OFF
CP OFF
ER Osc I/O ON
BOD OFF
LVP OFF
MCLR OFF
PWRT ON
DP OFF
Ajouter la gestion d'int.org 0x000 ; Adresse de départ après reset
goto init ; Adresse 0: initialiser
S'il ny a pas d'int mettre un retfie par sécurité!
Code:org 0x000 ; Adresse de départ après reset goto init ; Adresse 0: initialiser nop nop nop retfie
yessss tout fonction. mon problème était la configuration . Est ce que vous savez ou je peux trouver un site sur la config. des PIC
le mieux est sans doute la doc Microchip , mais c'est en Anglais , sinon les cours BigOnOff sont en Français.
Chaque type de pic ayant des configurations différentes, difficile de faire une généralité, tout de mème les options de base comme protection,WatchDog,Osc sont sans doute sur tous.
Pour la valeur en hexa, le logiciel programmateur le fait en changeant les check box
salut je voulais savire :combien de fois on peut programmer une pic . mon 628 j'ai programmé 7 à 10 fois et là mon programmer il me dis que des erreurs je met un autre chip (non 628) tout marche bien.
on peut reprogrammer des milliers de fois...
Donc le problème n'est pas là.
Avec le pic qui ont le Mclr programmable en I/O , il y a parfois des problèmes lors de la reprogrammation si MCLr est en I/O.
Les pics sont solides mais il peuvent se détruire parfois, souvent ils se détruisent partiellement , du genre des pins qui ne fonctionnent plus, suite a de mauvaises manips du genre inversion sur le programmateur...
mais le program dans le pic il fonction bien . c'est jous que je ne peux plus rien faire . est ce que il y a une methode pour le faire fonctioner ou non.
s'il est proteger en ecriture , il faut l'effacer d'abord