Prog asm PIC+registre décalage 74HC595
Fermé
Tchotch
Messages postés
7
Date d'inscription
mardi 25 mai 2010
Statut
Membre
Dernière intervention
28 mai 2010
-
25 mai 2010 à 15:36
Tchotch Messages postés 7 Date d'inscription mardi 25 mai 2010 Statut Membre Dernière intervention 28 mai 2010 - 28 mai 2010 à 08:46
Tchotch Messages postés 7 Date d'inscription mardi 25 mai 2010 Statut Membre Dernière intervention 28 mai 2010 - 28 mai 2010 à 08:46
A voir également:
- Prog asm PIC+registre décalage 74HC595
- Clé de registre - Guide
- Pic collage - Télécharger - Photo & Graphisme
- Décalage son image youtube ✓ - Forum YouTube
- Impossible de se connecter au registre ✓ - Forum Réseau
- Copier coller formule excel sans décalage ✓ - Forum Bureautique
3 réponses
selim5777
Messages postés
10
Date d'inscription
mardi 18 mai 2010
Statut
Membre
Dernière intervention
7 août 2013
25 mai 2010 à 17:07
25 mai 2010 à 17:07
salut tchotch se que tu veux faire est simple donnes moi juste le temps de télécharger le datasheet du 74hc595
selim5777
Messages postés
10
Date d'inscription
mardi 18 mai 2010
Statut
Membre
Dernière intervention
7 août 2013
Modifié par selim5777 le 25/05/2010 à 17:30
Modifié par selim5777 le 25/05/2010 à 17:30
salut tchotch
ton programme est faux est ce que tu as déja travailler avec les Pics?
je vais te donner une astuce:
1 - il faut créer un sous programme d'affichage sur les leds, tu feras appel à ce sous programme à chaque fois que tu en à besoin pour le rafraichissement, ce sous programme aura comme entrée un octet de sorte à ce que chaque bit correspond à la led que tu veux allumer tu pourra ainsi allumer tes leds suivant 256 combinaison.
le sous programme sera comme suit :
tu déclareras les registres tout seul biensur:
Affich ; nom du sous programme
movlw d'8'
movwf ContBit ; compteur de bits = 8
Loop
btfss DataVar,0x07 ; verifie la valeur du 7ème bit
bcf PORTE,3
btfsc DataVar,0x07 ; verifie la valeur du 7ème bit
bsf PORTE,3
rlf DataVar
bsf PORTE,2
nop ; |Générer un front d'horloge sur SH_CP et ST_CP
bcf PORTE,2
decfsz ContBit
goto Loop
bsf PORTC,2 ;/
nop
bcf PORTC,2 ;/
return
dans le programme principal tu fais appel comme suit
boucle
movlw 'xxxxxxxx'b à la place des x tu mes des 0 ou des 1 suivant la donnée
movwf DataVar
call Affich
goto boucle
fais attention au déclaration des entrées sorties
si ça marche pas dis le moi je te guiderais
ton programme est faux est ce que tu as déja travailler avec les Pics?
je vais te donner une astuce:
1 - il faut créer un sous programme d'affichage sur les leds, tu feras appel à ce sous programme à chaque fois que tu en à besoin pour le rafraichissement, ce sous programme aura comme entrée un octet de sorte à ce que chaque bit correspond à la led que tu veux allumer tu pourra ainsi allumer tes leds suivant 256 combinaison.
le sous programme sera comme suit :
tu déclareras les registres tout seul biensur:
Affich ; nom du sous programme
movlw d'8'
movwf ContBit ; compteur de bits = 8
Loop
btfss DataVar,0x07 ; verifie la valeur du 7ème bit
bcf PORTE,3
btfsc DataVar,0x07 ; verifie la valeur du 7ème bit
bsf PORTE,3
rlf DataVar
bsf PORTE,2
nop ; |Générer un front d'horloge sur SH_CP et ST_CP
bcf PORTE,2
decfsz ContBit
goto Loop
bsf PORTC,2 ;/
nop
bcf PORTC,2 ;/
return
dans le programme principal tu fais appel comme suit
boucle
movlw 'xxxxxxxx'b à la place des x tu mes des 0 ou des 1 suivant la donnée
movwf DataVar
call Affich
goto boucle
fais attention au déclaration des entrées sorties
si ça marche pas dis le moi je te guiderais
Tchotch
Messages postés
7
Date d'inscription
mardi 25 mai 2010
Statut
Membre
Dernière intervention
28 mai 2010
26 mai 2010 à 08:19
26 mai 2010 à 08:19
Merci beaucoup, je m'y met!
Tchotch
Messages postés
7
Date d'inscription
mardi 25 mai 2010
Statut
Membre
Dernière intervention
28 mai 2010
26 mai 2010 à 12:34
26 mai 2010 à 12:34
J'ai essayé de faire ce que tu m'a dit mais cela ne fonctionne pas bien. Je contrôle bien les 8 premières Leds vu que j'envois 8 octets, ma)is elles s'allument aléatoirement et pas forcément une à la fois. Par exemple pour la première led j'envois '10000000'.
Je ne comprend pas trop comment fonctionne ton bout de programme au niveau des horloges. Pourquoi ici tu fais correspondre 8 cycles sur SH_CP (RE2) et 1 cycle sur ST_CP (RC2?
Je ne comprend pas trop comment fonctionne ton bout de programme au niveau des horloges. Pourquoi ici tu fais correspondre 8 cycles sur SH_CP (RE2) et 1 cycle sur ST_CP (RC2?
selim5777
Messages postés
10
Date d'inscription
mardi 18 mai 2010
Statut
Membre
Dernière intervention
7 août 2013
27 mai 2010 à 10:47
27 mai 2010 à 10:47
désolé pour le retard j'étais absent hier
je vais t'expliquer
le circuit comprend 2 étages de 8 (bascules) bits.chaque bascule correspond à 1 bit.
pour simplifier on appel A le première étage B le 2ème Qn la nième bascule
AQ5 correspond à la 5ème bascule du 1ère étage.
dans le première étage les 8 bascules sont reliées entre elles en série (cascade) sortie AQ1 --> entrée AQ2 ainsi de suite
dans le deuxième étage la sortie AQ1 --> entrée BQ1
tu auras le schéma suivant
AQ1-->AQ2-->AQ3-->AQ4-->AQ5-->AQ6-->AQ7-->AQ8
| | | | | | | |
BQ1-->BQ2-->BQ3-->BQ4-->BQ5-->BQ6-->BQ7-->BQ8
en réalité les leds sont reliées au 2ème étage c'est à dire B
le signal SH_CP sert à décaler les sorties de l'étage A on a donc besoin de 8 front pour que l'octet soit présent sur les huit bascules mais jusqu'à présent rien ne sort sur les leds.
quand on applique le signal ST_CP les huit sorties de l'étage A seront présente sur l'étage B en parallèle c'est pour cette raison qu'on a besoin du signal ST_CP que lorsqu'on veut obtenir l'affichage
s'il te plait tu peux m'envoyer ton programme complet pour que j'essaie de voir le bug voici mon email selim_sefraoui@hotmail.com c'est mon msn aussi.
je vais t'expliquer
le circuit comprend 2 étages de 8 (bascules) bits.chaque bascule correspond à 1 bit.
pour simplifier on appel A le première étage B le 2ème Qn la nième bascule
AQ5 correspond à la 5ème bascule du 1ère étage.
dans le première étage les 8 bascules sont reliées entre elles en série (cascade) sortie AQ1 --> entrée AQ2 ainsi de suite
dans le deuxième étage la sortie AQ1 --> entrée BQ1
tu auras le schéma suivant
AQ1-->AQ2-->AQ3-->AQ4-->AQ5-->AQ6-->AQ7-->AQ8
| | | | | | | |
BQ1-->BQ2-->BQ3-->BQ4-->BQ5-->BQ6-->BQ7-->BQ8
en réalité les leds sont reliées au 2ème étage c'est à dire B
le signal SH_CP sert à décaler les sorties de l'étage A on a donc besoin de 8 front pour que l'octet soit présent sur les huit bascules mais jusqu'à présent rien ne sort sur les leds.
quand on applique le signal ST_CP les huit sorties de l'étage A seront présente sur l'étage B en parallèle c'est pour cette raison qu'on a besoin du signal ST_CP que lorsqu'on veut obtenir l'affichage
s'il te plait tu peux m'envoyer ton programme complet pour que j'essaie de voir le bug voici mon email selim_sefraoui@hotmail.com c'est mon msn aussi.
Tchotch
Messages postés
7
Date d'inscription
mardi 25 mai 2010
Statut
Membre
Dernière intervention
28 mai 2010
27 mai 2010 à 11:48
27 mai 2010 à 11:48
Le problème vient de ma broche RE3 (pour la donnée DATA) de mon PIC, je croyais l'avoir configuré en output mais je viens de voir qu'en fait elle peut seulement être en entrée. Il faut que je trouve une alternative.
Tchotch
Messages postés
7
Date d'inscription
mardi 25 mai 2010
Statut
Membre
Dernière intervention
28 mai 2010
27 mai 2010 à 16:26
27 mai 2010 à 16:26
J'ai changé, cela devrait mieux marcher avec la broche data alors que c'est encore pire! Les leds ne s'allument plus du tout. Il y a un problème avec data je pense. Quel doit être son comportement?
Tchotch
Messages postés
7
Date d'inscription
mardi 25 mai 2010
Statut
Membre
Dernière intervention
28 mai 2010
27 mai 2010 à 17:10
27 mai 2010 à 17:10
Je viens de m'apercevoir en mode debug qu'une action sur SH_CP (RE2) ramène data (RE1 et non plus RE3 car j'ai changé)) à 0 sans raison (j'ai checké le montage aussi)! J'abandonne pour aujourd'hui, je comprend plus rien là.
selim5777
Messages postés
10
Date d'inscription
mardi 18 mai 2010
Statut
Membre
Dernière intervention
7 août 2013
27 mai 2010 à 23:29
27 mai 2010 à 23:29
tchotch j'ai une question à te poser quel PIC tu utilises ?
Tchotch
Messages postés
7
Date d'inscription
mardi 25 mai 2010
Statut
Membre
Dernière intervention
28 mai 2010
28 mai 2010 à 08:46
28 mai 2010 à 08:46
18F4520