Bienvenue aux nouveaux arrivants sur FantasPic !
- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.
--- L’équipe FantasPic ---
- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.
--- L’équipe FantasPic ---
Modérateur : mazertoc
compteur décompteur sur 7 segments
compteur décompteur sur 7 segments
j'ai pas bien compris les globales, on en reparle apres que cela soit OK car cela va être BON BON
il y a quand même, une petite chose qui ne travaille ou sont tes transistors de commande de tes afficheurs car une sortie d'un Port est limite a 25mA et toi tu dois passer suivant le cas 8 par exemple 6x20mA.Tu vas cramer ton pic a ce rythme.
A j'ai compris, après un certain temps plus ou moins long .Tu as finalement de la chance,pourquoi tu n'as pas cramé ton PIC:
Le Port B c'est les segments donc les anodes des LED(segments).Les commandes des LED( commande des digits) c'est les cathodes, donc le Port C ne dois pas être a 1 pour activer le digit mais a ZÉRO
IL FAUT PASSER PAR DES TRANSISTORS NPN comme exemple de jeremy est la pour activer digit PORTC a 1 si transistors PNP alors PORTC a 0.
Pour activer le digit, sans transistor PORTC a zéro, active le digit et -> destruction du PIC
il y a quand même, une petite chose qui ne travaille ou sont tes transistors de commande de tes afficheurs car une sortie d'un Port est limite a 25mA et toi tu dois passer suivant le cas 8 par exemple 6x20mA.Tu vas cramer ton pic a ce rythme.
A j'ai compris, après un certain temps plus ou moins long .Tu as finalement de la chance,pourquoi tu n'as pas cramé ton PIC:
Le Port B c'est les segments donc les anodes des LED(segments).Les commandes des LED( commande des digits) c'est les cathodes, donc le Port C ne dois pas être a 1 pour activer le digit mais a ZÉRO
IL FAUT PASSER PAR DES TRANSISTORS NPN comme exemple de jeremy est la pour activer digit PORTC a 1 si transistors PNP alors PORTC a 0.
Pour activer le digit, sans transistor PORTC a zéro, active le digit et -> destruction du PIC
Modifié en dernier par Anonymous le sam. 24 sept. 2016 21:39, modifié 1 fois.
compteur décompteur sur 7 segments
compteur décompteur sur 7 segments
compteur décompteur sur 7 segments
Bonjour Maï et temps-x
Ma platine, la voici
Lors de mes premiers post, je voulais transformer un compteur semblable a celui que nous essayons de créer et qui fonctionne sur ma platine mais avec un 16f84, programme de mon livre de cour écrit par Tavernier. Je n'arriveai pas à le transformer pour un 16f877. Je voulais la ligne des segments sur Portc, les commande afficheur sur porta et le portb pour mes entrées avec utilisation des résistances et des interruptions. D'où mon premier post sur ce forum et maintenant ça fonctionne. Il me reste à trouver le problème de celui de Maï. Je suis têtu et j'y arriverai même si c'est impossible
Apparement trop de call donc trop d'empillage sur mon prog (heu celui de Tavernier) et nous sommes parti pour un nouveau prog auxquels je ne veux pas copier un autre prog mais faire fonctionner ce dernier car c'est bon exercice pour apprendre avec debug.
Jean-Marc, mais ils sont fou ces romains
Les cathodes sont communes, pour allumer un segment, je le relis a +5 volts et pour mètre l'afficheur en fonction qui est commandé par l'intermédiaire d'un transistor, je le relis également a +5 volts
Ma platine, la voici
Lors de mes premiers post, je voulais transformer un compteur semblable a celui que nous essayons de créer et qui fonctionne sur ma platine mais avec un 16f84, programme de mon livre de cour écrit par Tavernier. Je n'arriveai pas à le transformer pour un 16f877. Je voulais la ligne des segments sur Portc, les commande afficheur sur porta et le portb pour mes entrées avec utilisation des résistances et des interruptions. D'où mon premier post sur ce forum et maintenant ça fonctionne. Il me reste à trouver le problème de celui de Maï. Je suis têtu et j'y arriverai même si c'est impossible
Apparement trop de call donc trop d'empillage sur mon prog (heu celui de Tavernier) et nous sommes parti pour un nouveau prog auxquels je ne veux pas copier un autre prog mais faire fonctionner ce dernier car c'est bon exercice pour apprendre avec debug.
Jean-Marc, mais ils sont fou ces romains
Les cathodes sont communes, pour allumer un segment, je le relis a +5 volts et pour mètre l'afficheur en fonction qui est commandé par l'intermédiaire d'un transistor, je le relis également a +5 volts
Modifié en dernier par JMarc le dim. 25 sept. 2016 01:29, modifié 1 fois.
compteur décompteur sur 7 segments
compteur décompteur sur 7 segments
compteur décompteur sur 7 segments
Bonjour
tient j'ai trouvé mon erreur j'ai pas fait évolué le programme ,je suis resté sur 2 digts) et deux 3
on ne faisait pas le rafraîchissement de l'affichage faire un goto AFFI et NON BouP
c'est du maî et JMarc pas sortie de tout fait c'est comme cela que je fonctionne
A+
PS: affaire reglé pas la platine
tient j'ai trouvé mon erreur j'ai pas fait évolué le programme ,je suis resté sur 2 digts) et deux 3
Code : Tout sélectionner
;********************** Boucle principale *************************************
BouP MOVLW 0X0A ;on test si 10fois 100mS
SUBWF Temp,W
BTFSS STATUS,Z
GOTO AFFI ;NON
CLRF Temp ;RAZ compteur temp
INCF ComptSu ; oui compteur seconde +1
on ne faisait pas le rafraîchissement de l'affichage faire un goto AFFI et NON BouP
c'est du maî et JMarc pas sortie de tout fait c'est comme cela que je fonctionne
A+
PS: affaire reglé pas la platine
compteur décompteur sur 7 segments
bonjour
Hé, moi aussi j'ai cherché
l'étiquette BouP remis au bon endroit, ça fonctionne
Allez, vite la suite je rajoute une entré avec interruption ?
Consommation d'un segment= 12ma
consommation commande afficheur = 0.8 ma
Hé, moi aussi j'ai cherché
Code : Tout sélectionner
BSF T1CON,TMR1ON ;arrêt TMR1 bit a 1
MOVLW TEST
;*********************** Affichage sur 4 digits ********************************
AFFI
BouP; CLRF Temp
BSF PORTC,0 ;allumage digit0
MOVFW ComptSu ;charge la donnée
CALL LedTable ;recherche donnée
MOVWF PORTB ;envoi donnée
CALL Tem2ms ;petite tempo 2ms
BCF PORTC,0 ;arrêt digit0
l'étiquette BouP remis au bon endroit, ça fonctionne
Allez, vite la suite je rajoute une entré avec interruption ?
Consommation d'un segment= 12ma
consommation commande afficheur = 0.8 ma
compteur décompteur sur 7 segments
bonjour
un petit conseil quand même passer par un (buffer, 'tempon, transistor etc..) car les pointes de conso a l'allumage des segments c'est pour le PIC.
et pour finir:
LES GLOBALES
les globales ne sont pas la, pour que tu puisses visualiser avec option variables le contenu de celle ci,c'est un détour, une façon de faire .
Les globales sont la pour transmettre des données dans les 2 sens d'un fichier projet vers des fichiers objets, issus d'une librairie par exemple dans ma réalisation (volet roulant)j'ai mon projet volet roulant avec une librairie objet pour l'afficheur 16x2 LCD.et je passe des données du projet au fichier LCD
le compilateur place ses globales ou bon lui semble
le plus simple pour lui et sous 16F il les places en début de la banque0 c'est a dire en 0x20, le problème c'est que nous avons un CBLOK sur 0x20
donc Sauv vient écraser ComptSu et pour les 4 globales même sort.A l'int elle sont écrasé .C'est pour cela que cela planté.
Solution déplacer les globales sur une adresse bien précise
comment
A+ la suite dessous
un petit conseil quand même passer par un (buffer, 'tempon, transistor etc..) car les pointes de conso a l'allumage des segments c'est pour le PIC.
et pour finir:
LES GLOBALES
les globales ne sont pas la, pour que tu puisses visualiser avec option variables le contenu de celle ci,c'est un détour, une façon de faire .
Les globales sont la pour transmettre des données dans les 2 sens d'un fichier projet vers des fichiers objets, issus d'une librairie par exemple dans ma réalisation (volet roulant)j'ai mon projet volet roulant avec une librairie objet pour l'afficheur 16x2 LCD.et je passe des données du projet au fichier LCD
le compilateur place ses globales ou bon lui semble
Code : Tout sélectionner
GLOBAL ComptSu
GLOBAL ComptSd
GLOBAL ComptMu
GLOBAl ComptMd
udata
ComptSu res 1 ;comteur seconde
ComptSd res 1
ComptMu res 1 ;compteur minute
ComptMd res 1
le plus simple pour lui et sous 16F il les places en début de la banque0 c'est a dire en 0x20, le problème c'est que nous avons un CBLOK sur 0x20
Code : Tout sélectionner
CBLOCK 0x20
Sauv
Sauv1
Temp ;compteur temps
i,j ;temporaire boucle
ENDC
donc Sauv vient écraser ComptSu et pour les 4 globales même sort.A l'int elle sont écrasé .C'est pour cela que cela planté.
Solution déplacer les globales sur une adresse bien précise
comment
Code : Tout sélectionner
GLOBAL ComptSu
GLOBAL ComptSd
GLOBAL ComptMu
GLOBAl ComptMd
udata 0x30
ComptSu res 1 ;comteur seconde
ComptSd res 1
ComptMu res 1 ;compteur minute
ComptMd res 1
A+ la suite dessous
Retourner vers « Langage ASM »
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 129 invités